summaryrefslogtreecommitdiff
path: root/asm/rom_80B5054.s
diff options
context:
space:
mode:
Diffstat (limited to 'asm/rom_80B5054.s')
-rw-r--r--asm/rom_80B5054.s175695
1 files changed, 175695 insertions, 0 deletions
diff --git a/asm/rom_80B5054.s b/asm/rom_80B5054.s
new file mode 100644
index 000000000..7d7033b98
--- /dev/null
+++ b/asm/rom_80B5054.s
@@ -0,0 +1,175695 @@
+ .include "constants/gba_constants.s"
+ .include "constants/species_constants.s"
+ .include "asm/macros.s"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_80B5054
+sub_80B5054: @ 80B5054
+ push {r4-r7,lr}
+ sub sp, 0x8
+ lsls r0, 24
+ lsrs r7, r0, 24
+ lsls r1, 24
+ lsrs r6, r1, 24
+ lsls r2, 24
+ lsrs r4, r2, 24
+ lsls r3, 24
+ lsrs r5, r3, 24
+ ldr r0, _080B5098
+ bl FuncIsActiveTask
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _080B50A4
+ ldr r1, _080B509C
+ movs r0, 0xFF
+ strh r0, [r1]
+ ldr r1, _080B50A0
+ lsls r0, r4, 3
+ adds r0, r1
+ ldrb r2, [r0, 0x4]
+ ldr r3, [r0]
+ str r5, [sp]
+ movs r0, 0
+ str r0, [sp, 0x4]
+ adds r0, r7, 0
+ adds r1, r6, 0
+ bl sub_80B5138
+ movs r0, 0x1
+ b _080B50A6
+ .align 2, 0
+_080B5098: .4byte sub_80B52B4
+_080B509C: .4byte gScriptResult
+_080B50A0: .4byte gMultichoiceLists
+_080B50A4:
+ movs r0, 0
+_080B50A6:
+ add sp, 0x8
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80B5054
+
+ thumb_func_start sub_80B50B0
+sub_80B50B0: @ 80B50B0
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x8
+ ldr r4, [sp, 0x20]
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ lsls r1, 24
+ lsrs r7, r1, 24
+ lsls r2, 24
+ lsrs r5, r2, 24
+ lsls r3, 24
+ lsrs r6, r3, 24
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _080B5100
+ bl FuncIsActiveTask
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _080B510C
+ ldr r1, _080B5104
+ movs r0, 0xFF
+ strh r0, [r1]
+ ldr r1, _080B5108
+ lsls r0, r5, 3
+ adds r0, r1
+ ldrb r2, [r0, 0x4]
+ ldr r3, [r0]
+ str r6, [sp]
+ str r4, [sp, 0x4]
+ mov r0, r8
+ adds r1, r7, 0
+ bl sub_80B5138
+ movs r0, 0x1
+ b _080B510E
+ .align 2, 0
+_080B5100: .4byte sub_80B52B4
+_080B5104: .4byte gScriptResult
+_080B5108: .4byte gMultichoiceLists
+_080B510C:
+ movs r0, 0
+_080B510E:
+ add sp, 0x8
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80B50B0
+
+ thumb_func_start GetStringWidthInTilesForScriptMenu
+GetStringWidthInTilesForScriptMenu: @ 80B511C
+ push {lr}
+ adds r1, r0, 0
+ ldr r0, _080B5134
+ bl GetStringWidthGivenWindowConfig
+ lsls r0, 24
+ lsrs r0, 24
+ adds r1, r0, 0x7
+ lsrs r0, r1, 3
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080B5134: .4byte gWindowConfig_81E6CE4
+ thumb_func_end GetStringWidthInTilesForScriptMenu
+
+ thumb_func_start sub_80B5138
+sub_80B5138: @ 80B5138
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x14
+ mov r10, r3
+ ldr r3, [sp, 0x34]
+ ldr r4, [sp, 0x38]
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ lsls r1, 24
+ lsrs r1, 24
+ str r1, [sp, 0x8]
+ lsls r2, 24
+ lsrs r2, 24
+ mov r8, r2
+ lsls r3, 24
+ lsrs r3, 24
+ str r3, [sp, 0xC]
+ lsls r4, 24
+ lsrs r4, 24
+ str r4, [sp, 0x10]
+ mov r1, r10
+ ldr r0, [r1]
+ bl GetStringWidthInTilesForScriptMenu
+ lsls r0, 16
+ lsrs r5, r0, 16
+ movs r4, 0x1
+ cmp r4, r8
+ bcs _080B5198
+_080B517A:
+ lsls r0, r4, 3
+ add r0, r10
+ ldr r0, [r0]
+ bl GetStringWidthInTilesForScriptMenu
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r5, r0
+ bcs _080B518E
+ adds r5, r0, 0
+_080B518E:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, r8
+ bcc _080B517A
+_080B5198:
+ lsls r0, r5, 24
+ lsrs r7, r0, 24
+ mov r1, r9
+ adds r0, r7, r1
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+ cmp r7, 0x1D
+ bls _080B51B8
+ mov r0, r9
+ adds r0, 0x1D
+ subs r0, r7
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ movs r7, 0x1D
+_080B51B8:
+ mov r1, r8
+ lsls r0, r1, 1
+ adds r0, 0x1
+ ldr r1, [sp, 0x8]
+ lsls r4, r1, 24
+ asrs r4, 24
+ adds r4, r0
+ lsls r4, 24
+ lsrs r4, 24
+ mov r0, r9
+ adds r2, r7, 0
+ adds r3, r4, 0
+ bl MenuDrawTextWindow
+ mov r6, r9
+ adds r6, 0x1
+ lsls r6, 24
+ lsrs r6, 24
+ ldr r5, [sp, 0x8]
+ adds r5, 0x1
+ lsls r5, 24
+ lsrs r5, 24
+ adds r0, r6, 0
+ adds r1, r5, 0
+ mov r2, r8
+ mov r3, r10
+ bl PrintMenuItems
+ ldr r0, [sp, 0x10]
+ str r0, [sp]
+ mov r1, r9
+ subs r0, r7, r1
+ subs r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x4]
+ movs r0, 0
+ adds r1, r6, 0
+ adds r2, r5, 0
+ mov r3, r8
+ bl InitMenu
+ ldr r0, [sp, 0xC]
+ str r0, [sp]
+ mov r1, r8
+ str r1, [sp, 0x4]
+ mov r0, r9
+ ldr r1, [sp, 0x8]
+ adds r2, r7, 0
+ adds r3, r4, 0
+ bl sub_80B5230
+ add sp, 0x14
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B5138
+
+ thumb_func_start sub_80B5230
+sub_80B5230: @ 80B5230
+ push {r4-r6,lr}
+ mov r6, r9
+ mov r5, r8
+ push {r5,r6}
+ sub sp, 0x4
+ adds r4, r0, 0
+ adds r5, r1, 0
+ adds r6, r2, 0
+ ldr r0, [sp, 0x1C]
+ mov r8, r0
+ ldr r0, [sp, 0x20]
+ mov r9, r0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r6, 24
+ lsrs r6, 24
+ lsls r3, 24
+ lsrs r3, 24
+ mov r0, r8
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ mov r0, r9
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ ldr r0, _080B5298
+ movs r1, 0x50
+ str r3, [sp]
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080B529C
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ strh r4, [r1, 0x8]
+ strh r5, [r1, 0xA]
+ strh r6, [r1, 0xC]
+ ldr r3, [sp]
+ strh r3, [r1, 0xE]
+ mov r0, r8
+ strh r0, [r1, 0x10]
+ mov r0, r9
+ cmp r0, 0x3
+ bls _080B52A0
+ movs r0, 0x1
+ b _080B52A2
+ .align 2, 0
+_080B5298: .4byte sub_80B52B4
+_080B529C: .4byte gTasks
+_080B52A0:
+ movs r0, 0
+_080B52A2:
+ strh r0, [r1, 0x12]
+ add sp, 0x4
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B5230
+
+ thumb_func_start sub_80B52B4
+sub_80B52B4: @ 80B52B4
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _080B52E0
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080B534E
+ ldr r2, _080B52E4
+ lsls r1, r4, 2
+ adds r0, r1, r4
+ lsls r0, 3
+ adds r0, r2
+ movs r2, 0x12
+ ldrsh r0, [r0, r2]
+ adds r5, r1, 0
+ cmp r0, 0
+ bne _080B52E8
+ bl ProcessMenuInputNoWrap
+ b _080B52EC
+ .align 2, 0
+_080B52E0: .4byte gPaletteFade
+_080B52E4: .4byte gTasks
+_080B52E8:
+ bl ProcessMenuInput
+_080B52EC:
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r0, 24
+ asrs r1, r0, 24
+ movs r0, 0x2
+ negs r0, r0
+ cmp r1, r0
+ beq _080B534E
+ adds r0, 0x1
+ cmp r1, r0
+ bne _080B5328
+ ldr r0, _080B5320
+ adds r1, r5, r4
+ lsls r1, 3
+ adds r1, r0
+ movs r2, 0x10
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ bne _080B534E
+ movs r0, 0x5
+ bl PlaySE
+ ldr r1, _080B5324
+ movs r0, 0x7F
+ strh r0, [r1]
+ b _080B532C
+ .align 2, 0
+_080B5320: .4byte gTasks
+_080B5324: .4byte gScriptResult
+_080B5328:
+ ldr r0, _080B5354
+ strh r1, [r0]
+_080B532C:
+ bl sub_8072DEC
+ ldr r0, _080B5358
+ adds r3, r5, r4
+ lsls r3, 3
+ adds r3, r0
+ ldrb r0, [r3, 0x8]
+ ldrb r1, [r3, 0xA]
+ ldrb r2, [r3, 0xC]
+ ldrb r3, [r3, 0xE]
+ bl MenuZeroFillWindowRect
+ adds r0, r4, 0
+ bl DestroyTask
+ bl EnableBothScriptContexts
+_080B534E:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B5354: .4byte gScriptResult
+_080B5358: .4byte gTasks
+ thumb_func_end sub_80B52B4
+
+ thumb_func_start Multichoice
+Multichoice: @ 80B535C
+ push {r4-r7,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r7, r0, 24
+ lsls r1, 24
+ lsrs r6, r1, 24
+ lsls r2, 24
+ lsrs r4, r2, 24
+ lsls r3, 24
+ lsrs r5, r3, 24
+ ldr r0, _080B539C
+ bl FuncIsActiveTask
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _080B53A8
+ ldr r1, _080B53A0
+ movs r0, 0xFF
+ strh r0, [r1]
+ ldr r1, _080B53A4
+ lsls r0, r4, 3
+ adds r0, r1
+ ldrb r2, [r0, 0x4]
+ ldr r3, [r0]
+ str r5, [sp]
+ adds r0, r7, 0
+ adds r1, r6, 0
+ bl sub_80B53B4
+ movs r0, 0x1
+ b _080B53AA
+ .align 2, 0
+_080B539C: .4byte sub_80B52B4
+_080B53A0: .4byte gScriptResult
+_080B53A4: .4byte gMultichoiceLists
+_080B53A8:
+ movs r0, 0
+_080B53AA:
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end Multichoice
+
+ thumb_func_start sub_80B53B4
+sub_80B53B4: @ 80B53B4
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ adds r7, r3, 0
+ ldr r3, [sp, 0x28]
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ lsls r1, 24
+ lsrs r1, 24
+ mov r9, r1
+ lsls r2, 24
+ lsrs r6, r2, 24
+ lsls r3, 24
+ lsrs r3, 24
+ mov r10, r3
+ ldr r0, [r7]
+ bl GetStringWidthInTilesForScriptMenu
+ lsls r0, 16
+ lsrs r4, r0, 16
+ movs r5, 0x1
+ cmp r5, r6
+ bcs _080B5408
+_080B53EA:
+ lsls r0, r5, 3
+ adds r0, r7
+ ldr r0, [r0]
+ bl GetStringWidthInTilesForScriptMenu
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r4, r0
+ bcs _080B53FE
+ adds r4, r0, 0
+_080B53FE:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, r6
+ bcc _080B53EA
+_080B5408:
+ lsls r4, 24
+ lsrs r4, 24
+ add r4, r8
+ adds r4, 0x2
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r0, r6, 1
+ adds r0, 0x1
+ mov r1, r9
+ lsls r5, r1, 24
+ asrs r5, 24
+ adds r5, r0
+ lsls r5, 24
+ lsrs r5, 24
+ mov r0, r8
+ adds r2, r6, 0
+ adds r3, r7, 0
+ bl PrintMenuItems
+ movs r0, 0
+ str r0, [sp]
+ mov r1, r8
+ subs r0, r4, r1
+ subs r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x4]
+ movs r0, 0
+ mov r2, r9
+ adds r3, r6, 0
+ bl InitMenu
+ mov r0, r10
+ str r0, [sp]
+ str r6, [sp, 0x4]
+ mov r0, r8
+ mov r1, r9
+ adds r2, r4, 0
+ adds r3, r5, 0
+ bl sub_80B5230
+ add sp, 0x8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B53B4
+
+ thumb_func_start yes_no_box
+yes_no_box: @ 80B546C
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r1, 24
+ lsrs r4, r1, 24
+ ldr r6, _080B54B4
+ adds r0, r6, 0
+ bl FuncIsActiveTask
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _080B54C0
+ ldr r1, _080B54B8
+ movs r0, 0xFF
+ strh r0, [r1]
+ adds r0, r5, 0
+ adds r1, r4, 0
+ movs r2, 0x1
+ bl DisplayYesNoMenu
+ adds r0, r6, 0
+ movs r1, 0x50
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080B54BC
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ strh r5, [r1, 0x8]
+ strh r4, [r1, 0xA]
+ movs r0, 0x1
+ b _080B54C2
+ .align 2, 0
+_080B54B4: .4byte task_yes_no_maybe
+_080B54B8: .4byte gScriptResult
+_080B54BC: .4byte gTasks
+_080B54C0:
+ movs r0, 0
+_080B54C2:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end yes_no_box
+
+ thumb_func_start unref_sub_80B54C8
+unref_sub_80B54C8: @ 80B54C8
+ push {lr}
+ ldr r0, _080B54D8
+ ldrh r0, [r0]
+ cmp r0, 0xFF
+ beq _080B54DC
+ movs r0, 0x1
+ b _080B54DE
+ .align 2, 0
+_080B54D8: .4byte gScriptResult
+_080B54DC:
+ movs r0, 0
+_080B54DE:
+ pop {r1}
+ bx r1
+ thumb_func_end unref_sub_80B54C8
+
+ thumb_func_start task_yes_no_maybe
+task_yes_no_maybe: @ 80B54E4
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r1, _080B5504
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r1, r0, r1
+ ldrh r2, [r1, 0xC]
+ movs r3, 0xC
+ ldrsh r0, [r1, r3]
+ cmp r0, 0x4
+ bgt _080B5508
+ adds r0, r2, 0x1
+ strh r0, [r1, 0xC]
+ b _080B556A
+ .align 2, 0
+_080B5504: .4byte gTasks
+_080B5508:
+ bl ProcessMenuInputNoWrap
+ lsls r0, 24
+ asrs r1, r0, 24
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ beq _080B552C
+ cmp r1, r0
+ bgt _080B5524
+ subs r0, 0x1
+ cmp r1, r0
+ beq _080B556A
+ b _080B5542
+_080B5524:
+ cmp r1, 0
+ beq _080B553C
+ cmp r1, 0x1
+ bne _080B5542
+_080B552C:
+ movs r0, 0x5
+ bl PlaySE
+ ldr r1, _080B5538
+ movs r0, 0
+ b _080B5540
+ .align 2, 0
+_080B5538: .4byte gScriptResult
+_080B553C:
+ ldr r1, _080B5570
+ movs r0, 0x1
+_080B5540:
+ strh r0, [r1]
+_080B5542:
+ ldr r0, _080B5574
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldrb r0, [r1, 0x8]
+ ldrb r1, [r1, 0xA]
+ adds r2, r0, 0x6
+ lsls r2, 24
+ lsrs r2, 24
+ adds r3, r1, 0x5
+ lsls r3, 24
+ lsrs r3, 24
+ bl MenuZeroFillWindowRect
+ adds r0, r4, 0
+ bl DestroyTask
+ bl EnableBothScriptContexts
+_080B556A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B5570: .4byte gScriptResult
+_080B5574: .4byte gTasks
+ thumb_func_end task_yes_no_maybe
+
+ thumb_func_start sub_80B5578
+sub_80B5578: @ 80B5578
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x10
+ ldr r4, [sp, 0x30]
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ lsls r1, 24
+ lsrs r1, 24
+ mov r8, r1
+ lsls r2, 24
+ lsrs r6, r2, 24
+ lsls r3, 24
+ lsrs r3, 24
+ str r3, [sp, 0xC]
+ lsls r4, 24
+ lsrs r5, r4, 24
+ movs r7, 0
+ ldr r0, _080B55B8
+ mov r10, r0
+ bl FuncIsActiveTask
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080B55BC
+ movs r0, 0
+ b _080B5670
+ .align 2, 0
+_080B55B8: .4byte sub_80B5684
+_080B55BC:
+ ldr r1, _080B5620
+ movs r0, 0xFF
+ strh r0, [r1]
+ ldr r0, _080B5624
+ lsls r4, r6, 3
+ adds r0, r4, r0
+ ldrb r6, [r0, 0x4]
+ ldr r0, [r0]
+ str r0, [sp]
+ str r5, [sp, 0x4]
+ str r7, [sp, 0x8]
+ mov r0, r9
+ mov r1, r8
+ adds r2, r6, 0
+ movs r3, 0
+ bl sub_807274C
+ mov r0, r10
+ movs r1, 0x50
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ mov r10, r0
+ lsls r0, r6, 24
+ lsrs r1, r0, 24
+ lsrs r0, 25
+ cmp r0, r5
+ bcc _080B55FE
+ movs r0, 0x1
+ ands r0, r6
+ cmp r0, 0
+ beq _080B5606
+_080B55FE:
+ cmp r5, 0x1
+ beq _080B5606
+ cmp r1, r5
+ bne _080B5628
+_080B5606:
+ ldr r0, _080B5624
+ adds r0, r4, r0
+ ldrb r0, [r0, 0x4]
+ adds r1, r5, 0
+ bl __udivsi3
+ lsls r0, 24
+ lsrs r0, 23
+ adds r0, 0x1
+ mov r2, r8
+ lsls r1, r2, 24
+ b _080B563A
+ .align 2, 0
+_080B5620: .4byte gScriptResult
+_080B5624: .4byte gMultichoiceLists
+_080B5628:
+ adds r0, r6, 0
+ adds r1, r5, 0
+ bl __udivsi3
+ lsls r0, 24
+ lsrs r0, 23
+ adds r0, 0x3
+ mov r3, r8
+ lsls r1, r3, 24
+_080B563A:
+ asrs r1, 24
+ adds r1, r0
+ lsls r1, 24
+ lsrs r7, r1, 24
+ adds r0, r5, 0
+ bl sub_807288C
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080B5680
+ mov r3, r10
+ lsls r1, r3, 2
+ add r1, r10
+ lsls r1, 3
+ adds r1, r2
+ mov r2, r9
+ strh r2, [r1, 0x8]
+ mov r3, r8
+ strh r3, [r1, 0xA]
+ add r0, r9
+ adds r0, 0x2
+ strh r0, [r1, 0xC]
+ strh r7, [r1, 0xE]
+ mov r0, sp
+ ldrh r0, [r0, 0xC]
+ strh r0, [r1, 0x10]
+ movs r0, 0x1
+_080B5670:
+ add sp, 0x10
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080B5680: .4byte gTasks
+ thumb_func_end sub_80B5578
+
+ thumb_func_start sub_80B5684
+sub_80B5684: @ 80B5684
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ bl sub_80727CC
+ lsls r0, 24
+ asrs r1, r0, 24
+ movs r0, 0x2
+ negs r0, r0
+ cmp r1, r0
+ beq _080B56F4
+ adds r0, 0x1
+ cmp r1, r0
+ bne _080B56CC
+ ldr r2, _080B56C4
+ lsls r1, r5, 2
+ adds r0, r1, r5
+ lsls r0, 3
+ adds r0, r2
+ movs r2, 0x10
+ ldrsh r0, [r0, r2]
+ adds r4, r1, 0
+ cmp r0, 0
+ bne _080B56F4
+ movs r0, 0x5
+ bl PlaySE
+ ldr r1, _080B56C8
+ movs r0, 0x7F
+ strh r0, [r1]
+ b _080B56D2
+ .align 2, 0
+_080B56C4: .4byte gTasks
+_080B56C8: .4byte gScriptResult
+_080B56CC:
+ ldr r0, _080B56FC
+ strh r1, [r0]
+ lsls r4, r5, 2
+_080B56D2:
+ bl sub_8072DEC
+ ldr r0, _080B5700
+ adds r3, r4, r5
+ lsls r3, 3
+ adds r3, r0
+ ldrb r0, [r3, 0x8]
+ ldrb r1, [r3, 0xA]
+ ldrb r2, [r3, 0xC]
+ ldrb r3, [r3, 0xE]
+ bl MenuZeroFillWindowRect
+ adds r0, r5, 0
+ bl DestroyTask
+ bl EnableBothScriptContexts
+_080B56F4:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B56FC: .4byte gScriptResult
+_080B5700: .4byte gTasks
+ thumb_func_end sub_80B5684
+
+ thumb_func_start sp109_CreatePCMenu
+sp109_CreatePCMenu: @ 80B5704
+ push {lr}
+ ldr r0, _080B5724
+ bl FuncIsActiveTask
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _080B572C
+ ldr r1, _080B5728
+ movs r0, 0xFF
+ strh r0, [r1]
+ bl CreatePCMenu
+ movs r0, 0x1
+ b _080B572E
+ .align 2, 0
+_080B5724: .4byte sub_80B52B4
+_080B5728: .4byte gScriptResult
+_080B572C:
+ movs r0, 0
+_080B572E:
+ pop {r1}
+ bx r1
+ thumb_func_end sp109_CreatePCMenu
+
+ thumb_func_start CreatePCMenu
+CreatePCMenu: @ 80B5734
+ push {r4-r7,lr}
+ sub sp, 0x8
+ ldr r0, _080B5758
+ bl GetStringWidthInTilesForScriptMenu
+ lsls r0, 16
+ lsrs r4, r0, 16
+ ldr r0, _080B575C
+ bl GetStringWidthInTilesForScriptMenu
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r4, r0
+ bls _080B5760
+ lsls r0, r4, 24
+ lsrs r5, r0, 24
+ b _080B5762
+ .align 2, 0
+_080B5758: .4byte gPCText_PlayersPC
+_080B575C: .4byte gPCText_SomeonesPC
+_080B5760:
+ movs r5, 0x8
+_080B5762:
+ ldr r0, _080B5798
+ bl FlagGet
+ lsls r0, 24
+ cmp r0, 0
+ beq _080B57A4
+ movs r7, 0x4
+ adds r4, r5, 0x2
+ lsls r2, r4, 24
+ lsrs r2, 24
+ movs r0, 0
+ movs r1, 0
+ movs r3, 0x9
+ bl MenuDrawTextWindow
+ ldr r0, _080B579C
+ movs r1, 0x1
+ movs r2, 0x5
+ bl MenuPrint
+ ldr r0, _080B57A0
+ movs r1, 0x1
+ movs r2, 0x7
+ bl MenuPrint
+ b _080B57C0
+ .align 2, 0
+_080B5798: .4byte 0x00000804
+_080B579C: .4byte gPCText_HallOfFame
+_080B57A0: .4byte gPCText_LogOff
+_080B57A4:
+ movs r7, 0x3
+ adds r4, r5, 0x2
+ lsls r2, r4, 24
+ lsrs r2, 24
+ movs r0, 0
+ movs r1, 0
+ movs r3, 0x7
+ bl MenuDrawTextWindow
+ ldr r0, _080B57DC
+ movs r1, 0x1
+ movs r2, 0x5
+ bl MenuPrint
+_080B57C0:
+ adds r6, r4, 0
+ ldr r0, _080B57E0
+ bl FlagGet
+ lsls r0, 24
+ cmp r0, 0
+ beq _080B57E8
+ ldr r0, _080B57E4
+ movs r1, 0x1
+ movs r2, 0x1
+ bl MenuPrint
+ b _080B57F2
+ .align 2, 0
+_080B57DC: .4byte gPCText_LogOff
+_080B57E0: .4byte 0x0000084b
+_080B57E4: .4byte gPCText_LanettesPC
+_080B57E8:
+ ldr r0, _080B5830
+ movs r1, 0x1
+ movs r2, 0x1
+ bl MenuPrint
+_080B57F2:
+ ldr r0, _080B5834
+ movs r1, 0x1
+ movs r2, 0x3
+ bl MenuPrint
+ movs r4, 0
+ str r4, [sp]
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x4]
+ movs r0, 0
+ movs r1, 0x1
+ movs r2, 0x1
+ adds r3, r7, 0
+ bl InitMenu
+ lsls r2, r6, 24
+ lsrs r2, 24
+ lsls r3, r7, 1
+ adds r3, 0x1
+ str r4, [sp]
+ str r7, [sp, 0x4]
+ movs r0, 0
+ movs r1, 0
+ bl sub_80B5230
+ add sp, 0x8
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B5830: .4byte gPCText_SomeonesPC
+_080B5834: .4byte gPCText_PlayersPC
+ thumb_func_end CreatePCMenu
+
+ thumb_func_start sub_80B5838
+sub_80B5838: @ 80B5838
+ push {lr}
+ bl MenuDisplayMessageBox
+ ldr r0, _080B584C
+ movs r1, 0x2
+ movs r2, 0xF
+ bl MenuPrint
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B584C: .4byte gUnknown_081A0A01
+ thumb_func_end sub_80B5838
+
+ thumb_func_start task_picbox
+task_picbox: @ 80B5850
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, _080B5874
+ adds r4, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ beq _080B58BE
+ cmp r0, 0x1
+ bgt _080B5878
+ cmp r0, 0
+ beq _080B5894
+ b _080B58BE
+ .align 2, 0
+_080B5874: .4byte gTasks
+_080B5878:
+ cmp r0, 0x2
+ beq _080B5882
+ cmp r0, 0x3
+ beq _080B58A0
+ b _080B58BE
+_080B5882:
+ movs r0, 0xC
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080B589C
+ adds r0, r1
+ bl sub_8085C44
+_080B5894:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _080B58BE
+ .align 2, 0
+_080B589C: .4byte gSprites
+_080B58A0:
+ ldrb r2, [r4, 0xE]
+ adds r0, r2, 0
+ ldrb r3, [r4, 0x10]
+ adds r1, r3, 0
+ adds r2, 0x9
+ lsls r2, 24
+ lsrs r2, 24
+ adds r3, 0xA
+ lsls r3, 24
+ lsrs r3, 24
+ bl MenuZeroFillWindowRect
+ adds r0, r5, 0
+ bl DestroyTask
+_080B58BE:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end task_picbox
+
+ thumb_func_start sub_80B58C4
+sub_80B58C4: @ 80B58C4
+ push {r4-r7,lr}
+ lsls r0, 16
+ lsrs r7, r0, 16
+ lsls r1, 24
+ lsrs r6, r1, 24
+ lsls r2, 24
+ lsrs r5, r2, 24
+ ldr r4, _080B595C
+ adds r0, r4, 0
+ bl FindTaskIdByFunc
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xFF
+ bne _080B596C
+ adds r2, r6, 0
+ adds r2, 0x9
+ lsls r2, 24
+ lsrs r2, 24
+ adds r3, r5, 0
+ adds r3, 0xA
+ lsls r3, 24
+ lsrs r3, 24
+ adds r0, r6, 0
+ adds r1, r5, 0
+ bl MenuDrawTextWindow
+ adds r0, r4, 0
+ movs r1, 0x50
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _080B5960
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ adds r4, r1
+ movs r0, 0
+ strh r0, [r4, 0x8]
+ strh r7, [r4, 0xA]
+ lsls r1, r6, 19
+ movs r0, 0xA0
+ lsls r0, 14
+ adds r1, r0
+ asrs r1, 16
+ lsls r2, r5, 19
+ adds r2, r0
+ asrs r2, 16
+ adds r0, r7, 0
+ movs r3, 0
+ bl sub_8085AD4
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0xC]
+ strh r6, [r4, 0xE]
+ strh r5, [r4, 0x10]
+ ldr r3, _080B5964
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r0, r3, 0
+ adds r0, 0x1C
+ adds r0, r1, r0
+ ldr r2, _080B5968
+ str r2, [r0]
+ adds r1, r3
+ ldrb r2, [r1, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1, 0x5]
+ movs r0, 0x1
+ b _080B596E
+ .align 2, 0
+_080B595C: .4byte task_picbox
+_080B5960: .4byte gTasks
+_080B5964: .4byte gSprites
+_080B5968: .4byte SpriteCallbackDummy
+_080B596C:
+ movs r0, 0
+_080B596E:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80B58C4
+
+ thumb_func_start picbox_close
+picbox_close: @ 80B5974
+ push {lr}
+ ldr r0, _080B5998
+ bl FindTaskIdByFunc
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0xFF
+ beq _080B59A4
+ ldr r0, _080B599C
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ ldr r0, _080B59A0
+ b _080B59A6
+ .align 2, 0
+_080B5998: .4byte task_picbox
+_080B599C: .4byte gTasks
+_080B59A0: .4byte sub_80B59AC
+_080B59A4:
+ movs r0, 0
+_080B59A6:
+ pop {r1}
+ bx r1
+ thumb_func_end picbox_close
+
+ thumb_func_start sub_80B59AC
+sub_80B59AC: @ 80B59AC
+ push {lr}
+ ldr r0, _080B59C0
+ bl FindTaskIdByFunc
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xFF
+ beq _080B59C4
+ movs r0, 0
+ b _080B59C6
+ .align 2, 0
+_080B59C0: .4byte task_picbox
+_080B59C4:
+ movs r0, 0x1
+_080B59C6:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80B59AC
+
+ thumb_func_start DoNamingScreen
+DoNamingScreen: @ 80B59CC
+ push {r4,r5,lr}
+ sub sp, 0x8
+ ldr r4, [sp, 0x14]
+ ldr r5, [sp, 0x18]
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r2, 16
+ lsrs r2, 16
+ lsls r3, 16
+ lsrs r3, 16
+ str r4, [sp]
+ str r5, [sp, 0x4]
+ bl AddNamingScreenTask
+ ldr r0, _080B59F8
+ bl SetMainCallback2
+ add sp, 0x8
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B59F8: .4byte C2_NamingScreen
+ thumb_func_end DoNamingScreen
+
+ thumb_func_start C2_NamingScreen
+C2_NamingScreen: @ 80B59FC
+ push {lr}
+ ldr r0, _080B5A14
+ ldr r1, _080B5A18
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x7
+ bhi _080B5A96
+ lsls r0, 2
+ ldr r1, _080B5A1C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080B5A14: .4byte gMain
+_080B5A18: .4byte 0x0000043c
+_080B5A1C: .4byte _080B5A20
+ .align 2, 0
+_080B5A20:
+ .4byte _080B5A40
+ .4byte _080B5A4A
+ .4byte _080B5A50
+ .4byte _080B5A56
+ .4byte _080B5A5C
+ .4byte _080B5A62
+ .4byte _080B5A68
+ .4byte _080B5A84
+_080B5A40:
+ bl NamingScreen_TurnOffScreen
+ bl NamingScreen_Init
+ b _080B5A6C
+_080B5A4A:
+ bl NamingScreen_ClearVram
+ b _080B5A6C
+_080B5A50:
+ bl NamingScreen_ClearOam
+ b _080B5A6C
+_080B5A56:
+ bl NamingScreen_SetUpVideoRegs
+ b _080B5A6C
+_080B5A5C:
+ bl sub_80B5DC8
+ b _080B5A6C
+_080B5A62:
+ bl NamingScreen_ResetObjects
+ b _080B5A6C
+_080B5A68:
+ bl sub_80B5DFC
+_080B5A6C:
+ ldr r1, _080B5A7C
+ ldr r0, _080B5A80
+ adds r1, r0
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _080B5A96
+ .align 2, 0
+_080B5A7C: .4byte gMain
+_080B5A80: .4byte 0x0000043c
+_080B5A84:
+ bl sub_80B5E20
+ bl sub_80B5E3C
+ bl sub_80B5C04
+ ldr r0, _080B5A9C
+ bl SetMainCallback2
+_080B5A96:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B5A9C: .4byte sub_80B5AA0
+ thumb_func_end C2_NamingScreen
+
+ thumb_func_start sub_80B5AA0
+sub_80B5AA0: @ 80B5AA0
+ push {lr}
+ bl RunTasks
+ bl AnimateSprites
+ bl BuildOamBuffer
+ bl UpdatePaletteFade
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B5AA0
+
+ thumb_func_start sub_80B5AB8
+sub_80B5AB8: @ 80B5AB8
+ push {r4,lr}
+ bl LoadOam
+ bl ProcessSpriteCopyRequests
+ bl TransferPlttBuffer
+ ldr r1, _080B5B00
+ ldr r4, _080B5B04
+ ldrh r0, [r4, 0x4]
+ strh r0, [r1]
+ adds r1, 0x4
+ ldrh r0, [r4, 0x6]
+ strh r0, [r1]
+ ldr r2, _080B5B08
+ ldrh r1, [r2]
+ ldr r3, _080B5B0C
+ adds r0, r3, 0
+ ands r0, r1
+ strh r0, [r2]
+ ldrh r0, [r2]
+ ldrh r1, [r4, 0x8]
+ orrs r0, r1
+ strh r0, [r2]
+ adds r2, 0x2
+ ldrh r0, [r2]
+ ands r3, r0
+ strh r3, [r2]
+ ldrh r0, [r2]
+ ldrh r1, [r4, 0xA]
+ orrs r0, r1
+ strh r0, [r2]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B5B00: .4byte REG_BG1VOFS
+_080B5B04: .4byte 0x02000000
+_080B5B08: .4byte REG_BG1CNT
+_080B5B0C: .4byte 0x0000fffc
+ thumb_func_end sub_80B5AB8
+
+ thumb_func_start AddNamingScreenTask
+AddNamingScreenTask: @ 80B5B10
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ mov r8, r0
+ mov r9, r1
+ adds r5, r2, 0
+ adds r6, r3, 0
+ ldr r7, [sp, 0x1C]
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ lsls r5, 16
+ lsrs r5, 16
+ lsls r6, 16
+ lsrs r6, 16
+ ldr r0, _080B5B74
+ movs r1, 0xFF
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ ldr r0, _080B5B78
+ adds r4, r0
+ mov r0, r8
+ strh r0, [r4, 0x8]
+ strh r5, [r4, 0xA]
+ strh r6, [r4, 0xC]
+ lsrs r0, r7, 16
+ strh r0, [r4, 0xE]
+ strh r7, [r4, 0x10]
+ adds r0, r4, 0
+ adds r0, 0x12
+ mov r1, r9
+ bl StoreWordInTwoHalfwords
+ adds r4, 0x16
+ adds r0, r4, 0
+ ldr r1, [sp, 0x20]
+ bl StoreWordInTwoHalfwords
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B5B74: .4byte NamingScreenDummyTask
+_080B5B78: .4byte gTasks
+ thumb_func_end AddNamingScreenTask
+
+ thumb_func_start GetNamingScreenParameters
+GetNamingScreenParameters: @ 80B5B7C
+ push {r4-r6,lr}
+ ldr r0, _080B5BD8
+ bl FindTaskIdByFunc
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r4, r5, 2
+ adds r4, r5
+ lsls r4, 3
+ ldr r0, _080B5BDC
+ adds r4, r0
+ ldr r6, _080B5BE0
+ ldrh r0, [r4, 0x8]
+ strb r0, [r6, 0x1]
+ ldrh r0, [r4, 0xA]
+ strh r0, [r6, 0x3E]
+ ldrh r1, [r4, 0xC]
+ adds r0, r6, 0
+ adds r0, 0x40
+ strh r1, [r0]
+ movs r1, 0xE
+ ldrsh r0, [r4, r1]
+ lsls r0, 16
+ ldrh r1, [r4, 0x10]
+ orrs r0, r1
+ str r0, [r6, 0x44]
+ adds r0, r4, 0
+ adds r0, 0x12
+ adds r1, r6, 0
+ adds r1, 0x38
+ bl LoadWordFromTwoHalfwords
+ adds r4, 0x16
+ adds r1, r6, 0
+ adds r1, 0x48
+ adds r0, r4, 0
+ bl LoadWordFromTwoHalfwords
+ adds r0, r5, 0
+ bl DestroyTask
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B5BD8: .4byte NamingScreenDummyTask
+_080B5BDC: .4byte gTasks
+_080B5BE0: .4byte 0x02000000
+ thumb_func_end GetNamingScreenParameters
+
+ thumb_func_start NamingScreenDummyTask
+NamingScreenDummyTask: @ 80B5BE4
+ bx lr
+ thumb_func_end NamingScreenDummyTask
+
+ thumb_func_start NamingScreen_TurnOffScreen
+NamingScreen_TurnOffScreen: @ 80B5BE8
+ push {lr}
+ movs r0, 0
+ bl SetVBlankCallback
+ movs r0, 0
+ bl SetHBlankCallback
+ movs r1, 0x80
+ lsls r1, 19
+ movs r0, 0
+ strh r0, [r1]
+ pop {r0}
+ bx r0
+ thumb_func_end NamingScreen_TurnOffScreen
+
+ thumb_func_start sub_80B5C04
+sub_80B5C04: @ 80B5C04
+ push {r4,lr}
+ ldr r0, _080B5C3C
+ bl SetVBlankCallback
+ ldr r3, _080B5C40
+ ldrh r2, [r3]
+ movs r0, 0
+ strh r0, [r3]
+ ldr r4, _080B5C44
+ ldrh r0, [r4]
+ movs r1, 0x1
+ orrs r0, r1
+ strh r0, [r4]
+ strh r2, [r3]
+ ldr r2, _080B5C48
+ ldrh r0, [r2]
+ movs r1, 0x8
+ orrs r0, r1
+ strh r0, [r2]
+ movs r1, 0x80
+ lsls r1, 19
+ movs r2, 0xFA
+ lsls r2, 5
+ adds r0, r2, 0
+ strh r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B5C3C: .4byte sub_80B5AB8
+_080B5C40: .4byte 0x04000208
+_080B5C44: .4byte 0x04000200
+_080B5C48: .4byte REG_DISPSTAT
+ thumb_func_end sub_80B5C04
+
+ thumb_func_start NamingScreen_ClearVram
+NamingScreen_ClearVram: @ 80B5C4C
+ push {r4-r7,lr}
+ sub sp, 0x4
+ movs r2, 0xC0
+ lsls r2, 19
+ movs r3, 0x80
+ lsls r3, 9
+ mov r4, sp
+ movs r6, 0
+ ldr r1, _080B5C98
+ movs r5, 0x80
+ lsls r5, 5
+ ldr r7, _080B5C9C
+ movs r0, 0x81
+ lsls r0, 24
+ mov r12, r0
+_080B5C6A:
+ strh r6, [r4]
+ mov r0, sp
+ str r0, [r1]
+ str r2, [r1, 0x4]
+ str r7, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ adds r2, r5
+ subs r3, r5
+ cmp r3, r5
+ bhi _080B5C6A
+ strh r6, [r4]
+ mov r0, sp
+ str r0, [r1]
+ str r2, [r1, 0x4]
+ lsrs r0, r3, 1
+ mov r2, r12
+ orrs r0, r2
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B5C98: .4byte 0x040000d4
+_080B5C9C: .4byte 0x81000800
+ thumb_func_end NamingScreen_ClearVram
+
+ thumb_func_start NamingScreen_ClearOam
+NamingScreen_ClearOam: @ 80B5CA0
+ sub sp, 0x4
+ movs r2, 0xE0
+ lsls r2, 19
+ mov r1, sp
+ movs r0, 0
+ strh r0, [r1]
+ ldr r0, _080B5CBC
+ str r1, [r0]
+ str r2, [r0, 0x4]
+ ldr r1, _080B5CC0
+ str r1, [r0, 0x8]
+ ldr r0, [r0, 0x8]
+ add sp, 0x4
+ bx lr
+ .align 2, 0
+_080B5CBC: .4byte 0x040000d4
+_080B5CC0: .4byte 0x81000200
+ thumb_func_end NamingScreen_ClearOam
+
+ thumb_func_start NamingScreen_SetUpVideoRegs
+NamingScreen_SetUpVideoRegs: @ 80B5CC4
+ push {r4,r5,lr}
+ ldr r5, _080B5D2C
+ movs r1, 0
+ strh r1, [r5]
+ ldr r2, _080B5D30
+ strh r1, [r2]
+ ldr r3, _080B5D34
+ strh r1, [r3]
+ ldr r4, _080B5D38
+ strh r1, [r4]
+ ldr r0, _080B5D3C
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ movs r1, 0xF8
+ lsls r1, 5
+ adds r0, r1, 0
+ strh r0, [r5]
+ ldr r1, _080B5D40
+ adds r0, r1, 0
+ strh r0, [r2]
+ ldr r2, _080B5D44
+ adds r0, r2, 0
+ strh r0, [r3]
+ ldr r1, _080B5D48
+ adds r0, r1, 0
+ strh r0, [r4]
+ ldr r1, _080B5D4C
+ movs r2, 0xC8
+ lsls r2, 3
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r2, _080B5D50
+ adds r0, r2, 0
+ strh r0, [r1]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B5D2C: .4byte REG_BG0CNT
+_080B5D30: .4byte REG_BG1CNT
+_080B5D34: .4byte REG_BG2CNT
+_080B5D38: .4byte REG_BG3CNT
+_080B5D3C: .4byte REG_BG0HOFS
+_080B5D40: .4byte 0x00001c01
+_080B5D44: .4byte 0x00001d0a
+_080B5D48: .4byte 0x00001e03
+_080B5D4C: .4byte REG_BLDCNT
+_080B5D50: .4byte 0x0000080c
+ thumb_func_end NamingScreen_SetUpVideoRegs
+
+ thumb_func_start NamingScreen_Init
+NamingScreen_Init: @ 80B5D54
+ push {r4-r6,lr}
+ bl GetNamingScreenParameters
+ ldr r4, _080B5DBC
+ movs r0, 0
+ strb r0, [r4]
+ movs r2, 0
+ strh r0, [r4, 0x4]
+ strh r0, [r4, 0x6]
+ movs r1, 0x1
+ movs r0, 0x1
+ strh r0, [r4, 0x8]
+ movs r0, 0x2
+ strh r0, [r4, 0xA]
+ strb r2, [r4, 0xC]
+ strb r1, [r4, 0xD]
+ ldr r1, _080B5DC0
+ ldrb r0, [r4, 0x1]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ str r0, [r4, 0x34]
+ ldrb r1, [r0, 0x4]
+ strb r1, [r4, 0xE]
+ ldrb r1, [r0, 0x1]
+ lsrs r1, 1
+ movs r0, 0xE
+ subs r0, r1
+ strh r0, [r4, 0x2]
+ ldr r6, _080B5DC4
+ ldrh r0, [r6]
+ strh r0, [r4, 0x3C]
+ adds r5, r4, 0
+ adds r5, 0x11
+ adds r0, r5, 0
+ movs r1, 0xFF
+ movs r2, 0x10
+ bl memset
+ ldr r0, [r4, 0x34]
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080B5DB2
+ ldr r1, [r4, 0x38]
+ adds r0, r5, 0
+ bl StringCopy
+_080B5DB2:
+ movs r0, 0x10
+ strh r0, [r6]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B5DBC: .4byte 0x02000000
+_080B5DC0: .4byte gUnknown_083CE398
+_080B5DC4: .4byte gKeyRepeatStartDelay
+ thumb_func_end NamingScreen_Init
+
+ thumb_func_start sub_80B5DC8
+sub_80B5DC8: @ 80B5DC8
+ push {r4,lr}
+ ldr r4, _080B5DE0
+ adds r0, r4, 0
+ bl SetUpWindowConfig
+ adds r0, r4, 0
+ bl InitMenuWindow
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B5DE0: .4byte gWindowConfig_81E6E88
+ thumb_func_end sub_80B5DC8
+
+ thumb_func_start NamingScreen_ResetObjects
+NamingScreen_ResetObjects: @ 80B5DE4
+ push {lr}
+ bl ResetPaletteFade
+ bl ResetSpriteData
+ bl FreeAllSpritePalettes
+ bl ResetTasks
+ pop {r0}
+ bx r0
+ thumb_func_end NamingScreen_ResetObjects
+
+ thumb_func_start sub_80B5DFC
+sub_80B5DFC: @ 80B5DFC
+ push {lr}
+ bl sub_80B7558
+ bl sub_80B753C
+ bl sub_80B7680
+ bl sub_80B75C4
+ bl sub_80B7794
+ bl sub_80B78A8
+ bl sub_80B7960
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B5DFC
+
+ thumb_func_start sub_80B5E20
+sub_80B5E20: @ 80B5E20
+ push {lr}
+ bl sub_80B6774
+ bl sub_80B6A80
+ bl sub_80B6CA8
+ bl sub_80B6D04
+ bl sub_80B6E44
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B5E20
+
+ thumb_func_start sub_80B5E3C
+sub_80B5E3C: @ 80B5E3C
+ push {lr}
+ bl sub_80B61D8
+ bl sub_80B6438
+ bl sub_80B5E50
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B5E3C
+
+ thumb_func_start sub_80B5E50
+sub_80B5E50: @ 80B5E50
+ push {r4,lr}
+ ldr r4, _080B5E6C
+ adds r0, r4, 0
+ movs r1, 0x2
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ bl _call_via_r4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B5E6C: .4byte sub_80B5E70
+ thumb_func_end sub_80B5E50
+
+ thumb_func_start sub_80B5E70
+sub_80B5E70: @ 80B5E70
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r7, _080B5E9C
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r4, r1, 3
+ ldr r6, _080B5EA0
+ ldr r5, _080B5EA4
+_080B5E82:
+ ldrb r0, [r6]
+ lsls r0, 2
+ adds r0, r7
+ ldr r1, [r0]
+ adds r0, r4, r5
+ bl _call_via_r1
+ lsls r0, 24
+ cmp r0, 0
+ bne _080B5E82
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B5E9C: .4byte gUnknown_083CE218
+_080B5EA0: .4byte 0x02000000
+_080B5EA4: .4byte gTasks
+ thumb_func_end sub_80B5E70
+
+ thumb_func_start sub_80B5EA8
+sub_80B5EA8: @ 80B5EA8
+ push {lr}
+ sub sp, 0x4
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ ldr r1, _080B5ECC
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ movs r0, 0
+ add sp, 0x4
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080B5ECC: .4byte 0x02000000
+ thumb_func_end sub_80B5EA8
+
+ thumb_func_start sub_80B5ED0
+sub_80B5ED0: @ 80B5ED0
+ push {lr}
+ ldr r0, _080B5EF8
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080B5EF2
+ movs r0, 0x1
+ bl sub_80B6210
+ movs r0, 0x1
+ bl sub_80B68D8
+ ldr r1, _080B5EFC
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+_080B5EF2:
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080B5EF8: .4byte gPaletteFade
+_080B5EFC: .4byte 0x02000000
+ thumb_func_end sub_80B5ED0
+
+ thumb_func_start sub_80B5F00
+sub_80B5F00: @ 80B5F00
+ push {lr}
+ bl sub_80B60B8
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80B5F00
+
+ thumb_func_start sub_80B5F10
+sub_80B5F10: @ 80B5F10
+ push {lr}
+ bl sub_80B6938
+ lsls r0, 24
+ cmp r0, 0
+ beq _080B5F2C
+ movs r0, 0x1
+ bl sub_80B6210
+ bl sub_80B6878
+ ldr r1, _080B5F34
+ movs r0, 0x2
+ strb r0, [r1]
+_080B5F2C:
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080B5F34: .4byte 0x02000000
+ thumb_func_end sub_80B5F10
+
+ thumb_func_start sub_80B5F38
+sub_80B5F38: @ 80B5F38
+ push {lr}
+ movs r0, 0
+ bl sub_80B6210
+ bl sub_80B6B14
+ bl sub_80B65F0
+ movs r0, 0x1
+ bl sub_80B6888
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x1
+ bl sub_80B6460
+ movs r0, 0x6
+ bl PlaySE
+ ldr r1, _080B5F6C
+ movs r0, 0x5
+ strb r0, [r1]
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080B5F6C: .4byte 0x02000000
+ thumb_func_end sub_80B5F38
+
+ thumb_func_start sub_80B5F70
+sub_80B5F70: @ 80B5F70
+ push {r4,r5,lr}
+ sub sp, 0x4
+ bl sub_80B6610
+ lsls r0, 24
+ cmp r0, 0
+ beq _080B5FDC
+ ldr r4, _080B5FE8
+ movs r0, 0x2
+ strb r0, [r4]
+ ldrb r0, [r4, 0xE]
+ adds r0, 0x1
+ strb r0, [r4, 0xE]
+ ldrb r0, [r4, 0xE]
+ movs r1, 0x3
+ bl __umodsi3
+ strb r0, [r4, 0xE]
+ bl sub_80B7614
+ bl sub_80B77F8
+ movs r0, 0x1
+ bl sub_80B6210
+ mov r5, sp
+ adds r5, 0x2
+ mov r0, sp
+ adds r1, r5, 0
+ bl sub_80B6858
+ ldrb r0, [r4, 0xE]
+ cmp r0, 0x2
+ bne _080B5FC8
+ mov r0, sp
+ ldrh r0, [r0]
+ subs r0, 0x6
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x1
+ bhi _080B5FC8
+ mov r1, sp
+ movs r0, 0x5
+ strh r0, [r1]
+_080B5FC8:
+ mov r0, sp
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ movs r2, 0
+ ldrsh r1, [r5, r2]
+ bl sub_80B680C
+ movs r0, 0
+ bl sub_80B6888
+_080B5FDC:
+ movs r0, 0
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080B5FE8: .4byte 0x02000000
+ thumb_func_end sub_80B5F70
+
+ thumb_func_start pokemon_store
+pokemon_store: @ 80B5FEC
+ push {r4,lr}
+ bl sub_80B74B0
+ movs r0, 0
+ bl sub_80B6210
+ movs r0, 0
+ bl sub_80B68D8
+ movs r0, 0x3
+ movs r1, 0
+ movs r2, 0x1
+ bl sub_80B6460
+ ldr r0, _080B6030
+ ldr r4, _080B6034
+ ldrh r1, [r4, 0x3C]
+ strh r1, [r0]
+ ldrb r0, [r4, 0x1]
+ cmp r0, 0x2
+ bne _080B6038
+ bl CalculatePlayerPartyCount
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x5
+ bls _080B6038
+ bl sub_80B74FC
+ movs r0, 0x7
+ strb r0, [r4]
+ movs r0, 0
+ b _080B6040
+ .align 2, 0
+_080B6030: .4byte gKeyRepeatStartDelay
+_080B6034: .4byte 0x02000000
+_080B6038:
+ ldr r1, _080B6048
+ movs r0, 0x8
+ strb r0, [r1]
+ movs r0, 0x1
+_080B6040:
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080B6048: .4byte 0x02000000
+ thumb_func_end pokemon_store
+
+ thumb_func_start sub_80B604C
+sub_80B604C: @ 80B604C
+ push {lr}
+ bl MenuUpdateWindowText
+ lsls r0, 24
+ cmp r0, 0
+ beq _080B6060
+ ldr r1, _080B6068
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+_080B6060:
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080B6068: .4byte 0x02000000
+ thumb_func_end sub_80B604C
+
+ thumb_func_start sub_80B606C
+sub_80B606C: @ 80B606C
+ push {lr}
+ sub sp, 0x4
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r1, _080B6090
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ movs r0, 0
+ add sp, 0x4
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080B6090: .4byte 0x02000000
+ thumb_func_end sub_80B606C
+
+ thumb_func_start sub_80B6094
+sub_80B6094: @ 80B6094
+ push {lr}
+ ldr r0, _080B60B0
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080B60AA
+ ldr r0, _080B60B4
+ ldr r0, [r0, 0x48]
+ bl SetMainCallback2
+_080B60AA:
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080B60B0: .4byte gPaletteFade
+_080B60B4: .4byte 0x02000000
+ thumb_func_end sub_80B6094
+
+ thumb_func_start sub_80B60B8
+sub_80B60B8: @ 80B60B8
+ push {r4,r5,lr}
+ bl sub_80B61EC
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r5, r4, 0
+ bl sub_80B6958
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r4, 0x8
+ bne _080B60D6
+ bl sub_80B61C8
+ b _080B60F2
+_080B60D6:
+ cmp r4, 0x6
+ bne _080B60E0
+ bl sub_80B6FBC
+ b _080B6100
+_080B60E0:
+ cmp r5, 0x7
+ beq _080B60FC
+ ldr r1, _080B60F8
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, [r0]
+ adds r0, r5, 0
+ bl _call_via_r1
+_080B60F2:
+ lsls r0, 24
+ lsrs r0, 24
+ b _080B6102
+ .align 2, 0
+_080B60F8: .4byte gUnknown_083CE240
+_080B60FC:
+ bl sub_80B7090
+_080B6100:
+ movs r0, 0
+_080B6102:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80B60B8
+
+ thumb_func_start sub_80B6108
+sub_80B6108: @ 80B6108
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x3
+ movs r1, 0
+ movs r2, 0
+ bl sub_80B6460
+ cmp r4, 0x5
+ bne _080B613C
+ bl sub_80B7004
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl sub_80B6914
+ cmp r4, 0
+ beq _080B613C
+ movs r0, 0
+ bl sub_80B6210
+ ldr r1, _080B6144
+ movs r0, 0x3
+ strb r0, [r1]
+_080B613C:
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080B6144: .4byte 0x02000000
+ thumb_func_end sub_80B6108
+
+ thumb_func_start sub_80B6148
+sub_80B6148: @ 80B6148
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0
+ movs r1, 0x1
+ movs r2, 0
+ bl sub_80B6460
+ cmp r4, 0x5
+ beq _080B6162
+ movs r0, 0
+ b _080B616A
+_080B6162:
+ bl sub_80B61C8
+ lsls r0, 24
+ lsrs r0, 24
+_080B616A:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80B6148
+
+ thumb_func_start sub_80B6170
+sub_80B6170: @ 80B6170
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x1
+ movs r1, 0x1
+ movs r2, 0
+ bl sub_80B6460
+ cmp r4, 0x5
+ bne _080B618A
+ bl sub_80B6FBC
+_080B618A:
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80B6170
+
+ thumb_func_start sub_80B6194
+sub_80B6194: @ 80B6194
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x2
+ movs r1, 0x1
+ movs r2, 0
+ bl sub_80B6460
+ cmp r4, 0x5
+ beq _080B61AE
+ movs r0, 0
+ b _080B61BC
+_080B61AE:
+ movs r0, 0x5
+ bl PlaySE
+ ldr r1, _080B61C4
+ movs r0, 0x6
+ strb r0, [r1]
+ movs r0, 0x1
+_080B61BC:
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080B61C4: .4byte 0x02000000
+ thumb_func_end sub_80B6194
+
+ thumb_func_start sub_80B61C8
+sub_80B61C8: @ 80B61C8
+ ldr r1, _080B61D4
+ movs r0, 0x4
+ strb r0, [r1]
+ movs r0, 0x1
+ bx lr
+ .align 2, 0
+_080B61D4: .4byte 0x02000000
+ thumb_func_end sub_80B61C8
+
+ thumb_func_start sub_80B61D8
+sub_80B61D8: @ 80B61D8
+ push {lr}
+ ldr r0, _080B61E8
+ movs r1, 0x1
+ bl CreateTask
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B61E8: .4byte sub_80B623C
+ thumb_func_end sub_80B61D8
+
+ thumb_func_start sub_80B61EC
+sub_80B61EC: @ 80B61EC
+ push {lr}
+ ldr r0, _080B6208
+ bl FindTaskIdByFunc
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080B620C
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldrb r0, [r1, 0xA]
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080B6208: .4byte sub_80B623C
+_080B620C: .4byte gTasks
+ thumb_func_end sub_80B61EC
+
+ thumb_func_start sub_80B6210
+sub_80B6210: @ 80B6210
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _080B6234
+ bl FindTaskIdByFunc
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080B6238
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ strh r4, [r1, 0x8]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B6234: .4byte sub_80B623C
+_080B6238: .4byte gTasks
+ thumb_func_end sub_80B6210
+
+ thumb_func_start sub_80B623C
+sub_80B623C: @ 80B623C
+ push {lr}
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r3, _080B6264
+ ldr r2, _080B6268
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ movs r2, 0x8
+ ldrsh r1, [r0, r2]
+ lsls r1, 2
+ adds r1, r3
+ ldr r1, [r1]
+ bl _call_via_r1
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B6264: .4byte gUnknown_083CE250
+_080B6268: .4byte gTasks
+ thumb_func_end sub_80B623C
+
+ thumb_func_start sub_80B626C
+sub_80B626C: @ 80B626C
+ movs r1, 0
+ strh r1, [r0, 0xA]
+ bx lr
+ thumb_func_end sub_80B626C
+
+ thumb_func_start sub_80B6274
+sub_80B6274: @ 80B6274
+ push {lr}
+ adds r2, r0, 0
+ movs r0, 0
+ strh r0, [r2, 0xA]
+ ldr r0, _080B6290
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080B6294
+ movs r0, 0x5
+ strh r0, [r2, 0xA]
+ b _080B62C8
+ .align 2, 0
+_080B6290: .4byte gMain
+_080B6294:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080B62A2
+ movs r0, 0x6
+ strh r0, [r2, 0xA]
+ b _080B62C8
+_080B62A2:
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _080B62B0
+ movs r0, 0x8
+ strh r0, [r2, 0xA]
+ b _080B62C8
+_080B62B0:
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ beq _080B62C2
+ movs r0, 0x9
+ strh r0, [r2, 0xA]
+ bl sub_80B6878
+ b _080B62C8
+_080B62C2:
+ adds r0, r2, 0
+ bl sub_80B62CC
+_080B62C8:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B6274
+
+ thumb_func_start sub_80B62CC
+sub_80B62CC: @ 80B62CC
+ push {r4-r6,lr}
+ sub sp, 0x4
+ adds r5, r0, 0
+ mov r4, sp
+ adds r4, 0x2
+ mov r0, sp
+ adds r1, r4, 0
+ bl sub_80B6858
+ ldr r0, _080B6374
+ ldrh r2, [r0, 0x30]
+ movs r0, 0x40
+ ands r0, r2
+ lsls r0, 16
+ lsrs r0, 16
+ negs r0, r0
+ lsrs r1, r0, 31
+ movs r0, 0x80
+ ands r0, r2
+ cmp r0, 0
+ beq _080B62F8
+ movs r1, 0x2
+_080B62F8:
+ movs r0, 0x20
+ ands r0, r2
+ cmp r0, 0
+ beq _080B6302
+ movs r1, 0x3
+_080B6302:
+ movs r0, 0x10
+ ands r0, r2
+ cmp r0, 0
+ beq _080B630C
+ movs r1, 0x4
+_080B630C:
+ mov r0, sp
+ ldrh r6, [r0]
+ mov r2, sp
+ ldr r0, _080B6378
+ lsls r1, 1
+ adds r0, r1, r0
+ ldrh r3, [r0]
+ adds r0, r6, r3
+ strh r0, [r2]
+ ldr r0, _080B637C
+ adds r1, r0
+ ldrh r0, [r1]
+ ldrh r1, [r4]
+ adds r0, r1
+ strh r0, [r4]
+ mov r0, sp
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ cmp r0, 0
+ bge _080B633A
+ mov r1, sp
+ movs r0, 0x8
+ strh r0, [r1]
+_080B633A:
+ mov r0, sp
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0x8
+ ble _080B634A
+ mov r1, sp
+ movs r0, 0
+ strh r0, [r1]
+_080B634A:
+ lsls r0, r3, 16
+ asrs r1, r0, 16
+ cmp r1, 0
+ beq _080B63CA
+ ldr r0, _080B6380
+ ldrb r0, [r0, 0xE]
+ cmp r0, 0x2
+ bne _080B638A
+ mov r0, sp
+ ldrh r0, [r0]
+ subs r0, 0x6
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x1
+ bhi _080B638A
+ cmp r1, 0
+ ble _080B6384
+ mov r1, sp
+ movs r0, 0x8
+ b _080B6388
+ .align 2, 0
+_080B6374: .4byte gMain
+_080B6378: .4byte gUnknown_083CE258
+_080B637C: .4byte gUnknown_083CE262
+_080B6380: .4byte 0x02000000
+_080B6384:
+ mov r1, sp
+ movs r0, 0x5
+_080B6388:
+ strh r0, [r1]
+_080B638A:
+ mov r0, sp
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ cmp r0, 0x8
+ bne _080B63AC
+ ldrh r0, [r4]
+ strh r0, [r5, 0xC]
+ ldr r1, _080B63A8
+ movs r2, 0
+ ldrsh r0, [r4, r2]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ b _080B63C8
+ .align 2, 0
+_080B63A8: .4byte gUnknown_083CE26C
+_080B63AC:
+ cmp r6, 0x8
+ bne _080B63CA
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ bne _080B63BC
+ ldrh r0, [r5, 0xC]
+ b _080B63C8
+_080B63BC:
+ ldr r0, _080B63FC
+ movs r2, 0
+ ldrsh r1, [r4, r2]
+ lsls r1, 1
+ adds r1, r0
+ ldrh r0, [r1]
+_080B63C8:
+ strh r0, [r4]
+_080B63CA:
+ mov r0, sp
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0x8
+ bne _080B6408
+ movs r2, 0
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ bge _080B63E0
+ movs r0, 0x2
+ strh r0, [r4]
+_080B63E0:
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x2
+ ble _080B63EC
+ movs r0, 0
+ strh r0, [r4]
+_080B63EC:
+ movs r2, 0
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ bne _080B6400
+ movs r0, 0x1
+ strh r0, [r5, 0xC]
+ b _080B6420
+ .align 2, 0
+_080B63FC: .4byte gUnknown_083CE274
+_080B6400:
+ cmp r0, 0x2
+ bne _080B6420
+ strh r0, [r5, 0xC]
+ b _080B6420
+_080B6408:
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bge _080B6414
+ movs r0, 0x3
+ strh r0, [r4]
+_080B6414:
+ movs r2, 0
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x3
+ ble _080B6420
+ movs r0, 0
+ strh r0, [r4]
+_080B6420:
+ mov r0, sp
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ movs r2, 0
+ ldrsh r1, [r4, r2]
+ bl sub_80B680C
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B62CC
+
+ thumb_func_start sub_80B6438
+sub_80B6438: @ 80B6438
+ push {lr}
+ ldr r0, _080B6458
+ movs r1, 0x3
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080B645C
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ movs r0, 0x3
+ strh r0, [r1, 0x8]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B6458: .4byte sub_80B64D4
+_080B645C: .4byte gTasks
+ thumb_func_end sub_80B6438
+
+ thumb_func_start sub_80B6460
+sub_80B6460: @ 80B6460
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r1, 24
+ lsrs r7, r1, 24
+ lsls r2, 24
+ lsrs r6, r2, 24
+ ldr r0, _080B6498
+ bl FindTaskIdByFunc
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _080B649C
+ adds r4, r1, r0
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r5, r0
+ bne _080B64A0
+ cmp r6, 0
+ bne _080B64A0
+ strh r7, [r4, 0xA]
+ movs r0, 0x1
+ strh r0, [r4, 0xC]
+ b _080B64CC
+ .align 2, 0
+_080B6498: .4byte sub_80B64D4
+_080B649C: .4byte gTasks
+_080B64A0:
+ cmp r5, 0x3
+ bne _080B64B0
+ movs r2, 0xA
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ bne _080B64B0
+ cmp r6, 0
+ beq _080B64CC
+_080B64B0:
+ ldrh r1, [r4, 0x8]
+ movs r2, 0x8
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x3
+ beq _080B64C2
+ lsls r0, r1, 24
+ lsrs r0, 24
+ bl sub_80B65AC
+_080B64C2:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ adds r2, r7, 0
+ bl sub_80B65D4
+_080B64CC:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B6460
+
+ thumb_func_start sub_80B64D4
+sub_80B64D4: @ 80B64D4
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _080B6548
+ adds r4, r1, r0
+ ldrh r1, [r4, 0x8]
+ movs r2, 0x8
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x3
+ beq _080B6540
+ movs r2, 0xC
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ beq _080B6540
+ lsls r0, r1, 24
+ lsrs r0, 24
+ bl sub_80B654C
+ lsls r0, 16
+ lsrs r0, 16
+ ldrb r3, [r4, 0xE]
+ adds r1, r3, 0
+ adds r2, r3, 0
+ bl sub_8085C7C
+ ldrh r1, [r4, 0x12]
+ movs r2, 0x12
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ beq _080B6520
+ subs r0, r1, 0x1
+ strh r0, [r4, 0x12]
+ lsls r0, 16
+ cmp r0, 0
+ bne _080B6540
+_080B6520:
+ movs r0, 0x2
+ strh r0, [r4, 0x12]
+ ldrh r1, [r4, 0x10]
+ ldrh r2, [r4, 0xE]
+ adds r0, r1, r2
+ strh r0, [r4, 0xE]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x10
+ beq _080B653C
+ cmp r0, 0
+ bne _080B6540
+ ldrh r0, [r4, 0xA]
+ strh r0, [r4, 0xC]
+_080B653C:
+ negs r0, r1
+ strh r0, [r4, 0x10]
+_080B6540:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B6548: .4byte gTasks
+ thumb_func_end sub_80B64D4
+
+ thumb_func_start sub_80B654C
+sub_80B654C: @ 80B654C
+ push {r4-r6,lr}
+ sub sp, 0x10
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x4
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r0, 20
+ movs r1, 0x87
+ lsls r1, 1
+ adds r5, r1, 0
+ adds r0, r5
+ add r6, sp, 0x8
+ strh r0, [r6]
+ movs r0, 0x6
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r0, 20
+ movs r1, 0x86
+ lsls r1, 1
+ adds r0, r1
+ mov r1, sp
+ adds r1, 0xA
+ strh r0, [r1]
+ movs r0, 0x6
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r0, 20
+ adds r0, r5
+ add r1, sp, 0xC
+ strh r0, [r1]
+ mov r0, sp
+ adds r1, r6, 0
+ movs r2, 0x6
+ bl memcpy
+ lsls r4, 1
+ mov r1, sp
+ adds r0, r1, r4
+ ldrh r0, [r0]
+ add sp, 0x10
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80B654C
+
+ thumb_func_start sub_80B65AC
+sub_80B65AC: @ 80B65AC
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_80B654C
+ lsls r0, 16
+ ldr r2, _080B65CC
+ lsrs r0, 15
+ adds r2, r0, r2
+ ldr r1, _080B65D0
+ adds r0, r1
+ ldrh r0, [r0]
+ strh r0, [r2]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B65CC: .4byte gPlttBufferFaded
+_080B65D0: .4byte gPlttBufferUnfaded
+ thumb_func_end sub_80B65AC
+
+ thumb_func_start sub_80B65D4
+sub_80B65D4: @ 80B65D4
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r2, 24
+ lsrs r2, 24
+ movs r3, 0
+ strh r1, [r0, 0x8]
+ strh r2, [r0, 0xA]
+ movs r2, 0x1
+ strh r2, [r0, 0xC]
+ movs r1, 0xF
+ strh r1, [r0, 0xE]
+ strh r2, [r0, 0x10]
+ strh r3, [r0, 0x12]
+ bx lr
+ thumb_func_end sub_80B65D4
+
+ thumb_func_start sub_80B65F0
+sub_80B65F0: @ 80B65F0
+ push {r4,lr}
+ ldr r4, _080B660C
+ adds r0, r4, 0
+ movs r1, 0
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ bl _call_via_r4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B660C: .4byte sub_80B6630
+ thumb_func_end sub_80B65F0
+
+ thumb_func_start sub_80B6610
+sub_80B6610: @ 80B6610
+ push {lr}
+ ldr r0, _080B6624
+ bl FindTaskIdByFunc
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xFF
+ beq _080B6628
+ movs r0, 0
+ b _080B662A
+ .align 2, 0
+_080B6624: .4byte sub_80B6630
+_080B6628:
+ movs r0, 0x1
+_080B662A:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80B6610
+
+ thumb_func_start sub_80B6630
+sub_80B6630: @ 80B6630
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r5, _080B6660
+ ldr r2, _080B6664
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r4, r1, r2
+_080B6642:
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ lsls r0, 2
+ adds r0, r5
+ ldr r1, [r0]
+ adds r0, r4, 0
+ bl _call_via_r1
+ lsls r0, 24
+ cmp r0, 0
+ bne _080B6642
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B6660: .4byte gUnknown_083CE27C
+_080B6664: .4byte gTasks
+ thumb_func_end sub_80B6630
+
+ thumb_func_start sub_80B6668
+sub_80B6668: @ 80B6668
+ ldr r2, _080B667C
+ movs r1, 0
+ strh r1, [r2, 0x4]
+ strh r1, [r2, 0x6]
+ ldrh r1, [r0, 0x8]
+ adds r1, 0x1
+ strh r1, [r0, 0x8]
+ movs r0, 0
+ bx lr
+ .align 2, 0
+_080B667C: .4byte 0x02000000
+ thumb_func_end sub_80B6668
+
+ thumb_func_start sub_80B6680
+sub_80B6680: @ 80B6680
+ push {r4,r5,lr}
+ sub sp, 0x8
+ adds r4, r0, 0
+ ldr r0, _080B66E4
+ ldr r1, [r0, 0x4]
+ ldr r0, [r0]
+ str r0, [sp]
+ str r1, [sp, 0x4]
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x4
+ strh r0, [r4, 0xA]
+ movs r1, 0xA
+ ldrsh r0, [r4, r1]
+ movs r1, 0x28
+ bl Sin
+ ldr r5, _080B66E8
+ ldrb r1, [r5, 0xC]
+ lsls r1, 2
+ add r1, sp
+ ldr r1, [r1]
+ strh r0, [r1]
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x80
+ movs r1, 0xFF
+ ands r0, r1
+ movs r1, 0x28
+ bl Sin
+ ldrb r1, [r5, 0xD]
+ lsls r1, 2
+ add r1, sp
+ ldr r1, [r1]
+ strh r0, [r1]
+ movs r1, 0xA
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x3F
+ ble _080B66DA
+ ldrb r1, [r5, 0x8]
+ ldrh r0, [r5, 0xA]
+ strh r0, [r5, 0x8]
+ strh r1, [r5, 0xA]
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+_080B66DA:
+ movs r0, 0
+ add sp, 0x8
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080B66E4: .4byte gUnknown_083CE28C
+_080B66E8: .4byte 0x02000000
+ thumb_func_end sub_80B6680
+
+ thumb_func_start sub_80B66EC
+sub_80B66EC: @ 80B66EC
+ push {r4,r5,lr}
+ sub sp, 0x8
+ adds r4, r0, 0
+ ldr r0, _080B6750
+ ldr r1, [r0, 0x4]
+ ldr r0, [r0]
+ str r0, [sp]
+ str r1, [sp, 0x4]
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x4
+ strh r0, [r4, 0xA]
+ movs r1, 0xA
+ ldrsh r0, [r4, r1]
+ movs r1, 0x28
+ bl Sin
+ ldr r5, _080B6754
+ ldrb r1, [r5, 0xC]
+ lsls r1, 2
+ add r1, sp
+ ldr r1, [r1]
+ strh r0, [r1]
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x80
+ movs r1, 0xFF
+ ands r0, r1
+ movs r1, 0x28
+ bl Sin
+ ldrb r1, [r5, 0xD]
+ lsls r1, 2
+ add r1, sp
+ ldr r1, [r1]
+ strh r0, [r1]
+ movs r1, 0xA
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x7F
+ ble _080B6746
+ ldrb r1, [r5, 0xC]
+ ldrb r0, [r5, 0xD]
+ strb r0, [r5, 0xC]
+ strb r1, [r5, 0xD]
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+_080B6746:
+ movs r0, 0
+ add sp, 0x8
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080B6750: .4byte gUnknown_083CE28C
+_080B6754: .4byte 0x02000000
+ thumb_func_end sub_80B66EC
+
+ thumb_func_start sub_80B6758
+sub_80B6758: @ 80B6758
+ push {lr}
+ ldr r0, _080B6770
+ bl FindTaskIdByFunc
+ lsls r0, 24
+ lsrs r0, 24
+ bl DestroyTask
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080B6770: .4byte sub_80B6630
+ thumb_func_end sub_80B6758
+
+ thumb_func_start sub_80B6774
+sub_80B6774: @ 80B6774
+ push {r4,r5,lr}
+ ldr r0, _080B67E0
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl CreateSprite
+ ldr r4, _080B67E4
+ strb r0, [r4, 0xF]
+ ldr r5, _080B67E8
+ ldrb r0, [r4, 0xF]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r5
+ ldrb r3, [r1, 0x5]
+ movs r2, 0xD
+ negs r2, r2
+ adds r0, r2, 0
+ ands r0, r3
+ movs r3, 0x4
+ orrs r0, r3
+ strb r0, [r1, 0x5]
+ ldrb r1, [r4, 0xF]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldrb r1, [r0, 0x1]
+ ands r2, r1
+ orrs r2, r3
+ strb r2, [r0, 0x1]
+ ldrb r1, [r4, 0xF]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ movs r1, 0x1
+ strh r1, [r0, 0x3A]
+ ldrb r1, [r4, 0xF]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ movs r1, 0x2
+ strh r1, [r0, 0x3A]
+ movs r0, 0
+ movs r1, 0
+ bl sub_80B680C
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B67E0: .4byte gSpriteTemplate_83CE640
+_080B67E4: .4byte 0x02000000
+_080B67E8: .4byte gSprites
+ thumb_func_end sub_80B6774
+
+ thumb_func_start sub_80B67EC
+sub_80B67EC: @ 80B67EC
+ ldr r3, _080B6804
+ lsls r0, 16
+ asrs r0, 16
+ ldr r1, _080B6808
+ ldrb r2, [r1, 0xE]
+ lsls r1, r2, 3
+ adds r1, r2
+ adds r0, r1
+ adds r0, r3
+ ldrb r0, [r0]
+ bx lr
+ .align 2, 0
+_080B6804: .4byte gUnknown_083CE294
+_080B6808: .4byte 0x02000000
+ thumb_func_end sub_80B67EC
+
+ thumb_func_start sub_80B680C
+sub_80B680C: @ 80B680C
+ push {r4-r6,lr}
+ adds r5, r1, 0
+ lsls r0, 16
+ lsls r5, 16
+ lsrs r5, 16
+ ldr r1, _080B6850
+ ldrb r1, [r1, 0xF]
+ lsls r4, r1, 4
+ adds r4, r1
+ lsls r4, 2
+ ldr r1, _080B6854
+ adds r4, r1
+ lsrs r6, r0, 16
+ asrs r0, 16
+ bl sub_80B67EC
+ lsls r0, 24
+ lsrs r0, 21
+ adds r0, 0x1B
+ strh r0, [r4, 0x20]
+ lsls r0, r5, 16
+ asrs r0, 12
+ adds r0, 0x50
+ strh r0, [r4, 0x22]
+ ldrh r0, [r4, 0x2E]
+ strh r0, [r4, 0x32]
+ ldrh r0, [r4, 0x30]
+ strh r0, [r4, 0x34]
+ strh r6, [r4, 0x2E]
+ strh r5, [r4, 0x30]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B6850: .4byte 0x02000000
+_080B6854: .4byte gSprites
+ thumb_func_end sub_80B680C
+
+ thumb_func_start sub_80B6858
+sub_80B6858: @ 80B6858
+ ldr r2, _080B6870
+ ldrb r3, [r2, 0xF]
+ lsls r2, r3, 4
+ adds r2, r3
+ lsls r2, 2
+ ldr r3, _080B6874
+ adds r2, r3
+ ldrh r3, [r2, 0x2E]
+ strh r3, [r0]
+ ldrh r0, [r2, 0x30]
+ strh r0, [r1]
+ bx lr
+ .align 2, 0
+_080B6870: .4byte 0x02000000
+_080B6874: .4byte gSprites
+ thumb_func_end sub_80B6858
+
+ thumb_func_start sub_80B6878
+sub_80B6878: @ 80B6878
+ push {lr}
+ movs r0, 0x8
+ movs r1, 0x2
+ bl sub_80B680C
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B6878
+
+ thumb_func_start sub_80B6888
+sub_80B6888: @ 80B6888
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r5, _080B68CC
+ ldr r4, _080B68D0
+ ldrb r1, [r4, 0xF]
+ lsls r2, r1, 4
+ adds r2, r1
+ lsls r2, 2
+ adds r2, r5
+ ldrh r3, [r2, 0x36]
+ ldr r1, _080B68D4
+ ands r1, r3
+ strh r1, [r2, 0x36]
+ ldrb r2, [r4, 0xF]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r5
+ ldrh r2, [r1, 0x36]
+ orrs r0, r2
+ strh r0, [r1, 0x36]
+ ldrb r1, [r4, 0xF]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ movs r1, 0
+ bl StartSpriteAnim
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B68CC: .4byte gSprites
+_080B68D0: .4byte 0x02000000
+_080B68D4: .4byte 0xffffff00
+ thumb_func_end sub_80B6888
+
+ thumb_func_start sub_80B68D8
+sub_80B68D8: @ 80B68D8
+ push {r4,r5,lr}
+ lsls r0, 24
+ ldr r5, _080B690C
+ ldr r4, _080B6910
+ ldrb r1, [r4, 0xF]
+ lsls r2, r1, 4
+ adds r2, r1
+ lsls r2, 2
+ adds r2, r5
+ ldrh r3, [r2, 0x36]
+ movs r1, 0xFF
+ ands r1, r3
+ strh r1, [r2, 0x36]
+ ldrb r2, [r4, 0xF]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r5
+ lsrs r0, 16
+ ldrh r2, [r1, 0x36]
+ orrs r0, r2
+ strh r0, [r1, 0x36]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B690C: .4byte gSprites
+_080B6910: .4byte 0x02000000
+ thumb_func_end sub_80B68D8
+
+ thumb_func_start sub_80B6914
+sub_80B6914: @ 80B6914
+ push {lr}
+ ldr r0, _080B6930
+ ldrb r1, [r0, 0xF]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080B6934
+ adds r0, r1
+ movs r1, 0x1
+ bl StartSpriteAnim
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B6930: .4byte 0x02000000
+_080B6934: .4byte gSprites
+ thumb_func_end sub_80B6914
+
+ thumb_func_start sub_80B6938
+sub_80B6938: @ 80B6938
+ ldr r2, _080B6950
+ ldr r0, _080B6954
+ ldrb r1, [r0, 0xF]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ adds r0, 0x3F
+ ldrb r0, [r0]
+ lsls r0, 27
+ lsrs r0, 31
+ bx lr
+ .align 2, 0
+_080B6950: .4byte gSprites
+_080B6954: .4byte 0x02000000
+ thumb_func_end sub_80B6938
+
+ thumb_func_start sub_80B6958
+sub_80B6958: @ 80B6958
+ push {r4,r5,lr}
+ sub sp, 0x8
+ ldr r1, _080B6988
+ mov r0, sp
+ movs r2, 0x3
+ bl memcpy
+ add r4, sp, 0x4
+ mov r5, sp
+ adds r5, 0x6
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_80B6858
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x7
+ ble _080B698C
+ movs r1, 0
+ ldrsh r0, [r5, r1]
+ add r0, sp
+ ldrb r0, [r0]
+ b _080B698E
+ .align 2, 0
+_080B6988: .4byte gUnknown_083CE2AF
+_080B698C:
+ movs r0, 0
+_080B698E:
+ add sp, 0x8
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80B6958
+
+ thumb_func_start sub_80B6998
+sub_80B6998: @ 80B6998
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080B69B0
+ adds r0, r4, 0
+ movs r1, 0
+ bl StartSpriteAnim
+_080B69B0:
+ ldrh r1, [r4, 0x36]
+ movs r0, 0xFF
+ ands r0, r1
+ adds r3, r4, 0
+ adds r3, 0x3E
+ movs r1, 0x1
+ ands r0, r1
+ lsls r0, 2
+ ldrb r1, [r3]
+ movs r2, 0x5
+ negs r2, r2
+ ands r2, r1
+ orrs r2, r0
+ strb r2, [r3]
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x8
+ bne _080B69DA
+ movs r0, 0x4
+ orrs r2, r0
+ strb r2, [r3]
+_080B69DA:
+ ldrb r1, [r3]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ bne _080B6A0A
+ movs r2, 0x36
+ ldrsh r0, [r4, r2]
+ movs r1, 0xFF
+ lsls r1, 8
+ ands r0, r1
+ cmp r0, 0
+ beq _080B6A0A
+ movs r0, 0x2E
+ ldrsh r1, [r4, r0]
+ movs r2, 0x32
+ ldrsh r0, [r4, r2]
+ cmp r1, r0
+ bne _080B6A0A
+ movs r0, 0x30
+ ldrsh r1, [r4, r0]
+ movs r2, 0x34
+ ldrsh r0, [r4, r2]
+ cmp r1, r0
+ beq _080B6A16
+_080B6A0A:
+ movs r0, 0
+ strh r0, [r4, 0x38]
+ movs r0, 0x1
+ strh r0, [r4, 0x3A]
+ movs r0, 0x2
+ strh r0, [r4, 0x3C]
+_080B6A16:
+ ldrh r0, [r4, 0x3C]
+ subs r0, 0x1
+ strh r0, [r4, 0x3C]
+ lsls r0, 16
+ cmp r0, 0
+ bne _080B6A3E
+ ldrh r1, [r4, 0x3A]
+ ldrh r2, [r4, 0x38]
+ adds r0, r1, r2
+ strh r0, [r4, 0x38]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x10
+ beq _080B6A36
+ cmp r0, 0
+ bne _080B6A3A
+_080B6A36:
+ negs r0, r1
+ strh r0, [r4, 0x3A]
+_080B6A3A:
+ movs r0, 0x2
+ strh r0, [r4, 0x3C]
+_080B6A3E:
+ movs r1, 0x36
+ ldrsh r0, [r4, r1]
+ movs r1, 0xFF
+ lsls r1, 8
+ ands r0, r1
+ cmp r0, 0
+ beq _080B6A74
+ ldrh r4, [r4, 0x38]
+ lsls r5, r4, 24
+ lsrs r5, 24
+ lsls r4, 16
+ asrs r4, 17
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x5
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r0, 4
+ ldr r2, _080B6A7C
+ adds r0, r2
+ lsrs r0, 16
+ adds r1, r4, 0
+ adds r2, r5, 0
+ adds r3, r5, 0
+ bl sub_8085C7C
+_080B6A74:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B6A7C: .4byte 0x01010000
+ thumb_func_end sub_80B6998
+
+ thumb_func_start sub_80B6A80
+sub_80B6A80: @ 80B6A80
+ push {r4,r5,lr}
+ ldr r0, _080B6AF8
+ movs r1, 0xCC
+ movs r2, 0x50
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _080B6AFC
+ strb r0, [r1, 0x10]
+ lsls r4, r0, 4
+ adds r4, r0
+ lsls r4, 2
+ ldr r5, _080B6B00
+ adds r4, r5
+ ldr r1, _080B6B04
+ adds r0, r4, 0
+ bl SetSubspriteTables
+ ldr r0, _080B6B08
+ movs r1, 0xCC
+ movs r2, 0x4C
+ movs r3, 0x1
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x3A]
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r2, r5
+ ldr r1, _080B6B0C
+ adds r0, r2, 0
+ bl SetSubspriteTables
+ ldr r0, _080B6B10
+ movs r1, 0xCC
+ movs r2, 0x4B
+ movs r3, 0x2
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r5
+ ldrb r3, [r1, 0x5]
+ movs r2, 0xD
+ negs r2, r2
+ ands r2, r3
+ movs r3, 0x4
+ orrs r2, r3
+ strb r2, [r1, 0x5]
+ strh r0, [r4, 0x3C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B6AF8: .4byte gSpriteTemplate_83CE5C8
+_080B6AFC: .4byte 0x02000000
+_080B6B00: .4byte gSprites
+_080B6B04: .4byte gUnknown_083CE558
+_080B6B08: .4byte gSpriteTemplate_83CE5F8
+_080B6B0C: .4byte gUnknown_083CE560
+_080B6B10: .4byte gSpriteTemplate_83CE5E0
+ thumb_func_end sub_80B6A80
+
+ thumb_func_start sub_80B6B14
+sub_80B6B14: @ 80B6B14
+ ldr r2, _080B6B2C
+ ldrb r1, [r2, 0x10]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080B6B30
+ adds r0, r1
+ movs r1, 0x2
+ strh r1, [r0, 0x2E]
+ ldrb r1, [r2, 0xE]
+ strh r1, [r0, 0x30]
+ bx lr
+ .align 2, 0
+_080B6B2C: .4byte 0x02000000
+_080B6B30: .4byte gSprites
+ thumb_func_end sub_80B6B14
+
+ thumb_func_start sub_80B6B34
+sub_80B6B34: @ 80B6B34
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldr r5, _080B6B58
+_080B6B3A:
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ lsls r0, 2
+ adds r0, r5
+ ldr r1, [r0]
+ adds r0, r4, 0
+ bl _call_via_r1
+ lsls r0, 24
+ cmp r0, 0
+ bne _080B6B3A
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B6B58: .4byte gUnknown_083CE2B4
+ thumb_func_end sub_80B6B34
+
+ thumb_func_start sub_80B6B5C
+sub_80B6B5C: @ 80B6B5C
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x3A
+ ldrsh r0, [r4, r1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ ldr r3, _080B6B90
+ adds r1, r3
+ movs r2, 0x3C
+ ldrsh r0, [r4, r2]
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r2, r3
+ ldr r0, _080B6B94
+ ldrb r0, [r0, 0xE]
+ bl sub_80B6C48
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080B6B90: .4byte gSprites
+_080B6B94: .4byte 0x02000000
+ thumb_func_end sub_80B6B5C
+
+ thumb_func_start sub_80B6B98
+sub_80B6B98: @ 80B6B98
+ movs r0, 0
+ bx lr
+ thumb_func_end sub_80B6B98
+
+ thumb_func_start sub_80B6B9C
+sub_80B6B9C: @ 80B6B9C
+ push {r4,r5,lr}
+ adds r3, r0, 0
+ movs r0, 0x3A
+ ldrsh r1, [r3, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r2, _080B6C00
+ adds r4, r0, r2
+ movs r0, 0x3C
+ ldrsh r1, [r3, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r5, r0, r2
+ ldrh r0, [r4, 0x26]
+ adds r0, 0x1
+ strh r0, [r4, 0x26]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x7
+ ble _080B6BF8
+ ldrh r0, [r3, 0x2E]
+ adds r0, 0x1
+ strh r0, [r3, 0x2E]
+ ldr r0, _080B6C04
+ strh r0, [r4, 0x26]
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ ldrh r0, [r3, 0x30]
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, 0x1
+ movs r1, 0x3
+ bl __modsi3
+ lsls r0, 24
+ lsrs r0, 24
+ adds r1, r4, 0
+ adds r2, r5, 0
+ bl sub_80B6C48
+_080B6BF8:
+ movs r0, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080B6C00: .4byte gSprites
+_080B6C04: .4byte 0x0000fffc
+ thumb_func_end sub_80B6B9C
+
+ thumb_func_start sub_80B6C08
+sub_80B6C08: @ 80B6C08
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r0, 0x3A
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080B6C44
+ adds r2, r0, r1
+ adds r3, r2, 0
+ adds r3, 0x3E
+ ldrb r1, [r3]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r3]
+ ldrh r0, [r2, 0x26]
+ adds r0, 0x1
+ strh r0, [r2, 0x26]
+ lsls r0, 16
+ cmp r0, 0
+ blt _080B6C3C
+ movs r0, 0
+ strh r0, [r2, 0x26]
+ movs r0, 0x1
+ strh r0, [r4, 0x2E]
+_080B6C3C:
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080B6C44: .4byte gSprites
+ thumb_func_end sub_80B6C08
+
+ thumb_func_start sub_80B6C48
+sub_80B6C48: @ 80B6C48
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ adds r5, r0, 0
+ adds r6, r1, 0
+ mov r8, r2
+ lsls r5, 24
+ lsrs r5, 24
+ ldr r0, _080B6CA0
+ lsls r4, r5, 1
+ adds r0, r4, r0
+ ldrh r0, [r0]
+ bl IndexOfSpritePaletteTag
+ lsls r0, 4
+ mov r1, r8
+ ldrb r2, [r1, 0x5]
+ movs r1, 0xF
+ ands r1, r2
+ orrs r1, r0
+ mov r0, r8
+ strb r1, [r0, 0x5]
+ ldr r0, _080B6CA4
+ adds r4, r0
+ ldrh r0, [r4]
+ bl GetSpriteTileStartByTag
+ adds r1, r6, 0
+ adds r1, 0x40
+ strh r0, [r1]
+ adds r6, 0x42
+ movs r1, 0x3F
+ ands r1, r5
+ ldrb r2, [r6]
+ movs r0, 0x40
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r6]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B6CA0: .4byte gUnknown_083CE2C4
+_080B6CA4: .4byte gUnknown_083CE2CA
+ thumb_func_end sub_80B6C48
+
+ thumb_func_start sub_80B6CA8
+sub_80B6CA8: @ 80B6CA8
+ push {r4,r5,lr}
+ ldr r0, _080B6CF4
+ movs r1, 0xCC
+ movs r2, 0x6C
+ movs r3, 0
+ bl CreateSprite
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r4, _080B6CF8
+ adds r0, r4
+ ldr r5, _080B6CFC
+ adds r1, r5, 0
+ bl SetSubspriteTables
+ ldr r0, _080B6D00
+ movs r1, 0xCC
+ movs r2, 0x84
+ movs r3, 0
+ bl CreateSprite
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ adds r1, r5, 0
+ bl SetSubspriteTables
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B6CF4: .4byte gSpriteTemplate_83CE610
+_080B6CF8: .4byte gSprites
+_080B6CFC: .4byte gUnknown_083CE578
+_080B6D00: .4byte gSpriteTemplate_83CE628
+ thumb_func_end sub_80B6CA8
+
+ thumb_func_start sub_80B6D04
+sub_80B6D04: @ 80B6D04
+ push {r4-r6,lr}
+ ldr r4, _080B6D8C
+ ldrh r1, [r4, 0x2]
+ subs r1, 0x1
+ lsls r1, 3
+ adds r1, 0x4
+ ldr r0, _080B6D90
+ lsls r1, 16
+ asrs r1, 16
+ movs r2, 0x28
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r1, r0, 24
+ ldr r3, _080B6D94
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ ldrb r1, [r0, 0x5]
+ movs r2, 0xC
+ orrs r1, r2
+ strb r1, [r0, 0x5]
+ ldrh r0, [r4, 0x2]
+ lsls r0, 3
+ adds r0, 0x4
+ lsls r0, 16
+ lsrs r1, r0, 16
+ movs r5, 0
+ ldr r0, [r4, 0x34]
+ ldrb r0, [r0, 0x1]
+ cmp r5, r0
+ bcs _080B6D86
+ adds r6, r3, 0
+_080B6D4A:
+ lsls r4, r1, 16
+ asrs r4, 16
+ ldr r0, _080B6D98
+ adds r1, r4, 0
+ movs r2, 0x2C
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r1, r0, 24
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ ldrb r1, [r0, 0x5]
+ movs r2, 0xC
+ orrs r1, r2
+ strb r1, [r0, 0x5]
+ strh r5, [r0, 0x2E]
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r4, 0x8
+ lsls r4, 16
+ lsrs r1, r4, 16
+ ldr r0, _080B6D8C
+ ldr r0, [r0, 0x34]
+ ldrb r0, [r0, 0x1]
+ cmp r5, r0
+ bcc _080B6D4A
+_080B6D86:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B6D8C: .4byte 0x02000000
+_080B6D90: .4byte gSpriteTemplate_83CE658
+_080B6D94: .4byte gSprites
+_080B6D98: .4byte gSpriteTemplate_83CE670
+ thumb_func_end sub_80B6D04
+
+ thumb_func_start sub_80B6D9C
+sub_80B6D9C: @ 80B6D9C
+ push {r4,lr}
+ sub sp, 0x8
+ adds r4, r0, 0
+ ldr r1, _080B6DE4
+ mov r0, sp
+ movs r2, 0x8
+ bl memcpy
+ ldrh r1, [r4, 0x2E]
+ movs r2, 0x2E
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ beq _080B6DC0
+ subs r0, r1, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ cmp r0, 0
+ bne _080B6DCE
+_080B6DC0:
+ movs r0, 0x8
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ movs r1, 0x3
+ ands r0, r1
+ strh r0, [r4, 0x30]
+_080B6DCE:
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ lsls r0, 1
+ add r0, sp
+ ldrh r0, [r0]
+ strh r0, [r4, 0x24]
+ add sp, 0x8
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B6DE4: .4byte gUnknown_083CE2D0
+ thumb_func_end sub_80B6D9C
+
+ thumb_func_start sub_80B6DE8
+sub_80B6DE8: @ 80B6DE8
+ push {r4,lr}
+ sub sp, 0x8
+ adds r4, r0, 0
+ ldr r1, _080B6E10
+ mov r0, sp
+ movs r2, 0x8
+ bl memcpy
+ bl sub_80B6F44
+ lsls r0, 24
+ ldrh r1, [r4, 0x2E]
+ lsls r1, 24
+ cmp r0, r1
+ beq _080B6E14
+ movs r0, 0
+ strh r0, [r4, 0x26]
+ strh r0, [r4, 0x30]
+ b _080B6E3A
+ .align 2, 0
+_080B6E10: .4byte gUnknown_083CE2D8
+_080B6E14:
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ lsls r0, 1
+ add r0, sp
+ ldrh r0, [r0]
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x32]
+ adds r0, 0x1
+ strh r0, [r4, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x8
+ ble _080B6E3C
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ movs r1, 0x3
+ ands r0, r1
+ strh r0, [r4, 0x30]
+ movs r0, 0
+_080B6E3A:
+ strh r0, [r4, 0x32]
+_080B6E3C:
+ add sp, 0x8
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B6DE8
+
+ thumb_func_start sub_80B6E44
+sub_80B6E44: @ 80B6E44
+ push {lr}
+ ldr r1, _080B6E5C
+ ldr r0, _080B6E60
+ ldr r0, [r0, 0x34]
+ ldrb r0, [r0, 0x2]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ bl _call_via_r0
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B6E5C: .4byte gUnknown_083CE2E0
+_080B6E60: .4byte 0x02000000
+ thumb_func_end sub_80B6E44
+
+ thumb_func_start nullsub_40
+nullsub_40: @ 80B6E64
+ bx lr
+ thumb_func_end nullsub_40
+
+ thumb_func_start sub_80B6E68
+sub_80B6E68: @ 80B6E68
+ push {lr}
+ sub sp, 0x4
+ ldr r0, _080B6EB0
+ ldrh r1, [r0, 0x3E]
+ lsls r1, 24
+ lsrs r1, 24
+ movs r0, 0
+ bl sub_805983C
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _080B6EB4
+ movs r2, 0
+ str r2, [sp]
+ movs r2, 0x38
+ movs r3, 0x18
+ bl AddPseudoFieldObject
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r2, _080B6EB8
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r1, [r0, 0x5]
+ movs r2, 0xC
+ orrs r1, r2
+ strb r1, [r0, 0x5]
+ movs r1, 0x4
+ bl StartSpriteAnim
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B6EB0: .4byte 0x02000000
+_080B6EB4: .4byte SpriteCallbackDummy
+_080B6EB8: .4byte gSprites
+ thumb_func_end sub_80B6E68
+
+ thumb_func_start sub_80B6EBC
+sub_80B6EBC: @ 80B6EBC
+ push {r4,lr}
+ ldr r0, _080B6EF0
+ movs r1, 0x34
+ movs r2, 0x18
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r0, 4
+ adds r4, r0
+ lsls r4, 2
+ ldr r0, _080B6EF4
+ adds r4, r0
+ ldr r1, _080B6EF8
+ adds r0, r4, 0
+ bl SetSubspriteTables
+ ldrb r0, [r4, 0x5]
+ movs r1, 0xC
+ orrs r0, r1
+ strb r0, [r4, 0x5]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B6EF0: .4byte gSpriteTemplate_83CE688
+_080B6EF4: .4byte gSprites
+_080B6EF8: .4byte gUnknown_083CE580
+ thumb_func_end sub_80B6EBC
+
+ thumb_func_start sub_80B6EFC
+sub_80B6EFC: @ 80B6EFC
+ push {lr}
+ sub sp, 0x8
+ bl sub_809D51C
+ ldr r3, _080B6F38
+ ldrh r0, [r3, 0x3E]
+ ldr r1, _080B6F3C
+ movs r2, 0
+ str r2, [sp]
+ ldr r2, [r3, 0x44]
+ str r2, [sp, 0x4]
+ movs r2, 0x34
+ movs r3, 0x18
+ bl sub_809D2FC
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080B6F40
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ ldrb r0, [r1, 0x5]
+ movs r2, 0xC
+ orrs r0, r2
+ strb r0, [r1, 0x5]
+ add sp, 0x8
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B6F38: .4byte 0x02000000
+_080B6F3C: .4byte SpriteCallbackDummy
+_080B6F40: .4byte gSprites
+ thumb_func_end sub_80B6EFC
+
+ thumb_func_start sub_80B6F44
+sub_80B6F44: @ 80B6F44
+ push {r4,lr}
+ movs r2, 0
+ ldr r1, _080B6F64
+ ldr r0, [r1, 0x34]
+ ldrb r0, [r0, 0x1]
+ adds r4, r1, 0
+ cmp r2, r0
+ bcs _080B6F72
+ adds r1, 0x11
+ adds r3, r0, 0
+_080B6F58:
+ adds r0, r2, r1
+ ldrb r0, [r0]
+ cmp r0, 0xFF
+ bne _080B6F68
+ adds r0, r2, 0
+ b _080B6F7C
+ .align 2, 0
+_080B6F64: .4byte 0x02000000
+_080B6F68:
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, r3
+ bcc _080B6F58
+_080B6F72:
+ ldr r0, [r4, 0x34]
+ ldrb r0, [r0, 0x1]
+ subs r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+_080B6F7C:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80B6F44
+
+ thumb_func_start sub_80B6F84
+sub_80B6F84: @ 80B6F84
+ push {lr}
+ ldr r2, _080B6FA8
+ ldr r0, [r2, 0x34]
+ ldrb r0, [r0, 0x1]
+ subs r0, 0x1
+ lsls r1, r0, 24
+ cmp r1, 0
+ ble _080B6FB4
+ adds r3, r2, 0
+ adds r3, 0x11
+_080B6F98:
+ asrs r2, r1, 24
+ adds r0, r2, r3
+ ldrb r0, [r0]
+ cmp r0, 0xFF
+ beq _080B6FAC
+ lsrs r0, r1, 24
+ b _080B6FB6
+ .align 2, 0
+_080B6FA8: .4byte 0x02000000
+_080B6FAC:
+ subs r0, r2, 0x1
+ lsls r1, r0, 24
+ cmp r1, 0
+ bgt _080B6F98
+_080B6FB4:
+ movs r0, 0
+_080B6FB6:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80B6F84
+
+ thumb_func_start sub_80B6FBC
+sub_80B6FBC: @ 80B6FBC
+ push {r4,lr}
+ bl sub_80B6F84
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _080B7000
+ adds r0, 0x11
+ adds r4, r0
+ movs r0, 0
+ strb r0, [r4]
+ bl sub_80B7960
+ movs r0, 0xFF
+ strb r0, [r4]
+ bl sub_80B6958
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ beq _080B6FEA
+ cmp r0, 0x2
+ bne _080B6FF4
+_080B6FEA:
+ movs r0, 0x1
+ movs r1, 0
+ movs r2, 0x1
+ bl sub_80B6460
+_080B6FF4:
+ movs r0, 0x17
+ bl PlaySE
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B7000: .4byte 0x02000000
+ thumb_func_end sub_80B6FBC
+
+ thumb_func_start sub_80B7004
+sub_80B7004: @ 80B7004
+ push {r4,r5,lr}
+ sub sp, 0x4
+ mov r5, sp
+ adds r5, 0x2
+ mov r0, sp
+ adds r1, r5, 0
+ bl sub_80B6858
+ mov r4, sp
+ mov r0, sp
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ bl sub_80B67EC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4]
+ mov r0, sp
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ movs r2, 0
+ ldrsh r1, [r5, r2]
+ bl sub_80B7768
+ lsls r0, 24
+ lsrs r0, 24
+ adds r1, r0, 0
+ movs r4, 0x1
+ cmp r0, 0xFF
+ bne _080B7046
+ bl sub_80B7104
+ b _080B704E
+_080B7046:
+ cmp r0, 0xFE
+ bne _080B7054
+ bl sub_80B713C
+_080B704E:
+ lsls r0, 24
+ lsrs r4, r0, 24
+ b _080B705A
+_080B7054:
+ adds r0, r1, 0
+ bl sub_80B7174
+_080B705A:
+ bl sub_80B7960
+ movs r0, 0x5
+ bl PlaySE
+ cmp r4, 0
+ beq _080B7084
+ bl sub_80B6F84
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _080B7080
+ ldr r1, [r1, 0x34]
+ ldrb r1, [r1, 0x1]
+ subs r1, 0x1
+ cmp r0, r1
+ bne _080B7084
+ movs r0, 0x1
+ b _080B7086
+ .align 2, 0
+_080B7080: .4byte 0x02000000
+_080B7084:
+ movs r0, 0
+_080B7086:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80B7004
+
+ thumb_func_start sub_80B7090
+sub_80B7090: @ 80B7090
+ push {r4-r7,lr}
+ bl sub_80B6F84
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r7, r5, 0
+ ldr r0, _080B70C8
+ adds r0, 0x11
+ adds r0, r5, r0
+ ldrb r4, [r0]
+ adds r6, r4, 0
+ adds r0, r4, 0
+ bl sub_80B7198
+ lsls r0, 24
+ cmp r0, 0
+ beq _080B70D6
+ adds r0, r4, 0
+ bl sub_80B7264
+ lsls r0, 24
+ cmp r0, 0
+ beq _080B70CC
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_80B7370
+ b _080B70F4
+ .align 2, 0
+_080B70C8: .4byte 0x02000000
+_080B70CC:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_80B73CC
+ b _080B70F4
+_080B70D6:
+ adds r0, r4, 0
+ bl sub_80B71E4
+ lsls r0, 24
+ cmp r0, 0
+ beq _080B70EC
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_80B7474
+ b _080B70F4
+_080B70EC:
+ adds r0, r6, 0
+ adds r1, r7, 0
+ bl sub_80B72A4
+_080B70F4:
+ bl sub_80B7960
+ movs r0, 0x5
+ bl PlaySE
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B7090
+
+ thumb_func_start sub_80B7104
+sub_80B7104: @ 80B7104
+ push {r4,r5,lr}
+ bl sub_80B6F84
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, _080B7128
+ adds r0, 0x11
+ adds r0, r5, r0
+ ldrb r4, [r0]
+ adds r0, r4, 0
+ bl sub_80B720C
+ lsls r0, 24
+ cmp r0, 0
+ bne _080B712C
+ movs r0, 0
+ b _080B7136
+ .align 2, 0
+_080B7128: .4byte 0x02000000
+_080B712C:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_80B72A4
+ movs r0, 0x1
+_080B7136:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80B7104
+
+ thumb_func_start sub_80B713C
+sub_80B713C: @ 80B713C
+ push {r4,r5,lr}
+ bl sub_80B6F84
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, _080B7160
+ adds r0, 0x11
+ adds r0, r5, r0
+ ldrb r4, [r0]
+ adds r0, r4, 0
+ bl sub_80B7264
+ lsls r0, 24
+ cmp r0, 0
+ bne _080B7164
+ movs r0, 0
+ b _080B716E
+ .align 2, 0
+_080B7160: .4byte 0x02000000
+_080B7164:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_80B7370
+ movs r0, 0x1
+_080B716E:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80B713C
+
+ thumb_func_start sub_80B7174
+sub_80B7174: @ 80B7174
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl sub_80B6F44
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _080B7194
+ adds r1, 0x11
+ adds r0, r1
+ strb r4, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B7194: .4byte 0x02000000
+ thumb_func_end sub_80B7174
+
+ thumb_func_start sub_80B7198
+sub_80B7198: @ 80B7198
+ push {lr}
+ lsls r0, 24
+ lsrs r1, r0, 24
+ movs r2, 0xC9
+ lsls r2, 24
+ adds r0, r2
+ lsrs r0, 24
+ cmp r0, 0x13
+ bls _080B71DA
+ adds r0, r1, 0
+ adds r0, 0x79
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ bls _080B71DA
+ adds r0, r1, 0
+ adds r0, 0x74
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ bls _080B71DA
+ adds r0, r1, 0
+ adds r0, 0x6F
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ bls _080B71DA
+ adds r0, r1, 0
+ adds r0, 0x6A
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ bhi _080B71DE
+_080B71DA:
+ movs r0, 0x1
+ b _080B71E0
+_080B71DE:
+ movs r0, 0
+_080B71E0:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80B7198
+
+ thumb_func_start sub_80B71E4
+sub_80B71E4: @ 80B71E4
+ push {lr}
+ lsls r0, 24
+ lsrs r1, r0, 24
+ movs r2, 0xB5
+ lsls r2, 24
+ adds r0, r2
+ lsrs r0, 24
+ cmp r0, 0x4
+ bls _080B7202
+ adds r0, r1, 0
+ adds r0, 0x65
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ bhi _080B7206
+_080B7202:
+ movs r0, 0x1
+ b _080B7208
+_080B7206:
+ movs r0, 0
+_080B7208:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80B71E4
+
+ thumb_func_start sub_80B720C
+sub_80B720C: @ 80B720C
+ push {lr}
+ lsls r0, 24
+ lsrs r1, r0, 24
+ movs r2, 0xFA
+ lsls r2, 24
+ adds r0, r2
+ lsrs r0, 24
+ cmp r0, 0xE
+ bls _080B725A
+ adds r0, r1, 0
+ subs r0, 0x1A
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ bls _080B725A
+ adds r0, r1, 0
+ subs r0, 0x4B
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ bls _080B725A
+ adds r0, r1, 0
+ subs r0, 0x56
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xE
+ bls _080B725A
+ adds r0, r1, 0
+ subs r0, 0x6A
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ bls _080B725A
+ adds r0, r1, 0
+ adds r0, 0x65
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ bhi _080B725E
+_080B725A:
+ movs r0, 0x1
+ b _080B7260
+_080B725E:
+ movs r0, 0
+_080B7260:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80B720C
+
+ thumb_func_start sub_80B7264
+sub_80B7264: @ 80B7264
+ push {lr}
+ lsls r0, 24
+ lsrs r1, r0, 24
+ movs r2, 0xE6
+ lsls r2, 24
+ adds r0, r2
+ lsrs r0, 24
+ cmp r0, 0x4
+ bls _080B729A
+ adds r0, r1, 0
+ subs r0, 0x46
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ bls _080B729A
+ adds r0, r1, 0
+ subs r0, 0x6A
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ bls _080B729A
+ adds r0, r1, 0
+ adds r0, 0x6A
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ bhi _080B729E
+_080B729A:
+ movs r0, 0x1
+ b _080B72A0
+_080B729E:
+ movs r0, 0
+_080B72A0:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80B7264
+
+ thumb_func_start sub_80B72A4
+sub_80B72A4: @ 80B72A4
+ push {lr}
+ lsls r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ lsrs r2, r0, 24
+ movs r3, 0xFA
+ lsls r3, 24
+ adds r0, r3
+ lsrs r0, 24
+ cmp r0, 0x4
+ bhi _080B72C0
+ adds r0, r2, 0
+ adds r0, 0x31
+ b _080B735A
+_080B72C0:
+ adds r0, r2, 0
+ subs r0, 0xB
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ bhi _080B72D2
+ adds r0, r2, 0
+ adds r0, 0x31
+ b _080B735A
+_080B72D2:
+ adds r0, r2, 0
+ subs r0, 0x10
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ bhi _080B72E4
+ adds r0, r2, 0
+ adds r0, 0x31
+ b _080B735A
+_080B72E4:
+ adds r0, r2, 0
+ subs r0, 0x1A
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ bhi _080B72F6
+ adds r0, r2, 0
+ adds r0, 0x2C
+ b _080B735A
+_080B72F6:
+ adds r0, r2, 0
+ subs r0, 0x4B
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ bls _080B7356
+ adds r0, r2, 0
+ subs r0, 0x56
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ bhi _080B7314
+ adds r0, r2, 0
+ adds r0, 0x31
+ b _080B735A
+_080B7314:
+ adds r0, r2, 0
+ subs r0, 0x5B
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ bhi _080B7326
+ adds r0, r2, 0
+ adds r0, 0x31
+ b _080B735A
+_080B7326:
+ adds r0, r2, 0
+ subs r0, 0x60
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ bhi _080B7338
+ adds r0, r2, 0
+ adds r0, 0x31
+ b _080B735A
+_080B7338:
+ adds r0, r2, 0
+ subs r0, 0x6A
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ bhi _080B734A
+ adds r0, r2, 0
+ adds r0, 0x2C
+ b _080B735A
+_080B734A:
+ adds r0, r2, 0
+ adds r0, 0x65
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ bhi _080B735E
+_080B7356:
+ adds r0, r2, 0
+ adds r0, 0xFB
+_080B735A:
+ lsls r0, 24
+ lsrs r2, r0, 24
+_080B735E:
+ ldr r0, _080B736C
+ adds r0, 0x11
+ adds r0, r1, r0
+ strb r2, [r0]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B736C: .4byte 0x02000000
+ thumb_func_end sub_80B72A4
+
+ thumb_func_start sub_80B7370
+sub_80B7370: @ 80B7370
+ push {lr}
+ lsls r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ lsrs r2, r0, 24
+ movs r3, 0xE6
+ lsls r3, 24
+ adds r0, r3
+ lsrs r0, 24
+ cmp r0, 0x4
+ bhi _080B738C
+ adds r0, r2, 0
+ adds r0, 0x31
+ b _080B73B8
+_080B738C:
+ adds r0, r2, 0
+ subs r0, 0x46
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ bls _080B73B6
+ adds r0, r2, 0
+ subs r0, 0x6A
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ bhi _080B73AA
+ adds r0, r2, 0
+ adds r0, 0x31
+ b _080B73B8
+_080B73AA:
+ adds r0, r2, 0
+ adds r0, 0x6A
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ bhi _080B73BC
+_080B73B6:
+ adds r0, r2, 0x5
+_080B73B8:
+ lsls r0, 24
+ lsrs r2, r0, 24
+_080B73BC:
+ ldr r0, _080B73C8
+ adds r0, 0x11
+ adds r0, r1, r0
+ strb r2, [r0]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B73C8: .4byte 0x02000000
+ thumb_func_end sub_80B7370
+
+ thumb_func_start sub_80B73CC
+sub_80B73CC: @ 80B73CC
+ push {lr}
+ lsls r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ lsrs r2, r0, 24
+ movs r3, 0xC9
+ lsls r3, 24
+ adds r0, r3
+ lsrs r0, 24
+ cmp r0, 0x4
+ bhi _080B73E8
+ adds r0, r2, 0
+ adds r0, 0xCF
+ b _080B745E
+_080B73E8:
+ adds r0, r2, 0
+ subs r0, 0x3C
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ bhi _080B73FA
+ adds r0, r2, 0
+ adds r0, 0xCF
+ b _080B745E
+_080B73FA:
+ adds r0, r2, 0
+ subs r0, 0x41
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ bhi _080B740C
+ adds r0, r2, 0
+ adds r0, 0xCF
+ b _080B745E
+_080B740C:
+ adds r0, r2, 0
+ subs r0, 0x46
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ bls _080B745A
+ adds r0, r2, 0
+ adds r0, 0x79
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ bhi _080B742A
+ adds r0, r2, 0
+ adds r0, 0xCF
+ b _080B745E
+_080B742A:
+ adds r0, r2, 0
+ adds r0, 0x74
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ bhi _080B743C
+ adds r0, r2, 0
+ adds r0, 0xCF
+ b _080B745E
+_080B743C:
+ adds r0, r2, 0
+ adds r0, 0x6F
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ bhi _080B744E
+ adds r0, r2, 0
+ adds r0, 0xCF
+ b _080B745E
+_080B744E:
+ adds r0, r2, 0
+ adds r0, 0x6A
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ bhi _080B7462
+_080B745A:
+ adds r0, r2, 0
+ adds r0, 0xD4
+_080B745E:
+ lsls r0, 24
+ lsrs r2, r0, 24
+_080B7462:
+ ldr r0, _080B7470
+ adds r0, 0x11
+ adds r0, r1, r0
+ strb r2, [r0]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B7470: .4byte 0x02000000
+ thumb_func_end sub_80B73CC
+
+ thumb_func_start sub_80B7474
+sub_80B7474: @ 80B7474
+ push {lr}
+ lsls r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ lsrs r2, r0, 24
+ movs r3, 0xB5
+ lsls r3, 24
+ adds r0, r3
+ lsrs r0, 24
+ cmp r0, 0x4
+ bls _080B7496
+ adds r0, r2, 0
+ adds r0, 0x65
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ bhi _080B749E
+_080B7496:
+ adds r0, r2, 0
+ adds r0, 0xCF
+ lsls r0, 24
+ lsrs r2, r0, 24
+_080B749E:
+ ldr r0, _080B74AC
+ adds r0, 0x11
+ adds r0, r1, r0
+ strb r2, [r0]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B74AC: .4byte 0x02000000
+ thumb_func_end sub_80B7474
+
+ thumb_func_start sub_80B74B0
+sub_80B74B0: @ 80B74B0
+ push {r4,lr}
+ movs r1, 0
+ ldr r3, _080B74E4
+ ldr r0, [r3, 0x34]
+ ldrb r0, [r0, 0x1]
+ cmp r1, r0
+ bcs _080B74F6
+ adds r2, r3, 0
+ adds r4, r3, 0
+ adds r4, 0x11
+_080B74C4:
+ adds r0, r1, r4
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080B74E8
+ cmp r0, 0xFF
+ beq _080B74E8
+ ldr r0, [r2, 0x38]
+ ldr r1, [r2, 0x34]
+ ldrb r2, [r1, 0x1]
+ adds r2, 0x1
+ lsls r2, 24
+ lsrs r2, 24
+ adds r1, r4, 0
+ bl StringCopyN
+ b _080B74F6
+ .align 2, 0
+_080B74E4: .4byte 0x02000000
+_080B74E8:
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ ldr r0, [r3, 0x34]
+ ldrb r0, [r0, 0x1]
+ cmp r1, r0
+ bcc _080B74C4
+_080B74F6:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B74B0
+
+ thumb_func_start sub_80B74FC
+sub_80B74FC: @ 80B74FC
+ push {r4,lr}
+ ldr r0, _080B7528
+ ldr r1, _080B752C
+ ldr r1, [r1, 0x38]
+ bl StringCopy
+ ldr r4, _080B7530
+ ldr r1, _080B7534
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ ldr r0, _080B7538
+ bl BasicInitMenuWindow
+ bl MenuDisplayMessageBox
+ adds r0, r4, 0
+ bl sub_8072044
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B7528: .4byte gStringVar1
+_080B752C: .4byte 0x02000000
+_080B7530: .4byte gStringVar4
+_080B7534: .4byte gOtherText_SentToPC
+_080B7538: .4byte gWindowConfig_81E6E88
+ thumb_func_end sub_80B74FC
+
+ thumb_func_start sub_80B753C
+sub_80B753C: @ 80B753C
+ push {lr}
+ ldr r0, _080B7550
+ bl LoadSpriteSheets
+ ldr r0, _080B7554
+ bl LoadSpritePalettes
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B7550: .4byte gUnknown_083CE6A0
+_080B7554: .4byte gUnknown_083CE708
+ thumb_func_end sub_80B753C
+
+ thumb_func_start sub_80B7558
+sub_80B7558: @ 80B7558
+ push {lr}
+ bl sub_80B7568
+ bl sub_80B75B0
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B7558
+
+ thumb_func_start sub_80B7568
+sub_80B7568: @ 80B7568
+ push {r4,lr}
+ ldr r4, _080B759C
+ ldr r3, _080B75A0
+ ldrh r0, [r3]
+ lsls r0, 5
+ movs r1, 0xC0
+ lsls r1, 19
+ adds r0, r1
+ ldr r1, _080B75A4
+ str r4, [r1]
+ str r0, [r1, 0x4]
+ ldr r2, _080B75A8
+ str r2, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ ldrh r0, [r3]
+ lsls r0, 5
+ ldr r3, _080B75AC
+ adds r0, r3
+ str r4, [r1]
+ str r0, [r1, 0x4]
+ str r2, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B759C: .4byte gNamingScreenMenu_Gfx
+_080B75A0: .4byte gMenuMessageBoxContentTileOffset
+_080B75A4: .4byte 0x040000d4
+_080B75A8: .4byte 0x80000400
+_080B75AC: .4byte 0x06008000
+ thumb_func_end sub_80B7568
+
+ thumb_func_start sub_80B75B0
+sub_80B75B0: @ 80B75B0
+ push {lr}
+ ldr r0, _080B75C0
+ movs r1, 0
+ movs r2, 0x80
+ bl LoadPalette
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B75C0: .4byte gNamingScreenPalettes
+ thumb_func_end sub_80B75B0
+
+ thumb_func_start sub_80B75C4
+sub_80B75C4: @ 80B75C4
+ push {r4,r5,lr}
+ sub sp, 0x8
+ ldr r0, _080B7608
+ ldr r1, [r0, 0x4]
+ ldr r0, [r0]
+ str r0, [sp]
+ str r1, [sp, 0x4]
+ ldr r4, _080B760C
+ ldr r5, _080B7610
+ ldrb r1, [r5, 0xE]
+ lsls r1, 3
+ adds r1, r4
+ ldrb r0, [r5, 0xC]
+ lsls r0, 2
+ add r0, sp
+ ldr r0, [r0]
+ ldr r1, [r1]
+ bl _call_via_r1
+ ldrb r1, [r5, 0xE]
+ lsls r1, 3
+ adds r4, 0x4
+ adds r1, r4
+ ldrb r0, [r5, 0xD]
+ lsls r0, 2
+ add r0, sp
+ ldr r0, [r0]
+ ldr r1, [r1]
+ bl _call_via_r1
+ add sp, 0x8
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B7608: .4byte gUnknown_083CE308
+_080B760C: .4byte gUnknown_083CE2F0
+_080B7610: .4byte 0x02000000
+ thumb_func_end sub_80B75C4
+
+ thumb_func_start sub_80B7614
+sub_80B7614: @ 80B7614
+ push {lr}
+ sub sp, 0x8
+ ldr r0, _080B7644
+ ldr r1, [r0, 0x4]
+ ldr r0, [r0]
+ str r0, [sp]
+ str r1, [sp, 0x4]
+ ldr r0, _080B7648
+ ldr r2, _080B764C
+ ldrb r1, [r2, 0xE]
+ lsls r1, 3
+ adds r0, 0x4
+ adds r1, r0
+ ldrb r0, [r2, 0xD]
+ lsls r0, 2
+ add r0, sp
+ ldr r0, [r0]
+ ldr r1, [r1]
+ bl _call_via_r1
+ add sp, 0x8
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B7644: .4byte gUnknown_083CE308
+_080B7648: .4byte gUnknown_083CE2F0
+_080B764C: .4byte 0x02000000
+ thumb_func_end sub_80B7614
+
+ thumb_func_start sub_80B7650
+sub_80B7650: @ 80B7650
+ push {lr}
+ ldr r1, _080B765C
+ bl sub_80B7698
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B765C: .4byte gUnknown_083CE748
+ thumb_func_end sub_80B7650
+
+ thumb_func_start sub_80B7660
+sub_80B7660: @ 80B7660
+ push {lr}
+ ldr r1, _080B766C
+ bl sub_80B7698
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B766C: .4byte gUnknown_083CEBF8
+ thumb_func_end sub_80B7660
+
+ thumb_func_start sub_80B7670
+sub_80B7670: @ 80B7670
+ push {lr}
+ ldr r1, _080B767C
+ bl sub_80B7698
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B767C: .4byte gUnknown_083CF0A8
+ thumb_func_end sub_80B7670
+
+ thumb_func_start sub_80B7680
+sub_80B7680: @ 80B7680
+ push {lr}
+ ldr r0, _080B7690
+ ldr r1, _080B7694
+ bl sub_80B76E0
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B7690: .4byte 0x0600f000
+_080B7694: .4byte gUnknown_08E86258
+ thumb_func_end sub_80B7680
+
+ thumb_func_start sub_80B7698
+sub_80B7698: @ 80B7698
+ push {r4-r7,lr}
+ mov r12, r0
+ adds r3, r1, 0
+ movs r4, 0
+ ldr r0, _080B76DC
+ ldrh r6, [r0]
+_080B76A4:
+ movs r1, 0
+ lsls r4, 16
+ asrs r5, r4, 11
+_080B76AA:
+ lsls r0, r1, 16
+ asrs r0, 16
+ adds r1, r5, r0
+ lsls r1, 1
+ add r1, r12
+ ldrh r7, [r3]
+ adds r2, r6, r7
+ strh r2, [r1]
+ adds r0, 0x1
+ lsls r0, 16
+ adds r3, 0x2
+ lsrs r1, r0, 16
+ asrs r0, 16
+ cmp r0, 0x1D
+ ble _080B76AA
+ movs r1, 0x80
+ lsls r1, 9
+ adds r0, r4, r1
+ lsrs r4, r0, 16
+ asrs r0, 16
+ cmp r0, 0x13
+ ble _080B76A4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B76DC: .4byte gMenuMessageBoxContentTileOffset
+ thumb_func_end sub_80B7698
+
+ thumb_func_start sub_80B76E0
+sub_80B76E0: @ 80B76E0
+ push {r4-r7,lr}
+ mov r12, r0
+ adds r3, r1, 0
+ movs r4, 0
+ ldr r0, _080B7728
+ ldrh r6, [r0]
+_080B76EC:
+ movs r1, 0
+ lsls r5, r4, 16
+ asrs r4, r5, 11
+_080B76F2:
+ lsls r0, r1, 16
+ asrs r0, 16
+ adds r1, r4, r0
+ lsls r1, 1
+ add r1, r12
+ ldrh r7, [r3]
+ adds r2, r6, r7
+ strh r2, [r1]
+ adds r0, 0x1
+ lsls r0, 16
+ adds r3, 0x2
+ lsrs r1, r0, 16
+ asrs r0, 16
+ cmp r0, 0x1D
+ ble _080B76F2
+ adds r3, 0x4
+ movs r1, 0x80
+ lsls r1, 9
+ adds r0, r5, r1
+ lsrs r4, r0, 16
+ asrs r0, 16
+ cmp r0, 0x13
+ ble _080B76EC
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B7728: .4byte gMenuMessageBoxContentTileOffset
+ thumb_func_end sub_80B76E0
+
+ thumb_func_start sub_80B772C
+sub_80B772C: @ 80B772C
+ push {lr}
+ ldr r1, _080B773C
+ ldrb r0, [r1, 0xE]
+ ldrb r1, [r1, 0xC]
+ bl nullsub_20
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B773C: .4byte 0x02000000
+ thumb_func_end sub_80B772C
+
+ thumb_func_start sub_80B7740
+sub_80B7740: @ 80B7740
+ push {r4,lr}
+ ldr r4, _080B7760
+ ldrb r0, [r4, 0xE]
+ adds r0, 0x1
+ movs r1, 0x3
+ bl __modsi3
+ lsls r0, 24
+ lsrs r0, 24
+ ldrb r1, [r4, 0xD]
+ bl nullsub_20
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B7760: .4byte 0x02000000
+ thumb_func_end sub_80B7740
+
+ thumb_func_start nullsub_20
+nullsub_20: @ 80B7764
+ bx lr
+ thumb_func_end nullsub_20
+
+ thumb_func_start sub_80B7768
+sub_80B7768: @ 80B7768
+ ldr r3, _080B778C
+ lsls r0, 16
+ asrs r0, 16
+ lsls r1, 16
+ asrs r1, 16
+ lsls r2, r1, 2
+ adds r2, r1
+ lsls r2, 2
+ adds r0, r2
+ ldr r1, _080B7790
+ ldrb r2, [r1, 0xE]
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 4
+ adds r0, r1
+ adds r0, r3
+ ldrb r0, [r0]
+ bx lr
+ .align 2, 0
+_080B778C: .4byte gUnknown_083CE3A8
+_080B7790: .4byte 0x02000000
+ thumb_func_end sub_80B7768
+
+ thumb_func_start sub_80B7794
+sub_80B7794: @ 80B7794
+ push {r4-r6,lr}
+ ldr r6, _080B77EC
+ ldr r4, _080B77F0
+ ldrb r0, [r4, 0xC]
+ lsls r0, 2
+ ldrb r1, [r4, 0xE]
+ lsls r1, 4
+ adds r0, r1
+ adds r0, r6
+ ldr r0, [r0]
+ bl BasicInitMenuWindow
+ ldr r5, _080B77F4
+ ldrb r0, [r4, 0xE]
+ lsls r0, 3
+ adds r0, r5
+ ldr r0, [r0]
+ bl _call_via_r0
+ ldrb r1, [r4, 0xD]
+ lsls r1, 2
+ ldrb r0, [r4, 0xE]
+ lsls r0, 4
+ adds r1, r0
+ adds r6, 0x8
+ adds r1, r6
+ ldr r0, [r1]
+ bl BasicInitMenuWindow
+ ldrb r0, [r4, 0xE]
+ lsls r0, 3
+ adds r5, 0x4
+ adds r0, r5
+ ldr r0, [r0]
+ bl _call_via_r0
+ bl sub_80B772C
+ bl sub_80B7740
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B77EC: .4byte gUnknown_083CE328
+_080B77F0: .4byte 0x02000000
+_080B77F4: .4byte gUnknown_083CE310
+ thumb_func_end sub_80B7794
+
+ thumb_func_start sub_80B77F8
+sub_80B77F8: @ 80B77F8
+ push {r4,lr}
+ ldr r2, _080B782C
+ ldr r4, _080B7830
+ ldrb r1, [r4, 0xD]
+ lsls r1, 2
+ ldrb r0, [r4, 0xE]
+ lsls r0, 4
+ adds r1, r0
+ adds r2, 0x8
+ adds r1, r2
+ ldr r0, [r1]
+ bl BasicInitMenuWindow
+ ldr r1, _080B7834
+ ldrb r0, [r4, 0xE]
+ lsls r0, 3
+ adds r1, 0x4
+ adds r0, r1
+ ldr r0, [r0]
+ bl _call_via_r0
+ bl sub_80B7740
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B782C: .4byte gUnknown_083CE328
+_080B7830: .4byte 0x02000000
+_080B7834: .4byte gUnknown_083CE310
+ thumb_func_end sub_80B77F8
+
+ thumb_func_start sub_80B7838
+sub_80B7838: @ 80B7838
+ push {lr}
+ movs r0, 0x1
+ bl sub_80B785C
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B7838
+
+ thumb_func_start sub_80B7844
+sub_80B7844: @ 80B7844
+ push {lr}
+ movs r0, 0
+ bl sub_80B785C
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B7844
+
+ thumb_func_start sub_80B7850
+sub_80B7850: @ 80B7850
+ push {lr}
+ movs r0, 0x2
+ bl sub_80B785C
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B7850
+
+ thumb_func_start sub_80B785C
+sub_80B785C: @ 80B785C
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ movs r2, 0
+ movs r5, 0x9
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r6, r1, 4
+_080B786C:
+ lsls r4, r2, 16
+ asrs r4, 16
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 2
+ ldr r1, _080B78A4
+ adds r0, r1
+ adds r0, r6, r0
+ lsls r2, r5, 24
+ lsrs r2, 24
+ movs r1, 0x3
+ bl MenuPrint
+ adds r4, 0x1
+ lsls r4, 16
+ lsls r0, r5, 16
+ movs r1, 0x80
+ lsls r1, 10
+ adds r0, r1
+ lsrs r5, r0, 16
+ lsrs r2, r4, 16
+ asrs r4, 16
+ cmp r4, 0x3
+ ble _080B786C
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B78A4: .4byte gUnknown_083CE3A8
+ thumb_func_end sub_80B785C
+
+ thumb_func_start sub_80B78A8
+sub_80B78A8: @ 80B78A8
+ push {r4,lr}
+ ldr r0, _080B78E4
+ bl BasicInitMenuWindow
+ ldr r1, _080B78E8
+ ldr r4, _080B78EC
+ ldrb r0, [r4, 0x1]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ bl _call_via_r0
+ ldr r1, _080B78F0
+ ldr r0, [r4, 0x34]
+ ldrb r0, [r0, 0x3]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ bl _call_via_r0
+ ldr r0, [r4, 0x34]
+ ldr r0, [r0, 0x8]
+ movs r1, 0x9
+ movs r2, 0x2
+ bl MenuPrint
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B78E4: .4byte gWindowConfig_81E6F4C
+_080B78E8: .4byte gUnknown_083CE358
+_080B78EC: .4byte 0x02000000
+_080B78F0: .4byte gUnknown_083CE368
+ thumb_func_end sub_80B78A8
+
+ thumb_func_start nullsub_61
+nullsub_61: @ 80B78F4
+ bx lr
+ thumb_func_end nullsub_61
+
+ thumb_func_start sub_80B78F8
+sub_80B78F8: @ 80B78F8
+ push {lr}
+ ldr r0, _080B7914
+ ldr r1, _080B7918
+ movs r3, 0x3E
+ ldrsh r2, [r1, r3]
+ movs r1, 0xB
+ muls r1, r2
+ ldr r2, _080B791C
+ adds r1, r2
+ bl StringCopy
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B7914: .4byte gStringVar1
+_080B7918: .4byte 0x02000000
+_080B791C: .4byte gSpeciesNames
+ thumb_func_end sub_80B78F8
+
+ thumb_func_start nullsub_62
+nullsub_62: @ 80B7920
+ bx lr
+ thumb_func_end nullsub_62
+
+ thumb_func_start sub_80B7924
+sub_80B7924: @ 80B7924
+ push {lr}
+ sub sp, 0x4
+ ldr r1, _080B7958
+ mov r0, sp
+ movs r2, 0x2
+ bl memcpy
+ ldr r0, _080B795C
+ adds r0, 0x40
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0xFF
+ beq _080B7952
+ cmp r0, 0xFE
+ bne _080B7948
+ mov r1, sp
+ movs r0, 0xB6
+ strb r0, [r1]
+_080B7948:
+ mov r0, sp
+ movs r1, 0x14
+ movs r2, 0x4
+ bl MenuPrint
+_080B7952:
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B7958: .4byte gUnknown_083CE370
+_080B795C: .4byte 0x02000000
+ thumb_func_end sub_80B7924
+
+ thumb_func_start sub_80B7960
+sub_80B7960: @ 80B7960
+ push {r4,lr}
+ ldr r0, _080B799C
+ movs r2, 0xFC
+ strb r2, [r0]
+ movs r1, 0x14
+ strb r1, [r0, 0x1]
+ movs r1, 0x8
+ strb r1, [r0, 0x2]
+ strb r2, [r0, 0x3]
+ movs r1, 0x11
+ strb r1, [r0, 0x4]
+ movs r1, 0x1
+ strb r1, [r0, 0x5]
+ adds r0, 0x6
+ ldr r4, _080B79A0
+ adds r1, r4, 0
+ bl StringCopy
+ ldr r0, _080B79A4
+ bl BasicInitMenuWindow
+ ldr r0, _080B799C
+ subs r4, 0x11
+ ldrb r1, [r4, 0x2]
+ movs r2, 0x4
+ bl MenuPrint
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B799C: .4byte gStringVar1
+_080B79A0: .4byte 0x02000011
+_080B79A4: .4byte gWindowConfig_81E6F4C
+ thumb_func_end sub_80B7960
+
+ thumb_func_start IsEnoughMoney
+IsEnoughMoney: @ 80B79A8
+ push {lr}
+ cmp r0, r1
+ bcs _080B79B2
+ movs r0, 0
+ b _080B79B4
+_080B79B2:
+ movs r0, 0x1
+_080B79B4:
+ pop {r1}
+ bx r1
+ thumb_func_end IsEnoughMoney
+
+ thumb_func_start sub_80B79B8
+sub_80B79B8: @ 80B79B8
+ push {lr}
+ adds r2, r0, 0
+ ldr r0, [r2]
+ adds r1, r0, r1
+ cmp r0, r1
+ bls _080B79CC
+ ldr r0, _080B79C8
+ b _080B79D4
+ .align 2, 0
+_080B79C8: .4byte 0x000f423f
+_080B79CC:
+ str r1, [r2]
+ ldr r0, _080B79DC
+ cmp r1, r0
+ bls _080B79D6
+_080B79D4:
+ str r0, [r2]
+_080B79D6:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B79DC: .4byte 0x000f423f
+ thumb_func_end sub_80B79B8
+
+ thumb_func_start sub_80B79E0
+sub_80B79E0: @ 80B79E0
+ push {lr}
+ adds r2, r0, 0
+ ldr r0, [r2]
+ cmp r0, r1
+ bcs _080B79EE
+ movs r0, 0
+ b _080B79F0
+_080B79EE:
+ subs r0, r1
+_080B79F0:
+ str r0, [r2]
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B79E0
+
+ thumb_func_start sub_80B79F8
+sub_80B79F8: @ 80B79F8
+ push {r4,lr}
+ adds r3, r0, 0
+ lsls r2, 24
+ lsrs r4, r2, 24
+ ldr r0, _080B7A0C
+ cmp r1, r0
+ bls _080B7A10
+ movs r2, 0x7
+ b _080B7A46
+ .align 2, 0
+_080B7A0C: .4byte 0x000f423f
+_080B7A10:
+ ldr r0, _080B7A1C
+ cmp r1, r0
+ bls _080B7A20
+ movs r2, 0x6
+ b _080B7A46
+ .align 2, 0
+_080B7A1C: .4byte 0x0001869f
+_080B7A20:
+ ldr r0, _080B7A2C
+ cmp r1, r0
+ bls _080B7A30
+ movs r2, 0x5
+ b _080B7A46
+ .align 2, 0
+_080B7A2C: .4byte 0x00002710
+_080B7A30:
+ ldr r0, _080B7A90
+ movs r2, 0x4
+ cmp r1, r0
+ bhi _080B7A46
+ movs r2, 0x3
+ cmp r1, 0x63
+ bhi _080B7A46
+ movs r2, 0x1
+ cmp r1, 0x9
+ bls _080B7A46
+ movs r2, 0x2
+_080B7A46:
+ movs r0, 0xFC
+ strb r0, [r3]
+ movs r0, 0x14
+ strb r0, [r3, 0x1]
+ movs r0, 0x6
+ strb r0, [r3, 0x2]
+ adds r3, 0x3
+ movs r0, 0
+ subs r2, r4, r2
+ cmp r0, r2
+ bge _080B7A6C
+ movs r4, 0
+_080B7A5E:
+ strb r4, [r3]
+ adds r3, 0x1
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, r2
+ blt _080B7A5E
+_080B7A6C:
+ movs r0, 0xB7
+ strb r0, [r3]
+ adds r3, 0x1
+ adds r0, r3, 0
+ bl ConvertIntToDecimalString
+ adds r3, r0, 0
+ movs r0, 0xFC
+ strb r0, [r3]
+ movs r0, 0x14
+ strb r0, [r3, 0x1]
+ movs r0, 0
+ strb r0, [r3, 0x2]
+ movs r0, 0xFF
+ strb r0, [r3, 0x3]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B7A90: .4byte 0x000003e7
+ thumb_func_end sub_80B79F8
+
+ thumb_func_start sub_80B7A94
+sub_80B7A94: @ 80B7A94
+ push {r4-r7,lr}
+ sub sp, 0x10
+ adds r4, r0, 0
+ lsls r1, 24
+ lsrs r5, r1, 24
+ lsls r2, 24
+ lsrs r6, r2, 24
+ lsls r3, 24
+ lsrs r7, r3, 24
+ mov r0, sp
+ adds r1, r4, 0
+ adds r2, r5, 0
+ bl sub_80B79F8
+ mov r0, sp
+ bl sub_8072CA4
+ lsls r0, 24
+ lsrs r2, r0, 24
+ adds r0, r5, 0x1
+ lsls r0, 3
+ cmp r2, r0
+ blt _080B7ACE
+ mov r0, sp
+ adds r1, r6, 0
+ adds r2, r7, 0
+ bl MenuPrint
+ b _080B7AE4
+_080B7ACE:
+ adds r1, r6, 0x1
+ adds r1, r5
+ lsls r1, 3
+ subs r1, r2
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r2, r7, 3
+ mov r0, sp
+ movs r3, 0x1
+ bl sub_80729D8
+_080B7AE4:
+ add sp, 0x10
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B7A94
+
+ thumb_func_start sub_80B7AEC
+sub_80B7AEC: @ 80B7AEC
+ push {r4-r6,lr}
+ sub sp, 0x20
+ adds r3, r0, 0
+ adds r4, r1, 0
+ adds r5, r2, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r5, 24
+ lsrs r5, 24
+ mov r6, sp
+ movs r0, 0xB7
+ strb r0, [r6]
+ adds r6, 0x1
+ adds r0, r6, 0
+ adds r1, r3, 0
+ bl ConvertIntToDecimalString
+ adds r6, r0, 0
+ mov r0, sp
+ adds r1, r4, 0
+ adds r2, r5, 0
+ bl sub_8072B4C
+ movs r0, 0xFC
+ strb r0, [r6]
+ movs r0, 0x14
+ strb r0, [r6, 0x1]
+ movs r0, 0
+ strb r0, [r6, 0x2]
+ movs r0, 0xFF
+ strb r0, [r6, 0x3]
+ add sp, 0x20
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B7AEC
+
+ thumb_func_start sub_80B7B34
+sub_80B7B34: @ 80B7B34
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x4
+ mov r8, r0
+ adds r5, r1, 0
+ mov r9, r2
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ lsls r5, 24
+ lsrs r5, 24
+ mov r1, r9
+ lsls r1, 8
+ mov r9, r1
+ ldr r4, _080B7BD8
+ adds r0, r1, r4
+ lsls r6, r5, 4
+ subs r6, r5
+ lsls r1, r6, 6
+ mov r3, r8
+ adds r3, 0x1
+ lsls r3, 5
+ ldr r2, _080B7BDC
+ adds r3, r2
+ adds r1, r3
+ movs r2, 0x20
+ str r3, [sp]
+ bl CpuFastSet
+ adds r4, 0x80
+ add r9, r4
+ adds r0, r5, 0x1
+ lsls r4, r0, 4
+ subs r4, r0
+ lsls r1, r4, 6
+ ldr r3, [sp]
+ adds r1, r3
+ mov r0, r9
+ movs r2, 0x20
+ bl CpuFastSet
+ movs r3, 0
+ lsls r5, 5
+ mov r0, r8
+ adds r7, r5, r0
+ lsls r6, 1
+ adds r6, 0x1
+ add r6, r8
+ ldr r1, _080B7BE0
+ adds r5, r1, 0
+ ldr r0, _080B7BE4
+ mov r12, r0
+ ldr r1, _080B7BE8
+ mov r9, r1
+ lsls r4, 1
+ adds r4, 0x1
+ add r4, r8
+_080B7BAA:
+ adds r1, r7, r3
+ lsls r1, 1
+ mov r0, r12
+ adds r2, r1, r0
+ adds r0, r3, r6
+ adds r0, r5
+ strh r0, [r2]
+ add r1, r9
+ adds r0, r3, r4
+ adds r0, r5
+ strh r0, [r1]
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0x3
+ bls _080B7BAA
+ add sp, 0x4
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B7BD8: .4byte gDecoration10000_Gfx
+_080B7BDC: .4byte 0x06008000
+_080B7BE0: .4byte 0xfffff000
+_080B7BE4: .4byte 0x0600f800
+_080B7BE8: .4byte 0x0600f840
+ thumb_func_end sub_80B7B34
+
+ thumb_func_start sub_80B7BEC
+sub_80B7BEC: @ 80B7BEC
+ push {r4,lr}
+ adds r4, r1, 0
+ adds r3, r2, 0
+ lsls r4, 24
+ lsls r3, 24
+ movs r1, 0xC0
+ lsls r1, 19
+ adds r4, r1
+ lsrs r4, 24
+ movs r1, 0x80
+ lsls r1, 17
+ adds r3, r1
+ lsrs r3, 24
+ movs r1, 0x6
+ adds r2, r4, 0
+ bl sub_80B7A94
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B7BEC
+
+ thumb_func_start sub_80B7C14
+sub_80B7C14: @ 80B7C14
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ mov r8, r0
+ adds r4, r1, 0
+ adds r3, r2, 0
+ lsls r4, 24
+ lsls r3, 24
+ lsrs r6, r4, 24
+ movs r0, 0xD0
+ lsls r0, 20
+ adds r4, r0
+ lsrs r4, 24
+ lsrs r5, r3, 24
+ movs r1, 0xC0
+ lsls r1, 18
+ adds r3, r1
+ lsrs r3, 24
+ adds r0, r6, 0
+ adds r1, r5, 0
+ adds r2, r4, 0
+ bl MenuDrawTextWindow
+ mov r0, r8
+ adds r1, r6, 0
+ adds r2, r5, 0
+ bl sub_80B7BEC
+ ldr r0, _080B7C88
+ bl LoadCompressedObjectPic
+ ldr r0, _080B7C8C
+ bl LoadCompressedObjectPalette
+ ldr r0, _080B7C90
+ lsls r6, 19
+ movs r1, 0x98
+ lsls r1, 13
+ adds r6, r1
+ asrs r6, 16
+ lsls r5, 19
+ movs r1, 0xB0
+ lsls r1, 12
+ adds r5, r1
+ asrs r5, 16
+ adds r1, r6, 0
+ adds r2, r5, 0
+ movs r3, 0
+ bl CreateSprite
+ ldr r1, _080B7C94
+ strb r0, [r1]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B7C88: .4byte gUnknown_083CF584
+_080B7C8C: .4byte gUnknown_083CF58C
+_080B7C90: .4byte gSpriteTemplate_83CF56C
+_080B7C94: .4byte gUnknown_02038734
+ thumb_func_end sub_80B7C14
+
+ thumb_func_start RemoveMoneyLabelObject
+RemoveMoneyLabelObject: @ 80B7C98
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r5, 24
+ lsrs r5, 24
+ ldr r0, _080B7CDC
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080B7CE0
+ adds r0, r1
+ bl DestroySpriteAndFreeResources
+ ldr r0, _080B7CE4
+ bl FreeSpritePaletteByTag
+ adds r2, r4, 0
+ adds r2, 0xD
+ lsls r2, 24
+ lsrs r2, 24
+ adds r3, r5, 0x3
+ lsls r3, 24
+ lsrs r3, 24
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl MenuZeroFillWindowRect
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B7CDC: .4byte gUnknown_02038734
+_080B7CE0: .4byte gSprites
+_080B7CE4: .4byte 0x00002722
+ thumb_func_end RemoveMoneyLabelObject
+
+ thumb_func_start sub_80B7CE8
+sub_80B7CE8: @ 80B7CE8
+ push {lr}
+ ldr r0, _080B7D04
+ movs r1, 0x92
+ lsls r1, 3
+ adds r0, r1
+ ldr r0, [r0]
+ ldr r1, _080B7D08
+ ldrh r1, [r1]
+ bl IsEnoughMoney
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080B7D04: .4byte gSaveBlock1
+_080B7D08: .4byte gUnknown_0202E8CE
+ thumb_func_end sub_80B7CE8
+
+ thumb_func_start sub_80B7D0C
+sub_80B7D0C: @ 80B7D0C
+ push {lr}
+ ldr r0, _080B7D1C
+ ldr r1, _080B7D20
+ ldrh r1, [r1]
+ bl sub_80B79E0
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B7D1C: .4byte gSaveBlock1 + 0x490
+_080B7D20: .4byte gUnknown_0202E8CE
+ thumb_func_end sub_80B7D0C
+
+ thumb_func_start AreMovesContestCombo
+AreMovesContestCombo: @ 80B7D24
+ push {r4,lr}
+ sub sp, 0x4
+ lsls r0, 16
+ lsls r1, 16
+ ldr r2, _080B7D78
+ lsrs r0, 13
+ adds r0, r2
+ ldrb r4, [r0, 0x2]
+ mov r3, sp
+ lsrs r1, 13
+ adds r1, r2
+ ldrb r0, [r1, 0x3]
+ strb r0, [r3]
+ mov r2, sp
+ ldrb r0, [r1, 0x4]
+ strb r0, [r2, 0x1]
+ ldrb r0, [r1, 0x5]
+ strb r0, [r2, 0x2]
+ mov r0, sp
+ ldrb r1, [r1, 0x6]
+ strb r1, [r0, 0x3]
+ cmp r4, 0
+ beq _080B7D80
+ mov r0, sp
+ ldrb r0, [r0]
+ cmp r4, r0
+ beq _080B7D6E
+ mov r0, sp
+ ldrb r0, [r0, 0x1]
+ cmp r4, r0
+ beq _080B7D6E
+ mov r0, sp
+ ldrb r0, [r0, 0x2]
+ cmp r4, r0
+ beq _080B7D6E
+ cmp r4, r1
+ bne _080B7D80
+_080B7D6E:
+ ldr r0, _080B7D7C
+ adds r0, r4, r0
+ ldrb r0, [r0]
+ b _080B7D82
+ .align 2, 0
+_080B7D78: .4byte gContestMoves
+_080B7D7C: .4byte gComboStarterLookupTable
+_080B7D80:
+ movs r0, 0
+_080B7D82:
+ add sp, 0x4
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end AreMovesContestCombo
+
+ thumb_func_start ContestEffect_00
+ContestEffect_00: @ 80B7D8C
+ bx lr
+ thumb_func_end ContestEffect_00
+
+ thumb_func_start ContestEffect_01
+ContestEffect_01: @ 80B7D90
+ push {lr}
+ ldr r3, _080B7DB8
+ ldrb r1, [r3, 0x11]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r1, r3, 0
+ subs r1, 0x70
+ adds r0, r1
+ ldrb r1, [r0, 0x10]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0, 0x10]
+ ldrb r0, [r3, 0x11]
+ movs r1, 0
+ bl sub_80B13EC
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B7DB8: .4byte 0x020192d0
+ thumb_func_end ContestEffect_01
+
+ thumb_func_start ContestEffect_02
+ContestEffect_02: @ 80B7DBC
+ push {lr}
+ ldr r3, _080B7DE4
+ ldrb r1, [r3, 0x11]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r1, r3, 0
+ subs r1, 0x70
+ adds r0, r1
+ ldrb r1, [r0, 0x11]
+ movs r2, 0x8
+ orrs r1, r2
+ strb r1, [r0, 0x11]
+ ldrb r0, [r3, 0x11]
+ movs r1, 0x1
+ bl sub_80B13EC
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B7DE4: .4byte 0x020192d0
+ thumb_func_end ContestEffect_02
+
+ thumb_func_start ContestEffect_03
+ContestEffect_03: @ 80B7DE8
+ push {r4,lr}
+ ldr r3, _080B7E30
+ ldrb r1, [r3, 0x11]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r4, r3, 0
+ subs r4, 0x70
+ adds r0, r4
+ ldrb r1, [r0, 0x10]
+ movs r2, 0x8
+ orrs r1, r2
+ strb r1, [r0, 0x10]
+ ldrb r0, [r3, 0x11]
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 2
+ adds r1, r4
+ ldrb r2, [r1, 0x15]
+ movs r0, 0x2
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1, 0x15]
+ ldrb r0, [r3, 0x11]
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 2
+ adds r1, r4
+ ldrb r2, [r1, 0xB]
+ movs r0, 0x71
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1, 0xB]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B7E30: .4byte 0x020192d0
+ thumb_func_end ContestEffect_03
+
+ thumb_func_start ContestEffect_04
+ContestEffect_04: @ 80B7E34
+ push {lr}
+ ldr r2, _080B7E58
+ ldrb r1, [r2, 0x11]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r1, r2, 0
+ subs r1, 0x70
+ adds r0, r1
+ movs r1, 0x1
+ strb r1, [r0, 0x12]
+ ldrb r0, [r2, 0x11]
+ movs r1, 0x2
+ bl sub_80B13EC
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B7E58: .4byte 0x020192d0
+ thumb_func_end ContestEffect_04
+
+ thumb_func_start ContestEffect_05
+ContestEffect_05: @ 80B7E5C
+ push {lr}
+ ldr r3, _080B7E84
+ ldrb r1, [r3, 0x11]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r1, r3, 0
+ subs r1, 0x70
+ adds r0, r1
+ ldrb r1, [r0, 0x10]
+ movs r2, 0x2
+ orrs r1, r2
+ strb r1, [r0, 0x10]
+ ldrb r0, [r3, 0x11]
+ movs r1, 0x3
+ bl sub_80B13EC
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B7E84: .4byte 0x020192d0
+ thumb_func_end ContestEffect_05
+
+ thumb_func_start ContestEffect_06
+ContestEffect_06: @ 80B7E88
+ push {lr}
+ ldr r2, _080B7EAC
+ ldrb r1, [r2, 0x11]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r1, r2, 0
+ subs r1, 0x70
+ adds r0, r1
+ movs r1, 0x14
+ strb r1, [r0, 0xF]
+ ldrb r0, [r2, 0x11]
+ movs r1, 0x4
+ bl sub_80B13EC
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B7EAC: .4byte 0x020192d0
+ thumb_func_end ContestEffect_06
+
+ thumb_func_start ContestEffect_07
+ContestEffect_07: @ 80B7EB0
+ push {lr}
+ ldr r3, _080B7ED8
+ ldrb r1, [r3, 0x11]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r1, r3, 0
+ subs r1, 0x70
+ adds r0, r1
+ ldrb r1, [r0, 0x10]
+ movs r2, 0x1
+ orrs r1, r2
+ strb r1, [r0, 0x10]
+ ldrb r0, [r3, 0x11]
+ movs r1, 0x5
+ bl sub_80B13EC
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B7ED8: .4byte 0x020192d0
+ thumb_func_end ContestEffect_07
+
+ thumb_func_start ContestEffect_08
+ContestEffect_08: @ 80B7EDC
+ push {r4,lr}
+ movs r2, 0
+ ldr r3, _080B7F38
+ ldrb r0, [r3, 0x11]
+ adds r1, r0, r3
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _080B7F1A
+ subs r0, 0x1
+ ldrb r4, [r3]
+ cmp r0, r4
+ beq _080B7F0A
+ adds r4, r3, 0
+ adds r3, r1, 0
+_080B7EF8:
+ adds r2, 0x1
+ cmp r2, 0x3
+ bgt _080B7F0A
+ ldrb r0, [r3]
+ subs r0, 0x1
+ adds r1, r2, r4
+ ldrb r1, [r1]
+ cmp r0, r1
+ bne _080B7EF8
+_080B7F0A:
+ ldr r1, _080B7F38
+ strb r2, [r1, 0x8]
+ movs r0, 0xFF
+ strb r0, [r1, 0x9]
+ bl sub_80B9120
+ lsls r0, 24
+ lsrs r2, r0, 24
+_080B7F1A:
+ cmp r2, 0
+ bne _080B7F28
+ ldr r0, _080B7F38
+ ldrb r0, [r0, 0x11]
+ movs r1, 0x36
+ bl sub_80B1404
+_080B7F28:
+ ldr r0, _080B7F38
+ ldrb r0, [r0, 0x11]
+ movs r1, 0x30
+ bl sub_80B13EC
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B7F38: .4byte 0x020192d0
+ thumb_func_end ContestEffect_08
+
+ thumb_func_start ContestEffect_09
+ContestEffect_09: @ 80B7F3C
+ push {r4-r6,lr}
+ movs r2, 0
+ ldr r1, _080B7F9C
+ ldrb r0, [r1, 0x11]
+ adds r4, r0, r1
+ ldrb r0, [r4]
+ cmp r0, 0
+ beq _080B7F7C
+ movs r3, 0
+ adds r5, r1, 0
+ adds r6, r5, 0
+ adds r6, 0x8
+_080B7F54:
+ adds r1, r2, r5
+ ldrb r0, [r4]
+ ldrb r1, [r1]
+ cmp r0, r1
+ bls _080B7F64
+ adds r0, r3, r6
+ strb r2, [r0]
+ adds r3, 0x1
+_080B7F64:
+ adds r2, 0x1
+ cmp r2, 0x3
+ ble _080B7F54
+ ldr r0, _080B7F9C
+ adds r0, 0x8
+ adds r0, r3, r0
+ movs r1, 0xFF
+ strb r1, [r0]
+ bl sub_80B9120
+ lsls r0, 24
+ lsrs r2, r0, 24
+_080B7F7C:
+ cmp r2, 0
+ bne _080B7F8A
+ ldr r0, _080B7F9C
+ ldrb r0, [r0, 0x11]
+ movs r1, 0x36
+ bl sub_80B1404
+_080B7F8A:
+ ldr r0, _080B7F9C
+ ldrb r0, [r0, 0x11]
+ movs r1, 0x30
+ bl sub_80B13EC
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B7F9C: .4byte 0x020192d0
+ thumb_func_end ContestEffect_09
+
+ thumb_func_start ContestEffect_14
+ContestEffect_14: @ 80B7FA0
+ push {lr}
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0xA
+ bl __umodsi3
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x14
+ cmp r0, 0x1
+ bls _080B7FC2
+ movs r1, 0x3C
+ cmp r0, 0x7
+ bhi _080B7FC2
+ movs r1, 0x28
+_080B7FC2:
+ ldr r0, _080B7FD0
+ strh r1, [r0, 0x4]
+ bl ContestEffect_08
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B7FD0: .4byte 0x020192d0
+ thumb_func_end ContestEffect_14
+
+ thumb_func_start ContestEffect_15
+ContestEffect_15: @ 80B7FD4
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ movs r7, 0
+ ldr r0, _080B806C
+ ldrb r6, [r0, 0x11]
+ adds r1, r6, r0
+ ldrb r1, [r1]
+ mov r8, r0
+ cmp r1, 0
+ beq _080B804A
+ movs r5, 0
+ mov r4, r8
+_080B7FEE:
+ adds r0, r6, r4
+ adds r1, r5, r4
+ ldrb r0, [r0]
+ ldrb r1, [r1]
+ cmp r0, r1
+ bls _080B8044
+ strb r5, [r4, 0x8]
+ movs r0, 0xFF
+ strb r0, [r4, 0x9]
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0xA
+ bl __umodsi3
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0
+ cmp r0, 0
+ beq _080B8032
+ movs r1, 0xA
+ cmp r0, 0x2
+ bls _080B8032
+ movs r1, 0x14
+ cmp r0, 0x4
+ bls _080B8032
+ movs r1, 0x1E
+ cmp r0, 0x6
+ bls _080B8032
+ movs r1, 0x3C
+ cmp r0, 0x8
+ bhi _080B8032
+ movs r1, 0x28
+_080B8032:
+ strh r1, [r4, 0x4]
+ bl sub_80B9120
+ lsls r0, 24
+ cmp r0, 0
+ beq _080B8044
+ adds r0, r7, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+_080B8044:
+ adds r5, 0x1
+ cmp r5, 0x3
+ ble _080B7FEE
+_080B804A:
+ mov r1, r8
+ ldrb r0, [r1, 0x11]
+ movs r1, 0x30
+ bl sub_80B13EC
+ cmp r7, 0
+ bne _080B8062
+ mov r1, r8
+ ldrb r0, [r1, 0x11]
+ movs r1, 0x36
+ bl sub_80B1404
+_080B8062:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B806C: .4byte 0x020192d0
+ thumb_func_end ContestEffect_15
+
+ thumb_func_start ContestEffect_16
+ContestEffect_16: @ 80B8070
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ movs r0, 0
+ mov r9, r0
+ ldr r0, _080B8108
+ ldrb r7, [r0, 0x11]
+ adds r1, r7, r0
+ ldrb r1, [r1]
+ mov r10, r0
+ cmp r1, 0
+ beq _080B80E0
+ movs r6, 0
+ mov r8, r10
+ mov r5, r10
+ subs r5, 0x5B
+_080B8094:
+ mov r1, r8
+ adds r0, r7, r1
+ adds r1, r6, r1
+ ldrb r0, [r0]
+ ldrb r1, [r1]
+ cmp r0, r1
+ bls _080B80D8
+ ldrb r1, [r5]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080B80D8
+ lsls r0, r6, 24
+ lsrs r4, r0, 24
+ adds r0, r4, 0
+ bl sub_80B90C0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080B80D8
+ ldrb r0, [r5]
+ movs r2, 0x11
+ negs r2, r2
+ adds r1, r2, 0
+ ands r0, r1
+ movs r1, 0x20
+ orrs r0, r1
+ strb r0, [r5]
+ adds r0, r4, 0
+ movs r1, 0x8
+ bl sub_80B13EC
+ movs r0, 0x1
+ mov r9, r0
+_080B80D8:
+ adds r5, 0x1C
+ adds r6, 0x1
+ cmp r6, 0x3
+ ble _080B8094
+_080B80E0:
+ mov r1, r10
+ ldrb r0, [r1, 0x11]
+ movs r1, 0x7
+ bl sub_80B13EC
+ mov r2, r9
+ cmp r2, 0
+ bne _080B80FA
+ mov r1, r10
+ ldrb r0, [r1, 0x11]
+ movs r1, 0x36
+ bl sub_80B1404
+_080B80FA:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B8108: .4byte 0x020192d0
+ thumb_func_end ContestEffect_16
+
+ thumb_func_start ContestEffect_17
+ContestEffect_17: @ 80B810C
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ movs r0, 0
+ mov r9, r0
+ ldr r0, _080B8150
+ ldrb r1, [r0, 0x11]
+ mov r8, r1
+ adds r1, r0
+ ldrb r1, [r1]
+ adds r6, r0, 0
+ cmp r1, 0
+ beq _080B817C
+ movs r5, 0
+ adds r4, r6, 0
+ movs r7, 0
+_080B812E:
+ mov r2, r8
+ adds r0, r2, r4
+ adds r1, r5, r4
+ ldrb r0, [r0]
+ ldrb r1, [r1]
+ cmp r0, r1
+ bls _080B8172
+ adds r0, r6, 0
+ subs r0, 0x70
+ adds r0, r7, r0
+ ldrb r1, [r0, 0x15]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080B8154
+ movs r0, 0x32
+ b _080B8156
+ .align 2, 0
+_080B8150: .4byte 0x020192d0
+_080B8154:
+ movs r0, 0xA
+_080B8156:
+ strh r0, [r4, 0x4]
+ strb r5, [r4, 0x8]
+ movs r0, 0xFF
+ strb r0, [r4, 0x9]
+ bl sub_80B9120
+ lsls r0, 24
+ cmp r0, 0
+ beq _080B8172
+ mov r0, r9
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+_080B8172:
+ adds r7, 0x1C
+ adds r5, 0x1
+ ldr r6, _080B81A0
+ cmp r5, 0x3
+ ble _080B812E
+_080B817C:
+ ldrb r0, [r6, 0x11]
+ movs r1, 0x30
+ bl sub_80B13EC
+ mov r0, r9
+ cmp r0, 0
+ bne _080B8192
+ ldrb r0, [r6, 0x11]
+ movs r1, 0x36
+ bl sub_80B1404
+_080B8192:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B81A0: .4byte 0x020192d0
+ thumb_func_end ContestEffect_17
+
+ thumb_func_start ContestEffect_18
+ContestEffect_18: @ 80B81A4
+ push {r4,lr}
+ ldr r4, _080B81D0
+ ldrb r1, [r4, 0x11]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r1, r4, 0
+ subs r1, 0x70
+ adds r0, r1
+ ldrb r1, [r0, 0x11]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0, 0x11]
+ bl ContestEffect_09
+ ldrb r0, [r4, 0x11]
+ movs r1, 0x30
+ bl sub_80B13EC
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B81D0: .4byte 0x020192d0
+ thumb_func_end ContestEffect_18
+
+ thumb_func_start ContestEffect_19
+ContestEffect_19: @ 80B81D4
+ push {r4,lr}
+ ldr r4, _080B8208
+ ldrb r1, [r4, 0x11]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r1, r4, 0
+ subs r1, 0x70
+ adds r0, r1
+ ldrh r0, [r0, 0x6]
+ ldr r1, _080B820C
+ lsls r0, 3
+ adds r0, r1
+ ldrb r0, [r0, 0x1]
+ lsls r0, 29
+ lsrs r0, 29
+ bl sub_80B9038
+ ldrb r0, [r4, 0x11]
+ movs r1, 0x30
+ bl sub_80B13EC
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B8208: .4byte 0x020192d0
+_080B820C: .4byte gContestMoves
+ thumb_func_end ContestEffect_19
+
+ thumb_func_start ContestEffect_20
+ContestEffect_20: @ 80B8210
+ push {lr}
+ movs r0, 0
+ bl sub_80B9038
+ ldr r0, _080B8228
+ ldrb r0, [r0, 0x11]
+ movs r1, 0x30
+ bl sub_80B13EC
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B8228: .4byte 0x020192d0
+ thumb_func_end ContestEffect_20
+
+ thumb_func_start ContestEffect_21
+ContestEffect_21: @ 80B822C
+ push {lr}
+ movs r0, 0x1
+ bl sub_80B9038
+ ldr r0, _080B8244
+ ldrb r0, [r0, 0x11]
+ movs r1, 0x30
+ bl sub_80B13EC
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B8244: .4byte 0x020192d0
+ thumb_func_end ContestEffect_21
+
+ thumb_func_start ContestEffect_22
+ContestEffect_22: @ 80B8248
+ push {lr}
+ movs r0, 0x2
+ bl sub_80B9038
+ ldr r0, _080B8260
+ ldrb r0, [r0, 0x11]
+ movs r1, 0x30
+ bl sub_80B13EC
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B8260: .4byte 0x020192d0
+ thumb_func_end ContestEffect_22
+
+ thumb_func_start ContestEffect_23
+ContestEffect_23: @ 80B8264
+ push {lr}
+ movs r0, 0x3
+ bl sub_80B9038
+ ldr r0, _080B827C
+ ldrb r0, [r0, 0x11]
+ movs r1, 0x30
+ bl sub_80B13EC
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B827C: .4byte 0x020192d0
+ thumb_func_end ContestEffect_23
+
+ thumb_func_start ContestEffect_24
+ContestEffect_24: @ 80B8280
+ push {lr}
+ movs r0, 0x4
+ bl sub_80B9038
+ ldr r0, _080B8298
+ ldrb r0, [r0, 0x11]
+ movs r1, 0x30
+ bl sub_80B13EC
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B8298: .4byte 0x020192d0
+ thumb_func_end ContestEffect_24
+
+ thumb_func_start ContestEffect_25
+ContestEffect_25: @ 80B829C
+ push {r4-r7,lr}
+ movs r4, 0
+ ldr r0, _080B82E0
+ ldrb r1, [r0, 0x11]
+ adds r1, r0
+ ldrb r1, [r1]
+ adds r7, r0, 0
+ cmp r1, 0x3
+ beq _080B82F4
+ movs r5, 0
+ adds r6, r7, 0
+_080B82B2:
+ ldrb r0, [r6, 0x11]
+ adds r0, r6
+ ldrb r0, [r0]
+ adds r0, 0x1
+ adds r1, r5, r6
+ ldrb r1, [r1]
+ cmp r0, r1
+ bne _080B82EE
+ lsls r0, r5, 24
+ lsrs r4, r0, 24
+ adds r0, r4, 0
+ bl sub_80B90C0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080B82E4
+ adds r0, r4, 0
+ bl sub_80B157C
+ adds r0, r4, 0
+ movs r1, 0xA
+ b _080B82E8
+ .align 2, 0
+_080B82E0: .4byte 0x020192d0
+_080B82E4:
+ adds r0, r4, 0
+ movs r1, 0x3C
+_080B82E8:
+ bl sub_80B13EC
+ movs r4, 0x1
+_080B82EE:
+ adds r5, 0x1
+ cmp r5, 0x3
+ ble _080B82B2
+_080B82F4:
+ ldrb r0, [r7, 0x11]
+ movs r1, 0x9
+ bl sub_80B13EC
+ cmp r4, 0
+ bne _080B8308
+ ldrb r0, [r7, 0x11]
+ movs r1, 0x36
+ bl sub_80B1404
+_080B8308:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end ContestEffect_25
+
+ thumb_func_start ContestEffect_26
+ContestEffect_26: @ 80B8310
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x1C
+ movs r0, 0
+ mov r9, r0
+ movs r1, 0
+ str r1, [sp, 0x18]
+ mov r0, sp
+ movs r1, 0xFF
+ movs r2, 0x5
+ bl memset
+ movs r6, 0
+ movs r4, 0
+ add r2, sp, 0x10
+ mov r8, r2
+ add r3, sp, 0x8
+ mov r10, r3
+ ldr r5, _080B8384
+ adds r7, r5, 0
+ subs r7, 0x70
+_080B8340:
+ ldrb r0, [r5, 0x11]
+ adds r0, r5
+ adds r1, r6, r5
+ ldrb r0, [r0]
+ ldrb r1, [r1]
+ cmp r0, r1
+ bcs _080B836E
+ ldrb r1, [r7, 0xC]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _080B836E
+ lsls r0, r6, 24
+ lsrs r0, 24
+ bl sub_80AF59C
+ lsls r0, 24
+ cmp r0, 0
+ bne _080B836E
+ mov r1, sp
+ adds r0, r1, r4
+ strb r6, [r0]
+ adds r4, 0x1
+_080B836E:
+ adds r7, 0x1C
+ adds r6, 0x1
+ cmp r6, 0x3
+ ble _080B8340
+ cmp r4, 0x1
+ bne _080B8388
+ movs r0, 0x3C
+ mov r2, r8
+ strh r0, [r2]
+ b _080B83B6
+ .align 2, 0
+_080B8384: .4byte 0x020192d0
+_080B8388:
+ cmp r4, 0x2
+ bne _080B8396
+ movs r0, 0x1E
+ mov r3, r8
+ strh r0, [r3]
+ strh r0, [r3, 0x2]
+ b _080B83B6
+_080B8396:
+ cmp r4, 0x3
+ bne _080B83A6
+ movs r0, 0x14
+ mov r7, r8
+ strh r0, [r7]
+ strh r0, [r7, 0x2]
+ strh r0, [r7, 0x4]
+ b _080B83B6
+_080B83A6:
+ mov r1, r8
+ movs r2, 0
+ mov r0, r8
+ adds r0, 0x6
+_080B83AE:
+ strh r2, [r0]
+ subs r0, 0x2
+ cmp r0, r1
+ bge _080B83AE
+_080B83B6:
+ movs r6, 0
+ movs r7, 0
+ mov r4, r10
+_080B83BC:
+ ldr r0, _080B83F0
+ adds r5, r7, r0
+ ldrb r1, [r5, 0x15]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080B83FC
+ lsls r0, r6, 24
+ lsrs r0, 24
+ bl sub_80B214C
+ lsls r0, 24
+ cmp r0, 0
+ beq _080B83FC
+ ldr r1, _080B83F4
+ ldrh r0, [r5, 0x8]
+ lsls r0, 3
+ adds r0, r1
+ ldrb r0, [r0, 0x2]
+ ldr r1, _080B83F8
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 1
+ b _080B83FE
+ .align 2, 0
+_080B83F0: .4byte 0x02019260
+_080B83F4: .4byte gContestMoves
+_080B83F8: .4byte gComboStarterLookupTable
+_080B83FC:
+ movs r0, 0
+_080B83FE:
+ strh r0, [r4]
+ ldr r5, _080B8494
+ adds r0, r7, r5
+ ldrb r0, [r0, 0xD]
+ lsls r0, 24
+ asrs r0, 24
+ movs r1, 0xA
+ bl __divsi3
+ lsls r0, 24
+ asrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 1
+ ldrh r0, [r4]
+ subs r0, r1
+ strh r0, [r4]
+ adds r7, 0x1C
+ adds r4, 0x2
+ adds r6, 0x1
+ cmp r6, 0x3
+ ble _080B83BC
+ mov r2, r8
+ movs r3, 0
+ ldrsh r0, [r2, r3]
+ cmp r0, 0
+ beq _080B84CA
+ movs r6, 0
+ mov r0, sp
+ ldrb r0, [r0]
+ cmp r0, 0xFF
+ beq _080B84CA
+ adds r5, 0x7D
+ mov r4, sp
+_080B8442:
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x64
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r1, r6, 1
+ add r1, r8
+ movs r7, 0
+ ldrsh r2, [r1, r7]
+ ldrb r3, [r4]
+ lsls r1, r3, 1
+ add r1, r10
+ movs r7, 0
+ ldrsh r1, [r1, r7]
+ adds r2, r1
+ cmp r0, r2
+ bge _080B8498
+ adds r0, r3, 0
+ bl sub_80B90C0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080B84A2
+ ldrb r0, [r4]
+ bl sub_80B157C
+ ldrb r0, [r4]
+ movs r1, 0xA
+ bl sub_80B13EC
+ mov r0, r9
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ b _080B849C
+ .align 2, 0
+_080B8494: .4byte 0x02019260
+_080B8498:
+ movs r0, 0x1
+ str r0, [sp, 0x18]
+_080B849C:
+ ldr r1, [sp, 0x18]
+ cmp r1, 0
+ beq _080B84B8
+_080B84A2:
+ movs r2, 0
+ str r2, [sp, 0x18]
+ ldrb r0, [r4]
+ movs r1, 0x3C
+ bl sub_80B13EC
+ mov r0, r9
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+_080B84B8:
+ ldrb r0, [r4]
+ adds r0, r5
+ movs r1, 0x1
+ strb r1, [r0]
+ adds r4, 0x1
+ adds r6, 0x1
+ ldrb r0, [r4]
+ cmp r0, 0xFF
+ bne _080B8442
+_080B84CA:
+ ldr r4, _080B84F4
+ ldrb r0, [r4, 0x11]
+ movs r1, 0xB
+ bl sub_80B13EC
+ mov r3, r9
+ cmp r3, 0
+ bne _080B84E2
+ ldrb r0, [r4, 0x11]
+ movs r1, 0x36
+ bl sub_80B1404
+_080B84E2:
+ add sp, 0x1C
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B84F4: .4byte 0x020192d0
+ thumb_func_end ContestEffect_26
+
+ thumb_func_start ContestEffect_27
+ContestEffect_27: @ 80B84F8
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ movs r0, 0
+ mov r8, r0
+ movs r6, 0
+ ldr r7, _080B8580
+ adds r5, r7, 0
+ subs r5, 0x63
+_080B850A:
+ ldrb r0, [r7, 0x11]
+ adds r0, r7
+ adds r1, r6, r7
+ ldrb r0, [r0]
+ ldrb r1, [r1]
+ cmp r0, r1
+ bls _080B8556
+ movs r0, 0
+ ldrsb r0, [r5, r0]
+ cmp r0, 0
+ ble _080B8556
+ lsls r0, r6, 24
+ lsrs r4, r0, 24
+ adds r0, r4, 0
+ bl sub_80B90C0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080B8556
+ movs r0, 0
+ strb r0, [r5]
+ ldrb r1, [r5, 0x3]
+ movs r2, 0x31
+ negs r2, r2
+ adds r0, r2, 0
+ ands r1, r0
+ movs r0, 0x20
+ orrs r1, r0
+ strb r1, [r5, 0x3]
+ adds r0, r4, 0
+ movs r1, 0xD
+ bl sub_80B13EC
+ mov r0, r8
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+_080B8556:
+ adds r5, 0x1C
+ adds r6, 0x1
+ cmp r6, 0x3
+ ble _080B850A
+ ldr r4, _080B8580
+ ldrb r0, [r4, 0x11]
+ movs r1, 0xC
+ bl sub_80B13EC
+ mov r0, r8
+ cmp r0, 0
+ bne _080B8576
+ ldrb r0, [r4, 0x11]
+ movs r1, 0x39
+ bl sub_80B1404
+_080B8576:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B8580: .4byte 0x020192d0
+ thumb_func_end ContestEffect_27
+
+ thumb_func_start ContestEffect_28
+ContestEffect_28: @ 80B8584
+ push {r4-r7,lr}
+ movs r7, 0
+ movs r5, 0
+ ldr r4, _080B85B0
+ movs r6, 0
+_080B858E:
+ ldrb r0, [r4, 0x11]
+ adds r0, r4
+ adds r1, r5, r4
+ ldrb r0, [r0]
+ ldrb r1, [r1]
+ cmp r0, r1
+ bls _080B85CE
+ adds r0, r4, 0
+ subs r0, 0x70
+ adds r0, r6, r0
+ ldrb r0, [r0, 0xD]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0
+ ble _080B85B4
+ movs r0, 0x28
+ b _080B85B6
+ .align 2, 0
+_080B85B0: .4byte 0x020192d0
+_080B85B4:
+ movs r0, 0xA
+_080B85B6:
+ strh r0, [r4, 0x4]
+ strb r5, [r4, 0x8]
+ movs r0, 0xFF
+ strb r0, [r4, 0x9]
+ bl sub_80B9120
+ lsls r0, 24
+ cmp r0, 0
+ beq _080B85CE
+ adds r0, r7, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+_080B85CE:
+ adds r6, 0x1C
+ adds r5, 0x1
+ cmp r5, 0x3
+ ble _080B858E
+ ldr r4, _080B85F4
+ ldrb r0, [r4, 0x11]
+ movs r1, 0xE
+ bl sub_80B13EC
+ cmp r7, 0
+ bne _080B85EC
+ ldrb r0, [r4, 0x11]
+ movs r1, 0x39
+ bl sub_80B1404
+_080B85EC:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B85F4: .4byte 0x020192d0
+ thumb_func_end ContestEffect_28
+
+ thumb_func_start ContestEffect_29
+ContestEffect_29: @ 80B85F8
+ push {r4,lr}
+ ldr r0, _080B863C
+ ldr r4, _080B8640
+ ldrb r2, [r4, 0x11]
+ adds r0, r2, r0
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080B8636
+ lsls r1, r2, 3
+ subs r1, r2
+ lsls r1, 2
+ adds r0, r4, 0
+ subs r0, 0x70
+ adds r1, r0
+ ldrh r0, [r1, 0x6]
+ ldr r3, _080B8644
+ ldr r2, _080B8648
+ lsls r0, 3
+ adds r0, r2
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r3
+ ldrb r0, [r0, 0x1]
+ lsls r0, 1
+ ldrh r2, [r1, 0x2]
+ adds r0, r2
+ strh r0, [r1, 0x2]
+ ldrb r0, [r4, 0x11]
+ movs r1, 0xF
+ bl sub_80B13EC
+_080B8636:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B863C: .4byte gUnknown_02038696
+_080B8640: .4byte 0x020192d0
+_080B8644: .4byte gContestEffects
+_080B8648: .4byte gContestMoves
+ thumb_func_end ContestEffect_29
+
+ thumb_func_start ContestEffect_30
+ContestEffect_30: @ 80B864C
+ push {r4,lr}
+ ldr r0, _080B8690
+ ldr r4, _080B8694
+ ldrb r2, [r4, 0x11]
+ adds r0, r2, r0
+ ldrb r0, [r0]
+ cmp r0, 0x3
+ bne _080B868A
+ lsls r1, r2, 3
+ subs r1, r2
+ lsls r1, 2
+ adds r0, r4, 0
+ subs r0, 0x70
+ adds r1, r0
+ ldrh r0, [r1, 0x6]
+ ldr r3, _080B8698
+ ldr r2, _080B869C
+ lsls r0, 3
+ adds r0, r2
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r3
+ ldrb r0, [r0, 0x1]
+ lsls r0, 1
+ ldrh r2, [r1, 0x2]
+ adds r0, r2
+ strh r0, [r1, 0x2]
+ ldrb r0, [r4, 0x11]
+ movs r1, 0x10
+ bl sub_80B13EC
+_080B868A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B8690: .4byte gUnknown_02038696
+_080B8694: .4byte 0x020192d0
+_080B8698: .4byte gContestEffects
+_080B869C: .4byte gContestMoves
+ thumb_func_end ContestEffect_30
+
+ thumb_func_start ContestEffect_31
+ContestEffect_31: @ 80B86A0
+ push {r4-r7,lr}
+ movs r1, 0
+ movs r3, 0
+ ldr r4, _080B86EC
+ ldrb r0, [r4, 0x11]
+ adds r0, r4
+ ldrb r5, [r0]
+ movs r2, 0
+ adds r6, r4, 0
+ subs r6, 0x70
+_080B86B4:
+ adds r0, r1, r4
+ ldrb r0, [r0]
+ cmp r5, r0
+ bls _080B86C4
+ adds r0, r2, r6
+ movs r7, 0x2
+ ldrsh r0, [r0, r7]
+ adds r3, r0
+_080B86C4:
+ adds r2, 0x1C
+ adds r1, 0x1
+ cmp r1, 0x3
+ ble _080B86B4
+ cmp r3, 0
+ bge _080B86D2
+ movs r3, 0
+_080B86D2:
+ ldr r4, _080B86EC
+ ldrb r2, [r4, 0x11]
+ adds r0, r2, r4
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080B86E2
+ cmp r3, 0
+ bne _080B86F0
+_080B86E2:
+ adds r0, r2, 0
+ movs r1, 0x12
+ bl sub_80B13EC
+ b _080B8710
+ .align 2, 0
+_080B86EC: .4byte 0x020192d0
+_080B86F0:
+ lsls r1, r2, 3
+ subs r1, r2
+ lsls r1, 2
+ adds r0, r4, 0
+ subs r0, 0x70
+ adds r1, r0
+ lsrs r0, r3, 31
+ adds r0, r3, r0
+ asrs r0, 1
+ ldrh r2, [r1, 0x2]
+ adds r0, r2
+ strh r0, [r1, 0x2]
+ ldrb r0, [r4, 0x11]
+ movs r1, 0x11
+ bl sub_80B13EC
+_080B8710:
+ ldr r4, _080B873C
+ ldrb r1, [r4, 0x11]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r5, r4, 0
+ subs r5, 0x70
+ adds r0, r5
+ movs r7, 0x2
+ ldrsh r0, [r0, r7]
+ bl sub_80B9224
+ ldrb r2, [r4, 0x11]
+ lsls r1, r2, 3
+ subs r1, r2
+ lsls r1, 2
+ adds r1, r5
+ strh r0, [r1, 0x2]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B873C: .4byte 0x020192d0
+ thumb_func_end ContestEffect_31
+
+ thumb_func_start ContestEffect_32
+ContestEffect_32: @ 80B8740
+ push {r4-r7,lr}
+ movs r6, 0
+ ldr r0, _080B8794
+ ldrb r1, [r0, 0x11]
+ adds r3, r1, r0
+ ldrb r1, [r3]
+ adds r4, r0, 0
+ cmp r1, 0
+ beq _080B8788
+ movs r2, 0
+ adds r7, r4, 0
+ adds r0, r1, 0
+ subs r1, r0, 0x1
+ movs r3, 0
+ adds r5, r4, 0
+ subs r5, 0x70
+_080B8760:
+ adds r0, r2, r7
+ ldrb r0, [r0]
+ cmp r1, r0
+ bne _080B876C
+ adds r0, r3, r5
+ ldrh r6, [r0, 0x2]
+_080B876C:
+ adds r3, 0x1C
+ adds r2, 0x1
+ cmp r2, 0x3
+ ble _080B8760
+ adds r0, r4, 0
+ ldrb r2, [r0, 0x11]
+ adds r0, r2, r0
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080B8788
+ lsls r0, r6, 16
+ asrs r3, r0, 16
+ cmp r3, 0
+ bgt _080B8798
+_080B8788:
+ ldrb r0, [r4, 0x11]
+ movs r1, 0x14
+ bl sub_80B13EC
+ b _080B87B2
+ .align 2, 0
+_080B8794: .4byte 0x020192d0
+_080B8798:
+ lsls r1, r2, 3
+ subs r1, r2
+ lsls r1, 2
+ adds r0, r4, 0
+ subs r0, 0x70
+ adds r1, r0
+ ldrh r0, [r1, 0x2]
+ adds r0, r3, r0
+ strh r0, [r1, 0x2]
+ ldrb r0, [r4, 0x11]
+ movs r1, 0x13
+ bl sub_80B13EC
+_080B87B2:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end ContestEffect_32
+
+ thumb_func_start ContestEffect_33
+ContestEffect_33: @ 80B87B8
+ push {lr}
+ ldr r0, _080B87D8
+ ldrb r2, [r0, 0x11]
+ adds r1, r2, r0
+ ldrb r3, [r1]
+ mov r12, r0
+ cmp r3, 0
+ bne _080B87DC
+ lsls r0, r2, 3
+ subs r0, r2
+ lsls r0, 2
+ mov r1, r12
+ subs r1, 0x70
+ adds r0, r1
+ movs r1, 0xA
+ b _080B87EE
+ .align 2, 0
+_080B87D8: .4byte 0x020192d0
+_080B87DC:
+ lsls r0, r2, 3
+ subs r0, r2
+ lsls r0, 2
+ mov r1, r12
+ subs r1, 0x70
+ adds r0, r1
+ lsls r1, r3, 2
+ adds r1, r3
+ lsls r1, 2
+_080B87EE:
+ strh r1, [r0, 0x2]
+ cmp r3, 0
+ bne _080B8800
+ mov r1, r12
+ ldrb r0, [r1, 0x11]
+ movs r1, 0x15
+ bl sub_80B13EC
+ b _080B882A
+_080B8800:
+ cmp r3, 0x1
+ bne _080B8810
+ mov r1, r12
+ ldrb r0, [r1, 0x11]
+ movs r1, 0x16
+ bl sub_80B13EC
+ b _080B882A
+_080B8810:
+ cmp r3, 0x2
+ bne _080B8820
+ mov r1, r12
+ ldrb r0, [r1, 0x11]
+ movs r1, 0x17
+ bl sub_80B13EC
+ b _080B882A
+_080B8820:
+ mov r1, r12
+ ldrb r0, [r1, 0x11]
+ movs r1, 0x18
+ bl sub_80B13EC
+_080B882A:
+ pop {r0}
+ bx r0
+ thumb_func_end ContestEffect_33
+
+ thumb_func_start ContestEffect_34
+ContestEffect_34: @ 80B8830
+ push {r4,lr}
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0xA
+ bl __umodsi3
+ lsls r0, 24
+ lsrs r0, 24
+ adds r1, r0, 0
+ cmp r0, 0x2
+ bhi _080B885C
+ movs r4, 0xA
+ ldr r0, _080B8858
+ ldrb r0, [r0, 0x11]
+ movs r1, 0x1A
+ bl sub_80B13EC
+ b _080B88B0
+ .align 2, 0
+_080B8858: .4byte 0x020192d0
+_080B885C:
+ cmp r0, 0x5
+ bhi _080B8874
+ movs r4, 0x14
+ ldr r0, _080B8870
+ ldrb r0, [r0, 0x11]
+ movs r1, 0x1B
+ bl sub_80B13EC
+ b _080B88B0
+ .align 2, 0
+_080B8870: .4byte 0x020192d0
+_080B8874:
+ cmp r0, 0x7
+ bhi _080B888C
+ movs r4, 0x28
+ ldr r0, _080B8888
+ ldrb r0, [r0, 0x11]
+ movs r1, 0x1C
+ bl sub_80B13EC
+ b _080B88B0
+ .align 2, 0
+_080B8888: .4byte 0x020192d0
+_080B888C:
+ cmp r1, 0x8
+ bhi _080B88A4
+ movs r4, 0x3C
+ ldr r0, _080B88A0
+ ldrb r0, [r0, 0x11]
+ movs r1, 0x1D
+ bl sub_80B13EC
+ b _080B88B0
+ .align 2, 0
+_080B88A0: .4byte 0x020192d0
+_080B88A4:
+ movs r4, 0x50
+ ldr r0, _080B88C8
+ ldrb r0, [r0, 0x11]
+ movs r1, 0x1E
+ bl sub_80B13EC
+_080B88B0:
+ ldr r0, _080B88C8
+ ldrb r2, [r0, 0x11]
+ lsls r1, r2, 3
+ subs r1, r2
+ lsls r1, 2
+ subs r0, 0x70
+ adds r1, r0
+ strh r4, [r1, 0x2]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B88C8: .4byte 0x020192d0
+ thumb_func_end ContestEffect_34
+
+ thumb_func_start ContestEffect_35
+ContestEffect_35: @ 80B88CC
+ push {r4-r7,lr}
+ ldr r1, _080B8940
+ ldrb r0, [r1, 0x11]
+ adds r0, r1
+ movs r2, 0
+ ldrsb r2, [r0, r2]
+ subs r0, r2, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ mov r12, r1
+ cmp r2, 0
+ beq _080B8994
+ ldrb r5, [r1]
+ mov r6, r12
+ subs r6, 0x70
+_080B88EA:
+ movs r2, 0
+ lsls r0, r4, 24
+ asrs r1, r0, 24
+ adds r4, r0, 0
+ cmp r5, r1
+ beq _080B8910
+ ldr r3, _080B8940
+_080B88F8:
+ lsls r0, r2, 24
+ movs r2, 0x80
+ lsls r2, 17
+ adds r0, r2
+ lsrs r2, r0, 24
+ asrs r0, 24
+ cmp r0, 0x3
+ bgt _080B8910
+ adds r0, r3
+ ldrb r0, [r0]
+ cmp r0, r1
+ bne _080B88F8
+_080B8910:
+ lsls r2, 24
+ asrs r1, r2, 24
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r3, r0, r6
+ ldrb r1, [r3, 0xB]
+ movs r0, 0x80
+ ands r0, r1
+ adds r7, r2, 0
+ cmp r0, 0
+ bne _080B8932
+ ldrb r1, [r3, 0xC]
+ movs r0, 0x7
+ ands r0, r1
+ cmp r0, 0
+ beq _080B8944
+_080B8932:
+ movs r1, 0xFF
+ lsls r1, 24
+ adds r0, r4, r1
+ lsrs r4, r0, 24
+ cmp r0, 0
+ blt _080B8994
+ b _080B88EA
+ .align 2, 0
+_080B8940: .4byte 0x020192d0
+_080B8944:
+ mov r2, r12
+ ldrb r1, [r2, 0x11]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ mov r3, r12
+ subs r3, 0x70
+ adds r5, r0, r3
+ ldrh r0, [r5, 0x6]
+ ldr r4, _080B899C
+ lsls r0, 3
+ adds r6, r0, r4
+ ldrb r2, [r6, 0x1]
+ lsls r2, 29
+ asrs r1, r7, 24
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r3
+ ldrh r0, [r0, 0x6]
+ lsls r0, 3
+ adds r0, r4
+ ldrb r0, [r0, 0x1]
+ lsls r0, 29
+ cmp r2, r0
+ bne _080B8994
+ ldr r1, _080B89A0
+ ldrb r0, [r6]
+ lsls r0, 2
+ adds r0, r1
+ ldrb r0, [r0, 0x1]
+ lsls r0, 1
+ ldrh r1, [r5, 0x2]
+ adds r0, r1
+ strh r0, [r5, 0x2]
+ mov r2, r12
+ ldrb r0, [r2, 0x11]
+ movs r1, 0x1F
+ bl sub_80B13EC
+_080B8994:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B899C: .4byte gContestMoves
+_080B89A0: .4byte gContestEffects
+ thumb_func_end ContestEffect_35
+
+ thumb_func_start ContestEffect_36
+ContestEffect_36: @ 80B89A4
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ ldr r0, _080B8A28
+ ldrb r2, [r0, 0x11]
+ adds r1, r2, r0
+ ldrb r1, [r1]
+ mov r8, r0
+ cmp r1, 0
+ beq _080B8A3C
+ lsls r0, r2, 3
+ subs r0, r2
+ lsls r0, 2
+ mov r1, r8
+ subs r1, 0x70
+ adds r0, r1
+ ldrh r0, [r0, 0x6]
+ mov r9, r0
+ movs r4, 0
+ mov r6, r8
+ ldr r0, _080B8A2C
+ mov r12, r0
+ movs r7, 0
+_080B89D4:
+ ldrb r2, [r6, 0x11]
+ adds r0, r2, r6
+ ldrb r0, [r0]
+ subs r0, 0x1
+ adds r1, r4, r6
+ ldrb r1, [r1]
+ cmp r0, r1
+ bne _080B8A34
+ mov r1, r9
+ lsls r0, r1, 3
+ mov r1, r12
+ adds r3, r0, r1
+ ldrb r1, [r3, 0x1]
+ lsls r1, 29
+ mov r5, r8
+ subs r5, 0x70
+ adds r0, r7, r5
+ ldrh r0, [r0, 0x6]
+ lsls r0, 3
+ add r0, r12
+ ldrb r0, [r0, 0x1]
+ lsls r0, 29
+ cmp r1, r0
+ beq _080B8A34
+ lsls r1, r2, 3
+ subs r1, r2
+ lsls r1, 2
+ adds r1, r5
+ ldr r2, _080B8A30
+ ldrb r0, [r3]
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0, 0x1]
+ lsls r0, 1
+ ldrh r2, [r1, 0x2]
+ adds r0, r2
+ strh r0, [r1, 0x2]
+ ldrb r0, [r6, 0x11]
+ movs r1, 0x20
+ bl sub_80B13EC
+ b _080B8A3C
+ .align 2, 0
+_080B8A28: .4byte 0x020192d0
+_080B8A2C: .4byte gContestMoves
+_080B8A30: .4byte gContestEffects
+_080B8A34:
+ adds r7, 0x1C
+ adds r4, 0x1
+ cmp r4, 0x3
+ ble _080B89D4
+_080B8A3C:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end ContestEffect_36
+
+ thumb_func_start ContestEffect_37
+ContestEffect_37: @ 80B8A48
+ push {r4-r7,lr}
+ ldr r1, _080B8A94
+ ldrb r0, [r1, 0x11]
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080B8AB0
+ movs r5, 0
+ adds r4, r1, 0
+ adds r6, r4, 0
+ subs r6, 0x70
+ adds r7, r6, 0
+_080B8A60:
+ ldrb r2, [r4, 0x11]
+ adds r0, r2, r4
+ ldrb r0, [r0]
+ subs r0, 0x1
+ adds r1, r5, r4
+ ldrb r1, [r1]
+ cmp r0, r1
+ bne _080B8AA8
+ lsls r0, r2, 3
+ subs r0, r2
+ lsls r0, 2
+ adds r2, r0, r7
+ movs r0, 0x2
+ ldrsh r1, [r2, r0]
+ movs r3, 0x2
+ ldrsh r0, [r6, r3]
+ cmp r1, r0
+ ble _080B8A98
+ adds r0, r1, 0
+ lsls r0, 1
+ strh r0, [r2, 0x2]
+ ldrb r0, [r4, 0x11]
+ movs r1, 0x21
+ bl sub_80B13EC
+ b _080B8AA8
+ .align 2, 0
+_080B8A94: .4byte 0x020192d0
+_080B8A98:
+ cmp r1, r0
+ bge _080B8AA8
+ movs r0, 0
+ strh r0, [r2, 0x2]
+ ldrb r0, [r4, 0x11]
+ movs r1, 0x22
+ bl sub_80B13EC
+_080B8AA8:
+ adds r6, 0x1C
+ adds r5, 0x1
+ cmp r5, 0x3
+ ble _080B8A60
+_080B8AB0:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end ContestEffect_37
+
+ thumb_func_start ContestEffect_38
+ContestEffect_38: @ 80B8AB8
+ push {r4,r5,lr}
+ ldr r4, _080B8AFC
+ ldrb r2, [r4, 0x11]
+ lsls r0, r2, 3
+ subs r0, r2
+ lsls r0, 2
+ adds r5, r4, 0
+ subs r5, 0x70
+ adds r1, r0, r5
+ ldrb r3, [r1, 0xD]
+ movs r0, 0xD
+ ldrsb r0, [r1, r0]
+ cmp r0, 0x1D
+ bgt _080B8B00
+ adds r0, r3, 0
+ adds r0, 0xA
+ strb r0, [r1, 0xD]
+ ldrb r1, [r4, 0x11]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldrb r2, [r0, 0x10]
+ movs r1, 0x31
+ negs r1, r1
+ ands r1, r2
+ movs r2, 0x10
+ orrs r1, r2
+ strb r1, [r0, 0x10]
+ ldrb r0, [r4, 0x11]
+ movs r1, 0x23
+ bl sub_80B13EC
+ b _080B8B08
+ .align 2, 0
+_080B8AFC: .4byte 0x020192d0
+_080B8B00:
+ adds r0, r2, 0
+ movs r1, 0x3A
+ bl sub_80B13EC
+_080B8B08:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end ContestEffect_38
+
+ thumb_func_start ContestEffect_39
+ContestEffect_39: @ 80B8B10
+ push {r4,lr}
+ ldr r3, _080B8B48
+ ldrb r1, [r3, 0x11]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r4, r3, 0
+ subs r4, 0x70
+ adds r0, r4
+ ldrb r1, [r0, 0x11]
+ movs r2, 0x20
+ orrs r1, r2
+ strb r1, [r0, 0x11]
+ ldrb r1, [r3, 0x11]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrb r0, [r0, 0xD]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0
+ beq _080B8B4C
+ adds r0, r1, 0
+ movs r1, 0x24
+ bl sub_80B13EC
+ b _080B8B54
+ .align 2, 0
+_080B8B48: .4byte 0x020192d0
+_080B8B4C:
+ adds r0, r1, 0
+ movs r1, 0x3B
+ bl sub_80B13EC
+_080B8B54:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end ContestEffect_39
+
+ thumb_func_start ContestEffect_40
+ContestEffect_40: @ 80B8B5C
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ ldr r1, _080B8BE4
+ ldrb r0, [r1, 0x1]
+ cmp r0, 0x4
+ bne _080B8B6E
+ b _080B8C76
+_080B8B6E:
+ movs r6, 0
+ adds r7, r1, 0
+ adds r7, 0xCC
+ adds r3, r1, 0
+ adds r3, 0x5C
+_080B8B78:
+ lsls r1, r6, 24
+ asrs r1, 24
+ mov r0, sp
+ adds r2, r0, r1
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r3
+ ldrb r0, [r0, 0x19]
+ strb r0, [r2]
+ adds r1, 0x1
+ lsls r1, 24
+ lsrs r6, r1, 24
+ asrs r1, 24
+ cmp r1, 0x3
+ ble _080B8B78
+ ldrb r0, [r7, 0x11]
+ mov r2, sp
+ adds r1, r2, r0
+ movs r0, 0xFF
+ strb r0, [r1]
+ movs r6, 0
+ mov r12, r7
+ movs r4, 0x70
+ negs r4, r4
+ adds r4, r7
+ mov r8, r4
+_080B8BAE:
+ movs r5, 0
+_080B8BB0:
+ lsls r0, r5, 24
+ asrs r2, r0, 24
+ mov r0, r12
+ ldrb r0, [r0, 0x11]
+ cmp r2, r0
+ beq _080B8BE8
+ lsls r0, r6, 24
+ asrs r3, r0, 24
+ mov r1, sp
+ adds r4, r1, r2
+ ldrb r0, [r4]
+ cmp r3, r0
+ bne _080B8BE8
+ lsls r1, r2, 3
+ subs r1, r2
+ lsls r1, 2
+ add r1, r8
+ lsls r0, r3, 24
+ lsrs r0, 24
+ ldrb r1, [r1, 0x19]
+ cmp r0, r1
+ bne _080B8BE8
+ adds r0, r3, 0x1
+ strb r0, [r4]
+ b _080B8BF8
+ .align 2, 0
+_080B8BE4: .4byte 0x02019204
+_080B8BE8:
+ lsls r0, r5, 24
+ movs r1, 0x80
+ lsls r1, 17
+ adds r0, r1
+ lsrs r5, r0, 24
+ asrs r0, 24
+ cmp r0, 0x3
+ ble _080B8BB0
+_080B8BF8:
+ cmp r5, 0x4
+ beq _080B8C0C
+ lsls r0, r6, 24
+ movs r2, 0x80
+ lsls r2, 17
+ adds r0, r2
+ lsrs r6, r0, 24
+ asrs r0, 24
+ cmp r0, 0x3
+ ble _080B8BAE
+_080B8C0C:
+ ldrb r0, [r7, 0x11]
+ mov r4, sp
+ adds r1, r4, r0
+ movs r0, 0
+ strb r0, [r1]
+ ldrb r0, [r7, 0x11]
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 2
+ adds r3, r7, 0
+ subs r3, 0x70
+ adds r1, r3
+ ldrb r2, [r1, 0x10]
+ movs r0, 0x3F
+ ands r0, r2
+ movs r2, 0x40
+ orrs r0, r2
+ strb r0, [r1, 0x10]
+ movs r6, 0
+_080B8C32:
+ lsls r1, r6, 24
+ asrs r1, 24
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r3
+ mov r4, sp
+ adds r2, r4, r1
+ ldrb r2, [r2]
+ strb r2, [r0, 0x19]
+ adds r1, 0x1
+ lsls r1, 24
+ lsrs r6, r1, 24
+ asrs r1, 24
+ cmp r1, 0x3
+ ble _080B8C32
+ ldrb r0, [r7, 0x11]
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 2
+ adds r0, r7, 0
+ subs r0, 0x70
+ adds r1, r0
+ ldrb r2, [r1, 0x11]
+ movs r0, 0x4
+ negs r0, r0
+ ands r0, r2
+ movs r2, 0x1
+ orrs r0, r2
+ strb r0, [r1, 0x11]
+ ldrb r0, [r7, 0x11]
+ movs r1, 0x25
+ bl sub_80B13EC
+_080B8C76:
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end ContestEffect_40
+
+ thumb_func_start ContestEffect_41
+ContestEffect_41: @ 80B8C84
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x4
+ ldr r1, _080B8D14
+ ldrb r0, [r1, 0x1]
+ cmp r0, 0x4
+ bne _080B8C98
+ b _080B8DA6
+_080B8C98:
+ movs r6, 0
+ adds r7, r1, 0
+ adds r7, 0xCC
+ adds r3, r1, 0
+ adds r3, 0x5C
+_080B8CA2:
+ lsls r1, r6, 24
+ asrs r1, 24
+ mov r0, sp
+ adds r2, r0, r1
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r3
+ ldrb r0, [r0, 0x19]
+ strb r0, [r2]
+ adds r1, 0x1
+ lsls r1, 24
+ lsrs r6, r1, 24
+ asrs r1, 24
+ cmp r1, 0x3
+ ble _080B8CA2
+ ldrb r0, [r7, 0x11]
+ mov r2, sp
+ adds r1, r2, r0
+ movs r0, 0xFF
+ strb r0, [r1]
+ movs r6, 0x3
+ mov r12, r7
+ movs r4, 0x70
+ negs r4, r4
+ adds r4, r7
+ mov r8, r4
+ movs r0, 0x1
+ negs r0, r0
+ mov r9, r0
+_080B8CDE:
+ movs r5, 0
+_080B8CE0:
+ lsls r0, r5, 24
+ asrs r2, r0, 24
+ mov r1, r12
+ ldrb r1, [r1, 0x11]
+ cmp r2, r1
+ beq _080B8D18
+ lsls r0, r6, 24
+ asrs r3, r0, 24
+ mov r0, sp
+ adds r4, r0, r2
+ ldrb r1, [r4]
+ cmp r3, r1
+ bne _080B8D18
+ lsls r1, r2, 3
+ subs r1, r2
+ lsls r1, 2
+ add r1, r8
+ lsls r0, r3, 24
+ lsrs r0, 24
+ ldrb r1, [r1, 0x19]
+ cmp r0, r1
+ bne _080B8D18
+ subs r0, r3, 0x1
+ strb r0, [r4]
+ b _080B8D28
+ .align 2, 0
+_080B8D14: .4byte 0x02019204
+_080B8D18:
+ lsls r0, r5, 24
+ movs r2, 0x80
+ lsls r2, 17
+ adds r0, r2
+ lsrs r5, r0, 24
+ asrs r0, 24
+ cmp r0, 0x3
+ ble _080B8CE0
+_080B8D28:
+ cmp r5, 0x4
+ beq _080B8D3C
+ lsls r0, r6, 24
+ movs r4, 0xFF
+ lsls r4, 24
+ adds r0, r4
+ lsrs r6, r0, 24
+ asrs r0, 24
+ cmp r0, r9
+ bgt _080B8CDE
+_080B8D3C:
+ ldrb r0, [r7, 0x11]
+ mov r2, sp
+ adds r1, r2, r0
+ movs r0, 0x3
+ strb r0, [r1]
+ ldrb r0, [r7, 0x11]
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 2
+ adds r3, r7, 0
+ subs r3, 0x70
+ adds r1, r3
+ ldrb r2, [r1, 0x10]
+ movs r0, 0x3F
+ ands r0, r2
+ movs r2, 0x40
+ orrs r0, r2
+ strb r0, [r1, 0x10]
+ movs r6, 0
+_080B8D62:
+ lsls r1, r6, 24
+ asrs r1, 24
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r3
+ mov r4, sp
+ adds r2, r4, r1
+ ldrb r2, [r2]
+ strb r2, [r0, 0x19]
+ adds r1, 0x1
+ lsls r1, 24
+ lsrs r6, r1, 24
+ asrs r1, 24
+ cmp r1, 0x3
+ ble _080B8D62
+ ldrb r0, [r7, 0x11]
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 2
+ adds r0, r7, 0
+ subs r0, 0x70
+ adds r1, r0
+ ldrb r2, [r1, 0x11]
+ movs r0, 0x4
+ negs r0, r0
+ ands r0, r2
+ movs r2, 0x2
+ orrs r0, r2
+ strb r0, [r1, 0x11]
+ ldrb r0, [r7, 0x11]
+ movs r1, 0x26
+ bl sub_80B13EC
+_080B8DA6:
+ add sp, 0x4
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end ContestEffect_41
+
+ thumb_func_start ContestEffect_42
+ContestEffect_42: @ 80B8DB4
+ bx lr
+ thumb_func_end ContestEffect_42
+
+ thumb_func_start ContestEffect_43
+ContestEffect_43: @ 80B8DB8
+ push {r4-r7,lr}
+ sub sp, 0x8
+ ldr r1, _080B8E30
+ ldrb r0, [r1, 0x1]
+ cmp r0, 0x4
+ beq _080B8EAE
+ movs r6, 0
+ add r3, sp, 0x4
+ adds r5, r1, 0
+ adds r5, 0x5C
+ adds r4, r3, 0
+_080B8DCE:
+ lsls r1, r6, 24
+ asrs r1, 24
+ mov r0, sp
+ adds r2, r0, r1
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldrb r0, [r0, 0x19]
+ strb r0, [r2]
+ adds r0, r4, r1
+ strb r6, [r0]
+ adds r1, 0x1
+ lsls r1, 24
+ lsrs r6, r1, 24
+ asrs r1, 24
+ cmp r1, 0x3
+ ble _080B8DCE
+ movs r6, 0
+ adds r7, r3, 0
+_080B8DF6:
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r2, r6, 24
+ asrs r2, 24
+ movs r1, 0x4
+ subs r1, r2
+ bl __modsi3
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r1, 0
+_080B8E10:
+ lsls r0, r1, 24
+ asrs r2, r0, 24
+ adds r3, r7, r2
+ ldrb r1, [r3]
+ adds r5, r0, 0
+ cmp r1, 0xFF
+ beq _080B8E3A
+ cmp r4, 0
+ bne _080B8E34
+ mov r1, sp
+ adds r0, r1, r2
+ strb r6, [r0]
+ movs r0, 0xFF
+ strb r0, [r3]
+ b _080B8E48
+ .align 2, 0
+_080B8E30: .4byte 0x02019204
+_080B8E34:
+ subs r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+_080B8E3A:
+ movs r3, 0x80
+ lsls r3, 17
+ adds r0, r5, r3
+ lsrs r1, r0, 24
+ asrs r0, 24
+ cmp r0, 0x3
+ ble _080B8E10
+_080B8E48:
+ lsls r0, r6, 24
+ movs r1, 0x80
+ lsls r1, 17
+ adds r0, r1
+ lsrs r6, r0, 24
+ asrs r0, 24
+ cmp r0, 0x3
+ ble _080B8DF6
+ movs r6, 0
+ ldr r4, _080B8EB8
+ adds r7, r4, 0
+ subs r7, 0x70
+ movs r3, 0x3F
+ mov r12, r3
+ movs r5, 0x80
+_080B8E66:
+ lsls r2, r6, 24
+ asrs r2, 24
+ lsls r1, r2, 3
+ subs r1, r2
+ lsls r1, 2
+ adds r1, r7
+ mov r3, sp
+ adds r0, r3, r2
+ ldrb r0, [r0]
+ strb r0, [r1, 0x19]
+ ldrb r3, [r1, 0x10]
+ mov r0, r12
+ ands r0, r3
+ orrs r0, r5
+ strb r0, [r1, 0x10]
+ adds r2, 0x1
+ lsls r2, 24
+ lsrs r6, r2, 24
+ asrs r2, 24
+ cmp r2, 0x3
+ ble _080B8E66
+ ldrb r1, [r4, 0x11]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r1, r4, 0
+ subs r1, 0x70
+ adds r0, r1
+ ldrb r1, [r0, 0x11]
+ movs r2, 0x3
+ orrs r1, r2
+ strb r1, [r0, 0x11]
+ ldrb r0, [r4, 0x11]
+ movs r1, 0x27
+ bl sub_80B13EC
+_080B8EAE:
+ add sp, 0x8
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B8EB8: .4byte 0x020192d0
+ thumb_func_end ContestEffect_43
+
+ thumb_func_start ContestEffect_44
+ContestEffect_44: @ 80B8EBC
+ push {lr}
+ ldr r3, _080B8EF0
+ ldr r1, _080B8EF4
+ ldrb r2, [r1, 0x11]
+ lsls r0, r2, 3
+ subs r0, r2
+ lsls r0, 2
+ subs r1, 0x70
+ adds r2, r0, r1
+ ldrh r0, [r2, 0x6]
+ lsls r0, 3
+ adds r0, r3
+ ldrb r0, [r0, 0x1]
+ lsls r0, 29
+ ldr r1, _080B8EF8
+ lsrs r0, 29
+ ldrh r1, [r1]
+ cmp r0, r1
+ beq _080B8EEA
+ ldrb r0, [r2, 0x11]
+ movs r1, 0x10
+ orrs r0, r1
+ strb r0, [r2, 0x11]
+_080B8EEA:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B8EF0: .4byte gContestMoves
+_080B8EF4: .4byte 0x020192d0
+_080B8EF8: .4byte gUnknown_0203869C
+ thumb_func_end ContestEffect_44
+
+ thumb_func_start ContestEffect_45
+ContestEffect_45: @ 80B8EFC
+ push {r4-r7,lr}
+ movs r7, 0
+ movs r5, 0
+ ldr r4, _080B8F34
+ movs r6, 0
+_080B8F06:
+ ldrb r0, [r4, 0x11]
+ adds r0, r4
+ adds r1, r5, r4
+ ldrb r0, [r0]
+ ldrb r1, [r1]
+ cmp r0, r1
+ bls _080B8F52
+ adds r0, r4, 0
+ subs r0, 0x70
+ adds r1, r6, r0
+ movs r2, 0x2
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ ble _080B8F38
+ lsrs r1, r0, 31
+ adds r0, r1
+ asrs r0, 1
+ strh r0, [r4, 0x4]
+ movs r1, 0x4
+ ldrsh r0, [r4, r1]
+ bl sub_80B9268
+ b _080B8F3A
+ .align 2, 0
+_080B8F34: .4byte 0x020192d0
+_080B8F38:
+ movs r0, 0xA
+_080B8F3A:
+ strh r0, [r4, 0x4]
+ strb r5, [r4, 0x8]
+ movs r0, 0xFF
+ strb r0, [r4, 0x9]
+ bl sub_80B9120
+ lsls r0, 24
+ cmp r0, 0
+ beq _080B8F52
+ adds r0, r7, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+_080B8F52:
+ adds r6, 0x1C
+ adds r5, 0x1
+ cmp r5, 0x3
+ ble _080B8F06
+ cmp r7, 0
+ bne _080B8F68
+ ldr r0, _080B8F78
+ ldrb r0, [r0, 0x11]
+ movs r1, 0x36
+ bl sub_80B1404
+_080B8F68:
+ ldr r0, _080B8F78
+ ldrb r0, [r0, 0x11]
+ movs r1, 0x30
+ bl sub_80B13EC
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B8F78: .4byte 0x020192d0
+ thumb_func_end ContestEffect_45
+
+ thumb_func_start ContestEffect_46
+ContestEffect_46: @ 80B8F7C
+ push {r4,lr}
+ ldr r0, _080B8F98
+ movs r1, 0x13
+ ldrsb r1, [r0, r1]
+ cmp r1, 0
+ bne _080B8F9C
+ movs r4, 0xA
+ adds r0, 0xCC
+ ldrb r0, [r0, 0x11]
+ movs r1, 0x1A
+ bl sub_80B13EC
+ b _080B8FDE
+ .align 2, 0
+_080B8F98: .4byte 0x02019204
+_080B8F9C:
+ cmp r1, 0x1
+ bne _080B8FAE
+ movs r4, 0x14
+ adds r0, 0xCC
+ ldrb r0, [r0, 0x11]
+ movs r1, 0x1B
+ bl sub_80B13EC
+ b _080B8FDE
+_080B8FAE:
+ cmp r1, 0x2
+ bne _080B8FC0
+ movs r4, 0x1E
+ adds r0, 0xCC
+ ldrb r0, [r0, 0x11]
+ movs r1, 0x1C
+ bl sub_80B13EC
+ b _080B8FDE
+_080B8FC0:
+ cmp r1, 0x3
+ bne _080B8FD2
+ movs r4, 0x32
+ adds r0, 0xCC
+ ldrb r0, [r0, 0x11]
+ movs r1, 0x1D
+ bl sub_80B13EC
+ b _080B8FDE
+_080B8FD2:
+ movs r4, 0x3C
+ adds r0, 0xCC
+ ldrb r0, [r0, 0x11]
+ movs r1, 0x1E
+ bl sub_80B13EC
+_080B8FDE:
+ ldr r0, _080B8FF4
+ ldrb r2, [r0, 0x11]
+ lsls r1, r2, 3
+ subs r1, r2
+ lsls r1, 2
+ subs r0, 0x70
+ adds r1, r0
+ strh r4, [r1, 0x2]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B8FF4: .4byte 0x020192d0
+ thumb_func_end ContestEffect_46
+
+ thumb_func_start ContestEffect_47
+ContestEffect_47: @ 80B8FF8
+ push {lr}
+ ldr r3, _080B9034
+ ldrb r2, [r3, 0x1]
+ movs r0, 0x1
+ ands r0, r2
+ cmp r0, 0
+ bne _080B902E
+ movs r0, 0x1
+ orrs r2, r0
+ movs r0, 0x58
+ negs r0, r0
+ adds r0, r3
+ mov r12, r0
+ ldrb r1, [r0, 0x11]
+ movs r0, 0x7
+ ands r0, r1
+ lsls r0, 1
+ movs r1, 0xF
+ negs r1, r1
+ ands r2, r1
+ orrs r2, r0
+ strb r2, [r3, 0x1]
+ mov r1, r12
+ ldrb r0, [r1, 0x11]
+ movs r1, 0x3D
+ bl sub_80B13EC
+_080B902E:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B9034: .4byte 0x02019328
+ thumb_func_end ContestEffect_47
+
+ thumb_func_start sub_80B9038
+sub_80B9038: @ 80B9038
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ movs r7, 0
+ movs r5, 0
+ ldr r4, _080B907C
+ ldr r0, _080B9080
+ mov r9, r0
+ movs r6, 0
+_080B9052:
+ ldrb r0, [r4, 0x11]
+ adds r0, r4
+ adds r1, r5, r4
+ ldrb r0, [r0]
+ ldrb r1, [r1]
+ cmp r0, r1
+ bls _080B909A
+ adds r0, r4, 0
+ subs r0, 0x70
+ adds r0, r6, r0
+ ldrh r0, [r0, 0x6]
+ lsls r0, 3
+ add r0, r9
+ ldrb r0, [r0, 0x1]
+ lsls r0, 29
+ lsrs r0, 29
+ cmp r8, r0
+ bne _080B9084
+ movs r0, 0x28
+ b _080B9086
+ .align 2, 0
+_080B907C: .4byte 0x020192d0
+_080B9080: .4byte gContestMoves
+_080B9084:
+ movs r0, 0xA
+_080B9086:
+ strh r0, [r4, 0x4]
+ strb r5, [r4, 0x8]
+ movs r0, 0xFF
+ strb r0, [r4, 0x9]
+ bl sub_80B9120
+ lsls r0, 24
+ cmp r0, 0
+ beq _080B909A
+ adds r7, 0x1
+_080B909A:
+ adds r6, 0x1C
+ adds r5, 0x1
+ cmp r5, 0x3
+ ble _080B9052
+ cmp r7, 0
+ bne _080B90B0
+ ldr r0, _080B90BC
+ ldrb r0, [r0, 0x11]
+ movs r1, 0x36
+ bl sub_80B1404
+_080B90B0:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B90BC: .4byte 0x020192d0
+ thumb_func_end sub_80B9038
+
+ thumb_func_start sub_80B90C0
+sub_80B90C0: @ 80B90C0
+ push {lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldr r2, _080B90EC
+ adds r0, r2, 0
+ adds r0, 0xD
+ adds r0, r3, r0
+ movs r1, 0x1
+ strb r1, [r0]
+ lsls r0, r3, 3
+ subs r0, r3
+ lsls r0, 2
+ subs r2, 0x70
+ adds r2, r0, r2
+ ldrb r1, [r2, 0x10]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080B90F0
+ adds r0, r3, 0
+ movs r1, 0x2D
+ b _080B9116
+ .align 2, 0
+_080B90EC: .4byte 0x020192d0
+_080B90F0:
+ ldrb r0, [r2, 0x12]
+ cmp r0, 0
+ bne _080B910E
+ ldrb r1, [r2, 0xB]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080B911A
+ ldrb r1, [r2, 0xC]
+ movs r0, 0x6
+ ands r0, r1
+ cmp r0, 0
+ bne _080B911A
+ movs r0, 0x1
+ b _080B911C
+_080B910E:
+ subs r0, 0x1
+ strb r0, [r2, 0x12]
+ adds r0, r3, 0
+ movs r1, 0x2C
+_080B9116:
+ bl sub_80B13EC
+_080B911A:
+ movs r0, 0
+_080B911C:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80B90C0
+
+ thumb_func_start sub_80B9120
+sub_80B9120: @ 80B9120
+ push {r4-r7,lr}
+ sub sp, 0xC
+ mov r0, sp
+ movs r1, 0
+ movs r2, 0x8
+ bl memset
+ movs r7, 0
+ ldr r1, _080B918C
+ ldrb r0, [r1, 0x8]
+ cmp r0, 0xFF
+ beq _080B91D8
+ adds r5, r1, 0
+_080B913A:
+ adds r0, r5, 0
+ adds r0, 0x8
+ adds r0, r7, r0
+ ldrb r4, [r0]
+ adds r6, r4, 0
+ adds r0, r4, 0
+ str r1, [sp, 0x8]
+ bl sub_80B90C0
+ lsls r0, 24
+ ldr r1, [sp, 0x8]
+ cmp r0, 0
+ beq _080B91C8
+ ldrh r0, [r1, 0x4]
+ strh r0, [r1, 0x6]
+ lsls r0, r4, 3
+ subs r0, r4
+ lsls r0, 2
+ subs r1, 0x70
+ adds r2, r0, r1
+ ldrb r1, [r2, 0x10]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _080B9174
+ movs r1, 0x6
+ ldrsh r0, [r5, r1]
+ lsls r0, 1
+ strh r0, [r5, 0x6]
+_080B9174:
+ ldrb r0, [r2, 0x10]
+ movs r3, 0x1
+ ands r3, r0
+ cmp r3, 0
+ beq _080B9190
+ movs r0, 0xA
+ strh r0, [r5, 0x6]
+ adds r0, r4, 0
+ movs r1, 0x2F
+ bl sub_80B13EC
+ b _080B91C8
+ .align 2, 0
+_080B918C: .4byte 0x020192d0
+_080B9190:
+ ldrb r1, [r2, 0xF]
+ ldrh r0, [r5, 0x6]
+ subs r0, r1
+ adds r1, r0, 0
+ strh r0, [r5, 0x6]
+ lsls r0, 16
+ cmp r0, 0
+ bgt _080B91AC
+ strh r3, [r5, 0x6]
+ adds r0, r4, 0
+ movs r1, 0x2E
+ bl sub_80B13EC
+ b _080B91C8
+_080B91AC:
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r6, 0
+ bl sub_80B9200
+ ldrb r1, [r5, 0x6]
+ adds r0, r6, 0
+ bl sub_80B141C
+ lsls r0, r6, 1
+ mov r2, sp
+ adds r1, r2, r0
+ ldrh r0, [r5, 0x6]
+ strh r0, [r1]
+_080B91C8:
+ adds r7, 0x1
+ ldr r1, _080B91E8
+ adds r0, r1, 0
+ adds r0, 0x8
+ adds r0, r7, r0
+ ldrb r0, [r0]
+ cmp r0, 0xFF
+ bne _080B913A
+_080B91D8:
+ movs r7, 0
+ mov r1, sp
+_080B91DC:
+ movs r2, 0
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ beq _080B91EC
+ movs r0, 0x1
+ b _080B91F6
+ .align 2, 0
+_080B91E8: .4byte 0x020192d0
+_080B91EC:
+ adds r1, 0x2
+ adds r7, 0x1
+ cmp r7, 0x3
+ ble _080B91DC
+ movs r0, 0
+_080B91F6:
+ add sp, 0xC
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80B9120
+
+ thumb_func_start sub_80B9200
+sub_80B9200: @ 80B9200
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r2, r0, 3
+ subs r2, r0
+ lsls r2, 2
+ ldr r0, _080B9220
+ adds r2, r0
+ ldrh r0, [r2, 0x2]
+ subs r0, r1
+ strh r0, [r2, 0x2]
+ ldrb r0, [r2, 0xE]
+ adds r1, r0
+ strb r1, [r2, 0xE]
+ bx lr
+ .align 2, 0
+_080B9220: .4byte 0x02019260
+ thumb_func_end sub_80B9200
+
+ thumb_func_start sub_80B9224
+sub_80B9224: @ 80B9224
+ push {r4,r5,lr}
+ lsls r0, 16
+ lsrs r5, r0, 16
+ asrs r4, r0, 16
+ adds r0, r4, 0
+ cmp r4, 0
+ bge _080B9234
+ negs r0, r4
+_080B9234:
+ movs r1, 0xA
+ bl __modsi3
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r4, 0
+ bge _080B9252
+ lsls r0, 16
+ asrs r1, r0, 16
+ cmp r1, 0
+ beq _080B925C
+ adds r0, r4, 0
+ subs r0, 0xA
+ adds r0, r1, r0
+ b _080B9258
+_080B9252:
+ lsls r0, 16
+ asrs r0, 16
+ subs r0, r4, r0
+_080B9258:
+ lsls r0, 16
+ lsrs r5, r0, 16
+_080B925C:
+ lsls r0, r5, 16
+ asrs r0, 16
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80B9224
+
+ thumb_func_start sub_80B9268
+sub_80B9268: @ 80B9268
+ push {r4,r5,lr}
+ lsls r0, 16
+ lsrs r5, r0, 16
+ asrs r4, r0, 16
+ adds r0, r4, 0
+ cmp r4, 0
+ bge _080B9278
+ negs r0, r4
+_080B9278:
+ movs r1, 0xA
+ bl __modsi3
+ lsls r0, 16
+ asrs r1, r0, 16
+ cmp r1, 0
+ beq _080B9290
+ adds r0, r4, 0
+ adds r0, 0xA
+ subs r0, r1
+ lsls r0, 16
+ lsrs r5, r0, 16
+_080B9290:
+ lsls r0, r5, 16
+ asrs r0, 16
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80B9268
+
+ thumb_func_start sub_80B929C
+sub_80B929C: @ 80B929C
+ push {lr}
+ ldr r0, _080B92A8
+ bl sub_8083A84
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B92A8: .4byte sub_80B9484
+ thumb_func_end sub_80B929C
+
+ thumb_func_start sub_80B92AC
+sub_80B92AC: @ 80B92AC
+ push {r4-r6,lr}
+ bl sub_80BC300
+ bl sub_80C045C
+ ldr r6, _080B9364
+ ldr r0, _080B9368
+ ldr r1, [r0]
+ movs r2, 0xC8
+ lsls r2, 4
+ adds r0, r6, 0
+ bl memcpy
+ movs r1, 0xC8
+ lsls r1, 4
+ adds r0, r6, r1
+ ldr r1, _080B936C
+ ldr r1, [r1]
+ movs r2, 0xE1
+ lsls r2, 2
+ bl memcpy
+ ldr r2, _080B9370
+ adds r0, r6, r2
+ ldr r1, _080B9374
+ ldr r1, [r1]
+ movs r2, 0x40
+ bl memcpy
+ ldr r1, _080B9378
+ adds r0, r6, r1
+ ldr r1, _080B937C
+ ldr r1, [r1]
+ movs r2, 0x40
+ bl memcpy
+ ldr r2, _080B9380
+ adds r0, r6, r2
+ ldr r1, _080B9384
+ ldr r1, [r1]
+ movs r2, 0x28
+ bl memcpy
+ ldr r5, _080B9388
+ ldr r4, _080B938C
+ ldr r0, _080B9390
+ adds r1, r4, r0
+ adds r0, r5, 0
+ movs r2, 0x38
+ bl memcpy
+ ldr r2, _080B9394
+ adds r1, r4, r2
+ adds r0, r5, 0
+ adds r0, 0x38
+ movs r2, 0x38
+ bl memcpy
+ ldr r0, _080B9398
+ adds r4, r0
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_8041324
+ ldr r1, _080B939C
+ adds r0, r6, r1
+ ldr r1, _080B93A0
+ ldr r1, [r1]
+ movs r2, 0x78
+ bl memcpy
+ ldr r2, _080B93A4
+ adds r0, r6, r2
+ ldr r1, _080B93A8
+ ldr r1, [r1]
+ movs r2, 0xA4
+ bl memcpy
+ bl GetMultiplayerId
+ lsls r0, 24
+ cmp r0, 0
+ bne _080B935C
+ bl sub_8126338
+ ldr r2, _080B93AC
+ adds r1, r6, r2
+ strh r0, [r1]
+_080B935C:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B9364: .4byte 0x02018000
+_080B9368: .4byte gUnknown_083D026C
+_080B936C: .4byte gUnknown_083D0270
+_080B9370: .4byte 0x00001004
+_080B9374: .4byte gUnknown_083D0274
+_080B9378: .4byte 0x00001044
+_080B937C: .4byte gUnknown_083D0278
+_080B9380: .4byte 0x00001084
+_080B9384: .4byte gUnknown_083D027C
+_080B9388: .4byte gUnknown_02038738
+_080B938C: .4byte gSaveBlock1
+_080B9390: .4byte 0x0000303c
+_080B9394: .4byte 0x00003074
+_080B9398: .4byte 0x00002f9c
+_080B939C: .4byte 0x000010ac
+_080B93A0: .4byte gUnknown_083D0280
+_080B93A4: .4byte 0x00001124
+_080B93A8: .4byte gUnknown_083D0284
+_080B93AC: .4byte 0x000011c8
+ thumb_func_end sub_80B92AC
+
+ thumb_func_start sub_80B93B0
+sub_80B93B0: @ 80B93B0
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ adds r4, r0, 0
+ ldr r5, _080B9430
+ ldr r6, _080B9434
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r5, 0
+ adds r1, r6, 0
+ adds r2, r4, 0
+ bl sub_80BD674
+ movs r0, 0xC8
+ lsls r0, 4
+ adds r0, r5
+ mov r8, r0
+ adds r1, r6, 0
+ adds r2, r4, 0
+ bl sub_80BFD44
+ ldr r1, _080B9438
+ adds r0, r5, r1
+ adds r1, r6, 0
+ adds r2, r4, 0
+ bl sub_80C0514
+ ldr r1, _080B943C
+ adds r0, r5, r1
+ adds r1, r6, 0
+ adds r2, r4, 0
+ bl sub_80B9B1C
+ ldr r1, _080B9440
+ adds r0, r5, r1
+ adds r1, r6, 0
+ adds r2, r4, 0
+ bl sub_80FA4E4
+ ldr r1, _080B9444
+ adds r0, r5, r1
+ adds r1, r6, 0
+ adds r2, r4, 0
+ mov r3, r8
+ bl sub_80B9C6C
+ ldr r1, _080B9448
+ adds r0, r5, r1
+ adds r1, r6, 0
+ adds r2, r4, 0
+ bl sub_80B9B70
+ ldr r0, _080B944C
+ adds r5, r0
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_80B9F3C
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B9430: .4byte 0x02008000
+_080B9434: .4byte 0x00001230
+_080B9438: .4byte 0x00001004
+_080B943C: .4byte 0x00001044
+_080B9440: .4byte 0x00001084
+_080B9444: .4byte 0x000010ac
+_080B9448: .4byte 0x00001124
+_080B944C: .4byte 0x000011c8
+ thumb_func_end sub_80B93B0
+
+ thumb_func_start sub_80B9450
+sub_80B9450: @ 80B9450
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080B9480
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r4, r1, r2
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x32
+ bne _080B9478
+ movs r0, 0xE2
+ bl PlaySE
+ movs r0, 0
+ strh r0, [r4, 0x8]
+_080B9478:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B9480: .4byte gTasks
+ thumb_func_end sub_80B9450
+
+ thumb_func_start sub_80B9484
+sub_80B9484: @ 80B9484
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, _080B94A8
+ adds r4, r0, r1
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x5
+ bls _080B949E
+ b _080B95E6
+_080B949E:
+ lsls r0, 2
+ ldr r1, _080B94AC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080B94A8: .4byte gUnknown_03004B28
+_080B94AC: .4byte _080B94B0
+ .align 2, 0
+_080B94B0:
+ .4byte _080B94C8
+ .4byte _080B951C
+ .4byte _080B9550
+ .4byte _080B9570
+ .4byte _080B95AC
+ .4byte _080B95C0
+_080B94C8:
+ ldr r0, _080B950C
+ ldrb r0, [r0]
+ bl sub_8007270
+ movs r0, 0x80
+ lsls r0, 7
+ movs r1, 0x1
+ bl VarSet
+ ldr r1, _080B9510
+ movs r0, 0
+ strb r0, [r1]
+ bl sub_80B92AC
+ bl sub_80C71D8
+ movs r0, 0x1
+ strh r0, [r4]
+ ldr r0, _080B9514
+ movs r1, 0x50
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x14]
+ ldr r0, _080B9518
+ movs r1, 0x51
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x1E]
+ b _080B95E6
+ .align 2, 0
+_080B950C: .4byte gUnknown_0202E8CE
+_080B9510: .4byte gUnknown_03000718
+_080B9514: .4byte sub_80B95F0
+_080B9518: .4byte sub_80B9450
+_080B951C:
+ ldr r2, _080B9548
+ movs r0, 0x14
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldrb r0, [r0, 0x4]
+ cmp r0, 0
+ bne _080B95E6
+ movs r0, 0x2
+ strh r0, [r4]
+ ldr r0, _080B954C
+ bl FlagSet
+ bl sub_80C7240
+ ldrb r0, [r4, 0x1E]
+ bl DestroyTask
+ b _080B95E6
+ .align 2, 0
+_080B9548: .4byte gTasks
+_080B954C: .4byte 0x00000834
+_080B9550:
+ ldr r0, _080B956C
+ movs r1, 0xA
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x14]
+ movs r0, 0x3
+ strh r0, [r4]
+ movs r0, 0xE0
+ bl PlaySE
+ b _080B95E6
+ .align 2, 0
+_080B956C: .4byte sub_80BA00C
+_080B9570:
+ ldr r2, _080B95A4
+ movs r0, 0x14
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldrb r5, [r0, 0x4]
+ cmp r5, 0
+ bne _080B95E6
+ movs r0, 0x4
+ strh r0, [r4]
+ bl sub_8083664
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x14]
+ bl sub_80720B0
+ ldr r0, _080B95A8
+ movs r1, 0x2
+ movs r2, 0xF
+ bl MenuPrint
+ strh r5, [r4, 0x10]
+ b _080B95E6
+ .align 2, 0
+_080B95A4: .4byte gTasks
+_080B95A8: .4byte gOtherText_MixingComplete
+_080B95AC:
+ ldrh r0, [r4, 0x10]
+ adds r0, 0x1
+ strh r0, [r4, 0x10]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3C
+ ble _080B95E6
+ movs r0, 0x5
+ strh r0, [r4]
+ b _080B95E6
+_080B95C0:
+ ldr r2, _080B95EC
+ movs r0, 0x14
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldrb r0, [r0, 0x4]
+ cmp r0, 0
+ bne _080B95E6
+ bl sub_8055588
+ bl MenuZeroFillScreen
+ adds r0, r5, 0
+ bl DestroyTask
+ bl EnableBothScriptContexts
+_080B95E6:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B95EC: .4byte gTasks
+ thumb_func_end sub_80B9484
+
+ thumb_func_start sub_80B95F0
+sub_80B95F0: @ 80B95F0
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ ldr r7, _080B961C
+ adds r5, r0, r7
+ movs r0, 0x8
+ ldrsh r1, [r5, r0]
+ cmp r1, 0x64
+ beq _080B9678
+ cmp r1, 0x64
+ bgt _080B962E
+ cmp r1, 0x1
+ bne _080B9612
+ b _080B9734
+_080B9612:
+ cmp r1, 0x1
+ bgt _080B9620
+ cmp r1, 0
+ beq _080B9650
+ b _080B97D6
+ .align 2, 0
+_080B961C: .4byte gTasks
+_080B9620:
+ cmp r1, 0x2
+ bne _080B9626
+ b _080B9760
+_080B9626:
+ cmp r1, 0x5
+ bne _080B962C
+ b _080B97C0
+_080B962C:
+ b _080B97D6
+_080B962E:
+ cmp r1, 0xC9
+ beq _080B96D0
+ cmp r1, 0xC9
+ bgt _080B963C
+ cmp r1, 0x65
+ beq _080B9690
+ b _080B97D6
+_080B963C:
+ ldr r0, _080B964C
+ cmp r1, r0
+ beq _080B9706
+ adds r0, 0x63
+ cmp r1, r0
+ beq _080B971C
+ b _080B97D6
+ .align 2, 0
+_080B964C: .4byte 0x0000012d
+_080B9650:
+ bl sub_80B9A78
+ bl MenuDisplayMessageBox
+ ldr r0, _080B9674
+ movs r1, 0x2
+ movs r2, 0xF
+ bl MenuPrint
+ movs r0, 0xE1
+ lsls r0, 3
+ strh r0, [r5, 0x18]
+ movs r0, 0xC8
+ lsls r0, 1
+ strh r0, [r5, 0x8]
+ bl ClearLinkCallback_2
+ b _080B97D6
+ .align 2, 0
+_080B9674: .4byte gOtherText_MixingRecordsWithFriend
+_080B9678:
+ ldrh r0, [r5, 0x20]
+ adds r0, 0x1
+ strh r0, [r5, 0x20]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x14
+ bgt _080B9688
+ b _080B97D6
+_080B9688:
+ movs r0, 0
+ strh r0, [r5, 0x20]
+ movs r0, 0x65
+ b _080B97D4
+_080B9690:
+ bl GetLinkPlayerCount_2
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl IsLinkMaster
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080B96C2
+ bl sub_800820C
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r4, r0
+ beq _080B96B2
+ b _080B97D6
+_080B96B2:
+ movs r0, 0x15
+ bl PlaySE
+ movs r1, 0
+ movs r0, 0xC9
+ strh r0, [r5, 0x8]
+ strh r1, [r5, 0x20]
+ b _080B97D6
+_080B96C2:
+ movs r0, 0x16
+ bl PlaySE
+ ldr r0, _080B96CC
+ b _080B97D4
+ .align 2, 0
+_080B96CC: .4byte 0x0000012d
+_080B96D0:
+ bl sub_800820C
+ adds r4, r0, 0
+ bl GetLinkPlayerCount_2
+ lsls r4, 24
+ lsls r0, 24
+ cmp r4, r0
+ bne _080B97D6
+ ldrh r4, [r5, 0x20]
+ adds r4, 0x1
+ strh r4, [r5, 0x20]
+ lsls r4, 16
+ asrs r4, 16
+ bl GetLinkPlayerCount_2
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 4
+ subs r1, r0
+ lsls r1, 1
+ cmp r4, r1
+ ble _080B97D6
+ bl sub_8007F4C
+ movs r0, 0x1
+ b _080B97D4
+_080B9706:
+ bl sub_800820C
+ adds r4, r0, 0
+ bl GetLinkPlayerCount_2
+ lsls r4, 24
+ lsls r0, 24
+ cmp r4, r0
+ bne _080B97D6
+ movs r0, 0x1
+ b _080B97D4
+_080B971C:
+ ldrh r0, [r5, 0x20]
+ adds r0, 0x1
+ strh r0, [r5, 0x20]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x14
+ ble _080B97D6
+ movs r0, 0x1
+ strh r0, [r5, 0x8]
+ movs r0, 0
+ strh r0, [r5, 0x20]
+ b _080B97D6
+_080B9734:
+ ldr r0, _080B9758
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080B97D6
+ ldr r4, _080B975C
+ bl sub_80B9A58
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ movs r2, 0x2
+ movs r3, 0x2
+ bl ConvertIntToDecimalStringN
+ movs r0, 0x5
+ b _080B97D4
+ .align 2, 0
+_080B9758: .4byte gReceivedRemoteLinkPlayers
+_080B975C: .4byte gStringVar1
+_080B9760:
+ bl GetLinkPlayerCount_2
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0
+ strh r0, [r5, 0x14]
+ strh r1, [r5, 0x8]
+ bl sub_80B9A58
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x12]
+ ldr r0, _080B97B0
+ str r0, [r5]
+ ldr r4, _080B97B4
+ adds r1, r5, 0
+ adds r1, 0xC
+ adds r0, r4, 0
+ bl sub_80B9A50
+ ldr r0, _080B97B8
+ movs r1, 0x50
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x1C]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r0, r1, r7
+ strh r6, [r0, 0x8]
+ ldr r0, _080B97BC
+ adds r4, r0
+ adds r1, r7, r1
+ adds r1, 0x12
+ adds r0, r4, 0
+ bl sub_80B9A50
+ b _080B97D6
+ .align 2, 0
+_080B97B0: .4byte sub_80B97DC
+_080B97B4: .4byte 0x02018000
+_080B97B8: .4byte sub_80B9890
+_080B97BC: .4byte 0xffff0000
+_080B97C0:
+ ldrh r0, [r5, 0x1C]
+ adds r0, 0x1
+ strh r0, [r5, 0x1C]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3C
+ ble _080B97D6
+ movs r0, 0
+ strh r0, [r5, 0x1C]
+ movs r0, 0x2
+_080B97D4:
+ strh r0, [r5, 0x8]
+_080B97D6:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B95F0
+
+ thumb_func_start sub_80B97DC
+sub_80B97DC: @ 80B97DC
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _080B9800
+ adds r4, r1, r0
+ movs r2, 0x8
+ ldrsh r1, [r4, r2]
+ adds r2, r0, 0
+ cmp r1, 0x4
+ bhi _080B9884
+ lsls r0, r1, 2
+ ldr r1, _080B9804
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080B9800: .4byte gTasks
+_080B9804: .4byte _080B9808
+ .align 2, 0
+_080B9808:
+ .4byte _080B981C
+ .4byte _080B9840
+ .4byte _080B9884
+ .4byte _080B9852
+ .4byte _080B986E
+_080B981C:
+ adds r0, r4, 0
+ adds r0, 0xC
+ bl sub_80B9A44
+ adds r1, r0, 0
+ movs r0, 0x10
+ ldrsh r2, [r4, r0]
+ movs r0, 0xC8
+ muls r0, r2
+ adds r1, r0
+ ldr r0, _080B983C
+ movs r2, 0xC8
+ bl memcpy
+ b _080B9860
+ .align 2, 0
+_080B983C: .4byte gBlockSendBuffer
+_080B9840:
+ bl GetMultiplayerId
+ lsls r0, 24
+ cmp r0, 0
+ bne _080B9860
+ movs r0, 0x1
+ bl sub_8007E9C
+ b _080B9860
+_080B9852:
+ ldrh r0, [r4, 0x10]
+ adds r0, 0x1
+ strh r0, [r4, 0x10]
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x18
+ bne _080B9868
+_080B9860:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _080B9884
+_080B9868:
+ movs r0, 0
+ strh r0, [r4, 0x8]
+ b _080B9884
+_080B986E:
+ movs r1, 0x1C
+ ldrsh r0, [r4, r1]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldrb r0, [r1, 0x4]
+ cmp r0, 0
+ bne _080B9884
+ ldr r0, _080B988C
+ str r0, [r4]
+_080B9884:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B988C: .4byte sub_80B9A1C
+ thumb_func_end sub_80B97DC
+
+ thumb_func_start sub_80B9890
+sub_80B9890: @ 80B9890
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x10
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp]
+ lsls r0, 2
+ ldr r1, [sp]
+ adds r0, r1
+ lsls r0, 3
+ ldr r1, _080B98D0
+ adds r0, r1
+ mov r10, r0
+ bl GetBlockRecievedStatus
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x4]
+ movs r2, 0
+ str r2, [sp, 0x8]
+ bl sub_8008198
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r3, [sp, 0x4]
+ cmp r3, r0
+ bne _080B998A
+ movs r0, 0
+ b _080B9966
+ .align 2, 0
+_080B98D0: .4byte gTasks
+_080B98D4:
+ ldr r1, [sp, 0x4]
+ mov r2, r9
+ asrs r1, r2
+ movs r0, 0x1
+ ands r1, r0
+ movs r3, 0x1
+ add r3, r9
+ mov r8, r3
+ cmp r1, 0
+ beq _080B9960
+ mov r0, r10
+ adds r0, 0x12
+ bl sub_80B9A44
+ mov r1, r8
+ lsls r4, r1, 1
+ mov r5, r10
+ adds r5, 0x8
+ adds r4, r5, r4
+ movs r2, 0
+ ldrsh r1, [r4, r2]
+ movs r3, 0xC8
+ muls r1, r3
+ adds r0, r1
+ ldr r7, _080B9930
+ mov r1, r9
+ muls r1, r7
+ adds r6, r0, r1
+ mov r0, r9
+ str r3, [sp, 0xC]
+ bl sub_80B9A68
+ adds r1, r0, 0
+ movs r0, 0
+ ldrsh r2, [r4, r0]
+ adds r0, r2, 0x1
+ ldr r3, [sp, 0xC]
+ muls r0, r3
+ cmp r0, r7
+ bls _080B9934
+ muls r2, r3
+ subs r2, r7, r2
+ adds r0, r6, 0
+ bl memcpy
+ b _080B993C
+ .align 2, 0
+_080B9930: .4byte 0x00001230
+_080B9934:
+ adds r0, r6, 0
+ movs r2, 0xC8
+ bl memcpy
+_080B993C:
+ mov r0, r9
+ bl ResetBlockReceivedFlag
+ mov r2, r8
+ lsls r1, r2, 1
+ adds r1, r5, r1
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x18
+ bne _080B9960
+ ldr r0, [sp, 0x8]
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x8]
+_080B9960:
+ mov r3, r8
+ lsls r0, r3, 24
+ lsrs r0, 24
+_080B9966:
+ mov r9, r0
+ bl GetLinkPlayerCount
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r9, r0
+ bcc _080B98D4
+ ldr r2, _080B99B0
+ mov r0, r10
+ movs r3, 0x8
+ ldrsh r1, [r0, r3]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldrh r1, [r0, 0x8]
+ adds r1, 0x1
+ strh r1, [r0, 0x8]
+_080B998A:
+ bl GetLinkPlayerCount
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, [sp, 0x8]
+ cmp r1, r0
+ bne _080B999E
+ ldr r0, [sp]
+ bl DestroyTask
+_080B999E:
+ add sp, 0x10
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B99B0: .4byte gTasks
+ thumb_func_end sub_80B9890
+
+ thumb_func_start sub_80B99B4
+sub_80B99B4: @ 80B99B4
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r0, 3
+ ldr r2, _080B99E4
+ adds r0, r2
+ movs r4, 0x1C
+ ldrsh r1, [r0, r4]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldrb r0, [r0, 0x4]
+ cmp r0, 0
+ bne _080B99DC
+ adds r0, r3, 0
+ bl DestroyTask
+_080B99DC:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B99E4: .4byte gTasks
+ thumb_func_end sub_80B99B4
+
+ thumb_func_start sub_80B99E8
+sub_80B99E8: @ 80B99E8
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _080B9A10
+ adds r1, r0
+ ldr r0, _080B9A14
+ str r0, [r1]
+ ldr r0, _080B9A18
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _080B9A0C
+ movs r2, 0x12
+ ldrsh r0, [r1, r2]
+ bl sub_80B93B0
+_080B9A0C:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B9A10: .4byte gTasks
+_080B9A14: .4byte sub_80B99B4
+_080B9A18: .4byte gUnknown_03000718
+ thumb_func_end sub_80B99E8
+
+ thumb_func_start sub_80B9A1C
+sub_80B9A1C: @ 80B9A1C
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080B9A38
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldr r0, _080B9A3C
+ str r0, [r1]
+ ldr r1, _080B9A40
+ movs r0, 0x1
+ strb r0, [r1]
+ bx lr
+ .align 2, 0
+_080B9A38: .4byte gTasks
+_080B9A3C: .4byte sub_80B99E8
+_080B9A40: .4byte gUnknown_03000718
+ thumb_func_end sub_80B9A1C
+
+ thumb_func_start sub_80B9A44
+sub_80B9A44: @ 80B9A44
+ adds r1, r0, 0
+ ldrh r0, [r1]
+ ldrh r1, [r1, 0x2]
+ lsls r1, 16
+ orrs r0, r1
+ bx lr
+ thumb_func_end sub_80B9A44
+
+ thumb_func_start sub_80B9A50
+sub_80B9A50: @ 80B9A50
+ strh r0, [r1]
+ lsrs r0, 16
+ strh r0, [r1, 0x2]
+ bx lr
+ thumb_func_end sub_80B9A50
+
+ thumb_func_start sub_80B9A58
+sub_80B9A58: @ 80B9A58
+ push {lr}
+ bl GetMultiplayerId
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80B9A58
+
+ thumb_func_start sub_80B9A68
+sub_80B9A68: @ 80B9A68
+ lsls r0, 24
+ lsrs r0, 16
+ ldr r1, _080B9A74
+ adds r0, r1
+ bx lr
+ .align 2, 0
+_080B9A74: .4byte gBlockRecvBuffer
+ thumb_func_end sub_80B9A68
+
+ thumb_func_start sub_80B9A78
+sub_80B9A78: @ 80B9A78
+ ldr r1, _080B9A80
+ ldr r0, _080B9A84
+ str r0, [r1]
+ bx lr
+ .align 2, 0
+_080B9A80: .4byte gUnknown_03005D2C
+_080B9A84: .4byte 0x00001230
+ thumb_func_end sub_80B9A78
+
+ thumb_func_start sub_80B9A88
+sub_80B9A88: @ 80B9A88
+ push {r4,lr}
+ adds r4, r0, 0
+ bl GetLinkPlayerCount
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x3
+ beq _080B9AC0
+ cmp r0, 0x3
+ bhi _080B9AA2
+ cmp r0, 0x2
+ beq _080B9AA8
+ b _080B9B10
+_080B9AA2:
+ cmp r0, 0x4
+ beq _080B9AEC
+ b _080B9B10
+_080B9AA8:
+ movs r2, 0
+ ldr r3, _080B9ABC
+_080B9AAC:
+ adds r0, r4, r2
+ adds r1, r2, r3
+ ldrb r1, [r1]
+ strb r1, [r0]
+ adds r2, 0x1
+ cmp r2, 0x1
+ bls _080B9AAC
+ b _080B9B10
+ .align 2, 0
+_080B9ABC: .4byte gUnknown_083D0288
+_080B9AC0:
+ movs r0, 0
+ bl GetLinkPlayerTrainerId
+ adds r3, r0, 0
+ movs r0, 0x1
+ ands r3, r0
+ movs r2, 0
+ ldr r1, _080B9AE8
+ lsls r0, r3, 1
+ adds r0, r3
+ adds r3, r0, r1
+_080B9AD6:
+ adds r1, r4, r2
+ ldrb r0, [r3]
+ strb r0, [r1]
+ adds r3, 0x1
+ adds r2, 0x1
+ cmp r2, 0x2
+ bls _080B9AD6
+ b _080B9B10
+ .align 2, 0
+_080B9AE8: .4byte gUnknown_083D028A
+_080B9AEC:
+ movs r0, 0
+ bl GetLinkPlayerTrainerId
+ movs r1, 0x9
+ bl __umodsi3
+ adds r3, r0, 0
+ movs r2, 0
+ ldr r1, _080B9B18
+ lsls r0, r3, 2
+ adds r3, r0, r1
+_080B9B02:
+ adds r1, r4, r2
+ ldrb r0, [r3]
+ strb r0, [r1]
+ adds r3, 0x1
+ adds r2, 0x1
+ cmp r2, 0x3
+ bls _080B9B02
+_080B9B10:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B9B18: .4byte gUnknown_083D0290
+ thumb_func_end sub_80B9A88
+
+ thumb_func_start sub_80B9B1C
+sub_80B9B1C: @ 80B9B1C
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ sub sp, 0x4
+ adds r5, r0, 0
+ mov r8, r1
+ lsls r4, r2, 24
+ lsrs r4, 24
+ mov r0, sp
+ bl sub_80B9A88
+ mov r0, r8
+ muls r0, r4
+ adds r0, r5, r0
+ ldr r1, _080B9B6C
+ ldr r6, [r1]
+ adds r1, r6, 0
+ movs r2, 0x40
+ bl memcpy
+ mov r1, sp
+ adds r0, r1, r4
+ ldrb r0, [r0]
+ mov r1, r8
+ muls r1, r0
+ adds r0, r1, 0
+ adds r5, r0
+ adds r0, r6, 0
+ adds r1, r5, 0
+ movs r2, 0x40
+ bl memcpy
+ bl sub_80F7F30
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B9B6C: .4byte gUnknown_083D0278
+ thumb_func_end sub_80B9B1C
+
+ thumb_func_start sub_80B9B70
+sub_80B9B70: @ 80B9B70
+ push {r4-r6,lr}
+ mov r6, r9
+ mov r5, r8
+ push {r5,r6}
+ adds r6, r0, 0
+ mov r9, r1
+ lsls r4, r2, 24
+ lsrs r4, 24
+ ldr r0, _080B9BB8
+ mov r8, r0
+ bl sub_80B9A88
+ mov r5, r9
+ muls r5, r4
+ adds r5, r6, r5
+ add r4, r8
+ ldrb r0, [r4]
+ mov r1, r9
+ muls r1, r0
+ adds r0, r1, 0
+ adds r6, r0
+ adds r0, r5, 0
+ adds r1, r6, 0
+ movs r2, 0xA4
+ bl memcpy
+ adds r0, r5, 0
+ bl sub_8134AC0
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B9BB8: .4byte gUnknown_0300071C
+ thumb_func_end sub_80B9B70
+
+ thumb_func_start sub_80B9BBC
+sub_80B9BBC: @ 80B9BBC
+ ldrh r0, [r0, 0x20]
+ lsls r0, 24
+ lsrs r0, 24
+ bx lr
+ thumb_func_end sub_80B9BBC
+
+ thumb_func_start sub_80B9BC4
+sub_80B9BC4: @ 80B9BC4
+ push {r4-r6,lr}
+ mov r6, r10
+ mov r5, r9
+ mov r4, r8
+ push {r4-r6}
+ sub sp, 0x38
+ mov r8, r0
+ mov r10, r1
+ mov r9, r2
+ adds r4, r3, 0
+ ldr r5, [sp, 0x54]
+ lsls r4, 24
+ lsls r5, 24
+ lsrs r5, 24
+ lsrs r4, 23
+ add r4, r9
+ ldrb r0, [r4]
+ mov r6, r10
+ muls r6, r0
+ add r6, r8
+ ldrb r0, [r4, 0x1]
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 3
+ adds r1, r6, r1
+ mov r0, sp
+ movs r2, 0x38
+ bl memcpy
+ lsls r5, 1
+ add r5, r9
+ ldrb r0, [r5]
+ mov r1, r10
+ muls r1, r0
+ adds r0, r1, 0
+ add r8, r0
+ ldrb r1, [r4, 0x1]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 3
+ adds r6, r0
+ ldrb r0, [r5, 0x1]
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 3
+ add r1, r8
+ adds r0, r6, 0
+ movs r2, 0x38
+ bl memcpy
+ ldrb r1, [r5, 0x1]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 3
+ add r8, r0
+ mov r0, r8
+ mov r1, sp
+ movs r2, 0x38
+ bl memcpy
+ add sp, 0x38
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B9BC4
+
+ thumb_func_start sub_80B9C4C
+sub_80B9C4C: @ 80B9C4C
+ push {lr}
+ adds r3, r0, 0
+ movs r2, 0
+ movs r1, 0
+_080B9C54:
+ adds r0, r3, r1
+ ldrb r0, [r0]
+ adds r0, r2, r0
+ lsls r0, 24
+ lsrs r2, r0, 24
+ adds r1, 0x1
+ cmp r1, 0xFF
+ ble _080B9C54
+ adds r0, r2, 0
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80B9C4C
+
+ thumb_func_start sub_80B9C6C
+sub_80B9C6C: @ 80B9C6C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x58
+ str r0, [sp, 0x2C]
+ str r1, [sp, 0x30]
+ str r3, [sp, 0x38]
+ lsls r2, 24
+ lsrs r2, 24
+ str r2, [sp, 0x34]
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ str r0, [sp, 0x40]
+ ldr r0, _080B9DA8
+ ldrh r0, [r0, 0x4]
+ bl SeedRng
+ bl GetLinkPlayerCount
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ movs r3, 0
+ add r0, sp, 0x1C
+ mov r9, r0
+ movs r1, 0x1D
+ add r1, sp
+ mov r10, r1
+ mov r2, sp
+ adds r2, 0xC
+ str r2, [sp, 0x4C]
+ movs r7, 0xFF
+ add r4, sp, 0x8
+ movs r2, 0
+ mov r6, r9
+ mov r5, r10
+_080B9CBC:
+ mov r1, sp
+ adds r1, r3
+ adds r1, 0x4
+ ldrb r0, [r1]
+ orrs r0, r7
+ strb r0, [r1]
+ adds r0, r4, r3
+ strb r2, [r0]
+ lsls r1, r3, 1
+ adds r0, r6, r1
+ strb r2, [r0]
+ adds r1, r5, r1
+ strb r2, [r1]
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0x3
+ bls _080B9CBC
+ movs r4, 0
+ str r4, [sp, 0x3C]
+ movs r3, 0
+ mov r1, r8
+ lsls r0, r1, 16
+ lsrs r1, r0, 16
+ str r0, [sp, 0x50]
+ ldr r4, [sp, 0x30]
+ ldr r0, [sp, 0x34]
+ adds r2, r4, 0
+ muls r2, r0
+ str r2, [sp, 0x48]
+ ldr r2, [sp, 0x3C]
+ cmp r2, r1
+ bcs _080B9D46
+ mov r8, r1
+_080B9D00:
+ ldr r4, [sp, 0x30]
+ adds r0, r4, 0
+ muls r0, r3
+ ldr r1, [sp, 0x2C]
+ adds r6, r1, r0
+ ldr r0, [r6, 0x70]
+ cmp r0, 0
+ beq _080B9D3C
+ movs r7, 0
+ cmp r7, r0
+ bcs _080B9D3C
+ adds r4, r6, 0
+ adds r4, 0x74
+ mov r2, r9
+ lsls r1, r3, 1
+ movs r5, 0x1
+_080B9D20:
+ lsls r0, r7, 1
+ adds r0, r4, r0
+ ldrh r0, [r0]
+ cmp r0, 0
+ bne _080B9D30
+ adds r0, r7, r1
+ adds r0, r2, r0
+ strb r5, [r0]
+_080B9D30:
+ adds r0, r7, 0x1
+ lsls r0, 16
+ lsrs r7, r0, 16
+ ldr r0, [r6, 0x70]
+ cmp r7, r0
+ bcc _080B9D20
+_080B9D3C:
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, r8
+ bcc _080B9D00
+_080B9D46:
+ movs r7, 0
+ movs r3, 0
+ ldr r2, [sp, 0x50]
+ cmp r2, 0
+ beq _080B9E3E
+ mov r4, sp
+ adds r4, 0x24
+ str r4, [sp, 0x44]
+ movs r0, 0x25
+ add r0, sp
+ mov r8, r0
+_080B9D5C:
+ ldr r1, [sp, 0x30]
+ adds r0, r1, 0
+ muls r0, r3
+ ldr r2, [sp, 0x2C]
+ adds r6, r2, r0
+ lsls r1, r3, 1
+ mov r4, r9
+ adds r0, r4, r1
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ beq _080B9D7C
+ mov r2, r10
+ adds r0, r2, r1
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _080B9D86
+_080B9D7C:
+ ldr r0, [sp, 0x3C]
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x3C]
+_080B9D86:
+ mov r4, r9
+ adds r0, r4, r1
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _080B9DAC
+ mov r2, r10
+ adds r0, r2, r1
+ ldrb r2, [r0]
+ cmp r2, 0
+ bne _080B9DAC
+_080B9D9A:
+ lsls r1, r7, 1
+ ldr r4, [sp, 0x44]
+ adds r0, r4, r1
+ strb r3, [r0]
+ add r1, r8
+ strb r2, [r1]
+ b _080B9E2C
+ .align 2, 0
+_080B9DA8: .4byte gLinkPlayers
+_080B9DAC:
+ mov r2, r9
+ adds r0, r2, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080B9DC0
+ mov r4, r10
+ adds r0, r4, r1
+ ldrb r2, [r0]
+ cmp r2, 0x1
+ beq _080B9D9A
+_080B9DC0:
+ mov r2, r9
+ adds r0, r2, r1
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _080B9E32
+ mov r4, r10
+ adds r0, r4, r1
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _080B9E32
+ lsls r5, r7, 1
+ ldr r1, [sp, 0x44]
+ adds r0, r1, r5
+ strb r3, [r0]
+ adds r0, r6, 0
+ str r3, [sp, 0x54]
+ bl sub_80B9BBC
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r6, 0
+ adds r0, 0x38
+ bl sub_80B9BBC
+ lsls r0, 24
+ lsrs r1, r0, 24
+ ldr r3, [sp, 0x54]
+ cmp r4, 0
+ bne _080B9E0A
+ cmp r1, 0
+ beq _080B9E0E
+ mov r2, r8
+ adds r1, r2, r5
+ movs r0, 0x1
+ strb r0, [r1]
+ b _080B9E2C
+_080B9E0A:
+ cmp r1, 0
+ beq _080B9E26
+_080B9E0E:
+ str r3, [sp, 0x54]
+ bl Random
+ mov r4, r8
+ adds r2, r4, r5
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x1
+ ands r0, r1
+ strb r0, [r2]
+ ldr r3, [sp, 0x54]
+ b _080B9E2C
+_080B9E26:
+ mov r2, r8
+ adds r0, r2, r5
+ strb r1, [r0]
+_080B9E2C:
+ adds r0, r7, 0x1
+ lsls r0, 16
+ lsrs r7, r0, 16
+_080B9E32:
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ ldr r4, [sp, 0x50]
+ cmp r0, r4
+ bcc _080B9D5C
+_080B9E3E:
+ movs r3, 0
+ ldr r1, [sp, 0x48]
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 3
+ ldr r2, [sp, 0x2C]
+ adds r6, r2, r0
+ ldr r1, [sp, 0x4C]
+_080B9E4E:
+ lsls r0, r3, 2
+ adds r0, r1, r0
+ str r6, [r0]
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0x3
+ bls _080B9E4E
+ ldr r0, [sp, 0x38]
+ bl sub_80B9C4C
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x3
+ bl __umodsi3
+ lsls r0, 24
+ lsrs r1, r0, 24
+ ldr r4, [sp, 0x3C]
+ cmp r4, 0x3
+ beq _080B9E9C
+ cmp r4, 0x3
+ bgt _080B9E82
+ cmp r4, 0x2
+ beq _080B9E8A
+ b _080B9EF0
+_080B9E82:
+ ldr r0, [sp, 0x3C]
+ cmp r0, 0x4
+ beq _080B9EBC
+ b _080B9EF0
+_080B9E8A:
+ add r2, sp, 0x24
+ movs r0, 0x1
+ str r0, [sp]
+ ldr r0, [sp, 0x2C]
+ ldr r1, [sp, 0x30]
+ movs r3, 0
+ bl sub_80B9BC4
+ b _080B9EF0
+_080B9E9C:
+ ldr r0, _080B9EB8
+ lsls r1, 1
+ adds r2, r1, r0
+ ldrb r3, [r2]
+ adds r0, 0x1
+ adds r1, r0
+ ldrb r0, [r1]
+ add r2, sp, 0x24
+ str r0, [sp]
+ ldr r0, [sp, 0x2C]
+ ldr r1, [sp, 0x30]
+ bl sub_80B9BC4
+ b _080B9EF0
+ .align 2, 0
+_080B9EB8: .4byte gUnknown_083D02B4
+_080B9EBC:
+ add r6, sp, 0x24
+ ldr r4, _080B9F2C
+ lsls r5, r1, 2
+ adds r0, r5, r4
+ ldrb r3, [r0]
+ adds r0, r4, 0x1
+ adds r0, r5, r0
+ ldrb r0, [r0]
+ str r0, [sp]
+ ldr r0, [sp, 0x2C]
+ ldr r1, [sp, 0x30]
+ adds r2, r6, 0
+ bl sub_80B9BC4
+ adds r0, r4, 0x2
+ adds r0, r5, r0
+ ldrb r3, [r0]
+ adds r4, 0x3
+ adds r5, r4
+ ldrb r0, [r5]
+ str r0, [sp]
+ ldr r0, [sp, 0x2C]
+ ldr r1, [sp, 0x30]
+ adds r2, r6, 0
+ bl sub_80B9BC4
+_080B9EF0:
+ ldr r1, [sp, 0x2C]
+ ldr r2, [sp, 0x48]
+ adds r6, r1, r2
+ ldr r4, _080B9F30
+ ldr r1, _080B9F34
+ adds r0, r4, r1
+ adds r1, r6, 0
+ movs r2, 0x38
+ bl memcpy
+ ldr r2, _080B9F38
+ adds r4, r2
+ adds r1, r6, 0
+ adds r1, 0x38
+ adds r0, r4, 0
+ movs r2, 0x38
+ bl memcpy
+ ldr r0, [sp, 0x40]
+ bl SeedRng
+ add sp, 0x58
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B9F2C: .4byte gUnknown_083D02BA
+_080B9F30: .4byte gSaveBlock1
+_080B9F34: .4byte 0x0000303c
+_080B9F38: .4byte 0x00003074
+ thumb_func_end sub_80B9C6C
+
+ thumb_func_start sub_80B9F3C
+sub_80B9F3C: @ 80B9F3C
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r1, 24
+ cmp r1, 0
+ beq _080BA000
+ ldrh r0, [r4]
+ cmp r0, 0
+ beq _080BA000
+ bl sub_80A9670
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x5
+ bne _080B9FC8
+ ldrh r0, [r4]
+ movs r1, 0x1
+ bl sub_80A92D4
+ lsls r0, 24
+ cmp r0, 0
+ bne _080B9FB8
+ ldrh r0, [r4]
+ movs r1, 0x1
+ bl sub_80A9718
+ lsls r0, 24
+ cmp r0, 0
+ bne _080B9FB8
+ ldrh r0, [r4]
+ movs r1, 0x1
+ bl sub_80A9424
+ lsls r0, 24
+ cmp r0, 0
+ beq _080B9FB8
+ ldr r0, _080B9FA4
+ ldrh r1, [r4]
+ bl VarSet
+ ldr r0, _080B9FA8
+ ldr r1, _080B9FAC
+ bl StringCopy
+ ldrh r1, [r4]
+ ldr r0, _080B9FB0
+ cmp r1, r0
+ bne _080BA000
+ ldr r0, _080B9FB4
+ bl FlagSet
+ b _080BA000
+ .align 2, 0
+_080B9FA4: .4byte 0x00004001
+_080B9FA8: .4byte gStringVar1
+_080B9FAC: .4byte gLinkPlayers + 0x8
+_080B9FB0: .4byte 0x00000113
+_080B9FB4: .4byte 0x00000853
+_080B9FB8:
+ ldr r0, _080B9FC4
+ movs r1, 0
+ bl VarSet
+ b _080BA000
+ .align 2, 0
+_080B9FC4: .4byte 0x00004001
+_080B9FC8:
+ ldrh r0, [r4]
+ movs r1, 0x1
+ bl sub_80A9424
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080B9FF8
+ ldr r0, _080B9FEC
+ ldrh r1, [r4]
+ bl VarSet
+ ldr r0, _080B9FF0
+ ldr r1, _080B9FF4
+ bl StringCopy
+ b _080BA000
+ .align 2, 0
+_080B9FEC: .4byte 0x00004001
+_080B9FF0: .4byte gStringVar1
+_080B9FF4: .4byte gLinkPlayers + 0x8
+_080B9FF8:
+ ldr r0, _080BA008
+ movs r1, 0
+ bl VarSet
+_080BA000:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BA008: .4byte 0x00004001
+ thumb_func_end sub_80B9F3C
+
+ thumb_func_start sub_80BA00C
+sub_80BA00C: @ 80BA00C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ ldr r1, _080BA030
+ adds r4, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x5
+ bhi _080BA09C
+ lsls r0, 2
+ ldr r1, _080BA034
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080BA030: .4byte gTasks
+_080BA034: .4byte _080BA038
+ .align 2, 0
+_080BA038:
+ .4byte _080BA086
+ .4byte _080BA086
+ .4byte _080BA050
+ .4byte _080BA05A
+ .4byte _080BA074
+ .4byte _080BA08E
+_080BA050:
+ bl sub_8047A1C
+ bl sub_8125E2C
+ b _080BA086
+_080BA05A:
+ bl sub_8125E6C
+ lsls r0, 24
+ cmp r0, 0
+ beq _080BA09C
+ bl sub_8047A34
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ movs r1, 0
+ strh r0, [r4, 0x8]
+ strh r1, [r4, 0xA]
+ b _080BA09C
+_080BA074:
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xA
+ ble _080BA09C
+ bl sub_800832C
+_080BA086:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _080BA09C
+_080BA08E:
+ ldr r0, _080BA0A4
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080BA09C
+ adds r0, r2, 0
+ bl DestroyTask
+_080BA09C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BA0A4: .4byte gReceivedRemoteLinkPlayers
+ thumb_func_end sub_80BA00C
+
+ thumb_func_start sub_80BA0A8
+sub_80BA0A8: @ 80BA0A8
+ push {lr}
+ bl RunTasks
+ bl AnimateSprites
+ bl BuildOamBuffer
+ bl UpdatePaletteFade
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80BA0A8
+
+ thumb_func_start sub_80BA0C0
+sub_80BA0C0: @ 80BA0C0
+ push {lr}
+ bl LoadOam
+ bl ProcessSpriteCopyRequests
+ bl TransferPlttBuffer
+ ldr r0, _080BA0E8
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080BA0E2
+ bl m4aSoundMain
+ bl m4aSoundMain
+ bl m4aSoundMain
+_080BA0E2:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BA0E8: .4byte gUnknown_020387B0
+ thumb_func_end sub_80BA0C0
+
+ thumb_func_start unref_sub_80BA0EC
+unref_sub_80BA0EC: @ 80BA0EC
+ push {r4-r6,lr}
+ sub sp, 0xC
+ movs r0, 0
+ bl SetVBlankCallback
+ movs r6, 0x80
+ lsls r6, 19
+ movs r5, 0
+ strh r5, [r6]
+ ldr r0, _080BA20C
+ strh r5, [r0]
+ subs r0, 0x2
+ strh r5, [r0]
+ subs r0, 0x2
+ strh r5, [r0]
+ adds r0, 0x10
+ strh r5, [r0]
+ adds r0, 0x2
+ strh r5, [r0]
+ subs r0, 0x6
+ strh r5, [r0]
+ adds r0, 0x2
+ strh r5, [r0]
+ subs r0, 0x6
+ strh r5, [r0]
+ adds r0, 0x2
+ strh r5, [r0]
+ add r0, sp, 0x4
+ strh r5, [r0]
+ ldr r1, _080BA210
+ str r0, [r1]
+ movs r0, 0xC0
+ lsls r0, 19
+ str r0, [r1, 0x4]
+ ldr r0, _080BA214
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ movs r4, 0
+ str r4, [sp, 0x8]
+ add r0, sp, 0x8
+ str r0, [r1]
+ movs r0, 0xE0
+ lsls r0, 19
+ str r0, [r1, 0x4]
+ ldr r0, _080BA218
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ add r0, sp, 0x4
+ strh r4, [r0]
+ str r0, [r1]
+ movs r0, 0xA0
+ lsls r0, 19
+ str r0, [r1, 0x4]
+ ldr r0, _080BA21C
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ bl ResetPaletteFade
+ bl ResetTasks
+ bl ResetSpriteData
+ ldr r0, _080BA220
+ bl SetUpWindowConfig
+ ldr r0, _080BA224
+ bl InitMenuWindow
+ movs r0, 0x1
+ negs r0, r0
+ str r4, [sp]
+ movs r1, 0
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ ldr r0, _080BA228
+ strh r4, [r0]
+ adds r0, 0x4
+ strh r4, [r0]
+ subs r0, 0x2
+ strh r4, [r0]
+ adds r0, 0x4
+ strh r4, [r0]
+ ldr r1, _080BA22C
+ ldr r2, _080BA230
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r0, 0x31
+ strh r0, [r1]
+ adds r1, 0x6
+ movs r0, 0xE1
+ strh r0, [r1]
+ ldr r0, _080BA234
+ strh r4, [r0]
+ adds r1, 0x4
+ movs r0, 0x7
+ strh r0, [r1]
+ ldr r1, _080BA238
+ movs r2, 0x1
+ strh r2, [r1]
+ ldrh r0, [r1]
+ orrs r0, r2
+ strh r0, [r1]
+ ldr r2, _080BA23C
+ ldrh r0, [r2]
+ movs r1, 0x8
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r0, _080BA240
+ bl SetVBlankCallback
+ ldr r0, _080BA244
+ bl SetMainCallback2
+ ldr r1, _080BA248
+ adds r0, r1, 0
+ strh r0, [r6]
+ ldr r0, _080BA24C
+ movs r1, 0
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080BA250
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ strh r4, [r1, 0x8]
+ strh r4, [r1, 0xA]
+ strh r4, [r1, 0xC]
+ strh r4, [r1, 0xE]
+ ldr r0, _080BA254
+ strb r5, [r0]
+ strh r4, [r1, 0xE]
+ bl m4aSoundInit
+ add sp, 0xC
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BA20C: .4byte REG_BG2CNT
+_080BA210: .4byte 0x040000d4
+_080BA214: .4byte 0x8100c000
+_080BA218: .4byte 0x85000100
+_080BA21C: .4byte 0x81000200
+_080BA220: .4byte gWindowConfig_81E6C3C
+_080BA224: .4byte gWindowConfig_81E6CE4
+_080BA228: .4byte REG_WIN0H
+_080BA22C: .4byte REG_WININ
+_080BA230: .4byte 0x00001111
+_080BA234: .4byte REG_BLDALPHA
+_080BA238: .4byte 0x04000200
+_080BA23C: .4byte REG_DISPSTAT
+_080BA240: .4byte sub_80BA0C0
+_080BA244: .4byte sub_80BA0A8
+_080BA248: .4byte 0x00007140
+_080BA24C: .4byte sub_80BA258
+_080BA250: .4byte gTasks
+_080BA254: .4byte gUnknown_020387B0
+ thumb_func_end unref_sub_80BA0EC
+
+ thumb_func_start sub_80BA258
+sub_80BA258: @ 80BA258
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x40
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ ldr r1, _080BA354
+ mov r0, sp
+ movs r2, 0x9
+ bl memcpy
+ add r7, sp, 0xC
+ ldr r1, _080BA358
+ adds r0, r7, 0
+ movs r2, 0x4
+ bl memcpy
+ add r0, sp, 0x10
+ mov r8, r0
+ ldr r1, _080BA35C
+ movs r2, 0x4
+ bl memcpy
+ add r5, sp, 0x14
+ ldr r1, _080BA360
+ adds r0, r5, 0
+ movs r2, 0xD
+ bl memcpy
+ add r4, sp, 0x24
+ ldr r1, _080BA364
+ adds r0, r4, 0
+ movs r2, 0xC
+ bl memcpy
+ add r6, sp, 0x30
+ ldr r1, _080BA368
+ adds r0, r6, 0
+ movs r2, 0xE
+ bl memcpy
+ ldr r0, _080BA36C
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080BA344
+ movs r0, 0x2
+ movs r1, 0
+ movs r2, 0x1B
+ movs r3, 0x3
+ bl MenuDrawTextWindow
+ movs r0, 0x2
+ movs r1, 0x5
+ movs r2, 0x1B
+ movs r3, 0xA
+ bl MenuDrawTextWindow
+ movs r0, 0x2
+ movs r1, 0xC
+ movs r2, 0x1B
+ movs r3, 0x11
+ bl MenuDrawTextWindow
+ mov r0, sp
+ movs r1, 0x4
+ movs r2, 0x1
+ bl MenuPrint
+ adds r0, r5, 0
+ movs r1, 0xE
+ movs r2, 0x1
+ bl MenuPrint
+ adds r0, r7, 0
+ movs r1, 0x4
+ movs r2, 0x6
+ bl MenuPrint
+ adds r0, r4, 0
+ movs r1, 0xE
+ movs r2, 0x6
+ bl MenuPrint
+ mov r0, r8
+ movs r1, 0x4
+ movs r2, 0xD
+ bl MenuPrint
+ adds r0, r4, 0
+ movs r1, 0xE
+ movs r2, 0xD
+ bl MenuPrint
+ adds r0, r6, 0
+ movs r1, 0xE
+ movs r2, 0x12
+ bl MenuPrint
+ ldr r1, _080BA370
+ mov r2, r9
+ lsls r0, r2, 2
+ add r0, r9
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080BA374
+ str r1, [r0]
+ ldr r1, _080BA378
+ ldr r2, _080BA37C
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x4
+ ldr r2, _080BA380
+ adds r0, r2, 0
+ strh r0, [r1]
+_080BA344:
+ add sp, 0x40
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BA354: .4byte gDebugText_SoundCheckJap
+_080BA358: .4byte gDebugText_BGM
+_080BA35C: .4byte gDebugText_SE
+_080BA360: .4byte gUnknown_083D02D9
+_080BA364: .4byte gDebugText_UpDown
+_080BA368: .4byte gDebugText_DriverTest
+_080BA36C: .4byte gPaletteFade
+_080BA370: .4byte gTasks
+_080BA374: .4byte sub_80BA384
+_080BA378: .4byte REG_WIN0H
+_080BA37C: .4byte 0x000011df
+_080BA380: .4byte 0x0000011f
+ thumb_func_end sub_80BA258
+
+ thumb_func_start sub_80BA384
+sub_80BA384: @ 80BA384
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _080BA3EC
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ adds r4, r1
+ ldrb r0, [r4, 0x8]
+ bl sub_80BA6B8
+ ldr r1, _080BA3F0
+ adds r0, r1, 0
+ ldrh r2, [r4, 0xA]
+ adds r0, r2
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x7
+ movs r2, 0x8
+ bl sub_80BA700
+ ldr r1, _080BA3F4
+ movs r2, 0xA
+ ldrsh r0, [r4, r2]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0xB
+ movs r2, 0x8
+ bl sub_80BA79C
+ ldrh r0, [r4, 0xC]
+ movs r1, 0x7
+ movs r2, 0xF
+ bl sub_80BA700
+ ldr r1, _080BA3F8
+ movs r2, 0xC
+ ldrsh r0, [r4, r2]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0xB
+ movs r2, 0xF
+ bl sub_80BA79C
+ ldr r0, _080BA3FC
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BA3EC: .4byte gTasks
+_080BA3F0: .4byte 0x0000015d
+_080BA3F4: .4byte gBGMNames
+_080BA3F8: .4byte gSENames
+_080BA3FC: .4byte Task_HandleMainMenuInput
+ thumb_func_end sub_80BA384
+
+ thumb_func_start sub_80BA400
+sub_80BA400: @ 80BA400
+ push {r4-r6,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r2, _080BA428
+ ldrh r1, [r2, 0x2E]
+ movs r0, 0x80
+ lsls r0, 1
+ ands r0, r1
+ cmp r0, 0
+ beq _080BA434
+ ldr r0, _080BA42C
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _080BA430
+ str r0, [r1]
+ b _080BA64C
+ .align 2, 0
+_080BA428: .4byte gMain
+_080BA42C: .4byte gTasks
+_080BA430: .4byte sub_80BA800
+_080BA434:
+ movs r0, 0x80
+ lsls r0, 2
+ ands r0, r1
+ cmp r0, 0
+ beq _080BA458
+ ldr r0, _080BA450
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _080BA454
+ str r0, [r1]
+ b _080BA64C
+ .align 2, 0
+_080BA450: .4byte gTasks
+_080BA454: .4byte sub_80BAF84
+_080BA458:
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ beq _080BA478
+ ldr r0, _080BA470
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _080BA474
+ str r0, [r1]
+ b _080BA64C
+ .align 2, 0
+_080BA470: .4byte gTasks
+_080BA474: .4byte sub_80BB25C
+_080BA478:
+ movs r6, 0x1
+ movs r5, 0x1
+ ands r5, r1
+ cmp r5, 0
+ beq _080BA538
+ ldr r0, _080BA4AC
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r5, r1, r0
+ movs r1, 0x8
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ beq _080BA4D0
+ movs r2, 0x10
+ ldrsh r0, [r5, r2]
+ cmp r0, 0
+ beq _080BA4BA
+ movs r3, 0xC
+ ldrsh r4, [r5, r3]
+ cmp r4, 0
+ beq _080BA4B0
+ ldrh r0, [r5, 0x10]
+ bl m4aSongNumStop
+ b _080BA4C4
+ .align 2, 0
+_080BA4AC: .4byte gTasks
+_080BA4B0:
+ ldrh r0, [r5, 0x10]
+ bl m4aSongNumStop
+ strh r4, [r5, 0x10]
+ b _080BA64C
+_080BA4BA:
+ movs r4, 0xC
+ ldrsh r0, [r5, r4]
+ cmp r0, 0
+ bne _080BA4C4
+ b _080BA64C
+_080BA4C4:
+ ldrh r0, [r5, 0xC]
+ bl m4aSongNumStart
+ ldrh r0, [r5, 0xC]
+ strh r0, [r5, 0x10]
+ b _080BA64C
+_080BA4D0:
+ ldrh r1, [r5, 0xE]
+ movs r2, 0xE
+ ldrsh r0, [r5, r2]
+ cmp r0, 0
+ beq _080BA514
+ movs r3, 0xA
+ ldrsh r4, [r5, r3]
+ cmp r4, 0
+ beq _080BA500
+ ldr r0, _080BA4FC
+ adds r4, r0, 0
+ adds r0, r1, r4
+ lsls r0, 16
+ lsrs r0, 16
+ bl m4aSongNumStop
+ ldrh r1, [r5, 0xA]
+ adds r4, r1
+ lsls r4, 16
+ lsrs r4, 16
+ adds r0, r4, 0
+ b _080BA528
+ .align 2, 0
+_080BA4FC: .4byte 0x0000015d
+_080BA500:
+ ldr r2, _080BA510
+ adds r0, r1, r2
+ lsls r0, 16
+ lsrs r0, 16
+ bl m4aSongNumStop
+ strh r4, [r5, 0xE]
+ b _080BA64C
+ .align 2, 0
+_080BA510: .4byte 0x0000015d
+_080BA514:
+ ldrh r1, [r5, 0xA]
+ movs r3, 0xA
+ ldrsh r0, [r5, r3]
+ cmp r0, 0
+ bne _080BA520
+ b _080BA64C
+_080BA520:
+ ldr r4, _080BA534
+ adds r0, r1, r4
+ lsls r0, 16
+ lsrs r0, 16
+_080BA528:
+ bl m4aSongNumStart
+ ldrh r0, [r5, 0xA]
+ strh r0, [r5, 0xE]
+ b _080BA64C
+ .align 2, 0
+_080BA534: .4byte 0x0000015d
+_080BA538:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080BA570
+ movs r0, 0x5
+ bl m4aSongNumStart
+ movs r0, 0x1
+ negs r0, r0
+ str r5, [sp]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r1, _080BA568
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080BA56C
+ str r1, [r0]
+ b _080BA64C
+ .align 2, 0
+_080BA568: .4byte gTasks
+_080BA56C: .4byte sub_80BA68C
+_080BA570:
+ ldrh r1, [r2, 0x30]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ bne _080BA582
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _080BA59C
+_080BA582:
+ ldr r0, _080BA598
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x8]
+ eors r0, r6
+ strh r0, [r1, 0x8]
+_080BA592:
+ movs r0, 0x1
+ b _080BA64E
+ .align 2, 0
+_080BA598: .4byte gTasks
+_080BA59C:
+ movs r0, 0x10
+ ands r0, r1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0
+ beq _080BA5EA
+ ldr r0, _080BA5CC
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ movs r2, 0x8
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ beq _080BA5D6
+ ldrh r2, [r1, 0xC]
+ movs r3, 0xC
+ ldrsh r0, [r1, r3]
+ cmp r0, 0
+ ble _080BA5D0
+ subs r0, r2, 0x1
+ strh r0, [r1, 0xC]
+ b _080BA592
+ .align 2, 0
+_080BA5CC: .4byte gTasks
+_080BA5D0:
+ movs r0, 0xF7
+ strh r0, [r1, 0xC]
+ b _080BA592
+_080BA5D6:
+ ldrh r2, [r1, 0xA]
+ movs r4, 0xA
+ ldrsh r0, [r1, r4]
+ cmp r0, 0
+ ble _080BA5E4
+ subs r0, r2, 0x1
+ b _080BA5E6
+_080BA5E4:
+ movs r0, 0x75
+_080BA5E6:
+ strh r0, [r1, 0xA]
+ b _080BA592
+_080BA5EA:
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _080BA630
+ ldr r1, _080BA614
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r1, r0, r1
+ movs r0, 0x8
+ ldrsh r2, [r1, r0]
+ cmp r2, 0
+ beq _080BA61C
+ ldrh r2, [r1, 0xC]
+ movs r4, 0xC
+ ldrsh r0, [r1, r4]
+ cmp r0, 0xF6
+ bgt _080BA618
+ adds r0, r2, 0x1
+ strh r0, [r1, 0xC]
+ b _080BA592
+ .align 2, 0
+_080BA614: .4byte gTasks
+_080BA618:
+ strh r3, [r1, 0xC]
+ b _080BA592
+_080BA61C:
+ ldrh r3, [r1, 0xA]
+ movs r4, 0xA
+ ldrsh r0, [r1, r4]
+ cmp r0, 0x74
+ bgt _080BA62C
+ adds r0, r3, 0x1
+ strh r0, [r1, 0xA]
+ b _080BA592
+_080BA62C:
+ strh r2, [r1, 0xA]
+ b _080BA592
+_080BA630:
+ ldrh r1, [r2, 0x2C]
+ movs r0, 0x4
+ ands r0, r1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0
+ beq _080BA648
+ ldr r0, _080BA644
+ strb r6, [r0]
+ b _080BA64C
+ .align 2, 0
+_080BA644: .4byte gUnknown_020387B0
+_080BA648:
+ ldr r0, _080BA658
+ strb r1, [r0]
+_080BA64C:
+ movs r0, 0
+_080BA64E:
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080BA658: .4byte gUnknown_020387B0
+ thumb_func_end sub_80BA400
+
+ thumb_func_start Task_HandleMainMenuInput
+Task_HandleMainMenuInput: @ 80BA65C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r0, r4, 0
+ bl sub_80BA400
+ lsls r0, 24
+ cmp r0, 0
+ beq _080BA67C
+ ldr r0, _080BA684
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _080BA688
+ str r0, [r1]
+_080BA67C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BA684: .4byte gTasks
+_080BA688: .4byte sub_80BA384
+ thumb_func_end Task_HandleMainMenuInput
+
+ thumb_func_start sub_80BA68C
+sub_80BA68C: @ 80BA68C
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r0, _080BA6B0
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080BA6AA
+ adds r0, r2, 0
+ bl DestroyTask
+ ldr r0, _080BA6B4
+ bl SetMainCallback2
+_080BA6AA:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BA6B0: .4byte gPaletteFade
+_080BA6B4: .4byte CB2_InitTitleScreen
+ thumb_func_end sub_80BA68C
+
+ thumb_func_start sub_80BA6B8
+sub_80BA6B8: @ 80BA6B8
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ beq _080BA6C6
+ cmp r0, 0x1
+ beq _080BA6E0
+_080BA6C6:
+ ldr r1, _080BA6D4
+ ldr r2, _080BA6D8
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x4
+ ldr r2, _080BA6DC
+ b _080BA6EC
+ .align 2, 0
+_080BA6D4: .4byte REG_WIN1H
+_080BA6D8: .4byte 0x000011df
+_080BA6DC: .4byte 0x00002957
+_080BA6E0:
+ ldr r1, _080BA6F4
+ ldr r2, _080BA6F8
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x4
+ ldr r2, _080BA6FC
+_080BA6EC:
+ adds r0, r2, 0
+ strh r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BA6F4: .4byte REG_WIN1H
+_080BA6F8: .4byte 0x000011df
+_080BA6FC: .4byte 0x0000618f
+ thumb_func_end sub_80BA6B8
+
+ thumb_func_start sub_80BA700
+sub_80BA700: @ 80BA700
+ push {r4-r7,lr}
+ sub sp, 0x8
+ lsls r0, 16
+ lsrs r5, r0, 16
+ lsls r1, 16
+ lsrs r6, r1, 16
+ lsls r2, 16
+ lsrs r7, r2, 16
+ movs r1, 0
+ movs r2, 0
+_080BA714:
+ mov r3, sp
+ adds r0, r3, r1
+ strb r2, [r0]
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x2
+ bls _080BA714
+ mov r1, sp
+ movs r0, 0xB0
+ strb r0, [r1, 0x3]
+ movs r0, 0xFF
+ strb r0, [r1, 0x4]
+ movs r4, 0
+ adds r0, r5, 0
+ movs r1, 0x64
+ bl __udivsi3
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ beq _080BA748
+ mov r1, sp
+ adds r0, 0xA1
+ strb r0, [r1]
+ movs r4, 0x1
+_080BA748:
+ adds r0, r5, 0
+ movs r1, 0x64
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0xA
+ bl __udivsi3
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ bne _080BA766
+ cmp r4, 0
+ beq _080BA76C
+_080BA766:
+ mov r1, sp
+ adds r0, 0xA1
+ strb r0, [r1, 0x1]
+_080BA76C:
+ mov r4, sp
+ adds r0, r5, 0
+ movs r1, 0x64
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0xA
+ bl __umodsi3
+ adds r0, 0xA1
+ strb r0, [r4, 0x2]
+ lsls r1, r6, 24
+ lsrs r1, 24
+ lsls r2, r7, 24
+ lsrs r2, 24
+ mov r0, sp
+ bl MenuPrint
+ add sp, 0x8
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80BA700
+
+ thumb_func_start sub_80BA79C
+sub_80BA79C: @ 80BA79C
+ push {r4-r6,lr}
+ sub sp, 0xC
+ adds r4, r0, 0
+ lsls r1, 16
+ lsrs r6, r1, 16
+ lsls r2, 16
+ lsrs r5, r2, 16
+ movs r3, 0
+ movs r1, 0
+_080BA7AE:
+ mov r2, sp
+ adds r0, r2, r3
+ strb r1, [r0]
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0xA
+ bls _080BA7AE
+ mov r0, sp
+ movs r1, 0xFF
+ strb r1, [r0, 0xA]
+ movs r3, 0
+ ldrb r0, [r4]
+ lsls r2, r6, 24
+ lsls r5, 24
+ cmp r0, 0xFF
+ beq _080BA7EC
+_080BA7D0:
+ mov r0, sp
+ adds r1, r0, r3
+ adds r0, r4, r3
+ ldrb r0, [r0]
+ strb r0, [r1]
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ adds r0, r4, r3
+ ldrb r0, [r0]
+ cmp r0, 0xFF
+ beq _080BA7EC
+ cmp r3, 0x9
+ bls _080BA7D0
+_080BA7EC:
+ lsrs r1, r2, 24
+ lsrs r2, r5, 24
+ mov r0, sp
+ bl MenuPrint
+ add sp, 0xC
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80BA79C
+
+ thumb_func_start sub_80BA800
+sub_80BA800: @ 80BA800
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0xCC
+ lsls r0, 24
+ str r0, [sp, 0xB0]
+ lsrs r2, r0, 24
+ str r2, [sp, 0xAC]
+ ldr r1, _080BA9E8
+ mov r0, sp
+ movs r2, 0xA
+ bl memcpy
+ mov r0, sp
+ adds r0, 0xC
+ str r0, [sp, 0xB4]
+ ldr r1, _080BA9EC
+ movs r2, 0xB
+ bl memcpy
+ mov r2, sp
+ adds r2, 0x18
+ str r2, [sp, 0xB8]
+ ldr r1, _080BA9F0
+ adds r0, r2, 0
+ movs r2, 0xA
+ bl memcpy
+ mov r0, sp
+ adds r0, 0x24
+ str r0, [sp, 0xBC]
+ ldr r1, _080BA9F4
+ movs r2, 0xA
+ bl memcpy
+ mov r2, sp
+ adds r2, 0x30
+ str r2, [sp, 0xC0]
+ ldr r1, _080BA9F8
+ adds r0, r2, 0
+ movs r2, 0xA
+ bl memcpy
+ mov r0, sp
+ adds r0, 0x3C
+ str r0, [sp, 0xC4]
+ ldr r1, _080BA9FC
+ movs r2, 0xA
+ bl memcpy
+ mov r2, sp
+ adds r2, 0x48
+ str r2, [sp, 0xC8]
+ ldr r1, _080BAA00
+ adds r0, r2, 0
+ movs r2, 0xA
+ bl memcpy
+ add r4, sp, 0x54
+ ldr r1, _080BAA04
+ adds r0, r4, 0
+ movs r2, 0xA
+ bl memcpy
+ add r7, sp, 0x60
+ ldr r1, _080BAA08
+ adds r0, r7, 0
+ movs r2, 0xA
+ bl memcpy
+ add r0, sp, 0x6C
+ mov r10, r0
+ ldr r1, _080BAA0C
+ movs r2, 0xA
+ bl memcpy
+ add r2, sp, 0x78
+ mov r9, r2
+ ldr r1, _080BAA10
+ mov r0, r9
+ movs r2, 0xA
+ bl memcpy
+ add r0, sp, 0x84
+ mov r8, r0
+ ldr r1, _080BAA14
+ movs r2, 0x9
+ bl memcpy
+ add r6, sp, 0x90
+ ldr r1, _080BAA18
+ adds r0, r6, 0
+ movs r2, 0x9
+ bl memcpy
+ add r5, sp, 0x9C
+ ldr r1, _080BAA1C
+ adds r0, r5, 0
+ movs r2, 0x9
+ bl memcpy
+ movs r1, 0x80
+ lsls r1, 19
+ movs r2, 0xC5
+ lsls r2, 6
+ adds r0, r2, 0
+ strh r0, [r1]
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuDrawTextWindow
+ mov r0, sp
+ movs r1, 0x13
+ movs r2, 0x4
+ bl MenuPrint
+ ldr r0, [sp, 0xB4]
+ movs r1, 0x13
+ movs r2, 0x2
+ bl MenuPrint
+ ldr r0, [sp, 0xB8]
+ movs r1, 0x2
+ movs r2, 0x1
+ bl MenuPrint
+ ldr r0, [sp, 0xBC]
+ movs r1, 0x2
+ movs r2, 0x3
+ bl MenuPrint
+ ldr r0, [sp, 0xC0]
+ movs r1, 0x2
+ movs r2, 0x5
+ bl MenuPrint
+ ldr r0, [sp, 0xC4]
+ movs r1, 0x2
+ movs r2, 0x7
+ bl MenuPrint
+ ldr r0, [sp, 0xC8]
+ movs r1, 0x2
+ movs r2, 0x9
+ bl MenuPrint
+ adds r0, r4, 0
+ movs r1, 0x2
+ movs r2, 0xB
+ bl MenuPrint
+ adds r0, r7, 0
+ movs r1, 0x2
+ movs r2, 0xD
+ bl MenuPrint
+ mov r0, r10
+ movs r1, 0x2
+ movs r2, 0xF
+ bl MenuPrint
+ mov r0, r9
+ movs r1, 0x2
+ movs r2, 0x11
+ bl MenuPrint
+ mov r0, r8
+ movs r1, 0x13
+ movs r2, 0x10
+ bl MenuPrint
+ adds r0, r6, 0
+ movs r1, 0x13
+ movs r2, 0xE
+ bl MenuPrint
+ adds r0, r5, 0
+ movs r1, 0x13
+ movs r2, 0xC
+ bl MenuPrint
+ ldr r1, _080BAA20
+ movs r0, 0xF0
+ strh r0, [r1]
+ adds r1, 0x4
+ movs r0, 0xA0
+ strh r0, [r1]
+ ldr r0, _080BAA24
+ movs r1, 0
+ strb r1, [r0]
+ ldr r0, _080BAA28
+ strb r1, [r0]
+ ldr r0, _080BAA2C
+ strb r1, [r0]
+ ldr r0, _080BAA30
+ movs r2, 0
+ str r2, [r0]
+ ldr r0, _080BAA34
+ strb r2, [r0]
+ ldr r1, _080BAA38
+ movs r0, 0x1
+ strb r0, [r1]
+ ldr r0, _080BAA3C
+ str r2, [r0]
+ movs r1, 0x78
+ str r1, [r0, 0x4]
+ str r2, [r0, 0x8]
+ movs r1, 0xF0
+ lsls r1, 6
+ str r1, [r0, 0xC]
+ movs r1, 0xB4
+ str r1, [r0, 0x10]
+ str r2, [r0, 0x18]
+ str r2, [r0, 0x14]
+ str r2, [r0, 0x1C]
+ movs r1, 0x2
+ str r1, [r0, 0x20]
+ bl sub_80BAD5C
+ movs r0, 0
+ movs r1, 0
+ bl sub_80BAE10
+ ldr r1, _080BAA40
+ ldr r2, [sp, 0xAC]
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080BAA44
+ str r1, [r0]
+ add sp, 0xCC
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BA9E8: .4byte gUnknown_083D0312
+_080BA9EC: .4byte gUnknown_083D031C
+_080BA9F0: .4byte gDebugText_Voice
+_080BA9F4: .4byte gDebugText_Volume
+_080BA9F8: .4byte gDebugText_Panpot
+_080BA9FC: .4byte gDebugText_Pitch
+_080BAA00: .4byte gDebugText_Length
+_080BAA04: .4byte gDebugText_Release
+_080BAA08: .4byte gDebugText_Progress
+_080BAA0C: .4byte gDebugText_Chorus
+_080BAA10: .4byte gDebugText_Priority
+_080BAA14: .4byte gUnknown_083D0381
+_080BAA18: .4byte gUnknown_083D038A
+_080BAA1C: .4byte gUnknown_083D0393
+_080BAA20: .4byte REG_WIN0H
+_080BAA24: .4byte gUnknown_020387B3
+_080BAA28: .4byte gUnknown_020387B1
+_080BAA2C: .4byte gUnknown_020387B2
+_080BAA30: .4byte gUnknown_03005D30
+_080BAA34: .4byte gUnknown_020387D8
+_080BAA38: .4byte gUnknown_020387D9
+_080BAA3C: .4byte gUnknown_020387B4
+_080BAA40: .4byte gTasks
+_080BAA44: .4byte sub_80BAA48
+ thumb_func_end sub_80BA800
+
+ thumb_func_start sub_80BAA48
+sub_80BAA48: @ 80BAA48
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r1, _080BAA90
+ ldrh r2, [r1, 0x2E]
+ movs r0, 0x2
+ ands r0, r2
+ cmp r0, 0
+ beq _080BAAA8
+ movs r1, 0x80
+ lsls r1, 19
+ ldr r2, _080BAA94
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x40
+ ldr r2, _080BAA98
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x4
+ ldr r2, _080BAA9C
+ adds r0, r2, 0
+ strh r0, [r1]
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ ldr r1, _080BAAA0
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080BAAA4
+ str r1, [r0]
+ b _080BACC6
+ .align 2, 0
+_080BAA90: .4byte gMain
+_080BAA94: .4byte 0x00007140
+_080BAA98: .4byte 0x000011df
+_080BAA9C: .4byte 0x0000011f
+_080BAAA0: .4byte gTasks
+_080BAAA4: .4byte sub_80BA258
+_080BAAA8:
+ ldrh r1, [r1, 0x30]
+ movs r0, 0x40
+ ands r0, r1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0
+ beq _080BAAD0
+ ldr r1, _080BAACC
+ ldrb r2, [r1]
+ subs r0, r2, 0x1
+ strb r0, [r1]
+ lsls r0, 24
+ cmp r0, 0
+ bge _080BAAEA
+ movs r0, 0x8
+ strb r0, [r1]
+ b _080BAAEA
+ .align 2, 0
+_080BAACC: .4byte gUnknown_020387B3
+_080BAAD0:
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _080BAAF8
+ ldr r1, _080BAAF4
+ ldrb r2, [r1]
+ adds r0, r2, 0x1
+ strb r0, [r1]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0x8
+ ble _080BAAEA
+ strb r3, [r1]
+_080BAAEA:
+ ldrb r1, [r1]
+ adds r0, r2, 0
+ bl sub_80BAE10
+ b _080BACC6
+ .align 2, 0
+_080BAAF4: .4byte gUnknown_020387B3
+_080BAAF8:
+ movs r0, 0x8
+ ands r0, r2
+ cmp r0, 0
+ beq _080BAB14
+ ldr r0, _080BAB10
+ ldrb r1, [r0]
+ movs r2, 0x1
+ eors r1, r2
+ strb r1, [r0]
+ bl sub_80BAD5C
+ b _080BACC6
+ .align 2, 0
+_080BAB10: .4byte gUnknown_020387D8
+_080BAB14:
+ movs r0, 0x4
+ ands r0, r2
+ cmp r0, 0
+ beq _080BAB38
+ ldr r4, _080BAB34
+ ldrb r0, [r4]
+ movs r1, 0x1
+ eors r0, r1
+ strb r0, [r4]
+ bl sub_80BAD5C
+ ldrb r0, [r4]
+ bl SetPokemonCryStereo
+ b _080BACC6
+ .align 2, 0
+_080BAB34: .4byte gUnknown_020387D9
+_080BAB38:
+ movs r0, 0x80
+ lsls r0, 1
+ ands r0, r1
+ cmp r0, 0
+ beq _080BAB46
+ movs r0, 0xA
+ b _080BAB6E
+_080BAB46:
+ movs r0, 0x80
+ lsls r0, 2
+ ands r0, r1
+ cmp r0, 0
+ beq _080BAB56
+ movs r0, 0xA
+ negs r0, r0
+ b _080BAB6E
+_080BAB56:
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _080BAB64
+ movs r0, 0x1
+ negs r0, r0
+ b _080BAB6E
+_080BAB64:
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080BAB78
+ movs r0, 0x1
+_080BAB6E:
+ bl sub_80BACDC
+ bl sub_80BAD5C
+ b _080BACC6
+_080BAB78:
+ movs r0, 0x1
+ ands r0, r2
+ cmp r0, 0
+ bne _080BAB82
+ b _080BACA2
+_080BAB82:
+ ldr r4, _080BABE4
+ ldrb r0, [r4, 0x4]
+ bl SetPokemonCryVolume
+ movs r0, 0x8
+ ldrsb r0, [r4, r0]
+ bl SetPokemonCryPanpot
+ movs r1, 0xC
+ ldrsh r0, [r4, r1]
+ bl SetPokemonCryPitch
+ ldrh r0, [r4, 0x10]
+ bl SetPokemonCryLength
+ ldr r0, [r4, 0x18]
+ bl SetPokemonCryProgress
+ ldrb r0, [r4, 0x14]
+ bl SetPokemonCryRelease
+ movs r0, 0x1C
+ ldrsb r0, [r4, r0]
+ bl SetPokemonCryChorus
+ ldr r0, [r4, 0x20]
+ lsls r0, 24
+ lsrs r0, 24
+ bl SetPokemonCryPriority
+ ldr r4, [r4]
+ adds r0, r4, 0
+ cmp r4, 0
+ bge _080BABC8
+ adds r0, 0x7F
+_080BABC8:
+ asrs r2, r0, 7
+ lsls r0, r2, 7
+ subs r0, r4, r0
+ lsls r0, 24
+ lsrs r1, r0, 24
+ lsls r0, r2, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _080BAC1C
+ cmp r0, 0x1
+ bgt _080BABE8
+ cmp r0, 0
+ beq _080BABF2
+ b _080BACA2
+ .align 2, 0
+_080BABE4: .4byte gUnknown_020387B4
+_080BABE8:
+ cmp r0, 0x2
+ beq _080BAC48
+ cmp r0, 0x3
+ beq _080BAC74
+ b _080BACA2
+_080BABF2:
+ ldr r0, _080BAC04
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080BAC0C
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080BAC08
+ b _080BAC98
+ .align 2, 0
+_080BAC04: .4byte gUnknown_020387D8
+_080BAC08: .4byte voicegroup_84537C0
+_080BAC0C:
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080BAC18
+ b _080BAC98
+ .align 2, 0
+_080BAC18: .4byte voicegroup_8452590
+_080BAC1C:
+ ldr r0, _080BAC30
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080BAC38
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080BAC34
+ b _080BAC98
+ .align 2, 0
+_080BAC30: .4byte gUnknown_020387D8
+_080BAC34: .4byte voicegroup_8453DC0
+_080BAC38:
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080BAC44
+ b _080BAC98
+ .align 2, 0
+_080BAC44: .4byte voicegroup_8452B90
+_080BAC48:
+ ldr r0, _080BAC5C
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080BAC64
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080BAC60
+ b _080BAC98
+ .align 2, 0
+_080BAC5C: .4byte gUnknown_020387D8
+_080BAC60: .4byte voicegroup_84543C0
+_080BAC64:
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080BAC70
+ b _080BAC98
+ .align 2, 0
+_080BAC70: .4byte voicegroup_8453190
+_080BAC74:
+ ldr r0, _080BAC88
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080BAC90
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080BAC8C
+ b _080BAC98
+ .align 2, 0
+_080BAC88: .4byte gUnknown_020387D8
+_080BAC8C: .4byte voicegroup_84549C0
+_080BAC90:
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080BACCC
+_080BAC98:
+ adds r0, r1
+ bl SetPokemonCryTone
+ ldr r1, _080BACD0
+ str r0, [r1]
+_080BACA2:
+ ldr r0, _080BACD0
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _080BACC6
+ ldr r5, _080BACD4
+ bl IsPokemonCryPlaying
+ strb r0, [r5]
+ ldr r4, _080BACD8
+ lsls r0, 24
+ lsrs r0, 24
+ ldrb r2, [r4]
+ cmp r0, r2
+ beq _080BACC2
+ bl sub_80BAD5C
+_080BACC2:
+ ldrb r0, [r5]
+ strb r0, [r4]
+_080BACC6:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BACCC: .4byte voicegroup_8453790
+_080BACD0: .4byte gUnknown_03005D30
+_080BACD4: .4byte gUnknown_020387B1
+_080BACD8: .4byte gUnknown_020387B2
+ thumb_func_end sub_80BAA48
+
+ thumb_func_start sub_80BACDC
+sub_80BACDC: @ 80BACDC
+ push {r4-r6,lr}
+ sub sp, 0x40
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r1, _080BAD50
+ mov r0, sp
+ movs r2, 0x40
+ bl memcpy
+ ldr r6, _080BAD54
+ ldr r5, _080BAD58
+ movs r1, 0
+ ldrsb r1, [r5, r1]
+ lsls r1, 2
+ adds r1, r6
+ lsls r4, 24
+ asrs r4, 24
+ ldr r0, [r1]
+ adds r0, r4
+ str r0, [r1]
+ movs r2, 0
+ ldrsb r2, [r5, r2]
+ lsls r0, r2, 2
+ adds r3, r0, r6
+ lsls r0, r2, 1
+ adds r0, 0x1
+ lsls r0, 2
+ add r0, sp
+ ldr r1, [r3]
+ ldr r0, [r0]
+ cmp r1, r0
+ ble _080BAD26
+ lsls r0, r2, 3
+ add r0, sp
+ ldr r0, [r0]
+ str r0, [r3]
+_080BAD26:
+ movs r2, 0
+ ldrsb r2, [r5, r2]
+ lsls r0, r2, 2
+ adds r3, r0, r6
+ lsls r0, r2, 3
+ add r0, sp
+ ldr r1, [r3]
+ ldr r0, [r0]
+ cmp r1, r0
+ bge _080BAD46
+ lsls r0, r2, 1
+ adds r0, 0x1
+ lsls r0, 2
+ add r0, sp
+ ldr r0, [r0]
+ str r0, [r3]
+_080BAD46:
+ add sp, 0x40
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BAD50: .4byte gUnknown_083D039C
+_080BAD54: .4byte gUnknown_020387B4
+_080BAD58: .4byte gUnknown_020387B3
+ thumb_func_end sub_80BACDC
+
+ thumb_func_start sub_80BAD5C
+sub_80BAD5C: @ 80BAD5C
+ push {r4,lr}
+ ldr r4, _080BAE00
+ ldr r0, [r4]
+ adds r0, 0x1
+ movs r1, 0xB
+ movs r2, 0x1
+ movs r3, 0x5
+ bl sub_80BAE78
+ ldr r0, [r4, 0x4]
+ movs r1, 0xB
+ movs r2, 0x3
+ movs r3, 0x5
+ bl sub_80BAE78
+ ldr r0, [r4, 0x8]
+ movs r1, 0xB
+ movs r2, 0x5
+ movs r3, 0x5
+ bl sub_80BAE78
+ ldr r0, [r4, 0xC]
+ movs r1, 0xB
+ movs r2, 0x7
+ movs r3, 0x5
+ bl sub_80BAE78
+ ldr r0, [r4, 0x10]
+ movs r1, 0xB
+ movs r2, 0x9
+ movs r3, 0x5
+ bl sub_80BAE78
+ ldr r0, [r4, 0x14]
+ movs r1, 0xB
+ movs r2, 0xB
+ movs r3, 0x5
+ bl sub_80BAE78
+ ldr r0, [r4, 0x18]
+ movs r1, 0xB
+ movs r2, 0xD
+ movs r3, 0x5
+ bl sub_80BAE78
+ ldr r0, [r4, 0x1C]
+ movs r1, 0xB
+ movs r2, 0xF
+ movs r3, 0x5
+ bl sub_80BAE78
+ ldr r0, [r4, 0x20]
+ movs r1, 0xB
+ movs r2, 0x11
+ movs r3, 0x5
+ bl sub_80BAE78
+ ldr r0, _080BAE04
+ ldrb r0, [r0]
+ movs r1, 0x1B
+ movs r2, 0x10
+ movs r3, 0x1
+ bl sub_80BAE78
+ ldr r0, _080BAE08
+ ldrb r0, [r0]
+ movs r1, 0x1B
+ movs r2, 0xE
+ movs r3, 0x1
+ bl sub_80BAE78
+ ldr r0, _080BAE0C
+ ldrb r0, [r0]
+ movs r1, 0x1B
+ movs r2, 0xC
+ movs r3, 0x1
+ bl sub_80BAE78
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BAE00: .4byte gUnknown_020387B4
+_080BAE04: .4byte gUnknown_020387B1
+_080BAE08: .4byte gUnknown_020387D8
+_080BAE0C: .4byte gUnknown_020387D9
+ thumb_func_end sub_80BAD5C
+
+ thumb_func_start sub_80BAE10
+sub_80BAE10: @ 80BAE10
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ sub sp, 0x8
+ adds r4, r0, 0
+ adds r5, r1, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r5, 24
+ lsrs r5, 24
+ ldr r1, _080BAE6C
+ mov r0, sp
+ movs r2, 0x2
+ bl memcpy
+ add r0, sp, 0x4
+ mov r8, r0
+ ldr r1, _080BAE70
+ movs r2, 0x2
+ bl memcpy
+ ldr r6, _080BAE74
+ lsls r4, 1
+ adds r0, r4, r6
+ ldrb r1, [r0]
+ adds r4, 0x1
+ adds r4, r6
+ ldrb r2, [r4]
+ mov r0, r8
+ bl MenuPrint
+ lsls r5, 1
+ adds r0, r5, r6
+ ldrb r1, [r0]
+ adds r5, 0x1
+ adds r5, r6
+ ldrb r2, [r5]
+ mov r0, sp
+ bl MenuPrint
+ add sp, 0x8
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BAE6C: .4byte gUnknown_083D03DC
+_080BAE70: .4byte gUnknown_083D03DE
+_080BAE74: .4byte gUnknown_083D0300
+ thumb_func_end sub_80BAE10
+
+ thumb_func_start sub_80BAE78
+sub_80BAE78: @ 80BAE78
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x2C
+ mov r8, r0
+ lsls r1, 16
+ lsrs r6, r1, 16
+ lsls r2, 16
+ lsrs r2, 16
+ lsls r3, 24
+ lsrs r7, r3, 24
+ mov r1, sp
+ ldr r0, _080BAF80
+ ldm r0!, {r3-r5}
+ stm r1!, {r3-r5}
+ ldm r0!, {r3-r5}
+ stm r1!, {r3-r5}
+ movs r5, 0
+ add r0, sp, 0x18
+ mov r9, r0
+ cmp r5, r7
+ bgt _080BAEC0
+ mov r4, r9
+ movs r3, 0
+_080BAEAC:
+ lsls r0, r5, 24
+ asrs r0, 24
+ adds r1, r4, r0
+ strb r3, [r1]
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ asrs r0, 24
+ cmp r0, r7
+ ble _080BAEAC
+_080BAEC0:
+ adds r0, r7, 0x1
+ add r0, r9
+ movs r1, 0xFF
+ strb r1, [r0]
+ movs r1, 0
+ mov r3, r8
+ cmp r3, 0
+ bge _080BAED6
+ negs r3, r3
+ mov r8, r3
+ movs r1, 0x1
+_080BAED6:
+ movs r4, 0
+ mov r10, r4
+ cmp r7, 0x1
+ bne _080BAEE2
+ movs r5, 0x1
+ mov r10, r5
+_080BAEE2:
+ subs r0, r7, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r0, r5, 24
+ lsls r6, 24
+ str r6, [sp, 0x24]
+ lsls r2, 24
+ str r2, [sp, 0x28]
+ cmp r0, 0
+ blt _080BAF62
+ str r1, [sp, 0x20]
+_080BAEF8:
+ asrs r6, r0, 24
+ lsls r0, r6, 2
+ add r0, sp
+ ldr r1, [r0]
+ mov r0, r8
+ bl __divsi3
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r0, 0
+ bne _080BAF1A
+ mov r0, r10
+ cmp r0, 0
+ bne _080BAF1A
+ lsls r4, r5, 24
+ cmp r6, 0
+ bne _080BAF46
+_080BAF1A:
+ lsls r4, r5, 24
+ ldr r3, [sp, 0x20]
+ cmp r3, 0
+ beq _080BAF34
+ mov r5, r10
+ cmp r5, 0
+ bne _080BAF34
+ asrs r0, r4, 24
+ subs r0, r7, r0
+ subs r0, 0x1
+ add r0, r9
+ movs r1, 0xAE
+ strb r1, [r0]
+_080BAF34:
+ asrs r1, r4, 24
+ subs r1, r7, r1
+ add r1, r9
+ lsls r0, r2, 24
+ asrs r0, 24
+ subs r0, 0x5F
+ strb r0, [r1]
+ movs r0, 0x1
+ mov r10, r0
+_080BAF46:
+ asrs r4, 24
+ lsls r0, r4, 2
+ add r0, sp
+ ldr r1, [r0]
+ mov r0, r8
+ bl __modsi3
+ mov r8, r0
+ subs r4, 0x1
+ lsls r4, 24
+ lsrs r5, r4, 24
+ lsls r0, r5, 24
+ cmp r0, 0
+ bge _080BAEF8
+_080BAF62:
+ ldr r3, [sp, 0x24]
+ lsrs r1, r3, 24
+ ldr r4, [sp, 0x28]
+ lsrs r2, r4, 24
+ mov r0, r9
+ bl MenuPrint
+ add sp, 0x2C
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BAF80: .4byte gUnknown_083D03E0
+ thumb_func_end sub_80BAE78
+
+ thumb_func_start sub_80BAF84
+sub_80BAF84: @ 80BAF84
+ push {r4-r6,lr}
+ sub sp, 0x14
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r1, _080BB01C
+ mov r0, sp
+ movs r2, 0x3
+ bl memcpy
+ add r6, sp, 0x4
+ ldr r1, _080BB020
+ adds r0, r6, 0
+ movs r2, 0x4
+ bl memcpy
+ add r5, sp, 0x8
+ ldr r1, _080BB024
+ adds r0, r5, 0
+ movs r2, 0x9
+ bl memcpy
+ movs r1, 0x80
+ lsls r1, 19
+ movs r2, 0xC5
+ lsls r2, 6
+ adds r0, r2, 0
+ strh r0, [r1]
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuDrawTextWindow
+ mov r0, sp
+ movs r1, 0x3
+ movs r2, 0x2
+ bl MenuPrint
+ adds r0, r6, 0
+ movs r1, 0x3
+ movs r2, 0x4
+ bl MenuPrint
+ adds r0, r5, 0
+ movs r1, 0x3
+ movs r2, 0x8
+ bl MenuPrint
+ ldr r1, _080BB028
+ movs r0, 0xF0
+ strh r0, [r1]
+ adds r1, 0x4
+ movs r0, 0xA0
+ strh r0, [r1]
+ ldr r1, _080BB02C
+ movs r0, 0x1
+ str r0, [r1]
+ movs r0, 0
+ str r0, [r1, 0x8]
+ str r0, [r1, 0x1C]
+ str r0, [r1, 0x18]
+ str r0, [r1, 0x14]
+ bl sub_80BB1D4
+ ldr r1, _080BB030
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080BB034
+ str r1, [r0]
+ add sp, 0x14
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BB01C: .4byte gOtherText_SE
+_080BB020: .4byte gOtherText_Pan
+_080BB024: .4byte gUnknown_083D0381
+_080BB028: .4byte REG_WIN0H
+_080BB02C: .4byte gUnknown_020387B4
+_080BB030: .4byte gTasks
+_080BB034: .4byte sub_80BB038
+ thumb_func_end sub_80BAF84
+
+ thumb_func_start sub_80BB038
+sub_80BB038: @ 80BB038
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ bl sub_80BB1D4
+ ldr r2, _080BB058
+ ldr r0, [r2, 0x18]
+ cmp r0, 0
+ beq _080BB0A2
+ ldr r0, [r2, 0x14]
+ cmp r0, 0
+ beq _080BB05C
+ subs r0, 0x1
+ str r0, [r2, 0x14]
+ b _080BB0A2
+ .align 2, 0
+_080BB058: .4byte gUnknown_020387B4
+_080BB05C:
+ ldr r0, _080BB088
+ ldr r1, [r2, 0x8]
+ adds r1, r0
+ ldrb r1, [r1]
+ lsls r1, 24
+ asrs r1, 24
+ movs r0, 0x80
+ negs r0, r0
+ cmp r1, r0
+ beq _080BB08C
+ cmp r1, 0x7F
+ bne _080BB0A2
+ ldr r0, [r2, 0x1C]
+ adds r0, 0x2
+ str r0, [r2, 0x1C]
+ cmp r0, 0x3E
+ bgt _080BB0A2
+ lsls r0, 24
+ asrs r0, 24
+ bl SE12PanpotControl
+ b _080BB0A2
+ .align 2, 0
+_080BB088: .4byte gUnknown_083D03F8
+_080BB08C:
+ ldr r0, [r2, 0x1C]
+ subs r1, r0, 0x2
+ str r1, [r2, 0x1C]
+ movs r0, 0x40
+ negs r0, r0
+ cmp r1, r0
+ ble _080BB0A2
+ lsls r0, r1, 24
+ asrs r0, 24
+ bl SE12PanpotControl
+_080BB0A2:
+ ldr r1, _080BB0EC
+ ldrh r3, [r1, 0x2E]
+ movs r0, 0x2
+ ands r0, r3
+ lsls r0, 16
+ lsrs r4, r0, 16
+ adds r7, r1, 0
+ cmp r4, 0
+ beq _080BB104
+ movs r1, 0x80
+ lsls r1, 19
+ ldr r2, _080BB0F0
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x40
+ ldr r2, _080BB0F4
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x4
+ ldr r2, _080BB0F8
+ adds r0, r2, 0
+ strh r0, [r1]
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ ldr r1, _080BB0FC
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080BB100
+ str r1, [r0]
+ b _080BB1C8
+ .align 2, 0
+_080BB0EC: .4byte gMain
+_080BB0F0: .4byte 0x00007140
+_080BB0F4: .4byte 0x000011df
+_080BB0F8: .4byte 0x0000011f
+_080BB0FC: .4byte gTasks
+_080BB100: .4byte sub_80BA258
+_080BB104:
+ movs r6, 0x1
+ adds r2, r6, 0
+ ands r2, r3
+ cmp r2, 0
+ beq _080BB15E
+ ldr r0, _080BB138
+ ldr r5, _080BB13C
+ ldr r1, [r5, 0x8]
+ adds r1, r0
+ ldrb r1, [r1]
+ lsls r1, 24
+ asrs r1, 24
+ movs r0, 0x80
+ negs r0, r0
+ cmp r1, r0
+ beq _080BB140
+ cmp r1, 0x7F
+ bne _080BB154
+ ldrh r0, [r5]
+ movs r4, 0x40
+ negs r4, r4
+ adds r1, r4, 0
+ bl PlaySE12WithPanning
+ str r4, [r5, 0x1C]
+ b _080BB14C
+ .align 2, 0
+_080BB138: .4byte gUnknown_083D03F8
+_080BB13C: .4byte gUnknown_020387B4
+_080BB140:
+ ldrh r0, [r5]
+ movs r1, 0x3F
+ bl PlaySE12WithPanning
+ movs r0, 0x3F
+ str r0, [r5, 0x1C]
+_080BB14C:
+ str r6, [r5, 0x18]
+ movs r0, 0x1E
+ str r0, [r5, 0x14]
+ b _080BB1C8
+_080BB154:
+ ldrh r0, [r5]
+ bl PlaySE12WithPanning
+ str r4, [r5, 0x18]
+ b _080BB1C8
+_080BB15E:
+ movs r0, 0x80
+ lsls r0, 2
+ ands r0, r3
+ cmp r0, 0
+ beq _080BB176
+ ldr r1, _080BB1AC
+ ldr r0, [r1, 0x8]
+ adds r0, 0x1
+ str r0, [r1, 0x8]
+ cmp r0, 0x4
+ ble _080BB176
+ str r2, [r1, 0x8]
+_080BB176:
+ ldrh r1, [r7, 0x2E]
+ movs r0, 0x80
+ lsls r0, 1
+ ands r0, r1
+ cmp r0, 0
+ beq _080BB192
+ ldr r1, _080BB1AC
+ ldr r0, [r1, 0x8]
+ subs r0, 0x1
+ str r0, [r1, 0x8]
+ cmp r0, 0
+ bge _080BB192
+ movs r0, 0x4
+ str r0, [r1, 0x8]
+_080BB192:
+ ldrh r1, [r7, 0x30]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080BB1B0
+ ldr r1, _080BB1AC
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ cmp r0, 0xF7
+ ble _080BB1C8
+ movs r0, 0
+ b _080BB1C6
+ .align 2, 0
+_080BB1AC: .4byte gUnknown_020387B4
+_080BB1B0:
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _080BB1C8
+ ldr r1, _080BB1D0
+ ldr r0, [r1]
+ subs r0, 0x1
+ str r0, [r1]
+ cmp r0, 0
+ bge _080BB1C8
+ movs r0, 0xF7
+_080BB1C6:
+ str r0, [r1]
+_080BB1C8:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BB1D0: .4byte gUnknown_020387B4
+ thumb_func_end sub_80BB038
+
+ thumb_func_start sub_80BB1D4
+sub_80BB1D4: @ 80BB1D4
+ push {r4,r5,lr}
+ sub sp, 0x10
+ ldr r1, _080BB218
+ mov r0, sp
+ movs r2, 0x5
+ bl memcpy
+ add r5, sp, 0x8
+ ldr r1, _080BB21C
+ adds r0, r5, 0
+ movs r2, 0x5
+ bl memcpy
+ ldr r4, _080BB220
+ ldr r0, [r4]
+ movs r1, 0x7
+ movs r2, 0x2
+ movs r3, 0x3
+ bl sub_80BAE78
+ ldr r1, _080BB224
+ ldr r0, [r4, 0x8]
+ adds r0, r1
+ movs r1, 0
+ ldrsb r1, [r0, r1]
+ movs r0, 0x80
+ negs r0, r0
+ cmp r1, r0
+ beq _080BB228
+ cmp r1, 0x7F
+ bne _080BB234
+ mov r0, sp
+ b _080BB22A
+ .align 2, 0
+_080BB218: .4byte gOtherText_LR
+_080BB21C: .4byte gOtherText_RL
+_080BB220: .4byte gUnknown_020387B4
+_080BB224: .4byte gUnknown_083D03F8
+_080BB228:
+ adds r0, r5, 0
+_080BB22A:
+ movs r1, 0x7
+ movs r2, 0x4
+ bl MenuPrint
+ b _080BB240
+_080BB234:
+ adds r0, r1, 0
+ movs r1, 0x7
+ movs r2, 0x4
+ movs r3, 0x3
+ bl sub_80BAE78
+_080BB240:
+ bl IsSEPlaying
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0xC
+ movs r2, 0x8
+ movs r3, 0x1
+ bl sub_80BAE78
+ add sp, 0x10
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80BB1D4
+
+ thumb_func_start sub_80BB25C
+sub_80BB25C: @ 80BB25C
+ push {r4-r6,lr}
+ sub sp, 0x14
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r0, _080BB374
+ bl SetUpWindowConfig
+ ldr r0, _080BB378
+ bl InitMenuWindow
+ ldr r1, _080BB37C
+ movs r0, 0x1
+ strh r0, [r1]
+ bl ResetSpriteData
+ bl FreeAllSpritePalettes
+ ldr r1, _080BB380
+ ldr r0, [sp, 0x4]
+ ands r0, r1
+ movs r1, 0x80
+ lsls r1, 6
+ orrs r0, r1
+ ldr r1, _080BB384
+ ands r0, r1
+ movs r1, 0xE8
+ lsls r1, 13
+ orrs r0, r1
+ ldr r1, _080BB388
+ ands r0, r1
+ movs r1, 0xC0
+ lsls r1, 20
+ orrs r0, r1
+ str r0, [sp, 0x4]
+ ldr r1, _080BB38C
+ ldr r0, [sp, 0x8]
+ ands r0, r1
+ movs r1, 0xF0
+ lsls r1, 5
+ orrs r0, r1
+ ldr r1, _080BB390
+ ands r0, r1
+ movs r1, 0x4
+ orrs r0, r1
+ str r0, [sp, 0x8]
+ movs r1, 0
+ ldr r0, _080BB394
+ strb r1, [r0]
+ add r4, sp, 0xC
+_080BB2BE:
+ add r0, sp, 0x4
+ movs r1, 0x3
+ bl sub_8119E3C
+ lsls r0, 24
+ cmp r0, 0
+ beq _080BB2BE
+ ldr r1, _080BB380
+ ldr r0, [sp, 0xC]
+ ands r0, r1
+ ldr r1, _080BB384
+ ands r0, r1
+ movs r1, 0xF0
+ lsls r1, 12
+ orrs r0, r1
+ ldr r1, _080BB388
+ ands r0, r1
+ movs r1, 0xD0
+ lsls r1, 20
+ orrs r0, r1
+ str r0, [sp, 0xC]
+ ldr r1, _080BB390
+ ldr r0, [r4, 0x4]
+ ands r0, r1
+ movs r1, 0xC
+ orrs r0, r1
+ ldr r1, _080BB38C
+ ands r0, r1
+ movs r1, 0xC0
+ lsls r1, 4
+ orrs r0, r1
+ str r0, [r4, 0x4]
+ movs r1, 0
+ ldr r0, _080BB394
+ strb r1, [r0]
+ lsls r5, r6, 2
+_080BB306:
+ adds r0, r4, 0
+ movs r1, 0x2
+ bl sub_811A3CC
+ lsls r0, 24
+ cmp r0, 0
+ beq _080BB306
+ movs r0, 0
+ movs r1, 0x10
+ movs r2, 0x5
+ movs r3, 0x13
+ bl MenuDrawTextWindow
+ bl sub_80BB494
+ movs r0, 0x1
+ negs r0, r0
+ movs r4, 0
+ str r4, [sp]
+ movs r1, 0
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ ldr r0, _080BB398
+ strh r4, [r0]
+ adds r0, 0x2
+ strh r4, [r0]
+ ldr r1, _080BB39C
+ ldr r2, _080BB3A0
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r2, _080BB3A4
+ adds r0, r2, 0
+ strh r0, [r1]
+ subs r1, 0xE
+ adds r2, 0x3D
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r0, _080BB3A8
+ movs r1, 0x2
+ bl m4aMPlayFadeOutTemporarily
+ ldr r1, _080BB3AC
+ adds r0, r5, r6
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080BB3B0
+ str r1, [r0]
+ add sp, 0x14
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BB374: .4byte gWindowConfig_81E6C3C
+_080BB378: .4byte gWindowConfig_81E6CE4
+_080BB37C: .4byte gUnknown_03005D34
+_080BB380: .4byte 0xffff0000
+_080BB384: .4byte 0xff00ffff
+_080BB388: .4byte 0x00ffffff
+_080BB38C: .4byte 0xffff00ff
+_080BB390: .4byte 0xffffff00
+_080BB394: .4byte gUnknown_03005E98
+_080BB398: .4byte REG_BG2HOFS
+_080BB39C: .4byte REG_BG2CNT
+_080BB3A0: .4byte 0x00000f01
+_080BB3A4: .4byte 0x00001d03
+_080BB3A8: .4byte gMPlay_BGM
+_080BB3AC: .4byte gTasks
+_080BB3B0: .4byte sub_80BB3B4
+ thumb_func_end sub_80BB25C
+
+ thumb_func_start sub_80BB3B4
+sub_80BB3B4: @ 80BB3B4
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r0, 0x3
+ bl sub_8119F88
+ ldr r4, _080BB478
+ ldrh r1, [r4, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080BB3D4
+ ldr r0, _080BB47C
+ ldrh r0, [r0]
+ bl sub_811A050
+_080BB3D4:
+ ldrh r1, [r4, 0x2E]
+ movs r0, 0x80
+ lsls r0, 1
+ ands r0, r1
+ cmp r0, 0
+ beq _080BB3E4
+ bl StopCryAndClearCrySongs
+_080BB3E4:
+ ldrh r1, [r4, 0x30]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _080BB408
+ ldr r1, _080BB47C
+ ldrh r0, [r1]
+ subs r0, 0x1
+ strh r0, [r1]
+ lsls r0, 16
+ cmp r0, 0
+ bne _080BB404
+ movs r2, 0xC0
+ lsls r2, 1
+ adds r0, r2, 0
+ strh r0, [r1]
+_080BB404:
+ bl sub_80BB494
+_080BB408:
+ ldr r0, _080BB478
+ ldrh r1, [r0, 0x30]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _080BB42E
+ ldr r2, _080BB47C
+ ldrh r0, [r2]
+ adds r0, 0x1
+ strh r0, [r2]
+ lsls r0, 16
+ movs r1, 0xC0
+ lsls r1, 17
+ cmp r0, r1
+ bls _080BB42A
+ movs r0, 0x1
+ strh r0, [r2]
+_080BB42A:
+ bl sub_80BB494
+_080BB42E:
+ ldr r0, _080BB478
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080BB472
+ movs r1, 0x80
+ lsls r1, 19
+ ldr r2, _080BB480
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x40
+ ldr r2, _080BB484
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x4
+ ldr r2, _080BB488
+ adds r0, r2, 0
+ strh r0, [r1]
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ ldr r1, _080BB48C
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080BB490
+ str r1, [r0]
+ bl sub_811A4F8
+_080BB472:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BB478: .4byte gMain
+_080BB47C: .4byte gUnknown_03005D34
+_080BB480: .4byte 0x00007140
+_080BB484: .4byte 0x000011df
+_080BB488: .4byte 0x0000011f
+_080BB48C: .4byte gTasks
+_080BB490: .4byte sub_80BA258
+ thumb_func_end sub_80BB3B4
+
+ thumb_func_start sub_80BB494
+sub_80BB494: @ 80BB494
+ push {lr}
+ ldr r0, _080BB4A8
+ ldrh r0, [r0]
+ movs r1, 0x1
+ movs r2, 0x11
+ movs r3, 0x3
+ bl sub_80BAE78
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BB4A8: .4byte gUnknown_03005D34
+ thumb_func_end sub_80BB494
+
+ thumb_func_start sub_80BB4AC
+sub_80BB4AC: @ 80BB4AC
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ adds r3, r0, 0
+ movs r0, 0
+ strb r0, [r3]
+ movs r2, 0
+ adds r4, r3, 0x2
+ movs r5, 0xFF
+_080BB4C4:
+ adds r0, r4, r2
+ ldrb r1, [r0]
+ orrs r1, r5
+ strb r1, [r0]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0x6
+ bls _080BB4C4
+ movs r2, 0
+ adds r5, r3, 0
+ adds r5, 0x12
+ adds r6, r3, 0
+ adds r6, 0x22
+ adds r7, r3, 0
+ adds r7, 0x4C
+ adds r0, r3, 0
+ adds r0, 0x34
+ str r0, [sp]
+ adds r1, r3, 0
+ adds r1, 0x9A
+ str r1, [sp, 0x4]
+ movs r0, 0x7C
+ adds r0, r3
+ mov r10, r0
+ movs r1, 0x88
+ adds r1, r3
+ mov r9, r1
+ movs r0, 0x94
+ adds r0, r3
+ mov r8, r0
+ adds r1, r3, 0
+ adds r1, 0x9
+ movs r4, 0
+_080BB508:
+ adds r0, r1, r2
+ strb r4, [r0]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0x3
+ bls _080BB508
+ movs r0, 0
+ movs r1, 0
+ strh r1, [r3, 0xE]
+ strb r0, [r3, 0x10]
+ strb r0, [r3, 0x11]
+ movs r0, 0
+ strb r0, [r3, 0x1]
+ movs r2, 0
+ adds r4, r5, 0
+ adds r3, r6, 0
+_080BB52A:
+ adds r0, r4, r2
+ strb r1, [r0]
+ adds r0, r3, r2
+ strb r1, [r0]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0xF
+ bls _080BB52A
+ movs r2, 0
+ mov r12, r7
+ movs r5, 0
+_080BB542:
+ movs r1, 0
+ adds r7, r2, 0x1
+ lsls r4, r2, 2
+ lsls r6, r2, 1
+ adds r3, r4, 0
+_080BB54C:
+ adds r0, r3, r1
+ lsls r0, 1
+ add r0, r12
+ strh r5, [r0]
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0x3
+ bls _080BB54C
+ ldr r1, [sp]
+ adds r0, r1, r4
+ str r5, [r0]
+ ldr r1, [sp, 0x4]
+ adds r0, r1, r2
+ strb r5, [r0]
+ mov r1, r10
+ adds r0, r1, r6
+ strh r5, [r0]
+ mov r1, r9
+ adds r0, r1, r6
+ strh r5, [r0]
+ mov r1, r8
+ adds r0, r1, r2
+ strb r5, [r0]
+ lsls r0, r7, 16
+ lsrs r2, r0, 16
+ cmp r2, 0x5
+ bls _080BB542
+ add sp, 0x8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80BB4AC
+
+ thumb_func_start sub_80BB594
+sub_80BB594: @ 80BB594
+ push {lr}
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 5
+ ldr r1, _080BB5B0
+ adds r0, r1
+ bl sub_80BB4AC
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BB5B0: .4byte gSaveBlock1 + 0x1A08
+ thumb_func_end sub_80BB594
+
+ thumb_func_start sub_80BB5B4
+sub_80BB5B4: @ 80BB5B4
+ push {r4,lr}
+ movs r4, 0
+_080BB5B8:
+ lsls r0, r4, 24
+ lsrs r0, 24
+ bl sub_80BB594
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x13
+ bls _080BB5B8
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80BB5B4
+
+ thumb_func_start sub_80BB5D0
+sub_80BB5D0: @ 80BB5D0
+ ldr r0, _080BB5DC
+ ldr r1, _080BB5E0
+ ldrh r1, [r1]
+ strb r1, [r0]
+ bx lr
+ .align 2, 0
+_080BB5DC: .4byte gUnknown_020387DC
+_080BB5E0: .4byte gUnknown_0202E8CC
+ thumb_func_end sub_80BB5D0
+
+ thumb_func_start sub_80BB5E4
+sub_80BB5E4: @ 80BB5E4
+ push {r4,lr}
+ ldr r0, _080BB5F4
+ movs r1, 0
+ strh r1, [r0]
+ movs r3, 0
+ adds r4, r0, 0
+ b _080BB5FE
+ .align 2, 0
+_080BB5F4: .4byte gScriptResult
+_080BB5F8:
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+_080BB5FE:
+ cmp r3, 0x13
+ bhi _080BB626
+ ldr r2, _080BB62C
+ ldr r1, _080BB630
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r0, 5
+ adds r0, r1
+ ldr r1, _080BB634
+ adds r0, r1
+ ldrb r1, [r2]
+ ldrb r0, [r0]
+ cmp r1, r0
+ bne _080BB5F8
+ movs r0, 0x1
+ strh r0, [r4]
+ ldr r0, _080BB638
+ adds r1, r3, 0
+ bl VarSet
+_080BB626:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BB62C: .4byte gUnknown_020387DC
+_080BB630: .4byte gSaveBlock1
+_080BB634: .4byte 0x00001a08
+_080BB638: .4byte 0x00004054
+ thumb_func_end sub_80BB5E4
+
+ thumb_func_start sub_80BB63C
+sub_80BB63C: @ 80BB63C
+ push {lr}
+ ldr r0, _080BB654
+ ldr r1, _080BB658
+ adds r0, r1
+ ldrb r1, [r0]
+ cmp r1, 0
+ beq _080BB660
+ ldr r1, _080BB65C
+ movs r0, 0x1
+ strh r0, [r1]
+ b _080BB664
+ .align 2, 0
+_080BB654: .4byte gSaveBlock1
+_080BB658: .4byte 0x00001a08
+_080BB65C: .4byte gScriptResult
+_080BB660:
+ ldr r0, _080BB668
+ strh r1, [r0]
+_080BB664:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BB668: .4byte gScriptResult
+ thumb_func_end sub_80BB63C
+
+ thumb_func_start sub_80BB66C
+sub_80BB66C: @ 80BB66C
+ push {r4,lr}
+ sub sp, 0x4
+ mov r4, sp
+ adds r4, 0x2
+ mov r0, sp
+ adds r1, r4, 0
+ bl GetXYCoordsOneStepInFrontOfPlayer
+ mov r0, sp
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ movs r2, 0
+ ldrsh r1, [r4, r2]
+ bl MapGridGetMetatileBehaviorAt
+ adds r1, r0, 0
+ ldr r2, _080BB6A4
+ adds r0, r2, 0
+ ands r1, r0
+ adds r0, r1, 0
+ subs r0, 0x90
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x1
+ bhi _080BB6A8
+ movs r0, 0x1
+ b _080BB702
+ .align 2, 0
+_080BB6A4: .4byte 0x00000fff
+_080BB6A8:
+ adds r0, r1, 0
+ subs r0, 0x92
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x1
+ bhi _080BB6B8
+ movs r0, 0x2
+ b _080BB702
+_080BB6B8:
+ adds r0, r1, 0
+ subs r0, 0x9A
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x1
+ bhi _080BB6C8
+ movs r0, 0x3
+ b _080BB702
+_080BB6C8:
+ adds r0, r1, 0
+ subs r0, 0x94
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x1
+ bhi _080BB6D8
+ movs r0, 0x4
+ b _080BB702
+_080BB6D8:
+ adds r0, r1, 0
+ subs r0, 0x96
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x1
+ bls _080BB6EC
+ cmp r1, 0x9C
+ beq _080BB6EC
+ cmp r1, 0x9D
+ bne _080BB6F0
+_080BB6EC:
+ movs r0, 0x5
+ b _080BB702
+_080BB6F0:
+ adds r0, r1, 0
+ subs r0, 0x98
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x1
+ bls _080BB700
+ movs r0, 0
+ b _080BB702
+_080BB700:
+ movs r0, 0x6
+_080BB702:
+ add sp, 0x4
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80BB66C
+
+ thumb_func_start sub_80BB70C
+sub_80BB70C: @ 80BB70C
+ push {r4,lr}
+ ldr r4, _080BB720
+ bl sub_80BB66C
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BB720: .4byte gUnknown_0202E8D2
+ thumb_func_end sub_80BB70C
+
+ thumb_func_start unref_sub_80BB724
+unref_sub_80BB724: @ 80BB724
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ lsls r1, 24
+ movs r2, 0
+ ldr r6, _080BB748
+ lsrs r3, r1, 24
+ ldr r5, _080BB74C
+_080BB732:
+ lsls r0, r2, 1
+ adds r0, r4
+ ldrh r1, [r0]
+ adds r0, r6, 0
+ ands r0, r1
+ cmp r0, r3
+ bne _080BB750
+ lsls r0, r2, 16
+ asrs r0, 16
+ b _080BB75E
+ .align 2, 0
+_080BB748: .4byte 0x00000fff
+_080BB74C: .4byte 0x000001ff
+_080BB750:
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, r5
+ bls _080BB732
+ movs r0, 0x1
+ negs r0, r0
+_080BB75E:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end unref_sub_80BB724
+
+ thumb_func_start sub_80BB764
+sub_80BB764: @ 80BB764
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ mov r9, r0
+ mov r10, r1
+ lsls r2, 16
+ lsrs r2, 16
+ mov r8, r2
+ movs r0, 0
+ mov r12, r0
+ ldr r1, _080BB7C8
+ ldr r0, [r1]
+ ldr r3, [r0, 0x4]
+ cmp r12, r3
+ bge _080BB7EE
+ ldr r0, [r0]
+ str r0, [sp, 0x4]
+ str r3, [sp]
+_080BB78E:
+ movs r2, 0
+ mov r1, r12
+ lsls r7, r1, 16
+ ldr r0, [sp, 0x4]
+ cmp r2, r0
+ bge _080BB7DC
+ ldr r0, _080BB7C8
+ ldr r1, [r0]
+ asrs r0, r7, 16
+ ldr r4, [r1]
+ adds r6, r0, 0
+ muls r6, r4
+ ldr r5, [r1, 0xC]
+_080BB7A8:
+ lsls r0, r2, 16
+ asrs r3, r0, 16
+ adds r0, r6, r3
+ lsls r0, 1
+ adds r0, r5
+ ldrh r1, [r0]
+ ldr r0, _080BB7CC
+ ands r0, r1
+ cmp r0, r8
+ bne _080BB7D0
+ mov r1, r9
+ strh r2, [r1]
+ mov r1, r12
+ mov r0, r10
+ strh r1, [r0]
+ b _080BB7EE
+ .align 2, 0
+_080BB7C8: .4byte gMapHeader
+_080BB7CC: .4byte 0x000003ff
+_080BB7D0:
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ asrs r0, 16
+ cmp r0, r4
+ blt _080BB7A8
+_080BB7DC:
+ movs r1, 0x80
+ lsls r1, 9
+ adds r0, r7, r1
+ lsrs r1, r0, 16
+ mov r12, r1
+ asrs r0, 16
+ ldr r1, [sp]
+ cmp r0, r1
+ blt _080BB78E
+_080BB7EE:
+ add sp, 0x8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80BB764
+
+ thumb_func_start sub_80BB800
+sub_80BB800: @ 80BB800
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ mov r4, sp
+ adds r4, 0x2
+ mov r0, sp
+ adds r1, r4, 0
+ bl GetXYCoordsOneStepInFrontOfPlayer
+ mov r0, sp
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ movs r2, 0
+ ldrsh r1, [r4, r2]
+ bl MapGridGetMetatileIdAt
+ movs r5, 0
+ mov r12, r4
+ lsls r0, 16
+ asrs r3, r0, 16
+ ldr r1, _080BB84C
+ mov r8, r1
+ adds r7, r0, 0
+ mov r4, sp
+ mov r6, r12
+_080BB834:
+ ldr r0, _080BB84C
+ lsls r1, r5, 2
+ adds r2, r1, r0
+ ldrh r0, [r2]
+ cmp r0, r3
+ bne _080BB850
+ movs r3, 0
+ ldrsh r0, [r4, r3]
+ movs r5, 0
+ ldrsh r1, [r6, r5]
+ ldrh r3, [r2, 0x2]
+ b _080BB878
+ .align 2, 0
+_080BB84C: .4byte gUnknown_083D1358
+_080BB850:
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x6
+ bls _080BB834
+ movs r5, 0
+ mov r4, sp
+ mov r6, r12
+_080BB860:
+ lsls r0, r5, 2
+ mov r1, r8
+ adds r3, r0, r1
+ ldrh r1, [r3, 0x2]
+ asrs r0, r7, 16
+ cmp r1, r0
+ bne _080BB892
+ movs r2, 0
+ ldrsh r0, [r4, r2]
+ movs r5, 0
+ ldrsh r1, [r6, r5]
+ ldrh r3, [r3]
+_080BB878:
+ movs r5, 0xC0
+ lsls r5, 4
+ adds r2, r5, 0
+ orrs r2, r3
+ bl MapGridSetMetatileIdAt
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ movs r2, 0
+ ldrsh r1, [r6, r2]
+ bl CurrentMapDrawMetatileAt
+ b _080BB89C
+_080BB892:
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x6
+ bls _080BB860
+_080BB89C:
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80BB800
+
+ thumb_func_start sub_80BB8A8
+sub_80BB8A8: @ 80BB8A8
+ push {lr}
+ adds r2, r0, 0
+ movs r1, 0
+_080BB8AE:
+ adds r0, r2, r1
+ ldrb r0, [r0]
+ cmp r0, 0xFF
+ bne _080BB8BA
+ adds r0, r1, 0
+ b _080BB8C6
+_080BB8BA:
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x6
+ bls _080BB8AE
+ movs r0, 0x7
+_080BB8C6:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80BB8A8
+
+ thumb_func_start sub_80BB8CC
+sub_80BB8CC: @ 80BB8CC
+ push {r4-r6,lr}
+ ldr r2, _080BB948
+ ldr r0, _080BB94C
+ ldrb r1, [r0]
+ ldr r3, _080BB950
+ adds r0, r2, r3
+ strb r1, [r0]
+ movs r3, 0
+ ldr r0, _080BB954
+ adds r2, r0
+ ldr r4, _080BB958
+_080BB8E2:
+ adds r1, r3, r2
+ adds r0, r3, r4
+ ldrb r0, [r0]
+ strb r0, [r1]
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0x3
+ bls _080BB8E2
+ ldr r0, _080BB95C
+ movs r1, 0
+ bl VarSet
+ ldr r6, _080BB960
+ adds r0, r6, 0
+ bl sub_80BB8A8
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r5, _080BB964
+ adds r0, r5, 0
+ movs r1, 0xFF
+ movs r2, 0x7
+ bl memset
+ adds r0, r5, 0
+ adds r1, r6, 0
+ adds r2, r4, 0
+ bl StringCopyN
+ ldrb r0, [r6, 0x8]
+ subs r5, 0x1
+ movs r1, 0x1
+ ands r1, r0
+ lsls r1, 4
+ ldrb r2, [r5]
+ movs r0, 0x11
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r5]
+ ldr r0, _080BB968
+ ldr r1, _080BB96C
+ ldrb r1, [r1, 0x14]
+ bl VarSet
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BB948: .4byte gSaveBlock1
+_080BB94C: .4byte gUnknown_020387DC
+_080BB950: .4byte 0x00001a08
+_080BB954: .4byte 0x00001a11
+_080BB958: .4byte gSaveBlock2 + 0xA
+_080BB95C: .4byte 0x00004054
+_080BB960: .4byte gSaveBlock2
+_080BB964: .4byte gSaveBlock1 + 0x1A0A
+_080BB968: .4byte 0x00004026
+_080BB96C: .4byte gMapHeader
+ thumb_func_end sub_80BB8CC
+
+ thumb_func_start sub_80BB970
+sub_80BB970: @ 80BB970
+ push {r4-r7,lr}
+ adds r5, r0, 0
+ movs r2, 0
+ b _080BBA06
+_080BB978:
+ ldr r0, [r5, 0x10]
+ lsls r1, r2, 1
+ adds r1, r2
+ lsls r1, 2
+ adds r3, r1, r0
+ ldrb r0, [r3, 0x5]
+ adds r7, r2, 0x1
+ cmp r0, 0x8
+ bne _080BBA02
+ movs r2, 0
+ ldr r4, _080BB9E0
+ adds r6, r1, 0
+_080BB990:
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 5
+ adds r0, r4
+ ldr r1, _080BB9E4
+ adds r0, r1
+ ldrb r1, [r0]
+ ldr r0, [r3, 0x8]
+ cmp r1, r0
+ bne _080BB9F8
+ ldrh r0, [r3]
+ adds r0, 0x7
+ ldrh r1, [r3, 0x2]
+ adds r1, 0x7
+ bl MapGridGetMetatileIdAt
+ movs r3, 0
+ lsls r0, 16
+ asrs r4, r0, 16
+_080BB9B6:
+ ldr r0, _080BB9E8
+ lsls r1, r3, 2
+ adds r2, r1, r0
+ ldrh r0, [r2]
+ cmp r0, r4
+ bne _080BB9EC
+ ldr r1, [r5, 0x10]
+ adds r1, r6, r1
+ ldrh r0, [r1]
+ adds r0, 0x7
+ ldrh r1, [r1, 0x2]
+ adds r1, 0x7
+ ldrh r3, [r2, 0x2]
+ movs r4, 0xC0
+ lsls r4, 4
+ adds r2, r4, 0
+ orrs r2, r3
+ bl MapGridSetMetatileIdAt
+ b _080BBA02
+ .align 2, 0
+_080BB9E0: .4byte gSaveBlock1
+_080BB9E4: .4byte 0x00001a08
+_080BB9E8: .4byte gUnknown_083D1358
+_080BB9EC:
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0x6
+ bls _080BB9B6
+ b _080BBA02
+_080BB9F8:
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0x13
+ bls _080BB990
+_080BBA02:
+ lsls r0, r7, 16
+ lsrs r2, r0, 16
+_080BBA06:
+ ldrb r0, [r5, 0x3]
+ cmp r2, r0
+ bcc _080BB978
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80BB970
+
+ thumb_func_start sub_80BBA14
+sub_80BBA14: @ 80BBA14
+ push {lr}
+ ldr r0, _080BBA40
+ ldrb r0, [r0]
+ movs r1, 0xA
+ bl __udivsi3
+ ldr r2, _080BBA44
+ lsls r0, 26
+ asrs r0, 24
+ adds r1, r0, r2
+ ldrb r1, [r1]
+ lsls r1, 24
+ asrs r1, 24
+ adds r0, 0x1
+ adds r0, r2
+ movs r2, 0
+ ldrsb r2, [r0, r2]
+ movs r0, 0x19
+ bl warp1_set_2
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BBA40: .4byte gUnknown_020387DC
+_080BBA44: .4byte gUnknown_083D1374
+ thumb_func_end sub_80BBA14
+
+ thumb_func_start sub_80BBA48
+sub_80BBA48: @ 80BBA48
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r1, _080BBA6C
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r2, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r2, r1]
+ cmp r0, 0x1
+ beq _080BBA7C
+ cmp r0, 0x1
+ bgt _080BBA70
+ cmp r0, 0
+ beq _080BBA76
+ b _080BBAD0
+ .align 2, 0
+_080BBA6C: .4byte gTasks
+_080BBA70:
+ cmp r0, 0x2
+ beq _080BBA94
+ b _080BBAD0
+_080BBA76:
+ movs r0, 0x1
+ strh r0, [r2, 0x8]
+ b _080BBAD0
+_080BBA7C:
+ ldr r0, _080BBA90
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080BBAD0
+ movs r0, 0x2
+ strh r0, [r2, 0x8]
+ b _080BBAD0
+ .align 2, 0
+_080BBA90: .4byte gPaletteFade
+_080BBA94:
+ ldr r0, _080BBAD8
+ bl VarGet
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r2, _080BBADC
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 5
+ adds r1, r2
+ ldr r0, _080BBAE0
+ adds r1, r0
+ ldrb r0, [r1]
+ cmp r0, 0xFE
+ bhi _080BBAB6
+ adds r0, 0x1
+ strb r0, [r1]
+_080BBAB6:
+ bl sub_80BBA14
+ bl warp_in
+ ldr r0, _080BBAE4
+ ldr r1, _080BBAE8
+ str r1, [r0]
+ ldr r0, _080BBAEC
+ bl SetMainCallback2
+ adds r0, r4, 0
+ bl DestroyTask
+_080BBAD0:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BBAD8: .4byte 0x00004054
+_080BBADC: .4byte gSaveBlock1
+_080BBAE0: .4byte 0x00001a18
+_080BBAE4: .4byte gUnknown_0300485C
+_080BBAE8: .4byte sub_8080990
+_080BBAEC: .4byte CB2_LoadMap
+ thumb_func_end sub_80BBA48
+
+ thumb_func_start sub_80BBAF0
+sub_80BBAF0: @ 80BBAF0
+ push {lr}
+ ldr r0, _080BBB1C
+ movs r1, 0
+ bl CreateTask
+ movs r0, 0x1
+ movs r1, 0
+ bl fade_screen
+ ldr r0, _080BBB20
+ movs r1, 0x4
+ ldrsb r1, [r0, r1]
+ movs r2, 0x5
+ ldrsb r2, [r0, r2]
+ movs r3, 0x1
+ negs r3, r3
+ movs r0, 0
+ bl saved_warp2_set
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BBB1C: .4byte sub_80BBA48
+_080BBB20: .4byte gSaveBlock1
+ thumb_func_end sub_80BBAF0
+
+ thumb_func_start sub_80BBB24
+sub_80BBB24: @ 80BBB24
+ push {lr}
+ ldr r0, _080BBB40
+ ldrb r0, [r0, 0x17]
+ cmp r0, 0x9
+ bne _080BBB48
+ ldr r0, _080BBB44
+ bl VarGet
+ lsls r0, 16
+ cmp r0, 0
+ bne _080BBB48
+ movs r0, 0
+ b _080BBB4A
+ .align 2, 0
+_080BBB40: .4byte gMapHeader
+_080BBB44: .4byte 0x00004097
+_080BBB48:
+ movs r0, 0x1
+_080BBB4A:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80BBB24
+
+ thumb_func_start sub_80BBB50
+sub_80BBB50: @ 80BBB50
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _080BBB88
+ ldrb r1, [r0, 0x5]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080BBB8C
+ adds r0, r1
+ movs r1, 0x2
+ bl FieldObjectTurn
+ bl sub_807D770
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080BBB80
+ bl EnableBothScriptContexts
+ adds r0, r4, 0
+ bl DestroyTask
+_080BBB80:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BBB88: .4byte gPlayerAvatar
+_080BBB8C: .4byte gMapObjects
+ thumb_func_end sub_80BBB50
+
+ thumb_func_start sub_80BBB90
+sub_80BBB90: @ 80BBB90
+ push {r4,lr}
+ sub sp, 0x4
+ bl ScriptContext2_Enable
+ bl HideMapNamePopUpWindow
+ mov r4, sp
+ adds r4, 0x2
+ movs r2, 0x88
+ lsls r2, 2
+ mov r0, sp
+ adds r1, r4, 0
+ bl sub_80BB764
+ mov r0, sp
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ adds r0, 0x7
+ movs r2, 0
+ ldrsh r1, [r4, r2]
+ adds r1, 0x7
+ movs r2, 0xE2
+ lsls r2, 4
+ bl MapGridSetMetatileIdAt
+ mov r0, sp
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ adds r0, 0x7
+ movs r2, 0
+ ldrsh r1, [r4, r2]
+ adds r1, 0x7
+ bl CurrentMapDrawMetatileAt
+ bl pal_fill_black
+ ldr r0, _080BBBE8
+ movs r1, 0
+ bl CreateTask
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BBBE8: .4byte sub_80BBB50
+ thumb_func_end sub_80BBB90
+
+ thumb_func_start sub_80BBBEC
+sub_80BBBEC: @ 80BBBEC
+ push {r4-r6,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r0, _080BBC5C
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080BBC52
+ ldr r0, _080BBC60
+ ldrb r0, [r0]
+ movs r1, 0xA
+ bl __udivsi3
+ ldr r1, _080BBC64
+ movs r5, 0x4
+ ldrsb r5, [r1, r5]
+ ldrb r1, [r1, 0x5]
+ lsls r1, 24
+ asrs r1, 24
+ movs r2, 0x1
+ negs r2, r2
+ ldr r4, _080BBC68
+ lsls r0, 26
+ asrs r0, 24
+ adds r3, r0, 0x2
+ adds r3, r4
+ ldrb r3, [r3]
+ lsls r3, 24
+ asrs r3, 24
+ adds r0, 0x3
+ adds r0, r4
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ str r0, [sp]
+ adds r0, r5, 0
+ bl warp1_set
+ bl warp_in
+ ldr r1, _080BBC6C
+ ldr r0, _080BBC70
+ str r0, [r1]
+ ldr r0, _080BBC74
+ bl SetMainCallback2
+ adds r0, r6, 0
+ bl DestroyTask
+_080BBC52:
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BBC5C: .4byte gPaletteFade
+_080BBC60: .4byte gUnknown_020387DC
+_080BBC64: .4byte gSaveBlock1
+_080BBC68: .4byte gUnknown_083D1374
+_080BBC6C: .4byte gUnknown_0300485C
+_080BBC70: .4byte sub_80BBB90
+_080BBC74: .4byte CB2_LoadMap
+ thumb_func_end sub_80BBBEC
+
+ thumb_func_start sub_80BBC78
+sub_80BBC78: @ 80BBC78
+ push {lr}
+ ldr r0, _080BBCA0
+ movs r1, 0
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080BBCA4
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ movs r0, 0
+ strh r0, [r1, 0x8]
+ movs r0, 0x1
+ movs r1, 0
+ bl fade_screen
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BBCA0: .4byte sub_80BBBEC
+_080BBCA4: .4byte gTasks
+ thumb_func_end sub_80BBC78
+
+ thumb_func_start CurrentMapIsSecretBase
+CurrentMapIsSecretBase: @ 80BBCA8
+ push {lr}
+ ldr r1, _080BBCC0
+ movs r0, 0x4
+ ldrsb r0, [r1, r0]
+ cmp r0, 0x19
+ bne _080BBCC4
+ ldrb r0, [r1, 0x5]
+ cmp r0, 0x17
+ bhi _080BBCC4
+ movs r0, 0x1
+ b _080BBCC6
+ .align 2, 0
+_080BBCC0: .4byte gSaveBlock1
+_080BBCC4:
+ movs r0, 0
+_080BBCC6:
+ pop {r1}
+ bx r1
+ thumb_func_end CurrentMapIsSecretBase
+
+ thumb_func_start sub_80BBCCC
+sub_80BBCCC: @ 80BBCCC
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ bl CurrentMapIsSecretBase
+ lsls r0, 24
+ cmp r0, 0
+ beq _080BBDBC
+ ldr r0, _080BBD70
+ bl VarGet
+ lsls r0, 16
+ lsrs r5, r0, 16
+ movs r1, 0
+ mov r0, sp
+ strh r1, [r0]
+ ldr r6, _080BBD74
+ mov r4, sp
+ ldr r0, _080BBD78
+ adds r7, r6, r0
+_080BBCFC:
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 5
+ ldrh r1, [r4]
+ adds r2, r0, r1
+ ldr r1, _080BBD7C
+ adds r0, r6, r1
+ adds r1, r2, r0
+ ldrb r0, [r1]
+ subs r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x77
+ bhi _080BBD3A
+ ldr r0, _080BBD80
+ ldrb r3, [r1]
+ lsls r1, r3, 5
+ adds r1, r0
+ ldrb r0, [r1, 0x11]
+ cmp r0, 0x4
+ beq _080BBD3A
+ adds r0, r2, r7
+ ldrb r2, [r0]
+ lsrs r0, r2, 4
+ adds r0, 0x7
+ movs r1, 0xF
+ ands r1, r2
+ adds r1, 0x7
+ adds r2, r3, 0
+ bl sub_80FF394
+_080BBD3A:
+ ldrh r0, [r4]
+ adds r0, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+ strh r0, [r4]
+ cmp r0, 0xF
+ bls _080BBCFC
+ cmp r5, 0
+ beq _080BBD88
+ mov r4, sp
+ adds r4, 0x2
+ movs r2, 0x88
+ lsls r2, 2
+ mov r0, sp
+ adds r1, r4, 0
+ bl sub_80BB764
+ mov r0, sp
+ ldrh r0, [r0]
+ adds r0, 0x7
+ ldrh r1, [r4]
+ adds r1, 0x7
+ ldr r2, _080BBD84
+ bl MapGridSetMetatileIdAt
+ b _080BBDBC
+ .align 2, 0
+_080BBD70: .4byte 0x00004054
+_080BBD74: .4byte gSaveBlock1
+_080BBD78: .4byte 0x00001a2a
+_080BBD7C: .4byte 0x00001a1a
+_080BBD80: .4byte gDecorations
+_080BBD84: .4byte 0x00000e21
+_080BBD88:
+ mov r0, r8
+ cmp r0, 0x1
+ bne _080BBDBC
+ ldr r0, _080BBDC8
+ bl VarGet
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x1
+ bne _080BBDBC
+ mov r4, sp
+ adds r4, 0x2
+ movs r2, 0x88
+ lsls r2, 2
+ mov r0, sp
+ adds r1, r4, 0
+ bl sub_80BB764
+ mov r0, sp
+ ldrh r0, [r0]
+ adds r0, 0x7
+ ldrh r1, [r4]
+ adds r1, 0x7
+ ldr r2, _080BBDCC
+ bl MapGridSetMetatileIdAt
+_080BBDBC:
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BBDC8: .4byte 0x00004089
+_080BBDCC: .4byte 0x00000e0a
+ thumb_func_end sub_80BBCCC
+
+ thumb_func_start sub_80BBDD0
+sub_80BBDD0: @ 80BBDD0
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x14
+ ldr r0, _080BBE00
+ bl VarGet
+ lsls r0, 16
+ lsrs r4, r0, 16
+ bl CurrentMapIsSecretBase
+ lsls r0, 24
+ cmp r0, 0
+ bne _080BBE08
+ ldr r0, _080BBE04
+ str r0, [sp, 0x4]
+ adds r0, 0xC
+ str r0, [sp, 0x8]
+ movs r1, 0xC
+ str r1, [sp, 0xC]
+ b _080BBE1E
+ .align 2, 0
+_080BBE00: .4byte 0x00004054
+_080BBE04: .4byte gSaveBlock1 + 0x2688
+_080BBE08:
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 5
+ ldr r0, _080BBF7C
+ adds r2, r1, r0
+ str r2, [sp, 0x4]
+ adds r0, 0x10
+ adds r1, r0
+ str r1, [sp, 0x8]
+ movs r3, 0x10
+ str r3, [sp, 0xC]
+_080BBE1E:
+ movs r6, 0
+ ldr r4, [sp, 0xC]
+ cmp r6, r4
+ bcc _080BBE28
+ b _080BBF6C
+_080BBE28:
+ ldr r5, _080BBF80
+ mov r10, r5
+_080BBE2C:
+ ldr r1, [sp, 0x4]
+ adds r0, r1, r6
+ ldrb r1, [r0]
+ mov r9, r0
+ adds r2, r6, 0x1
+ str r2, [sp, 0x10]
+ cmp r1, 0
+ bne _080BBE3E
+ b _080BBF5E
+_080BBE3E:
+ ldrb r0, [r0]
+ lsls r0, 5
+ ldr r3, _080BBF84
+ adds r0, r3
+ ldrb r0, [r0, 0x11]
+ cmp r0, 0x4
+ beq _080BBE4E
+ b _080BBF5E
+_080BBE4E:
+ movs r5, 0
+ ldr r0, _080BBF88
+ ldr r2, [r0, 0x4]
+ ldrb r3, [r2]
+ mov r8, r0
+ cmp r5, r3
+ bcs _080BBE8E
+ ldr r0, [r2, 0x4]
+ ldrh r1, [r0, 0x14]
+ ldr r4, _080BBF8C
+ ldrh r0, [r4]
+ adds r0, 0xAE
+ adds r7, r4, 0
+ cmp r1, r0
+ beq _080BBE8E
+ adds r4, r2, 0
+ adds r2, r3, 0
+_080BBE70:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, r2
+ bcs _080BBE8E
+ ldr r1, [r4, 0x4]
+ lsls r0, r5, 1
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ ldrh r1, [r0, 0x14]
+ ldrh r0, [r7]
+ adds r0, 0xAE
+ cmp r1, r0
+ bne _080BBE70
+_080BBE8E:
+ mov r1, r8
+ ldr r0, [r1, 0x4]
+ ldrb r0, [r0]
+ cmp r5, r0
+ beq _080BBF5E
+ ldr r7, _080BBF90
+ ldr r2, [sp, 0x8]
+ adds r1, r2, r6
+ ldrb r0, [r1]
+ lsrs r0, 4
+ strh r0, [r7]
+ ldr r6, _080BBF94
+ ldrb r1, [r1]
+ movs r0, 0xF
+ ands r0, r1
+ strh r0, [r6]
+ ldrh r0, [r7]
+ adds r0, 0x7
+ ldrh r1, [r6]
+ adds r1, 0x7
+ bl MapGridGetMetatileBehaviorAt
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r0, r4, 0
+ bl sub_80572D8
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _080BBEDA
+ adds r0, r4, 0
+ bl sub_80572EC
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080BBF5E
+_080BBEDA:
+ mov r3, r8
+ ldr r0, [r3, 0x4]
+ ldr r1, [r0, 0x4]
+ lsls r4, r5, 1
+ adds r4, r5
+ lsls r4, 3
+ adds r1, r4, r1
+ ldr r5, _080BBF98
+ adds r0, r5, 0
+ ldrb r1, [r1, 0x1]
+ adds r0, r1
+ ldr r1, _080BBF9C
+ strh r0, [r1]
+ ldrh r0, [r1]
+ mov r2, r9
+ ldrb r1, [r2]
+ lsls r1, 5
+ ldr r3, _080BBFA0
+ adds r1, r3
+ ldr r1, [r1]
+ ldrh r1, [r1]
+ bl VarSet
+ mov r5, r8
+ ldr r0, [r5, 0x4]
+ ldr r0, [r0, 0x4]
+ adds r4, r0
+ ldrb r0, [r4]
+ ldr r1, _080BBF9C
+ strh r0, [r1]
+ ldr r2, _080BBF8C
+ ldrh r0, [r2]
+ adds r0, 0xAE
+ lsls r0, 16
+ lsrs r0, 16
+ bl FlagReset
+ ldr r3, _080BBF9C
+ ldrb r0, [r3]
+ mov r4, r10
+ ldrb r1, [r4, 0x5]
+ ldrb r2, [r4, 0x4]
+ bl show_sprite
+ ldr r5, _080BBF9C
+ ldrb r0, [r5]
+ ldrb r1, [r4, 0x5]
+ ldrb r2, [r4, 0x4]
+ movs r4, 0
+ ldrsh r3, [r7, r4]
+ movs r5, 0
+ ldrsh r4, [r6, r5]
+ str r4, [sp]
+ bl sub_805C0F8
+ ldr r1, _080BBF9C
+ ldrb r0, [r1]
+ mov r2, r10
+ ldrb r1, [r2, 0x5]
+ ldrb r2, [r2, 0x4]
+ bl sub_805C78C
+ ldr r3, _080BBF8C
+ ldrh r0, [r3]
+ adds r0, 0x1
+ strh r0, [r3]
+_080BBF5E:
+ ldr r4, [sp, 0x10]
+ lsls r0, r4, 24
+ lsrs r6, r0, 24
+ ldr r5, [sp, 0xC]
+ cmp r6, r5
+ bcs _080BBF6C
+ b _080BBE2C
+_080BBF6C:
+ add sp, 0x14
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BBF7C: .4byte gSaveBlock1 + 0x1A1A
+_080BBF80: .4byte gSaveBlock1
+_080BBF84: .4byte gDecorations
+_080BBF88: .4byte gMapHeader
+_080BBF8C: .4byte gUnknown_0202E8CC
+_080BBF90: .4byte gUnknown_0202E8D0
+_080BBF94: .4byte gUnknown_0202E8D2
+_080BBF98: .4byte 0x00003f20
+_080BBF9C: .4byte gScriptResult
+_080BBFA0: .4byte gDecorations + 0x1C
+ thumb_func_end sub_80BBDD0
+
+ thumb_func_start sub_80BBFA4
+sub_80BBFA4: @ 80BBFA4
+ push {r4,r5,lr}
+ ldr r0, _080BBFCC
+ bl VarGet
+ ldr r5, _080BBFD0
+ ldr r4, _080BBFD4
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_80BCCA4
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, r4
+ ldrb r1, [r0]
+ adds r0, r5, 0
+ bl VarSet
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BBFCC: .4byte 0x00004054
+_080BBFD0: .4byte 0x0000401f
+_080BBFD4: .4byte gUnknown_083D13EC
+ thumb_func_end sub_80BBFA4
+
+ thumb_func_start sub_80BBFD8
+sub_80BBFD8: @ 80BBFD8
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ adds r4, r1, 0
+ movs r3, 0
+ ldrb r0, [r4, 0x3]
+ cmp r3, r0
+ bge _080BC030
+ ldr r6, _080BC01C
+_080BBFE8:
+ lsls r3, 16
+ asrs r1, r3, 16
+ ldr r2, [r4, 0x10]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r2, r0, r2
+ ldrb r0, [r2, 0x5]
+ cmp r0, 0x8
+ bne _080BC020
+ movs r0, 0
+ ldrsh r1, [r5, r0]
+ ldrh r0, [r2]
+ adds r0, 0x7
+ cmp r1, r0
+ bne _080BC020
+ movs r0, 0x2
+ ldrsh r1, [r5, r0]
+ ldrh r0, [r2, 0x2]
+ adds r0, 0x7
+ cmp r1, r0
+ bne _080BC020
+ ldr r0, [r2, 0x8]
+ strb r0, [r6]
+ b _080BC030
+ .align 2, 0
+_080BC01C: .4byte gUnknown_020387DC
+_080BC020:
+ movs r1, 0x80
+ lsls r1, 9
+ adds r0, r3, r1
+ lsrs r3, r0, 16
+ asrs r0, 16
+ ldrb r1, [r4, 0x3]
+ cmp r0, r1
+ blt _080BBFE8
+_080BC030:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80BBFD8
+
+ thumb_func_start sub_80BC038
+sub_80BC038: @ 80BC038
+ push {lr}
+ bl sub_80BBFD8
+ bl sub_80BB5E4
+ ldr r0, _080BC04C
+ bl ScriptContext1_SetupScript
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BC04C: .4byte gUnknown_081A2E14
+ thumb_func_end sub_80BC038
+
+ thumb_func_start sub_80BC050
+sub_80BC050: @ 80BC050
+ push {lr}
+ bl sub_80BB5D0
+ bl sub_80BB5E4
+ ldr r0, _080BC068
+ ldrh r0, [r0]
+ cmp r0, 0x1
+ beq _080BC06C
+ movs r0, 0x1
+ b _080BC06E
+ .align 2, 0
+_080BC068: .4byte gScriptResult
+_080BC06C:
+ movs r0, 0
+_080BC06E:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80BC050
+
+ thumb_func_start sub_80BC074
+sub_80BC074: @ 80BC074
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _080BC098
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r4, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ beq _080BC0AC
+ cmp r0, 0x1
+ bgt _080BC09C
+ cmp r0, 0
+ beq _080BC0A2
+ b _080BC0E4
+ .align 2, 0
+_080BC098: .4byte gTasks
+_080BC09C:
+ cmp r0, 0x2
+ beq _080BC0C4
+ b _080BC0E4
+_080BC0A2:
+ bl ScriptContext2_Enable
+ movs r0, 0x1
+ strh r0, [r4, 0x8]
+ b _080BC0E4
+_080BC0AC:
+ ldr r0, _080BC0C0
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080BC0E4
+ movs r0, 0x2
+ strh r0, [r4, 0x8]
+ b _080BC0E4
+ .align 2, 0
+_080BC0C0: .4byte gPaletteFade
+_080BC0C4:
+ movs r0, 0x7E
+ bl copy_saved_warp2_bank_and_enter_x_to_warp1
+ bl warp_in
+ ldr r0, _080BC0EC
+ ldr r1, _080BC0F0
+ str r1, [r0]
+ ldr r0, _080BC0F4
+ bl SetMainCallback2
+ bl ScriptContext2_Disable
+ adds r0, r5, 0
+ bl DestroyTask
+_080BC0E4:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BC0EC: .4byte gUnknown_0300485C
+_080BC0F0: .4byte mapldr_default
+_080BC0F4: .4byte CB2_LoadMap
+ thumb_func_end sub_80BC074
+
+ thumb_func_start sub_80BC0F8
+sub_80BC0F8: @ 80BC0F8
+ push {lr}
+ ldr r0, _080BC110
+ movs r1, 0
+ bl CreateTask
+ movs r0, 0x1
+ movs r1, 0
+ bl fade_screen
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BC110: .4byte sub_80BC074
+ thumb_func_end sub_80BC0F8
+
+ thumb_func_start sub_80BC114
+sub_80BC114: @ 80BC114
+ push {lr}
+ ldr r0, _080BC12C
+ ldr r1, _080BC130
+ adds r0, r1
+ ldr r1, _080BC134
+ ldrb r0, [r0]
+ ldrb r1, [r1]
+ cmp r0, r1
+ beq _080BC13C
+ ldr r1, _080BC138
+ movs r0, 0x1
+ b _080BC140
+ .align 2, 0
+_080BC12C: .4byte gSaveBlock1
+_080BC130: .4byte 0x00001a08
+_080BC134: .4byte gUnknown_020387DC
+_080BC138: .4byte gScriptResult
+_080BC13C:
+ ldr r1, _080BC148
+ movs r0, 0
+_080BC140:
+ strh r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BC148: .4byte gScriptResult
+ thumb_func_end sub_80BC114
+
+ thumb_func_start sub_80BC14C
+sub_80BC14C: @ 80BC14C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ movs r2, 0
+ ldr r5, _080BC174
+ ldr r4, _080BC178
+_080BC158:
+ lsls r0, r2, 16
+ asrs r1, r0, 16
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 5
+ adds r0, r5
+ adds r0, r4
+ ldrb r0, [r0]
+ cmp r0, r3
+ bne _080BC17C
+ lsls r0, r2, 24
+ lsrs r0, 24
+ b _080BC18A
+ .align 2, 0
+_080BC174: .4byte gSaveBlock1
+_080BC178: .4byte 0x00001a08
+_080BC17C:
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ asrs r0, 16
+ cmp r0, 0x13
+ ble _080BC158
+ movs r0, 0
+_080BC18A:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80BC14C
+
+ thumb_func_start sub_80BC190
+sub_80BC190: @ 80BC190
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r4, r1, 2
+ adds r4, r1
+ lsls r4, 5
+ ldr r0, _080BC1C8
+ adds r4, r0
+ adds r0, r4, 0
+ bl sub_80BB8A8
+ adds r2, r0, 0
+ lsls r2, 24
+ lsrs r2, 24
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl StringCopyN
+ movs r1, 0xFF
+ strb r1, [r0]
+ ldr r1, _080BC1CC
+ adds r0, r5, 0
+ bl StringAppend
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080BC1C8: .4byte gSaveBlock1 + 0x1A0A
+_080BC1CC: .4byte gOtherText_PlayersBase
+ thumb_func_end sub_80BC190
+
+ thumb_func_start GetSecretBaseMapName
+GetSecretBaseMapName: @ 80BC1D0
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ mov r8, r0
+ ldr r6, _080BC214
+ ldr r5, _080BC218
+ ldr r4, _080BC21C
+ adds r0, r4, 0
+ bl VarGet
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 5
+ adds r1, r5
+ ldr r0, _080BC220
+ adds r1, r0
+ ldrb r0, [r1]
+ strb r0, [r6]
+ adds r0, r4, 0
+ bl VarGet
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ mov r0, r8
+ bl sub_80BC190
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080BC214: .4byte gUnknown_020387DC
+_080BC218: .4byte gSaveBlock1
+_080BC21C: .4byte 0x00004054
+_080BC220: .4byte 0x00001a08
+ thumb_func_end GetSecretBaseMapName
+
+ thumb_func_start sub_80BC224
+sub_80BC224: @ 80BC224
+ push {r4,r5,lr}
+ ldr r0, _080BC25C
+ bl VarGet
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 5
+ ldr r0, _080BC260
+ adds r4, r0
+ ldr r5, _080BC264
+ adds r0, r4, 0
+ bl sub_80BB8A8
+ adds r2, r0, 0
+ lsls r2, 24
+ lsrs r2, 24
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl StringCopyN
+ movs r1, 0xFF
+ strb r1, [r0]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BC25C: .4byte 0x00004054
+_080BC260: .4byte gSaveBlock1 + 0x1A0A
+_080BC264: .4byte gStringVar1
+ thumb_func_end sub_80BC224
+
+ thumb_func_start sub_80BC268
+sub_80BC268: @ 80BC268
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080BC288
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 5
+ adds r1, r2
+ ldr r0, _080BC28C
+ adds r1, r0
+ ldrb r0, [r1]
+ lsrs r0, 6
+ cmp r0, 0
+ bne _080BC290
+ movs r0, 0
+ b _080BC292
+ .align 2, 0
+_080BC288: .4byte gSaveBlock1
+_080BC28C: .4byte 0x00001a09
+_080BC290:
+ movs r0, 0x1
+_080BC292:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80BC268
+
+ thumb_func_start sub_80BC298
+sub_80BC298: @ 80BC298
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ movs r1, 0x1A
+ bl GetMonData
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ adds r0, r5, 0
+ movs r1, 0x1B
+ bl GetMonData
+ adds r4, r0
+ lsls r4, 16
+ lsrs r4, 16
+ adds r0, r5, 0
+ movs r1, 0x1C
+ bl GetMonData
+ adds r4, r0
+ lsls r4, 16
+ lsrs r4, 16
+ adds r0, r5, 0
+ movs r1, 0x1D
+ bl GetMonData
+ adds r4, r0
+ lsls r4, 16
+ lsrs r4, 16
+ adds r0, r5, 0
+ movs r1, 0x1E
+ bl GetMonData
+ adds r4, r0
+ lsls r4, 16
+ lsrs r4, 16
+ adds r0, r5, 0
+ movs r1, 0x1F
+ bl GetMonData
+ adds r4, r0
+ lsls r4, 16
+ lsrs r4, 16
+ adds r0, r4, 0
+ movs r1, 0x6
+ bl __udivsi3
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80BC298
+
+ thumb_func_start sub_80BC300
+sub_80BC300: @ 80BC300
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0xC
+ movs r0, 0
+ mov r10, r0
+ movs r6, 0
+ mov r9, r6
+_080BC314:
+ movs r4, 0
+ lsls r3, r6, 2
+ lsls r2, r6, 1
+ ldr r7, _080BC424
+ adds r1, r6, 0x1
+ str r1, [sp]
+ adds r1, r3, 0
+_080BC322:
+ adds r0, r1, r4
+ lsls r0, 1
+ ldr r5, _080BC428
+ adds r0, r5, r0
+ mov r5, r9
+ strh r5, [r0]
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x3
+ bls _080BC322
+ ldr r1, _080BC42C
+ adds r0, r1, r2
+ strh r5, [r0]
+ ldr r5, _080BC430
+ adds r0, r5, r2
+ mov r1, r9
+ strh r1, [r0]
+ ldr r2, _080BC434
+ adds r0, r2, r6
+ mov r5, r9
+ strb r5, [r0]
+ ldr r1, _080BC438
+ adds r0, r1, r3
+ mov r2, r9
+ str r2, [r0]
+ ldr r3, _080BC43C
+ adds r0, r3, r6
+ strb r2, [r0]
+ movs r0, 0x64
+ adds r5, r6, 0
+ muls r5, r0
+ adds r4, r5, r7
+ adds r0, r4, 0
+ movs r1, 0xB
+ bl GetMonData
+ cmp r0, 0
+ beq _080BC408
+ adds r0, r4, 0
+ movs r1, 0x2D
+ bl GetMonData
+ cmp r0, 0
+ bne _080BC408
+ movs r4, 0
+ mov r0, r10
+ lsls r0, 2
+ mov r8, r0
+ mov r1, r10
+ lsls r7, r1, 1
+ adds r1, 0x1
+ str r1, [sp, 0x4]
+ ldr r2, _080BC424
+_080BC38E:
+ adds r1, r4, 0
+ adds r1, 0xD
+ adds r0, r5, r2
+ str r2, [sp, 0x8]
+ bl GetMonData
+ mov r3, r8
+ adds r1, r3, r4
+ lsls r1, 1
+ ldr r3, _080BC428
+ adds r1, r3, r1
+ strh r0, [r1]
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ ldr r2, [sp, 0x8]
+ cmp r4, 0x3
+ bls _080BC38E
+ movs r0, 0x64
+ adds r4, r6, 0
+ muls r4, r0
+ ldr r0, _080BC424
+ adds r4, r0
+ adds r0, r4, 0
+ movs r1, 0xB
+ bl GetMonData
+ ldr r5, _080BC42C
+ adds r1, r5, r7
+ strh r0, [r1]
+ adds r0, r4, 0
+ movs r1, 0xC
+ bl GetMonData
+ ldr r2, _080BC430
+ adds r1, r2, r7
+ strh r0, [r1]
+ adds r0, r4, 0
+ movs r1, 0x38
+ bl GetMonData
+ ldr r1, _080BC434
+ add r1, r10
+ strb r0, [r1]
+ adds r0, r4, 0
+ movs r1, 0
+ bl GetMonData
+ ldr r1, _080BC438
+ add r1, r8
+ str r0, [r1]
+ adds r0, r4, 0
+ bl sub_80BC298
+ ldr r1, _080BC43C
+ add r1, r10
+ strb r0, [r1]
+ ldr r3, [sp, 0x4]
+ lsls r0, r3, 16
+ lsrs r0, 16
+ mov r10, r0
+_080BC408:
+ ldr r5, [sp]
+ lsls r0, r5, 16
+ lsrs r6, r0, 16
+ cmp r6, 0x5
+ bls _080BC314
+ add sp, 0xC
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BC424: .4byte gPlayerParty
+_080BC428: .4byte gSaveBlock1 + 0x1A54
+_080BC42C: .4byte gSaveBlock1 + 0x1A84
+_080BC430: .4byte gSaveBlock1 + 0x1A90
+_080BC434: .4byte gSaveBlock1 + 0x1A9C
+_080BC438: .4byte gSaveBlock1 + 0x1A3C
+_080BC43C: .4byte gSaveBlock1 + 0x1AA2
+ thumb_func_end sub_80BC300
+
+ thumb_func_start sub_80BC440
+sub_80BC440: @ 80BC440
+ push {r4,r5,lr}
+ ldr r4, _080BC45C
+ ldr r0, _080BC460
+ adds r4, r0
+ ldrh r5, [r4]
+ movs r0, 0
+ bl sub_80BB594
+ strh r5, [r4]
+ bl sub_80BC0F8
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BC45C: .4byte gSaveBlock1
+_080BC460: .4byte 0x00001a16
+ thumb_func_end sub_80BC440
+
+ thumb_func_start sub_80BC464
+sub_80BC464: @ 80BC464
+ push {lr}
+ movs r0, 0x14
+ bl sav12_xor_increment
+ bl sub_80BC440
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80BC464
+
+ thumb_func_start sub_80BC474
+sub_80BC474: @ 80BC474
+ push {r4-r7,lr}
+ ldr r0, _080BC4CC
+ ldr r4, [r0, 0x4]
+ movs r6, 0
+ ldrb r0, [r4, 0x3]
+ cmp r6, r0
+ bcs _080BC504
+ ldr r3, _080BC4D0
+_080BC484:
+ ldr r2, [r4, 0x10]
+ lsls r1, r6, 1
+ adds r0, r1, r6
+ lsls r0, 2
+ adds r2, r0, r2
+ ldrb r0, [r2, 0x5]
+ adds r7, r1, 0
+ cmp r0, 0x8
+ bne _080BC4F8
+ ldrb r1, [r3]
+ ldr r0, [r2, 0x8]
+ cmp r1, r0
+ bne _080BC4F8
+ ldrh r0, [r2]
+ adds r0, 0x7
+ ldrh r1, [r2, 0x2]
+ adds r1, 0x7
+ bl MapGridGetMetatileIdAt
+ movs r1, 0
+ ldr r5, _080BC4D4
+ lsls r0, 16
+ asrs r2, r0, 16
+_080BC4B2:
+ lsls r0, r1, 2
+ adds r3, r0, r5
+ ldrh r0, [r3, 0x2]
+ cmp r0, r2
+ beq _080BC4D8
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0x6
+ bls _080BC4B2
+_080BC4C6:
+ bl DrawWholeMapView
+ b _080BC504
+ .align 2, 0
+_080BC4CC: .4byte gMapHeader
+_080BC4D0: .4byte gSaveBlock1 + 0x1A08
+_080BC4D4: .4byte gUnknown_083D1358
+_080BC4D8:
+ ldr r0, [r4, 0x10]
+ adds r1, r7, r6
+ lsls r1, 2
+ adds r1, r0
+ ldrh r0, [r1]
+ adds r0, 0x7
+ ldrh r1, [r1, 0x2]
+ adds r1, 0x7
+ ldrh r3, [r3]
+ movs r4, 0xC0
+ lsls r4, 4
+ adds r2, r4, 0
+ orrs r2, r3
+ bl MapGridSetMetatileIdAt
+ b _080BC4C6
+_080BC4F8:
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ ldrb r0, [r4, 0x3]
+ cmp r6, r0
+ bcc _080BC484
+_080BC504:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80BC474
+
+ thumb_func_start sub_80BC50C
+sub_80BC50C: @ 80BC50C
+ push {r4,r5,lr}
+ bl sub_80BC474
+ movs r0, 0x14
+ bl sav12_xor_increment
+ ldr r4, _080BC530
+ ldr r0, _080BC534
+ adds r4, r0
+ ldrh r5, [r4]
+ movs r0, 0
+ bl sub_80BB594
+ strh r5, [r4]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BC530: .4byte gSaveBlock1
+_080BC534: .4byte 0x00001a16
+ thumb_func_end sub_80BC50C
+
+ thumb_func_start sub_80BC538
+sub_80BC538: @ 80BC538
+ push {r4,r5,lr}
+ movs r5, 0
+ movs r4, 0x1
+_080BC53E:
+ lsls r0, r4, 24
+ lsrs r0, 24
+ bl sub_80BC268
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080BC554
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+_080BC554:
+ lsls r0, r4, 16
+ movs r1, 0x80
+ lsls r1, 9
+ adds r0, r1
+ lsrs r4, r0, 16
+ asrs r0, 16
+ cmp r0, 0x13
+ ble _080BC53E
+ adds r0, r5, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80BC538
+
+ thumb_func_start sub_80BC56C
+sub_80BC56C: @ 80BC56C
+ push {lr}
+ ldr r0, _080BC58C
+ ldrb r0, [r0]
+ bl sub_80BC14C
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_80BC268
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x1
+ bne _080BC594
+ ldr r0, _080BC590
+ strh r1, [r0]
+ b _080BC5B2
+ .align 2, 0
+_080BC58C: .4byte gUnknown_020387DC
+_080BC590: .4byte gScriptResult
+_080BC594:
+ bl sub_80BC538
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x9
+ bls _080BC5AC
+ ldr r1, _080BC5A8
+ movs r0, 0x2
+ b _080BC5B0
+ .align 2, 0
+_080BC5A8: .4byte gScriptResult
+_080BC5AC:
+ ldr r1, _080BC5B8
+ movs r0, 0
+_080BC5B0:
+ strh r0, [r1]
+_080BC5B2:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BC5B8: .4byte gScriptResult
+ thumb_func_end sub_80BC56C
+
+ thumb_func_start sub_80BC5BC
+sub_80BC5BC: @ 80BC5BC
+ push {lr}
+ ldr r0, _080BC5F8
+ ldrb r0, [r0]
+ bl sub_80BC14C
+ ldr r2, _080BC5FC
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 5
+ adds r1, r2
+ ldr r0, _080BC600
+ adds r1, r0
+ ldrb r3, [r1]
+ lsrs r2, r3, 6
+ movs r0, 0x1
+ eors r2, r0
+ lsls r2, 6
+ movs r0, 0x3F
+ ands r0, r3
+ orrs r0, r2
+ strb r0, [r1]
+ movs r0, 0x86
+ lsls r0, 1
+ bl FlagSet
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BC5F8: .4byte gUnknown_020387DC
+_080BC5FC: .4byte gSaveBlock1
+_080BC600: .4byte 0x00001a09
+ thumb_func_end sub_80BC5BC
+
+ thumb_func_start sub_80BC604
+sub_80BC604: @ 80BC604
+ push {lr}
+ ldr r0, _080BC614
+ movs r1, 0
+ bl CreateTask
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BC614: .4byte sub_80FE264
+ thumb_func_end sub_80BC604
+
+ thumb_func_start sub_80BC618
+sub_80BC618: @ 80BC618
+ push {lr}
+ ldr r0, _080BC628
+ movs r1, 0
+ bl CreateTask
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BC628: .4byte sub_80BC62C
+ thumb_func_end sub_80BC618
+
+ thumb_func_start sub_80BC62C
+sub_80BC62C: @ 80BC62C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ bl ScriptContext2_Enable
+ bl sub_80F944C
+ bl InitMenuInUpperLeftCornerPlaySoundWhenAPressed
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, _080BC688
+ adds r4, r0, r1
+ bl sub_80BC538
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4]
+ adds r1, r0, 0
+ cmp r1, 0
+ beq _080BC694
+ cmp r1, 0x7
+ ble _080BC65E
+ movs r0, 0x7
+_080BC65E:
+ strh r0, [r4, 0x6]
+ movs r0, 0
+ strh r0, [r4, 0x2]
+ strh r0, [r4, 0x4]
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ adds r0, r5, 0
+ bl sub_80BC7D8
+ ldr r1, _080BC68C
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080BC690
+ str r1, [r0]
+ b _080BC6A0
+ .align 2, 0
+_080BC688: .4byte gUnknown_03004B28
+_080BC68C: .4byte gTasks
+_080BC690: .4byte sub_80BC824
+_080BC694:
+ ldr r1, _080BC6A8
+ ldr r2, _080BC6AC
+ adds r0, r5, 0
+ movs r3, 0
+ bl DisplayItemMessageOnField
+_080BC6A0:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BC6A8: .4byte gSecretBaseText_NoRegistry
+_080BC6AC: .4byte sub_80BCC54
+ thumb_func_end sub_80BC62C
+
+ thumb_func_start sub_80BC6B0
+sub_80BC6B0: @ 80BC6B0
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _080BC6D8
+ adds r1, r0
+ mov r8, r1
+ movs r4, 0
+ movs r6, 0
+ movs r5, 0x1
+ movs r2, 0x4
+ ldrsh r0, [r1, r2]
+ cmp r6, r0
+ bne _080BC6DC
+ movs r4, 0x1
+ b _080BC706
+ .align 2, 0
+_080BC6D8: .4byte gUnknown_03004B28
+_080BC6DC:
+ adds r0, r5, 0
+ bl sub_80BC268
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080BC6F0
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+_080BC6F0:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x13
+ bhi _080BC706
+ mov r1, r8
+ movs r2, 0x4
+ ldrsh r0, [r1, r2]
+ cmp r4, r0
+ bne _080BC6DC
+ adds r4, r5, 0
+_080BC706:
+ adds r5, r4, 0
+ cmp r5, 0x13
+ bhi _080BC75A
+ ldr r7, _080BC7A0
+_080BC70E:
+ adds r0, r5, 0
+ bl sub_80BC268
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080BC750
+ adds r0, r7, 0
+ adds r1, r5, 0
+ bl sub_80BC190
+ lsls r3, r6, 1
+ adds r4, r3, 0x2
+ lsls r4, 24
+ lsrs r4, 24
+ adds r3, 0x3
+ lsls r3, 24
+ lsrs r3, 24
+ movs r0, 0x12
+ adds r1, r4, 0
+ movs r2, 0x1C
+ bl MenuFillWindowRectWithBlankTile
+ adds r0, r7, 0
+ movs r1, 0x12
+ adds r2, r4, 0
+ bl MenuPrint
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, 0x8
+ beq _080BC75A
+_080BC750:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x13
+ bls _080BC70E
+_080BC75A:
+ cmp r6, 0x7
+ bhi _080BC7A8
+ lsls r3, r6, 1
+ adds r4, r3, 0x2
+ lsls r4, 24
+ lsrs r4, 24
+ adds r3, 0x3
+ lsls r3, 24
+ lsrs r3, 24
+ movs r0, 0x12
+ adds r1, r4, 0
+ movs r2, 0x1C
+ bl MenuFillWindowRectWithBlankTile
+ ldr r0, _080BC7A4
+ movs r1, 0x12
+ adds r2, r4, 0
+ bl MenuPrint
+ movs r0, 0x1
+ bl SetBgTilemapBuffer
+ cmp r6, 0x7
+ beq _080BC7B2
+ lsls r1, r6, 25
+ movs r0, 0x80
+ lsls r0, 19
+ adds r1, r0
+ lsrs r1, 24
+ movs r0, 0x12
+ movs r2, 0x1C
+ movs r3, 0x12
+ bl MenuFillWindowRectWithBlankTile
+ b _080BC7B2
+ .align 2, 0
+_080BC7A0: .4byte gStringVar1
+_080BC7A4: .4byte gUnknownText_Exit
+_080BC7A8:
+ movs r0, 0x1
+ movs r1, 0xBC
+ movs r2, 0x98
+ bl sub_80F953C
+_080BC7B2:
+ mov r1, r8
+ movs r2, 0x4
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ bne _080BC7C4
+ movs r0, 0
+ bl SetBgTilemapBuffer
+ b _080BC7CE
+_080BC7C4:
+ movs r0, 0
+ movs r1, 0xBC
+ movs r2, 0x8
+ bl sub_80F953C
+_080BC7CE:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80BC6B0
+
+ thumb_func_start sub_80BC7D8
+sub_80BC7D8: @ 80BC7D8
+ push {r4,r5,lr}
+ sub sp, 0x8
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r4, r5, 2
+ adds r4, r5
+ lsls r4, 3
+ ldr r0, _080BC820
+ adds r4, r0
+ movs r0, 0x11
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuDrawTextWindow
+ ldrb r3, [r4, 0x6]
+ adds r3, 0x1
+ lsls r3, 24
+ lsrs r3, 24
+ ldrb r0, [r4, 0x2]
+ str r0, [sp]
+ movs r0, 0xB
+ str r0, [sp, 0x4]
+ movs r0, 0
+ movs r1, 0x12
+ movs r2, 0x2
+ bl InitMenu
+ adds r0, r5, 0
+ bl sub_80BC6B0
+ add sp, 0x8
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BC820: .4byte gUnknown_03004B28
+ thumb_func_end sub_80BC7D8
+
+ thumb_func_start sub_80BC824
+sub_80BC824: @ 80BC824
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r6, r5, 0
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, _080BC858
+ adds r4, r0, r1
+ ldr r2, _080BC85C
+ ldrh r1, [r2, 0x30]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _080BC874
+ movs r1, 0x2
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080BC860
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+ negs r0, r0
+ b _080BC8B6
+ .align 2, 0
+_080BC858: .4byte gUnknown_03004B28
+_080BC85C: .4byte gMain
+_080BC860:
+ movs r2, 0x4
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ beq _080BC940
+ movs r0, 0x5
+ bl PlaySE
+ ldrh r0, [r4, 0x4]
+ subs r0, 0x1
+ b _080BC8A4
+_080BC874:
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _080BC8C2
+ movs r0, 0x2
+ ldrsh r1, [r4, r0]
+ movs r2, 0x6
+ ldrsh r0, [r4, r2]
+ cmp r1, r0
+ bne _080BC8AE
+ movs r1, 0x4
+ ldrsh r0, [r4, r1]
+ movs r2, 0x2
+ ldrsh r1, [r4, r2]
+ adds r0, r1
+ movs r2, 0
+ ldrsh r1, [r4, r2]
+ cmp r0, r1
+ beq _080BC940
+ movs r0, 0x5
+ bl PlaySE
+ ldrh r0, [r4, 0x4]
+ adds r0, 0x1
+_080BC8A4:
+ strh r0, [r4, 0x4]
+ adds r0, r5, 0
+ bl sub_80BC6B0
+ b _080BC940
+_080BC8AE:
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+_080BC8B6:
+ bl MoveMenuCursor
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x2]
+ b _080BC940
+_080BC8C2:
+ ldrh r1, [r2, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080BC91C
+ movs r0, 0x5
+ bl PlaySE
+ movs r1, 0x2
+ ldrsh r0, [r4, r1]
+ movs r2, 0x4
+ ldrsh r1, [r4, r2]
+ adds r0, r1
+ movs r2, 0
+ ldrsh r1, [r4, r2]
+ cmp r0, r1
+ bne _080BC8FC
+ bl sub_8072DEC
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ adds r0, r5, 0
+ bl sub_80BCC54
+ b _080BC940
+_080BC8FC:
+ bl sub_8072DEC
+ ldrb r0, [r4, 0x4]
+ ldrb r1, [r4, 0x2]
+ adds r0, r1
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_80BC948
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x8]
+ adds r0, r5, 0
+ bl sub_80BC980
+ b _080BC940
+_080BC91C:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080BC940
+ movs r0, 0x5
+ bl PlaySE
+ bl sub_8072DEC
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ adds r0, r6, 0
+ bl sub_80BCC54
+_080BC940:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80BC824
+
+ thumb_func_start sub_80BC948
+sub_80BC948: @ 80BC948
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r5, 0
+ movs r4, 0x1
+_080BC952:
+ adds r0, r4, 0
+ bl sub_80BC268
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080BC96E
+ cmp r6, r5
+ bne _080BC968
+ adds r0, r4, 0
+ b _080BC97A
+_080BC968:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+_080BC96E:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x13
+ bls _080BC952
+ movs r0, 0
+_080BC97A:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80BC948
+
+ thumb_func_start sub_80BC980
+sub_80BC980: @ 80BC980
+ push {r4,lr}
+ sub sp, 0x8
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0
+ bl sub_80F996C
+ movs r0, 0x1
+ bl sub_80F996C
+ movs r0, 0x1
+ movs r1, 0
+ movs r2, 0xC
+ movs r3, 0x5
+ bl MenuDrawTextWindow
+ ldr r3, _080BC9D8
+ movs r0, 0x2
+ movs r1, 0x1
+ movs r2, 0x2
+ bl PrintMenuItems
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0xA
+ str r0, [sp, 0x4]
+ movs r0, 0
+ movs r1, 0x2
+ movs r2, 0x1
+ movs r3, 0x2
+ bl InitMenu
+ ldr r1, _080BC9DC
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080BC9E0
+ str r1, [r0]
+ add sp, 0x8
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BC9D8: .4byte gUnknown_083D13D4
+_080BC9DC: .4byte gTasks
+_080BC9E0: .4byte sub_80BC9E4
+ thumb_func_end sub_80BC980
+
+ thumb_func_start sub_80BC9E4
+sub_80BC9E4: @ 80BC9E4
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r4, r5, 0
+ ldr r2, _080BCA14
+ ldrh r1, [r2, 0x30]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _080BCA18
+ bl GetMenuCursorPos
+ lsls r0, 24
+ cmp r0, 0
+ beq _080BCA7C
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+ negs r0, r0
+ bl MoveMenuCursor
+ b _080BCA7C
+ .align 2, 0
+_080BCA14: .4byte gMain
+_080BCA18:
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _080BCA3A
+ bl GetMenuCursorPos
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _080BCA7C
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+ bl MoveMenuCursor
+ b _080BCA7C
+_080BCA3A:
+ ldrh r1, [r2, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080BCA68
+ movs r0, 0x5
+ bl PlaySE
+ ldr r4, _080BCA64
+ bl GetMenuCursorPos
+ lsls r0, 24
+ lsrs r0, 21
+ adds r4, 0x4
+ adds r0, r4
+ ldr r1, [r0]
+ adds r0, r5, 0
+ bl _call_via_r1
+ b _080BCA7C
+ .align 2, 0
+_080BCA64: .4byte gUnknown_083D13D4
+_080BCA68:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080BCA7C
+ movs r0, 0x5
+ bl PlaySE
+ adds r0, r4, 0
+ bl sub_80BCBF8
+_080BCA7C:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80BC9E4
+
+ thumb_func_start sub_80BCA84
+sub_80BCA84: @ 80BCA84
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r4, r5, 2
+ adds r4, r5
+ lsls r4, 3
+ ldr r0, _080BCAD8
+ adds r4, r0
+ movs r0, 0
+ bl SetBgTilemapBuffer
+ movs r0, 0x1
+ bl SetBgTilemapBuffer
+ bl sub_8072DEC
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ ldr r0, _080BCADC
+ ldrb r1, [r4, 0x8]
+ bl sub_80BC190
+ ldr r4, _080BCAE0
+ ldr r1, _080BCAE4
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ ldr r2, _080BCAE8
+ adds r0, r5, 0
+ adds r1, r4, 0
+ movs r3, 0
+ bl DisplayItemMessageOnField
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BCAD8: .4byte gUnknown_03004B28
+_080BCADC: .4byte gStringVar1
+_080BCAE0: .4byte gStringVar4
+_080BCAE4: .4byte gOtherText_OkayToDeleteFromRegistry
+_080BCAE8: .4byte sub_80BCAEC
+ thumb_func_end sub_80BCA84
+
+ thumb_func_start sub_80BCAEC
+sub_80BCAEC: @ 80BCAEC
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x14
+ movs r1, 0x8
+ movs r2, 0x1
+ bl DisplayYesNoMenu
+ ldr r1, _080BCB0C
+ adds r0, r4, 0
+ bl sub_80F914C
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BCB0C: .4byte gUnknown_083D13E4
+ thumb_func_end sub_80BCAEC
+
+ thumb_func_start sub_80BCB10
+sub_80BCB10: @ 80BCB10
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r5, r0, 0
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r6, r0, 3
+ ldr r7, _080BCB80
+ adds r4, r6, r7
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ ldr r2, _080BCB84
+ movs r0, 0x8
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 5
+ adds r0, r2
+ ldr r1, _080BCB88
+ adds r0, r1
+ ldrb r2, [r0]
+ movs r1, 0x3F
+ ands r1, r2
+ strb r1, [r0]
+ ldrh r0, [r4]
+ subs r0, 0x1
+ strh r0, [r4]
+ ldrh r1, [r4, 0x4]
+ movs r2, 0x4
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ ble _080BCB5C
+ subs r0, r1, 0x1
+ strh r0, [r4, 0x4]
+_080BCB5C:
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x7
+ bgt _080BCB6A
+ ldrh r0, [r4, 0x6]
+ subs r0, 0x1
+ strh r0, [r4, 0x6]
+_080BCB6A:
+ adds r0, r5, 0
+ bl sub_80BC7D8
+ adds r0, r7, 0
+ subs r0, 0x8
+ adds r0, r6, r0
+ ldr r1, _080BCB8C
+ str r1, [r0]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BCB80: .4byte gUnknown_03004B28
+_080BCB84: .4byte gSaveBlock1
+_080BCB88: .4byte 0x00001a09
+_080BCB8C: .4byte sub_80BC824
+ thumb_func_end sub_80BCB10
+
+ thumb_func_start sub_80BCB90
+sub_80BCB90: @ 80BCB90
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x14
+ movs r1, 0x8
+ movs r2, 0x1A
+ movs r3, 0xD
+ bl MenuZeroFillWindowRect
+ ldr r1, _080BCBB8
+ ldr r2, _080BCBBC
+ adds r0, r4, 0
+ movs r3, 0
+ bl DisplayItemMessageOnField
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BCBB8: .4byte gOtherText_RegisteredDataDeleted
+_080BCBBC: .4byte sub_80BCB10
+ thumb_func_end sub_80BCB90
+
+ thumb_func_start sub_80BCBC0
+sub_80BCBC0: @ 80BCBC0
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ adds r0, r4, 0
+ bl sub_80BC7D8
+ ldr r1, _080BCBF0
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080BCBF4
+ str r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BCBF0: .4byte gTasks
+_080BCBF4: .4byte sub_80BC824
+ thumb_func_end sub_80BCBC0
+
+ thumb_func_start sub_80BCBF8
+sub_80BCBF8: @ 80BCBF8
+ push {r4,r5,lr}
+ sub sp, 0x8
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ ldr r5, _080BCC4C
+ adds r0, r4, r5
+ ldrb r3, [r0, 0x6]
+ adds r3, 0x1
+ lsls r3, 24
+ lsrs r3, 24
+ ldrb r0, [r0, 0x2]
+ str r0, [sp]
+ movs r0, 0xB
+ str r0, [sp, 0x4]
+ movs r0, 0
+ movs r1, 0x12
+ movs r2, 0x2
+ bl InitMenu
+ movs r0, 0x1
+ movs r1, 0
+ movs r2, 0xC
+ movs r3, 0x5
+ bl MenuZeroFillWindowRect
+ movs r0, 0
+ bl sub_80F98DC
+ movs r0, 0x1
+ bl sub_80F98DC
+ subs r5, 0x8
+ adds r4, r5
+ ldr r0, _080BCC50
+ str r0, [r4]
+ add sp, 0x8
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BCC4C: .4byte gUnknown_03004B28
+_080BCC50: .4byte sub_80BC824
+ thumb_func_end sub_80BCBF8
+
+ thumb_func_start sub_80BCC54
+sub_80BCC54: @ 80BCC54
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, _080BCC84
+ bl VarGet
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ bl BuyMenuFreeMemory
+ movs r0, 0
+ bl SetBgTilemapBuffer
+ movs r0, 0x1
+ bl SetBgTilemapBuffer
+ cmp r4, 0
+ bne _080BCC8C
+ ldr r0, _080BCC88
+ bl ScriptContext1_SetupScript
+ b _080BCC92
+ .align 2, 0
+_080BCC84: .4byte 0x00004054
+_080BCC88: .4byte gUnknown_0815F399
+_080BCC8C:
+ ldr r0, _080BCCA0
+ bl ScriptContext1_SetupScript
+_080BCC92:
+ adds r0, r5, 0
+ bl DestroyTask
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BCCA0: .4byte gUnknown_0815F49A
+ thumb_func_end sub_80BCC54
+
+ thumb_func_start sub_80BCCA4
+sub_80BCCA4: @ 80BCCA4
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _080BCCDC
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 5
+ adds r4, r1
+ ldr r1, _080BCCE0
+ adds r0, r4, r1
+ ldrb r0, [r0]
+ movs r1, 0x5
+ bl __umodsi3
+ ldr r1, _080BCCE4
+ adds r4, r1
+ ldrb r2, [r4]
+ lsls r2, 27
+ lsrs r2, 31
+ lsls r1, r2, 2
+ adds r1, r2
+ adds r0, r1
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080BCCDC: .4byte gSaveBlock1
+_080BCCE0: .4byte 0x00001a11
+_080BCCE4: .4byte 0x00001a09
+ thumb_func_end sub_80BCCA4
+
+ thumb_func_start sub_80BCCE8
+sub_80BCCE8: @ 80BCCE8
+ push {lr}
+ ldr r0, _080BCD08
+ bl VarGet
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_80BCCA4
+ lsls r0, 24
+ lsrs r0, 24
+ adds r1, r0, 0
+ cmp r0, 0
+ bne _080BCD10
+ ldr r0, _080BCD0C
+ b _080BCD72
+ .align 2, 0
+_080BCD08: .4byte 0x00004054
+_080BCD0C: .4byte UnknownString_81A1BB2
+_080BCD10:
+ cmp r0, 0x1
+ bne _080BCD1C
+ ldr r0, _080BCD18
+ b _080BCD72
+ .align 2, 0
+_080BCD18: .4byte UnknownString_81A1F67
+_080BCD1C:
+ cmp r0, 0x2
+ bne _080BCD28
+ ldr r0, _080BCD24
+ b _080BCD72
+ .align 2, 0
+_080BCD24: .4byte UnknownString_81A2254
+_080BCD28:
+ cmp r0, 0x3
+ bne _080BCD34
+ ldr r0, _080BCD30
+ b _080BCD72
+ .align 2, 0
+_080BCD30: .4byte UnknownString_81A25C3
+_080BCD34:
+ cmp r0, 0x4
+ bne _080BCD40
+ ldr r0, _080BCD3C
+ b _080BCD72
+ .align 2, 0
+_080BCD3C: .4byte UnknownString_81A2925
+_080BCD40:
+ cmp r0, 0x5
+ bne _080BCD4C
+ ldr r0, _080BCD48
+ b _080BCD72
+ .align 2, 0
+_080BCD48: .4byte UnknownString_81A1D74
+_080BCD4C:
+ cmp r0, 0x6
+ bne _080BCD58
+ ldr r0, _080BCD54
+ b _080BCD72
+ .align 2, 0
+_080BCD54: .4byte UnknownString_81A20C9
+_080BCD58:
+ cmp r0, 0x7
+ bne _080BCD64
+ ldr r0, _080BCD60
+ b _080BCD72
+ .align 2, 0
+_080BCD60: .4byte UnknownString_81A2439
+_080BCD64:
+ cmp r1, 0x8
+ beq _080BCD70
+ ldr r0, _080BCD6C
+ b _080BCD72
+ .align 2, 0
+_080BCD6C: .4byte UnknownString_81A2B2A
+_080BCD70:
+ ldr r0, _080BCD78
+_080BCD72:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080BCD78: .4byte UnknownString_81A2754
+ thumb_func_end sub_80BCCE8
+
+ thumb_func_start unref_sub_80BCD7C
+unref_sub_80BCD7C: @ 80BCD7C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ lsls r0, 24
+ lsrs r0, 24
+ movs r5, 0
+ ldr r7, _080BCDFC
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r6, r1, 5
+ ldr r0, _080BCE00
+ adds r0, r7
+ mov r10, r0
+ ldr r1, _080BCE04
+ adds r1, r7
+ mov r9, r1
+ ldr r2, _080BCE08
+ adds r2, r7
+ mov r8, r2
+ ldr r0, _080BCE0C
+ mov r12, r0
+_080BCDAA:
+ lsls r4, r5, 2
+ adds r0, r4, r6
+ add r0, r10
+ adds r3, r5, 0x1
+ str r3, [r0]
+ lsls r0, r5, 3
+ adds r0, r6
+ add r0, r9
+ strh r3, [r0]
+ lsls r1, r5, 1
+ adds r1, r6
+ mov r2, r8
+ adds r0, r1, r2
+ mov r2, r12
+ strh r2, [r0]
+ ldr r2, _080BCE10
+ adds r0, r7, r2
+ adds r1, r0
+ strh r3, [r1]
+ adds r2, r5, r6
+ ldr r1, _080BCE14
+ adds r0, r7, r1
+ adds r0, r2, r0
+ adds r1, r5, 0x5
+ strb r1, [r0]
+ ldr r1, _080BCE18
+ adds r0, r7, r1
+ adds r2, r0
+ adds r4, r5
+ strb r4, [r2]
+ lsls r3, 16
+ lsrs r5, r3, 16
+ cmp r5, 0
+ beq _080BCDAA
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BCDFC: .4byte gSaveBlock1
+_080BCE00: .4byte 0x00001a3c
+_080BCE04: .4byte 0x00001a54
+_080BCE08: .4byte 0x00001a84
+_080BCE0C: .4byte 0x00000115
+_080BCE10: .4byte 0x00001a90
+_080BCE14: .4byte 0x00001a9c
+_080BCE18: .4byte 0x00001aa2
+ thumb_func_end unref_sub_80BCD7C
+
+ thumb_func_start sub_80BCE1C
+sub_80BCE1C: @ 80BCE1C
+ push {r4,lr}
+ ldr r0, _080BCE44
+ bl VarGet
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ movs r0, 0x1
+ bl sub_810FB10
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 5
+ ldr r1, _080BCE48
+ adds r0, r1
+ bl CreateSecretBaseEnemyParty
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BCE44: .4byte 0x00004054
+_080BCE48: .4byte gSaveBlock1 + 0x1A08
+ thumb_func_end sub_80BCE1C
+
+ thumb_func_start sub_80BCE4C
+sub_80BCE4C: @ 80BCE4C
+ push {lr}
+ ldr r0, _080BCE80
+ bl VarGet
+ ldr r2, _080BCE84
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 5
+ adds r1, r2
+ ldr r0, _080BCE88
+ ldrb r0, [r0]
+ ldr r2, _080BCE8C
+ adds r1, r2
+ movs r2, 0x1
+ ands r2, r0
+ lsls r2, 5
+ ldrb r3, [r1]
+ movs r0, 0x21
+ negs r0, r0
+ ands r0, r3
+ orrs r0, r2
+ strb r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BCE80: .4byte 0x00004054
+_080BCE84: .4byte gSaveBlock1
+_080BCE88: .4byte gScriptResult
+_080BCE8C: .4byte 0x00001a09
+ thumb_func_end sub_80BCE4C
+
+ thumb_func_start sub_80BCE90
+sub_80BCE90: @ 80BCE90
+ push {r4-r7,lr}
+ ldr r0, _080BCF04
+ bl VarGet
+ lsls r0, 16
+ lsrs r5, r0, 16
+ ldr r0, _080BCF08
+ bl FlagGet
+ lsls r0, 24
+ cmp r0, 0
+ bne _080BCED4
+ movs r3, 0
+ ldr r7, _080BCF0C
+ ldr r4, _080BCF10
+ movs r6, 0x21
+ negs r6, r6
+_080BCEB2:
+ lsls r1, r3, 2
+ adds r1, r3
+ lsls r1, 5
+ adds r1, r7
+ adds r1, r4
+ ldrb r2, [r1]
+ adds r0, r6, 0
+ ands r0, r2
+ strb r0, [r1]
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x13
+ bls _080BCEB2
+ ldr r0, _080BCF08
+ bl FlagSet
+_080BCED4:
+ ldr r4, _080BCF14
+ lsls r0, r5, 24
+ lsrs r0, 24
+ bl sub_80BCCA4
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4]
+ ldr r2, _080BCF18
+ ldr r1, _080BCF0C
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 5
+ adds r0, r1
+ ldr r1, _080BCF10
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 26
+ lsrs r0, 31
+ strh r0, [r2]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BCF04: .4byte 0x00004054
+_080BCF08: .4byte 0x000008c2
+_080BCF0C: .4byte gSaveBlock1
+_080BCF10: .4byte 0x00001a09
+_080BCF14: .4byte gUnknown_0202E8CC
+_080BCF18: .4byte gScriptResult
+ thumb_func_end sub_80BCE90
+
+ thumb_func_start sub_80BCF1C
+sub_80BCF1C: @ 80BCF1C
+ push {r4,r5,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _080BCF40
+ adds r4, r1, r0
+ movs r1, 0x2
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ beq _080BCF54
+ cmp r0, 0x1
+ bgt _080BCF44
+ cmp r0, 0
+ beq _080BCF4A
+ b _080BD02C
+ .align 2, 0
+_080BCF40: .4byte gUnknown_03004B28
+_080BCF44:
+ cmp r0, 0x2
+ beq _080BD01C
+ b _080BD02C
+_080BCF4A:
+ adds r0, r4, 0x4
+ adds r1, r4, 0x6
+ bl PlayerGetDestCoords
+ b _080BD028
+_080BCF54:
+ mov r5, sp
+ adds r5, 0x2
+ mov r0, sp
+ adds r1, r5, 0
+ bl PlayerGetDestCoords
+ mov r0, sp
+ ldrh r2, [r0]
+ movs r3, 0
+ ldrsh r1, [r0, r3]
+ movs r3, 0x4
+ ldrsh r0, [r4, r3]
+ cmp r1, r0
+ bne _080BCF7C
+ movs r0, 0
+ ldrsh r1, [r5, r0]
+ movs r3, 0x6
+ ldrsh r0, [r4, r3]
+ cmp r1, r0
+ beq _080BD02C
+_080BCF7C:
+ strh r2, [r4, 0x4]
+ ldrh r0, [r5]
+ strh r0, [r4, 0x6]
+ mov r0, sp
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ movs r2, 0
+ ldrsh r1, [r5, r2]
+ bl MapGridGetMetatileBehaviorAt
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r0, r4, 0
+ bl sub_8057350
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080BCFA8
+ bl sub_80C6C90
+ b _080BD02C
+_080BCFA8:
+ adds r0, r4, 0
+ bl sub_8057314
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080BCFD8
+ mov r0, sp
+ movs r3, 0
+ ldrsh r0, [r0, r3]
+ movs r2, 0
+ ldrsh r1, [r5, r2]
+ bl MapGridGetMetatileIdAt
+ lsls r0, 16
+ asrs r0, 16
+ mov r1, sp
+ movs r3, 0
+ ldrsh r1, [r1, r3]
+ movs r3, 0
+ ldrsh r2, [r5, r3]
+ bl sub_80C68A4
+ b _080BD02C
+_080BCFD8:
+ adds r0, r4, 0
+ bl sub_8057328
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080BCFF6
+ mov r0, sp
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ movs r2, 0
+ ldrsh r1, [r5, r2]
+ bl sub_80C6A54
+ b _080BD02C
+_080BCFF6:
+ adds r0, r4, 0
+ bl sub_805733C
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080BD02C
+ mov r0, sp
+ movs r3, 0
+ ldrsh r0, [r0, r3]
+ movs r2, 0
+ ldrsh r1, [r5, r2]
+ bl MapGridGetMetatileIdAt
+ lsls r0, 16
+ asrs r0, 16
+ bl sub_80C6C30
+ b _080BD02C
+_080BD01C:
+ ldrb r0, [r4, 0x8]
+ bl FieldEffectActiveListContains
+ lsls r0, 24
+ cmp r0, 0
+ bne _080BD02C
+_080BD028:
+ movs r0, 0x1
+ strh r0, [r4, 0x2]
+_080BD02C:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80BCF1C
+
+ thumb_func_start sub_80BD034
+sub_80BD034: @ 80BD034
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080BD064
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 5
+ adds r4, r2
+ ldr r2, _080BD068
+ adds r0, r4, r2
+ movs r2, 0xA0
+ bl memcpy
+ ldr r0, _080BD06C
+ adds r4, r0
+ ldrb r1, [r4]
+ movs r0, 0x3F
+ ands r0, r1
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BD064: .4byte gSaveBlock1
+_080BD068: .4byte 0x00001a08
+_080BD06C: .4byte 0x00001a09
+ thumb_func_end sub_80BD034
+
+ thumb_func_start sub_80BD070
+sub_80BD070: @ 80BD070
+ push {r4,lr}
+ movs r2, 0
+ adds r4, r0, 0
+ adds r4, 0x9
+ adds r3, r1, 0
+ adds r3, 0x9
+_080BD07C:
+ adds r0, r4, r2
+ adds r1, r3, r2
+ ldrb r0, [r0]
+ ldrb r1, [r1]
+ cmp r0, r1
+ beq _080BD08C
+ movs r0, 0
+ b _080BD098
+_080BD08C:
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x3
+ bls _080BD07C
+ movs r0, 0x1
+_080BD098:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80BD070
+
+ thumb_func_start sub_80BD0A0
+sub_80BD0A0: @ 80BD0A0
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ adds r5, r1, 0
+ movs r3, 0
+ ldrb r0, [r6, 0x2]
+ cmp r0, 0xFF
+ bne _080BD0B4
+ ldrb r0, [r5, 0x2]
+ cmp r0, 0xFF
+ beq _080BD0E2
+_080BD0B4:
+ adds r2, r6, 0x2
+ adds r0, r2, r3
+ adds r4, r5, 0x2
+ adds r1, r4, r3
+ ldrb r0, [r0]
+ ldrb r1, [r1]
+ cmp r0, r1
+ beq _080BD0C8
+ movs r0, 0
+ b _080BD0E4
+_080BD0C8:
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x6
+ bhi _080BD0E2
+ adds r0, r2, r3
+ ldrb r0, [r0]
+ cmp r0, 0xFF
+ bne _080BD0B4
+ adds r0, r4, r3
+ ldrb r0, [r0]
+ cmp r0, 0xFF
+ bne _080BD0B4
+_080BD0E2:
+ movs r0, 0x1
+_080BD0E4:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80BD0A0
+
+ thumb_func_start sub_80BD0EC
+sub_80BD0EC: @ 80BD0EC
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ ldrb r2, [r4, 0x1]
+ movs r0, 0x10
+ adds r1, r0, 0
+ ands r1, r2
+ ldrb r2, [r5, 0x1]
+ ands r0, r2
+ cmp r1, r0
+ bne _080BD122
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_80BD070
+ lsls r0, 24
+ cmp r0, 0
+ beq _080BD122
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_80BD0A0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080BD122
+ movs r0, 0x1
+ b _080BD124
+_080BD122:
+ movs r0, 0
+_080BD124:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80BD0EC
+
+ thumb_func_start sub_80BD12C
+sub_80BD12C: @ 80BD12C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ movs r1, 0
+ ldr r4, _080BD150
+ ldr r3, _080BD154
+_080BD138:
+ lsls r0, r1, 16
+ asrs r1, r0, 16
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 5
+ adds r0, r4
+ adds r0, r3
+ ldrb r0, [r0]
+ cmp r0, r2
+ bne _080BD158
+ adds r0, r1, 0
+ b _080BD168
+ .align 2, 0
+_080BD150: .4byte gSaveBlock1
+_080BD154: .4byte 0x00001a08
+_080BD158:
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ asrs r0, 16
+ cmp r0, 0x13
+ ble _080BD138
+ movs r0, 0x1
+ negs r0, r0
+_080BD168:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80BD12C
+
+ thumb_func_start sub_80BD170
+sub_80BD170: @ 80BD170
+ push {r4,lr}
+ movs r2, 0x1
+ ldr r4, _080BD194
+ ldr r3, _080BD198
+_080BD178:
+ lsls r0, r2, 16
+ asrs r1, r0, 16
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 5
+ adds r0, r4
+ adds r0, r3
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080BD19C
+ lsls r0, r2, 24
+ lsrs r0, 24
+ b _080BD1AA
+ .align 2, 0
+_080BD194: .4byte gSaveBlock1
+_080BD198: .4byte 0x00001a08
+_080BD19C:
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ asrs r0, 16
+ cmp r0, 0x13
+ ble _080BD178
+ movs r0, 0
+_080BD1AA:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80BD170
+
+ thumb_func_start sub_80BD1B0
+sub_80BD1B0: @ 80BD1B0
+ push {r4,lr}
+ movs r3, 0x1
+ ldr r4, _080BD1DC
+_080BD1B6:
+ lsls r2, r3, 16
+ asrs r1, r2, 16
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 5
+ adds r0, r4
+ ldr r1, _080BD1E0
+ adds r0, r1
+ ldrb r1, [r0]
+ lsrs r0, r1, 6
+ cmp r0, 0
+ bne _080BD1E4
+ lsls r0, r1, 28
+ cmp r0, 0
+ bne _080BD1E4
+ lsls r0, r3, 24
+ lsrs r0, 24
+ b _080BD1F4
+ .align 2, 0
+_080BD1DC: .4byte gSaveBlock1
+_080BD1E0: .4byte 0x00001a09
+_080BD1E4:
+ movs r1, 0x80
+ lsls r1, 9
+ adds r0, r2, r1
+ lsrs r3, r0, 16
+ asrs r0, 16
+ cmp r0, 0x13
+ ble _080BD1B6
+ movs r0, 0
+_080BD1F4:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80BD1B0
+
+ thumb_func_start sub_80BD1FC
+sub_80BD1FC: @ 80BD1FC
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldrb r0, [r5]
+ cmp r0, 0
+ beq _080BD278
+ ldrb r0, [r5]
+ bl sub_80BD12C
+ lsls r0, 16
+ lsrs r4, r0, 16
+ asrs r2, r0, 16
+ cmp r2, 0
+ beq _080BD278
+ movs r0, 0x1
+ negs r0, r0
+ cmp r2, r0
+ beq _080BD254
+ ldr r0, _080BD24C
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 5
+ adds r1, r0
+ ldr r0, _080BD250
+ adds r1, r0
+ ldrb r1, [r1]
+ lsls r0, r1, 28
+ lsrs r0, 28
+ cmp r0, 0x1
+ beq _080BD278
+ lsrs r0, r1, 6
+ cmp r0, 0x2
+ bne _080BD246
+ ldrb r1, [r5, 0x1]
+ movs r0, 0xF
+ ands r0, r1
+ cmp r0, 0x1
+ bne _080BD278
+_080BD246:
+ lsls r4, 24
+ lsrs r4, 24
+ b _080BD26C
+ .align 2, 0
+_080BD24C: .4byte gSaveBlock1
+_080BD250: .4byte 0x00001a09
+_080BD254:
+ bl sub_80BD170
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ bne _080BD26C
+ bl sub_80BD1B0
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ beq _080BD278
+_080BD26C:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_80BD034
+ adds r0, r4, 0
+ b _080BD27A
+_080BD278:
+ movs r0, 0
+_080BD27A:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80BD1FC
+
+ thumb_func_start sub_80BD280
+sub_80BD280: @ 80BD280
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0xA0
+ ldr r0, _080BD324
+ mov r8, r0
+ movs r2, 0x1
+_080BD290:
+ adds r1, r2, 0x1
+ lsls r0, r1, 24
+ lsrs r5, r0, 24
+ mov r9, r1
+ cmp r5, 0x13
+ bhi _080BD30C
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 5
+ mov r1, r8
+ adds r6, r0, r1
+ movs r7, 0xC0
+_080BD2A8:
+ ldrb r0, [r6, 0x1]
+ adds r3, r7, 0
+ ands r3, r0
+ cmp r3, 0
+ bne _080BD2C6
+ lsls r2, r5, 2
+ adds r0, r2, r5
+ lsls r0, 5
+ add r0, r8
+ ldrb r1, [r0, 0x1]
+ adds r0, r7, 0
+ ands r0, r1
+ adds r4, r2, 0
+ cmp r0, 0x40
+ beq _080BD2DE
+_080BD2C6:
+ cmp r3, 0x80
+ bne _080BD302
+ lsls r2, r5, 2
+ adds r0, r2, r5
+ lsls r0, 5
+ add r0, r8
+ ldrb r1, [r0, 0x1]
+ adds r0, r7, 0
+ ands r0, r1
+ adds r4, r2, 0
+ cmp r0, 0x80
+ beq _080BD302
+_080BD2DE:
+ mov r0, sp
+ adds r1, r6, 0
+ movs r2, 0xA0
+ bl memcpy
+ adds r4, r5
+ lsls r4, 5
+ add r4, r8
+ adds r0, r6, 0
+ adds r1, r4, 0
+ movs r2, 0xA0
+ bl memcpy
+ adds r0, r4, 0
+ mov r1, sp
+ movs r2, 0xA0
+ bl memcpy
+_080BD302:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x13
+ bls _080BD2A8
+_080BD30C:
+ mov r1, r9
+ lsls r0, r1, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x12
+ bls _080BD290
+ add sp, 0xA0
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BD324: .4byte gSaveBlock1 + 0x1A08
+ thumb_func_end sub_80BD280
+
+ thumb_func_start sub_80BD328
+sub_80BD328: @ 80BD328
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ lsls r1, 24
+ lsrs r5, r1, 24
+ movs r4, 0x1
+_080BD332:
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 5
+ adds r1, r0, r6
+ ldrb r0, [r1, 0x1]
+ lsrs r0, 6
+ cmp r0, r5
+ bne _080BD348
+ adds r0, r1, 0
+ bl sub_80BD1FC
+_080BD348:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x13
+ bls _080BD332
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80BD328
+
+ thumb_func_start sub_80BD358
+sub_80BD358: @ 80BD358
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ ldrb r0, [r5]
+ cmp r0, 0
+ beq _080BD372
+ ldrb r0, [r5, 0x1]
+ lsls r0, 27
+ ldr r1, _080BD378
+ lsrs r0, 31
+ adds r4, r1, 0
+ ldrb r1, [r4, 0x8]
+ cmp r0, r1
+ beq _080BD37C
+_080BD372:
+ movs r0, 0
+ b _080BD3D4
+ .align 2, 0
+_080BD378: .4byte gSaveBlock2
+_080BD37C:
+ movs r2, 0
+ adds r3, r5, 0
+ adds r3, 0x9
+ adds r6, r4, 0
+ adds r6, 0xA
+_080BD386:
+ adds r0, r3, r2
+ adds r1, r2, r6
+ ldrb r0, [r0]
+ ldrb r1, [r1]
+ cmp r0, r1
+ bne _080BD372
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x3
+ bls _080BD386
+ movs r2, 0
+ ldrb r0, [r5, 0x2]
+ cmp r0, 0xFF
+ bne _080BD3AA
+ ldrb r0, [r4]
+ cmp r0, 0xFF
+ beq _080BD3D2
+_080BD3AA:
+ adds r3, r5, 0x2
+ adds r0, r3, r2
+ adds r1, r2, r4
+ ldrb r0, [r0]
+ ldrb r1, [r1]
+ cmp r0, r1
+ bne _080BD372
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x6
+ bhi _080BD3D2
+ adds r0, r3, r2
+ ldrb r0, [r0]
+ cmp r0, 0xFF
+ bne _080BD3AA
+ adds r0, r2, r4
+ ldrb r0, [r0]
+ cmp r0, 0xFF
+ bne _080BD3AA
+_080BD3D2:
+ movs r0, 0x1
+_080BD3D4:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80BD358
+
+ thumb_func_start sub_80BD3DC
+sub_80BD3DC: @ 80BD3DC
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ mov r10, r0
+ mov r9, r1
+ mov r8, r2
+ movs r5, 0
+ movs r6, 0
+_080BD3F0:
+ movs r0, 0x1
+ ands r0, r5
+ cmp r0, 0
+ bne _080BD41A
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 5
+ mov r1, r10
+ adds r4, r1, r0
+ adds r0, r4, 0
+ bl sub_80BD358
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080BD41A
+ adds r0, r4, 0
+ bl sub_80BB4AC
+ movs r0, 0x1
+ orrs r5, r0
+_080BD41A:
+ movs r7, 0x2
+ movs r0, 0x2
+ ands r0, r5
+ cmp r0, 0
+ bne _080BD448
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 5
+ mov r1, r9
+ adds r4, r1, r0
+ adds r0, r4, 0
+ bl sub_80BD358
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080BD448
+ adds r0, r4, 0
+ bl sub_80BB4AC
+ orrs r5, r7
+ lsls r0, r5, 24
+ lsrs r5, r0, 24
+_080BD448:
+ movs r7, 0x4
+ movs r0, 0x4
+ ands r0, r5
+ cmp r0, 0
+ bne _080BD476
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 5
+ mov r1, r8
+ adds r4, r1, r0
+ adds r0, r4, 0
+ bl sub_80BD358
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080BD476
+ adds r0, r4, 0
+ bl sub_80BB4AC
+ orrs r5, r7
+ lsls r0, r5, 24
+ lsrs r5, r0, 24
+_080BD476:
+ cmp r5, 0x7
+ beq _080BD484
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, 0x13
+ bls _080BD3F0
+_080BD484:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80BD3DC
+
+ thumb_func_start sub_80BD494
+sub_80BD494: @ 80BD494
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r6, r0, 0
+ mov r8, r1
+ lsls r2, 24
+ lsrs r7, r2, 24
+ movs r5, 0
+_080BD4A4:
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 5
+ mov r1, r8
+ adds r4, r0, r1
+ ldrb r0, [r4]
+ cmp r0, 0
+ beq _080BD4FE
+ adds r0, r6, 0
+ adds r1, r4, 0
+ bl sub_80BD0EC
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080BD4FE
+ cmp r7, 0
+ bne _080BD4D0
+ adds r0, r4, 0
+ bl sub_80BB4AC
+ b _080BD508
+_080BD4D0:
+ ldrh r0, [r6, 0xE]
+ ldrh r3, [r4, 0xE]
+ cmp r0, r3
+ bls _080BD4E0
+ adds r0, r4, 0
+ bl sub_80BB4AC
+ b _080BD508
+_080BD4E0:
+ ldrb r0, [r6, 0x1]
+ lsls r0, 28
+ lsrs r0, 28
+ ldrb r1, [r4, 0x1]
+ movs r3, 0x10
+ negs r3, r3
+ adds r2, r3, 0
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r4, 0x1]
+ adds r0, r6, 0
+ bl sub_80BB4AC
+ movs r0, 0x1
+ b _080BD50A
+_080BD4FE:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x13
+ bls _080BD4A4
+_080BD508:
+ movs r0, 0
+_080BD50A:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80BD494
+
+ thumb_func_start sub_80BD514
+sub_80BD514: @ 80BD514
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ mov r9, r0
+ adds r7, r1, 0
+ mov r8, r2
+ adds r6, r3, 0
+ movs r5, 0x1
+_080BD526:
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 5
+ mov r1, r9
+ adds r4, r0, r1
+ ldrb r0, [r4]
+ cmp r0, 0
+ beq _080BD578
+ ldrb r1, [r4, 0x1]
+ movs r0, 0xC0
+ ands r0, r1
+ cmp r0, 0x40
+ bne _080BD54E
+ movs r2, 0x10
+ negs r2, r2
+ adds r0, r2, 0
+ ands r0, r1
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r4, 0x1]
+_080BD54E:
+ adds r0, r4, 0
+ adds r1, r7, 0
+ adds r2, r5, 0
+ bl sub_80BD494
+ lsls r0, 24
+ cmp r0, 0
+ bne _080BD578
+ adds r0, r4, 0
+ mov r1, r8
+ adds r2, r5, 0
+ bl sub_80BD494
+ lsls r0, 24
+ cmp r0, 0
+ bne _080BD578
+ adds r0, r4, 0
+ adds r1, r6, 0
+ adds r2, r5, 0
+ bl sub_80BD494
+_080BD578:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x13
+ bls _080BD526
+ movs r5, 0
+_080BD584:
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 5
+ adds r4, r0, r7
+ ldrb r0, [r4]
+ cmp r0, 0
+ beq _080BD5B8
+ ldrb r0, [r4, 0x1]
+ movs r2, 0x21
+ negs r2, r2
+ adds r1, r2, 0
+ ands r0, r1
+ strb r0, [r4, 0x1]
+ adds r0, r4, 0
+ mov r1, r8
+ adds r2, r5, 0
+ bl sub_80BD494
+ lsls r0, 24
+ cmp r0, 0
+ bne _080BD5B8
+ adds r0, r4, 0
+ adds r1, r6, 0
+ adds r2, r5, 0
+ bl sub_80BD494
+_080BD5B8:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x13
+ bls _080BD584
+ movs r5, 0
+ movs r0, 0x21
+ negs r0, r0
+ adds r7, r0, 0
+_080BD5CA:
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r4, r0, 5
+ mov r2, r8
+ adds r1, r4, r2
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _080BD5EA
+ ldrb r0, [r1, 0x1]
+ ands r0, r7
+ strb r0, [r1, 0x1]
+ adds r0, r1, 0
+ adds r1, r6, 0
+ adds r2, r5, 0
+ bl sub_80BD494
+_080BD5EA:
+ adds r1, r4, r6
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _080BD5F8
+ ldrb r0, [r1, 0x1]
+ ands r0, r7
+ strb r0, [r1, 0x1]
+_080BD5F8:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x13
+ bls _080BD5CA
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80BD514
+
+ thumb_func_start sub_80BD610
+sub_80BD610: @ 80BD610
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ adds r6, r2, 0
+ bl sub_80BD3DC
+ ldr r0, _080BD670
+ adds r1, r4, 0
+ adds r2, r5, 0
+ adds r3, r6, 0
+ bl sub_80BD514
+ adds r0, r4, 0
+ bl sub_80BD1FC
+ adds r0, r5, 0
+ bl sub_80BD1FC
+ adds r0, r6, 0
+ bl sub_80BD1FC
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_80BD328
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl sub_80BD328
+ adds r0, r6, 0
+ movs r1, 0x1
+ bl sub_80BD328
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_80BD328
+ adds r0, r5, 0
+ movs r1, 0
+ bl sub_80BD328
+ adds r0, r6, 0
+ movs r1, 0
+ bl sub_80BD328
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BD670: .4byte gSaveBlock1 + 0x1A08
+ thumb_func_end sub_80BD610
+
+ thumb_func_start sub_80BD674
+sub_80BD674: @ 80BD674
+ push {r4-r7,lr}
+ adds r6, r0, 0
+ adds r5, r1, 0
+ lsls r2, 24
+ lsrs r7, r2, 24
+ movs r0, 0x60
+ bl FlagGet
+ lsls r0, 24
+ cmp r0, 0
+ bne _080BD68C
+ b _080BD790
+_080BD68C:
+ bl GetLinkPlayerCount
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x2
+ beq _080BD69E
+ cmp r0, 0x3
+ beq _080BD6BA
+ b _080BD6C8
+_080BD69E:
+ lsls r4, r5, 1
+ adds r0, r6, r4
+ movs r1, 0
+ adds r2, r5, 0
+ bl memset
+ adds r4, r5
+ adds r4, r6, r4
+ adds r0, r4, 0
+ movs r1, 0
+ adds r2, r5, 0
+ bl memset
+ b _080BD6C8
+_080BD6BA:
+ lsls r0, r5, 1
+ adds r0, r5
+ adds r0, r6, r0
+ movs r1, 0
+ adds r2, r5, 0
+ bl memset
+_080BD6C8:
+ cmp r7, 0x1
+ beq _080BD6F0
+ cmp r7, 0x1
+ bgt _080BD6D6
+ cmp r7, 0
+ beq _080BD6E0
+ b _080BD71C
+_080BD6D6:
+ cmp r7, 0x2
+ beq _080BD700
+ cmp r7, 0x3
+ beq _080BD710
+ b _080BD71C
+_080BD6E0:
+ adds r0, r6, r5
+ lsls r2, r5, 1
+ adds r1, r6, r2
+ adds r2, r5
+ adds r2, r6, r2
+ bl sub_80BD610
+ b _080BD71C
+_080BD6F0:
+ lsls r1, r5, 1
+ adds r0, r6, r1
+ adds r1, r5
+ adds r1, r6, r1
+ adds r2, r6, 0
+ bl sub_80BD610
+ b _080BD71C
+_080BD700:
+ lsls r0, r5, 1
+ adds r0, r5
+ adds r0, r6, r0
+ adds r2, r6, r5
+ adds r1, r6, 0
+ bl sub_80BD610
+ b _080BD71C
+_080BD710:
+ adds r1, r6, r5
+ lsls r2, r5, 1
+ adds r2, r6, r2
+ adds r0, r6, 0
+ bl sub_80BD610
+_080BD71C:
+ movs r3, 0x1
+ ldr r6, _080BD798
+ movs r5, 0x10
+ negs r5, r5
+ ldr r4, _080BD79C
+_080BD726:
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r0, 5
+ adds r0, r6
+ adds r2, r0, r4
+ ldrb r1, [r2]
+ lsls r0, r1, 28
+ lsrs r0, 28
+ cmp r0, 0x1
+ bne _080BD746
+ movs r0, 0x3F
+ ands r0, r1
+ movs r1, 0x40
+ orrs r0, r1
+ ands r0, r5
+ strb r0, [r2]
+_080BD746:
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0x13
+ bls _080BD726
+ bl sub_80BD280
+ movs r3, 0x1
+ ldr r4, _080BD798
+ ldr r6, _080BD79C
+ adds r7, r4, 0
+ movs r5, 0x3F
+_080BD75E:
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r0, 5
+ adds r0, r4
+ adds r2, r0, r6
+ ldrb r1, [r2]
+ lsrs r0, r1, 6
+ cmp r0, 0x2
+ bne _080BD776
+ adds r0, r5, 0
+ ands r0, r1
+ strb r0, [r2]
+_080BD776:
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0x13
+ bls _080BD75E
+ ldr r0, _080BD7A0
+ adds r2, r7, r0
+ ldrh r1, [r2]
+ ldr r0, _080BD7A4
+ cmp r1, r0
+ beq _080BD790
+ adds r0, r1, 0x1
+ strh r0, [r2]
+_080BD790:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BD798: .4byte gSaveBlock1
+_080BD79C: .4byte 0x00001a09
+_080BD7A0: .4byte 0x00001a16
+_080BD7A4: .4byte 0x0000ffff
+ thumb_func_end sub_80BD674
+
+ thumb_func_start sub_80BD7A8
+sub_80BD7A8: @ 80BD7A8
+ push {r4-r7,lr}
+ movs r3, 0
+ ldr r6, _080BD7F0
+ movs r4, 0
+ ldr r0, _080BD7F4
+ adds r5, r6, r0
+_080BD7B4:
+ lsls r2, r3, 3
+ adds r2, r3
+ lsls r2, 2
+ adds r1, r2, r6
+ ldr r7, _080BD7F8
+ adds r0, r1, r7
+ strb r4, [r0]
+ ldr r0, _080BD7FC
+ adds r1, r0
+ strb r4, [r1]
+ movs r1, 0
+ adds r3, 0x1
+_080BD7CC:
+ adds r0, r1, r2
+ adds r0, r5
+ strb r4, [r0]
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x21
+ bls _080BD7CC
+ lsls r0, r3, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x18
+ bls _080BD7B4
+ bl sub_80BEBF4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BD7F0: .4byte gSaveBlock1
+_080BD7F4: .4byte 0x0000273a
+_080BD7F8: .4byte 0x00002738
+_080BD7FC: .4byte 0x00002739
+ thumb_func_end sub_80BD7A8
+
+ thumb_func_start special_0x44
+special_0x44: @ 80BD800
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ movs r4, 0x5
+ ldr r1, _080BD874
+ ldr r2, _080BD878
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080BD834
+ adds r2, r1, 0
+ ldr r1, _080BD87C
+_080BD81A:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x17
+ bhi _080BD834
+ lsls r0, r4, 3
+ adds r0, r4
+ lsls r0, 2
+ adds r0, r2
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080BD81A
+_080BD834:
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ adds r1, r4, 0
+ bl __modsi3
+ lsls r0, 24
+ lsrs r4, r0, 24
+ mov r8, r4
+ ldr r7, _080BD874
+ ldr r0, _080BD87C
+ adds r0, r7
+ mov r9, r0
+_080BD850:
+ lsls r0, r4, 3
+ adds r0, r4
+ lsls r6, r0, 2
+ adds r5, r6, r7
+ ldr r1, _080BD87C
+ adds r0, r5, r1
+ ldrb r0, [r0]
+ bl sub_80BFB54
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ beq _080BD884
+ ldr r2, _080BD880
+ adds r0, r5, r2
+ ldrb r0, [r0]
+ b _080BD890
+ .align 2, 0
+_080BD874: .4byte gSaveBlock1
+_080BD878: .4byte 0x000027ec
+_080BD87C: .4byte 0x00002738
+_080BD880: .4byte 0x00002739
+_080BD884:
+ mov r0, r9
+ adds r1, r6, r0
+ ldrh r0, [r1, 0x16]
+ cmp r0, 0
+ bne _080BD898
+ ldrb r0, [r1, 0x1]
+_080BD890:
+ cmp r0, 0x1
+ bne _080BD898
+ adds r0, r4, 0
+ b _080BD8AC
+_080BD898:
+ cmp r4, 0
+ bne _080BD8A0
+ movs r4, 0x17
+ b _080BD8A6
+_080BD8A0:
+ subs r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+_080BD8A6:
+ cmp r4, r8
+ bne _080BD850
+ movs r0, 0xFF
+_080BD8AC:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end special_0x44
+
+ thumb_func_start sub_80BD8B8
+sub_80BD8B8: @ 80BD8B8
+ push {lr}
+ bl special_0x44
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0xFF
+ bne _080BD8CA
+ movs r0, 0xFF
+ b _080BD902
+_080BD8CA:
+ ldr r2, _080BD8F4
+ ldr r3, _080BD8F8
+ adds r0, r2, r3
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _080BD900
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldr r2, _080BD8FC
+ adds r0, r2
+ ldrb r0, [r0]
+ cmp r0, 0x29
+ bne _080BD900
+ bl sub_80BDA30
+ lsls r0, 24
+ lsrs r0, 24
+ b _080BD902
+ .align 2, 0
+_080BD8F4: .4byte gSaveBlock1
+_080BD8F8: .4byte 0x00002afc
+_080BD8FC: .4byte 0x00002738
+_080BD900:
+ adds r0, r1, 0
+_080BD902:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80BD8B8
+
+ thumb_func_start UpdateTVScreensOnMap
+UpdateTVScreensOnMap: @ 80BD908
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ ldr r0, _080BD938
+ bl FlagSet
+ bl CheckForBigMovieOrEmergencyNewsOnTV
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _080BD92C
+ cmp r0, 0x2
+ beq _080BD97E
+ ldr r0, _080BD93C
+ ldrh r0, [r0, 0x4]
+ cmp r0, 0xD
+ bne _080BD940
+_080BD92C:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r2, 0x3
+ bl SetTVMetatilesOnMap
+ b _080BD97E
+ .align 2, 0
+_080BD938: .4byte 0x00000831
+_080BD93C: .4byte gSaveBlock1
+_080BD940:
+ ldr r0, _080BD984
+ bl FlagGet
+ lsls r0, 24
+ cmp r0, 0
+ beq _080BD97E
+ bl sub_80BD8B8
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xFF
+ bne _080BD96E
+ bl sub_80BECA0
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xFF
+ bne _080BD96E
+ bl IsTVShowInSearchOfTrainersAiring
+ lsls r0, 24
+ cmp r0, 0
+ beq _080BD97E
+_080BD96E:
+ ldr r0, _080BD988
+ bl FlagReset
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r2, 0x3
+ bl SetTVMetatilesOnMap
+_080BD97E:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BD984: .4byte 0x00000832
+_080BD988: .4byte 0x00000831
+ thumb_func_end UpdateTVScreensOnMap
+
+ thumb_func_start SetTVMetatilesOnMap
+SetTVMetatilesOnMap: @ 80BD98C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ mov r9, r0
+ mov r10, r1
+ lsls r2, 16
+ lsrs r2, 16
+ movs r5, 0
+ cmp r5, r10
+ bge _080BD9E0
+ movs r1, 0xC0
+ lsls r1, 4
+ adds r0, r1, 0
+ mov r8, r2
+ mov r1, r8
+ orrs r1, r0
+ mov r8, r1
+_080BD9B2:
+ movs r4, 0
+ adds r7, r5, 0x1
+ cmp r4, r9
+ bge _080BD9DA
+ mov r0, r8
+ lsls r6, r0, 16
+_080BD9BE:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl MapGridGetMetatileBehaviorAt
+ cmp r0, 0x86
+ bne _080BD9D4
+ adds r0, r4, 0
+ adds r1, r5, 0
+ lsrs r2, r6, 16
+ bl MapGridSetMetatileIdAt
+_080BD9D4:
+ adds r4, 0x1
+ cmp r4, r9
+ blt _080BD9BE
+_080BD9DA:
+ adds r5, r7, 0
+ cmp r5, r10
+ blt _080BD9B2
+_080BD9E0:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end SetTVMetatilesOnMap
+
+ thumb_func_start TurnOffTVScreen
+TurnOffTVScreen: @ 80BD9F0
+ push {lr}
+ ldr r1, _080BDA08
+ ldr r0, [r1]
+ ldr r1, [r1, 0x4]
+ movs r2, 0x2
+ bl SetTVMetatilesOnMap
+ bl DrawWholeMapView
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BDA08: .4byte gUnknown_03004870
+ thumb_func_end TurnOffTVScreen
+
+ thumb_func_start sub_80BDA0C
+sub_80BDA0C: @ 80BDA0C
+ ldr r2, _080BDA24
+ ldr r0, _080BDA28
+ ldrh r1, [r0]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldr r1, _080BDA2C
+ adds r0, r1
+ ldrb r0, [r0]
+ bx lr
+ .align 2, 0
+_080BDA24: .4byte gSaveBlock1
+_080BDA28: .4byte gUnknown_0202E8CC
+_080BDA2C: .4byte 0x00002738
+ thumb_func_end sub_80BDA0C
+
+ thumb_func_start sub_80BDA30
+sub_80BDA30: @ 80BDA30
+ push {r4,lr}
+ movs r2, 0
+ ldr r3, _080BDA5C
+_080BDA36:
+ lsls r0, r2, 3
+ adds r0, r2
+ lsls r0, 2
+ adds r1, r0, r3
+ ldr r4, _080BDA60
+ adds r0, r1, r4
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080BDA64
+ cmp r0, 0x29
+ beq _080BDA64
+ adds r4, 0x1
+ adds r0, r1, r4
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _080BDA64
+ adds r0, r2, 0
+ b _080BDA70
+ .align 2, 0
+_080BDA5C: .4byte gSaveBlock1
+_080BDA60: .4byte 0x00002738
+_080BDA64:
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x17
+ bls _080BDA36
+ movs r0, 0xFF
+_080BDA70:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80BDA30
+
+ thumb_func_start special_0x4a
+special_0x4a: @ 80BDA78
+ push {lr}
+ ldr r2, _080BDAA4
+ ldrh r1, [r2]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080BDAA8
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x29
+ bne _080BDAAC
+ movs r3, 0xF1
+ lsls r3, 2
+ adds r0, r1, r3
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _080BDAAC
+ bl sub_80BDA30
+ lsls r0, 24
+ lsrs r0, 24
+ b _080BDAAE
+ .align 2, 0
+_080BDAA4: .4byte gUnknown_0202E8CC
+_080BDAA8: .4byte gSaveBlock1 + 0x2738
+_080BDAAC:
+ ldrb r0, [r2]
+_080BDAAE:
+ pop {r1}
+ bx r1
+ thumb_func_end special_0x4a
+
+ thumb_func_start sub_80BDAB4
+sub_80BDAB4: @ 80BDAB4
+ push {r4,lr}
+ ldr r2, _080BDAF8
+ ldr r1, _080BDAFC
+ adds r0, r2, r1
+ movs r3, 0
+ movs r1, 0
+ strh r1, [r0]
+ ldr r4, _080BDB00
+ adds r0, r2, r4
+ strh r1, [r0]
+ adds r4, 0x2
+ adds r0, r2, r4
+ strh r1, [r0]
+ ldr r0, _080BDB04
+ adds r1, r2, r0
+ ldr r0, _080BDB08
+ strh r0, [r1]
+ adds r4, 0x6
+ adds r1, r2, r4
+ movs r0, 0
+ strb r0, [r1]
+ ldr r0, _080BDB0C
+ adds r1, r2, r0
+ movs r0, 0
+ strb r0, [r1]
+ ldr r1, _080BDB10
+ adds r0, r2, r1
+ strb r3, [r0]
+ subs r4, 0x1
+ adds r2, r4
+ strb r3, [r2]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BDAF8: .4byte gSaveBlock1
+_080BDAFC: .4byte 0x00002b10
+_080BDB00: .4byte 0x00002b12
+_080BDB04: .4byte 0x00002b16
+_080BDB08: .4byte 0x0000ffff
+_080BDB0C: .4byte 0x00002b1b
+_080BDB10: .4byte 0x00002b18
+ thumb_func_end sub_80BDAB4
+
+ thumb_func_start GabbyAndTyBeforeInterview
+GabbyAndTyBeforeInterview: @ 80BDB14
+ push {r4,r5,lr}
+ ldr r2, _080BDB68
+ ldr r3, _080BDB6C
+ ldrh r1, [r3, 0x6]
+ ldr r4, _080BDB70
+ adds r0, r2, r4
+ strh r1, [r0]
+ ldrh r1, [r3, 0x26]
+ adds r4, 0x2
+ adds r0, r2, r4
+ strh r1, [r0]
+ ldrh r1, [r3, 0x22]
+ adds r4, 0x2
+ adds r0, r2, r4
+ strh r1, [r0]
+ ldr r0, _080BDB74
+ adds r4, r2, r0
+ ldrb r1, [r4]
+ adds r0, r1, 0
+ adds r5, r2, 0
+ cmp r0, 0xFF
+ beq _080BDB44
+ adds r0, r1, 0x1
+ strb r0, [r4]
+_080BDB44:
+ ldrb r0, [r3, 0x5]
+ lsls r0, 31
+ ldr r1, _080BDB78
+ adds r4, r5, r1
+ lsrs r0, 31
+ ldrb r1, [r4]
+ movs r2, 0x2
+ negs r2, r2
+ ands r2, r1
+ orrs r2, r0
+ strb r2, [r4]
+ ldrb r0, [r3]
+ cmp r0, 0
+ beq _080BDB7C
+ movs r0, 0x2
+ orrs r2, r0
+ b _080BDB82
+ .align 2, 0
+_080BDB68: .4byte gSaveBlock1
+_080BDB6C: .4byte gUnknown_030042E0
+_080BDB70: .4byte 0x00002b10
+_080BDB74: .4byte 0x00002b19
+_080BDB78: .4byte 0x00002b1a
+_080BDB7C:
+ movs r0, 0x3
+ negs r0, r0
+ ands r2, r0
+_080BDB82:
+ strb r2, [r4]
+ ldrb r0, [r3, 0x3]
+ cmp r0, 0
+ beq _080BDB9C
+ ldr r4, _080BDB98
+ adds r0, r5, r4
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+ b _080BDBAA
+ .align 2, 0
+_080BDB98: .4byte 0x00002b1a
+_080BDB9C:
+ ldr r0, _080BDBDC
+ adds r2, r5, r0
+ ldrb r1, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+_080BDBAA:
+ ldrb r1, [r3, 0x5]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ bne _080BDBE0
+ movs r1, 0
+ adds r0, r3, 0
+ adds r0, 0x36
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080BDBE0
+_080BDBC0:
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0xA
+ bhi _080BDBEC
+ adds r0, r3, 0
+ adds r0, 0x36
+ adds r0, r1, r0
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080BDBC0
+ ldr r4, _080BDBDC
+ adds r0, r5, r4
+ b _080BDBE4
+ .align 2, 0
+_080BDBDC: .4byte 0x00002b1a
+_080BDBE0:
+ ldr r1, _080BDC08
+ adds r0, r5, r1
+_080BDBE4:
+ ldrb r1, [r0]
+ movs r2, 0x8
+ orrs r1, r2
+ strb r1, [r0]
+_080BDBEC:
+ bl TakeTVShowInSearchOfTrainersOffTheAir
+ ldr r0, _080BDC0C
+ ldr r4, _080BDC10
+ adds r0, r4
+ ldrh r0, [r0]
+ cmp r0, 0
+ bne _080BDC02
+ movs r0, 0x1
+ bl FlagSet
+_080BDC02:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BDC08: .4byte 0x00002b1a
+_080BDC0C: .4byte gSaveBlock1
+_080BDC10: .4byte 0x00002b14
+ thumb_func_end GabbyAndTyBeforeInterview
+
+ thumb_func_start sub_80BDC14
+sub_80BDC14: @ 80BDC14
+ push {r4-r6,lr}
+ ldr r4, _080BDC70
+ ldr r0, _080BDC74
+ adds r6, r4, r0
+ ldrb r3, [r6]
+ lsls r1, r3, 31
+ adds r0, 0x1
+ adds r5, r4, r0
+ lsrs r1, 31
+ ldrb r2, [r5]
+ movs r0, 0x2
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ movs r1, 0x2
+ ands r1, r3
+ movs r2, 0x3
+ negs r2, r2
+ ands r0, r2
+ orrs r0, r1
+ movs r1, 0x4
+ ands r1, r3
+ subs r2, 0x2
+ ands r0, r2
+ orrs r0, r1
+ movs r1, 0x8
+ ands r1, r3
+ subs r2, 0x4
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r5]
+ movs r0, 0x10
+ orrs r3, r0
+ strb r3, [r6]
+ ldr r0, _080BDC78
+ ldrb r0, [r0, 0x14]
+ ldr r1, _080BDC7C
+ adds r4, r1
+ strb r0, [r4]
+ movs r0, 0x6
+ bl sav12_xor_increment
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BDC70: .4byte gSaveBlock1
+_080BDC74: .4byte 0x00002b1a
+_080BDC78: .4byte gMapHeader
+_080BDC7C: .4byte 0x00002b18
+ thumb_func_end sub_80BDC14
+
+ thumb_func_start TakeTVShowInSearchOfTrainersOffTheAir
+TakeTVShowInSearchOfTrainersOffTheAir: @ 80BDC80
+ ldr r0, _080BDC94
+ ldr r1, _080BDC98
+ adds r0, r1
+ ldrb r2, [r0]
+ movs r1, 0x11
+ negs r1, r1
+ ands r1, r2
+ strb r1, [r0]
+ bx lr
+ .align 2, 0
+_080BDC94: .4byte gSaveBlock1
+_080BDC98: .4byte 0x00002b1a
+ thumb_func_end TakeTVShowInSearchOfTrainersOffTheAir
+
+ thumb_func_start GabbyAndTyGetBattleNum
+GabbyAndTyGetBattleNum: @ 80BDC9C
+ push {lr}
+ ldr r0, _080BDCBC
+ ldr r2, _080BDCC0
+ adds r1, r0, r2
+ ldrb r0, [r1]
+ cmp r0, 0x5
+ bls _080BDCB8
+ ldrb r0, [r1]
+ movs r1, 0x3
+ bl __umodsi3
+ adds r0, 0x6
+ lsls r0, 24
+ lsrs r0, 24
+_080BDCB8:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080BDCBC: .4byte gSaveBlock1
+_080BDCC0: .4byte 0x00002b19
+ thumb_func_end GabbyAndTyGetBattleNum
+
+ thumb_func_start IsTVShowInSearchOfTrainersAiring
+IsTVShowInSearchOfTrainersAiring: @ 80BDCC4
+ ldr r0, _080BDCD4
+ ldr r1, _080BDCD8
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 27
+ lsrs r0, 31
+ bx lr
+ .align 2, 0
+_080BDCD4: .4byte gSaveBlock1
+_080BDCD8: .4byte 0x00002b1a
+ thumb_func_end IsTVShowInSearchOfTrainersAiring
+
+ thumb_func_start GabbyAndTyGetLastQuote
+GabbyAndTyGetLastQuote: @ 80BDCDC
+ push {r4,r5,lr}
+ ldr r0, _080BDD00
+ ldr r1, _080BDD04
+ adds r4, r0, r1
+ ldrh r0, [r4]
+ ldr r5, _080BDD08
+ cmp r0, r5
+ beq _080BDD10
+ ldr r0, _080BDD0C
+ ldrh r1, [r4]
+ bl sub_80EB3FC
+ ldrh r1, [r4]
+ adds r0, r5, 0
+ orrs r0, r1
+ strh r0, [r4]
+ movs r0, 0x1
+ b _080BDD12
+ .align 2, 0
+_080BDD00: .4byte gSaveBlock1
+_080BDD04: .4byte 0x00002b16
+_080BDD08: .4byte 0x0000ffff
+_080BDD0C: .4byte gStringVar1
+_080BDD10:
+ movs r0, 0
+_080BDD12:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end GabbyAndTyGetLastQuote
+
+ thumb_func_start sub_80BDD18
+sub_80BDD18: @ 80BDD18
+ push {lr}
+ ldr r0, _080BDD30
+ ldr r1, _080BDD34
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _080BDD38
+ movs r0, 0x1
+ b _080BDD5E
+ .align 2, 0
+_080BDD30: .4byte gSaveBlock1
+_080BDD34: .4byte 0x00002b1b
+_080BDD38:
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ beq _080BDD44
+ movs r0, 0x2
+ b _080BDD5E
+_080BDD44:
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _080BDD50
+ movs r0, 0x3
+ b _080BDD5E
+_080BDD50:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ bne _080BDD5C
+ movs r0, 0
+ b _080BDD5E
+_080BDD5C:
+ movs r0, 0x4
+_080BDD5E:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80BDD18
+
+ thumb_func_start GabbyAndTySetScriptVarsToFieldObjectLocalIds
+GabbyAndTySetScriptVarsToFieldObjectLocalIds: @ 80BDD64
+ push {lr}
+ bl GabbyAndTyGetBattleNum
+ lsls r0, 24
+ lsrs r0, 24
+ subs r0, 0x1
+ cmp r0, 0x7
+ bhi _080BDE3C
+ lsls r0, 2
+ ldr r1, _080BDD80
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080BDD80: .4byte _080BDD84
+ .align 2, 0
+_080BDD84:
+ .4byte _080BDDA4
+ .4byte _080BDDB8
+ .4byte _080BDDCC
+ .4byte _080BDDE0
+ .4byte _080BDDF4
+ .4byte _080BDE08
+ .4byte _080BDE1C
+ .4byte _080BDE30
+_080BDDA4:
+ ldr r1, _080BDDB0
+ movs r0, 0xE
+ strh r0, [r1]
+ ldr r1, _080BDDB4
+ movs r0, 0xD
+ b _080BDE3A
+ .align 2, 0
+_080BDDB0: .4byte gUnknown_0202E8CC
+_080BDDB4: .4byte gUnknown_0202E8CE
+_080BDDB8:
+ ldr r1, _080BDDC4
+ movs r0, 0x5
+ strh r0, [r1]
+ ldr r1, _080BDDC8
+ movs r0, 0x6
+ b _080BDE3A
+ .align 2, 0
+_080BDDC4: .4byte gUnknown_0202E8CC
+_080BDDC8: .4byte gUnknown_0202E8CE
+_080BDDCC:
+ ldr r1, _080BDDD8
+ movs r0, 0x12
+ strh r0, [r1]
+ ldr r1, _080BDDDC
+ movs r0, 0x11
+ b _080BDE3A
+ .align 2, 0
+_080BDDD8: .4byte gUnknown_0202E8CC
+_080BDDDC: .4byte gUnknown_0202E8CE
+_080BDDE0:
+ ldr r1, _080BDDEC
+ movs r0, 0x15
+ strh r0, [r1]
+ ldr r1, _080BDDF0
+ movs r0, 0x16
+ b _080BDE3A
+ .align 2, 0
+_080BDDEC: .4byte gUnknown_0202E8CC
+_080BDDF0: .4byte gUnknown_0202E8CE
+_080BDDF4:
+ ldr r1, _080BDE00
+ movs r0, 0x8
+ strh r0, [r1]
+ ldr r1, _080BDE04
+ movs r0, 0x9
+ b _080BDE3A
+ .align 2, 0
+_080BDE00: .4byte gUnknown_0202E8CC
+_080BDE04: .4byte gUnknown_0202E8CE
+_080BDE08:
+ ldr r1, _080BDE14
+ movs r0, 0x13
+ strh r0, [r1]
+ ldr r1, _080BDE18
+ movs r0, 0x14
+ b _080BDE3A
+ .align 2, 0
+_080BDE14: .4byte gUnknown_0202E8CC
+_080BDE18: .4byte gUnknown_0202E8CE
+_080BDE1C:
+ ldr r1, _080BDE28
+ movs r0, 0x17
+ strh r0, [r1]
+ ldr r1, _080BDE2C
+ movs r0, 0x18
+ b _080BDE3A
+ .align 2, 0
+_080BDE28: .4byte gUnknown_0202E8CC
+_080BDE2C: .4byte gUnknown_0202E8CE
+_080BDE30:
+ ldr r1, _080BDE40
+ movs r0, 0xA
+ strh r0, [r1]
+ ldr r1, _080BDE44
+ movs r0, 0xB
+_080BDE3A:
+ strh r0, [r1]
+_080BDE3C:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BDE40: .4byte gUnknown_0202E8CC
+_080BDE44: .4byte gUnknown_0202E8CE
+ thumb_func_end GabbyAndTySetScriptVarsToFieldObjectLocalIds
+
+ thumb_func_start sub_80BDE48
+sub_80BDE48: @ 80BDE48
+ push {lr}
+ ldr r0, _080BDE60
+ ldrh r0, [r0]
+ subs r0, 0x1
+ cmp r0, 0x6
+ bhi _080BDEA6
+ lsls r0, 2
+ ldr r1, _080BDE64
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080BDE60: .4byte gUnknown_0202E8CE
+_080BDE64: .4byte _080BDE68
+ .align 2, 0
+_080BDE68:
+ .4byte _080BDE84
+ .4byte _080BDE8A
+ .4byte _080BDE90
+ .4byte _080BDE96
+ .4byte _080BDEA6
+ .4byte _080BDE9C
+ .4byte _080BDEA2
+_080BDE84:
+ bl sub_80BE5FC
+ b _080BDEA6
+_080BDE8A:
+ bl sub_80BE65C
+ b _080BDEA6
+_080BDE90:
+ bl sub_80BE6A0
+ b _080BDEA6
+_080BDE96:
+ bl nullsub_21
+ b _080BDEA6
+_080BDE9C:
+ bl sub_80BE188
+ b _080BDEA6
+_080BDEA2:
+ bl sub_80BE320
+_080BDEA6:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80BDE48
+
+ thumb_func_start sub_80BDEAC
+sub_80BDEAC: @ 80BDEAC
+ push {lr}
+ adds r1, r0, 0
+ movs r2, 0x2
+ ldrb r0, [r1]
+ cmp r0, 0xFC
+ bne _080BDEC0
+ ldrb r0, [r1, 0x1]
+ cmp r0, 0x15
+ bne _080BDEC0
+ movs r2, 0x1
+_080BDEC0:
+ adds r0, r2, 0
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80BDEAC
+
+ thumb_func_start sub_80BDEC8
+sub_80BDEC8: @ 80BDEC8
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ movs r4, 0
+ bl sub_80BEB20
+ bl sub_80BE778
+ ldr r5, _080BDEE8
+ ldrh r0, [r5, 0x28]
+ cmp r0, 0
+ bne _080BDEEC
+ bl sub_80BE074
+ b _080BE012
+ .align 2, 0
+_080BDEE8: .4byte gUnknown_030042E0
+_080BDEEC:
+ bl sub_80BE028
+ ldr r0, _080BDF98
+ bl sub_80BF77C
+ lsls r0, 24
+ cmp r0, 0
+ beq _080BDEFE
+ b _080BE012
+_080BDEFE:
+ ldrh r1, [r5, 0x28]
+ movs r0, 0xB
+ muls r0, r1
+ ldr r1, _080BDF9C
+ adds r0, r1
+ adds r1, r5, 0
+ adds r1, 0x2A
+ bl StringCompareWithoutExtCtrlCodes
+ cmp r0, 0
+ bne _080BDF16
+ b _080BE012
+_080BDF16:
+ ldr r0, _080BDFA0
+ bl sub_80BF74C
+ ldr r1, _080BDFA4
+ strb r0, [r1]
+ lsls r0, 24
+ asrs r0, 24
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ beq _080BE012
+ movs r0, 0x15
+ bl sub_80BF1B4
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _080BE012
+ movs r2, 0
+ adds r7, r5, 0
+ adds r1, r7, 0
+ adds r1, 0x36
+_080BDF42:
+ adds r0, r2, r1
+ ldrb r0, [r0]
+ adds r0, r4, r0
+ lsls r0, 16
+ lsrs r4, r0, 16
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0xA
+ bls _080BDF42
+ cmp r4, 0
+ bne _080BDF64
+ ldrb r1, [r7, 0x5]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080BE012
+_080BDF64:
+ movs r4, 0
+ ldr r0, _080BDFA4
+ movs r1, 0
+ ldrsb r1, [r0, r1]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080BDFA0
+ adds r5, r0, r1
+ movs r0, 0x15
+ strb r0, [r5]
+ strb r4, [r5, 0x1]
+ ldrb r1, [r7, 0x5]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080BDFAC
+ movs r4, 0x1
+ movs r0, 0x1
+ adds r3, r5, 0
+ adds r3, 0x13
+ ldr r1, _080BDFA8
+ mov r8, r1
+ adds r6, r5, 0x4
+ b _080BDFDE
+ .align 2, 0
+_080BDF98: .4byte 0x0000ffff
+_080BDF9C: .4byte gSpeciesNames
+_080BDFA0: .4byte gSaveBlock1 + 0x2738
+_080BDFA4: .4byte gUnknown_03005D38
+_080BDFA8: .4byte gSaveBlock2
+_080BDFAC:
+ movs r2, 0
+ ldr r0, _080BE01C
+ mov r12, r0
+ adds r3, r5, 0
+ adds r3, 0x13
+ ldr r1, _080BE020
+ mov r8, r1
+ adds r6, r5, 0x4
+ adds r1, r7, 0
+ adds r1, 0x36
+_080BDFC0:
+ adds r0, r2, r1
+ ldrb r0, [r0]
+ adds r0, r4, r0
+ lsls r0, 16
+ lsrs r4, r0, 16
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0xA
+ bls _080BDFC0
+ cmp r4, 0xFF
+ bls _080BDFDA
+ movs r4, 0xFF
+_080BDFDA:
+ mov r1, r12
+ ldrh r0, [r1]
+_080BDFDE:
+ strb r4, [r5, 0x12]
+ strb r0, [r5, 0xF]
+ adds r0, r3, 0
+ mov r1, r8
+ bl StringCopy
+ ldr r4, _080BE024
+ adds r0, r6, 0
+ adds r1, r4, 0
+ bl StringCopy
+ subs r4, 0x2A
+ ldrh r0, [r4, 0x28]
+ strh r0, [r5, 0x10]
+ adds r0, r5, 0
+ bl sub_80BE138
+ movs r0, 0x2
+ strb r0, [r5, 0x2]
+ adds r0, r6, 0
+ bl sub_80BDEAC
+ strb r0, [r5, 0x3]
+ adds r0, r6, 0
+ bl SkipExtCtrlCodes
+_080BE012:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BE01C: .4byte gUnknown_02024C04
+_080BE020: .4byte gSaveBlock2
+_080BE024: .4byte gUnknown_0300430A
+ thumb_func_end sub_80BDEC8
+
+ thumb_func_start sub_80BE028
+sub_80BE028: @ 80BE028
+ push {r4,lr}
+ ldr r4, _080BE064
+ ldrb r0, [r4]
+ cmp r0, 0x19
+ beq _080BE048
+ ldr r1, _080BE068
+ adds r0, r4, r1
+ movs r1, 0x18
+ bl sub_80BF55C
+ movs r0, 0x5
+ bl sub_8053108
+ strh r0, [r4, 0x6]
+ movs r0, 0x19
+ strb r0, [r4]
+_080BE048:
+ ldrh r0, [r4, 0x2]
+ adds r0, 0x1
+ strh r0, [r4, 0x2]
+ ldr r1, _080BE06C
+ ldrh r0, [r1, 0x28]
+ strh r0, [r4, 0x4]
+ ldrh r0, [r1, 0x6]
+ strh r0, [r4, 0x8]
+ ldr r0, _080BE070
+ ldrb r0, [r0, 0x14]
+ strb r0, [r4, 0xA]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BE064: .4byte gSaveBlock1 + 0x2A98
+_080BE068: .4byte 0xfffffca0
+_080BE06C: .4byte gUnknown_030042E0
+_080BE070: .4byte gMapHeader
+ thumb_func_end sub_80BE028
+
+ thumb_func_start sub_80BE074
+sub_80BE074: @ 80BE074
+ push {r4-r7,lr}
+ ldr r0, _080BE118
+ bl sub_80BF77C
+ lsls r0, 24
+ cmp r0, 0
+ bne _080BE112
+ movs r1, 0
+ movs r5, 0
+ ldr r2, _080BE11C
+_080BE088:
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ adds r0, r5, r0
+ lsls r0, 16
+ lsrs r5, r0, 16
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0xA
+ bls _080BE088
+ cmp r5, 0xFF
+ bls _080BE0A2
+ movs r5, 0xFF
+_080BE0A2:
+ cmp r5, 0x2
+ bls _080BE112
+ ldr r7, _080BE120
+ ldrb r0, [r7]
+ cmp r0, 0x1
+ bne _080BE112
+ ldr r6, _080BE124
+ adds r0, r6, 0
+ bl sub_80BF74C
+ ldr r4, _080BE128
+ strb r0, [r4]
+ lsls r0, 24
+ asrs r0, 24
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ beq _080BE112
+ movs r0, 0x17
+ bl sub_80BF1B4
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _080BE112
+ movs r0, 0
+ ldrsb r0, [r4, r0]
+ lsls r4, r0, 3
+ adds r4, r0
+ lsls r4, 2
+ adds r4, r6
+ movs r1, 0
+ movs r0, 0x17
+ strb r0, [r4]
+ strb r1, [r4, 0x1]
+ ldr r1, _080BE12C
+ ldrh r0, [r1, 0x6]
+ strh r0, [r4, 0xC]
+ ldrh r0, [r1, 0x20]
+ strh r0, [r4, 0xE]
+ strb r5, [r4, 0x10]
+ ldrb r0, [r7]
+ strb r0, [r4, 0x11]
+ ldr r0, _080BE130
+ ldrb r0, [r0, 0x14]
+ strb r0, [r4, 0x12]
+ adds r0, r4, 0
+ adds r0, 0x13
+ ldr r1, _080BE134
+ bl StringCopy
+ adds r0, r4, 0
+ bl sub_80BE138
+ movs r0, 0x2
+ strb r0, [r4, 0x2]
+_080BE112:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BE118: .4byte 0x0000ffff
+_080BE11C: .4byte gUnknown_03004316
+_080BE120: .4byte gUnknown_02024D26
+_080BE124: .4byte gSaveBlock1 + 0x2738
+_080BE128: .4byte gUnknown_03005D38
+_080BE12C: .4byte gUnknown_030042E0
+_080BE130: .4byte gMapHeader
+_080BE134: .4byte gSaveBlock2
+ thumb_func_end sub_80BE074
+
+ thumb_func_start sub_80BE138
+sub_80BE138: @ 80BE138
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_80BFB94
+ strb r0, [r4, 0x1E]
+ lsrs r2, r0, 8
+ strb r2, [r4, 0x1F]
+ adds r1, r4, 0
+ adds r1, 0x20
+ strb r0, [r1]
+ adds r1, 0x1
+ strb r2, [r1]
+ adds r1, 0x1
+ strb r0, [r1]
+ adds r0, r4, 0
+ adds r0, 0x23
+ strb r2, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80BE138
+
+ thumb_func_start sub_80BE160
+sub_80BE160: @ 80BE160
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_80BFB94
+ adds r1, r4, 0
+ adds r1, 0x20
+ strb r0, [r1]
+ lsrs r1, r0, 8
+ adds r2, r4, 0
+ adds r2, 0x21
+ strb r1, [r2]
+ adds r2, 0x1
+ strb r0, [r2]
+ adds r0, r4, 0
+ adds r0, 0x23
+ strb r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80BE160
+
+ thumb_func_start sub_80BE188
+sub_80BE188: @ 80BE188
+ push {r4-r6,lr}
+ ldr r6, _080BE22C
+ ldrb r1, [r6]
+ cmp r1, 0x6
+ bne _080BE224
+ ldr r0, _080BE230
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ lsls r4, r0, 3
+ adds r4, r0
+ lsls r4, 2
+ ldr r2, _080BE234
+ adds r0, r6, r2
+ adds r4, r0
+ strb r1, [r4]
+ movs r0, 0x1
+ strb r0, [r4, 0x1]
+ ldrh r0, [r6, 0x2]
+ strh r0, [r4, 0x2]
+ adds r0, r4, 0
+ adds r0, 0x16
+ ldr r1, _080BE238
+ bl StringCopy
+ adds r5, r4, 0
+ adds r5, 0x8
+ adds r1, r6, 0
+ adds r1, 0x8
+ adds r0, r5, 0
+ bl StringCopy
+ ldrb r0, [r6, 0x13]
+ lsls r0, 29
+ lsrs r0, 29
+ ldrb r2, [r4, 0x13]
+ movs r3, 0x8
+ negs r3, r3
+ adds r1, r3, 0
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r4, 0x13]
+ ldrb r2, [r6, 0x13]
+ movs r0, 0x18
+ ands r0, r2
+ movs r2, 0x19
+ negs r2, r2
+ ands r2, r1
+ orrs r2, r0
+ strb r2, [r4, 0x13]
+ ldrh r0, [r6, 0x14]
+ strh r0, [r4, 0x14]
+ ldrb r0, [r6, 0x13]
+ movs r1, 0x60
+ ands r1, r0
+ movs r0, 0x61
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r4, 0x13]
+ ldrb r1, [r6, 0x13]
+ lsls r1, 29
+ lsrs r1, 29
+ ands r0, r3
+ orrs r0, r1
+ strb r0, [r4, 0x13]
+ adds r0, r4, 0
+ bl sub_80BE160
+ movs r0, 0x2
+ strb r0, [r4, 0x1E]
+ adds r0, r5, 0
+ bl sub_80BDEAC
+ strb r0, [r4, 0x1F]
+ adds r0, r5, 0
+ bl SkipExtCtrlCodes
+_080BE224:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BE22C: .4byte gSaveBlock1 + 0x2A98
+_080BE230: .4byte gUnknown_03005D38
+_080BE234: .4byte 0xfffffca0
+_080BE238: .4byte gSaveBlock2
+ thumb_func_end sub_80BE188
+
+ thumb_func_start sub_80BE23C
+sub_80BE23C: @ 80BE23C
+ push {r4-r6,lr}
+ lsls r0, 16
+ lsrs r6, r0, 16
+ ldr r4, _080BE278
+ bl sub_80BF484
+ ldr r0, _080BE27C
+ adds r5, r4, r0
+ adds r0, r5, 0
+ bl sub_80BF720
+ ldr r1, _080BE280
+ strb r0, [r1]
+ lsls r0, 24
+ asrs r0, 24
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ beq _080BE270
+ adds r0, r5, 0
+ movs r1, 0x18
+ bl sub_80BF55C
+ strh r6, [r4, 0x14]
+ movs r0, 0x6
+ strb r0, [r4]
+_080BE270:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BE278: .4byte gSaveBlock1 + 0x2A98
+_080BE27C: .4byte 0xfffffca0
+_080BE280: .4byte gUnknown_03005D38
+ thumb_func_end sub_80BE23C
+
+ thumb_func_start sub_80BE284
+sub_80BE284: @ 80BE284
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r7, _080BE304
+ ldr r1, _080BE308
+ adds r0, r7, r1
+ bl sub_80BF720
+ ldr r1, _080BE30C
+ strb r0, [r1]
+ lsls r0, 24
+ asrs r0, 24
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ beq _080BE2FE
+ movs r3, 0x3
+ adds r1, r4, 0
+ ands r1, r3
+ lsls r1, 5
+ ldrb r2, [r7, 0x13]
+ movs r0, 0x61
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ ldr r1, _080BE310
+ ldrb r2, [r1]
+ movs r1, 0x7
+ ands r1, r2
+ movs r2, 0x8
+ negs r2, r2
+ ands r0, r2
+ orrs r0, r1
+ ldr r1, _080BE314
+ ldrb r1, [r1]
+ ands r3, r1
+ lsls r3, 3
+ movs r1, 0x19
+ negs r1, r1
+ ands r0, r1
+ orrs r0, r3
+ strb r0, [r7, 0x13]
+ ldr r6, _080BE318
+ ldrb r0, [r6]
+ movs r5, 0x64
+ muls r0, r5
+ ldr r4, _080BE31C
+ adds r0, r4
+ movs r1, 0xB
+ movs r2, 0
+ bl GetMonData
+ strh r0, [r7, 0x2]
+ ldrb r0, [r6]
+ muls r0, r5
+ adds r0, r4
+ adds r2, r7, 0
+ adds r2, 0x8
+ movs r1, 0x2
+ bl GetMonData
+_080BE2FE:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BE304: .4byte gSaveBlock1 + 0x2A98
+_080BE308: .4byte 0xfffffca0
+_080BE30C: .4byte gUnknown_03005D38
+_080BE310: .4byte gUnknown_0203869C
+_080BE314: .4byte gUnknown_0203869E
+_080BE318: .4byte gUnknown_02038694
+_080BE31C: .4byte gPlayerParty
+ thumb_func_end sub_80BE284
+
+ thumb_func_start sub_80BE320
+sub_80BE320: @ 80BE320
+ push {r4-r6,lr}
+ ldr r0, _080BE384
+ movs r1, 0
+ ldrsb r1, [r0, r1]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080BE388
+ adds r6, r0, r1
+ movs r0, 0x7
+ strb r0, [r6]
+ movs r0, 0x1
+ strb r0, [r6, 0x1]
+ adds r0, r6, 0x2
+ ldr r4, _080BE38C
+ adds r1, r4, 0
+ bl StringCopy
+ adds r0, r6, 0
+ adds r0, 0xC
+ ldr r2, _080BE390
+ adds r1, r4, r2
+ bl StringCopy
+ movs r1, 0x90
+ lsls r1, 3
+ adds r0, r4, r1
+ ldrh r0, [r0]
+ strh r0, [r6, 0xA]
+ ldr r2, _080BE394
+ adds r0, r4, r2
+ ldrh r0, [r0]
+ strh r0, [r6, 0x14]
+ movs r0, 0xAF
+ lsls r0, 3
+ adds r5, r4, r0
+ ldrb r0, [r5]
+ bl sub_8135D3C
+ strh r0, [r6, 0x16]
+ ldr r1, _080BE398
+ adds r4, r1
+ ldrb r0, [r4]
+ strb r0, [r6, 0x1C]
+ ldrb r0, [r5]
+ cmp r0, 0
+ bne _080BE39C
+ movs r0, 0x32
+ b _080BE39E
+ .align 2, 0
+_080BE384: .4byte gUnknown_03005D38
+_080BE388: .4byte gSaveBlock1 + 0x2738
+_080BE38C: .4byte gSaveBlock2
+_080BE390: .4byte 0x00000484
+_080BE394: .4byte 0x00000482
+_080BE398: .4byte 0x00000555
+_080BE39C:
+ movs r0, 0x64
+_080BE39E:
+ strb r0, [r6, 0x1A]
+ ldr r0, _080BE3B8
+ ldrh r0, [r0]
+ strb r0, [r6, 0x1B]
+ adds r0, r6, 0
+ bl sub_80BE160
+ movs r0, 0x2
+ strb r0, [r6, 0x1D]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BE3B8: .4byte gUnknown_0202E8CC
+ thumb_func_end sub_80BE320
+
+ thumb_func_start sub_80BE3BC
+sub_80BE3BC: @ 80BE3BC
+ push {r4-r7,lr}
+ ldr r0, _080BE460
+ bl sub_80BF77C
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ bne _080BE458
+ ldr r6, _080BE464
+ adds r0, r6, 0
+ bl sub_80BF74C
+ ldr r5, _080BE468
+ strb r0, [r5]
+ lsls r0, 24
+ asrs r0, 24
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ beq _080BE458
+ movs r0, 0x16
+ bl sub_80BF1B4
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _080BE458
+ bl sub_80BF20C
+ ldr r2, _080BE46C
+ ldrh r0, [r2, 0x2]
+ cmp r0, 0x13
+ bls _080BE458
+ movs r1, 0
+ ldrsb r1, [r5, r1]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ adds r5, r0, r6
+ movs r0, 0x16
+ strb r0, [r5]
+ strb r4, [r5, 0x1]
+ ldr r0, _080BE470
+ ldrb r0, [r0, 0x14]
+ strb r0, [r5, 0x12]
+ movs r4, 0
+ adds r7, r5, 0x6
+ mov r12, r2
+ adds r6, r5, 0
+ adds r6, 0xC
+_080BE420:
+ lsls r2, r4, 1
+ adds r3, r7, r2
+ lsls r1, r4, 2
+ add r1, r12
+ ldrh r0, [r1]
+ strh r0, [r3]
+ adds r2, r6, r2
+ ldrh r0, [r1, 0x2]
+ strh r0, [r2]
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x2
+ bls _080BE420
+ movs r0, 0x1
+ bl GetPriceReduction
+ strb r0, [r5, 0x2]
+ adds r0, r5, 0
+ adds r0, 0x13
+ ldr r1, _080BE474
+ bl StringCopy
+ adds r0, r5, 0
+ bl sub_80BE138
+ movs r0, 0x2
+ strb r0, [r5, 0x3]
+_080BE458:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BE460: .4byte 0x00005555
+_080BE464: .4byte gSaveBlock1 + 0x2738
+_080BE468: .4byte gUnknown_03005D38
+_080BE46C: .4byte gUnknown_02038724
+_080BE470: .4byte gMapHeader
+_080BE474: .4byte gSaveBlock2
+ thumb_func_end sub_80BE3BC
+
+ thumb_func_start sub_80BE478
+sub_80BE478: @ 80BE478
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ bl sub_80BF478
+ ldr r0, _080BE554
+ ldrh r0, [r0]
+ cmp r0, 0x1
+ beq _080BE548
+ ldr r0, _080BE558
+ mov r8, r0
+ ldrh r0, [r0]
+ movs r7, 0x64
+ muls r0, r7
+ ldr r6, _080BE55C
+ adds r0, r6
+ ldr r4, _080BE560
+ movs r1, 0x2
+ adds r2, r4, 0
+ bl GetMonData
+ ldr r1, _080BE564
+ mov r9, r1
+ mov r0, r9
+ bl StringLength
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x1
+ bls _080BE548
+ adds r0, r4, 0
+ bl StringLength
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x1
+ bls _080BE548
+ ldr r0, _080BE568
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ lsls r4, r0, 3
+ adds r4, r0
+ lsls r4, 2
+ ldr r0, _080BE56C
+ adds r4, r0
+ movs r0, 0x5
+ strb r0, [r4]
+ movs r5, 0x1
+ strb r5, [r4, 0x1]
+ mov r1, r8
+ ldrh r0, [r1]
+ muls r0, r7
+ adds r0, r6
+ movs r1, 0xB
+ movs r2, 0
+ bl GetMonData
+ strh r0, [r4, 0x2]
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x3
+ bl __umodsi3
+ strb r0, [r4, 0x1A]
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ ands r0, r5
+ strb r0, [r4, 0x1B]
+ ldrh r0, [r4, 0x2]
+ bl sub_80BF674
+ strh r0, [r4, 0x1C]
+ adds r0, r4, 0
+ adds r0, 0xF
+ mov r1, r9
+ bl StringCopy
+ mov r1, r8
+ ldrh r0, [r1]
+ muls r0, r7
+ adds r0, r6
+ adds r5, r4, 0x4
+ movs r1, 0x2
+ adds r2, r5, 0
+ bl GetMonData
+ adds r0, r4, 0
+ bl sub_80BE160
+ movs r0, 0x2
+ strb r0, [r4, 0x1E]
+ adds r0, r5, 0
+ bl sub_80BDEAC
+ strb r0, [r4, 0x1F]
+ adds r0, r5, 0
+ bl SkipExtCtrlCodes
+_080BE548:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BE554: .4byte gScriptResult
+_080BE558: .4byte gUnknown_0202E8CC
+_080BE55C: .4byte gPlayerParty
+_080BE560: .4byte gStringVar1
+_080BE564: .4byte gSaveBlock2
+_080BE568: .4byte gUnknown_03005D38
+_080BE56C: .4byte gSaveBlock1 + 0x2738
+ thumb_func_end sub_80BE478
+
+ thumb_func_start StartMassOutbreak
+StartMassOutbreak: @ 80BE570
+ push {r4,lr}
+ ldr r0, _080BE5F0
+ ldrh r1, [r0]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r2, _080BE5F4
+ adds r0, r2
+ ldrh r3, [r0, 0xC]
+ movs r4, 0xF1
+ lsls r4, 2
+ adds r1, r2, r4
+ strh r3, [r1]
+ ldrb r3, [r0, 0x10]
+ adds r4, 0x2
+ adds r1, r2, r4
+ strb r3, [r1]
+ ldrb r3, [r0, 0x11]
+ adds r4, 0x1
+ adds r1, r2, r4
+ strb r3, [r1]
+ ldrb r3, [r0, 0x14]
+ adds r4, 0x1
+ adds r1, r2, r4
+ strb r3, [r1]
+ ldrb r3, [r0, 0x2]
+ adds r4, 0x1
+ adds r1, r2, r4
+ strb r3, [r1]
+ ldrh r3, [r0, 0xE]
+ adds r4, 0x1
+ adds r1, r2, r4
+ strh r3, [r1]
+ ldrh r3, [r0, 0x4]
+ adds r4, 0x2
+ adds r1, r2, r4
+ strh r3, [r1]
+ ldrh r3, [r0, 0x6]
+ adds r4, 0x2
+ adds r1, r2, r4
+ strh r3, [r1]
+ ldrh r3, [r0, 0x8]
+ adds r4, 0x2
+ adds r1, r2, r4
+ strh r3, [r1]
+ ldrh r3, [r0, 0xA]
+ adds r4, 0x2
+ adds r1, r2, r4
+ strh r3, [r1]
+ ldrb r3, [r0, 0x3]
+ adds r4, 0x2
+ adds r1, r2, r4
+ strb r3, [r1]
+ ldrb r1, [r0, 0x13]
+ ldr r3, _080BE5F8
+ adds r0, r2, r3
+ strb r1, [r0]
+ adds r4, 0x2
+ adds r2, r4
+ movs r0, 0x2
+ strh r0, [r2]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BE5F0: .4byte gUnknown_0202E8CC
+_080BE5F4: .4byte gSaveBlock1 + 0x2738
+_080BE5F8: .4byte 0x000003d5
+ thumb_func_end StartMassOutbreak
+
+ thumb_func_start sub_80BE5FC
+sub_80BE5FC: @ 80BE5FC
+ push {r4,lr}
+ ldr r0, _080BE64C
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ lsls r4, r0, 3
+ adds r4, r0
+ lsls r4, 2
+ ldr r0, _080BE650
+ adds r4, r0
+ movs r0, 0x1
+ strb r0, [r4]
+ strb r0, [r4, 0x1]
+ adds r0, r4, 0
+ adds r0, 0x10
+ ldr r1, _080BE654
+ bl StringCopy
+ bl sub_810F87C
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x64
+ muls r0, r1
+ ldr r1, _080BE658
+ adds r0, r1
+ movs r1, 0xB
+ movs r2, 0
+ bl GetMonData
+ strh r0, [r4, 0x2]
+ adds r0, r4, 0
+ bl sub_80BE160
+ movs r0, 0x2
+ strb r0, [r4, 0x18]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BE64C: .4byte gUnknown_03005D38
+_080BE650: .4byte gSaveBlock1 + 0x2738
+_080BE654: .4byte gSaveBlock2
+_080BE658: .4byte gPlayerParty
+ thumb_func_end sub_80BE5FC
+
+ thumb_func_start sub_80BE65C
+sub_80BE65C: @ 80BE65C
+ push {r4-r6,lr}
+ ldr r0, _080BE694
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ lsls r4, r0, 3
+ adds r4, r0
+ lsls r4, 2
+ ldr r0, _080BE698
+ adds r4, r0
+ movs r6, 0
+ movs r5, 0x2
+ strb r5, [r4]
+ movs r0, 0x1
+ strb r0, [r4, 0x1]
+ adds r0, r4, 0
+ adds r0, 0x10
+ ldr r1, _080BE69C
+ bl StringCopy
+ strh r6, [r4, 0x2]
+ adds r0, r4, 0
+ bl sub_80BE160
+ strb r5, [r4, 0x18]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BE694: .4byte gUnknown_03005D38
+_080BE698: .4byte gSaveBlock1 + 0x2738
+_080BE69C: .4byte gSaveBlock2
+ thumb_func_end sub_80BE65C
+
+ thumb_func_start sub_80BE6A0
+sub_80BE6A0: @ 80BE6A0
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ ldr r0, _080BE760
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ lsls r4, r0, 3
+ adds r4, r0
+ lsls r4, 2
+ ldr r0, _080BE764
+ adds r4, r0
+ movs r0, 0x3
+ strb r0, [r4]
+ movs r0, 0x1
+ strb r0, [r4, 0x1]
+ bl sub_810F87C
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x64
+ mov r8, r1
+ mov r1, r8
+ muls r1, r0
+ adds r0, r1, 0
+ ldr r6, _080BE768
+ adds r0, r6
+ movs r1, 0x20
+ movs r2, 0
+ bl GetMonData
+ lsrs r0, 4
+ movs r1, 0xF
+ ands r0, r1
+ ldrb r2, [r4, 0x4]
+ movs r1, 0x10
+ negs r1, r1
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r4, 0x4]
+ ldr r0, _080BE76C
+ ldrb r0, [r0]
+ lsls r0, 4
+ movs r2, 0xF
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r4, 0x4]
+ adds r0, r4, 0x5
+ ldr r1, _080BE770
+ bl StringCopy
+ bl sub_810F87C
+ lsls r0, 24
+ lsrs r0, 24
+ mov r1, r8
+ muls r1, r0
+ adds r0, r1, 0
+ adds r0, r6
+ adds r5, r4, 0
+ adds r5, 0x10
+ movs r1, 0x2
+ adds r2, r5, 0
+ bl GetMonData
+ bl sub_810F87C
+ lsls r0, 24
+ lsrs r0, 24
+ mov r1, r8
+ muls r1, r0
+ adds r0, r1, 0
+ adds r0, r6
+ movs r1, 0xB
+ movs r2, 0
+ bl GetMonData
+ strh r0, [r4, 0x2]
+ adds r0, r4, 0
+ bl sub_80BE160
+ movs r0, 0x2
+ strb r0, [r4, 0xD]
+ adds r0, r5, 0
+ bl sub_80BDEAC
+ strb r0, [r4, 0xE]
+ adds r0, r5, 0
+ bl SkipExtCtrlCodes
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BE760: .4byte gUnknown_03005D38
+_080BE764: .4byte gSaveBlock1 + 0x2738
+_080BE768: .4byte gPlayerParty
+_080BE76C: .4byte gUnknown_0202E8D2
+_080BE770: .4byte gSaveBlock2
+ thumb_func_end sub_80BE6A0
+
+ thumb_func_start nullsub_21
+nullsub_21: @ 80BE774
+ bx lr
+ thumb_func_end nullsub_21
+
+ thumb_func_start sub_80BE778
+sub_80BE778: @ 80BE778
+ push {r4-r6,lr}
+ ldr r0, _080BE83C
+ bl FlagGet
+ lsls r0, 24
+ cmp r0, 0
+ beq _080BE836
+ movs r1, 0
+ ldr r3, _080BE840
+ ldr r2, _080BE844
+_080BE78C:
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ adds r0, r2
+ ldrb r0, [r0]
+ cmp r0, 0x29
+ beq _080BE836
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x17
+ bls _080BE78C
+ ldr r0, _080BE848
+ bl sub_80BF77C
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0
+ bne _080BE836
+ ldr r6, _080BE84C
+ adds r0, r6, 0
+ bl sub_80BF720
+ ldr r4, _080BE850
+ strb r0, [r4]
+ lsls r0, 24
+ asrs r0, 24
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ beq _080BE836
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x5
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0
+ ldrsb r1, [r4, r1]
+ lsls r4, r1, 3
+ adds r4, r1
+ lsls r4, 2
+ adds r4, r6
+ movs r1, 0x29
+ strb r1, [r4]
+ movs r3, 0x1
+ strb r3, [r4, 0x1]
+ ldr r2, _080BE854
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ ldrb r0, [r1, 0xA]
+ strb r0, [r4, 0x14]
+ strb r5, [r4, 0x2]
+ strb r5, [r4, 0x3]
+ ldrh r0, [r1]
+ movs r2, 0
+ strh r0, [r4, 0xC]
+ strh r5, [r4, 0xE]
+ ldrh r0, [r1, 0x2]
+ strh r0, [r4, 0x4]
+ ldrh r0, [r1, 0x4]
+ strh r0, [r4, 0x6]
+ ldrh r0, [r1, 0x6]
+ strh r0, [r4, 0x8]
+ ldrh r0, [r1, 0x8]
+ strh r0, [r4, 0xA]
+ ldrb r0, [r1, 0xB]
+ strb r0, [r4, 0x10]
+ strb r2, [r4, 0x11]
+ strb r2, [r4, 0x12]
+ movs r0, 0x32
+ strb r0, [r4, 0x13]
+ strb r2, [r4, 0x15]
+ strh r3, [r4, 0x16]
+ adds r0, r4, 0
+ bl sub_80BE160
+ movs r0, 0x2
+ strb r0, [r4, 0x18]
+_080BE836:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BE83C: .4byte 0x00000804
+_080BE840: .4byte gSaveBlock1
+_080BE844: .4byte 0x00002738
+_080BE848: .4byte 0x00000147
+_080BE84C: .4byte gSaveBlock1 + 0x2738
+_080BE850: .4byte gUnknown_03005D38
+_080BE854: .4byte gUnknown_083D13F8
+ thumb_func_end sub_80BE778
+
+ thumb_func_start EndMassOutbreak
+EndMassOutbreak: @ 80BE858
+ push {r4,lr}
+ ldr r0, _080BE8B4
+ ldr r2, _080BE8B8
+ adds r1, r0, r2
+ movs r3, 0
+ movs r2, 0
+ strh r2, [r1]
+ ldr r4, _080BE8BC
+ adds r1, r0, r4
+ strb r3, [r1]
+ adds r4, 0x1
+ adds r1, r0, r4
+ strb r3, [r1]
+ adds r4, 0x1
+ adds r1, r0, r4
+ strb r3, [r1]
+ adds r4, 0x1
+ adds r1, r0, r4
+ strb r3, [r1]
+ adds r4, 0x1
+ adds r1, r0, r4
+ strh r2, [r1]
+ adds r4, 0x2
+ adds r1, r0, r4
+ strh r2, [r1]
+ adds r4, 0x2
+ adds r1, r0, r4
+ strh r2, [r1]
+ adds r4, 0x2
+ adds r1, r0, r4
+ strh r2, [r1]
+ adds r4, 0x2
+ adds r1, r0, r4
+ strh r2, [r1]
+ adds r4, 0x2
+ adds r1, r0, r4
+ strb r3, [r1]
+ adds r4, 0x1
+ adds r1, r0, r4
+ strb r3, [r1]
+ ldr r1, _080BE8C0
+ adds r0, r1
+ strh r2, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BE8B4: .4byte gSaveBlock1
+_080BE8B8: .4byte 0x00002afc
+_080BE8BC: .4byte 0x00002afe
+_080BE8C0: .4byte 0x00002b0e
+ thumb_func_end EndMassOutbreak
+
+ thumb_func_start sub_80BE8C4
+sub_80BE8C4: @ 80BE8C4
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ adds r0, r4, 0
+ bl sub_80BE8EC
+ adds r0, r4, 0
+ bl UpdateMassOutbreakTimeLeft
+ adds r0, r4, 0
+ bl sub_80BEE84
+ adds r0, r4, 0
+ bl sub_80BEA5C
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80BE8C4
+
+ thumb_func_start sub_80BE8EC
+sub_80BE8EC: @ 80BE8EC
+ push {r4-r7,lr}
+ lsls r0, 16
+ lsrs r4, r0, 16
+ ldr r1, _080BE930
+ ldr r2, _080BE934
+ adds r0, r1, r2
+ ldrh r0, [r0]
+ cmp r0, 0
+ bne _080BE94C
+ movs r3, 0
+ adds r5, r1, 0
+ ldr r7, _080BE938
+ adds r6, r5, r7
+_080BE906:
+ lsls r0, r3, 3
+ adds r0, r3
+ lsls r2, r0, 2
+ adds r1, r2, r5
+ ldr r7, _080BE938
+ adds r0, r1, r7
+ ldrb r0, [r0]
+ cmp r0, 0x29
+ bne _080BE942
+ adds r7, 0x1
+ adds r0, r1, r7
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _080BE942
+ adds r1, r2, r6
+ ldrh r0, [r1, 0x16]
+ cmp r0, r4
+ bcs _080BE93C
+ movs r0, 0
+ strh r0, [r1, 0x16]
+ b _080BE94C
+ .align 2, 0
+_080BE930: .4byte gSaveBlock1
+_080BE934: .4byte 0x00002afc
+_080BE938: .4byte 0x00002738
+_080BE93C:
+ subs r0, r4
+ strh r0, [r1, 0x16]
+ b _080BE94C
+_080BE942:
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x17
+ bls _080BE906
+_080BE94C:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80BE8EC
+
+ thumb_func_start UpdateMassOutbreakTimeLeft
+UpdateMassOutbreakTimeLeft: @ 80BE954
+ push {lr}
+ lsls r0, 16
+ lsrs r1, r0, 16
+ ldr r0, _080BE96C
+ ldr r3, _080BE970
+ adds r2, r0, r3
+ ldrh r0, [r2]
+ cmp r0, r1
+ bhi _080BE974
+ bl EndMassOutbreak
+ b _080BE978
+ .align 2, 0
+_080BE96C: .4byte gSaveBlock1
+_080BE970: .4byte 0x00002b0e
+_080BE974:
+ subs r0, r1
+ strh r0, [r2]
+_080BE978:
+ pop {r0}
+ bx r0
+ thumb_func_end UpdateMassOutbreakTimeLeft
+
+ thumb_func_start sub_80BE97C
+sub_80BE97C: @ 80BE97C
+ push {r4,lr}
+ lsls r0, 24
+ cmp r0, 0
+ beq _080BE9A4
+ ldr r4, _080BE9A0
+ ldrh r0, [r4]
+ lsrs r0, 8
+ cmp r0, 0x4
+ bls _080BE992
+ bl sub_80BE9D4
+_080BE992:
+ ldrb r0, [r4]
+ strh r0, [r4]
+ cmp r0, 0xFF
+ beq _080BE9C8
+ adds r0, 0x1
+ b _080BE9C6
+ .align 2, 0
+_080BE9A0: .4byte gUnknown_020387E2
+_080BE9A4:
+ ldr r4, _080BE9D0
+ ldrb r0, [r4]
+ cmp r0, 0x4
+ bls _080BE9B0
+ bl sub_80BE9D4
+_080BE9B0:
+ ldrh r0, [r4]
+ movs r1, 0xFF
+ lsls r1, 8
+ ands r1, r0
+ strh r1, [r4]
+ lsrs r0, r1, 8
+ cmp r0, 0xFF
+ beq _080BE9C8
+ movs r2, 0x80
+ lsls r2, 1
+ adds r0, r1, r2
+_080BE9C6:
+ strh r0, [r4]
+_080BE9C8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BE9D0: .4byte gUnknown_020387E2
+ thumb_func_end sub_80BE97C
+
+ thumb_func_start sub_80BE9D4
+sub_80BE9D4: @ 80BE9D4
+ push {r4,r5,lr}
+ ldr r5, _080BEA3C
+ adds r0, r5, 0
+ bl sub_80BF74C
+ ldr r4, _080BEA40
+ strb r0, [r4]
+ lsls r0, 24
+ asrs r0, 24
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ beq _080BEA36
+ movs r0, 0x18
+ bl sub_80BF1B4
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _080BEA36
+ movs r0, 0
+ ldrsb r0, [r4, r0]
+ lsls r4, r0, 3
+ adds r4, r0
+ lsls r4, 2
+ adds r4, r5
+ movs r1, 0
+ movs r0, 0x18
+ strb r0, [r4]
+ strb r1, [r4, 0x1]
+ ldr r1, _080BEA44
+ ldrh r0, [r1]
+ strb r0, [r4, 0x2]
+ ldrh r0, [r1]
+ lsrs r0, 8
+ strb r0, [r4, 0x3]
+ ldr r0, _080BEA48
+ ldrh r0, [r0]
+ strh r0, [r4, 0x4]
+ adds r0, r4, 0
+ adds r0, 0x13
+ ldr r1, _080BEA4C
+ bl StringCopy
+ adds r0, r4, 0
+ bl sub_80BE138
+ movs r0, 0x2
+ strb r0, [r4, 0x6]
+_080BEA36:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BEA3C: .4byte gSaveBlock1 + 0x2738
+_080BEA40: .4byte gUnknown_03005D38
+_080BEA44: .4byte gUnknown_020387E2
+_080BEA48: .4byte gUnknown_020387E0
+_080BEA4C: .4byte gSaveBlock2
+ thumb_func_end sub_80BE9D4
+
+ thumb_func_start sub_80BEA50
+sub_80BEA50: @ 80BEA50
+ ldr r1, _080BEA58
+ strh r0, [r1]
+ bx lr
+ .align 2, 0
+_080BEA58: .4byte gUnknown_020387E0
+ thumb_func_end sub_80BEA50
+
+ thumb_func_start sub_80BEA5C
+sub_80BEA5C: @ 80BEA5C
+ push {lr}
+ ldr r1, _080BEA78
+ ldrb r0, [r1]
+ cmp r0, 0x19
+ bne _080BEA84
+ ldrh r0, [r1, 0x2]
+ cmp r0, 0x13
+ bhi _080BEA80
+ ldr r2, _080BEA7C
+ adds r0, r1, r2
+ movs r1, 0x18
+ bl sub_80BF55C
+ b _080BEA84
+ .align 2, 0
+_080BEA78: .4byte gSaveBlock1 + 0x2A98
+_080BEA7C: .4byte 0xfffffca0
+_080BEA80:
+ bl sub_80BEA88
+_080BEA84:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80BEA5C
+
+ thumb_func_start sub_80BEA88
+sub_80BEA88: @ 80BEA88
+ push {r4-r7,lr}
+ ldr r5, _080BEB0C
+ ldr r0, _080BEB10
+ bl sub_80BF77C
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, 0
+ bne _080BEB04
+ ldr r0, _080BEB14
+ adds r7, r5, r0
+ adds r0, r7, 0
+ bl sub_80BF74C
+ ldr r4, _080BEB18
+ strb r0, [r4]
+ lsls r0, 24
+ asrs r0, 24
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ beq _080BEB04
+ movs r0, 0x19
+ bl sub_80BF1B4
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _080BEB04
+ movs r0, 0
+ ldrsb r0, [r4, r0]
+ lsls r4, r0, 3
+ adds r4, r0
+ lsls r4, 2
+ adds r4, r7
+ movs r0, 0x19
+ strb r0, [r4]
+ strb r6, [r4, 0x1]
+ ldrh r0, [r5, 0x2]
+ strh r0, [r4, 0x2]
+ movs r0, 0x5
+ bl sub_8053108
+ ldrh r1, [r5, 0x6]
+ subs r0, r1
+ strh r0, [r4, 0x6]
+ ldrh r0, [r5, 0x4]
+ strh r0, [r4, 0x4]
+ ldrh r0, [r5, 0x8]
+ strh r0, [r4, 0x8]
+ ldrb r0, [r5, 0xA]
+ strb r0, [r4, 0xA]
+ adds r0, r4, 0
+ adds r0, 0x13
+ ldr r1, _080BEB1C
+ bl StringCopy
+ adds r0, r4, 0
+ bl sub_80BE138
+ movs r0, 0x2
+ strb r0, [r4, 0xB]
+_080BEB04:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BEB0C: .4byte gSaveBlock1 + 0x2A98
+_080BEB10: .4byte 0x0000ffff
+_080BEB14: .4byte 0xfffffca0
+_080BEB18: .4byte gUnknown_03005D38
+_080BEB1C: .4byte gSaveBlock2
+ thumb_func_end sub_80BEA88
+
+ thumb_func_start sub_80BEB20
+sub_80BEB20: @ 80BEB20
+ push {r4-r6,lr}
+ ldr r0, _080BEBAC
+ bl FlagGet
+ lsls r0, 24
+ cmp r0, 0
+ beq _080BEBA6
+ ldr r6, _080BEBB0
+ adds r0, r6, 0
+ bl sub_80BEBC8
+ ldr r5, _080BEBB4
+ strb r0, [r5]
+ lsls r0, 24
+ asrs r0, 24
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ beq _080BEBA6
+ ldr r0, _080BEBB8
+ bl sub_80BF77C
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _080BEBA6
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x3
+ bl __umodsi3
+ adds r0, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ lsls r0, r4, 24
+ lsrs r0, 24
+ bl sub_80BEE48
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _080BEBA6
+ movs r0, 0
+ ldrsb r0, [r5, r0]
+ lsls r0, 2
+ ldr r1, _080BEBBC
+ adds r2, r6, r1
+ adds r0, r6, r0
+ strb r4, [r0]
+ movs r0, 0
+ ldrsb r0, [r5, r0]
+ lsls r0, 2
+ adds r0, r2
+ ldr r1, _080BEBC0
+ adds r0, r1
+ movs r1, 0x4
+ strh r1, [r0]
+ movs r0, 0
+ ldrsb r0, [r5, r0]
+ lsls r0, 2
+ adds r0, r2
+ ldr r1, _080BEBC4
+ adds r0, r1
+ movs r1, 0x1
+ strb r1, [r0]
+_080BEBA6:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BEBAC: .4byte 0x00000804
+_080BEBB0: .4byte gSaveBlock1 + 0x2ABC
+_080BEBB4: .4byte gUnknown_03005D38
+_080BEBB8: .4byte 0x0000028f
+_080BEBBC: .4byte 0xffffd544
+_080BEBC0: .4byte 0x00002abe
+_080BEBC4: .4byte 0x00002abd
+ thumb_func_end sub_80BEB20
+
+ thumb_func_start sub_80BEBC8
+sub_80BEBC8: @ 80BEBC8
+ push {lr}
+ adds r2, r0, 0
+ movs r1, 0
+_080BEBCE:
+ lsls r0, r1, 24
+ asrs r1, r0, 24
+ lsls r0, r1, 2
+ adds r0, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080BEBE0
+ adds r0, r1, 0
+ b _080BEBF0
+_080BEBE0:
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ asrs r0, 24
+ cmp r0, 0xF
+ ble _080BEBCE
+ movs r0, 0x1
+ negs r0, r0
+_080BEBF0:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80BEBC8
+
+ thumb_func_start sub_80BEBF4
+sub_80BEBF4: @ 80BEBF4
+ push {r4,lr}
+ movs r4, 0
+_080BEBF8:
+ adds r0, r4, 0
+ bl sub_80BEC10
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0xF
+ bls _080BEBF8
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80BEBF4
+
+ thumb_func_start sub_80BEC10
+sub_80BEC10: @ 80BEC10
+ lsls r0, 24
+ ldr r1, _080BEC30
+ lsrs r0, 22
+ adds r0, r1
+ ldr r2, _080BEC34
+ adds r1, r0, r2
+ movs r2, 0
+ strb r2, [r1]
+ ldr r3, _080BEC38
+ adds r1, r0, r3
+ strb r2, [r1]
+ ldr r1, _080BEC3C
+ adds r0, r1
+ strh r2, [r0]
+ bx lr
+ .align 2, 0
+_080BEC30: .4byte gSaveBlock1
+_080BEC34: .4byte 0x00002abc
+_080BEC38: .4byte 0x00002abd
+_080BEC3C: .4byte 0x00002abe
+ thumb_func_end sub_80BEC10
+
+ thumb_func_start sub_80BEC40
+sub_80BEC40: @ 80BEC40
+ push {r4-r7,lr}
+ movs r1, 0
+ ldr r6, _080BEC80
+_080BEC46:
+ ldr r3, _080BEC80
+ lsls r2, r1, 2
+ adds r0, r2, r3
+ ldr r4, _080BEC84
+ adds r0, r4
+ ldrb r0, [r0]
+ adds r5, r1, 0x1
+ cmp r0, 0
+ bne _080BEC92
+ lsls r0, r5, 24
+ lsrs r1, r0, 24
+ cmp r1, 0xF
+ bhi _080BEC92
+ adds r4, r3, r4
+ adds r3, r2, r4
+_080BEC64:
+ lsls r2, r1, 2
+ adds r0, r2, r6
+ ldr r7, _080BEC84
+ adds r0, r7
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080BEC88
+ adds r0, r2, r4
+ ldr r0, [r0]
+ str r0, [r3]
+ adds r0, r1, 0
+ bl sub_80BEC10
+ b _080BEC92
+ .align 2, 0
+_080BEC80: .4byte gSaveBlock1
+_080BEC84: .4byte 0x00002abc
+_080BEC88:
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0xF
+ bls _080BEC64
+_080BEC92:
+ lsls r0, r5, 24
+ lsrs r1, r0, 24
+ cmp r1, 0xE
+ bls _080BEC46
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80BEC40
+
+ thumb_func_start sub_80BECA0
+sub_80BECA0: @ 80BECA0
+ push {r4,lr}
+ movs r2, 0
+ ldr r3, _080BECCC
+_080BECA6:
+ lsls r0, r2, 2
+ adds r1, r0, r3
+ ldr r4, _080BECD0
+ adds r0, r1, r4
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080BECD4
+ adds r4, 0x1
+ adds r0, r1, r4
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _080BECD4
+ adds r4, 0x1
+ adds r0, r1, r4
+ ldrh r0, [r0]
+ cmp r0, 0x2
+ bhi _080BECD4
+ adds r0, r2, 0
+ b _080BECE0
+ .align 2, 0
+_080BECCC: .4byte gSaveBlock1
+_080BECD0: .4byte 0x00002abc
+_080BECD4:
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0xF
+ bls _080BECA6
+ movs r0, 0xFF
+_080BECE0:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80BECA0
+
+ thumb_func_start sub_80BECE8
+sub_80BECE8: @ 80BECE8
+ push {r4,lr}
+ bl sub_80BECA0
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0xFF
+ bne _080BED00
+ ldr r1, _080BECFC
+ movs r0, 0
+ b _080BED86
+ .align 2, 0
+_080BECFC: .4byte gScriptResult
+_080BED00:
+ ldr r0, _080BED2C
+ lsls r1, 2
+ adds r4, r1, r0
+ ldr r0, _080BED30
+ adds r1, r4, r0
+ ldrh r0, [r1]
+ cmp r0, 0
+ bne _080BED5C
+ ldr r2, _080BED34
+ adds r1, r4, r2
+ movs r0, 0x2
+ strb r0, [r1]
+ ldr r0, _080BED38
+ ldrb r0, [r0, 0x2]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0x13
+ bgt _080BED40
+ ldr r1, _080BED3C
+ subs r2, 0x1
+ b _080BED44
+ .align 2, 0
+_080BED2C: .4byte gSaveBlock1
+_080BED30: .4byte 0x00002abe
+_080BED34: .4byte 0x00002abd
+_080BED38: .4byte gLocalTime
+_080BED3C: .4byte gUnknown_083D1444
+_080BED40:
+ ldr r1, _080BED54
+ ldr r2, _080BED58
+_080BED44:
+ adds r0, r4, r2
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ bl ShowFieldMessage
+ b _080BED82
+ .align 2, 0
+_080BED54: .4byte gUnknown_083D1454
+_080BED58: .4byte 0x00002abc
+_080BED5C:
+ ldrh r1, [r1]
+ ldr r0, _080BED90
+ movs r2, 0
+ movs r3, 0x1
+ bl ConvertIntToDecimalStringN
+ ldr r0, _080BED94
+ adds r1, r4, r0
+ movs r0, 0
+ strb r0, [r1]
+ ldr r1, _080BED98
+ ldr r2, _080BED9C
+ adds r0, r4, r2
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ bl ShowFieldMessage
+_080BED82:
+ ldr r1, _080BEDA0
+ movs r0, 0x1
+_080BED86:
+ strh r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BED90: .4byte gStringVar1
+_080BED94: .4byte 0x00002abd
+_080BED98: .4byte gUnknown_083D1434
+_080BED9C: .4byte 0x00002abc
+_080BEDA0: .4byte gScriptResult
+ thumb_func_end sub_80BECE8
+
+ thumb_func_start GetPriceReduction
+GetPriceReduction: @ 80BEDA4
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0
+ bne _080BEDB4
+ b _080BEDF6
+_080BEDB0:
+ movs r0, 0x1
+ b _080BEDF8
+_080BEDB4:
+ movs r2, 0
+ ldr r4, _080BEDE0
+_080BEDB8:
+ lsls r0, r2, 2
+ adds r1, r0, r4
+ ldr r5, _080BEDE4
+ adds r0, r1, r5
+ ldrb r0, [r0]
+ cmp r0, r3
+ bne _080BEDEC
+ ldr r2, _080BEDE8
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, 0x2
+ bne _080BEDF6
+ adds r0, r3, 0
+ bl IsPriceDiscounted
+ lsls r0, 24
+ cmp r0, 0
+ bne _080BEDB0
+ b _080BEDF6
+ .align 2, 0
+_080BEDE0: .4byte gSaveBlock1
+_080BEDE4: .4byte 0x00002abc
+_080BEDE8: .4byte 0x00002abd
+_080BEDEC:
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0xF
+ bls _080BEDB8
+_080BEDF6:
+ movs r0, 0
+_080BEDF8:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end GetPriceReduction
+
+ thumb_func_start IsPriceDiscounted
+IsPriceDiscounted: @ 80BEE00
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _080BEE12
+ cmp r0, 0x3
+ beq _080BEE30
+_080BEE0E:
+ movs r0, 0x1
+ b _080BEE3C
+_080BEE12:
+ ldr r0, _080BEE28
+ ldrh r1, [r0, 0x4]
+ movs r0, 0x80
+ lsls r0, 1
+ cmp r1, r0
+ bne _080BEE3A
+ ldr r0, _080BEE2C
+ ldrh r0, [r0]
+ cmp r0, 0x1A
+ beq _080BEE0E
+ b _080BEE3A
+ .align 2, 0
+_080BEE28: .4byte gSaveBlock1
+_080BEE2C: .4byte gUnknown_0202E8DE
+_080BEE30:
+ ldr r0, _080BEE40
+ ldrh r1, [r0, 0x4]
+ ldr r0, _080BEE44
+ cmp r1, r0
+ beq _080BEE0E
+_080BEE3A:
+ movs r0, 0
+_080BEE3C:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080BEE40: .4byte gSaveBlock1
+_080BEE44: .4byte 0x0000160d
+ thumb_func_end IsPriceDiscounted
+
+ thumb_func_start sub_80BEE48
+sub_80BEE48: @ 80BEE48
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0
+ bne _080BEE56
+_080BEE52:
+ movs r0, 0x1
+ b _080BEE74
+_080BEE56:
+ movs r1, 0
+ ldr r4, _080BEE7C
+ ldr r3, _080BEE80
+_080BEE5C:
+ lsls r0, r1, 2
+ adds r0, r4
+ adds r0, r3
+ ldrb r0, [r0]
+ cmp r0, r2
+ beq _080BEE52
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0xF
+ bls _080BEE5C
+ movs r0, 0
+_080BEE74:
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080BEE7C: .4byte gSaveBlock1
+_080BEE80: .4byte 0x00002abc
+ thumb_func_end sub_80BEE48
+
+ thumb_func_start sub_80BEE84
+sub_80BEE84: @ 80BEE84
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 16
+ lsrs r7, r0, 16
+ movs r5, 0
+ ldr r0, _080BEEB8
+ mov r8, r0
+_080BEE94:
+ lsls r0, r5, 2
+ mov r1, r8
+ adds r2, r0, r1
+ ldr r3, _080BEEBC
+ adds r1, r2, r3
+ ldrb r1, [r1]
+ adds r6, r0, 0
+ cmp r1, 0
+ beq _080BEEEC
+ ldr r1, _080BEEC0
+ adds r0, r2, r1
+ ldrh r0, [r0]
+ cmp r0, r7
+ bcs _080BEEC4
+ adds r0, r5, 0
+ bl sub_80BEC10
+ b _080BEEEC
+ .align 2, 0
+_080BEEB8: .4byte gSaveBlock1
+_080BEEBC: .4byte 0x00002abc
+_080BEEC0: .4byte 0x00002abe
+_080BEEC4:
+ ldr r3, _080BEF04
+ adds r4, r2, r3
+ ldrb r0, [r4]
+ cmp r0, 0
+ bne _080BEEDE
+ ldr r0, _080BEF08
+ bl FlagGet
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080BEEDE
+ strb r0, [r4]
+_080BEEDE:
+ mov r0, r8
+ adds r1, r6, r0
+ ldr r3, _080BEF0C
+ adds r1, r3
+ ldrh r0, [r1]
+ subs r0, r7
+ strh r0, [r1]
+_080BEEEC:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0xF
+ bls _080BEE94
+ bl sub_80BEC40
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BEF04: .4byte 0x00002abd
+_080BEF08: .4byte 0x00000804
+_080BEF0C: .4byte 0x00002abe
+ thumb_func_end sub_80BEE84
+
+ thumb_func_start sub_80BEF10
+sub_80BEF10: @ 80BEF10
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ adds r2, r1, 0
+ cmp r1, 0x1
+ beq _080BEF50
+ cmp r1, 0x1
+ bgt _080BEF2A
+ cmp r1, 0
+ beq _080BEF34
+ b _080BEF98
+_080BEF2A:
+ cmp r2, 0x2
+ beq _080BEF6C
+ cmp r2, 0x3
+ beq _080BEF88
+ b _080BEF98
+_080BEF34:
+ ldr r1, _080BEF48
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ ldr r1, _080BEF4C
+ ldr r1, [r1, 0x14]
+ bl StringCopy
+ b _080BEF98
+ .align 2, 0
+_080BEF48: .4byte gUnknown_083D1464
+_080BEF4C: .4byte gUnknown_083CE048
+_080BEF50:
+ ldr r1, _080BEF64
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ ldr r1, _080BEF68
+ ldr r1, [r1, 0x18]
+ bl StringCopy
+ b _080BEF98
+ .align 2, 0
+_080BEF64: .4byte gUnknown_083D1464
+_080BEF68: .4byte gUnknown_083CE048
+_080BEF6C:
+ ldr r1, _080BEF80
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ ldr r1, _080BEF84
+ ldr r1, [r1, 0x1C]
+ bl StringCopy
+ b _080BEF98
+ .align 2, 0
+_080BEF80: .4byte gUnknown_083D1464
+_080BEF84: .4byte gUnknown_083CE048
+_080BEF88:
+ ldr r1, _080BEF9C
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ ldr r1, _080BEFA0
+ ldr r1, [r1, 0x20]
+ bl StringCopy
+_080BEF98:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BEF9C: .4byte gUnknown_083D1464
+_080BEFA0: .4byte gUnknown_083CE048
+ thumb_func_end sub_80BEF10
+
+ thumb_func_start CopyContestCategoryToStringVar
+CopyContestCategoryToStringVar: @ 80BEFA4
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r1, 24
+ lsrs r0, r1, 24
+ cmp r0, 0x4
+ bhi _080BF054
+ lsls r0, 2
+ ldr r1, _080BEFBC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080BEFBC: .4byte _080BEFC0
+ .align 2, 0
+_080BEFC0:
+ .4byte _080BEFD4
+ .4byte _080BEFF0
+ .4byte _080BF00C
+ .4byte _080BF028
+ .4byte _080BF044
+_080BEFD4:
+ ldr r1, _080BEFE8
+ lsls r0, r2, 2
+ adds r0, r1
+ ldr r0, [r0]
+ ldr r1, _080BEFEC
+ ldr r1, [r1]
+ bl StringCopy
+ b _080BF054
+ .align 2, 0
+_080BEFE8: .4byte gUnknown_083D1464
+_080BEFEC: .4byte gUnknown_083CE048
+_080BEFF0:
+ ldr r1, _080BF004
+ lsls r0, r2, 2
+ adds r0, r1
+ ldr r0, [r0]
+ ldr r1, _080BF008
+ ldr r1, [r1, 0x4]
+ bl StringCopy
+ b _080BF054
+ .align 2, 0
+_080BF004: .4byte gUnknown_083D1464
+_080BF008: .4byte gUnknown_083CE048
+_080BF00C:
+ ldr r1, _080BF020
+ lsls r0, r2, 2
+ adds r0, r1
+ ldr r0, [r0]
+ ldr r1, _080BF024
+ ldr r1, [r1, 0x8]
+ bl StringCopy
+ b _080BF054
+ .align 2, 0
+_080BF020: .4byte gUnknown_083D1464
+_080BF024: .4byte gUnknown_083CE048
+_080BF028:
+ ldr r1, _080BF03C
+ lsls r0, r2, 2
+ adds r0, r1
+ ldr r0, [r0]
+ ldr r1, _080BF040
+ ldr r1, [r1, 0xC]
+ bl StringCopy
+ b _080BF054
+ .align 2, 0
+_080BF03C: .4byte gUnknown_083D1464
+_080BF040: .4byte gUnknown_083CE048
+_080BF044:
+ ldr r1, _080BF058
+ lsls r0, r2, 2
+ adds r0, r1
+ ldr r0, [r0]
+ ldr r1, _080BF05C
+ ldr r1, [r1, 0x10]
+ bl StringCopy
+_080BF054:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BF058: .4byte gUnknown_083D1464
+_080BF05C: .4byte gUnknown_083CE048
+ thumb_func_end CopyContestCategoryToStringVar
+
+ thumb_func_start SetContestCategoryStringVarForInterview
+SetContestCategoryStringVarForInterview: @ 80BF060
+ push {lr}
+ ldr r0, _080BF080
+ ldrh r1, [r0]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080BF084
+ adds r0, r1
+ ldrb r1, [r0, 0x13]
+ lsls r1, 29
+ lsrs r1, 29
+ movs r0, 0x1
+ bl CopyContestCategoryToStringVar
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BF080: .4byte gUnknown_0202E8CC
+_080BF084: .4byte gSaveBlock1 + 0x2738
+ thumb_func_end SetContestCategoryStringVarForInterview
+
+ thumb_func_start sub_80BF088
+sub_80BF088: @ 80BF088
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r5, 0
+ bl sub_80BF0B8
+ adds r3, r0, 0
+ ldr r0, _080BF0B4
+ lsls r4, 2
+ adds r4, r0
+ ldr r0, [r4]
+ lsls r3, 24
+ lsrs r3, 24
+ adds r1, r5, 0
+ movs r2, 0
+ bl ConvertIntToDecimalStringN
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BF0B4: .4byte gUnknown_083D1464
+ thumb_func_end sub_80BF088
+
+ thumb_func_start sub_80BF0B8
+sub_80BF0B8: @ 80BF0B8
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0xA
+ bl __divsi3
+ cmp r0, 0
+ beq _080BF144
+ adds r0, r4, 0
+ movs r1, 0x64
+ bl __divsi3
+ cmp r0, 0
+ bne _080BF0D6
+ movs r0, 0x2
+ b _080BF14E
+_080BF0D6:
+ movs r1, 0xFA
+ lsls r1, 2
+ adds r0, r4, 0
+ bl __divsi3
+ cmp r0, 0
+ bne _080BF0E8
+ movs r0, 0x3
+ b _080BF14E
+_080BF0E8:
+ ldr r1, _080BF0F8
+ adds r0, r4, 0
+ bl __divsi3
+ cmp r0, 0
+ bne _080BF0FC
+ movs r0, 0x4
+ b _080BF14E
+ .align 2, 0
+_080BF0F8: .4byte 0x00002710
+_080BF0FC:
+ ldr r1, _080BF10C
+ adds r0, r4, 0
+ bl __divsi3
+ cmp r0, 0
+ bne _080BF110
+ movs r0, 0x5
+ b _080BF14E
+ .align 2, 0
+_080BF10C: .4byte 0x000186a0
+_080BF110:
+ ldr r1, _080BF120
+ adds r0, r4, 0
+ bl __divsi3
+ cmp r0, 0
+ bne _080BF124
+ movs r0, 0x6
+ b _080BF14E
+ .align 2, 0
+_080BF120: .4byte 0x000f4240
+_080BF124:
+ ldr r1, _080BF134
+ adds r0, r4, 0
+ bl __divsi3
+ cmp r0, 0
+ bne _080BF138
+ movs r0, 0x7
+ b _080BF14E
+ .align 2, 0
+_080BF134: .4byte 0x00989680
+_080BF138:
+ ldr r1, _080BF148
+ adds r0, r4, 0
+ bl __divsi3
+ cmp r0, 0
+ beq _080BF14C
+_080BF144:
+ movs r0, 0x1
+ b _080BF14E
+ .align 2, 0
+_080BF148: .4byte 0x05f5e100
+_080BF14C:
+ movs r0, 0x8
+_080BF14E:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80BF0B8
+
+ thumb_func_start sub_80BF154
+sub_80BF154: @ 80BF154
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r6, r1, 0
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ movs r7, 0
+ movs r5, 0
+_080BF166:
+ lsls r4, r5, 1
+ adds r0, r6, 0x6
+ adds r1, r0, r4
+ ldrh r0, [r1]
+ cmp r0, 0
+ beq _080BF186
+ bl itemid_get_market_price
+ lsls r0, 16
+ lsrs r0, 16
+ adds r1, r6, 0
+ adds r1, 0xC
+ adds r1, r4
+ ldrh r1, [r1]
+ muls r0, r1
+ adds r7, r0
+_080BF186:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x2
+ bls _080BF166
+ ldrb r0, [r6, 0x2]
+ cmp r0, 0x1
+ bne _080BF1A0
+ asrs r1, r7, 1
+ mov r0, r8
+ bl sub_80BF088
+ b _080BF1A8
+_080BF1A0:
+ mov r0, r8
+ adds r1, r7, 0
+ bl sub_80BF088
+_080BF1A8:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80BF154
+
+ thumb_func_start sub_80BF1B4
+sub_80BF1B4: @ 80BF1B4
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r7, _080BF1F4
+ bl sub_80BFB94
+ adds r5, r0, 0
+ movs r4, 0x5
+_080BF1C4:
+ lsls r0, r4, 3
+ adds r0, r4
+ lsls r0, 2
+ adds r1, r0, r7
+ ldrb r0, [r1]
+ cmp r0, r6
+ bne _080BF1F8
+ movs r3, 0xFF
+ adds r0, r5, 0
+ ands r0, r3
+ adds r2, r1, 0
+ adds r2, 0x22
+ ldrb r2, [r2]
+ cmp r0, r2
+ bne _080BF1F8
+ lsrs r0, r5, 8
+ ands r0, r3
+ adds r1, 0x23
+ ldrb r1, [r1]
+ cmp r0, r1
+ bne _080BF1F8
+ movs r0, 0x1
+ b _080BF204
+ .align 2, 0
+_080BF1F4: .4byte gSaveBlock1 + 0x2738
+_080BF1F8:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x17
+ bls _080BF1C4
+ movs r0, 0
+_080BF204:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80BF1B4
+
+ thumb_func_start sub_80BF20C
+sub_80BF20C: @ 80BF20C
+ push {r4-r7,lr}
+ movs r2, 0
+_080BF210:
+ adds r1, r2, 0x1
+ lsls r0, r1, 24
+ lsrs r5, r0, 24
+ adds r7, r1, 0
+ cmp r5, 0x2
+ bhi _080BF248
+ ldr r6, _080BF258
+ lsls r0, r2, 2
+ adds r4, r0, r6
+_080BF222:
+ lsls r0, r5, 2
+ adds r3, r0, r6
+ ldrh r0, [r4, 0x2]
+ ldrh r1, [r3, 0x2]
+ cmp r0, r1
+ bcs _080BF23E
+ ldrh r1, [r4]
+ adds r2, r0, 0
+ ldrh r0, [r3]
+ strh r0, [r4]
+ ldrh r0, [r3, 0x2]
+ strh r0, [r4, 0x2]
+ strh r1, [r3]
+ strh r2, [r3, 0x2]
+_080BF23E:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x2
+ bls _080BF222
+_080BF248:
+ lsls r0, r7, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x1
+ bls _080BF210
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BF258: .4byte gUnknown_02038724
+ thumb_func_end sub_80BF20C
+
+ thumb_func_start sub_80BF25C
+sub_80BF25C: @ 80BF25C
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r1, 0
+ ldr r3, _080BF28C
+ ldr r0, _080BF290
+ adds r4, r3, r0
+_080BF26A:
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ adds r2, r0, r3
+ ldr r6, _080BF290
+ adds r0, r2, r6
+ ldrb r0, [r0]
+ cmp r0, r5
+ bne _080BF2AE
+ ldr r3, _080BF294
+ adds r0, r2, r3
+ ldrb r2, [r0]
+ cmp r2, 0x1
+ bne _080BF29C
+ ldr r0, _080BF298
+ strh r2, [r0]
+ b _080BF2BC
+ .align 2, 0
+_080BF28C: .4byte gSaveBlock1
+_080BF290: .4byte 0x00002738
+_080BF294: .4byte 0x00002739
+_080BF298: .4byte gScriptResult
+_080BF29C:
+ adds r0, r4, 0
+ bl sub_80BF55C
+ adds r0, r4, 0
+ bl sub_80BF588
+ bl sub_80BF6D8
+ b _080BF2BC
+_080BF2AE:
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x4
+ bls _080BF26A
+ bl sub_80BF6D8
+_080BF2BC:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80BF25C
+
+ thumb_func_start sub_80BF2C4
+sub_80BF2C4: @ 80BF2C4
+ push {lr}
+ ldr r1, _080BF2E0
+ movs r0, 0
+ strh r0, [r1]
+ ldr r0, _080BF2E4
+ ldrh r0, [r0]
+ subs r0, 0x1
+ cmp r0, 0x6
+ bhi _080BF330
+ lsls r0, 2
+ ldr r1, _080BF2E8
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080BF2E0: .4byte gScriptResult
+_080BF2E4: .4byte gUnknown_0202E8CE
+_080BF2E8: .4byte _080BF2EC
+ .align 2, 0
+_080BF2EC:
+ .4byte _080BF308
+ .4byte _080BF30E
+ .4byte _080BF314
+ .4byte _080BF31A
+ .4byte _080BF320
+ .4byte _080BF326
+ .4byte _080BF32C
+_080BF308:
+ bl sub_80BF334
+ b _080BF330
+_080BF30E:
+ bl sub_80BF3A4
+ b _080BF330
+_080BF314:
+ bl sub_80BF3DC
+ b _080BF330
+_080BF31A:
+ bl sub_80BF46C
+ b _080BF330
+_080BF320:
+ bl sub_80BF478
+ b _080BF330
+_080BF326:
+ bl sub_80BF484
+ b _080BF330
+_080BF32C:
+ bl sub_80BF4BC
+_080BF330:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80BF2C4
+
+ thumb_func_start sub_80BF334
+sub_80BF334: @ 80BF334
+ push {r4,lr}
+ movs r0, 0x1
+ bl sub_80BF25C
+ ldr r0, _080BF38C
+ ldrh r0, [r0]
+ cmp r0, 0
+ bne _080BF384
+ ldr r4, _080BF390
+ bl sub_810F87C
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x64
+ muls r0, r1
+ ldr r1, _080BF394
+ adds r0, r1
+ movs r1, 0xB
+ movs r2, 0
+ bl GetMonData
+ movs r1, 0xB
+ muls r1, r0
+ ldr r0, _080BF398
+ adds r1, r0
+ adds r0, r4, 0
+ bl StringCopy
+ ldr r0, _080BF39C
+ movs r1, 0
+ ldrsb r1, [r0, r1]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080BF3A0
+ adds r0, r1
+ adds r0, 0x4
+ movs r1, 0x6
+ bl sub_80EB6FC
+_080BF384:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BF38C: .4byte gScriptResult
+_080BF390: .4byte gStringVar1
+_080BF394: .4byte gPlayerParty
+_080BF398: .4byte gSpeciesNames
+_080BF39C: .4byte gUnknown_03005D38
+_080BF3A0: .4byte gSaveBlock1 + 0x2738
+ thumb_func_end sub_80BF334
+
+ thumb_func_start sub_80BF3A4
+sub_80BF3A4: @ 80BF3A4
+ push {lr}
+ movs r0, 0x2
+ bl sub_80BF25C
+ ldr r0, _080BF3D0
+ ldrh r0, [r0]
+ cmp r0, 0
+ bne _080BF3CC
+ ldr r0, _080BF3D4
+ movs r1, 0
+ ldrsb r1, [r0, r1]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080BF3D8
+ adds r0, r1
+ adds r0, 0x4
+ movs r1, 0x6
+ bl sub_80EB6FC
+_080BF3CC:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BF3D0: .4byte gScriptResult
+_080BF3D4: .4byte gUnknown_03005D38
+_080BF3D8: .4byte gSaveBlock1 + 0x2738
+ thumb_func_end sub_80BF3A4
+
+ thumb_func_start sub_80BF3DC
+sub_80BF3DC: @ 80BF3DC
+ push {r4-r6,lr}
+ movs r0, 0x3
+ bl sub_80BF25C
+ ldr r0, _080BF450
+ ldrh r0, [r0]
+ cmp r0, 0
+ bne _080BF448
+ ldr r6, _080BF454
+ bl sub_810F87C
+ lsls r0, 24
+ lsrs r0, 24
+ movs r5, 0x64
+ muls r0, r5
+ ldr r4, _080BF458
+ adds r0, r4
+ movs r1, 0xB
+ movs r2, 0
+ bl GetMonData
+ movs r1, 0xB
+ muls r1, r0
+ ldr r0, _080BF45C
+ adds r1, r0
+ adds r0, r6, 0
+ bl StringCopy
+ bl sub_810F87C
+ lsls r0, 24
+ lsrs r0, 24
+ muls r0, r5
+ adds r0, r4
+ ldr r4, _080BF460
+ movs r1, 0x2
+ adds r2, r4, 0
+ bl GetMonData
+ adds r0, r4, 0
+ bl StringGetEnd10
+ ldr r0, _080BF464
+ movs r1, 0
+ ldrsb r1, [r0, r1]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080BF468
+ adds r0, r1
+ adds r0, 0x1C
+ movs r1, 0x2
+ bl sub_80EB6FC
+_080BF448:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BF450: .4byte gScriptResult
+_080BF454: .4byte gStringVar1
+_080BF458: .4byte gPlayerParty
+_080BF45C: .4byte gSpeciesNames
+_080BF460: .4byte gStringVar2
+_080BF464: .4byte gUnknown_03005D38
+_080BF468: .4byte gSaveBlock1 + 0x2738
+ thumb_func_end sub_80BF3DC
+
+ thumb_func_start sub_80BF46C
+sub_80BF46C: @ 80BF46C
+ ldr r1, _080BF474
+ movs r0, 0x1
+ strh r0, [r1]
+ bx lr
+ .align 2, 0
+_080BF474: .4byte gScriptResult
+ thumb_func_end sub_80BF46C
+
+ thumb_func_start sub_80BF478
+sub_80BF478: @ 80BF478
+ push {lr}
+ movs r0, 0x5
+ bl sub_80BF25C
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80BF478
+
+ thumb_func_start sub_80BF484
+sub_80BF484: @ 80BF484
+ push {lr}
+ movs r0, 0x6
+ bl sub_80BF25C
+ ldr r0, _080BF4B0
+ ldrh r0, [r0]
+ cmp r0, 0
+ bne _080BF4AC
+ ldr r0, _080BF4B4
+ movs r1, 0
+ ldrsb r1, [r0, r1]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080BF4B8
+ adds r0, r1
+ adds r0, 0x4
+ movs r1, 0x2
+ bl sub_80EB6FC
+_080BF4AC:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BF4B0: .4byte gScriptResult
+_080BF4B4: .4byte gUnknown_03005D38
+_080BF4B8: .4byte gSaveBlock1 + 0x2738
+ thumb_func_end sub_80BF484
+
+ thumb_func_start sub_80BF4BC
+sub_80BF4BC: @ 80BF4BC
+ push {lr}
+ movs r0, 0x7
+ bl sub_80BF25C
+ ldr r0, _080BF4E8
+ ldrh r0, [r0]
+ cmp r0, 0
+ bne _080BF4E4
+ ldr r0, _080BF4EC
+ movs r1, 0
+ ldrsb r1, [r0, r1]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080BF4F0
+ adds r0, r1
+ adds r0, 0x18
+ movs r1, 0x1
+ bl sub_80EB6FC
+_080BF4E4:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BF4E8: .4byte gScriptResult
+_080BF4EC: .4byte gUnknown_03005D38
+_080BF4F0: .4byte gSaveBlock1 + 0x2738
+ thumb_func_end sub_80BF4BC
+
+ thumb_func_start sub_80BF4F4
+sub_80BF4F4: @ 80BF4F4
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x64
+ adds r4, r0, 0
+ muls r4, r1
+ ldr r0, _080BF530
+ adds r4, r0
+ ldr r5, _080BF534
+ adds r0, r4, 0
+ movs r1, 0x2
+ adds r2, r5, 0
+ bl GetMonData
+ adds r0, r4, 0
+ movs r1, 0xB
+ movs r2, 0
+ bl GetMonData
+ movs r1, 0xB
+ muls r0, r1
+ ldr r1, _080BF538
+ adds r0, r1
+ adds r1, r5, 0
+ bl StringCompareWithoutExtCtrlCodes
+ cmp r0, 0
+ beq _080BF53C
+ movs r0, 0x1
+ b _080BF53E
+ .align 2, 0
+_080BF530: .4byte gPlayerParty
+_080BF534: .4byte gStringVar1
+_080BF538: .4byte gSpeciesNames
+_080BF53C:
+ movs r0, 0
+_080BF53E:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80BF4F4
+
+ thumb_func_start sub_80BF544
+sub_80BF544: @ 80BF544
+ push {lr}
+ bl sub_810F87C
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_80BF4F4
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80BF544
+
+ thumb_func_start sub_80BF55C
+sub_80BF55C: @ 80BF55C
+ push {lr}
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r2, r1, 3
+ adds r2, r1
+ lsls r2, 2
+ adds r2, r0
+ movs r0, 0
+ strb r0, [r2]
+ strb r0, [r2, 0x1]
+ movs r1, 0
+ adds r2, 0x2
+ movs r3, 0
+_080BF576:
+ adds r0, r2, r1
+ strb r3, [r0]
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x21
+ bls _080BF576
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80BF55C
+
+ thumb_func_start sub_80BF588
+sub_80BF588: @ 80BF588
+ push {r4-r7,lr}
+ adds r4, r0, 0
+ movs r5, 0
+_080BF58E:
+ lsls r0, r5, 3
+ adds r0, r5
+ lsls r1, r0, 2
+ adds r0, r1, r4
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080BF5D2
+ adds r0, r5, 0x1
+ b _080BF5CA
+_080BF5A0:
+ lsls r0, r2, 3
+ adds r0, r2
+ lsls r0, 2
+ adds r3, r0, r4
+ ldrb r0, [r3]
+ cmp r0, 0
+ beq _080BF5C8
+ adds r1, r4
+ adds r0, r3, 0
+ ldm r0!, {r3,r6,r7}
+ stm r1!, {r3,r6,r7}
+ ldm r0!, {r3,r6,r7}
+ stm r1!, {r3,r6,r7}
+ ldm r0!, {r3,r6,r7}
+ stm r1!, {r3,r6,r7}
+ adds r0, r4, 0
+ adds r1, r2, 0
+ bl sub_80BF55C
+ b _080BF5D2
+_080BF5C8:
+ adds r0, r2, 0x1
+_080BF5CA:
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x4
+ bls _080BF5A0
+_080BF5D2:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x3
+ bls _080BF58E
+ movs r5, 0x5
+_080BF5DE:
+ lsls r0, r5, 3
+ adds r0, r5
+ lsls r1, r0, 2
+ adds r0, r1, r4
+ ldrb r0, [r0]
+ adds r5, 0x1
+ cmp r0, 0
+ bne _080BF62A
+ lsls r0, r5, 24
+ b _080BF624
+_080BF5F2:
+ lsls r0, r2, 3
+ adds r0, r2
+ lsls r0, 2
+ adds r3, r0, r4
+ ldrb r0, [r3]
+ cmp r0, 0
+ beq _080BF620
+ adds r1, r4
+ adds r0, r3, 0
+ ldm r0!, {r3,r6,r7}
+ stm r1!, {r3,r6,r7}
+ ldm r0!, {r3,r6,r7}
+ stm r1!, {r3,r6,r7}
+ ldm r0!, {r3,r6,r7}
+ stm r1!, {r3,r6,r7}
+ ldr r0, _080BF61C
+ adds r1, r2, 0
+ bl sub_80BF55C
+ b _080BF62A
+ .align 2, 0
+_080BF61C: .4byte gSaveBlock1 + 0x2738
+_080BF620:
+ adds r0, r2, 0x1
+ lsls r0, 24
+_080BF624:
+ lsrs r2, r0, 24
+ cmp r2, 0x17
+ bls _080BF5F2
+_080BF62A:
+ lsls r0, r5, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x17
+ bls _080BF5DE
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80BF588
+
+ thumb_func_start sub_80BF638
+sub_80BF638: @ 80BF638
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ adds r0, r1, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r0, 16
+ lsrs r0, 16
+ bl sub_80BF674
+ adds r5, r0, 0
+ lsls r5, 16
+ lsrs r5, 16
+ ldr r0, _080BF66C
+ lsls r4, 2
+ adds r4, r0
+ ldr r0, [r4]
+ movs r1, 0xB
+ muls r1, r5
+ ldr r2, _080BF670
+ adds r1, r2
+ bl StringCopy
+ adds r0, r5, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080BF66C: .4byte gUnknown_083D1464
+_080BF670: .4byte gSpeciesNames
+ thumb_func_end sub_80BF638
+
+ thumb_func_start sub_80BF674
+sub_80BF674: @ 80BF674
+ push {r4-r6,lr}
+ lsls r0, 16
+ lsrs r5, r0, 16
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r1, _080BF694
+ bl __umodsi3
+ adds r0, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ adds r6, r4, 0
+ b _080BF6B2
+ .align 2, 0
+_080BF694: .4byte 0x0000019b
+_080BF698:
+ cmp r4, 0x1
+ bne _080BF6A4
+ ldr r4, _080BF6A0
+ b _080BF6AA
+ .align 2, 0
+_080BF6A0: .4byte 0x0000019b
+_080BF6A4:
+ subs r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+_080BF6AA:
+ cmp r4, r6
+ bne _080BF6B2
+ adds r4, r5, 0
+ b _080BF6CE
+_080BF6B2:
+ adds r0, r4, 0
+ bl SpeciesToNationalPokedexNum
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0
+ bl sub_8090D90
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0x1
+ bne _080BF698
+ cmp r4, r5
+ beq _080BF698
+_080BF6CE:
+ adds r0, r4, 0
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80BF674
+
+ thumb_func_start sub_80BF6D8
+sub_80BF6D8: @ 80BF6D8
+ push {lr}
+ ldr r0, _080BF700
+ bl sub_80BF720
+ ldr r1, _080BF704
+ strb r0, [r1]
+ ldr r2, _080BF708
+ ldrb r1, [r1]
+ lsls r1, 24
+ asrs r1, 24
+ strh r1, [r2]
+ lsls r0, 24
+ asrs r0, 24
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ bne _080BF710
+ ldr r1, _080BF70C
+ movs r0, 0x1
+ b _080BF714
+ .align 2, 0
+_080BF700: .4byte gSaveBlock1 + 0x2738
+_080BF704: .4byte gUnknown_03005D38
+_080BF708: .4byte gUnknown_0202E8D0
+_080BF70C: .4byte gScriptResult
+_080BF710:
+ ldr r1, _080BF71C
+ movs r0, 0
+_080BF714:
+ strh r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BF71C: .4byte gScriptResult
+ thumb_func_end sub_80BF6D8
+
+ thumb_func_start sub_80BF720
+sub_80BF720: @ 80BF720
+ push {lr}
+ adds r2, r0, 0
+ movs r1, 0
+_080BF726:
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080BF73A
+ lsls r0, r1, 24
+ asrs r0, 24
+ b _080BF748
+_080BF73A:
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x4
+ bls _080BF726
+ movs r0, 0x1
+ negs r0, r0
+_080BF748:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80BF720
+
+ thumb_func_start sub_80BF74C
+sub_80BF74C: @ 80BF74C
+ push {lr}
+ adds r2, r0, 0
+ movs r1, 0x5
+_080BF752:
+ lsls r0, r1, 24
+ asrs r1, r0, 24
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080BF768
+ adds r0, r1, 0
+ b _080BF778
+_080BF768:
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ asrs r0, 24
+ cmp r0, 0x17
+ ble _080BF752
+ movs r0, 0x1
+ negs r0, r0
+_080BF778:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80BF74C
+
+ thumb_func_start sub_80BF77C
+sub_80BF77C: @ 80BF77C
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, r4
+ bls _080BF794
+ movs r0, 0x1
+ b _080BF796
+_080BF794:
+ movs r0, 0
+_080BF796:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80BF77C
+
+ thumb_func_start sub_80BF79C
+sub_80BF79C: @ 80BF79C
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x6
+ bl __umodsi3
+ lsls r0, 24
+ lsrs r2, r0, 24
+ adds r5, r4, 0x4
+ ldr r6, _080BF7B8
+ b _080BF7C2
+ .align 2, 0
+_080BF7B8: .4byte 0x0000ffff
+_080BF7BC:
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+_080BF7C2:
+ cmp r2, 0x6
+ bne _080BF7C8
+ movs r2, 0
+_080BF7C8:
+ lsls r1, r2, 1
+ adds r0, r5, r1
+ ldrh r0, [r0]
+ adds r3, r4, 0x4
+ cmp r0, r6
+ beq _080BF7BC
+ ldr r0, _080BF7E4
+ adds r1, r3, r1
+ ldrh r1, [r1]
+ bl sub_80EB3FC
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BF7E4: .4byte gStringVar3
+ thumb_func_end sub_80BF79C
+
+ thumb_func_start sub_80BF7E8
+sub_80BF7E8: @ 80BF7E8
+ push {lr}
+ adds r2, r0, 0
+ movs r3, 0
+ movs r1, 0
+ ldrb r0, [r2, 0x4]
+ cmp r0, 0xFF
+ beq _080BF814
+ adds r2, 0x4
+_080BF7F8:
+ adds r0, r2, r1
+ ldrb r0, [r0]
+ adds r0, r3, r0
+ lsls r0, 16
+ lsrs r3, r0, 16
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0xA
+ bhi _080BF814
+ adds r0, r2, r1
+ ldrb r0, [r0]
+ cmp r0, 0xFF
+ bne _080BF7F8
+_080BF814:
+ movs r0, 0x7
+ ands r3, r0
+ adds r0, r3, 0
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80BF7E8
+
+ thumb_func_start sub_80BF820
+sub_80BF820: @ 80BF820
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ ldr r4, [sp, 0x1C]
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ lsls r1, 24
+ lsrs r5, r1, 24
+ lsls r2, 24
+ lsrs r6, r2, 24
+ lsls r3, 16
+ lsrs r3, 16
+ lsls r4, 16
+ lsrs r4, 16
+ movs r2, 0
+ movs r7, 0xFF
+_080BF844:
+ mov r1, sp
+ adds r0, r1, r2
+ ldrb r1, [r0]
+ orrs r1, r7
+ strb r1, [r0]
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x2
+ bls _080BF844
+ cmp r3, 0
+ bne _080BF8A6
+ ldr r4, [sp, 0x20]
+ adds r4, 0xF
+ adds r0, r4, 0
+ bl StringLength
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r6, 0
+ bne _080BF874
+ mov r0, sp
+ adds r1, r4, r5
+ b _080BF920
+_080BF874:
+ cmp r6, 0x1
+ bne _080BF880
+ mov r0, sp
+ subs r1, r2, r5
+ adds r1, r4, r1
+ b _080BF920
+_080BF880:
+ cmp r6, 0x2
+ bne _080BF892
+ mov r1, sp
+ adds r0, r4, r5
+ ldrb r0, [r0]
+ strb r0, [r1]
+ adds r0, r5, 0x1
+ adds r0, r4, r0
+ b _080BF950
+_080BF892:
+ mov r1, sp
+ subs r0, r2, 0x2
+ subs r0, r5
+ adds r0, r4, r0
+ ldrb r0, [r0]
+ strb r0, [r1]
+ subs r0, r2, 0x1
+ subs r0, r5
+ adds r0, r4, r0
+ b _080BF950
+_080BF8A6:
+ cmp r3, 0x1
+ bne _080BF8F4
+ ldr r4, [sp, 0x20]
+ adds r4, 0x4
+ adds r0, r4, 0
+ bl StringLength
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r6, 0
+ bne _080BF8C2
+ mov r0, sp
+ adds r1, r4, r5
+ b _080BF920
+_080BF8C2:
+ cmp r6, 0x1
+ bne _080BF8CE
+ mov r0, sp
+ subs r1, r2, r5
+ adds r1, r4, r1
+ b _080BF920
+_080BF8CE:
+ cmp r6, 0x2
+ bne _080BF8E0
+ mov r1, sp
+ adds r0, r4, r5
+ ldrb r0, [r0]
+ strb r0, [r1]
+ adds r0, r5, 0x1
+ adds r0, r4, r0
+ b _080BF950
+_080BF8E0:
+ mov r1, sp
+ subs r0, r2, 0x2
+ subs r0, r5
+ adds r0, r4, r0
+ ldrb r0, [r0]
+ strb r0, [r1]
+ subs r0, r2, 0x1
+ subs r0, r5
+ adds r0, r4, r0
+ b _080BF950
+_080BF8F4:
+ movs r0, 0xB
+ muls r4, r0
+ ldr r7, _080BF910
+ adds r0, r4, r7
+ bl StringLength
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r6, 0
+ bne _080BF914
+ mov r0, sp
+ adds r1, r5, r4
+ b _080BF91E
+ .align 2, 0
+_080BF910: .4byte gSpeciesNames
+_080BF914:
+ cmp r6, 0x1
+ bne _080BF926
+ mov r0, sp
+ subs r1, r2, r5
+ adds r1, r4
+_080BF91E:
+ adds r1, r7
+_080BF920:
+ ldrb r1, [r1]
+ strb r1, [r0]
+ b _080BF954
+_080BF926:
+ cmp r6, 0x2
+ bne _080BF93A
+ mov r1, sp
+ adds r0, r5, r4
+ adds r0, r7
+ ldrb r0, [r0]
+ strb r0, [r1]
+ adds r0, r4, 0x1
+ adds r0, r5, r0
+ b _080BF94E
+_080BF93A:
+ mov r1, sp
+ subs r0, r2, 0x2
+ subs r0, r5
+ adds r0, r4
+ adds r0, r7
+ ldrb r0, [r0]
+ strb r0, [r1]
+ subs r0, r2, 0x1
+ subs r0, r5
+ adds r0, r4
+_080BF94E:
+ adds r0, r7
+_080BF950:
+ ldrb r0, [r0]
+ strb r0, [r1, 0x1]
+_080BF954:
+ ldr r0, _080BF970
+ mov r2, r8
+ lsls r1, r2, 2
+ adds r1, r0
+ ldr r0, [r1]
+ mov r1, sp
+ bl StringCopy
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BF970: .4byte gUnknown_083D1464
+ thumb_func_end sub_80BF820
+
+ thumb_func_start sub_80BF974
+sub_80BF974: @ 80BF974
+ push {r4,lr}
+ movs r1, 0
+ ldr r4, _080BF994
+ ldr r0, _080BF998
+ ldrh r2, [r0]
+ ldr r3, _080BF99C
+_080BF980:
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ adds r0, r3
+ ldrb r0, [r0]
+ cmp r0, r2
+ bne _080BF9A0
+ movs r0, 0x1
+ b _080BF9AC
+ .align 2, 0
+_080BF994: .4byte gSaveBlock1
+_080BF998: .4byte gUnknown_0202E8CC
+_080BF99C: .4byte 0x00002738
+_080BF9A0:
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x4
+ bls _080BF980
+ movs r0, 0
+_080BF9AC:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80BF974
+
+ thumb_func_start sub_80BF9B4
+sub_80BF9B4: @ 80BF9B4
+ push {r4,lr}
+ ldr r0, _080BF9E0
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _080BF9E4
+ adds r0, r1
+ ldr r4, _080BF9E8
+ movs r1, 0x2
+ adds r2, r4, 0
+ bl GetMonData
+ ldr r0, _080BF9EC
+ adds r1, r4, 0
+ bl StringCompareWithoutExtCtrlCodes
+ cmp r0, 0
+ beq _080BF9F0
+ bl sub_80BE478
+ movs r0, 0x1
+ b _080BF9F2
+ .align 2, 0
+_080BF9E0: .4byte gUnknown_0202E8CC
+_080BF9E4: .4byte gPlayerParty
+_080BF9E8: .4byte gStringVar1
+_080BF9EC: .4byte gStringVar3
+_080BF9F0:
+ movs r0, 0
+_080BF9F2:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80BF9B4
+
+ thumb_func_start sub_80BF9F8
+sub_80BF9F8: @ 80BF9F8
+ push {r4-r6,lr}
+ mov r6, r10
+ mov r5, r9
+ mov r4, r8
+ push {r4-r6}
+ sub sp, 0x8
+ ldr r0, _080BFAA0
+ mov r9, r0
+ ldrh r0, [r0]
+ movs r1, 0x64
+ mov r8, r1
+ mov r1, r8
+ muls r1, r0
+ adds r0, r1, 0
+ ldr r6, _080BFAA4
+ adds r0, r6
+ ldr r2, _080BFAA8
+ movs r1, 0x2
+ bl GetMonData
+ mov r1, r9
+ ldrh r0, [r1]
+ mov r1, r8
+ muls r1, r0
+ adds r0, r1, 0
+ adds r0, r6
+ ldr r1, _080BFAAC
+ mov r10, r1
+ movs r1, 0x2
+ mov r2, r10
+ bl GetMonData
+ mov r1, r9
+ ldrh r0, [r1]
+ mov r1, r8
+ muls r1, r0
+ adds r0, r1, 0
+ adds r0, r6
+ movs r1, 0xB
+ movs r2, 0
+ bl GetMonData
+ adds r5, r0, 0
+ lsls r5, 16
+ lsrs r5, 16
+ mov r1, r9
+ ldrh r0, [r1]
+ mov r1, r8
+ muls r1, r0
+ adds r0, r1, 0
+ adds r0, r6
+ bl GetMonGender
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ mov r1, r9
+ ldrh r0, [r1]
+ mov r1, r8
+ muls r1, r0
+ adds r0, r1, 0
+ adds r0, r6
+ movs r1, 0
+ movs r2, 0
+ bl GetMonData
+ str r0, [sp]
+ ldr r0, _080BFAB0
+ str r0, [sp, 0x4]
+ movs r0, 0x3
+ mov r1, r10
+ adds r2, r5, 0
+ adds r3, r4, 0
+ bl DoNamingScreen
+ add sp, 0x8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BFAA0: .4byte gUnknown_0202E8CC
+_080BFAA4: .4byte gPlayerParty
+_080BFAA8: .4byte gStringVar3
+_080BFAAC: .4byte gStringVar2
+_080BFAB0: .4byte c2_080CC144
+ thumb_func_end sub_80BF9F8
+
+ thumb_func_start c2_080CC144
+c2_080CC144: @ 80BFAB4
+ push {lr}
+ ldr r0, _080BFAD4
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _080BFAD8
+ adds r0, r1
+ ldr r2, _080BFADC
+ movs r1, 0x2
+ bl SetMonData
+ bl c2_exit_to_overworld_1_continue_scripts_restart_music
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BFAD4: .4byte gUnknown_0202E8CC
+_080BFAD8: .4byte gPlayerParty
+_080BFADC: .4byte gStringVar2
+ thumb_func_end c2_080CC144
+
+ thumb_func_start sub_80BFAE0
+sub_80BFAE0: @ 80BFAE0
+ push {r4,lr}
+ ldr r0, _080BFB04
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _080BFB08
+ adds r0, r1
+ ldr r4, _080BFB0C
+ movs r1, 0x2
+ adds r2, r4, 0
+ bl GetMonData
+ adds r0, r4, 0
+ bl StringGetEnd10
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BFB04: .4byte gUnknown_0202E8CC
+_080BFB08: .4byte gPlayerParty
+_080BFB0C: .4byte gStringVar1
+ thumb_func_end sub_80BFAE0
+
+ thumb_func_start sub_80BFB10
+sub_80BFB10: @ 80BFB10
+ push {r4,lr}
+ bl sub_80BFB94
+ adds r4, r0, 0
+ ldr r0, _080BFB38
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _080BFB3C
+ adds r0, r1
+ movs r1, 0x1
+ movs r2, 0
+ bl GetMonData
+ cmp r4, r0
+ bne _080BFB44
+ ldr r1, _080BFB40
+ movs r0, 0
+ b _080BFB48
+ .align 2, 0
+_080BFB38: .4byte gUnknown_0202E8CC
+_080BFB3C: .4byte gPlayerParty
+_080BFB40: .4byte gScriptResult
+_080BFB44:
+ ldr r1, _080BFB50
+ movs r0, 0x1
+_080BFB48:
+ strh r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BFB50: .4byte gScriptResult
+ thumb_func_end sub_80BFB10
+
+ thumb_func_start sub_80BFB54
+sub_80BFB54: @ 80BFB54
+ push {lr}
+ lsls r0, 24
+ lsrs r1, r0, 24
+ adds r2, r1, 0
+ cmp r1, 0
+ beq _080BFB8A
+ subs r0, r1, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x13
+ bhi _080BFB6E
+ movs r0, 0x2
+ b _080BFB90
+_080BFB6E:
+ adds r0, r1, 0
+ subs r0, 0x15
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x13
+ bhi _080BFB7E
+ movs r0, 0x3
+ b _080BFB90
+_080BFB7E:
+ adds r0, r2, 0
+ subs r0, 0x29
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x13
+ bls _080BFB8E
+_080BFB8A:
+ movs r0, 0
+ b _080BFB90
+_080BFB8E:
+ movs r0, 0x4
+_080BFB90:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80BFB54
+
+ thumb_func_start sub_80BFB94
+sub_80BFB94: @ 80BFB94
+ ldr r2, _080BFBAC
+ ldrb r0, [r2, 0xD]
+ lsls r0, 24
+ ldrb r1, [r2, 0xC]
+ lsls r1, 16
+ orrs r0, r1
+ ldrb r1, [r2, 0xB]
+ lsls r1, 8
+ orrs r0, r1
+ ldrb r1, [r2, 0xA]
+ orrs r0, r1
+ bx lr
+ .align 2, 0
+_080BFBAC: .4byte gSaveBlock2
+ thumb_func_end sub_80BFB94
+
+ thumb_func_start CheckForBigMovieOrEmergencyNewsOnTV
+CheckForBigMovieOrEmergencyNewsOnTV: @ 80BFBB0
+ push {lr}
+ ldr r1, _080BFBD0
+ movs r0, 0x4
+ ldrsb r0, [r1, r0]
+ cmp r0, 0x1
+ bne _080BFBCC
+ ldr r0, _080BFBD4
+ ldrb r0, [r0, 0x8]
+ cmp r0, 0
+ bne _080BFBD8
+ movs r0, 0x5
+ ldrsb r0, [r1, r0]
+ cmp r0, 0
+ beq _080BFBE0
+_080BFBCC:
+ movs r0, 0
+ b _080BFC0A
+ .align 2, 0
+_080BFBD0: .4byte gSaveBlock1
+_080BFBD4: .4byte gSaveBlock2
+_080BFBD8:
+ movs r0, 0x5
+ ldrsb r0, [r1, r0]
+ cmp r0, 0x2
+ bne _080BFBCC
+_080BFBE0:
+ ldr r0, _080BFC04
+ bl FlagGet
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _080BFBFE
+ movs r0, 0x83
+ lsls r0, 4
+ bl FlagGet
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _080BFC08
+_080BFBFE:
+ movs r0, 0x1
+ b _080BFC0A
+ .align 2, 0
+_080BFC04: .4byte 0x0000085d
+_080BFC08:
+ movs r0, 0x2
+_080BFC0A:
+ pop {r1}
+ bx r1
+ thumb_func_end CheckForBigMovieOrEmergencyNewsOnTV
+
+ thumb_func_start GetMomOrDadStringForTVMessage
+GetMomOrDadStringForTVMessage: @ 80BFC10
+ push {r4,lr}
+ ldr r1, _080BFC40
+ movs r0, 0x4
+ ldrsb r0, [r1, r0]
+ cmp r0, 0x1
+ bne _080BFC6C
+ ldr r0, _080BFC44
+ ldrb r0, [r0, 0x8]
+ cmp r0, 0
+ bne _080BFC54
+ movs r0, 0x5
+ ldrsb r0, [r1, r0]
+ cmp r0, 0
+ bne _080BFC6C
+ ldr r0, _080BFC48
+ ldr r1, _080BFC4C
+ bl StringCopy
+ ldr r0, _080BFC50
+ movs r1, 0x1
+ bl VarSet
+ b _080BFC6C
+ .align 2, 0
+_080BFC40: .4byte gSaveBlock1
+_080BFC44: .4byte gSaveBlock2
+_080BFC48: .4byte gStringVar1
+_080BFC4C: .4byte gOtherText_Mom
+_080BFC50: .4byte 0x00004003
+_080BFC54:
+ movs r0, 0x5
+ ldrsb r0, [r1, r0]
+ cmp r0, 0x2
+ bne _080BFC6C
+ ldr r0, _080BFCB4
+ ldr r1, _080BFCB8
+ bl StringCopy
+ ldr r0, _080BFCBC
+ movs r1, 0x1
+ bl VarSet
+_080BFC6C:
+ ldr r4, _080BFCBC
+ adds r0, r4, 0
+ bl VarGet
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x1
+ beq _080BFCAA
+ adds r0, r4, 0
+ bl VarGet
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x2
+ beq _080BFCC0
+ adds r0, r4, 0
+ bl VarGet
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x2
+ bls _080BFCD4
+ adds r0, r4, 0
+ bl VarGet
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _080BFCC0
+_080BFCAA:
+ ldr r0, _080BFCB4
+ ldr r1, _080BFCB8
+ bl StringCopy
+ b _080BFD10
+ .align 2, 0
+_080BFCB4: .4byte gStringVar1
+_080BFCB8: .4byte gOtherText_Mom
+_080BFCBC: .4byte 0x00004003
+_080BFCC0:
+ ldr r0, _080BFCCC
+ ldr r1, _080BFCD0
+ bl StringCopy
+ b _080BFD10
+ .align 2, 0
+_080BFCCC: .4byte gStringVar1
+_080BFCD0: .4byte gOtherText_Dad
+_080BFCD4:
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080BFD00
+ ldr r0, _080BFCF8
+ ldr r1, _080BFCFC
+ bl StringCopy
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl VarSet
+ b _080BFD10
+ .align 2, 0
+_080BFCF8: .4byte gStringVar1
+_080BFCFC: .4byte gOtherText_Mom
+_080BFD00:
+ ldr r0, _080BFD18
+ ldr r1, _080BFD1C
+ bl StringCopy
+ adds r0, r4, 0
+ movs r1, 0x2
+ bl VarSet
+_080BFD10:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BFD18: .4byte gStringVar1
+_080BFD1C: .4byte gOtherText_Dad
+ thumb_func_end GetMomOrDadStringForTVMessage
+
+ thumb_func_start sub_80BFD20
+sub_80BFD20: @ 80BFD20
+ push {lr}
+ ldr r0, _080BFD3C
+ movs r1, 0
+ bl VarSet
+ ldr r0, _080BFD40
+ ldrb r1, [r0, 0x5]
+ ldrb r2, [r0, 0x4]
+ movs r0, 0x5
+ bl RemoveFieldObjectByLocalIdAndMap
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BFD3C: .4byte 0x000040bc
+_080BFD40: .4byte gSaveBlock1
+ thumb_func_end sub_80BFD20
+
+ thumb_func_start sub_80BFD44
+sub_80BFD44: @ 80BFD44
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ mov r8, r0
+ adds r7, r1, 0
+ lsls r2, 24
+ lsrs r6, r2, 24
+ movs r4, 0
+_080BFD54:
+ lsls r0, r4, 3
+ subs r0, r4
+ lsls r0, 5
+ adds r0, r4
+ lsls r0, 2
+ ldr r5, _080BFD8C
+ adds r0, r5
+ adds r1, r4, 0
+ muls r1, r7
+ add r1, r8
+ movs r2, 0xE1
+ lsls r2, 2
+ bl memcpy
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x3
+ bls _080BFD54
+ adds r4, r5, 0
+ cmp r6, 0x1
+ beq _080BFDBC
+ cmp r6, 0x1
+ bgt _080BFD90
+ cmp r6, 0
+ beq _080BFD9A
+ b _080BFDFC
+ .align 2, 0
+_080BFD8C: .4byte 0x02007000
+_080BFD90:
+ cmp r6, 0x2
+ beq _080BFDCC
+ cmp r6, 0x3
+ beq _080BFDE8
+ b _080BFDFC
+_080BFD9A:
+ ldr r0, _080BFDB4
+ movs r2, 0xE1
+ lsls r2, 2
+ adds r1, r4, r2
+ movs r3, 0xE1
+ lsls r3, 3
+ adds r2, r4, r3
+ ldr r5, _080BFDB8
+ adds r3, r4, r5
+ bl sub_80BFE24
+ b _080BFDFC
+ .align 2, 0
+_080BFDB4: .4byte gSaveBlock1 + 0x2738
+_080BFDB8: .4byte 0x00000a8c
+_080BFDBC:
+ ldr r1, _080BFDC8
+ movs r0, 0xE1
+ lsls r0, 3
+ adds r2, r4, r0
+ b _080BFDD4
+ .align 2, 0
+_080BFDC8: .4byte gSaveBlock1 + 0x2738
+_080BFDCC:
+ movs r0, 0xE1
+ lsls r0, 2
+ adds r1, r4, r0
+ ldr r2, _080BFDE0
+_080BFDD4:
+ ldr r5, _080BFDE4
+ adds r3, r4, r5
+ adds r0, r4, 0
+ bl sub_80BFE24
+ b _080BFDFC
+ .align 2, 0
+_080BFDE0: .4byte gSaveBlock1 + 0x2738
+_080BFDE4: .4byte 0x00000a8c
+_080BFDE8:
+ movs r0, 0xE1
+ lsls r0, 2
+ adds r1, r5, r0
+ movs r3, 0xE1
+ lsls r3, 3
+ adds r2, r5, r3
+ ldr r3, _080BFE20
+ adds r0, r5, 0
+ bl sub_80BFE24
+_080BFDFC:
+ ldr r4, _080BFE20
+ adds r0, r4, 0
+ bl sub_80BF588
+ bl sub_80C04A0
+ adds r0, r4, 0
+ bl sub_80BF588
+ bl sub_80C01D4
+ bl sub_80C0408
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BFE20: .4byte gSaveBlock1 + 0x2738
+ thumb_func_end sub_80BFD44
+
+ thumb_func_start sub_80BFE24
+sub_80BFE24: @ 80BFE24
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x20
+ str r0, [sp, 0x10]
+ str r1, [sp, 0x14]
+ str r2, [sp, 0x18]
+ str r3, [sp, 0x1C]
+ add r0, sp, 0x10
+ str r0, [sp]
+ add r0, sp, 0x14
+ str r0, [sp, 0x4]
+ add r0, sp, 0x18
+ str r0, [sp, 0x8]
+ add r0, sp, 0x1C
+ str r0, [sp, 0xC]
+ bl GetLinkPlayerCount
+ ldr r1, _080BFEA0
+ strb r0, [r1]
+_080BFE50:
+ movs r6, 0
+ ldr r0, _080BFEA0
+ ldrb r1, [r0]
+ cmp r6, r1
+ bcs _080BFE50
+ mov r10, r0
+_080BFE5C:
+ cmp r6, 0
+ bne _080BFE64
+ ldr r2, _080BFEA4
+ strb r6, [r2]
+_080BFE64:
+ lsls r4, r6, 2
+ mov r3, sp
+ adds r0, r3, r4
+ ldr r0, [r0]
+ ldr r0, [r0]
+ bl sub_80C019C
+ ldr r1, _080BFEA8
+ strb r0, [r1]
+ lsls r0, 24
+ asrs r0, 24
+ movs r1, 0x1
+ negs r1, r1
+ adds r7, r4, 0
+ cmp r0, r1
+ bne _080BFEAC
+ ldr r1, _080BFEA4
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ lsls r0, 24
+ lsrs r0, 24
+ mov r2, r10
+ ldrb r2, [r2]
+ cmp r0, r2
+ beq _080BFF58
+ adds r6, 0x1
+ mov r9, r6
+ b _080BFF3C
+ .align 2, 0
+_080BFEA0: .4byte gUnknown_03000720
+_080BFEA4: .4byte gUnknown_020387E4
+_080BFEA8: .4byte gUnknown_03000722
+_080BFEAC:
+ movs r5, 0
+ mov r3, r10
+ ldrb r0, [r3]
+ subs r0, 0x1
+ adds r2, r6, 0x1
+ mov r9, r2
+ cmp r5, r0
+ bge _080BFF22
+ ldr r3, _080BFF4C
+ mov r8, r3
+_080BFEC0:
+ adds r0, r6, r5
+ adds r4, r0, 0x1
+ mov r0, r8
+ ldrb r1, [r0]
+ adds r0, r4, 0
+ bl __modsi3
+ lsls r0, 2
+ add r0, sp
+ ldr r0, [r0]
+ ldr r0, [r0]
+ bl sub_80BF74C
+ ldr r1, _080BFF50
+ strb r0, [r1]
+ lsls r0, 24
+ asrs r0, 24
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ beq _080BFF12
+ mov r2, r8
+ ldrb r1, [r2]
+ adds r0, r4, 0
+ bl __modsi3
+ adds r2, r0, 0
+ lsls r0, r2, 2
+ add r0, sp
+ ldr r0, [r0]
+ mov r3, sp
+ adds r1, r3, r7
+ ldr r1, [r1]
+ lsls r2, 24
+ lsrs r2, 24
+ bl sub_80BFF68
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _080BFF22
+_080BFF12:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ mov r1, r8
+ ldrb r0, [r1]
+ subs r0, 0x1
+ cmp r5, r0
+ blt _080BFEC0
+_080BFF22:
+ mov r2, r10
+ ldrb r0, [r2]
+ subs r0, 0x1
+ cmp r5, r0
+ bne _080BFF3C
+ mov r3, sp
+ adds r0, r3, r7
+ ldr r0, [r0]
+ ldr r0, [r0]
+ ldr r1, _080BFF54
+ ldrb r1, [r1]
+ bl sub_80BF55C
+_080BFF3C:
+ mov r1, r9
+ lsls r0, r1, 24
+ lsrs r6, r0, 24
+ mov r2, r10
+ ldrb r2, [r2]
+ cmp r6, r2
+ bcc _080BFE5C
+ b _080BFE50
+ .align 2, 0
+_080BFF4C: .4byte gUnknown_03000720
+_080BFF50: .4byte gUnknown_03005D38
+_080BFF54: .4byte gUnknown_03000722
+_080BFF58:
+ add sp, 0x20
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80BFE24
+
+ thumb_func_start sub_80BFF68
+sub_80BFF68: @ 80BFF68
+ push {r4-r7,lr}
+ sub sp, 0x4
+ lsls r2, 24
+ lsrs r7, r2, 24
+ ldr r4, [r0]
+ ldr r6, [r1]
+ movs r5, 0
+ ldr r2, _080BFFA4
+ movs r1, 0
+ ldrsb r1, [r2, r1]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ ldrb r0, [r0]
+ str r2, [sp]
+ bl sub_80BFB54
+ lsls r0, 24
+ lsrs r0, 24
+ adds r1, r0, 0
+ ldr r2, [sp]
+ cmp r0, 0x3
+ beq _080BFFD8
+ cmp r0, 0x3
+ bgt _080BFFA8
+ cmp r0, 0x2
+ beq _080BFFAE
+ b _080C0026
+ .align 2, 0
+_080BFFA4: .4byte gUnknown_03000722
+_080BFFA8:
+ cmp r1, 0x4
+ beq _080C0000
+ b _080C0026
+_080BFFAE:
+ ldr r0, _080BFFD4
+ movs r1, 0
+ ldrsb r1, [r0, r1]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4, r0
+ ldrb r2, [r2]
+ lsls r2, 24
+ asrs r2, 24
+ lsls r1, r2, 3
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r6, r1
+ adds r2, r7, 0
+ bl sub_80C004C
+ b _080C0022
+ .align 2, 0
+_080BFFD4: .4byte gUnknown_03005D38
+_080BFFD8:
+ ldr r0, _080BFFFC
+ movs r1, 0
+ ldrsb r1, [r0, r1]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4, r0
+ ldrb r2, [r2]
+ lsls r2, 24
+ asrs r2, 24
+ lsls r1, r2, 3
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r6, r1
+ adds r2, r7, 0
+ bl sub_80C00B4
+ b _080C0022
+ .align 2, 0
+_080BFFFC: .4byte gUnknown_03005D38
+_080C0000:
+ ldr r0, _080C0030
+ movs r1, 0
+ ldrsb r1, [r0, r1]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4, r0
+ ldrb r2, [r2]
+ lsls r2, 24
+ asrs r2, 24
+ lsls r1, r2, 3
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r6, r1
+ adds r2, r7, 0
+ bl sub_80C0134
+_080C0022:
+ lsls r0, 24
+ lsrs r5, r0, 24
+_080C0026:
+ cmp r5, 0x1
+ beq _080C0034
+ movs r0, 0
+ b _080C0040
+ .align 2, 0
+_080C0030: .4byte gUnknown_03005D38
+_080C0034:
+ ldr r0, _080C0048
+ ldrb r1, [r0]
+ adds r0, r6, 0
+ bl sub_80BF55C
+ movs r0, 0x1
+_080C0040:
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080C0048: .4byte gUnknown_03000722
+ thumb_func_end sub_80BFF68
+
+ thumb_func_start sub_80C004C
+sub_80C004C: @ 80C004C
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ adds r4, r1, 0
+ lsls r0, r2, 24
+ lsrs r0, 24
+ bl GetLinkPlayerTrainerId
+ adds r5, r0, 0
+ movs r2, 0xFF
+ ands r0, r2
+ adds r1, r4, 0
+ adds r1, 0x22
+ ldrb r1, [r1]
+ cmp r0, r1
+ bne _080C007C
+ lsrs r0, r5, 8
+ ands r0, r2
+ adds r1, r4, 0
+ adds r1, 0x23
+ ldrb r1, [r1]
+ cmp r0, r1
+ bne _080C007C
+ movs r0, 0
+ b _080C00AC
+_080C007C:
+ adds r1, r4, 0
+ adds r1, 0x20
+ ldrb r0, [r1]
+ adds r2, r4, 0
+ adds r2, 0x22
+ strb r0, [r2]
+ adds r3, r4, 0
+ adds r3, 0x21
+ ldrb r0, [r3]
+ adds r2, 0x1
+ strb r0, [r2]
+ strb r5, [r1]
+ lsrs r0, r5, 8
+ strb r0, [r3]
+ adds r1, r6, 0
+ adds r0, r4, 0
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ movs r0, 0x1
+ strb r0, [r6, 0x1]
+_080C00AC:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80C004C
+
+ thumb_func_start sub_80C00B4
+sub_80C00B4: @ 80C00B4
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ adds r4, r1, 0
+ lsls r0, r2, 24
+ lsrs r0, 24
+ bl GetLinkPlayerTrainerId
+ adds r2, r0, 0
+ movs r3, 0xFF
+ ands r0, r3
+ adds r1, r4, 0
+ adds r1, 0x20
+ ldrb r1, [r1]
+ cmp r0, r1
+ bne _080C00E0
+ lsrs r0, r2, 8
+ ands r0, r3
+ adds r1, r4, 0
+ adds r1, 0x21
+ ldrb r1, [r1]
+ cmp r0, r1
+ beq _080C0100
+_080C00E0:
+ movs r3, 0xFF
+ adds r0, r2, 0
+ ands r0, r3
+ adds r1, r4, 0
+ adds r1, 0x22
+ lsrs r5, r2, 8
+ ldrb r1, [r1]
+ cmp r0, r1
+ bne _080C0104
+ adds r0, r5, 0
+ ands r0, r3
+ adds r1, r4, 0
+ adds r1, 0x23
+ ldrb r1, [r1]
+ cmp r0, r1
+ bne _080C0104
+_080C0100:
+ movs r0, 0
+ b _080C012C
+_080C0104:
+ ldrb r1, [r4, 0x1E]
+ adds r0, r4, 0
+ adds r0, 0x20
+ strb r1, [r0]
+ ldrb r0, [r4, 0x1F]
+ adds r1, r4, 0
+ adds r1, 0x21
+ strb r0, [r1]
+ strb r2, [r4, 0x1E]
+ strb r5, [r4, 0x1F]
+ adds r1, r6, 0
+ adds r0, r4, 0
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ movs r0, 0x1
+ strb r0, [r6, 0x1]
+_080C012C:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80C00B4
+
+ thumb_func_start sub_80C0134
+sub_80C0134: @ 80C0134
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ adds r4, r1, 0
+ lsls r0, r2, 24
+ lsrs r0, 24
+ bl GetLinkPlayerTrainerId
+ adds r5, r0, 0
+ movs r2, 0xFF
+ ands r0, r2
+ adds r1, r4, 0
+ adds r1, 0x22
+ ldrb r1, [r1]
+ cmp r0, r1
+ bne _080C0164
+ lsrs r0, r5, 8
+ ands r0, r2
+ adds r1, r4, 0
+ adds r1, 0x23
+ ldrb r1, [r1]
+ cmp r0, r1
+ bne _080C0164
+ movs r0, 0
+ b _080C0196
+_080C0164:
+ adds r1, r4, 0
+ adds r1, 0x20
+ ldrb r0, [r1]
+ adds r2, r4, 0
+ adds r2, 0x22
+ strb r0, [r2]
+ adds r3, r4, 0
+ adds r3, 0x21
+ ldrb r0, [r3]
+ adds r2, 0x1
+ strb r0, [r2]
+ strb r5, [r1]
+ lsrs r0, r5, 8
+ strb r0, [r3]
+ adds r1, r6, 0
+ adds r0, r4, 0
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ movs r0, 0x1
+ strb r0, [r6, 0x1]
+ strh r0, [r6, 0x16]
+_080C0196:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80C0134
+
+ thumb_func_start sub_80C019C
+sub_80C019C: @ 80C019C
+ push {lr}
+ adds r3, r0, 0
+ movs r2, 0
+_080C01A2:
+ lsls r0, r2, 3
+ adds r0, r2
+ lsls r0, 2
+ adds r1, r0, r3
+ ldrb r0, [r1, 0x1]
+ cmp r0, 0
+ bne _080C01C2
+ ldrb r0, [r1]
+ subs r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x3B
+ bhi _080C01C2
+ lsls r0, r2, 24
+ asrs r0, 24
+ b _080C01D0
+_080C01C2:
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x17
+ bls _080C01A2
+ movs r0, 0x1
+ negs r0, r0
+_080C01D0:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80C019C
+
+ thumb_func_start sub_80C01D4
+sub_80C01D4: @ 80C01D4
+ push {r4-r6,lr}
+ movs r6, 0
+_080C01D8:
+ ldr r0, _080C01F8
+ lsls r2, r6, 3
+ adds r1, r2, r6
+ lsls r1, 2
+ adds r1, r0
+ ldr r0, _080C01FC
+ adds r1, r0
+ ldrb r0, [r1]
+ cmp r0, 0x29
+ bls _080C01EE
+ b _080C038C
+_080C01EE:
+ lsls r0, 2
+ ldr r1, _080C0200
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080C01F8: .4byte gSaveBlock1
+_080C01FC: .4byte 0x00002738
+_080C0200: .4byte _080C0204
+ .align 2, 0
+_080C0204:
+ .4byte _080C0394
+ .4byte _080C02AC
+ .4byte _080C0394
+ .4byte _080C02BC
+ .4byte _080C02CC
+ .4byte _080C02DC
+ .4byte _080C02F8
+ .4byte _080C0308
+ .4byte _080C038C
+ .4byte _080C038C
+ .4byte _080C038C
+ .4byte _080C038C
+ .4byte _080C038C
+ .4byte _080C038C
+ .4byte _080C038C
+ .4byte _080C038C
+ .4byte _080C038C
+ .4byte _080C038C
+ .4byte _080C038C
+ .4byte _080C038C
+ .4byte _080C038C
+ .4byte _080C0324
+ .4byte _080C0394
+ .4byte _080C0334
+ .4byte _080C0350
+ .4byte _080C0368
+ .4byte _080C038C
+ .4byte _080C038C
+ .4byte _080C038C
+ .4byte _080C038C
+ .4byte _080C038C
+ .4byte _080C038C
+ .4byte _080C038C
+ .4byte _080C038C
+ .4byte _080C038C
+ .4byte _080C038C
+ .4byte _080C038C
+ .4byte _080C038C
+ .4byte _080C038C
+ .4byte _080C038C
+ .4byte _080C038C
+ .4byte _080C0394
+_080C02AC:
+ adds r0, r2, r6
+ lsls r0, 2
+ ldr r1, _080C02B8
+ adds r0, r1
+ ldrh r0, [r0, 0x2]
+ b _080C035A
+ .align 2, 0
+_080C02B8: .4byte gSaveBlock1 + 0x2738
+_080C02BC:
+ adds r0, r2, r6
+ lsls r0, 2
+ ldr r1, _080C02C8
+ adds r0, r1
+ ldrh r0, [r0, 0x2]
+ b _080C035A
+ .align 2, 0
+_080C02C8: .4byte gSaveBlock1 + 0x2738
+_080C02CC:
+ adds r0, r2, r6
+ lsls r0, 2
+ ldr r1, _080C02D8
+ adds r0, r1
+ ldrh r0, [r0, 0x6]
+ b _080C035A
+ .align 2, 0
+_080C02D8: .4byte gSaveBlock1 + 0x2738
+_080C02DC:
+ adds r4, r2, r6
+ lsls r4, 2
+ ldr r0, _080C02F4
+ adds r4, r0
+ ldrh r0, [r4, 0x2]
+ lsls r5, r6, 24
+ lsrs r5, 24
+ adds r1, r5, 0
+ bl sub_80C03C8
+ ldrh r0, [r4, 0x1C]
+ b _080C037E
+ .align 2, 0
+_080C02F4: .4byte gSaveBlock1 + 0x2738
+_080C02F8:
+ adds r0, r2, r6
+ lsls r0, 2
+ ldr r1, _080C0304
+ adds r0, r1
+ ldrh r0, [r0, 0x2]
+ b _080C035A
+ .align 2, 0
+_080C0304: .4byte gSaveBlock1 + 0x2738
+_080C0308:
+ adds r4, r2, r6
+ lsls r4, 2
+ ldr r0, _080C0320
+ adds r4, r0
+ ldrh r0, [r4, 0xA]
+ lsls r5, r6, 24
+ lsrs r5, 24
+ adds r1, r5, 0
+ bl sub_80C03C8
+ ldrh r0, [r4, 0x14]
+ b _080C037E
+ .align 2, 0
+_080C0320: .4byte gSaveBlock1 + 0x2738
+_080C0324:
+ adds r0, r2, r6
+ lsls r0, 2
+ ldr r1, _080C0330
+ adds r0, r1
+ ldrh r0, [r0, 0x10]
+ b _080C035A
+ .align 2, 0
+_080C0330: .4byte gSaveBlock1 + 0x2738
+_080C0334:
+ adds r4, r2, r6
+ lsls r4, 2
+ ldr r0, _080C034C
+ adds r4, r0
+ ldrh r0, [r4, 0xC]
+ lsls r5, r6, 24
+ lsrs r5, 24
+ adds r1, r5, 0
+ bl sub_80C03C8
+ ldrh r0, [r4, 0xE]
+ b _080C037E
+ .align 2, 0
+_080C034C: .4byte gSaveBlock1 + 0x2738
+_080C0350:
+ adds r0, r2, r6
+ lsls r0, 2
+ ldr r1, _080C0364
+ adds r0, r1
+ ldrh r0, [r0, 0x4]
+_080C035A:
+ lsls r1, r6, 24
+ lsrs r1, 24
+ bl sub_80C03C8
+ b _080C0394
+ .align 2, 0
+_080C0364: .4byte gSaveBlock1 + 0x2738
+_080C0368:
+ adds r4, r2, r6
+ lsls r4, 2
+ ldr r0, _080C0388
+ adds r4, r0
+ ldrh r0, [r4, 0x8]
+ lsls r5, r6, 24
+ lsrs r5, 24
+ adds r1, r5, 0
+ bl sub_80C03C8
+ ldrh r0, [r4, 0x4]
+_080C037E:
+ adds r1, r5, 0
+ bl sub_80C03C8
+ b _080C0394
+ .align 2, 0
+_080C0388: .4byte gSaveBlock1 + 0x2738
+_080C038C:
+ lsls r0, r6, 24
+ lsrs r0, 24
+ bl sub_80C03A8
+_080C0394:
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ cmp r6, 0x17
+ bhi _080C03A0
+ b _080C01D8
+_080C03A0:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80C01D4
+
+ thumb_func_start sub_80C03A8
+sub_80C03A8: @ 80C03A8
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080C03C0
+ lsls r1, r0, 3
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ ldr r0, _080C03C4
+ adds r1, r0
+ movs r0, 0
+ strb r0, [r1]
+ bx lr
+ .align 2, 0
+_080C03C0: .4byte gSaveBlock1
+_080C03C4: .4byte 0x00002739
+ thumb_func_end sub_80C03A8
+
+ thumb_func_start sub_80C03C8
+sub_80C03C8: @ 80C03C8
+ push {r4,lr}
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r1, 24
+ lsrs r4, r1, 24
+ bl SpeciesToNationalPokedexNum
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0
+ bl sub_8090D90
+ lsls r0, 24
+ asrs r2, r0, 24
+ cmp r2, 0
+ bne _080C03F8
+ ldr r1, _080C0400
+ lsls r0, r4, 3
+ adds r0, r4
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _080C0404
+ adds r0, r1
+ strb r2, [r0]
+_080C03F8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C0400: .4byte gSaveBlock1
+_080C0404: .4byte 0x00002739
+ thumb_func_end sub_80C03C8
+
+ thumb_func_start sub_80C0408
+sub_80C0408: @ 80C0408
+ push {r4-r6,lr}
+ ldr r0, _080C044C
+ bl FlagGet
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _080C0444
+ movs r2, 0
+ ldr r6, _080C0450
+ ldr r4, _080C0454
+ movs r3, 0
+ ldr r5, _080C0458
+_080C0422:
+ lsls r0, r2, 3
+ adds r0, r2
+ lsls r0, 2
+ adds r1, r0, r6
+ adds r0, r1, r5
+ ldrb r0, [r0]
+ cmp r0, 0x7
+ beq _080C0436
+ cmp r0, 0x29
+ bne _080C043A
+_080C0436:
+ adds r0, r1, r4
+ strb r3, [r0]
+_080C043A:
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0x17
+ bls _080C0422
+_080C0444:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C044C: .4byte 0x00000804
+_080C0450: .4byte gSaveBlock1
+_080C0454: .4byte 0x00002739
+_080C0458: .4byte 0x00002738
+ thumb_func_end sub_80C0408
+
+ thumb_func_start sub_80C045C
+sub_80C045C: @ 80C045C
+ push {r4-r6,lr}
+ movs r5, 0
+ ldr r6, _080C0494
+_080C0462:
+ lsls r0, r5, 3
+ adds r0, r5
+ lsls r0, 2
+ adds r4, r0, r6
+ ldr r1, _080C0498
+ adds r0, r4, r1
+ ldrb r0, [r0]
+ bl sub_80BFB54
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x2
+ bne _080C0484
+ ldr r0, _080C049C
+ adds r1, r4, r0
+ movs r0, 0
+ strb r0, [r1]
+_080C0484:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x4
+ bls _080C0462
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C0494: .4byte gSaveBlock1
+_080C0498: .4byte 0x00002738
+_080C049C: .4byte 0x00002739
+ thumb_func_end sub_80C045C
+
+ thumb_func_start sub_80C04A0
+sub_80C04A0: @ 80C04A0
+ push {r4,r5,lr}
+ movs r3, 0
+ movs r2, 0x5
+ ldr r5, _080C0508
+ ldr r4, _080C050C
+_080C04AA:
+ lsls r0, r2, 24
+ asrs r1, r0, 24
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ adds r0, r4
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080C04C8
+ lsls r0, r3, 24
+ movs r2, 0x80
+ lsls r2, 17
+ adds r0, r2
+ lsrs r3, r0, 24
+_080C04C8:
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ asrs r0, 24
+ cmp r0, 0x17
+ ble _080C04AA
+ movs r2, 0
+ lsls r0, r3, 24
+ asrs r0, 24
+ movs r1, 0x5
+ subs r0, r1, r0
+ cmp r2, r0
+ bge _080C0502
+ adds r5, r0, 0
+_080C04E4:
+ lsls r1, r2, 24
+ asrs r4, r1, 24
+ movs r0, 0xA0
+ lsls r0, 19
+ adds r1, r0
+ lsrs r1, 24
+ ldr r0, _080C0510
+ bl sub_80BF55C
+ adds r4, 0x1
+ lsls r4, 24
+ lsrs r2, r4, 24
+ asrs r4, 24
+ cmp r4, r5
+ blt _080C04E4
+_080C0502:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C0508: .4byte gSaveBlock1
+_080C050C: .4byte 0x00002738
+_080C0510: .4byte gSaveBlock1 + 0x2738
+ thumb_func_end sub_80C04A0
+
+ thumb_func_start sub_80C0514
+sub_80C0514: @ 80C0514
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ mov r8, r0
+ adds r7, r1, 0
+ lsls r2, 24
+ lsrs r5, r2, 24
+ movs r4, 0
+_080C0524:
+ lsls r0, r4, 6
+ ldr r6, _080C0550
+ adds r0, r6
+ adds r1, r4, 0
+ muls r1, r7
+ add r1, r8
+ movs r2, 0x40
+ bl memcpy
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x3
+ bls _080C0524
+ adds r4, r6, 0
+ cmp r5, 0x1
+ beq _080C0578
+ cmp r5, 0x1
+ bgt _080C0554
+ cmp r5, 0
+ beq _080C055E
+ b _080C05AC
+ .align 2, 0
+_080C0550: .4byte 0x02007000
+_080C0554:
+ cmp r5, 0x2
+ beq _080C0584
+ cmp r5, 0x3
+ beq _080C059C
+ b _080C05AC
+_080C055E:
+ ldr r0, _080C0574
+ adds r1, r4, 0
+ adds r1, 0x40
+ adds r2, r4, 0
+ adds r2, 0x80
+ adds r3, r4, 0
+ adds r3, 0xC0
+ bl sub_80C05C4
+ b _080C05AC
+ .align 2, 0
+_080C0574: .4byte gSaveBlock1 + 0x2ABC
+_080C0578:
+ ldr r1, _080C0580
+ adds r2, r4, 0
+ adds r2, 0x80
+ b _080C058A
+ .align 2, 0
+_080C0580: .4byte gSaveBlock1 + 0x2ABC
+_080C0584:
+ adds r1, r4, 0
+ adds r1, 0x40
+ ldr r2, _080C0598
+_080C058A:
+ adds r3, r4, 0
+ adds r3, 0xC0
+ adds r0, r4, 0
+ bl sub_80C05C4
+ b _080C05AC
+ .align 2, 0
+_080C0598: .4byte gSaveBlock1 + 0x2ABC
+_080C059C:
+ adds r1, r6, 0
+ adds r1, 0x40
+ adds r2, r6, 0
+ adds r2, 0x80
+ ldr r3, _080C05C0
+ adds r0, r6, 0
+ bl sub_80C05C4
+_080C05AC:
+ bl sub_80C0750
+ bl sub_80C0788
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C05C0: .4byte gSaveBlock1 + 0x2ABC
+ thumb_func_end sub_80C0514
+
+ thumb_func_start sub_80C05C4
+sub_80C05C4: @ 80C05C4
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x24
+ str r0, [sp, 0x10]
+ str r1, [sp, 0x14]
+ str r2, [sp, 0x18]
+ str r3, [sp, 0x1C]
+ add r0, sp, 0x10
+ str r0, [sp]
+ add r0, sp, 0x14
+ str r0, [sp, 0x4]
+ add r0, sp, 0x18
+ str r0, [sp, 0x8]
+ add r0, sp, 0x1C
+ str r0, [sp, 0xC]
+ bl GetLinkPlayerCount
+ ldr r1, _080C0600
+ strb r0, [r1]
+ movs r0, 0
+ mov r10, r0
+_080C05F4:
+ movs r7, 0
+ mov r1, r10
+ adds r1, 0x1
+ str r1, [sp, 0x20]
+ b _080C068C
+ .align 2, 0
+_080C0600: .4byte gUnknown_03000721
+_080C0604:
+ lsls r4, r7, 2
+ mov r1, sp
+ adds r0, r1, r4
+ ldr r0, [r0]
+ ldr r0, [r0]
+ mov r1, r10
+ bl sub_80C0730
+ ldr r1, _080C06B0
+ strb r0, [r1]
+ lsls r0, 24
+ asrs r0, 24
+ mov r8, r4
+ adds r1, r7, 0x1
+ mov r9, r1
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ beq _080C0686
+ movs r5, 0
+ ldr r1, _080C06B4
+ ldrb r0, [r1]
+ subs r0, 0x1
+ cmp r5, r0
+ bge _080C0686
+ adds r6, r1, 0
+_080C0638:
+ adds r0, r7, r5
+ adds r4, r0, 0x1
+ ldrb r1, [r6]
+ adds r0, r4, 0
+ bl __modsi3
+ lsls r0, 2
+ add r0, sp
+ ldr r0, [r0]
+ ldr r0, [r0]
+ bl sub_80BEBC8
+ ldr r1, _080C06B8
+ strb r0, [r1]
+ lsls r0, 24
+ asrs r0, 24
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ beq _080C0678
+ ldrb r1, [r6]
+ adds r0, r4, 0
+ bl __modsi3
+ lsls r0, 2
+ add r0, sp
+ ldr r0, [r0]
+ mov r1, sp
+ add r1, r8
+ ldr r1, [r1]
+ bl sub_80C06BC
+_080C0678:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldrb r0, [r6]
+ subs r0, 0x1
+ cmp r5, r0
+ blt _080C0638
+_080C0686:
+ mov r1, r9
+ lsls r0, r1, 24
+ lsrs r7, r0, 24
+_080C068C:
+ ldr r0, _080C06B4
+ ldrb r0, [r0]
+ cmp r7, r0
+ bcc _080C0604
+ ldr r1, [sp, 0x20]
+ lsls r0, r1, 24
+ lsrs r0, 24
+ mov r10, r0
+ cmp r0, 0xF
+ bls _080C05F4
+ add sp, 0x24
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C06B0: .4byte gUnknown_03000722
+_080C06B4: .4byte gUnknown_03000721
+_080C06B8: .4byte gUnknown_03005D38
+ thumb_func_end sub_80C05C4
+
+ thumb_func_start sub_80C06BC
+sub_80C06BC: @ 80C06BC
+ push {lr}
+ ldr r0, [r0]
+ ldr r1, [r1]
+ ldr r2, _080C06E0
+ ldrb r2, [r2]
+ lsls r2, 24
+ asrs r2, 24
+ lsls r2, 2
+ adds r1, r2
+ ldr r2, _080C06E4
+ ldrb r2, [r2]
+ lsls r2, 24
+ asrs r2, 24
+ bl sub_80C06E8
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C06E0: .4byte gUnknown_03000722
+_080C06E4: .4byte gUnknown_03005D38
+ thumb_func_end sub_80C06BC
+
+ thumb_func_start sub_80C06E8
+sub_80C06E8: @ 80C06E8
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ lsls r2, 24
+ lsrs r6, r2, 24
+ ldrb r3, [r5]
+ adds r0, r3, 0
+ cmp r0, 0
+ bne _080C06FE
+_080C06FA:
+ movs r0, 0
+ b _080C072A
+_080C06FE:
+ movs r1, 0
+ adds r2, r3, 0
+ adds r3, r0, 0
+_080C0704:
+ lsls r0, r1, 2
+ adds r0, r4
+ ldrb r0, [r0]
+ cmp r0, r3
+ beq _080C06FA
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0xF
+ bls _080C0704
+ lsls r0, r6, 24
+ asrs r0, 22
+ adds r0, r4
+ strb r2, [r0]
+ movs r1, 0x1
+ strb r1, [r0, 0x1]
+ ldrh r1, [r5, 0x2]
+ strh r1, [r0, 0x2]
+ movs r0, 0x1
+_080C072A:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80C06E8
+
+ thumb_func_start sub_80C0730
+sub_80C0730: @ 80C0730
+ push {lr}
+ lsls r1, 24
+ lsrs r2, r1, 24
+ lsls r1, r2, 2
+ adds r1, r0
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _080C0746
+ lsls r0, r2, 24
+ asrs r0, 24
+ b _080C074A
+_080C0746:
+ movs r0, 0x1
+ negs r0, r0
+_080C074A:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80C0730
+
+ thumb_func_start sub_80C0750
+sub_80C0750: @ 80C0750
+ push {r4,r5,lr}
+ movs r4, 0
+ ldr r5, _080C0780
+_080C0756:
+ lsls r0, r4, 2
+ adds r0, r5
+ ldr r1, _080C0784
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x3
+ bls _080C076A
+ adds r0, r4, 0
+ bl sub_80BEC10
+_080C076A:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0xF
+ bls _080C0756
+ bl sub_80BEC40
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C0780: .4byte gSaveBlock1
+_080C0784: .4byte 0x00002abc
+ thumb_func_end sub_80C0750
+
+ thumb_func_start sub_80C0788
+sub_80C0788: @ 80C0788
+ push {r4,lr}
+ ldr r0, _080C07B8
+ bl FlagGet
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _080C07B2
+ movs r1, 0
+ ldr r4, _080C07BC
+ ldr r3, _080C07C0
+ movs r2, 0
+_080C07A0:
+ lsls r0, r1, 2
+ adds r0, r4
+ adds r0, r3
+ strb r2, [r0]
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0xF
+ bls _080C07A0
+_080C07B2:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C07B8: .4byte 0x00000804
+_080C07BC: .4byte gSaveBlock1
+_080C07C0: .4byte 0x00002abd
+ thumb_func_end sub_80C0788
+
+ thumb_func_start sub_80C07C4
+sub_80C07C4: @ 80C07C4
+ push {lr}
+ ldr r2, _080C07F8
+ ldr r0, _080C07FC
+ ldrh r1, [r0]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r0, r2
+ ldr r2, _080C0800
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080C07E0
+ b _080C08F8
+_080C07E0:
+ subs r2, 0x1
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ subs r0, 0x1
+ cmp r0, 0x28
+ bls _080C07EE
+ b _080C08F8
+_080C07EE:
+ lsls r0, 2
+ ldr r1, _080C0804
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080C07F8: .4byte gSaveBlock1
+_080C07FC: .4byte gUnknown_0202E8CC
+_080C0800: .4byte 0x00002739
+_080C0804: .4byte _080C0808
+ .align 2, 0
+_080C0808:
+ .4byte _080C08AC
+ .4byte _080C08B2
+ .4byte _080C08B8
+ .4byte _080C08BE
+ .4byte _080C08E2
+ .4byte _080C08CA
+ .4byte _080C08D0
+ .4byte _080C08F8
+ .4byte _080C08F8
+ .4byte _080C08F8
+ .4byte _080C08F8
+ .4byte _080C08F8
+ .4byte _080C08F8
+ .4byte _080C08F8
+ .4byte _080C08F8
+ .4byte _080C08F8
+ .4byte _080C08F8
+ .4byte _080C08F8
+ .4byte _080C08F8
+ .4byte _080C08F8
+ .4byte _080C08D6
+ .4byte _080C08DC
+ .4byte _080C08E8
+ .4byte _080C08EE
+ .4byte _080C08F4
+ .4byte _080C08F8
+ .4byte _080C08F8
+ .4byte _080C08F8
+ .4byte _080C08F8
+ .4byte _080C08F8
+ .4byte _080C08F8
+ .4byte _080C08F8
+ .4byte _080C08F8
+ .4byte _080C08F8
+ .4byte _080C08F8
+ .4byte _080C08F8
+ .4byte _080C08F8
+ .4byte _080C08F8
+ .4byte _080C08F8
+ .4byte _080C08F8
+ .4byte _080C08C4
+_080C08AC:
+ bl DoTVShowPokemonFanClubLetter
+ b _080C08F8
+_080C08B2:
+ bl DoTVShowRecentHappenings
+ b _080C08F8
+_080C08B8:
+ bl DoTVShowPokemonFanClubOpinions
+ b _080C08F8
+_080C08BE:
+ bl nullsub_22
+ b _080C08F8
+_080C08C4:
+ bl DoTVShowPokemonNewsMassOutbreak
+ b _080C08F8
+_080C08CA:
+ bl DoTVShowBravoTrainerPokemonProfile
+ b _080C08F8
+_080C08D0:
+ bl sub_80C0B9C
+ b _080C08F8
+_080C08D6:
+ bl DoTVShowPokemonTodaySuccessfulCapture
+ b _080C08F8
+_080C08DC:
+ bl DoTVShowTodaysSmartShopper
+ b _080C08F8
+_080C08E2:
+ bl DoTVShowTheNameRaterShow
+ b _080C08F8
+_080C08E8:
+ bl DoTVShowPokemonTodayFailedCapture
+ b _080C08F8
+_080C08EE:
+ bl DoTVShowPokemonAngler
+ b _080C08F8
+_080C08F4:
+ bl DoTVShowTheWorldOfMasters
+_080C08F8:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80C07C4
+
+ thumb_func_start sub_80C08FC
+sub_80C08FC: @ 80C08FC
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ lsls r4, r2, 24
+ lsrs r4, 24
+ bl StringCopy
+ cmp r4, 0x1
+ bhi _080C0914
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl ConvertInternationalString
+_080C0914:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80C08FC
+
+ thumb_func_start DoTVShowBravoTrainerPokemonProfile
+DoTVShowBravoTrainerPokemonProfile: @ 80C091C
+ push {r4,r5,lr}
+ ldr r0, _080C0948
+ ldrh r1, [r0]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080C094C
+ adds r4, r0, r1
+ ldr r1, _080C0950
+ movs r0, 0
+ strh r0, [r1]
+ ldr r0, _080C0954
+ ldrb r5, [r0]
+ cmp r5, 0x8
+ bls _080C093C
+ b _080C0B7A
+_080C093C:
+ lsls r0, r5, 2
+ ldr r1, _080C0958
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080C0948: .4byte gUnknown_0202E8CC
+_080C094C: .4byte gSaveBlock1 + 0x2738
+_080C0950: .4byte gScriptResult
+_080C0954: .4byte gUnknown_020387E8
+_080C0958: .4byte _080C095C
+ .align 2, 0
+_080C095C:
+ .4byte _080C0980
+ .4byte _080C09D8
+ .4byte _080C0A10
+ .4byte _080C0A40
+ .4byte _080C0A74
+ .4byte _080C0AA8
+ .4byte _080C0AEC
+ .4byte _080C0B34
+ .4byte _080C0B64
+_080C0980:
+ ldr r0, _080C09C0
+ adds r1, r4, 0
+ adds r1, 0x16
+ ldrb r2, [r4, 0x1E]
+ bl sub_80C08FC
+ ldrb r1, [r4, 0x13]
+ lsls r1, 29
+ lsrs r1, 29
+ movs r0, 0x1
+ bl CopyContestCategoryToStringVar
+ ldrb r1, [r4, 0x13]
+ lsls r1, 27
+ lsrs r1, 30
+ movs r0, 0x2
+ bl sub_80BEF10
+ ldrh r1, [r4, 0x2]
+ movs r0, 0xB
+ muls r0, r1
+ ldr r1, _080C09C4
+ adds r0, r1
+ adds r1, r4, 0
+ adds r1, 0x8
+ bl StringCompareWithoutExtCtrlCodes
+ cmp r0, 0
+ bne _080C09CC
+ ldr r1, _080C09C8
+ movs r0, 0x8
+ b _080C0B78
+ .align 2, 0
+_080C09C0: .4byte gStringVar1
+_080C09C4: .4byte gSpeciesNames
+_080C09C8: .4byte gUnknown_020387E8
+_080C09CC:
+ ldr r1, _080C09D4
+ movs r0, 0x1
+ b _080C0B78
+ .align 2, 0
+_080C09D4: .4byte gUnknown_020387E8
+_080C09D8:
+ ldr r0, _080C0A04
+ ldrh r2, [r4, 0x2]
+ movs r1, 0xB
+ muls r1, r2
+ ldr r2, _080C0A08
+ adds r1, r2
+ bl StringCopy
+ ldr r0, _080C0A0C
+ adds r1, r4, 0
+ adds r1, 0x8
+ ldrb r2, [r4, 0x1F]
+ bl sub_80C08FC
+ ldrb r1, [r4, 0x13]
+ lsls r1, 29
+ lsrs r1, 29
+ movs r0, 0x2
+ bl CopyContestCategoryToStringVar
+ b _080C0B74
+ .align 2, 0
+_080C0A04: .4byte gStringVar1
+_080C0A08: .4byte gSpeciesNames
+_080C0A0C: .4byte gStringVar2
+_080C0A10:
+ ldr r0, _080C0A2C
+ adds r1, r4, 0
+ adds r1, 0x16
+ ldrb r2, [r4, 0x1E]
+ bl sub_80C08FC
+ ldrb r1, [r4, 0x13]
+ movs r0, 0x60
+ ands r0, r1
+ cmp r0, 0
+ bne _080C0A34
+ ldr r1, _080C0A30
+ movs r0, 0x3
+ b _080C0B78
+ .align 2, 0
+_080C0A2C: .4byte gStringVar1
+_080C0A30: .4byte gUnknown_020387E8
+_080C0A34:
+ ldr r1, _080C0A3C
+ movs r0, 0x4
+ b _080C0B78
+ .align 2, 0
+_080C0A3C: .4byte gUnknown_020387E8
+_080C0A40:
+ ldr r0, _080C0A68
+ adds r1, r4, 0
+ adds r1, 0x16
+ ldrb r2, [r4, 0x1E]
+ bl sub_80C08FC
+ ldr r0, _080C0A6C
+ ldrh r1, [r4, 0x4]
+ bl sub_80EB3FC
+ ldrb r1, [r4, 0x13]
+ lsls r1, 25
+ lsrs r1, 30
+ adds r1, 0x1
+ movs r0, 0x2
+ bl sub_80BF088
+ ldr r1, _080C0A70
+ movs r0, 0x5
+ b _080C0B78
+ .align 2, 0
+_080C0A68: .4byte gStringVar1
+_080C0A6C: .4byte gStringVar2
+_080C0A70: .4byte gUnknown_020387E8
+_080C0A74:
+ ldr r0, _080C0A9C
+ adds r1, r4, 0
+ adds r1, 0x16
+ ldrb r2, [r4, 0x1E]
+ bl sub_80C08FC
+ ldr r0, _080C0AA0
+ ldrh r1, [r4, 0x4]
+ bl sub_80EB3FC
+ ldrb r1, [r4, 0x13]
+ lsls r1, 25
+ lsrs r1, 30
+ adds r1, 0x1
+ movs r0, 0x2
+ bl sub_80BF088
+ ldr r1, _080C0AA4
+ movs r0, 0x5
+ b _080C0B78
+ .align 2, 0
+_080C0A9C: .4byte gStringVar1
+_080C0AA0: .4byte gStringVar2
+_080C0AA4: .4byte gUnknown_020387E8
+_080C0AA8:
+ ldr r0, _080C0AD4
+ adds r1, r4, 0
+ adds r1, 0x16
+ ldrb r2, [r4, 0x1E]
+ bl sub_80C08FC
+ ldrb r1, [r4, 0x13]
+ lsls r1, 29
+ lsrs r1, 29
+ movs r0, 0x1
+ bl CopyContestCategoryToStringVar
+ ldr r0, _080C0AD8
+ ldrh r1, [r4, 0x6]
+ bl sub_80EB3FC
+ ldrh r0, [r4, 0x14]
+ cmp r0, 0
+ beq _080C0AE0
+ ldr r1, _080C0ADC
+ movs r0, 0x6
+ b _080C0B78
+ .align 2, 0
+_080C0AD4: .4byte gStringVar1
+_080C0AD8: .4byte gStringVar3
+_080C0ADC: .4byte gUnknown_020387E8
+_080C0AE0:
+ ldr r1, _080C0AE8
+ movs r0, 0x7
+ b _080C0B78
+ .align 2, 0
+_080C0AE8: .4byte gUnknown_020387E8
+_080C0AEC:
+ ldr r0, _080C0B1C
+ ldrh r2, [r4, 0x2]
+ movs r1, 0xB
+ muls r1, r2
+ ldr r2, _080C0B20
+ adds r1, r2
+ bl StringCopy
+ ldr r0, _080C0B24
+ ldrh r2, [r4, 0x14]
+ movs r1, 0xD
+ muls r1, r2
+ ldr r2, _080C0B28
+ adds r1, r2
+ bl StringCopy
+ ldr r0, _080C0B2C
+ ldrh r1, [r4, 0x6]
+ bl sub_80EB3FC
+ ldr r1, _080C0B30
+ movs r0, 0x7
+ b _080C0B78
+ .align 2, 0
+_080C0B1C: .4byte gStringVar1
+_080C0B20: .4byte gSpeciesNames
+_080C0B24: .4byte gStringVar2
+_080C0B28: .4byte gMoveNames
+_080C0B2C: .4byte gStringVar3
+_080C0B30: .4byte gUnknown_020387E8
+_080C0B34:
+ ldr r0, _080C0B58
+ adds r1, r4, 0
+ adds r1, 0x16
+ ldrb r2, [r4, 0x1E]
+ bl sub_80C08FC
+ ldr r0, _080C0B5C
+ ldrh r2, [r4, 0x2]
+ movs r1, 0xB
+ muls r1, r2
+ ldr r2, _080C0B60
+ adds r1, r2
+ bl StringCopy
+ bl TVShowDone
+ b _080C0B7A
+ .align 2, 0
+_080C0B58: .4byte gStringVar1
+_080C0B5C: .4byte gStringVar2
+_080C0B60: .4byte gSpeciesNames
+_080C0B64:
+ ldr r0, _080C0B8C
+ ldrh r2, [r4, 0x2]
+ movs r1, 0xB
+ muls r1, r2
+ ldr r2, _080C0B90
+ adds r1, r2
+ bl StringCopy
+_080C0B74:
+ ldr r1, _080C0B94
+ movs r0, 0x2
+_080C0B78:
+ strb r0, [r1]
+_080C0B7A:
+ ldr r0, _080C0B98
+ lsls r1, r5, 2
+ adds r1, r0
+ ldr r0, [r1]
+ bl ShowFieldMessage
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C0B8C: .4byte gStringVar1
+_080C0B90: .4byte gSpeciesNames
+_080C0B94: .4byte gUnknown_020387E8
+_080C0B98: .4byte gUnknown_083D1524
+ thumb_func_end DoTVShowBravoTrainerPokemonProfile
+
+ thumb_func_start sub_80C0B9C
+sub_80C0B9C: @ 80C0B9C
+ push {r4,r5,lr}
+ ldr r0, _080C0BC8
+ ldrh r1, [r0]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080C0BCC
+ adds r4, r0, r1
+ ldr r1, _080C0BD0
+ movs r0, 0
+ strh r0, [r1]
+ ldr r0, _080C0BD4
+ ldrb r5, [r0]
+ adds r2, r0, 0
+ cmp r5, 0xE
+ bls _080C0BBE
+ b _080C0DDE
+_080C0BBE:
+ lsls r0, r5, 2
+ ldr r1, _080C0BD8
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080C0BC8: .4byte gUnknown_0202E8CC
+_080C0BCC: .4byte gSaveBlock1 + 0x2738
+_080C0BD0: .4byte gScriptResult
+_080C0BD4: .4byte gUnknown_020387E8
+_080C0BD8: .4byte _080C0BDC
+ .align 2, 0
+_080C0BDC:
+ .4byte _080C0C18
+ .4byte _080C0C5C
+ .4byte _080C0C8C
+ .4byte _080C0CB0
+ .4byte _080C0CDC
+ .4byte _080C0D24
+ .4byte _080C0D30
+ .4byte _080C0D3C
+ .4byte _080C0D42
+ .4byte _080C0D42
+ .4byte _080C0D42
+ .4byte _080C0D5C
+ .4byte _080C0D88
+ .4byte _080C0D88
+ .4byte _080C0DC0
+_080C0C18:
+ ldr r0, _080C0C40
+ adds r1, r4, 0x2
+ ldrb r2, [r4, 0x1D]
+ bl sub_80C08FC
+ ldr r0, _080C0C44
+ ldrh r2, [r4, 0xA]
+ movs r1, 0xB
+ muls r1, r2
+ ldr r2, _080C0C48
+ adds r1, r2
+ bl StringCopy
+ ldrh r0, [r4, 0x16]
+ cmp r0, 0x6
+ bls _080C0C50
+ ldr r1, _080C0C4C
+ movs r0, 0x1
+ strb r0, [r1]
+ b _080C0DDE
+ .align 2, 0
+_080C0C40: .4byte gStringVar1
+_080C0C44: .4byte gStringVar2
+_080C0C48: .4byte gSpeciesNames
+_080C0C4C: .4byte gUnknown_020387E8
+_080C0C50:
+ ldr r1, _080C0C58
+ movs r0, 0x2
+ strb r0, [r1]
+ b _080C0DDE
+ .align 2, 0
+_080C0C58: .4byte gUnknown_020387E8
+_080C0C5C:
+ ldrb r1, [r4, 0x1A]
+ movs r0, 0
+ bl sub_80BF088
+ ldrh r1, [r4, 0x16]
+ movs r0, 0x1
+ bl sub_80BF088
+ ldrb r0, [r4, 0x1C]
+ cmp r0, 0x1
+ bne _080C0C80
+ ldr r1, _080C0C7C
+ movs r0, 0x3
+ strb r0, [r1]
+ b _080C0DDE
+ .align 2, 0
+_080C0C7C: .4byte gUnknown_020387E8
+_080C0C80:
+ ldr r1, _080C0C88
+ movs r0, 0x4
+ strb r0, [r1]
+ b _080C0DDE
+ .align 2, 0
+_080C0C88: .4byte gUnknown_020387E8
+_080C0C8C:
+ ldr r0, _080C0CAC
+ adds r1, r4, 0
+ adds r1, 0xC
+ ldrb r2, [r4, 0x1D]
+ bl sub_80C08FC
+ ldrh r1, [r4, 0x16]
+ adds r1, 0x1
+ movs r0, 0x1
+ bl sub_80BF088
+_080C0CA2:
+ ldrb r0, [r4, 0x1B]
+ cmp r0, 0
+ beq _080C0CFE
+ b _080C0D18
+ .align 2, 0
+_080C0CAC: .4byte gStringVar1
+_080C0CB0:
+ ldr r0, _080C0CD0
+ adds r1, r4, 0
+ adds r1, 0xC
+ ldrb r2, [r4, 0x1D]
+ bl sub_80C08FC
+ ldr r0, _080C0CD4
+ ldrh r2, [r4, 0x14]
+ movs r1, 0xB
+ muls r1, r2
+ ldr r2, _080C0CD8
+ adds r1, r2
+ bl StringCopy
+ b _080C0CA2
+ .align 2, 0
+_080C0CD0: .4byte gStringVar1
+_080C0CD4: .4byte gStringVar2
+_080C0CD8: .4byte gSpeciesNames
+_080C0CDC:
+ ldr r0, _080C0D08
+ adds r1, r4, 0
+ adds r1, 0xC
+ ldrb r2, [r4, 0x1D]
+ bl sub_80C08FC
+ ldr r0, _080C0D0C
+ ldrh r2, [r4, 0x14]
+ movs r1, 0xB
+ muls r1, r2
+ ldr r2, _080C0D10
+ adds r1, r2
+ bl StringCopy
+ ldrb r0, [r4, 0x1B]
+ cmp r0, 0
+ bne _080C0D18
+_080C0CFE:
+ ldr r1, _080C0D14
+ movs r0, 0x5
+ strb r0, [r1]
+ b _080C0DDE
+ .align 2, 0
+_080C0D08: .4byte gStringVar1
+_080C0D0C: .4byte gStringVar2
+_080C0D10: .4byte gSpeciesNames
+_080C0D14: .4byte gUnknown_020387E8
+_080C0D18:
+ ldr r1, _080C0D20
+ movs r0, 0x6
+ strb r0, [r1]
+ b _080C0DDE
+ .align 2, 0
+_080C0D20: .4byte gUnknown_020387E8
+_080C0D24:
+ ldr r0, _080C0D2C
+ adds r1, r4, 0
+ adds r1, 0xC
+ b _080C0D46
+ .align 2, 0
+_080C0D2C: .4byte gStringVar1
+_080C0D30:
+ ldr r0, _080C0D38
+ adds r1, r4, 0
+ adds r1, 0xC
+ b _080C0D46
+ .align 2, 0
+_080C0D38: .4byte gStringVar1
+_080C0D3C:
+ movs r0, 0xB
+ strb r0, [r2]
+ b _080C0DDE
+_080C0D42:
+ ldr r0, _080C0D54
+ adds r1, r4, 0x2
+_080C0D46:
+ ldrb r2, [r4, 0x1D]
+ bl sub_80C08FC
+ ldr r1, _080C0D58
+ movs r0, 0xB
+ strb r0, [r1]
+ b _080C0DDE
+ .align 2, 0
+_080C0D54: .4byte gStringVar1
+_080C0D58: .4byte gUnknown_020387E8
+_080C0D5C:
+ ldr r0, _080C0D74
+ ldrh r1, [r4, 0x18]
+ bl sub_80EB3FC
+ ldrb r0, [r4, 0x1B]
+ cmp r0, 0
+ bne _080C0D7C
+ ldr r1, _080C0D78
+ movs r0, 0xC
+ strb r0, [r1]
+ b _080C0DDE
+ .align 2, 0
+_080C0D74: .4byte gStringVar1
+_080C0D78: .4byte gUnknown_020387E8
+_080C0D7C:
+ ldr r1, _080C0D84
+ movs r0, 0xD
+ strb r0, [r1]
+ b _080C0DDE
+ .align 2, 0
+_080C0D84: .4byte gUnknown_020387E8
+_080C0D88:
+ ldr r0, _080C0DB0
+ ldrh r1, [r4, 0x18]
+ bl sub_80EB3FC
+ ldr r0, _080C0DB4
+ adds r1, r4, 0x2
+ ldrb r2, [r4, 0x1D]
+ bl sub_80C08FC
+ ldr r0, _080C0DB8
+ adds r1, r4, 0
+ adds r1, 0xC
+ ldrb r2, [r4, 0x1D]
+ bl sub_80C08FC
+ ldr r1, _080C0DBC
+ movs r0, 0xE
+ strb r0, [r1]
+ b _080C0DDE
+ .align 2, 0
+_080C0DB0: .4byte gStringVar1
+_080C0DB4: .4byte gStringVar2
+_080C0DB8: .4byte gStringVar3
+_080C0DBC: .4byte gUnknown_020387E8
+_080C0DC0:
+ ldr r0, _080C0DF0
+ adds r1, r4, 0x2
+ ldrb r2, [r4, 0x1D]
+ bl sub_80C08FC
+ ldr r0, _080C0DF4
+ ldrh r2, [r4, 0xA]
+ movs r1, 0xB
+ muls r1, r2
+ ldr r2, _080C0DF8
+ adds r1, r2
+ bl StringCopy
+ bl TVShowDone
+_080C0DDE:
+ ldr r0, _080C0DFC
+ lsls r1, r5, 2
+ adds r1, r0
+ ldr r0, [r1]
+ bl ShowFieldMessage
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C0DF0: .4byte gStringVar1
+_080C0DF4: .4byte gStringVar2
+_080C0DF8: .4byte gSpeciesNames
+_080C0DFC: .4byte gUnknown_083D1548
+ thumb_func_end sub_80C0B9C
+
+ thumb_func_start DoTVShowTodaysSmartShopper
+DoTVShowTodaysSmartShopper: @ 80C0E00
+ push {r4-r6,lr}
+ ldr r0, _080C0E2C
+ ldrh r1, [r0]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080C0E30
+ adds r5, r0, r1
+ ldr r1, _080C0E34
+ movs r0, 0
+ strh r0, [r1]
+ ldr r0, _080C0E38
+ ldrb r6, [r0]
+ adds r2, r0, 0
+ cmp r6, 0xC
+ bls _080C0E22
+ b _080C1014
+_080C0E22:
+ lsls r0, r6, 2
+ ldr r1, _080C0E3C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080C0E2C: .4byte gUnknown_0202E8CC
+_080C0E30: .4byte gSaveBlock1 + 0x2738
+_080C0E34: .4byte gScriptResult
+_080C0E38: .4byte gUnknown_020387E8
+_080C0E3C: .4byte _080C0E40
+ .align 2, 0
+_080C0E40:
+ .4byte _080C0E74
+ .4byte _080C0EB0
+ .4byte _080C0EF8
+ .4byte _080C0F0A
+ .4byte _080C0EF8
+ .4byte _080C0EF8
+ .4byte _080C0F34
+ .4byte _080C0F64
+ .4byte _080C0F94
+ .4byte _080C0FA0
+ .4byte _080C0FAE
+ .4byte _080C0FC0
+ .4byte _080C1004
+_080C0E74:
+ ldr r0, _080C0E98
+ adds r1, r5, 0
+ adds r1, 0x13
+ ldrb r2, [r5, 0x3]
+ bl sub_80C08FC
+ ldr r0, _080C0E9C
+ ldrb r1, [r5, 0x12]
+ movs r2, 0
+ bl sub_80FBFB4
+ ldrh r0, [r5, 0xC]
+ cmp r0, 0xFE
+ bls _080C0EA4
+ ldr r1, _080C0EA0
+ movs r0, 0xB
+ strb r0, [r1]
+ b _080C1014
+ .align 2, 0
+_080C0E98: .4byte gStringVar1
+_080C0E9C: .4byte gStringVar2
+_080C0EA0: .4byte gUnknown_020387E8
+_080C0EA4:
+ ldr r1, _080C0EAC
+ movs r0, 0x1
+ strb r0, [r1]
+ b _080C1014
+ .align 2, 0
+_080C0EAC: .4byte gUnknown_020387E8
+_080C0EB0:
+ ldr r0, _080C0EEC
+ adds r1, r5, 0
+ adds r1, 0x13
+ ldrb r2, [r5, 0x3]
+ bl sub_80C08FC
+ ldr r4, _080C0EF0
+ ldrh r0, [r5, 0x6]
+ bl itemid_get_item
+ adds r1, r0, 0
+ adds r0, r4, 0
+ bl StringCopy
+ ldrh r1, [r5, 0xC]
+ movs r0, 0x2
+ bl sub_80BF088
+ ldr r4, _080C0EF4
+ bl Random
+ ldrb r2, [r4]
+ adds r2, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x3
+ ands r0, r1
+ adds r0, r2
+ strb r0, [r4]
+ b _080C1014
+ .align 2, 0
+_080C0EEC: .4byte gStringVar1
+_080C0EF0: .4byte gStringVar2
+_080C0EF4: .4byte gUnknown_020387E8
+_080C0EF8:
+ ldrh r0, [r5, 0x8]
+ cmp r0, 0
+ beq _080C0F04
+ movs r0, 0x6
+ strb r0, [r2]
+ b _080C1014
+_080C0F04:
+ movs r0, 0xA
+ strb r0, [r2]
+ b _080C1014
+_080C0F0A:
+ ldrh r1, [r5, 0xC]
+ adds r1, 0x1
+ movs r0, 0x2
+ bl sub_80BF088
+ ldrh r0, [r5, 0x8]
+ cmp r0, 0
+ beq _080C0F28
+ ldr r1, _080C0F24
+ movs r0, 0x6
+ strb r0, [r1]
+ b _080C1014
+ .align 2, 0
+_080C0F24: .4byte gUnknown_020387E8
+_080C0F28:
+ ldr r1, _080C0F30
+ movs r0, 0xA
+ strb r0, [r1]
+ b _080C1014
+ .align 2, 0
+_080C0F30: .4byte gUnknown_020387E8
+_080C0F34:
+ ldr r4, _080C0F5C
+ ldrh r0, [r5, 0x8]
+ bl itemid_get_item
+ adds r1, r0, 0
+ adds r0, r4, 0
+ bl StringCopy
+ ldrh r1, [r5, 0xE]
+ movs r0, 0x2
+ bl sub_80BF088
+ ldrh r0, [r5, 0xA]
+ cmp r0, 0
+ beq _080C0F7C
+ ldr r1, _080C0F60
+ movs r0, 0x7
+ strb r0, [r1]
+ b _080C1014
+ .align 2, 0
+_080C0F5C: .4byte gStringVar2
+_080C0F60: .4byte gUnknown_020387E8
+_080C0F64:
+ ldr r4, _080C0F8C
+ ldrh r0, [r5, 0xA]
+ bl itemid_get_item
+ adds r1, r0, 0
+ adds r0, r4, 0
+ bl StringCopy
+ ldrh r1, [r5, 0x10]
+ movs r0, 0x2
+ bl sub_80BF088
+_080C0F7C:
+ ldrb r0, [r5, 0x2]
+ cmp r0, 0x1
+ beq _080C0FE2
+ ldr r1, _080C0F90
+ movs r0, 0x9
+ strb r0, [r1]
+ b _080C1014
+ .align 2, 0
+_080C0F8C: .4byte gStringVar2
+_080C0F90: .4byte gUnknown_020387E8
+_080C0F94:
+ ldrh r0, [r5, 0xC]
+ cmp r0, 0xFE
+ bls _080C0FBA
+ movs r0, 0xC
+ strb r0, [r2]
+ b _080C1014
+_080C0FA0:
+ movs r0, 0x1
+ adds r1, r5, 0
+ bl sub_80BF154
+ bl TVShowDone
+ b _080C1014
+_080C0FAE:
+ ldrb r0, [r5, 0x2]
+ cmp r0, 0x1
+ bne _080C0FBA
+ movs r0, 0x8
+ strb r0, [r2]
+ b _080C1014
+_080C0FBA:
+ movs r0, 0x9
+ strb r0, [r2]
+ b _080C1014
+_080C0FC0:
+ ldr r0, _080C0FEC
+ adds r1, r5, 0
+ adds r1, 0x13
+ ldrb r2, [r5, 0x3]
+ bl sub_80C08FC
+ ldr r4, _080C0FF0
+ ldrh r0, [r5, 0x6]
+ bl itemid_get_item
+ adds r1, r0, 0
+ adds r0, r4, 0
+ bl StringCopy
+ ldrb r0, [r5, 0x2]
+ cmp r0, 0x1
+ bne _080C0FF8
+_080C0FE2:
+ ldr r1, _080C0FF4
+ movs r0, 0x8
+ strb r0, [r1]
+ b _080C1014
+ .align 2, 0
+_080C0FEC: .4byte gStringVar1
+_080C0FF0: .4byte gStringVar2
+_080C0FF4: .4byte gUnknown_020387E8
+_080C0FF8:
+ ldr r1, _080C1000
+ movs r0, 0xC
+ strb r0, [r1]
+ b _080C1014
+ .align 2, 0
+_080C1000: .4byte gUnknown_020387E8
+_080C1004:
+ ldr r0, _080C1028
+ adds r1, r5, 0
+ adds r1, 0x13
+ ldrb r2, [r5, 0x3]
+ bl sub_80C08FC
+ bl TVShowDone
+_080C1014:
+ ldr r0, _080C102C
+ lsls r1, r6, 2
+ adds r1, r0
+ ldr r0, [r1]
+ bl ShowFieldMessage
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C1028: .4byte gStringVar1
+_080C102C: .4byte gUnknown_083D14F0
+ thumb_func_end DoTVShowTodaysSmartShopper
+
+ thumb_func_start DoTVShowTheNameRaterShow
+DoTVShowTheNameRaterShow: @ 80C1030
+ push {r4-r7,lr}
+ sub sp, 0x8
+ ldr r0, _080C1060
+ ldrh r1, [r0]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080C1064
+ adds r6, r0, r1
+ ldr r1, _080C1068
+ movs r0, 0
+ strh r0, [r1]
+ ldr r0, _080C106C
+ ldrb r7, [r0]
+ adds r2, r0, 0
+ cmp r7, 0x12
+ bls _080C1054
+ b _080C138A
+_080C1054:
+ lsls r0, r7, 2
+ ldr r1, _080C1070
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080C1060: .4byte gUnknown_0202E8CC
+_080C1064: .4byte gSaveBlock1 + 0x2738
+_080C1068: .4byte gScriptResult
+_080C106C: .4byte gUnknown_020387E8
+_080C1070: .4byte _080C1074
+ .align 2, 0
+_080C1074:
+ .4byte _080C10C0
+ .4byte _080C1108
+ .4byte _080C112A
+ .4byte _080C1108
+ .4byte _080C1108
+ .4byte _080C1108
+ .4byte _080C1108
+ .4byte _080C1108
+ .4byte _080C1108
+ .4byte _080C1170
+ .4byte _080C1170
+ .4byte _080C1170
+ .4byte _080C136C
+ .4byte _080C11CC
+ .4byte _080C1228
+ .4byte _080C127C
+ .4byte _080C12D4
+ .4byte _080C1314
+ .4byte _080C1370
+_080C10C0:
+ ldr r0, _080C10F4
+ adds r1, r6, 0
+ adds r1, 0xF
+ ldrb r2, [r6, 0x1E]
+ bl sub_80C08FC
+ ldr r0, _080C10F8
+ ldrh r2, [r6, 0x2]
+ movs r1, 0xB
+ muls r1, r2
+ ldr r2, _080C10FC
+ adds r1, r2
+ bl StringCopy
+ ldr r0, _080C1100
+ adds r1, r6, 0x4
+ ldrb r2, [r6, 0x1F]
+ bl sub_80C08FC
+ ldr r4, _080C1104
+ adds r0, r6, 0
+ bl sub_80BF7E8
+ adds r0, 0x1
+ strb r0, [r4]
+ b _080C138A
+ .align 2, 0
+_080C10F4: .4byte gStringVar1
+_080C10F8: .4byte gStringVar2
+_080C10FC: .4byte gSpeciesNames
+_080C1100: .4byte gStringVar3
+_080C1104: .4byte gUnknown_020387E8
+_080C1108:
+ ldrb r0, [r6, 0x1A]
+ cmp r0, 0
+ bne _080C1114
+ movs r0, 0x9
+ strb r0, [r2]
+ b _080C138A
+_080C1114:
+ cmp r0, 0x1
+ bne _080C111E
+ movs r0, 0xA
+ strb r0, [r2]
+ b _080C138A
+_080C111E:
+ cmp r0, 0x2
+ beq _080C1124
+ b _080C138A
+_080C1124:
+ movs r0, 0xB
+ strb r0, [r2]
+ b _080C138A
+_080C112A:
+ ldr r0, _080C1144
+ adds r1, r6, 0
+ adds r1, 0xF
+ ldrb r2, [r6, 0x1E]
+ bl sub_80C08FC
+ ldrb r0, [r6, 0x1A]
+ cmp r0, 0
+ bne _080C114C
+ ldr r1, _080C1148
+ movs r0, 0x9
+ strb r0, [r1]
+ b _080C138A
+ .align 2, 0
+_080C1144: .4byte gStringVar1
+_080C1148: .4byte gUnknown_020387E8
+_080C114C:
+ cmp r0, 0x1
+ bne _080C115C
+ ldr r1, _080C1158
+ movs r0, 0xA
+ strb r0, [r1]
+ b _080C138A
+ .align 2, 0
+_080C1158: .4byte gUnknown_020387E8
+_080C115C:
+ cmp r0, 0x2
+ beq _080C1162
+ b _080C138A
+_080C1162:
+ ldr r1, _080C116C
+ movs r0, 0xB
+ strb r0, [r1]
+ b _080C138A
+ .align 2, 0
+_080C116C: .4byte gUnknown_020387E8
+_080C1170:
+ movs r5, 0
+ str r5, [sp]
+ str r6, [sp, 0x4]
+ movs r0, 0
+ movs r1, 0x1
+ movs r2, 0
+ movs r3, 0x1
+ bl sub_80BF820
+ ldr r0, _080C11BC
+ ldr r4, _080C11C0
+ ldrb r2, [r6, 0x1F]
+ adds r1, r4, 0
+ bl sub_80C08FC
+ str r5, [sp]
+ str r6, [sp, 0x4]
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x1
+ bl sub_80BF820
+ ldr r0, _080C11C4
+ ldrb r2, [r6, 0x1F]
+ adds r1, r4, 0
+ bl sub_80C08FC
+ adds r1, r6, 0x4
+ ldrb r2, [r6, 0x1F]
+ adds r0, r4, 0
+ bl sub_80C08FC
+ ldr r1, _080C11C8
+ movs r0, 0xC
+ strb r0, [r1]
+ b _080C138A
+ .align 2, 0
+_080C11BC: .4byte gStringVar3
+_080C11C0: .4byte gStringVar1
+_080C11C4: .4byte gStringVar2
+_080C11C8: .4byte gUnknown_020387E8
+_080C11CC:
+ movs r5, 0
+ str r5, [sp]
+ str r6, [sp, 0x4]
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x3
+ movs r3, 0x1
+ bl sub_80BF820
+ ldr r0, _080C1218
+ ldr r4, _080C121C
+ ldrb r2, [r6, 0x1F]
+ adds r1, r4, 0
+ bl sub_80C08FC
+ str r5, [sp]
+ str r6, [sp, 0x4]
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x2
+ movs r3, 0
+ bl sub_80BF820
+ ldr r0, _080C1220
+ ldrb r2, [r6, 0x1E]
+ adds r1, r4, 0
+ bl sub_80C08FC
+ adds r1, r6, 0
+ adds r1, 0xF
+ ldrb r2, [r6, 0x1E]
+ adds r0, r4, 0
+ bl sub_80C08FC
+ ldr r1, _080C1224
+ movs r0, 0xE
+ strb r0, [r1]
+ b _080C138A
+ .align 2, 0
+_080C1218: .4byte gStringVar3
+_080C121C: .4byte gStringVar1
+_080C1220: .4byte gStringVar2
+_080C1224: .4byte gUnknown_020387E8
+_080C1228:
+ movs r5, 0
+ str r5, [sp]
+ str r6, [sp, 0x4]
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x3
+ movs r3, 0
+ bl sub_80BF820
+ ldr r0, _080C1270
+ ldr r4, _080C1274
+ ldrb r2, [r6, 0x1E]
+ adds r1, r4, 0
+ bl sub_80C08FC
+ str r5, [sp]
+ str r6, [sp, 0x4]
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x2
+ movs r3, 0x1
+ bl sub_80BF820
+ ldr r0, _080C1278
+ ldrb r2, [r6, 0x1F]
+ adds r1, r4, 0
+ bl sub_80C08FC
+ adds r1, r6, 0
+ adds r1, 0xF
+ ldrb r2, [r6, 0x1E]
+ adds r0, r4, 0
+ bl sub_80C08FC
+ b _080C1354
+ .align 2, 0
+_080C1270: .4byte gStringVar3
+_080C1274: .4byte gStringVar1
+_080C1278: .4byte gStringVar2
+_080C127C:
+ movs r0, 0
+ str r0, [sp]
+ str r6, [sp, 0x4]
+ movs r0, 0x1
+ movs r1, 0
+ movs r2, 0x2
+ movs r3, 0x1
+ bl sub_80BF820
+ ldr r0, _080C12C4
+ ldr r4, _080C12C8
+ ldrb r2, [r6, 0x1F]
+ adds r1, r4, 0
+ bl sub_80C08FC
+ ldrh r1, [r6, 0x2]
+ movs r0, 0xB
+ muls r1, r0
+ ldr r0, _080C12CC
+ adds r1, r0
+ adds r0, r4, 0
+ bl StringCopy
+ ldrh r0, [r6, 0x2]
+ str r0, [sp]
+ str r6, [sp, 0x4]
+ movs r0, 0x2
+ movs r1, 0
+ movs r2, 0x3
+ movs r3, 0x2
+ bl sub_80BF820
+ ldr r1, _080C12D0
+ movs r0, 0x10
+ strb r0, [r1]
+ b _080C138A
+ .align 2, 0
+_080C12C4: .4byte gStringVar1
+_080C12C8: .4byte gStringVar2
+_080C12CC: .4byte gSpeciesNames
+_080C12D0: .4byte gUnknown_020387E8
+_080C12D4:
+ movs r0, 0
+ str r0, [sp]
+ str r6, [sp, 0x4]
+ movs r1, 0
+ movs r2, 0x3
+ movs r3, 0x1
+ bl sub_80BF820
+ ldr r0, _080C1308
+ ldr r1, _080C130C
+ ldrb r2, [r6, 0x1F]
+ bl sub_80C08FC
+ ldrh r0, [r6, 0x2]
+ str r0, [sp]
+ str r6, [sp, 0x4]
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x2
+ movs r3, 0x2
+ bl sub_80BF820
+ ldr r1, _080C1310
+ movs r0, 0x11
+ strb r0, [r1]
+ b _080C138A
+ .align 2, 0
+_080C1308: .4byte gStringVar3
+_080C130C: .4byte gStringVar1
+_080C1310: .4byte gUnknown_020387E8
+_080C1314:
+ movs r0, 0
+ str r0, [sp]
+ str r6, [sp, 0x4]
+ movs r0, 0x1
+ movs r1, 0
+ movs r2, 0x2
+ movs r3, 0x1
+ bl sub_80BF820
+ ldr r0, _080C135C
+ ldr r4, _080C1360
+ ldrb r2, [r6, 0x1F]
+ adds r1, r4, 0
+ bl sub_80C08FC
+ ldrh r0, [r6, 0x1C]
+ str r0, [sp]
+ str r6, [sp, 0x4]
+ movs r0, 0x2
+ movs r1, 0
+ movs r2, 0x3
+ movs r3, 0x2
+ bl sub_80BF820
+ ldrh r1, [r6, 0x1C]
+ movs r0, 0xB
+ muls r1, r0
+ ldr r0, _080C1364
+ adds r1, r0
+ adds r0, r4, 0
+ bl StringCopy
+_080C1354:
+ ldr r1, _080C1368
+ movs r0, 0x12
+ strb r0, [r1]
+ b _080C138A
+ .align 2, 0
+_080C135C: .4byte gStringVar1
+_080C1360: .4byte gStringVar2
+_080C1364: .4byte gSpeciesNames
+_080C1368: .4byte gUnknown_020387E8
+_080C136C:
+ movs r7, 0x12
+ strb r7, [r2]
+_080C1370:
+ ldr r0, _080C13A0
+ adds r1, r6, 0x4
+ ldrb r2, [r6, 0x1F]
+ bl sub_80C08FC
+ ldr r0, _080C13A4
+ adds r1, r6, 0
+ adds r1, 0xF
+ ldrb r2, [r6, 0x1E]
+ bl sub_80C08FC
+ bl TVShowDone
+_080C138A:
+ ldr r0, _080C13A8
+ lsls r1, r7, 2
+ adds r1, r0
+ ldr r0, [r1]
+ bl ShowFieldMessage
+ add sp, 0x8
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C13A0: .4byte gStringVar1
+_080C13A4: .4byte gStringVar2
+_080C13A8: .4byte gUnknown_083D1584
+ thumb_func_end DoTVShowTheNameRaterShow
+
+ thumb_func_start DoTVShowPokemonTodaySuccessfulCapture
+DoTVShowPokemonTodaySuccessfulCapture: @ 80C13AC
+ push {r4-r6,lr}
+ ldr r0, _080C13D8
+ ldrh r1, [r0]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080C13DC
+ adds r5, r0, r1
+ ldr r1, _080C13E0
+ movs r0, 0
+ strh r0, [r1]
+ ldr r0, _080C13E4
+ ldrb r6, [r0]
+ adds r2, r0, 0
+ cmp r6, 0xB
+ bls _080C13CE
+ b _080C15DC
+_080C13CE:
+ lsls r0, r6, 2
+ ldr r1, _080C13E8
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080C13D8: .4byte gUnknown_0202E8CC
+_080C13DC: .4byte gSaveBlock1 + 0x2738
+_080C13E0: .4byte gScriptResult
+_080C13E4: .4byte gUnknown_020387E8
+_080C13E8: .4byte _080C13EC
+ .align 2, 0
+_080C13EC:
+ .4byte _080C141C
+ .4byte _080C1470
+ .4byte _080C1476
+ .4byte _080C14B0
+ .4byte _080C14E8
+ .4byte _080C14EE
+ .4byte _080C1524
+ .4byte _080C1578
+ .4byte _080C1578
+ .4byte _080C15A8
+ .4byte _080C15A8
+ .4byte _080C15D8
+_080C141C:
+ ldr r0, _080C1450
+ adds r1, r5, 0
+ adds r1, 0x13
+ ldrb r2, [r5, 0x2]
+ bl sub_80C08FC
+ ldr r0, _080C1454
+ ldrh r2, [r5, 0x10]
+ movs r1, 0xB
+ muls r1, r2
+ ldr r2, _080C1458
+ adds r1, r2
+ bl StringCopy
+ ldr r0, _080C145C
+ adds r1, r5, 0x4
+ ldrb r2, [r5, 0x3]
+ bl sub_80C08FC
+ ldrb r0, [r5, 0xF]
+ cmp r0, 0x1
+ bne _080C1464
+ ldr r1, _080C1460
+ movs r0, 0x5
+ strb r0, [r1]
+ b _080C15DC
+ .align 2, 0
+_080C1450: .4byte gStringVar1
+_080C1454: .4byte gStringVar2
+_080C1458: .4byte gSpeciesNames
+_080C145C: .4byte gStringVar3
+_080C1460: .4byte gUnknown_020387E8
+_080C1464:
+ ldr r1, _080C146C
+ movs r0, 0x1
+ strb r0, [r1]
+ b _080C15DC
+ .align 2, 0
+_080C146C: .4byte gUnknown_020387E8
+_080C1470:
+ movs r0, 0x2
+ strb r0, [r2]
+ b _080C15DC
+_080C1476:
+ ldr r4, _080C149C
+ ldrb r0, [r5, 0xF]
+ bl itemid_get_item
+ adds r1, r0, 0
+ adds r0, r4, 0
+ bl StringCopy
+ ldrb r1, [r5, 0x12]
+ movs r0, 0x2
+ bl sub_80BF088
+ ldrb r0, [r5, 0x12]
+ cmp r0, 0x3
+ bhi _080C14A4
+ ldr r1, _080C14A0
+ movs r0, 0x3
+ strb r0, [r1]
+ b _080C15DC
+ .align 2, 0
+_080C149C: .4byte gStringVar2
+_080C14A0: .4byte gUnknown_020387E8
+_080C14A4:
+ ldr r1, _080C14AC
+ movs r0, 0x4
+ strb r0, [r1]
+ b _080C15DC
+ .align 2, 0
+_080C14AC: .4byte gUnknown_020387E8
+_080C14B0:
+ ldr r0, _080C14D8
+ adds r1, r5, 0
+ adds r1, 0x13
+ ldrb r2, [r5, 0x2]
+ bl sub_80C08FC
+ ldr r0, _080C14DC
+ ldrh r2, [r5, 0x10]
+ movs r1, 0xB
+ muls r1, r2
+ ldr r2, _080C14E0
+ adds r1, r2
+ bl StringCopy
+ ldr r0, _080C14E4
+ adds r1, r5, 0x4
+ ldrb r2, [r5, 0x3]
+ bl sub_80C08FC
+ b _080C150A
+ .align 2, 0
+_080C14D8: .4byte gStringVar1
+_080C14DC: .4byte gStringVar2
+_080C14E0: .4byte gSpeciesNames
+_080C14E4: .4byte gStringVar3
+_080C14E8:
+ movs r0, 0x6
+ strb r0, [r2]
+ b _080C15DC
+_080C14EE:
+ ldr r0, _080C1514
+ adds r1, r5, 0
+ adds r1, 0x13
+ ldrb r2, [r5, 0x2]
+ bl sub_80C08FC
+ ldr r0, _080C1518
+ ldrh r2, [r5, 0x10]
+ movs r1, 0xB
+ muls r1, r2
+ ldr r2, _080C151C
+ adds r1, r2
+ bl StringCopy
+_080C150A:
+ ldr r1, _080C1520
+ movs r0, 0x6
+ strb r0, [r1]
+ b _080C15DC
+ .align 2, 0
+_080C1514: .4byte gStringVar1
+_080C1518: .4byte gStringVar2
+_080C151C: .4byte gSpeciesNames
+_080C1520: .4byte gUnknown_020387E8
+_080C1524:
+ ldr r0, _080C1564
+ adds r1, r5, 0
+ adds r1, 0x13
+ ldrb r2, [r5, 0x2]
+ bl sub_80C08FC
+ ldr r0, _080C1568
+ ldrh r2, [r5, 0x10]
+ movs r1, 0xB
+ muls r1, r2
+ ldr r2, _080C156C
+ adds r1, r2
+ bl StringCopy
+ ldr r0, _080C1570
+ adds r1, r5, 0x4
+ ldrb r2, [r5, 0x3]
+ bl sub_80C08FC
+ ldr r4, _080C1574
+ bl Random
+ ldrb r2, [r4]
+ adds r2, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x3
+ ands r0, r1
+ adds r0, r2
+ strb r0, [r4]
+ b _080C15DC
+ .align 2, 0
+_080C1564: .4byte gStringVar1
+_080C1568: .4byte gStringVar2
+_080C156C: .4byte gSpeciesNames
+_080C1570: .4byte gStringVar3
+_080C1574: .4byte gUnknown_020387E8
+_080C1578:
+ ldr r0, _080C159C
+ ldrh r1, [r5, 0x10]
+ movs r4, 0xB
+ muls r1, r4
+ ldr r2, _080C15A0
+ adds r1, r2
+ bl StringCopy
+ ldr r0, _080C15A4
+ adds r1, r5, 0x4
+ ldrb r2, [r5, 0x3]
+ bl sub_80C08FC
+ ldrh r1, [r5, 0x10]
+ movs r0, 0x2
+ bl sub_80BF638
+ b _080C15C2
+ .align 2, 0
+_080C159C: .4byte gStringVar1
+_080C15A0: .4byte gSpeciesNames
+_080C15A4: .4byte gStringVar2
+_080C15A8:
+ ldr r0, _080C15C8
+ ldrh r1, [r5, 0x10]
+ movs r4, 0xB
+ muls r1, r4
+ ldr r2, _080C15CC
+ adds r1, r2
+ bl StringCopy
+ ldr r0, _080C15D0
+ adds r1, r5, 0x4
+ ldrb r2, [r5, 0x3]
+ bl sub_80C08FC
+_080C15C2:
+ ldr r0, _080C15D4
+ strb r4, [r0]
+ b _080C15DC
+ .align 2, 0
+_080C15C8: .4byte gStringVar1
+_080C15CC: .4byte gSpeciesNames
+_080C15D0: .4byte gStringVar2
+_080C15D4: .4byte gUnknown_020387E8
+_080C15D8:
+ bl TVShowDone
+_080C15DC:
+ ldr r0, _080C15F0
+ lsls r1, r6, 2
+ adds r1, r0
+ ldr r0, [r1]
+ bl ShowFieldMessage
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C15F0: .4byte gUnknown_083D14C0
+ thumb_func_end DoTVShowPokemonTodaySuccessfulCapture
+
+ thumb_func_start DoTVShowPokemonTodayFailedCapture
+DoTVShowPokemonTodayFailedCapture: @ 80C15F4
+ push {r4,r5,lr}
+ ldr r0, _080C1620
+ ldrh r1, [r0]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080C1624
+ adds r4, r0, r1
+ ldr r1, _080C1628
+ movs r0, 0
+ strh r0, [r1]
+ ldr r0, _080C162C
+ ldrb r5, [r0]
+ cmp r5, 0x6
+ bls _080C1614
+ b _080C173C
+_080C1614:
+ lsls r0, r5, 2
+ ldr r1, _080C1630
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080C1620: .4byte gUnknown_0202E8CC
+_080C1624: .4byte gSaveBlock1 + 0x2738
+_080C1628: .4byte gScriptResult
+_080C162C: .4byte gUnknown_020387E8
+_080C1630: .4byte _080C1634
+ .align 2, 0
+_080C1634:
+ .4byte _080C1650
+ .4byte _080C1684
+ .4byte _080C16D8
+ .4byte _080C16D8
+ .4byte _080C171C
+ .4byte _080C171C
+ .4byte _080C1738
+_080C1650:
+ ldr r0, _080C1674
+ adds r1, r4, 0
+ adds r1, 0x13
+ ldrb r2, [r4, 0x2]
+ bl sub_80C08FC
+ ldr r0, _080C1678
+ ldrh r2, [r4, 0xC]
+ movs r1, 0xB
+ muls r1, r2
+ ldr r2, _080C167C
+ adds r1, r2
+ bl StringCopy
+ ldr r1, _080C1680
+ movs r0, 0x1
+ strb r0, [r1]
+ b _080C173C
+ .align 2, 0
+_080C1674: .4byte gStringVar1
+_080C1678: .4byte gStringVar2
+_080C167C: .4byte gSpeciesNames
+_080C1680: .4byte gUnknown_020387E8
+_080C1684:
+ ldr r0, _080C16B8
+ adds r1, r4, 0
+ adds r1, 0x13
+ ldrb r2, [r4, 0x2]
+ bl sub_80C08FC
+ ldr r0, _080C16BC
+ ldrb r1, [r4, 0x12]
+ movs r2, 0
+ bl sub_80FBFB4
+ ldr r0, _080C16C0
+ ldrh r2, [r4, 0xE]
+ movs r1, 0xB
+ muls r1, r2
+ ldr r2, _080C16C4
+ adds r1, r2
+ bl StringCopy
+ ldrb r0, [r4, 0x11]
+ cmp r0, 0x1
+ bne _080C16CC
+ ldr r1, _080C16C8
+ movs r0, 0x3
+ strb r0, [r1]
+ b _080C173C
+ .align 2, 0
+_080C16B8: .4byte gStringVar1
+_080C16BC: .4byte gStringVar2
+_080C16C0: .4byte gStringVar3
+_080C16C4: .4byte gSpeciesNames
+_080C16C8: .4byte gUnknown_020387E8
+_080C16CC:
+ ldr r1, _080C16D4
+ movs r0, 0x2
+ strb r0, [r1]
+ b _080C173C
+ .align 2, 0
+_080C16D4: .4byte gUnknown_020387E8
+_080C16D8:
+ ldr r0, _080C1708
+ adds r1, r4, 0
+ adds r1, 0x13
+ ldrb r2, [r4, 0x2]
+ bl sub_80C08FC
+ ldrb r1, [r4, 0x10]
+ movs r0, 0x1
+ bl sub_80BF088
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x3
+ bl __umodsi3
+ lsls r0, 16
+ cmp r0, 0
+ bne _080C1710
+ ldr r1, _080C170C
+ movs r0, 0x5
+ strb r0, [r1]
+ b _080C173C
+ .align 2, 0
+_080C1708: .4byte gStringVar1
+_080C170C: .4byte gUnknown_020387E8
+_080C1710:
+ ldr r1, _080C1718
+ movs r0, 0x4
+ strb r0, [r1]
+ b _080C173C
+ .align 2, 0
+_080C1718: .4byte gUnknown_020387E8
+_080C171C:
+ ldr r0, _080C1730
+ adds r1, r4, 0
+ adds r1, 0x13
+ ldrb r2, [r4, 0x2]
+ bl sub_80C08FC
+ ldr r1, _080C1734
+ movs r0, 0x6
+ strb r0, [r1]
+ b _080C173C
+ .align 2, 0
+_080C1730: .4byte gStringVar1
+_080C1734: .4byte gUnknown_020387E8
+_080C1738:
+ bl TVShowDone
+_080C173C:
+ ldr r0, _080C1750
+ lsls r1, r5, 2
+ adds r1, r0
+ ldr r0, [r1]
+ bl ShowFieldMessage
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C1750: .4byte gUnknown_083D15D0
+ thumb_func_end DoTVShowPokemonTodayFailedCapture
+
+ thumb_func_start DoTVShowPokemonFanClubLetter
+DoTVShowPokemonFanClubLetter: @ 80C1754
+ push {r4-r7,lr}
+ ldr r0, _080C1780
+ ldrh r1, [r0]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080C1784
+ adds r5, r0, r1
+ ldr r1, _080C1788
+ movs r0, 0
+ strh r0, [r1]
+ ldr r0, _080C178C
+ ldrb r7, [r0]
+ adds r6, r0, 0
+ cmp r7, 0x33
+ bls _080C1776
+ b _080C1960
+_080C1776:
+ lsls r0, r7, 2
+ ldr r1, _080C1790
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080C1780: .4byte gUnknown_0202E8CC
+_080C1784: .4byte gSaveBlock1 + 0x2738
+_080C1788: .4byte gScriptResult
+_080C178C: .4byte gUnknown_020387E8
+_080C1790: .4byte _080C1794
+ .align 2, 0
+_080C1794:
+ .4byte _080C1864
+ .4byte _080C1898
+ .4byte _080C18C4
+ .4byte _080C18CA
+ .4byte _080C18E2
+ .4byte _080C18E2
+ .4byte _080C18E2
+ .4byte _080C18F4
+ .4byte _080C1960
+ .4byte _080C1960
+ .4byte _080C1960
+ .4byte _080C1960
+ .4byte _080C1960
+ .4byte _080C1960
+ .4byte _080C1960
+ .4byte _080C1960
+ .4byte _080C1960
+ .4byte _080C1960
+ .4byte _080C1960
+ .4byte _080C1960
+ .4byte _080C1960
+ .4byte _080C1960
+ .4byte _080C1960
+ .4byte _080C1960
+ .4byte _080C1960
+ .4byte _080C1960
+ .4byte _080C1960
+ .4byte _080C1960
+ .4byte _080C1960
+ .4byte _080C1960
+ .4byte _080C1960
+ .4byte _080C1960
+ .4byte _080C1960
+ .4byte _080C1960
+ .4byte _080C1960
+ .4byte _080C1960
+ .4byte _080C1960
+ .4byte _080C1960
+ .4byte _080C1960
+ .4byte _080C1960
+ .4byte _080C1960
+ .4byte _080C1960
+ .4byte _080C1960
+ .4byte _080C1960
+ .4byte _080C1960
+ .4byte _080C1960
+ .4byte _080C1960
+ .4byte _080C1960
+ .4byte _080C1960
+ .4byte _080C1960
+ .4byte _080C1916
+ .4byte _080C193C
+_080C1864:
+ ldr r0, _080C1888
+ adds r1, r5, 0
+ adds r1, 0x10
+ ldrb r2, [r5, 0x18]
+ bl sub_80C08FC
+ ldr r0, _080C188C
+ ldrh r2, [r5, 0x2]
+ movs r1, 0xB
+ muls r1, r2
+ ldr r2, _080C1890
+ adds r1, r2
+ bl StringCopy
+ ldr r1, _080C1894
+ movs r0, 0x32
+ strb r0, [r1]
+ b _080C1960
+ .align 2, 0
+_080C1888: .4byte gStringVar1
+_080C188C: .4byte gStringVar2
+_080C1890: .4byte gSpeciesNames
+_080C1894: .4byte gUnknown_020387E8
+_080C1898:
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x3
+ ands r0, r1
+ adds r2, r0, 0x1
+ cmp r2, 0x1
+ bne _080C18B8
+ ldr r1, _080C18B4
+ movs r0, 0x2
+ strb r0, [r1]
+ b _080C1960
+ .align 2, 0
+_080C18B4: .4byte gUnknown_020387E8
+_080C18B8:
+ ldr r1, _080C18C0
+ adds r0, r2, 0x2
+ strb r0, [r1]
+ b _080C1960
+ .align 2, 0
+_080C18C0: .4byte gUnknown_020387E8
+_080C18C4:
+ movs r0, 0x33
+ strb r0, [r6]
+ b _080C1960
+_080C18CA:
+ bl Random
+ ldrb r4, [r6]
+ adds r4, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x3
+ bl __umodsi3
+ adds r0, r4
+ strb r0, [r6]
+ b _080C1960
+_080C18E2:
+ adds r0, r5, 0
+ bl sub_80BF79C
+ ldr r1, _080C18F0
+ movs r0, 0x7
+ strb r0, [r1]
+ b _080C1960
+ .align 2, 0
+_080C18F0: .4byte gUnknown_020387E8
+_080C18F4:
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x1F
+ bl __umodsi3
+ adds r0, 0x46
+ lsls r0, 16
+ lsrs r2, r0, 16
+ movs r0, 0x2
+ adds r1, r2, 0
+ bl sub_80BF088
+ bl TVShowDone
+ b _080C1960
+_080C1916:
+ ldr r4, _080C1934
+ adds r1, r5, 0x4
+ adds r0, r4, 0
+ movs r2, 0x2
+ movs r3, 0x2
+ bl ConvertEasyChatWordsToString
+ adds r0, r4, 0
+ bl ShowFieldMessage
+ ldr r1, _080C1938
+ movs r0, 0x1
+ strb r0, [r1]
+ b _080C196C
+ .align 2, 0
+_080C1934: .4byte gStringVar4
+_080C1938: .4byte gUnknown_020387E8
+_080C193C:
+ ldr r4, _080C1958
+ adds r1, r5, 0x4
+ adds r0, r4, 0
+ movs r2, 0x2
+ movs r3, 0x2
+ bl ConvertEasyChatWordsToString
+ adds r0, r4, 0
+ bl ShowFieldMessage
+ ldr r1, _080C195C
+ movs r0, 0x3
+ strb r0, [r1]
+ b _080C196C
+ .align 2, 0
+_080C1958: .4byte gStringVar4
+_080C195C: .4byte gUnknown_020387E8
+_080C1960:
+ ldr r0, _080C1974
+ lsls r1, r7, 2
+ adds r1, r0
+ ldr r0, [r1]
+ bl ShowFieldMessage
+_080C196C:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C1974: .4byte gUnknown_083D1470
+ thumb_func_end DoTVShowPokemonFanClubLetter
+
+ thumb_func_start DoTVShowRecentHappenings
+DoTVShowRecentHappenings: @ 80C1978
+ push {r4-r7,lr}
+ ldr r0, _080C19A4
+ ldrh r1, [r0]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080C19A8
+ adds r5, r0, r1
+ ldr r1, _080C19AC
+ movs r0, 0
+ strh r0, [r1]
+ ldr r0, _080C19B0
+ ldrb r6, [r0]
+ adds r7, r0, 0
+ cmp r6, 0x32
+ bls _080C199A
+ b _080C1AF0
+_080C199A:
+ lsls r0, r6, 2
+ ldr r1, _080C19B4
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080C19A4: .4byte gUnknown_0202E8CC
+_080C19A8: .4byte gSaveBlock1 + 0x2738
+_080C19AC: .4byte gScriptResult
+_080C19B0: .4byte gUnknown_020387E8
+_080C19B4: .4byte _080C19B8
+ .align 2, 0
+_080C19B8:
+ .4byte _080C1A84
+ .4byte _080C1AA8
+ .4byte _080C1AC0
+ .4byte _080C1AC0
+ .4byte _080C1AC0
+ .4byte _080C1AC6
+ .4byte _080C1AF0
+ .4byte _080C1AF0
+ .4byte _080C1AF0
+ .4byte _080C1AF0
+ .4byte _080C1AF0
+ .4byte _080C1AF0
+ .4byte _080C1AF0
+ .4byte _080C1AF0
+ .4byte _080C1AF0
+ .4byte _080C1AF0
+ .4byte _080C1AF0
+ .4byte _080C1AF0
+ .4byte _080C1AF0
+ .4byte _080C1AF0
+ .4byte _080C1AF0
+ .4byte _080C1AF0
+ .4byte _080C1AF0
+ .4byte _080C1AF0
+ .4byte _080C1AF0
+ .4byte _080C1AF0
+ .4byte _080C1AF0
+ .4byte _080C1AF0
+ .4byte _080C1AF0
+ .4byte _080C1AF0
+ .4byte _080C1AF0
+ .4byte _080C1AF0
+ .4byte _080C1AF0
+ .4byte _080C1AF0
+ .4byte _080C1AF0
+ .4byte _080C1AF0
+ .4byte _080C1AF0
+ .4byte _080C1AF0
+ .4byte _080C1AF0
+ .4byte _080C1AF0
+ .4byte _080C1AF0
+ .4byte _080C1AF0
+ .4byte _080C1AF0
+ .4byte _080C1AF0
+ .4byte _080C1AF0
+ .4byte _080C1AF0
+ .4byte _080C1AF0
+ .4byte _080C1AF0
+ .4byte _080C1AF0
+ .4byte _080C1AF0
+ .4byte _080C1ACC
+_080C1A84:
+ ldr r0, _080C1AA0
+ adds r1, r5, 0
+ adds r1, 0x10
+ ldrb r2, [r5, 0x18]
+ bl sub_80C08FC
+ adds r0, r5, 0
+ bl sub_80BF79C
+ ldr r1, _080C1AA4
+ movs r0, 0x32
+ strb r0, [r1]
+ b _080C1AF0
+ .align 2, 0
+_080C1AA0: .4byte gStringVar1
+_080C1AA4: .4byte gUnknown_020387E8
+_080C1AA8:
+ bl Random
+ ldrb r4, [r7]
+ adds r4, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x3
+ bl __umodsi3
+ adds r0, r4
+ strb r0, [r7]
+ b _080C1AF0
+_080C1AC0:
+ movs r0, 0x5
+ strb r0, [r7]
+ b _080C1AF0
+_080C1AC6:
+ bl TVShowDone
+ b _080C1AF0
+_080C1ACC:
+ ldr r4, _080C1AE8
+ adds r1, r5, 0x4
+ adds r0, r4, 0
+ movs r2, 0x2
+ movs r3, 0x2
+ bl ConvertEasyChatWordsToString
+ adds r0, r4, 0
+ bl ShowFieldMessage
+ ldr r1, _080C1AEC
+ movs r0, 0x1
+ strb r0, [r1]
+ b _080C1AFC
+ .align 2, 0
+_080C1AE8: .4byte gStringVar4
+_080C1AEC: .4byte gUnknown_020387E8
+_080C1AF0:
+ ldr r0, _080C1B04
+ lsls r1, r6, 2
+ adds r1, r0
+ ldr r0, [r1]
+ bl ShowFieldMessage
+_080C1AFC:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C1B04: .4byte gUnknown_083D1490
+ thumb_func_end DoTVShowRecentHappenings
+
+ thumb_func_start DoTVShowPokemonFanClubOpinions
+DoTVShowPokemonFanClubOpinions: @ 80C1B08
+ push {r4-r6,lr}
+ ldr r0, _080C1B30
+ ldrh r1, [r0]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080C1B34
+ adds r4, r0, r1
+ ldr r1, _080C1B38
+ movs r0, 0
+ strh r0, [r1]
+ ldr r6, _080C1B3C
+ ldrb r5, [r6]
+ cmp r5, 0x3
+ bgt _080C1B40
+ cmp r5, 0x1
+ bge _080C1B88
+ cmp r5, 0
+ beq _080C1B46
+ b _080C1BD6
+ .align 2, 0
+_080C1B30: .4byte gUnknown_0202E8CC
+_080C1B34: .4byte gSaveBlock1 + 0x2738
+_080C1B38: .4byte gScriptResult
+_080C1B3C: .4byte gUnknown_020387E8
+_080C1B40:
+ cmp r5, 0x4
+ beq _080C1BC0
+ b _080C1BD6
+_080C1B46:
+ ldr r0, _080C1B78
+ adds r1, r4, 0x5
+ ldrb r2, [r4, 0xD]
+ bl sub_80C08FC
+ ldr r0, _080C1B7C
+ ldrh r2, [r4, 0x2]
+ movs r1, 0xB
+ muls r1, r2
+ ldr r2, _080C1B80
+ adds r1, r2
+ bl StringCopy
+ ldr r0, _080C1B84
+ adds r1, r4, 0
+ adds r1, 0x10
+ ldrb r2, [r4, 0xE]
+ bl sub_80C08FC
+ ldrb r0, [r4, 0x4]
+ lsrs r0, 4
+ adds r0, 0x1
+ strb r0, [r6]
+ b _080C1BD6
+ .align 2, 0
+_080C1B78: .4byte gStringVar1
+_080C1B7C: .4byte gStringVar2
+_080C1B80: .4byte gSpeciesNames
+_080C1B84: .4byte gStringVar3
+_080C1B88:
+ ldr r0, _080C1BB0
+ adds r1, r4, 0x5
+ ldrb r2, [r4, 0xD]
+ bl sub_80C08FC
+ ldr r0, _080C1BB4
+ ldrh r2, [r4, 0x2]
+ movs r1, 0xB
+ muls r1, r2
+ ldr r2, _080C1BB8
+ adds r1, r2
+ bl StringCopy
+ ldr r0, _080C1BBC
+ ldrh r1, [r4, 0x1C]
+ bl sub_80EB3FC
+ movs r0, 0x4
+ strb r0, [r6]
+ b _080C1BD6
+ .align 2, 0
+_080C1BB0: .4byte gStringVar1
+_080C1BB4: .4byte gStringVar2
+_080C1BB8: .4byte gSpeciesNames
+_080C1BBC: .4byte gStringVar3
+_080C1BC0:
+ ldr r0, _080C1BE8
+ adds r1, r4, 0x5
+ ldrb r2, [r4, 0xD]
+ bl sub_80C08FC
+ ldr r0, _080C1BEC
+ ldrh r1, [r4, 0x1E]
+ bl sub_80EB3FC
+ bl TVShowDone
+_080C1BD6:
+ ldr r0, _080C1BF0
+ lsls r1, r5, 2
+ adds r1, r0
+ ldr r0, [r1]
+ bl ShowFieldMessage
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C1BE8: .4byte gStringVar1
+_080C1BEC: .4byte gStringVar3
+_080C1BF0: .4byte gUnknown_083D14A8
+ thumb_func_end DoTVShowPokemonFanClubOpinions
+
+ thumb_func_start nullsub_22
+nullsub_22: @ 80C1BF4
+ bx lr
+ thumb_func_end nullsub_22
+
+ thumb_func_start DoTVShowPokemonNewsMassOutbreak
+DoTVShowPokemonNewsMassOutbreak: @ 80C1BF8
+ push {r4,lr}
+ ldr r0, _080C1C40
+ ldrh r0, [r0]
+ lsls r4, r0, 3
+ adds r4, r0
+ lsls r4, 2
+ ldr r0, _080C1C44
+ adds r4, r0
+ ldr r0, _080C1C48
+ ldrb r1, [r4, 0x10]
+ movs r2, 0
+ bl sub_80FBFB4
+ ldr r0, _080C1C4C
+ ldrh r2, [r4, 0xC]
+ movs r1, 0xB
+ muls r1, r2
+ ldr r2, _080C1C50
+ adds r1, r2
+ bl StringCopy
+ bl TVShowDone
+ bl StartMassOutbreak
+ ldr r1, _080C1C54
+ ldr r0, _080C1C58
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ bl ShowFieldMessage
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C1C40: .4byte gUnknown_0202E8CC
+_080C1C44: .4byte gSaveBlock1 + 0x2738
+_080C1C48: .4byte gStringVar1
+_080C1C4C: .4byte gStringVar2
+_080C1C50: .4byte gSpeciesNames
+_080C1C54: .4byte gUnknown_083D14BC
+_080C1C58: .4byte gUnknown_020387E8
+ thumb_func_end DoTVShowPokemonNewsMassOutbreak
+
+ thumb_func_start DoTVShowInSearchOfTrainers
+DoTVShowInSearchOfTrainers: @ 80C1C5C
+ push {r4-r7,lr}
+ ldr r0, _080C1C7C
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, _080C1C80
+ ldrb r7, [r0]
+ adds r2, r0, 0
+ cmp r7, 0x8
+ bls _080C1C70
+ b _080C1DF8
+_080C1C70:
+ lsls r0, r7, 2
+ ldr r1, _080C1C84
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080C1C7C: .4byte gScriptResult
+_080C1C80: .4byte gUnknown_020387E8
+_080C1C84: .4byte _080C1C88
+ .align 2, 0
+_080C1C88:
+ .4byte _080C1CAC
+ .4byte _080C1CF0
+ .4byte _080C1CF6
+ .4byte _080C1D44
+ .4byte _080C1DB0
+ .4byte _080C1DB0
+ .4byte _080C1DB0
+ .4byte _080C1DB0
+ .4byte _080C1DB6
+_080C1CAC:
+ ldr r0, _080C1CD0
+ ldr r4, _080C1CD4
+ ldr r2, _080C1CD8
+ adds r1, r4, r2
+ ldrb r1, [r1]
+ movs r2, 0
+ bl sub_80FBFB4
+ ldr r0, _080C1CDC
+ adds r4, r0
+ ldrb r0, [r4]
+ cmp r0, 0x1
+ bls _080C1CE4
+ ldr r1, _080C1CE0
+ movs r0, 0x1
+ strb r0, [r1]
+ b _080C1DF8
+ .align 2, 0
+_080C1CD0: .4byte gStringVar1
+_080C1CD4: .4byte gSaveBlock1
+_080C1CD8: .4byte 0x00002b18
+_080C1CDC: .4byte 0x00002b19
+_080C1CE0: .4byte gUnknown_020387E8
+_080C1CE4:
+ ldr r1, _080C1CEC
+ movs r0, 0x2
+ strb r0, [r1]
+ b _080C1DF8
+ .align 2, 0
+_080C1CEC: .4byte gUnknown_020387E8
+_080C1CF0:
+ movs r0, 0x2
+ strb r0, [r2]
+ b _080C1DF8
+_080C1CF6:
+ ldr r0, _080C1D0C
+ ldr r1, _080C1D10
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _080C1D14
+ movs r0, 0x4
+ strb r0, [r2]
+ b _080C1DF8
+ .align 2, 0
+_080C1D0C: .4byte gSaveBlock1
+_080C1D10: .4byte 0x00002b1a
+_080C1D14:
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ beq _080C1D22
+ movs r0, 0x5
+ strb r0, [r2]
+ b _080C1DF8
+_080C1D22:
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _080C1D30
+ movs r0, 0x6
+ strb r0, [r2]
+ b _080C1DF8
+_080C1D30:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080C1D3E
+ movs r0, 0x7
+ strb r0, [r2]
+ b _080C1DF8
+_080C1D3E:
+ movs r0, 0x3
+ strb r0, [r2]
+ b _080C1DF8
+_080C1D44:
+ ldr r0, _080C1D88
+ ldr r4, _080C1D8C
+ ldr r2, _080C1D90
+ adds r1, r4, r2
+ ldrh r1, [r1]
+ movs r6, 0xB
+ muls r1, r6
+ ldr r5, _080C1D94
+ adds r1, r5
+ bl StringCopy
+ ldr r0, _080C1D98
+ ldr r2, _080C1D9C
+ adds r1, r4, r2
+ ldrh r2, [r1]
+ movs r1, 0xD
+ muls r1, r2
+ ldr r2, _080C1DA0
+ adds r1, r2
+ bl StringCopy
+ ldr r0, _080C1DA4
+ ldr r1, _080C1DA8
+ adds r4, r1
+ ldrh r1, [r4]
+ muls r1, r6
+ adds r1, r5
+ bl StringCopy
+ ldr r1, _080C1DAC
+ movs r0, 0x8
+ strb r0, [r1]
+ b _080C1DF8
+ .align 2, 0
+_080C1D88: .4byte gStringVar1
+_080C1D8C: .4byte gSaveBlock1
+_080C1D90: .4byte 0x00002b10
+_080C1D94: .4byte gSpeciesNames
+_080C1D98: .4byte gStringVar2
+_080C1D9C: .4byte 0x00002b14
+_080C1DA0: .4byte gMoveNames
+_080C1DA4: .4byte gStringVar3
+_080C1DA8: .4byte 0x00002b12
+_080C1DAC: .4byte gUnknown_020387E8
+_080C1DB0:
+ movs r0, 0x8
+ strb r0, [r2]
+ b _080C1DF8
+_080C1DB6:
+ ldr r0, _080C1E0C
+ ldr r4, _080C1E10
+ ldr r2, _080C1E14
+ adds r1, r4, r2
+ ldrh r1, [r1]
+ bl sub_80EB3FC
+ ldr r0, _080C1E18
+ ldr r2, _080C1E1C
+ adds r1, r4, r2
+ ldrh r1, [r1]
+ movs r6, 0xB
+ muls r1, r6
+ ldr r5, _080C1E20
+ adds r1, r5
+ bl StringCopy
+ ldr r0, _080C1E24
+ ldr r1, _080C1E28
+ adds r4, r1
+ ldrh r1, [r4]
+ muls r1, r6
+ adds r1, r5
+ bl StringCopy
+ ldr r1, _080C1E2C
+ movs r0, 0x1
+ strh r0, [r1]
+ ldr r1, _080C1E30
+ movs r0, 0
+ strb r0, [r1]
+ bl TakeTVShowInSearchOfTrainersOffTheAir
+_080C1DF8:
+ ldr r0, _080C1E34
+ lsls r1, r7, 2
+ adds r1, r0
+ ldr r0, [r1]
+ bl ShowFieldMessage
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C1E0C: .4byte gStringVar1
+_080C1E10: .4byte gSaveBlock1
+_080C1E14: .4byte 0x00002b16
+_080C1E18: .4byte gStringVar2
+_080C1E1C: .4byte 0x00002b10
+_080C1E20: .4byte gSpeciesNames
+_080C1E24: .4byte gStringVar3
+_080C1E28: .4byte 0x00002b12
+_080C1E2C: .4byte gScriptResult
+_080C1E30: .4byte gUnknown_020387E8
+_080C1E34: .4byte gUnknown_083D1600
+ thumb_func_end DoTVShowInSearchOfTrainers
+
+ thumb_func_start DoTVShowPokemonAngler
+DoTVShowPokemonAngler: @ 80C1E38
+ push {r4,r5,lr}
+ ldr r0, _080C1E5C
+ ldrh r1, [r0]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080C1E60
+ adds r4, r0, r1
+ ldr r0, _080C1E64
+ movs r1, 0
+ strh r1, [r0]
+ ldrb r0, [r4, 0x2]
+ ldrb r2, [r4, 0x3]
+ cmp r0, r2
+ bcs _080C1E6C
+ ldr r0, _080C1E68
+ strb r1, [r0]
+ b _080C1E74
+ .align 2, 0
+_080C1E5C: .4byte gUnknown_0202E8CC
+_080C1E60: .4byte gSaveBlock1 + 0x2738
+_080C1E64: .4byte gScriptResult
+_080C1E68: .4byte gUnknown_020387E8
+_080C1E6C:
+ ldr r1, _080C1E80
+ movs r0, 0x1
+ strb r0, [r1]
+ adds r0, r1, 0
+_080C1E74:
+ ldrb r5, [r0]
+ cmp r5, 0
+ beq _080C1E84
+ cmp r5, 0x1
+ beq _080C1EBC
+ b _080C1EE4
+ .align 2, 0
+_080C1E80: .4byte gUnknown_020387E8
+_080C1E84:
+ ldr r0, _080C1EB0
+ adds r1, r4, 0
+ adds r1, 0x13
+ ldrb r2, [r4, 0x6]
+ bl sub_80C08FC
+ ldr r0, _080C1EB4
+ ldrh r2, [r4, 0x4]
+ movs r1, 0xB
+ muls r1, r2
+ ldr r2, _080C1EB8
+ adds r1, r2
+ bl StringCopy
+ ldrb r1, [r4, 0x3]
+ movs r0, 0x2
+ bl sub_80BF088
+ bl TVShowDone
+ b _080C1EE4
+ .align 2, 0
+_080C1EB0: .4byte gStringVar1
+_080C1EB4: .4byte gStringVar2
+_080C1EB8: .4byte gSpeciesNames
+_080C1EBC:
+ ldr r0, _080C1EF8
+ adds r1, r4, 0
+ adds r1, 0x13
+ ldrb r2, [r4, 0x6]
+ bl sub_80C08FC
+ ldr r0, _080C1EFC
+ ldrh r2, [r4, 0x4]
+ movs r1, 0xB
+ muls r1, r2
+ ldr r2, _080C1F00
+ adds r1, r2
+ bl StringCopy
+ ldrb r1, [r4, 0x2]
+ movs r0, 0x2
+ bl sub_80BF088
+ bl TVShowDone
+_080C1EE4:
+ ldr r0, _080C1F04
+ lsls r1, r5, 2
+ adds r1, r0
+ ldr r0, [r1]
+ bl ShowFieldMessage
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C1EF8: .4byte gStringVar1
+_080C1EFC: .4byte gStringVar2
+_080C1F00: .4byte gSpeciesNames
+_080C1F04: .4byte gUnknown_083D15EC
+ thumb_func_end DoTVShowPokemonAngler
+
+ thumb_func_start DoTVShowTheWorldOfMasters
+DoTVShowTheWorldOfMasters: @ 80C1F08
+ push {r4-r6,lr}
+ ldr r0, _080C1F30
+ ldrh r1, [r0]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080C1F34
+ adds r4, r0, r1
+ ldr r1, _080C1F38
+ movs r0, 0
+ strh r0, [r1]
+ ldr r6, _080C1F3C
+ ldrb r5, [r6]
+ cmp r5, 0x1
+ beq _080C1F6C
+ cmp r5, 0x1
+ bgt _080C1F40
+ cmp r5, 0
+ beq _080C1F46
+ b _080C1FB6
+ .align 2, 0
+_080C1F30: .4byte gUnknown_0202E8CC
+_080C1F34: .4byte gSaveBlock1 + 0x2738
+_080C1F38: .4byte gScriptResult
+_080C1F3C: .4byte gUnknown_020387E8
+_080C1F40:
+ cmp r5, 0x2
+ beq _080C1F8C
+ b _080C1FB6
+_080C1F46:
+ ldr r0, _080C1F68
+ adds r1, r4, 0
+ adds r1, 0x13
+ ldrb r2, [r4, 0xB]
+ bl sub_80C08FC
+ ldrh r1, [r4, 0x6]
+ movs r0, 0x1
+ bl sub_80BF088
+ ldrh r1, [r4, 0x2]
+ movs r0, 0x2
+ bl sub_80BF088
+ movs r0, 0x1
+ strb r0, [r6]
+ b _080C1FB6
+ .align 2, 0
+_080C1F68: .4byte gStringVar1
+_080C1F6C:
+ ldr r0, _080C1F84
+ ldrh r2, [r4, 0x8]
+ movs r1, 0xB
+ muls r1, r2
+ ldr r2, _080C1F88
+ adds r1, r2
+ bl StringCopy
+ movs r0, 0x2
+ strb r0, [r6]
+ b _080C1FB6
+ .align 2, 0
+_080C1F84: .4byte gStringVar1
+_080C1F88: .4byte gSpeciesNames
+_080C1F8C:
+ ldr r0, _080C1FC8
+ adds r1, r4, 0
+ adds r1, 0x13
+ ldrb r2, [r4, 0xB]
+ bl sub_80C08FC
+ ldr r0, _080C1FCC
+ ldrb r1, [r4, 0xA]
+ movs r2, 0
+ bl sub_80FBFB4
+ ldr r0, _080C1FD0
+ ldrh r2, [r4, 0x4]
+ movs r1, 0xB
+ muls r1, r2
+ ldr r2, _080C1FD4
+ adds r1, r2
+ bl StringCopy
+ bl TVShowDone
+_080C1FB6:
+ ldr r0, _080C1FD8
+ lsls r1, r5, 2
+ adds r1, r0
+ ldr r0, [r1]
+ bl ShowFieldMessage
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C1FC8: .4byte gStringVar1
+_080C1FCC: .4byte gStringVar2
+_080C1FD0: .4byte gStringVar3
+_080C1FD4: .4byte gSpeciesNames
+_080C1FD8: .4byte gUnknown_083D15F4
+ thumb_func_end DoTVShowTheWorldOfMasters
+
+ thumb_func_start TVShowDone
+TVShowDone: @ 80C1FDC
+ ldr r1, _080C2000
+ movs r0, 0x1
+ strh r0, [r1]
+ ldr r1, _080C2004
+ movs r0, 0
+ strb r0, [r1]
+ ldr r2, _080C2008
+ ldr r0, _080C200C
+ ldrh r1, [r0]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldr r1, _080C2010
+ adds r0, r1
+ movs r1, 0
+ strb r1, [r0]
+ bx lr
+ .align 2, 0
+_080C2000: .4byte gScriptResult
+_080C2004: .4byte gUnknown_020387E8
+_080C2008: .4byte gSaveBlock1
+_080C200C: .4byte gUnknown_0202E8CC
+_080C2010: .4byte 0x00002739
+ thumb_func_end TVShowDone
+
+ thumb_func_start sub_80C2014
+sub_80C2014: @ 80C2014
+ ldr r1, _080C201C
+ movs r0, 0
+ strb r0, [r1]
+ bx lr
+ .align 2, 0
+_080C201C: .4byte gUnknown_020387E8
+ thumb_func_end sub_80C2014
+
+ thumb_func_start sub_80C2020
+sub_80C2020: @ 80C2020
+ push {r4,r5,lr}
+ movs r5, 0x80
+ lsls r5, 19
+ movs r0, 0x40
+ strh r0, [r5]
+ ldr r4, _080C20F0
+ adds r0, r4, 0
+ bl SetUpWindowConfig
+ ldr r0, _080C20F4
+ adds r1, r4, 0
+ bl InitWindowFromConfig
+ ldr r1, _080C20F8
+ movs r2, 0xF8
+ lsls r2, 6
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r3, _080C20FC
+ adds r0, r3, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r2, _080C2100
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r3, _080C2104
+ adds r0, r3, 0
+ strh r0, [r1]
+ ldr r0, _080C2108
+ movs r2, 0
+ strh r2, [r0]
+ adds r1, 0x3A
+ ldr r3, _080C210C
+ adds r0, r3, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ subs r3, 0x11
+ adds r0, r3, 0
+ strh r0, [r1]
+ ldr r0, _080C2110
+ strh r2, [r0]
+ adds r0, 0x4
+ strh r2, [r0]
+ subs r0, 0x2
+ strh r2, [r0]
+ adds r0, 0x4
+ strh r2, [r0]
+ adds r0, 0xA
+ strh r2, [r0]
+ adds r0, 0x2
+ strh r2, [r0]
+ adds r0, 0x2
+ strh r2, [r0]
+ subs r0, 0x44
+ strh r2, [r0]
+ adds r0, 0x2
+ strh r2, [r0]
+ adds r0, 0x2
+ strh r2, [r0]
+ adds r0, 0x2
+ strh r2, [r0]
+ adds r0, 0x2
+ strh r2, [r0]
+ adds r0, 0x2
+ strh r2, [r0]
+ adds r0, 0x2
+ strh r2, [r0]
+ adds r0, 0x2
+ strh r2, [r0]
+ ldrh r0, [r5]
+ movs r3, 0xFE
+ lsls r3, 7
+ adds r1, r3, 0
+ orrs r0, r1
+ strh r0, [r5]
+ ldr r0, _080C2114
+ strh r2, [r0]
+ ldr r0, _080C2118
+ strh r2, [r0]
+ ldr r0, _080C211C
+ strh r2, [r0]
+ ldr r0, _080C2120
+ strh r2, [r0]
+ ldr r0, _080C2124
+ strh r2, [r0]
+ ldr r0, _080C2128
+ strh r2, [r0]
+ ldr r0, _080C212C
+ strh r2, [r0]
+ ldr r0, _080C2130
+ strh r2, [r0]
+ ldr r0, _080C2134
+ strh r2, [r0]
+ ldr r0, _080C2138
+ strh r2, [r0]
+ ldr r0, _080C213C
+ strh r2, [r0]
+ ldr r0, _080C2140
+ strh r2, [r0]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C20F0: .4byte gWindowConfig_81E6FA0
+_080C20F4: .4byte gMenuWindow
+_080C20F8: .4byte REG_BG0CNT
+_080C20FC: .4byte 0x00001803
+_080C2100: .4byte 0x00001c03
+_080C2104: .4byte 0x00003a03
+_080C2108: .4byte REG_MOSAIC
+_080C210C: .4byte 0x00003f3f
+_080C2110: .4byte REG_WIN0H
+_080C2114: .4byte gUnknown_030042A4
+_080C2118: .4byte gUnknown_030042A0
+_080C211C: .4byte gUnknown_030042C0
+_080C2120: .4byte gUnknown_030041B4
+_080C2124: .4byte gUnknown_03004288
+_080C2128: .4byte gUnknown_03004280
+_080C212C: .4byte gUnknown_030041B0
+_080C2130: .4byte gUnknown_030041B8
+_080C2134: .4byte gUnknown_030042C4
+_080C2138: .4byte gUnknown_03004240
+_080C213C: .4byte gUnknown_03004200
+_080C2140: .4byte gUnknown_03004244
+ thumb_func_end sub_80C2020
+
+ thumb_func_start sub_80C2144
+sub_80C2144: @ 80C2144
+ push {r4-r7,lr}
+ sub sp, 0x4
+ movs r2, 0xC0
+ lsls r2, 19
+ movs r3, 0xC0
+ lsls r3, 9
+ ldr r0, _080C220C
+ mov r12, r0
+ movs r5, 0
+ ldr r1, _080C2210
+ movs r4, 0x80
+ lsls r4, 5
+ ldr r6, _080C2214
+ movs r7, 0x85
+ lsls r7, 24
+_080C2162:
+ str r5, [sp]
+ mov r0, sp
+ str r0, [r1]
+ str r2, [r1, 0x4]
+ str r6, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ adds r2, r4
+ subs r3, r4
+ cmp r3, r4
+ bhi _080C2162
+ str r5, [sp]
+ mov r0, sp
+ str r0, [r1]
+ str r2, [r1, 0x4]
+ lsrs r0, r3, 2
+ orrs r0, r7
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ movs r1, 0xC0
+ lsls r1, 19
+ mov r0, r12
+ bl LZDecompressVram
+ ldr r0, _080C2218
+ ldr r1, _080C221C
+ bl LZDecompressVram
+ ldr r0, _080C2220
+ ldr r1, _080C2224
+ bl LZDecompressVram
+ ldr r0, _080C2228
+ ldr r1, _080C222C
+ bl LZDecompressVram
+ bl sub_80C37E4
+ ldr r0, _080C2230
+ movs r2, 0x80
+ lsls r2, 2
+ movs r1, 0
+ bl LoadCompressedPalette
+ ldr r0, _080C2234
+ bl LoadFontDefaultPalette
+ movs r6, 0
+_080C21C0:
+ lsls r5, r6, 24
+ lsrs r5, 24
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl sub_80C3990
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl sub_80C39E4
+ movs r5, 0
+ lsls r1, r6, 1
+ adds r2, r6, 0x1
+ mov r12, r2
+ lsls r4, 24
+ asrs r7, r4, 24
+ adds r1, r6
+ lsls r1, 6
+ lsls r4, r0, 24
+_080C21EC:
+ ldr r6, _080C2238
+ cmp r5, r7
+ bge _080C21F4
+ adds r6, 0x2
+_080C21F4:
+ asrs r2, r4, 24
+ adds r0, r2, 0
+ cmp r2, 0
+ bge _080C21FE
+ negs r0, r2
+_080C21FE:
+ cmp r5, r0
+ bge _080C2240
+ ldr r3, _080C223C
+ cmp r2, 0
+ bge _080C2242
+ adds r3, 0x2
+ b _080C2242
+ .align 2, 0
+_080C220C: .4byte gUnknown_08D1977C
+_080C2210: .4byte 0x040000d4
+_080C2214: .4byte 0x85000400
+_080C2218: .4byte gUnknown_08D1A490
+_080C221C: .4byte 0x0600d000
+_080C2220: .4byte gUnknown_08D1A364
+_080C2224: .4byte 0x0600e000
+_080C2228: .4byte gUnknown_08D1A250
+_080C222C: .4byte 0x0600f000
+_080C2230: .4byte gUnknown_08D1A618
+_080C2234: .4byte gWindowConfig_81E6FA0
+_080C2238: .4byte 0x000060b2
+_080C223C: .4byte 0x000060a4
+_080C2240:
+ ldr r3, _080C2264
+_080C2242:
+ ldr r2, _080C2268
+ adds r0, r1, r2
+ strh r6, [r0]
+ adds r2, 0x40
+ adds r0, r1, r2
+ strh r3, [r0]
+ adds r1, 0x2
+ adds r5, 0x1
+ cmp r5, 0x9
+ ble _080C21EC
+ mov r6, r12
+ cmp r6, 0x3
+ ble _080C21C0
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C2264: .4byte 0x000060a2
+_080C2268: .4byte 0x0600c166
+ thumb_func_end sub_80C2144
+
+ thumb_func_start sub_80C226C
+sub_80C226C: @ 80C226C
+ push {r4-r7,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, _080C2288
+ ldrb r0, [r0]
+ cmp r5, r0
+ bne _080C2294
+ ldr r0, _080C228C
+ ldr r1, _080C2290
+ bl StringCopy
+ adds r2, r0, 0
+ b _080C2296
+ .align 2, 0
+_080C2288: .4byte gUnknown_02038695
+_080C228C: .4byte gUnknown_020238CC
+_080C2290: .4byte gUnknown_083D17DC
+_080C2294:
+ ldr r2, _080C22E8
+_080C2296:
+ movs r4, 0xFC
+ strb r4, [r2]
+ movs r0, 0x6
+ strb r0, [r2, 0x1]
+ movs r0, 0x4
+ strb r0, [r2, 0x2]
+ adds r2, 0x3
+ lsls r6, r5, 6
+ ldr r7, _080C22EC
+ adds r1, r6, r7
+ adds r0, r2, 0
+ bl StringCopy
+ adds r2, r0, 0
+ strb r4, [r2]
+ movs r0, 0x13
+ strb r0, [r2, 0x1]
+ movs r0, 0x32
+ strb r0, [r2, 0x2]
+ adds r2, 0x3
+ ldr r1, _080C22F0
+ adds r0, r2, 0
+ bl StringCopy
+ adds r2, r0, 0
+ ldr r0, _080C22F4
+ ldrb r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080C22FC
+ lsls r4, r5, 3
+ subs r1, r4, r5
+ lsls r1, 2
+ ldr r0, _080C22F8
+ adds r1, r0
+ adds r0, r2, 0
+ bl StringCopy
+ b _080C230A
+ .align 2, 0
+_080C22E8: .4byte gUnknown_020238CC
+_080C22EC: .4byte gUnknown_02038572
+_080C22F0: .4byte gUnknown_083D17E0
+_080C22F4: .4byte gUnknown_0203869A
+_080C22F8: .4byte gLinkPlayers + 0x8
+_080C22FC:
+ adds r1, r7, 0
+ adds r1, 0xB
+ adds r1, r6, r1
+ adds r0, r2, 0
+ bl StringCopy
+ lsls r4, r5, 3
+_080C230A:
+ ldr r0, _080C2334
+ ldr r1, _080C2338
+ adds r2, r4, r5
+ lsls r2, 18
+ ldr r3, _080C233C
+ adds r2, r3
+ lsrs r2, 16
+ lsls r3, r5, 1
+ adds r3, r5
+ adds r3, 0x4
+ lsls r3, 24
+ lsrs r3, 24
+ str r3, [sp]
+ movs r3, 0x7
+ bl sub_8003460
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C2334: .4byte gMenuWindow
+_080C2338: .4byte gUnknown_020238CC
+_080C233C: .4byte 0x03020000
+ thumb_func_end sub_80C226C
+
+ thumb_func_start sub_80C2340
+sub_80C2340: @ 80C2340
+ push {r4,lr}
+ movs r4, 0
+_080C2344:
+ lsls r0, r4, 24
+ lsrs r0, 24
+ bl sub_80C226C
+ adds r4, 0x1
+ cmp r4, 0x3
+ ble _080C2344
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80C2340
+
+ thumb_func_start sub_80C2358
+sub_80C2358: @ 80C2358
+ push {r4,r5,lr}
+ sub sp, 0x4
+ ldr r5, _080C240C
+ ldrb r0, [r5, 0x8]
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r5, 0x8]
+ movs r0, 0
+ bl SetVBlankCallback
+ bl sub_80C2020
+ bl dp12_8087EA4
+ bl ResetPaletteFade
+ bl ResetSpriteData
+ bl ResetTasks
+ bl FreeAllSpritePalettes
+ bl sub_80C2144
+ bl sub_80C310C
+ movs r0, 0
+ movs r1, 0x1
+ bl sub_80C30D4
+ bl sub_80C2340
+ ldr r4, _080C2410
+ adds r0, r4, 0
+ movs r1, 0
+ movs r2, 0x18
+ bl memset
+ adds r0, r4, 0
+ adds r0, 0x18
+ movs r1, 0
+ movs r2, 0x50
+ bl memset
+ bl sub_80C33DC
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ ldrb r1, [r5, 0x8]
+ movs r0, 0x7F
+ ands r0, r1
+ strb r0, [r5, 0x8]
+ ldr r0, _080C2414
+ movs r1, 0x5
+ bl CreateTask
+ strb r0, [r4, 0x2]
+ ldr r0, _080C2418
+ bl SetMainCallback2
+ ldr r1, _080C241C
+ movs r0, 0xF0
+ strh r0, [r1]
+ ldr r1, _080C2420
+ ldr r2, _080C2424
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r0, _080C2428
+ movs r1, 0x14
+ bl CreateTask
+ bl sub_80C3F00
+ movs r0, 0xDF
+ lsls r0, 1
+ bl PlayBGM
+ ldr r0, _080C242C
+ bl SetVBlankCallback
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C240C: .4byte gPaletteFade
+_080C2410: .4byte 0x02018000
+_080C2414: .4byte sub_80C24F4
+_080C2418: .4byte sub_80C2430
+_080C241C: .4byte gUnknown_03004200
+_080C2420: .4byte gUnknown_03004244
+_080C2424: .4byte 0x000080a0
+_080C2428: .4byte sub_80C2F28
+_080C242C: .4byte sub_80C2448
+ thumb_func_end sub_80C2358
+
+ thumb_func_start sub_80C2430
+sub_80C2430: @ 80C2430
+ push {lr}
+ bl AnimateSprites
+ bl BuildOamBuffer
+ bl RunTasks
+ bl UpdatePaletteFade
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80C2430
+
+ thumb_func_start sub_80C2448
+sub_80C2448: @ 80C2448
+ push {lr}
+ ldr r1, _080C24C0
+ ldr r0, _080C24C4
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r0, _080C24C8
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r0, _080C24CC
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r0, _080C24D0
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r0, _080C24D4
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r0, _080C24D8
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r0, _080C24DC
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r0, _080C24E0
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, 0x22
+ ldr r0, _080C24E4
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, 0x4
+ ldr r0, _080C24E8
+ ldrh r0, [r0]
+ strh r0, [r1]
+ subs r1, 0x2
+ ldr r0, _080C24EC
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, 0x4
+ ldr r0, _080C24F0
+ ldrh r0, [r0]
+ strh r0, [r1]
+ bl LoadOam
+ bl ProcessSpriteCopyRequests
+ bl TransferPlttBuffer
+ bl sub_8089668
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C24C0: .4byte REG_BG0HOFS
+_080C24C4: .4byte gUnknown_030042A4
+_080C24C8: .4byte gUnknown_030042A0
+_080C24CC: .4byte gUnknown_030042C0
+_080C24D0: .4byte gUnknown_030041B4
+_080C24D4: .4byte gUnknown_03004288
+_080C24D8: .4byte gUnknown_03004280
+_080C24DC: .4byte gUnknown_030041B0
+_080C24E0: .4byte gUnknown_030041B8
+_080C24E4: .4byte gUnknown_030042C4
+_080C24E8: .4byte gUnknown_03004240
+_080C24EC: .4byte gUnknown_03004200
+_080C24F0: .4byte gUnknown_03004244
+ thumb_func_end sub_80C2448
+
+ thumb_func_start sub_80C24F4
+sub_80C24F4: @ 80C24F4
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r2, r4, 0
+ ldr r0, _080C252C
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080C254E
+ ldr r0, _080C2530
+ ldrb r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080C2540
+ ldr r0, _080C2534
+ bl sub_80C3698
+ ldr r1, _080C2538
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080C253C
+ str r1, [r0]
+ b _080C254E
+ .align 2, 0
+_080C252C: .4byte gPaletteFade
+_080C2530: .4byte gUnknown_0203869A
+_080C2534: .4byte gOtherText_LinkStandby
+_080C2538: .4byte gTasks
+_080C253C: .4byte sub_80C255C
+_080C2540:
+ ldr r0, _080C2554
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _080C2558
+ str r0, [r1]
+_080C254E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C2554: .4byte gTasks
+_080C2558: .4byte sub_80C2600
+ thumb_func_end sub_80C24F4
+
+ thumb_func_start sub_80C255C
+sub_80C255C: @ 80C255C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _080C2594
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080C258C
+ bl GetLinkPlayerCount
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ bne _080C258C
+ ldr r0, _080C2598
+ movs r1, 0
+ bl CreateTask
+ ldr r1, _080C259C
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080C25A0
+ str r1, [r0]
+_080C258C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C2594: .4byte gReceivedRemoteLinkPlayers
+_080C2598: .4byte sub_80C25A4
+_080C259C: .4byte gTasks
+_080C25A0: .4byte TaskDummy
+ thumb_func_end sub_80C255C
+
+ thumb_func_start sub_80C25A4
+sub_80C25A4: @ 80C25A4
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _080C25B8
+ ldr r2, _080C25BC
+ bl SetTaskFuncWithFollowupFunc
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C25B8: .4byte sub_80C89DC
+_080C25BC: .4byte sub_80C25C0
+ thumb_func_end sub_80C25A4
+
+ thumb_func_start sub_80C25C0
+sub_80C25C0: @ 80C25C0
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_8007ECC
+ lsls r0, 24
+ cmp r0, 0
+ beq _080C25EC
+ adds r0, r4, 0
+ bl DestroyTask
+ ldr r2, _080C25F4
+ ldr r0, _080C25F8
+ ldrb r1, [r0, 0x2]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldr r1, _080C25FC
+ str r1, [r0]
+ bl sub_80C3764
+_080C25EC:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C25F4: .4byte gTasks
+_080C25F8: .4byte 0x02018000
+_080C25FC: .4byte sub_80C2600
+ thumb_func_end sub_80C25C0
+
+ thumb_func_start sub_80C2600
+sub_80C2600: @ 80C2600
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080C2644
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r5, r1, r2
+ ldrh r1, [r5, 0x8]
+ movs r2, 0x8
+ ldrsh r0, [r5, r2]
+ cmp r0, 0
+ bne _080C2654
+ ldr r0, _080C2648
+ movs r1, 0x14
+ bl CreateTask
+ ldr r4, _080C264C
+ ldr r0, _080C2650
+ ldrb r1, [r0]
+ adds r0, r4, 0
+ bl sub_80C3158
+ adds r0, r4, 0
+ bl sub_80C34AC
+ lsls r0, 16
+ asrs r0, 16
+ movs r3, 0x88
+ lsls r3, 3
+ movs r1, 0x90
+ movs r2, 0x78
+ b _080C26A6
+ .align 2, 0
+_080C2644: .4byte gTasks
+_080C2648: .4byte sub_80C2F64
+_080C264C: .4byte gContestText_AnnounceResults
+_080C2650: .4byte 0x02018000
+_080C2654:
+ cmp r0, 0x1
+ bne _080C2668
+ ldr r0, _080C2664
+ ldrb r0, [r0, 0x4]
+ cmp r0, 0
+ bne _080C26D4
+ b _080C267C
+ .align 2, 0
+_080C2664: .4byte 0x02018000
+_080C2668:
+ cmp r0, 0x2
+ bne _080C2684
+ ldrh r0, [r5, 0xA]
+ adds r0, 0x1
+ strh r0, [r5, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x15
+ bne _080C26D4
+ movs r0, 0
+_080C267C:
+ strh r0, [r5, 0xA]
+ adds r0, r1, 0x1
+ strh r0, [r5, 0x8]
+ b _080C26D4
+_080C2684:
+ cmp r0, 0x3
+ bne _080C26C0
+ ldr r4, _080C26B4
+ ldr r0, _080C26B8
+ ldrb r1, [r0]
+ adds r0, r4, 0
+ bl sub_80C3158
+ adds r0, r4, 0
+ bl sub_80C34AC
+ lsls r0, 16
+ asrs r0, 16
+ ldr r2, _080C26BC
+ movs r3, 0x88
+ lsls r3, 3
+ movs r1, 0x90
+_080C26A6:
+ bl sub_80C34CC
+ ldrh r0, [r5, 0x8]
+ adds r0, 0x1
+ strh r0, [r5, 0x8]
+ b _080C26D4
+ .align 2, 0
+_080C26B4: .4byte gContestText_PreliminaryResults
+_080C26B8: .4byte 0x02018000
+_080C26BC: .4byte 0x0000ffff
+_080C26C0:
+ cmp r0, 0x4
+ bne _080C26D4
+ ldr r0, _080C26DC
+ ldrb r0, [r0, 0x4]
+ cmp r0, 0x2
+ bne _080C26D4
+ movs r0, 0
+ strh r0, [r5, 0x8]
+ ldr r0, _080C26E0
+ str r0, [r5]
+_080C26D4:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C26DC: .4byte 0x02018000
+_080C26E0: .4byte sub_80C26E4
+ thumb_func_end sub_80C2600
+
+ thumb_func_start sub_80C26E4
+sub_80C26E4: @ 80C26E4
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080C2708
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r4, r1, r2
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ beq _080C2744
+ cmp r0, 0x1
+ bgt _080C270C
+ cmp r0, 0
+ beq _080C2712
+ b _080C2766
+ .align 2, 0
+_080C2708: .4byte gTasks
+_080C270C:
+ cmp r0, 0x2
+ beq _080C2754
+ b _080C2766
+_080C2712:
+ ldr r5, _080C2738
+ ldrb r0, [r5, 0xA]
+ cmp r0, 0
+ bne _080C2766
+ ldrh r1, [r4, 0xC]
+ adds r0, r1, 0x1
+ strh r0, [r4, 0xC]
+ lsls r1, 24
+ lsrs r1, 24
+ movs r0, 0
+ bl sub_80C40D4
+ ldrb r0, [r5, 0x14]
+ cmp r0, 0
+ bne _080C273C
+ movs r0, 0x2
+ strh r0, [r4, 0x8]
+ b _080C2766
+ .align 2, 0
+_080C2738: .4byte 0x02018000
+_080C273C:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _080C2766
+_080C2744:
+ ldr r0, _080C2750
+ ldrb r0, [r0, 0x14]
+ cmp r0, 0
+ bne _080C2766
+ strh r0, [r4, 0x8]
+ b _080C2766
+ .align 2, 0
+_080C2750: .4byte 0x02018000
+_080C2754:
+ movs r0, 0x88
+ lsls r0, 3
+ bl sub_80C3520
+ movs r0, 0
+ strh r0, [r4, 0x8]
+ strh r0, [r4, 0xC]
+ ldr r0, _080C276C
+ str r0, [r4]
+_080C2766:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C276C: .4byte sub_80C2770
+ thumb_func_end sub_80C26E4
+
+ thumb_func_start sub_80C2770
+sub_80C2770: @ 80C2770
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ adds r4, r2, 0
+ ldr r5, _080C27BC
+ ldrb r3, [r5, 0x4]
+ cmp r3, 0
+ bne _080C27CC
+ ldr r1, _080C27C0
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r1, r0, r1
+ ldrh r0, [r1, 0xA]
+ adds r0, 0x1
+ strh r0, [r1, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x15
+ bne _080C27DE
+ strh r3, [r1, 0xA]
+ ldr r4, _080C27C4
+ ldrb r1, [r5]
+ adds r0, r4, 0
+ bl sub_80C3158
+ adds r0, r4, 0
+ bl sub_80C34AC
+ lsls r0, 16
+ asrs r0, 16
+ ldr r2, _080C27C8
+ movs r3, 0x88
+ lsls r3, 3
+ movs r1, 0x90
+ bl sub_80C34CC
+ b _080C27DE
+ .align 2, 0
+_080C27BC: .4byte 0x02018000
+_080C27C0: .4byte gTasks
+_080C27C4: .4byte gContestText_Round2Results
+_080C27C8: .4byte 0x0000ffff
+_080C27CC:
+ cmp r3, 0x2
+ bne _080C27DE
+ ldr r0, _080C27E4
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _080C27E8
+ str r0, [r1]
+_080C27DE:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C27E4: .4byte gTasks
+_080C27E8: .4byte sub_80C27EC
+ thumb_func_end sub_80C2770
+
+ thumb_func_start sub_80C27EC
+sub_80C27EC: @ 80C27EC
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080C2810
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r4, r1, r2
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ beq _080C284C
+ cmp r0, 0x1
+ bgt _080C2814
+ cmp r0, 0
+ beq _080C281A
+ b _080C286C
+ .align 2, 0
+_080C2810: .4byte gTasks
+_080C2814:
+ cmp r0, 0x2
+ beq _080C285C
+ b _080C286C
+_080C281A:
+ ldr r5, _080C2840
+ ldrb r0, [r5, 0xA]
+ cmp r0, 0
+ bne _080C286C
+ ldrh r1, [r4, 0xC]
+ adds r0, r1, 0x1
+ strh r0, [r4, 0xC]
+ lsls r1, 24
+ lsrs r1, 24
+ movs r0, 0x1
+ bl sub_80C40D4
+ ldrb r0, [r5, 0x14]
+ cmp r0, 0
+ bne _080C2844
+ movs r0, 0x2
+ strh r0, [r4, 0x8]
+ b _080C286C
+ .align 2, 0
+_080C2840: .4byte 0x02018000
+_080C2844:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _080C286C
+_080C284C:
+ ldr r0, _080C2858
+ ldrb r0, [r0, 0x14]
+ cmp r0, 0
+ bne _080C286C
+ strh r0, [r4, 0x8]
+ b _080C286C
+ .align 2, 0
+_080C2858: .4byte 0x02018000
+_080C285C:
+ movs r0, 0x88
+ lsls r0, 3
+ bl sub_80C3520
+ movs r0, 0
+ strh r0, [r4, 0x8]
+ ldr r0, _080C2874
+ str r0, [r4]
+_080C286C:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C2874: .4byte sub_80C2878
+ thumb_func_end sub_80C27EC
+
+ thumb_func_start sub_80C2878
+sub_80C2878: @ 80C2878
+ push {r4-r7,lr}
+ sub sp, 0x64
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _080C28A0
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ movs r2, 0x8
+ ldrsh r0, [r0, r2]
+ adds r2, r1, 0
+ cmp r0, 0x5
+ bls _080C2896
+ b _080C2A80
+_080C2896:
+ lsls r0, 2
+ ldr r1, _080C28A4
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080C28A0: .4byte gTasks
+_080C28A4: .4byte _080C28A8
+ .align 2, 0
+_080C28A8:
+ .4byte _080C28C0
+ .4byte _080C28E0
+ .4byte _080C28FE
+ .4byte _080C2938
+ .4byte _080C299C
+ .4byte _080C2A70
+_080C28C0:
+ ldr r0, _080C28DC
+ ldrb r0, [r0, 0x4]
+ cmp r0, 0
+ beq _080C28CA
+ b _080C2A80
+_080C28CA:
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r2
+ ldrh r1, [r0, 0x8]
+ adds r1, 0x1
+ strh r1, [r0, 0x8]
+ b _080C2A80
+ .align 2, 0
+_080C28DC: .4byte 0x02018000
+_080C28E0:
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r1, r0, r2
+ ldrh r0, [r1, 0xA]
+ adds r0, 0x1
+ strh r0, [r1, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1F
+ beq _080C28F8
+ b _080C2A80
+_080C28F8:
+ movs r0, 0
+ strh r0, [r1, 0xA]
+ b _080C2A4A
+_080C28FE:
+ movs r4, 0
+ lsls r6, r5, 2
+ ldr r7, _080C292C
+_080C2904:
+ ldr r0, _080C2930
+ movs r1, 0xA
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r7
+ ldr r0, _080C2934
+ adds r0, r4, r0
+ ldrb r0, [r0]
+ strh r0, [r1, 0x8]
+ strh r4, [r1, 0xA]
+ adds r4, 0x1
+ cmp r4, 0x3
+ ble _080C2904
+ b _080C2A42
+ .align 2, 0
+_080C292C: .4byte gTasks
+_080C2930: .4byte sub_80C3A5C
+_080C2934: .4byte gUnknown_02038690
+_080C2938:
+ ldr r0, _080C2990
+ ldrb r0, [r0, 0x5]
+ cmp r0, 0x4
+ beq _080C2942
+ b _080C2A80
+_080C2942:
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r4, r0, r2
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1F
+ beq _080C295A
+ b _080C2A80
+_080C295A:
+ movs r0, 0
+ strh r0, [r4, 0xA]
+ ldr r0, _080C2994
+ movs r1, 0xA
+ bl CreateTask
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ movs r4, 0
+ ldr r1, _080C2998
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _080C2984
+_080C2976:
+ adds r4, 0x1
+ cmp r4, 0x3
+ bgt _080C2984
+ adds r0, r4, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080C2976
+_080C2984:
+ lsls r0, r4, 24
+ lsrs r0, 24
+ movs r1, 0xE
+ bl sub_80C3E60
+ b _080C2A80
+ .align 2, 0
+_080C2990: .4byte 0x02018000
+_080C2994: .4byte sub_80C3B30
+_080C2998: .4byte gUnknown_02038690
+_080C299C:
+ lsls r1, r5, 2
+ adds r0, r1, r5
+ lsls r0, 3
+ adds r2, r0, r2
+ ldrh r0, [r2, 0xA]
+ adds r0, 0x1
+ strh r0, [r2, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ adds r6, r1, 0
+ cmp r0, 0x15
+ bne _080C2A80
+ movs r0, 0
+ strh r0, [r2, 0xA]
+ movs r4, 0
+ ldr r2, _080C29F4
+ ldrb r0, [r2]
+ ldr r1, _080C29F8
+ ldr r3, _080C29FC
+ cmp r0, 0
+ beq _080C29D4
+_080C29C6:
+ adds r4, 0x1
+ cmp r4, 0x3
+ bgt _080C29D4
+ adds r0, r4, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080C29C6
+_080C29D4:
+ ldrb r1, [r1]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080C2A04
+ lsls r1, r4, 3
+ subs r1, r4
+ lsls r1, 2
+ ldr r0, _080C2A00
+ adds r1, r0
+ adds r0, r3, 0
+ bl StringCopy
+ lsls r4, 6
+ b _080C2A10
+ .align 2, 0
+_080C29F4: .4byte gUnknown_02038690
+_080C29F8: .4byte gUnknown_0203869A
+_080C29FC: .4byte gStringVar1
+_080C2A00: .4byte gLinkPlayers + 0x8
+_080C2A04:
+ lsls r4, 6
+ ldr r1, _080C2A54
+ adds r1, r4, r1
+ adds r0, r3, 0
+ bl StringCopy
+_080C2A10:
+ ldr r0, _080C2A58
+ ldr r1, _080C2A5C
+ adds r1, r4, r1
+ bl StringCopy
+ ldr r1, _080C2A60
+ mov r0, sp
+ bl StringExpandPlaceholders
+ ldr r0, _080C2A64
+ ldrb r1, [r0]
+ mov r0, sp
+ bl sub_80C3158
+ mov r0, sp
+ bl sub_80C34AC
+ lsls r0, 16
+ asrs r0, 16
+ ldr r2, _080C2A68
+ movs r3, 0x88
+ lsls r3, 3
+ movs r1, 0x90
+ bl sub_80C34CC
+_080C2A42:
+ ldr r0, _080C2A6C
+ adds r1, r6, r5
+ lsls r1, 3
+ adds r1, r0
+_080C2A4A:
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ b _080C2A80
+ .align 2, 0
+_080C2A54: .4byte gUnknown_0203857D
+_080C2A58: .4byte gStringVar2
+_080C2A5C: .4byte gUnknown_02038572
+_080C2A60: .4byte gContestText_PokeWon
+_080C2A64: .4byte 0x02018000
+_080C2A68: .4byte 0x0000ffff
+_080C2A6C: .4byte gTasks
+_080C2A70:
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r2
+ movs r1, 0
+ strh r1, [r0, 0x8]
+ ldr r1, _080C2A88
+ str r1, [r0]
+_080C2A80:
+ add sp, 0x64
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C2A88: .4byte sub_80C2A8C
+ thumb_func_end sub_80C2878
+
+ thumb_func_start sub_80C2A8C
+sub_80C2A8C: @ 80C2A8C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x10
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r1, _080C2ABC
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r0, r1
+ movs r2, 0x8
+ ldrsh r0, [r0, r2]
+ adds r4, r1, 0
+ cmp r0, 0x5
+ bls _080C2AB2
+ b _080C2D04
+_080C2AB2:
+ lsls r0, 2
+ ldr r1, _080C2AC0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080C2ABC: .4byte gTasks
+_080C2AC0: .4byte _080C2AC4
+ .align 2, 0
+_080C2AC4:
+ .4byte _080C2ADC
+ .4byte _080C2C04
+ .4byte _080C2C54
+ .4byte _080C2C64
+ .4byte _080C2CA8
+ .4byte _080C2CE8
+_080C2ADC:
+ ldr r1, _080C2BC4
+ movs r0, 0xF0
+ strh r0, [r1]
+ ldr r1, _080C2BC8
+ ldr r3, _080C2BCC
+ adds r0, r3, 0
+ strh r0, [r1]
+ movs r1, 0
+ ldr r3, _080C2BD0
+ ldrb r0, [r3]
+ lsls r4, r7, 2
+ mov r10, r4
+ ldr r2, _080C2BD4
+ ldr r5, _080C2BD8
+ mov r12, r5
+ ldr r4, _080C2BDC
+ mov r8, r4
+ ldr r5, _080C2BE0
+ mov r9, r5
+ cmp r0, 0
+ beq _080C2B14
+_080C2B06:
+ adds r1, 0x1
+ cmp r1, 0x3
+ bgt _080C2B14
+ adds r0, r1, r3
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080C2B06
+_080C2B14:
+ lsls r1, 6
+ adds r0, r1, r2
+ ldrh r6, [r0]
+ adds r0, r2, 0
+ adds r0, 0x38
+ adds r0, r1, r0
+ ldr r4, [r0]
+ adds r0, r2, 0
+ adds r0, 0x3C
+ adds r1, r0
+ ldr r1, [r1]
+ str r1, [sp, 0xC]
+ lsls r0, r6, 3
+ add r0, r12
+ lsls r2, r6, 2
+ add r2, r8
+ ldrb r1, [r2]
+ ldrb r2, [r2, 0x1]
+ mov r5, r9
+ ldr r3, [r5, 0x4]
+ str r3, [sp]
+ str r6, [sp, 0x4]
+ str r4, [sp, 0x8]
+ ldr r3, _080C2BE4
+ bl sub_800D334
+ adds r0, r6, 0
+ ldr r1, [sp, 0xC]
+ adds r2, r4, 0
+ bl sub_80409C8
+ adds r4, r0, 0
+ bl LoadCompressedObjectPalette
+ adds r0, r6, 0
+ movs r1, 0x1
+ bl GetMonSpriteTemplate_803C56C
+ ldr r0, _080C2BE8
+ ldrh r1, [r4, 0x4]
+ strh r1, [r0, 0x2]
+ movs r1, 0x88
+ lsls r1, 1
+ movs r2, 0x50
+ movs r3, 0xA
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r5, _080C2BEC
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r3, r2, r5
+ strh r6, [r3, 0x30]
+ ldrb r4, [r3, 0x5]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r4
+ strb r1, [r3, 0x5]
+ adds r5, 0x1C
+ adds r2, r5
+ ldr r1, _080C2BF0
+ str r1, [r2]
+ ldr r2, _080C2BE4
+ movs r3, 0xC0
+ lsls r3, 9
+ adds r1, r2, r3
+ strb r0, [r1, 0x8]
+ ldr r0, _080C2BF4
+ bl LoadCompressedObjectPic
+ ldr r0, _080C2BF8
+ bl LoadCompressedObjectPalette
+ ldr r0, _080C2BFC
+ movs r1, 0xA
+ bl CreateTask
+ ldr r0, _080C2C00
+ mov r4, r10
+ adds r1, r4, r7
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ b _080C2D04
+ .align 2, 0
+_080C2BC4: .4byte gUnknown_030042C4
+_080C2BC8: .4byte gUnknown_03004240
+_080C2BCC: .4byte 0x00005050
+_080C2BD0: .4byte gUnknown_02038690
+_080C2BD4: .4byte gUnknown_02038570
+_080C2BD8: .4byte gMonFrontPicTable
+_080C2BDC: .4byte gMonFrontPicCoords
+_080C2BE0: .4byte gUnknown_081FAF4C
+_080C2BE4: .4byte 0x02000000
+_080C2BE8: .4byte gUnknown_02024E8C
+_080C2BEC: .4byte gSprites
+_080C2BF0: .4byte sub_80C3C44
+_080C2BF4: .4byte gUnknown_083D17CC
+_080C2BF8: .4byte gUnknown_083D17D4
+_080C2BFC: .4byte sub_80C3D04
+_080C2C00: .4byte gTasks
+_080C2C04:
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r4, r0, r4
+ ldrh r0, [r4, 0xE]
+ adds r0, 0x1
+ strh r0, [r4, 0xE]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ bne _080C2D04
+ movs r0, 0
+ strh r0, [r4, 0xE]
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x2
+ strh r0, [r4, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x20
+ ble _080C2C30
+ movs r0, 0x20
+ strh r0, [r4, 0xC]
+_080C2C30:
+ ldrb r2, [r4, 0xC]
+ ldr r3, _080C2C50
+ movs r0, 0x50
+ subs r0, r2
+ lsls r0, 8
+ adds r1, r2, 0
+ adds r1, 0x50
+ orrs r0, r1
+ strh r0, [r3]
+ cmp r2, 0x20
+ bne _080C2D04
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _080C2D04
+ .align 2, 0
+_080C2C50: .4byte gUnknown_03004240
+_080C2C54:
+ ldr r0, _080C2C60
+ ldrb r0, [r0, 0x6]
+ cmp r0, 0x1
+ bne _080C2D04
+ b _080C2CD0
+ .align 2, 0
+_080C2C60: .4byte 0x02018000
+_080C2C64:
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r3, r0, r4
+ ldrh r0, [r3, 0xA]
+ adds r0, 0x1
+ strh r0, [r3, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x79
+ bne _080C2D04
+ movs r0, 0
+ strh r0, [r3, 0xA]
+ ldr r2, _080C2C9C
+ ldr r0, _080C2CA0
+ ldrb r1, [r0, 0x8]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r2, 0x1C
+ adds r0, r2
+ ldr r1, _080C2CA4
+ str r1, [r0]
+ ldrh r0, [r3, 0x8]
+ adds r0, 0x1
+ strh r0, [r3, 0x8]
+ b _080C2D04
+ .align 2, 0
+_080C2C9C: .4byte gSprites
+_080C2CA0: .4byte 0x02018000
+_080C2CA4: .4byte sub_80C3CB8
+_080C2CA8:
+ ldr r0, _080C2CE0
+ ldrb r0, [r0, 0x6]
+ cmp r0, 0x2
+ bne _080C2D04
+ ldr r3, _080C2CE4
+ ldrh r0, [r3]
+ lsrs r2, r0, 8
+ adds r0, r2, 0x2
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x50
+ bls _080C2CC2
+ movs r2, 0x50
+_080C2CC2:
+ lsls r1, r2, 8
+ movs r0, 0xA0
+ subs r0, r2
+ orrs r1, r0
+ strh r1, [r3]
+ cmp r2, 0x50
+ bne _080C2D04
+_080C2CD0:
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r0, r4
+ ldrh r1, [r0, 0x8]
+ adds r1, 0x1
+ strh r1, [r0, 0x8]
+ b _080C2D04
+ .align 2, 0
+_080C2CE0: .4byte 0x02018000
+_080C2CE4: .4byte gUnknown_03004240
+_080C2CE8:
+ ldr r2, _080C2D14
+ ldrb r0, [r2, 0x6]
+ cmp r0, 0x2
+ bne _080C2D04
+ movs r1, 0
+ movs r0, 0x1
+ strb r0, [r2, 0x9]
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r0, r4
+ strh r1, [r0, 0x8]
+ ldr r1, _080C2D18
+ str r1, [r0]
+_080C2D04:
+ add sp, 0x10
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C2D14: .4byte 0x02018000
+_080C2D18: .4byte sub_80C2D1C
+ thumb_func_end sub_80C2A8C
+
+ thumb_func_start sub_80C2D1C
+sub_80C2D1C: @ 80C2D1C
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r0, _080C2D6C
+ ldrh r1, [r0, 0x2E]
+ movs r2, 0x1
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _080C2D66
+ ldr r0, _080C2D70
+ ldrb r1, [r0]
+ adds r0, r2, 0
+ ands r0, r1
+ lsls r6, r7, 2
+ cmp r0, 0
+ bne _080C2D5A
+ ldr r5, _080C2D74
+ movs r4, 0x3
+_080C2D42:
+ ldrh r0, [r5]
+ bl SpeciesToNationalPokedexNum
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x2
+ bl sub_8090D90
+ adds r5, 0x40
+ subs r4, 0x1
+ cmp r4, 0
+ bge _080C2D42
+_080C2D5A:
+ ldr r0, _080C2D78
+ adds r1, r6, r7
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _080C2D7C
+ str r0, [r1]
+_080C2D66:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C2D6C: .4byte gMain
+_080C2D70: .4byte gUnknown_0203869A
+_080C2D74: .4byte gUnknown_02038570
+_080C2D78: .4byte gTasks
+_080C2D7C: .4byte sub_80C2D80
+ thumb_func_end sub_80C2D1C
+
+ thumb_func_start sub_80C2D80
+sub_80C2D80: @ 80C2D80
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _080C2DAC
+ ldrb r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080C2DBC
+ ldr r0, _080C2DB0
+ bl sub_80C3698
+ bl sub_800832C
+ ldr r1, _080C2DB4
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080C2DB8
+ str r1, [r0]
+ b _080C2DCA
+ .align 2, 0
+_080C2DAC: .4byte gUnknown_0203869A
+_080C2DB0: .4byte gOtherText_LinkStandby
+_080C2DB4: .4byte gTasks
+_080C2DB8: .4byte sub_80C2DD8
+_080C2DBC:
+ ldr r0, _080C2DD0
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _080C2DD4
+ str r0, [r1]
+_080C2DCA:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C2DD0: .4byte gTasks
+_080C2DD4: .4byte sub_80C2E14
+ thumb_func_end sub_80C2D80
+
+ thumb_func_start sub_80C2DD8
+sub_80C2DD8: @ 80C2DD8
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _080C2E04
+ ldrb r1, [r0]
+ cmp r1, 0
+ bne _080C2DFC
+ ldr r0, _080C2E08
+ strb r1, [r0]
+ bl sub_80C3764
+ ldr r1, _080C2E0C
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080C2E10
+ str r1, [r0]
+_080C2DFC:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C2E04: .4byte gReceivedRemoteLinkPlayers
+_080C2E08: .4byte gUnknown_0203869A
+_080C2E0C: .4byte gTasks
+_080C2E10: .4byte sub_80C2E14
+ thumb_func_end sub_80C2DD8
+
+ thumb_func_start sub_80C2E14
+sub_80C2E14: @ 80C2E14
+ push {r4-r6,lr}
+ sub sp, 0x4
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ ldr r1, _080C2E80
+ ldr r0, _080C2E84
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r0, [r0]
+ bl sub_80BE284
+ movs r0, 0x2
+ bl sub_810FB10
+ ldr r0, _080C2E88
+ ldrb r0, [r0]
+ bl sub_80B2A7C
+ movs r0, 0xFE
+ bl sub_80B2A7C
+ ldr r4, _080C2E8C
+ ldr r0, _080C2E90
+ adds r1, r4, r0
+ movs r6, 0
+ movs r0, 0x1
+ strb r0, [r1]
+ movs r0, 0xFE
+ movs r1, 0
+ bl sub_80B2C4C
+ ldr r1, _080C2E94
+ adds r4, r1
+ strb r0, [r4]
+ str r6, [sp]
+ movs r0, 0xFF
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginHardwarePaletteFade
+ ldr r1, _080C2E98
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080C2E9C
+ str r1, [r0]
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C2E80: .4byte gUnknown_02038690
+_080C2E84: .4byte gUnknown_02038695
+_080C2E88: .4byte gUnknown_0203869E
+_080C2E8C: .4byte 0x02000000
+_080C2E90: .4byte 0x00015ddf
+_080C2E94: .4byte 0x00015dde
+_080C2E98: .4byte gTasks
+_080C2E9C: .4byte sub_80C2EA0
+ thumb_func_end sub_80C2E14
+
+ thumb_func_start sub_80C2EA0
+sub_80C2EA0: @ 80C2EA0
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ adds r5, r2, 0
+ ldr r0, _080C2ED8
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0
+ bne _080C2F18
+ ldr r1, _080C2EDC
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r4, r0, r1
+ movs r1, 0xA
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080C2EE8
+ ldr r0, _080C2EE0
+ ldrb r0, [r0, 0x3]
+ bl DestroyTask
+ ldr r0, _080C2EE4
+ b _080C2EEE
+ .align 2, 0
+_080C2ED8: .4byte gPaletteFade
+_080C2EDC: .4byte gTasks
+_080C2EE0: .4byte 0x02018000
+_080C2EE4: .4byte 0x0000ffff
+_080C2EE8:
+ cmp r0, 0x1
+ bne _080C2F04
+ ldr r0, _080C2F00
+_080C2EEE:
+ movs r1, 0x10
+ movs r2, 0
+ bl BlendPalettes
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ b _080C2F18
+ .align 2, 0
+_080C2F00: .4byte 0xffff0000
+_080C2F04:
+ ldr r0, _080C2F20
+ strh r3, [r0]
+ adds r0, 0x4
+ strh r3, [r0]
+ adds r0, r5, 0
+ bl DestroyTask
+ ldr r0, _080C2F24
+ bl SetMainCallback2
+_080C2F18:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C2F20: .4byte REG_BLDCNT
+_080C2F24: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music
+ thumb_func_end sub_80C2EA0
+
+ thumb_func_start sub_80C2F28
+sub_80C2F28: @ 80C2F28
+ push {r4,r5,lr}
+ ldr r2, _080C2F5C
+ ldrh r3, [r2]
+ adds r0, r3, 0x2
+ strh r0, [r2]
+ ldr r4, _080C2F60
+ ldrh r5, [r4]
+ adds r1, r5, 0x1
+ strh r1, [r4]
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0xFF
+ bls _080C2F48
+ adds r0, r3, 0
+ subs r0, 0xFD
+ strh r0, [r2]
+_080C2F48:
+ lsls r0, r1, 16
+ lsrs r0, 16
+ cmp r0, 0xFF
+ bls _080C2F56
+ adds r0, r5, 0
+ subs r0, 0xFE
+ strh r0, [r4]
+_080C2F56:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C2F5C: .4byte gUnknown_030041B0
+_080C2F60: .4byte gUnknown_030041B8
+ thumb_func_end sub_80C2F28
+
+ thumb_func_start sub_80C2F64
+sub_80C2F64: @ 80C2F64
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _080C2F94
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r2, r0, r1
+ ldrh r0, [r2, 0x8]
+ adds r0, 0x1
+ strh r0, [r2, 0x8]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x2
+ bne _080C2FE6
+ movs r0, 0
+ strh r0, [r2, 0x8]
+ movs r3, 0xC
+ ldrsh r0, [r2, r3]
+ cmp r0, 0
+ bne _080C2F98
+ ldrh r0, [r2, 0xA]
+ adds r0, 0x1
+ b _080C2F9C
+ .align 2, 0
+_080C2F94: .4byte gTasks
+_080C2F98:
+ ldrh r0, [r2, 0xA]
+ subs r0, 0x1
+_080C2F9C:
+ strh r0, [r2, 0xA]
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r1, r0, r1
+ movs r2, 0xA
+ ldrsh r0, [r1, r2]
+ cmp r0, 0x10
+ bne _080C2FB2
+ movs r0, 0x1
+ b _080C2FB6
+_080C2FB2:
+ cmp r0, 0
+ bne _080C2FB8
+_080C2FB6:
+ strh r0, [r1, 0xC]
+_080C2FB8:
+ ldr r0, _080C3000
+ lsls r4, r5, 2
+ adds r4, r5
+ lsls r4, 3
+ adds r4, r0
+ ldrb r2, [r4, 0xA]
+ ldr r3, _080C3004
+ movs r0, 0x6B
+ movs r1, 0x1
+ bl BlendPalette
+ ldrb r2, [r4, 0xA]
+ ldr r3, _080C3008
+ movs r0, 0x68
+ movs r1, 0x1
+ bl BlendPalette
+ ldrb r2, [r4, 0xA]
+ ldr r3, _080C300C
+ movs r0, 0x6E
+ movs r1, 0x1
+ bl BlendPalette
+_080C2FE6:
+ ldr r1, _080C3000
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ movs r3, 0xA
+ ldrsh r4, [r0, r3]
+ cmp r4, 0
+ bne _080C3014
+ ldr r0, _080C3010
+ strb r4, [r0, 0xA]
+ b _080C301A
+ .align 2, 0
+_080C3000: .4byte gTasks
+_080C3004: .4byte 0x00002ede
+_080C3008: .4byte 0x00007fff
+_080C300C: .4byte 0x000077be
+_080C3010: .4byte 0x02018000
+_080C3014:
+ ldr r1, _080C3020
+ movs r0, 0x1
+ strb r0, [r1, 0xA]
+_080C301A:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C3020: .4byte 0x02018000
+ thumb_func_end sub_80C2F64
+
+ thumb_func_start sub_80C3024
+sub_80C3024: @ 80C3024
+ push {r4-r6,lr}
+ ldr r6, [sp, 0x10]
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r1, 24
+ lsrs r4, r1, 24
+ lsls r2, 24
+ lsrs r5, r2, 24
+ lsls r3, 24
+ cmp r3, 0
+ beq _080C30B0
+ adds r1, r6, 0
+ bl sub_809D4F4
+ lsls r1, r5, 9
+ adds r0, r1
+ adds r0, 0x80
+ lsls r1, r4, 9
+ ldr r2, _080C30A0
+ adds r1, r2
+ ldr r2, _080C30A4
+ str r0, [r2]
+ str r1, [r2, 0x4]
+ ldr r0, _080C30A8
+ str r0, [r2, 0x8]
+ ldr r0, [r2, 0x8]
+ adds r1, r4, 0
+ adds r1, 0xA
+ lsls r1, 28
+ lsls r0, r4, 20
+ movs r2, 0x80
+ lsls r2, 18
+ adds r0, r2
+ orrs r0, r1
+ lsrs r1, r0, 16
+ lsls r0, r4, 1
+ adds r0, r4
+ lsls r0, 21
+ movs r2, 0x83
+ lsls r2, 16
+ adds r0, r2
+ lsrs r5, r0, 16
+ movs r2, 0
+ ldr r6, _080C30AC
+_080C307C:
+ lsls r0, r2, 5
+ adds r4, r2, 0x1
+ adds r0, r5
+ movs r3, 0x3
+ lsls r0, 1
+ adds r2, r0, r6
+_080C3088:
+ strh r1, [r2]
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ adds r2, 0x2
+ subs r3, 0x1
+ cmp r3, 0
+ bge _080C3088
+ adds r2, r4, 0
+ cmp r2, 0x2
+ ble _080C307C
+ b _080C30CA
+ .align 2, 0
+_080C30A0: .4byte 0x06004000
+_080C30A4: .4byte 0x040000d4
+_080C30A8: .4byte 0x84000060
+_080C30AC: .4byte 0x0600c000
+_080C30B0:
+ adds r1, r6, 0
+ bl sub_809D4F4
+ lsls r1, r5, 9
+ adds r0, r1
+ adds r0, 0x80
+ lsls r1, r4, 9
+ ldr r2, _080C30D0
+ adds r1, r2
+ movs r2, 0xC0
+ lsls r2, 1
+ bl RequestSpriteCopy
+_080C30CA:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C30D0: .4byte 0x06004000
+ thumb_func_end sub_80C3024
+
+ thumb_func_start sub_80C30D4
+sub_80C30D4: @ 80C30D4
+ push {r4-r7,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r7, r0, 24
+ lsls r1, 24
+ lsrs r6, r1, 24
+ movs r5, 0
+ ldr r4, _080C3108
+_080C30E4:
+ ldrh r0, [r4]
+ lsls r1, r5, 24
+ lsrs r1, 24
+ ldr r2, [r4, 0x38]
+ str r2, [sp]
+ adds r2, r7, 0
+ adds r3, r6, 0
+ bl sub_80C3024
+ adds r4, 0x40
+ adds r5, 0x1
+ cmp r5, 0x3
+ ble _080C30E4
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C3108: .4byte gUnknown_02038570
+ thumb_func_end sub_80C30D4
+
+ thumb_func_start sub_80C310C
+sub_80C310C: @ 80C310C
+ push {r4-r6,lr}
+ movs r4, 0
+ ldr r6, _080C314C
+ movs r5, 0xA0
+ lsls r5, 16
+_080C3116:
+ ldr r1, _080C3150
+ lsls r0, r4, 6
+ adds r0, r1
+ ldrh r0, [r0]
+ movs r1, 0
+ bl mon_icon_convert_unown_species_id
+ lsls r0, 16
+ lsrs r0, 16
+ adds r0, r6
+ ldrb r0, [r0]
+ lsls r0, 5
+ ldr r1, _080C3154
+ adds r0, r1
+ lsrs r1, r5, 16
+ movs r2, 0x20
+ bl LoadPalette
+ movs r0, 0x80
+ lsls r0, 13
+ adds r5, r0
+ adds r4, 0x1
+ cmp r4, 0x3
+ ble _080C3116
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C314C: .4byte gMonIconPaletteIndices
+_080C3150: .4byte gUnknown_02038570
+_080C3154: .4byte gMonIconPalettes
+ thumb_func_end sub_80C310C
+
+ thumb_func_start sub_80C3158
+sub_80C3158: @ 80C3158
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x1C
+ mov r9, r0
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r2, r1, 4
+ adds r2, r1
+ lsls r2, 2
+ ldr r3, _080C32C0
+ adds r2, r3
+ mov r1, sp
+ ldrh r0, [r2, 0x4]
+ lsls r0, 22
+ lsrs r0, 22
+ strh r0, [r1]
+ mov r4, sp
+ movs r0, 0x2E
+ ldrsh r1, [r2, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ ldrh r0, [r0, 0x4]
+ lsls r0, 22
+ lsrs r0, 22
+ strh r0, [r4, 0x2]
+ movs r0, 0x30
+ ldrsh r1, [r2, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ ldrh r0, [r0, 0x4]
+ lsls r0, 22
+ lsrs r0, 22
+ strh r0, [r4, 0x4]
+ movs r0, 0x32
+ ldrsh r1, [r2, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ ldrh r0, [r0, 0x4]
+ lsls r0, 22
+ lsrs r0, 22
+ strh r0, [r4, 0x6]
+ ldr r1, _080C32C4
+ mov r8, r1
+ ldr r7, _080C32C8
+ ldr r2, _080C32CC
+ ldr r6, _080C32D0
+ mov r1, sp
+ movs r5, 0
+ add r3, sp, 0x8
+ movs r4, 0x3
+_080C31CE:
+ ldrh r0, [r1]
+ lsls r0, 5
+ adds r0, r7
+ str r5, [sp, 0x8]
+ str r3, [r2]
+ str r0, [r2, 0x4]
+ str r6, [r2, 0x8]
+ ldr r0, [r2, 0x8]
+ adds r1, 0x2
+ subs r4, 0x1
+ cmp r4, 0
+ bge _080C31CE
+ mov r0, r8
+ mov r1, r9
+ bl GetStringWidthGivenWindowConfig
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r2, _080C32D4
+ ldr r1, _080C32D8
+ adds r0, r2, 0
+ bl StringCopy
+ adds r2, r0, 0
+ mvns r0, r5
+ adds r1, r0, 0x1
+ movs r0, 0x7
+ ands r1, r0
+ cmp r1, 0
+ beq _080C3218
+ movs r0, 0xFC
+ strb r0, [r2]
+ movs r0, 0x11
+ strb r0, [r2, 0x1]
+ lsrs r0, r1, 1
+ strb r0, [r2, 0x2]
+ adds r2, 0x3
+_080C3218:
+ adds r6, r5, 0x7
+ movs r1, 0x8
+ negs r1, r1
+ adds r0, r1, 0
+ ands r6, r0
+ lsls r6, 24
+ lsrs r5, r6, 24
+ adds r0, r2, 0
+ mov r1, r9
+ bl StringCopy
+ adds r2, r0, 0
+ movs r0, 0xFC
+ strb r0, [r2]
+ movs r0, 0x13
+ strb r0, [r2, 0x1]
+ strb r5, [r2, 0x2]
+ movs r0, 0xFF
+ strb r0, [r2, 0x3]
+ ldr r0, _080C32DC
+ mov r10, r0
+ ldr r1, _080C32D4
+ bl sub_80034D4
+ mov r0, sp
+ ldrh r4, [r0]
+ lsls r4, 5
+ ldr r1, _080C32C8
+ adds r7, r4, r1
+ ldr r0, _080C32E0
+ mov r9, r0
+ ldr r1, _080C32E4
+ mov r8, r1
+ adds r1, r7, 0
+ mov r2, r8
+ bl CpuSet
+ mov r5, r9
+ adds r5, 0x80
+ ldr r0, _080C32E8
+ adds r1, r4, r0
+ adds r0, r5, 0
+ mov r2, r8
+ bl CpuSet
+ ldr r0, _080C32EC
+ adds r1, r4, r0
+ adds r0, r5, 0
+ mov r2, r8
+ bl CpuSet
+ mov r0, r9
+ adds r0, 0x40
+ ldr r1, _080C32F0
+ adds r4, r1
+ adds r1, r4, 0
+ mov r2, r8
+ bl CpuSet
+ lsrs r5, r6, 27
+ movs r4, 0
+ cmp r4, r5
+ bgt _080C3382
+ mov r6, sp
+ mov r0, r10
+ adds r0, 0x20
+ str r0, [sp, 0xC]
+ mov r1, r10
+ str r1, [sp, 0x10]
+ ldr r0, _080C32F4
+ str r0, [sp, 0x14]
+ ldr r1, _080C32F8
+ str r1, [sp, 0x18]
+ ldr r0, _080C32FC
+ mov r10, r0
+ ldr r1, _080C3300
+ mov r9, r1
+_080C32B2:
+ cmp r4, 0x6
+ bgt _080C3304
+ ldrh r0, [r6]
+ lsls r0, 5
+ mov r1, r9
+ b _080C3322
+ .align 2, 0
+_080C32C0: .4byte gSprites
+_080C32C4: .4byte gWindowConfig_81E7278
+_080C32C8: .4byte 0x06010000
+_080C32CC: .4byte 0x040000d4
+_080C32D0: .4byte 0x85000100
+_080C32D4: .4byte gUnknown_020238CC
+_080C32D8: .4byte gUnknown_083D17E2
+_080C32DC: .4byte 0x02018068
+_080C32E0: .4byte gUnknown_083D1624
+_080C32E4: .4byte REG_BG0CNT
+_080C32E8: .4byte 0x06010100
+_080C32EC: .4byte 0x06010200
+_080C32F0: .4byte 0x06010300
+_080C32F4: .4byte 0x0600fd20
+_080C32F8: .4byte 0x0600fe20
+_080C32FC: .4byte 0x0600ff20
+_080C3300: .4byte 0x06010020
+_080C3304:
+ cmp r4, 0xE
+ bgt _080C3310
+ ldrh r0, [r6, 0x2]
+ lsls r0, 5
+ mov r1, r10
+ b _080C3322
+_080C3310:
+ cmp r4, 0x16
+ bgt _080C331C
+ ldrh r0, [r6, 0x4]
+ lsls r0, 5
+ ldr r1, [sp, 0x18]
+ b _080C3322
+_080C331C:
+ ldrh r0, [r6, 0x6]
+ lsls r0, 5
+ ldr r1, [sp, 0x14]
+_080C3322:
+ adds r7, r0, r1
+ cmp r4, r5
+ beq _080C3382
+ ldr r0, _080C33D0
+ adds r1, r7, 0
+ mov r2, r8
+ bl CpuSet
+ movs r0, 0xC0
+ lsls r0, 2
+ adds r1, r7, r0
+ ldr r0, _080C33D0
+ adds r0, 0x20
+ mov r2, r8
+ bl CpuSet
+ movs r0, 0x80
+ lsls r0, 1
+ adds r1, r7, r0
+ ldr r0, [sp, 0x10]
+ mov r2, r8
+ bl CpuSet
+ movs r0, 0x80
+ lsls r0, 2
+ adds r1, r7, r0
+ ldr r0, [sp, 0xC]
+ mov r2, r8
+ bl CpuSet
+ ldr r1, [sp, 0xC]
+ adds r1, 0x40
+ str r1, [sp, 0xC]
+ ldr r0, [sp, 0x10]
+ adds r0, 0x40
+ str r0, [sp, 0x10]
+ ldr r1, [sp, 0x14]
+ adds r1, 0x20
+ str r1, [sp, 0x14]
+ ldr r0, [sp, 0x18]
+ adds r0, 0x20
+ str r0, [sp, 0x18]
+ movs r1, 0x20
+ add r10, r1
+ add r9, r1
+ adds r4, 0x1
+ cmp r4, r5
+ ble _080C32B2
+_080C3382:
+ ldr r4, _080C33D4
+ ldr r5, _080C33D8
+ adds r0, r4, 0
+ adds r1, r7, 0
+ adds r2, r5, 0
+ bl CpuSet
+ adds r6, r4, 0
+ adds r6, 0x80
+ movs r0, 0x80
+ lsls r0, 1
+ adds r1, r7, r0
+ adds r0, r6, 0
+ adds r2, r5, 0
+ bl CpuSet
+ movs r0, 0x80
+ lsls r0, 2
+ adds r1, r7, r0
+ adds r0, r6, 0
+ adds r2, r5, 0
+ bl CpuSet
+ adds r4, 0x40
+ movs r0, 0xC0
+ lsls r0, 2
+ adds r1, r7, r0
+ adds r0, r4, 0
+ adds r2, r5, 0
+ bl CpuSet
+ add sp, 0x1C
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C33D0: .4byte gUnknown_083D16E4
+_080C33D4: .4byte gUnknown_083D1644
+_080C33D8: .4byte REG_BG0CNT
+ thumb_func_end sub_80C3158
+
+ thumb_func_start sub_80C33DC
+sub_80C33DC: @ 80C33DC
+ push {r4-r6,lr}
+ sub sp, 0x20
+ mov r1, sp
+ ldr r0, _080C3498
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ add r5, sp, 0x18
+ ldr r6, _080C349C
+ movs r4, 0x7
+_080C33F2:
+ adds r0, r6, 0
+ bl LoadSpriteSheet
+ adds r6, 0x8
+ subs r4, 0x1
+ cmp r4, 0
+ bge _080C33F2
+ ldr r0, _080C34A0
+ bl LoadSpritePalette
+ movs r4, 0
+ mov r6, sp
+_080C340A:
+ mov r0, sp
+ movs r1, 0x88
+ lsls r1, 1
+ movs r2, 0x90
+ movs r3, 0xA
+ bl CreateSprite
+ adds r1, r5, r4
+ strb r0, [r1]
+ ldrh r0, [r6]
+ adds r0, 0x1
+ strh r0, [r6]
+ adds r4, 0x1
+ cmp r4, 0x7
+ ble _080C340A
+ ldr r2, _080C34A4
+ ldrb r1, [r5]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r1, [r5, 0x1]
+ movs r3, 0
+ strh r1, [r0, 0x2E]
+ ldrb r1, [r5]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r1, [r5, 0x2]
+ strh r1, [r0, 0x30]
+ ldrb r1, [r5]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r1, [r5, 0x3]
+ strh r1, [r0, 0x32]
+ ldrb r1, [r5, 0x4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r1, [r5, 0x5]
+ strh r1, [r0, 0x2E]
+ ldrb r1, [r5, 0x4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r1, [r5, 0x6]
+ strh r1, [r0, 0x30]
+ ldrb r1, [r5, 0x4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r1, [r5, 0x7]
+ strh r1, [r0, 0x32]
+ ldr r1, _080C34A8
+ ldrb r0, [r5]
+ strb r0, [r1]
+ strb r3, [r1, 0x4]
+ ldrb r0, [r5, 0x4]
+ strb r0, [r1, 0x1]
+ bl sub_80C3764
+ add sp, 0x20
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C3498: .4byte gSpriteTemplate_83D174C
+_080C349C: .4byte gUnknown_083D1764
+_080C34A0: .4byte gUnknown_083D17A4
+_080C34A4: .4byte gSprites
+_080C34A8: .4byte 0x02018000
+ thumb_func_end sub_80C33DC
+
+ thumb_func_start sub_80C34AC
+sub_80C34AC: @ 80C34AC
+ push {lr}
+ bl StringLength
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 25
+ lsrs r1, 25
+ movs r0, 0x70
+ subs r0, r1
+ lsls r0, 16
+ lsrs r0, 16
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80C34AC
+
+ thumb_func_start sub_80C34CC
+sub_80C34CC: @ 80C34CC
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ ldr r4, _080C3514
+ mov r8, r4
+ ldrb r5, [r4]
+ lsls r4, r5, 4
+ adds r4, r5
+ lsls r4, 2
+ ldr r5, _080C3518
+ adds r4, r5
+ movs r6, 0
+ movs r5, 0x88
+ lsls r5, 1
+ strh r5, [r4, 0x20]
+ strh r1, [r4, 0x22]
+ strh r6, [r4, 0x24]
+ strh r6, [r4, 0x26]
+ lsls r0, 16
+ asrs r0, 16
+ adds r0, 0x20
+ strh r0, [r4, 0x36]
+ strh r2, [r4, 0x38]
+ strh r3, [r4, 0x3A]
+ strh r6, [r4, 0x3C]
+ ldr r0, _080C351C
+ str r0, [r4, 0x1C]
+ movs r0, 0x1
+ mov r1, r8
+ strb r0, [r1, 0x4]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C3514: .4byte 0x02018000
+_080C3518: .4byte gSprites
+_080C351C: .4byte sub_80C3588
+ thumb_func_end sub_80C34CC
+
+ thumb_func_start sub_80C3520
+sub_80C3520: @ 80C3520
+ push {r4,r5,lr}
+ ldr r4, _080C3558
+ ldrb r2, [r4]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ ldr r2, _080C355C
+ adds r1, r2
+ ldrh r2, [r1, 0x24]
+ ldrh r3, [r1, 0x20]
+ adds r2, r3
+ movs r3, 0
+ strh r2, [r1, 0x20]
+ ldrh r2, [r1, 0x26]
+ ldrh r5, [r1, 0x22]
+ adds r2, r5
+ strh r2, [r1, 0x22]
+ strh r3, [r1, 0x26]
+ strh r3, [r1, 0x24]
+ strh r0, [r1, 0x3A]
+ strh r3, [r1, 0x3C]
+ ldr r0, _080C3560
+ str r0, [r1, 0x1C]
+ movs r0, 0x3
+ strb r0, [r4, 0x4]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C3558: .4byte 0x02018000
+_080C355C: .4byte gSprites
+_080C3560: .4byte sub_80C3630
+ thumb_func_end sub_80C3520
+
+ thumb_func_start sub_80C3564
+sub_80C3564: @ 80C3564
+ movs r3, 0
+ movs r2, 0
+ movs r1, 0x88
+ lsls r1, 1
+ strh r1, [r0, 0x20]
+ movs r1, 0x90
+ strh r1, [r0, 0x22]
+ strh r2, [r0, 0x26]
+ strh r2, [r0, 0x24]
+ ldr r1, _080C3580
+ str r1, [r0, 0x1C]
+ ldr r0, _080C3584
+ strb r3, [r0, 0x4]
+ bx lr
+ .align 2, 0
+_080C3580: .4byte SpriteCallbackDummy
+_080C3584: .4byte 0x02018000
+ thumb_func_end sub_80C3564
+
+ thumb_func_start sub_80C3588
+sub_80C3588: @ 80C3588
+ push {r4-r7,lr}
+ adds r3, r0, 0
+ ldrh r2, [r3, 0x3A]
+ ldrh r0, [r3, 0x3C]
+ adds r2, r0
+ lsls r1, r2, 16
+ asrs r1, 24
+ ldrh r0, [r3, 0x20]
+ subs r0, r1
+ strh r0, [r3, 0x20]
+ movs r1, 0xFF
+ ands r2, r1
+ strh r2, [r3, 0x3C]
+ lsls r0, 16
+ asrs r0, 16
+ ldrh r2, [r3, 0x36]
+ movs r4, 0x36
+ ldrsh r1, [r3, r4]
+ cmp r0, r1
+ bge _080C35B2
+ strh r2, [r3, 0x20]
+_080C35B2:
+ movs r4, 0
+ ldr r6, _080C35F4
+ movs r5, 0x40
+ adds r2, r3, 0
+ adds r2, 0x2E
+_080C35BC:
+ movs r7, 0
+ ldrsh r0, [r2, r7]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r6
+ ldrh r0, [r3, 0x24]
+ ldrh r7, [r3, 0x20]
+ adds r0, r7
+ adds r0, r5
+ strh r0, [r1, 0x20]
+ adds r5, 0x40
+ adds r2, 0x2
+ adds r4, 0x1
+ cmp r4, 0x2
+ ble _080C35BC
+ movs r0, 0x20
+ ldrsh r1, [r3, r0]
+ movs r2, 0x36
+ ldrsh r0, [r3, r2]
+ cmp r1, r0
+ bne _080C35EC
+ ldr r0, _080C35F8
+ str r0, [r3, 0x1C]
+_080C35EC:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C35F4: .4byte gSprites
+_080C35F8: .4byte sub_80C35FC
+ thumb_func_end sub_80C3588
+
+ thumb_func_start sub_80C35FC
+sub_80C35FC: @ 80C35FC
+ push {lr}
+ adds r2, r0, 0
+ ldr r0, _080C3628
+ movs r1, 0x2
+ strb r1, [r0, 0x4]
+ ldrh r3, [r2, 0x38]
+ ldr r1, _080C362C
+ lsrs r0, r1, 16
+ cmp r3, r0
+ beq _080C3624
+ subs r0, r3, 0x1
+ strh r0, [r2, 0x38]
+ lsls r0, 16
+ asrs r0, 16
+ asrs r1, 16
+ cmp r0, r1
+ bne _080C3624
+ ldrh r0, [r2, 0x3A]
+ bl sub_80C3520
+_080C3624:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C3628: .4byte 0x02018000
+_080C362C: .4byte 0xffff0000
+ thumb_func_end sub_80C35FC
+
+ thumb_func_start sub_80C3630
+sub_80C3630: @ 80C3630
+ push {r4-r7,lr}
+ adds r3, r0, 0
+ ldrh r2, [r3, 0x3A]
+ ldrh r0, [r3, 0x3C]
+ adds r2, r0
+ lsls r1, r2, 16
+ asrs r1, 24
+ ldrh r0, [r3, 0x20]
+ subs r0, r1
+ strh r0, [r3, 0x20]
+ movs r0, 0xFF
+ ands r2, r0
+ strh r2, [r3, 0x3C]
+ movs r4, 0
+ ldr r6, _080C3694
+ movs r5, 0x40
+ adds r2, r3, 0
+ adds r2, 0x2E
+_080C3654:
+ movs r1, 0
+ ldrsh r0, [r2, r1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r6
+ ldrh r0, [r3, 0x24]
+ ldrh r7, [r3, 0x20]
+ adds r0, r7
+ adds r0, r5
+ strh r0, [r1, 0x20]
+ adds r5, 0x40
+ adds r2, 0x2
+ adds r4, 0x1
+ cmp r4, 0x2
+ ble _080C3654
+ movs r1, 0x20
+ ldrsh r0, [r3, r1]
+ movs r2, 0x24
+ ldrsh r1, [r3, r2]
+ adds r0, r1
+ movs r1, 0xE0
+ negs r1, r1
+ cmp r0, r1
+ bge _080C368C
+ adds r0, r3, 0
+ bl sub_80C3564
+_080C368C:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C3694: .4byte gSprites
+ thumb_func_end sub_80C3630
+
+ thumb_func_start sub_80C3698
+sub_80C3698: @ 80C3698
+ push {r4-r7,lr}
+ adds r4, r0, 0
+ ldr r5, _080C374C
+ ldrb r1, [r5, 0x1]
+ bl sub_80C3158
+ adds r0, r4, 0
+ bl sub_80C34AC
+ lsls r0, 16
+ lsrs r0, 16
+ ldrb r2, [r5, 0x1]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ ldr r3, _080C3750
+ adds r4, r1, r3
+ adds r0, 0x20
+ strh r0, [r4, 0x20]
+ movs r0, 0x50
+ strh r0, [r4, 0x22]
+ adds r5, r4, 0
+ adds r5, 0x3E
+ ldrb r1, [r5]
+ movs r2, 0x5
+ negs r2, r2
+ adds r0, r2, 0
+ ands r0, r1
+ strb r0, [r5]
+ movs r5, 0
+ adds r6, r3, 0
+ mov r12, r2
+ movs r3, 0x40
+_080C36DA:
+ lsls r0, r5, 1
+ adds r2, r4, 0
+ adds r2, 0x2E
+ adds r2, r0
+ movs r1, 0
+ ldrsh r0, [r2, r1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r6
+ ldrh r0, [r4, 0x24]
+ ldrh r7, [r4, 0x20]
+ adds r0, r7
+ adds r0, r3
+ strh r0, [r1, 0x20]
+ movs r0, 0
+ ldrsh r1, [r2, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ ldrh r1, [r4, 0x22]
+ strh r1, [r0, 0x22]
+ movs r1, 0
+ ldrsh r0, [r2, r1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r6
+ adds r1, 0x3E
+ ldrb r2, [r1]
+ mov r0, r12
+ ands r0, r2
+ strb r0, [r1]
+ adds r3, 0x40
+ adds r5, 0x1
+ cmp r5, 0x2
+ ble _080C36DA
+ ldr r1, _080C3754
+ movs r0, 0xF0
+ strh r0, [r1]
+ ldr r2, _080C3758
+ ldrh r1, [r4, 0x22]
+ adds r0, r1, 0
+ subs r0, 0x10
+ lsls r0, 8
+ adds r1, 0x10
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r1, _080C375C
+ ldr r2, _080C3760
+ adds r0, r2, 0
+ strh r0, [r1]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C374C: .4byte 0x02018000
+_080C3750: .4byte gSprites
+_080C3754: .4byte gUnknown_030042C4
+_080C3758: .4byte gUnknown_03004240
+_080C375C: .4byte REG_WININ
+_080C3760: .4byte 0x00003f3e
+ thumb_func_end sub_80C3698
+
+ thumb_func_start sub_80C3764
+sub_80C3764: @ 80C3764
+ push {r4-r7,lr}
+ ldr r0, _080C37C8
+ ldrb r0, [r0, 0x1]
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ ldr r3, _080C37CC
+ adds r2, r3
+ movs r0, 0x3E
+ adds r0, r2
+ mov r12, r0
+ ldrb r0, [r0]
+ movs r1, 0x4
+ orrs r0, r1
+ mov r1, r12
+ strb r0, [r1]
+ ldr r7, _080C37D0
+ ldr r6, _080C37D4
+ adds r5, r3, 0
+ movs r4, 0x4
+ adds r2, 0x2E
+ movs r3, 0x2
+_080C3790:
+ movs r1, 0
+ ldrsh r0, [r2, r1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r5
+ adds r1, 0x3E
+ ldrb r0, [r1]
+ orrs r0, r4
+ strb r0, [r1]
+ adds r2, 0x2
+ subs r3, 0x1
+ cmp r3, 0
+ bge _080C3790
+ movs r1, 0
+ strh r1, [r7]
+ strh r1, [r6]
+ ldr r0, _080C37D8
+ strh r1, [r0]
+ adds r0, 0x4
+ strh r1, [r0]
+ ldr r1, _080C37DC
+ ldr r2, _080C37E0
+ adds r0, r2, 0
+ strh r0, [r1]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C37C8: .4byte 0x02018000
+_080C37CC: .4byte gSprites
+_080C37D0: .4byte gUnknown_030042C4
+_080C37D4: .4byte gUnknown_03004240
+_080C37D8: .4byte REG_WIN0H
+_080C37DC: .4byte REG_WININ
+_080C37E0: .4byte 0x00003f3f
+ thumb_func_end sub_80C3764
+
+ thumb_func_start sub_80C37E4
+sub_80C37E4: @ 80C37E4
+ push {r4-r6,lr}
+ sub sp, 0x10
+ movs r5, 0x1
+ movs r4, 0
+ ldr r0, _080C3808
+ ldrb r0, [r0]
+ adds r1, r5, 0
+ ands r1, r0
+ cmp r1, 0
+ beq _080C3814
+ ldr r0, _080C380C
+ ldr r3, _080C3810
+ movs r1, 0x9
+ str r1, [sp]
+ movs r2, 0x2
+ str r2, [sp, 0x4]
+ b _080C386A
+ .align 2, 0
+_080C3808: .4byte gUnknown_0203869A
+_080C380C: .4byte 0x0600e000
+_080C3810: .4byte gUnknown_08E964B8
+_080C3814:
+ ldr r0, _080C3830
+ ldrh r2, [r0]
+ cmp r2, 0
+ bne _080C383C
+ movs r4, 0x1
+ ldr r0, _080C3834
+ ldr r3, _080C3838
+ str r2, [sp]
+ str r2, [sp, 0x4]
+ movs r1, 0x9
+ str r1, [sp, 0x8]
+ movs r1, 0x2
+ str r1, [sp, 0xC]
+ b _080C3870
+ .align 2, 0
+_080C3830: .4byte gUnknown_0203869E
+_080C3834: .4byte 0x0600e000
+_080C3838: .4byte gUnknown_08E964B8
+_080C383C:
+ cmp r2, 0x1
+ bne _080C385C
+ ldr r0, _080C3854
+ ldr r3, _080C3858
+ movs r1, 0x9
+ str r1, [sp]
+ str r4, [sp, 0x4]
+ movs r1, 0x8
+ str r1, [sp, 0x8]
+ movs r1, 0x2
+ str r1, [sp, 0xC]
+ b _080C3870
+ .align 2, 0
+_080C3854: .4byte 0x0600e000
+_080C3858: .4byte gUnknown_08E964B8
+_080C385C:
+ cmp r2, 0x2
+ bne _080C3884
+ ldr r0, _080C387C
+ ldr r3, _080C3880
+ movs r1, 0x11
+ str r1, [sp]
+ str r4, [sp, 0x4]
+_080C386A:
+ movs r1, 0x8
+ str r1, [sp, 0x8]
+ str r2, [sp, 0xC]
+_080C3870:
+ movs r1, 0x5
+ movs r2, 0x1
+ bl sub_809D104
+ b _080C389E
+ .align 2, 0
+_080C387C: .4byte 0x0600e000
+_080C3880: .4byte gUnknown_08E964B8
+_080C3884:
+ movs r4, 0x1
+ ldr r0, _080C38C0
+ ldr r3, _080C38C4
+ str r1, [sp]
+ movs r2, 0x2
+ str r2, [sp, 0x4]
+ movs r1, 0x9
+ str r1, [sp, 0x8]
+ str r2, [sp, 0xC]
+ movs r1, 0x5
+ movs r2, 0x1
+ bl sub_809D104
+_080C389E:
+ adds r4, 0xD
+ ldr r0, _080C38C8
+ ldrh r0, [r0]
+ cmp r0, 0
+ bne _080C38CC
+ movs r6, 0
+ ldr r0, _080C38C0
+ ldr r3, _080C38C4
+ movs r1, 0x11
+ str r1, [sp]
+ movs r2, 0x2
+ str r2, [sp, 0x4]
+ movs r1, 0xA
+ str r1, [sp, 0x8]
+ str r2, [sp, 0xC]
+ b _080C392A
+ .align 2, 0
+_080C38C0: .4byte 0x0600e000
+_080C38C4: .4byte gUnknown_08E964B8
+_080C38C8: .4byte gUnknown_0203869C
+_080C38CC:
+ cmp r0, 0x1
+ bne _080C38EC
+ movs r6, 0x1
+ ldr r0, _080C38E4
+ ldr r3, _080C38E8
+ movs r1, 0
+ str r1, [sp]
+ movs r1, 0x4
+ str r1, [sp, 0x4]
+ movs r1, 0xB
+ b _080C3924
+ .align 2, 0
+_080C38E4: .4byte 0x0600e000
+_080C38E8: .4byte gUnknown_08E964B8
+_080C38EC:
+ cmp r0, 0x2
+ bne _080C3910
+ movs r6, 0x2
+ ldr r0, _080C3908
+ ldr r3, _080C390C
+ movs r1, 0xB
+ str r1, [sp]
+ movs r1, 0x4
+ str r1, [sp, 0x4]
+ movs r1, 0xA
+ str r1, [sp, 0x8]
+ str r6, [sp, 0xC]
+ b _080C392A
+ .align 2, 0
+_080C3908: .4byte 0x0600e000
+_080C390C: .4byte gUnknown_08E964B8
+_080C3910:
+ cmp r0, 0x3
+ bne _080C393C
+ movs r6, 0x3
+ ldr r0, _080C3934
+ ldr r3, _080C3938
+ movs r1, 0x15
+ str r1, [sp]
+ movs r1, 0x4
+ str r1, [sp, 0x4]
+ movs r1, 0xA
+_080C3924:
+ str r1, [sp, 0x8]
+ movs r1, 0x2
+ str r1, [sp, 0xC]
+_080C392A:
+ adds r1, r4, 0
+ adds r2, r5, 0
+ bl sub_809D104
+ b _080C395A
+ .align 2, 0
+_080C3934: .4byte 0x0600e000
+_080C3938: .4byte gUnknown_08E964B8
+_080C393C:
+ movs r6, 0x4
+ ldr r0, _080C3984
+ ldr r3, _080C3988
+ movs r1, 0
+ str r1, [sp]
+ movs r1, 0x6
+ str r1, [sp, 0x4]
+ movs r1, 0xA
+ str r1, [sp, 0x8]
+ movs r1, 0x2
+ str r1, [sp, 0xC]
+ adds r1, r4, 0
+ adds r2, r5, 0
+ bl sub_809D104
+_080C395A:
+ ldr r5, _080C398C
+ lsls r4, r6, 12
+ ldr r2, _080C3984
+ movs r3, 0x7F
+_080C3962:
+ ldrh r1, [r2]
+ adds r0, r5, 0
+ ands r0, r1
+ strh r0, [r2]
+ ldrh r1, [r2]
+ adds r0, r4, 0
+ orrs r0, r1
+ strh r0, [r2]
+ adds r2, 0x2
+ subs r3, 0x1
+ cmp r3, 0
+ bge _080C3962
+ add sp, 0x10
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C3984: .4byte 0x0600e000
+_080C3988: .4byte gUnknown_08E964B8
+_080C398C: .4byte 0x00000fff
+ thumb_func_end sub_80C37E4
+
+ thumb_func_start sub_80C3990
+sub_80C3990: @ 80C3990
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsls r1, 24
+ lsrs r5, r1, 24
+ ldr r1, _080C39DC
+ lsrs r0, 23
+ adds r0, r1
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ lsls r4, r0, 16
+ adds r0, r4, 0
+ movs r1, 0x3F
+ bl __udivsi3
+ adds r1, r0, 0
+ ldr r0, _080C39E0
+ ands r0, r1
+ cmp r0, 0
+ beq _080C39BC
+ movs r0, 0x80
+ lsls r0, 9
+ adds r1, r0
+_080C39BC:
+ lsrs r1, 16
+ cmp r1, 0
+ bne _080C39C8
+ cmp r4, 0
+ beq _080C39C8
+ movs r1, 0x1
+_080C39C8:
+ cmp r5, 0
+ beq _080C39D2
+ cmp r1, 0xA
+ bls _080C39D2
+ movs r1, 0xA
+_080C39D2:
+ lsls r0, r1, 24
+ lsrs r0, 24
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080C39DC: .4byte gUnknown_02038670
+_080C39E0: .4byte 0x0000ffff
+ thumb_func_end sub_80C3990
+
+ thumb_func_start sub_80C39E4
+sub_80C39E4: @ 80C39E4
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r1, 24
+ lsrs r6, r1, 24
+ ldr r1, _080C3A44
+ lsls r0, r5, 1
+ adds r0, r1
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ adds r7, r1, 0
+ cmp r0, 0
+ bge _080C3A00
+ negs r0, r0
+_080C3A00:
+ lsls r4, r0, 16
+ adds r0, r4, 0
+ movs r1, 0x50
+ bl __udivsi3
+ adds r2, r0, 0
+ ldr r0, _080C3A48
+ ands r0, r2
+ cmp r0, 0
+ beq _080C3A1A
+ movs r0, 0x80
+ lsls r0, 9
+ adds r2, r0
+_080C3A1A:
+ lsrs r2, 16
+ cmp r2, 0
+ bne _080C3A26
+ cmp r4, 0
+ beq _080C3A26
+ movs r2, 0x1
+_080C3A26:
+ cmp r6, 0
+ beq _080C3A30
+ cmp r2, 0xA
+ bls _080C3A30
+ movs r2, 0xA
+_080C3A30:
+ lsls r0, r5, 1
+ adds r0, r7
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bge _080C3A4C
+ negs r0, r2
+ lsls r0, 24
+ b _080C3A4E
+ .align 2, 0
+_080C3A44: .4byte gUnknown_02038688
+_080C3A48: .4byte 0x0000ffff
+_080C3A4C:
+ lsls r0, r2, 24
+_080C3A4E:
+ lsrs r0, 24
+ lsls r0, 24
+ asrs r0, 24
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80C39E4
+
+ thumb_func_start sub_80C3A5C
+sub_80C3A5C: @ 80C3A5C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r4, r0, 0
+ ldr r1, _080C3A90
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r3, r0, r1
+ ldrh r2, [r3, 0x1C]
+ movs r1, 0x1C
+ ldrsh r0, [r3, r1]
+ cmp r0, 0
+ bne _080C3A94
+ movs r1, 0x8
+ ldrsh r0, [r3, r1]
+ movs r1, 0x3
+ subs r1, r0
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ strh r0, [r3, 0x1E]
+ adds r0, r2, 0x1
+ strh r0, [r3, 0x1C]
+ b _080C3B12
+ .align 2, 0
+_080C3A90: .4byte gTasks
+_080C3A94:
+ cmp r0, 0x1
+ bne _080C3B12
+ ldrh r0, [r3, 0x1E]
+ subs r0, 0x1
+ strh r0, [r3, 0x1E]
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ bne _080C3B12
+ movs r0, 0x8
+ ldrsh r2, [r3, r0]
+ lsls r2, 17
+ ldr r1, _080C3B18
+ adds r2, r1
+ lsrs r2, 16
+ movs r0, 0xA
+ ldrsh r1, [r3, r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 6
+ ldr r1, _080C3B1C
+ adds r0, r1
+ strh r2, [r0]
+ movs r0, 0xA
+ ldrsh r1, [r3, r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 6
+ ldr r1, _080C3B20
+ adds r0, r1
+ adds r1, r2, 0x1
+ strh r1, [r0]
+ movs r0, 0xA
+ ldrsh r1, [r3, r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 6
+ ldr r1, _080C3B24
+ adds r0, r1
+ adds r1, r2, 0
+ adds r1, 0x10
+ strh r1, [r0]
+ movs r0, 0xA
+ ldrsh r1, [r3, r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 6
+ ldr r1, _080C3B28
+ adds r0, r1
+ adds r2, 0x11
+ strh r2, [r0]
+ ldr r1, _080C3B2C
+ ldrb r0, [r1, 0x5]
+ adds r0, 0x1
+ strb r0, [r1, 0x5]
+ adds r0, r4, 0
+ bl DestroyTask
+ movs r0, 0x18
+ bl PlaySE
+_080C3B12:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C3B18: .4byte 0x50430000
+_080C3B1C: .4byte 0x0600e142
+_080C3B20: .4byte 0x0600e144
+_080C3B24: .4byte 0x0600e182
+_080C3B28: .4byte 0x0600e184
+_080C3B2C: .4byte 0x02018000
+ thumb_func_end sub_80C3A5C
+
+ thumb_func_start sub_80C3B30
+sub_80C3B30: @ 80C3B30
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ lsls r0, 24
+ lsrs r0, 24
+ mov r12, r0
+ movs r5, 0
+ ldr r1, _080C3BC0
+ ldrb r0, [r1]
+ ldr r2, _080C3BC4
+ mov r10, r2
+ cmp r0, 0
+ beq _080C3B5C
+_080C3B4E:
+ adds r5, 0x1
+ cmp r5, 0x3
+ bgt _080C3B5C
+ adds r0, r5, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080C3B4E
+_080C3B5C:
+ movs r1, 0
+ lsls r0, r5, 1
+ mov r2, r12
+ lsls r2, 2
+ mov r9, r2
+ adds r0, r5
+ lsls r0, 5
+ mov r8, r0
+ ldr r7, _080C3BC8
+ movs r0, 0x90
+ lsls r0, 8
+ adds r6, r0, 0
+_080C3B74:
+ lsls r0, r1, 5
+ adds r4, r1, 0x1
+ add r0, r8
+ movs r3, 0x1D
+ lsls r0, 1
+ ldr r1, _080C3BCC
+ adds r2, r0, r1
+_080C3B82:
+ ldrh r1, [r2]
+ adds r0, r7, 0
+ ands r0, r1
+ orrs r0, r6
+ strh r0, [r2]
+ adds r2, 0x2
+ subs r3, 0x1
+ cmp r3, 0
+ bge _080C3B82
+ adds r1, r4, 0
+ cmp r1, 0x2
+ ble _080C3B74
+ mov r0, r9
+ add r0, r12
+ lsls r0, 3
+ add r0, r10
+ strh r5, [r0, 0x1C]
+ movs r1, 0x1
+ strh r1, [r0, 0x20]
+ ldr r2, _080C3BD0
+ str r2, [r0]
+ mov r1, r12
+ ldr r0, _080C3BD4
+ strb r1, [r0, 0x3]
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C3BC0: .4byte gUnknown_02038690
+_080C3BC4: .4byte gTasks
+_080C3BC8: .4byte 0x00000fff
+_080C3BCC: .4byte 0x0600e100
+_080C3BD0: .4byte sub_80C3BD8
+_080C3BD4: .4byte 0x02018000
+ thumb_func_end sub_80C3B30
+
+ thumb_func_start sub_80C3BD8
+sub_80C3BD8: @ 80C3BD8
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080C3C24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r4, r1, r2
+ ldrh r0, [r4, 0x1E]
+ adds r0, 0x1
+ strh r0, [r4, 0x1E]
+ lsls r0, 16
+ asrs r5, r0, 16
+ cmp r5, 0x1
+ bne _080C3C3C
+ movs r0, 0
+ strh r0, [r4, 0x1E]
+ ldrh r2, [r4, 0x20]
+ lsls r2, 24
+ lsrs r2, 24
+ ldr r3, _080C3C28
+ movs r0, 0x91
+ movs r1, 0x1
+ bl BlendPalette
+ movs r1, 0x22
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080C3C2C
+ ldrh r0, [r4, 0x20]
+ adds r0, 0x1
+ strh r0, [r4, 0x20]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x10
+ bne _080C3C3C
+ strh r5, [r4, 0x22]
+ b _080C3C3C
+ .align 2, 0
+_080C3C24: .4byte gTasks
+_080C3C28: .4byte 0x00006f8d
+_080C3C2C:
+ ldrh r0, [r4, 0x20]
+ subs r0, 0x1
+ strh r0, [r4, 0x20]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0
+ bne _080C3C3C
+ strh r0, [r4, 0x22]
+_080C3C3C:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80C3BD8
+
+ thumb_func_start sub_80C3C44
+sub_80C3C44: @ 80C3C44
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r1, [r4, 0x2E]
+ movs r2, 0x2E
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x9
+ bgt _080C3C6C
+ adds r0, r1, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xA
+ bne _080C3CA8
+ ldrh r0, [r4, 0x30]
+ movs r1, 0
+ bl PlayCry1
+ movs r0, 0
+ strh r0, [r4, 0x30]
+ b _080C3CA8
+_080C3C6C:
+ movs r0, 0xC0
+ lsls r0, 3
+ adds r2, r0, 0
+ ldrh r1, [r4, 0x30]
+ adds r2, r1
+ lsls r1, r2, 16
+ asrs r1, 24
+ ldrh r0, [r4, 0x20]
+ subs r0, r1
+ strh r0, [r4, 0x20]
+ movs r1, 0xFF
+ ands r2, r1
+ strh r2, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x77
+ bgt _080C3C92
+ movs r0, 0x78
+ strh r0, [r4, 0x20]
+_080C3C92:
+ movs r2, 0x20
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x78
+ bne _080C3CA8
+ ldr r0, _080C3CB0
+ str r0, [r4, 0x1C]
+ movs r0, 0
+ strh r0, [r4, 0x30]
+ ldr r1, _080C3CB4
+ movs r0, 0x1
+ strb r0, [r1, 0x6]
+_080C3CA8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C3CB0: .4byte SpriteCallbackDummy
+_080C3CB4: .4byte 0x02018000
+ thumb_func_end sub_80C3C44
+
+ thumb_func_start sub_80C3CB8
+sub_80C3CB8: @ 80C3CB8
+ push {lr}
+ adds r3, r0, 0
+ movs r0, 0xC0
+ lsls r0, 3
+ adds r2, r0, 0
+ ldrh r0, [r3, 0x30]
+ adds r2, r0
+ lsls r1, r2, 16
+ asrs r1, 24
+ ldrh r0, [r3, 0x20]
+ subs r0, r1
+ strh r0, [r3, 0x20]
+ movs r1, 0xFF
+ ands r2, r1
+ strh r2, [r3, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x20
+ negs r1, r1
+ cmp r0, r1
+ bge _080C3CF8
+ ldr r0, _080C3CFC
+ str r0, [r3, 0x1C]
+ adds r2, r3, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r1, _080C3D00
+ movs r0, 0x2
+ strb r0, [r1, 0x6]
+_080C3CF8:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C3CFC: .4byte SpriteCallbackDummy
+_080C3D00: .4byte 0x02018000
+ thumb_func_end sub_80C3CB8
+
+ thumb_func_start sub_80C3D04
+sub_80C3D04: @ 80C3D04
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r1, _080C3DD8
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r1, r0, r1
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x5
+ bne _080C3DBE
+ movs r0, 0
+ strh r0, [r1, 0x8]
+ ldr r0, _080C3DDC
+ mov r8, r0
+ ldrb r0, [r0, 0x7]
+ cmp r0, 0x27
+ bhi _080C3DBE
+ ldr r4, _080C3DE0
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0xF0
+ bl __umodsi3
+ adds r1, r0, 0
+ subs r1, 0x14
+ lsls r1, 16
+ asrs r1, 16
+ adds r0, r4, 0
+ movs r2, 0x2C
+ movs r3, 0x5
+ bl CreateSprite
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl Random
+ ldr r1, _080C3DE4
+ lsls r5, r4, 4
+ adds r5, r4
+ lsls r5, 2
+ adds r5, r1
+ lsls r0, 23
+ lsrs r0, 23
+ strh r0, [r5, 0x2E]
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x18
+ bl __umodsi3
+ adds r0, 0x10
+ strh r0, [r5, 0x30]
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0xFF
+ ands r0, r1
+ adds r0, 0x30
+ strh r0, [r5, 0x32]
+ bl Random
+ ldrh r6, [r5, 0x4]
+ lsls r4, r6, 22
+ lsrs r4, 22
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x11
+ bl __umodsi3
+ adds r4, r0
+ ldr r1, _080C3DE8
+ adds r0, r1, 0
+ ands r4, r0
+ ldr r0, _080C3DEC
+ ands r0, r6
+ orrs r0, r4
+ strh r0, [r5, 0x4]
+ mov r1, r8
+ ldrb r0, [r1, 0x7]
+ adds r0, 0x1
+ strb r0, [r1, 0x7]
+_080C3DBE:
+ ldr r0, _080C3DDC
+ ldrb r0, [r0, 0x9]
+ cmp r0, 0
+ beq _080C3DCC
+ adds r0, r7, 0
+ bl DestroyTask
+_080C3DCC:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C3DD8: .4byte gTasks
+_080C3DDC: .4byte 0x02018000
+_080C3DE0: .4byte gSpriteTemplate_83D17B4
+_080C3DE4: .4byte gSprites
+_080C3DE8: .4byte 0x000003ff
+_080C3DEC: .4byte 0xfffffc00
+ thumb_func_end sub_80C3D04
+
+ thumb_func_start sub_80C3DF0
+sub_80C3DF0: @ 80C3DF0
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x2E]
+ ldrh r1, [r4, 0x34]
+ adds r0, r1
+ strh r0, [r4, 0x34]
+ lsls r0, 16
+ asrs r0, 24
+ movs r2, 0x30
+ ldrsh r1, [r4, r2]
+ bl Sin
+ strh r0, [r4, 0x24]
+ ldrh r1, [r4, 0x32]
+ ldrh r0, [r4, 0x36]
+ adds r1, r0
+ lsls r0, r1, 16
+ asrs r0, 24
+ ldrh r2, [r4, 0x20]
+ adds r0, r2
+ strh r0, [r4, 0x20]
+ movs r0, 0xFF
+ ands r1, r0
+ strh r1, [r4, 0x36]
+ ldrh r0, [r4, 0x22]
+ adds r0, 0x1
+ strh r0, [r4, 0x22]
+ ldr r5, _080C3E5C
+ ldrb r0, [r5, 0x9]
+ cmp r0, 0
+ beq _080C3E3A
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+_080C3E3A:
+ movs r1, 0x20
+ ldrsh r0, [r4, r1]
+ cmp r0, 0xF8
+ bgt _080C3E4A
+ movs r2, 0x22
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x74
+ ble _080C3E56
+_080C3E4A:
+ adds r0, r4, 0
+ bl DestroySprite
+ ldrb r0, [r5, 0x7]
+ subs r0, 0x1
+ strb r0, [r5, 0x7]
+_080C3E56:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C3E5C: .4byte 0x02018000
+ thumb_func_end sub_80C3DF0
+
+ thumb_func_start sub_80C3E60
+sub_80C3E60: @ 80C3E60
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r5, 24
+ lsrs r5, 24
+ ldr r0, _080C3E98
+ movs r1, 0x8
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080C3E9C
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ strh r4, [r1, 0x8]
+ strh r5, [r1, 0xA]
+ ldr r0, _080C3EA0
+ lsls r4, 6
+ adds r4, r0
+ ldrh r0, [r4]
+ strh r0, [r1, 0xC]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C3E98: .4byte sub_80C3EA4
+_080C3E9C: .4byte gTasks
+_080C3EA0: .4byte gUnknown_02038570
+ thumb_func_end sub_80C3E60
+
+ thumb_func_start sub_80C3EA4
+sub_80C3EA4: @ 80C3EA4
+ push {r4,r5,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080C3EF8
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r4, r1, r2
+ ldrb r5, [r4, 0x8]
+ ldrh r0, [r4, 0x1C]
+ adds r1, r0, 0x1
+ strh r1, [r4, 0x1C]
+ lsls r0, 16
+ asrs r0, 16
+ movs r2, 0xA
+ ldrsh r1, [r4, r2]
+ cmp r0, r1
+ bne _080C3EEE
+ movs r0, 0
+ strh r0, [r4, 0x1C]
+ ldrh r0, [r4, 0xC]
+ ldrb r2, [r4, 0x1E]
+ ldr r1, _080C3EFC
+ lsls r3, r5, 6
+ adds r1, 0x38
+ adds r3, r1
+ ldr r1, [r3]
+ str r1, [sp]
+ adds r1, r5, 0
+ movs r3, 0
+ bl sub_80C3024
+ ldrh r0, [r4, 0x1E]
+ movs r1, 0x1
+ eors r0, r1
+ strh r0, [r4, 0x1E]
+_080C3EEE:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C3EF8: .4byte gTasks
+_080C3EFC: .4byte gUnknown_02038570
+ thumb_func_end sub_80C3EA4
+
+ thumb_func_start sub_80C3F00
+sub_80C3F00: @ 80C3F00
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ ldr r0, _080C4098
+ ldrh r2, [r0]
+ adds r4, r0, 0
+ adds r3, r4, 0x2
+ movs r0, 0x2
+ mov r8, r0
+_080C3F16:
+ lsls r0, r2, 16
+ asrs r0, 16
+ movs r5, 0
+ ldrsh r1, [r3, r5]
+ cmp r0, r1
+ bge _080C3F24
+ ldrh r2, [r3]
+_080C3F24:
+ adds r3, 0x2
+ movs r0, 0x1
+ negs r0, r0
+ add r8, r0
+ mov r1, r8
+ cmp r1, 0
+ bge _080C3F16
+ lsls r0, r2, 16
+ mov r9, r0
+ cmp r0, 0
+ bge _080C3F62
+ ldrh r2, [r4]
+ adds r3, r4, 0x2
+ movs r4, 0x2
+ mov r8, r4
+_080C3F42:
+ lsls r0, r2, 16
+ asrs r0, 16
+ movs r5, 0
+ ldrsh r1, [r3, r5]
+ cmp r0, r1
+ ble _080C3F50
+ ldrh r2, [r3]
+_080C3F50:
+ adds r3, 0x2
+ movs r0, 0x1
+ negs r0, r0
+ add r8, r0
+ lsls r1, r2, 16
+ mov r9, r1
+ mov r4, r8
+ cmp r4, 0
+ bge _080C3F42
+_080C3F62:
+ movs r5, 0
+ mov r8, r5
+ mov r10, r5
+_080C3F68:
+ ldr r0, _080C409C
+ mov r1, r8
+ lsls r7, r1, 1
+ adds r0, r7, r0
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ lsls r0, r1, 5
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r1
+ lsls r0, 3
+ mov r4, r9
+ asrs r6, r4, 16
+ adds r1, r6, 0
+ cmp r6, 0
+ bge _080C3F8A
+ negs r1, r6
+_080C3F8A:
+ bl __divsi3
+ adds r4, r0, 0
+ movs r1, 0xA
+ bl __modsi3
+ cmp r0, 0x4
+ ble _080C3F9C
+ adds r4, 0xA
+_080C3F9C:
+ ldr r0, _080C40A0
+ mov r1, r10
+ adds r5, r1, r0
+ adds r0, r4, 0
+ movs r1, 0xA
+ bl __divsi3
+ str r0, [r5]
+ ldr r0, _080C40A4
+ adds r7, r0
+ movs r2, 0
+ ldrsh r1, [r7, r2]
+ cmp r1, 0
+ bge _080C3FBA
+ negs r1, r1
+_080C3FBA:
+ lsls r0, r1, 5
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r1, r6, 0
+ cmp r1, 0
+ bge _080C3FCC
+ negs r1, r1
+_080C3FCC:
+ bl __divsi3
+ adds r4, r0, 0
+ movs r1, 0xA
+ bl __modsi3
+ cmp r0, 0x4
+ ble _080C3FDE
+ adds r4, 0xA
+_080C3FDE:
+ adds r0, r4, 0
+ movs r1, 0xA
+ bl __divsi3
+ str r0, [r5, 0x4]
+ movs r4, 0
+ ldrsh r0, [r7, r4]
+ cmp r0, 0
+ bge _080C3FF4
+ movs r0, 0x1
+ strb r0, [r5, 0x10]
+_080C3FF4:
+ ldr r1, [r5]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ subs r0, r1
+ lsls r0, 11
+ movs r1, 0x64
+ bl __divsi3
+ adds r1, r0, 0
+ movs r4, 0xFF
+ ands r0, r4
+ cmp r0, 0x7F
+ bls _080C4016
+ movs r0, 0x80
+ lsls r0, 1
+ adds r1, r0
+_080C4016:
+ lsrs r0, r1, 8
+ str r0, [r5, 0x8]
+ ldr r1, [r5, 0x4]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ subs r0, r1
+ lsls r0, 11
+ movs r1, 0x64
+ bl __divsi3
+ adds r1, r0, 0
+ ands r0, r4
+ cmp r0, 0x7F
+ bls _080C403A
+ movs r2, 0x80
+ lsls r2, 1
+ adds r1, r2
+_080C403A:
+ lsrs r0, r1, 8
+ str r0, [r5, 0xC]
+ mov r0, r8
+ lsls r4, r0, 24
+ lsrs r4, 24
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_80C3990
+ strb r0, [r5, 0x11]
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_80C39E4
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0
+ bge _080C4060
+ negs r0, r0
+_080C4060:
+ strb r0, [r5, 0x12]
+ ldr r0, _080C40A8
+ add r0, r8
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080C40B4
+ ldr r4, [r5, 0x8]
+ ldrh r2, [r5, 0x8]
+ ldr r3, [r5, 0xC]
+ ldrh r1, [r5, 0xC]
+ ldrb r0, [r5, 0x10]
+ cmp r0, 0
+ beq _080C4080
+ lsls r0, r1, 16
+ negs r0, r0
+ lsrs r1, r0, 16
+_080C4080:
+ lsls r0, r2, 16
+ asrs r2, r0, 16
+ lsls r0, r1, 16
+ asrs r1, r0, 16
+ adds r0, r2, r1
+ cmp r0, 0x58
+ bne _080C40B4
+ cmp r1, 0
+ ble _080C40AC
+ subs r0, r3, 0x1
+ str r0, [r5, 0xC]
+ b _080C40B4
+ .align 2, 0
+_080C4098: .4byte gUnknown_02038678
+_080C409C: .4byte gUnknown_02038670
+_080C40A0: .4byte 0x02018018
+_080C40A4: .4byte gUnknown_02038688
+_080C40A8: .4byte gUnknown_02038690
+_080C40AC:
+ cmp r2, 0
+ ble _080C40B4
+ subs r0, r4, 0x1
+ str r0, [r5, 0x8]
+_080C40B4:
+ movs r1, 0x14
+ add r10, r1
+ movs r2, 0x1
+ add r8, r2
+ mov r4, r8
+ cmp r4, 0x3
+ bgt _080C40C4
+ b _080C3F68
+_080C40C4:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80C3F00
+
+ thumb_func_start sub_80C40D4
+sub_80C40D4: @ 80C40D4
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ lsls r0, 24
+ lsls r1, 24
+ lsrs r7, r1, 24
+ movs r1, 0
+ mov r10, r1
+ movs r2, 0
+ str r2, [sp]
+ cmp r0, 0
+ bne _080C4198
+ mov r8, r2
+ ldr r0, _080C417C
+ subs r1, 0x18
+ adds r1, r0
+ mov r9, r1
+ adds r4, r0, 0
+ adds r4, 0x8
+ movs r6, 0xA0
+_080C4102:
+ ldrb r0, [r4, 0x9]
+ cmp r7, r0
+ bcs _080C416A
+ adds r0, 0x13
+ adds r0, r6, r0
+ subs r0, r7
+ lsls r0, 1
+ ldr r2, _080C4180
+ adds r0, r2
+ ldr r2, _080C4184
+ adds r1, r2, 0
+ strh r1, [r0]
+ ldr r0, _080C4188
+ movs r1, 0xA
+ bl CreateTask
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, [r4]
+ lsls r0, 16
+ ldrb r1, [r4, 0x9]
+ bl __udivsi3
+ adds r1, r7, 0x1
+ adds r3, r0, 0
+ muls r3, r1
+ ldr r0, _080C418C
+ ands r0, r3
+ ldr r1, _080C4190
+ cmp r0, r1
+ bls _080C4146
+ movs r0, 0x80
+ lsls r0, 9
+ adds r3, r0
+_080C4146:
+ ldr r1, _080C4194
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ mov r1, r8
+ strh r1, [r0, 0x8]
+ lsrs r1, r3, 16
+ strh r1, [r0, 0xA]
+ mov r2, r9
+ ldrb r0, [r2, 0x14]
+ adds r0, 0x1
+ strb r0, [r2, 0x14]
+ mov r0, r10
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r10, r0
+_080C416A:
+ adds r4, 0x14
+ adds r6, 0x60
+ movs r0, 0x1
+ add r8, r0
+ mov r1, r8
+ cmp r1, 0x3
+ ble _080C4102
+ b _080C4292
+ .align 2, 0
+_080C417C: .4byte 0x02018018
+_080C4180: .4byte 0x0600bffe
+_080C4184: .4byte 0x000060b3
+_080C4188: .4byte sub_80C42C0
+_080C418C: .4byte 0x0000ffff
+_080C4190: .4byte 0x00007fff
+_080C4194: .4byte gTasks
+_080C4198:
+ movs r2, 0
+ mov r8, r2
+ ldr r0, _080C4220
+ mov r12, r0
+ mov r9, r2
+ movs r1, 0xC0
+ str r1, [sp, 0x4]
+_080C41A6:
+ mov r6, r9
+ add r6, r12
+ ldrb r1, [r6, 0x12]
+ ldrb r0, [r6, 0x10]
+ ldr r2, _080C4224
+ cmp r0, 0
+ beq _080C41B6
+ adds r2, 0x2
+_080C41B6:
+ lsls r0, r1, 24
+ asrs r0, 24
+ cmp r7, r0
+ bge _080C427E
+ adds r0, 0x13
+ ldr r1, [sp, 0x4]
+ adds r0, r1, r0
+ subs r0, r7
+ lsls r0, 1
+ ldr r1, _080C4228
+ adds r0, r1
+ strh r2, [r0]
+ ldr r0, _080C422C
+ movs r1, 0xA
+ bl CreateTask
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, [r6, 0xC]
+ lsls r0, 16
+ ldrb r1, [r6, 0x12]
+ bl __udivsi3
+ adds r1, r7, 0x1
+ adds r3, r0, 0
+ muls r3, r1
+ ldr r0, _080C4230
+ ands r0, r3
+ ldr r1, _080C4234
+ cmp r0, r1
+ bls _080C41FA
+ movs r2, 0x80
+ lsls r2, 9
+ adds r3, r2
+_080C41FA:
+ ldr r1, _080C4238
+ lsls r2, r5, 2
+ adds r0, r2, r5
+ lsls r0, 3
+ adds r4, r0, r1
+ mov r0, r8
+ strh r0, [r4, 0x8]
+ ldrb r0, [r6, 0x10]
+ adds r6, r1, 0
+ cmp r0, 0
+ beq _080C423C
+ movs r0, 0x1
+ strh r0, [r4, 0xC]
+ ldr r0, [sp]
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp]
+ b _080C4246
+ .align 2, 0
+_080C4220: .4byte 0x02018018
+_080C4224: .4byte 0x000060a3
+_080C4228: .4byte 0x0600bffe
+_080C422C: .4byte sub_80C42C0
+_080C4230: .4byte 0x0000ffff
+_080C4234: .4byte 0x00007fff
+_080C4238: .4byte gTasks
+_080C423C:
+ mov r0, r10
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r10, r0
+_080C4246:
+ ldr r0, _080C4264
+ mov r1, r9
+ adds r4, r1, r0
+ ldrb r1, [r4, 0x10]
+ mov r12, r0
+ cmp r1, 0
+ beq _080C4268
+ adds r0, r2, r5
+ lsls r0, 3
+ adds r0, r6
+ lsrs r2, r3, 16
+ ldr r1, [r4, 0x8]
+ subs r1, r2
+ b _080C4274
+ .align 2, 0
+_080C4264: .4byte 0x02018018
+_080C4268:
+ adds r0, r2, r5
+ lsls r0, 3
+ adds r0, r6
+ lsrs r2, r3, 16
+ ldr r1, [r4, 0x8]
+ adds r1, r2
+_080C4274:
+ strh r1, [r0, 0xA]
+ ldr r1, _080C42BC
+ ldrb r0, [r1, 0x14]
+ adds r0, 0x1
+ strb r0, [r1, 0x14]
+_080C427E:
+ movs r2, 0x14
+ add r9, r2
+ ldr r0, [sp, 0x4]
+ adds r0, 0x60
+ str r0, [sp, 0x4]
+ movs r1, 0x1
+ add r8, r1
+ mov r2, r8
+ cmp r2, 0x3
+ ble _080C41A6
+_080C4292:
+ ldr r0, [sp]
+ cmp r0, 0
+ beq _080C429E
+ movs r0, 0x16
+ bl PlaySE
+_080C429E:
+ mov r1, r10
+ cmp r1, 0
+ beq _080C42AA
+ movs r0, 0x15
+ bl PlaySE
+_080C42AA:
+ add sp, 0x8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C42BC: .4byte 0x02018000
+ thumb_func_end sub_80C40D4
+
+ thumb_func_start sub_80C42C0
+sub_80C42C0: @ 80C42C0
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ lsls r0, 24
+ lsrs r0, 24
+ mov r12, r0
+ movs r6, 0
+ mov r9, r6
+ ldr r1, _080C4308
+ lsls r0, 2
+ add r0, r12
+ lsls r0, 3
+ adds r0, r1
+ ldrb r5, [r0, 0x8]
+ ldrh r7, [r0, 0xA]
+ ldrh r1, [r0, 0xC]
+ mov r8, r1
+ movs r2, 0xC
+ ldrsh r0, [r0, r2]
+ cmp r0, 0
+ beq _080C4310
+ ldr r1, _080C430C
+ lsls r2, r5, 1
+ adds r0, r1, 0
+ adds r0, 0xC
+ adds r0, r2, r0
+ movs r3, 0
+ ldrsh r0, [r0, r3]
+ mov r10, r1
+ adds r4, r2, 0
+ cmp r0, 0
+ bgt _080C4328
+ b _080C4326
+ .align 2, 0
+_080C4308: .4byte gTasks
+_080C430C: .4byte 0x02018000
+_080C4310:
+ ldr r1, _080C4350
+ lsls r2, r5, 1
+ adds r0, r1, 0
+ adds r0, 0xC
+ adds r0, r2, r0
+ movs r3, 0
+ ldrsh r0, [r0, r3]
+ mov r10, r1
+ adds r4, r2, 0
+ cmp r0, 0x57
+ ble _080C4328
+_080C4326:
+ movs r6, 0x1
+_080C4328:
+ mov r0, r10
+ adds r0, 0xC
+ adds r3, r4, r0
+ ldrh r2, [r3]
+ movs r0, 0
+ ldrsh r1, [r3, r0]
+ lsls r0, r7, 16
+ asrs r0, 16
+ cmp r1, r0
+ bne _080C4340
+ movs r1, 0x1
+ mov r9, r1
+_080C4340:
+ mov r0, r9
+ cmp r0, 0
+ bne _080C4362
+ cmp r6, 0
+ beq _080C4354
+ strh r7, [r3]
+ b _080C4362
+ .align 2, 0
+_080C4350: .4byte 0x02018000
+_080C4354:
+ mov r1, r8
+ cmp r1, 0
+ beq _080C435E
+ subs r0, r2, 0x1
+ b _080C4360
+_080C435E:
+ adds r0, r2, 0x1
+_080C4360:
+ strh r0, [r3]
+_080C4362:
+ cmp r6, 0
+ bne _080C43C8
+ mov r2, r9
+ cmp r2, 0
+ bne _080C43CE
+ movs r2, 0
+ ldr r0, _080C4388
+ adds r6, r4, r0
+ adds r0, r4, r5
+ lsls r5, r0, 5
+_080C4376:
+ movs r0, 0
+ ldrsh r3, [r6, r0]
+ adds r0, r2, 0x1
+ lsls r1, r0, 3
+ adds r4, r0, 0
+ cmp r3, r1
+ blt _080C438C
+ movs r0, 0x8
+ b _080C43A8
+ .align 2, 0
+_080C4388: .4byte 0x0201800c
+_080C438C:
+ lsls r0, r2, 3
+ cmp r3, r0
+ blt _080C43A6
+ adds r0, r3, 0
+ cmp r3, 0
+ bge _080C439A
+ adds r0, r3, 0x7
+_080C439A:
+ asrs r0, 3
+ lsls r0, 3
+ subs r0, r3, r0
+ lsls r0, 24
+ lsrs r0, 24
+ b _080C43A8
+_080C43A6:
+ movs r0, 0
+_080C43A8:
+ cmp r0, 0x3
+ bhi _080C43B4
+ ldr r3, _080C43B0
+ b _080C43B6
+ .align 2, 0
+_080C43B0: .4byte 0x0000504c
+_080C43B4:
+ ldr r3, _080C43EC
+_080C43B6:
+ adds r1, r0, r3
+ adds r0, r5, r2
+ lsls r0, 1
+ ldr r2, _080C43F0
+ adds r0, r2
+ strh r1, [r0]
+ adds r2, r4, 0
+ cmp r2, 0xA
+ ble _080C4376
+_080C43C8:
+ mov r3, r9
+ cmp r3, 0
+ beq _080C43DC
+_080C43CE:
+ mov r1, r10
+ ldrb r0, [r1, 0x14]
+ subs r0, 0x1
+ strb r0, [r1, 0x14]
+ mov r0, r12
+ bl DestroyTask
+_080C43DC:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C43EC: .4byte 0x00005057
+_080C43F0: .4byte 0x0600e18e
+ thumb_func_end sub_80C42C0
+
+ thumb_func_start sub_80C43F4
+sub_80C43F4: @ 80C43F4
+ push {r4,r5,lr}
+ ldr r0, _080C442C
+ ldrb r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _080C4430
+ adds r0, r1
+ bl sub_80AE47C
+ lsls r0, 24
+ lsrs r0, 24
+ adds r5, r0, 0
+ cmp r5, 0
+ beq _080C4422
+ ldr r4, _080C4434
+ ldrb r0, [r4]
+ ldr r1, _080C4438
+ ldrb r1, [r1]
+ bl sub_80AE398
+ ldrb r0, [r4]
+ bl sub_80AE82C
+_080C4422:
+ ldr r0, _080C443C
+ strh r5, [r0]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C442C: .4byte gUnknown_02038694
+_080C4430: .4byte gPlayerParty
+_080C4434: .4byte gUnknown_0203869C
+_080C4438: .4byte gUnknown_0203869E
+_080C443C: .4byte gScriptResult
+ thumb_func_end sub_80C43F4
+
+ thumb_func_start sub_80C4440
+sub_80C4440: @ 80C4440
+ push {r4,lr}
+ movs r4, 0
+ ldr r0, _080C4464
+ ldrb r1, [r0]
+ movs r0, 0x64
+ muls r1, r0
+ ldr r0, _080C4468
+ adds r2, r1, r0
+ ldr r0, _080C446C
+ ldrh r0, [r0]
+ cmp r0, 0x4
+ bhi _080C44B2
+ lsls r0, 2
+ ldr r1, _080C4470
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080C4464: .4byte gUnknown_02038694
+_080C4468: .4byte gPlayerParty
+_080C446C: .4byte gUnknown_0203869C
+_080C4470: .4byte _080C4474
+ .align 2, 0
+_080C4474:
+ .4byte _080C4488
+ .4byte _080C448E
+ .4byte _080C4494
+ .4byte _080C449A
+ .4byte _080C44A0
+_080C4488:
+ adds r0, r2, 0
+ movs r1, 0x32
+ b _080C44A4
+_080C448E:
+ adds r0, r2, 0
+ movs r1, 0x33
+ b _080C44A4
+_080C4494:
+ adds r0, r2, 0
+ movs r1, 0x34
+ b _080C44A4
+_080C449A:
+ adds r0, r2, 0
+ movs r1, 0x35
+ b _080C44A4
+_080C44A0:
+ adds r0, r2, 0
+ movs r1, 0x36
+_080C44A4:
+ bl GetMonData
+ ldr r1, _080C44BC
+ ldrh r1, [r1]
+ cmp r0, r1
+ bls _080C44B2
+ movs r4, 0x1
+_080C44B2:
+ adds r0, r4, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080C44BC: .4byte gUnknown_0203869E
+ thumb_func_end sub_80C4440
+
+ thumb_func_start sub_80C44C0
+sub_80C44C0: @ 80C44C0
+ push {r4-r7,lr}
+ sub sp, 0x4
+ ldr r1, _080C44E8
+ ldr r0, _080C44EC
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080C44D4
+ b _080C465E
+_080C44D4:
+ ldr r0, _080C44F0
+ ldrh r0, [r0]
+ cmp r0, 0x4
+ bls _080C44DE
+ b _080C465E
+_080C44DE:
+ lsls r0, 2
+ ldr r1, _080C44F4
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080C44E8: .4byte gUnknown_02038690
+_080C44EC: .4byte gUnknown_02038695
+_080C44F0: .4byte gUnknown_0203869C
+_080C44F4: .4byte _080C44F8
+ .align 2, 0
+_080C44F8:
+ .4byte _080C450C
+ .4byte _080C4554
+ .4byte _080C4598
+ .4byte _080C45DC
+ .4byte _080C4624
+_080C450C:
+ ldr r6, _080C4548
+ ldrb r0, [r6]
+ movs r5, 0x64
+ muls r0, r5
+ ldr r4, _080C454C
+ adds r0, r4
+ movs r1, 0x32
+ bl GetMonData
+ lsls r0, 24
+ lsrs r1, r0, 24
+ mov r0, sp
+ strb r1, [r0]
+ ldr r0, _080C4550
+ ldrh r0, [r0]
+ cmp r1, r0
+ bls _080C4530
+ b _080C465E
+_080C4530:
+ adds r0, r1, 0
+ cmp r0, 0x3
+ bls _080C4538
+ b _080C465E
+_080C4538:
+ adds r1, r0, 0x1
+ mov r0, sp
+ strb r1, [r0]
+ ldrb r0, [r6]
+ muls r0, r5
+ adds r0, r4
+ movs r1, 0x32
+ b _080C4610
+ .align 2, 0
+_080C4548: .4byte gUnknown_02038694
+_080C454C: .4byte gPlayerParty
+_080C4550: .4byte gUnknown_0203869E
+_080C4554:
+ mov r4, sp
+ ldr r7, _080C458C
+ ldrb r0, [r7]
+ movs r6, 0x64
+ muls r0, r6
+ ldr r5, _080C4590
+ adds r0, r5
+ movs r1, 0x33
+ bl GetMonData
+ strb r0, [r4]
+ mov r0, sp
+ ldrb r2, [r0]
+ ldr r0, _080C4594
+ ldrh r0, [r0]
+ cmp r2, r0
+ bhi _080C465E
+ cmp r2, 0x3
+ bhi _080C465E
+ mov r1, sp
+ adds r0, r2, 0x1
+ strb r0, [r1]
+ ldrb r0, [r7]
+ muls r0, r6
+ adds r0, r5
+ movs r1, 0x33
+ b _080C4610
+ .align 2, 0
+_080C458C: .4byte gUnknown_02038694
+_080C4590: .4byte gPlayerParty
+_080C4594: .4byte gUnknown_0203869E
+_080C4598:
+ mov r4, sp
+ ldr r7, _080C45D0
+ ldrb r0, [r7]
+ movs r6, 0x64
+ muls r0, r6
+ ldr r5, _080C45D4
+ adds r0, r5
+ movs r1, 0x34
+ bl GetMonData
+ strb r0, [r4]
+ mov r0, sp
+ ldrb r2, [r0]
+ ldr r0, _080C45D8
+ ldrh r0, [r0]
+ cmp r2, r0
+ bhi _080C465E
+ cmp r2, 0x3
+ bhi _080C465E
+ mov r1, sp
+ adds r0, r2, 0x1
+ strb r0, [r1]
+ ldrb r0, [r7]
+ muls r0, r6
+ adds r0, r5
+ movs r1, 0x34
+ b _080C4610
+ .align 2, 0
+_080C45D0: .4byte gUnknown_02038694
+_080C45D4: .4byte gPlayerParty
+_080C45D8: .4byte gUnknown_0203869E
+_080C45DC:
+ mov r4, sp
+ ldr r7, _080C4618
+ ldrb r0, [r7]
+ movs r6, 0x64
+ muls r0, r6
+ ldr r5, _080C461C
+ adds r0, r5
+ movs r1, 0x35
+ bl GetMonData
+ strb r0, [r4]
+ mov r0, sp
+ ldrb r2, [r0]
+ ldr r0, _080C4620
+ ldrh r0, [r0]
+ cmp r2, r0
+ bhi _080C465E
+ cmp r2, 0x3
+ bhi _080C465E
+ mov r1, sp
+ adds r0, r2, 0x1
+ strb r0, [r1]
+ ldrb r0, [r7]
+ muls r0, r6
+ adds r0, r5
+ movs r1, 0x35
+_080C4610:
+ mov r2, sp
+ bl SetMonData
+ b _080C465E
+ .align 2, 0
+_080C4618: .4byte gUnknown_02038694
+_080C461C: .4byte gPlayerParty
+_080C4620: .4byte gUnknown_0203869E
+_080C4624:
+ mov r4, sp
+ ldr r7, _080C4668
+ ldrb r0, [r7]
+ movs r6, 0x64
+ muls r0, r6
+ ldr r5, _080C466C
+ adds r0, r5
+ movs r1, 0x36
+ bl GetMonData
+ strb r0, [r4]
+ mov r0, sp
+ ldrb r2, [r0]
+ ldr r0, _080C4670
+ ldrh r0, [r0]
+ cmp r2, r0
+ bhi _080C465E
+ cmp r2, 0x3
+ bhi _080C465E
+ mov r1, sp
+ adds r0, r2, 0x1
+ strb r0, [r1]
+ ldrb r0, [r7]
+ muls r0, r6
+ adds r0, r5
+ movs r1, 0x36
+ mov r2, sp
+ bl SetMonData
+_080C465E:
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C4668: .4byte gUnknown_02038694
+_080C466C: .4byte gPlayerParty
+_080C4670: .4byte gUnknown_0203869E
+ thumb_func_end sub_80C44C0
+
+ thumb_func_start sub_80C4674
+sub_80C4674: @ 80C4674
+ push {r4,lr}
+ adds r4, r0, 0
+ bl StringCopy
+ ldrb r0, [r4]
+ cmp r0, 0xFC
+ bne _080C4690
+ ldrb r0, [r4, 0x1]
+ cmp r0, 0x15
+ bne _080C4690
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl ConvertInternationalString
+_080C4690:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80C4674
+
+ thumb_func_start sub_80C4698
+sub_80C4698: @ 80C4698
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ lsls r1, 24
+ lsrs r4, r1, 24
+ lsls r1, r4, 6
+ ldr r0, _080C46E0
+ adds r1, r0
+ adds r0, r5, 0
+ bl StringCopy
+ ldr r0, _080C46E4
+ ldrb r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080C46DA
+ ldr r0, _080C46E8
+ lsls r1, r4, 3
+ subs r1, r4
+ lsls r1, 2
+ adds r1, r0
+ ldrh r0, [r1, 0x1A]
+ cmp r0, 0x1
+ bne _080C46DA
+ adds r0, r5, 0
+ bl sub_80C86A0
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r5, 0
+ bl ConvertInternationalString
+_080C46DA:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C46E0: .4byte gUnknown_02038572
+_080C46E4: .4byte gUnknown_0203869A
+_080C46E8: .4byte gLinkPlayers
+ thumb_func_end sub_80C4698
+
+ thumb_func_start sub_80C46EC
+sub_80C46EC: @ 80C46EC
+ push {lr}
+ ldr r0, _080C4710
+ ldrb r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080C4720
+ ldr r0, _080C4714
+ ldr r1, _080C4718
+ ldrh r2, [r1]
+ lsls r1, r2, 3
+ subs r1, r2
+ lsls r1, 2
+ ldr r2, _080C471C
+ adds r1, r2
+ bl sub_80C4674
+ b _080C4730
+ .align 2, 0
+_080C4710: .4byte gUnknown_0203869A
+_080C4714: .4byte gStringVar1
+_080C4718: .4byte gUnknown_0202E8D0
+_080C471C: .4byte gLinkPlayers + 0x8
+_080C4720:
+ ldr r0, _080C4734
+ ldr r1, _080C4738
+ ldrh r1, [r1]
+ lsls r1, 6
+ ldr r2, _080C473C
+ adds r1, r2
+ bl sub_80C4674
+_080C4730:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C4734: .4byte gStringVar1
+_080C4738: .4byte gUnknown_0202E8D0
+_080C473C: .4byte gUnknown_0203857D
+ thumb_func_end sub_80C46EC
+
+ thumb_func_start sub_80C4740
+sub_80C4740: @ 80C4740
+ push {lr}
+ ldr r0, _080C4750
+ ldr r1, _080C4754
+ ldrb r1, [r1]
+ bl sub_80C4698
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C4750: .4byte gStringVar3
+_080C4754: .4byte gUnknown_0202E8D0
+ thumb_func_end sub_80C4740
+
+ thumb_func_start sub_80C4758
+sub_80C4758: @ 80C4758
+ push {r4-r6,lr}
+ movs r1, 0
+ movs r2, 0
+ ldr r5, _080C4794
+ ldr r4, _080C4798
+ ldr r0, _080C479C
+ ldrh r0, [r0]
+ lsls r0, 1
+ adds r0, r4
+ movs r6, 0
+ ldrsh r3, [r0, r6]
+_080C476E:
+ lsls r0, r1, 1
+ adds r0, r4
+ movs r6, 0
+ ldrsh r0, [r0, r6]
+ cmp r3, r0
+ bge _080C4780
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+_080C4780:
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x3
+ bls _080C476E
+ strh r2, [r5]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C4794: .4byte gUnknown_0202E8CC
+_080C4798: .4byte gUnknown_02038670
+_080C479C: .4byte gUnknown_0202E8D0
+ thumb_func_end sub_80C4758
+
+ thumb_func_start sub_80C47A0
+sub_80C47A0: @ 80C47A0
+ ldr r2, _080C47B4
+ ldr r1, _080C47B8
+ ldr r0, _080C47BC
+ ldrh r0, [r0]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ strh r0, [r2]
+ bx lr
+ .align 2, 0
+_080C47B4: .4byte gUnknown_0202E8CC
+_080C47B8: .4byte gUnknown_02038670
+_080C47BC: .4byte gUnknown_0202E8D0
+ thumb_func_end sub_80C47A0
+
+ thumb_func_start sub_80C47C0
+sub_80C47C0: @ 80C47C0
+ push {lr}
+ movs r1, 0
+ ldr r2, _080C47E8
+ ldrb r0, [r2]
+ ldr r3, _080C47EC
+ cmp r0, 0
+ beq _080C47E0
+_080C47CE:
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x3
+ bhi _080C47E0
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080C47CE
+_080C47E0:
+ strh r1, [r3]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C47E8: .4byte gUnknown_02038690
+_080C47EC: .4byte gUnknown_0202E8CE
+ thumb_func_end sub_80C47C0
+
+ thumb_func_start sub_80C47F0
+sub_80C47F0: @ 80C47F0
+ push {r4,lr}
+ movs r2, 0
+ ldr r3, _080C4830
+ ldrb r0, [r3]
+ ldr r1, _080C4834
+ ldr r4, _080C4838
+ cmp r0, 0
+ beq _080C4812
+_080C4800:
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x3
+ bhi _080C4812
+ adds r0, r2, r3
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080C4800
+_080C4812:
+ ldrb r1, [r1]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080C4840
+ lsls r1, r2, 3
+ subs r1, r2
+ lsls r1, 2
+ ldr r0, _080C483C
+ adds r1, r0
+ adds r0, r4, 0
+ bl sub_80C4674
+ b _080C484C
+ .align 2, 0
+_080C4830: .4byte gUnknown_02038690
+_080C4834: .4byte gUnknown_0203869A
+_080C4838: .4byte gStringVar3
+_080C483C: .4byte gLinkPlayers + 0x8
+_080C4840:
+ lsls r1, r2, 6
+ ldr r0, _080C4854
+ adds r1, r0
+ adds r0, r4, 0
+ bl sub_80C4674
+_080C484C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C4854: .4byte gUnknown_0203857D
+ thumb_func_end sub_80C47F0
+
+ thumb_func_start sub_80C4858
+sub_80C4858: @ 80C4858
+ push {lr}
+ movs r1, 0
+ ldr r2, _080C4884
+ ldrb r0, [r2]
+ ldr r3, _080C4888
+ cmp r0, 0
+ beq _080C4878
+_080C4866:
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x3
+ bhi _080C4878
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080C4866
+_080C4878:
+ adds r0, r3, 0
+ bl sub_80C4698
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C4884: .4byte gUnknown_02038690
+_080C4888: .4byte gStringVar1
+ thumb_func_end sub_80C4858
+
+ thumb_func_start sub_80C488C
+sub_80C488C: @ 80C488C
+ push {lr}
+ ldr r0, _080C4898
+ bl SetMainCallback2
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C4898: .4byte sub_80AB47C
+ thumb_func_end sub_80C488C
+
+ thumb_func_start sub_80C489C
+sub_80C489C: @ 80C489C
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r0, _080C48C0
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080C48BA
+ adds r0, r2, 0
+ bl DestroyTask
+ ldr r0, _080C48C4
+ bl SetMainCallback2
+_080C48BA:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C48C0: .4byte gPaletteFade
+_080C48C4: .4byte sub_80C488C
+ thumb_func_end sub_80C489C
+
+ thumb_func_start sub_80C48C8
+sub_80C48C8: @ 80C48C8
+ push {lr}
+ sub sp, 0x4
+ bl ScriptContext2_Enable
+ ldr r0, _080C48F0
+ movs r1, 0xA
+ bl CreateTask
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C48F0: .4byte sub_80C489C
+ thumb_func_end sub_80C48C8
+
+ thumb_func_start sub_80C48F4
+sub_80C48F4: @ 80C48F4
+ ldr r2, _080C4908
+ ldr r1, _080C490C
+ ldr r0, _080C4910
+ ldrh r0, [r0]
+ lsls r0, 6
+ adds r0, r1
+ ldrh r0, [r0]
+ strh r0, [r2]
+ bx lr
+ .align 2, 0
+_080C4908: .4byte gUnknown_0202E8CC
+_080C490C: .4byte gUnknown_02038570
+_080C4910: .4byte gUnknown_0202E8D0
+ thumb_func_end sub_80C48F4
+
+ thumb_func_start sub_80C4914
+sub_80C4914: @ 80C4914
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r0, _080C4938
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080C4932
+ adds r0, r2, 0
+ bl DestroyTask
+ ldr r0, _080C493C
+ bl SetMainCallback2
+_080C4932:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C4938: .4byte gPaletteFade
+_080C493C: .4byte sub_80C2358
+ thumb_func_end sub_80C4914
+
+ thumb_func_start sub_80C4940
+sub_80C4940: @ 80C4940
+ push {lr}
+ sub sp, 0x4
+ bl ScriptContext2_Enable
+ ldr r0, _080C4968
+ movs r1, 0xA
+ bl CreateTask
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C4968: .4byte sub_80C4914
+ thumb_func_end sub_80C4940
+
+ thumb_func_start sub_80C496C
+sub_80C496C: @ 80C496C
+ ldr r0, _080C4978
+ ldr r1, _080C497C
+ ldrb r1, [r1]
+ strh r1, [r0]
+ bx lr
+ .align 2, 0
+_080C4978: .4byte gUnknown_0202E8CC
+_080C497C: .4byte gUnknown_02038695
+ thumb_func_end sub_80C496C
+
+ thumb_func_start sub_80C4980
+sub_80C4980: @ 80C4980
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ bl ScriptContext2_Enable
+ ldr r6, _080C49B8
+ adds r0, r6, 0
+ movs r1, 0
+ bl CreateTask
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r2, _080C49BC
+ adds r0, r4, 0
+ adds r1, r6, 0
+ bl SetTaskFuncWithFollowupFunc
+ ldr r1, _080C49C0
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ strh r5, [r0, 0x1A]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C49B8: .4byte sub_80C8604
+_080C49BC: .4byte sub_80C49C4
+_080C49C0: .4byte gTasks
+ thumb_func_end sub_80C4980
+
+ thumb_func_start sub_80C49C4
+sub_80C49C4: @ 80C49C4
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _080C49E4
+ ldrb r0, [r0]
+ bl sub_80AE098
+ ldr r1, _080C49E8
+ ldr r2, _080C49EC
+ adds r0, r4, 0
+ bl SetTaskFuncWithFollowupFunc
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C49E4: .4byte gUnknown_02038694
+_080C49E8: .4byte sub_80C8734
+_080C49EC: .4byte sub_80C49F0
+ thumb_func_end sub_80C49C4
+
+ thumb_func_start sub_80C49F0
+sub_80C49F0: @ 80C49F0
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _080C4A04
+ ldr r2, _080C4A08
+ bl SetTaskFuncWithFollowupFunc
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C4A04: .4byte sub_80C88AC
+_080C4A08: .4byte sub_80C4A0C
+ thumb_func_end sub_80C49F0
+
+ thumb_func_start sub_80C4A0C
+sub_80C4A0C: @ 80C4A0C
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _080C4A20
+ ldr r2, _080C4A24
+ bl SetTaskFuncWithFollowupFunc
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C4A20: .4byte sub_80C8E1C
+_080C4A24: .4byte sub_80C4A28
+ thumb_func_end sub_80C4A0C
+
+ thumb_func_start sub_80C4A28
+sub_80C4A28: @ 80C4A28
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _080C4A3C
+ ldr r2, _080C4A40
+ bl SetTaskFuncWithFollowupFunc
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C4A3C: .4byte sub_80C8938
+_080C4A40: .4byte sub_80C4A44
+ thumb_func_end sub_80C4A28
+
+ thumb_func_start sub_80C4A44
+sub_80C4A44: @ 80C4A44
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x8
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r3, 0
+ ldr r0, _080C4AA0
+ mov r8, r0
+ add r1, sp, 0x4
+ mov r12, r1
+ lsls r1, r5, 2
+ adds r0, r1, r5
+ lsls r4, r0, 3
+ ldr r6, _080C4AA4
+ adds r7, r1, 0
+_080C4A64:
+ mov r0, sp
+ adds r2, r0, r3
+ adds r1, r3, 0x1
+ lsls r0, r1, 1
+ adds r0, r4
+ adds r0, r6
+ ldrh r0, [r0]
+ strb r0, [r2]
+ lsls r1, 24
+ lsrs r3, r1, 24
+ cmp r3, 0x3
+ bls _080C4A64
+ movs r3, 0
+ mov r2, sp
+_080C4A80:
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x3
+ bhi _080C4A96
+ mov r0, sp
+ adds r1, r0, r3
+ ldrb r0, [r2]
+ ldrb r1, [r1]
+ cmp r0, r1
+ beq _080C4A80
+_080C4A96:
+ cmp r3, 0x4
+ bne _080C4AA8
+ movs r0, 0
+ b _080C4AAA
+ .align 2, 0
+_080C4AA0: .4byte gUnknown_0202E8CC
+_080C4AA4: .4byte gUnknown_03004B28
+_080C4AA8:
+ movs r0, 0x1
+_080C4AAA:
+ mov r1, r8
+ strh r0, [r1]
+ movs r3, 0
+ mov r4, r12
+ adds r0, r7, r5
+ lsls r2, r0, 3
+ ldr r6, _080C4AF8
+_080C4AB8:
+ adds r1, r4, r3
+ adds r0, r3, 0x5
+ lsls r0, 1
+ adds r0, r2
+ adds r0, r6
+ ldrh r0, [r0]
+ strb r0, [r1]
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x3
+ bls _080C4AB8
+ mov r0, r12
+ bl sub_80C4B34
+ ldr r1, _080C4AFC
+ strb r0, [r1]
+ ldr r0, _080C4B00
+ ldrb r0, [r0]
+ bl sub_80AE82C
+ ldr r1, _080C4B04
+ ldr r2, _080C4B08
+ adds r0, r5, 0
+ bl SetTaskFuncWithFollowupFunc
+ add sp, 0x8
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C4AF8: .4byte gUnknown_03004B28
+_080C4AFC: .4byte gUnknown_0203869B
+_080C4B00: .4byte gUnknown_0203869C
+_080C4B04: .4byte sub_80C8EBC
+_080C4B08: .4byte sub_80C4B0C
+ thumb_func_end sub_80C4A44
+
+ thumb_func_start sub_80C4B0C
+sub_80C4B0C: @ 80C4B0C
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0
+ bl sub_80B0F28
+ ldr r1, _080C4B2C
+ ldr r2, _080C4B30
+ adds r0, r4, 0
+ bl SetTaskFuncWithFollowupFunc
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C4B2C: .4byte sub_80C8F34
+_080C4B30: .4byte sub_80C4B5C
+ thumb_func_end sub_80C4B0C
+
+ thumb_func_start sub_80C4B34
+sub_80C4B34: @ 80C4B34
+ push {r4,lr}
+ adds r3, r0, 0
+ movs r4, 0
+ movs r2, 0x1
+_080C4B3C:
+ adds r0, r3, r4
+ adds r1, r3, r2
+ ldrb r0, [r0]
+ ldrb r1, [r1]
+ cmp r0, r1
+ bcs _080C4B4C
+ lsls r0, r2, 24
+ lsrs r4, r0, 24
+_080C4B4C:
+ adds r2, 0x1
+ cmp r2, 0x3
+ ble _080C4B3C
+ adds r0, r4, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80C4B34
+
+ thumb_func_start sub_80C4B5C
+sub_80C4B5C: @ 80C4B5C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _080C4B84
+ ldrh r0, [r0]
+ cmp r0, 0x1
+ bne _080C4B90
+ bl sub_8007ECC
+ lsls r0, 24
+ cmp r0, 0
+ beq _080C4B9E
+ ldr r0, _080C4B88
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _080C4B8C
+ str r0, [r1]
+ b _080C4B9E
+ .align 2, 0
+_080C4B84: .4byte gUnknown_0202E8CC
+_080C4B88: .4byte gTasks
+_080C4B8C: .4byte sub_80C4BA4
+_080C4B90:
+ adds r0, r4, 0
+ bl DestroyTask
+ bl ScriptContext2_Disable
+ bl EnableBothScriptContexts
+_080C4B9E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80C4B5C
+
+ thumb_func_start sub_80C4BA4
+sub_80C4BA4: @ 80C4BA4
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl sub_800832C
+ ldr r1, _080C4BC4
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080C4BC8
+ str r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C4BC4: .4byte gTasks
+_080C4BC8: .4byte sub_80C4BCC
+ thumb_func_end sub_80C4BA4
+
+ thumb_func_start sub_80C4BCC
+sub_80C4BCC: @ 80C4BCC
+ push {lr}
+ lsls r0, 24
+ lsrs r1, r0, 24
+ ldr r0, _080C4BEC
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080C4BE8
+ adds r0, r1, 0
+ bl DestroyTask
+ bl ScriptContext2_Disable
+ bl EnableBothScriptContexts
+_080C4BE8:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C4BEC: .4byte gReceivedRemoteLinkPlayers
+ thumb_func_end sub_80C4BCC
+
+ thumb_func_start sub_80C4BF0
+sub_80C4BF0: @ 80C4BF0
+ push {r4,lr}
+ ldr r2, _080C4C1C
+ ldr r1, _080C4C20
+ ldrb r3, [r1, 0x15]
+ movs r4, 0x9B
+ lsls r4, 5
+ adds r0, r2, r4
+ strh r3, [r0]
+ adds r0, r1, 0
+ adds r0, 0x55
+ ldrb r3, [r0]
+ adds r4, 0x2
+ adds r0, r2, r4
+ strh r3, [r0]
+ adds r1, 0x95
+ ldrb r0, [r1]
+ ldr r1, _080C4C24
+ adds r2, r1
+ strh r0, [r2]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C4C1C: .4byte gSaveBlock1
+_080C4C20: .4byte gUnknown_02038570
+_080C4C24: .4byte 0x00001364
+ thumb_func_end sub_80C4BF0
+
+ thumb_func_start sub_80C4C28
+sub_80C4C28: @ 80C4C28
+ push {lr}
+ ldr r0, _080C4C40
+ ldrb r0, [r0]
+ adds r1, r0, 0
+ cmp r0, 0x1
+ beq _080C4C4E
+ cmp r0, 0x1
+ bgt _080C4C44
+ cmp r0, 0
+ beq _080C4C4A
+ b _080C4C56
+ .align 2, 0
+_080C4C40: .4byte gUnknown_0202E8CE
+_080C4C44:
+ cmp r1, 0x2
+ beq _080C4C52
+ b _080C4C56
+_080C4C4A:
+ movs r1, 0x3
+ b _080C4C58
+_080C4C4E:
+ movs r1, 0x4
+ b _080C4C58
+_080C4C52:
+ movs r1, 0x5
+ b _080C4C58
+_080C4C56:
+ movs r1, 0x64
+_080C4C58:
+ ldr r0, _080C4C60
+ strh r1, [r0]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C4C60: .4byte gUnknown_0202E8CC
+ thumb_func_end sub_80C4C28
+
+ thumb_func_start sub_80C4C64
+sub_80C4C64: @ 80C4C64
+ push {lr}
+ bl sub_80C46EC
+ bl sub_80C4740
+ bl sub_80C48F4
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80C4C64
+
+ thumb_func_start sub_80C4C78
+sub_80C4C78: @ 80C4C78
+ push {lr}
+ ldr r0, _080C4C8C
+ ldrh r0, [r0]
+ cmp r0, 0x4
+ bhi _080C4CB8
+ lsls r0, 2
+ ldr r1, _080C4C90
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080C4C8C: .4byte gUnknown_0203869C
+_080C4C90: .4byte _080C4C94
+ .align 2, 0
+_080C4C94:
+ .4byte _080C4CA8
+ .4byte _080C4CAC
+ .4byte _080C4CB0
+ .4byte _080C4CB4
+ .4byte _080C4CB8
+_080C4CA8:
+ movs r0, 0x8
+ b _080C4CBA
+_080C4CAC:
+ movs r0, 0x9
+ b _080C4CBA
+_080C4CB0:
+ movs r0, 0xA
+ b _080C4CBA
+_080C4CB4:
+ movs r0, 0xB
+ b _080C4CBA
+_080C4CB8:
+ movs r0, 0xC
+_080C4CBA:
+ ldr r1, _080C4CD0
+ lsls r0, 5
+ adds r0, r1
+ ldr r1, _080C4CD4
+ adds r0, r1
+ ldrh r1, [r0]
+ cmp r1, 0
+ bne _080C4CDC
+ ldr r0, _080C4CD8
+ strh r1, [r0]
+ b _080C4CE2
+ .align 2, 0
+_080C4CD0: .4byte gSaveBlock1
+_080C4CD4: .4byte 0x00002e04
+_080C4CD8: .4byte gUnknown_0202E8CC
+_080C4CDC:
+ ldr r1, _080C4CE8
+ movs r0, 0x1
+ strh r0, [r1]
+_080C4CE2:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C4CE8: .4byte gUnknown_0202E8CC
+ thumb_func_end sub_80C4C78
+
+ thumb_func_start sub_80C4CEC
+sub_80C4CEC: @ 80C4CEC
+ push {lr}
+ movs r0, 0xFF
+ bl sub_80B2A7C
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80C4CEC
+
+ thumb_func_start sub_80C4CF8
+sub_80C4CF8: @ 80C4CF8
+ push {lr}
+ ldr r0, _080C4D28
+ ldr r1, _080C4D2C
+ ldrb r2, [r1]
+ adds r0, r2, r0
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080C4D40
+ ldr r0, _080C4D30
+ ldrh r0, [r0]
+ cmp r0, 0x3
+ bne _080C4D40
+ ldr r1, _080C4D34
+ lsls r0, r2, 1
+ adds r0, r1
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ ldr r0, _080C4D38
+ cmp r1, r0
+ ble _080C4D40
+ ldr r1, _080C4D3C
+ movs r0, 0x1
+ b _080C4D44
+ .align 2, 0
+_080C4D28: .4byte gUnknown_02038690
+_080C4D2C: .4byte gUnknown_02038695
+_080C4D30: .4byte gUnknown_0203869E
+_080C4D34: .4byte gUnknown_02038678
+_080C4D38: .4byte 0x0000031f
+_080C4D3C: .4byte gUnknown_0202E8CC
+_080C4D40:
+ ldr r1, _080C4D4C
+ movs r0, 0
+_080C4D44:
+ strh r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C4D4C: .4byte gUnknown_0202E8CC
+ thumb_func_end sub_80C4CF8
+
+ thumb_func_start sub_80C4D50
+sub_80C4D50: @ 80C4D50
+ push {lr}
+ movs r3, 0
+ ldr r0, _080C4D78
+ ldr r1, _080C4D7C
+ adds r2, r0, r1
+ movs r1, 0x4
+_080C4D5C:
+ ldrh r0, [r2]
+ cmp r0, 0
+ beq _080C4D68
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+_080C4D68:
+ adds r2, 0x20
+ subs r1, 0x1
+ cmp r1, 0
+ bge _080C4D5C
+ adds r0, r3, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080C4D78: .4byte gSaveBlock1
+_080C4D7C: .4byte 0x00002f04
+ thumb_func_end sub_80C4D50
+
+ thumb_func_start sub_80C4D80
+sub_80C4D80: @ 80C4D80
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ ldr r0, _080C4EA0
+ mov r12, r0
+ ldr r1, _080C4EA4
+ mov r8, r1
+ ldr r2, _080C4EA8
+ mov r9, r2
+ mov r2, r12
+ mov r1, sp
+ movs r6, 0x3
+_080C4D9E:
+ ldrh r0, [r2]
+ strh r0, [r1]
+ adds r2, 0x2
+ adds r1, 0x2
+ subs r6, 0x1
+ cmp r6, 0
+ bge _080C4D9E
+ movs r6, 0
+_080C4DAE:
+ movs r1, 0x3
+ cmp r1, r6
+ ble _080C4DD8
+_080C4DB4:
+ subs r4, r1, 0x1
+ lsls r0, r4, 1
+ mov r5, sp
+ adds r3, r5, r0
+ lsls r0, r1, 1
+ adds r2, r5, r0
+ ldrh r5, [r3]
+ movs r7, 0
+ ldrsh r1, [r3, r7]
+ movs r7, 0
+ ldrsh r0, [r2, r7]
+ cmp r1, r0
+ bge _080C4DD2
+ strh r5, [r2]
+ strh r0, [r3]
+_080C4DD2:
+ adds r1, r4, 0
+ cmp r1, r6
+ bgt _080C4DB4
+_080C4DD8:
+ adds r6, 0x1
+ cmp r6, 0x2
+ ble _080C4DAE
+ mov r2, r8
+ ldrh r0, [r2]
+ lsls r0, 1
+ add r0, sp
+ ldrh r0, [r0]
+ movs r2, 0
+ movs r7, 0
+ movs r6, 0
+ lsls r0, 16
+ asrs r4, r0, 16
+ adds r3, r0, 0
+ mov r1, sp
+_080C4DF6:
+ movs r5, 0
+ ldrsh r0, [r1, r5]
+ cmp r0, r4
+ bne _080C4E12
+ lsls r0, r2, 24
+ movs r2, 0x80
+ lsls r2, 17
+ adds r0, r2
+ lsrs r2, r0, 24
+ mov r5, r8
+ ldrh r5, [r5]
+ cmp r6, r5
+ bne _080C4E12
+ adds r7, r2, 0
+_080C4E12:
+ adds r1, 0x2
+ adds r6, 0x1
+ cmp r6, 0x3
+ ble _080C4DF6
+ movs r6, 0
+ mov r0, sp
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ asrs r1, r3, 16
+ lsls r2, 24
+ mov r10, r2
+ cmp r0, r1
+ beq _080C4E40
+ adds r2, r1, 0
+ mov r1, sp
+_080C4E30:
+ adds r1, 0x2
+ adds r6, 0x1
+ cmp r6, 0x3
+ bgt _080C4E40
+ movs r4, 0
+ ldrsh r0, [r1, r4]
+ cmp r0, r2
+ bne _080C4E30
+_080C4E40:
+ lsls r0, r6, 24
+ lsrs r4, r0, 24
+ adds r2, r7, 0
+ movs r6, 0
+ asrs r5, r3, 16
+ mov r8, r5
+ mov r1, r12
+ movs r5, 0
+ ldrsh r0, [r1, r5]
+ cmp r8, r0
+ bne _080C4E60
+ cmp r7, 0x1
+ beq _080C4E78
+_080C4E5A:
+ subs r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+_080C4E60:
+ adds r6, 0x1
+ cmp r6, 0x3
+ bgt _080C4E78
+ lsls r0, r6, 1
+ add r0, r12
+ asrs r1, r3, 16
+ movs r5, 0
+ ldrsh r0, [r0, r5]
+ cmp r1, r0
+ bne _080C4E60
+ cmp r2, 0x1
+ bne _080C4E5A
+_080C4E78:
+ lsls r1, r6, 24
+ lsrs r1, 24
+ mov r0, r9
+ bl sub_80C4698
+ ldr r0, _080C4EAC
+ ldrb r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080C4EB8
+ ldr r0, _080C4EB0
+ lsls r1, r6, 3
+ subs r1, r6
+ lsls r1, 2
+ ldr r2, _080C4EB4
+ adds r1, r2
+ bl sub_80C4674
+ b _080C4EC4
+ .align 2, 0
+_080C4EA0: .4byte gUnknown_02038670
+_080C4EA4: .4byte gUnknown_0202E8D0
+_080C4EA8: .4byte gStringVar1
+_080C4EAC: .4byte gUnknown_0203869A
+_080C4EB0: .4byte gStringVar2
+_080C4EB4: .4byte gLinkPlayers + 0x8
+_080C4EB8:
+ ldr r0, _080C4ED8
+ lsls r1, r6, 6
+ ldr r2, _080C4EDC
+ adds r1, r2
+ bl sub_80C4674
+_080C4EC4:
+ mov r1, r10
+ asrs r0, r1, 24
+ cmp r0, 0x1
+ beq _080C4ED0
+ cmp r7, r0
+ bne _080C4EE4
+_080C4ED0:
+ ldr r0, _080C4EE0
+ strh r4, [r0]
+ b _080C4EEA
+ .align 2, 0
+_080C4ED8: .4byte gStringVar2
+_080C4EDC: .4byte gUnknown_0203857D
+_080C4EE0: .4byte gUnknown_0202E8D0
+_080C4EE4:
+ ldr r1, _080C4EFC
+ adds r0, r4, 0x4
+ strh r0, [r1]
+_080C4EEA:
+ add sp, 0x8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C4EFC: .4byte gUnknown_0202E8D0
+ thumb_func_end sub_80C4D80
+
+ thumb_func_start sub_80C4F00
+sub_80C4F00: @ 80C4F00
+ push {lr}
+ ldr r0, _080C4F0C
+ bl SetMainCallback2
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C4F0C: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music
+ thumb_func_end sub_80C4F00
+
+ thumb_func_start sub_80C4F10
+sub_80C4F10: @ 80C4F10
+ push {r4-r6,lr}
+ ldr r6, _080C4F54
+ ldrb r0, [r6]
+ cmp r0, 0
+ beq _080C4F40
+ bl sub_80AAF30
+ ldr r4, _080C4F58
+ ldr r0, _080C4F5C
+ adds r1, r4, r0
+ movs r5, 0
+ movs r0, 0x1
+ strb r0, [r1]
+ movs r0, 0xFE
+ movs r1, 0
+ bl sub_80B2C4C
+ ldr r1, _080C4F60
+ adds r4, r1
+ strb r0, [r4]
+ movs r0, 0x3
+ bl sub_80B2A7C
+ strb r5, [r6]
+_080C4F40:
+ ldr r0, _080C4F64
+ bl SetMainCallback2
+ ldr r1, _080C4F68
+ ldr r0, _080C4F6C
+ str r0, [r1, 0x8]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C4F54: .4byte gUnknown_0203856C
+_080C4F58: .4byte 0x02000000
+_080C4F5C: .4byte 0x00015ddf
+_080C4F60: .4byte 0x00015dde
+_080C4F64: .4byte sub_8106668
+_080C4F68: .4byte gMain
+_080C4F6C: .4byte sub_80C4F00
+ thumb_func_end sub_80C4F10
+
+ thumb_func_start sub_80C4F70
+sub_80C4F70: @ 80C4F70
+ push {r4,lr}
+ ldr r0, _080C4FA8
+ ldr r4, _080C4FAC
+ ldrb r1, [r4, 0x15]
+ bl VarSet
+ ldr r0, _080C4FB0
+ adds r1, r4, 0
+ adds r1, 0x55
+ ldrb r1, [r1]
+ bl VarSet
+ ldr r0, _080C4FB4
+ adds r1, r4, 0
+ adds r1, 0x95
+ ldrb r1, [r1]
+ bl VarSet
+ ldr r0, _080C4FB8
+ adds r1, r4, 0
+ adds r1, 0xD5
+ ldrb r1, [r1]
+ bl VarSet
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C4FA8: .4byte 0x00004010
+_080C4FAC: .4byte gUnknown_02038570
+_080C4FB0: .4byte 0x00004011
+_080C4FB4: .4byte 0x00004012
+_080C4FB8: .4byte 0x00004013
+ thumb_func_end sub_80C4F70
+
+ thumb_func_start sub_80C4FBC
+sub_80C4FBC: @ 80C4FBC
+ push {r4-r6,lr}
+ sub sp, 0x4
+ ldr r6, _080C501C
+ ldrb r0, [r6]
+ movs r5, 0x64
+ muls r0, r5
+ ldr r4, _080C5020
+ adds r0, r4
+ movs r1, 0x46
+ bl GetMonData
+ lsls r0, 24
+ lsrs r0, 24
+ mov r1, sp
+ strb r0, [r1]
+ cmp r0, 0
+ bne _080C5038
+ ldr r0, _080C5024
+ ldr r1, _080C5028
+ ldrb r2, [r1]
+ adds r0, r2, r0
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080C5038
+ ldr r0, _080C502C
+ ldrh r0, [r0]
+ cmp r0, 0x3
+ bne _080C5038
+ ldr r1, _080C5030
+ lsls r0, r2, 1
+ adds r0, r1
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ ldr r0, _080C5034
+ cmp r1, r0
+ ble _080C5038
+ movs r1, 0x1
+ mov r0, sp
+ strb r1, [r0]
+ ldrb r0, [r6]
+ muls r0, r5
+ adds r0, r4
+ movs r1, 0x46
+ mov r2, sp
+ bl SetMonData
+ movs r0, 0x1
+ b _080C503A
+ .align 2, 0
+_080C501C: .4byte gUnknown_02038694
+_080C5020: .4byte gPlayerParty
+_080C5024: .4byte gUnknown_02038690
+_080C5028: .4byte gUnknown_02038695
+_080C502C: .4byte gUnknown_0203869E
+_080C5030: .4byte gUnknown_02038678
+_080C5034: .4byte 0x0000031f
+_080C5038:
+ movs r0, 0
+_080C503A:
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80C4FBC
+
+ thumb_func_start sub_80C5044
+sub_80C5044: @ 80C5044
+ ldr r0, _080C504C
+ ldrb r0, [r0]
+ bx lr
+ .align 2, 0
+_080C504C: .4byte gUnknown_0203856C
+ thumb_func_end sub_80C5044
+
+ thumb_func_start sub_80C5050
+sub_80C5050: @ 80C5050
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0xC
+ ldr r4, _080C513C
+ adds r0, r4, 0
+ bl FindTaskIdByFunc
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xFF
+ bne _080C512A
+ movs r0, 0xA
+ mov r10, r0
+ movs r7, 0x3
+ movs r1, 0x3
+ movs r2, 0x13
+ movs r3, 0xD
+ bl MenuDrawTextWindow
+ ldr r2, _080C5140
+ ldr r0, _080C5144
+ ldrh r1, [r0]
+ lsls r1, 6
+ adds r0, r1, r2
+ ldrh r6, [r0]
+ adds r0, r2, 0
+ adds r0, 0x38
+ adds r0, r1, r0
+ ldr r0, [r0]
+ mov r8, r0
+ adds r2, 0x3C
+ adds r1, r2
+ ldr r1, [r1]
+ mov r9, r1
+ adds r0, r4, 0
+ movs r1, 0x50
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _080C5148
+ lsls r5, r0, 2
+ adds r5, r0
+ lsls r5, 3
+ adds r5, r1
+ movs r0, 0
+ strh r0, [r5, 0x8]
+ strh r6, [r5, 0xA]
+ lsls r0, r6, 3
+ ldr r1, _080C514C
+ adds r0, r1
+ ldr r1, _080C5150
+ lsls r2, r6, 2
+ adds r2, r1
+ ldrb r1, [r2]
+ ldrb r2, [r2, 0x1]
+ ldr r4, _080C5154
+ ldr r3, [r4]
+ ldr r4, [r4, 0x4]
+ str r4, [sp]
+ str r6, [sp, 0x4]
+ mov r4, r8
+ str r4, [sp, 0x8]
+ bl sub_800D334
+ adds r0, r6, 0
+ mov r1, r9
+ mov r2, r8
+ bl sub_80409C8
+ adds r4, r0, 0
+ bl LoadCompressedObjectPalette
+ adds r0, r6, 0
+ movs r1, 0x1
+ bl GetMonSpriteTemplate_803C56C
+ ldr r0, _080C5158
+ ldrh r1, [r4, 0x4]
+ strh r1, [r0, 0x2]
+ movs r1, 0x78
+ movs r2, 0x40
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0xC]
+ mov r1, r10
+ strh r1, [r5, 0xE]
+ strh r7, [r5, 0x10]
+ ldr r3, _080C515C
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r0, r3, 0
+ adds r0, 0x1C
+ adds r0, r1, r0
+ ldr r2, _080C5160
+ str r2, [r0]
+ adds r1, r3
+ ldrb r2, [r1, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1, 0x5]
+_080C512A:
+ add sp, 0xC
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C513C: .4byte sub_80C5190
+_080C5140: .4byte gUnknown_02038570
+_080C5144: .4byte gUnknown_0202E8D0
+_080C5148: .4byte gTasks
+_080C514C: .4byte gMonFrontPicTable
+_080C5150: .4byte gMonFrontPicCoords
+_080C5154: .4byte gUnknown_081FAF4C
+_080C5158: .4byte gUnknown_02024E8C
+_080C515C: .4byte gSprites
+_080C5160: .4byte SpriteCallbackDummy
+ thumb_func_end sub_80C5050
+
+ thumb_func_start sub_80C5164
+sub_80C5164: @ 80C5164
+ push {lr}
+ ldr r0, _080C5188
+ bl FindTaskIdByFunc
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0xFF
+ beq _080C5184
+ ldr r0, _080C518C
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+_080C5184:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C5188: .4byte sub_80C5190
+_080C518C: .4byte gTasks
+ thumb_func_end sub_80C5164
+
+ thumb_func_start sub_80C5190
+sub_80C5190: @ 80C5190
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, _080C51B4
+ adds r4, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ beq _080C5222
+ cmp r0, 0x1
+ bgt _080C51B8
+ cmp r0, 0
+ beq _080C51F8
+ b _080C5222
+ .align 2, 0
+_080C51B4: .4byte gTasks
+_080C51B8:
+ cmp r0, 0x2
+ beq _080C51C2
+ cmp r0, 0x3
+ beq _080C5204
+ b _080C5222
+_080C51C2:
+ movs r0, 0xC
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080C5200
+ adds r5, r0, r1
+ ldrb r0, [r5, 0x5]
+ lsrs r0, 4
+ bl GetSpritePaletteTagByPaletteNum
+ lsls r0, 16
+ lsrs r0, 16
+ bl FreeSpritePaletteByTag
+ ldrb r0, [r5, 0x1]
+ lsls r0, 30
+ cmp r0, 0
+ beq _080C51F2
+ ldrb r0, [r5, 0x3]
+ lsls r0, 26
+ lsrs r0, 27
+ bl FreeOamMatrix
+_080C51F2:
+ adds r0, r5, 0
+ bl DestroySprite
+_080C51F8:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _080C5222
+ .align 2, 0
+_080C5200: .4byte gSprites
+_080C5204:
+ ldrb r2, [r4, 0xE]
+ adds r0, r2, 0
+ ldrb r3, [r4, 0x10]
+ adds r1, r3, 0
+ adds r2, 0x9
+ lsls r2, 24
+ lsrs r2, 24
+ adds r3, 0xA
+ lsls r3, 24
+ lsrs r3, 24
+ bl MenuZeroFillWindowRect
+ adds r0, r5, 0
+ bl DestroyTask
+_080C5222:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80C5190
+
+ thumb_func_start sub_80C5228
+sub_80C5228: @ 80C5228
+ push {r4,lr}
+ ldr r0, _080C5244
+ ldrb r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080C524C
+ ldr r4, _080C5248
+ bl GetMultiplayerId
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4]
+ b _080C5252
+ .align 2, 0
+_080C5244: .4byte gUnknown_0203869A
+_080C5248: .4byte gScriptResult
+_080C524C:
+ ldr r1, _080C5258
+ movs r0, 0x4
+ strh r0, [r1]
+_080C5252:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C5258: .4byte gScriptResult
+ thumb_func_end sub_80C5228
+
+ thumb_func_start sub_80C525C
+sub_80C525C: @ 80C525C
+ push {r4,lr}
+ ldr r0, _080C5280
+ ldrb r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080C5294
+ ldr r2, _080C5284
+ ldr r1, [r2]
+ ldr r0, _080C5288
+ muls r0, r1
+ ldr r1, _080C528C
+ adds r0, r1
+ str r0, [r2]
+ lsrs r0, 16
+ ldr r4, _080C5290
+ b _080C529E
+ .align 2, 0
+_080C5280: .4byte gUnknown_0203869A
+_080C5284: .4byte gUnknown_03005D28
+_080C5288: .4byte 0x41c64e6d
+_080C528C: .4byte 0x00006073
+_080C5290: .4byte gScriptResult
+_080C5294:
+ ldr r4, _080C52AC
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+_080C529E:
+ ldrh r1, [r4]
+ bl __umodsi3
+ strh r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C52AC: .4byte gScriptResult
+ thumb_func_end sub_80C525C
+
+ thumb_func_start sp000_heal_pokemon
+sp000_heal_pokemon: @ 80C52B0
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ movs r0, 0
+ mov r8, r0
+ ldr r0, _080C536C
+ ldrb r0, [r0]
+ cmp r8, r0
+ bcs _080C535C
+ ldr r1, _080C5370
+ mov r10, r1
+ mov r6, sp
+_080C52CE:
+ movs r0, 0x64
+ mov r4, r8
+ muls r4, r0
+ add r4, r10
+ adds r0, r4, 0
+ movs r1, 0x3A
+ bl GetMonData
+ lsls r1, r0, 16
+ strb r0, [r6]
+ lsrs r1, 24
+ strb r1, [r6, 0x1]
+ adds r0, r4, 0
+ movs r1, 0x39
+ mov r2, sp
+ bl SetMonData
+ adds r0, r4, 0
+ movs r1, 0x15
+ bl GetMonData
+ lsls r0, 24
+ lsrs r7, r0, 24
+ movs r5, 0
+ movs r1, 0x1
+ add r1, r8
+ mov r9, r1
+_080C5304:
+ adds r1, r5, 0
+ adds r1, 0xD
+ adds r0, r4, 0
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ adds r1, r7, 0
+ adds r2, r5, 0
+ bl CalculatePPWithBonus
+ strb r0, [r6]
+ adds r1, r5, 0
+ adds r1, 0x11
+ adds r0, r4, 0
+ mov r2, sp
+ bl SetMonData
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x3
+ bls _080C5304
+ movs r0, 0
+ strb r0, [r6]
+ strb r0, [r6, 0x1]
+ strb r0, [r6, 0x2]
+ strb r0, [r6, 0x3]
+ movs r1, 0x64
+ mov r0, r8
+ muls r0, r1
+ add r0, r10
+ movs r1, 0x37
+ mov r2, sp
+ bl SetMonData
+ mov r1, r9
+ lsls r0, r1, 24
+ lsrs r0, 24
+ mov r8, r0
+ ldr r0, _080C536C
+ ldrb r0, [r0]
+ cmp r8, r0
+ bcc _080C52CE
+_080C535C:
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C536C: .4byte gPlayerPartyCount
+_080C5370: .4byte gPlayerParty
+ thumb_func_end sp000_heal_pokemon
+
+ thumb_func_start sub_80C5374
+sub_80C5374: @ 80C5374
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ sub sp, 0x78
+ adds r5, r0, 0
+ adds r3, r1, 0
+ adds r4, r2, 0
+ lsls r5, 16
+ lsrs r5, 16
+ lsls r3, 24
+ lsrs r3, 24
+ lsls r4, 16
+ lsrs r0, r4, 16
+ mov r8, r0
+ add r6, sp, 0x14
+ movs r0, 0
+ str r0, [sp]
+ str r0, [sp, 0x4]
+ str r0, [sp, 0x8]
+ str r0, [sp, 0xC]
+ adds r0, r6, 0
+ adds r1, r5, 0
+ adds r2, r3, 0
+ movs r3, 0x20
+ bl CreateMon
+ add r0, sp, 0x10
+ mov r1, r8
+ strb r1, [r0]
+ lsrs r4, 24
+ strb r4, [r0, 0x1]
+ adds r0, r6, 0
+ movs r1, 0xC
+ add r2, sp, 0x10
+ bl SetMonData
+ adds r0, r6, 0
+ bl GiveMonToPlayer
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r0, r5, 0
+ bl SpeciesToNationalPokedexNum
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r4, 0x1
+ bgt _080C53E8
+ cmp r4, 0
+ blt _080C53E8
+ adds r0, r5, 0
+ movs r1, 0x2
+ bl sub_8090D90
+ adds r0, r5, 0
+ movs r1, 0x3
+ bl sub_8090D90
+_080C53E8:
+ adds r0, r4, 0
+ add sp, 0x78
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80C5374
+
+ thumb_func_start sub_80C53F8
+sub_80C53F8: @ 80C53F8
+ push {lr}
+ sub sp, 0x68
+ adds r1, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ mov r0, sp
+ movs r2, 0x1
+ bl sub_8042044
+ add r2, sp, 0x64
+ movs r0, 0x1
+ strb r0, [r2]
+ mov r0, sp
+ movs r1, 0x2D
+ bl SetMonData
+ mov r0, sp
+ bl GiveMonToPlayer
+ lsls r0, 24
+ lsrs r0, 24
+ add sp, 0x68
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80C53F8
+
+ thumb_func_start sub_80C5428
+sub_80C5428: @ 80C5428
+ push {lr}
+ bl sub_803DAA0
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x1
+ beq _080C5444
+ cmp r1, 0x1
+ bgt _080C5440
+ cmp r1, 0
+ beq _080C5444
+ b _080C5448
+_080C5440:
+ cmp r1, 0x2
+ bne _080C5448
+_080C5444:
+ ldr r0, _080C544C
+ strh r1, [r0]
+_080C5448:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C544C: .4byte gScriptResult
+ thumb_func_end sub_80C5428
+
+ thumb_func_start sub_80C5450
+sub_80C5450: @ 80C5450
+ push {r4-r7,lr}
+ lsls r0, 16
+ lsrs r6, r0, 16
+ movs r5, 0
+ movs r7, 0xCE
+ lsls r7, 1
+_080C545C:
+ movs r0, 0x64
+ adds r1, r5, 0
+ muls r1, r0
+ ldr r0, _080C548C
+ adds r4, r1, r0
+ adds r0, r4, 0
+ movs r1, 0x41
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0
+ beq _080C5490
+ cmp r0, r7
+ beq _080C5490
+ adds r0, r4, 0
+ movs r1, 0xC
+ bl GetMonData
+ cmp r0, r6
+ bne _080C5490
+ movs r0, 0x1
+ b _080C5498
+ .align 2, 0
+_080C548C: .4byte gPlayerParty
+_080C5490:
+ adds r5, 0x1
+ cmp r5, 0x5
+ ble _080C545C
+ movs r0, 0
+_080C5498:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80C5450
+
+ thumb_func_start sub_80C54A0
+sub_80C54A0: @ 80C54A0
+ push {r4,lr}
+ movs r0, 0xAF
+ bl sub_80C5450
+ lsls r0, 24
+ lsrs r0, 24
+ adds r4, r0, 0
+ cmp r4, 0x1
+ bne _080C54C2
+ movs r0, 0xAF
+ bl ItemIdToBerryType
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _080C54CC
+ bl GetBerryNameByBerryType
+_080C54C2:
+ adds r0, r4, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080C54CC: .4byte gStringVar1
+ thumb_func_end sub_80C54A0
+
+ thumb_func_start sub_80C54D0
+sub_80C54D0: @ 80C54D0
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x14
+ adds r4, r0, 0
+ adds r5, r1, 0
+ lsls r4, 16
+ lsrs r4, 16
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r7, r2, 16
+ lsrs r6, r7, 16
+ bl ZeroEnemyPartyMons
+ ldr r0, _080C552C
+ mov r8, r0
+ movs r0, 0
+ str r0, [sp]
+ str r0, [sp, 0x4]
+ str r0, [sp, 0x8]
+ str r0, [sp, 0xC]
+ mov r0, r8
+ adds r1, r4, 0
+ adds r2, r5, 0
+ movs r3, 0x20
+ bl CreateMon
+ cmp r6, 0
+ beq _080C551E
+ add r0, sp, 0x10
+ strb r6, [r0]
+ adds r1, r0, 0
+ lsrs r0, r7, 24
+ strb r0, [r1, 0x1]
+ mov r0, r8
+ movs r1, 0xC
+ add r2, sp, 0x10
+ bl SetMonData
+_080C551E:
+ add sp, 0x14
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C552C: .4byte gEnemyParty
+ thumb_func_end sub_80C54D0
+
+ thumb_func_start sub_80C5530
+sub_80C5530: @ 80C5530
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ lsls r1, 16
+ lsrs r4, r1, 16
+ lsls r2, 24
+ lsrs r2, 24
+ cmp r3, 0x6
+ bls _080C554C
+ ldr r0, _080C5560
+ ldrb r0, [r0]
+ subs r0, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+_080C554C:
+ movs r0, 0x64
+ muls r0, r3
+ ldr r1, _080C5564
+ adds r0, r1
+ adds r1, r4, 0
+ bl SetMonMoveSlot
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C5560: .4byte gPlayerPartyCount
+_080C5564: .4byte gPlayerParty
+ thumb_func_end sub_80C5530
+
+ thumb_func_start sub_80C5568
+sub_80C5568: @ 80C5568
+ push {lr}
+ ldr r1, _080C5578
+ ldr r0, _080C557C
+ str r0, [r1, 0x8]
+ bl sub_8121E10
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C5578: .4byte gMain
+_080C557C: .4byte sub_80C5580
+ thumb_func_end sub_80C5568
+
+ thumb_func_start sub_80C5580
+sub_80C5580: @ 80C5580
+ push {lr}
+ ldr r0, _080C5590
+ ldrb r1, [r0]
+ cmp r1, 0
+ bne _080C5598
+ ldr r0, _080C5594
+ strh r1, [r0]
+ b _080C559E
+ .align 2, 0
+_080C5590: .4byte gUnknown_02039270
+_080C5594: .4byte gScriptResult
+_080C5598:
+ ldr r1, _080C55A8
+ movs r0, 0x1
+ strh r0, [r1]
+_080C559E:
+ ldr r0, _080C55AC
+ bl SetMainCallback2
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C55A8: .4byte gScriptResult
+_080C55AC: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music
+ thumb_func_end sub_80C5580
+
+ thumb_func_start sub_80C55B0
+sub_80C55B0: @ 80C55B0
+ push {lr}
+ ldr r1, _080C55C0
+ ldr r0, _080C55C4
+ str r0, [r1, 0x8]
+ bl sub_8121E34
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C55C0: .4byte gMain
+_080C55C4: .4byte sub_80C55C8
+ thumb_func_end sub_80C55B0
+
+ thumb_func_start sub_80C55C8
+sub_80C55C8: @ 80C55C8
+ push {r4,lr}
+ ldr r0, _080C55DC
+ ldrb r4, [r0]
+ cmp r4, 0
+ bne _080C55E4
+ bl copy_player_party_from_sav1
+ ldr r0, _080C55E0
+ strh r4, [r0]
+ b _080C55EE
+ .align 2, 0
+_080C55DC: .4byte gUnknown_02039270
+_080C55E0: .4byte gScriptResult
+_080C55E4:
+ bl sub_80C5604
+ ldr r1, _080C55FC
+ movs r0, 0x1
+ strh r0, [r1]
+_080C55EE:
+ ldr r0, _080C5600
+ bl SetMainCallback2
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C55FC: .4byte gScriptResult
+_080C5600: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music
+ thumb_func_end sub_80C55C8
+
+ thumb_func_start sub_80C5604
+sub_80C5604: @ 80C5604
+ push {r4-r7,lr}
+ sub sp, 0x134
+ add r0, sp, 0x12C
+ movs r1, 0
+ str r1, [r0]
+ ldr r2, _080C5674
+ mov r1, sp
+ bl CpuSet
+ movs r5, 0
+ movs r7, 0x64
+ ldr r6, _080C5678
+ mov r4, sp
+_080C561E:
+ ldr r0, _080C567C
+ adds r1, r5, r0
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _080C5638
+ subs r0, 0x1
+ adds r1, r0, 0
+ muls r1, r7
+ adds r1, r6
+ adds r0, r4, 0
+ movs r2, 0x64
+ bl memcpy
+_080C5638:
+ adds r4, 0x64
+ adds r5, 0x1
+ cmp r5, 0x2
+ ble _080C561E
+ add r0, sp, 0x130
+ movs r1, 0
+ str r1, [r0]
+ ldr r4, _080C5678
+ ldr r2, _080C5680
+ adds r1, r4, 0
+ bl CpuSet
+ mov r5, sp
+ add r6, sp, 0xC8
+_080C5654:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r2, 0x64
+ bl memcpy
+ adds r5, 0x64
+ adds r4, 0x64
+ cmp r5, r6
+ ble _080C5654
+ bl CalculatePlayerPartyCount
+ add sp, 0x134
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C5674: .4byte 0x0500004b
+_080C5678: .4byte gPlayerParty
+_080C567C: .4byte gUnknown_02039270
+_080C5680: .4byte 0x05000096
+ thumb_func_end sub_80C5604
+
+ thumb_func_start sub_80C5684
+sub_80C5684: @ 80C5684
+ push {lr}
+ movs r1, 0x41
+ bl GetMonData
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0
+ beq _080C569C
+ movs r0, 0xCE
+ lsls r0, 1
+ cmp r1, r0
+ bne _080C56A0
+_080C569C:
+ movs r0, 0
+ b _080C56A2
+_080C56A0:
+ movs r0, 0x1
+_080C56A2:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80C5684
+
+ thumb_func_start sub_80C56A8
+sub_80C56A8: @ 80C56A8
+ push {r4,r5,lr}
+ ldr r4, _080C56C8
+ movs r5, 0
+_080C56AE:
+ adds r0, r4, 0
+ bl sub_80C5684
+ cmp r0, 0
+ beq _080C56CC
+ adds r0, r4, 0
+ movs r1, 0x39
+ bl GetMonData
+ cmp r0, 0
+ beq _080C56CC
+ movs r0, 0
+ b _080C56D6
+ .align 2, 0
+_080C56C8: .4byte gPlayerParty
+_080C56CC:
+ adds r5, 0x1
+ adds r4, 0x64
+ cmp r5, 0x5
+ ble _080C56AE
+ movs r0, 0x1
+_080C56D6:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80C56A8
+
+ thumb_func_start sub_80C56DC
+sub_80C56DC: @ 80C56DC
+ push {r4,r5,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x64
+ adds r4, r0, 0
+ muls r4, r1
+ ldr r0, _080C5720
+ adds r4, r0
+ movs r0, 0
+ str r0, [sp]
+ adds r0, r4, 0
+ movs r1, 0x7
+ bl sub_803FCD4
+ adds r0, r4, 0
+ movs r1, 0x37
+ mov r2, sp
+ bl SetMonData
+ ldr r5, _080C5724
+ adds r0, r4, 0
+ movs r1, 0x2
+ adds r2, r5, 0
+ bl GetMonData
+ adds r0, r5, 0
+ bl StringGetEnd10
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C5720: .4byte gPlayerParty
+_080C5724: .4byte gStringVar1
+ thumb_func_end sub_80C56DC
+
+ thumb_func_start sub_80C5728
+sub_80C5728: @ 80C5728
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x64
+ muls r1, r0
+ ldr r0, _080C5764
+ adds r4, r1, r0
+ adds r0, r4, 0
+ bl sub_80C5684
+ cmp r0, 0
+ beq _080C5768
+ adds r0, r4, 0
+ movs r1, 0x39
+ bl GetMonData
+ cmp r0, 0
+ bne _080C5768
+ adds r0, r4, 0
+ movs r1, 0x37
+ bl GetMonData
+ bl pokemon_ailments_get_primary
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080C5768
+ movs r0, 0x1
+ b _080C576A
+ .align 2, 0
+_080C5764: .4byte gPlayerParty
+_080C5768:
+ movs r0, 0
+_080C576A:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80C5728
+
+ thumb_func_start sub_80C5770
+sub_80C5770: @ 80C5770
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, _080C5794
+ adds r4, r0, r1
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ beq _080C57CA
+ cmp r0, 0x1
+ bgt _080C5798
+ cmp r0, 0
+ beq _080C579E
+ b _080C581A
+ .align 2, 0
+_080C5794: .4byte gUnknown_03004B28
+_080C5798:
+ cmp r0, 0x2
+ beq _080C57DC
+ b _080C581A
+_080C579E:
+ ldrh r1, [r4, 0x2]
+ movs r2, 0x2
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x5
+ bgt _080C57C4
+_080C57A8:
+ lsls r0, r1, 24
+ lsrs r0, 24
+ bl sub_80C5728
+ cmp r0, 0
+ bne _080C57F4
+ ldrh r0, [r4, 0x2]
+ adds r0, 0x1
+ strh r0, [r4, 0x2]
+ adds r1, r0, 0
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x5
+ ble _080C57A8
+_080C57C4:
+ movs r0, 0x2
+ strh r0, [r4]
+ b _080C581A
+_080C57CA:
+ bl IsFieldMessageBoxHidden
+ lsls r0, 24
+ cmp r0, 0
+ beq _080C581A
+ ldrh r0, [r4]
+ subs r0, 0x1
+ strh r0, [r4]
+ b _080C581A
+_080C57DC:
+ bl sub_80C56A8
+ adds r1, r0, 0
+ cmp r1, 0
+ beq _080C580C
+ ldr r1, _080C57F0
+ movs r0, 0x1
+ strh r0, [r1]
+ b _080C5810
+ .align 2, 0
+_080C57F0: .4byte gScriptResult
+_080C57F4:
+ ldrb r0, [r4, 0x2]
+ bl sub_80C56DC
+ ldr r0, _080C5808
+ bl ShowFieldMessage
+ ldrh r0, [r4]
+ adds r0, 0x1
+ strh r0, [r4]
+ b _080C581A
+ .align 2, 0
+_080C5808: .4byte UnknownString_81A1132
+_080C580C:
+ ldr r0, _080C5820
+ strh r1, [r0]
+_080C5810:
+ bl EnableBothScriptContexts
+ adds r0, r5, 0
+ bl DestroyTask
+_080C581A:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C5820: .4byte gScriptResult
+ thumb_func_end sub_80C5770
+
+ thumb_func_start sub_80C5824
+sub_80C5824: @ 80C5824
+ push {lr}
+ ldr r0, _080C5838
+ movs r1, 0x50
+ bl CreateTask
+ bl ScriptContext1_Stop
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C5838: .4byte sub_80C5770
+ thumb_func_end sub_80C5824
+
+ thumb_func_start overworld_poison
+overworld_poison: @ 80C583C
+ push {r4-r7,lr}
+ sub sp, 0x4
+ ldr r4, _080C58A8
+ movs r7, 0
+ movs r6, 0
+ movs r5, 0x5
+_080C5848:
+ adds r0, r4, 0
+ movs r1, 0x5
+ bl GetMonData
+ cmp r0, 0
+ beq _080C588C
+ adds r0, r4, 0
+ movs r1, 0x37
+ bl GetMonData
+ bl pokemon_ailments_get_primary
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080C588C
+ adds r0, r4, 0
+ movs r1, 0x39
+ bl GetMonData
+ str r0, [sp]
+ cmp r0, 0
+ beq _080C587E
+ subs r0, 0x1
+ str r0, [sp]
+ cmp r0, 0
+ bne _080C5880
+_080C587E:
+ adds r6, 0x1
+_080C5880:
+ adds r0, r4, 0
+ movs r1, 0x39
+ mov r2, sp
+ bl SetMonData
+ adds r7, 0x1
+_080C588C:
+ adds r4, 0x64
+ subs r5, 0x1
+ cmp r5, 0
+ bge _080C5848
+ cmp r6, 0
+ bne _080C589C
+ cmp r7, 0
+ beq _080C58A0
+_080C589C:
+ bl overworld_posion_effect
+_080C58A0:
+ cmp r6, 0
+ beq _080C58AC
+ movs r0, 0x2
+ b _080C58B6
+ .align 2, 0
+_080C58A8: .4byte gPlayerParty
+_080C58AC:
+ cmp r7, 0
+ bne _080C58B4
+ movs r0, 0
+ b _080C58B6
+_080C58B4:
+ movs r0, 0x1
+_080C58B6:
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end overworld_poison
+
+ thumb_func_start sub_80C58C0
+sub_80C58C0: @ 80C58C0
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ adds r5, r0, 0
+ movs r1, 0
+ bl GetMonData
+ lsls r0, 16
+ str r0, [sp, 0x4]
+ lsrs r0, 16
+ str r0, [sp]
+ adds r0, r5, 0
+ movs r1, 0x27
+ bl GetMonData
+ adds r7, r0, 0
+ movs r6, 0xF
+ ands r7, r6
+ adds r0, r5, 0
+ movs r1, 0x28
+ bl GetMonData
+ mov r8, r0
+ mov r1, r8
+ ands r1, r6
+ mov r8, r1
+ adds r0, r5, 0
+ movs r1, 0x29
+ bl GetMonData
+ mov r9, r0
+ mov r3, r9
+ ands r3, r6
+ mov r9, r3
+ adds r0, r5, 0
+ movs r1, 0x2A
+ bl GetMonData
+ mov r10, r0
+ ands r0, r6
+ mov r10, r0
+ adds r0, r5, 0
+ movs r1, 0x2B
+ bl GetMonData
+ adds r4, r0, 0
+ ands r4, r6
+ adds r0, r5, 0
+ movs r1, 0x2C
+ bl GetMonData
+ adds r2, r0, 0
+ ands r2, r6
+ mov r1, r8
+ mov r3, r9
+ eors r1, r3
+ mov r8, r1
+ mov r0, r8
+ muls r0, r7
+ movs r1, 0xFF
+ ldr r3, [sp]
+ ands r3, r1
+ eors r0, r3
+ eors r4, r2
+ mov r1, r10
+ muls r1, r4
+ ldr r3, [sp, 0x4]
+ lsrs r2, r3, 24
+ eors r1, r2
+ lsls r0, 8
+ adds r0, r1
+ add sp, 0x8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80C58C0
+
+ thumb_func_start sub_80C5964
+sub_80C5964: @ 80C5964
+ push {lr}
+ lsls r0, 16
+ lsrs r2, r0, 16
+ movs r1, 0x1
+ ldr r3, _080C5980
+_080C596E:
+ lsls r0, r1, 3
+ adds r0, r3
+ ldrh r0, [r0, 0x4]
+ cmp r2, r0
+ bcs _080C5984
+ subs r0, r1, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ b _080C5990
+ .align 2, 0
+_080C5980: .4byte gUnknown_083D180C
+_080C5984:
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0xE
+ bls _080C596E
+ adds r0, r1, 0
+_080C5990:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80C5964
+
+ thumb_func_start sub_80C5994
+sub_80C5994: @ 80C5994
+ push {r4-r7,lr}
+ sub sp, 0x8
+ adds r6, r1, 0
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r6, 16
+ lsrs r6, 16
+ bl SpeciesToNationalPokedexNum
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0
+ bl sub_8090D54
+ lsls r0, 16
+ lsrs r7, r0, 16
+ adds r0, r6, 0
+ bl sub_80C5964
+ lsls r0, 24
+ ldr r1, _080C5A04
+ lsrs r0, 21
+ adds r0, r1
+ ldrh r1, [r0]
+ str r1, [sp]
+ movs r2, 0
+ str r2, [sp, 0x4]
+ ldrb r2, [r0, 0x2]
+ movs r3, 0
+ ldrh r4, [r0, 0x4]
+ movs r5, 0
+ adds r0, r6, 0
+ movs r1, 0
+ subs r0, r4
+ sbcs r1, r5
+ bl __udivdi3
+ ldr r2, [sp]
+ ldr r3, [sp, 0x4]
+ adds r2, r0
+ adcs r3, r1
+ str r2, [sp]
+ str r3, [sp, 0x4]
+ adds r0, r7, 0
+ movs r1, 0
+ bl __muldi3
+ movs r2, 0xA
+ movs r3, 0
+ bl __udivdi3
+ add sp, 0x8
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080C5A04: .4byte gUnknown_083D180C
+ thumb_func_end sub_80C5994
+
+ thumb_func_start sub_80C5A08
+sub_80C5A08: @ 80C5A08
+ push {r4-r6,lr}
+ sub sp, 0x4
+ adds r6, r0, 0
+ adds r5, r1, 0
+ ldr r1, _080C5A78
+ mov r0, sp
+ movs r2, 0x2
+ bl memcpy
+ lsls r4, r5, 2
+ adds r4, r5
+ lsls r4, 1
+ adds r0, r4, 0
+ bl __floatsidf
+ cmp r4, 0
+ bge _080C5A32
+ ldr r2, _080C5A7C
+ ldr r3, _080C5A80
+ bl __adddf3
+_080C5A32:
+ ldr r2, _080C5A84
+ ldr r3, _080C5A88
+ bl __divdf3
+ bl __fixunsdfsi
+ adds r5, r0, 0
+ movs r1, 0xA
+ bl __udivsi3
+ adds r1, r0, 0
+ adds r0, r6, 0
+ movs r2, 0
+ movs r3, 0x8
+ bl ConvertIntToDecimalStringN
+ adds r6, r0, 0
+ mov r1, sp
+ bl StringAppend
+ adds r6, r0, 0
+ adds r0, r5, 0
+ movs r1, 0xA
+ bl __umodsi3
+ adds r1, r0, 0
+ adds r0, r6, 0
+ movs r2, 0
+ movs r3, 0x1
+ bl ConvertIntToDecimalStringN
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C5A78: .4byte gUnknown_083D188C
+_080C5A7C: .4byte 0x41f00000
+_080C5A80: .4byte 0x00000000
+_080C5A84: .4byte 0x40396666
+_080C5A88: .4byte 0x66666666
+ thumb_func_end sub_80C5A08
+
+ thumb_func_start sub_80C5A8C
+sub_80C5A8C: @ 80C5A8C
+ push {r4-r7,lr}
+ sub sp, 0x4
+ adds r7, r1, 0
+ lsls r0, 16
+ lsrs r6, r0, 16
+ ldr r1, _080C5AA4
+ ldrh r0, [r1]
+ cmp r0, 0xFF
+ bne _080C5AA8
+ movs r0, 0
+ b _080C5B12
+ .align 2, 0
+_080C5AA4: .4byte gScriptResult
+_080C5AA8:
+ ldrh r1, [r1]
+ movs r0, 0x64
+ muls r1, r0
+ ldr r0, _080C5AD0
+ adds r5, r1, r0
+ adds r0, r5, 0
+ movs r1, 0x2D
+ bl GetMonData
+ cmp r0, 0x1
+ beq _080C5ACA
+ adds r0, r5, 0
+ movs r1, 0xB
+ bl GetMonData
+ cmp r0, r6
+ beq _080C5AD4
+_080C5ACA:
+ movs r0, 0x1
+ b _080C5B12
+ .align 2, 0
+_080C5AD0: .4byte gPlayerParty
+_080C5AD4:
+ mov r4, sp
+ adds r0, r5, 0
+ bl sub_80C58C0
+ strh r0, [r4]
+ mov r0, sp
+ ldrh r1, [r0]
+ adds r0, r6, 0
+ bl sub_80C5994
+ adds r5, r0, 0
+ ldrh r1, [r7]
+ adds r0, r6, 0
+ bl sub_80C5994
+ adds r4, r0, 0
+ ldr r0, _080C5B0C
+ adds r1, r5, 0
+ bl sub_80C5A08
+ cmp r5, r4
+ bls _080C5B10
+ mov r0, sp
+ ldrh r0, [r0]
+ strh r0, [r7]
+ movs r0, 0x3
+ b _080C5B12
+ .align 2, 0
+_080C5B0C: .4byte gStringVar2
+_080C5B10:
+ movs r0, 0x2
+_080C5B12:
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80C5A8C
+
+ thumb_func_start sub_80C5B1C
+sub_80C5B1C: @ 80C5B1C
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ lsls r4, 16
+ lsrs r4, 16
+ ldrh r1, [r5]
+ adds r0, r4, 0
+ bl sub_80C5994
+ adds r1, r0, 0
+ ldr r0, _080C5B58
+ bl sub_80C5A08
+ ldr r0, _080C5B5C
+ movs r1, 0xB
+ muls r1, r4
+ ldr r2, _080C5B60
+ adds r1, r2
+ bl StringCopy
+ ldrh r1, [r5]
+ movs r0, 0x81
+ lsls r0, 8
+ cmp r1, r0
+ bne _080C5B6C
+ ldr r0, _080C5B64
+ ldr r1, _080C5B68
+ bl StringCopy
+ b _080C5B74
+ .align 2, 0
+_080C5B58: .4byte gStringVar3
+_080C5B5C: .4byte gStringVar1
+_080C5B60: .4byte gSpeciesNames
+_080C5B64: .4byte gStringVar2
+_080C5B68: .4byte gOtherText_Marco
+_080C5B6C:
+ ldr r0, _080C5B7C
+ ldr r1, _080C5B80
+ bl StringCopy
+_080C5B74:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C5B7C: .4byte gStringVar2
+_080C5B80: .4byte gSaveBlock2
+ thumb_func_end sub_80C5B1C
+
+ thumb_func_start sub_80C5B84
+sub_80C5B84: @ 80C5B84
+ push {lr}
+ ldr r0, _080C5B94
+ movs r1, 0x81
+ lsls r1, 8
+ bl VarSet
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C5B94: .4byte 0x00004047
+ thumb_func_end sub_80C5B84
+
+ thumb_func_start sub_80C5B98
+sub_80C5B98: @ 80C5B98
+ push {lr}
+ ldr r0, _080C5BB0
+ bl GetVarPointer
+ adds r1, r0, 0
+ movs r0, 0x99
+ lsls r0, 1
+ bl sub_80C5B1C
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C5BB0: .4byte 0x00004047
+ thumb_func_end sub_80C5B98
+
+ thumb_func_start sub_80C5BB4
+sub_80C5BB4: @ 80C5BB4
+ push {r4,lr}
+ ldr r0, _080C5BD4
+ bl GetVarPointer
+ adds r1, r0, 0
+ ldr r4, _080C5BD8
+ movs r0, 0x99
+ lsls r0, 1
+ bl sub_80C5A8C
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C5BD4: .4byte 0x00004047
+_080C5BD8: .4byte gScriptResult
+ thumb_func_end sub_80C5BB4
+
+ thumb_func_start sub_80C5BDC
+sub_80C5BDC: @ 80C5BDC
+ push {lr}
+ ldr r0, _080C5BEC
+ movs r1, 0x81
+ lsls r1, 8
+ bl VarSet
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C5BEC: .4byte 0x0000404f
+ thumb_func_end sub_80C5BDC
+
+ thumb_func_start sub_80C5BF0
+sub_80C5BF0: @ 80C5BF0
+ push {lr}
+ ldr r0, _080C5C04
+ bl GetVarPointer
+ adds r1, r0, 0
+ ldr r0, _080C5C08
+ bl sub_80C5B1C
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C5C04: .4byte 0x0000404f
+_080C5C08: .4byte 0x00000143
+ thumb_func_end sub_80C5BF0
+
+ thumb_func_start sub_80C5C0C
+sub_80C5C0C: @ 80C5C0C
+ push {r4,lr}
+ ldr r0, _080C5C2C
+ bl GetVarPointer
+ adds r1, r0, 0
+ ldr r4, _080C5C30
+ ldr r0, _080C5C34
+ bl sub_80C5A8C
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C5C2C: .4byte 0x0000404f
+_080C5C30: .4byte gScriptResult
+_080C5C34: .4byte 0x00000143
+ thumb_func_end sub_80C5C0C
+
+ thumb_func_start sub_80C5C38
+sub_80C5C38: @ 80C5C38
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r1, 24
+ lsrs r5, r1, 24
+ movs r7, 0
+ add r4, sp, 0x8
+ movs r0, 0x1
+ strb r0, [r4]
+ ldr r1, _080C5CC0
+ mov r0, sp
+ movs r2, 0x7
+ bl memcpy
+ mov r8, r4
+ cmp r6, 0xA
+ bhi _080C5CB2
+ cmp r5, 0x40
+ bhi _080C5CB2
+ ldr r0, _080C5CC4
+ ldr r1, _080C5CC8
+ adds r0, r1
+ adds r0, r6, r0
+ strb r5, [r0]
+ movs r5, 0
+_080C5C70:
+ movs r0, 0x64
+ adds r1, r5, 0
+ muls r1, r0
+ ldr r0, _080C5CCC
+ adds r4, r1, r0
+ adds r0, r4, 0
+ movs r1, 0xB
+ bl GetMonData
+ cmp r0, 0
+ beq _080C5CA2
+ adds r0, r4, 0
+ movs r1, 0x6
+ bl GetMonData
+ cmp r0, 0
+ bne _080C5CA2
+ mov r1, sp
+ adds r0, r1, r6
+ ldrb r1, [r0]
+ adds r0, r4, 0
+ mov r2, r8
+ bl SetMonData
+ movs r7, 0x1
+_080C5CA2:
+ adds r5, 0x1
+ cmp r5, 0x5
+ ble _080C5C70
+ cmp r7, 0
+ beq _080C5CB2
+ ldr r0, _080C5CD0
+ bl FlagSet
+_080C5CB2:
+ add sp, 0xC
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C5CC0: .4byte gUnknown_083D188E
+_080C5CC4: .4byte gSaveBlock1
+_080C5CC8: .4byte 0x00003110
+_080C5CCC: .4byte gPlayerParty
+_080C5CD0: .4byte 0x0000083b
+ thumb_func_end sub_80C5C38
+
+ thumb_func_start sub_80C5CD4
+sub_80C5CD4: @ 80C5CD4
+ push {r4-r7,lr}
+ sub sp, 0x28
+ adds r7, r0, 0
+ ldr r0, _080C5D64
+ ldr r1, [r0, 0x4]
+ ldr r0, [r0]
+ str r0, [sp, 0x18]
+ str r1, [sp, 0x1C]
+ ldr r0, _080C5D68
+ ldr r1, [r0, 0x4]
+ ldr r0, [r0]
+ str r0, [sp, 0x20]
+ str r1, [sp, 0x24]
+ mov r1, sp
+ ldr r0, _080C5D6C
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ ldrh r3, [r7]
+ lsls r2, r3, 16
+ add r0, sp, 0x18
+ ldrh r1, [r0, 0x4]
+ orrs r1, r2
+ str r1, [r0, 0x4]
+ mov r1, sp
+ movs r6, 0
+ strh r3, [r1]
+ ldrh r2, [r7, 0x2]
+ ldr r5, _080C5D70
+ add r4, sp, 0x20
+ ldr r1, [r4, 0x4]
+ ands r1, r5
+ orrs r1, r2
+ str r1, [r4, 0x4]
+ mov r1, sp
+ strh r2, [r1, 0x2]
+ bl LoadSpriteSheet
+ adds r0, r4, 0
+ bl LoadSpritePalette
+ movs r0, 0x1
+ strh r0, [r7, 0xC]
+ strh r6, [r7, 0xA]
+ strh r6, [r7, 0x8]
+ ldrh r0, [r7, 0x2]
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x80
+ lsls r1, 9
+ lsls r1, r0
+ bics r5, r1
+ str r5, [r7, 0x10]
+ ldrh r0, [r7, 0x4]
+ cmp r0, 0
+ bne _080C5D4E
+ movs r0, 0x10
+ strh r0, [r7, 0x4]
+_080C5D4E:
+ ldrh r0, [r7, 0x6]
+ cmp r0, 0
+ bne _080C5D58
+ movs r0, 0x14
+ strh r0, [r7, 0x6]
+_080C5D58:
+ ldr r0, _080C5D74
+ str r7, [r0]
+ movs r4, 0
+ ldr r5, _080C5D78
+ b _080C5D94
+ .align 2, 0
+_080C5D64: .4byte gUnknown_083D1898
+_080C5D68: .4byte gUnknown_083D18A0
+_080C5D6C: .4byte gSpriteTemplate_83D18A8
+_080C5D70: .4byte 0xffff0000
+_080C5D74: .4byte gUnknown_020387EC
+_080C5D78: .4byte gSprites
+_080C5D7C:
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldrh r1, [r7, 0x4]
+ cmp r4, 0x3
+ bhi _080C5D8C
+ negs r1, r1
+_080C5D8C:
+ strh r1, [r0, 0x2E]
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+_080C5D94:
+ cmp r4, 0x7
+ bhi _080C5DB2
+ lsls r1, r4, 5
+ adds r1, 0x8
+ lsls r1, 16
+ asrs r1, 16
+ mov r0, sp
+ movs r2, 0x50
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x40
+ bne _080C5D7C
+_080C5DB2:
+ ldr r1, _080C5DC8
+ movs r0, 0xBF
+ strh r0, [r1]
+ adds r1, 0x4
+ movs r0, 0x10
+ strh r0, [r1]
+ add sp, 0x28
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C5DC8: .4byte REG_BLDCNT
+ thumb_func_end sub_80C5CD4
+
+ thumb_func_start sub_80C5DCC
+sub_80C5DCC: @ 80C5DCC
+ push {r4,lr}
+ ldr r4, _080C5E10
+ ldr r1, [r4]
+ ldrh r0, [r1, 0x8]
+ cmp r0, 0
+ bne _080C5DF0
+ ldr r0, [r1, 0x10]
+ ldr r2, _080C5E14
+ movs r1, 0x10
+ bl BlendPalettes
+ ldr r0, _080C5E18
+ bl sub_80C61B0
+ ldr r1, [r4]
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+_080C5DF0:
+ ldr r1, [r4]
+ ldrh r0, [r1, 0xA]
+ cmp r0, 0x7
+ bls _080C5E0A
+ ldrh r0, [r1, 0x6]
+ ldrh r2, [r1, 0xC]
+ adds r0, r2
+ movs r2, 0
+ strh r0, [r1, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4F
+ bgt _080C5E1C
+_080C5E0A:
+ movs r0, 0
+ b _080C5E2E
+ .align 2, 0
+_080C5E10: .4byte gUnknown_020387EC
+_080C5E14: .4byte 0x0000ffff
+_080C5E18: .4byte sub_80C603C
+_080C5E1C:
+ movs r0, 0x50
+ strh r0, [r1, 0xC]
+ ldr r0, _080C5E34
+ strh r2, [r0]
+ adds r0, 0x4
+ strh r2, [r0]
+ bl ClearGpuRegBits
+ movs r0, 0x1
+_080C5E2E:
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080C5E34: .4byte REG_BLDCNT
+ thumb_func_end sub_80C5DCC
+
+ thumb_func_start sub_80C5E38
+sub_80C5E38: @ 80C5E38
+ push {r4-r7,lr}
+ sub sp, 0x28
+ adds r7, r0, 0
+ ldr r0, _080C5EC8
+ ldr r1, [r0, 0x4]
+ ldr r0, [r0]
+ str r0, [sp, 0x18]
+ str r1, [sp, 0x1C]
+ ldr r0, _080C5ECC
+ ldr r1, [r0, 0x4]
+ ldr r0, [r0]
+ str r0, [sp, 0x20]
+ str r1, [sp, 0x24]
+ mov r1, sp
+ ldr r0, _080C5ED0
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ ldrh r3, [r7]
+ lsls r2, r3, 16
+ add r0, sp, 0x18
+ ldrh r1, [r0, 0x4]
+ orrs r1, r2
+ str r1, [r0, 0x4]
+ mov r1, sp
+ movs r6, 0
+ strh r3, [r1]
+ ldrh r2, [r7, 0x2]
+ ldr r5, _080C5ED4
+ add r4, sp, 0x20
+ ldr r1, [r4, 0x4]
+ ands r1, r5
+ orrs r1, r2
+ str r1, [r4, 0x4]
+ mov r1, sp
+ strh r2, [r1, 0x2]
+ bl LoadSpriteSheet
+ adds r0, r4, 0
+ bl LoadSpritePalette
+ movs r0, 0x50
+ strh r0, [r7, 0xC]
+ strh r6, [r7, 0x8]
+ strh r6, [r7, 0xA]
+ ldrh r0, [r7, 0x2]
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x80
+ lsls r1, 9
+ lsls r1, r0
+ bics r5, r1
+ str r5, [r7, 0x10]
+ ldrh r0, [r7, 0x4]
+ cmp r0, 0
+ bne _080C5EB2
+ movs r0, 0x10
+ strh r0, [r7, 0x4]
+_080C5EB2:
+ ldrh r0, [r7, 0x6]
+ cmp r0, 0
+ bne _080C5EBC
+ movs r0, 0x14
+ strh r0, [r7, 0x6]
+_080C5EBC:
+ ldr r0, _080C5ED8
+ str r7, [r0]
+ movs r5, 0
+ ldr r6, _080C5EDC
+ b _080C5F4A
+ .align 2, 0
+_080C5EC8: .4byte gUnknown_083D1898
+_080C5ECC: .4byte gUnknown_083D18A0
+_080C5ED0: .4byte gSpriteTemplate_83D18C0
+_080C5ED4: .4byte 0xffff0000
+_080C5ED8: .4byte gUnknown_020387EC
+_080C5EDC: .4byte gSprites
+_080C5EE0:
+ lsls r2, r3, 4
+ adds r1, r2, r3
+ lsls r1, 2
+ adds r1, r6
+ ldrh r0, [r7, 0x4]
+ strh r0, [r1, 0x2E]
+ movs r0, 0x1
+ strh r0, [r1, 0x30]
+ ldr r1, _080C5EF4
+ b _080C5F2A
+ .align 2, 0
+_080C5EF4: .4byte gSprites
+_080C5EF8:
+ lsls r1, r5, 21
+ movs r0, 0x80
+ lsls r0, 16
+ adds r1, r0
+ asrs r1, 16
+ mov r0, sp
+ movs r2, 0x50
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x40
+ beq _080C5F6E
+ lsls r2, r3, 4
+ adds r1, r2, r3
+ lsls r1, 2
+ adds r1, r6
+ ldrh r0, [r7, 0x4]
+ negs r0, r0
+ strh r0, [r1, 0x2E]
+ ldr r0, _080C5F88
+ strh r0, [r1, 0x30]
+ ldr r1, _080C5F8C
+ lsls r4, r5, 5
+_080C5F2A:
+ adds r0, r2, r3
+ lsls r0, 2
+ adds r0, r1
+ adds r1, r4, 0
+ adds r1, 0x8
+ movs r2, 0
+ strh r1, [r0, 0x32]
+ strh r2, [r0, 0x36]
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+_080C5F4A:
+ cmp r5, 0x7
+ bhi _080C5F6E
+ cmp r5, 0x3
+ bhi _080C5EF8
+ lsls r4, r5, 5
+ adds r1, r4, 0
+ subs r1, 0x70
+ lsls r1, 16
+ asrs r1, 16
+ mov r0, sp
+ movs r2, 0x50
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x40
+ bne _080C5EE0
+_080C5F6E:
+ ldr r1, _080C5F90
+ movs r0, 0xFF
+ strh r0, [r1]
+ adds r1, 0x4
+ movs r0, 0x10
+ strh r0, [r1]
+ ldr r0, _080C5F94
+ bl sub_80C61B0
+ add sp, 0x28
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C5F88: .4byte 0x0000ffff
+_080C5F8C: .4byte gSprites
+_080C5F90: .4byte REG_BLDCNT
+_080C5F94: .4byte sub_80C6078
+ thumb_func_end sub_80C5E38
+
+ thumb_func_start sub_80C5F98
+sub_80C5F98: @ 80C5F98
+ push {r4,lr}
+ ldr r4, _080C5FB0
+ ldr r2, [r4]
+ ldrh r0, [r2, 0x8]
+ cmp r0, 0x1
+ beq _080C5FEC
+ cmp r0, 0x1
+ bgt _080C5FB4
+ cmp r0, 0
+ beq _080C5FBA
+ b _080C602C
+ .align 2, 0
+_080C5FB0: .4byte gUnknown_020387EC
+_080C5FB4:
+ cmp r0, 0x2
+ beq _080C6008
+ b _080C602C
+_080C5FBA:
+ ldrh r0, [r2, 0xC]
+ ldrh r1, [r2, 0x6]
+ subs r0, r1
+ strh r0, [r2, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ bgt _080C6034
+ ldr r0, [r2, 0x10]
+ ldr r2, _080C5FE4
+ movs r1, 0x10
+ bl BlendPalettes
+ ldr r0, _080C5FE8
+ bl SetHBlankCallback
+ ldr r1, [r4]
+ movs r0, 0x1
+ strh r0, [r1, 0xC]
+ b _080C6000
+ .align 2, 0
+_080C5FE4: .4byte 0x0000ffff
+_080C5FE8: .4byte sub_80C603C
+_080C5FEC:
+ ldrh r0, [r2, 0xA]
+ cmp r0, 0x8
+ bne _080C6034
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0x10
+ movs r2, 0
+ bl BlendPalettes
+ ldr r1, [r4]
+_080C6000:
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ b _080C6034
+_080C6008:
+ ldr r0, _080C6030
+ movs r1, 0
+ strh r1, [r0]
+ adds r0, 0x4
+ strh r1, [r0]
+ ldrh r0, [r2]
+ bl FreeSpriteTilesByTag
+ ldr r0, [r4]
+ ldrh r0, [r0, 0x2]
+ bl FreeSpritePaletteByTag
+ bl ClearGpuRegBits
+ ldr r1, [r4]
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+_080C602C:
+ movs r0, 0x1
+ b _080C6036
+ .align 2, 0
+_080C6030: .4byte REG_BLDCNT
+_080C6034:
+ movs r0, 0
+_080C6036:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80C5F98
+
+ thumb_func_start sub_80C603C
+sub_80C603C: @ 80C603C
+ push {lr}
+ sub sp, 0x4
+ mov r2, sp
+ ldr r0, _080C6060
+ ldrh r1, [r0]
+ movs r3, 0xFF
+ adds r0, r3, 0
+ ands r0, r1
+ strh r0, [r2]
+ mov r0, sp
+ ldrh r0, [r0]
+ cmp r0, 0x50
+ bne _080C6068
+ ldr r1, _080C6064
+ movs r0, 0x8F
+ strh r0, [r1]
+ b _080C606C
+ .align 2, 0
+_080C6060: .4byte REG_VCOUNT
+_080C6064: .4byte REG_BLDCNT
+_080C6068:
+ ldr r0, _080C6074
+ strh r3, [r0]
+_080C606C:
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C6074: .4byte REG_BLDCNT
+ thumb_func_end sub_80C603C
+
+ thumb_func_start sub_80C6078
+sub_80C6078: @ 80C6078
+ push {lr}
+ sub sp, 0x4
+ mov r2, sp
+ ldr r0, _080C60B0
+ ldrh r1, [r0]
+ movs r0, 0xFF
+ ands r0, r1
+ strh r0, [r2]
+ mov r0, sp
+ ldrh r1, [r0]
+ ldr r0, _080C60B4
+ ldr r0, [r0]
+ movs r3, 0xC
+ ldrsh r2, [r0, r3]
+ movs r0, 0x50
+ subs r0, r2
+ cmp r1, r0
+ ble _080C60BC
+ mov r0, sp
+ ldrh r1, [r0]
+ adds r0, r2, 0
+ adds r0, 0x50
+ cmp r1, r0
+ bge _080C60BC
+ ldr r1, _080C60B8
+ movs r0, 0
+ b _080C60C0
+ .align 2, 0
+_080C60B0: .4byte REG_VCOUNT
+_080C60B4: .4byte gUnknown_020387EC
+_080C60B8: .4byte REG_BLDY
+_080C60BC:
+ ldr r1, _080C60C8
+ movs r0, 0x10
+_080C60C0:
+ strh r0, [r1]
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C60C8: .4byte REG_BLDY
+ thumb_func_end sub_80C6078
+
+ thumb_func_start sub_80C60CC
+sub_80C60CC: @ 80C60CC
+ push {r4,lr}
+ adds r2, r0, 0
+ ldrh r0, [r2, 0x2E]
+ ldrh r1, [r2, 0x20]
+ adds r0, r1
+ strh r0, [r2, 0x20]
+ adds r0, 0x8
+ lsls r0, 16
+ movs r1, 0x80
+ lsls r1, 17
+ cmp r0, r1
+ bls _080C611C
+ adds r0, r2, 0
+ bl DestroySprite
+ ldr r4, _080C6124
+ ldr r1, [r4]
+ ldrh r0, [r1, 0xA]
+ adds r0, 0x1
+ strh r0, [r1, 0xA]
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x8
+ bne _080C611C
+ ldrh r0, [r1]
+ bl FreeSpriteTilesByTag
+ ldr r0, [r4]
+ ldrh r0, [r0, 0x2]
+ bl FreeSpritePaletteByTag
+ ldr r0, [r4]
+ ldr r0, [r0, 0x10]
+ ldr r2, _080C6128
+ movs r1, 0
+ bl BlendPalettes
+ ldr r0, _080C612C
+ bl SetHBlankCallback
+_080C611C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C6124: .4byte gUnknown_020387EC
+_080C6128: .4byte 0x0000ffff
+_080C612C: .4byte sub_80C6078
+ thumb_func_end sub_80C60CC
+
+ thumb_func_start sub_80C6130
+sub_80C6130: @ 80C6130
+ push {r4,r5,lr}
+ adds r2, r0, 0
+ movs r1, 0x36
+ ldrsh r0, [r2, r1]
+ cmp r0, 0
+ bne _080C61AA
+ ldr r1, _080C6184
+ ldr r0, [r1]
+ movs r3, 0xC
+ ldrsh r4, [r0, r3]
+ adds r5, r1, 0
+ cmp r4, 0x1
+ bne _080C61AA
+ ldrh r0, [r2, 0x2E]
+ ldrh r1, [r2, 0x20]
+ adds r0, r1
+ strh r0, [r2, 0x20]
+ adds r0, 0xF
+ lsls r0, 16
+ movs r1, 0x87
+ lsls r1, 17
+ cmp r0, r1
+ bhi _080C616C
+ adds r3, r2, 0
+ adds r3, 0x3E
+ ldrb r1, [r3]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r3]
+_080C616C:
+ movs r3, 0x30
+ ldrsh r0, [r2, r3]
+ cmp r0, 0
+ ble _080C6188
+ movs r0, 0x20
+ ldrsh r1, [r2, r0]
+ movs r3, 0x32
+ ldrsh r0, [r2, r3]
+ cmp r1, r0
+ blt _080C6196
+ b _080C6194
+ .align 2, 0
+_080C6184: .4byte gUnknown_020387EC
+_080C6188:
+ movs r0, 0x20
+ ldrsh r1, [r2, r0]
+ movs r3, 0x32
+ ldrsh r0, [r2, r3]
+ cmp r1, r0
+ bgt _080C6196
+_080C6194:
+ strh r4, [r2, 0x36]
+_080C6196:
+ movs r1, 0x36
+ ldrsh r0, [r2, r1]
+ cmp r0, 0
+ beq _080C61AA
+ ldr r0, [r5]
+ ldrh r1, [r0, 0xA]
+ adds r1, 0x1
+ strh r1, [r0, 0xA]
+ ldrh r0, [r2, 0x32]
+ strh r0, [r2, 0x20]
+_080C61AA:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80C6130
+
+ thumb_func_start sub_80C61B0
+sub_80C61B0: @ 80C61B0
+ push {r4-r6,lr}
+ ldr r2, _080C61F0
+ ldrh r1, [r2]
+ movs r5, 0x2
+ orrs r1, r5
+ strh r1, [r2]
+ ldr r3, _080C61F4
+ ldrh r1, [r3]
+ movs r2, 0x10
+ orrs r1, r2
+ strh r1, [r3]
+ ldr r4, _080C61F8
+ ldrh r2, [r4]
+ movs r6, 0
+ strh r6, [r4]
+ ldr r3, _080C61FC
+ ldrh r1, [r3]
+ orrs r1, r5
+ strh r1, [r3]
+ strh r2, [r4]
+ ldr r2, _080C6200
+ ldrh r1, [r2, 0x1C]
+ orrs r1, r5
+ ldrh r3, [r2, 0x1C]
+ orrs r1, r6
+ strh r1, [r2, 0x1C]
+ bl SetHBlankCallback
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C61F0: .4byte INTR_CHECK
+_080C61F4: .4byte REG_DISPSTAT
+_080C61F8: .4byte 0x04000208
+_080C61FC: .4byte 0x04000200
+_080C6200: .4byte gMain
+ thumb_func_end sub_80C61B0
+
+ thumb_func_start ClearGpuRegBits
+ClearGpuRegBits: @ 80C6204
+ push {r4,r5,lr}
+ ldr r3, _080C6248
+ ldrh r1, [r3]
+ ldr r2, _080C624C
+ adds r0, r2, 0
+ ands r0, r1
+ strh r0, [r3]
+ ldr r3, _080C6250
+ ldrh r1, [r3]
+ ldr r0, _080C6254
+ ands r0, r1
+ strh r0, [r3]
+ ldr r4, _080C6258
+ ldrh r3, [r4]
+ movs r0, 0
+ strh r0, [r4]
+ ldr r5, _080C625C
+ ldrh r1, [r5]
+ adds r0, r2, 0
+ ands r0, r1
+ strh r0, [r5]
+ strh r3, [r4]
+ ldr r0, _080C6260
+ ldrh r1, [r0, 0x1C]
+ ands r2, r1
+ ldrh r1, [r0, 0x1C]
+ strh r2, [r0, 0x1C]
+ movs r0, 0
+ bl SetHBlankCallback
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C6248: .4byte INTR_CHECK
+_080C624C: .4byte 0x0000fffd
+_080C6250: .4byte REG_DISPSTAT
+_080C6254: .4byte 0x0000ffef
+_080C6258: .4byte 0x04000208
+_080C625C: .4byte 0x04000200
+_080C6260: .4byte gMain
+ thumb_func_end ClearGpuRegBits
+
+ thumb_func_start sub_80C6264
+sub_80C6264: @ 80C6264
+ push {lr}
+ ldr r0, _080C6278
+ ldr r1, _080C627C
+ ldr r1, [r1, 0x4]
+ bl sub_80BBFD8
+ bl sub_80BB5E4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C6278: .4byte gUnknown_0203923C
+_080C627C: .4byte gMapHeader
+ thumb_func_end sub_80C6264
+
+ thumb_func_start sub_80C6280
+sub_80C6280: @ 80C6280
+ push {lr}
+ ldr r1, _080C6294
+ ldr r0, [r1, 0x4]
+ cmp r0, 0x2
+ beq _080C62AA
+ cmp r0, 0x2
+ bgt _080C6298
+ cmp r0, 0x1
+ beq _080C62A2
+ b _080C62BE
+ .align 2, 0
+_080C6294: .4byte gUnknown_0202FF84
+_080C6298:
+ cmp r0, 0x3
+ beq _080C62AE
+ cmp r0, 0x4
+ beq _080C62B8
+ b _080C62BE
+_080C62A2:
+ movs r0, 0x8
+ str r0, [r1, 0x14]
+ movs r0, 0x28
+ b _080C62BC
+_080C62AA:
+ movs r0, 0x8
+ b _080C62BA
+_080C62AE:
+ movs r0, 0x8
+ negs r0, r0
+ str r0, [r1, 0x14]
+ movs r0, 0x18
+ b _080C62BC
+_080C62B8:
+ movs r0, 0x18
+_080C62BA:
+ str r0, [r1, 0x14]
+_080C62BC:
+ str r0, [r1, 0x18]
+_080C62BE:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80C6280
+
+ thumb_func_start sub_80C62C4
+sub_80C62C4: @ 80C62C4
+ push {r4,lr}
+ bl sub_80BB63C
+ ldr r0, _080C6318
+ ldrh r0, [r0]
+ cmp r0, 0x1
+ beq _080C636E
+ bl player_get_direction_lower_nybble
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x2
+ bne _080C636E
+ ldr r4, _080C631C
+ adds r1, r4, 0x2
+ adds r0, r4, 0
+ bl GetXYCoordsOneStepInFrontOfPlayer
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ movs r2, 0x2
+ ldrsh r1, [r4, r2]
+ bl MapGridGetMetatileBehaviorAt
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r0, r4, 0
+ bl sub_80571EC
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080C6330
+ bl sub_80C6264
+ ldr r1, _080C6320
+ ldr r0, _080C6324
+ str r0, [r1]
+ ldr r1, _080C6328
+ ldr r0, _080C632C
+ b _080C6380
+ .align 2, 0
+_080C6318: .4byte gScriptResult
+_080C631C: .4byte gUnknown_0203923C
+_080C6320: .4byte gUnknown_0300485C
+_080C6324: .4byte sub_808AB90
+_080C6328: .4byte gUnknown_03005CE4
+_080C632C: .4byte sub_80C639C
+_080C6330:
+ adds r0, r4, 0
+ bl sub_805720C
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080C6360
+ bl sub_80C6264
+ ldr r1, _080C6350
+ ldr r0, _080C6354
+ str r0, [r1]
+ ldr r1, _080C6358
+ ldr r0, _080C635C
+ b _080C6380
+ .align 2, 0
+_080C6350: .4byte gUnknown_0300485C
+_080C6354: .4byte sub_808AB90
+_080C6358: .4byte gUnknown_03005CE4
+_080C635C: .4byte sub_80C64A8
+_080C6360:
+ adds r0, r4, 0
+ bl is_tile_x98
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _080C6372
+_080C636E:
+ movs r0, 0
+ b _080C6384
+_080C6372:
+ bl sub_80C6264
+ ldr r1, _080C638C
+ ldr r0, _080C6390
+ str r0, [r1]
+ ldr r1, _080C6394
+ ldr r0, _080C6398
+_080C6380:
+ str r0, [r1]
+ movs r0, 0x1
+_080C6384:
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080C638C: .4byte gUnknown_0300485C
+_080C6390: .4byte sub_808AB90
+_080C6394: .4byte gUnknown_03005CE4
+_080C6398: .4byte sub_80C660C
+ thumb_func_end sub_80C62C4
+
+ thumb_func_start sub_80C639C
+sub_80C639C: @ 80C639C
+ push {lr}
+ ldr r1, _080C63B0
+ ldr r0, _080C63B4
+ ldrb r0, [r0]
+ str r0, [r1]
+ ldr r0, _080C63B8
+ bl ScriptContext1_SetupScript
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C63B0: .4byte gUnknown_0202FF84
+_080C63B4: .4byte gUnknown_03005CE0
+_080C63B8: .4byte gUnknown_081A2CE6
+ thumb_func_end sub_80C639C
+
+ thumb_func_start sub_80C63BC
+sub_80C63BC: @ 80C63BC
+ push {lr}
+ bl oei_task_add
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080C63E0
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldr r2, _080C63E4
+ lsrs r0, r2, 16
+ strh r0, [r1, 0x18]
+ strh r2, [r1, 0x1A]
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080C63E0: .4byte gTasks
+_080C63E4: .4byte sub_80C63E8
+ thumb_func_end sub_80C63BC
+
+ thumb_func_start sub_80C63E8
+sub_80C63E8: @ 80C63E8
+ push {lr}
+ movs r0, 0xB
+ bl FieldEffectActiveListRemove
+ movs r0, 0x37
+ bl FieldEffectStart
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80C63E8
+
+ thumb_func_start sub_80C63FC
+sub_80C63FC: @ 80C63FC
+ push {r4,lr}
+ bl sub_80C6280
+ ldr r0, _080C643C
+ ldr r3, _080C6440
+ ldr r1, _080C6444
+ ldrb r1, [r1, 0x4]
+ lsls r2, r1, 4
+ adds r2, r1
+ lsls r2, 2
+ adds r2, r3
+ ldrh r1, [r2, 0x2]
+ lsls r1, 23
+ lsrs r1, 23
+ ldr r4, _080C6448
+ ldr r3, [r4, 0x14]
+ adds r1, r3
+ lsls r1, 16
+ asrs r1, 16
+ ldrb r2, [r2]
+ ldr r3, [r4, 0x18]
+ adds r2, r3
+ lsls r2, 16
+ asrs r2, 16
+ movs r3, 0x94
+ bl CreateSprite
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080C643C: .4byte gSpriteTemplate_83D2614
+_080C6440: .4byte gSprites
+_080C6444: .4byte gPlayerAvatar
+_080C6448: .4byte gUnknown_0202FF84
+ thumb_func_end sub_80C63FC
+
+ thumb_func_start sub_80C644C
+sub_80C644C: @ 80C644C
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r0, 0x83
+ bl PlaySE
+ movs r0, 0
+ strh r0, [r4, 0x2E]
+ ldr r0, _080C6464
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C6464: .4byte sub_80C6468
+ thumb_func_end sub_80C644C
+
+ thumb_func_start sub_80C6468
+sub_80C6468: @ 80C6468
+ push {lr}
+ adds r1, r0, 0
+ ldrh r2, [r1, 0x2E]
+ movs r3, 0x2E
+ ldrsh r0, [r1, r3]
+ cmp r0, 0x27
+ bgt _080C6488
+ adds r0, r2, 0x1
+ strh r0, [r1, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x14
+ bne _080C6490
+ bl sub_80BB800
+ b _080C6490
+_080C6488:
+ movs r0, 0
+ strh r0, [r1, 0x2E]
+ ldr r0, _080C6494
+ str r0, [r1, 0x1C]
+_080C6490:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C6494: .4byte sub_80C6498
+ thumb_func_end sub_80C6468
+
+ thumb_func_start sub_80C6498
+sub_80C6498: @ 80C6498
+ push {lr}
+ movs r1, 0x37
+ bl FieldEffectStop
+ bl EnableBothScriptContexts
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80C6498
+
+ thumb_func_start sub_80C64A8
+sub_80C64A8: @ 80C64A8
+ push {lr}
+ ldr r1, _080C64BC
+ ldr r0, _080C64C0
+ ldrb r0, [r0]
+ str r0, [r1]
+ ldr r0, _080C64C4
+ bl ScriptContext1_SetupScript
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C64BC: .4byte gUnknown_0202FF84
+_080C64C0: .4byte gUnknown_03005CE0
+_080C64C4: .4byte gUnknown_081A2D3E
+ thumb_func_end sub_80C64A8
+
+ thumb_func_start sub_80C64C8
+sub_80C64C8: @ 80C64C8
+ push {lr}
+ bl oei_task_add
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080C64EC
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldr r2, _080C64F0
+ lsrs r0, r2, 16
+ strh r0, [r1, 0x18]
+ strh r2, [r1, 0x1A]
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080C64EC: .4byte gTasks
+_080C64F0: .4byte sub_80C64F4
+ thumb_func_end sub_80C64C8
+
+ thumb_func_start sub_80C64F4
+sub_80C64F4: @ 80C64F4
+ push {lr}
+ movs r0, 0x1A
+ bl FieldEffectActiveListRemove
+ movs r0, 0x38
+ bl FieldEffectStart
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80C64F4
+
+ thumb_func_start sub_80C6508
+sub_80C6508: @ 80C6508
+ push {r4,lr}
+ ldr r1, _080C6580
+ movs r2, 0
+ ldrsh r0, [r1, r2]
+ movs r2, 0x2
+ ldrsh r1, [r1, r2]
+ bl MapGridGetMetatileBehaviorAt
+ adds r2, r0, 0
+ ldr r1, _080C6584
+ adds r0, r1, 0
+ ands r2, r0
+ cmp r2, 0x96
+ bne _080C652A
+ ldr r1, _080C6588
+ movs r0, 0
+ str r0, [r1, 0x1C]
+_080C652A:
+ cmp r2, 0x9C
+ bne _080C6534
+ ldr r1, _080C6588
+ movs r0, 0x2
+ str r0, [r1, 0x1C]
+_080C6534:
+ bl sub_80C6280
+ ldr r0, _080C658C
+ ldr r3, _080C6590
+ ldr r1, _080C6594
+ ldrb r1, [r1, 0x4]
+ lsls r2, r1, 4
+ adds r2, r1
+ lsls r2, 2
+ adds r2, r3
+ ldrh r1, [r2, 0x2]
+ lsls r1, 23
+ lsrs r1, 23
+ ldr r4, _080C6588
+ ldr r3, [r4, 0x14]
+ adds r1, r3
+ lsls r1, 16
+ asrs r1, 16
+ ldrb r2, [r2]
+ ldr r3, [r4, 0x18]
+ adds r2, r3
+ lsls r2, 16
+ asrs r2, 16
+ movs r3, 0x94
+ bl CreateSprite
+ ldr r0, [r4, 0x1C]
+ cmp r0, 0x1
+ beq _080C6572
+ cmp r0, 0x3
+ bne _080C6576
+_080C6572:
+ bl sub_80BB800
+_080C6576:
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080C6580: .4byte gUnknown_0203923C
+_080C6584: .4byte 0x00000fff
+_080C6588: .4byte gUnknown_0202FF84
+_080C658C: .4byte gSpriteTemplate_83D262C
+_080C6590: .4byte gSprites
+_080C6594: .4byte gPlayerAvatar
+ thumb_func_end sub_80C6508
+
+ thumb_func_start sub_80C6598
+sub_80C6598: @ 80C6598
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r0, 0x9B
+ bl PlaySE
+ ldr r0, _080C65BC
+ ldr r1, [r0, 0x1C]
+ adds r2, r4, 0
+ adds r2, 0x2A
+ movs r0, 0
+ strb r1, [r2]
+ strh r0, [r4, 0x2E]
+ ldr r0, _080C65C0
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C65BC: .4byte gUnknown_0202FF84
+_080C65C0: .4byte sub_80C65C4
+ thumb_func_end sub_80C6598
+
+ thumb_func_start sub_80C65C4
+sub_80C65C4: @ 80C65C4
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x27
+ ble _080C65EE
+ ldr r0, _080C65F4
+ ldr r0, [r0, 0x1C]
+ cmp r0, 0
+ beq _080C65E2
+ cmp r0, 0x2
+ bne _080C65E6
+_080C65E2:
+ bl sub_80BB800
+_080C65E6:
+ movs r0, 0
+ strh r0, [r4, 0x2E]
+ ldr r0, _080C65F8
+ str r0, [r4, 0x1C]
+_080C65EE:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C65F4: .4byte gUnknown_0202FF84
+_080C65F8: .4byte sub_80C65FC
+ thumb_func_end sub_80C65C4
+
+ thumb_func_start sub_80C65FC
+sub_80C65FC: @ 80C65FC
+ push {lr}
+ movs r1, 0x38
+ bl FieldEffectStop
+ bl EnableBothScriptContexts
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80C65FC
+
+ thumb_func_start sub_80C660C
+sub_80C660C: @ 80C660C
+ push {lr}
+ ldr r1, _080C6620
+ ldr r0, _080C6624
+ ldrb r0, [r0]
+ str r0, [r1]
+ ldr r0, _080C6628
+ bl ScriptContext1_SetupScript
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C6620: .4byte gUnknown_0202FF84
+_080C6624: .4byte gUnknown_03005CE0
+_080C6628: .4byte gUnknown_081A2D96
+ thumb_func_end sub_80C660C
+
+ thumb_func_start sub_80C662C
+sub_80C662C: @ 80C662C
+ push {lr}
+ bl oei_task_add
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080C6650
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldr r2, _080C6654
+ lsrs r0, r2, 16
+ strh r0, [r1, 0x18]
+ strh r2, [r1, 0x1A]
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080C6650: .4byte gTasks
+_080C6654: .4byte sub_80C6658
+ thumb_func_end sub_80C662C
+
+ thumb_func_start sub_80C6658
+sub_80C6658: @ 80C6658
+ push {lr}
+ movs r0, 0x1B
+ bl FieldEffectActiveListRemove
+ movs r0, 0x39
+ bl FieldEffectStart
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80C6658
+
+ thumb_func_start sub_80C666C
+sub_80C666C: @ 80C666C
+ push {r4,lr}
+ bl sub_80C6280
+ ldr r0, _080C66AC
+ ldr r3, _080C66B0
+ ldr r1, _080C66B4
+ ldrb r1, [r1, 0x4]
+ lsls r2, r1, 4
+ adds r2, r1
+ lsls r2, 2
+ adds r2, r3
+ ldrh r1, [r2, 0x2]
+ lsls r1, 23
+ lsrs r1, 23
+ ldr r4, _080C66B8
+ ldr r3, [r4, 0x14]
+ adds r1, r3
+ lsls r1, 16
+ asrs r1, 16
+ ldrb r2, [r2]
+ ldr r3, [r4, 0x18]
+ adds r2, r3
+ lsls r2, 16
+ asrs r2, 16
+ movs r3, 0x94
+ bl CreateSprite
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080C66AC: .4byte gSpriteTemplate_83D2644
+_080C66B0: .4byte gSprites
+_080C66B4: .4byte gPlayerAvatar
+_080C66B8: .4byte gUnknown_0202FF84
+ thumb_func_end sub_80C666C
+
+ thumb_func_start sub_80C66BC
+sub_80C66BC: @ 80C66BC
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r0, 0xA9
+ bl PlaySE
+ movs r0, 0
+ strh r0, [r4, 0x2E]
+ ldr r0, _080C66D4
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C66D4: .4byte sub_80C66D8
+ thumb_func_end sub_80C66BC
+
+ thumb_func_start sub_80C66D8
+sub_80C66D8: @ 80C66D8
+ push {lr}
+ adds r1, r0, 0
+ ldrh r2, [r1, 0x2E]
+ movs r3, 0x2E
+ ldrsh r0, [r1, r3]
+ cmp r0, 0x27
+ bgt _080C66F8
+ adds r0, r2, 0x1
+ strh r0, [r1, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x14
+ bne _080C6700
+ bl sub_80BB800
+ b _080C6700
+_080C66F8:
+ movs r0, 0
+ strh r0, [r1, 0x2E]
+ ldr r0, _080C6704
+ str r0, [r1, 0x1C]
+_080C6700:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C6704: .4byte sub_80C6708
+ thumb_func_end sub_80C66D8
+
+ thumb_func_start sub_80C6708
+sub_80C6708: @ 80C6708
+ push {lr}
+ movs r1, 0x39
+ bl FieldEffectStop
+ bl EnableBothScriptContexts
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80C6708
+
+ thumb_func_start sub_80C6718
+sub_80C6718: @ 80C6718
+ push {r4,lr}
+ sub sp, 0x4
+ mov r4, sp
+ adds r4, 0x2
+ mov r0, sp
+ adds r1, r4, 0
+ bl GetXYCoordsOneStepInFrontOfPlayer
+ ldr r0, _080C6758
+ movs r1, 0
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080C675C
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ mov r0, sp
+ ldrh r0, [r0]
+ movs r2, 0
+ strh r0, [r1, 0x8]
+ ldrh r0, [r4]
+ strh r0, [r1, 0xA]
+ strh r2, [r1, 0xC]
+ movs r0, 0
+ add sp, 0x4
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080C6758: .4byte sub_80C6760
+_080C675C: .4byte gTasks
+ thumb_func_end sub_80C6718
+
+ thumb_func_start sub_80C6760
+sub_80C6760: @ 80C6760
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, _080C6788
+ adds r4, r0, r1
+ ldrh r0, [r4, 0x4]
+ subs r0, 0x4
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x10
+ bhi _080C682E
+ lsls r0, 2
+ ldr r1, _080C678C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080C6788: .4byte gUnknown_03004B28
+_080C678C: .4byte _080C6790
+ .align 2, 0
+_080C6790:
+ .4byte _080C67D4
+ .4byte _080C682E
+ .4byte _080C682E
+ .4byte _080C682E
+ .4byte _080C67E2
+ .4byte _080C682E
+ .4byte _080C682E
+ .4byte _080C682E
+ .4byte _080C67D4
+ .4byte _080C682E
+ .4byte _080C682E
+ .4byte _080C682E
+ .4byte _080C67E2
+ .4byte _080C682E
+ .4byte _080C682E
+ .4byte _080C682E
+ .4byte _080C6800
+_080C67D4:
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ movs r2, 0x2
+ ldrsh r1, [r4, r2]
+ movs r2, 0x89
+ lsls r2, 2
+ b _080C67EE
+_080C67E2:
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ movs r2, 0x2
+ ldrsh r1, [r4, r2]
+ movs r2, 0x88
+ lsls r2, 2
+_080C67EE:
+ bl MapGridSetMetatileIdAt
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ movs r2, 0x2
+ ldrsh r1, [r4, r2]
+ bl CurrentMapDrawMetatileAt
+ b _080C682E
+_080C6800:
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ movs r2, 0x2
+ ldrsh r1, [r4, r2]
+ movs r2, 0x89
+ lsls r2, 2
+ bl MapGridSetMetatileIdAt
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ movs r2, 0x2
+ ldrsh r1, [r4, r2]
+ bl CurrentMapDrawMetatileAt
+ movs r0, 0x3D
+ bl FieldEffectActiveListRemove
+ bl EnableBothScriptContexts
+ adds r0, r5, 0
+ bl DestroyTask
+ b _080C6834
+_080C682E:
+ ldrh r0, [r4, 0x4]
+ adds r0, 0x1
+ strh r0, [r4, 0x4]
+_080C6834:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80C6760
+
+ thumb_func_start sub_80C683C
+sub_80C683C: @ 80C683C
+ push {r4,lr}
+ sub sp, 0x4
+ mov r4, sp
+ adds r4, 0x2
+ mov r0, sp
+ adds r1, r4, 0
+ bl GetXYCoordsOneStepInFrontOfPlayer
+ movs r0, 0x3
+ bl PlaySE
+ ldr r0, _080C6874
+ bl VarGet
+ lsls r0, 16
+ cmp r0, 0
+ bne _080C6878
+ mov r0, sp
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ movs r2, 0
+ ldrsh r1, [r4, r2]
+ movs r2, 0xE2
+ lsls r2, 4
+ bl MapGridSetMetatileIdAt
+ b _080C6888
+ .align 2, 0
+_080C6874: .4byte 0x00004054
+_080C6878:
+ mov r0, sp
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ movs r2, 0
+ ldrsh r1, [r4, r2]
+ ldr r2, _080C68A0
+ bl MapGridSetMetatileIdAt
+_080C6888:
+ mov r0, sp
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ movs r2, 0
+ ldrsh r1, [r4, r2]
+ bl CurrentMapDrawMetatileAt
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C68A0: .4byte 0x00000e21
+ thumb_func_end sub_80C683C
+
+ thumb_func_start sub_80C68A4
+sub_80C68A4: @ 80C68A4
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ adds r6, r2, 0
+ lsls r4, 16
+ lsrs r4, 16
+ lsls r5, 16
+ lsrs r5, 16
+ lsls r6, 16
+ lsrs r6, 16
+ ldr r0, _080C68E4
+ movs r1, 0
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080C68E8
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ movs r0, 0
+ strh r4, [r1, 0x8]
+ strh r5, [r1, 0xA]
+ strh r6, [r1, 0xC]
+ strh r0, [r1, 0xE]
+ movs r0, 0x1
+ strh r0, [r1, 0x10]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C68E4: .4byte sub_80C68EC
+_080C68E8: .4byte gTasks
+ thumb_func_end sub_80C68A4
+
+ thumb_func_start sub_80C68EC
+sub_80C68EC: @ 80C68EC
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, _080C690C
+ adds r4, r0, r1
+ ldrh r1, [r4, 0x6]
+ movs r2, 0x6
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x6
+ bne _080C6910
+ movs r0, 0
+ b _080C6912
+ .align 2, 0
+_080C690C: .4byte gUnknown_03004B28
+_080C6910:
+ adds r0, r1, 0x1
+_080C6912:
+ strh r0, [r4, 0x6]
+ movs r3, 0x6
+ ldrsh r0, [r4, r3]
+ cmp r0, 0
+ bne _080C6964
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x2
+ bne _080C692C
+ movs r2, 0
+ ldrsh r0, [r4, r2]
+ bl sub_80C696C
+_080C692C:
+ movs r3, 0x2
+ ldrsh r0, [r4, r3]
+ movs r2, 0x4
+ ldrsh r1, [r4, r2]
+ ldrh r2, [r4, 0x8]
+ ldrh r3, [r4]
+ adds r2, r3
+ lsls r2, 16
+ lsrs r2, 16
+ bl MapGridSetMetatileIdAt
+ movs r1, 0x2
+ ldrsh r0, [r4, r1]
+ movs r2, 0x4
+ ldrsh r1, [r4, r2]
+ bl CurrentMapDrawMetatileAt
+ ldrh r1, [r4, 0x8]
+ movs r3, 0x8
+ ldrsh r0, [r4, r3]
+ cmp r0, 0x3
+ bne _080C6960
+ adds r0, r5, 0
+ bl DestroyTask
+ b _080C6964
+_080C6960:
+ adds r0, r1, 0x1
+ strh r0, [r4, 0x8]
+_080C6964:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80C68EC
+
+ thumb_func_start sub_80C696C
+sub_80C696C: @ 80C696C
+ push {lr}
+ lsls r0, 16
+ asrs r1, r0, 16
+ movs r0, 0xCE
+ lsls r0, 2
+ cmp r1, r0
+ beq _080C6998
+ cmp r1, r0
+ bgt _080C6988
+ movs r0, 0x8A
+ lsls r0, 2
+ cmp r1, r0
+ beq _080C69B0
+ b _080C69B6
+_080C6988:
+ movs r0, 0xCF
+ lsls r0, 2
+ cmp r1, r0
+ beq _080C69A0
+ adds r0, 0x4
+ cmp r1, r0
+ beq _080C69A8
+ b _080C69B6
+_080C6998:
+ movs r0, 0x4A
+ bl PlaySE
+ b _080C69B6
+_080C69A0:
+ movs r0, 0x4B
+ bl PlaySE
+ b _080C69B6
+_080C69A8:
+ movs r0, 0x4C
+ bl PlaySE
+ b _080C69B6
+_080C69B0:
+ movs r0, 0x4E
+ bl PlaySE
+_080C69B6:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80C696C
+
+ thumb_func_start sub_80C69BC
+sub_80C69BC: @ 80C69BC
+ movs r0, 0
+ bx lr
+ thumb_func_end sub_80C69BC
+
+ thumb_func_start sub_80C69C0
+sub_80C69C0: @ 80C69C0
+ movs r0, 0
+ bx lr
+ thumb_func_end sub_80C69C0
+
+ thumb_func_start sub_80C69C4
+sub_80C69C4: @ 80C69C4
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ adds r4, r1, 0
+ lsls r5, 16
+ lsrs r5, 16
+ lsls r4, 16
+ lsrs r4, 16
+ movs r0, 0x4D
+ bl PlaySE
+ lsls r5, 16
+ asrs r5, 16
+ lsls r4, 16
+ asrs r4, 16
+ ldr r2, _080C6A0C
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl MapGridSetMetatileIdAt
+ subs r6, r4, 0x1
+ ldr r2, _080C6A10
+ adds r0, r5, 0
+ adds r1, r6, 0
+ bl MapGridSetMetatileIdAt
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl CurrentMapDrawMetatileAt
+ adds r0, r5, 0
+ adds r1, r6, 0
+ bl CurrentMapDrawMetatileAt
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C6A0C: .4byte 0x00000276
+_080C6A10: .4byte 0x0000026e
+ thumb_func_end sub_80C69C4
+
+ thumb_func_start sub_80C6A14
+sub_80C6A14: @ 80C6A14
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r1, _080C6A44
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r1, r0, r1
+ ldrh r2, [r1, 0x8]
+ movs r3, 0x8
+ ldrsh r0, [r1, r3]
+ cmp r0, 0x7
+ bne _080C6A48
+ movs r2, 0xA
+ ldrsh r0, [r1, r2]
+ movs r3, 0xC
+ ldrsh r1, [r1, r3]
+ bl sub_80C69C4
+ adds r0, r4, 0
+ bl DestroyTask
+ b _080C6A4C
+ .align 2, 0
+_080C6A44: .4byte gTasks
+_080C6A48:
+ adds r0, r2, 0x1
+ strh r0, [r1, 0x8]
+_080C6A4C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80C6A14
+
+ thumb_func_start sub_80C6A54
+sub_80C6A54: @ 80C6A54
+ push {r4-r7,lr}
+ lsls r0, 16
+ lsrs r5, r0, 16
+ adds r7, r5, 0
+ lsls r1, 16
+ lsrs r4, r1, 16
+ adds r6, r4, 0
+ bl player_get_direction_lower_nybble
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080C6A7C
+ lsls r0, r5, 16
+ asrs r0, 16
+ lsls r1, r4, 16
+ asrs r1, 16
+ bl sub_80C69C4
+ b _080C6A9E
+_080C6A7C:
+ cmp r0, 0x2
+ bne _080C6A9E
+ ldr r0, _080C6AA4
+ movs r1, 0x5
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080C6AA8
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ movs r0, 0
+ strh r0, [r1, 0x8]
+ strh r7, [r1, 0xA]
+ strh r6, [r1, 0xC]
+_080C6A9E:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C6AA4: .4byte sub_80C6A14
+_080C6AA8: .4byte gTasks
+ thumb_func_end sub_80C6A54
+
+ thumb_func_start sub_80C6AAC
+sub_80C6AAC: @ 80C6AAC
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r1, _080C6AE4
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r1, r0, r1
+ ldrh r2, [r1, 0xA]
+ movs r3, 0xA
+ ldrsh r0, [r1, r3]
+ cmp r0, 0x7
+ beq _080C6AC8
+ b _080C6C26
+_080C6AC8:
+ ldr r2, _080C6AE8
+ adds r0, r2, 0
+ ldrh r1, [r1, 0x8]
+ adds r0, r1
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3B
+ bls _080C6ADA
+ b _080C6C1E
+_080C6ADA:
+ lsls r0, 2
+ ldr r1, _080C6AEC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080C6AE4: .4byte gTasks
+_080C6AE8: .4byte 0xfffffd88
+_080C6AEC: .4byte _080C6AF0
+ .align 2, 0
+_080C6AF0:
+ .4byte _080C6BE0
+ .4byte _080C6BE8
+ .4byte _080C6BF0
+ .4byte _080C6BF8
+ .4byte _080C6C00
+ .4byte _080C6C08
+ .4byte _080C6C10
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C18
+_080C6BE0:
+ movs r0, 0x3E
+ bl PlaySE
+ b _080C6C1E
+_080C6BE8:
+ movs r0, 0x3F
+ bl PlaySE
+ b _080C6C1E
+_080C6BF0:
+ movs r0, 0x40
+ bl PlaySE
+ b _080C6C1E
+_080C6BF8:
+ movs r0, 0x41
+ bl PlaySE
+ b _080C6C1E
+_080C6C00:
+ movs r0, 0x42
+ bl PlaySE
+ b _080C6C1E
+_080C6C08:
+ movs r0, 0x43
+ bl PlaySE
+ b _080C6C1E
+_080C6C10:
+ movs r0, 0x44
+ bl PlaySE
+ b _080C6C1E
+_080C6C18:
+ movs r0, 0x45
+ bl PlaySE
+_080C6C1E:
+ adds r0, r4, 0
+ bl DestroyTask
+ b _080C6C2A
+_080C6C26:
+ adds r0, r2, 0x1
+ strh r0, [r1, 0xA]
+_080C6C2A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80C6AAC
+
+ thumb_func_start sub_80C6C30
+sub_80C6C30: @ 80C6C30
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ ldr r0, _080C6C5C
+ movs r1, 0x5
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080C6C60
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ movs r0, 0
+ strh r4, [r1, 0x8]
+ strh r0, [r1, 0xA]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C6C5C: .4byte sub_80C6AAC
+_080C6C60: .4byte gTasks
+ thumb_func_end sub_80C6C30
+
+ thumb_func_start sub_80C6C64
+sub_80C6C64: @ 80C6C64
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x8
+ bne _080C6C7C
+ movs r0, 0xC3
+ bl PlaySE
+_080C6C7C:
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1F
+ ble _080C6C8A
+ adds r0, r4, 0
+ bl DestroySprite
+_080C6C8A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80C6C64
+
+ thumb_func_start sub_80C6C90
+sub_80C6C90: @ 80C6C90
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r3, _080C6D28
+ ldr r2, _080C6D2C
+ ldrb r1, [r2, 0x5]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ ldrh r1, [r0, 0x10]
+ mov r0, sp
+ strh r1, [r0]
+ ldrb r1, [r2, 0x5]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ ldrh r0, [r0, 0x12]
+ mov r4, sp
+ adds r4, 0x2
+ strh r0, [r4]
+ mov r0, sp
+ adds r1, r4, 0
+ movs r2, 0x8
+ movs r3, 0x4
+ bl sub_8060470
+ ldr r0, _080C6D30
+ ldr r0, [r0, 0x58]
+ mov r1, sp
+ movs r2, 0
+ ldrsh r1, [r1, r2]
+ movs r3, 0
+ ldrsh r2, [r4, r3]
+ movs r3, 0
+ bl CreateSpriteAtEnd
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x40
+ beq _080C6D1E
+ ldr r3, _080C6D34
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r4, r2, r3
+ movs r0, 0x3E
+ adds r0, r4
+ mov r12, r0
+ ldrb r0, [r0]
+ movs r1, 0x2
+ orrs r0, r1
+ mov r1, r12
+ strb r0, [r1]
+ ldrb r1, [r4, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x4
+ orrs r0, r1
+ movs r1, 0xF
+ ands r0, r1
+ movs r1, 0x50
+ orrs r0, r1
+ strb r0, [r4, 0x5]
+ adds r3, 0x1C
+ adds r2, r3
+ ldr r0, _080C6D38
+ str r0, [r2]
+ movs r0, 0
+ strh r0, [r4, 0x2E]
+_080C6D1E:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C6D28: .4byte gMapObjects
+_080C6D2C: .4byte gPlayerAvatar
+_080C6D30: .4byte gFieldEffectObjectTemplatePointers
+_080C6D34: .4byte gSprites
+_080C6D38: .4byte sub_80C6C64
+ thumb_func_end sub_80C6C90
+
+ thumb_func_start sub_80C6D3C
+sub_80C6D3C: @ 80C6D3C
+ push {r4,lr}
+ sub sp, 0x4
+ bl ScriptContext2_Enable
+ mov r4, sp
+ adds r4, 0x2
+ mov r0, sp
+ adds r1, r4, 0
+ bl GetXYCoordsOneStepInFrontOfPlayer
+ ldr r1, _080C6D78
+ mov r0, sp
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ str r0, [r1, 0x14]
+ movs r3, 0
+ ldrsh r0, [r4, r3]
+ str r0, [r1, 0x18]
+ bl player_get_direction_lower_nybble
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x2
+ beq _080C6DBC
+ cmp r0, 0x2
+ bgt _080C6D7C
+ cmp r0, 0x1
+ beq _080C6D86
+ b _080C6E4C
+ .align 2, 0
+_080C6D78: .4byte gUnknown_0202FF84
+_080C6D7C:
+ cmp r0, 0x3
+ beq _080C6DEC
+ cmp r0, 0x4
+ beq _080C6E24
+ b _080C6E4C
+_080C6D86:
+ ldr r0, _080C6DB0
+ ldr r3, _080C6DB4
+ ldr r1, _080C6DB8
+ ldrb r1, [r1, 0x4]
+ lsls r2, r1, 4
+ adds r2, r1
+ lsls r2, 2
+ adds r2, r3
+ ldrh r1, [r2, 0x2]
+ lsls r1, 23
+ lsrs r1, 7
+ movs r3, 0x80
+ lsls r3, 12
+ adds r1, r3
+ asrs r1, 16
+ ldrb r2, [r2]
+ adds r2, 0x20
+ movs r3, 0
+ bl CreateSprite
+ b _080C6E4C
+ .align 2, 0
+_080C6DB0: .4byte gSpriteTemplate_83D26A0
+_080C6DB4: .4byte gSprites
+_080C6DB8: .4byte gPlayerAvatar
+_080C6DBC:
+ ldr r0, _080C6DE0
+ ldr r3, _080C6DE4
+ ldr r1, _080C6DE8
+ ldrb r1, [r1, 0x4]
+ lsls r2, r1, 4
+ adds r2, r1
+ lsls r2, 2
+ adds r2, r3
+ ldrh r1, [r2, 0x2]
+ lsls r1, 23
+ lsrs r1, 7
+ movs r3, 0x80
+ lsls r3, 12
+ adds r1, r3
+ asrs r1, 16
+ ldrb r2, [r2]
+ b _080C6E0C
+ .align 2, 0
+_080C6DE0: .4byte gSpriteTemplate_83D26A0
+_080C6DE4: .4byte gSprites
+_080C6DE8: .4byte gPlayerAvatar
+_080C6DEC:
+ ldr r0, _080C6E14
+ ldr r3, _080C6E18
+ ldr r1, _080C6E1C
+ ldrb r1, [r1, 0x4]
+ lsls r2, r1, 4
+ adds r2, r1
+ lsls r2, 2
+ adds r2, r3
+ ldrh r1, [r2, 0x2]
+ lsls r1, 23
+ lsrs r1, 7
+ ldr r3, _080C6E20
+ adds r1, r3
+ asrs r1, 16
+ ldrb r2, [r2]
+ adds r2, 0x10
+_080C6E0C:
+ movs r3, 0x94
+ bl CreateSprite
+ b _080C6E4C
+ .align 2, 0
+_080C6E14: .4byte gSpriteTemplate_83D26A0
+_080C6E18: .4byte gSprites
+_080C6E1C: .4byte gPlayerAvatar
+_080C6E20: .4byte 0xfff80000
+_080C6E24:
+ ldr r0, _080C6E58
+ ldr r3, _080C6E5C
+ ldr r1, _080C6E60
+ ldrb r1, [r1, 0x4]
+ lsls r2, r1, 4
+ adds r2, r1
+ lsls r2, 2
+ adds r2, r3
+ ldrh r1, [r2, 0x2]
+ lsls r1, 23
+ lsrs r1, 7
+ movs r3, 0xC0
+ lsls r3, 13
+ adds r1, r3
+ asrs r1, 16
+ ldrb r2, [r2]
+ adds r2, 0x10
+ movs r3, 0x94
+ bl CreateSprite
+_080C6E4C:
+ movs r0, 0
+ add sp, 0x4
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080C6E58: .4byte gSpriteTemplate_83D26A0
+_080C6E5C: .4byte gSprites
+_080C6E60: .4byte gPlayerAvatar
+ thumb_func_end sub_80C6D3C
+
+ thumb_func_start door_restore_tilemap
+door_restore_tilemap: @ 80C6E64
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ movs r0, 0x83
+ bl PlaySE
+ ldr r4, _080C6E90
+ ldr r0, [r4, 0x14]
+ ldr r1, [r4, 0x18]
+ subs r1, 0x1
+ bl MapGridGetMetatileIdAt
+ ldr r1, _080C6E94
+ cmp r0, r1
+ bne _080C6E9C
+ ldr r0, [r4, 0x14]
+ ldr r1, [r4, 0x18]
+ subs r1, 0x1
+ ldr r2, _080C6E98
+ bl MapGridSetMetatileIdAt
+ b _080C6EAA
+ .align 2, 0
+_080C6E90: .4byte gUnknown_0202FF84
+_080C6E94: .4byte 0x00000286
+_080C6E98: .4byte 0x00000e02
+_080C6E9C:
+ ldr r0, [r4, 0x14]
+ ldr r1, [r4, 0x18]
+ subs r1, 0x1
+ movs r2, 0xA1
+ lsls r2, 2
+ bl MapGridSetMetatileIdAt
+_080C6EAA:
+ ldr r4, _080C6ED8
+ ldr r0, [r4, 0x14]
+ ldr r1, [r4, 0x18]
+ ldr r2, _080C6EDC
+ bl MapGridSetMetatileIdAt
+ ldr r0, [r4, 0x14]
+ ldr r1, [r4, 0x18]
+ subs r1, 0x1
+ bl CurrentMapDrawMetatileAt
+ ldr r0, [r4, 0x14]
+ ldr r1, [r4, 0x18]
+ bl CurrentMapDrawMetatileAt
+ movs r0, 0
+ strh r0, [r5, 0x2E]
+ ldr r0, _080C6EE0
+ str r0, [r5, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C6ED8: .4byte gUnknown_0202FF84
+_080C6EDC: .4byte 0x0000020a
+_080C6EE0: .4byte sub_80C6EE4
+ thumb_func_end door_restore_tilemap
+
+ thumb_func_start sub_80C6EE4
+sub_80C6EE4: @ 80C6EE4
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldrh r1, [r5, 0x2E]
+ movs r2, 0x2E
+ ldrsh r0, [r5, r2]
+ cmp r0, 0x11
+ bgt _080C6EF8
+ adds r0, r1, 0x1
+ strh r0, [r5, 0x2E]
+ b _080C6F14
+_080C6EF8:
+ ldr r4, _080C6F1C
+ ldr r0, [r4, 0x14]
+ ldr r1, [r4, 0x18]
+ ldr r2, _080C6F20
+ bl MapGridSetMetatileIdAt
+ ldr r0, [r4, 0x14]
+ ldr r1, [r4, 0x18]
+ bl CurrentMapDrawMetatileAt
+ movs r0, 0
+ strh r0, [r5, 0x2E]
+ ldr r0, _080C6F24
+ str r0, [r5, 0x1C]
+_080C6F14:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C6F1C: .4byte gUnknown_0202FF84
+_080C6F20: .4byte 0x00000e8c
+_080C6F24: .4byte sub_80C6F28
+ thumb_func_end sub_80C6EE4
+
+ thumb_func_start sub_80C6F28
+sub_80C6F28: @ 80C6F28
+ push {lr}
+ movs r1, 0x34
+ bl FieldEffectStop
+ bl EnableBothScriptContexts
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80C6F28
+
+ thumb_func_start sub_80C6F38
+sub_80C6F38: @ 80C6F38
+ push {r4,lr}
+ sub sp, 0x4
+ mov r4, sp
+ adds r4, 0x2
+ mov r0, sp
+ adds r1, r4, 0
+ bl GetXYCoordsOneStepInFrontOfPlayer
+ mov r0, sp
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ movs r2, 0
+ ldrsh r1, [r4, r2]
+ bl MapGridGetMetatileIdAt
+ adds r1, r0, 0
+ ldr r0, _080C6F70
+ cmp r1, r0
+ beq _080C6FE8
+ cmp r1, r0
+ bgt _080C6F74
+ subs r0, 0x17
+ cmp r1, r0
+ beq _080C6FB0
+ adds r0, 0x16
+ cmp r1, r0
+ beq _080C6FDC
+ b _080C6FFA
+ .align 2, 0
+_080C6F70: .4byte 0x000002f5
+_080C6F74:
+ ldr r0, _080C6F9C
+ cmp r1, r0
+ beq _080C6FF4
+ adds r0, 0x40
+ cmp r1, r0
+ bne _080C6FFA
+ ldr r0, _080C6FA0
+ movs r1, 0x64
+ movs r2, 0
+ movs r3, 0x3
+ bl ConvertIntToDecimalStringN
+ ldr r0, _080C6FA4
+ ldr r1, _080C6FA8
+ bl StringCopy
+ ldr r1, _080C6FAC
+ movs r0, 0
+ b _080C6FF8
+ .align 2, 0
+_080C6F9C: .4byte 0x000002f6
+_080C6FA0: .4byte gStringVar1
+_080C6FA4: .4byte gStringVar2
+_080C6FA8: .4byte gSecretBaseText_GoldRank
+_080C6FAC: .4byte gScriptResult
+_080C6FB0:
+ ldr r0, _080C6FCC
+ movs r1, 0x32
+ movs r2, 0
+ movs r3, 0x2
+ bl ConvertIntToDecimalStringN
+ ldr r0, _080C6FD0
+ ldr r1, _080C6FD4
+ bl StringCopy
+ ldr r1, _080C6FD8
+ movs r0, 0
+ b _080C6FF8
+ .align 2, 0
+_080C6FCC: .4byte gStringVar1
+_080C6FD0: .4byte gStringVar2
+_080C6FD4: .4byte gSecretBaseText_SilverRank
+_080C6FD8: .4byte gScriptResult
+_080C6FDC:
+ ldr r1, _080C6FE4
+ movs r0, 0x1
+ b _080C6FF8
+ .align 2, 0
+_080C6FE4: .4byte gScriptResult
+_080C6FE8:
+ ldr r1, _080C6FF0
+ movs r0, 0x2
+ b _080C6FF8
+ .align 2, 0
+_080C6FF0: .4byte gScriptResult
+_080C6FF4:
+ ldr r1, _080C7004
+ movs r0, 0x3
+_080C6FF8:
+ strh r0, [r1]
+_080C6FFA:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C7004: .4byte gScriptResult
+ thumb_func_end sub_80C6F38
+
+ thumb_func_start task50_overworld_posion_effect
+task50_overworld_posion_effect: @ 80C7008
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ ldr r1, _080C702C
+ adds r1, r0, r1
+ movs r3, 0
+ ldrsh r0, [r1, r3]
+ cmp r0, 0x1
+ beq _080C7046
+ cmp r0, 0x1
+ bgt _080C7030
+ cmp r0, 0
+ beq _080C7036
+ b _080C7062
+ .align 2, 0
+_080C702C: .4byte gUnknown_03004B28
+_080C7030:
+ cmp r0, 0x2
+ beq _080C705A
+ b _080C7062
+_080C7036:
+ ldrh r0, [r1, 0x2]
+ adds r0, 0x2
+ strh r0, [r1, 0x2]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x8
+ ble _080C7062
+ b _080C7052
+_080C7046:
+ ldrh r0, [r1, 0x2]
+ subs r0, 0x2
+ strh r0, [r1, 0x2]
+ lsls r0, 16
+ cmp r0, 0
+ bne _080C7062
+_080C7052:
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ b _080C7062
+_080C705A:
+ adds r0, r2, 0
+ bl DestroyTask
+ b _080C706C
+_080C7062:
+ ldr r2, _080C7070
+ ldrh r1, [r1, 0x2]
+ lsls r0, r1, 4
+ orrs r0, r1
+ strh r0, [r2]
+_080C706C:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C7070: .4byte REG_MOSAIC
+ thumb_func_end task50_overworld_posion_effect
+
+ thumb_func_start overworld_posion_effect
+overworld_posion_effect: @ 80C7074
+ push {lr}
+ movs r0, 0x4F
+ bl PlaySE
+ ldr r0, _080C7088
+ movs r1, 0x50
+ bl CreateTask
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C7088: .4byte task50_overworld_posion_effect
+ thumb_func_end overworld_posion_effect
+
+ thumb_func_start c3_80A0DD8_is_running
+c3_80A0DD8_is_running: @ 80C708C
+ push {lr}
+ ldr r0, _080C709C
+ bl FuncIsActiveTask
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080C709C: .4byte task50_overworld_posion_effect
+ thumb_func_end c3_80A0DD8_is_running
+
+ thumb_func_start sub_80C70A0
+sub_80C70A0: @ 80C70A0
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080C70B4
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldr r0, _080C70B8
+ str r0, [r1]
+ bx lr
+ .align 2, 0
+_080C70B4: .4byte gTasks
+_080C70B8: .4byte sub_80C70BC
+ thumb_func_end sub_80C70A0
+
+ thumb_func_start sub_80C70BC
+sub_80C70BC: @ 80C70BC
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, _080C7120
+ ldrb r1, [r0, 0x5]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080C7124
+ adds r4, r0, r1
+ adds r0, r4, 0
+ bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive
+ lsls r0, 24
+ cmp r0, 0
+ beq _080C70E8
+ adds r0, r4, 0
+ bl FieldObjectClearAnimIfSpecialAnimFinished
+ lsls r0, 24
+ cmp r0, 0
+ beq _080C711A
+_080C70E8:
+ bl player_get_direction_lower_nybble
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8059D08
+ bl player_get_direction_lower_nybble
+ lsls r0, 24
+ lsrs r0, 24
+ bl GetStepInPlaceDelay16AnimId
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl FieldObjectSetSpecialAnim
+ ldr r1, _080C7128
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080C712C
+ str r1, [r0]
+_080C711A:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C7120: .4byte gPlayerAvatar
+_080C7124: .4byte gMapObjects
+_080C7128: .4byte gTasks
+_080C712C: .4byte sub_80C7130
+ thumb_func_end sub_80C70BC
+
+ thumb_func_start sub_80C7130
+sub_80C7130: @ 80C7130
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _080C7184
+ ldrb r1, [r0, 0x5]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080C7188
+ adds r5, r0, r1
+ adds r0, r5, 0
+ bl FieldObjectClearAnimIfSpecialAnimFinished
+ lsls r0, 24
+ cmp r0, 0
+ beq _080C7194
+ ldr r1, _080C718C
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r2, r0, r1
+ ldrh r0, [r2, 0xA]
+ adds r1, r0, 0x1
+ strh r1, [r2, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x9
+ bgt _080C7190
+ bl player_get_direction_lower_nybble
+ lsls r0, 24
+ lsrs r0, 24
+ bl GetStepInPlaceDelay16AnimId
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r5, 0
+ bl FieldObjectSetSpecialAnim
+ b _080C7194
+ .align 2, 0
+_080C7184: .4byte gPlayerAvatar
+_080C7188: .4byte gMapObjects
+_080C718C: .4byte gTasks
+_080C7190:
+ ldr r0, _080C719C
+ str r0, [r2]
+_080C7194:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C719C: .4byte sub_80C71A0
+ thumb_func_end sub_80C7130
+
+ thumb_func_start sub_80C71A0
+sub_80C71A0: @ 80C71A0
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl sub_80597D0
+ lsls r0, 24
+ lsrs r0, 24
+ bl SetPlayerAvatarTransitionFlags
+ adds r0, r4, 0
+ bl DestroyTask
+ bl EnableBothScriptContexts
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80C71A0
+
+ thumb_func_start sub_80C71C4
+sub_80C71C4: @ 80C71C4
+ push {lr}
+ ldr r0, _080C71D4
+ movs r1, 0x50
+ bl CreateTask
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C71D4: .4byte sub_80C70A0
+ thumb_func_end sub_80C71C4
+
+ thumb_func_start sub_80C71D8
+sub_80C71D8: @ 80C71D8
+ push {r4,r5,lr}
+ ldr r0, _080C722C
+ bl LoadSpritePalette
+ ldr r0, _080C7230
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x52
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x40
+ beq _080C7238
+ lsls r0, r5, 4
+ adds r0, r5
+ lsls r0, 2
+ ldr r1, _080C7234
+ adds r4, r0, r1
+ adds r2, r4, 0
+ adds r2, 0x20
+ adds r3, r4, 0
+ adds r3, 0x22
+ movs r0, 0x10
+ movs r1, 0xD
+ bl sub_8060388
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x2
+ orrs r0, r1
+ strb r0, [r2]
+ ldrh r0, [r4, 0x20]
+ adds r0, 0x10
+ strh r0, [r4, 0x20]
+ ldrh r0, [r4, 0x22]
+ adds r0, 0x2
+ strh r0, [r4, 0x22]
+ adds r0, r5, 0
+ b _080C723A
+ .align 2, 0
+_080C722C: .4byte gUnknown_083D2878
+_080C7230: .4byte gSpriteTemplate_83D2894
+_080C7234: .4byte gSprites
+_080C7238:
+ movs r0, 0x40
+_080C723A:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80C71D8
+
+ thumb_func_start sub_80C7240
+sub_80C7240: @ 80C7240
+ push {r4-r7,lr}
+ ldr r4, _080C7274
+ adds r7, r4, 0
+ movs r6, 0
+ movs r5, 0x3F
+_080C724A:
+ adds r0, r7, 0
+ adds r0, 0x14
+ adds r0, r6, r0
+ ldr r1, [r0]
+ ldr r0, _080C7278
+ cmp r1, r0
+ bne _080C7264
+ adds r0, r4, 0
+ bl FreeSpritePalette
+ adds r0, r4, 0
+ bl DestroySprite
+_080C7264:
+ adds r4, 0x44
+ adds r6, 0x44
+ subs r5, 0x1
+ cmp r5, 0
+ bge _080C724A
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C7274: .4byte gSprites
+_080C7278: .4byte gSpriteTemplate_83D2894
+ thumb_func_end sub_80C7240
+
+ thumb_func_start sub_80C727C
+sub_80C727C: @ 80C727C
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x78
+ bl __modsi3
+ cmp r0, 0
+ bne _080C7290
+ movs r0, 0x1
+ negs r0, r0
+ b _080C72A2
+_080C7290:
+ adds r0, r4, 0
+ movs r1, 0xA
+ bl __modsi3
+ cmp r0, 0x4
+ ble _080C72A0
+ movs r0, 0
+ b _080C72A2
+_080C72A0:
+ movs r0, 0x1
+_080C72A2:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80C727C
+
+ thumb_func_start sub_80C72A8
+sub_80C72A8: @ 80C72A8
+ push {lr}
+ adds r0, 0x78
+ movs r1, 0xB4
+ bl __modsi3
+ cmp r0, 0
+ beq _080C72BA
+ movs r0, 0
+ b _080C72BE
+_080C72BA:
+ movs r0, 0x1
+ negs r0, r0
+_080C72BE:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80C72A8
+
+ thumb_func_start sub_80C72C4
+sub_80C72C4: @ 80C72C4
+ push {r4,r5,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _080C7364
+ adds r5, r1, r0
+ movs r1, 0
+ ldrsh r0, [r5, r1]
+ adds r0, 0x1E
+ bl sub_80C72A8
+ ldr r4, _080C7368
+ ldrb r1, [r4, 0x5]
+ ldrb r2, [r4, 0x4]
+ lsls r0, 18
+ movs r3, 0xC0
+ lsls r3, 10
+ orrs r0, r3
+ asrs r0, 16
+ str r0, [sp]
+ movs r0, 0x1
+ movs r3, 0x3
+ bl sub_805BD90
+ movs r3, 0
+ ldrsh r0, [r5, r3]
+ bl sub_80C72A8
+ ldrb r1, [r4, 0x5]
+ ldrb r2, [r4, 0x4]
+ lsls r0, 17
+ ldr r3, _080C736C
+ adds r0, r3
+ asrs r0, 16
+ str r0, [sp]
+ movs r0, 0x2
+ movs r3, 0
+ bl sub_805BD90
+ movs r1, 0
+ ldrsh r0, [r5, r1]
+ bl sub_80C72A8
+ ldrb r1, [r4, 0x5]
+ ldrb r2, [r4, 0x4]
+ movs r4, 0
+ movs r3, 0x3
+ negs r3, r3
+ lsls r0, 18
+ asrs r0, 16
+ str r0, [sp]
+ movs r0, 0x3
+ bl sub_805BD90
+ ldrh r0, [r5]
+ adds r0, 0x1
+ strh r0, [r5]
+ lsls r0, 16
+ ldr r1, _080C7370
+ cmp r0, r1
+ bne _080C7346
+ strh r4, [r5]
+_080C7346:
+ movs r3, 0
+ ldrsh r0, [r5, r3]
+ bl sub_80C727C
+ adds r1, r0, 0
+ lsls r1, 16
+ asrs r1, 16
+ movs r0, 0
+ bl SetCameraPanning
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C7364: .4byte gUnknown_03004B28
+_080C7368: .4byte gSaveBlock1
+_080C736C: .4byte 0xfffd0000
+_080C7370: .4byte 0x75300000
+ thumb_func_end sub_80C72C4
+
+ thumb_func_start sub_80C7374
+sub_80C7374: @ 80C7374
+ push {r4-r7,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r3, r0, 3
+ ldr r4, _080C73B4
+ adds r7, r3, r4
+ ldrh r1, [r7]
+ adds r1, 0x1
+ strh r1, [r7]
+ ldrh r0, [r7, 0x4]
+ adds r0, 0x1
+ strh r0, [r7, 0x4]
+ lsls r1, 16
+ asrs r1, 16
+ cmp r1, 0x5
+ ble _080C73A4
+ movs r0, 0
+ strh r0, [r7]
+ ldrh r0, [r7, 0x2]
+ adds r0, 0x1
+ strh r0, [r7, 0x2]
+_080C73A4:
+ ldrh r0, [r7, 0x2]
+ cmp r0, 0x13
+ bne _080C73B8
+ adds r0, r2, 0
+ bl DestroyTask
+ b _080C746A
+ .align 2, 0
+_080C73B4: .4byte gUnknown_03004B28
+_080C73B8:
+ ldr r2, _080C7474
+ movs r1, 0x2
+ ldrsh r0, [r7, r1]
+ adds r0, r2
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0x2
+ bne _080C73D4
+ adds r0, r4, 0
+ subs r0, 0x8
+ adds r0, r3, r0
+ ldr r1, _080C7478
+ str r1, [r0]
+_080C73D4:
+ movs r4, 0x2
+ ldrsh r0, [r7, r4]
+ adds r0, r2
+ movs r5, 0
+ ldrsb r5, [r0, r5]
+ lsls r5, 16
+ lsrs r5, 16
+ movs r1, 0x4
+ ldrsh r0, [r7, r1]
+ bl sub_80C727C
+ adds r1, r0, 0
+ lsls r5, 16
+ asrs r5, 16
+ lsls r1, 16
+ asrs r1, 16
+ adds r0, r5, 0
+ bl SetCameraPanning
+ movs r4, 0x4
+ ldrsh r0, [r7, r4]
+ adds r0, 0x1E
+ bl sub_80C72A8
+ ldr r6, _080C747C
+ ldrb r1, [r6, 0x5]
+ ldrb r2, [r6, 0x4]
+ movs r3, 0x3
+ subs r3, r5
+ lsls r3, 16
+ asrs r3, 16
+ lsls r0, 18
+ movs r4, 0xC0
+ lsls r4, 10
+ orrs r0, r4
+ asrs r0, 16
+ str r0, [sp]
+ movs r0, 0x1
+ bl sub_805BD90
+ movs r1, 0x4
+ ldrsh r0, [r7, r1]
+ bl sub_80C72A8
+ ldrb r1, [r6, 0x5]
+ ldrb r2, [r6, 0x4]
+ negs r3, r5
+ lsls r3, 16
+ asrs r3, 16
+ lsls r0, 17
+ ldr r4, _080C7480
+ adds r0, r4
+ asrs r0, 16
+ str r0, [sp]
+ movs r0, 0x2
+ bl sub_805BD90
+ movs r1, 0x4
+ ldrsh r0, [r7, r1]
+ bl sub_80C72A8
+ ldrb r1, [r6, 0x5]
+ ldrb r2, [r6, 0x4]
+ movs r4, 0x3
+ negs r4, r4
+ adds r3, r4, 0
+ subs r3, r5
+ lsls r3, 16
+ asrs r3, 16
+ lsls r0, 18
+ asrs r0, 16
+ str r0, [sp]
+ movs r0, 0x3
+ bl sub_805BD90
+_080C746A:
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C7474: .4byte gUnknown_083D294C
+_080C7478: .4byte sub_80C7484
+_080C747C: .4byte gSaveBlock1
+_080C7480: .4byte 0xfffd0000
+ thumb_func_end sub_80C7374
+
+ thumb_func_start sub_80C7484
+sub_80C7484: @ 80C7484
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ adds r3, r0, 0
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r0, 3
+ ldr r1, _080C74C4
+ adds r2, r0, r1
+ ldrh r0, [r2]
+ adds r0, 0x1
+ strh r0, [r2]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x5
+ ble _080C74B4
+ movs r0, 0
+ strh r0, [r2]
+ ldrh r0, [r2, 0x2]
+ adds r0, 0x1
+ strh r0, [r2, 0x2]
+_080C74B4:
+ ldrh r0, [r2, 0x2]
+ cmp r0, 0x13
+ bne _080C74C8
+ adds r0, r3, 0
+ bl DestroyTask
+ b _080C7516
+ .align 2, 0
+_080C74C4: .4byte gUnknown_03004B28
+_080C74C8:
+ ldr r1, _080C7524
+ movs r3, 0x2
+ ldrsh r0, [r2, r3]
+ adds r0, r1
+ movs r1, 0
+ mov r8, r1
+ movs r6, 0
+ ldrsb r6, [r0, r6]
+ adds r0, r6, 0
+ bl SetCameraPanning
+ ldr r5, _080C7528
+ ldrb r1, [r5, 0x5]
+ ldrb r2, [r5, 0x4]
+ movs r3, 0x3
+ subs r3, r6
+ movs r0, 0x3
+ str r0, [sp]
+ movs r0, 0x1
+ bl sub_805BD90
+ ldrb r1, [r5, 0x5]
+ ldrb r2, [r5, 0x4]
+ negs r3, r6
+ mov r4, r8
+ subs r4, 0x3
+ str r4, [sp]
+ movs r0, 0x2
+ bl sub_805BD90
+ ldrb r1, [r5, 0x5]
+ ldrb r2, [r5, 0x4]
+ subs r4, r6
+ mov r3, r8
+ str r3, [sp]
+ movs r0, 0x3
+ adds r3, r4, 0
+ bl sub_805BD90
+_080C7516:
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C7524: .4byte gUnknown_083D294C
+_080C7528: .4byte gSaveBlock1
+ thumb_func_end sub_80C7484
+
+ thumb_func_start sub_80C752C
+sub_80C752C: @ 80C752C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, _080C7550
+ adds r4, r0, r1
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x5
+ bls _080C7546
+ b _080C7698
+_080C7546:
+ lsls r0, 2
+ ldr r1, _080C7554
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080C7550: .4byte gUnknown_03004B28
+_080C7554: .4byte _080C7558
+ .align 2, 0
+_080C7558:
+ .4byte _080C7570
+ .4byte _080C75A8
+ .4byte _080C75C4
+ .4byte _080C7610
+ .4byte _080C7634
+ .4byte _080C7652
+_080C7570:
+ ldrh r0, [r4, 0x2]
+ adds r0, 0x1
+ strh r0, [r4, 0x2]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x5A
+ beq _080C7580
+ b _080C7698
+_080C7580:
+ movs r0, 0
+ bl SetCameraPanningCallback
+ movs r0, 0
+ strh r0, [r4, 0x2]
+ ldr r0, _080C75A4
+ movs r1, 0xA
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x4]
+ movs r0, 0x1
+ strh r0, [r4]
+ movs r0, 0x31
+ bl PlaySE
+ b _080C7698
+ .align 2, 0
+_080C75A4: .4byte sub_80C72C4
+_080C75A8:
+ ldrh r0, [r4, 0x2]
+ adds r0, 0x1
+ strh r0, [r4, 0x2]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x96
+ bne _080C7698
+ bl pal_fill_black
+ movs r0, 0
+ strh r0, [r4, 0x2]
+ movs r0, 0x2
+ strh r0, [r4]
+ b _080C7698
+_080C75C4:
+ ldrh r0, [r4, 0x2]
+ adds r3, r0, 0x1
+ strh r3, [r4, 0x2]
+ ldr r0, _080C7608
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0
+ bne _080C7698
+ lsls r1, r3, 16
+ movs r0, 0x96
+ lsls r0, 17
+ cmp r1, r0
+ ble _080C7698
+ strh r2, [r4, 0x2]
+ ldrb r0, [r4, 0x4]
+ bl DestroyTask
+ ldr r0, _080C760C
+ movs r1, 0xA
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x6]
+ movs r0, 0x3
+ strh r0, [r4]
+ movs r0, 0x32
+ bl PlaySE
+ b _080C7698
+ .align 2, 0
+_080C7608: .4byte gPaletteFade
+_080C760C: .4byte sub_80C7374
+_080C7610:
+ ldr r2, _080C7630
+ movs r0, 0x6
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldrb r5, [r0, 0x4]
+ cmp r5, 0
+ bne _080C7698
+ bl InstallCameraPanAheadCallback
+ strh r5, [r4, 0x2]
+ movs r0, 0x4
+ strh r0, [r4]
+ b _080C7698
+ .align 2, 0
+_080C7630: .4byte gTasks
+_080C7634:
+ ldrh r0, [r4, 0x2]
+ adds r0, 0x1
+ strh r0, [r4, 0x2]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x5A
+ bne _080C7698
+ movs r0, 0x33
+ bl PlaySE
+ movs r0, 0
+ strh r0, [r4, 0x2]
+ movs r0, 0x5
+ strh r0, [r4]
+ b _080C7698
+_080C7652:
+ ldrh r0, [r4, 0x2]
+ adds r0, 0x1
+ strh r0, [r4, 0x2]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x78
+ bne _080C7698
+ movs r2, 0x82
+ lsls r2, 2
+ movs r0, 0xB
+ movs r1, 0x8
+ bl MapGridSetMetatileIdAt
+ movs r2, 0x84
+ lsls r2, 2
+ movs r0, 0xB
+ movs r1, 0x9
+ bl MapGridSetMetatileIdAt
+ movs r2, 0x86
+ lsls r2, 2
+ movs r0, 0xB
+ movs r1, 0xA
+ bl MapGridSetMetatileIdAt
+ bl DrawWholeMapView
+ movs r0, 0x34
+ bl PlaySE
+ adds r0, r5, 0
+ bl DestroyTask
+ bl ScriptContext2_Disable
+_080C7698:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80C752C
+
+ thumb_func_start sub_80C76A0
+sub_80C76A0: @ 80C76A0
+ push {lr}
+ sub sp, 0x4
+ ldr r2, _080C76E8
+ movs r0, 0xB
+ movs r1, 0x8
+ bl MapGridSetMetatileIdAt
+ ldr r2, _080C76EC
+ movs r0, 0xB
+ movs r1, 0x9
+ bl MapGridSetMetatileIdAt
+ ldr r2, _080C76F0
+ movs r0, 0xB
+ movs r1, 0xA
+ bl MapGridSetMetatileIdAt
+ bl DrawWholeMapView
+ bl ScriptContext2_Enable
+ movs r0, 0
+ str r0, [sp]
+ ldr r1, _080C76F4
+ ldr r2, _080C76F8
+ mov r0, sp
+ bl CpuFastSet
+ ldr r0, _080C76FC
+ movs r1, 0xA
+ bl CreateTask
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C76E8: .4byte 0x0000020d
+_080C76EC: .4byte 0x00000215
+_080C76F0: .4byte 0x0000021d
+_080C76F4: .4byte gPlttBufferFaded
+_080C76F8: .4byte 0x01000100
+_080C76FC: .4byte sub_80C752C
+ thumb_func_end sub_80C76A0
+
+ thumb_func_start sub_80C7700
+sub_80C7700: @ 80C7700
+ push {r4-r6,lr}
+ sub sp, 0x4
+ ldr r0, _080C774C
+ bl FuncIsActiveTask
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, 0
+ bne _080C7744
+ ldr r4, _080C7750
+ ldrb r1, [r4, 0x5]
+ ldrb r2, [r4, 0x4]
+ movs r0, 0x3
+ str r0, [sp]
+ movs r0, 0x1
+ movs r3, 0x3
+ bl sub_805BD90
+ ldrb r1, [r4, 0x5]
+ ldrb r2, [r4, 0x4]
+ movs r5, 0x3
+ negs r5, r5
+ str r5, [sp]
+ movs r0, 0x2
+ movs r3, 0
+ bl sub_805BD90
+ ldrb r1, [r4, 0x5]
+ ldrb r2, [r4, 0x4]
+ str r6, [sp]
+ movs r0, 0x3
+ adds r3, r5, 0
+ bl sub_805BD90
+_080C7744:
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C774C: .4byte sub_80C752C
+_080C7750: .4byte gSaveBlock1
+ thumb_func_end sub_80C7700
+
+ thumb_func_start sub_80C7754
+sub_80C7754: @ 80C7754
+ push {r4-r6,lr}
+ sub sp, 0xC
+ mov r4, sp
+ adds r4, 0x5
+ mov r5, sp
+ adds r5, 0x6
+ add r6, sp, 0x8
+ add r0, sp, 0x4
+ adds r1, r4, 0
+ adds r2, r5, 0
+ adds r3, r6, 0
+ bl sub_810D9EC
+ lsls r0, 24
+ cmp r0, 0
+ bne _080C7796
+ add r0, sp, 0x4
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ movs r1, 0
+ ldrsb r1, [r4, r1]
+ movs r2, 0x1
+ negs r2, r2
+ movs r3, 0
+ ldrsb r3, [r5, r3]
+ movs r4, 0
+ ldrsb r4, [r6, r4]
+ str r4, [sp]
+ bl warp1_set
+ movs r0, 0x1
+ b _080C7798
+_080C7796:
+ movs r0, 0
+_080C7798:
+ add sp, 0xC
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80C7754
+
+ thumb_func_start sub_80C77A0
+sub_80C77A0: @ 80C77A0
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, _080C77CC
+ adds r4, r0, r1
+ ldr r0, _080C77D0
+ bl GetVarPointer
+ adds r6, r0, 0
+ ldr r7, _080C77D4
+ movs r0, 0
+ ldrsh r2, [r4, r0]
+ cmp r2, 0x1
+ beq _080C77FC
+ cmp r2, 0x1
+ bgt _080C77D8
+ cmp r2, 0
+ beq _080C77E2
+ b _080C7896
+ .align 2, 0
+_080C77CC: .4byte gUnknown_03004B28
+_080C77D0: .4byte 0x000040b4
+_080C77D4: .4byte gSaveBlock1 + 0x4
+_080C77D8:
+ cmp r2, 0x2
+ beq _080C783E
+ cmp r2, 0x3
+ beq _080C7878
+ b _080C7896
+_080C77E2:
+ ldr r0, _080C77F8
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080C7896
+ strh r2, [r4, 0x2]
+ movs r0, 0x2
+ strh r0, [r4]
+ b _080C7896
+ .align 2, 0
+_080C77F8: .4byte gPaletteFade
+_080C77FC:
+ ldr r0, _080C7830
+ ldrh r1, [r0, 0x2E]
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _080C780A
+ strh r2, [r4, 0x2]
+_080C780A:
+ ldrb r1, [r7, 0x1]
+ ldrb r2, [r7]
+ movs r0, 0xFF
+ bl sub_80A212C
+ lsls r0, 24
+ cmp r0, 0
+ beq _080C7896
+ movs r0, 0x1
+ bl sub_810D9B0
+ cmp r0, 0x1
+ bne _080C783A
+ ldrh r0, [r6]
+ cmp r0, 0x2
+ bne _080C7834
+ movs r0, 0x9
+ b _080C7836
+ .align 2, 0
+_080C7830: .4byte gMain
+_080C7834:
+ movs r0, 0xA
+_080C7836:
+ strh r0, [r6]
+ b _080C7846
+_080C783A:
+ movs r0, 0x2
+ strh r0, [r4]
+_080C783E:
+ movs r1, 0x2
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080C784C
+_080C7846:
+ movs r0, 0x3
+ strh r0, [r4]
+ b _080C7896
+_080C784C:
+ ldrh r0, [r6]
+ cmp r0, 0x2
+ bne _080C7860
+ ldrb r1, [r7, 0x1]
+ ldrb r2, [r7]
+ ldr r3, _080C785C
+ b _080C7866
+ .align 2, 0
+_080C785C: .4byte gUnknown_083D295F
+_080C7860:
+ ldrb r1, [r7, 0x1]
+ ldrb r2, [r7]
+ ldr r3, _080C7874
+_080C7866:
+ movs r0, 0xFF
+ bl exec_movement
+ movs r0, 0x1
+ strh r0, [r4]
+ b _080C7896
+ .align 2, 0
+_080C7874: .4byte gUnknown_083D2961
+_080C7878:
+ ldr r0, _080C789C
+ bl FlagReset
+ movs r0, 0x80
+ lsls r0, 7
+ bl FlagReset
+ movs r0, 0
+ bl copy_saved_warp2_bank_and_enter_x_to_warp1
+ bl sp13E_warp_to_last_warp
+ adds r0, r5, 0
+ bl DestroyTask
+_080C7896:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C789C: .4byte 0x00004001
+ thumb_func_end sub_80C77A0
+
+ thumb_func_start sub_80C78A0
+sub_80C78A0: @ 80C78A0
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r1, _080C78F4
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x8C
+ movs r2, 0x70
+ movs r3, 0x50
+ bl AddPseudoFieldObject
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080C78F8
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r4, r1, r2
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r1, [r2]
+ movs r0, 0x3
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+ ldr r0, _080C78FC
+ bl VarGet
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x2
+ bne _080C7900
+ movs r0, 0x4
+ bl FieldObjectDirectionToImageAnimId
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl StartSpriteAnim
+ b _080C7912
+ .align 2, 0
+_080C78F4: .4byte SpriteCallbackDummy
+_080C78F8: .4byte gSprites
+_080C78FC: .4byte 0x000040b4
+_080C7900:
+ movs r0, 0x3
+ bl FieldObjectDirectionToImageAnimId
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl StartSpriteAnim
+_080C7912:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80C78A0
+
+ thumb_func_start sub_80C791C
+sub_80C791C: @ 80C791C
+ push {lr}
+ bl sub_80C78A0
+ ldr r2, _080C794C
+ ldr r0, _080C7950
+ ldrb r1, [r0, 0x5]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r1, [r0, 0x1]
+ movs r2, 0x20
+ orrs r1, r2
+ strb r1, [r0, 0x1]
+ bl pal_fill_black
+ ldr r0, _080C7954
+ movs r1, 0x50
+ bl CreateTask
+ bl ScriptContext2_Enable
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C794C: .4byte gMapObjects
+_080C7950: .4byte gPlayerAvatar
+_080C7954: .4byte sub_80C77A0
+ thumb_func_end sub_80C791C
+
+ thumb_func_start sub_80C7958
+sub_80C7958: @ 80C7958
+ push {lr}
+ ldr r0, _080C7990
+ bl FlagSet
+ ldr r0, _080C7994
+ bl FlagSet
+ movs r0, 0x80
+ lsls r0, 7
+ bl FlagSet
+ ldr r0, _080C7998
+ movs r1, 0x4
+ ldrsb r1, [r0, r1]
+ movs r2, 0x5
+ ldrsb r2, [r0, r2]
+ movs r3, 0x1
+ negs r3, r3
+ movs r0, 0
+ bl saved_warp2_set
+ bl sub_80C7754
+ bl sub_8080F9C
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C7990: .4byte 0x0000082d
+_080C7994: .4byte 0x00004001
+_080C7998: .4byte gSaveBlock1
+ thumb_func_end sub_80C7958
+
+ thumb_func_start GetCurrentMapRotatingGatePuzzleType
+GetCurrentMapRotatingGatePuzzleType: @ 80C799C
+ push {lr}
+ ldr r0, _080C79B0
+ ldrh r1, [r0, 0x4]
+ movs r0, 0x86
+ lsls r0, 1
+ cmp r1, r0
+ bne _080C79B4
+ movs r0, 0x1
+ b _080C79C6
+ .align 2, 0
+_080C79B0: .4byte gSaveBlock1
+_080C79B4:
+ ldr r0, _080C79C0
+ cmp r1, r0
+ beq _080C79C4
+ movs r0, 0
+ b _080C79C6
+ .align 2, 0
+_080C79C0: .4byte 0x0000081d
+_080C79C4:
+ movs r0, 0x2
+_080C79C6:
+ pop {r1}
+ bx r1
+ thumb_func_end GetCurrentMapRotatingGatePuzzleType
+
+ thumb_func_start sub_80C79CC
+sub_80C79CC: @ 80C79CC
+ push {r4-r6,lr}
+ movs r0, 0x80
+ lsls r0, 7
+ bl GetVarPointer
+ adds r5, r0, 0
+ movs r3, 0
+ ldr r4, _080C7A00
+ ldrb r0, [r4]
+ cmp r3, r0
+ bge _080C79F8
+ ldr r6, _080C7A04
+_080C79E4:
+ adds r2, r5, r3
+ ldr r1, [r6]
+ lsls r0, r3, 3
+ adds r0, r1
+ ldrb r0, [r0, 0x5]
+ strb r0, [r2]
+ adds r3, 0x1
+ ldrb r0, [r4]
+ cmp r3, r0
+ blt _080C79E4
+_080C79F8:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C7A00: .4byte gUnknown_02038804
+_080C7A04: .4byte gUnknown_02038800
+ thumb_func_end sub_80C79CC
+
+ thumb_func_start sub_80C7A08
+sub_80C7A08: @ 80C7A08
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x80
+ lsls r0, 7
+ bl GetVarPointer
+ adds r0, r4
+ ldrb r0, [r0]
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80C7A08
+
+ thumb_func_start sub_80C7A24
+sub_80C7A24: @ 80C7A24
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r5, 24
+ lsrs r5, 24
+ movs r0, 0x80
+ lsls r0, 7
+ bl GetVarPointer
+ adds r0, r4
+ strb r5, [r0]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80C7A24
+
+ thumb_func_start sub_80C7A44
+sub_80C7A44: @ 80C7A44
+ push {r4,r5,lr}
+ adds r4, r1, 0
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r0, r5, 0
+ bl sub_80C7A08
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r4, 0x1
+ bne _080C7A68
+ cmp r1, 0
+ beq _080C7A64
+ subs r0, r1, 0x1
+ lsls r0, 24
+ b _080C7A72
+_080C7A64:
+ movs r1, 0x3
+ b _080C7A74
+_080C7A68:
+ adds r1, 0x1
+ lsls r1, 24
+ movs r0, 0xC0
+ lsls r0, 18
+ ands r0, r1
+_080C7A72:
+ lsrs r1, r0, 24
+_080C7A74:
+ adds r0, r5, 0
+ bl sub_80C7A24
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80C7A44
+
+ thumb_func_start sub_80C7A80
+sub_80C7A80: @ 80C7A80
+ push {lr}
+ bl GetCurrentMapRotatingGatePuzzleType
+ cmp r0, 0x1
+ beq _080C7A94
+ cmp r0, 0x1
+ ble _080C7AC8
+ cmp r0, 0x2
+ beq _080C7AAC
+ b _080C7AC8
+_080C7A94:
+ ldr r1, _080C7AA0
+ ldr r0, _080C7AA4
+ str r0, [r1]
+ ldr r1, _080C7AA8
+ movs r0, 0x7
+ b _080C7AB6
+ .align 2, 0
+_080C7AA0: .4byte gUnknown_02038800
+_080C7AA4: .4byte gUnknown_083D2964
+_080C7AA8: .4byte gUnknown_02038804
+_080C7AAC:
+ ldr r1, _080C7ACC
+ ldr r0, _080C7AD0
+ str r0, [r1]
+ ldr r1, _080C7AD4
+ movs r0, 0xE
+_080C7AB6:
+ strb r0, [r1]
+ movs r1, 0
+ ldr r3, _080C7AD8
+ movs r2, 0x40
+_080C7ABE:
+ adds r0, r1, r3
+ strb r2, [r0]
+ adds r1, 0x1
+ cmp r1, 0xD
+ bls _080C7ABE
+_080C7AC8:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C7ACC: .4byte gUnknown_02038800
+_080C7AD0: .4byte gUnknown_083D299C
+_080C7AD4: .4byte gUnknown_02038804
+_080C7AD8: .4byte gUnknown_020387F0
+ thumb_func_end sub_80C7A80
+
+ thumb_func_start sub_80C7ADC
+sub_80C7ADC: @ 80C7ADC
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ lsls r0, 16
+ lsrs r0, 16
+ str r0, [sp]
+ lsls r1, 16
+ lsrs r1, 16
+ mov r10, r1
+ ldr r2, _080C7B9C
+ ldrh r1, [r2]
+ subs r0, r1, 0x2
+ lsls r0, 16
+ lsrs r3, r0, 16
+ adds r1, 0x11
+ lsls r1, 16
+ lsrs r1, 16
+ mov r9, r1
+ ldrh r1, [r2, 0x2]
+ subs r0, r1, 0x2
+ lsls r0, 16
+ lsrs r2, r0, 16
+ adds r1, 0xE
+ lsls r1, 16
+ lsrs r1, 16
+ mov r8, r1
+ movs r5, 0
+ ldr r0, _080C7BA0
+ ldrb r0, [r0]
+ cmp r5, r0
+ bcs _080C7B8C
+ lsls r0, r2, 16
+ asrs r7, r0, 16
+ lsls r0, r3, 16
+ asrs r6, r0, 16
+_080C7B28:
+ ldr r0, _080C7BA4
+ ldr r0, [r0]
+ lsls r1, r5, 3
+ adds r1, r0
+ ldrh r0, [r1]
+ adds r0, 0x7
+ lsls r0, 16
+ lsrs r2, r0, 16
+ ldrh r0, [r1, 0x2]
+ adds r0, 0x7
+ lsls r0, 16
+ asrs r1, r0, 16
+ cmp r7, r1
+ bgt _080C7B7E
+ mov r3, r8
+ lsls r0, r3, 16
+ asrs r0, 16
+ cmp r0, r1
+ blt _080C7B7E
+ lsls r0, r2, 16
+ asrs r1, r0, 16
+ cmp r6, r1
+ bgt _080C7B7E
+ mov r2, r9
+ lsls r0, r2, 16
+ asrs r0, 16
+ cmp r0, r1
+ blt _080C7B7E
+ ldr r0, _080C7BA8
+ adds r4, r5, r0
+ ldrb r0, [r4]
+ cmp r0, 0x40
+ bne _080C7B7E
+ ldr r3, [sp]
+ lsls r1, r3, 16
+ mov r0, r10
+ lsls r2, r0, 16
+ adds r0, r5, 0
+ asrs r1, 16
+ asrs r2, 16
+ bl sub_80C7BAC
+ strb r0, [r4]
+_080C7B7E:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, _080C7BA0
+ ldrb r0, [r0]
+ cmp r5, r0
+ bcc _080C7B28
+_080C7B8C:
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C7B9C: .4byte gSaveBlock1
+_080C7BA0: .4byte gUnknown_02038804
+_080C7BA4: .4byte gUnknown_02038800
+_080C7BA8: .4byte gUnknown_020387F0
+ thumb_func_end sub_80C7ADC
+
+ thumb_func_start sub_80C7BAC
+sub_80C7BAC: @ 80C7BAC
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x18
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r1, 16
+ lsrs r7, r1, 16
+ lsls r2, 16
+ lsrs r2, 16
+ mov r8, r2
+ ldr r0, _080C7BDC
+ lsls r1, r6, 3
+ ldr r0, [r0]
+ adds r4, r0, r1
+ ldrb r0, [r4, 0x4]
+ cmp r0, 0
+ beq _080C7BD4
+ cmp r0, 0x4
+ bne _080C7BE4
+_080C7BD4:
+ mov r1, sp
+ ldr r0, _080C7BE0
+ b _080C7BE8
+ .align 2, 0
+_080C7BDC: .4byte gUnknown_02038800
+_080C7BE0: .4byte gSpriteTemplate_83D60A4
+_080C7BE4:
+ mov r1, sp
+ ldr r0, _080C7C7C
+_080C7BE8:
+ ldm r0!, {r2,r3,r5}
+ stm r1!, {r2,r3,r5}
+ ldm r0!, {r2,r3,r5}
+ stm r1!, {r2,r3,r5}
+ mov r2, sp
+ ldrb r0, [r4, 0x4]
+ movs r3, 0x98
+ lsls r3, 5
+ adds r1, r3, 0
+ adds r0, r1
+ strh r0, [r2]
+ mov r0, sp
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x94
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x40
+ beq _080C7C84
+ ldrh r0, [r4]
+ adds r0, 0x7
+ ldrh r1, [r4, 0x2]
+ adds r1, 0x7
+ lsls r4, r5, 4
+ adds r4, r5
+ lsls r4, 2
+ ldr r2, _080C7C80
+ adds r4, r2
+ strh r6, [r4, 0x2E]
+ movs r2, 0x3E
+ adds r2, r4
+ mov r12, r2
+ ldrb r2, [r2]
+ movs r3, 0x2
+ orrs r2, r3
+ mov r3, r12
+ strb r2, [r3]
+ lsls r0, 16
+ asrs r0, 16
+ lsls r2, r7, 16
+ asrs r2, 16
+ adds r0, r2
+ lsls r0, 16
+ asrs r0, 16
+ lsls r1, 16
+ asrs r1, 16
+ mov r3, r8
+ lsls r2, r3, 16
+ asrs r2, 16
+ adds r1, r2
+ lsls r1, 16
+ asrs r1, 16
+ adds r2, r4, 0
+ adds r2, 0x20
+ adds r3, r4, 0
+ adds r3, 0x22
+ bl sub_8060388
+ adds r0, r4, 0
+ bl sub_80C7D14
+ adds r0, r6, 0
+ bl sub_80C7A08
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl StartSpriteAffineAnim
+ adds r0, r5, 0
+ b _080C7C86
+ .align 2, 0
+_080C7C7C: .4byte gSpriteTemplate_83D608C
+_080C7C80: .4byte gSprites
+_080C7C84:
+ movs r0, 0x40
+_080C7C86:
+ add sp, 0x18
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80C7BAC
+
+ thumb_func_start sub_80C7C94
+sub_80C7C94: @ 80C7C94
+ push {r4-r7,lr}
+ adds r6, r0, 0
+ ldrh r0, [r6, 0x30]
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldrh r0, [r6, 0x32]
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r7, r4, 0
+ adds r0, r6, 0
+ bl sub_80C7D14
+ cmp r5, 0x1
+ bne _080C7CDA
+ adds r0, r4, 0x4
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_80E6034
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ beq _080C7CCA
+ adds r0, r4, 0
+ adds r0, 0x8
+ lsls r0, 24
+ lsrs r4, r0, 24
+_080C7CCA:
+ movs r0, 0x30
+ bl PlaySE
+ adds r0, r6, 0
+ adds r1, r4, 0
+ bl StartSpriteAffineAnim
+ b _080C7D08
+_080C7CDA:
+ cmp r5, 0x2
+ bne _080C7D08
+ adds r0, r7, 0
+ adds r0, 0x8
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_80E6034
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ beq _080C7CFA
+ adds r0, r4, 0
+ adds r0, 0x8
+ lsls r0, 24
+ lsrs r4, r0, 24
+_080C7CFA:
+ movs r0, 0x30
+ bl PlaySE
+ adds r0, r6, 0
+ adds r1, r4, 0
+ bl StartSpriteAffineAnim
+_080C7D08:
+ movs r0, 0
+ strh r0, [r6, 0x30]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80C7C94
+
+ thumb_func_start sub_80C7D14
+sub_80C7D14: @ 80C7D14
+ push {r4-r6,lr}
+ mov r12, r0
+ mov r4, r12
+ adds r4, 0x3E
+ ldrb r0, [r4]
+ movs r5, 0x5
+ negs r5, r5
+ ands r5, r0
+ strb r5, [r4]
+ mov r0, r12
+ ldrh r1, [r0, 0x24]
+ ldrh r2, [r0, 0x20]
+ adds r1, r2
+ adds r0, 0x28
+ movs r2, 0
+ ldrsb r2, [r0, r2]
+ ldr r0, _080C7DA8
+ adds r2, r1
+ ldrh r0, [r0]
+ adds r2, r0
+ lsls r2, 16
+ mov r3, r12
+ ldrh r1, [r3, 0x26]
+ ldrh r0, [r3, 0x22]
+ adds r1, r0
+ mov r0, r12
+ adds r0, 0x29
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ ldr r3, _080C7DAC
+ adds r0, r1
+ ldrh r3, [r3]
+ adds r0, r3
+ lsls r0, 16
+ movs r3, 0x80
+ lsls r3, 15
+ adds r1, r2, r3
+ lsrs r1, 16
+ lsrs r6, r0, 16
+ adds r0, r3
+ lsrs r3, r0, 16
+ asrs r2, 16
+ cmp r2, 0xFF
+ bgt _080C7D7A
+ lsls r0, r1, 16
+ asrs r0, 16
+ movs r1, 0x10
+ negs r1, r1
+ cmp r0, r1
+ bge _080C7D82
+_080C7D7A:
+ movs r1, 0x4
+ adds r0, r5, 0
+ orrs r0, r1
+ strb r0, [r4]
+_080C7D82:
+ lsls r0, r6, 16
+ asrs r0, 16
+ cmp r0, 0xAF
+ bgt _080C7D96
+ lsls r0, r3, 16
+ asrs r0, 16
+ movs r1, 0x10
+ negs r1, r1
+ cmp r0, r1
+ bge _080C7DA2
+_080C7D96:
+ mov r0, r12
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+_080C7DA2:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C7DA8: .4byte gSpriteCoordOffsetX
+_080C7DAC: .4byte gSpriteCoordOffsetY
+ thumb_func_end sub_80C7D14
+
+ thumb_func_start LoadRotatingGatePics
+LoadRotatingGatePics: @ 80C7DB0
+ push {lr}
+ ldr r0, _080C7DBC
+ bl LoadSpriteSheets
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C7DBC: .4byte gRotatingGatesGraphicsTable
+ thumb_func_end LoadRotatingGatePics
+
+ thumb_func_start sub_80C7DC0
+sub_80C7DC0: @ 80C7DC0
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ ldr r2, _080C7DF4
+ ldrh r1, [r2]
+ subs r0, r1, 0x2
+ lsls r0, 16
+ lsrs r0, 16
+ mov r10, r0
+ adds r1, 0x11
+ lsls r1, 16
+ lsrs r1, 16
+ mov r9, r1
+ ldrh r1, [r2, 0x2]
+ subs r0, r1, 0x2
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ adds r1, 0xE
+ lsls r1, 16
+ lsrs r7, r1, 16
+ movs r6, 0
+ b _080C7E66
+ .align 2, 0
+_080C7DF4: .4byte gSaveBlock1
+_080C7DF8:
+ ldr r0, _080C7E7C
+ ldr r0, [r0]
+ lsls r1, r6, 3
+ adds r1, r0
+ ldrh r0, [r1]
+ adds r0, 0x7
+ lsls r0, 16
+ lsrs r2, r0, 16
+ ldrh r0, [r1, 0x2]
+ adds r0, 0x7
+ lsls r0, 16
+ lsrs r3, r0, 16
+ ldr r0, _080C7E80
+ adds r0, r6, r0
+ ldrb r0, [r0]
+ cmp r0, 0x40
+ beq _080C7E64
+ lsls r0, r2, 16
+ mov r2, r10
+ lsls r1, r2, 16
+ asrs r2, r0, 16
+ cmp r0, r1
+ blt _080C7E44
+ mov r1, r9
+ lsls r0, r1, 16
+ asrs r0, 16
+ cmp r2, r0
+ bgt _080C7E44
+ lsls r0, r3, 16
+ mov r2, r8
+ lsls r1, r2, 16
+ asrs r2, r0, 16
+ cmp r0, r1
+ blt _080C7E44
+ lsls r0, r7, 16
+ asrs r0, 16
+ cmp r2, r0
+ ble _080C7E64
+_080C7E44:
+ ldr r0, _080C7E80
+ adds r5, r6, r0
+ ldrb r0, [r5]
+ lsls r4, r0, 4
+ adds r4, r0
+ lsls r4, 2
+ ldr r0, _080C7E84
+ adds r4, r0
+ adds r0, r4, 0
+ bl FreeSpriteOamMatrix
+ adds r0, r4, 0
+ bl DestroySprite
+ movs r0, 0x40
+ strb r0, [r5]
+_080C7E64:
+ adds r6, 0x1
+_080C7E66:
+ ldr r0, _080C7E88
+ ldrb r0, [r0]
+ cmp r6, r0
+ blt _080C7DF8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C7E7C: .4byte gUnknown_02038800
+_080C7E80: .4byte gUnknown_020387F0
+_080C7E84: .4byte gSprites
+_080C7E88: .4byte gUnknown_02038804
+ thumb_func_end sub_80C7DC0
+
+ thumb_func_start sub_80C7E8C
+sub_80C7E8C: @ 80C7E8C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r1, 0x1
+ bne _080C7EAC
+ ldr r0, _080C7EA8
+ mov r10, r0
+ b _080C7EB8
+ .align 2, 0
+_080C7EA8: .4byte gUnknown_083D611C
+_080C7EAC:
+ cmp r1, 0x2
+ beq _080C7EB4
+_080C7EB0:
+ movs r0, 0
+ b _080C7F48
+_080C7EB4:
+ ldr r1, _080C7F58
+ mov r10, r1
+_080C7EB8:
+ adds r0, r4, 0
+ bl sub_80C7A08
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp]
+ ldr r0, _080C7F5C
+ ldr r1, [r0]
+ lsls r0, r4, 3
+ adds r0, r1
+ ldrb r2, [r0, 0x4]
+ ldrh r1, [r0]
+ adds r1, 0x7
+ ldrh r0, [r0, 0x2]
+ adds r0, 0x7
+ movs r3, 0
+ lsls r2, 3
+ str r2, [sp, 0x4]
+ lsls r1, 16
+ asrs r1, 16
+ mov r9, r1
+ lsls r0, 16
+ asrs r0, 16
+ mov r8, r0
+_080C7EE8:
+ movs r6, 0
+ ldr r2, [sp]
+ adds r7, r2, r3
+ lsls r0, r3, 1
+ adds r5, r7, 0
+ ldr r1, [sp, 0x4]
+ adds r0, r1
+ ldr r2, _080C7F60
+ adds r4, r0, r2
+_080C7EFA:
+ adds r0, r5, 0
+ cmp r5, 0
+ bge _080C7F02
+ adds r0, r7, 0x3
+_080C7F02:
+ asrs r0, 2
+ lsls r0, 2
+ subs r0, r5, r0
+ lsls r0, 1
+ adds r0, r6
+ lsls r0, 24
+ lsrs r1, r0, 24
+ ldrb r0, [r4]
+ cmp r0, 0
+ beq _080C7F38
+ lsls r1, 2
+ add r1, r10
+ movs r0, 0
+ ldrsb r0, [r1, r0]
+ add r0, r9
+ ldrb r1, [r1, 0x1]
+ lsls r1, 24
+ asrs r1, 24
+ add r1, r8
+ str r3, [sp, 0x8]
+ bl MapGridIsImpassableAt
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r3, [sp, 0x8]
+ cmp r0, 0x1
+ beq _080C7EB0
+_080C7F38:
+ adds r4, 0x1
+ adds r6, 0x1
+ cmp r6, 0x1
+ ble _080C7EFA
+ adds r3, 0x1
+ cmp r3, 0x3
+ ble _080C7EE8
+ movs r0, 0x1
+_080C7F48:
+ add sp, 0xC
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080C7F58: .4byte gUnknown_083D60FC
+_080C7F5C: .4byte gUnknown_02038800
+_080C7F60: .4byte gUnknown_083D613C
+ thumb_func_end sub_80C7E8C
+
+ thumb_func_start sub_80C7F64
+sub_80C7F64: @ 80C7F64
+ push {r4-r6,lr}
+ adds r4, r1, 0
+ lsls r0, 24
+ lsrs r0, 24
+ adds r6, r0, 0
+ lsls r4, 24
+ lsrs r5, r4, 24
+ lsrs r4, 25
+ movs r0, 0x1
+ ands r5, r0
+ adds r0, r6, 0
+ bl sub_80C7A08
+ subs r4, r0
+ adds r1, r4, 0x4
+ adds r0, r1, 0
+ cmp r1, 0
+ bge _080C7F8A
+ adds r0, r4, 0x7
+_080C7F8A:
+ asrs r0, 2
+ lsls r0, 2
+ subs r0, r1, r0
+ ldr r1, _080C7FB0
+ ldr r2, [r1]
+ lsls r1, r6, 3
+ adds r1, r2
+ ldrb r1, [r1, 0x4]
+ ldr r2, _080C7FB4
+ lsls r0, 24
+ asrs r0, 23
+ adds r0, r5
+ lsls r1, 3
+ adds r0, r1
+ adds r0, r2
+ ldrb r0, [r0]
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080C7FB0: .4byte gUnknown_02038800
+_080C7FB4: .4byte gUnknown_083D613C
+ thumb_func_end sub_80C7F64
+
+ thumb_func_start sub_80C7FB8
+sub_80C7FB8: @ 80C7FB8
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldr r0, _080C7FE4
+ adds r2, r3, r0
+ ldrb r0, [r2]
+ cmp r0, 0x40
+ beq _080C7FDC
+ lsls r4, r0, 4
+ adds r4, r0
+ lsls r4, 2
+ ldr r0, _080C7FE8
+ adds r4, r0
+ strh r1, [r4, 0x30]
+ adds r0, r3, 0
+ bl sub_80C7A08
+ strh r0, [r4, 0x32]
+_080C7FDC:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C7FE4: .4byte gUnknown_020387F0
+_080C7FE8: .4byte gSprites
+ thumb_func_end sub_80C7FB8
+
+ thumb_func_start sub_80C7FEC
+sub_80C7FEC: @ 80C7FEC
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r3, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ lsls r2, 16
+ lsrs r2, 16
+ cmp r0, 0x2
+ bne _080C8008
+ ldr r3, _080C8004
+ b _080C802A
+ .align 2, 0
+_080C8004: .4byte gUnknown_083D60BC
+_080C8008:
+ cmp r0, 0x1
+ bne _080C8014
+ ldr r3, _080C8010
+ b _080C802A
+ .align 2, 0
+_080C8010: .4byte gUnknown_083D60CC
+_080C8014:
+ cmp r0, 0x3
+ bne _080C8020
+ ldr r3, _080C801C
+ b _080C802A
+ .align 2, 0
+_080C801C: .4byte gUnknown_083D60DC
+_080C8020:
+ cmp r3, 0x4
+ beq _080C8028
+ movs r0, 0xFF
+ b _080C8038
+_080C8028:
+ ldr r3, _080C803C
+_080C802A:
+ lsls r0, r2, 16
+ lsls r1, 16
+ asrs r1, 16
+ asrs r0, 14
+ adds r0, r1
+ adds r0, r3, r0
+ ldrb r0, [r0]
+_080C8038:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080C803C: .4byte gUnknown_083D60EC
+ thumb_func_end sub_80C7FEC
+
+ thumb_func_start sub_80C8040
+sub_80C8040: @ 80C8040
+ push {lr}
+ bl GetCurrentMapRotatingGatePuzzleType
+ cmp r0, 0
+ beq _080C8052
+ bl sub_80C7A80
+ bl sub_80C79CC
+_080C8052:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80C8040
+
+ thumb_func_start RotatingGatePuzzleCameraUpdate
+RotatingGatePuzzleCameraUpdate: @ 80C8058
+ push {r4,r5,lr}
+ lsls r0, 16
+ lsrs r4, r0, 16
+ lsls r1, 16
+ lsrs r5, r1, 16
+ bl GetCurrentMapRotatingGatePuzzleType
+ cmp r0, 0
+ beq _080C807A
+ lsls r0, r4, 16
+ asrs r0, 16
+ lsls r1, r5, 16
+ asrs r1, 16
+ bl sub_80C7ADC
+ bl sub_80C7DC0
+_080C807A:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end RotatingGatePuzzleCameraUpdate
+
+ thumb_func_start sub_80C8080
+sub_80C8080: @ 80C8080
+ push {lr}
+ bl GetCurrentMapRotatingGatePuzzleType
+ cmp r0, 0
+ beq _080C809A
+ bl LoadRotatingGatePics
+ bl sub_80C7A80
+ movs r0, 0
+ movs r1, 0
+ bl sub_80C7ADC
+_080C809A:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80C8080
+
+ thumb_func_start CheckForRotatingGatePuzzleCollision
+CheckForRotatingGatePuzzleCollision: @ 80C80A0
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ lsls r1, 16
+ lsrs r4, r1, 16
+ lsls r2, 16
+ lsrs r2, 16
+ mov r8, r2
+ bl GetCurrentMapRotatingGatePuzzleType
+ cmp r0, 0
+ bne _080C80D4
+ b _080C8172
+_080C80C2:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_80C7FB8
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_80C7A44
+ b _080C8172
+_080C80D4:
+ movs r6, 0
+ ldr r0, _080C8160
+ ldrb r0, [r0]
+ cmp r6, r0
+ bge _080C8172
+ lsls r0, r4, 16
+ asrs r7, r0, 16
+_080C80E2:
+ ldr r0, _080C8164
+ ldr r1, [r0]
+ lsls r0, r6, 3
+ adds r0, r1
+ ldrh r1, [r0]
+ adds r1, 0x7
+ ldrh r0, [r0, 0x2]
+ adds r0, 0x7
+ lsls r0, 16
+ lsrs r2, r0, 16
+ lsls r1, 16
+ asrs r4, r1, 16
+ subs r0, r4, 0x2
+ cmp r0, r7
+ bgt _080C8168
+ adds r0, r4, 0x1
+ cmp r7, r0
+ bgt _080C8168
+ lsls r0, r2, 16
+ asrs r3, r0, 16
+ subs r1, r3, 0x2
+ mov r2, r8
+ lsls r0, r2, 16
+ asrs r2, r0, 16
+ cmp r1, r2
+ bgt _080C8168
+ adds r0, r3, 0x1
+ cmp r2, r0
+ bgt _080C8168
+ subs r1, r7, r4
+ adds r1, 0x2
+ subs r2, r3
+ adds r2, 0x2
+ lsls r1, 16
+ asrs r1, 16
+ lsls r2, 16
+ asrs r2, 16
+ mov r0, r9
+ bl sub_80C7FEC
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xFF
+ beq _080C8168
+ lsrs r5, r0, 4
+ movs r1, 0xF
+ ands r1, r0
+ lsls r0, r6, 24
+ lsrs r4, r0, 24
+ adds r0, r4, 0
+ bl sub_80C7F64
+ cmp r0, 0
+ beq _080C8168
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_80C7E8C
+ cmp r0, 0
+ bne _080C80C2
+ movs r0, 0x1
+ b _080C8174
+ .align 2, 0
+_080C8160: .4byte gUnknown_02038804
+_080C8164: .4byte gUnknown_02038800
+_080C8168:
+ adds r6, 0x1
+ ldr r0, _080C8180
+ ldrb r0, [r0]
+ cmp r6, r0
+ blt _080C80E2
+_080C8172:
+ movs r0, 0
+_080C8174:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080C8180: .4byte gUnknown_02038804
+ thumb_func_end CheckForRotatingGatePuzzleCollision
+
+ thumb_func_start GetSafariZoneFlag
+GetSafariZoneFlag: @ 80C8184
+ push {lr}
+ ldr r0, _080C8194
+ bl FlagGet
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080C8194: .4byte 0x0000082c
+ thumb_func_end GetSafariZoneFlag
+
+ thumb_func_start SetSafariZoneFlag
+SetSafariZoneFlag: @ 80C8198
+ push {lr}
+ ldr r0, _080C81A4
+ bl FlagSet
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C81A4: .4byte 0x0000082c
+ thumb_func_end SetSafariZoneFlag
+
+ thumb_func_start ResetSafariZoneFlag
+ResetSafariZoneFlag: @ 80C81A8
+ push {lr}
+ ldr r0, _080C81B4
+ bl FlagReset
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C81B4: .4byte 0x0000082c
+ thumb_func_end ResetSafariZoneFlag
+
+ thumb_func_start sub_80C81B8
+sub_80C81B8: @ 80C81B8
+ push {lr}
+ movs r0, 0x11
+ bl sav12_xor_increment
+ bl SetSafariZoneFlag
+ bl sub_80C82D8
+ ldr r1, _080C81DC
+ movs r0, 0x1E
+ strb r0, [r1]
+ ldr r1, _080C81E0
+ movs r2, 0xFA
+ lsls r2, 1
+ adds r0, r2, 0
+ strh r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C81DC: .4byte gUnknown_02038808
+_080C81E0: .4byte gUnknown_0203880A
+ thumb_func_end sub_80C81B8
+
+ thumb_func_start sub_80C81E4
+sub_80C81E4: @ 80C81E4
+ push {lr}
+ bl ResetSafariZoneFlag
+ bl sub_80C82D8
+ ldr r1, _080C8200
+ movs r0, 0
+ strb r0, [r1]
+ ldr r1, _080C8204
+ movs r0, 0
+ strh r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C8200: .4byte gUnknown_02038808
+_080C8204: .4byte gUnknown_0203880A
+ thumb_func_end sub_80C81E4
+
+ thumb_func_start safari_step
+safari_step: @ 80C8208
+ push {lr}
+ bl GetSafariZoneFlag
+ cmp r0, 0
+ beq _080C8224
+ bl sub_80C8508
+ ldr r1, _080C8228
+ ldrh r0, [r1]
+ subs r0, 0x1
+ strh r0, [r1]
+ lsls r0, 16
+ cmp r0, 0
+ beq _080C822C
+_080C8224:
+ movs r0, 0
+ b _080C8234
+ .align 2, 0
+_080C8228: .4byte gUnknown_0203880A
+_080C822C:
+ ldr r0, _080C8238
+ bl ScriptContext1_SetupScript
+ movs r0, 0x1
+_080C8234:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080C8238: .4byte gUnknown_081C3448
+ thumb_func_end safari_step
+
+ thumb_func_start sub_80C823C
+sub_80C823C: @ 80C823C
+ push {lr}
+ ldr r0, _080C8248
+ bl ScriptContext1_SetupScript
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C8248: .4byte gUnknown_081C342D
+ thumb_func_end sub_80C823C
+
+ thumb_func_start sub_80C824C
+sub_80C824C: @ 80C824C
+ push {lr}
+ ldr r0, _080C8260
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080C8268
+ ldr r0, _080C8264
+ bl SetMainCallback2
+ b _080C82B0
+ .align 2, 0
+_080C8260: .4byte gUnknown_02038808
+_080C8264: .4byte c2_exit_to_overworld_2_switch
+_080C8268:
+ ldr r0, _080C8288
+ ldrb r0, [r0]
+ cmp r0, 0x8
+ bne _080C829C
+ ldr r0, _080C828C
+ bl ScriptContext2_RunNewScript
+ bl warp_in
+ ldr r1, _080C8290
+ ldr r0, _080C8294
+ str r0, [r1]
+ ldr r0, _080C8298
+ bl SetMainCallback2
+ b _080C82B0
+ .align 2, 0
+_080C8288: .4byte gUnknown_02024D26
+_080C828C: .4byte gUnknown_081C340A
+_080C8290: .4byte gUnknown_0300485C
+_080C8294: .4byte sub_8080E44
+_080C8298: .4byte CB2_LoadMap
+_080C829C:
+ cmp r0, 0x7
+ bne _080C82B0
+ ldr r0, _080C82B4
+ bl ScriptContext1_SetupScript
+ bl ScriptContext1_Stop
+ ldr r0, _080C82B8
+ bl SetMainCallback2
+_080C82B0:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C82B4: .4byte gUnknown_081C3459
+_080C82B8: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music
+ thumb_func_end sub_80C824C
+
+ thumb_func_start sub_80C82BC
+sub_80C82BC: @ 80C82BC
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 20
+ ldr r1, _080C82D4
+ adds r0, r1
+ movs r1, 0
+ movs r2, 0x10
+ bl memset
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C82D4: .4byte gUnknown_0203880C
+ thumb_func_end sub_80C82BC
+
+ thumb_func_start sub_80C82D8
+sub_80C82D8: @ 80C82D8
+ push {lr}
+ ldr r0, _080C82E8
+ movs r1, 0
+ movs r2, 0xA0
+ bl memset
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C82E8: .4byte gUnknown_0203880C
+ thumb_func_end sub_80C82D8
+
+ thumb_func_start sub_80C82EC
+sub_80C82EC: @ 80C82EC
+ push {r4-r6,lr}
+ sub sp, 0x4
+ mov r4, sp
+ adds r4, 0x2
+ mov r0, sp
+ adds r1, r4, 0
+ bl GetXYCoordsOneStepInFrontOfPlayer
+ movs r3, 0
+ adds r5, r4, 0
+ ldr r4, _080C8344
+_080C8302:
+ ldr r1, _080C8348
+ lsls r0, r3, 4
+ adds r2, r0, r1
+ movs r1, 0x5
+ ldrsb r1, [r4, r1]
+ movs r0, 0x4
+ ldrsb r0, [r2, r0]
+ cmp r1, r0
+ bne _080C8358
+ mov r0, sp
+ movs r6, 0
+ ldrsh r1, [r2, r6]
+ movs r6, 0
+ ldrsh r0, [r0, r6]
+ cmp r1, r0
+ bne _080C8358
+ movs r0, 0x2
+ ldrsh r1, [r2, r0]
+ movs r6, 0
+ ldrsh r0, [r5, r6]
+ cmp r1, r0
+ bne _080C8358
+ ldr r0, _080C834C
+ strh r3, [r0]
+ ldr r1, _080C8350
+ ldrb r0, [r2, 0x8]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, [r0]
+ ldr r0, _080C8354
+ bl StringCopy
+ b _080C836A
+ .align 2, 0
+_080C8344: .4byte gSaveBlock1
+_080C8348: .4byte gUnknown_0203880C
+_080C834C: .4byte gScriptResult
+_080C8350: .4byte gUnknown_083F7EB8
+_080C8354: .4byte gStringVar1
+_080C8358:
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0x9
+ bls _080C8302
+ ldr r1, _080C8374
+ ldr r2, _080C8378
+ adds r0, r2, 0
+ strh r0, [r1]
+_080C836A:
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C8374: .4byte gScriptResult
+_080C8378: .4byte 0x0000ffff
+ thumb_func_end sub_80C82EC
+
+ thumb_func_start sub_80C837C
+sub_80C837C: @ 80C837C
+ push {r4-r7,lr}
+ sub sp, 0x4
+ mov r4, sp
+ adds r4, 0x2
+ mov r0, sp
+ adds r1, r4, 0
+ bl PlayerGetDestCoords
+ movs r5, 0
+ adds r6, r4, 0
+ ldr r0, _080C83E8
+ movs r7, 0x5
+ ldrsb r7, [r0, r7]
+ mov r4, sp
+ ldr r0, _080C83EC
+ mov r12, r0
+_080C839C:
+ lsls r0, r5, 4
+ mov r1, r12
+ adds r2, r0, r1
+ movs r0, 0x4
+ ldrsb r0, [r2, r0]
+ cmp r7, r0
+ bne _080C83F4
+ ldrh r0, [r4]
+ ldrh r1, [r2]
+ subs r0, r1
+ strh r0, [r4]
+ adds r3, r6, 0
+ ldrh r0, [r3]
+ ldrh r1, [r2, 0x2]
+ subs r0, r1
+ strh r0, [r3]
+ movs r2, 0
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ bge _080C83C8
+ negs r0, r0
+ strh r0, [r4]
+_080C83C8:
+ movs r2, 0
+ ldrsh r0, [r3, r2]
+ cmp r0, 0
+ bge _080C83D4
+ negs r0, r0
+ strh r0, [r3]
+_080C83D4:
+ movs r2, 0
+ ldrsh r0, [r4, r2]
+ movs r2, 0
+ ldrsh r1, [r6, r2]
+ adds r0, r1
+ cmp r0, 0x5
+ bgt _080C83F4
+ ldr r0, _080C83F0
+ strh r5, [r0]
+ b _080C8406
+ .align 2, 0
+_080C83E8: .4byte gSaveBlock1
+_080C83EC: .4byte gUnknown_0203880C
+_080C83F0: .4byte gScriptResult
+_080C83F4:
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x9
+ bls _080C839C
+ ldr r1, _080C8410
+ ldr r2, _080C8414
+ adds r0, r2, 0
+ strh r0, [r1]
+_080C8406:
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C8410: .4byte gScriptResult
+_080C8414: .4byte 0x0000ffff
+ thumb_func_end sub_80C837C
+
+ thumb_func_start unref_sub_80C8418
+unref_sub_80C8418: @ 80C8418
+ push {lr}
+ bl sub_80C82EC
+ ldr r2, _080C8434
+ ldrh r1, [r2]
+ ldr r0, _080C8438
+ cmp r1, r0
+ beq _080C8440
+ adds r0, r1, 0
+ lsls r0, 4
+ ldr r1, _080C843C
+ adds r0, r1
+ b _080C8442
+ .align 2, 0
+_080C8434: .4byte gScriptResult
+_080C8438: .4byte 0x0000ffff
+_080C843C: .4byte gUnknown_02038814
+_080C8440:
+ movs r0, 0
+_080C8442:
+ pop {r1}
+ bx r1
+ thumb_func_end unref_sub_80C8418
+
+ thumb_func_start sub_80C8448
+sub_80C8448: @ 80C8448
+ push {lr}
+ bl sub_80C837C
+ ldr r2, _080C8464
+ ldrh r1, [r2]
+ ldr r0, _080C8468
+ cmp r1, r0
+ beq _080C8470
+ adds r0, r1, 0
+ lsls r0, 4
+ ldr r1, _080C846C
+ adds r0, r1
+ b _080C8472
+ .align 2, 0
+_080C8464: .4byte gScriptResult
+_080C8468: .4byte 0x0000ffff
+_080C846C: .4byte gUnknown_02038814
+_080C8470:
+ movs r0, 0
+_080C8472:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80C8448
+
+ thumb_func_start sub_80C8478
+sub_80C8478: @ 80C8478
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x4
+ lsls r0, 24
+ movs r2, 0
+ ldr r3, _080C84E8
+ mov r6, sp
+ adds r6, 0x2
+ ldr r7, _080C84EC
+ movs r1, 0x8
+ adds r1, r3
+ mov r9, r1
+ movs r4, 0xFF
+ lsls r4, 3
+ adds r1, r7, r4
+ lsrs r0, 21
+ adds r0, r1
+ mov r8, r0
+_080C84A0:
+ lsls r5, r2, 4
+ adds r4, r5, r3
+ movs r0, 0x4
+ ldrsb r0, [r4, r0]
+ cmp r0, 0
+ bne _080C84F0
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080C84F0
+ movs r1, 0x2
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080C84F0
+ mov r0, sp
+ adds r1, r6, 0
+ bl GetXYCoordsOneStepInFrontOfPlayer
+ ldrb r0, [r7, 0x5]
+ strb r0, [r4, 0x4]
+ mov r3, r9
+ adds r2, r5, r3
+ mov r3, r8
+ ldr r0, [r3]
+ ldr r1, [r3, 0x4]
+ str r0, [r2]
+ str r1, [r2, 0x4]
+ movs r0, 0x64
+ strb r0, [r4, 0x5]
+ mov r0, sp
+ ldrh r0, [r0]
+ strh r0, [r4]
+ ldrh r0, [r6]
+ strh r0, [r4, 0x2]
+ b _080C84FA
+ .align 2, 0
+_080C84E8: .4byte gUnknown_0203880C
+_080C84EC: .4byte gSaveBlock1
+_080C84F0:
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x9
+ bls _080C84A0
+_080C84FA:
+ add sp, 0x4
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80C8478
+
+ thumb_func_start sub_80C8508
+sub_80C8508: @ 80C8508
+ push {r4,r5,lr}
+ movs r4, 0
+ ldr r5, _080C8538
+_080C850E:
+ lsls r0, r4, 4
+ adds r1, r0, r5
+ ldrb r0, [r1, 0x5]
+ cmp r0, 0
+ beq _080C8528
+ subs r0, 0x1
+ strb r0, [r1, 0x5]
+ lsls r0, 24
+ cmp r0, 0
+ bne _080C8528
+ adds r0, r4, 0
+ bl sub_80C82BC
+_080C8528:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x9
+ bls _080C850E
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C8538: .4byte gUnknown_0203880C
+ thumb_func_end sub_80C8508
+
+ thumb_func_start unref_sub_80C853C
+unref_sub_80C853C: @ 80C853C
+ push {lr}
+ bl sub_80C82EC
+ ldr r3, _080C8564
+ ldrh r1, [r3]
+ ldr r0, _080C8568
+ cmp r1, r0
+ beq _080C8574
+ ldr r0, _080C856C
+ ldr r2, _080C8570
+ lsls r1, 4
+ adds r1, r2
+ ldrb r1, [r1, 0x5]
+ movs r2, 0x2
+ movs r3, 0x3
+ bl ConvertIntToDecimalStringN
+ movs r0, 0x1
+ b _080C8576
+ .align 2, 0
+_080C8564: .4byte gScriptResult
+_080C8568: .4byte 0x0000ffff
+_080C856C: .4byte gStringVar2
+_080C8570: .4byte gUnknown_0203880C
+_080C8574:
+ movs r0, 0
+_080C8576:
+ pop {r1}
+ bx r1
+ thumb_func_end unref_sub_80C853C
+
+ thumb_func_start sub_80C857C
+sub_80C857C: @ 80C857C
+ push {r4,r5,lr}
+ adds r2, r0, 0
+ lsls r4, r1, 16
+ lsrs r4, 16
+ ldr r5, _080C85A8
+ adds r0, r5, 0
+ adds r1, r2, 0
+ adds r2, r4, 0
+ bl memcpy
+ bl bitmask_all_link_players_but_self
+ lsls r0, 24
+ lsrs r0, 24
+ adds r1, r5, 0
+ adds r2, r4, 0
+ bl SendBlock
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C85A8: .4byte 0x0201e000
+ thumb_func_end sub_80C857C
+
+ thumb_func_start sub_80C85AC
+sub_80C85AC: @ 80C85AC
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x80
+ lsls r1, 17
+ lsls r1, r0
+ lsrs r4, r1, 24
+ bl GetBlockRecievedStatus
+ adds r1, r4, 0
+ ands r1, r0
+ cmp r1, 0
+ beq _080C85D0
+ adds r0, r4, 0
+ bl ResetBlockReceivedFlag
+ movs r0, 0x1
+ b _080C85D2
+_080C85D0:
+ movs r0, 0
+_080C85D2:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80C85AC
+
+ thumb_func_start sub_80C85D8
+sub_80C85D8: @ 80C85D8
+ push {r4,lr}
+ movs r4, 0
+_080C85DC:
+ bl GetBlockRecievedStatus
+ lsls r0, 24
+ lsrs r0, 24
+ asrs r0, r4
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _080C85F2
+ movs r0, 0
+ b _080C85FE
+_080C85F2:
+ adds r4, 0x1
+ cmp r4, 0x3
+ ble _080C85DC
+ bl ResetBlockReceivedFlags
+ movs r0, 0x1
+_080C85FE:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80C85D8
+
+ thumb_func_start sub_80C8604
+sub_80C8604: @ 80C8604
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ movs r1, 0
+ ldr r5, _080C8638
+ ldr r6, _080C863C
+ ldr r4, _080C8640
+ movs r3, 0xFF
+_080C8614:
+ lsls r0, r1, 8
+ adds r0, r4
+ strh r3, [r0]
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x3
+ bls _080C8614
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r0, r5
+ movs r1, 0
+ strh r1, [r0, 0x8]
+ str r6, [r0]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C8638: .4byte gTasks
+_080C863C: .4byte sub_80C8644
+_080C8640: .4byte gBlockRecvBuffer
+ thumb_func_end sub_80C8604
+
+ thumb_func_start sub_80C8644
+sub_80C8644: @ 80C8644
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080C8658
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldr r0, _080C865C
+ str r0, [r1]
+ bx lr
+ .align 2, 0
+_080C8658: .4byte gTasks
+_080C865C: .4byte sub_80C8660
+ thumb_func_end sub_80C8644
+
+ thumb_func_start sub_80C8660
+sub_80C8660: @ 80C8660
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _080C8694
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080C868E
+ bl GetMultiplayerId
+ ldr r1, _080C8698
+ strb r0, [r1]
+ bl GetLinkPlayerCount
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ bne _080C868E
+ ldr r1, _080C869C
+ movs r0, 0x1
+ strb r0, [r1]
+ adds r0, r4, 0
+ bl SwitchTaskToFollowupFunc
+_080C868E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C8694: .4byte gReceivedRemoteLinkPlayers
+_080C8698: .4byte gUnknown_02038695
+_080C869C: .4byte gUnknown_0203869A
+ thumb_func_end sub_80C8660
+
+ thumb_func_start sub_80C86A0
+sub_80C86A0: @ 80C86A0
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r5, 0x2
+ ldrb r0, [r4]
+ cmp r0, 0xFC
+ bne _080C86B6
+ ldrb r0, [r4, 0x1]
+ cmp r0, 0x15
+ bne _080C86B6
+ movs r0, 0x2
+ b _080C872C
+_080C86B6:
+ adds r0, r4, 0
+ bl StringLength
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x5
+ bhi _080C872A
+ ldrb r0, [r4]
+ cmp r0, 0xFF
+ beq _080C872A
+_080C86CA:
+ ldrb r1, [r4]
+ adds r0, r1, 0
+ adds r0, 0x45
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x33
+ bls _080C871E
+ adds r0, r1, 0
+ adds r0, 0x5F
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x9
+ bls _080C871E
+ adds r0, r1, 0
+ cmp r0, 0
+ beq _080C871E
+ cmp r0, 0xAD
+ beq _080C871E
+ cmp r0, 0xB8
+ beq _080C871E
+ cmp r0, 0xAB
+ beq _080C871E
+ cmp r0, 0xAC
+ beq _080C871E
+ cmp r0, 0xB5
+ beq _080C871E
+ cmp r0, 0xB6
+ beq _080C871E
+ cmp r0, 0xBA
+ beq _080C871E
+ cmp r0, 0xAE
+ beq _080C871E
+ cmp r0, 0xB0
+ beq _080C871E
+ cmp r0, 0xB1
+ beq _080C871E
+ cmp r0, 0xB2
+ beq _080C871E
+ cmp r0, 0xB3
+ beq _080C871E
+ cmp r0, 0xB1
+ bne _080C8728
+_080C871E:
+ adds r4, 0x1
+ ldrb r0, [r4]
+ cmp r0, 0xFF
+ bne _080C86CA
+ b _080C872A
+_080C8728:
+ movs r5, 0x1
+_080C872A:
+ adds r0, r5, 0
+_080C872C:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80C86A0
+
+ thumb_func_start sub_80C8734
+sub_80C8734: @ 80C8734
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ ldr r1, _080C8768
+ lsls r5, r0, 2
+ adds r0, r5, r0
+ lsls r0, 3
+ adds r4, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080C876C
+ cmp r0, 0x1
+ beq _080C87D0
+ movs r0, 0
+ strh r0, [r4, 0x8]
+ mov r0, r9
+ bl SwitchTaskToFollowupFunc
+ b _080C8896
+ .align 2, 0
+_080C8768: .4byte gTasks
+_080C876C:
+ bl GetMultiplayerId
+ lsls r0, 24
+ cmp r0, 0
+ bne _080C87A8
+ bl sub_8007ECC
+ lsls r0, 24
+ cmp r0, 0
+ bne _080C8782
+ b _080C8896
+_080C8782:
+ ldr r0, _080C879C
+ ldr r1, _080C87A0
+ ldrb r1, [r1]
+ lsls r1, 6
+ ldr r2, _080C87A4
+ adds r1, r2
+ movs r2, 0x40
+ bl memcpy
+ movs r0, 0x2
+ bl sub_8007E9C
+ b _080C87BA
+ .align 2, 0
+_080C879C: .4byte gBlockSendBuffer
+_080C87A0: .4byte gUnknown_02038695
+_080C87A4: .4byte gUnknown_02038570
+_080C87A8:
+ ldr r0, _080C87C4
+ ldr r1, _080C87C8
+ ldrb r1, [r1]
+ lsls r1, 6
+ ldr r2, _080C87CC
+ adds r1, r2
+ movs r2, 0x40
+ bl memcpy
+_080C87BA:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _080C8896
+ .align 2, 0
+_080C87C4: .4byte gBlockSendBuffer
+_080C87C8: .4byte gUnknown_02038695
+_080C87CC: .4byte gUnknown_02038570
+_080C87D0:
+ bl sub_80C85D8
+ lsls r0, 24
+ cmp r0, 0
+ beq _080C8896
+ movs r7, 0
+ str r5, [sp]
+ ldr r0, _080C8818
+ ldr r6, _080C881C
+ movs r5, 0
+ mov r10, r0
+ movs r2, 0xFF
+ mov r8, r2
+_080C87EA:
+ lsls r1, r7, 8
+ ldr r0, _080C8820
+ adds r1, r0
+ mov r0, r10
+ movs r2, 0x40
+ bl memcpy
+ ldr r0, _080C8824
+ adds r4, r5, r0
+ ldrh r0, [r6, 0x1A]
+ cmp r0, 0x1
+ bne _080C8828
+ adds r0, r4, 0
+ bl sub_80C86A0
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl ConvertInternationalString
+ b _080C883E
+ .align 2, 0
+_080C8818: .4byte gUnknown_02038570
+_080C881C: .4byte gLinkPlayers
+_080C8820: .4byte gBlockRecvBuffer
+_080C8824: .4byte gUnknown_02038572
+_080C8828:
+ ldrb r0, [r4, 0xA]
+ cmp r0, 0xFC
+ bne _080C8838
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl ConvertInternationalString
+ b _080C883E
+_080C8838:
+ strb r0, [r4, 0x5]
+ mov r1, r8
+ strb r1, [r4, 0xA]
+_080C883E:
+ ldr r0, _080C886C
+ adds r4, r5, r0
+ ldrh r0, [r6, 0x1A]
+ cmp r0, 0x1
+ bne _080C8870
+ mov r2, r8
+ strb r2, [r4, 0x7]
+ ldrb r0, [r4, 0x4]
+ strb r0, [r4, 0x6]
+ ldrb r0, [r4, 0x3]
+ strb r0, [r4, 0x5]
+ ldrb r0, [r4, 0x2]
+ strb r0, [r4, 0x4]
+ ldrb r0, [r4, 0x1]
+ strb r0, [r4, 0x3]
+ ldrb r0, [r4]
+ strb r0, [r4, 0x2]
+ movs r0, 0x15
+ strb r0, [r4, 0x1]
+ movs r0, 0xFC
+ strb r0, [r4]
+ b _080C8878
+ .align 2, 0
+_080C886C: .4byte gUnknown_0203857D
+_080C8870:
+ ldrb r0, [r4, 0x7]
+ strb r0, [r4, 0x5]
+ mov r0, r8
+ strb r0, [r4, 0x7]
+_080C8878:
+ adds r6, 0x1C
+ adds r5, 0x40
+ movs r1, 0x40
+ add r10, r1
+ adds r7, 0x1
+ cmp r7, 0x3
+ ble _080C87EA
+ ldr r0, _080C88A8
+ ldr r1, [sp]
+ add r1, r9
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+_080C8896:
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C88A8: .4byte gTasks
+ thumb_func_end sub_80C8734
+
+ thumb_func_start sub_80C88AC
+sub_80C88AC: @ 80C88AC
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r1, _080C88D4
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r5, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ beq _080C88D8
+ cmp r0, 0x1
+ beq _080C88FC
+ movs r0, 0
+ strh r0, [r5, 0x8]
+ adds r0, r2, 0
+ bl SwitchTaskToFollowupFunc
+ b _080C8924
+ .align 2, 0
+_080C88D4: .4byte gTasks
+_080C88D8:
+ bl GetMultiplayerId
+ lsls r0, 24
+ cmp r0, 0
+ bne _080C891E
+ bl sub_8007ECC
+ lsls r0, 24
+ cmp r0, 0
+ beq _080C8924
+ ldr r0, _080C88F8
+ movs r1, 0x4
+ bl sub_80C857C
+ b _080C891E
+ .align 2, 0
+_080C88F8: .4byte gRngValue
+_080C88FC:
+ movs r0, 0
+ bl sub_80C85AC
+ lsls r0, 24
+ cmp r0, 0
+ beq _080C8924
+ ldr r0, _080C892C
+ ldr r4, _080C8930
+ adds r1, r4, 0
+ movs r2, 0x4
+ bl memcpy
+ ldr r0, _080C8934
+ adds r1, r4, 0
+ movs r2, 0x4
+ bl memcpy
+_080C891E:
+ ldrh r0, [r5, 0x8]
+ adds r0, 0x1
+ strh r0, [r5, 0x8]
+_080C8924:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C892C: .4byte gRngValue
+_080C8930: .4byte gBlockRecvBuffer
+_080C8934: .4byte gUnknown_03005D28
+ thumb_func_end sub_80C88AC
+
+ thumb_func_start sub_80C8938
+sub_80C8938: @ 80C8938
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, _080C8968
+ mov r8, r0
+ lsls r6, r5, 2
+ adds r0, r6, r5
+ lsls r7, r0, 3
+ mov r1, r8
+ adds r4, r7, r1
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080C896C
+ cmp r0, 0x1
+ beq _080C8998
+ movs r0, 0
+ strh r0, [r4, 0x8]
+ adds r0, r5, 0
+ bl SwitchTaskToFollowupFunc
+ b _080C89CE
+ .align 2, 0
+_080C8968: .4byte gTasks
+_080C896C:
+ ldr r1, _080C8994
+ ldrh r0, [r4, 0x1A]
+ strb r0, [r1]
+ bl GetMultiplayerId
+ lsls r0, 24
+ cmp r0, 0
+ bne _080C898C
+ bl sub_8007ECC
+ lsls r0, 24
+ cmp r0, 0
+ beq _080C89CE
+ movs r0, 0x2
+ bl sub_8007E9C
+_080C898C:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _080C89CE
+ .align 2, 0
+_080C8994: .4byte gBlockSendBuffer
+_080C8998:
+ bl sub_80C85D8
+ lsls r0, 24
+ cmp r0, 0
+ beq _080C89CE
+ movs r3, 0
+ mov r12, r8
+ adds r1, r6, 0
+ ldr r4, _080C89D8
+ mov r0, r12
+ adds r0, 0xA
+ adds r2, r7, r0
+ movs r6, 0x80
+ lsls r6, 1
+_080C89B4:
+ ldrh r0, [r4]
+ strh r0, [r2]
+ adds r4, r6
+ adds r2, 0x2
+ adds r3, 0x1
+ cmp r3, 0x3
+ ble _080C89B4
+ adds r1, r5
+ lsls r1, 3
+ add r1, r12
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+_080C89CE:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C89D8: .4byte gBlockRecvBuffer
+ thumb_func_end sub_80C8938
+
+ thumb_func_start sub_80C89DC
+sub_80C89DC: @ 80C89DC
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r1, _080C8A04
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r4, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080C8A08
+ cmp r0, 0x1
+ beq _080C8A20
+ movs r0, 0
+ strh r0, [r4, 0x8]
+ adds r0, r2, 0
+ bl SwitchTaskToFollowupFunc
+ b _080C8A30
+ .align 2, 0
+_080C8A04: .4byte gTasks
+_080C8A08:
+ bl sub_8007ECC
+ lsls r0, 24
+ cmp r0, 0
+ beq _080C8A30
+ ldr r0, _080C8A1C
+ movs r1, 0x1
+ bl sub_80C857C
+ b _080C8A2A
+ .align 2, 0
+_080C8A1C: .4byte gUnknown_02038695
+_080C8A20:
+ bl sub_80C85D8
+ lsls r0, 24
+ cmp r0, 0
+ beq _080C8A30
+_080C8A2A:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+_080C8A30:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80C89DC
+
+ thumb_func_start sub_80C8A38
+sub_80C8A38: @ 80C8A38
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r7, _080C8A60
+ lsls r6, r5, 2
+ adds r0, r6, r5
+ lsls r0, 3
+ adds r4, r0, r7
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080C8A64
+ cmp r0, 0x1
+ beq _080C8A94
+ movs r0, 0
+ strh r0, [r4, 0x8]
+ adds r0, r5, 0
+ bl SwitchTaskToFollowupFunc
+ b _080C8AC2
+ .align 2, 0
+_080C8A60: .4byte gTasks
+_080C8A64:
+ bl sub_8007ECC
+ lsls r0, 24
+ cmp r0, 0
+ beq _080C8AC2
+ ldr r0, _080C8A8C
+ ldrb r1, [r0]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ ldr r1, _080C8A90
+ adds r0, r1
+ movs r1, 0x2
+ bl sub_80C857C
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _080C8AC2
+ .align 2, 0
+_080C8A8C: .4byte gUnknown_02038695
+_080C8A90: .4byte 0x02019266
+_080C8A94:
+ bl sub_80C85D8
+ lsls r0, 24
+ cmp r0, 0
+ beq _080C8AC2
+ ldr r1, _080C8AC8
+ ldr r3, _080C8ACC
+ movs r4, 0x80
+ lsls r4, 1
+ movs r2, 0x3
+_080C8AA8:
+ ldrh r0, [r1]
+ strh r0, [r3]
+ adds r1, r4
+ adds r3, 0x1C
+ subs r2, 0x1
+ cmp r2, 0
+ bge _080C8AA8
+ adds r1, r6, r5
+ lsls r1, 3
+ adds r1, r7
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+_080C8AC2:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C8AC8: .4byte gBlockRecvBuffer
+_080C8ACC: .4byte 0x02019266
+ thumb_func_end sub_80C8A38
+
+ thumb_func_start sub_80C8AD0
+sub_80C8AD0: @ 80C8AD0
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r1, _080C8AF8
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r2, r0, r1
+ movs r3, 0x8
+ ldrsh r0, [r2, r3]
+ adds r3, r1, 0
+ cmp r0, 0xB
+ bls _080C8AEC
+ b _080C8C70
+_080C8AEC:
+ lsls r0, 2
+ ldr r1, _080C8AFC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080C8AF8: .4byte gTasks
+_080C8AFC: .4byte _080C8B00
+ .align 2, 0
+_080C8B00:
+ .4byte _080C8B30
+ .4byte _080C8B4C
+ .4byte _080C8B74
+ .4byte _080C8B98
+ .4byte _080C8BB0
+ .4byte _080C8B74
+ .4byte _080C8BD8
+ .4byte _080C8BF0
+ .4byte _080C8B74
+ .4byte _080C8C18
+ .4byte _080C8C30
+ .4byte _080C8B74
+_080C8B30:
+ bl sub_8007ECC
+ lsls r0, 24
+ cmp r0, 0
+ bne _080C8B3C
+ b _080C8C7A
+_080C8B3C:
+ ldr r0, _080C8B48
+ movs r1, 0x8
+ bl sub_80C857C
+ b _080C8C4C
+ .align 2, 0
+_080C8B48: .4byte gUnknown_02038678
+_080C8B4C:
+ bl sub_80C85D8
+ lsls r0, 24
+ cmp r0, 0
+ bne _080C8B58
+ b _080C8C7A
+_080C8B58:
+ ldr r0, _080C8B68
+ ldr r1, _080C8B6C
+ ldrb r1, [r1]
+ lsls r1, 8
+ ldr r2, _080C8B70
+ adds r1, r2
+ movs r2, 0x8
+ b _080C8C48
+ .align 2, 0
+_080C8B68: .4byte gUnknown_02038678
+_080C8B6C: .4byte gUnknown_0203869B
+_080C8B70: .4byte gBlockRecvBuffer
+_080C8B74:
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r2, r0, r3
+ ldrh r0, [r2, 0xA]
+ adds r1, r0, 0x1
+ strh r1, [r2, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xA
+ bgt _080C8B8C
+ b _080C8C7A
+_080C8B8C:
+ movs r0, 0
+ strh r0, [r2, 0xA]
+ ldrh r0, [r2, 0x8]
+ adds r0, 0x1
+ strh r0, [r2, 0x8]
+ b _080C8C7A
+_080C8B98:
+ bl sub_8007ECC
+ lsls r0, 24
+ cmp r0, 0
+ beq _080C8C7A
+ ldr r0, _080C8BAC
+ movs r1, 0x8
+ bl sub_80C857C
+ b _080C8C4C
+ .align 2, 0
+_080C8BAC: .4byte gUnknown_02038680
+_080C8BB0:
+ bl sub_80C85D8
+ lsls r0, 24
+ cmp r0, 0
+ beq _080C8C7A
+ ldr r0, _080C8BCC
+ ldr r1, _080C8BD0
+ ldrb r1, [r1]
+ lsls r1, 8
+ ldr r2, _080C8BD4
+ adds r1, r2
+ movs r2, 0x8
+ b _080C8C48
+ .align 2, 0
+_080C8BCC: .4byte gUnknown_02038680
+_080C8BD0: .4byte gUnknown_0203869B
+_080C8BD4: .4byte gBlockRecvBuffer
+_080C8BD8:
+ bl sub_8007ECC
+ lsls r0, 24
+ cmp r0, 0
+ beq _080C8C7A
+ ldr r0, _080C8BEC
+ movs r1, 0x8
+ bl sub_80C857C
+ b _080C8C4C
+ .align 2, 0
+_080C8BEC: .4byte gUnknown_02038688
+_080C8BF0:
+ bl sub_80C85D8
+ lsls r0, 24
+ cmp r0, 0
+ beq _080C8C7A
+ ldr r0, _080C8C0C
+ ldr r1, _080C8C10
+ ldrb r1, [r1]
+ lsls r1, 8
+ ldr r2, _080C8C14
+ adds r1, r2
+ movs r2, 0x8
+ b _080C8C48
+ .align 2, 0
+_080C8C0C: .4byte gUnknown_02038688
+_080C8C10: .4byte gUnknown_0203869B
+_080C8C14: .4byte gBlockRecvBuffer
+_080C8C18:
+ bl sub_8007ECC
+ lsls r0, 24
+ cmp r0, 0
+ beq _080C8C7A
+ ldr r0, _080C8C2C
+ movs r1, 0x4
+ bl sub_80C857C
+ b _080C8C4C
+ .align 2, 0
+_080C8C2C: .4byte gUnknown_02038690
+_080C8C30:
+ bl sub_80C85D8
+ lsls r0, 24
+ cmp r0, 0
+ beq _080C8C7A
+ ldr r0, _080C8C60
+ ldr r1, _080C8C64
+ ldrb r1, [r1]
+ lsls r1, 8
+ ldr r2, _080C8C68
+ adds r1, r2
+ movs r2, 0x4
+_080C8C48:
+ bl memcpy
+_080C8C4C:
+ ldr r1, _080C8C6C
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldrh r1, [r0, 0x8]
+ adds r1, 0x1
+ strh r1, [r0, 0x8]
+ b _080C8C7A
+ .align 2, 0
+_080C8C60: .4byte gUnknown_02038690
+_080C8C64: .4byte gUnknown_0203869B
+_080C8C68: .4byte gBlockRecvBuffer
+_080C8C6C: .4byte gTasks
+_080C8C70:
+ movs r0, 0
+ strh r0, [r2, 0x8]
+ adds r0, r4, 0
+ bl SwitchTaskToFollowupFunc
+_080C8C7A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80C8AD0
+
+ thumb_func_start sub_80C8C80
+sub_80C8C80: @ 80C8C80
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r1, _080C8CA8
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r2, r0, r1
+ movs r3, 0x8
+ ldrsh r0, [r2, r3]
+ adds r3, r1, 0
+ cmp r0, 0xB
+ bls _080C8C9C
+ b _080C8E0C
+_080C8C9C:
+ lsls r0, 2
+ ldr r1, _080C8CAC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080C8CA8: .4byte gTasks
+_080C8CAC: .4byte _080C8CB0
+ .align 2, 0
+_080C8CB0:
+ .4byte _080C8CE0
+ .4byte _080C8CFC
+ .4byte _080C8D24
+ .4byte _080C8D46
+ .4byte _080C8D60
+ .4byte _080C8D24
+ .4byte _080C8D88
+ .4byte _080C8DA0
+ .4byte _080C8D24
+ .4byte _080C8DB4
+ .4byte _080C8DCC
+ .4byte _080C8D24
+_080C8CE0:
+ bl sub_8007ECC
+ lsls r0, 24
+ cmp r0, 0
+ bne _080C8CEC
+ b _080C8E16
+_080C8CEC:
+ ldr r0, _080C8CF8
+ movs r1, 0x70
+ bl sub_80C857C
+ b _080C8DE8
+ .align 2, 0
+_080C8CF8: .4byte 0x02019260
+_080C8CFC:
+ bl sub_80C85D8
+ lsls r0, 24
+ cmp r0, 0
+ bne _080C8D08
+ b _080C8E16
+_080C8D08:
+ ldr r0, _080C8D18
+ ldr r1, _080C8D1C
+ ldrb r1, [r1]
+ lsls r1, 8
+ ldr r2, _080C8D20
+ adds r1, r2
+ movs r2, 0x70
+ b _080C8DE4
+ .align 2, 0
+_080C8D18: .4byte 0x02019260
+_080C8D1C: .4byte gUnknown_0203869B
+_080C8D20: .4byte gBlockRecvBuffer
+_080C8D24:
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r2, r0, r3
+ ldrh r0, [r2, 0xA]
+ adds r1, r0, 0x1
+ strh r1, [r2, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xA
+ ble _080C8E16
+ movs r0, 0
+ strh r0, [r2, 0xA]
+ ldrh r0, [r2, 0x8]
+ adds r0, 0x1
+ strh r0, [r2, 0x8]
+ b _080C8E16
+_080C8D46:
+ bl sub_8007ECC
+ lsls r0, 24
+ cmp r0, 0
+ beq _080C8E16
+ ldr r0, _080C8D5C
+ movs r1, 0x14
+ bl sub_80C857C
+ b _080C8DE8
+ .align 2, 0
+_080C8D5C: .4byte 0x020192d0
+_080C8D60:
+ bl sub_80C85D8
+ lsls r0, 24
+ cmp r0, 0
+ beq _080C8E16
+ ldr r0, _080C8D7C
+ ldr r1, _080C8D80
+ ldrb r1, [r1]
+ lsls r1, 8
+ ldr r2, _080C8D84
+ adds r1, r2
+ movs r2, 0x14
+ b _080C8DE4
+ .align 2, 0
+_080C8D7C: .4byte 0x020192d0
+_080C8D80: .4byte gUnknown_0203869B
+_080C8D84: .4byte gBlockRecvBuffer
+_080C8D88:
+ bl sub_8007ECC
+ lsls r0, 24
+ cmp r0, 0
+ beq _080C8E16
+ ldr r0, _080C8D9C
+ movs r1, 0x4
+ bl sub_80C857C
+ b _080C8DE8
+ .align 2, 0
+_080C8D9C: .4byte 0x02019328
+_080C8DA0:
+ bl sub_80C85D8
+ lsls r0, 24
+ cmp r0, 0
+ beq _080C8E16
+ ldr r0, _080C8DB0
+ b _080C8DD8
+ .align 2, 0
+_080C8DB0: .4byte 0x02019328
+_080C8DB4:
+ bl sub_8007ECC
+ lsls r0, 24
+ cmp r0, 0
+ beq _080C8E16
+ ldr r0, _080C8DC8
+ movs r1, 0x4
+ bl sub_80C857C
+ b _080C8DE8
+ .align 2, 0
+_080C8DC8: .4byte gUnknown_02038696
+_080C8DCC:
+ bl sub_80C85D8
+ lsls r0, 24
+ cmp r0, 0
+ beq _080C8E16
+ ldr r0, _080C8DFC
+_080C8DD8:
+ ldr r1, _080C8E00
+ ldrb r1, [r1]
+ lsls r1, 8
+ ldr r2, _080C8E04
+ adds r1, r2
+ movs r2, 0x4
+_080C8DE4:
+ bl memcpy
+_080C8DE8:
+ ldr r1, _080C8E08
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldrh r1, [r0, 0x8]
+ adds r1, 0x1
+ strh r1, [r0, 0x8]
+ b _080C8E16
+ .align 2, 0
+_080C8DFC: .4byte gUnknown_02038696
+_080C8E00: .4byte gUnknown_0203869B
+_080C8E04: .4byte gBlockRecvBuffer
+_080C8E08: .4byte gTasks
+_080C8E0C:
+ movs r0, 0
+ strh r0, [r2, 0x8]
+ adds r0, r4, 0
+ bl SwitchTaskToFollowupFunc
+_080C8E16:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80C8C80
+
+ thumb_func_start sub_80C8E1C
+sub_80C8E1C: @ 80C8E1C
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, _080C8E4C
+ mov r8, r0
+ lsls r6, r5, 2
+ adds r0, r6, r5
+ lsls r7, r0, 3
+ mov r1, r8
+ adds r4, r7, r1
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080C8E50
+ cmp r0, 0x1
+ beq _080C8E7C
+ movs r0, 0
+ strh r0, [r4, 0x8]
+ adds r0, r5, 0
+ bl SwitchTaskToFollowupFunc
+ b _080C8EAE
+ .align 2, 0
+_080C8E4C: .4byte gTasks
+_080C8E50:
+ ldr r1, _080C8E78
+ movs r0, 0x64
+ strb r0, [r1]
+ bl GetMultiplayerId
+ lsls r0, 24
+ cmp r0, 0
+ bne _080C8E70
+ bl sub_8007ECC
+ lsls r0, 24
+ cmp r0, 0
+ beq _080C8EAE
+ movs r0, 0x2
+ bl sub_8007E9C
+_080C8E70:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _080C8EAE
+ .align 2, 0
+_080C8E78: .4byte gBlockSendBuffer
+_080C8E7C:
+ bl sub_80C85D8
+ lsls r0, 24
+ cmp r0, 0
+ beq _080C8EAE
+ ldr r1, _080C8EB8
+ mov r0, r8
+ adds r0, 0x12
+ adds r2, r7, r0
+ movs r4, 0x80
+ lsls r4, 1
+ movs r3, 0x3
+_080C8E94:
+ ldrh r0, [r1]
+ strh r0, [r2]
+ adds r1, r4
+ adds r2, 0x2
+ subs r3, 0x1
+ cmp r3, 0
+ bge _080C8E94
+ adds r1, r6, r5
+ lsls r1, 3
+ add r1, r8
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+_080C8EAE:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C8EB8: .4byte gBlockRecvBuffer
+ thumb_func_end sub_80C8E1C
+
+ thumb_func_start sub_80C8EBC
+sub_80C8EBC: @ 80C8EBC
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r1, _080C8EE4
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r4, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080C8EE8
+ cmp r0, 0x1
+ beq _080C8F00
+ movs r0, 0
+ strh r0, [r4, 0x8]
+ adds r0, r2, 0
+ bl SwitchTaskToFollowupFunc
+ b _080C8F22
+ .align 2, 0
+_080C8EE4: .4byte gTasks
+_080C8EE8:
+ bl sub_8007ECC
+ lsls r0, 24
+ cmp r0, 0
+ beq _080C8F22
+ ldr r0, _080C8EFC
+ movs r1, 0x8
+ bl sub_80C857C
+ b _080C8F1C
+ .align 2, 0
+_080C8EFC: .4byte gUnknown_02038670
+_080C8F00:
+ bl sub_80C85D8
+ lsls r0, 24
+ cmp r0, 0
+ beq _080C8F22
+ ldr r0, _080C8F28
+ ldr r1, _080C8F2C
+ ldrb r1, [r1]
+ lsls r1, 8
+ ldr r2, _080C8F30
+ adds r1, r2
+ movs r2, 0x8
+ bl memcpy
+_080C8F1C:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+_080C8F22:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C8F28: .4byte gUnknown_02038670
+_080C8F2C: .4byte gUnknown_0203869B
+_080C8F30: .4byte gBlockRecvBuffer
+ thumb_func_end sub_80C8EBC
+
+ thumb_func_start sub_80C8F34
+sub_80C8F34: @ 80C8F34
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r1, _080C8F5C
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r4, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080C8F60
+ cmp r0, 0x1
+ beq _080C8F78
+ movs r0, 0
+ strh r0, [r4, 0x8]
+ adds r0, r2, 0
+ bl SwitchTaskToFollowupFunc
+ b _080C8F9A
+ .align 2, 0
+_080C8F5C: .4byte gTasks
+_080C8F60:
+ bl sub_8007ECC
+ lsls r0, 24
+ cmp r0, 0
+ beq _080C8F9A
+ ldr r0, _080C8F74
+ movs r1, 0x4
+ bl sub_80C857C
+ b _080C8F94
+ .align 2, 0
+_080C8F74: .4byte gUnknown_02038696
+_080C8F78:
+ bl sub_80C85D8
+ lsls r0, 24
+ cmp r0, 0
+ beq _080C8F9A
+ ldr r0, _080C8FA0
+ ldr r1, _080C8FA4
+ ldrb r1, [r1]
+ lsls r1, 8
+ ldr r2, _080C8FA8
+ adds r1, r2
+ movs r2, 0x4
+ bl memcpy
+_080C8F94:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+_080C8F9A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C8FA0: .4byte gUnknown_02038696
+_080C8FA4: .4byte gUnknown_0203869B
+_080C8FA8: .4byte gBlockRecvBuffer
+ thumb_func_end sub_80C8F34
+
+ thumb_func_start sub_80C8FAC
+sub_80C8FAC: @ 80C8FAC
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r1, _080C8FD0
+ ldrh r0, [r1]
+ cmp r0, 0xAF
+ bne _080C8FD8
+ ldr r1, _080C8FD4
+ lsls r2, r4, 2
+ adds r0, r2, r4
+ lsls r0, 3
+ adds r0, r1
+ ldrh r0, [r0, 0x26]
+ subs r0, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ b _080C8FE6
+ .align 2, 0
+_080C8FD0: .4byte word_203855E
+_080C8FD4: .4byte gTasks
+_080C8FD8:
+ ldrh r0, [r1]
+ bl itemid_get_type
+ subs r0, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ lsls r2, r4, 2
+_080C8FE6:
+ ldr r0, _080C9008
+ adds r1, r2, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r2, _080C900C
+ lsls r0, r3, 2
+ adds r0, r2
+ ldr r2, [r0]
+ lsrs r0, r2, 16
+ strh r0, [r1, 0x18]
+ strh r2, [r1, 0x1A]
+ ldr r0, _080C9010
+ str r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C9008: .4byte gTasks
+_080C900C: .4byte gUnknown_083D61E4
+_080C9010: .4byte sub_80A5B00
+ thumb_func_end sub_80C8FAC
+
+ thumb_func_start unknown_ItemMenu_Confirm
+unknown_ItemMenu_Confirm: @ 80C9014
+ push {lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_80C8FAC
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ thumb_func_end unknown_ItemMenu_Confirm
+
+ thumb_func_start sub_80C9038
+sub_80C9038: @ 80C9038
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_80C8FAC
+ movs r0, 0x1
+ movs r1, 0
+ bl fade_screen
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80C9038
+
+ thumb_func_start SetUpItemUseOnFieldCallback
+SetUpItemUseOnFieldCallback: @ 80C9050
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r1, _080C9078
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0xC
+ ldrsh r0, [r0, r1]
+ cmp r0, 0x1
+ beq _080C9084
+ ldr r1, _080C907C
+ ldr r0, _080C9080
+ str r0, [r1]
+ adds r0, r2, 0
+ bl unknown_ItemMenu_Confirm
+ b _080C908E
+ .align 2, 0
+_080C9078: .4byte gTasks
+_080C907C: .4byte gUnknown_0300485C
+_080C9080: .4byte sub_80A5CC4
+_080C9084:
+ ldr r0, _080C9094
+ ldr r1, [r0]
+ adds r0, r2, 0
+ bl _call_via_r1
+_080C908E:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C9094: .4byte gUnknown_03005D00
+ thumb_func_end SetUpItemUseOnFieldCallback
+
+ thumb_func_start sub_80C9098
+sub_80C9098: @ 80C9098
+ push {r4-r6,lr}
+ adds r4, r1, 0
+ adds r1, r2, 0
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r5, _080C90CC
+ adds r0, r5, 0
+ bl StringExpandPlaceholders
+ cmp r4, 0
+ bne _080C90D4
+ movs r0, 0
+ movs r1, 0xD
+ movs r2, 0xD
+ movs r3, 0x14
+ bl MenuZeroFillWindowRect
+ ldr r2, _080C90D0
+ adds r0, r6, 0
+ adds r1, r5, 0
+ movs r3, 0x1
+ bl DisplayItemMessageOnField
+ b _080C90E0
+ .align 2, 0
+_080C90CC: .4byte gStringVar4
+_080C90D0: .4byte sub_80A5C48
+_080C90D4:
+ ldr r2, _080C90E8
+ adds r0, r6, 0
+ adds r1, r5, 0
+ movs r3, 0
+ bl DisplayItemMessageOnField
+_080C90E0:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C90E8: .4byte sub_80A5C9C
+ thumb_func_end sub_80C9098
+
+ thumb_func_start DisplayDadsAdviceCannotUseItemMessage
+DisplayDadsAdviceCannotUseItemMessage: @ 80C90EC
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r2, _080C9100
+ bl sub_80C9098
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C9100: .4byte gOtherText_DadsAdvice
+ thumb_func_end DisplayDadsAdviceCannotUseItemMessage
+
+ thumb_func_start sub_80C9104
+sub_80C9104: @ 80C9104
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r2, _080C9118
+ bl sub_80C9098
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C9118: .4byte gOtherText_CantGetOffBike
+ thumb_func_end sub_80C9104
+
+ thumb_func_start CheckIfItemIsTMHMOrEvolutionStone
+CheckIfItemIsTMHMOrEvolutionStone: @ 80C911C
+ push {r4,lr}
+ lsls r0, 16
+ lsrs r4, r0, 16
+ adds r0, r4, 0
+ bl itemid_get_overworld_function
+ ldr r1, _080C9134
+ cmp r0, r1
+ bne _080C9138
+ movs r0, 0x1
+ b _080C914E
+ .align 2, 0
+_080C9134: .4byte ItemUseOutOfBattle_TMHM
+_080C9138:
+ adds r0, r4, 0
+ bl itemid_get_overworld_function
+ ldr r1, _080C9148
+ cmp r0, r1
+ beq _080C914C
+ movs r0, 0
+ b _080C914E
+ .align 2, 0
+_080C9148: .4byte ItemUseOutOfBattle_EvolutionStone
+_080C914C:
+ movs r0, 0x2
+_080C914E:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end CheckIfItemIsTMHMOrEvolutionStone
+
+ thumb_func_start sub_80C9154
+sub_80C9154: @ 80C9154
+ push {r4,lr}
+ sub sp, 0x24
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _080C9188
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080C9180
+ mov r1, sp
+ ldr r0, _080C918C
+ ldrh r0, [r0]
+ strh r0, [r1, 0x20]
+ ldr r1, _080C9190
+ mov r0, sp
+ movs r2, 0
+ bl sub_80F890C
+ adds r0, r4, 0
+ bl DestroyTask
+_080C9180:
+ add sp, 0x24
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C9188: .4byte gPaletteFade
+_080C918C: .4byte word_203855E
+_080C9190: .4byte sub_80A5D04
+ thumb_func_end sub_80C9154
+
+ thumb_func_start ItemUseOutOfBattle_Mail
+ItemUseOutOfBattle_Mail: @ 80C9194
+ push {r4,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r1, _080C91C4
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080C91C8
+ str r1, [r0]
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C91C4: .4byte gTasks
+_080C91C8: .4byte sub_80C9154
+ thumb_func_end ItemUseOutOfBattle_Mail
+
+ thumb_func_start ItemUseOutOfBattle_Bike
+ItemUseOutOfBattle_Bike: @ 80C91CC
+ push {r4,r5,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r5, r0, 24
+ mov r4, sp
+ adds r4, 0x2
+ mov r0, sp
+ adds r1, r4, 0
+ bl PlayerGetDestCoords
+ mov r0, sp
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ movs r2, 0
+ ldrsh r1, [r4, r2]
+ bl MapGridGetMetatileBehaviorAt
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _080C924C
+ bl FlagGet
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _080C9238
+ adds r0, r4, 0
+ bl MetatileBehavior_IsVerticalRail
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _080C9238
+ adds r0, r4, 0
+ bl MetatileBehavior_IsHorizontalRail
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _080C9238
+ adds r0, r4, 0
+ bl MetatileBehavior_IsIsolatedVerticalRail
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _080C9238
+ adds r0, r4, 0
+ bl MetatileBehavior_IsIsolatedHorizontalRail
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080C9254
+_080C9238:
+ ldr r0, _080C9250
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ adds r1, r0
+ ldrb r1, [r1, 0xC]
+ adds r0, r5, 0
+ bl sub_80C9104
+ b _080C928E
+ .align 2, 0
+_080C924C: .4byte 0x0000082b
+_080C9250: .4byte gTasks
+_080C9254:
+ bl sub_8053C44
+ cmp r0, 0x1
+ bne _080C927C
+ bl sub_80E5EF4
+ lsls r0, 24
+ cmp r0, 0
+ bne _080C927C
+ ldr r1, _080C9274
+ ldr r0, _080C9278
+ str r0, [r1]
+ adds r0, r5, 0
+ bl SetUpItemUseOnFieldCallback
+ b _080C928E
+ .align 2, 0
+_080C9274: .4byte gUnknown_03005D00
+_080C9278: .4byte ItemUseOnFieldCB_Bike
+_080C927C:
+ ldr r0, _080C9298
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ adds r1, r0
+ ldrb r1, [r1, 0xC]
+ adds r0, r5, 0
+ bl DisplayDadsAdviceCannotUseItemMessage
+_080C928E:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C9298: .4byte gTasks
+ thumb_func_end ItemUseOutOfBattle_Bike
+
+ thumb_func_start ItemUseOnFieldCB_Bike
+ItemUseOnFieldCB_Bike: @ 80C929C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r4, _080C92E0
+ ldrh r0, [r4]
+ bl itemid_get_x28
+ lsls r0, 24
+ cmp r0, 0
+ bne _080C92B6
+ movs r0, 0x2
+ bl GetOnOffBike
+_080C92B6:
+ ldrh r0, [r4]
+ bl itemid_get_x28
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080C92CA
+ movs r0, 0x4
+ bl GetOnOffBike
+_080C92CA:
+ bl sub_8064E2C
+ bl ScriptContext2_Disable
+ adds r0, r5, 0
+ bl DestroyTask
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C92E0: .4byte word_203855E
+ thumb_func_end ItemUseOnFieldCB_Bike
+
+ thumb_func_start CanFish
+CanFish: @ 80C92E4
+ push {r4-r6,lr}
+ sub sp, 0x4
+ mov r4, sp
+ adds r4, 0x2
+ mov r0, sp
+ adds r1, r4, 0
+ bl GetXYCoordsOneStepInFrontOfPlayer
+ mov r0, sp
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ movs r2, 0
+ ldrsh r1, [r4, r2]
+ bl MapGridGetMetatileBehaviorAt
+ lsls r0, 16
+ lsrs r6, r0, 16
+ lsls r0, r6, 24
+ lsrs r5, r0, 24
+ adds r0, r5, 0
+ bl MetatileBehavior_IsWaterfall
+ lsls r0, 24
+ cmp r0, 0
+ bne _080C936C
+ movs r0, 0x10
+ bl TestPlayerAvatarFlags
+ lsls r0, 24
+ cmp r0, 0
+ bne _080C936C
+ movs r0, 0x8
+ bl TestPlayerAvatarFlags
+ lsls r0, 24
+ cmp r0, 0
+ bne _080C933C
+ bl IsPlayerFacingSurfableFishableWater
+ lsls r0, 24
+ cmp r0, 0
+ beq _080C936C
+_080C9338:
+ movs r0, 0x1
+ b _080C936E
+_080C933C:
+ adds r0, r5, 0
+ bl MetatileBehavior_IsSurfableWaterOrUnderwater
+ lsls r0, 24
+ cmp r0, 0
+ beq _080C935C
+ mov r0, sp
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ movs r2, 0
+ ldrsh r1, [r4, r2]
+ bl MapGridIsImpassableAt
+ lsls r0, 24
+ cmp r0, 0
+ beq _080C9338
+_080C935C:
+ lsls r0, r6, 24
+ lsrs r0, 24
+ bl sub_8057434
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _080C9338
+_080C936C:
+ movs r0, 0
+_080C936E:
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end CanFish
+
+ thumb_func_start ItemUseOutOfBattle_Rod
+ItemUseOutOfBattle_Rod: @ 80C9378
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl CanFish
+ cmp r0, 0x1
+ bne _080C939C
+ ldr r1, _080C9394
+ ldr r0, _080C9398
+ str r0, [r1]
+ adds r0, r4, 0
+ bl SetUpItemUseOnFieldCallback
+ b _080C93AE
+ .align 2, 0
+_080C9394: .4byte gUnknown_03005D00
+_080C9398: .4byte ItemUseOnFieldCB_Rod
+_080C939C:
+ ldr r0, _080C93B4
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldrb r1, [r1, 0xC]
+ adds r0, r4, 0
+ bl DisplayDadsAdviceCannotUseItemMessage
+_080C93AE:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C93B4: .4byte gTasks
+ thumb_func_end ItemUseOutOfBattle_Rod
+
+ thumb_func_start ItemUseOnFieldCB_Rod
+ItemUseOnFieldCB_Rod: @ 80C93B8
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _080C93DC
+ ldrh r0, [r0]
+ bl itemid_get_x28
+ lsls r0, 24
+ lsrs r0, 24
+ bl StartFishing
+ adds r0, r4, 0
+ bl DestroyTask
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C93DC: .4byte word_203855E
+ thumb_func_end ItemUseOnFieldCB_Rod
+
+ thumb_func_start ItemUseOutOfBattle_Itemfinder
+ItemUseOutOfBattle_Itemfinder: @ 80C93E0
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x27
+ bl sav12_xor_increment
+ ldr r1, _080C9400
+ ldr r0, _080C9404
+ str r0, [r1]
+ adds r0, r4, 0
+ bl SetUpItemUseOnFieldCallback
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C9400: .4byte gUnknown_03005D00
+_080C9404: .4byte ItemUseOnFieldCB_Itemfinder
+ thumb_func_end ItemUseOutOfBattle_Itemfinder
+
+ thumb_func_start ItemUseOnFieldCB_Itemfinder
+ItemUseOnFieldCB_Itemfinder: @ 80C9408
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _080C9430
+ ldr r0, [r0, 0x4]
+ adds r1, r4, 0
+ bl ItemfinderCheckForHiddenItems
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080C943C
+ ldr r0, _080C9434
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _080C9438
+ str r0, [r1]
+ b _080C9448
+ .align 2, 0
+_080C9430: .4byte gMapHeader
+_080C9434: .4byte gTasks
+_080C9438: .4byte sub_80C9458
+_080C943C:
+ ldr r1, _080C9450
+ ldr r2, _080C9454
+ adds r0, r4, 0
+ movs r3, 0
+ bl DisplayItemMessageOnField
+_080C9448:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C9450: .4byte gOtherText_NoResponse
+_080C9454: .4byte sub_80C9520
+ thumb_func_end ItemUseOnFieldCB_Itemfinder
+
+ thumb_func_start sub_80C9458
+sub_80C9458: @ 80C9458
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r6, r5, 2
+ adds r0, r6, r5
+ lsls r7, r0, 3
+ ldr r0, _080C94AC
+ mov r8, r0
+ adds r4, r7, r0
+ movs r1, 0x6
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080C950C
+ movs r2, 0x8
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x4
+ bne _080C9500
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ movs r2, 0x2
+ ldrsh r1, [r4, r2]
+ bl sub_80C9908
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ beq _080C94B8
+ ldr r1, _080C94B0
+ subs r0, 0x1
+ adds r0, r1
+ ldrb r0, [r0]
+ bl sub_80C997C
+ mov r0, r8
+ subs r0, 0x8
+ adds r0, r7, r0
+ ldr r1, _080C94B4
+ str r1, [r0]
+ b _080C9516
+ .align 2, 0
+_080C94AC: .4byte gUnknown_03004B28
+_080C94B0: .4byte gUnknown_083D61F0
+_080C94B4: .4byte sub_80C99EC
+_080C94B8:
+ bl player_get_direction_lower_nybble
+ lsls r0, 24
+ lsrs r2, r0, 24
+ movs r1, 0
+ adds r3, r6, 0
+ ldr r7, _080C94F4
+ movs r6, 0x3
+_080C94C8:
+ adds r0, r1, r7
+ adds r1, 0x1
+ ldrb r0, [r0]
+ cmp r2, r0
+ bne _080C94D8
+ adds r0, r1, 0
+ ands r0, r6
+ strh r0, [r4, 0xA]
+_080C94D8:
+ lsls r0, r1, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x3
+ bls _080C94C8
+ ldr r1, _080C94F8
+ adds r0, r3, r5
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080C94FC
+ str r1, [r0]
+ movs r0, 0
+ strh r0, [r4, 0x6]
+ strh r0, [r4, 0x4]
+ b _080C9516
+ .align 2, 0
+_080C94F4: .4byte gUnknown_083D61F0
+_080C94F8: .4byte gTasks
+_080C94FC: .4byte sub_80C9A38
+_080C9500:
+ movs r0, 0x48
+ bl PlaySE
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+_080C950C:
+ ldrh r0, [r4, 0x6]
+ adds r0, 0x1
+ movs r1, 0x1F
+ ands r0, r1
+ strh r0, [r4, 0x6]
+_080C9516:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80C9458
+
+ thumb_func_start sub_80C9520
+sub_80C9520: @ 80C9520
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0
+ movs r1, 0xE
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ bl sub_8064E2C
+ bl ScriptContext2_Disable
+ adds r0, r4, 0
+ bl DestroyTask
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80C9520
+
+ thumb_func_start ItemfinderCheckForHiddenItems
+ItemfinderCheckForHiddenItems: @ 80C9548
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x4
+ adds r5, r0, 0
+ lsls r1, 24
+ lsrs r6, r1, 24
+ mov r4, sp
+ adds r4, 0x2
+ mov r0, sp
+ adds r1, r4, 0
+ bl PlayerGetDestCoords
+ ldr r1, _080C9618
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0
+ strh r1, [r0, 0xC]
+ movs r3, 0
+ mov r9, r4
+ ldrb r0, [r5, 0x3]
+ cmp r3, r0
+ bge _080C95FC
+ subs r1, 0x5
+ mov r8, r1
+_080C9580:
+ lsls r3, 16
+ asrs r1, r3, 16
+ ldr r2, [r5, 0x10]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r4, r0, 2
+ adds r1, r4, r2
+ ldrb r0, [r1, 0x5]
+ adds r7, r3, 0
+ cmp r0, 0x7
+ bne _080C95EC
+ movs r2, 0x96
+ lsls r2, 2
+ adds r0, r2, 0
+ ldrh r1, [r1, 0xA]
+ adds r0, r1
+ lsls r0, 16
+ lsrs r0, 16
+ bl FlagGet
+ lsls r0, 24
+ cmp r0, 0
+ bne _080C95EC
+ ldr r1, [r5, 0x10]
+ adds r1, r4, r1
+ ldrh r2, [r1]
+ adds r2, 0x7
+ mov r0, sp
+ ldrh r0, [r0]
+ subs r2, r0
+ ldrh r0, [r1, 0x2]
+ adds r0, 0x7
+ mov r3, r9
+ ldrh r1, [r3]
+ subs r0, r1
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r2, 16
+ asrs r1, r2, 16
+ movs r3, 0xE0
+ lsls r3, 11
+ adds r2, r3
+ lsrs r2, 16
+ cmp r2, 0xE
+ bhi _080C95EC
+ lsls r0, 16
+ asrs r2, r0, 16
+ cmp r2, r8
+ blt _080C95EC
+ cmp r2, 0x5
+ bgt _080C95EC
+ adds r0, r6, 0
+ bl sub_80C9838
+_080C95EC:
+ movs r1, 0x80
+ lsls r1, 9
+ adds r0, r7, r1
+ lsrs r3, r0, 16
+ asrs r0, 16
+ ldrb r2, [r5, 0x3]
+ cmp r0, r2
+ blt _080C9580
+_080C95FC:
+ adds r0, r6, 0
+ bl sub_80C9720
+ ldr r0, _080C9618
+ lsls r1, r6, 2
+ adds r1, r6
+ lsls r1, 3
+ adds r1, r0
+ movs r3, 0xC
+ ldrsh r0, [r1, r3]
+ cmp r0, 0x1
+ beq _080C961C
+ movs r0, 0
+ b _080C961E
+ .align 2, 0
+_080C9618: .4byte gTasks
+_080C961C:
+ movs r0, 0x1
+_080C961E:
+ add sp, 0x4
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end ItemfinderCheckForHiddenItems
+
+ thumb_func_start sub_80C962C
+sub_80C962C: @ 80C962C
+ push {r4-r6,lr}
+ lsls r1, 16
+ lsrs r3, r1, 16
+ lsls r2, 16
+ lsrs r4, r2, 16
+ ldrb r2, [r0, 0x3]
+ ldr r5, [r0, 0x10]
+ movs r1, 0
+ cmp r1, r2
+ bge _080C9680
+ lsls r0, r3, 16
+ asrs r6, r0, 16
+ lsls r0, r4, 16
+ asrs r4, r0, 16
+ adds r3, r5, 0
+_080C964A:
+ ldrb r0, [r3, 0x5]
+ cmp r0, 0x7
+ bne _080C9678
+ ldrh r0, [r3]
+ cmp r6, r0
+ bne _080C9678
+ ldrh r0, [r3, 0x2]
+ cmp r4, r0
+ bne _080C9678
+ movs r1, 0x96
+ lsls r1, 2
+ adds r0, r1, 0
+ ldrh r3, [r3, 0xA]
+ adds r0, r3
+ lsls r0, 16
+ lsrs r0, 16
+ bl FlagGet
+ lsls r0, 24
+ cmp r0, 0
+ bne _080C9680
+ movs r0, 0x1
+ b _080C9682
+_080C9678:
+ adds r3, 0xC
+ adds r1, 0x1
+ cmp r1, r2
+ blt _080C964A
+_080C9680:
+ movs r0, 0
+_080C9682:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80C962C
+
+ thumb_func_start sub_80C9688
+sub_80C9688: @ 80C9688
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ adds r6, r2, 0
+ bl mapconnection_get_mapheader
+ adds r3, r0, 0
+ ldrb r0, [r4]
+ cmp r0, 0x2
+ beq _080C96B0
+ cmp r0, 0x2
+ bgt _080C96A6
+ cmp r0, 0x1
+ beq _080C96C4
+ b _080C9704
+_080C96A6:
+ cmp r0, 0x3
+ beq _080C96DC
+ cmp r0, 0x4
+ beq _080C96E6
+ b _080C9704
+_080C96B0:
+ ldr r0, [r4, 0x4]
+ adds r0, 0x7
+ subs r0, r5, r0
+ lsls r0, 16
+ lsrs r1, r0, 16
+ ldr r0, [r3]
+ ldr r0, [r0, 0x4]
+ subs r0, 0x7
+ adds r0, r6
+ b _080C96FA
+_080C96C4:
+ ldr r0, [r4, 0x4]
+ adds r0, 0x7
+ subs r0, r5, r0
+ lsls r0, 16
+ lsrs r1, r0, 16
+ ldr r0, _080C96D8
+ ldr r0, [r0]
+ ldr r0, [r0, 0x4]
+ b _080C96F6
+ .align 2, 0
+_080C96D8: .4byte gMapHeader
+_080C96DC:
+ ldr r0, [r3]
+ ldr r0, [r0]
+ subs r0, 0x7
+ adds r0, r5
+ b _080C96F0
+_080C96E6:
+ ldr r0, _080C9700
+ ldr r0, [r0]
+ ldr r0, [r0]
+ adds r0, 0x7
+ subs r0, r5, r0
+_080C96F0:
+ lsls r0, 16
+ lsrs r1, r0, 16
+ ldr r0, [r4, 0x4]
+_080C96F6:
+ adds r0, 0x7
+ subs r0, r6, r0
+_080C96FA:
+ lsls r0, 16
+ lsrs r2, r0, 16
+ b _080C9708
+ .align 2, 0
+_080C9700: .4byte gMapHeader
+_080C9704:
+ movs r0, 0
+ b _080C971A
+_080C9708:
+ ldr r0, [r3, 0x4]
+ lsls r1, 16
+ asrs r1, 16
+ lsls r2, 16
+ asrs r2, 16
+ bl sub_80C962C
+ lsls r0, 24
+ lsrs r0, 24
+_080C971A:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80C9688
+
+ thumb_func_start sub_80C9720
+sub_80C9720: @ 80C9720
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x14
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x4]
+ ldr r0, _080C9834
+ ldr r1, [r0]
+ ldr r0, [r1]
+ adds r0, 0x7
+ lsls r0, 16
+ lsrs r0, 16
+ str r0, [sp, 0x8]
+ ldr r0, [r1, 0x4]
+ adds r0, 0x7
+ lsls r0, 16
+ lsrs r0, 16
+ str r0, [sp, 0xC]
+ mov r4, sp
+ adds r4, 0x2
+ mov r0, sp
+ adds r1, r4, 0
+ bl PlayerGetDestCoords
+ mov r0, sp
+ ldrh r0, [r0]
+ subs r0, 0x7
+ lsls r0, 16
+ lsrs r3, r0, 16
+ asrs r0, 16
+ mov r1, sp
+ movs r2, 0
+ ldrsh r1, [r1, r2]
+ adds r1, 0x7
+ cmp r0, r1
+ bgt _080C9824
+_080C976E:
+ mov r5, sp
+ ldrh r0, [r5, 0x2]
+ subs r0, 0x5
+ lsls r0, 16
+ lsrs r4, r0, 16
+ lsls r2, r4, 16
+ asrs r1, r2, 16
+ movs r6, 0x2
+ ldrsh r0, [r5, r6]
+ adds r0, 0x5
+ lsls r3, 16
+ mov r8, r3
+ cmp r1, r0
+ bgt _080C980E
+ movs r0, 0x7
+ str r0, [sp, 0x10]
+ mov r1, r8
+ asrs r1, 16
+ mov r9, r1
+ mov r10, r0
+_080C9796:
+ ldr r3, [sp, 0x10]
+ cmp r3, r9
+ bgt _080C97B8
+ ldr r5, [sp, 0x8]
+ lsls r0, r5, 16
+ asrs r0, 16
+ cmp r9, r0
+ bge _080C97B8
+ asrs r1, r2, 16
+ cmp r10, r1
+ bgt _080C97B8
+ ldr r6, [sp, 0xC]
+ lsls r0, r6, 16
+ asrs r0, 16
+ lsls r7, r4, 16
+ cmp r1, r0
+ blt _080C97F6
+_080C97B8:
+ mov r0, r8
+ asrs r5, r0, 16
+ lsls r4, 16
+ asrs r6, r4, 16
+ adds r0, r5, 0
+ adds r1, r6, 0
+ bl sub_8056BA0
+ adds r7, r4, 0
+ cmp r0, 0
+ beq _080C97F6
+ adds r1, r5, 0
+ adds r2, r6, 0
+ bl sub_80C9688
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080C97F6
+ mov r0, sp
+ ldrh r1, [r0]
+ subs r1, r5, r1
+ lsls r1, 16
+ asrs r1, 16
+ ldrh r2, [r0, 0x2]
+ subs r2, r6, r2
+ lsls r2, 16
+ asrs r2, 16
+ ldr r0, [sp, 0x4]
+ bl sub_80C9838
+_080C97F6:
+ movs r1, 0x80
+ lsls r1, 9
+ adds r0, r7, r1
+ lsrs r4, r0, 16
+ lsls r2, r4, 16
+ asrs r1, r2, 16
+ mov r3, sp
+ movs r5, 0x2
+ ldrsh r0, [r3, r5]
+ adds r0, 0x5
+ cmp r1, r0
+ ble _080C9796
+_080C980E:
+ movs r1, 0x80
+ lsls r1, 9
+ add r1, r8
+ lsrs r3, r1, 16
+ asrs r1, 16
+ mov r0, sp
+ movs r6, 0
+ ldrsh r0, [r0, r6]
+ adds r0, 0x7
+ cmp r1, r0
+ ble _080C976E
+_080C9824:
+ add sp, 0x14
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C9834: .4byte gMapHeader
+ thumb_func_end sub_80C9720
+
+ thumb_func_start sub_80C9838
+sub_80C9838: @ 80C9838
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 16
+ lsrs r7, r1, 16
+ lsls r2, 16
+ lsrs r2, 16
+ mov r12, r2
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _080C986C
+ adds r3, r1, r0
+ movs r1, 0x4
+ ldrsh r0, [r3, r1]
+ cmp r0, 0
+ bne _080C9870
+ strh r7, [r3]
+ mov r0, r12
+ strh r0, [r3, 0x2]
+ movs r0, 0x1
+ strh r0, [r3, 0x4]
+ b _080C98FA
+ .align 2, 0
+_080C986C: .4byte gUnknown_03004B28
+_080C9870:
+ movs r1, 0
+ ldrsh r0, [r3, r1]
+ cmp r0, 0
+ bge _080C9880
+ negs r0, r0
+ lsls r0, 16
+ lsrs r4, r0, 16
+ b _080C9882
+_080C9880:
+ ldrh r4, [r3]
+_080C9882:
+ movs r1, 0x2
+ ldrsh r0, [r3, r1]
+ ldrh r1, [r3, 0x2]
+ mov r9, r1
+ cmp r0, 0
+ bge _080C9896
+ negs r0, r0
+ lsls r0, 16
+ lsrs r2, r0, 16
+ b _080C9898
+_080C9896:
+ ldrh r2, [r3, 0x2]
+_080C9898:
+ lsls r1, r7, 16
+ asrs r0, r1, 16
+ cmp r0, 0
+ bge _080C98A8
+ negs r0, r0
+ lsls r0, 16
+ lsrs r6, r0, 16
+ b _080C98AA
+_080C98A8:
+ lsrs r6, r1, 16
+_080C98AA:
+ mov r1, r12
+ lsls r0, r1, 16
+ asrs r1, r0, 16
+ mov r8, r0
+ cmp r1, 0
+ bge _080C98BC
+ negs r0, r1
+ lsls r0, 16
+ b _080C98BE
+_080C98BC:
+ mov r0, r8
+_080C98BE:
+ lsrs r5, r0, 16
+ lsls r0, r4, 16
+ asrs r0, 16
+ lsls r1, r2, 16
+ asrs r2, r1, 16
+ adds r4, r0, r2
+ lsls r0, r6, 16
+ asrs r0, 16
+ lsls r1, r5, 16
+ asrs r1, 16
+ adds r0, r1
+ cmp r4, r0
+ ble _080C98E0
+ strh r7, [r3]
+ mov r1, r12
+ strh r1, [r3, 0x2]
+ b _080C98FA
+_080C98E0:
+ cmp r4, r0
+ bne _080C98FA
+ cmp r2, r1
+ bgt _080C98F4
+ cmp r2, r1
+ bne _080C98FA
+ mov r1, r9
+ lsls r0, r1, 16
+ cmp r0, r8
+ bge _080C98FA
+_080C98F4:
+ strh r7, [r3]
+ mov r0, r12
+ strh r0, [r3, 0x2]
+_080C98FA:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80C9838
+
+ thumb_func_start sub_80C9908
+sub_80C9908: @ 80C9908
+ push {r4,r5,lr}
+ lsls r0, 16
+ lsls r1, 16
+ lsrs r1, 16
+ lsrs r2, r0, 16
+ cmp r0, 0
+ bne _080C991A
+ cmp r1, 0
+ beq _080C9974
+_080C991A:
+ lsls r0, r2, 16
+ asrs r2, r0, 16
+ adds r5, r0, 0
+ cmp r2, 0
+ bge _080C992C
+ negs r0, r2
+ lsls r0, 16
+ lsrs r4, r0, 16
+ b _080C992E
+_080C992C:
+ lsrs r4, r5, 16
+_080C992E:
+ lsls r0, r1, 16
+ asrs r2, r0, 16
+ adds r1, r0, 0
+ cmp r2, 0
+ bge _080C9940
+ negs r0, r2
+ lsls r0, 16
+ lsrs r3, r0, 16
+ b _080C9942
+_080C9940:
+ lsrs r3, r1, 16
+_080C9942:
+ lsls r0, r4, 16
+ asrs r2, r0, 16
+ lsls r0, r3, 16
+ asrs r0, 16
+ cmp r2, r0
+ ble _080C995A
+ cmp r5, 0
+ bge _080C9956
+ movs r0, 0x4
+ b _080C9976
+_080C9956:
+ movs r0, 0x2
+ b _080C9976
+_080C995A:
+ cmp r2, r0
+ bge _080C9964
+ cmp r1, 0
+ blt _080C996C
+ b _080C9970
+_080C9964:
+ cmp r2, r0
+ bne _080C9974
+ cmp r1, 0
+ bge _080C9970
+_080C996C:
+ movs r0, 0x1
+ b _080C9976
+_080C9970:
+ movs r0, 0x3
+ b _080C9976
+_080C9974:
+ movs r0, 0
+_080C9976:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80C9908
+
+ thumb_func_start sub_80C997C
+sub_80C997C: @ 80C997C
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ movs r0, 0xFF
+ movs r1, 0
+ movs r2, 0
+ bl GetFieldObjectIdByLocalIdAndMap
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r4, _080C99E8
+ adds r0, r4
+ bl FieldObjectClearAnimIfSpecialAnimFinished
+ movs r0, 0xFF
+ movs r1, 0
+ movs r2, 0
+ bl GetFieldObjectIdByLocalIdAndMap
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ bl FieldObjectClearAnim
+ movs r0, 0xFF
+ movs r1, 0
+ movs r2, 0
+ bl GetFieldObjectIdByLocalIdAndMap
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ bl npc_sync_anim_pause_bits
+ adds r0, r5, 0
+ bl PlayerTurnInPlace
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C99E8: .4byte gMapObjects
+ thumb_func_end sub_80C997C
+
+ thumb_func_start sub_80C99EC
+sub_80C99EC: @ 80C99EC
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r0, 0xFF
+ movs r1, 0
+ movs r2, 0
+ bl GetFieldObjectIdByLocalIdAndMap
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080C9A2C
+ adds r0, r1
+ bl FieldObjectCheckIfSpecialAnimFinishedOrInactive
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080C9A24
+ ldr r1, _080C9A30
+ ldr r2, _080C9A34
+ adds r0, r4, 0
+ movs r3, 0
+ bl DisplayItemMessageOnField
+_080C9A24:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C9A2C: .4byte gMapObjects
+_080C9A30: .4byte gOtherText_ItemfinderResponding
+_080C9A34: .4byte sub_80C9520
+ thumb_func_end sub_80C99EC
+
+ thumb_func_start sub_80C9A38
+sub_80C9A38: @ 80C9A38
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r5, r0, 0
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, _080C9AB4
+ adds r4, r0, r1
+ movs r0, 0xFF
+ movs r1, 0
+ movs r2, 0
+ bl GetFieldObjectIdByLocalIdAndMap
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080C9AB8
+ adds r0, r1
+ bl FieldObjectCheckIfSpecialAnimFinishedOrInactive
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _080C9A78
+ movs r1, 0x4
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080C9AAE
+_080C9A78:
+ ldr r1, _080C9ABC
+ movs r2, 0xA
+ ldrsh r0, [r4, r2]
+ adds r0, r1
+ ldrb r0, [r0]
+ bl sub_80C997C
+ movs r0, 0x1
+ strh r0, [r4, 0x4]
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ movs r1, 0x3
+ ands r0, r1
+ strh r0, [r4, 0xA]
+ ldrh r0, [r4, 0x6]
+ adds r0, 0x1
+ strh r0, [r4, 0x6]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ bne _080C9AAE
+ ldr r1, _080C9AC0
+ ldr r2, _080C9AC4
+ adds r0, r5, 0
+ movs r3, 0
+ bl DisplayItemMessageOnField
+_080C9AAE:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C9AB4: .4byte gUnknown_03004B28
+_080C9AB8: .4byte gMapObjects
+_080C9ABC: .4byte gUnknown_083D61F0
+_080C9AC0: .4byte gOtherText_ItemfinderFoundItem
+_080C9AC4: .4byte sub_80C9520
+ thumb_func_end sub_80C9A38
+
+ thumb_func_start ItemUseOutOfBattle_PokeblockCase
+ItemUseOutOfBattle_PokeblockCase: @ 80C9AC8
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r5, r4, 0
+ bl sub_80F9344
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080C9AF4
+ ldr r0, _080C9AF0
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldrb r1, [r1, 0xC]
+ adds r0, r4, 0
+ bl DisplayDadsAdviceCannotUseItemMessage
+ b _080C9B2A
+ .align 2, 0
+_080C9AF0: .4byte gTasks
+_080C9AF4:
+ ldr r0, _080C9B14
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ movs r2, 0xC
+ ldrsh r0, [r1, r2]
+ cmp r0, 0x1
+ beq _080C9B18
+ movs r0, 0
+ bl sub_810BA7C
+ adds r0, r4, 0
+ bl unknown_ItemMenu_Confirm
+ b _080C9B2A
+ .align 2, 0
+_080C9B14: .4byte gTasks
+_080C9B18:
+ ldr r1, _080C9B30
+ ldr r0, _080C9B34
+ str r0, [r1]
+ movs r0, 0x1
+ bl sub_810BA7C
+ adds r0, r5, 0
+ bl sub_80C9038
+_080C9B2A:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C9B30: .4byte gUnknown_0300485C
+_080C9B34: .4byte sub_8080E28
+ thumb_func_end ItemUseOutOfBattle_PokeblockCase
+
+ thumb_func_start ItemUseOutOfBattle_CoinCase
+ItemUseOutOfBattle_CoinCase: @ 80C9B38
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r4, _080C9B8C
+ bl GetCoins
+ adds r1, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ adds r0, r4, 0
+ movs r2, 0
+ movs r3, 0x4
+ bl ConvertIntToDecimalStringN
+ ldr r4, _080C9B90
+ ldr r1, _080C9B94
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ ldr r1, _080C9B98
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0xC
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080C9BA0
+ movs r0, 0
+ movs r1, 0xD
+ movs r2, 0xD
+ movs r3, 0x14
+ bl MenuZeroFillWindowRect
+ ldr r2, _080C9B9C
+ adds r0, r5, 0
+ adds r1, r4, 0
+ movs r3, 0x1
+ bl DisplayItemMessageOnField
+ b _080C9BAC
+ .align 2, 0
+_080C9B8C: .4byte gStringVar1
+_080C9B90: .4byte gStringVar4
+_080C9B94: .4byte gOtherText_Coins3
+_080C9B98: .4byte gTasks
+_080C9B9C: .4byte sub_80A5C48
+_080C9BA0:
+ ldr r2, _080C9BB4
+ adds r0, r5, 0
+ adds r1, r4, 0
+ movs r3, 0
+ bl DisplayItemMessageOnField
+_080C9BAC:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C9BB4: .4byte sub_80A5C9C
+ thumb_func_end ItemUseOutOfBattle_CoinCase
+
+ thumb_func_start sub_80C9BB8
+sub_80C9BB8: @ 80C9BB8
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r0, _080C9BD4
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080C9BD0
+ adds r0, r2, 0
+ bl sub_80A5C48
+_080C9BD0:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C9BD4: .4byte gMain
+ thumb_func_end sub_80C9BB8
+
+ thumb_func_start sub_80C9BD8
+sub_80C9BD8: @ 80C9BD8
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r0, _080C9BF4
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080C9BF0
+ adds r0, r2, 0
+ bl sub_80A5C9C
+_080C9BF0:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C9BF4: .4byte gMain
+ thumb_func_end sub_80C9BD8
+
+ thumb_func_start unref_sub_80C9BF8
+unref_sub_80C9BF8: @ 80C9BF8
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _080C9C3C
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0xC
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080C9C4C
+ movs r0, 0
+ movs r1, 0xD
+ movs r2, 0xD
+ movs r3, 0x14
+ bl MenuZeroFillWindowRect
+ ldr r4, _080C9C40
+ ldr r0, _080C9C44
+ ldrh r0, [r0]
+ bl itemid_get_x28
+ lsls r0, 24
+ lsrs r0, 22
+ adds r0, r4
+ ldr r1, [r0]
+ ldr r2, _080C9C48
+ adds r0, r5, 0
+ movs r3, 0x1
+ bl DisplayItemMessageOnField
+ b _080C9C68
+ .align 2, 0
+_080C9C3C: .4byte gTasks
+_080C9C40: .4byte gUnknown_083D61DC
+_080C9C44: .4byte word_203855E
+_080C9C48: .4byte sub_80C9BB8
+_080C9C4C:
+ ldr r4, _080C9C70
+ ldr r0, _080C9C74
+ ldrh r0, [r0]
+ bl itemid_get_x28
+ lsls r0, 24
+ lsrs r0, 22
+ adds r0, r4
+ ldr r1, [r0]
+ ldr r2, _080C9C78
+ adds r0, r5, 0
+ movs r3, 0
+ bl DisplayItemMessageOnField
+_080C9C68:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C9C70: .4byte gUnknown_083D61DC
+_080C9C74: .4byte word_203855E
+_080C9C78: .4byte sub_80C9BD8
+ thumb_func_end unref_sub_80C9BF8
+
+ thumb_func_start sub_80C9C7C
+sub_80C9C7C: @ 80C9C7C
+ push {r4,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl IsPlayerFacingPlantedBerryTree
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080C9CE4
+ ldr r1, _080C9CC8
+ ldr r0, _080C9CCC
+ str r0, [r1]
+ ldr r1, _080C9CD0
+ ldr r0, _080C9CD4
+ str r0, [r1]
+ ldr r1, _080C9CD8
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r2, _080C9CDC
+ lsrs r1, r2, 16
+ movs r3, 0
+ strh r1, [r0, 0x18]
+ strh r2, [r0, 0x1A]
+ ldr r1, _080C9CE0
+ str r1, [r0]
+ movs r0, 0x1
+ negs r0, r0
+ str r3, [sp]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ b _080C9CF4
+ .align 2, 0
+_080C9CC8: .4byte gUnknown_03005D00
+_080C9CCC: .4byte sub_80C9D00
+_080C9CD0: .4byte gUnknown_0300485C
+_080C9CD4: .4byte sub_80A5CC4
+_080C9CD8: .4byte gTasks
+_080C9CDC: .4byte c2_exit_to_overworld_2_switch
+_080C9CE0: .4byte sub_80A5B00
+_080C9CE4:
+ ldr r0, _080C9CFC
+ ldrh r0, [r0]
+ bl itemid_get_overworld_function
+ adds r1, r0, 0
+ adds r0, r4, 0
+ bl _call_via_r1
+_080C9CF4:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C9CFC: .4byte word_203855E
+ thumb_func_end sub_80C9C7C
+
+ thumb_func_start sub_80C9D00
+sub_80C9D00: @ 80C9D00
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _080C9D28
+ ldrh r0, [r0]
+ movs r1, 0x1
+ bl sub_80A9538
+ bl ScriptContext2_Enable
+ ldr r0, _080C9D2C
+ bl ScriptContext1_SetupScript
+ adds r0, r4, 0
+ bl DestroyTask
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C9D28: .4byte word_203855E
+_080C9D2C: .4byte gUnknown_081A1654
+ thumb_func_end sub_80C9D00
+
+ thumb_func_start ItemUseOutOfBattle_WailmerPail
+ItemUseOutOfBattle_WailmerPail: @ 80C9D30
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl WaterBerryTree
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080C9D58
+ ldr r1, _080C9D50
+ ldr r0, _080C9D54
+ str r0, [r1]
+ adds r0, r4, 0
+ bl SetUpItemUseOnFieldCallback
+ b _080C9D6A
+ .align 2, 0
+_080C9D50: .4byte gUnknown_03005D00
+_080C9D54: .4byte sub_80C9D74
+_080C9D58:
+ ldr r0, _080C9D70
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldrb r1, [r1, 0xC]
+ adds r0, r4, 0
+ bl DisplayDadsAdviceCannotUseItemMessage
+_080C9D6A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C9D70: .4byte gTasks
+ thumb_func_end ItemUseOutOfBattle_WailmerPail
+
+ thumb_func_start sub_80C9D74
+sub_80C9D74: @ 80C9D74
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl ScriptContext2_Enable
+ ldr r0, _080C9D94
+ bl ScriptContext1_SetupScript
+ adds r0, r4, 0
+ bl DestroyTask
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C9D94: .4byte gUnknown_081A168F
+ thumb_func_end sub_80C9D74
+
+ thumb_func_start sub_80C9D98
+sub_80C9D98: @ 80C9D98
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080C9DAC
+ movs r1, 0
+ strb r1, [r2]
+ bl unknown_ItemMenu_Confirm
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C9DAC: .4byte gUnknown_02038561
+ thumb_func_end sub_80C9D98
+
+ thumb_func_start ItemUseOutOfBattle_Medicine
+ItemUseOutOfBattle_Medicine: @ 80C9DB0
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080C9DC4
+ ldr r1, _080C9DC8
+ str r1, [r2]
+ bl sub_80C9D98
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C9DC4: .4byte gUnknown_03004AE4
+_080C9DC8: .4byte sub_806FE2C
+ thumb_func_end ItemUseOutOfBattle_Medicine
+
+ thumb_func_start ItemUseOutOfBattle_SacredAsh
+ItemUseOutOfBattle_SacredAsh: @ 80C9DCC
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r1, _080C9DDC
+ movs r0, 0
+ strb r0, [r1]
+ movs r5, 0
+ b _080C9DE6
+ .align 2, 0
+_080C9DDC: .4byte gUnknown_03005CE0
+_080C9DE0:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+_080C9DE6:
+ cmp r5, 0x5
+ bhi _080C9E10
+ movs r0, 0x64
+ adds r1, r5, 0
+ muls r1, r0
+ ldr r0, _080C9E28
+ adds r4, r1, r0
+ adds r0, r4, 0
+ movs r1, 0xB
+ bl GetMonData
+ cmp r0, 0
+ beq _080C9DE0
+ adds r0, r4, 0
+ movs r1, 0x39
+ bl GetMonData
+ cmp r0, 0
+ bne _080C9DE0
+ ldr r0, _080C9E2C
+ strb r5, [r0]
+_080C9E10:
+ ldr r1, _080C9E30
+ ldr r0, _080C9E34
+ str r0, [r1]
+ ldr r1, _080C9E38
+ movs r0, 0x4
+ strb r0, [r1]
+ adds r0, r6, 0
+ bl unknown_ItemMenu_Confirm
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C9E28: .4byte gPlayerParty
+_080C9E2C: .4byte gUnknown_03005CE0
+_080C9E30: .4byte gUnknown_03004AE4
+_080C9E34: .4byte sub_8070048
+_080C9E38: .4byte gUnknown_02038561
+ thumb_func_end ItemUseOutOfBattle_SacredAsh
+
+ thumb_func_start ItemUseOutOfBattle_PPRecovery
+ItemUseOutOfBattle_PPRecovery: @ 80C9E3C
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080C9E50
+ ldr r1, _080C9E54
+ str r1, [r2]
+ bl sub_80C9D98
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C9E50: .4byte gUnknown_03004AE4
+_080C9E54: .4byte dp05_ether
+ thumb_func_end ItemUseOutOfBattle_PPRecovery
+
+ thumb_func_start ItemUseOutOfBattle_PPUp
+ItemUseOutOfBattle_PPUp: @ 80C9E58
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080C9E6C
+ ldr r1, _080C9E70
+ str r1, [r2]
+ bl sub_80C9D98
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C9E6C: .4byte gUnknown_03004AE4
+_080C9E70: .4byte dp05_pp_up
+ thumb_func_end ItemUseOutOfBattle_PPUp
+
+ thumb_func_start ItemUseOutOfBattle_RareCandy
+ItemUseOutOfBattle_RareCandy: @ 80C9E74
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080C9E88
+ ldr r1, _080C9E8C
+ str r1, [r2]
+ bl sub_80C9D98
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C9E88: .4byte gUnknown_03004AE4
+_080C9E8C: .4byte sub_8070680
+ thumb_func_end ItemUseOutOfBattle_RareCandy
+
+ thumb_func_start ItemUseOutOfBattle_TMHM
+ItemUseOutOfBattle_TMHM: @ 80C9E90
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r0, 0
+ movs r1, 0xD
+ movs r2, 0xD
+ movs r3, 0x14
+ bl MenuZeroFillWindowRect
+ ldr r0, _080C9EBC
+ ldrh r1, [r0]
+ movs r0, 0xA9
+ lsls r0, 1
+ cmp r1, r0
+ bls _080C9EC8
+ ldr r1, _080C9EC0
+ ldr r2, _080C9EC4
+ adds r0, r4, 0
+ movs r3, 0x1
+ bl DisplayItemMessageOnField
+ b _080C9ED4
+ .align 2, 0
+_080C9EBC: .4byte word_203855E
+_080C9EC0: .4byte gOtherText_BootedHM
+_080C9EC4: .4byte sub_80C9EE4
+_080C9EC8:
+ ldr r1, _080C9EDC
+ ldr r2, _080C9EE0
+ adds r0, r4, 0
+ movs r3, 0x1
+ bl DisplayItemMessageOnField
+_080C9ED4:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C9EDC: .4byte gOtherText_BootedTM
+_080C9EE0: .4byte sub_80C9EE4
+ thumb_func_end ItemUseOutOfBattle_TMHM
+
+ thumb_func_start sub_80C9EE4
+sub_80C9EE4: @ 80C9EE4
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x2
+ bl PlaySE
+ ldr r1, _080C9F08
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080C9F0C
+ str r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C9F08: .4byte gTasks
+_080C9F0C: .4byte sub_80C9F10
+ thumb_func_end sub_80C9EE4
+
+ thumb_func_start sub_80C9F10
+sub_80C9F10: @ 80C9F10
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, _080C9F64
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _080C9F2A
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080C9F5C
+_080C9F2A:
+ ldr r4, _080C9F68
+ ldr r0, _080C9F6C
+ ldrh r0, [r0]
+ bl ItemIdToBattleMoveId
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0xD
+ muls r1, r0
+ ldr r0, _080C9F70
+ adds r1, r0
+ adds r0, r4, 0
+ bl StringCopy
+ ldr r4, _080C9F74
+ ldr r1, _080C9F78
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ ldr r2, _080C9F7C
+ adds r0, r5, 0
+ adds r1, r4, 0
+ movs r3, 0x1
+ bl DisplayItemMessageOnField
+_080C9F5C:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C9F64: .4byte gMain
+_080C9F68: .4byte gStringVar1
+_080C9F6C: .4byte word_203855E
+_080C9F70: .4byte gMoveNames
+_080C9F74: .4byte gStringVar4
+_080C9F78: .4byte gOtherText_ContainsMove
+_080C9F7C: .4byte sub_80C9F80
+ thumb_func_end sub_80C9F10
+
+ thumb_func_start sub_80C9F80
+sub_80C9F80: @ 80C9F80
+ push {r4,lr}
+ sub sp, 0x8
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x7
+ movs r1, 0x7
+ movs r2, 0x1
+ bl DisplayYesNoMenu
+ ldr r0, _080C9FB8
+ movs r1, 0x4
+ str r1, [sp]
+ movs r1, 0x1
+ str r1, [sp, 0x4]
+ movs r1, 0x8
+ movs r2, 0x8
+ movs r3, 0x5
+ bl sub_80A3FA0
+ ldr r1, _080C9FBC
+ adds r0, r4, 0
+ bl sub_80F914C
+ add sp, 0x8
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C9FB8: .4byte gBG1TilemapBuffer
+_080C9FBC: .4byte gUnknown_083D61F4
+ thumb_func_end sub_80C9F80
+
+ thumb_func_start sub_80C9FC0
+sub_80C9FC0: @ 80C9FC0
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080C9FD4
+ ldr r1, _080C9FD8
+ str r1, [r2]
+ bl sub_80C9D98
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C9FD4: .4byte gUnknown_03004AE4
+_080C9FD8: .4byte sub_806F06C
+ thumb_func_end sub_80C9FC0
+
+ thumb_func_start sub_80C9FDC
+sub_80C9FDC: @ 80C9FDC
+ push {r4,lr}
+ ldr r4, _080CA004
+ ldrh r0, [r4]
+ movs r1, 0x1
+ bl sub_80A9538
+ bl sub_80A3E0C
+ ldrh r0, [r4]
+ ldr r1, _080CA008
+ bl itemid_copy_name
+ ldr r0, _080CA00C
+ ldr r1, _080CA010
+ bl StringExpandPlaceholders
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CA004: .4byte word_203855E
+_080CA008: .4byte gStringVar2
+_080CA00C: .4byte gStringVar4
+_080CA010: .4byte gOtherText_UsedItem
+ thumb_func_end sub_80C9FDC
+
+ thumb_func_start ItemUseOutOfBattle_Repel
+ItemUseOutOfBattle_Repel: @ 80CA014
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r5, _080CA050
+ adds r0, r5, 0
+ bl VarGet
+ lsls r0, 16
+ cmp r0, 0
+ bne _080CA060
+ ldr r0, _080CA054
+ ldrh r0, [r0]
+ bl itemid_get_quality
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r5, 0
+ bl VarSet
+ bl sub_80C9FDC
+ ldr r1, _080CA058
+ ldr r2, _080CA05C
+ adds r0, r4, 0
+ movs r3, 0x1
+ bl DisplayItemMessageOnField
+ b _080CA06C
+ .align 2, 0
+_080CA050: .4byte 0x00004021
+_080CA054: .4byte word_203855E
+_080CA058: .4byte gStringVar4
+_080CA05C: .4byte sub_80A5C48
+_080CA060:
+ ldr r1, _080CA074
+ ldr r2, _080CA078
+ adds r0, r4, 0
+ movs r3, 0x1
+ bl DisplayItemMessageOnField
+_080CA06C:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CA074: .4byte gOtherText_RepelLingers
+_080CA078: .4byte sub_80A5C48
+ thumb_func_end ItemUseOutOfBattle_Repel
+
+ thumb_func_start sub_80CA07C
+sub_80CA07C: @ 80CA07C
+ push {lr}
+ bl sub_80A3E0C
+ ldr r0, _080CA090
+ ldrh r0, [r0]
+ ldr r1, _080CA094
+ bl itemid_copy_name
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CA090: .4byte word_203855E
+_080CA094: .4byte gStringVar2
+ thumb_func_end sub_80CA07C
+
+ thumb_func_start sub_80CA098
+sub_80CA098: @ 80CA098
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _080CA0D0
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x26]
+ adds r0, 0x1
+ strh r0, [r1, 0x26]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x7
+ ble _080CA0C8
+ movs r0, 0x75
+ bl PlaySE
+ ldr r1, _080CA0D4
+ ldr r2, _080CA0D8
+ adds r0, r4, 0
+ movs r3, 0x1
+ bl DisplayItemMessageOnField
+_080CA0C8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CA0D0: .4byte gTasks
+_080CA0D4: .4byte gStringVar4
+_080CA0D8: .4byte sub_80A5C48
+ thumb_func_end sub_80CA098
+
+ thumb_func_start ItemUseOutOfBattle_BlackWhiteFlute
+ItemUseOutOfBattle_BlackWhiteFlute: @ 80CA0DC
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r5, r4, 0
+ ldr r0, _080CA10C
+ ldrh r0, [r0]
+ cmp r0, 0x2B
+ bne _080CA124
+ ldr r0, _080CA110
+ bl FlagSet
+ ldr r0, _080CA114
+ bl FlagReset
+ bl sub_80CA07C
+ ldr r0, _080CA118
+ ldr r1, _080CA11C
+ bl StringExpandPlaceholders
+ ldr r1, _080CA120
+ lsls r0, r4, 2
+ adds r0, r4
+ b _080CA146
+ .align 2, 0
+_080CA10C: .4byte word_203855E
+_080CA110: .4byte 0x0000084d
+_080CA114: .4byte 0x0000084e
+_080CA118: .4byte gStringVar4
+_080CA11C: .4byte gOtherText_UsedFlute
+_080CA120: .4byte gTasks
+_080CA124:
+ cmp r0, 0x2A
+ bne _080CA152
+ ldr r0, _080CA158
+ bl FlagSet
+ ldr r0, _080CA15C
+ bl FlagReset
+ bl sub_80CA07C
+ ldr r0, _080CA160
+ ldr r1, _080CA164
+ bl StringExpandPlaceholders
+ ldr r1, _080CA168
+ lsls r0, r5, 2
+ adds r0, r5
+_080CA146:
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080CA16C
+ str r1, [r0]
+ movs r1, 0
+ strh r1, [r0, 0x26]
+_080CA152:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CA158: .4byte 0x0000084e
+_080CA15C: .4byte 0x0000084d
+_080CA160: .4byte gStringVar4
+_080CA164: .4byte gOtherText_UsedRepel
+_080CA168: .4byte gTasks
+_080CA16C: .4byte sub_80CA098
+ thumb_func_end ItemUseOutOfBattle_BlackWhiteFlute
+
+ thumb_func_start task08_080A1C44
+task08_080A1C44: @ 80CA170
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl player_avatar_init_params_reset
+ bl sub_80878A8
+ adds r0, r4, 0
+ bl DestroyTask
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end task08_080A1C44
+
+ thumb_func_start sub_80CA18C
+sub_80CA18C: @ 80CA18C
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl sub_8053014
+ bl sub_80C9FDC
+ ldr r1, _080CA1BC
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0
+ strh r1, [r0, 0x8]
+ ldr r1, _080CA1C0
+ ldr r2, _080CA1C4
+ adds r0, r4, 0
+ movs r3, 0
+ bl DisplayItemMessageOnField
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CA1BC: .4byte gTasks
+_080CA1C0: .4byte gStringVar4
+_080CA1C4: .4byte task08_080A1C44
+ thumb_func_end sub_80CA18C
+
+ thumb_func_start sub_80CA1C8
+sub_80CA1C8: @ 80CA1C8
+ push {lr}
+ ldr r0, _080CA1D8
+ ldrb r0, [r0, 0x17]
+ cmp r0, 0x4
+ beq _080CA1DC
+ movs r0, 0
+ b _080CA1DE
+ .align 2, 0
+_080CA1D8: .4byte gMapHeader
+_080CA1DC:
+ movs r0, 0x1
+_080CA1DE:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80CA1C8
+
+ thumb_func_start ItemUseOutOfBattle_EscapeRope
+ItemUseOutOfBattle_EscapeRope: @ 80CA1E4
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_80CA1C8
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080CA20C
+ ldr r1, _080CA204
+ ldr r0, _080CA208
+ str r0, [r1]
+ adds r0, r4, 0
+ bl SetUpItemUseOnFieldCallback
+ b _080CA21E
+ .align 2, 0
+_080CA204: .4byte gUnknown_03005D00
+_080CA208: .4byte sub_80CA18C
+_080CA20C:
+ ldr r0, _080CA224
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldrb r1, [r1, 0xC]
+ adds r0, r4, 0
+ bl DisplayDadsAdviceCannotUseItemMessage
+_080CA21E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CA224: .4byte gTasks
+ thumb_func_end ItemUseOutOfBattle_EscapeRope
+
+ thumb_func_start ItemUseOutOfBattle_EvolutionStone
+ItemUseOutOfBattle_EvolutionStone: @ 80CA228
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080CA23C
+ ldr r1, _080CA240
+ str r1, [r2]
+ bl sub_80C9D98
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CA23C: .4byte gUnknown_03004AE4
+_080CA240: .4byte sub_8070DBC
+ thumb_func_end ItemUseOutOfBattle_EvolutionStone
+
+ thumb_func_start ItemUseInBattle_PokeBall
+ItemUseInBattle_PokeBall: @ 80CA244
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl PlayerPartyAndPokemonStorageFull
+ lsls r0, 24
+ cmp r0, 0
+ bne _080CA26C
+ ldr r0, _080CA268
+ ldrh r0, [r0]
+ movs r1, 0x1
+ bl sub_80A9538
+ adds r0, r4, 0
+ bl sub_80A7094
+ b _080CA284
+ .align 2, 0
+_080CA268: .4byte word_203855E
+_080CA26C:
+ movs r0, 0
+ movs r1, 0xD
+ movs r2, 0xD
+ movs r3, 0x14
+ bl MenuZeroFillWindowRect
+ ldr r1, _080CA28C
+ ldr r2, _080CA290
+ adds r0, r4, 0
+ movs r3, 0x1
+ bl DisplayItemMessageOnField
+_080CA284:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CA28C: .4byte gOtherText_BoxIsFull
+_080CA290: .4byte sub_80A5C48
+ thumb_func_end ItemUseInBattle_PokeBall
+
+ thumb_func_start sub_80CA294
+sub_80CA294: @ 80CA294
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r0, _080CA2B8
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _080CA2AE
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080CA2B4
+_080CA2AE:
+ adds r0, r2, 0
+ bl sub_80A7094
+_080CA2B4:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CA2B8: .4byte gMain
+ thumb_func_end sub_80CA294
+
+ thumb_func_start sub_80CA2BC
+sub_80CA2BC: @ 80CA2BC
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, _080CA304
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x26]
+ adds r0, 0x1
+ strh r0, [r1, 0x26]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x7
+ ble _080CA2FC
+ movs r0, 0x1
+ bl PlaySE
+ ldr r4, _080CA308
+ ldrh r0, [r4]
+ movs r1, 0x1
+ bl sub_80A9538
+ ldrh r0, [r4]
+ bl sub_803F378
+ adds r1, r0, 0
+ ldr r2, _080CA30C
+ adds r0, r5, 0
+ movs r3, 0x1
+ bl DisplayItemMessageOnField
+_080CA2FC:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CA304: .4byte gTasks
+_080CA308: .4byte word_203855E
+_080CA30C: .4byte sub_80CA294
+ thumb_func_end sub_80CA2BC
+
+ thumb_func_start ItemUseInBattle_StatIncrease
+ItemUseInBattle_StatIncrease: @ 80CA310
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _080CA35C
+ ldr r0, _080CA360
+ ldrb r0, [r0]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r4, [r0]
+ movs r0, 0
+ movs r1, 0xD
+ movs r2, 0xD
+ movs r3, 0x14
+ bl MenuZeroFillWindowRect
+ movs r0, 0x64
+ muls r0, r4
+ ldr r1, _080CA364
+ adds r0, r1
+ ldr r1, _080CA368
+ ldrh r1, [r1]
+ lsls r4, 24
+ lsrs r4, 24
+ adds r2, r4, 0
+ movs r3, 0
+ bl ExecuteTableBasedItemEffect_
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0
+ beq _080CA374
+ ldr r1, _080CA36C
+ ldr r2, _080CA370
+ adds r0, r5, 0
+ movs r3, 0x1
+ bl DisplayItemMessageOnField
+ b _080CA384
+ .align 2, 0
+_080CA35C: .4byte gUnknown_02024A6A
+_080CA360: .4byte gUnknown_02024E6C
+_080CA364: .4byte gPlayerParty
+_080CA368: .4byte word_203855E
+_080CA36C: .4byte gOtherText_WontHaveAnyEffect
+_080CA370: .4byte sub_80A5C48
+_080CA374:
+ ldr r0, _080CA38C
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _080CA390
+ str r0, [r1]
+ strh r2, [r1, 0x26]
+_080CA384:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CA38C: .4byte gTasks
+_080CA390: .4byte sub_80CA2BC
+ thumb_func_end ItemUseInBattle_StatIncrease
+
+ thumb_func_start sub_80CA394
+sub_80CA394: @ 80CA394
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _080CA3BC
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080CA3B4
+ bl sub_8094E4C
+ bl gpu_pal_allocator_reset__manage_upper_four
+ adds r0, r4, 0
+ bl DestroyTask
+_080CA3B4:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CA3BC: .4byte gPaletteFade
+ thumb_func_end sub_80CA394
+
+ thumb_func_start sub_80CA3C0
+sub_80CA3C0: @ 80CA3C0
+ push {lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080CA3EC
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldr r0, _080CA3F0
+ str r0, [r1]
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CA3EC: .4byte gTasks
+_080CA3F0: .4byte sub_80CA394
+ thumb_func_end sub_80CA3C0
+
+ thumb_func_start ItemUseInBattle_Medicine
+ItemUseInBattle_Medicine: @ 80CA3F4
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080CA408
+ ldr r1, _080CA40C
+ str r1, [r2]
+ bl sub_80CA3C0
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CA408: .4byte gUnknown_03004AE4
+_080CA40C: .4byte sub_806FE2C
+ thumb_func_end ItemUseInBattle_Medicine
+
+ thumb_func_start unref_sub_80CA410
+unref_sub_80CA410: @ 80CA410
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080CA424
+ ldr r1, _080CA428
+ str r1, [r2]
+ bl sub_80CA3C0
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CA424: .4byte gUnknown_03004AE4
+_080CA428: .4byte sub_8070048
+ thumb_func_end unref_sub_80CA410
+
+ thumb_func_start ItemUseInBattle_PPRecovery
+ItemUseInBattle_PPRecovery: @ 80CA42C
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080CA440
+ ldr r1, _080CA444
+ str r1, [r2]
+ bl sub_80CA3C0
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CA440: .4byte gUnknown_03004AE4
+_080CA444: .4byte dp05_ether
+ thumb_func_end ItemUseInBattle_PPRecovery
+
+ thumb_func_start unref_sub_80CA448
+unref_sub_80CA448: @ 80CA448
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r0, 0
+ movs r1, 0xD
+ movs r2, 0xD
+ movs r3, 0x14
+ bl MenuZeroFillWindowRect
+ ldr r4, _080CA494
+ ldrh r1, [r4]
+ movs r0, 0
+ movs r2, 0
+ bl ExecuteTableBasedItemEffect__
+ lsls r0, 24
+ cmp r0, 0
+ bne _080CA4AC
+ ldrh r0, [r4]
+ movs r1, 0x1
+ bl sub_80A9538
+ ldr r0, _080CA498
+ ldr r1, _080CA49C
+ bl GetMonNickname
+ ldr r4, _080CA4A0
+ ldr r1, _080CA4A4
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ ldr r2, _080CA4A8
+ adds r0, r5, 0
+ adds r1, r4, 0
+ movs r3, 0x1
+ bl DisplayItemMessageOnField
+ b _080CA4B8
+ .align 2, 0
+_080CA494: .4byte word_203855E
+_080CA498: .4byte gPlayerParty
+_080CA49C: .4byte gStringVar1
+_080CA4A0: .4byte gStringVar4
+_080CA4A4: .4byte gOtherText_SnapConfusion
+_080CA4A8: .4byte sub_80A7094
+_080CA4AC:
+ ldr r1, _080CA4C0
+ ldr r2, _080CA4C4
+ adds r0, r5, 0
+ movs r3, 0x1
+ bl DisplayItemMessageOnField
+_080CA4B8:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CA4C0: .4byte gOtherText_WontHaveAnyEffect
+_080CA4C4: .4byte sub_80A5C48
+ thumb_func_end unref_sub_80CA448
+
+ thumb_func_start ItemUseInBattle_Escape
+ItemUseInBattle_Escape: @ 80CA4C8
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r0, 0
+ movs r1, 0xD
+ movs r2, 0xD
+ movs r3, 0x14
+ bl MenuZeroFillWindowRect
+ ldr r0, _080CA4F8
+ ldrh r1, [r0]
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ bne _080CA504
+ bl sub_80C9FDC
+ ldr r1, _080CA4FC
+ ldr r2, _080CA500
+ adds r0, r4, 0
+ movs r3, 0x1
+ bl DisplayItemMessageOnField
+ b _080CA516
+ .align 2, 0
+_080CA4F8: .4byte gUnknown_020239F8
+_080CA4FC: .4byte gStringVar4
+_080CA500: .4byte sub_80A7094
+_080CA504:
+ ldr r0, _080CA51C
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldrb r1, [r1, 0xC]
+ adds r0, r4, 0
+ bl DisplayDadsAdviceCannotUseItemMessage
+_080CA516:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CA51C: .4byte gTasks
+ thumb_func_end ItemUseInBattle_Escape
+
+ thumb_func_start ItemUseOutOfBattle_EnigmaBerry
+ItemUseOutOfBattle_EnigmaBerry: @ 80CA520
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _080CA544
+ ldrh r0, [r0]
+ bl sub_8070E48
+ lsls r0, 24
+ lsrs r0, 24
+ subs r0, 0x1
+ cmp r0, 0x14
+ bls _080CA53A
+ b _080CA62C
+_080CA53A:
+ lsls r0, 2
+ ldr r1, _080CA548
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080CA544: .4byte word_203855E
+_080CA548: .4byte _080CA54C
+ .align 2, 0
+_080CA54C:
+ .4byte _080CA5D8
+ .4byte _080CA5A0
+ .4byte _080CA5A0
+ .4byte _080CA5A0
+ .4byte _080CA5A0
+ .4byte _080CA5A0
+ .4byte _080CA5A0
+ .4byte _080CA62C
+ .4byte _080CA62C
+ .4byte _080CA5BC
+ .4byte _080CA5A0
+ .4byte _080CA5A0
+ .4byte _080CA5A0
+ .4byte _080CA5A0
+ .4byte _080CA5A0
+ .4byte _080CA5A0
+ .4byte _080CA5A0
+ .4byte _080CA62C
+ .4byte _080CA5F4
+ .4byte _080CA5F4
+ .4byte _080CA610
+_080CA5A0:
+ ldr r0, _080CA5B8
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ movs r0, 0x1
+ strh r0, [r1, 0x26]
+ adds r0, r4, 0
+ bl ItemUseOutOfBattle_Medicine
+ b _080CA640
+ .align 2, 0
+_080CA5B8: .4byte gTasks
+_080CA5BC:
+ ldr r0, _080CA5D4
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ movs r0, 0x1
+ strh r0, [r1, 0x26]
+ adds r0, r4, 0
+ bl ItemUseOutOfBattle_SacredAsh
+ b _080CA640
+ .align 2, 0
+_080CA5D4: .4byte gTasks
+_080CA5D8:
+ ldr r0, _080CA5F0
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ movs r0, 0x1
+ strh r0, [r1, 0x26]
+ adds r0, r4, 0
+ bl ItemUseOutOfBattle_RareCandy
+ b _080CA640
+ .align 2, 0
+_080CA5F0: .4byte gTasks
+_080CA5F4:
+ ldr r0, _080CA60C
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ movs r0, 0x1
+ strh r0, [r1, 0x26]
+ adds r0, r4, 0
+ bl ItemUseOutOfBattle_PPUp
+ b _080CA640
+ .align 2, 0
+_080CA60C: .4byte gTasks
+_080CA610:
+ ldr r0, _080CA628
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ movs r0, 0x1
+ strh r0, [r1, 0x26]
+ adds r0, r4, 0
+ bl ItemUseOutOfBattle_PPRecovery
+ b _080CA640
+ .align 2, 0
+_080CA628: .4byte gTasks
+_080CA62C:
+ ldr r0, _080CA648
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ movs r0, 0x4
+ strh r0, [r1, 0x26]
+ adds r0, r4, 0
+ bl ItemUseOutOfBattle_CannotUse
+_080CA640:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CA648: .4byte gTasks
+ thumb_func_end ItemUseOutOfBattle_EnigmaBerry
+
+ thumb_func_start ItemUseInBattle_EnigmaBerry
+ItemUseInBattle_EnigmaBerry: @ 80CA64C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _080CA66C
+ ldrh r0, [r0]
+ bl sub_8070E48
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x15
+ bhi _080CA6E4
+ lsls r0, 2
+ ldr r1, _080CA670
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080CA66C: .4byte word_203855E
+_080CA670: .4byte _080CA674
+ .align 2, 0
+_080CA674:
+ .4byte _080CA6CC
+ .4byte _080CA6E4
+ .4byte _080CA6D4
+ .4byte _080CA6D4
+ .4byte _080CA6D4
+ .4byte _080CA6D4
+ .4byte _080CA6D4
+ .4byte _080CA6D4
+ .4byte _080CA6D4
+ .4byte _080CA6D4
+ .4byte _080CA6E4
+ .4byte _080CA6D4
+ .4byte _080CA6E4
+ .4byte _080CA6E4
+ .4byte _080CA6E4
+ .4byte _080CA6E4
+ .4byte _080CA6E4
+ .4byte _080CA6E4
+ .4byte _080CA6E4
+ .4byte _080CA6E4
+ .4byte _080CA6E4
+ .4byte _080CA6DC
+_080CA6CC:
+ adds r0, r4, 0
+ bl ItemUseInBattle_StatIncrease
+ b _080CA6EA
+_080CA6D4:
+ adds r0, r4, 0
+ bl ItemUseInBattle_Medicine
+ b _080CA6EA
+_080CA6DC:
+ adds r0, r4, 0
+ bl ItemUseInBattle_PPRecovery
+ b _080CA6EA
+_080CA6E4:
+ adds r0, r4, 0
+ bl ItemUseOutOfBattle_CannotUse
+_080CA6EA:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end ItemUseInBattle_EnigmaBerry
+
+ thumb_func_start ItemUseOutOfBattle_CannotUse
+ItemUseOutOfBattle_CannotUse: @ 80CA6F0
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080CA70C
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldrb r1, [r1, 0xC]
+ bl DisplayDadsAdviceCannotUseItemMessage
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CA70C: .4byte gTasks
+ thumb_func_end ItemUseOutOfBattle_CannotUse
+
+ thumb_func_start sub_80CA710
+sub_80CA710: @ 80CA710
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldr r5, _080CA744
+ ldrh r0, [r5]
+ ldrh r1, [r4, 0x20]
+ adds r0, r1
+ strh r0, [r4, 0x20]
+ ldrh r0, [r5, 0x2]
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r4, 0x22]
+ ldrh r0, [r5, 0x4]
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r5, 0x6]
+ strh r0, [r4, 0x30]
+ ldr r0, _080CA748
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080CA74C
+ ldrh r0, [r5, 0x8]
+ negs r0, r0
+ b _080CA74E
+ .align 2, 0
+_080CA744: .4byte gUnknown_03004B00
+_080CA748: .4byte gUnknown_0202F7C8
+_080CA74C:
+ ldrh r0, [r5, 0x8]
+_080CA74E:
+ strh r0, [r4, 0x34]
+ ldr r0, _080CA760
+ ldrh r0, [r0, 0xA]
+ strh r0, [r4, 0x36]
+ ldr r0, _080CA764
+ str r0, [r4, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CA760: .4byte gUnknown_03004B00
+_080CA764: .4byte sub_80CA768
+ thumb_func_end sub_80CA710
+
+ thumb_func_start sub_80CA768
+sub_80CA768: @ 80CA768
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r1, [r4, 0x2E]
+ movs r2, 0x2E
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ ble _080CA7A4
+ subs r0, r1, 0x1
+ strh r0, [r4, 0x2E]
+ ldrh r1, [r4, 0x32]
+ lsls r0, r1, 16
+ asrs r0, 24
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x30]
+ adds r1, r0
+ strh r1, [r4, 0x32]
+ movs r1, 0x38
+ ldrsh r0, [r4, r1]
+ movs r2, 0x34
+ ldrsh r1, [r4, r2]
+ bl Sin
+ strh r0, [r4, 0x24]
+ ldrh r0, [r4, 0x36]
+ ldrh r1, [r4, 0x38]
+ adds r0, r1
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x38]
+ b _080CA7AA
+_080CA7A4:
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080CA7AA:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80CA768
+
+ thumb_func_start sub_80CA7B0
+sub_80CA7B0: @ 80CA7B0
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r1, 0x1
+ bl sub_80787B0
+ ldr r0, _080CA7F0
+ ldrh r0, [r0, 0x4]
+ strh r0, [r4, 0x2E]
+ ldr r5, _080CA7F4
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x32]
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x36]
+ ldr r0, _080CA7F8
+ str r0, [r4, 0x1C]
+ ldr r1, _080CA7FC
+ adds r0, r4, 0
+ bl oamt_set_x3A_32
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CA7F0: .4byte gUnknown_03004B00
+_080CA7F4: .4byte gUnknown_0202F7C8
+_080CA7F8: .4byte sub_8078B34
+_080CA7FC: .4byte move_anim_8074EE0
+ thumb_func_end sub_80CA7B0
+
+ thumb_func_start sub_80CA800
+sub_80CA800: @ 80CA800
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r1, 0x1
+ bl sub_80787B0
+ ldr r5, _080CA848
+ ldrb r1, [r5, 0x6]
+ adds r0, r4, 0
+ bl StartSpriteAnim
+ ldrh r0, [r5, 0x4]
+ strh r0, [r4, 0x2E]
+ ldr r5, _080CA84C
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x32]
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x36]
+ ldr r0, _080CA850
+ str r0, [r4, 0x1C]
+ ldr r1, _080CA854
+ adds r0, r4, 0
+ bl oamt_set_x3A_32
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CA848: .4byte gUnknown_03004B00
+_080CA84C: .4byte gUnknown_0202F7C9
+_080CA850: .4byte sub_8078B34
+_080CA854: .4byte move_anim_8072740
+ thumb_func_end sub_80CA800
+
+ thumb_func_start sub_80CA858
+sub_80CA858: @ 80CA858
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ movs r1, 0x1
+ bl sub_80787B0
+ ldr r6, _080CA8A8
+ ldrh r0, [r6, 0x4]
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r4, 0x20]
+ strh r0, [r4, 0x30]
+ ldr r5, _080CA8AC
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x32]
+ ldrh r0, [r4, 0x22]
+ strh r0, [r4, 0x34]
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x36]
+ adds r0, r4, 0
+ bl obj_translate_based_on_private_1_2_3_4
+ ldrh r0, [r6, 0x6]
+ strh r0, [r4, 0x38]
+ ldr r1, _080CA8B0
+ str r1, [r4, 0x1C]
+ adds r0, r4, 0
+ bl _call_via_r1
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CA8A8: .4byte gUnknown_03004B00
+_080CA8AC: .4byte gUnknown_0202F7C9
+_080CA8B0: .4byte sub_80CA8B4
+ thumb_func_end sub_80CA858
+
+ thumb_func_start sub_80CA8B4
+sub_80CA8B4: @ 80CA8B4
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_8078B5C
+ lsls r0, 24
+ cmp r0, 0
+ beq _080CA8CA
+ adds r0, r4, 0
+ bl DestroySprite
+ b _080CA91E
+_080CA8CA:
+ movs r1, 0x38
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x7F
+ ble _080CA8E4
+ ldr r0, _080CA8E0
+ ldrb r0, [r0]
+ bl sub_8079E90
+ adds r0, 0x1
+ b _080CA8EE
+ .align 2, 0
+_080CA8E0: .4byte gUnknown_0202F7C9
+_080CA8E4:
+ ldr r0, _080CA924
+ ldrb r0, [r0]
+ bl sub_8079E90
+ adds r0, 0x6
+_080CA8EE:
+ adds r1, r4, 0
+ adds r1, 0x43
+ strb r0, [r1]
+ movs r1, 0x38
+ ldrsh r0, [r4, r1]
+ movs r1, 0x5
+ bl Sin
+ ldrh r1, [r4, 0x24]
+ adds r0, r1
+ strh r0, [r4, 0x24]
+ movs r1, 0x38
+ ldrsh r0, [r4, r1]
+ movs r1, 0xE
+ bl Cos
+ ldrh r1, [r4, 0x26]
+ adds r0, r1
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x38]
+ adds r0, 0xF
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x38]
+_080CA91E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CA924: .4byte gUnknown_0202F7C9
+ thumb_func_end sub_80CA8B4
+
+ thumb_func_start sub_80CA928
+sub_80CA928: @ 80CA928
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r6, r0, 0
+ ldr r1, _080CA998
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r5, r0, r1
+ ldrh r0, [r5, 0x8]
+ subs r0, 0x1
+ movs r2, 0
+ strh r0, [r5, 0x8]
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ bne _080CA982
+ ldrh r0, [r5, 0xA]
+ adds r0, 0x1
+ strh r0, [r5, 0xA]
+ movs r0, 0x6
+ strh r0, [r5, 0x8]
+ ldr r1, _080CA99C
+ movs r0, 0xF
+ strh r0, [r1]
+ strh r2, [r1, 0x2]
+ movs r0, 0x50
+ strh r0, [r1, 0x4]
+ strh r2, [r1, 0x6]
+ ldr r4, _080CA9A0
+ ldr r0, _080CA9A4
+ ldrb r0, [r0]
+ bl sub_8079E90
+ adds r3, r0, 0
+ adds r3, 0x1
+ lsls r3, 24
+ lsrs r3, 24
+ adds r0, r4, 0
+ movs r1, 0
+ movs r2, 0
+ bl CreateSpriteAndAnimate
+_080CA982:
+ movs r1, 0xA
+ ldrsh r0, [r5, r1]
+ cmp r0, 0xF
+ bne _080CA990
+ adds r0, r6, 0
+ bl move_anim_task_del
+_080CA990:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CA998: .4byte gTasks
+_080CA99C: .4byte gUnknown_03004B00
+_080CA9A0: .4byte gSpriteTemplate_83D631C
+_080CA9A4: .4byte gUnknown_0202F7C9
+ thumb_func_end sub_80CA928
+
+ thumb_func_start sub_80CA9A8
+sub_80CA9A8: @ 80CA9A8
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ movs r1, 0x1
+ bl sub_8078764
+ ldr r6, _080CA9EC
+ ldrh r0, [r6, 0x6]
+ strh r0, [r4, 0x2E]
+ ldr r5, _080CA9F0
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x32]
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x36]
+ ldrh r0, [r6, 0x4]
+ strh r0, [r4, 0x38]
+ adds r0, r4, 0
+ bl sub_80786EC
+ ldr r0, _080CA9F4
+ str r0, [r4, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CA9EC: .4byte gUnknown_03004B00
+_080CA9F0: .4byte gUnknown_0202F7C8
+_080CA9F4: .4byte sub_80CA9F8
+ thumb_func_end sub_80CA9A8
+
+ thumb_func_start sub_80CA9F8
+sub_80CA9F8: @ 80CA9F8
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_8078718
+ lsls r0, 24
+ cmp r0, 0
+ beq _080CAA0C
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080CAA0C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80CA9F8
+
+ thumb_func_start sub_80CAA14
+sub_80CAA14: @ 80CAA14
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ bl Random
+ adds r1, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0x7
+ ands r1, r0
+ adds r0, r5, 0
+ bl StartSpriteAnim
+ ldr r4, _080CAA5C
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080CAA60
+ ldrh r0, [r5, 0x20]
+ subs r0, 0x14
+ b _080CAA64
+ .align 2, 0
+_080CAA5C: .4byte gUnknown_0202F7C8
+_080CAA60:
+ ldrh r0, [r5, 0x20]
+ adds r0, 0x14
+_080CAA64:
+ strh r0, [r5, 0x20]
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x1F
+ ands r0, r1
+ adds r0, 0x40
+ strh r0, [r5, 0x2E]
+ ldrh r0, [r5, 0x20]
+ strh r0, [r5, 0x30]
+ ldr r4, _080CAAC4
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x32]
+ ldrh r0, [r5, 0x22]
+ strh r0, [r5, 0x34]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x36]
+ adds r0, r5, 0
+ bl sub_8078D60
+ bl Random
+ movs r1, 0xFF
+ ands r1, r0
+ strh r1, [r5, 0x38]
+ adds r0, r5, 0
+ adds r0, 0x43
+ ldrb r0, [r0]
+ strh r0, [r5, 0x3A]
+ ldr r1, _080CAAC8
+ str r1, [r5, 0x1C]
+ adds r0, r5, 0
+ bl _call_via_r1
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CAAC4: .4byte gUnknown_0202F7C9
+_080CAAC8: .4byte sub_80CAACC
+ thumb_func_end sub_80CAA14
+
+ thumb_func_start sub_80CAACC
+sub_80CAACC: @ 80CAACC
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_8078CE8
+ lsls r0, 24
+ cmp r0, 0
+ beq _080CAAE2
+ adds r0, r4, 0
+ bl move_anim_8072740
+ b _080CAB12
+_080CAAE2:
+ movs r1, 0x38
+ ldrsh r0, [r4, r1]
+ movs r1, 0xC
+ bl Cos
+ ldrh r1, [r4, 0x26]
+ adds r0, r1
+ strh r0, [r4, 0x26]
+ movs r1, 0x38
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x7E
+ bgt _080CAAFE
+ ldrh r0, [r4, 0x3A]
+ b _080CAB02
+_080CAAFE:
+ ldrh r0, [r4, 0x3A]
+ adds r0, 0x1
+_080CAB02:
+ adds r1, r4, 0
+ adds r1, 0x43
+ strb r0, [r1]
+ ldrh r0, [r4, 0x38]
+ adds r0, 0x18
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x38]
+_080CAB12:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80CAACC
+
+ thumb_func_start sub_80CAB18
+sub_80CAB18: @ 80CAB18
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ movs r1, 0x1
+ bl sub_80787B0
+ ldr r0, _080CAB78
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080CAB38
+ ldr r1, _080CAB7C
+ ldrh r0, [r1, 0x4]
+ negs r0, r0
+ strh r0, [r1, 0x4]
+_080CAB38:
+ ldr r4, _080CAB7C
+ ldrh r0, [r4, 0x8]
+ strh r0, [r6, 0x2E]
+ ldr r5, _080CAB80
+ ldrb r0, [r5]
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r4, 0x4]
+ adds r0, r1
+ strh r0, [r6, 0x32]
+ ldrb r0, [r5]
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r4, 0x6]
+ adds r0, r1
+ strh r0, [r6, 0x36]
+ ldrh r0, [r4, 0xA]
+ strh r0, [r6, 0x38]
+ adds r0, r6, 0
+ bl sub_80786EC
+ ldr r0, _080CAB84
+ str r0, [r6, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CAB78: .4byte gUnknown_0202F7C8
+_080CAB7C: .4byte gUnknown_03004B00
+_080CAB80: .4byte gUnknown_0202F7C9
+_080CAB84: .4byte sub_80CAB88
+ thumb_func_end sub_80CAB18
+
+ thumb_func_start sub_80CAB88
+sub_80CAB88: @ 80CAB88
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_8078718
+ lsls r0, 24
+ cmp r0, 0
+ beq _080CABB2
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ movs r0, 0xA
+ strh r0, [r4, 0x2E]
+ ldr r0, _080CABB8
+ str r0, [r4, 0x1C]
+ ldr r1, _080CABBC
+ adds r0, r4, 0
+ bl oamt_set_x3A_32
+_080CABB2:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CABB8: .4byte sub_80782D8
+_080CABBC: .4byte sub_80CABC0
+ thumb_func_end sub_80CAB88
+
+ thumb_func_start sub_80CABC0
+sub_80CABC0: @ 80CABC0
+ push {r4,lr}
+ adds r4, r0, 0
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r1, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl StartSpriteAnim
+ movs r0, 0x3C
+ strh r0, [r4, 0x2E]
+ ldr r0, _080CABF0
+ str r0, [r4, 0x1C]
+ ldr r1, _080CABF4
+ adds r0, r4, 0
+ bl oamt_set_x3A_32
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CABF0: .4byte sub_80782D8
+_080CABF4: .4byte move_anim_8072740
+ thumb_func_end sub_80CABC0
+
+ thumb_func_start sub_80CABF8
+sub_80CABF8: @ 80CABF8
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r1, 0x1
+ bl sub_8078764
+ ldr r5, _080CAC3C
+ ldrb r1, [r5, 0x8]
+ adds r0, r4, 0
+ bl StartSpriteAnim
+ movs r1, 0x8
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x1
+ bne _080CAC22
+ ldrb r0, [r4, 0x1]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r0
+ movs r0, 0x4
+ orrs r1, r0
+ strb r1, [r4, 0x1]
+_080CAC22:
+ ldrh r0, [r5, 0x6]
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r5, 0x4]
+ strh r0, [r4, 0x30]
+ ldr r1, _080CAC40
+ str r1, [r4, 0x1C]
+ adds r0, r4, 0
+ bl _call_via_r1
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CAC3C: .4byte gUnknown_03004B00
+_080CAC40: .4byte sub_80CAC44
+ thumb_func_end sub_80CABF8
+
+ thumb_func_start sub_80CAC44
+sub_80CAC44: @ 80CAC44
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ movs r1, 0x20
+ bl Sin
+ strh r0, [r4, 0x24]
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ movs r1, 0x3
+ negs r1, r1
+ bl Cos
+ ldrh r1, [r4, 0x32]
+ adds r1, 0x18
+ strh r1, [r4, 0x32]
+ lsls r1, 16
+ asrs r1, 24
+ adds r0, r1
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x30]
+ subs r0, 0x40
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x7F
+ bhi _080CAC98
+ ldr r0, _080CAC94
+ ldrb r0, [r0]
+ bl sub_8079ED4
+ movs r1, 0x3
+ ands r1, r0
+ lsls r1, 2
+ ldrb r2, [r4, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ b _080CACBC
+ .align 2, 0
+_080CAC94: .4byte gUnknown_0202F7C9
+_080CAC98:
+ ldr r0, _080CACE8
+ ldrb r0, [r0]
+ bl sub_8079ED4
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x3
+ bls _080CACAC
+ movs r2, 0x3
+_080CACAC:
+ movs r0, 0x3
+ ands r2, r0
+ lsls r2, 2
+ ldrb r1, [r4, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r1
+ orrs r0, r2
+_080CACBC:
+ strb r0, [r4, 0x5]
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x2
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x30]
+ ldrh r0, [r4, 0x2E]
+ subs r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ bne _080CACE0
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080CACE0:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CACE8: .4byte gUnknown_0202F7C9
+ thumb_func_end sub_80CAC44
+
+ thumb_func_start sub_80CACEC
+sub_80CACEC: @ 80CACEC
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080CAD06
+ bl battle_type_is_double
+ lsls r0, 24
+ cmp r0, 0
+ bne _080CAD0E
+_080CAD06:
+ adds r0, r4, 0
+ bl move_anim_task_del
+ b _080CAD4A
+_080CAD0E:
+ ldr r0, _080CAD2C
+ ldrb r0, [r0]
+ bl battle_get_per_side_status_permutated
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080CAD34
+ ldr r0, _080CAD30
+ ldrb r1, [r0]
+ movs r2, 0x3
+ orrs r1, r2
+ strb r1, [r0]
+ b _080CAD44
+ .align 2, 0
+_080CAD2C: .4byte gUnknown_0202F7C9
+_080CAD30: .4byte REG_BG2CNT
+_080CAD34:
+ ldr r2, _080CAD50
+ ldrb r1, [r2]
+ movs r0, 0x4
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r2]
+_080CAD44:
+ adds r0, r4, 0
+ bl move_anim_task_del
+_080CAD4A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CAD50: .4byte REG_BG1CNT
+ thumb_func_end sub_80CACEC
+
+ thumb_func_start sub_80CAD54
+sub_80CAD54: @ 80CAD54
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r1, 0
+ bl sub_80787B0
+ ldr r5, _080CAD9C
+ ldrh r0, [r5, 0x6]
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r4, 0x20]
+ strh r0, [r4, 0x30]
+ strh r0, [r4, 0x32]
+ ldrh r0, [r4, 0x22]
+ strh r0, [r4, 0x34]
+ ldr r0, _080CADA0
+ ldrb r0, [r0]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r5, [r5, 0x4]
+ adds r0, r5
+ strh r0, [r4, 0x36]
+ adds r0, r4, 0
+ bl obj_translate_based_on_private_1_2_3_4
+ movs r0, 0x40
+ strh r0, [r4, 0x38]
+ ldr r1, _080CADA4
+ str r1, [r4, 0x1C]
+ adds r0, r4, 0
+ bl _call_via_r1
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CAD9C: .4byte gUnknown_03004B00
+_080CADA0: .4byte gUnknown_0202F7C8
+_080CADA4: .4byte sub_80CADA8
+ thumb_func_end sub_80CAD54
+
+ thumb_func_start sub_80CADA8
+sub_80CADA8: @ 80CADA8
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_8078B5C
+ lsls r0, 24
+ cmp r0, 0
+ bne _080CAE14
+ movs r1, 0x38
+ ldrsh r0, [r4, r1]
+ movs r1, 0x20
+ bl Sin
+ ldrh r1, [r4, 0x24]
+ adds r0, r1
+ strh r0, [r4, 0x24]
+ movs r1, 0x38
+ ldrsh r0, [r4, r1]
+ movs r1, 0x5
+ negs r1, r1
+ bl Cos
+ ldrh r1, [r4, 0x26]
+ adds r0, r1
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x38]
+ subs r0, 0x40
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x7F
+ bhi _080CADF4
+ ldr r0, _080CADF0
+ ldrb r0, [r0]
+ bl sub_8079E90
+ subs r0, 0x1
+ b _080CADFE
+ .align 2, 0
+_080CADF0: .4byte gUnknown_0202F7C8
+_080CADF4:
+ ldr r0, _080CAE10
+ ldrb r0, [r0]
+ bl sub_8079E90
+ adds r0, 0x1
+_080CADFE:
+ adds r1, r4, 0
+ adds r1, 0x43
+ strb r0, [r1]
+ ldrh r0, [r4, 0x38]
+ adds r0, 0x5
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x38]
+ b _080CAE1A
+ .align 2, 0
+_080CAE10: .4byte gUnknown_0202F7C8
+_080CAE14:
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080CAE1A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80CADA8
+
+ thumb_func_start sub_80CAE20
+sub_80CAE20: @ 80CAE20
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r1, 0x1
+ bl sub_80787B0
+ ldr r5, _080CAE68
+ ldrh r0, [r5, 0x6]
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r4, 0x20]
+ strh r0, [r4, 0x30]
+ strh r0, [r4, 0x32]
+ ldrh r0, [r4, 0x22]
+ strh r0, [r4, 0x34]
+ ldr r0, _080CAE6C
+ ldrb r0, [r0]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r5, [r5, 0x4]
+ adds r0, r5
+ strh r0, [r4, 0x36]
+ adds r0, r4, 0
+ bl obj_translate_based_on_private_1_2_3_4
+ movs r0, 0x40
+ strh r0, [r4, 0x38]
+ ldr r1, _080CAE70
+ str r1, [r4, 0x1C]
+ adds r0, r4, 0
+ bl _call_via_r1
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CAE68: .4byte gUnknown_03004B00
+_080CAE6C: .4byte gUnknown_0202F7C8
+_080CAE70: .4byte sub_80CAE74
+ thumb_func_end sub_80CAE20
+
+ thumb_func_start sub_80CAE74
+sub_80CAE74: @ 80CAE74
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_8078B5C
+ lsls r0, 24
+ cmp r0, 0
+ bne _080CAECC
+ movs r1, 0x38
+ ldrsh r0, [r4, r1]
+ movs r1, 0x8
+ bl Sin
+ ldrh r1, [r4, 0x24]
+ adds r0, r1
+ strh r0, [r4, 0x24]
+ ldrh r1, [r4, 0x38]
+ adds r0, r1, 0
+ subs r0, 0x3B
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x4
+ bls _080CAEAC
+ adds r0, r1, 0
+ subs r0, 0xBB
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x4
+ bhi _080CAEC0
+_080CAEAC:
+ ldrb r2, [r4, 0x3]
+ lsls r1, r2, 26
+ lsrs r1, 27
+ movs r0, 0x8
+ eors r1, r0
+ lsls r1, 1
+ subs r0, 0x47
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r4, 0x3]
+_080CAEC0:
+ ldrh r0, [r4, 0x38]
+ adds r0, 0x5
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x38]
+ b _080CAED2
+_080CAECC:
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080CAED2:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80CAE74
+
+ thumb_func_start sub_80CAED8
+sub_80CAED8: @ 80CAED8
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldr r5, _080CAF14
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x20]
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x22]
+ ldr r1, _080CAF18
+ ldrh r0, [r1]
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r1, 0x2]
+ strh r0, [r4, 0x30]
+ ldrh r0, [r1, 0x4]
+ strh r0, [r4, 0x32]
+ ldr r0, _080CAF1C
+ str r0, [r4, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CAF14: .4byte gUnknown_0202F7C8
+_080CAF18: .4byte gUnknown_03004B00
+_080CAF1C: .4byte sub_80CAF20
+ thumb_func_end sub_80CAED8
+
+ thumb_func_start sub_80CAF20
+sub_80CAF20: @ 80CAF20
+ push {lr}
+ adds r1, r0, 0
+ ldrh r0, [r1, 0x32]
+ movs r2, 0x32
+ ldrsh r3, [r1, r2]
+ cmp r3, 0
+ bne _080CAF54
+ ldrh r0, [r1, 0x30]
+ movs r2, 0x1
+ ands r2, r0
+ cmp r2, 0
+ beq _080CAF42
+ movs r0, 0x80
+ strh r0, [r1, 0x2E]
+ strh r3, [r1, 0x30]
+ strh r3, [r1, 0x32]
+ b _080CAF48
+_080CAF42:
+ strh r2, [r1, 0x2E]
+ strh r2, [r1, 0x30]
+ strh r2, [r1, 0x32]
+_080CAF48:
+ ldr r0, _080CAF50
+ str r0, [r1, 0x1C]
+ b _080CAF68
+ .align 2, 0
+_080CAF50: .4byte sub_80CAF6C
+_080CAF54:
+ subs r0, 0x1
+ strh r0, [r1, 0x32]
+ ldrh r0, [r1, 0x2E]
+ ldrh r2, [r1, 0x20]
+ adds r0, r2
+ strh r0, [r1, 0x20]
+ ldrh r0, [r1, 0x30]
+ ldrh r2, [r1, 0x22]
+ adds r0, r2
+ strh r0, [r1, 0x22]
+_080CAF68:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80CAF20
+
+ thumb_func_start sub_80CAF6C
+sub_80CAF6C: @ 80CAF6C
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _080CAF8C
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080CAF90
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ movs r1, 0x19
+ bl Sin
+ negs r0, r0
+ b _080CAF9A
+ .align 2, 0
+_080CAF8C: .4byte gUnknown_0202F7C8
+_080CAF90:
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ movs r1, 0x19
+ bl Sin
+_080CAF9A:
+ strh r0, [r4, 0x24]
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x2
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _080CAFBA
+ ldrh r0, [r4, 0x26]
+ adds r0, 0x1
+ strh r0, [r4, 0x26]
+_080CAFBA:
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x50
+ ble _080CAFC8
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080CAFC8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80CAF6C
+
+ thumb_func_start sub_80CAFD0
+sub_80CAFD0: @ 80CAFD0
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ movs r1, 0x1
+ bl sub_80787B0
+ ldr r0, _080CB024
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080CAFF0
+ ldr r1, _080CB028
+ ldrh r0, [r1, 0x4]
+ negs r0, r0
+ strh r0, [r1, 0x4]
+_080CAFF0:
+ ldr r6, _080CB028
+ ldrh r0, [r6, 0x8]
+ strh r0, [r5, 0x2E]
+ movs r1, 0xC
+ ldrsh r0, [r6, r1]
+ cmp r0, 0
+ bne _080CB030
+ ldr r4, _080CB02C
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r6, 0x4]
+ adds r0, r1
+ strh r0, [r5, 0x32]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r6, [r6, 0x6]
+ adds r0, r6
+ b _080CB050
+ .align 2, 0
+_080CB024: .4byte gUnknown_0202F7C8
+_080CB028: .4byte gUnknown_03004B00
+_080CB02C: .4byte gUnknown_0202F7C9
+_080CB030:
+ ldr r0, _080CB07C
+ ldrb r0, [r0]
+ adds r2, r5, 0
+ adds r2, 0x32
+ adds r3, r5, 0
+ adds r3, 0x36
+ movs r1, 0x1
+ bl sub_807A3FC
+ ldrh r0, [r6, 0x4]
+ ldrh r1, [r5, 0x32]
+ adds r0, r1
+ strh r0, [r5, 0x32]
+ ldrh r0, [r6, 0x6]
+ ldrh r1, [r5, 0x36]
+ adds r0, r1
+_080CB050:
+ strh r0, [r5, 0x36]
+ ldr r0, _080CB080
+ ldrh r0, [r0, 0xA]
+ strh r0, [r5, 0x38]
+ adds r0, r5, 0
+ bl sub_80786EC
+ ldr r0, _080CB084
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ adds r4, r0, 0
+ ldr r0, _080CB07C
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r4, 24
+ lsls r0, 24
+ cmp r4, r0
+ bne _080CB088
+ movs r0, 0x1
+ b _080CB08A
+ .align 2, 0
+_080CB07C: .4byte gUnknown_0202F7C9
+_080CB080: .4byte gUnknown_03004B00
+_080CB084: .4byte gUnknown_0202F7C8
+_080CB088:
+ movs r0, 0
+_080CB08A:
+ strh r0, [r5, 0x2E]
+ ldr r0, _080CB098
+ str r0, [r5, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CB098: .4byte sub_80CB09C
+ thumb_func_end sub_80CAFD0
+
+ thumb_func_start sub_80CB09C
+sub_80CB09C: @ 80CB09C
+ push {r4-r7,lr}
+ adds r6, r0, 0
+ movs r7, 0
+ ldrh r5, [r6, 0x2E]
+ ldrh r4, [r6, 0x3C]
+ movs r0, 0x1
+ strh r0, [r6, 0x2E]
+ adds r0, r6, 0
+ bl sub_8078718
+ ldrh r0, [r6, 0x3C]
+ strh r5, [r6, 0x2E]
+ lsls r4, 16
+ asrs r4, 16
+ cmp r4, 0xC8
+ ble _080CB0CE
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x37
+ bgt _080CB0CE
+ ldrh r0, [r6, 0x6]
+ cmp r0, 0
+ bne _080CB0D4
+ adds r0, 0x1
+ strh r0, [r6, 0x6]
+_080CB0CE:
+ ldrh r0, [r6, 0x6]
+ cmp r0, 0
+ beq _080CB106
+_080CB0D4:
+ movs r1, 0x2E
+ ldrsh r0, [r6, r1]
+ cmp r0, 0
+ beq _080CB106
+ adds r3, r6, 0
+ 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]
+ ldrh r0, [r6, 0x6]
+ adds r0, 0x1
+ strh r0, [r6, 0x6]
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x1E
+ bne _080CB106
+ movs r7, 0x1
+_080CB106:
+ movs r2, 0x20
+ ldrsh r0, [r6, r2]
+ movs r2, 0x24
+ ldrsh r1, [r6, r2]
+ adds r0, r1
+ adds r0, 0x10
+ movs r1, 0x88
+ lsls r1, 1
+ cmp r0, r1
+ bhi _080CB130
+ movs r0, 0x22
+ ldrsh r1, [r6, r0]
+ movs r2, 0x26
+ ldrsh r0, [r6, r2]
+ adds r1, r0
+ cmp r1, 0xA0
+ bgt _080CB130
+ movs r0, 0x10
+ negs r0, r0
+ cmp r1, r0
+ bge _080CB132
+_080CB130:
+ movs r7, 0x1
+_080CB132:
+ cmp r7, 0
+ beq _080CB13C
+ adds r0, r6, 0
+ bl move_anim_8072740
+_080CB13C:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80CB09C
+
+ thumb_func_start sub_80CB144
+sub_80CB144: @ 80CB144
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080CB170
+ bl battle_type_is_double
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080CB170
+ ldr r0, _080CB198
+ ldrb r0, [r0]
+ adds r2, r4, 0
+ adds r2, 0x20
+ adds r3, r4, 0
+ adds r3, 0x22
+ movs r1, 0x1
+ bl sub_807A3FC
+_080CB170:
+ ldrh r0, [r4, 0x22]
+ adds r0, 0x20
+ strh r0, [r4, 0x22]
+ ldr r1, _080CB19C
+ ldrh r0, [r1]
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r1, 0x2]
+ strh r0, [r4, 0x30]
+ ldrh r0, [r1, 0x4]
+ strh r0, [r4, 0x32]
+ ldrh r0, [r1, 0x6]
+ strh r0, [r4, 0x34]
+ ldrh r0, [r1, 0x8]
+ strh r0, [r4, 0x36]
+ ldr r0, _080CB1A0
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CB198: .4byte gUnknown_0202F7C9
+_080CB19C: .4byte gUnknown_03004B00
+_080CB1A0: .4byte sub_80CB1A4
+ thumb_func_end sub_80CB144
+
+ thumb_func_start sub_80CB1A4
+sub_80CB1A4: @ 80CB1A4
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldrh r1, [r4, 0x30]
+ movs r2, 0x30
+ ldrsh r0, [r4, r2]
+ cmp r0, 0xFF
+ bne _080CB1BA
+ ldrh r0, [r4, 0x22]
+ subs r0, 0x2
+ strh r0, [r4, 0x22]
+ b _080CB1C8
+_080CB1BA:
+ cmp r0, 0
+ ble _080CB1C8
+ ldrh r0, [r4, 0x22]
+ subs r0, 0x2
+ strh r0, [r4, 0x22]
+ subs r0, r1, 0x2
+ strh r0, [r4, 0x30]
+_080CB1C8:
+ ldrh r3, [r4, 0x32]
+ ldrh r5, [r4, 0x38]
+ adds r2, r3, r5
+ strh r2, [r4, 0x38]
+ movs r0, 0x2E
+ ldrsh r1, [r4, r0]
+ movs r5, 0x36
+ ldrsh r0, [r4, r5]
+ cmp r1, r0
+ bge _080CB1E0
+ adds r0, r2, r3
+ strh r0, [r4, 0x38]
+_080CB1E0:
+ ldrh r1, [r4, 0x38]
+ movs r0, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x38]
+ movs r1, 0x38
+ ldrsh r0, [r4, r1]
+ movs r2, 0x34
+ ldrsh r1, [r4, r2]
+ bl Cos
+ strh r0, [r4, 0x24]
+ movs r5, 0x38
+ ldrsh r0, [r4, r5]
+ movs r1, 0x5
+ bl Sin
+ strh r0, [r4, 0x26]
+ movs r1, 0x38
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x7F
+ bgt _080CB220
+ ldr r0, _080CB21C
+ ldrb r0, [r0]
+ bl sub_8079ED4
+ lsls r0, 24
+ lsrs r0, 24
+ subs r0, 0x1
+ b _080CB22E
+ .align 2, 0
+_080CB21C: .4byte gUnknown_0202F7C9
+_080CB220:
+ ldr r0, _080CB258
+ ldrb r0, [r0]
+ bl sub_8079ED4
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, 0x1
+_080CB22E:
+ movs r1, 0x3
+ ands r0, r1
+ lsls r0, 2
+ ldrb r2, [r4, 0x5]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r4, 0x5]
+ ldrh r0, [r4, 0x2E]
+ subs r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ cmp r0, 0
+ bne _080CB252
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080CB252:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CB258: .4byte gUnknown_0202F7C9
+ thumb_func_end sub_80CB1A4
+
+ thumb_func_start sub_80CB25C
+sub_80CB25C: @ 80CB25C
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ movs r1, 0
+ bl sub_8078764
+ adds r2, r5, 0
+ adds r2, 0x2C
+ ldrb r0, [r2]
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r4, _080CB290
+ ldrb r1, [r4, 0x4]
+ adds r0, r5, 0
+ bl StartSpriteAffineAnim
+ ldrh r0, [r4, 0x4]
+ strh r0, [r5, 0x3A]
+ ldrh r0, [r4, 0x6]
+ strh r0, [r5, 0x3C]
+ ldr r0, _080CB294
+ str r0, [r5, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CB290: .4byte gUnknown_03004B00
+_080CB294: .4byte sub_80CB298
+ thumb_func_end sub_80CB25C
+
+ thumb_func_start sub_80CB298
+sub_80CB298: @ 80CB298
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _080CB2C8
+ ldrh r1, [r0, 0xE]
+ ldr r0, _080CB2CC
+ cmp r1, r0
+ bne _080CB2C2
+ adds r2, r4, 0
+ adds r2, 0x2C
+ ldrb r1, [r2]
+ movs r0, 0x7F
+ ands r0, r1
+ strb r0, [r2]
+ movs r0, 0x1
+ bl obj_id_for_side_relative_to_move
+ movs r0, 0x80
+ lsls r0, 1
+ strh r0, [r4, 0x2E]
+ ldr r0, _080CB2D0
+ str r0, [r4, 0x1C]
+_080CB2C2:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CB2C8: .4byte gUnknown_03004B00
+_080CB2CC: .4byte 0x0000ffff
+_080CB2D0: .4byte sub_80CB2D4
+ thumb_func_end sub_80CB298
+
+ thumb_func_start sub_80CB2D4
+sub_80CB2D4: @ 80CB2D4
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r0, 0x1
+ bl obj_id_for_side_relative_to_move
+ movs r1, 0x32
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080CB2EC
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0xB
+ b _080CB2F0
+_080CB2EC:
+ ldrh r0, [r4, 0x2E]
+ subs r0, 0xB
+_080CB2F0:
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x6
+ bne _080CB30C
+ movs r0, 0
+ strh r0, [r4, 0x30]
+ ldrh r0, [r4, 0x32]
+ movs r1, 0x1
+ eors r0, r1
+ strh r0, [r4, 0x32]
+_080CB30C:
+ adds r0, r4, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _080CB33A
+ ldrh r0, [r4, 0x3C]
+ subs r0, 0x1
+ strh r0, [r4, 0x3C]
+ lsls r0, 16
+ cmp r0, 0
+ ble _080CB334
+ ldrh r1, [r4, 0x3A]
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl StartSpriteAffineAnim
+ b _080CB33A
+_080CB334:
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080CB33A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80CB2D4
+
+ thumb_func_start sub_80CB340
+sub_80CB340: @ 80CB340
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r0, 0x1
+ bl obj_id_for_side_relative_to_move
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r1, _080CB36C
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r1
+ adds r0, 0x3E
+ ldrb r0, [r0]
+ lsls r0, 29
+ cmp r0, 0
+ bge _080CB370
+ adds r0, r4, 0
+ bl move_anim_task_del
+ b _080CB396
+ .align 2, 0
+_080CB36C: .4byte gSprites
+_080CB370:
+ adds r0, r2, 0
+ movs r1, 0x1
+ bl sub_8078E70
+ ldr r1, _080CB39C
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r2, _080CB3A0
+ ldrh r1, [r2]
+ strh r1, [r0, 0x8]
+ ldrh r1, [r2, 0x2]
+ strh r1, [r0, 0xA]
+ movs r1, 0x80
+ lsls r1, 1
+ strh r1, [r0, 0x1E]
+ ldr r1, _080CB3A4
+ str r1, [r0]
+_080CB396:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CB39C: .4byte gTasks
+_080CB3A0: .4byte gUnknown_03004B00
+_080CB3A4: .4byte sub_80CB3A8
+ thumb_func_end sub_80CB340
+
+ thumb_func_start sub_80CB3A8
+sub_80CB3A8: @ 80CB3A8
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x1
+ bl obj_id_for_side_relative_to_move
+ lsls r0, 24
+ lsrs r0, 24
+ adds r6, r0, 0
+ ldr r1, _080CB428
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r4, r0, r1
+ ldrh r1, [r4, 0x8]
+ ldrh r0, [r4, 0x1C]
+ adds r1, r0
+ strh r1, [r4, 0x1C]
+ ldr r2, _080CB42C
+ lsls r0, r6, 4
+ adds r0, r6
+ lsls r0, 2
+ adds r5, r0, r2
+ lsls r1, 16
+ asrs r1, 24
+ strh r1, [r5, 0x24]
+ ldr r0, _080CB430
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080CB3F2
+ ldrh r0, [r5, 0x24]
+ negs r0, r0
+ strh r0, [r5, 0x24]
+_080CB3F2:
+ ldrh r0, [r4, 0x1E]
+ adds r0, 0x10
+ strh r0, [r4, 0x1E]
+ movs r0, 0x1E
+ ldrsh r2, [r4, r0]
+ adds r0, r6, 0
+ adds r1, r2, 0
+ movs r3, 0
+ bl obj_id_set_rotscale
+ adds r0, r6, 0
+ bl sub_8079A64
+ ldrh r0, [r4, 0xA]
+ subs r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0
+ bne _080CB420
+ strh r0, [r4, 0x8]
+ ldr r0, _080CB434
+ str r0, [r4]
+_080CB420:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CB428: .4byte gTasks
+_080CB42C: .4byte gSprites
+_080CB430: .4byte gUnknown_0202F7C9
+_080CB434: .4byte sub_80CB438
+ thumb_func_end sub_80CB3A8
+
+ thumb_func_start sub_80CB438
+sub_80CB438: @ 80CB438
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldr r0, _080CB484
+ ldrh r1, [r0, 0xE]
+ ldr r0, _080CB488
+ cmp r1, r0
+ bne _080CB494
+ ldr r0, _080CB48C
+ lsls r2, r3, 2
+ adds r1, r2, r3
+ lsls r1, 3
+ adds r6, r1, r0
+ movs r1, 0x8
+ ldrsh r5, [r6, r1]
+ adds r4, r0, 0
+ cmp r5, 0
+ bne _080CB4A8
+ movs r0, 0x1
+ bl obj_id_for_side_relative_to_move
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r4, 0
+ bl sub_8078F40
+ ldr r1, _080CB490
+ lsls r0, r4, 4
+ adds r0, r4
+ lsls r0, 2
+ adds r0, r1
+ strh r5, [r0, 0x24]
+ strh r5, [r0, 0x26]
+ ldrh r0, [r6, 0x8]
+ adds r0, 0x1
+ strh r0, [r6, 0x8]
+ b _080CB4C2
+ .align 2, 0
+_080CB484: .4byte gUnknown_03004B00
+_080CB488: .4byte 0x0000ffff
+_080CB48C: .4byte gTasks
+_080CB490: .4byte gSprites
+_080CB494:
+ ldr r1, _080CB4C8
+ lsls r2, r3, 2
+ adds r0, r2, r3
+ lsls r0, 3
+ adds r0, r1
+ movs r4, 0x8
+ ldrsh r0, [r0, r4]
+ adds r4, r1, 0
+ cmp r0, 0
+ beq _080CB4C2
+_080CB4A8:
+ adds r1, r2, r3
+ lsls r1, 3
+ adds r1, r4
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3
+ bne _080CB4C2
+ adds r0, r3, 0
+ bl move_anim_task_del
+_080CB4C2:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CB4C8: .4byte gTasks
+ thumb_func_end sub_80CB438
+
+ thumb_func_start sub_80CB4CC
+sub_80CB4CC: @ 80CB4CC
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ beq _080CB4DE
+ cmp r0, 0x1
+ beq _080CB538
+ b _080CB58A
+_080CB4DE:
+ ldr r6, _080CB530
+ ldrb r0, [r6]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _080CB4F6
+ ldr r1, _080CB534
+ movs r2, 0
+ ldrsh r0, [r1, r2]
+ negs r0, r0
+ strh r0, [r1]
+_080CB4F6:
+ ldrb r0, [r6]
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ ldr r4, _080CB534
+ lsrs r0, 24
+ ldrh r1, [r4]
+ adds r0, r1
+ strh r0, [r5, 0x20]
+ ldrb r0, [r6]
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r4, [r4, 0x2]
+ adds r0, r4
+ strh r0, [r5, 0x22]
+ adds r2, r5, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ ldrh r0, [r5, 0x2E]
+ adds r0, 0x1
+ strh r0, [r5, 0x2E]
+ b _080CB58A
+ .align 2, 0
+_080CB530: .4byte gUnknown_0202F7C9
+_080CB534: .4byte gUnknown_03004B00
+_080CB538:
+ adds r2, r5, 0
+ adds r2, 0x3E
+ ldrb r1, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+ adds r0, r5, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _080CB58A
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl ChangeSpriteAffineAnim
+ movs r0, 0x19
+ strh r0, [r5, 0x2E]
+ ldr r4, _080CB590
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x32]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x36]
+ ldr r0, _080CB594
+ str r0, [r5, 0x1C]
+ ldr r1, _080CB598
+ adds r0, r5, 0
+ bl oamt_set_x3A_32
+_080CB58A:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CB590: .4byte gUnknown_0202F7C8
+_080CB594: .4byte sub_8078CC0
+_080CB598: .4byte move_anim_8072740
+ thumb_func_end sub_80CB4CC
+
+ thumb_func_start sub_80CB59C
+sub_80CB59C: @ 80CB59C
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ bne _080CB608
+ ldr r4, _080CB614
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+ ldr r4, _080CB618
+ ldrh r0, [r4]
+ strh r0, [r5, 0x24]
+ ldrh r0, [r4, 0x2]
+ strh r0, [r5, 0x26]
+ ldrb r0, [r4, 0x4]
+ adds r0, 0x1E
+ adds r1, r5, 0
+ adds r1, 0x43
+ strb r0, [r1]
+ ldrb r1, [r4, 0x6]
+ adds r0, r5, 0
+ bl StartSpriteAnim
+ ldrh r0, [r4, 0x8]
+ strh r0, [r5, 0x32]
+ ldrh r0, [r5, 0x2E]
+ adds r0, 0x1
+ strh r0, [r5, 0x2E]
+ movs r2, 0x22
+ ldrsh r0, [r5, r2]
+ movs r2, 0x26
+ ldrsh r1, [r5, r2]
+ adds r0, r1
+ cmp r0, 0x78
+ ble _080CB608
+ ldrh r0, [r5, 0x22]
+ adds r1, r0, 0
+ subs r1, 0x78
+ ldrh r2, [r5, 0x26]
+ adds r0, r2
+ adds r1, r0
+ strh r1, [r5, 0x22]
+_080CB608:
+ ldr r0, _080CB61C
+ str r0, [r5, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CB614: .4byte gUnknown_0202F7C8
+_080CB618: .4byte gUnknown_03004B00
+_080CB61C: .4byte sub_80CB710
+ thumb_func_end sub_80CB59C
+
+ thumb_func_start sub_80CB620
+sub_80CB620: @ 80CB620
+ push {r4-r6,lr}
+ mov r6, r10
+ mov r5, r9
+ mov r4, r8
+ push {r4-r6}
+ sub sp, 0x4
+ mov r9, r0
+ ldr r4, _080CB6FC
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ mov r8, r0
+ mov r0, r8
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ ldr r6, _080CB700
+ ldrb r0, [r6]
+ movs r1, 0x2
+ bl sub_8077ABC
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldrb r0, [r6]
+ movs r1, 0x3
+ bl sub_8077ABC
+ adds r2, r0, 0
+ lsls r2, 24
+ subs r4, r5
+ lsls r4, 16
+ lsrs r2, 24
+ mov r1, r8
+ subs r2, r1
+ lsls r2, 16
+ lsrs r2, 16
+ lsrs r3, r4, 16
+ mov r10, r3
+ asrs r4, 16
+ ldr r6, _080CB704
+ movs r1, 0
+ ldrsh r0, [r6, r1]
+ muls r0, r4
+ movs r1, 0x64
+ str r2, [sp]
+ bl __divsi3
+ adds r5, r0
+ mov r3, r9
+ strh r5, [r3, 0x20]
+ ldr r2, [sp]
+ lsls r0, r2, 16
+ asrs r0, 16
+ movs r3, 0
+ ldrsh r1, [r6, r3]
+ muls r0, r1
+ movs r1, 0x64
+ bl __divsi3
+ add r8, r0
+ mov r1, r8
+ mov r0, r9
+ strh r1, [r0, 0x22]
+ ldrh r0, [r6, 0x2]
+ mov r3, r9
+ strh r0, [r3, 0x24]
+ ldrh r0, [r6, 0x4]
+ strh r0, [r3, 0x26]
+ ldrb r0, [r6, 0x6]
+ adds r0, 0x1E
+ mov r1, r9
+ adds r1, 0x43
+ strb r0, [r1]
+ ldrb r1, [r6, 0x8]
+ mov r0, r9
+ bl StartSpriteAnim
+ ldrh r0, [r6, 0xA]
+ mov r1, r9
+ strh r0, [r1, 0x32]
+ ldr r0, _080CB708
+ str r0, [r1, 0x1C]
+ ldr r1, _080CB70C
+ mov r3, r9
+ ldrh r0, [r3, 0x20]
+ strh r0, [r1]
+ ldrh r0, [r3, 0x22]
+ strh r0, [r1, 0x2]
+ mov r0, r10
+ strh r0, [r1, 0x4]
+ ldr r2, [sp]
+ strh r2, [r1, 0x6]
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CB6FC: .4byte gUnknown_0202F7C8
+_080CB700: .4byte gUnknown_0202F7C9
+_080CB704: .4byte gUnknown_03004B00
+_080CB708: .4byte sub_80CB710
+_080CB70C: .4byte gUnknown_03000728
+ thumb_func_end sub_80CB620
+
+ thumb_func_start sub_80CB710
+sub_80CB710: @ 80CB710
+ push {lr}
+ adds r3, r0, 0
+ ldrh r1, [r3, 0x2E]
+ adds r1, 0x1
+ strh r1, [r3, 0x2E]
+ lsls r1, 16
+ asrs r1, 16
+ movs r2, 0x32
+ ldrsh r0, [r3, r2]
+ subs r0, 0xA
+ cmp r1, r0
+ ble _080CB750
+ movs r0, 0x2E
+ ldrsh r1, [r3, r0]
+ lsrs r0, r1, 31
+ adds r0, r1, r0
+ asrs r0, 1
+ lsls r0, 1
+ subs r1, r0
+ movs r2, 0x3E
+ adds r2, r3
+ mov r12, r2
+ movs r0, 0x1
+ ands r1, r0
+ lsls r1, 2
+ ldrb r2, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ mov r1, r12
+ strb r0, [r1]
+_080CB750:
+ movs r2, 0x2E
+ ldrsh r1, [r3, r2]
+ movs r2, 0x32
+ ldrsh r0, [r3, r2]
+ cmp r1, r0
+ ble _080CB762
+ adds r0, r3, 0
+ bl move_anim_8072740
+_080CB762:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80CB710
+
+ thumb_func_start sub_80CB768
+sub_80CB768: @ 80CB768
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r6, r1]
+ cmp r0, 0
+ bne _080CB7A8
+ ldr r5, _080CB7E4
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ ldr r4, _080CB7E8
+ lsrs r0, 24
+ ldrh r2, [r4]
+ adds r0, r2
+ strh r0, [r6, 0x20]
+ ldrb r0, [r5]
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r4, 0x2]
+ adds r0, r1
+ strh r0, [r6, 0x22]
+ ldrh r0, [r4, 0x4]
+ strh r0, [r6, 0x30]
+ ldrh r0, [r4, 0x6]
+ strh r0, [r6, 0x32]
+ ldrh r0, [r4, 0x8]
+ strh r0, [r6, 0x34]
+_080CB7A8:
+ ldrh r0, [r6, 0x2E]
+ adds r0, 0x1
+ strh r0, [r6, 0x2E]
+ ldrh r1, [r6, 0x30]
+ muls r0, r1
+ strh r0, [r6, 0x24]
+ movs r2, 0x2E
+ ldrsh r1, [r6, r2]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ movs r1, 0xFF
+ ands r0, r1
+ movs r2, 0x32
+ ldrsh r1, [r6, r2]
+ bl Sin
+ strh r0, [r6, 0x26]
+ movs r0, 0x2E
+ ldrsh r1, [r6, r0]
+ movs r2, 0x34
+ ldrsh r0, [r6, r2]
+ cmp r1, r0
+ ble _080CB7DE
+ adds r0, r6, 0
+ bl move_anim_8072740
+_080CB7DE:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CB7E4: .4byte gUnknown_0202F7C8
+_080CB7E8: .4byte gUnknown_03004B00
+ thumb_func_end sub_80CB768
+
+ thumb_func_start sub_80CB7EC
+sub_80CB7EC: @ 80CB7EC
+ push {r4,r5,lr}
+ movs r2, 0x20
+ ldrsh r4, [r0, r2]
+ lsls r4, 8
+ movs r3, 0x22
+ ldrsh r2, [r0, r3]
+ orrs r4, r2
+ movs r5, 0x3A
+ ldrsh r2, [r0, r5]
+ lsls r2, 8
+ movs r5, 0x3C
+ ldrsh r3, [r0, r5]
+ orrs r2, r3
+ lsls r1, 8
+ strh r4, [r0, 0x38]
+ strh r2, [r0, 0x3A]
+ strh r1, [r0, 0x3C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80CB7EC
+
+ thumb_func_start sub_80CB814
+sub_80CB814: @ 80CB814
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ mov r8, r0
+ ldrh r0, [r0, 0x38]
+ lsrs r1, r0, 8
+ mov r10, r1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ mov r1, r8
+ ldrh r0, [r1, 0x3A]
+ lsrs r2, r0, 8
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldrh r1, [r1, 0x3C]
+ lsls r0, r1, 16
+ asrs r0, 24
+ lsls r0, 16
+ lsrs r6, r0, 16
+ movs r3, 0xFF
+ ands r3, r1
+ cmp r2, 0
+ bne _080CB84E
+ movs r2, 0x20
+ negs r2, r2
+ b _080CB856
+_080CB84E:
+ cmp r2, 0xFF
+ bne _080CB856
+ movs r2, 0x88
+ lsls r2, 1
+_080CB856:
+ mov r0, r9
+ subs r4, r0
+ lsls r4, 16
+ lsrs r4, 16
+ mov r1, r10
+ subs r0, r2, r1
+ lsls r5, r3, 16
+ asrs r5, 16
+ muls r0, r5
+ lsls r1, r6, 16
+ asrs r7, r1, 16
+ adds r1, r7, 0
+ bl __divsi3
+ adds r6, r0, 0
+ lsls r4, 16
+ asrs r4, 16
+ adds r0, r4, 0
+ muls r0, r5
+ adds r1, r7, 0
+ bl __divsi3
+ add r6, r10
+ mov r1, r8
+ strh r6, [r1, 0x20]
+ add r0, r9
+ strh r0, [r1, 0x22]
+ adds r5, 0x1
+ lsls r5, 16
+ lsrs r3, r5, 16
+ asrs r5, 16
+ cmp r5, r7
+ beq _080CB8A8
+ lsls r1, r7, 8
+ lsls r0, r3, 16
+ asrs r0, 16
+ orrs r0, r1
+ mov r1, r8
+ strh r0, [r1, 0x3C]
+ movs r0, 0
+ b _080CB8AA
+_080CB8A8:
+ movs r0, 0x1
+_080CB8AA:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80CB814
+
+ thumb_func_start sub_80CB8B8
+sub_80CB8B8: @ 80CB8B8
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0xA
+ bne _080CB8CC
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl StartSpriteAffineAnim
+_080CB8CC:
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x32
+ ble _080CB8E0
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080CB8E0:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80CB8B8
+
+ thumb_func_start sub_80CB8E8
+sub_80CB8E8: @ 80CB8E8
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r1, 0x34
+ ldrsh r0, [r4, r1]
+ lsls r0, 7
+ movs r2, 0x36
+ ldrsh r1, [r4, r2]
+ bl __divsi3
+ ldrh r1, [r4, 0x2E]
+ adds r1, r0
+ movs r5, 0
+ strh r1, [r4, 0x2E]
+ lsls r1, 16
+ asrs r1, 16
+ cmp r1, 0x7F
+ ble _080CB912
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ strh r5, [r4, 0x2E]
+_080CB912:
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x80
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x30
+ ldrsh r2, [r4, r1]
+ lsls r2, 3
+ movs r1, 0x1E
+ subs r1, r2
+ lsls r1, 16
+ asrs r1, 16
+ bl Sin
+ strh r0, [r4, 0x26]
+ adds r0, r4, 0
+ bl sub_80CB814
+ lsls r0, 24
+ cmp r0, 0
+ beq _080CB942
+ strh r5, [r4, 0x26]
+ strh r5, [r4, 0x2E]
+ ldr r0, _080CB948
+ str r0, [r4, 0x1C]
+_080CB942:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CB948: .4byte sub_80CB8B8
+ thumb_func_end sub_80CB8E8
+
+ thumb_func_start sub_80CB94C
+sub_80CB94C: @ 80CB94C
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ movs r1, 0
+ bl sub_80787B0
+ ldr r4, _080CB994
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldrb r0, [r4]
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r0, _080CB998
+ ldrb r1, [r0]
+ movs r0, 0x2
+ eors r0, r1
+ ldrb r4, [r4]
+ cmp r0, r4
+ bne _080CB99C
+ strh r6, [r5, 0x3A]
+ adds r0, r2, 0
+ adds r0, 0xA
+ strh r0, [r5, 0x3C]
+ adds r0, r5, 0
+ movs r1, 0x3C
+ bl sub_80CB7EC
+ movs r0, 0x1
+ b _080CB9AE
+ .align 2, 0
+_080CB994: .4byte gUnknown_0202F7C9
+_080CB998: .4byte gUnknown_0202F7C8
+_080CB99C:
+ strh r6, [r5, 0x3A]
+ adds r0, r2, 0
+ adds r0, 0xA
+ strh r0, [r5, 0x3C]
+ adds r0, r5, 0
+ movs r1, 0x3C
+ bl sub_80CB7EC
+ movs r0, 0x3
+_080CB9AE:
+ strh r0, [r5, 0x34]
+ movs r0, 0x3C
+ strh r0, [r5, 0x36]
+ ldr r0, _080CB9C0
+ str r0, [r5, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CB9C0: .4byte sub_80CB8E8
+ thumb_func_end sub_80CB94C
+
+ thumb_func_start sub_80CB9C4
+sub_80CB9C4: @ 80CB9C4
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r1, 0x34
+ ldrsh r0, [r4, r1]
+ lsls r0, 7
+ movs r2, 0x36
+ ldrsh r1, [r4, r2]
+ bl __divsi3
+ ldrh r1, [r4, 0x2E]
+ adds r1, r0
+ movs r5, 0
+ strh r1, [r4, 0x2E]
+ lsls r1, 16
+ asrs r1, 16
+ cmp r1, 0x7F
+ ble _080CB9EE
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ strh r5, [r4, 0x2E]
+_080CB9EE:
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x80
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x30
+ ldrsh r2, [r4, r1]
+ lsls r2, 3
+ movs r1, 0x1E
+ subs r1, r2
+ lsls r1, 16
+ asrs r1, 16
+ bl Sin
+ strh r0, [r4, 0x26]
+ adds r0, r4, 0
+ bl sub_80CB814
+ lsls r0, 24
+ cmp r0, 0
+ beq _080CBA20
+ strh r5, [r4, 0x26]
+ strh r5, [r4, 0x2E]
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080CBA20:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80CB9C4
+
+ thumb_func_start sub_80CBA28
+sub_80CBA28: @ 80CBA28
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ ldr r4, _080CBA64
+ ldrb r0, [r4]
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ bne _080CBA6C
+ strh r0, [r5, 0x3A]
+ adds r0, r6, 0
+ adds r0, 0xA
+ strh r0, [r5, 0x3C]
+ adds r0, r5, 0
+ movs r1, 0x28
+ bl sub_80CB7EC
+ movs r0, 0x3
+ strh r0, [r5, 0x34]
+ movs r0, 0x3C
+ strh r0, [r5, 0x36]
+ ldr r0, _080CBA68
+ b _080CBA96
+ .align 2, 0
+_080CBA64: .4byte gUnknown_0202F7C9
+_080CBA68: .4byte sub_80CB8E8
+_080CBA6C:
+ movs r0, 0xFF
+ strh r0, [r5, 0x3A]
+ adds r0, r6, 0
+ adds r0, 0xA
+ strh r0, [r5, 0x3C]
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080CBA84
+ movs r0, 0
+ strh r0, [r5, 0x3A]
+_080CBA84:
+ adds r0, r5, 0
+ movs r1, 0x28
+ bl sub_80CB7EC
+ movs r0, 0x3
+ strh r0, [r5, 0x34]
+ movs r0, 0x3C
+ strh r0, [r5, 0x36]
+ ldr r0, _080CBAA0
+_080CBA96:
+ str r0, [r5, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CBAA0: .4byte sub_80CB9C4
+ thumb_func_end sub_80CBA28
+
+ thumb_func_start sub_80CBAA4
+sub_80CBAA4: @ 80CBAA4
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080CBABE
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_8078764
+ ldr r0, _080CBAE4
+ ldrh r0, [r0, 0x4]
+ strh r0, [r4, 0x30]
+_080CBABE:
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ ldrh r1, [r4, 0x30]
+ muls r0, r1
+ strh r0, [r4, 0x26]
+ adds r0, r4, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080CBADE
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080CBADE:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CBAE4: .4byte gUnknown_03004B00
+ thumb_func_end sub_80CBAA4
+
+ thumb_func_start sub_80CBAE8
+sub_80CBAE8: @ 80CBAE8
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ movs r1, 0
+ bl sub_8078764
+ ldr r4, _080CBB30
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldrb r0, [r4]
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r0, _080CBB34
+ ldrb r1, [r0]
+ movs r0, 0x2
+ eors r0, r1
+ ldrb r4, [r4]
+ cmp r0, r4
+ bne _080CBB38
+ strh r6, [r5, 0x3A]
+ adds r0, r2, 0
+ adds r0, 0xA
+ strh r0, [r5, 0x3C]
+ adds r0, r5, 0
+ movs r1, 0x3C
+ bl sub_80CB7EC
+ movs r0, 0x1
+ b _080CBB4A
+ .align 2, 0
+_080CBB30: .4byte gUnknown_0202F7C8
+_080CBB34: .4byte gUnknown_0202F7C9
+_080CBB38:
+ strh r6, [r5, 0x3A]
+ adds r0, r2, 0
+ adds r0, 0xA
+ strh r0, [r5, 0x3C]
+ adds r0, r5, 0
+ movs r1, 0x3C
+ bl sub_80CB7EC
+ movs r0, 0x3
+_080CBB4A:
+ strh r0, [r5, 0x34]
+ movs r0, 0x3C
+ strh r0, [r5, 0x36]
+ ldr r0, _080CBB5C
+ str r0, [r5, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CBB5C: .4byte sub_80CBB60
+ thumb_func_end sub_80CBAE8
+
+ thumb_func_start sub_80CBB60
+sub_80CBB60: @ 80CBB60
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r1, 0x34
+ ldrsh r0, [r4, r1]
+ lsls r0, 7
+ movs r2, 0x36
+ ldrsh r1, [r4, r2]
+ bl __divsi3
+ ldrh r1, [r4, 0x2E]
+ adds r1, r0
+ movs r5, 0
+ strh r1, [r4, 0x2E]
+ lsls r1, 16
+ asrs r1, 16
+ cmp r1, 0x7F
+ ble _080CBB8A
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ strh r5, [r4, 0x2E]
+_080CBB8A:
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x80
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x30
+ ldrsh r2, [r4, r1]
+ lsls r2, 3
+ movs r1, 0x1E
+ subs r1, r2
+ lsls r1, 16
+ asrs r1, 16
+ bl Sin
+ strh r0, [r4, 0x26]
+ lsls r0, 16
+ cmp r0, 0
+ bne _080CBBBE
+ movs r0, 0x3F
+ bl sub_8076F98
+ adds r1, r0, 0
+ lsls r1, 24
+ asrs r1, 24
+ movs r0, 0x7D
+ bl PlaySE12WithPanning
+_080CBBBE:
+ adds r0, r4, 0
+ bl sub_80CB814
+ lsls r0, 24
+ cmp r0, 0
+ beq _080CBBE6
+ strh r5, [r4, 0x26]
+ strh r5, [r4, 0x2E]
+ ldr r0, _080CBBEC
+ str r0, [r4, 0x1C]
+ movs r0, 0x40
+ negs r0, r0
+ bl sub_8076F98
+ adds r1, r0, 0
+ lsls r1, 24
+ asrs r1, 24
+ movs r0, 0x7D
+ bl PlaySE12WithPanning
+_080CBBE6:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CBBEC: .4byte sub_80CB8B8
+ thumb_func_end sub_80CBB60
+
+ thumb_func_start sub_80CBBF0
+sub_80CBBF0: @ 80CBBF0
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080CBC84
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080CBC18
+ ldr r0, _080CBC14
+ ldrh r1, [r0, 0x2]
+ strh r1, [r4, 0x30]
+ movs r1, 0x78
+ strh r1, [r4, 0x20]
+ adds r5, r0, 0
+ b _080CBC3A
+ .align 2, 0
+_080CBC14: .4byte gUnknown_03004B00
+_080CBC18:
+ ldr r0, _080CBC74
+ movs r1, 0x2
+ ldrsh r3, [r0, r1]
+ adds r1, r3, 0
+ subs r1, 0x20
+ adds r2, r1, 0
+ adds r5, r0, 0
+ cmp r1, 0
+ bge _080CBC2E
+ adds r2, r3, 0
+ adds r2, 0xDF
+_080CBC2E:
+ asrs r0, r2, 8
+ lsls r0, 8
+ subs r0, r1, r0
+ strh r0, [r4, 0x30]
+ movs r0, 0x46
+ strh r0, [r4, 0x20]
+_080CBC3A:
+ ldrh r0, [r5]
+ strh r0, [r4, 0x22]
+ strh r0, [r4, 0x32]
+ movs r0, 0x14
+ strh r0, [r4, 0x36]
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ movs r1, 0x3C
+ bl Cos
+ strh r0, [r4, 0x24]
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ movs r1, 0x14
+ bl Sin
+ strh r0, [r4, 0x26]
+ ldr r0, _080CBC78
+ str r0, [r4, 0x1C]
+ ldrh r0, [r4, 0x30]
+ subs r0, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0xBE
+ bhi _080CBC7C
+ adds r1, r4, 0
+ adds r1, 0x43
+ movs r0, 0x1F
+ b _080CBC82
+ .align 2, 0
+_080CBC74: .4byte gUnknown_03004B00
+_080CBC78: .4byte sub_80CBC8C
+_080CBC7C:
+ adds r1, r4, 0
+ adds r1, 0x43
+ movs r0, 0x1D
+_080CBC82:
+ strb r0, [r1]
+_080CBC84:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80CBBF0
+
+ thumb_func_start sub_80CBC8C
+sub_80CBC8C: @ 80CBC8C
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r1, 0x34
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080CBC9E
+ cmp r0, 0x1
+ beq _080CBCCE
+ b _080CBCEE
+_080CBC9E:
+ ldrh r5, [r4, 0x32]
+ movs r1, 0x32
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x4E
+ ble _080CBCB6
+ movs r0, 0x1
+ strh r0, [r4, 0x34]
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl StartSpriteAffineAnim
+ b _080CBCEE
+_080CBCB6:
+ movs r1, 0x36
+ ldrsh r0, [r4, r1]
+ movs r1, 0xA
+ bl __divsi3
+ adds r0, r5, r0
+ strh r0, [r4, 0x32]
+ ldrh r1, [r4, 0x36]
+ adds r1, 0x3
+ strh r1, [r4, 0x36]
+ strh r0, [r4, 0x22]
+ b _080CBCEE
+_080CBCCE:
+ movs r1, 0x34
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080CBCEE
+ adds r0, r4, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _080CBCEE
+ movs r0, 0
+ strh r0, [r4, 0x2E]
+ strh r0, [r4, 0x32]
+ ldr r0, _080CBCF4
+ str r0, [r4, 0x1C]
+_080CBCEE:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CBCF4: .4byte sub_80CBCF8
+ thumb_func_end sub_80CBC8C
+
+ thumb_func_start sub_80CBCF8
+sub_80CBCF8: @ 80CBCF8
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ ldr r5, _080CBD3C
+ movs r0, 0x2E
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 1
+ adds r3, r0, r1
+ adds r0, r5, 0x1
+ adds r0, r3, r0
+ ldrh r2, [r4, 0x32]
+ movs r6, 0x32
+ ldrsh r1, [r4, r6]
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r1, r0
+ bne _080CBD44
+ adds r0, r5, 0x2
+ adds r0, r3, r0
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0x7F
+ bne _080CBD30
+ movs r0, 0
+ strh r0, [r4, 0x2E]
+ ldr r0, _080CBD40
+ str r0, [r4, 0x1C]
+_080CBD30:
+ movs r0, 0
+ strh r0, [r4, 0x32]
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ b _080CBDAA
+ .align 2, 0
+_080CBD3C: .4byte gUnknown_083D680C
+_080CBD40: .4byte sub_80CBDB0
+_080CBD44:
+ adds r0, r2, 0x1
+ strh r0, [r4, 0x32]
+ movs r0, 0x2E
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ adds r1, r0, r5
+ movs r2, 0
+ ldrsb r2, [r1, r2]
+ adds r1, r5, 0x2
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ muls r0, r2
+ ldrh r1, [r4, 0x30]
+ adds r0, r1
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x30]
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080CBD92
+ ldrh r0, [r4, 0x30]
+ subs r0, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0xBE
+ bhi _080CBD8A
+ adds r1, r4, 0
+ adds r1, 0x43
+ movs r0, 0x1F
+ b _080CBD90
+_080CBD8A:
+ adds r1, r4, 0
+ adds r1, 0x43
+ movs r0, 0x1D
+_080CBD90:
+ strb r0, [r1]
+_080CBD92:
+ movs r6, 0x30
+ ldrsh r0, [r4, r6]
+ movs r1, 0x3C
+ bl Cos
+ strh r0, [r4, 0x24]
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ movs r1, 0x14
+ bl Sin
+ strh r0, [r4, 0x26]
+_080CBDAA:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80CBCF8
+
+ thumb_func_start sub_80CBDB0
+sub_80CBDB0: @ 80CBDB0
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x14
+ ble _080CBDC2
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080CBDC2:
+ movs r0, 0x2E
+ ldrsh r1, [r4, r0]
+ lsrs r0, r1, 31
+ adds r0, r1, r0
+ asrs r0, 1
+ lsls r0, 1
+ subs r1, r0
+ adds r3, r4, 0
+ adds r3, 0x3E
+ movs r0, 0x1
+ ands r1, r0
+ lsls r1, 2
+ ldrb r2, [r3]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80CBDB0
+
+ thumb_func_start sub_80CBDF4
+sub_80CBDF4: @ 80CBDF4
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r6, r0, 0
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ ldr r1, _080CBF48
+ adds r5, r0, r1
+ ldr r4, _080CBF4C
+ ldrb r0, [r4]
+ bl sub_8079E90
+ lsls r0, 24
+ lsrs r0, 24
+ subs r0, 0x1
+ strh r0, [r5, 0x10]
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x14]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x16]
+ ldrb r0, [r4]
+ movs r1, 0x1
+ bl sub_807A100
+ strh r0, [r5, 0x1C]
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_807A100
+ strh r0, [r5, 0x1E]
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r0, 24
+ movs r2, 0x1
+ negs r2, r2
+ adds r1, r2, 0
+ cmp r0, 0x1
+ bne _080CBE5C
+ movs r1, 0x1
+_080CBE5C:
+ strh r1, [r5, 0x12]
+ movs r3, 0x12
+ ldrsh r0, [r5, r3]
+ lsls r0, 6
+ movs r1, 0x38
+ subs r1, r0
+ strh r1, [r5, 0x1A]
+ ldrh r0, [r5, 0x16]
+ subs r0, r1
+ ldrh r1, [r5, 0x14]
+ adds r0, r1
+ strh r0, [r5, 0x18]
+ ldr r0, _080CBF50
+ movs r2, 0x18
+ ldrsh r1, [r5, r2]
+ movs r3, 0x1A
+ ldrsh r2, [r5, r3]
+ ldrb r3, [r5, 0x10]
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0xC]
+ cmp r0, 0x40
+ bne _080CBE94
+ adds r0, r6, 0
+ bl move_anim_task_del
+_080CBE94:
+ ldr r4, _080CBF54
+ movs r0, 0xC
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ movs r1, 0xA
+ strh r1, [r0, 0x2E]
+ movs r2, 0xC
+ ldrsh r1, [r5, r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrh r1, [r5, 0x18]
+ strh r1, [r0, 0x30]
+ movs r3, 0xC
+ ldrsh r0, [r5, r3]
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r2, r4
+ movs r1, 0x1C
+ ldrsh r0, [r5, r1]
+ lsrs r1, r0, 31
+ adds r0, r1
+ asrs r0, 1
+ adds r0, 0xA
+ movs r3, 0x12
+ ldrsh r1, [r5, r3]
+ muls r1, r0
+ ldrh r0, [r5, 0x14]
+ subs r0, r1
+ strh r0, [r2, 0x32]
+ movs r0, 0xC
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrh r1, [r5, 0x1A]
+ strh r1, [r0, 0x34]
+ movs r1, 0xC
+ ldrsh r0, [r5, r1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ movs r2, 0x1E
+ ldrsh r0, [r5, r2]
+ lsrs r2, r0, 31
+ adds r0, r2
+ asrs r0, 1
+ adds r0, 0xA
+ movs r3, 0x12
+ ldrsh r2, [r5, r3]
+ muls r0, r2
+ ldrh r2, [r5, 0x16]
+ adds r0, r2
+ strh r0, [r1, 0x36]
+ movs r3, 0xC
+ ldrsh r1, [r5, r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ bl sub_80CC338
+ movs r1, 0xC
+ ldrsh r2, [r5, r1]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r4
+ strh r0, [r1, 0x38]
+ movs r2, 0xC
+ ldrsh r1, [r5, r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ bl sub_80786EC
+ ldr r0, _080CBF58
+ str r0, [r5]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CBF48: .4byte gTasks
+_080CBF4C: .4byte gUnknown_0202F7C9
+_080CBF50: .4byte gSpriteTemplate_83D6884
+_080CBF54: .4byte gSprites
+_080CBF58: .4byte sub_80CBF5C
+ thumb_func_end sub_80CBDF4
+
+ thumb_func_start sub_80CBF5C
+sub_80CBF5C: @ 80CBF5C
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ ldr r1, _080CBFA0
+ adds r6, r0, r1
+ movs r0, 0xC
+ ldrsh r1, [r6, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080CBFA4
+ adds r4, r0, r1
+ movs r1, 0x8
+ ldrsh r5, [r6, r1]
+ cmp r5, 0x7
+ bne _080CBF84
+ b _080CC1B4
+_080CBF84:
+ cmp r5, 0x7
+ bgt _080CBFD2
+ cmp r5, 0x3
+ bne _080CBF8E
+ b _080CC0A6
+_080CBF8E:
+ cmp r5, 0x3
+ bgt _080CBFA8
+ cmp r5, 0x1
+ beq _080CC038
+ cmp r5, 0x1
+ bgt _080CC088
+ cmp r5, 0
+ beq _080CC01A
+ b _080CC330
+ .align 2, 0
+_080CBFA0: .4byte gTasks
+_080CBFA4: .4byte gSprites
+_080CBFA8:
+ cmp r5, 0x5
+ bne _080CBFAE
+ b _080CC11C
+_080CBFAE:
+ cmp r5, 0x5
+ ble _080CBFB4
+ b _080CC196
+_080CBFB4:
+ adds r0, r6, 0
+ adds r1, r2, 0
+ bl sub_80CC358
+ adds r0, r4, 0
+ bl sub_8078718
+ lsls r0, 24
+ cmp r0, 0
+ bne _080CBFCA
+ b _080CC330
+_080CBFCA:
+ movs r0, 0x5
+ strh r0, [r6, 0x26]
+ movs r0, 0xFF
+ b _080CC32E
+_080CBFD2:
+ cmp r5, 0xB
+ bne _080CBFD8
+ b _080CC298
+_080CBFD8:
+ cmp r5, 0xB
+ bgt _080CC006
+ cmp r5, 0x9
+ bne _080CBFE2
+ b _080CC206
+_080CBFE2:
+ cmp r5, 0x9
+ ble _080CBFE8
+ b _080CC27C
+_080CBFE8:
+ adds r0, r6, 0
+ adds r1, r2, 0
+ bl sub_80CC358
+ adds r0, r4, 0
+ bl sub_8078718
+ lsls r0, 24
+ cmp r0, 0
+ bne _080CBFFE
+ b _080CC330
+_080CBFFE:
+ movs r0, 0x9
+ strh r0, [r6, 0x26]
+ movs r0, 0xFF
+ b _080CC32E
+_080CC006:
+ cmp r5, 0xD
+ bne _080CC00C
+ b _080CC30A
+_080CC00C:
+ cmp r5, 0xD
+ bge _080CC012
+ b _080CC2EA
+_080CC012:
+ cmp r5, 0xFF
+ bne _080CC018
+ b _080CC31A
+_080CC018:
+ b _080CC330
+_080CC01A:
+ adds r0, r6, 0
+ adds r1, r2, 0
+ bl sub_80CC358
+ adds r0, r4, 0
+ bl sub_8078718
+ lsls r0, 24
+ cmp r0, 0
+ bne _080CC030
+ b _080CC330
+_080CC030:
+ movs r0, 0x1
+ strh r0, [r6, 0x26]
+ movs r0, 0xFF
+ b _080CC32E
+_080CC038:
+ ldrh r2, [r4, 0x24]
+ ldrh r3, [r4, 0x20]
+ adds r2, r3
+ movs r0, 0
+ strh r2, [r4, 0x20]
+ ldrh r1, [r4, 0x26]
+ ldrh r3, [r4, 0x22]
+ adds r1, r3
+ strh r1, [r4, 0x22]
+ strh r0, [r4, 0x24]
+ strh r0, [r4, 0x26]
+ movs r0, 0xA
+ strh r0, [r4, 0x2E]
+ strh r2, [r4, 0x30]
+ ldrh r0, [r6, 0x14]
+ strh r0, [r4, 0x32]
+ strh r1, [r4, 0x34]
+ ldrh r0, [r6, 0x16]
+ strh r0, [r4, 0x36]
+ adds r0, r4, 0
+ bl sub_80CC338
+ strh r0, [r4, 0x38]
+ ldrh r0, [r6, 0x10]
+ adds r0, 0x2
+ strh r0, [r6, 0x10]
+ strh r5, [r6, 0xE]
+ adds r1, r4, 0
+ adds r1, 0x43
+ strb r0, [r1]
+ ldrb r1, [r6, 0xE]
+ adds r0, r4, 0
+ bl StartSpriteAnim
+ adds r0, r4, 0
+ bl sub_80786EC
+ ldrh r0, [r6, 0x8]
+ adds r0, 0x1
+ b _080CC32E
+_080CC088:
+ adds r0, r6, 0
+ adds r1, r2, 0
+ bl sub_80CC358
+ adds r0, r4, 0
+ bl sub_8078718
+ lsls r0, 24
+ cmp r0, 0
+ bne _080CC09E
+ b _080CC330
+_080CC09E:
+ movs r0, 0x3
+ strh r0, [r6, 0x26]
+ movs r0, 0xFF
+ b _080CC32E
+_080CC0A6:
+ ldrh r1, [r4, 0x24]
+ ldrh r0, [r4, 0x20]
+ adds r1, r0
+ movs r0, 0
+ strh r1, [r4, 0x20]
+ ldrh r2, [r4, 0x26]
+ ldrh r3, [r4, 0x22]
+ adds r2, r3
+ strh r2, [r4, 0x22]
+ strh r0, [r4, 0x24]
+ strh r0, [r4, 0x26]
+ movs r0, 0xA
+ strh r0, [r4, 0x2E]
+ strh r1, [r4, 0x30]
+ movs r1, 0x1C
+ ldrsh r0, [r6, r1]
+ lsrs r1, r0, 31
+ adds r0, r1
+ asrs r0, 1
+ adds r0, 0xA
+ movs r3, 0x12
+ ldrsh r1, [r6, r3]
+ muls r1, r0
+ ldrh r0, [r6, 0x14]
+ subs r0, r1
+ strh r0, [r4, 0x32]
+ strh r2, [r4, 0x34]
+ movs r1, 0x1E
+ ldrsh r0, [r6, r1]
+ lsrs r1, r0, 31
+ adds r0, r1
+ asrs r0, 1
+ adds r0, 0xA
+ movs r2, 0x12
+ ldrsh r1, [r6, r2]
+ muls r1, r0
+ ldrh r0, [r6, 0x16]
+ subs r0, r1
+ strh r0, [r4, 0x36]
+ adds r0, r4, 0
+ bl sub_80CC338
+ strh r0, [r4, 0x38]
+ movs r0, 0x2
+ strh r0, [r6, 0xE]
+ ldrh r0, [r6, 0x10]
+ adds r1, r4, 0
+ adds r1, 0x43
+ strb r0, [r1]
+ ldrb r1, [r6, 0xE]
+ adds r0, r4, 0
+ bl StartSpriteAnim
+ adds r0, r4, 0
+ bl sub_80786EC
+ ldrh r0, [r6, 0x8]
+ adds r0, 0x1
+ b _080CC32E
+_080CC11C:
+ ldrh r1, [r4, 0x24]
+ ldrh r3, [r4, 0x20]
+ adds r1, r3
+ movs r0, 0
+ strh r1, [r4, 0x20]
+ ldrh r2, [r4, 0x26]
+ ldrh r3, [r4, 0x22]
+ adds r2, r3
+ strh r2, [r4, 0x22]
+ strh r0, [r4, 0x24]
+ strh r0, [r4, 0x26]
+ movs r0, 0xA
+ strh r0, [r4, 0x2E]
+ strh r1, [r4, 0x30]
+ movs r1, 0x1C
+ ldrsh r0, [r6, r1]
+ lsrs r1, r0, 31
+ adds r0, r1
+ asrs r0, 1
+ adds r0, 0xA
+ movs r3, 0x12
+ ldrsh r1, [r6, r3]
+ muls r0, r1
+ ldrh r1, [r6, 0x14]
+ adds r0, r1
+ strh r0, [r4, 0x32]
+ strh r2, [r4, 0x34]
+ movs r2, 0x1E
+ ldrsh r0, [r6, r2]
+ lsrs r1, r0, 31
+ adds r0, r1
+ asrs r0, 1
+ adds r0, 0xA
+ movs r3, 0x12
+ ldrsh r1, [r6, r3]
+ muls r0, r1
+ ldrh r1, [r6, 0x16]
+ adds r0, r1
+ strh r0, [r4, 0x36]
+ adds r0, r4, 0
+ bl sub_80CC338
+ strh r0, [r4, 0x38]
+ ldrh r1, [r6, 0x10]
+ subs r1, 0x2
+ strh r1, [r6, 0x10]
+ movs r0, 0x3
+ strh r0, [r6, 0xE]
+ adds r0, r4, 0
+ adds r0, 0x43
+ strb r1, [r0]
+ ldrb r1, [r6, 0xE]
+ adds r0, r4, 0
+ bl StartSpriteAnim
+ adds r0, r4, 0
+ bl sub_80786EC
+ ldrh r0, [r6, 0x8]
+ adds r0, 0x1
+ b _080CC32E
+_080CC196:
+ adds r0, r6, 0
+ adds r1, r2, 0
+ bl sub_80CC358
+ adds r0, r4, 0
+ bl sub_8078718
+ lsls r0, 24
+ cmp r0, 0
+ bne _080CC1AC
+ b _080CC330
+_080CC1AC:
+ movs r0, 0x7
+ strh r0, [r6, 0x26]
+ movs r0, 0xFF
+ b _080CC32E
+_080CC1B4:
+ ldrh r2, [r4, 0x24]
+ ldrh r3, [r4, 0x20]
+ adds r2, r3
+ movs r0, 0
+ strh r2, [r4, 0x20]
+ ldrh r1, [r4, 0x26]
+ ldrh r3, [r4, 0x22]
+ adds r1, r3
+ strh r1, [r4, 0x22]
+ strh r0, [r4, 0x24]
+ strh r0, [r4, 0x26]
+ movs r0, 0xA
+ strh r0, [r4, 0x2E]
+ strh r2, [r4, 0x30]
+ ldrh r0, [r6, 0x14]
+ strh r0, [r4, 0x32]
+ strh r1, [r4, 0x34]
+ ldrh r0, [r6, 0x16]
+ strh r0, [r4, 0x36]
+ adds r0, r4, 0
+ bl sub_80CC338
+ strh r0, [r4, 0x38]
+ ldrh r1, [r6, 0x10]
+ adds r1, 0x2
+ strh r1, [r6, 0x10]
+ movs r0, 0x4
+ strh r0, [r6, 0xE]
+ adds r0, r4, 0
+ adds r0, 0x43
+ strb r1, [r0]
+ ldrb r1, [r6, 0xE]
+ adds r0, r4, 0
+ bl StartSpriteAnim
+ adds r0, r4, 0
+ bl sub_80786EC
+ ldrh r0, [r6, 0x8]
+ adds r0, 0x1
+ b _080CC32E
+_080CC206:
+ ldrh r1, [r4, 0x24]
+ ldrh r0, [r4, 0x20]
+ adds r1, r0
+ movs r0, 0
+ strh r1, [r4, 0x20]
+ ldrh r2, [r4, 0x26]
+ ldrh r3, [r4, 0x22]
+ adds r2, r3
+ strh r2, [r4, 0x22]
+ strh r0, [r4, 0x24]
+ strh r0, [r4, 0x26]
+ movs r0, 0xA
+ strh r0, [r4, 0x2E]
+ strh r1, [r4, 0x30]
+ movs r1, 0x1C
+ ldrsh r0, [r6, r1]
+ lsrs r1, r0, 31
+ adds r0, r1
+ asrs r0, 1
+ adds r0, 0xA
+ movs r3, 0x12
+ ldrsh r1, [r6, r3]
+ muls r1, r0
+ ldrh r0, [r6, 0x14]
+ subs r0, r1
+ strh r0, [r4, 0x32]
+ strh r2, [r4, 0x34]
+ movs r1, 0x1E
+ ldrsh r0, [r6, r1]
+ lsrs r1, r0, 31
+ adds r0, r1
+ asrs r0, 1
+ adds r0, 0xA
+ movs r2, 0x12
+ ldrsh r1, [r6, r2]
+ muls r0, r1
+ ldrh r3, [r6, 0x16]
+ adds r0, r3
+ strh r0, [r4, 0x36]
+ adds r0, r4, 0
+ bl sub_80CC338
+ strh r0, [r4, 0x38]
+ movs r0, 0x5
+ strh r0, [r6, 0xE]
+ ldrh r0, [r6, 0x10]
+ adds r1, r4, 0
+ adds r1, 0x43
+ strb r0, [r1]
+ ldrb r1, [r6, 0xE]
+ adds r0, r4, 0
+ bl StartSpriteAnim
+ adds r0, r4, 0
+ bl sub_80786EC
+ ldrh r0, [r6, 0x8]
+ adds r0, 0x1
+ b _080CC32E
+_080CC27C:
+ adds r0, r6, 0
+ adds r1, r2, 0
+ bl sub_80CC358
+ adds r0, r4, 0
+ bl sub_8078718
+ lsls r0, 24
+ cmp r0, 0
+ beq _080CC330
+ movs r0, 0xB
+ strh r0, [r6, 0x26]
+ movs r0, 0xFF
+ b _080CC32E
+_080CC298:
+ ldrh r2, [r4, 0x24]
+ ldrh r0, [r4, 0x20]
+ adds r2, r0
+ movs r0, 0
+ strh r2, [r4, 0x20]
+ ldrh r1, [r4, 0x26]
+ ldrh r3, [r4, 0x22]
+ adds r1, r3
+ strh r1, [r4, 0x22]
+ strh r0, [r4, 0x24]
+ strh r0, [r4, 0x26]
+ movs r0, 0xA
+ strh r0, [r4, 0x2E]
+ strh r2, [r4, 0x30]
+ ldrh r0, [r6, 0x18]
+ strh r0, [r4, 0x32]
+ strh r1, [r4, 0x34]
+ ldrh r0, [r6, 0x1A]
+ strh r0, [r4, 0x36]
+ adds r0, r4, 0
+ bl sub_80CC338
+ strh r0, [r4, 0x38]
+ ldrh r1, [r6, 0x10]
+ subs r1, 0x2
+ strh r1, [r6, 0x10]
+ movs r0, 0x6
+ strh r0, [r6, 0xE]
+ adds r0, r4, 0
+ adds r0, 0x43
+ strb r1, [r0]
+ ldrb r1, [r6, 0xE]
+ adds r0, r4, 0
+ bl StartSpriteAnim
+ adds r0, r4, 0
+ bl sub_80786EC
+ ldrh r0, [r6, 0x8]
+ adds r0, 0x1
+ b _080CC32E
+_080CC2EA:
+ adds r0, r6, 0
+ adds r1, r2, 0
+ bl sub_80CC358
+ adds r0, r4, 0
+ bl sub_8078718
+ lsls r0, 24
+ cmp r0, 0
+ beq _080CC330
+ adds r0, r4, 0
+ bl DestroySprite
+ ldrh r0, [r6, 0x8]
+ adds r0, 0x1
+ b _080CC32E
+_080CC30A:
+ movs r1, 0x20
+ ldrsh r0, [r6, r1]
+ cmp r0, 0
+ bne _080CC330
+ adds r0, r2, 0
+ bl move_anim_task_del
+ b _080CC330
+_080CC31A:
+ ldrh r0, [r6, 0xA]
+ adds r0, 0x1
+ strh r0, [r6, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x5
+ ble _080CC330
+ movs r0, 0
+ strh r0, [r6, 0xA]
+ ldrh r0, [r6, 0x26]
+_080CC32E:
+ strh r0, [r6, 0x8]
+_080CC330:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80CBF5C
+
+ thumb_func_start sub_80CC338
+sub_80CC338: @ 80CC338
+ push {lr}
+ movs r2, 0x8
+ movs r3, 0x36
+ ldrsh r1, [r0, r3]
+ movs r3, 0x22
+ ldrsh r0, [r0, r3]
+ cmp r1, r0
+ bge _080CC34E
+ negs r0, r2
+ lsls r0, 16
+ lsrs r2, r0, 16
+_080CC34E:
+ lsls r0, r2, 16
+ asrs r0, 16
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80CC338
+
+ thumb_func_start sub_80CC358
+sub_80CC358: @ 80CC358
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r6, r0, 0
+ lsls r1, 24
+ lsrs r7, r1, 24
+ ldrh r0, [r6, 0x24]
+ adds r0, 0x1
+ strh r0, [r6, 0x24]
+ lsls r0, 16
+ cmp r0, 0
+ ble _080CC3EE
+ movs r0, 0
+ strh r0, [r6, 0x24]
+ ldr r0, _080CC3F8
+ mov r8, r0
+ movs r2, 0xC
+ ldrsh r1, [r6, r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ add r0, r8
+ ldrh r1, [r0, 0x24]
+ ldrh r2, [r0, 0x20]
+ adds r1, r2
+ ldrh r2, [r0, 0x26]
+ ldrh r0, [r0, 0x22]
+ adds r2, r0
+ ldr r0, _080CC3FC
+ lsls r1, 16
+ asrs r1, 16
+ lsls r2, 16
+ asrs r2, 16
+ ldrb r3, [r6, 0x10]
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x40
+ beq _080CC3EE
+ lsls r5, r0, 4
+ adds r5, r0
+ lsls r5, 2
+ mov r0, r8
+ adds r4, r5, r0
+ strh r7, [r4, 0x3A]
+ movs r0, 0xC
+ strh r0, [r4, 0x3C]
+ ldr r0, _080CC400
+ lsls r1, r7, 2
+ adds r1, r7
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x20]
+ adds r0, 0x1
+ strh r0, [r1, 0x20]
+ ldrh r2, [r6, 0x22]
+ movs r0, 0x1
+ ands r0, r2
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r1, 0x22]
+ adds r0, 0x1
+ strh r0, [r1, 0x22]
+ ldrb r1, [r6, 0xE]
+ adds r0, r4, 0
+ bl StartSpriteAnim
+ ldrh r0, [r6, 0x10]
+ adds r4, 0x43
+ strb r0, [r4]
+ mov r0, r8
+ adds r0, 0x1C
+ adds r5, r0
+ ldr r0, _080CC404
+ str r0, [r5]
+_080CC3EE:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CC3F8: .4byte gSprites
+_080CC3FC: .4byte gSpriteTemplate_83D6884
+_080CC400: .4byte gTasks
+_080CC404: .4byte sub_80CC408
+ thumb_func_end sub_80CC358
+
+ thumb_func_start sub_80CC408
+sub_80CC408: @ 80CC408
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080CC46A
+ movs r0, 0
+ strh r0, [r4, 0x2E]
+ adds r3, r4, 0
+ 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]
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x8
+ ble _080CC46A
+ ldr r3, _080CC470
+ movs r0, 0x3C
+ ldrsh r1, [r4, r0]
+ lsls r1, 1
+ movs r0, 0x3A
+ ldrsh r2, [r4, r0]
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r1, r0
+ adds r3, 0x8
+ adds r1, r3
+ ldrh r0, [r1]
+ subs r0, 0x1
+ strh r0, [r1]
+ adds r0, r4, 0
+ bl DestroySprite
+_080CC46A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CC470: .4byte gTasks
+ thumb_func_end sub_80CC408
+
+ thumb_func_start sub_80CC474
+sub_80CC474: @ 80CC474
+ push {r4-r7,lr}
+ adds r4, r0, 0
+ ldr r0, _080CC488
+ movs r1, 0xC
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080CC490
+ ldr r0, _080CC48C
+ b _080CC492
+ .align 2, 0
+_080CC488: .4byte gUnknown_03004B00
+_080CC48C: .4byte gUnknown_0202F7C8
+_080CC490:
+ ldr r0, _080CC4B0
+_080CC492:
+ ldrb r6, [r0]
+ adds r0, r6, 0
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080CC4BC
+ movs r0, 0
+ strh r0, [r4, 0x36]
+ ldr r1, _080CC4B4
+ ldrh r0, [r1, 0x6]
+ strh r0, [r4, 0x32]
+ ldr r0, _080CC4B8
+ b _080CC4CC
+ .align 2, 0
+_080CC4B0: .4byte gUnknown_0202F7C9
+_080CC4B4: .4byte gUnknown_03004B00
+_080CC4B8: .4byte 0x0000fff0
+_080CC4BC:
+ movs r0, 0x1
+ strh r0, [r4, 0x36]
+ ldr r1, _080CC4F0
+ ldrh r0, [r1, 0x6]
+ negs r0, r0
+ strh r0, [r4, 0x32]
+ movs r0, 0x80
+ lsls r0, 1
+_080CC4CC:
+ strh r0, [r4, 0x20]
+ adds r7, r1, 0
+ adds r5, r7, 0
+ ldrh r0, [r5, 0x2]
+ strh r0, [r4, 0x30]
+ ldrh r0, [r5, 0x4]
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r5, 0x8]
+ strh r0, [r4, 0x34]
+ movs r1, 0xA
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x1
+ beq _080CC502
+ cmp r0, 0x1
+ bgt _080CC4F4
+ cmp r0, 0
+ beq _080CC4FE
+ b _080CC56C
+ .align 2, 0
+_080CC4F0: .4byte gUnknown_03004B00
+_080CC4F4:
+ cmp r0, 0x2
+ beq _080CC508
+ cmp r0, 0x3
+ beq _080CC534
+ b _080CC56C
+_080CC4FE:
+ ldrh r0, [r5]
+ b _080CC518
+_080CC502:
+ ldrh r0, [r5]
+ strh r0, [r4, 0x22]
+ b _080CC54E
+_080CC508:
+ adds r0, r6, 0
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r5, [r5]
+ adds r0, r5
+_080CC518:
+ strh r0, [r4, 0x22]
+ adds r0, r6, 0
+ bl sub_8079ED4
+ movs r1, 0x3
+ ands r1, r0
+ lsls r1, 2
+ ldrb r2, [r4, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r4, 0x5]
+ b _080CC56C
+_080CC534:
+ ldr r0, _080CC578
+ ldrb r0, [r0]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r7, [r7]
+ adds r0, r7
+ strh r0, [r4, 0x22]
+ movs r0, 0x1
+ bl obj_id_for_side_relative_to_move
+_080CC54E:
+ adds r0, r6, 0
+ bl sub_8079ED4
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, 0x1
+ movs r1, 0x3
+ ands r0, r1
+ lsls r0, 2
+ ldrb r2, [r4, 0x5]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r4, 0x5]
+_080CC56C:
+ ldr r0, _080CC57C
+ str r0, [r4, 0x1C]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CC578: .4byte gUnknown_0202F7C9
+_080CC57C: .4byte sub_80CC580
+ thumb_func_end sub_80CC474
+
+ thumb_func_start sub_80CC580
+sub_80CC580: @ 80CC580
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r0, 0x3C
+ ldrsh r3, [r4, r0]
+ ldrh r0, [r4, 0x3C]
+ adds r0, 0x1
+ strh r0, [r4, 0x3C]
+ movs r1, 0x30
+ ldrsh r2, [r4, r1]
+ ldr r1, _080CC5D4
+ movs r5, 0x2E
+ ldrsh r0, [r4, r5]
+ lsls r0, 1
+ adds r0, r1
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ muls r0, r2
+ asrs r0, 8
+ strh r0, [r4, 0x26]
+ movs r2, 0x32
+ ldrsh r0, [r4, r2]
+ muls r0, r3
+ strh r0, [r4, 0x24]
+ movs r5, 0x34
+ ldrsh r0, [r4, r5]
+ muls r0, r3
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x2E]
+ movs r1, 0x36
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080CC5D8
+ movs r2, 0x24
+ ldrsh r0, [r4, r2]
+ movs r5, 0x20
+ ldrsh r1, [r4, r5]
+ adds r0, r1
+ cmp r0, 0xF7
+ ble _080CC5F0
+ b _080CC5EA
+ .align 2, 0
+_080CC5D4: .4byte gSineTable
+_080CC5D8:
+ movs r1, 0x24
+ ldrsh r0, [r4, r1]
+ movs r2, 0x20
+ ldrsh r1, [r4, r2]
+ adds r0, r1
+ movs r1, 0x10
+ negs r1, r1
+ cmp r0, r1
+ bgt _080CC5F0
+_080CC5EA:
+ adds r0, r4, 0
+ bl move_anim_8074EE0
+_080CC5F0:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80CC580
+
+ thumb_func_start sub_80CC5F8
+sub_80CC5F8: @ 80CC5F8
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ ldr r1, _080CC618
+ adds r5, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ beq _080CC61C
+ cmp r0, 0x1
+ beq _080CC650
+ b _080CC6AA
+ .align 2, 0
+_080CC618: .4byte gTasks
+_080CC61C:
+ ldr r0, _080CC648
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r0, 20
+ movs r2, 0x80
+ lsls r2, 1
+ adds r4, r2, 0
+ adds r0, r4
+ strh r0, [r5, 0x18]
+ ldr r0, _080CC64C
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r0, 20
+ adds r0, r4
+ strh r0, [r5, 0x20]
+ ldrh r0, [r5, 0x8]
+ adds r0, 0x1
+ strh r0, [r5, 0x8]
+ b _080CC6AA
+ .align 2, 0
+_080CC648: .4byte 0x0000274f
+_080CC64C: .4byte 0x000027b0
+_080CC650:
+ ldrh r0, [r5, 0x1A]
+ adds r0, 0x1
+ movs r7, 0
+ strh r0, [r5, 0x1A]
+ lsls r0, 16
+ cmp r0, 0
+ blt _080CC6AA
+ strh r7, [r5, 0x1A]
+ ldrh r0, [r5, 0x18]
+ ldrb r2, [r5, 0x1C]
+ ldr r4, _080CC6C4
+ movs r3, 0x1E
+ ldrsh r1, [r5, r3]
+ lsls r1, 1
+ adds r1, r4
+ ldrh r3, [r1]
+ movs r1, 0x10
+ bl BlendPalette
+ ldrh r0, [r5, 0x20]
+ ldrb r2, [r5, 0x1C]
+ movs r3, 0x1E
+ ldrsh r1, [r5, r3]
+ lsls r1, 1
+ adds r1, r4
+ ldrh r3, [r1]
+ movs r1, 0x10
+ bl BlendPalette
+ ldrh r0, [r5, 0x1C]
+ adds r0, 0x1
+ strh r0, [r5, 0x1C]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x11
+ bne _080CC6AA
+ strh r7, [r5, 0x1C]
+ ldrh r0, [r5, 0x1E]
+ adds r0, 0x1
+ strh r0, [r5, 0x1E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x7
+ bne _080CC6AA
+ strh r7, [r5, 0x1E]
+_080CC6AA:
+ ldr r0, _080CC6C8
+ movs r2, 0xE
+ ldrsh r1, [r0, r2]
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ bne _080CC6BE
+ adds r0, r6, 0
+ bl move_anim_task_del
+_080CC6BE:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CC6C4: .4byte gUnknown_083D6984
+_080CC6C8: .4byte gUnknown_03004B00
+ thumb_func_end sub_80CC5F8
+
+ thumb_func_start sub_80CC6CC
+sub_80CC6CC: @ 80CC6CC
+ push {r4-r7,lr}
+ sub sp, 0x4
+ adds r6, r0, 0
+ ldr r1, _080CC6E4
+ movs r2, 0x8
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ bne _080CC6E8
+ adds r0, r6, 0
+ bl move_anim_8072740
+ b _080CC7C2
+ .align 2, 0
+_080CC6E4: .4byte gUnknown_03004B00
+_080CC6E8:
+ movs r3, 0
+ ldrsh r0, [r1, r3]
+ cmp r0, 0
+ bne _080CC6F8
+ ldr r4, _080CC6F4
+ b _080CC6FA
+ .align 2, 0
+_080CC6F4: .4byte gUnknown_0202F7C8
+_080CC6F8:
+ ldr r4, _080CC734
+_080CC6FA:
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r0, _080CC738
+ ldrh r1, [r0, 0x8]
+ strh r1, [r6, 0x2E]
+ movs r3, 0x2
+ ldrsh r1, [r0, r3]
+ adds r7, r0, 0
+ cmp r1, 0
+ bne _080CC73C
+ ldrh r0, [r7, 0x4]
+ adds r0, r5
+ strh r0, [r6, 0x20]
+ ldrh r0, [r7, 0x6]
+ adds r0, r2
+ strh r0, [r6, 0x22]
+ strh r5, [r6, 0x38]
+ strh r2, [r6, 0x3A]
+ b _080CC74C
+ .align 2, 0
+_080CC734: .4byte gUnknown_0202F7C9
+_080CC738: .4byte gUnknown_03004B00
+_080CC73C:
+ strh r5, [r6, 0x20]
+ strh r2, [r6, 0x22]
+ ldrh r0, [r7, 0x4]
+ adds r0, r5
+ strh r0, [r6, 0x38]
+ ldrh r0, [r7, 0x6]
+ adds r0, r2
+ strh r0, [r6, 0x3A]
+_080CC74C:
+ ldrh r4, [r6, 0x20]
+ lsls r0, r4, 4
+ strh r0, [r6, 0x30]
+ ldrh r5, [r6, 0x22]
+ lsls r0, r5, 4
+ strh r0, [r6, 0x32]
+ movs r1, 0x38
+ ldrsh r0, [r6, r1]
+ movs r2, 0x20
+ ldrsh r1, [r6, r2]
+ subs r0, r1
+ lsls r0, 4
+ movs r3, 0x8
+ ldrsh r1, [r7, r3]
+ bl __divsi3
+ strh r0, [r6, 0x34]
+ movs r1, 0x3A
+ ldrsh r0, [r6, r1]
+ movs r2, 0x22
+ ldrsh r1, [r6, r2]
+ subs r0, r1
+ lsls r0, 4
+ movs r3, 0x8
+ ldrsh r1, [r7, r3]
+ bl __divsi3
+ strh r0, [r6, 0x36]
+ ldrh r0, [r6, 0x38]
+ subs r0, r4
+ lsls r0, 16
+ asrs r0, 16
+ ldrh r1, [r6, 0x3A]
+ subs r1, r5
+ lsls r1, 16
+ asrs r1, 16
+ bl sub_80790F0
+ lsls r0, 16
+ lsrs r4, r0, 16
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080CC7AE
+ ldr r1, _080CC7CC
+ adds r0, r4, r1
+ lsls r0, 16
+ lsrs r4, r0, 16
+_080CC7AE:
+ movs r3, 0x80
+ lsls r3, 1
+ str r4, [sp]
+ adds r0, r6, 0
+ movs r1, 0
+ adds r2, r3, 0
+ bl sub_8078FDC
+ ldr r0, _080CC7D0
+ str r0, [r6, 0x1C]
+_080CC7C2:
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CC7CC: .4byte 0xffff8000
+_080CC7D0: .4byte sub_80CC7D4
+ thumb_func_end sub_80CC6CC
+
+ thumb_func_start sub_80CC7D4
+sub_80CC7D4: @ 80CC7D4
+ push {r4,lr}
+ adds r2, r0, 0
+ ldrh r3, [r2, 0x2E]
+ movs r1, 0x2E
+ ldrsh r0, [r2, r1]
+ cmp r0, 0
+ beq _080CC804
+ ldrh r0, [r2, 0x34]
+ ldrh r4, [r2, 0x30]
+ adds r0, r4
+ strh r0, [r2, 0x30]
+ ldrh r1, [r2, 0x36]
+ ldrh r4, [r2, 0x32]
+ adds r1, r4
+ strh r1, [r2, 0x32]
+ lsls r0, 16
+ asrs r0, 20
+ strh r0, [r2, 0x20]
+ lsls r1, 16
+ asrs r1, 20
+ strh r1, [r2, 0x22]
+ subs r0, r3, 0x1
+ strh r0, [r2, 0x2E]
+ b _080CC80A
+_080CC804:
+ adds r0, r2, 0
+ bl move_anim_8074EE0
+_080CC80A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80CC7D4
+
+ thumb_func_start sub_80CC810
+sub_80CC810: @ 80CC810
+ push {lr}
+ adds r2, r0, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080CC826
+ adds r0, r2, 0
+ bl move_anim_8072740
+_080CC826:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80CC810
+
+ thumb_func_start sub_80CC82C
+sub_80CC82C: @ 80CC82C
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _080CC84C
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080CC854
+ ldr r2, _080CC850
+ ldrh r0, [r4, 0x20]
+ ldrh r1, [r2]
+ subs r0, r1
+ strh r0, [r4, 0x20]
+ ldrh r0, [r2, 0x2]
+ b _080CC860
+ .align 2, 0
+_080CC84C: .4byte gUnknown_0202F7C8
+_080CC850: .4byte gUnknown_03004B00
+_080CC854:
+ ldr r0, _080CC878
+ ldrh r1, [r0]
+ ldrh r2, [r4, 0x20]
+ adds r1, r2
+ strh r1, [r4, 0x20]
+ ldrh r0, [r0, 0x2]
+_080CC860:
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r4, 0x22]
+ ldr r0, _080CC87C
+ str r0, [r4, 0x1C]
+ ldr r1, _080CC880
+ adds r0, r4, 0
+ bl oamt_set_x3A_32
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CC878: .4byte gUnknown_03004B00
+_080CC87C: .4byte sub_8078600
+_080CC880: .4byte move_anim_8072740
+ thumb_func_end sub_80CC82C
+
+ thumb_func_start sub_80CC884
+sub_80CC884: @ 80CC884
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r0, _080CC8BC
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _080CC89E
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl StartSpriteAnim
+_080CC89E:
+ ldr r0, _080CC8C0
+ str r0, [r5, 0x1C]
+ ldr r4, _080CC8C4
+ movs r0, 0
+ ldrsh r1, [r4, r0]
+ adds r0, r5, 0
+ bl sub_807867C
+ ldrh r0, [r4, 0x2]
+ ldrh r1, [r5, 0x22]
+ adds r0, r1
+ strh r0, [r5, 0x22]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CC8BC: .4byte gUnknown_0202F7C8
+_080CC8C0: .4byte sub_80CC810
+_080CC8C4: .4byte gUnknown_03004B00
+ thumb_func_end sub_80CC884
+
+ thumb_func_start sub_80CC8C8
+sub_80CC8C8: @ 80CC8C8
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r1, _080CC908
+ ldrh r0, [r1]
+ ldrh r2, [r4, 0x20]
+ adds r0, r2
+ strh r0, [r4, 0x20]
+ ldrh r0, [r1, 0x2]
+ ldrh r2, [r4, 0x22]
+ adds r0, r2
+ strh r0, [r4, 0x22]
+ ldrh r0, [r1, 0x4]
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r1, 0x6]
+ strh r0, [r4, 0x30]
+ ldrh r0, [r1, 0x8]
+ strh r0, [r4, 0x34]
+ ldrh r0, [r1, 0xA]
+ strh r0, [r4, 0x38]
+ ldrb r1, [r1, 0xC]
+ adds r0, r4, 0
+ bl StartSpriteAffineAnim
+ ldr r1, _080CC90C
+ adds r0, r4, 0
+ bl oamt_set_x3A_32
+ ldr r0, _080CC910
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CC908: .4byte gUnknown_03004B00
+_080CC90C: .4byte move_anim_8074EE0
+_080CC910: .4byte sub_8078504
+ thumb_func_end sub_80CC8C8
+
+ thumb_func_start sub_80CC914
+sub_80CC914: @ 80CC914
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r4, _080CC964
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _080CC948
+ ldrh r0, [r5, 0x22]
+ adds r0, 0x8
+ strh r0, [r5, 0x22]
+_080CC948:
+ ldr r0, _080CC968
+ str r0, [r5, 0x1C]
+ ldr r0, _080CC96C
+ movs r2, 0x4
+ ldrsh r1, [r0, r2]
+ adds r3, r0, 0
+ cmp r1, 0
+ bne _080CC970
+ ldrh r0, [r3]
+ ldrh r1, [r5, 0x20]
+ adds r0, r1
+ strh r0, [r5, 0x20]
+ b _080CC984
+ .align 2, 0
+_080CC964: .4byte gUnknown_0202F7C9
+_080CC968: .4byte sub_80CCB00
+_080CC96C: .4byte gUnknown_03004B00
+_080CC970:
+ ldrh r0, [r5, 0x20]
+ ldrh r1, [r3]
+ subs r0, r1
+ strh r0, [r5, 0x20]
+ adds r2, r5, 0
+ adds r2, 0x3F
+ ldrb r0, [r2]
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r2]
+_080CC984:
+ ldrh r0, [r3, 0x2]
+ ldrh r2, [r5, 0x22]
+ adds r0, r2
+ strh r0, [r5, 0x22]
+ ldr r1, _080CC9B8
+ adds r0, r1, 0
+ ldrh r2, [r5, 0x30]
+ adds r1, r0, r2
+ strh r1, [r5, 0x30]
+ movs r2, 0x80
+ lsls r2, 3
+ adds r0, r2, 0
+ ldrh r2, [r5, 0x32]
+ adds r0, r2
+ strh r0, [r5, 0x32]
+ ldrh r0, [r3, 0x4]
+ strh r0, [r5, 0x38]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ bne _080CC9B2
+ negs r0, r1
+ strh r0, [r5, 0x30]
+_080CC9B2:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CC9B8: .4byte 0xfffffc00
+ thumb_func_end sub_80CC914
+
+ thumb_func_start sub_80CC9BC
+sub_80CC9BC: @ 80CC9BC
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r6, r0, 0
+ ldr r0, _080CC9D8
+ movs r1, 0x6
+ ldrsh r0, [r0, r1]
+ cmp r0, 0x1
+ beq _080CC9DC
+ cmp r0, 0x1
+ ble _080CCA58
+ cmp r0, 0x2
+ beq _080CC9FC
+ b _080CCA58
+ .align 2, 0
+_080CC9D8: .4byte gUnknown_03004B00
+_080CC9DC:
+ ldr r5, _080CC9F8
+ ldrb r0, [r5]
+ movs r4, 0x2
+ eors r0, r4
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldrb r0, [r5]
+ eors r4, r0
+ adds r0, r4, 0
+ b _080CCA68
+ .align 2, 0
+_080CC9F8: .4byte gUnknown_0202F7C9
+_080CC9FC:
+ ldr r5, _080CCA54
+ ldrb r0, [r5]
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldrb r0, [r5]
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldrb r0, [r5]
+ movs r2, 0x2
+ mov r8, r2
+ mov r1, r8
+ eors r0, r1
+ bl b_side_obj__get_some_boolean
+ lsls r0, 24
+ cmp r0, 0
+ beq _080CCA72
+ ldrb r0, [r5]
+ mov r2, r8
+ eors r0, r2
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, r7
+ lsrs r7, r0, 1
+ ldrb r0, [r5]
+ mov r1, r8
+ eors r0, r1
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, r4
+ lsrs r4, r0, 1
+ b _080CCA72
+ .align 2, 0
+_080CCA54: .4byte gUnknown_0202F7C9
+_080CCA58:
+ ldr r4, _080CCAA4
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldrb r0, [r4]
+_080CCA68:
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r4, r0, 24
+_080CCA72:
+ strh r7, [r6, 0x20]
+ strh r4, [r6, 0x22]
+ ldr r0, _080CCAA4
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _080CCA8A
+ ldrh r0, [r6, 0x22]
+ adds r0, 0x8
+ strh r0, [r6, 0x22]
+_080CCA8A:
+ ldr r0, _080CCAA8
+ str r0, [r6, 0x1C]
+ ldr r0, _080CCAAC
+ movs r2, 0x4
+ ldrsh r1, [r0, r2]
+ adds r3, r0, 0
+ cmp r1, 0
+ bne _080CCAB0
+ ldrh r0, [r3]
+ ldrh r1, [r6, 0x20]
+ adds r0, r1
+ strh r0, [r6, 0x20]
+ b _080CCAC4
+ .align 2, 0
+_080CCAA4: .4byte gUnknown_0202F7C9
+_080CCAA8: .4byte sub_80CCB00
+_080CCAAC: .4byte gUnknown_03004B00
+_080CCAB0:
+ ldrh r0, [r6, 0x20]
+ ldrh r1, [r3]
+ subs r0, r1
+ strh r0, [r6, 0x20]
+ adds r2, r6, 0
+ adds r2, 0x3F
+ ldrb r0, [r2]
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r2]
+_080CCAC4:
+ ldrh r0, [r3, 0x2]
+ ldrh r2, [r6, 0x22]
+ adds r0, r2
+ strh r0, [r6, 0x22]
+ ldr r1, _080CCAFC
+ adds r0, r1, 0
+ ldrh r2, [r6, 0x30]
+ adds r1, r0, r2
+ strh r1, [r6, 0x30]
+ movs r2, 0x80
+ lsls r2, 3
+ adds r0, r2, 0
+ ldrh r2, [r6, 0x32]
+ adds r0, r2
+ strh r0, [r6, 0x32]
+ ldrh r0, [r3, 0x4]
+ strh r0, [r6, 0x38]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ bne _080CCAF2
+ negs r0, r1
+ strh r0, [r6, 0x30]
+_080CCAF2:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CCAFC: .4byte 0xfffffc00
+ thumb_func_end sub_80CC9BC
+
+ thumb_func_start sub_80CCB00
+sub_80CCB00: @ 80CCB00
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r1, [r4, 0x30]
+ ldrh r2, [r4, 0x34]
+ adds r0, r1, r2
+ strh r0, [r4, 0x34]
+ ldrh r0, [r4, 0x32]
+ ldrh r2, [r4, 0x36]
+ adds r0, r2
+ strh r0, [r4, 0x36]
+ movs r2, 0x38
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ bne _080CCB22
+ adds r0, r1, 0
+ adds r0, 0x18
+ b _080CCB26
+_080CCB22:
+ adds r0, r1, 0
+ subs r0, 0x18
+_080CCB26:
+ strh r0, [r4, 0x30]
+ ldrh r0, [r4, 0x32]
+ subs r0, 0x18
+ strh r0, [r4, 0x32]
+ ldrh r0, [r4, 0x34]
+ lsls r0, 16
+ asrs r0, 24
+ strh r0, [r4, 0x24]
+ ldrh r0, [r4, 0x36]
+ lsls r0, 16
+ asrs r0, 24
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x14
+ bne _080CCB5C
+ ldr r1, _080CCB64
+ adds r0, r4, 0
+ bl oamt_set_x3A_32
+ movs r0, 0x3
+ strh r0, [r4, 0x2E]
+ ldr r0, _080CCB68
+ str r0, [r4, 0x1C]
+_080CCB5C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CCB64: .4byte move_anim_8072740
+_080CCB68: .4byte sub_80782D8
+ thumb_func_end sub_80CCB00
+
+ thumb_func_start unref_sub_80CCB6C
+unref_sub_80CCB6C: @ 80CCB6C
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldrh r1, [r5, 0x32]
+ movs r2, 0x32
+ ldrsh r0, [r5, r2]
+ cmp r0, 0x1
+ ble _080CCC10
+ ldrh r1, [r5, 0x34]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080CCBC8
+ adds r3, r5, 0
+ adds r3, 0x3E
+ ldrb r1, [r3]
+ movs r2, 0x5
+ negs r2, r2
+ adds r0, r2, 0
+ ands r0, r1
+ strb r0, [r3]
+ ldr r4, _080CCBC4
+ movs r0, 0x2E
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ adds r0, 0x3E
+ ldrb r3, [r0]
+ adds r1, r2, 0
+ ands r1, r3
+ strb r1, [r0]
+ movs r0, 0x30
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ ands r2, r1
+ strb r2, [r0]
+ b _080CCBFE
+ .align 2, 0
+_080CCBC4: .4byte gSprites
+_080CCBC8:
+ adds r1, r5, 0
+ adds r1, 0x3E
+ ldrb r0, [r1]
+ movs r2, 0x4
+ orrs r0, r2
+ strb r0, [r1]
+ ldr r3, _080CCC0C
+ movs r0, 0x2E
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ orrs r1, r2
+ strb r1, [r0]
+ movs r0, 0x30
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ orrs r1, r2
+ strb r1, [r0]
+_080CCBFE:
+ movs r0, 0
+ strh r0, [r5, 0x32]
+ ldrh r0, [r5, 0x34]
+ adds r0, 0x1
+ strh r0, [r5, 0x34]
+ b _080CCC14
+ .align 2, 0
+_080CCC0C: .4byte gSprites
+_080CCC10:
+ adds r0, r1, 0x1
+ strh r0, [r5, 0x32]
+_080CCC14:
+ movs r1, 0x34
+ ldrsh r0, [r5, r1]
+ cmp r0, 0xA
+ bne _080CCC44
+ movs r2, 0x2E
+ ldrsh r1, [r5, r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r4, _080CCC4C
+ adds r0, r4
+ bl DestroySprite
+ movs r0, 0x30
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ bl DestroySprite
+ adds r0, r5, 0
+ bl move_anim_8072740
+_080CCC44:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CCC4C: .4byte gSprites
+ thumb_func_end unref_sub_80CCB6C
+
+ thumb_func_start sub_80CCC50
+sub_80CCC50: @ 80CCC50
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r4, _080CCC70
+ ldrh r0, [r4, 0x4]
+ strh r0, [r5, 0x2E]
+ ldr r0, _080CCC74
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080CCC78
+ ldrh r0, [r5, 0x20]
+ ldrh r1, [r4]
+ subs r0, r1
+ b _080CCC7E
+ .align 2, 0
+_080CCC70: .4byte gUnknown_03004B00
+_080CCC74: .4byte gUnknown_0202F7C8
+_080CCC78:
+ ldrh r0, [r4]
+ ldrh r1, [r5, 0x20]
+ adds r0, r1
+_080CCC7E:
+ strh r0, [r5, 0x20]
+ ldr r4, _080CCCAC
+ ldrb r1, [r4, 0xA]
+ adds r0, r5, 0
+ bl StartSpriteAnim
+ ldrh r0, [r4, 0x6]
+ negs r0, r0
+ strh r0, [r5, 0x30]
+ ldrh r0, [r4, 0x2]
+ ldrh r1, [r5, 0x22]
+ adds r0, r1
+ strh r0, [r5, 0x22]
+ ldrh r0, [r4, 0x8]
+ strh r0, [r5, 0x34]
+ ldr r1, _080CCCB0
+ str r1, [r5, 0x1C]
+ adds r0, r5, 0
+ bl _call_via_r1
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CCCAC: .4byte gUnknown_03004B00
+_080CCCB0: .4byte sub_80CCCB4
+ thumb_func_end sub_80CCC50
+
+ thumb_func_start sub_80CCCB4
+sub_80CCCB4: @ 80CCCB4
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ movs r1, 0x64
+ bl Cos
+ strh r0, [r4, 0x24]
+ movs r2, 0x2E
+ ldrsh r0, [r4, r2]
+ movs r1, 0x14
+ bl Sin
+ strh r0, [r4, 0x26]
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x7F
+ bgt _080CCCE0
+ adds r1, r4, 0
+ adds r1, 0x43
+ movs r0, 0
+ b _080CCCE6
+_080CCCE0:
+ adds r1, r4, 0
+ adds r1, 0x43
+ movs r0, 0xE
+_080CCCE6:
+ strb r0, [r1]
+ ldrh r0, [r4, 0x30]
+ ldrh r2, [r4, 0x2E]
+ adds r0, r2
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r4, 0x38]
+ adds r0, 0x82
+ strh r0, [r4, 0x38]
+ lsls r0, 16
+ asrs r0, 24
+ ldrh r1, [r4, 0x26]
+ adds r0, r1
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x32]
+ adds r0, 0x1
+ strh r0, [r4, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ movs r2, 0x34
+ ldrsh r1, [r4, r2]
+ cmp r0, r1
+ bne _080CCD1C
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080CCD1C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80CCCB4
+
+ thumb_func_start sub_80CCD24
+sub_80CCD24: @ 80CCD24
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080CCD3A
+ ldr r1, _080CCD98
+ ldrh r0, [r1, 0x2]
+ adds r0, 0x8
+ strh r0, [r1, 0x2]
+_080CCD3A:
+ ldr r6, _080CCD9C
+ ldrb r0, [r6]
+ movs r1, 0
+ bl sub_8077EE4
+ lsls r0, 24
+ ldr r4, _080CCD98
+ lsrs r0, 24
+ ldrh r1, [r4]
+ adds r0, r1
+ strh r0, [r5, 0x20]
+ ldrb r0, [r6]
+ movs r1, 0x1
+ bl sub_8077EE4
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r4, [r4, 0x2]
+ adds r0, r4
+ strh r0, [r5, 0x22]
+ ldrb r0, [r6]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080CCD78
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080CCDA0
+_080CCD78:
+ ldrb r0, [r6]
+ bl sub_8079ED4
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, 0x1
+ movs r1, 0x3
+ ands r0, r1
+ lsls r0, 2
+ ldrb r2, [r5, 0x5]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r5, 0x5]
+ b _080CCDB8
+ .align 2, 0
+_080CCD98: .4byte gUnknown_03004B00
+_080CCD9C: .4byte gUnknown_0202F7C8
+_080CCDA0:
+ ldrb r0, [r6]
+ bl sub_8079ED4
+ movs r1, 0x3
+ ands r1, r0
+ lsls r1, 2
+ ldrb r2, [r5, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r5, 0x5]
+_080CCDB8:
+ ldr r0, _080CCDF8
+ ldrh r0, [r0, 0x4]
+ strh r0, [r5, 0x2E]
+ ldr r0, _080CCDFC
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r0, 20
+ movs r3, 0x80
+ lsls r3, 1
+ adds r0, r3
+ strh r0, [r5, 0x32]
+ movs r2, 0x10
+ movs r0, 0x10
+ strh r0, [r5, 0x3C]
+ ldr r1, _080CCE00
+ movs r3, 0xFD
+ lsls r3, 6
+ adds r0, r3, 0
+ strh r0, [r1]
+ ldr r3, _080CCE04
+ ldrh r1, [r5, 0x3C]
+ lsls r0, r1, 8
+ subs r2, r1
+ orrs r0, r2
+ strh r0, [r3]
+ ldr r0, _080CCE08
+ str r0, [r5, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CCDF8: .4byte gUnknown_03004B00
+_080CCDFC: .4byte 0x00002828
+_080CCE00: .4byte REG_BLDCNT
+_080CCE04: .4byte REG_BLDALPHA
+_080CCE08: .4byte sub_80CCE0C
+ thumb_func_end sub_80CCD24
+
+ thumb_func_start sub_80CCE0C
+sub_80CCE0C: @ 80CCE0C
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x38]
+ adds r0, 0x60
+ strh r0, [r4, 0x38]
+ lsls r0, 16
+ asrs r0, 24
+ negs r0, r0
+ strh r0, [r4, 0x24]
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080CCE6A
+ movs r0, 0
+ strh r0, [r4, 0x30]
+ ldr r1, _080CCEB0
+ movs r2, 0x32
+ ldrsh r0, [r4, r2]
+ adds r0, 0x1
+ lsls r0, 1
+ adds r0, r1
+ ldrh r5, [r0]
+ movs r2, 0
+ adds r6, r1, 0
+ adds r3, r6, 0
+_080CCE44:
+ movs r1, 0x32
+ ldrsh r0, [r4, r1]
+ adds r2, 0x1
+ adds r0, r2
+ lsls r1, r0, 1
+ adds r1, r3
+ adds r0, 0x1
+ lsls r0, 1
+ adds r0, r3
+ ldrh r0, [r0]
+ strh r0, [r1]
+ cmp r2, 0x5
+ ble _080CCE44
+ movs r2, 0x32
+ ldrsh r0, [r4, r2]
+ adds r0, 0x7
+ lsls r0, 1
+ adds r0, r6
+ strh r5, [r0]
+_080CCE6A:
+ ldrh r2, [r4, 0x3C]
+ movs r1, 0x3C
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x6
+ ble _080CCE9E
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ ble _080CCEB8
+ ldrh r0, [r4, 0x3A]
+ adds r0, 0x1
+ strh r0, [r4, 0x3A]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080CCE9E
+ movs r0, 0
+ strh r0, [r4, 0x3A]
+ subs r2, 0x1
+ strh r2, [r4, 0x3C]
+ ldr r3, _080CCEB4
+ lsls r1, r2, 8
+ movs r0, 0x10
+ subs r0, r2
+ orrs r1, r0
+ strh r1, [r3]
+_080CCE9E:
+ ldrh r1, [r4, 0x2E]
+ movs r2, 0x2E
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ ble _080CCEB8
+ subs r0, r1, 0x1
+ strh r0, [r4, 0x2E]
+ b _080CCEF4
+ .align 2, 0
+_080CCEB0: .4byte gPlttBufferFaded
+_080CCEB4: .4byte REG_BLDALPHA
+_080CCEB8:
+ ldrh r0, [r4, 0x3A]
+ adds r0, 0x1
+ strh r0, [r4, 0x3A]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080CCEF4
+ movs r0, 0
+ strh r0, [r4, 0x3A]
+ ldrh r1, [r4, 0x3C]
+ adds r1, 0x1
+ strh r1, [r4, 0x3C]
+ ldr r3, _080CCEFC
+ lsls r2, r1, 8
+ movs r0, 0x10
+ subs r0, r1
+ orrs r2, r0
+ strh r2, [r3]
+ movs r1, 0x3C
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x10
+ bne _080CCEF4
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r0, _080CCF00
+ str r0, [r4, 0x1C]
+_080CCEF4:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CCEFC: .4byte REG_BLDALPHA
+_080CCF00: .4byte sub_807861C
+ thumb_func_end sub_80CCE0C
+
+ thumb_func_start sub_80CCF04
+sub_80CCF04: @ 80CCF04
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ ldr r6, _080CCF5C
+ ldrb r0, [r6]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ movs r5, 0
+ strh r0, [r4, 0x20]
+ ldrb r0, [r6]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _080CCF60
+ adds r0, r1
+ strh r0, [r4, 0x22]
+ strh r5, [r4, 0x2E]
+ strh r5, [r4, 0x30]
+ strh r5, [r4, 0x32]
+ strh r5, [r4, 0x34]
+ strh r5, [r4, 0x36]
+ strh r5, [r4, 0x3A]
+ movs r0, 0x10
+ strh r0, [r4, 0x3C]
+ ldr r1, _080CCF64
+ movs r2, 0xFD
+ lsls r2, 6
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r2, _080CCF68
+ ldrh r0, [r4, 0x3C]
+ lsls r0, 8
+ ldrh r1, [r4, 0x3A]
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r0, _080CCF6C
+ str r0, [r4, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CCF5C: .4byte gUnknown_0202F7C9
+_080CCF60: .4byte 0x0000ffe8
+_080CCF64: .4byte REG_BLDCNT
+_080CCF68: .4byte REG_BLDALPHA
+_080CCF6C: .4byte sub_80CCF70
+ thumb_func_end sub_80CCF04
+
+ thumb_func_start sub_80CCF70
+sub_80CCF70: @ 80CCF70
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x4
+ bls _080CCF7E
+ b _080CD0C0
+_080CCF7E:
+ lsls r0, 2
+ ldr r1, _080CCF88
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080CCF88: .4byte _080CCF8C
+ .align 2, 0
+_080CCF8C:
+ .4byte _080CCFA0
+ .4byte _080CD004
+ .4byte _080CD020
+ .4byte _080CD09C
+ .4byte _080CD0B0
+_080CCFA0:
+ ldrh r0, [r4, 0x32]
+ adds r0, 0x1
+ strh r0, [r4, 0x32]
+ lsls r0, 16
+ cmp r0, 0
+ bgt _080CCFAE
+ b _080CD0C0
+_080CCFAE:
+ movs r0, 0
+ strh r0, [r4, 0x32]
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080CCFD0
+ ldrh r1, [r4, 0x3A]
+ movs r2, 0x3A
+ ldrsh r0, [r4, r2]
+ cmp r0, 0xF
+ bgt _080CCFDE
+ adds r0, r1, 0x1
+ strh r0, [r4, 0x3A]
+ b _080CCFDE
+_080CCFD0:
+ ldrh r1, [r4, 0x3C]
+ movs r2, 0x3C
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ ble _080CCFDE
+ subs r0, r1, 0x1
+ strh r0, [r4, 0x3C]
+_080CCFDE:
+ ldr r2, _080CD000
+ ldrh r0, [r4, 0x3C]
+ lsls r0, 8
+ ldrh r1, [r4, 0x3A]
+ orrs r0, r1
+ strh r0, [r2]
+ movs r1, 0x3A
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x10
+ bne _080CD0C0
+ movs r2, 0x3C
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ bne _080CD0C0
+ strh r0, [r4, 0x30]
+ b _080CD0A8
+ .align 2, 0
+_080CD000: .4byte REG_BLDALPHA
+_080CD004:
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x8
+ ble _080CD0C0
+ movs r0, 0
+ strh r0, [r4, 0x30]
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl StartSpriteAffineAnim
+ b _080CD0A8
+_080CD020:
+ adds r0, r4, 0
+ movs r1, 0x10
+ movs r2, 0x4
+ bl sub_80CD0CC
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x2
+ ble _080CD042
+ movs r0, 0
+ strh r0, [r4, 0x30]
+ ldrh r0, [r4, 0x22]
+ adds r0, 0x1
+ strh r0, [r4, 0x22]
+_080CD042:
+ ldrh r0, [r4, 0x32]
+ adds r1, r0, 0x1
+ strh r1, [r4, 0x32]
+ lsls r0, r1, 16
+ asrs r0, 16
+ cmp r0, 0x1D
+ ble _080CD0C0
+ movs r0, 0x1
+ ands r1, r0
+ cmp r1, 0
+ beq _080CD068
+ ldrh r1, [r4, 0x3A]
+ movs r2, 0x3A
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ ble _080CD076
+ subs r0, r1, 0x1
+ strh r0, [r4, 0x3A]
+ b _080CD076
+_080CD068:
+ ldrh r1, [r4, 0x3C]
+ movs r2, 0x3C
+ ldrsh r0, [r4, r2]
+ cmp r0, 0xF
+ bgt _080CD076
+ adds r0, r1, 0x1
+ strh r0, [r4, 0x3C]
+_080CD076:
+ ldr r0, _080CD098
+ ldrh r1, [r4, 0x3C]
+ lsls r1, 8
+ ldrh r2, [r4, 0x3A]
+ orrs r1, r2
+ strh r1, [r0]
+ movs r0, 0x3A
+ ldrsh r1, [r4, r0]
+ cmp r1, 0
+ bne _080CD0C0
+ movs r2, 0x3C
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x10
+ bne _080CD0C0
+ strh r1, [r4, 0x30]
+ strh r1, [r4, 0x32]
+ b _080CD0A8
+ .align 2, 0
+_080CD098: .4byte REG_BLDALPHA
+_080CD09C:
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+_080CD0A8:
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ b _080CD0C0
+_080CD0B0:
+ ldr r0, _080CD0C8
+ movs r1, 0
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080CD0C0:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CD0C8: .4byte REG_BLDCNT
+ thumb_func_end sub_80CCF70
+
+ thumb_func_start sub_80CD0CC
+sub_80CD0CC: @ 80CD0CC
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r1, 0x34
+ ldrsh r0, [r4, r1]
+ cmp r0, 0xB
+ bgt _080CD0DE
+ ldrh r0, [r4, 0x36]
+ adds r0, 0x2
+ strh r0, [r4, 0x36]
+_080CD0DE:
+ ldrh r5, [r4, 0x34]
+ adds r0, r5, 0
+ subs r0, 0x12
+ lsls r0, 16
+ lsrs r0, 16
+ adds r1, r5, 0
+ cmp r0, 0x17
+ bhi _080CD0F4
+ ldrh r0, [r4, 0x36]
+ subs r0, 0x2
+ strh r0, [r4, 0x36]
+_080CD0F4:
+ lsls r0, r1, 16
+ asrs r0, 16
+ cmp r0, 0x2F
+ ble _080CD102
+ ldrh r0, [r4, 0x36]
+ adds r0, 0x2
+ strh r0, [r4, 0x36]
+_080CD102:
+ movs r1, 0x36
+ ldrsh r0, [r4, r1]
+ movs r1, 0x9
+ bl __divsi3
+ strh r0, [r4, 0x24]
+ movs r1, 0x36
+ ldrsh r0, [r4, r1]
+ movs r1, 0xE
+ bl __divsi3
+ strh r0, [r4, 0x26]
+ lsls r0, 16
+ cmp r0, 0
+ bge _080CD128
+ movs r1, 0x26
+ ldrsh r0, [r4, r1]
+ negs r0, r0
+ strh r0, [r4, 0x26]
+_080CD128:
+ adds r0, r5, 0x1
+ strh r0, [r4, 0x34]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3B
+ ble _080CD138
+ movs r0, 0
+ strh r0, [r4, 0x34]
+_080CD138:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80CD0CC
+
+ thumb_func_start sub_80CD140
+sub_80CD140: @ 80CD140
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldr r5, _080CD184
+ movs r1, 0x4
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ bne _080CD154
+ adds r0, r4, 0
+ bl sub_8078650
+_080CD154:
+ movs r0, 0
+ ldrsh r1, [r5, r0]
+ adds r0, r4, 0
+ bl sub_807867C
+ ldrh r0, [r5, 0x2]
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r4, 0x22]
+ ldrh r0, [r5, 0xA]
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r5, 0x6]
+ strh r0, [r4, 0x30]
+ ldrh r0, [r5, 0x8]
+ strh r0, [r4, 0x32]
+ ldr r1, _080CD188
+ adds r0, r4, 0
+ bl oamt_set_x3A_32
+ ldr r0, _080CD18C
+ str r0, [r4, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CD184: .4byte gUnknown_03004B00
+_080CD188: .4byte move_anim_8072740
+_080CD18C: .4byte sub_8078394
+ thumb_func_end sub_80CD140
+
+ thumb_func_start sub_80CD190
+sub_80CD190: @ 80CD190
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ ldr r0, _080CD1A4
+ movs r1, 0x4
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080CD1AC
+ ldr r0, _080CD1A8
+ b _080CD1AE
+ .align 2, 0
+_080CD1A4: .4byte gUnknown_03004B00
+_080CD1A8: .4byte gUnknown_0202F7C8
+_080CD1AC:
+ ldr r0, _080CD1F0
+_080CD1AE:
+ ldrb r6, [r0]
+ bl battle_type_is_double
+ lsls r0, 24
+ cmp r0, 0
+ beq _080CD1F8
+ movs r1, 0x2
+ adds r0, r6, 0
+ eors r0, r1
+ bl b_side_obj__get_some_boolean
+ lsls r0, 24
+ cmp r0, 0
+ beq _080CD1F8
+ ldr r4, _080CD1F4
+ ldrb r1, [r4, 0xC]
+ adds r2, r5, 0
+ adds r2, 0x20
+ adds r3, r5, 0
+ adds r3, 0x22
+ adds r0, r6, 0
+ bl sub_807A3FC
+ movs r2, 0
+ ldrsh r1, [r4, r2]
+ adds r0, r5, 0
+ bl sub_807867C
+ ldrh r0, [r4, 0x2]
+ ldrh r1, [r5, 0x22]
+ adds r0, r1
+ strh r0, [r5, 0x22]
+ b _080CD248
+ .align 2, 0
+_080CD1F0: .4byte gUnknown_0202F7C9
+_080CD1F4: .4byte gUnknown_03004B00
+_080CD1F8:
+ ldr r4, _080CD218
+ movs r2, 0xC
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ bne _080CD21C
+ adds r0, r6, 0
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ adds r0, r6, 0
+ movs r1, 0x1
+ b _080CD22E
+ .align 2, 0
+_080CD218: .4byte gUnknown_03004B00
+_080CD21C:
+ adds r0, r6, 0
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ adds r0, r6, 0
+ movs r1, 0x3
+_080CD22E:
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r4, [r4, 0x2]
+ adds r0, r4
+ strh r0, [r5, 0x22]
+ ldr r0, _080CD268
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ adds r0, r5, 0
+ bl sub_807867C
+_080CD248:
+ ldr r1, _080CD268
+ ldrh r0, [r1, 0xA]
+ strh r0, [r5, 0x2E]
+ ldrh r0, [r1, 0x6]
+ strh r0, [r5, 0x30]
+ ldrh r0, [r1, 0x8]
+ strh r0, [r5, 0x32]
+ ldr r1, _080CD26C
+ adds r0, r5, 0
+ bl oamt_set_x3A_32
+ ldr r0, _080CD270
+ str r0, [r5, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CD268: .4byte gUnknown_03004B00
+_080CD26C: .4byte move_anim_8072740
+_080CD270: .4byte sub_8078394
+ thumb_func_end sub_80CD190
+
+ thumb_func_start sub_80CD274
+sub_80CD274: @ 80CD274
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_8078650
+ ldr r0, _080CD2A0
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _080CD2A8
+ ldr r0, _080CD2A4
+ ldrh r1, [r0]
+ ldrh r2, [r4, 0x20]
+ adds r1, r2
+ strh r1, [r4, 0x20]
+ ldrh r0, [r0, 0x2]
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r4, 0x22]
+ b _080CD2C2
+ .align 2, 0
+_080CD2A0: .4byte gUnknown_0202F7C8
+_080CD2A4: .4byte gUnknown_03004B00
+_080CD2A8:
+ ldr r2, _080CD2CC
+ ldrh r0, [r4, 0x20]
+ ldrh r1, [r2]
+ subs r0, r1
+ strh r0, [r4, 0x20]
+ ldrh r0, [r2, 0x2]
+ ldrh r2, [r4, 0x22]
+ adds r0, r2
+ strh r0, [r4, 0x22]
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl StartSpriteAnim
+_080CD2C2:
+ ldr r0, _080CD2D0
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CD2CC: .4byte gUnknown_03004B00
+_080CD2D0: .4byte sub_80CD2D4
+ thumb_func_end sub_80CD274
+
+ thumb_func_start sub_80CD2D4
+sub_80CD2D4: @ 80CD2D4
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1E
+ ble _080CD30C
+ movs r0, 0x2E
+ ldrsh r1, [r4, r0]
+ movs r0, 0x1E
+ subs r0, r1
+ movs r1, 0x3
+ bl __divsi3
+ strh r0, [r4, 0x26]
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ lsls r0, 18
+ asrs r0, 16
+ movs r1, 0x3
+ bl Sin
+ strh r0, [r4, 0x24]
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+_080CD30C:
+ adds r0, r4, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080CD320
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080CD320:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80CD2D4
+
+ thumb_func_start sub_80CD328
+sub_80CD328: @ 80CD328
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_8078650
+ ldr r0, _080CD358
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _080CD360
+ ldr r1, _080CD35C
+ ldrh r0, [r1]
+ ldrh r2, [r4, 0x20]
+ adds r0, r2
+ strh r0, [r4, 0x20]
+ ldrh r0, [r1, 0x2]
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r4, 0x22]
+ movs r0, 0x1
+ strh r0, [r4, 0x34]
+ b _080CD37E
+ .align 2, 0
+_080CD358: .4byte gUnknown_0202F7C8
+_080CD35C: .4byte gUnknown_03004B00
+_080CD360:
+ ldr r2, _080CD388
+ ldrh r0, [r4, 0x20]
+ ldrh r1, [r2]
+ subs r0, r1
+ strh r0, [r4, 0x20]
+ ldrh r0, [r2, 0x2]
+ ldrh r2, [r4, 0x22]
+ adds r0, r2
+ strh r0, [r4, 0x22]
+ ldr r0, _080CD38C
+ strh r0, [r4, 0x34]
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl StartSpriteAffineAnim
+_080CD37E:
+ ldr r0, _080CD390
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CD388: .4byte gUnknown_03004B00
+_080CD38C: .4byte 0x0000ffff
+_080CD390: .4byte sub_80CD394
+ thumb_func_end sub_80CD328
+
+ thumb_func_start sub_80CD394
+sub_80CD394: @ 80CD394
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ movs r1, 0x28
+ bl __divsi3
+ negs r0, r0
+ strh r0, [r4, 0x26]
+ movs r2, 0x36
+ ldrsh r0, [r4, r2]
+ movs r1, 0xA
+ bl __divsi3
+ strh r0, [r4, 0x24]
+ movs r1, 0x34
+ ldrsh r0, [r4, r1]
+ lsls r0, 1
+ ldrh r2, [r4, 0x36]
+ adds r0, r2
+ strh r0, [r4, 0x36]
+ ldrh r0, [r4, 0x30]
+ ldrh r2, [r4, 0x2E]
+ adds r1, r0, r2
+ strh r1, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3C
+ ble _080CD3D8
+ adds r0, r4, 0
+ bl move_anim_8074EE0
+_080CD3D8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80CD394
+
+ thumb_func_start sub_80CD3E0
+sub_80CD3E0: @ 80CD3E0
+ push {lr}
+ ldrh r1, [r0, 0x20]
+ subs r1, 0x20
+ strh r1, [r0, 0x20]
+ ldrh r1, [r0, 0x22]
+ subs r1, 0x20
+ strh r1, [r0, 0x22]
+ movs r1, 0x14
+ strh r1, [r0, 0x2E]
+ ldr r1, _080CD400
+ str r1, [r0, 0x1C]
+ ldr r1, _080CD404
+ bl oamt_set_x3A_32
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CD400: .4byte sub_80782D8
+_080CD404: .4byte sub_80CD408
+ thumb_func_end sub_80CD3E0
+
+ thumb_func_start sub_80CD408
+sub_80CD408: @ 80CD408
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ ldrh r6, [r5, 0x38]
+ movs r1, 0x1
+ adds r0, r1, 0
+ ands r0, r6
+ cmp r0, 0
+ beq _080CD41E
+ cmp r0, 0x1
+ beq _080CD438
+ b _080CD49E
+_080CD41E:
+ strh r1, [r5, 0x2E]
+ ldr r0, _080CD430
+ str r0, [r5, 0x1C]
+ ldr r1, _080CD434
+ adds r0, r5, 0
+ bl oamt_set_x3A_32
+ b _080CD49E
+ .align 2, 0
+_080CD430: .4byte sub_80782D8
+_080CD434: .4byte sub_80CD408
+_080CD438:
+ ldrh r3, [r5, 0x24]
+ ldrh r0, [r5, 0x20]
+ adds r3, r0
+ movs r0, 0
+ strh r3, [r5, 0x20]
+ ldrh r4, [r5, 0x26]
+ ldrh r1, [r5, 0x22]
+ adds r4, r1
+ strh r4, [r5, 0x22]
+ strh r0, [r5, 0x26]
+ strh r0, [r5, 0x24]
+ movs r0, 0x8
+ strh r0, [r5, 0x2E]
+ ldr r2, _080CD4AC
+ lsls r0, r6, 16
+ asrs r0, 24
+ lsls r0, 1
+ adds r1, r0, r2
+ ldrb r1, [r1]
+ lsls r1, 24
+ asrs r1, 24
+ adds r3, r1
+ strh r3, [r5, 0x32]
+ adds r2, 0x1
+ adds r0, r2
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ adds r4, r0
+ strh r4, [r5, 0x36]
+ ldr r0, _080CD4B0
+ str r0, [r5, 0x1C]
+ ldr r1, _080CD4B4
+ adds r0, r5, 0
+ bl oamt_set_x3A_32
+ movs r1, 0x80
+ lsls r1, 1
+ adds r0, r1, 0
+ ldrh r1, [r5, 0x38]
+ adds r0, r1
+ strh r0, [r5, 0x38]
+ movs r0, 0x3F
+ bl sub_8076F98
+ adds r1, r0, 0
+ lsls r1, 24
+ asrs r1, 24
+ movs r0, 0xD2
+ bl PlaySE12WithPanning
+_080CD49E:
+ ldrh r0, [r5, 0x38]
+ movs r1, 0x1
+ eors r0, r1
+ strh r0, [r5, 0x38]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CD4AC: .4byte gUnknown_083D6DDC
+_080CD4B0: .4byte sub_8078B34
+_080CD4B4: .4byte sub_80CD4B8
+ thumb_func_end sub_80CD408
+
+ thumb_func_start sub_80CD4B8
+sub_80CD4B8: @ 80CD4B8
+ push {lr}
+ adds r2, r0, 0
+ ldrh r0, [r2, 0x38]
+ lsls r0, 16
+ asrs r0, 24
+ cmp r0, 0x4
+ bne _080CD4E0
+ movs r0, 0xA
+ strh r0, [r2, 0x2E]
+ ldr r0, _080CD4D8
+ str r0, [r2, 0x1C]
+ ldr r1, _080CD4DC
+ adds r0, r2, 0
+ bl oamt_set_x3A_32
+ b _080CD4E4
+ .align 2, 0
+_080CD4D8: .4byte sub_80782D8
+_080CD4DC: .4byte sub_80CD4EC
+_080CD4E0:
+ ldr r0, _080CD4E8
+ str r0, [r2, 0x1C]
+_080CD4E4:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CD4E8: .4byte sub_80CD408
+ thumb_func_end sub_80CD4B8
+
+ thumb_func_start sub_80CD4EC
+sub_80CD4EC: @ 80CD4EC
+ push {r4-r7,lr}
+ adds r5, r0, 0
+ ldrh r1, [r5, 0x6]
+ cmp r1, 0
+ bne _080CD514
+ movs r0, 0x3
+ strh r0, [r5, 0x2E]
+ strh r1, [r5, 0x30]
+ strh r1, [r5, 0x32]
+ ldr r0, _080CD50C
+ str r0, [r5, 0x1C]
+ ldr r1, _080CD510
+ adds r0, r5, 0
+ bl oamt_set_x3A_32
+ b _080CD594
+ .align 2, 0
+_080CD50C: .4byte sub_80782D8
+_080CD510: .4byte sub_80CD5A8
+_080CD514:
+ ldrh r0, [r5, 0x6]
+ cmp r0, 0x2
+ beq _080CD534
+ cmp r0, 0x2
+ bgt _080CD524
+ cmp r0, 0x1
+ beq _080CD52A
+ b _080CD548
+_080CD524:
+ cmp r0, 0x3
+ beq _080CD53C
+ b _080CD548
+_080CD52A:
+ ldr r6, _080CD530
+ adds r7, r6, 0
+ b _080CD54C
+ .align 2, 0
+_080CD530: .4byte 0x0000fff8
+_080CD534:
+ ldr r7, _080CD538
+ b _080CD54A
+ .align 2, 0
+_080CD538: .4byte 0x0000fff8
+_080CD53C:
+ movs r7, 0x8
+ ldr r6, _080CD544
+ b _080CD54C
+ .align 2, 0
+_080CD544: .4byte 0x0000fff8
+_080CD548:
+ movs r7, 0x8
+_080CD54A:
+ movs r6, 0x8
+_080CD54C:
+ ldrh r0, [r5, 0x24]
+ ldrh r1, [r5, 0x20]
+ adds r0, r1
+ movs r1, 0
+ strh r0, [r5, 0x20]
+ ldrh r0, [r5, 0x26]
+ ldrh r2, [r5, 0x22]
+ adds r0, r2
+ strh r0, [r5, 0x22]
+ strh r1, [r5, 0x26]
+ strh r1, [r5, 0x24]
+ movs r0, 0x6
+ strh r0, [r5, 0x2E]
+ ldr r4, _080CD59C
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, r7
+ strh r0, [r5, 0x32]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, r6
+ strh r0, [r5, 0x36]
+ ldr r0, _080CD5A0
+ str r0, [r5, 0x1C]
+ ldr r1, _080CD5A4
+ adds r0, r5, 0
+ bl oamt_set_x3A_32
+_080CD594:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CD59C: .4byte gUnknown_0202F7C9
+_080CD5A0: .4byte sub_8078B34
+_080CD5A4: .4byte sub_80CD654
+ thumb_func_end sub_80CD4EC
+
+ thumb_func_start sub_80CD5A8
+sub_80CD5A8: @ 80CD5A8
+ push {r4,lr}
+ sub sp, 0xC
+ adds r4, r0, 0
+ movs r1, 0x32
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080CD5C8
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x3
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x10
+ ble _080CD5D8
+ movs r0, 0x10
+ b _080CD5D6
+_080CD5C8:
+ ldrh r0, [r4, 0x30]
+ subs r0, 0x3
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ cmp r0, 0
+ bge _080CD5D8
+ movs r0, 0
+_080CD5D6:
+ strh r0, [r4, 0x30]
+_080CD5D8:
+ movs r0, 0x1
+ str r0, [sp]
+ movs r0, 0
+ str r0, [sp, 0x4]
+ str r0, [sp, 0x8]
+ movs r0, 0x1
+ movs r1, 0x1
+ movs r2, 0x1
+ movs r3, 0x1
+ bl sub_80791A8
+ ldrh r1, [r4, 0x30]
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r2, _080CD634
+ bl BlendPalettes
+ movs r3, 0x30
+ ldrsh r0, [r4, r3]
+ cmp r0, 0x10
+ bne _080CD640
+ ldrh r0, [r4, 0x32]
+ adds r0, 0x1
+ strh r0, [r4, 0x32]
+ ldrb r1, [r4, 0x5]
+ lsrs r1, 4
+ lsls r0, r1, 5
+ ldr r2, _080CD638
+ adds r0, r2
+ lsls r1, 4
+ ldr r3, _080CD63C
+ adds r2, r3, 0
+ orrs r1, r2
+ movs r2, 0x4
+ bl LoadPalette
+ movs r0, 0x3F
+ bl sub_8076F98
+ adds r1, r0, 0
+ lsls r1, 24
+ asrs r1, 24
+ movs r0, 0xC0
+ bl PlaySE12WithPanning
+ b _080CD648
+ .align 2, 0
+_080CD634: .4byte 0x00007fff
+_080CD638: .4byte gPlttBufferUnfaded + 0x210
+_080CD63C: .4byte 0x00000101
+_080CD640:
+ cmp r0, 0
+ bne _080CD648
+ ldr r0, _080CD650
+ str r0, [r4, 0x1C]
+_080CD648:
+ add sp, 0xC
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CD650: .4byte sub_80CD654
+ thumb_func_end sub_80CD5A8
+
+ thumb_func_start sub_80CD654
+sub_80CD654: @ 80CD654
+ push {lr}
+ adds r2, r0, 0
+ ldr r0, _080CD670
+ ldrh r1, [r0, 0xE]
+ ldr r0, _080CD674
+ cmp r1, r0
+ bne _080CD66C
+ movs r0, 0
+ strh r0, [r2, 0x30]
+ strh r0, [r2, 0x2E]
+ ldr r0, _080CD678
+ str r0, [r2, 0x1C]
+_080CD66C:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CD670: .4byte gUnknown_03004B00
+_080CD674: .4byte 0x0000ffff
+_080CD678: .4byte sub_80CD67C
+ thumb_func_end sub_80CD654
+
+ thumb_func_start sub_80CD67C
+sub_80CD67C: @ 80CD67C
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ movs r1, 0x3
+ bl __modsi3
+ lsls r0, 16
+ cmp r0, 0
+ bne _080CD6B0
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ adds r3, r4, 0
+ 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]
+_080CD6B0:
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x8
+ bne _080CD6C4
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080CD6C4:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80CD67C
+
+ thumb_func_start sub_80CD6CC
+sub_80CD6CC: @ 80CD6CC
+ push {r4,lr}
+ adds r3, r0, 0
+ ldr r0, _080CD6EC
+ ldrh r0, [r0]
+ strh r0, [r3, 0x6]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ bne _080CD6F0
+ ldrh r0, [r3, 0x20]
+ subs r0, 0x18
+ strh r0, [r3, 0x20]
+ ldrh r0, [r3, 0x22]
+ subs r0, 0x18
+ strh r0, [r3, 0x22]
+ b _080CD742
+ .align 2, 0
+_080CD6EC: .4byte gUnknown_03004B00
+_080CD6F0:
+ cmp r0, 0x2
+ bne _080CD70C
+ ldrh r0, [r3, 0x20]
+ subs r0, 0x18
+ strh r0, [r3, 0x20]
+ ldrh r0, [r3, 0x22]
+ adds r0, 0x18
+ strh r0, [r3, 0x22]
+ ldrb r1, [r3, 0x3]
+ movs r0, 0x3F
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x20
+ b _080CD73E
+_080CD70C:
+ cmp r0, 0x3
+ bne _080CD728
+ ldrh r0, [r3, 0x20]
+ adds r0, 0x18
+ strh r0, [r3, 0x20]
+ ldrh r0, [r3, 0x22]
+ subs r0, 0x18
+ strh r0, [r3, 0x22]
+ ldrb r1, [r3, 0x3]
+ movs r0, 0x3F
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x10
+ b _080CD73E
+_080CD728:
+ ldrh r0, [r3, 0x20]
+ adds r0, 0x18
+ strh r0, [r3, 0x20]
+ ldrh r0, [r3, 0x22]
+ adds r0, 0x18
+ strh r0, [r3, 0x22]
+ ldrb r1, [r3, 0x3]
+ movs r0, 0x3F
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x30
+_080CD73E:
+ orrs r0, r1
+ strb r0, [r3, 0x3]
+_080CD742:
+ ldrh r2, [r3, 0x4]
+ lsls r1, r2, 22
+ lsrs r1, 22
+ adds r1, 0x10
+ ldr r4, _080CD768
+ adds r0, r4, 0
+ ands r1, r0
+ ldr r0, _080CD76C
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r3, 0x4]
+ ldr r1, _080CD770
+ str r1, [r3, 0x1C]
+ adds r0, r3, 0
+ bl _call_via_r1
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CD768: .4byte 0x000003ff
+_080CD76C: .4byte 0xfffffc00
+_080CD770: .4byte sub_80CD3E0
+ thumb_func_end sub_80CD6CC
+
+ thumb_func_start sub_80CD774
+sub_80CD774: @ 80CD774
+ push {lr}
+ adds r3, r0, 0
+ adds r2, r3, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ movs r0, 0
+ strh r0, [r3, 0x2E]
+ ldr r0, _080CD79C
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0x1
+ beq _080CD7B0
+ cmp r0, 0x1
+ bgt _080CD7A0
+ cmp r0, 0
+ beq _080CD7A6
+ b _080CD7C0
+ .align 2, 0
+_080CD79C: .4byte gUnknown_03004B00
+_080CD7A0:
+ cmp r0, 0x2
+ beq _080CD7B8
+ b _080CD7C0
+_080CD7A6:
+ ldr r0, _080CD7AC
+ b _080CD7C2
+ .align 2, 0
+_080CD7AC: .4byte sub_80CD7CC
+_080CD7B0:
+ ldr r0, _080CD7B4
+ b _080CD7C2
+ .align 2, 0
+_080CD7B4: .4byte sub_80CD8A8
+_080CD7B8:
+ ldr r0, _080CD7BC
+ b _080CD7C2
+ .align 2, 0
+_080CD7BC: .4byte sub_80CD8F8
+_080CD7C0:
+ ldr r0, _080CD7C8
+_080CD7C2:
+ str r0, [r3, 0x1C]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CD7C8: .4byte sub_80CD9B8
+ thumb_func_end sub_80CD774
+
+ thumb_func_start sub_80CD7CC
+sub_80CD7CC: @ 80CD7CC
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r0, 0x6
+ strh r0, [r4, 0x2E]
+ ldr r5, _080CD80C
+ ldrb r0, [r5]
+ bl battle_side_get_owner
+ lsls r0, 24
+ movs r2, 0x2
+ negs r2, r2
+ adds r1, r2, 0
+ cmp r0, 0
+ beq _080CD7EA
+ movs r1, 0x2
+_080CD7EA:
+ strh r1, [r4, 0x30]
+ movs r0, 0
+ strh r0, [r4, 0x32]
+ ldr r1, _080CD810
+ ldrb r0, [r5]
+ adds r0, r1
+ ldrb r0, [r0]
+ strh r0, [r4, 0x34]
+ ldr r1, _080CD814
+ adds r0, r4, 0
+ bl oamt_set_x3A_32
+ ldr r0, _080CD818
+ str r0, [r4, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CD80C: .4byte gUnknown_0202F7C8
+_080CD810: .4byte gUnknown_02024BE0
+_080CD814: .4byte sub_80CD81C
+_080CD818: .4byte sub_8078458
+ thumb_func_end sub_80CD7CC
+
+ thumb_func_start sub_80CD81C
+sub_80CD81C: @ 80CD81C
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ movs r0, 0x2E
+ ldrsh r6, [r5, r0]
+ cmp r6, 0
+ bne _080CD858
+ ldr r1, _080CD898
+ ldr r4, _080CD89C
+ ldrb r0, [r4]
+ adds r0, r1
+ ldrb r0, [r0]
+ strh r0, [r5, 0x34]
+ movs r1, 0
+ bl sub_8078E70
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x3A]
+ ldr r2, _080CD8A0
+ adds r1, r2, 0
+ cmp r0, 0
+ beq _080CD854
+ movs r0, 0xC0
+ lsls r0, 2
+ adds r1, r0, 0
+_080CD854:
+ strh r1, [r5, 0x36]
+ strh r6, [r5, 0x38]
+_080CD858:
+ ldrh r0, [r5, 0x36]
+ ldrh r1, [r5, 0x38]
+ adds r0, r1
+ strh r0, [r5, 0x38]
+ ldrh r0, [r5, 0x34]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r2, 0x80
+ lsls r2, 1
+ ldrh r3, [r5, 0x38]
+ adds r1, r2, 0
+ bl obj_id_set_rotscale
+ ldrh r0, [r5, 0x34]
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8078F9C
+ ldrh r0, [r5, 0x2E]
+ adds r0, 0x1
+ strh r0, [r5, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3
+ ble _080CD892
+ movs r0, 0
+ strh r0, [r5, 0x2E]
+ ldr r0, _080CD8A4
+ str r0, [r5, 0x1C]
+_080CD892:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CD898: .4byte gUnknown_02024BE0
+_080CD89C: .4byte gUnknown_0202F7C8
+_080CD8A0: .4byte 0xfffffd00
+_080CD8A4: .4byte sub_80CD9B8
+ thumb_func_end sub_80CD81C
+
+ thumb_func_start sub_80CD8A8
+sub_80CD8A8: @ 80CD8A8
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r0, 0x4
+ strh r0, [r4, 0x2E]
+ ldr r5, _080CD8E8
+ ldrb r0, [r5]
+ bl battle_side_get_owner
+ lsls r0, 24
+ movs r1, 0x3
+ cmp r0, 0
+ beq _080CD8C6
+ movs r0, 0x3
+ negs r0, r0
+ adds r1, r0, 0
+_080CD8C6:
+ strh r1, [r4, 0x30]
+ movs r0, 0
+ strh r0, [r4, 0x32]
+ ldr r1, _080CD8EC
+ ldrb r0, [r5]
+ adds r0, r1
+ ldrb r0, [r0]
+ strh r0, [r4, 0x34]
+ ldr r1, _080CD8F0
+ adds r0, r4, 0
+ bl oamt_set_x3A_32
+ ldr r0, _080CD8F4
+ str r0, [r4, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CD8E8: .4byte gUnknown_0202F7C8
+_080CD8EC: .4byte gUnknown_02024BE0
+_080CD8F0: .4byte sub_80CD9B8
+_080CD8F4: .4byte sub_8078458
+ thumb_func_end sub_80CD8A8
+
+ thumb_func_start sub_80CD8F8
+sub_80CD8F8: @ 80CD8F8
+ push {lr}
+ adds r1, r0, 0
+ ldrh r0, [r1, 0x2E]
+ adds r0, 0x1
+ strh r0, [r1, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x8
+ ble _080CD912
+ movs r0, 0
+ strh r0, [r1, 0x2E]
+ ldr r0, _080CD918
+ str r0, [r1, 0x1C]
+_080CD912:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CD918: .4byte sub_80CD91C
+ thumb_func_end sub_80CD8F8
+
+ thumb_func_start sub_80CD91C
+sub_80CD91C: @ 80CD91C
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ bne _080CD96C
+ ldr r1, _080CD958
+ ldr r4, _080CD95C
+ ldrb r0, [r4]
+ adds r0, r1
+ ldrb r0, [r0]
+ strh r0, [r5, 0x34]
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x3A]
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080CD960
+ movs r0, 0xFC
+ lsls r0, 8
+ strh r0, [r5, 0x36]
+ movs r0, 0xC0
+ lsls r0, 4
+ b _080CD96A
+ .align 2, 0
+_080CD958: .4byte gUnknown_02024BE0
+_080CD95C: .4byte gUnknown_0202F7C8
+_080CD960:
+ movs r0, 0x80
+ lsls r0, 3
+ strh r0, [r5, 0x36]
+ movs r0, 0xF4
+ lsls r0, 8
+_080CD96A:
+ strh r0, [r5, 0x38]
+_080CD96C:
+ ldrh r0, [r5, 0x36]
+ ldrh r1, [r5, 0x38]
+ adds r0, r1
+ strh r0, [r5, 0x38]
+ ldrh r0, [r5, 0x34]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r2, 0x80
+ lsls r2, 1
+ ldrh r3, [r5, 0x38]
+ adds r1, r2, 0
+ bl obj_id_set_rotscale
+ ldrh r0, [r5, 0x34]
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8078F9C
+ ldrh r0, [r5, 0x2E]
+ adds r0, 0x1
+ strh r0, [r5, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x2
+ ble _080CD9AC
+ ldrh r0, [r5, 0x34]
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8078F40
+ ldr r0, _080CD9B4
+ str r0, [r5, 0x1C]
+_080CD9AC:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CD9B4: .4byte sub_80CD9B8
+ thumb_func_end sub_80CD91C
+
+ thumb_func_start sub_80CD9B8
+sub_80CD9B8: @ 80CD9B8
+ push {lr}
+ bl move_anim_8072740
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80CD9B8
+
+ thumb_func_start sub_80CD9C4
+sub_80CD9C4: @ 80CD9C4
+ movs r1, 0
+ strh r1, [r0, 0x2E]
+ ldr r1, _080CD9D0
+ str r1, [r0, 0x1C]
+ bx lr
+ .align 2, 0
+_080CD9D0: .4byte sub_80CD9D4
+ thumb_func_end sub_80CD9C4
+
+ thumb_func_start sub_80CD9D4
+sub_80CD9D4: @ 80CD9D4
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r0, 0x2E
+ ldrsh r5, [r4, r0]
+ cmp r5, 0x1
+ beq _080CDA2E
+ cmp r5, 0x1
+ bgt _080CD9EA
+ cmp r5, 0
+ beq _080CD9F0
+ b _080CDAC2
+_080CD9EA:
+ cmp r5, 0x2
+ beq _080CDA80
+ b _080CDAC2
+_080CD9F0:
+ strh r5, [r4, 0x30]
+ ldr r1, _080CDA74
+ ldr r2, _080CDA78
+ ldrb r0, [r2]
+ adds r0, r1
+ ldrb r0, [r0]
+ strh r0, [r4, 0x32]
+ ldrb r0, [r2]
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x34]
+ ldr r2, _080CDA7C
+ adds r1, r2, 0
+ cmp r0, 0
+ beq _080CDA18
+ movs r0, 0x80
+ lsls r0, 2
+ adds r1, r0, 0
+_080CDA18:
+ strh r1, [r4, 0x36]
+ strh r5, [r4, 0x38]
+ ldrh r0, [r4, 0x32]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0
+ bl sub_8078E70
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+_080CDA2E:
+ ldrh r0, [r4, 0x36]
+ ldrh r1, [r4, 0x38]
+ adds r0, r1
+ strh r0, [r4, 0x38]
+ ldrh r0, [r4, 0x32]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r2, 0x80
+ lsls r2, 1
+ ldrh r3, [r4, 0x38]
+ adds r1, r2, 0
+ bl obj_id_set_rotscale
+ ldrh r0, [r4, 0x32]
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8078F9C
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3
+ ble _080CDAC2
+ movs r0, 0
+ strh r0, [r4, 0x30]
+ movs r2, 0x36
+ ldrsh r0, [r4, r2]
+ negs r0, r0
+ strh r0, [r4, 0x36]
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ b _080CDAC2
+ .align 2, 0
+_080CDA74: .4byte gUnknown_02024BE0
+_080CDA78: .4byte gUnknown_0202F7C8
+_080CDA7C: .4byte 0xfffffe00
+_080CDA80:
+ ldrh r0, [r4, 0x36]
+ ldrh r1, [r4, 0x38]
+ adds r0, r1
+ strh r0, [r4, 0x38]
+ ldrh r0, [r4, 0x32]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r2, 0x80
+ lsls r2, 1
+ ldrh r3, [r4, 0x38]
+ adds r1, r2, 0
+ bl obj_id_set_rotscale
+ ldrh r0, [r4, 0x32]
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8078F9C
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3
+ ble _080CDAC2
+ ldrh r0, [r4, 0x32]
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8078F40
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080CDAC2:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80CD9D4
+
+ thumb_func_start sub_80CDAC8
+sub_80CDAC8: @ 80CDAC8
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r1, _080CDB0C
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r5, r0, r1
+ ldr r1, _080CDB10
+ ldr r2, _080CDB14
+ ldrb r0, [r2]
+ adds r0, r1
+ ldrb r0, [r0]
+ movs r4, 0
+ strh r0, [r5, 0x8]
+ ldrb r0, [r2]
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r2, r0, 24
+ strh r2, [r5, 0xA]
+ strh r4, [r5, 0xC]
+ ldr r0, _080CDB18
+ movs r3, 0
+ ldrsh r1, [r0, r3]
+ cmp r1, 0
+ beq _080CDB1C
+ cmp r1, 0x1
+ beq _080CDB38
+ adds r0, r6, 0
+ bl move_anim_task_del
+ b _080CDB56
+ .align 2, 0
+_080CDB0C: .4byte gTasks
+_080CDB10: .4byte gUnknown_02024BE0
+_080CDB14: .4byte gUnknown_0202F7C8
+_080CDB18: .4byte gUnknown_03004B00
+_080CDB1C:
+ strh r1, [r5, 0xC]
+ movs r0, 0x8
+ strh r0, [r5, 0xE]
+ strh r1, [r5, 0x10]
+ movs r0, 0x3
+ strh r0, [r5, 0x12]
+ cmp r2, 0
+ bne _080CDB30
+ negs r0, r0
+ strh r0, [r5, 0x12]
+_080CDB30:
+ ldr r0, _080CDB34
+ b _080CDB54
+ .align 2, 0
+_080CDB34: .4byte sub_80CDB60
+_080CDB38:
+ movs r0, 0x8
+ strh r0, [r5, 0xE]
+ movs r0, 0xC0
+ lsls r0, 3
+ strh r0, [r5, 0x10]
+ movs r1, 0xC0
+ strh r1, [r5, 0x12]
+ cmp r2, 0
+ bne _080CDB52
+ negs r0, r0
+ strh r0, [r5, 0x10]
+ negs r0, r1
+ strh r0, [r5, 0x12]
+_080CDB52:
+ ldr r0, _080CDB5C
+_080CDB54:
+ str r0, [r5]
+_080CDB56:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CDB5C: .4byte sub_80CDD20
+ thumb_func_end sub_80CDAC8
+
+ thumb_func_start sub_80CDB60
+sub_80CDB60: @ 80CDB60
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ ldr r1, _080CDB84
+ adds r4, r0, r1
+ movs r1, 0xC
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x4
+ bls _080CDB7A
+ b _080CDD1A
+_080CDB7A:
+ lsls r0, 2
+ ldr r1, _080CDB88
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080CDB84: .4byte gTasks
+_080CDB88: .4byte _080CDB8C
+ .align 2, 0
+_080CDB8C:
+ .4byte _080CDBA0
+ .4byte _080CDBD2
+ .4byte _080CDC2C
+ .4byte _080CDCA4
+ .4byte _080CDCE8
+_080CDBA0:
+ movs r2, 0xE
+ ldrsh r1, [r4, r2]
+ cmp r1, 0
+ beq _080CDBB0
+ ldrh r2, [r4, 0x12]
+ ldrh r3, [r4, 0x10]
+ adds r2, r3
+ b _080CDCF6
+_080CDBB0:
+ movs r0, 0x8
+ strh r0, [r4, 0xE]
+ strh r1, [r4, 0x10]
+ movs r1, 0xA
+ ldrsh r0, [r4, r1]
+ movs r1, 0xC0
+ cmp r0, 0
+ bne _080CDBC6
+ movs r2, 0xC0
+ negs r2, r2
+ adds r1, r2, 0
+_080CDBC6:
+ strh r1, [r4, 0x12]
+ ldrb r0, [r4, 0x8]
+ movs r1, 0
+ bl sub_8078E70
+ b _080CDCDC
+_080CDBD2:
+ movs r3, 0xE
+ ldrsh r0, [r4, r3]
+ cmp r0, 0
+ beq _080CDBF8
+ ldrh r0, [r4, 0x12]
+ ldrh r1, [r4, 0x10]
+ adds r0, r1
+ strh r0, [r4, 0x10]
+ ldrb r0, [r4, 0x8]
+ movs r2, 0x80
+ lsls r2, 1
+ ldrh r3, [r4, 0x10]
+ adds r1, r2, 0
+ bl obj_id_set_rotscale
+ ldrb r0, [r4, 0x8]
+ bl sub_8078F9C
+ b _080CDD08
+_080CDBF8:
+ movs r0, 0x8
+ strh r0, [r4, 0xE]
+ ldr r2, _080CDC28
+ movs r3, 0x8
+ ldrsh r1, [r4, r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r0, [r0, 0x24]
+ strh r0, [r4, 0x10]
+ movs r1, 0xA
+ ldrsh r0, [r4, r1]
+ movs r2, 0x2
+ negs r2, r2
+ adds r1, r2, 0
+ cmp r0, 0
+ bne _080CDC1E
+ movs r1, 0x2
+_080CDC1E:
+ strh r1, [r4, 0x12]
+ movs r0, 0x1
+ strh r0, [r4, 0x14]
+ b _080CDCDC
+ .align 2, 0
+_080CDC28: .4byte gSprites
+_080CDC2C:
+ ldrh r2, [r4, 0xE]
+ movs r3, 0xE
+ ldrsh r0, [r4, r3]
+ cmp r0, 0
+ beq _080CDC88
+ ldrh r1, [r4, 0x14]
+ movs r3, 0x14
+ ldrsh r0, [r4, r3]
+ cmp r0, 0
+ beq _080CDC46
+ subs r0, r1, 0x1
+ strh r0, [r4, 0x14]
+ b _080CDD1A
+_080CDC46:
+ movs r0, 0x1
+ ands r0, r2
+ cmp r0, 0
+ beq _080CDC68
+ ldr r2, _080CDC64
+ movs r0, 0x8
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r4, 0x12]
+ ldrh r2, [r4, 0x10]
+ adds r1, r2
+ b _080CDC7C
+ .align 2, 0
+_080CDC64: .4byte gSprites
+_080CDC68:
+ ldr r2, _080CDC84
+ movs r3, 0x8
+ ldrsh r1, [r4, r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r4, 0x10]
+ ldrh r2, [r4, 0x12]
+ subs r1, r2
+_080CDC7C:
+ strh r1, [r0, 0x24]
+ movs r0, 0x1
+ strh r0, [r4, 0x14]
+ b _080CDD08
+ .align 2, 0
+_080CDC84: .4byte gSprites
+_080CDC88:
+ ldr r2, _080CDCA0
+ movs r0, 0x8
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r4, 0x10]
+ strh r1, [r0, 0x24]
+ movs r0, 0xC
+ strh r0, [r4, 0xE]
+ b _080CDCDC
+ .align 2, 0
+_080CDCA0: .4byte gSprites
+_080CDCA4:
+ ldrh r1, [r4, 0xE]
+ movs r2, 0xE
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ beq _080CDCB4
+ subs r0, r1, 0x1
+ strh r0, [r4, 0xE]
+ b _080CDD1A
+_080CDCB4:
+ movs r0, 0x3
+ strh r0, [r4, 0xE]
+ ldr r2, _080CDCE4
+ movs r3, 0x8
+ ldrsh r1, [r4, r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r0, [r0, 0x24]
+ strh r0, [r4, 0x10]
+ movs r1, 0xA
+ ldrsh r0, [r4, r1]
+ movs r2, 0x8
+ negs r2, r2
+ adds r1, r2, 0
+ cmp r0, 0
+ bne _080CDCDA
+ movs r1, 0x8
+_080CDCDA:
+ strh r1, [r4, 0x12]
+_080CDCDC:
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x1
+ strh r0, [r4, 0xC]
+ b _080CDD1A
+ .align 2, 0
+_080CDCE4: .4byte gSprites
+_080CDCE8:
+ movs r3, 0xE
+ ldrsh r0, [r4, r3]
+ cmp r0, 0
+ beq _080CDD14
+ ldrh r2, [r4, 0x12]
+ ldrh r0, [r4, 0x10]
+ adds r2, r0
+_080CDCF6:
+ strh r2, [r4, 0x10]
+ ldr r3, _080CDD10
+ movs r0, 0x8
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ strh r2, [r0, 0x24]
+_080CDD08:
+ ldrh r0, [r4, 0xE]
+ subs r0, 0x1
+ strh r0, [r4, 0xE]
+ b _080CDD1A
+ .align 2, 0
+_080CDD10: .4byte gSprites
+_080CDD14:
+ adds r0, r2, 0
+ bl move_anim_task_del
+_080CDD1A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80CDB60
+
+ thumb_func_start sub_80CDD20
+sub_80CDD20: @ 80CDD20
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, _080CDD5C
+ adds r4, r0, r1
+ movs r1, 0xE
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080CDD60
+ ldrh r0, [r4, 0x10]
+ ldrh r1, [r4, 0x12]
+ subs r0, r1
+ strh r0, [r4, 0x10]
+ ldrb r0, [r4, 0x8]
+ movs r2, 0x80
+ lsls r2, 1
+ ldrh r3, [r4, 0x10]
+ adds r1, r2, 0
+ bl obj_id_set_rotscale
+ ldrb r0, [r4, 0x8]
+ bl sub_8078F9C
+ ldrh r0, [r4, 0xE]
+ subs r0, 0x1
+ strh r0, [r4, 0xE]
+ b _080CDD6C
+ .align 2, 0
+_080CDD5C: .4byte gTasks
+_080CDD60:
+ ldrb r0, [r4, 0x8]
+ bl sub_8078F40
+ adds r0, r5, 0
+ bl move_anim_task_del
+_080CDD6C:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80CDD20
+
+ thumb_func_start sub_80CDD74
+sub_80CDD74: @ 80CDD74
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ ldr r6, _080CDD88
+ movs r1, 0
+ ldrsh r0, [r6, r1]
+ cmp r0, 0
+ bne _080CDD90
+ ldr r4, _080CDD8C
+ b _080CDD92
+ .align 2, 0
+_080CDD88: .4byte gUnknown_03004B00
+_080CDD8C: .4byte gUnknown_0202F7C8
+_080CDD90:
+ ldr r4, _080CDDD0
+_080CDD92:
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r6, 0x2]
+ adds r0, r1
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r6, [r6, 0x4]
+ adds r0, r6
+ strh r0, [r5, 0x22]
+ movs r0, 0
+ strh r0, [r5, 0x2E]
+ strh r0, [r5, 0x30]
+ ldr r1, _080CDDD4
+ adds r0, r5, 0
+ bl oamt_set_x3A_32
+ ldr r0, _080CDDD8
+ str r0, [r5, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CDDD0: .4byte gUnknown_0202F7C9
+_080CDDD4: .4byte sub_80CDEC0
+_080CDDD8: .4byte sub_8078600
+ thumb_func_end sub_80CDD74
+
+ thumb_func_start sub_80CDDDC
+sub_80CDDDC: @ 80CDDDC
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldr r5, _080CDE14
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _080CDE18
+ adds r0, r1
+ strh r0, [r4, 0x20]
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x22]
+ ldr r1, _080CDE1C
+ adds r0, r4, 0
+ bl oamt_set_x3A_32
+ ldr r0, _080CDE20
+ str r0, [r4, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CDE14: .4byte gUnknown_0202F7C9
+_080CDE18: .4byte 0x0000ffd0
+_080CDE1C: .4byte sub_80CDE78
+_080CDE20: .4byte sub_8078600
+ thumb_func_end sub_80CDDDC
+
+ thumb_func_start sub_80CDE24
+sub_80CDE24: @ 80CDE24
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ ldr r5, _080CDE68
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _080CDE6C
+ ldr r2, _080CDE70
+ adds r0, r2
+ ldrh r1, [r1]
+ adds r0, r1
+ movs r6, 0
+ strh r0, [r4, 0x20]
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x22]
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl StartSpriteAnim
+ strh r6, [r4, 0x2E]
+ strh r6, [r4, 0x30]
+ ldr r0, _080CDE74
+ str r0, [r4, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CDE68: .4byte gUnknown_0202F7C9
+_080CDE6C: .4byte gUnknown_03004B00
+_080CDE70: .4byte 0x0000ffd0
+_080CDE74: .4byte sub_80CDEC0
+ thumb_func_end sub_80CDE24
+
+ thumb_func_start sub_80CDE78
+sub_80CDE78: @ 80CDE78
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x8
+ ble _080CDEA2
+ movs r0, 0xC
+ strh r0, [r4, 0x2E]
+ movs r0, 0x8
+ strh r0, [r4, 0x30]
+ movs r0, 0
+ strh r0, [r4, 0x32]
+ ldr r1, _080CDEA8
+ adds r0, r4, 0
+ bl oamt_set_x3A_32
+ ldr r0, _080CDEAC
+ str r0, [r4, 0x1C]
+_080CDEA2:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CDEA8: .4byte sub_80CDEB0
+_080CDEAC: .4byte sub_8078364
+ thumb_func_end sub_80CDE78
+
+ thumb_func_start sub_80CDEB0
+sub_80CDEB0: @ 80CDEB0
+ movs r1, 0
+ strh r1, [r0, 0x2E]
+ strh r1, [r0, 0x30]
+ ldr r1, _080CDEBC
+ str r1, [r0, 0x1C]
+ bx lr
+ .align 2, 0
+_080CDEBC: .4byte sub_80CDEC0
+ thumb_func_end sub_80CDEB0
+
+ thumb_func_start sub_80CDEC0
+sub_80CDEC0: @ 80CDEC0
+ 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, 0x1
+ ble _080CDF08
+ movs r0, 0
+ strh r0, [r3, 0x2E]
+ movs r0, 0x3E
+ adds r0, r3
+ mov r12, r0
+ ldrb r2, [r0]
+ lsrs r1, r2, 2
+ movs r0, 0x1
+ eors r1, r0
+ ands r1, r0
+ lsls r1, 2
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ mov r1, r12
+ strb r0, [r1]
+ ldrh r0, [r3, 0x30]
+ adds r0, 0x1
+ strh r0, [r3, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x8
+ ble _080CDF08
+ adds r0, r3, 0
+ bl move_anim_8072740
+_080CDF08:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80CDEC0
+
+ thumb_func_start sub_80CDF0C
+sub_80CDF0C: @ 80CDF0C
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ ldr r6, _080CDF20
+ movs r1, 0
+ ldrsh r0, [r6, r1]
+ cmp r0, 0
+ bne _080CDF28
+ ldr r4, _080CDF24
+ b _080CDF2A
+ .align 2, 0
+_080CDF20: .4byte gUnknown_03004B00
+_080CDF24: .4byte gUnknown_0202F7C8
+_080CDF28:
+ ldr r4, _080CDF64
+_080CDF2A:
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r6, 0x2]
+ adds r0, r1
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r6, [r6, 0x4]
+ adds r0, r6
+ strh r0, [r5, 0x22]
+ movs r0, 0
+ strh r0, [r5, 0x2E]
+ ldr r0, _080CDF68
+ ldrh r0, [r0, 0x6]
+ strh r0, [r5, 0x30]
+ ldr r0, _080CDF6C
+ str r0, [r5, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CDF64: .4byte gUnknown_0202F7C9
+_080CDF68: .4byte gUnknown_03004B00
+_080CDF6C: .4byte sub_80CDF70
+ thumb_func_end sub_80CDF0C
+
+ thumb_func_start sub_80CDF70
+sub_80CDF70: @ 80CDF70
+ push {lr}
+ adds r2, r0, 0
+ ldrh r0, [r2, 0x2E]
+ adds r0, 0x1
+ strh r0, [r2, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ movs r3, 0x30
+ ldrsh r1, [r2, r3]
+ cmp r0, r1
+ ble _080CDF90
+ movs r0, 0
+ strh r0, [r2, 0x2E]
+ ldrh r0, [r2, 0x22]
+ subs r0, 0x1
+ strh r0, [r2, 0x22]
+_080CDF90:
+ ldrh r0, [r2, 0x22]
+ ldrh r1, [r2, 0x2E]
+ subs r0, r1
+ strh r0, [r2, 0x22]
+ adds r0, r2, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080CDFAC
+ adds r0, r2, 0
+ bl move_anim_8072740
+_080CDFAC:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80CDF70
+
+ thumb_func_start sub_80CDFB0
+sub_80CDFB0: @ 80CDFB0
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ ldr r6, _080CDFF8
+ ldrb r0, [r6]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ movs r5, 0
+ strh r0, [r4, 0x20]
+ ldrb r0, [r6]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ subs r0, 0xC
+ strh r0, [r4, 0x22]
+ strh r5, [r4, 0x2E]
+ movs r0, 0x2
+ strh r0, [r4, 0x30]
+ strh r5, [r4, 0x32]
+ strh r5, [r4, 0x34]
+ strh r5, [r4, 0x36]
+ subs r0, 0x42
+ bl sub_8076F98
+ lsls r0, 24
+ asrs r0, 24
+ strh r0, [r4, 0x38]
+ ldr r0, _080CDFFC
+ str r0, [r4, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CDFF8: .4byte gUnknown_0202F7C8
+_080CDFFC: .4byte sub_80CE000
+ thumb_func_end sub_80CDFB0
+
+ thumb_func_start sub_80CE000
+sub_80CE000: @ 80CE000
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ movs r2, 0x30
+ ldrsh r1, [r4, r2]
+ cmp r0, r1
+ blt _080CE06C
+ adds r3, r4, 0
+ adds r3, 0x3E
+ ldrb r2, [r3]
+ lsrs r1, r2, 2
+ movs r0, 0x1
+ eors r1, r0
+ ands r1, r0
+ lsls r1, 2
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+ movs r1, 0x4
+ ands r0, r1
+ cmp r0, 0
+ bne _080CE052
+ ldrh r0, [r4, 0x36]
+ adds r0, 0x1
+ strh r0, [r4, 0x36]
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _080CE052
+ ldrh r1, [r4, 0x38]
+ lsls r1, 24
+ asrs r1, 24
+ movs r0, 0xC2
+ bl PlaySE12WithPanning
+_080CE052:
+ movs r1, 0
+ strh r1, [r4, 0x2E]
+ ldrh r0, [r4, 0x32]
+ adds r0, 0x1
+ strh r0, [r4, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080CE06C
+ strh r1, [r4, 0x32]
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+_080CE06C:
+ adds r0, r4, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080CE096
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x10
+ ble _080CE096
+ adds r0, r4, 0
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _080CE096
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080CE096:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80CE000
+
+ thumb_func_start sub_80CE09C
+sub_80CE09C: @ 80CE09C
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r6, r1]
+ cmp r0, 0
+ bne _080CE0E6
+ ldr r4, _080CE0FC
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ ldr r5, _080CE100
+ lsrs r0, 24
+ ldrh r1, [r5]
+ adds r0, r1
+ strh r0, [r6, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r5, [r5, 0x2]
+ adds r0, r5
+ strh r0, [r6, 0x22]
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080CE0E0
+ ldrh r0, [r6, 0x22]
+ adds r0, 0xA
+ strh r0, [r6, 0x22]
+_080CE0E0:
+ ldrh r0, [r6, 0x2E]
+ adds r0, 0x1
+ strh r0, [r6, 0x2E]
+_080CE0E6:
+ ldr r0, _080CE100
+ ldrh r1, [r0, 0xE]
+ ldr r0, _080CE104
+ cmp r1, r0
+ bne _080CE0F6
+ adds r0, r6, 0
+ bl move_anim_8072740
+_080CE0F6:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CE0FC: .4byte gUnknown_0202F7C8
+_080CE100: .4byte gUnknown_03004B00
+_080CE104: .4byte 0x0000ffff
+ thumb_func_end sub_80CE09C
+
+ thumb_func_start sub_80CE108
+sub_80CE108: @ 80CE108
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r1, _080CE128
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r4, r0, r1
+ movs r1, 0xC
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ bne _080CE134
+ ldr r1, _080CE12C
+ ldr r0, _080CE130
+ strh r0, [r1, 0xE]
+ b _080CE16C
+ .align 2, 0
+_080CE128: .4byte gTasks
+_080CE12C: .4byte gUnknown_03004B00
+_080CE130: .4byte 0x0000ffff
+_080CE134:
+ cmp r0, 0x2
+ bne _080CE140
+ adds r0, r2, 0
+ bl move_anim_task_del
+ b _080CE172
+_080CE140:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ bne _080CE172
+ movs r0, 0
+ strh r0, [r4, 0x8]
+ ldrh r1, [r4, 0xA]
+ adds r1, 0x1
+ strh r1, [r4, 0xA]
+ ldr r3, _080CE178
+ lsls r2, r1, 8
+ movs r0, 0x10
+ subs r0, r1
+ orrs r2, r0
+ strh r2, [r3]
+ movs r1, 0xA
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x10
+ bne _080CE172
+_080CE16C:
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x1
+ strh r0, [r4, 0xC]
+_080CE172:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CE178: .4byte REG_BLDALPHA
+ thumb_func_end sub_80CE108
+
+ thumb_func_start sub_80CE17C
+sub_80CE17C: @ 80CE17C
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0
+ bl sub_8078764
+ adds r2, r4, 0
+ adds r2, 0x2C
+ ldrb r0, [r2]
+ movs r1, 0x40
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r0, _080CE1A4
+ ldrh r0, [r0, 0x4]
+ strh r0, [r4, 0x2E]
+ ldr r0, _080CE1A8
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CE1A4: .4byte gUnknown_03004B00
+_080CE1A8: .4byte sub_80CE1AC
+ thumb_func_end sub_80CE17C
+
+ thumb_func_start sub_80CE1AC
+sub_80CE1AC: @ 80CE1AC
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldrh r1, [r5, 0x2E]
+ movs r2, 0x2E
+ ldrsh r0, [r5, r2]
+ cmp r0, 0
+ beq _080CE1C0
+ subs r0, r1, 0x1
+ strh r0, [r5, 0x2E]
+ b _080CE1FC
+_080CE1C0:
+ adds r2, r5, 0
+ adds r2, 0x2C
+ ldrb r1, [r2]
+ movs r0, 0x41
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+ movs r0, 0x1E
+ strh r0, [r5, 0x2E]
+ ldr r4, _080CE204
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x32]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x36]
+ ldr r0, _080CE208
+ str r0, [r5, 0x1C]
+ ldr r1, _080CE20C
+ adds r0, r5, 0
+ bl oamt_set_x3A_32
+_080CE1FC:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CE204: .4byte gUnknown_0202F7C8
+_080CE208: .4byte sub_8078B34
+_080CE20C: .4byte move_anim_8072740
+ thumb_func_end sub_80CE1AC
+
+ thumb_func_start sub_80CE210
+sub_80CE210: @ 80CE210
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r1, _080CE258
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r3, r0, r1
+ ldrh r0, [r3, 0x8]
+ adds r0, 0x1
+ strh r0, [r3, 0x8]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ bne _080CE252
+ movs r0, 0
+ strh r0, [r3, 0x8]
+ ldrh r1, [r3, 0xA]
+ adds r1, 0x1
+ strh r1, [r3, 0xA]
+ ldr r2, _080CE25C
+ movs r0, 0x10
+ subs r0, r1
+ lsls r0, 8
+ orrs r1, r0
+ strh r1, [r2]
+ movs r1, 0xA
+ ldrsh r0, [r3, r1]
+ cmp r0, 0x10
+ bne _080CE252
+ adds r0, r4, 0
+ bl move_anim_task_del
+_080CE252:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CE258: .4byte gTasks
+_080CE25C: .4byte REG_BLDALPHA
+ thumb_func_end sub_80CE210
+
+ thumb_func_start unref_sub_80CE260
+unref_sub_80CE260: @ 80CE260
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r7, r0, 24
+ movs r4, 0
+ ldr r0, _080CE2C8
+ ldrb r0, [r0]
+ cmp r4, r0
+ bcs _080CE2BC
+ ldr r6, _080CE2CC
+ ldr r5, _080CE2D0
+_080CE274:
+ movs r1, 0
+ ldrsh r0, [r6, r1]
+ cmp r0, 0x1
+ bne _080CE290
+ adds r0, r4, 0
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _080CE290
+ adds r0, r4, r5
+ ldrb r0, [r0]
+ bl sub_8043DB0
+_080CE290:
+ movs r1, 0x2
+ ldrsh r0, [r6, r1]
+ cmp r0, 0x1
+ bne _080CE2AE
+ adds r0, r4, 0
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080CE2AE
+ adds r0, r4, r5
+ ldrb r0, [r0]
+ bl sub_8043DB0
+_080CE2AE:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _080CE2C8
+ ldrb r0, [r0]
+ cmp r4, r0
+ bcc _080CE274
+_080CE2BC:
+ adds r0, r7, 0
+ bl move_anim_task_del
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CE2C8: .4byte gUnknown_02024A68
+_080CE2CC: .4byte gUnknown_03004B00
+_080CE2D0: .4byte gUnknown_03004340
+ thumb_func_end unref_sub_80CE260
+
+ thumb_func_start unref_sub_80CE2D4
+unref_sub_80CE2D4: @ 80CE2D4
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r4, 0
+ b _080CE2EE
+_080CE2DE:
+ ldr r0, _080CE304
+ adds r0, r4, r0
+ ldrb r0, [r0]
+ bl sub_8043DFC
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+_080CE2EE:
+ ldr r0, _080CE308
+ ldrb r0, [r0]
+ cmp r4, r0
+ bcc _080CE2DE
+ adds r0, r5, 0
+ bl move_anim_task_del
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CE304: .4byte gUnknown_03004340
+_080CE308: .4byte gUnknown_02024A68
+ thumb_func_end unref_sub_80CE2D4
+
+ thumb_func_start sub_80CE30C
+sub_80CE30C: @ 80CE30C
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080CE322
+ movs r0, 0x30
+ strh r0, [r4, 0x20]
+ movs r0, 0x28
+ b _080CE32A
+_080CE322:
+ ldr r0, _080CE34C
+ ldrh r1, [r0]
+ strh r1, [r4, 0x20]
+ ldrh r0, [r0, 0x2]
+_080CE32A:
+ strh r0, [r4, 0x22]
+ ldrb r1, [r4, 0x1]
+ movs r0, 0x3F
+ ands r0, r1
+ strb r0, [r4, 0x1]
+ ldrb r0, [r4, 0x3]
+ movs r1, 0xC0
+ orrs r0, r1
+ strb r0, [r4, 0x3]
+ movs r0, 0
+ strh r0, [r4, 0x2E]
+ ldr r0, _080CE350
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CE34C: .4byte gUnknown_03004B00
+_080CE350: .4byte sub_80CE354
+ thumb_func_end sub_80CE30C
+
+ thumb_func_start sub_80CE354
+sub_80CE354: @ 80CE354
+ push {lr}
+ adds r1, r0, 0
+ movs r2, 0x2E
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ beq _080CE366
+ adds r0, r1, 0
+ bl move_anim_8072740
+_080CE366:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80CE354
+
+ thumb_func_start sub_80CE36C
+sub_80CE36C: @ 80CE36C
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _080CE3A4
+ ldrb r0, [r0]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ ldr r2, _080CE3A8
+ lsrs r0, 24
+ ldrh r1, [r2]
+ adds r0, r1
+ movs r1, 0
+ strh r0, [r4, 0x20]
+ ldrh r0, [r2, 0x2]
+ strh r0, [r4, 0x22]
+ strh r1, [r4, 0x2E]
+ strh r1, [r4, 0x30]
+ strh r1, [r4, 0x32]
+ strh r1, [r4, 0x34]
+ movs r0, 0x1
+ strh r0, [r4, 0x36]
+ ldr r0, _080CE3AC
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CE3A4: .4byte gUnknown_0202F7C8
+_080CE3A8: .4byte gUnknown_03004B00
+_080CE3AC: .4byte sub_80CE3B0
+ thumb_func_end sub_80CE36C
+
+ thumb_func_start sub_80CE3B0
+sub_80CE3B0: @ 80CE3B0
+ 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, 0x1
+ ble _080CE3DA
+ movs r0, 0
+ strh r0, [r1, 0x30]
+ ldrh r2, [r1, 0x32]
+ movs r3, 0x32
+ ldrsh r0, [r1, r3]
+ cmp r0, 0x77
+ bgt _080CE3DA
+ ldrh r0, [r1, 0x22]
+ adds r0, 0x1
+ strh r0, [r1, 0x22]
+ adds r0, r2, 0x1
+ strh r0, [r1, 0x32]
+_080CE3DA:
+ movs r2, 0x2E
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ beq _080CE3E8
+ adds r0, r1, 0
+ bl move_anim_8072740
+_080CE3E8:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80CE3B0
+
+ thumb_func_start sub_80CE3EC
+sub_80CE3EC: @ 80CE3EC
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r7, r0, 24
+ movs r4, 0
+ str r4, [sp]
+ str r4, [sp, 0x4]
+ str r4, [sp, 0x8]
+ movs r0, 0x1
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl sub_80791A8
+ mov r8, r0
+ ldr r0, _080CE4BC
+ mov r1, r8
+ ands r1, r0
+ mov r8, r1
+ ldr r0, _080CE4C0
+ mov r9, r0
+ lsls r5, r7, 2
+ adds r5, r7
+ lsls r5, 3
+ adds r6, r5, r0
+ strh r4, [r6, 0x8]
+ strh r4, [r6, 0xA]
+ strh r4, [r6, 0xC]
+ strh r1, [r6, 0xE]
+ strh r4, [r6, 0x10]
+ strh r4, [r6, 0x12]
+ strh r4, [r6, 0x14]
+ movs r0, 0xD
+ strh r0, [r6, 0x16]
+ movs r0, 0xE
+ strh r0, [r6, 0x18]
+ movs r0, 0xF
+ strh r0, [r6, 0x1A]
+ movs r0, 0x1
+ movs r1, 0x1
+ movs r2, 0x1
+ movs r3, 0x1
+ bl sub_80792C0
+ mov r10, r0
+ mov r1, r8
+ orrs r1, r0
+ mov r8, r1
+ movs r0, 0x8
+ add r9, r0
+ add r5, r9
+ adds r0, r5, 0
+ adds r0, 0x1C
+ adds r5, 0x1E
+ adds r1, r5, 0
+ mov r2, r8
+ bl sub_8079BF4
+ ldr r0, _080CE4C4
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r0, 24
+ movs r4, 0x80
+ lsls r4, 9
+ adds r1, r4, 0
+ lsls r1, r0
+ mov r0, r10
+ orrs r0, r1
+ mov r10, r0
+ ldr r0, _080CE4C8
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r0
+ mov r1, r10
+ orrs r4, r1
+ ldr r0, _080CE4CC
+ str r0, [sp]
+ adds r0, r4, 0
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r1, _080CE4D0
+ str r1, [r6]
+ adds r0, r7, 0
+ bl _call_via_r1
+ add sp, 0xC
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CE4BC: .4byte 0x0000ffff
+_080CE4C0: .4byte gTasks
+_080CE4C4: .4byte 0x000027d2
+_080CE4C8: .4byte 0x000027d3
+_080CE4CC: .4byte 0x00007fbb
+_080CE4D0: .4byte sub_80CE4D4
+ thumb_func_end sub_80CE3EC
+
+ thumb_func_start sub_80CE4D4
+sub_80CE4D4: @ 80CE4D4
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ ldr r1, _080CE4FC
+ adds r4, r0, r1
+ movs r0, 0x8
+ ldrsh r1, [r4, r0]
+ cmp r1, 0x1
+ beq _080CE5C0
+ cmp r1, 0x1
+ bgt _080CE500
+ cmp r1, 0
+ beq _080CE50E
+ b _080CE65E
+ .align 2, 0
+_080CE4FC: .4byte gTasks
+_080CE500:
+ cmp r1, 0x2
+ bne _080CE506
+ b _080CE618
+_080CE506:
+ cmp r1, 0x3
+ bne _080CE50C
+ b _080CE64C
+_080CE50C:
+ b _080CE65E
+_080CE50E:
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ cmp r0, 0
+ bgt _080CE51C
+ b _080CE65E
+_080CE51C:
+ strh r1, [r4, 0xA]
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x1
+ strh r0, [r4, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xF
+ bgt _080CE568
+ ldrh r0, [r4, 0x16]
+ ldrh r1, [r4, 0x10]
+ adds r0, r1
+ strh r0, [r4, 0x10]
+ ldrh r2, [r4, 0x18]
+ ldrh r3, [r4, 0x12]
+ adds r2, r3
+ strh r2, [r4, 0x12]
+ ldrh r1, [r4, 0x1A]
+ ldrh r5, [r4, 0x14]
+ adds r1, r5
+ strh r1, [r4, 0x14]
+ lsls r0, 16
+ asrs r0, 19
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r2, 16
+ asrs r2, 19
+ lsls r2, 16
+ lsls r1, 16
+ asrs r1, 19
+ lsls r1, 16
+ lsrs r2, 11
+ orrs r0, r2
+ lsrs r1, 6
+ orrs r0, r1
+ lsls r0, 16
+ lsrs r0, 16
+ mov r12, r0
+ b _080CE572
+_080CE568:
+ ldr r7, _080CE5B8
+ mov r12, r7
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+_080CE572:
+ movs r2, 0x1
+ movs r3, 0
+ movs r1, 0
+_080CE578:
+ movs r5, 0xE
+ ldrsh r0, [r4, r5]
+ ands r0, r2
+ lsls r5, r2, 17
+ adds r6, r3, 0
+ adds r6, 0x10
+ adds r1, 0x1
+ mov r8, r1
+ cmp r0, 0
+ beq _080CE5A4
+ movs r1, 0x1
+ ldr r2, _080CE5BC
+_080CE590:
+ adds r0, r3, r1
+ lsls r0, 1
+ adds r0, r2
+ mov r7, r12
+ strh r7, [r0]
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0xF
+ bls _080CE590
+_080CE5A4:
+ lsrs r2, r5, 16
+ lsls r0, r6, 16
+ lsrs r3, r0, 16
+ mov r1, r8
+ lsls r0, r1, 16
+ lsrs r1, r0, 16
+ cmp r1, 0xF
+ bls _080CE578
+ b _080CE65E
+ .align 2, 0
+_080CE5B8: .4byte 0x00007fbb
+_080CE5BC: .4byte gPlttBufferFaded
+_080CE5C0:
+ ldr r0, _080CE608
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080CE65E
+ movs r2, 0
+ ldr r3, _080CE60C
+ movs r5, 0x14
+ adds r5, r3
+ mov r12, r5
+ ldr r7, _080CE610
+ mov r8, r7
+ ldr r6, _080CE614
+ movs r5, 0x1
+_080CE5DE:
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r1, r0, 2
+ mov r7, r12
+ adds r0, r1, r7
+ ldr r0, [r0]
+ cmp r0, r8
+ beq _080CE5F2
+ cmp r0, r6
+ bne _080CE5F6
+_080CE5F2:
+ adds r0, r1, r3
+ strh r5, [r0, 0x2E]
+_080CE5F6:
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x3F
+ bls _080CE5DE
+ movs r0, 0
+ strh r0, [r4, 0xA]
+ b _080CE640
+ .align 2, 0
+_080CE608: .4byte gPaletteFade
+_080CE60C: .4byte gSprites
+_080CE610: .4byte gBattleAnimSpriteTemplate_83D6FC8
+_080CE614: .4byte gBattleAnimSpriteTemplate_83D6FF8
+_080CE618:
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1E
+ ble _080CE65E
+ movs r1, 0x24
+ ldrsh r0, [r4, r1]
+ movs r2, 0x26
+ ldrsh r1, [r4, r2]
+ bl sub_8079BFC
+ ldr r1, _080CE648
+ str r1, [sp]
+ movs r1, 0
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+_080CE640:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _080CE65E
+ .align 2, 0
+_080CE648: .4byte 0x00007fbb
+_080CE64C:
+ ldr r0, _080CE66C
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080CE65E
+ adds r0, r2, 0
+ bl move_anim_task_del
+_080CE65E:
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CE66C: .4byte gPaletteFade
+ thumb_func_end sub_80CE4D4
+
+ thumb_func_start sub_80CE670
+sub_80CE670: @ 80CE670
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ ldr r6, _080CE6F4
+ movs r1, 0x4
+ ldrsh r0, [r6, r1]
+ cmp r0, 0x1
+ bgt _080CE682
+ movs r0, 0x2
+ strh r0, [r6, 0x4]
+_080CE682:
+ movs r1, 0x4
+ ldrsh r0, [r6, r1]
+ cmp r0, 0x7F
+ ble _080CE68E
+ movs r0, 0x7F
+ strh r0, [r6, 0x4]
+_080CE68E:
+ movs r0, 0
+ strh r0, [r5, 0x2E]
+ ldrh r0, [r6, 0x4]
+ strh r0, [r5, 0x30]
+ ldr r4, _080CE6F8
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r6]
+ adds r0, r1
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r6, [r6, 0x2]
+ adds r0, r6
+ strh r0, [r5, 0x22]
+ ldrh r1, [r5, 0x20]
+ strh r1, [r5, 0x3A]
+ strh r0, [r5, 0x3C]
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080CE700
+ ldrb r1, [r5, 0x3]
+ movs r0, 0x3F
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x10
+ orrs r0, r1
+ strb r0, [r5, 0x3]
+ ldrh r0, [r5, 0x20]
+ adds r0, 0x28
+ strh r0, [r5, 0x20]
+ ldrh r4, [r5, 0x22]
+ adds r4, 0x14
+ strh r4, [r5, 0x22]
+ lsls r0, 7
+ strh r0, [r5, 0x32]
+ movs r0, 0x30
+ ldrsh r1, [r5, r0]
+ ldr r0, _080CE6FC
+ b _080CE726
+ .align 2, 0
+_080CE6F4: .4byte gUnknown_03004B00
+_080CE6F8: .4byte gUnknown_0202F7C9
+_080CE6FC: .4byte 0xffffec00
+_080CE700:
+ ldr r0, _080CE740
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _080CE748
+ ldrh r0, [r5, 0x20]
+ subs r0, 0x28
+ strh r0, [r5, 0x20]
+ ldrh r4, [r5, 0x22]
+ adds r4, 0x14
+ strh r4, [r5, 0x22]
+ lsls r0, 7
+ strh r0, [r5, 0x32]
+ movs r0, 0x30
+ ldrsh r1, [r5, r0]
+ movs r0, 0xA0
+ lsls r0, 5
+_080CE726:
+ bl __divsi3
+ strh r0, [r5, 0x34]
+ lsls r4, 7
+ strh r4, [r5, 0x36]
+ movs r0, 0x30
+ ldrsh r1, [r5, r0]
+ ldr r0, _080CE744
+ bl __divsi3
+ strh r0, [r5, 0x38]
+ b _080CE784
+ .align 2, 0
+_080CE740: .4byte gUnknown_0202F7C8
+_080CE744: .4byte 0xfffff600
+_080CE748:
+ ldrh r0, [r5, 0x20]
+ adds r0, 0x28
+ strh r0, [r5, 0x20]
+ ldrh r4, [r5, 0x22]
+ subs r4, 0x14
+ strh r4, [r5, 0x22]
+ lsls r0, 7
+ strh r0, [r5, 0x32]
+ movs r0, 0x30
+ ldrsh r1, [r5, r0]
+ ldr r0, _080CE790
+ bl __divsi3
+ strh r0, [r5, 0x34]
+ lsls r4, 7
+ strh r4, [r5, 0x36]
+ movs r0, 0x30
+ ldrsh r1, [r5, r0]
+ movs r0, 0xA0
+ lsls r0, 4
+ bl __divsi3
+ strh r0, [r5, 0x38]
+ ldrb r1, [r5, 0x3]
+ movs r0, 0x3F
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x30
+ orrs r0, r1
+ strb r0, [r5, 0x3]
+_080CE784:
+ ldr r0, _080CE794
+ str r0, [r5, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CE790: .4byte 0xffffec00
+_080CE794: .4byte sub_80CE798
+ thumb_func_end sub_80CE670
+
+ thumb_func_start sub_80CE798
+sub_80CE798: @ 80CE798
+ push {lr}
+ adds r2, r0, 0
+ ldrh r0, [r2, 0x34]
+ ldrh r1, [r2, 0x32]
+ adds r0, r1
+ strh r0, [r2, 0x32]
+ ldrh r1, [r2, 0x38]
+ ldrh r3, [r2, 0x36]
+ adds r1, r3
+ strh r1, [r2, 0x36]
+ lsls r0, 16
+ asrs r0, 23
+ strh r0, [r2, 0x20]
+ lsls r1, 16
+ asrs r1, 23
+ strh r1, [r2, 0x22]
+ ldrh r0, [r2, 0x30]
+ subs r0, 0x1
+ strh r0, [r2, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ bne _080CE7CE
+ ldrh r0, [r2, 0x3A]
+ strh r0, [r2, 0x20]
+ ldrh r0, [r2, 0x3C]
+ strh r0, [r2, 0x22]
+_080CE7CE:
+ movs r1, 0x30
+ ldrsh r0, [r2, r1]
+ cmp r0, 0
+ bne _080CE7DC
+ adds r0, r2, 0
+ bl move_anim_8072740
+_080CE7DC:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80CE798
+
+ thumb_func_start sub_80CE7E0
+sub_80CE7E0: @ 80CE7E0
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ lsls r0, 2
+ add r0, r8
+ lsls r0, 3
+ ldr r1, _080CE870
+ adds r6, r0, r1
+ movs r0, 0
+ bl obj_id_for_side_relative_to_move
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r6, 0x8]
+ ldr r0, _080CE874
+ bl AllocSpritePalette
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r6, 0xA]
+ movs r1, 0xA
+ ldrsh r0, [r6, r1]
+ lsls r0, 20
+ movs r1, 0x80
+ lsls r1, 17
+ adds r0, r1
+ lsrs r3, r0, 16
+ ldr r2, _080CE878
+ movs r0, 0x8
+ ldrsh r1, [r6, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0, 0x5]
+ lsrs r0, 4
+ adds r0, 0x10
+ lsls r4, r0, 4
+ movs r5, 0x1
+ ldr r2, _080CE87C
+_080CE838:
+ adds r1, r3, r5
+ lsls r1, 1
+ adds r1, r2
+ adds r0, r4, r5
+ lsls r0, 1
+ adds r0, r2
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0xF
+ bls _080CE838
+ adds r0, r3, 0
+ movs r1, 0x10
+ movs r2, 0xB
+ movs r3, 0
+ bl BlendPalette
+ movs r0, 0
+ strh r0, [r6, 0xE]
+ movs r5, 0
+ ldr r7, _080CE878
+ movs r1, 0x1C
+ adds r1, r7
+ mov r9, r1
+ b _080CE8B4
+ .align 2, 0
+_080CE870: .4byte gTasks
+_080CE874: .4byte 0x00002771
+_080CE878: .4byte gSprites
+_080CE87C: .4byte gPlttBufferUnfaded
+_080CE880:
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r4, r2, r7
+ ldrb r1, [r6, 0xA]
+ lsls r1, 4
+ ldrb r3, [r4, 0x5]
+ movs r0, 0xF
+ ands r0, r3
+ orrs r0, r1
+ strb r0, [r4, 0x5]
+ movs r0, 0
+ strh r0, [r4, 0x2E]
+ lsls r0, r5, 7
+ strh r0, [r4, 0x30]
+ mov r0, r8
+ strh r0, [r4, 0x32]
+ add r2, r9
+ ldr r0, _080CE8E4
+ str r0, [r2]
+ ldrh r0, [r6, 0xE]
+ adds r0, 0x1
+ strh r0, [r6, 0xE]
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+_080CE8B4:
+ cmp r5, 0x1
+ bhi _080CE8C6
+ movs r0, 0
+ bl duplicate_obj_of_side_rel2move_in_transparent_mode
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0
+ bge _080CE880
+_080CE8C6:
+ ldr r0, _080CE8E8
+ str r0, [r6]
+ ldr r0, _080CE8EC
+ ldrb r0, [r0]
+ bl battle_get_per_side_status_permutated
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080CE8F4
+ movs r2, 0x80
+ lsls r2, 19
+ ldrh r1, [r2]
+ ldr r0, _080CE8F0
+ b _080CE8FC
+ .align 2, 0
+_080CE8E4: .4byte sub_80CE974
+_080CE8E8: .4byte sub_80CE910
+_080CE8EC: .4byte gUnknown_0202F7C8
+_080CE8F0: .4byte 0x0000fdff
+_080CE8F4:
+ movs r2, 0x80
+ lsls r2, 19
+ ldrh r1, [r2]
+ ldr r0, _080CE90C
+_080CE8FC:
+ ands r0, r1
+ strh r0, [r2]
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CE90C: .4byte 0x0000fbff
+ thumb_func_end sub_80CE7E0
+
+ thumb_func_start sub_80CE910
+sub_80CE910: @ 80CE910
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ ldr r1, _080CE944
+ adds r0, r1
+ movs r1, 0xE
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080CE968
+ ldr r0, _080CE948
+ ldrb r0, [r0]
+ bl battle_get_per_side_status_permutated
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080CE94C
+ movs r0, 0x80
+ lsls r0, 19
+ ldrh r1, [r0]
+ movs r3, 0x80
+ lsls r3, 2
+ b _080CE956
+ .align 2, 0
+_080CE944: .4byte gTasks
+_080CE948: .4byte gUnknown_0202F7C8
+_080CE94C:
+ movs r0, 0x80
+ lsls r0, 19
+ ldrh r1, [r0]
+ movs r3, 0x80
+ lsls r3, 3
+_080CE956:
+ adds r2, r3, 0
+ orrs r1, r2
+ strh r1, [r0]
+ ldr r0, _080CE970
+ bl FreeSpritePaletteByTag
+ adds r0, r4, 0
+ bl move_anim_task_del
+_080CE968:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CE970: .4byte 0x00002771
+ thumb_func_end sub_80CE910
+
+ thumb_func_start sub_80CE974
+sub_80CE974: @ 80CE974
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldrh r0, [r5, 0x34]
+ adds r0, 0x1
+ strh r0, [r5, 0x34]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080CE990
+ movs r0, 0
+ strh r0, [r5, 0x34]
+ ldrh r0, [r5, 0x2E]
+ adds r0, 0x1
+ strh r0, [r5, 0x2E]
+_080CE990:
+ movs r1, 0x2E
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x40
+ ble _080CE9B8
+ ldr r2, _080CE9B4
+ movs r0, 0x32
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldrh r1, [r0, 0xE]
+ subs r1, 0x1
+ strh r1, [r0, 0xE]
+ adds r0, r5, 0
+ bl obj_delete_but_dont_free_vram
+ b _080CE9FA
+ .align 2, 0
+_080CE9B4: .4byte gTasks
+_080CE9B8:
+ ldr r4, _080CEA00
+ movs r1, 0x2E
+ ldrsh r0, [r5, r1]
+ lsls r0, 1
+ adds r0, r4
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ movs r1, 0x6
+ bl __divsi3
+ strh r0, [r5, 0x36]
+ movs r1, 0x2E
+ ldrsh r0, [r5, r1]
+ lsls r0, 1
+ adds r0, r4
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ movs r1, 0xD
+ bl __divsi3
+ strh r0, [r5, 0x38]
+ ldrh r1, [r5, 0x30]
+ adds r1, r0
+ movs r0, 0xFF
+ ands r1, r0
+ strh r1, [r5, 0x30]
+ movs r1, 0x30
+ ldrsh r0, [r5, r1]
+ movs r2, 0x36
+ ldrsh r1, [r5, r2]
+ bl Sin
+ strh r0, [r5, 0x24]
+_080CE9FA:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CEA00: .4byte gSineTable
+ thumb_func_end sub_80CE974
+
+ thumb_func_start sub_80CEA04
+sub_80CEA04: @ 80CEA04
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r1, _080CEA18
+ bl oamt_set_x3A_32
+ ldr r0, _080CEA1C
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CEA18: .4byte move_anim_8072740
+_080CEA1C: .4byte sub_8078600
+ thumb_func_end sub_80CEA04
+
+ thumb_func_start sub_80CEA20
+sub_80CEA20: @ 80CEA20
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ ldr r4, _080CEAD0
+ ldrh r0, [r4]
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0xFF
+ beq _080CEA64
+ lsls r0, r3, 20
+ movs r1, 0x80
+ lsls r1, 17
+ adds r0, r1
+ lsrs r3, r0, 16
+ movs r2, 0x1
+ ldr r5, _080CEAD4
+_080CEA4C:
+ adds r1, r3, r2
+ lsls r1, 1
+ adds r1, r5
+ lsls r0, r2, 1
+ adds r0, r4
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0x5
+ bls _080CEA4C
+_080CEA64:
+ movs r4, 0x1
+ ldr r0, _080CEAD0
+ mov r8, r0
+_080CEA6A:
+ lsls r0, r4, 1
+ adds r0, r4
+ lsls r5, r0, 2
+ mov r1, r8
+ adds r0, r5, r1
+ ldrh r0, [r0]
+ bl AllocSpritePalette
+ lsls r0, 24
+ lsrs r3, r0, 24
+ adds r4, 0x1
+ mov r12, r4
+ cmp r3, 0xFF
+ beq _080CEAB2
+ lsls r0, r3, 20
+ movs r1, 0x80
+ lsls r1, 17
+ adds r0, r1
+ lsrs r3, r0, 16
+ movs r2, 0x1
+ ldr r7, _080CEAD4
+ ldr r6, _080CEAD0
+ adds r4, r5, 0
+_080CEA98:
+ adds r1, r3, r2
+ lsls r1, 1
+ adds r1, r7
+ lsls r0, r2, 1
+ adds r0, r4
+ adds r0, r6
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0x5
+ bls _080CEA98
+_080CEAB2:
+ mov r1, r12
+ lsls r0, r1, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x3
+ bls _080CEA6A
+ mov r0, r9
+ bl move_anim_task_del
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CEAD0: .4byte gUnknown_083D712C
+_080CEAD4: .4byte gPlttBufferFaded
+ thumb_func_end sub_80CEA20
+
+ thumb_func_start sub_80CEAD8
+sub_80CEAD8: @ 80CEAD8
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r4, 0x1
+ ldr r6, _080CEB08
+_080CEAE2:
+ lsls r0, r4, 1
+ adds r0, r4
+ lsls r0, 2
+ adds r0, r6
+ ldrh r0, [r0]
+ bl FreeSpritePaletteByTag
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x3
+ bls _080CEAE2
+ adds r0, r5, 0
+ bl move_anim_task_del
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CEB08: .4byte gUnknown_083D712C
+ thumb_func_end sub_80CEAD8
+
+ thumb_func_start sub_80CEB0C
+sub_80CEB0C: @ 80CEB0C
+ push {r4-r6,lr}
+ sub sp, 0x4
+ adds r5, r0, 0
+ bl sub_8078650
+ ldr r4, _080CEB64
+ ldrb r1, [r4]
+ adds r0, r5, 0
+ bl StartSpriteAnim
+ ldr r2, _080CEB68
+ movs r0, 0x2
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r0, [r0]
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xFF
+ beq _080CEB48
+ lsls r2, r0, 4
+ ldrb r1, [r5, 0x5]
+ movs r0, 0xF
+ ands r0, r1
+ orrs r0, r2
+ strb r0, [r5, 0x5]
+_080CEB48:
+ ldrh r0, [r4, 0x2]
+ movs r1, 0
+ strh r0, [r5, 0x30]
+ strh r1, [r5, 0x32]
+ ldrh r0, [r4, 0x4]
+ strh r0, [r5, 0x34]
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080CEB6C
+ movs r6, 0x30
+ movs r3, 0x28
+ b _080CEB86
+ .align 2, 0
+_080CEB64: .4byte gUnknown_03004B00
+_080CEB68: .4byte gUnknown_083D712C
+_080CEB6C:
+ ldr r4, _080CEBBC
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r3, r0, 24
+_080CEB86:
+ ldrh r0, [r5, 0x20]
+ lsls r1, r0, 4
+ strh r1, [r5, 0x36]
+ ldrh r1, [r5, 0x22]
+ lsls r2, r1, 4
+ strh r2, [r5, 0x38]
+ subs r0, r6, r0
+ lsls r0, 16
+ asrs r0, 16
+ subs r1, r3, r1
+ lsls r1, 16
+ asrs r1, 16
+ adds r2, r5, 0
+ adds r2, 0x3A
+ adds r3, r5, 0
+ adds r3, 0x3C
+ movs r4, 0x28
+ str r4, [sp]
+ bl sub_80CEBC4
+ ldr r0, _080CEBC0
+ str r0, [r5, 0x1C]
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CEBBC: .4byte gUnknown_0202F7C9
+_080CEBC0: .4byte sub_80CEC1C
+ thumb_func_end sub_80CEB0C
+
+ thumb_func_start sub_80CEBC4
+sub_80CEBC4: @ 80CEBC4
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r7, r2, 0
+ mov r8, r3
+ ldr r2, [sp, 0x18]
+ lsls r1, 16
+ lsrs r6, r1, 16
+ lsls r2, 24
+ lsrs r1, r2, 24
+ lsls r0, 16
+ asrs r2, r0, 16
+ cmp r2, 0
+ bge _080CEBE6
+ lsls r0, r1, 24
+ negs r0, r0
+ lsrs r1, r0, 24
+_080CEBE6:
+ lsls r5, r2, 8
+ lsls r1, 24
+ asrs r1, 24
+ adds r0, r5, 0
+ bl __divsi3
+ adds r4, r0, 0
+ cmp r4, 0
+ bne _080CEBFA
+ movs r4, 0x1
+_080CEBFA:
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl __divsi3
+ strh r0, [r7]
+ lsls r0, r6, 16
+ asrs r0, 8
+ adds r1, r4, 0
+ bl __divsi3
+ mov r1, r8
+ strh r0, [r1]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80CEBC4
+
+ thumb_func_start sub_80CEC1C
+sub_80CEC1C: @ 80CEC1C
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ movs r5, 0
+ strh r0, [r4, 0x2E]
+ movs r0, 0x2E
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 2
+ adds r1, r0, r1
+ adds r0, r1, 0
+ cmp r1, 0
+ bge _080CEC38
+ adds r0, 0xFF
+_080CEC38:
+ asrs r0, 8
+ lsls r0, 8
+ subs r0, r1, r0
+ ldrh r1, [r4, 0x3A]
+ ldrh r2, [r4, 0x36]
+ adds r1, r2
+ strh r1, [r4, 0x36]
+ ldrh r2, [r4, 0x3C]
+ ldrh r3, [r4, 0x38]
+ adds r2, r3
+ strh r2, [r4, 0x38]
+ lsls r1, 16
+ asrs r1, 20
+ strh r1, [r4, 0x20]
+ lsls r2, 16
+ asrs r2, 20
+ strh r2, [r4, 0x22]
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0xF
+ bl Sin
+ strh r0, [r4, 0x26]
+ ldrh r2, [r4, 0x22]
+ ldrh r0, [r4, 0x20]
+ adds r0, 0x10
+ lsls r0, 16
+ movs r1, 0x88
+ lsls r1, 17
+ cmp r0, r1
+ bhi _080CEC86
+ lsls r0, r2, 16
+ asrs r1, r0, 16
+ movs r0, 0x10
+ negs r0, r0
+ cmp r1, r0
+ blt _080CEC86
+ cmp r1, 0x80
+ ble _080CEC8E
+_080CEC86:
+ adds r0, r4, 0
+ bl move_anim_8074EE0
+ b _080CECDE
+_080CEC8E:
+ movs r0, 0x34
+ ldrsh r1, [r4, r0]
+ cmp r1, 0
+ beq _080CECDE
+ ldrh r0, [r4, 0x32]
+ adds r0, 0x1
+ strh r0, [r4, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, r1
+ ble _080CECDE
+ strh r5, [r4, 0x32]
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3
+ ble _080CECB6
+ strh r5, [r4, 0x30]
+_080CECB6:
+ ldr r2, _080CECE4
+ movs r3, 0x30
+ ldrsh r1, [r4, r3]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r0, [r0]
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xFF
+ beq _080CECDE
+ lsls r2, r0, 4
+ ldrb r1, [r4, 0x5]
+ movs r0, 0xF
+ ands r0, r1
+ orrs r0, r2
+ strb r0, [r4, 0x5]
+_080CECDE:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CECE4: .4byte gUnknown_083D712C
+ thumb_func_end sub_80CEC1C
+
+ thumb_func_start sub_80CECE8
+sub_80CECE8: @ 80CECE8
+ push {r4-r7,lr}
+ adds r6, r0, 0
+ ldr r7, _080CED6C
+ ldrb r0, [r7]
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080CED06
+ ldr r1, _080CED70
+ movs r2, 0x2
+ ldrsh r0, [r1, r2]
+ negs r0, r0
+ strh r0, [r1, 0x2]
+_080CED06:
+ ldrb r0, [r7]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ ldr r4, _080CED70
+ lsrs r0, 24
+ ldrh r1, [r4, 0x2]
+ adds r0, r1
+ movs r5, 0
+ strh r0, [r6, 0x20]
+ ldrb r0, [r7]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r2, [r4, 0x4]
+ adds r0, r2
+ strh r0, [r6, 0x22]
+ ldrb r1, [r4]
+ adds r0, r6, 0
+ bl StartSpriteAnim
+ strh r5, [r6, 0x32]
+ strh r5, [r6, 0x34]
+ ldrh r0, [r6, 0x20]
+ lsls r0, 4
+ strh r0, [r6, 0x36]
+ ldrh r0, [r6, 0x22]
+ lsls r0, 4
+ strh r0, [r6, 0x38]
+ movs r1, 0x2
+ ldrsh r0, [r4, r1]
+ lsls r0, 4
+ movs r1, 0x5
+ bl __divsi3
+ strh r0, [r6, 0x3A]
+ movs r2, 0x4
+ ldrsh r0, [r4, r2]
+ lsls r0, 7
+ movs r1, 0x5
+ bl __divsi3
+ strh r0, [r6, 0x3C]
+ ldr r0, _080CED74
+ str r0, [r6, 0x1C]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CED6C: .4byte gUnknown_0202F7C8
+_080CED70: .4byte gUnknown_03004B00
+_080CED74: .4byte sub_80CED78
+ thumb_func_end sub_80CECE8
+
+ thumb_func_start sub_80CED78
+sub_80CED78: @ 80CED78
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x3A]
+ ldrh r1, [r4, 0x36]
+ adds r0, r1
+ strh r0, [r4, 0x36]
+ ldrh r1, [r4, 0x3C]
+ ldrh r2, [r4, 0x38]
+ adds r1, r2
+ strh r1, [r4, 0x38]
+ lsls r0, 16
+ asrs r0, 20
+ strh r0, [r4, 0x20]
+ lsls r1, 16
+ asrs r1, 20
+ strh r1, [r4, 0x22]
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x5
+ ble _080CEDD6
+ movs r2, 0x34
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ bne _080CEDD6
+ ldrh r0, [r4, 0x32]
+ adds r0, 0x10
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x32]
+ movs r1, 0x32
+ ldrsh r0, [r4, r1]
+ movs r1, 0x12
+ bl Cos
+ strh r0, [r4, 0x24]
+ movs r2, 0x32
+ ldrsh r0, [r4, r2]
+ movs r1, 0x12
+ bl Sin
+ strh r0, [r4, 0x26]
+ movs r1, 0x32
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080CEDD6
+ movs r0, 0x1
+ strh r0, [r4, 0x34]
+_080CEDD6:
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x30
+ bne _080CEDEA
+ adds r0, r4, 0
+ bl move_anim_8074EE0
+_080CEDEA:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80CED78
+
+ thumb_func_start sub_80CEDF0
+sub_80CEDF0: @ 80CEDF0
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ ldr r0, _080CEE10
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0x1
+ bne _080CEE14
+ ldrb r0, [r5, 0x3]
+ movs r1, 0x3F
+ negs r1, r1
+ ands r1, r0
+ movs r0, 0x10
+ orrs r1, r0
+ strb r1, [r5, 0x3]
+ movs r6, 0x10
+ b _080CEE16
+ .align 2, 0
+_080CEE10: .4byte gUnknown_03004B00
+_080CEE14:
+ ldr r6, _080CEE50
+_080CEE16:
+ ldr r4, _080CEE54
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, r6
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, 0x8
+ strh r0, [r5, 0x22]
+ movs r0, 0x8
+ strh r0, [r5, 0x2E]
+ ldr r0, _080CEE58
+ str r0, [r5, 0x1C]
+ ldr r1, _080CEE5C
+ adds r0, r5, 0
+ bl oamt_set_x3A_32
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CEE50: .4byte 0x0000fff0
+_080CEE54: .4byte gUnknown_0202F7C8
+_080CEE58: .4byte sub_80782D8
+_080CEE5C: .4byte move_anim_8072740
+ thumb_func_end sub_80CEDF0
+
+ thumb_func_start sub_80CEE60
+sub_80CEE60: @ 80CEE60
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ bl sub_8078650
+ ldrh r0, [r4, 0x22]
+ adds r0, 0x8
+ strh r0, [r4, 0x22]
+ ldr r5, _080CEED8
+ ldrb r1, [r5, 0x2]
+ adds r0, r4, 0
+ bl StartSpriteAnim
+ ldr r2, _080CEEDC
+ movs r0, 0x4
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r0, [r0]
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xFF
+ beq _080CEEA0
+ lsls r2, r0, 4
+ ldrb r1, [r4, 0x5]
+ movs r0, 0xF
+ ands r0, r1
+ orrs r0, r2
+ strb r0, [r4, 0x5]
+_080CEEA0:
+ movs r1, 0
+ ldrsh r0, [r5, r1]
+ movs r2, 0x20
+ cmp r0, 0
+ bne _080CEEAC
+ ldr r2, _080CEEE0
+_080CEEAC:
+ movs r0, 0x28
+ strh r0, [r4, 0x2E]
+ ldrh r1, [r4, 0x20]
+ strh r1, [r4, 0x30]
+ lsls r0, r2, 16
+ asrs r0, 16
+ adds r0, r1
+ strh r0, [r4, 0x32]
+ ldrh r0, [r4, 0x22]
+ strh r0, [r4, 0x34]
+ subs r0, 0x28
+ strh r0, [r4, 0x36]
+ adds r0, r4, 0
+ bl obj_translate_based_on_private_1_2_3_4
+ ldrh r0, [r5, 0x6]
+ strh r0, [r4, 0x38]
+ ldr r0, _080CEEE4
+ str r0, [r4, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CEED8: .4byte gUnknown_03004B00
+_080CEEDC: .4byte gUnknown_083D712C
+_080CEEE0: .4byte 0x0000ffe0
+_080CEEE4: .4byte sub_80CEEE8
+ thumb_func_end sub_80CEE60
+
+ thumb_func_start sub_80CEEE8
+sub_80CEEE8: @ 80CEEE8
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_8078B5C
+ lsls r0, 24
+ cmp r0, 0
+ bne _080CEF38
+ movs r1, 0x38
+ ldrsh r0, [r4, r1]
+ movs r1, 0x8
+ bl Sin
+ lsls r0, 16
+ lsrs r1, r0, 16
+ ldrh r2, [r4, 0x24]
+ movs r3, 0x24
+ ldrsh r0, [r4, r3]
+ cmp r0, 0
+ bge _080CEF14
+ lsls r0, r1, 16
+ negs r0, r0
+ lsrs r1, r0, 16
+_080CEF14:
+ lsls r0, r1, 16
+ asrs r0, 16
+ adds r0, r2
+ strh r0, [r4, 0x24]
+ movs r1, 0x38
+ ldrsh r0, [r4, r1]
+ movs r1, 0x4
+ bl Sin
+ ldrh r3, [r4, 0x26]
+ adds r0, r3
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x38]
+ adds r0, 0x8
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x38]
+ b _080CEF3E
+_080CEF38:
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080CEF3E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80CEEE8
+
+ thumb_func_start sub_80CEF44
+sub_80CEF44: @ 80CEF44
+ push {r4-r6,lr}
+ adds r6, r1, 0
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r0, r5, 0
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _080CEF64
+ adds r0, r5, 0
+ movs r1, 0x5
+ bl sub_807A100
+ adds r0, 0x8
+ b _080CEF6E
+_080CEF64:
+ adds r0, r5, 0
+ movs r1, 0x4
+ bl sub_807A100
+ subs r0, 0x8
+_080CEF6E:
+ strh r0, [r6, 0x20]
+ adds r0, r5, 0
+ movs r1, 0x3
+ bl sub_8077ABC
+ adds r4, r0, 0
+ adds r0, r5, 0
+ movs r1, 0
+ bl sub_807A100
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0
+ bge _080CEF90
+ adds r0, 0x3
+_080CEF90:
+ asrs r0, 2
+ subs r0, r4, r0
+ strh r0, [r6, 0x22]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80CEF44
+
+ thumb_func_start sub_80CEF9C
+sub_80CEF9C: @ 80CEF9C
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r0, _080CEFB0
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080CEFB8
+ ldr r0, _080CEFB4
+ b _080CEFBA
+ .align 2, 0
+_080CEFB0: .4byte gUnknown_03004B00
+_080CEFB4: .4byte gUnknown_0202F7C8
+_080CEFB8:
+ ldr r0, _080CEFF8
+_080CEFBA:
+ ldrb r4, [r0]
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_80CEF44
+ adds r0, r4, 0
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r0, 24
+ negs r1, r0
+ orrs r1, r0
+ lsrs r1, 31
+ ldr r0, _080CEFFC
+ ldrh r0, [r0, 0x2]
+ strh r0, [r5, 0x2E]
+ adds r0, r1, 0x2
+ strh r0, [r5, 0x30]
+ adds r0, r5, 0
+ bl StartSpriteAnim
+ ldr r1, _080CF000
+ adds r0, r5, 0
+ bl oamt_set_x3A_32
+ ldr r0, _080CF004
+ str r0, [r5, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CEFF8: .4byte gUnknown_0202F7C9
+_080CEFFC: .4byte gUnknown_03004B00
+_080CF000: .4byte sub_80CF008
+_080CF004: .4byte sub_8078600
+ thumb_func_end sub_80CEF9C
+
+ thumb_func_start sub_80CF008
+sub_80CF008: @ 80CF008
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x2E]
+ subs r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ cmp r0, 0
+ bne _080CF030
+ ldr r1, _080CF038
+ adds r0, r4, 0
+ bl oamt_set_x3A_32
+ ldrh r1, [r4, 0x30]
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl StartSpriteAnim
+ ldr r0, _080CF03C
+ str r0, [r4, 0x1C]
+_080CF030:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CF038: .4byte move_anim_8072740
+_080CF03C: .4byte sub_8078600
+ thumb_func_end sub_80CF008
+
+ thumb_func_start sub_80CF040
+sub_80CF040: @ 80CF040
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _080CF054
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080CF05C
+ ldr r0, _080CF058
+ b _080CF05E
+ .align 2, 0
+_080CF054: .4byte gUnknown_03004B00
+_080CF058: .4byte gUnknown_0202F7C8
+_080CF05C:
+ ldr r0, _080CF07C
+_080CF05E:
+ ldrb r0, [r0]
+ adds r1, r4, 0
+ bl sub_80CEF44
+ movs r0, 0
+ strh r0, [r4, 0x2E]
+ ldr r1, _080CF080
+ adds r0, r4, 0
+ bl oamt_set_x3A_32
+ ldr r0, _080CF084
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CF07C: .4byte gUnknown_0202F7C9
+_080CF080: .4byte sub_80CF088
+_080CF084: .4byte sub_80785E4
+ thumb_func_end sub_80CF040
+
+ thumb_func_start sub_80CF088
+sub_80CF088: @ 80CF088
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x10
+ ble _080CF0AE
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl StartSpriteAffineAnim
+ ldr r1, _080CF0B4
+ adds r0, r4, 0
+ bl oamt_set_x3A_32
+ ldr r0, _080CF0B8
+ str r0, [r4, 0x1C]
+_080CF0AE:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CF0B4: .4byte move_anim_8074EE0
+_080CF0B8: .4byte sub_80785E4
+ thumb_func_end sub_80CF088
+
+ thumb_func_start sub_80CF0BC
+sub_80CF0BC: @ 80CF0BC
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ ldr r0, _080CF0D0
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080CF0D8
+ ldr r0, _080CF0D4
+ b _080CF0DA
+ .align 2, 0
+_080CF0D0: .4byte gUnknown_03004B00
+_080CF0D4: .4byte gUnknown_0202F7C8
+_080CF0D8:
+ ldr r0, _080CF12C
+_080CF0DA:
+ ldrb r5, [r0]
+ adds r0, r5, 0
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ movs r6, 0
+ strh r0, [r4, 0x20]
+ adds r0, r5, 0
+ movs r1, 0x2
+ bl sub_807A100
+ strh r0, [r4, 0x22]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x9
+ bgt _080CF102
+ movs r0, 0xA
+ strh r0, [r4, 0x22]
+_080CF102:
+ movs r0, 0x1
+ strh r0, [r4, 0x2E]
+ strh r6, [r4, 0x30]
+ adds r1, r4, 0
+ adds r1, 0x43
+ ldrb r0, [r1]
+ strh r0, [r4, 0x32]
+ ldrb r0, [r1]
+ adds r0, 0x4
+ strh r0, [r4, 0x34]
+ strh r6, [r4, 0x36]
+ ldr r1, _080CF130
+ adds r0, r4, 0
+ bl oamt_set_x3A_32
+ ldr r0, _080CF134
+ str r0, [r4, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CF12C: .4byte gUnknown_0202F7C9
+_080CF130: .4byte sub_80CF138
+_080CF134: .4byte sub_80785E4
+ thumb_func_end sub_80CF0BC
+
+ thumb_func_start sub_80CF138
+sub_80CF138: @ 80CF138
+ push {lr}
+ adds r1, r0, 0
+ ldrh r0, [r1, 0x36]
+ adds r0, 0x1
+ strh r0, [r1, 0x36]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xC
+ ble _080CF14E
+ ldr r0, _080CF154
+ str r0, [r1, 0x1C]
+_080CF14E:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CF154: .4byte sub_80CF158
+ thumb_func_end sub_80CF138
+
+ thumb_func_start sub_80CF158
+sub_80CF158: @ 80CF158
+ push {lr}
+ adds r2, r0, 0
+ ldrh r0, [r2, 0x30]
+ adds r1, r0, 0x4
+ strh r1, [r2, 0x30]
+ lsls r0, r1, 16
+ asrs r0, 16
+ cmp r0, 0xFE
+ ble _080CF18A
+ ldrh r0, [r2, 0x2E]
+ subs r0, 0x1
+ strh r0, [r2, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0
+ bne _080CF184
+ strh r0, [r2, 0x24]
+ ldr r0, _080CF180
+ str r0, [r2, 0x1C]
+ b _080CF1C0
+ .align 2, 0
+_080CF180: .4byte sub_80CF088
+_080CF184:
+ movs r0, 0xFF
+ ands r1, r0
+ strh r1, [r2, 0x30]
+_080CF18A:
+ movs r1, 0x30
+ ldrsh r0, [r2, r1]
+ cmp r0, 0x4F
+ ble _080CF19A
+ ldrh r0, [r2, 0x34]
+ adds r1, r2, 0
+ adds r1, 0x43
+ strb r0, [r1]
+_080CF19A:
+ movs r3, 0x30
+ ldrsh r0, [r2, r3]
+ cmp r0, 0x9F
+ ble _080CF1AA
+ ldrh r0, [r2, 0x32]
+ adds r1, r2, 0
+ adds r1, 0x43
+ strb r0, [r1]
+_080CF1AA:
+ ldr r1, _080CF1C4
+ movs r3, 0x30
+ ldrsh r0, [r2, r3]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ lsls r0, 16
+ asrs r0, 19
+ asrs r1, r0, 1
+ adds r0, r1
+ strh r0, [r2, 0x24]
+_080CF1C0:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CF1C4: .4byte gSineTable
+ thumb_func_end sub_80CF158
+
+ thumb_func_start sub_80CF1C8
+sub_80CF1C8: @ 80CF1C8
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r0, _080CF1DC
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080CF1E4
+ ldr r0, _080CF1E0
+ b _080CF1E6
+ .align 2, 0
+_080CF1DC: .4byte gUnknown_03004B00
+_080CF1E0: .4byte gUnknown_0202F7C8
+_080CF1E4:
+ ldr r0, _080CF208
+_080CF1E6:
+ ldrb r4, [r0]
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_80CEF44
+ adds r0, r4, 0
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _080CF20C
+ adds r0, r5, 0
+ movs r1, 0
+ bl StartSpriteAnim
+ movs r0, 0x2
+ b _080CF216
+ .align 2, 0
+_080CF208: .4byte gUnknown_0202F7C9
+_080CF20C:
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl StartSpriteAnim
+ movs r0, 0x3
+_080CF216:
+ strh r0, [r5, 0x2E]
+ ldr r0, _080CF224
+ str r0, [r5, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CF224: .4byte sub_80CF228
+ thumb_func_end sub_80CF1C8
+
+ thumb_func_start sub_80CF228
+sub_80CF228: @ 80CF228
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xA
+ ble _080CF256
+ movs r0, 0
+ strh r0, [r4, 0x30]
+ ldrh r1, [r4, 0x2E]
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl StartSpriteAnim
+ ldr r1, _080CF25C
+ adds r0, r4, 0
+ bl oamt_set_x3A_32
+ ldr r0, _080CF260
+ str r0, [r4, 0x1C]
+_080CF256:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CF25C: .4byte sub_80CF264
+_080CF260: .4byte sub_8078600
+ thumb_func_end sub_80CF228
+
+ thumb_func_start sub_80CF264
+sub_80CF264: @ 80CF264
+ 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, 0x5
+ ble _080CF27C
+ adds r0, r1, 0
+ bl move_anim_8072740
+_080CF27C:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80CF264
+
+ thumb_func_start sub_80CF280
+sub_80CF280: @ 80CF280
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ bl sub_8078650
+ ldr r5, _080CF2C4
+ movs r0, 0
+ ldrsh r1, [r5, r0]
+ adds r0, r4, 0
+ bl sub_807867C
+ ldrh r0, [r5, 0x2]
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r4, 0x22]
+ ldrh r0, [r5, 0x4]
+ strh r0, [r4, 0x30]
+ ldrh r0, [r5, 0x8]
+ strh r0, [r4, 0x32]
+ ldrh r0, [r5, 0xA]
+ strh r0, [r4, 0x34]
+ ldrh r0, [r5, 0x6]
+ strh r0, [r4, 0x36]
+ ldr r1, _080CF2C8
+ adds r0, r4, 0
+ bl oamt_set_x3A_32
+ ldr r1, _080CF2CC
+ str r1, [r4, 0x1C]
+ adds r0, r4, 0
+ bl _call_via_r1
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CF2C4: .4byte gUnknown_03004B00
+_080CF2C8: .4byte move_anim_8074EE0
+_080CF2CC: .4byte sub_8078278
+ thumb_func_end sub_80CF280
+
+ thumb_func_start sub_80CF2D0
+sub_80CF2D0: @ 80CF2D0
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _080CF2E4
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080CF2EC
+ ldr r0, _080CF2E8
+ b _080CF2EE
+ .align 2, 0
+_080CF2E4: .4byte gUnknown_03004B00
+_080CF2E8: .4byte gUnknown_0202F7C8
+_080CF2EC:
+ ldr r0, _080CF308
+_080CF2EE:
+ ldrb r0, [r0]
+ adds r1, r4, 0
+ bl sub_80CEF44
+ movs r0, 0
+ strh r0, [r4, 0x2E]
+ strh r0, [r4, 0x30]
+ ldr r0, _080CF30C
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CF308: .4byte gUnknown_0202F7C9
+_080CF30C: .4byte sub_80CF310
+ thumb_func_end sub_80CF2D0
+
+ thumb_func_start sub_80CF310
+sub_80CF310: @ 80CF310
+ push {lr}
+ adds r1, r0, 0
+ movs r2, 0x2E
+ ldrsh r0, [r1, r2]
+ cmp r0, 0x1
+ beq _080CF342
+ cmp r0, 0x1
+ bgt _080CF326
+ cmp r0, 0
+ beq _080CF32C
+ b _080CF370
+_080CF326:
+ cmp r0, 0x2
+ beq _080CF35C
+ b _080CF370
+_080CF32C:
+ ldrh r0, [r1, 0x26]
+ subs r0, 0x3
+ strh r0, [r1, 0x26]
+ ldrh r0, [r1, 0x30]
+ adds r0, 0x1
+ strh r0, [r1, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x6
+ bne _080CF370
+ b _080CF354
+_080CF342:
+ ldrh r0, [r1, 0x26]
+ adds r0, 0x3
+ strh r0, [r1, 0x26]
+ ldrh r0, [r1, 0x30]
+ subs r0, 0x1
+ strh r0, [r1, 0x30]
+ lsls r0, 16
+ cmp r0, 0
+ bne _080CF370
+_080CF354:
+ ldrh r0, [r1, 0x2E]
+ adds r0, 0x1
+ strh r0, [r1, 0x2E]
+ b _080CF370
+_080CF35C:
+ ldrh r0, [r1, 0x30]
+ adds r0, 0x1
+ strh r0, [r1, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x40
+ bne _080CF370
+ adds r0, r1, 0
+ bl move_anim_8072740
+_080CF370:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80CF310
+
+ thumb_func_start sub_80CF374
+sub_80CF374: @ 80CF374
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r3, _080CF3C0
+ movs r0, 0x32
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ ldrh r1, [r4, 0x30]
+ ldrh r2, [r0, 0x24]
+ adds r1, r2
+ strh r1, [r0, 0x24]
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ negs r0, r0
+ strh r0, [r4, 0x30]
+ movs r0, 0x2E
+ ldrsh r2, [r4, r0]
+ cmp r2, 0
+ bne _080CF3B2
+ movs r0, 0x32
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ strh r2, [r0, 0x24]
+ adds r0, r4, 0
+ bl move_anim_8074EE0
+_080CF3B2:
+ ldrh r0, [r4, 0x2E]
+ subs r0, 0x1
+ strh r0, [r4, 0x2E]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CF3C0: .4byte gSprites
+ thumb_func_end sub_80CF374
+
+ thumb_func_start sub_80CF3C4
+sub_80CF3C4: @ 80CF3C4
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ ldr r4, _080CF40C
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+ ldr r1, _080CF410
+ ldr r0, _080CF414
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r6, [r0]
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080CF41C
+ ldr r0, _080CF418
+ ldrh r1, [r5, 0x20]
+ ldrh r2, [r0]
+ subs r1, r2
+ strh r1, [r5, 0x20]
+ adds r1, r0, 0
+ b _080CF426
+ .align 2, 0
+_080CF40C: .4byte gUnknown_0202F7C8
+_080CF410: .4byte gUnknown_02024BE0
+_080CF414: .4byte gUnknown_0202F7C9
+_080CF418: .4byte gUnknown_03004B00
+_080CF41C:
+ ldr r1, _080CF450
+ ldrh r0, [r1]
+ ldrh r2, [r5, 0x20]
+ adds r0, r2
+ strh r0, [r5, 0x20]
+_080CF426:
+ ldrh r0, [r1, 0x2]
+ ldrh r2, [r5, 0x22]
+ adds r0, r2
+ strh r0, [r5, 0x22]
+ ldrh r0, [r1, 0x4]
+ strh r0, [r5, 0x2E]
+ ldrh r0, [r1, 0x6]
+ strh r0, [r5, 0x30]
+ strh r6, [r5, 0x32]
+ ldr r0, _080CF454
+ str r0, [r5, 0x1C]
+ adds r2, r5, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CF450: .4byte gUnknown_03004B00
+_080CF454: .4byte sub_80CF374
+ thumb_func_end sub_80CF3C4
+
+ thumb_func_start sub_80CF458
+sub_80CF458: @ 80CF458
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x1
+ bl sub_80787B0
+ ldr r1, _080CF484
+ ldrh r0, [r1, 0x4]
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r1, 0x6]
+ strh r0, [r4, 0x30]
+ ldrh r0, [r1, 0x8]
+ strh r0, [r4, 0x38]
+ ldr r0, _080CF488
+ str r0, [r4, 0x1C]
+ ldr r1, _080CF48C
+ adds r0, r4, 0
+ bl oamt_set_x3A_32
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CF484: .4byte gUnknown_03004B00
+_080CF488: .4byte sub_80782D8
+_080CF48C: .4byte sub_80CF490
+ thumb_func_end sub_80CF458
+
+ thumb_func_start sub_80CF490
+sub_80CF490: @ 80CF490
+ push {lr}
+ ldrh r1, [r0, 0x30]
+ strh r1, [r0, 0x2E]
+ ldrh r1, [r0, 0x20]
+ strh r1, [r0, 0x32]
+ ldrh r1, [r0, 0x22]
+ adds r1, 0xF
+ strh r1, [r0, 0x36]
+ ldr r1, _080CF4B0
+ str r1, [r0, 0x1C]
+ ldr r1, _080CF4B4
+ bl oamt_set_x3A_32
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CF4B0: .4byte sub_8078B34
+_080CF4B4: .4byte sub_80CF4B8
+ thumb_func_end sub_80CF490
+
+ thumb_func_start sub_80CF4B8
+sub_80CF4B8: @ 80CF4B8
+ push {lr}
+ adds r1, r0, 0
+ ldrh r2, [r1, 0x38]
+ movs r3, 0x38
+ ldrsh r0, [r1, r3]
+ cmp r0, 0
+ bne _080CF4CE
+ adds r0, r1, 0
+ bl move_anim_8072740
+ b _080CF4D2
+_080CF4CE:
+ subs r0, r2, 0x1
+ strh r0, [r1, 0x38]
+_080CF4D2:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80CF4B8
+
+ thumb_func_start sub_80CF4D8
+sub_80CF4D8: @ 80CF4D8
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r1, _080CF504
+ ldr r0, _080CF508
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r0, [r0]
+ movs r1, 0
+ bl sub_8078E70
+ ldr r1, _080CF50C
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080CF510
+ str r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CF504: .4byte gUnknown_02024BE0
+_080CF508: .4byte gUnknown_0202F7C8
+_080CF50C: .4byte gTasks
+_080CF510: .4byte sub_80CF514
+ thumb_func_end sub_80CF4D8
+
+ thumb_func_start sub_80CF514
+sub_80CF514: @ 80CF514
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _080CF544
+ ldr r0, _080CF548
+ ldrb r0, [r0]
+ adds r1, r0, r1
+ ldrb r4, [r1]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _080CF550
+ ldr r1, _080CF54C
+ lsls r2, r5, 2
+ adds r0, r2, r5
+ lsls r0, 3
+ adds r0, r1
+ ldrh r0, [r0, 0x8]
+ negs r0, r0
+ lsls r0, 16
+ lsrs r3, r0, 16
+ adds r6, r2, 0
+ b _080CF55E
+ .align 2, 0
+_080CF544: .4byte gUnknown_02024BE0
+_080CF548: .4byte gUnknown_0202F7C8
+_080CF54C: .4byte gTasks
+_080CF550:
+ ldr r2, _080CF590
+ lsls r1, r5, 2
+ adds r0, r1, r5
+ lsls r0, 3
+ adds r0, r2
+ ldrh r3, [r0, 0x8]
+ adds r6, r1, 0
+_080CF55E:
+ movs r2, 0x80
+ lsls r2, 1
+ adds r0, r4, 0
+ adds r1, r2, 0
+ bl obj_id_set_rotscale
+ ldr r1, _080CF590
+ adds r0, r6, r5
+ lsls r0, 3
+ adds r1, r0, r1
+ movs r2, 0xA
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ bne _080CF598
+ ldrh r0, [r1, 0x8]
+ adds r0, 0xB0
+ strh r0, [r1, 0x8]
+ ldr r1, _080CF594
+ lsls r0, r4, 4
+ adds r0, r4
+ lsls r0, 2
+ adds r0, r1
+ ldrh r1, [r0, 0x26]
+ adds r1, 0x1
+ b _080CF5C2
+ .align 2, 0
+_080CF590: .4byte gTasks
+_080CF594: .4byte gSprites
+_080CF598:
+ cmp r0, 0x1
+ bne _080CF5AE
+ ldrh r0, [r1, 0xE]
+ adds r0, 0x1
+ strh r0, [r1, 0xE]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1E
+ bne _080CF608
+ movs r0, 0x2
+ b _080CF606
+_080CF5AE:
+ ldrh r0, [r1, 0x8]
+ subs r0, 0xB0
+ strh r0, [r1, 0x8]
+ ldr r1, _080CF5FC
+ lsls r0, r4, 4
+ adds r0, r4
+ lsls r0, 2
+ adds r0, r1
+ ldrh r1, [r0, 0x26]
+ subs r1, 0x1
+_080CF5C2:
+ strh r1, [r0, 0x26]
+ adds r0, r4, 0
+ bl sub_8078F9C
+ ldr r0, _080CF600
+ adds r1, r6, r5
+ lsls r1, 3
+ adds r1, r0
+ movs r3, 0x8
+ ldrsh r2, [r1, r3]
+ movs r0, 0xF2
+ lsls r0, 4
+ cmp r2, r0
+ beq _080CF5E2
+ cmp r2, 0
+ bne _080CF608
+_080CF5E2:
+ ldrh r2, [r1, 0xA]
+ movs r3, 0xA
+ ldrsh r0, [r1, r3]
+ cmp r0, 0x2
+ bne _080CF604
+ adds r0, r4, 0
+ bl sub_8078F40
+ adds r0, r5, 0
+ bl move_anim_task_del
+ b _080CF608
+ .align 2, 0
+_080CF5FC: .4byte gSprites
+_080CF600: .4byte gTasks
+_080CF604:
+ adds r0, r2, 0x1
+_080CF606:
+ strh r0, [r1, 0xA]
+_080CF608:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80CF514
+
+ thumb_func_start sub_80CF610
+sub_80CF610: @ 80CF610
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ bl sub_8078650
+ ldr r5, _080CF658
+ movs r0, 0
+ ldrsh r1, [r5, r0]
+ adds r0, r4, 0
+ bl sub_807867C
+ ldrh r0, [r5, 0x2]
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r4, 0x22]
+ ldr r0, _080CF65C
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080CF660
+ adds r2, r4, 0
+ adds r2, 0x3F
+ ldrb r0, [r2]
+ movs r1, 0x1
+ orrs r1, r0
+ strb r1, [r2]
+ movs r3, 0x4
+ ldrsh r0, [r5, r3]
+ cmp r0, 0
+ beq _080CF674
+ movs r0, 0x2
+ orrs r1, r0
+ strb r1, [r2]
+ b _080CF674
+ .align 2, 0
+_080CF658: .4byte gUnknown_03004B00
+_080CF65C: .4byte gUnknown_0202F7C8
+_080CF660:
+ movs r1, 0x4
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ beq _080CF674
+ adds r2, r4, 0
+ adds r2, 0x3F
+ ldrb r0, [r2]
+ movs r1, 0x2
+ orrs r0, r1
+ strb r0, [r2]
+_080CF674:
+ ldr r0, _080CF688
+ str r0, [r4, 0x1C]
+ ldr r1, _080CF68C
+ adds r0, r4, 0
+ bl oamt_set_x3A_32
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CF688: .4byte sub_8078600
+_080CF68C: .4byte move_anim_8072740
+ thumb_func_end sub_80CF610
+
+ thumb_func_start sub_80CF690
+sub_80CF690: @ 80CF690
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0
+ bl sub_80787B0
+ ldr r0, _080CF6AC
+ str r0, [r4, 0x1C]
+ ldr r1, _080CF6B0
+ adds r0, r4, 0
+ bl oamt_set_x3A_32
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CF6AC: .4byte sub_80785E4
+_080CF6B0: .4byte sub_80CF6B4
+ thumb_func_end sub_80CF690
+
+ thumb_func_start sub_80CF6B4
+sub_80CF6B4: @ 80CF6B4
+ push {lr}
+ movs r1, 0x6
+ strh r1, [r0, 0x2E]
+ ldrh r1, [r0, 0x20]
+ strh r1, [r0, 0x32]
+ ldrh r1, [r0, 0x22]
+ subs r1, 0x20
+ strh r1, [r0, 0x36]
+ ldr r1, _080CF6D4
+ str r1, [r0, 0x1C]
+ ldr r1, _080CF6D8
+ bl oamt_set_x3A_32
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CF6D4: .4byte sub_8078B34
+_080CF6D8: .4byte move_anim_8072740
+ thumb_func_end sub_80CF6B4
+
+ thumb_func_start sub_80CF6DC
+sub_80CF6DC: @ 80CF6DC
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ adds r5, r0, 0
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080CF700
+ ldr r1, _080CF6FC
+ ldrh r0, [r1, 0x4]
+ negs r0, r0
+ strh r0, [r1, 0x4]
+ b _080CF722
+ .align 2, 0
+_080CF6FC: .4byte gUnknown_03004B00
+_080CF700:
+ ldr r0, _080CF7C8
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080CF722
+ ldr r1, _080CF7CC
+ ldrh r0, [r1, 0x4]
+ negs r0, r0
+ strh r0, [r1, 0x4]
+ ldrh r0, [r1, 0x2]
+ negs r0, r0
+ strh r0, [r1, 0x2]
+ ldrh r0, [r1, 0x6]
+ negs r0, r0
+ strh r0, [r1, 0x6]
+_080CF722:
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl sub_80787B0
+ ldr r4, _080CF7D0
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ ldr r6, _080CF7CC
+ lsrs r0, 24
+ ldrh r1, [r6, 0x4]
+ adds r0, r1
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r2, [r6, 0x6]
+ adds r0, r2
+ lsls r0, 16
+ lsrs r0, 16
+ adds r7, r0, 0
+ ldrh r1, [r5, 0x20]
+ mov r2, r8
+ lsls r0, r2, 16
+ asrs r0, 16
+ subs r0, r1
+ lsls r0, 16
+ asrs r0, 16
+ ldrh r2, [r5, 0x22]
+ lsls r1, r7, 16
+ asrs r1, 16
+ subs r1, r2
+ lsls r1, 16
+ asrs r1, 16
+ bl sub_80790F0
+ lsls r0, 16
+ movs r1, 0xF0
+ lsls r1, 24
+ adds r0, r1
+ lsrs r4, r0, 16
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080CF794
+ ldr r2, _080CF7D4
+ adds r0, r4, r2
+ lsls r0, 16
+ lsrs r4, r0, 16
+_080CF794:
+ movs r3, 0x80
+ lsls r3, 1
+ str r4, [sp]
+ adds r0, r5, 0
+ movs r1, 0
+ adds r2, r3, 0
+ bl sub_8078FDC
+ ldrh r0, [r6, 0x8]
+ strh r0, [r5, 0x2E]
+ mov r0, r8
+ strh r0, [r5, 0x32]
+ strh r7, [r5, 0x36]
+ ldr r0, _080CF7D8
+ str r0, [r5, 0x1C]
+ ldr r1, _080CF7DC
+ adds r0, r5, 0
+ bl oamt_set_x3A_32
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CF7C8: .4byte gUnknown_0202F7C8
+_080CF7CC: .4byte gUnknown_03004B00
+_080CF7D0: .4byte gUnknown_0202F7C9
+_080CF7D4: .4byte 0xffffa000
+_080CF7D8: .4byte sub_8078B34
+_080CF7DC: .4byte move_anim_8072740
+ thumb_func_end sub_80CF6DC
+
+ thumb_func_start sub_80CF7E0
+sub_80CF7E0: @ 80CF7E0
+ push {lr}
+ adds r3, r0, 0
+ ldrh r0, [r3, 0x2E]
+ subs r1, r0, 0x1
+ strh r1, [r3, 0x2E]
+ lsls r0, 16
+ cmp r0, 0
+ bgt _080CF80A
+ ldr r2, _080CF810
+ movs r0, 0x3C
+ ldrsh r1, [r3, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldrh r1, [r0, 0xA]
+ subs r1, 0x1
+ strh r1, [r0, 0xA]
+ adds r0, r3, 0
+ bl DestroySprite
+_080CF80A:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CF810: .4byte gTasks
+ thumb_func_end sub_80CF7E0
+
+ thumb_func_start sub_80CF814
+sub_80CF814: @ 80CF814
+ push {r4,lr}
+ adds r2, r0, 0
+ movs r0, 0x3C
+ ldrsh r1, [r2, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ ldr r1, _080CF844
+ adds r4, r0, r1
+ movs r3, 0x2E
+ ldrsh r1, [r2, r3]
+ movs r3, 0x12
+ ldrsh r0, [r4, r3]
+ cmp r1, r0
+ ble _080CF848
+ ldrh r0, [r2, 0x34]
+ ldrh r1, [r2, 0x38]
+ adds r0, r1
+ strh r0, [r2, 0x38]
+ ldrh r0, [r2, 0x36]
+ ldrh r3, [r2, 0x3A]
+ adds r0, r3
+ b _080CF856
+ .align 2, 0
+_080CF844: .4byte gTasks
+_080CF848:
+ ldrh r0, [r2, 0x38]
+ ldrh r1, [r2, 0x34]
+ subs r0, r1
+ strh r0, [r2, 0x38]
+ ldrh r0, [r2, 0x3A]
+ ldrh r1, [r2, 0x36]
+ subs r0, r1
+_080CF856:
+ strh r0, [r2, 0x3A]
+ ldrh r0, [r2, 0x38]
+ ldrh r1, [r2, 0x30]
+ adds r3, r0, r1
+ strh r3, [r2, 0x30]
+ ldrh r0, [r2, 0x3A]
+ ldrh r1, [r2, 0x32]
+ adds r0, r1
+ strh r0, [r2, 0x32]
+ ldrh r1, [r4, 0x16]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080CF87A
+ lsls r0, r3, 16
+ lsrs r0, 24
+ negs r0, r0
+ b _080CF87E
+_080CF87A:
+ lsls r0, r3, 16
+ lsrs r0, 24
+_080CF87E:
+ strh r0, [r2, 0x24]
+ ldrh r1, [r4, 0x18]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080CF892
+ ldrh r0, [r2, 0x32]
+ lsrs r0, 8
+ negs r0, r0
+ b _080CF896
+_080CF892:
+ ldrh r0, [r2, 0x32]
+ lsrs r0, 8
+_080CF896:
+ strh r0, [r2, 0x26]
+ ldrh r0, [r2, 0x2E]
+ subs r1, r0, 0x1
+ strh r1, [r2, 0x2E]
+ lsls r0, 16
+ cmp r0, 0
+ bgt _080CF8AC
+ movs r0, 0x1E
+ strh r0, [r2, 0x2E]
+ ldr r0, _080CF8B4
+ str r0, [r2, 0x1C]
+_080CF8AC:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CF8B4: .4byte sub_80CF7E0
+ thumb_func_end sub_80CF814
+
+ thumb_func_start sub_80CF8B8
+sub_80CF8B8: @ 80CF8B8
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r7, r0, 0
+ movs r0, 0x3C
+ ldrsh r1, [r7, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ ldr r1, _080CF8FC
+ adds r6, r0, r1
+ ldrh r2, [r6, 0x16]
+ movs r1, 0x2
+ negs r1, r1
+ adds r0, r1, 0
+ ands r0, r2
+ ldrh r3, [r7, 0x30]
+ adds r2, r0, r3
+ strh r2, [r7, 0x30]
+ ldrh r0, [r6, 0x18]
+ ands r1, r0
+ ldrh r0, [r7, 0x32]
+ adds r1, r0
+ strh r1, [r7, 0x32]
+ ldrh r1, [r6, 0x16]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080CF900
+ lsls r0, r2, 16
+ lsrs r0, 24
+ negs r0, r0
+ b _080CF904
+ .align 2, 0
+_080CF8FC: .4byte gTasks
+_080CF900:
+ lsls r0, r2, 16
+ lsrs r0, 24
+_080CF904:
+ strh r0, [r7, 0x24]
+ ldrh r1, [r6, 0x18]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080CF918
+ ldrh r0, [r7, 0x32]
+ lsrs r0, 8
+ negs r0, r0
+ b _080CF91C
+_080CF918:
+ ldrh r0, [r7, 0x32]
+ lsrs r0, 8
+_080CF91C:
+ strh r0, [r7, 0x26]
+ ldrh r0, [r7, 0x2E]
+ subs r1, r0, 0x1
+ strh r1, [r7, 0x2E]
+ lsls r0, 16
+ cmp r0, 0
+ bgt _080CF9E8
+ movs r4, 0
+ movs r0, 0x8
+ strh r0, [r7, 0x2E]
+ movs r0, 0x4
+ strh r0, [r6, 0x12]
+ movs r0, 0x80
+ lsls r0, 5
+ bl sub_81174E0
+ lsls r0, 16
+ lsrs r5, r0, 16
+ ldrh r0, [r7, 0x24]
+ ldrh r1, [r7, 0x20]
+ adds r2, r0, r1
+ strh r2, [r7, 0x20]
+ ldrh r0, [r7, 0x26]
+ ldrh r3, [r7, 0x22]
+ adds r0, r3
+ strh r0, [r7, 0x22]
+ strh r4, [r7, 0x26]
+ strh r4, [r7, 0x24]
+ ldrh r3, [r6, 0x1E]
+ movs r0, 0x1E
+ ldrsh r1, [r6, r0]
+ lsls r0, r2, 16
+ asrs r0, 16
+ cmp r1, r0
+ blt _080CF966
+ subs r0, r3, r2
+ b _080CF968
+_080CF966:
+ subs r0, r2, r3
+_080CF968:
+ lsls r0, 24
+ lsrs r4, r0, 16
+ ldrh r3, [r6, 0x20]
+ movs r0, 0x20
+ ldrsh r1, [r6, r0]
+ ldrh r2, [r7, 0x22]
+ movs r6, 0x22
+ ldrsh r0, [r7, r6]
+ cmp r1, r0
+ blt _080CF980
+ subs r0, r3, r2
+ b _080CF982
+_080CF980:
+ subs r0, r2, r3
+_080CF982:
+ lsls r0, 24
+ lsrs r0, 16
+ mov r8, r0
+ movs r0, 0
+ strh r0, [r7, 0x32]
+ strh r0, [r7, 0x30]
+ strh r0, [r7, 0x3A]
+ strh r0, [r7, 0x38]
+ lsls r0, r4, 16
+ asrs r0, 16
+ lsls r5, 16
+ asrs r5, 16
+ adds r1, r5, 0
+ bl sub_81174C4
+ adds r4, r0, 0
+ lsls r4, 16
+ asrs r4, 16
+ movs r6, 0xE0
+ lsls r6, 1
+ adds r0, r6, 0
+ bl sub_81174E0
+ adds r1, r0, 0
+ lsls r1, 16
+ asrs r1, 16
+ adds r0, r4, 0
+ bl sub_81174C4
+ strh r0, [r7, 0x34]
+ mov r1, r8
+ lsls r0, r1, 16
+ asrs r0, 16
+ adds r1, r5, 0
+ bl sub_81174C4
+ adds r4, r0, 0
+ lsls r4, 16
+ asrs r4, 16
+ adds r0, r6, 0
+ bl sub_81174E0
+ adds r1, r0, 0
+ lsls r1, 16
+ asrs r1, 16
+ adds r0, r4, 0
+ bl sub_81174C4
+ strh r0, [r7, 0x36]
+ ldr r0, _080CF9F4
+ str r0, [r7, 0x1C]
+_080CF9E8:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CF9F4: .4byte sub_80CF814
+ thumb_func_end sub_80CF8B8
+
+ thumb_func_start sub_80CF9F8
+sub_80CF9F8: @ 80CF9F8
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r1, _080CFA1C
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0xA
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080CFA16
+ adds r0, r2, 0
+ bl move_anim_task_del
+_080CFA16:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CFA1C: .4byte gTasks
+ thumb_func_end sub_80CF9F8
+
+ thumb_func_start sub_80CFA20
+sub_80CFA20: @ 80CFA20
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r1, _080CFA74
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r5, r0, r1
+ ldrh r0, [r5, 0x8]
+ subs r1, r0, 0x1
+ strh r1, [r5, 0x8]
+ lsls r0, 16
+ cmp r0, 0
+ bgt _080CFAF4
+ ldr r0, _080CFA78
+ movs r2, 0x1A
+ ldrsh r1, [r5, r2]
+ movs r3, 0x1C
+ ldrsh r2, [r5, r3]
+ ldrb r3, [r5, 0xC]
+ ldrb r4, [r5, 0xA]
+ subs r3, r4
+ lsls r3, 24
+ lsrs r3, 24
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ mov r12, r0
+ lsls r0, 4
+ add r0, r12
+ lsls r0, 2
+ ldr r1, _080CFA7C
+ adds r6, r0, r1
+ movs r1, 0x10
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x1
+ beq _080CFA80
+ cmp r0, 0x2
+ beq _080CFA96
+ b _080CFAA4
+ .align 2, 0
+_080CFA74: .4byte gTasks
+_080CFA78: .4byte gSpriteTemplate_83D74BC
+_080CFA7C: .4byte gSprites
+_080CFA80:
+ ldrb r2, [r6, 0x3]
+ lsls r1, r2, 26
+ lsrs r1, 27
+ movs r0, 0x18
+ orrs r1, r0
+ lsls r1, 1
+ subs r0, 0x57
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r6, 0x3]
+ b _080CFAA4
+_080CFA96:
+ ldrb r0, [r6, 0x3]
+ movs r1, 0x3F
+ negs r1, r1
+ ands r1, r0
+ movs r0, 0x10
+ orrs r1, r0
+ strb r1, [r6, 0x3]
+_080CFAA4:
+ ldr r3, _080CFAFC
+ lsls r2, r7, 2
+ adds r2, r7
+ lsls r2, 3
+ adds r4, r2, r3
+ ldrh r0, [r4, 0x12]
+ ldrh r1, [r4, 0x14]
+ subs r0, r1
+ strh r0, [r6, 0x2E]
+ strh r7, [r6, 0x3C]
+ movs r1, 0xA
+ ldrsh r0, [r4, r1]
+ adds r0, 0xD
+ lsls r0, 1
+ adds r0, r2
+ adds r3, 0x8
+ adds r0, r3
+ mov r2, r12
+ strh r2, [r0]
+ ldrh r0, [r4, 0xE]
+ strh r0, [r4, 0x8]
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ movs r0, 0x3F
+ negs r0, r0
+ bl sub_8076F98
+ adds r1, r0, 0
+ lsls r1, 24
+ asrs r1, 24
+ movs r0, 0x9A
+ bl PlaySE12WithPanning
+ movs r3, 0xA
+ ldrsh r0, [r4, r3]
+ cmp r0, 0x2
+ ble _080CFAF4
+ ldr r0, _080CFB00
+ str r0, [r4]
+_080CFAF4:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CFAFC: .4byte gTasks
+_080CFB00: .4byte sub_80CF9F8
+ thumb_func_end sub_80CFA20
+
+ thumb_func_start sub_80CFB04
+sub_80CFB04: @ 80CFB04
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r7, r0, 24
+ movs r0, 0
+ mov r9, r0
+ movs r5, 0
+ mov r0, sp
+ mov r1, r9
+ strh r1, [r0]
+ mov r4, sp
+ adds r4, 0x2
+ strh r1, [r4]
+ bl sub_8076BE0
+ lsls r0, 24
+ mov r10, r4
+ cmp r0, 0
+ beq _080CFB70
+ ldr r1, _080CFB60
+ lsls r2, r7, 2
+ adds r0, r2, r7
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0x2
+ strh r1, [r0, 0x10]
+ ldr r3, _080CFB64
+ ldrh r0, [r3]
+ negs r0, r0
+ strh r0, [r3]
+ ldrh r1, [r3, 0x4]
+ movs r0, 0x1
+ ands r0, r1
+ mov r8, r2
+ cmp r0, 0
+ beq _080CFB68
+ movs r0, 0x2
+ negs r0, r0
+ ands r0, r1
+ strh r0, [r3, 0x4]
+ b _080CFBCA
+ .align 2, 0
+_080CFB60: .4byte gTasks
+_080CFB64: .4byte gUnknown_03004B00
+_080CFB68:
+ movs r0, 0x1
+ orrs r0, r1
+ strh r0, [r3, 0x4]
+ b _080CFBCA
+_080CFB70:
+ ldr r1, _080CFBB4
+ ldr r0, _080CFBB8
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r3, 0x1
+ adds r0, r3, 0
+ ands r0, r1
+ lsls r2, r7, 2
+ mov r8, r2
+ cmp r0, 0
+ bne _080CFBCA
+ ldr r1, _080CFBBC
+ adds r0, r2, r7
+ lsls r0, 3
+ adds r0, r1
+ strh r3, [r0, 0x10]
+ ldr r2, _080CFBC0
+ ldrh r0, [r2]
+ negs r0, r0
+ strh r0, [r2]
+ ldrh r0, [r2, 0x2]
+ negs r0, r0
+ strh r0, [r2, 0x2]
+ ldrh r1, [r2, 0x4]
+ adds r0, r3, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _080CFBC4
+ movs r0, 0x2
+ negs r0, r0
+ ands r0, r1
+ b _080CFBC8
+ .align 2, 0
+_080CFBB4: .4byte gUnknown_02024A72
+_080CFBB8: .4byte gUnknown_0202F7C9
+_080CFBBC: .4byte gTasks
+_080CFBC0: .4byte gUnknown_03004B00
+_080CFBC4:
+ movs r0, 0x1
+ orrs r0, r1
+_080CFBC8:
+ strh r0, [r2, 0x4]
+_080CFBCA:
+ ldr r5, _080CFC24
+ ldrb r0, [r5]
+ movs r1, 0
+ bl sub_8077ABC
+ ldr r1, _080CFC28
+ mov r3, r8
+ adds r4, r3, r7
+ lsls r4, 3
+ adds r4, r1
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x1A]
+ adds r6, r0, 0
+ ldrb r0, [r5]
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x1C]
+ mov r9, r0
+ ldr r0, _080CFC2C
+ ldrh r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080CFC34
+ ldr r4, _080CFC30
+ ldrb r1, [r4]
+ movs r0, 0x2
+ eors r0, r1
+ bl b_side_obj__get_some_boolean
+ lsls r0, 24
+ cmp r0, 0
+ beq _080CFC34
+ ldrb r0, [r4]
+ movs r1, 0
+ mov r2, sp
+ mov r3, r10
+ bl sub_807A3FC
+ b _080CFC56
+ .align 2, 0
+_080CFC24: .4byte gUnknown_0202F7C8
+_080CFC28: .4byte gTasks
+_080CFC2C: .4byte gUnknown_020239F8
+_080CFC30: .4byte gUnknown_0202F7C9
+_080CFC34:
+ mov r5, sp
+ ldr r4, _080CFC90
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5]
+ ldrb r0, [r4]
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ mov r1, r10
+ strh r0, [r1]
+_080CFC56:
+ mov r4, sp
+ ldr r0, _080CFC94
+ mov r2, r8
+ adds r1, r2, r7
+ lsls r1, 3
+ adds r1, r0
+ mov r2, sp
+ ldr r3, _080CFC98
+ ldrh r0, [r3]
+ ldrh r2, [r2]
+ adds r0, r2
+ strh r0, [r1, 0x1E]
+ strh r0, [r4]
+ ldrh r0, [r3, 0x2]
+ mov r3, r10
+ ldrh r3, [r3]
+ adds r0, r3
+ strh r0, [r1, 0x20]
+ mov r1, r10
+ strh r0, [r1]
+ mov r0, sp
+ ldrh r2, [r0]
+ movs r3, 0
+ ldrsh r0, [r0, r3]
+ adds r1, r6, 0
+ cmp r0, r1
+ blt _080CFC9C
+ subs r0, r2, r1
+ b _080CFC9E
+ .align 2, 0
+_080CFC90: .4byte gUnknown_0202F7C9
+_080CFC94: .4byte gTasks
+_080CFC98: .4byte gUnknown_03004B00
+_080CFC9C:
+ subs r0, r1, r2
+_080CFC9E:
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r4, r0, 16
+ asrs r4, 16
+ ldr r5, _080CFD14
+ ldrh r1, [r5, 0x4]
+ movs r0, 0x2
+ negs r0, r0
+ ands r0, r1
+ lsls r0, 16
+ asrs r0, 16
+ bl sub_81174E0
+ adds r1, r0, 0
+ lsls r1, 16
+ asrs r1, 16
+ adds r0, r4, 0
+ bl sub_81174C4
+ ldr r2, _080CFD18
+ mov r3, r8
+ adds r1, r3, r7
+ lsls r1, 3
+ adds r6, r1, r2
+ strh r0, [r6, 0x12]
+ movs r1, 0x12
+ ldrsh r0, [r6, r1]
+ movs r1, 0x80
+ bl sub_81174C4
+ strh r0, [r6, 0x14]
+ ldrh r0, [r5, 0x4]
+ strh r0, [r6, 0x16]
+ mov r2, r10
+ ldrh r1, [r2]
+ movs r3, 0
+ ldrsh r0, [r2, r3]
+ mov r4, r9
+ cmp r0, r4
+ blt _080CFD1C
+ subs r4, r1, r4
+ lsls r4, 16
+ asrs r4, 16
+ movs r1, 0x12
+ ldrsh r0, [r6, r1]
+ bl sub_81174E0
+ adds r1, r0, 0
+ lsls r1, 16
+ asrs r1, 16
+ adds r0, r4, 0
+ bl sub_81174C4
+ movs r1, 0x2
+ negs r1, r1
+ ands r1, r0
+ strh r1, [r6, 0x18]
+ b _080CFD3C
+ .align 2, 0
+_080CFD14: .4byte gUnknown_03004B00
+_080CFD18: .4byte gTasks
+_080CFD1C:
+ subs r4, r1
+ lsls r4, 16
+ asrs r4, 16
+ movs r2, 0x12
+ ldrsh r0, [r6, r2]
+ bl sub_81174E0
+ adds r1, r0, 0
+ lsls r1, 16
+ asrs r1, 16
+ adds r0, r4, 0
+ bl sub_81174C4
+ movs r1, 0x1
+ orrs r0, r1
+ strh r0, [r6, 0x18]
+_080CFD3C:
+ ldr r1, _080CFD7C
+ mov r3, r8
+ adds r0, r3, r7
+ lsls r0, 3
+ adds r5, r0, r1
+ ldr r4, _080CFD80
+ ldrh r0, [r4, 0x6]
+ strh r0, [r5, 0xE]
+ ldrh r1, [r4, 0x8]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _080CFD8C
+ movs r0, 0x80
+ eors r0, r1
+ strh r0, [r4, 0x8]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3F
+ ble _080CFDB4
+ ldr r0, _080CFD84
+ ldrb r0, [r0]
+ bl sub_8079E90
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080CFD88
+ adds r1, r2, 0
+ ldrh r4, [r4, 0x8]
+ adds r1, r4
+ adds r0, r1
+ b _080CFDC4
+ .align 2, 0
+_080CFD7C: .4byte gTasks
+_080CFD80: .4byte gUnknown_03004B00
+_080CFD84: .4byte gUnknown_0202F7C9
+_080CFD88: .4byte 0x0000ffc0
+_080CFD8C:
+ lsls r0, r1, 16
+ asrs r0, 16
+ cmp r0, 0x3F
+ ble _080CFDB4
+ ldr r0, _080CFDAC
+ ldrb r0, [r0]
+ bl sub_8079E90
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r3, _080CFDB0
+ adds r1, r3, 0
+ ldrh r4, [r4, 0x8]
+ adds r1, r4
+ adds r0, r1
+ b _080CFDC4
+ .align 2, 0
+_080CFDAC: .4byte gUnknown_0202F7C9
+_080CFDB0: .4byte 0x0000ffc0
+_080CFDB4:
+ ldr r0, _080CFDF0
+ ldrb r0, [r0]
+ bl sub_8079E90
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r4, 0x8]
+ subs r0, r1
+_080CFDC4:
+ strh r0, [r5, 0xC]
+ ldr r0, _080CFDF4
+ mov r2, r8
+ adds r1, r2, r7
+ lsls r1, 3
+ adds r1, r0
+ movs r3, 0xC
+ ldrsh r0, [r1, r3]
+ cmp r0, 0x2
+ bgt _080CFDDC
+ movs r0, 0x3
+ strh r0, [r1, 0xC]
+_080CFDDC:
+ ldr r0, _080CFDF8
+ str r0, [r1]
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CFDF0: .4byte gUnknown_0202F7C9
+_080CFDF4: .4byte gTasks
+_080CFDF8: .4byte sub_80CFA20
+ thumb_func_end sub_80CFB04
+
+ thumb_func_start sub_80CFDFC
+sub_80CFDFC: @ 80CFDFC
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0
+ bl sub_80787B0
+ ldr r0, _080CFE24
+ ldrh r0, [r0, 0x2]
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r0, 20
+ movs r1, 0x80
+ lsls r1, 1
+ adds r0, r1
+ strh r0, [r4, 0x2E]
+ ldr r0, _080CFE28
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CFE24: .4byte gSpriteTemplate_83D75AC
+_080CFE28: .4byte sub_80CFE2C
+ thumb_func_end sub_80CFDFC
+
+ thumb_func_start sub_80CFE2C
+sub_80CFE2C: @ 80CFE2C
+ push {r4-r7,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x2
+ bne _080CFE90
+ movs r0, 0
+ strh r0, [r4, 0x30]
+ ldrh r5, [r4, 0x2E]
+ ldr r1, _080CFE98
+ adds r0, r5, 0
+ adds r0, 0x8
+ lsls r0, 1
+ adds r0, r1
+ ldrh r7, [r0]
+ adds r6, r1, 0
+ adds r1, r5, 0
+ adds r1, 0x9
+ lsls r0, r5, 1
+ adds r0, r6
+ adds r2, r0, 0
+ adds r2, 0x10
+ movs r3, 0x7
+ lsls r1, 1
+ adds r1, r6
+_080CFE64:
+ ldrh r0, [r1]
+ strh r0, [r2]
+ adds r1, 0x2
+ adds r2, 0x2
+ subs r3, 0x1
+ cmp r3, 0
+ bge _080CFE64
+ adds r0, r5, 0
+ adds r0, 0xF
+ lsls r0, 1
+ adds r0, r6
+ strh r7, [r0]
+ ldrh r0, [r4, 0x32]
+ adds r0, 0x1
+ strh r0, [r4, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x18
+ bne _080CFE90
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080CFE90:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CFE98: .4byte gPlttBufferFaded
+ thumb_func_end sub_80CFE2C
+
+ thumb_func_start sub_80CFE9C
+sub_80CFE9C: @ 80CFE9C
+ push {r4-r7,lr}
+ sub sp, 0x4
+ adds r5, r0, 0
+ movs r1, 0x1
+ bl sub_80787B0
+ ldr r4, _080CFF3C
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ ldr r4, _080CFF40
+ lsrs r0, 24
+ ldrh r1, [r4, 0x6]
+ adds r0, r1
+ lsls r0, 16
+ lsrs r7, r0, 16
+ ldr r0, _080CFF44
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080CFEE0
+ ldrh r0, [r4, 0x4]
+ negs r0, r0
+ strh r0, [r4, 0x4]
+_080CFEE0:
+ lsls r0, r6, 16
+ asrs r0, 16
+ ldrh r1, [r4, 0x4]
+ adds r0, r1
+ lsls r0, 16
+ ldrh r1, [r5, 0x20]
+ lsrs r6, r0, 16
+ asrs r0, 16
+ subs r0, r1
+ lsls r0, 16
+ asrs r0, 16
+ ldrh r2, [r5, 0x22]
+ lsls r1, r7, 16
+ asrs r1, 16
+ subs r1, r2
+ lsls r1, 16
+ asrs r1, 16
+ bl sub_80790F0
+ lsls r0, 16
+ movs r1, 0xC0
+ lsls r1, 24
+ adds r0, r1
+ lsrs r0, 16
+ movs r3, 0x80
+ lsls r3, 1
+ str r0, [sp]
+ adds r0, r5, 0
+ movs r1, 0
+ adds r2, r3, 0
+ bl sub_8078FDC
+ ldrh r0, [r4, 0x8]
+ strh r0, [r5, 0x2E]
+ strh r6, [r5, 0x32]
+ strh r7, [r5, 0x36]
+ ldr r0, _080CFF48
+ str r0, [r5, 0x1C]
+ ldr r1, _080CFF4C
+ adds r0, r5, 0
+ bl oamt_set_x3A_32
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CFF3C: .4byte gUnknown_0202F7C9
+_080CFF40: .4byte gUnknown_03004B00
+_080CFF44: .4byte gUnknown_0202F7C8
+_080CFF48: .4byte sub_8078C00
+_080CFF4C: .4byte move_anim_8072740
+ thumb_func_end sub_80CFE9C
+
+ thumb_func_start sub_80CFF50
+sub_80CFF50: @ 80CFF50
+ ldr r1, _080CFF60
+ strh r1, [r0, 0x32]
+ ldrh r1, [r0, 0x22]
+ adds r1, 0x8
+ strh r1, [r0, 0x22]
+ ldr r1, _080CFF64
+ str r1, [r0, 0x1C]
+ bx lr
+ .align 2, 0
+_080CFF60: .4byte 0x0000fff0
+_080CFF64: .4byte sub_80CFF68
+ thumb_func_end sub_80CFF50
+
+ thumb_func_start sub_80CFF68
+sub_80CFF68: @ 80CFF68
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x80
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 24
+ strh r0, [r4, 0x24]
+ ldr r0, _080CFFD4
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _080CFF8C
+ ldrh r0, [r4, 0x24]
+ negs r0, r0
+ strh r0, [r4, 0x24]
+_080CFF8C:
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ movs r2, 0x32
+ ldrsh r1, [r4, r2]
+ bl Sin
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x5
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x7E
+ ble _080CFFCC
+ movs r0, 0
+ strh r0, [r4, 0x30]
+ movs r1, 0x32
+ ldrsh r0, [r4, r1]
+ lsrs r1, r0, 31
+ adds r0, r1
+ asrs r0, 1
+ strh r0, [r4, 0x32]
+ ldrh r0, [r4, 0x34]
+ adds r0, 0x1
+ strh r0, [r4, 0x34]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x2
+ bne _080CFFCC
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080CFFCC:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CFFD4: .4byte gUnknown_0202F7C8
+ thumb_func_end sub_80CFF68
+
+ thumb_func_start sub_80CFFD8
+sub_80CFFD8: @ 80CFFD8
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r1, 0x1
+ bl sub_80787B0
+ movs r0, 0x14
+ strh r0, [r4, 0x2E]
+ ldr r5, _080D0024
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x32]
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x36]
+ ldr r0, _080D0028
+ str r0, [r4, 0x1C]
+ adds r2, r4, 0
+ adds r2, 0x2C
+ ldrb r0, [r2]
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r1, _080D002C
+ adds r0, r4, 0
+ bl oamt_set_x3A_32
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D0024: .4byte gUnknown_0202F7C9
+_080D0028: .4byte sub_8078B34
+_080D002C: .4byte sub_80D0030
+ thumb_func_end sub_80CFFD8
+
+ thumb_func_start sub_80D0030
+sub_80D0030: @ 80D0030
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r0, 0x3F
+ bl sub_8076F98
+ adds r1, r0, 0
+ lsls r1, 24
+ asrs r1, 24
+ movs r0, 0xA6
+ bl PlaySE12WithPanning
+ ldrh r0, [r4, 0x24]
+ ldrh r1, [r4, 0x20]
+ adds r0, r1
+ movs r1, 0
+ strh r0, [r4, 0x20]
+ ldrh r0, [r4, 0x26]
+ ldrh r2, [r4, 0x22]
+ adds r0, r2
+ strh r0, [r4, 0x22]
+ strh r1, [r4, 0x26]
+ strh r1, [r4, 0x24]
+ movs r2, 0
+ movs r1, 0x7
+ adds r0, r4, 0
+ adds r0, 0x3C
+_080D0064:
+ strh r2, [r0]
+ subs r0, 0x2
+ subs r1, 0x1
+ cmp r1, 0
+ bge _080D0064
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x7
+ ands r0, r1
+ ldr r2, _080D00AC
+ adds r1, r2, 0
+ subs r1, r0
+ strh r1, [r4, 0x3A]
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0xA0
+ bl __umodsi3
+ adds r0, 0xA0
+ strh r0, [r4, 0x3C]
+ ldr r0, _080D00B0
+ str r0, [r4, 0x1C]
+ adds r2, r4, 0
+ adds r2, 0x2C
+ ldrb r1, [r2]
+ movs r0, 0x7F
+ ands r0, r1
+ strb r0, [r2]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D00AC: .4byte 0x0000fff4
+_080D00B0: .4byte sub_80D00B4
+ thumb_func_end sub_80D0030
+
+ thumb_func_start sub_80D00B4
+sub_80D00B4: @ 80D00B4
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r1, [r4, 0x3C]
+ ldrh r2, [r4, 0x2E]
+ adds r0, r1, r2
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r2, r0, 24
+ strh r2, [r4, 0x24]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080D00D2
+ negs r0, r2
+ strh r0, [r4, 0x24]
+_080D00D2:
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ movs r2, 0x3A
+ ldrsh r1, [r4, r2]
+ bl Sin
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x8
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x7E
+ ble _080D0112
+ movs r0, 0
+ strh r0, [r4, 0x30]
+ movs r1, 0x32
+ ldrsh r0, [r4, r1]
+ lsrs r1, r0, 31
+ adds r0, r1
+ asrs r0, 1
+ strh r0, [r4, 0x32]
+ ldrh r0, [r4, 0x34]
+ adds r0, 0x1
+ strh r0, [r4, 0x34]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ bne _080D0112
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080D0112:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D00B4
+
+ thumb_func_start sub_80D0118
+sub_80D0118: @ 80D0118
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0
+ bl sub_80787B0
+ ldr r0, _080D0168
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _080D0136
+ ldrh r0, [r4, 0x22]
+ adds r0, 0x10
+ strh r0, [r4, 0x22]
+_080D0136:
+ ldr r1, _080D016C
+ ldrh r0, [r1, 0x8]
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r1, 0x4]
+ strh r0, [r4, 0x30]
+ ldrh r0, [r1, 0xA]
+ strh r0, [r4, 0x32]
+ ldrh r0, [r1, 0xC]
+ strh r0, [r4, 0x34]
+ ldrh r0, [r1, 0x6]
+ strh r0, [r4, 0x36]
+ ldr r0, _080D0170
+ str r0, [r4, 0x1C]
+ ldr r1, _080D0174
+ adds r0, r4, 0
+ bl oamt_set_x3A_32
+ ldr r1, [r4, 0x1C]
+ adds r0, r4, 0
+ bl _call_via_r1
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D0168: .4byte gUnknown_0202F7C8
+_080D016C: .4byte gUnknown_03004B00
+_080D0170: .4byte sub_8078114
+_080D0174: .4byte move_anim_8072740
+ thumb_func_end sub_80D0118
+
+ thumb_func_start sub_80D0178
+sub_80D0178: @ 80D0178
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r5, r0, 0
+ movs r7, 0x20
+ ldr r4, _080D01F4
+ movs r0, 0x10
+ mov r8, r0
+ ldr r6, _080D01F8
+ ldr r0, _080D01FC
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ beq _080D01A4
+ adds r7, r4, 0
+ movs r4, 0x20
+ mov r8, r6
+ movs r6, 0x10
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl StartSpriteAnim
+_080D01A4:
+ lsls r0, r7, 16
+ asrs r0, 16
+ ldrh r1, [r5, 0x20]
+ adds r0, r1
+ strh r0, [r5, 0x20]
+ lsls r0, r4, 16
+ asrs r0, 16
+ ldrh r1, [r5, 0x22]
+ adds r0, r1
+ strh r0, [r5, 0x22]
+ movs r0, 0x6
+ strh r0, [r5, 0x2E]
+ ldr r4, _080D0200
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ add r0, r8
+ strh r0, [r5, 0x32]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, r6
+ strh r0, [r5, 0x36]
+ ldr r0, _080D0204
+ str r0, [r5, 0x1C]
+ ldr r1, _080D0208
+ adds r0, r5, 0
+ bl oamt_set_x3A_32
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D01F4: .4byte 0x0000ffe0
+_080D01F8: .4byte 0x0000fff0
+_080D01FC: .4byte gUnknown_03004B00
+_080D0200: .4byte gUnknown_0202F7C9
+_080D0204: .4byte sub_8078B34
+_080D0208: .4byte sub_80D020C
+ thumb_func_end sub_80D0178
+
+ thumb_func_start sub_80D020C
+sub_80D020C: @ 80D020C
+ push {lr}
+ adds r2, r0, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080D0222
+ adds r0, r2, 0
+ bl move_anim_8072740
+_080D0222:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D020C
+
+ thumb_func_start sub_80D0228
+sub_80D0228: @ 80D0228
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ adds r5, r0, 0
+ movs r0, 0x20
+ mov r8, r0
+ ldr r4, _080D02BC
+ movs r2, 0x10
+ mov r9, r2
+ ldr r6, _080D02C0
+ ldr r7, _080D02C4
+ ldrh r1, [r7]
+ movs r2, 0
+ ldrsh r0, [r7, r2]
+ cmp r0, 0
+ beq _080D025C
+ mov r8, r4
+ movs r4, 0x20
+ mov r9, r6
+ movs r6, 0x10
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r5, 0
+ bl StartSpriteAnim
+_080D025C:
+ mov r0, r8
+ lsls r1, r0, 16
+ asrs r1, 16
+ ldrh r2, [r5, 0x20]
+ adds r1, r2
+ strh r1, [r5, 0x20]
+ lsls r0, r4, 16
+ asrs r0, 16
+ ldrh r2, [r5, 0x22]
+ adds r0, r2
+ strh r0, [r5, 0x22]
+ movs r0, 0x6
+ strh r0, [r5, 0x2E]
+ strh r1, [r5, 0x30]
+ ldr r4, _080D02C8
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ add r0, r9
+ strh r0, [r5, 0x32]
+ ldrh r0, [r5, 0x22]
+ strh r0, [r5, 0x34]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, r6
+ strh r0, [r5, 0x36]
+ adds r0, r5, 0
+ bl obj_translate_based_on_private_1_2_3_4
+ ldrh r0, [r7]
+ strh r0, [r5, 0x38]
+ ldrh r0, [r5, 0x2E]
+ strh r0, [r5, 0x3A]
+ ldr r0, _080D02CC
+ str r0, [r5, 0x1C]
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D02BC: .4byte 0x0000ffe0
+_080D02C0: .4byte 0x0000fff0
+_080D02C4: .4byte gUnknown_03004B00
+_080D02C8: .4byte gUnknown_0202F7C9
+_080D02CC: .4byte sub_80D02D0
+ thumb_func_end sub_80D0228
+
+ thumb_func_start sub_80D02D0
+sub_80D02D0: @ 80D02D0
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_8078B5C
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D0334
+ adds r0, r4, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080D0334
+ adds r0, r4, 0
+ movs r1, 0
+ bl SeekSpriteAnim
+ adds r2, r4, 0
+ adds r2, 0x2C
+ ldrb r0, [r2]
+ movs r1, 0x40
+ orrs r0, r1
+ strb r0, [r2]
+ ldrh r0, [r4, 0x24]
+ ldrh r1, [r4, 0x20]
+ adds r0, r1
+ movs r2, 0
+ strh r0, [r4, 0x20]
+ ldrh r0, [r4, 0x26]
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r4, 0x22]
+ movs r0, 0x2
+ strh r0, [r4, 0x24]
+ ldr r0, _080D033C
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x3A]
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r4, 0x30]
+ movs r1, 0x1
+ eors r0, r1
+ strh r0, [r4, 0x30]
+ ldrh r0, [r4, 0x32]
+ eors r0, r1
+ strh r0, [r4, 0x32]
+ strh r2, [r4, 0x36]
+ strh r2, [r4, 0x34]
+ ldr r0, _080D0340
+ str r0, [r4, 0x1C]
+_080D0334:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D033C: .4byte 0x0000fffe
+_080D0340: .4byte sub_80D0344
+ thumb_func_end sub_80D02D0
+
+ thumb_func_start sub_80D0344
+sub_80D0344: @ 80D0344
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x34
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080D035C
+ ldrh r0, [r4, 0x24]
+ negs r0, r0
+ strh r0, [r4, 0x24]
+ ldrh r0, [r4, 0x26]
+ negs r0, r0
+ strh r0, [r4, 0x26]
+_080D035C:
+ ldrh r0, [r4, 0x34]
+ movs r1, 0x1
+ eors r0, r1
+ movs r1, 0
+ strh r0, [r4, 0x34]
+ ldrh r0, [r4, 0x36]
+ adds r0, 0x1
+ strh r0, [r4, 0x36]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x33
+ bne _080D039E
+ strh r1, [r4, 0x26]
+ strh r1, [r4, 0x24]
+ strh r1, [r4, 0x36]
+ strh r1, [r4, 0x34]
+ adds r2, r4, 0
+ adds r2, 0x2C
+ ldrb r1, [r2]
+ movs r0, 0x41
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+ ldrh r0, [r4, 0x38]
+ movs r1, 0x1
+ eors r1, r0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl StartSpriteAnim
+ ldr r0, _080D03A4
+ str r0, [r4, 0x1C]
+_080D039E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D03A4: .4byte sub_80D03A8
+ thumb_func_end sub_80D0344
+
+ thumb_func_start sub_80D03A8
+sub_80D03A8: @ 80D03A8
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_8078B5C
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D03BC
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080D03BC:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D03A8
+
+ thumb_func_start sub_80D03C4
+sub_80D03C4: @ 80D03C4
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ movs r0, 0x1
+ bl obj_id_for_side_relative_to_move
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_8078E70
+ adds r0, r4, 0
+ movs r1, 0xD0
+ movs r2, 0xD0
+ movs r3, 0
+ bl obj_id_set_rotscale
+ ldr r1, _080D041C
+ lsls r0, r4, 4
+ adds r0, r4
+ lsls r0, 2
+ adds r0, r1
+ ldrb r0, [r0, 0x5]
+ lsrs r0, 4
+ adds r0, 0x10
+ movs r1, 0
+ bl sub_8079108
+ ldr r1, _080D0420
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0x50
+ strh r1, [r0, 0x8]
+ ldr r1, _080D0424
+ str r1, [r0]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D041C: .4byte gSprites
+_080D0420: .4byte gTasks
+_080D0424: .4byte sub_80D0428
+ thumb_func_end sub_80D03C4
+
+ thumb_func_start sub_80D0428
+sub_80D0428: @ 80D0428
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _080D0480
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ ldrh r1, [r0, 0x8]
+ subs r1, 0x1
+ strh r1, [r0, 0x8]
+ lsls r1, 16
+ asrs r1, 16
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ bne _080D0478
+ movs r0, 0x1
+ bl obj_id_for_side_relative_to_move
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r4, 0
+ bl sub_8078F40
+ ldr r1, _080D0484
+ lsls r0, r4, 4
+ adds r0, r4
+ lsls r0, 2
+ adds r0, r1
+ ldrb r0, [r0, 0x5]
+ lsrs r0, 4
+ adds r0, 0x10
+ movs r1, 0x1
+ bl sub_8079108
+ adds r0, r5, 0
+ bl move_anim_task_del
+_080D0478:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D0480: .4byte gTasks
+_080D0484: .4byte gSprites
+ thumb_func_end sub_80D0428
+
+ thumb_func_start sub_80D0488
+sub_80D0488: @ 80D0488
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ ldr r0, _080D04D4
+ adds r4, r0
+ movs r0, 0
+ bl obj_id_for_side_relative_to_move
+ lsls r0, 24
+ lsrs r0, 24
+ movs r5, 0
+ strh r0, [r4, 0x8]
+ movs r1, 0
+ bl sub_8078E70
+ strh r5, [r4, 0xA]
+ strh r5, [r4, 0xC]
+ strh r5, [r4, 0xE]
+ movs r0, 0x80
+ lsls r0, 1
+ strh r0, [r4, 0x10]
+ strh r5, [r4, 0x12]
+ strh r5, [r4, 0x14]
+ ldr r0, _080D04D8
+ ldrb r0, [r0]
+ bl sub_8079E90
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x16]
+ ldr r0, _080D04DC
+ str r0, [r4]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D04D4: .4byte gTasks
+_080D04D8: .4byte gUnknown_0202F7C8
+_080D04DC: .4byte sub_80D04E0
+ thumb_func_end sub_80D0488
+
+ thumb_func_start sub_80D04E0
+sub_80D04E0: @ 80D04E0
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, _080D0504
+ adds r4, r0, r1
+ movs r1, 0xA
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x5
+ bls _080D04FA
+ b _080D060A
+_080D04FA:
+ lsls r0, 2
+ ldr r1, _080D0508
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080D0504: .4byte gTasks
+_080D0508: .4byte _080D050C
+ .align 2, 0
+_080D050C:
+ .4byte _080D0524
+ .4byte _080D056C
+ .4byte _080D05A2
+ .4byte _080D05A8
+ .4byte _080D05B8
+ .4byte _080D05EC
+_080D0524:
+ movs r2, 0xC
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ beq _080D0534
+ cmp r0, 0x3
+ beq _080D0534
+ cmp r0, 0x6
+ bne _080D053C
+_080D0534:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_80D0614
+_080D053C:
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x1
+ strh r0, [r4, 0xC]
+ ldrh r0, [r4, 0x10]
+ adds r0, 0x28
+ strh r0, [r4, 0x10]
+ ldrb r0, [r4, 0x8]
+ movs r1, 0x10
+ ldrsh r2, [r4, r1]
+ adds r1, r2, 0
+ movs r3, 0
+ bl obj_id_set_rotscale
+ ldrb r0, [r4, 0x8]
+ bl sub_8079A64
+ movs r2, 0xC
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x20
+ bne _080D060A
+ ldrh r0, [r4, 0x12]
+ adds r0, 0x1
+ strh r0, [r4, 0x12]
+ b _080D05E4
+_080D056C:
+ movs r1, 0x14
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080D060A
+ movs r2, 0x12
+ ldrsh r1, [r4, r2]
+ cmp r1, 0x3
+ bne _080D0582
+ strh r0, [r4, 0xC]
+ strh r1, [r4, 0xA]
+ b _080D060A
+_080D0582:
+ strh r0, [r4, 0xC]
+ strh r0, [r4, 0xE]
+ movs r2, 0x80
+ lsls r2, 1
+ strh r2, [r4, 0x10]
+ ldrb r0, [r4, 0x8]
+ adds r1, r2, 0
+ movs r3, 0
+ bl obj_id_set_rotscale
+ ldrb r0, [r4, 0x8]
+ bl sub_8079A64
+ movs r0, 0x2
+ strh r0, [r4, 0xA]
+ b _080D060A
+_080D05A2:
+ movs r0, 0
+ strh r0, [r4, 0xA]
+ b _080D060A
+_080D05A8:
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x1
+ strh r0, [r4, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x20
+ ble _080D060A
+ b _080D05E0
+_080D05B8:
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x2
+ strh r0, [r4, 0xC]
+ ldrh r0, [r4, 0x10]
+ subs r0, 0x50
+ strh r0, [r4, 0x10]
+ ldrb r0, [r4, 0x8]
+ movs r1, 0x10
+ ldrsh r2, [r4, r1]
+ adds r1, r2, 0
+ movs r3, 0
+ bl obj_id_set_rotscale
+ ldrb r0, [r4, 0x8]
+ bl sub_8079A64
+ movs r2, 0xC
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x20
+ bne _080D060A
+_080D05E0:
+ movs r0, 0
+ strh r0, [r4, 0xC]
+_080D05E4:
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ b _080D060A
+_080D05EC:
+ ldrb r0, [r4, 0x8]
+ bl sub_8078F40
+ ldr r2, _080D0610
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0
+ strh r1, [r0, 0x26]
+ adds r0, r5, 0
+ bl move_anim_task_del
+_080D060A:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D0610: .4byte gSprites
+ thumb_func_end sub_80D04E0
+
+ thumb_func_start sub_80D0614
+sub_80D0614: @ 80D0614
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ adds r7, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ mov r9, r1
+ movs r0, 0
+ bl duplicate_obj_of_side_rel2move_in_transparent_mode
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ lsls r0, 16
+ asrs r4, r0, 16
+ cmp r4, 0
+ blt _080D06EE
+ bl AllocOamMatrix
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, 0xFF
+ bne _080D0658
+ lsls r0, r4, 4
+ adds r0, r4
+ lsls r0, 2
+ ldr r1, _080D0654
+ adds r0, r1
+ bl obj_delete_but_dont_free_vram
+ b _080D06EE
+ .align 2, 0
+_080D0654: .4byte gSprites
+_080D0658:
+ ldr r5, _080D06FC
+ lsls r3, r4, 4
+ adds r3, r4
+ lsls r3, 2
+ adds r4, r3, r5
+ ldrb r1, [r4, 0x1]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x4
+ orrs r0, r1
+ movs r1, 0x3
+ orrs r0, r1
+ strb r0, [r4, 0x1]
+ adds r2, r4, 0
+ adds r2, 0x2C
+ ldrb r0, [r2]
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r2]
+ movs r0, 0x1F
+ ands r6, r0
+ lsls r2, r6, 1
+ ldrb r1, [r4, 0x3]
+ movs r0, 0x3F
+ negs r0, r0
+ ands r0, r1
+ orrs r0, r2
+ strb r0, [r4, 0x3]
+ ldrb r0, [r7, 0x16]
+ ldrb r1, [r7, 0xE]
+ subs r0, r1
+ adds r1, r4, 0
+ adds r1, 0x43
+ strb r0, [r1]
+ ldrh r0, [r7, 0xE]
+ adds r0, 0x1
+ strh r0, [r7, 0xE]
+ ldrh r0, [r7, 0x14]
+ adds r0, 0x1
+ strh r0, [r7, 0x14]
+ movs r0, 0x10
+ strh r0, [r4, 0x2E]
+ mov r0, r9
+ strh r0, [r4, 0x30]
+ movs r0, 0x6
+ strh r0, [r4, 0x32]
+ adds r5, 0x1C
+ adds r3, r5
+ ldr r0, _080D0700
+ str r0, [r3]
+ mov r1, r8
+ lsls r0, r1, 24
+ lsrs r0, 24
+ movs r1, 0x10
+ ldrsh r2, [r7, r1]
+ adds r1, r2, 0
+ movs r3, 0
+ bl obj_id_set_rotscale
+ ldrb r0, [r4, 0x1]
+ movs r3, 0x4
+ negs r3, r3
+ ands r3, r0
+ movs r0, 0x1
+ orrs r3, r0
+ strb r3, [r4, 0x1]
+ lsrs r1, r3, 6
+ ldrb r2, [r4, 0x3]
+ lsrs r2, 6
+ lsls r3, 30
+ lsrs r3, 30
+ adds r0, r4, 0
+ bl CalcCenterToCornerVec
+_080D06EE:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D06FC: .4byte gSprites
+_080D0700: .4byte sub_80D0704
+ thumb_func_end sub_80D0614
+
+ thumb_func_start sub_80D0704
+sub_80D0704: @ 80D0704
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x2E]
+ subs r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ cmp r0, 0
+ bne _080D0742
+ ldr r3, _080D0748
+ movs r0, 0x32
+ ldrsh r1, [r4, r0]
+ lsls r1, 1
+ movs r0, 0x30
+ ldrsh r2, [r4, r0]
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r1, r0
+ adds r3, 0x8
+ adds r1, r3
+ ldrh r0, [r1]
+ subs r0, 0x1
+ strh r0, [r1]
+ ldrb r0, [r4, 0x3]
+ lsls r0, 26
+ lsrs r0, 27
+ bl FreeOamMatrix
+ adds r0, r4, 0
+ bl obj_delete_but_dont_free_vram
+_080D0742:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D0748: .4byte gTasks
+ thumb_func_end sub_80D0704
+
+ thumb_func_start sub_80D074C
+sub_80D074C: @ 80D074C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ ldr r1, _080D0770
+ adds r4, r0, r1
+ ldr r5, _080D0774
+ movs r1, 0x2
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ bne _080D0778
+ adds r0, r2, 0
+ bl move_anim_task_del
+ b _080D079E
+ .align 2, 0
+_080D0770: .4byte gTasks
+_080D0774: .4byte gUnknown_03004B00
+_080D0778:
+ ldrb r0, [r5]
+ bl obj_id_for_side_relative_to_move
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ movs r2, 0
+ strh r1, [r4, 0x8]
+ strh r2, [r4, 0xA]
+ ldrh r0, [r5, 0x2]
+ strh r0, [r4, 0xC]
+ strh r2, [r4, 0xE]
+ strh r2, [r4, 0x10]
+ ldr r2, _080D07A4
+ adds r0, r4, 0
+ bl sub_80798F4
+ ldr r0, _080D07A8
+ str r0, [r4]
+_080D079E:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D07A4: .4byte gUnknown_083D76F4
+_080D07A8: .4byte sub_80D07AC
+ thumb_func_end sub_80D074C
+
+ thumb_func_start sub_80D07AC
+sub_80D07AC: @ 80D07AC
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ ldr r1, _080D07D0
+ adds r4, r0, r1
+ movs r0, 0xA
+ ldrsh r5, [r4, r0]
+ cmp r5, 0x1
+ beq _080D0814
+ cmp r5, 0x1
+ bgt _080D07D4
+ cmp r5, 0
+ beq _080D07DE
+ b _080D08BC
+ .align 2, 0
+_080D07D0: .4byte gTasks
+_080D07D4:
+ cmp r5, 0x2
+ beq _080D0848
+ cmp r5, 0x3
+ beq _080D0878
+ b _080D08BC
+_080D07DE:
+ adds r0, r4, 0
+ bl sub_807992C
+ ldrh r2, [r4, 0x10]
+ adds r2, 0x3
+ strh r2, [r4, 0x10]
+ ldr r3, _080D0810
+ movs r0, 0x8
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ ldrh r1, [r0, 0x26]
+ adds r1, r2
+ strh r1, [r0, 0x26]
+ ldrh r0, [r4, 0xE]
+ adds r0, 0x1
+ strh r0, [r4, 0xE]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x7
+ ble _080D08BC
+ strh r5, [r4, 0xE]
+ b _080D0870
+ .align 2, 0
+_080D0810: .4byte gSprites
+_080D0814:
+ adds r0, r4, 0
+ bl sub_807992C
+ ldr r2, _080D0844
+ movs r0, 0x8
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r4, 0x10]
+ ldrh r2, [r0, 0x26]
+ adds r1, r2
+ strh r1, [r0, 0x26]
+ ldrh r0, [r4, 0xE]
+ adds r0, 0x1
+ strh r0, [r4, 0xE]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x7
+ ble _080D08BC
+ movs r0, 0
+ strh r0, [r4, 0xE]
+ b _080D0870
+ .align 2, 0
+_080D0844: .4byte gSprites
+_080D0848:
+ movs r1, 0x10
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080D0870
+ ldr r2, _080D086C
+ movs r0, 0x8
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r0, 0x26]
+ subs r1, 0x2
+ strh r1, [r0, 0x26]
+ ldrh r0, [r4, 0x10]
+ subs r0, 0x2
+ strh r0, [r4, 0x10]
+ b _080D08BC
+ .align 2, 0
+_080D086C: .4byte gSprites
+_080D0870:
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ b _080D08BC
+_080D0878:
+ adds r0, r4, 0
+ bl sub_807992C
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0
+ bne _080D08BC
+ ldrh r0, [r4, 0xC]
+ subs r0, 0x1
+ strh r0, [r4, 0xC]
+ lsls r0, 16
+ cmp r0, 0
+ bne _080D08B0
+ ldr r2, _080D08AC
+ movs r0, 0x8
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ strh r5, [r0, 0x26]
+ adds r0, r6, 0
+ bl move_anim_task_del
+ b _080D08BC
+ .align 2, 0
+_080D08AC: .4byte gSprites
+_080D08B0:
+ ldrb r1, [r4, 0x8]
+ ldr r2, _080D08C4
+ adds r0, r4, 0
+ bl sub_80798F4
+ strh r5, [r4, 0xA]
+_080D08BC:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D08C4: .4byte gUnknown_083D76F4
+ thumb_func_end sub_80D07AC
+
+ thumb_func_start sub_80D08C8
+sub_80D08C8: @ 80D08C8
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ ldr r0, _080D08F8
+ adds r4, r0
+ movs r0, 0
+ bl obj_id_for_side_relative_to_move
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r2, _080D08FC
+ adds r0, r4, 0
+ bl sub_80798F4
+ ldr r0, _080D0900
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D08F8: .4byte gTasks
+_080D08FC: .4byte gUnknown_083D7714
+_080D0900: .4byte sub_80D0904
+ thumb_func_end sub_80D08C8
+
+ thumb_func_start sub_80D0904
+sub_80D0904: @ 80D0904
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ ldr r1, _080D092C
+ adds r0, r1
+ bl sub_807992C
+ lsls r0, 24
+ cmp r0, 0
+ bne _080D0924
+ adds r0, r4, 0
+ bl move_anim_task_del
+_080D0924:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D092C: .4byte gTasks
+ thumb_func_end sub_80D0904
+
+ thumb_func_start sub_80D0930
+sub_80D0930: @ 80D0930
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldr r5, _080D0960
+ ldrb r0, [r5]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _080D0964
+ adds r0, r4, 0
+ movs r1, 0
+ bl StartSpriteAnim
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, 0x20
+ strh r0, [r4, 0x20]
+ movs r0, 0x40
+ b _080D097E
+ .align 2, 0
+_080D0960: .4byte gUnknown_0202F7C8
+_080D0964:
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl StartSpriteAnim
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ subs r0, 0x20
+ strh r0, [r4, 0x20]
+ ldr r0, _080D09B0
+_080D097E:
+ strh r0, [r4, 0x30]
+ ldr r0, _080D09B4
+ ldrb r0, [r0]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0
+ strh r0, [r4, 0x22]
+ movs r0, 0x34
+ strh r0, [r4, 0x2E]
+ strh r1, [r4, 0x32]
+ strh r1, [r4, 0x34]
+ strh r1, [r4, 0x36]
+ ldr r1, _080D09B8
+ adds r0, r4, 0
+ bl oamt_set_x3A_32
+ ldr r0, _080D09BC
+ str r0, [r4, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D09B0: .4byte 0x0000ffc0
+_080D09B4: .4byte gUnknown_0202F7C8
+_080D09B8: .4byte move_anim_8072740
+_080D09BC: .4byte sub_8078394
+ thumb_func_end sub_80D0930
+
+ thumb_func_start sub_80D09C0
+sub_80D09C0: @ 80D09C0
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ ldr r0, _080D09D4
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080D09DC
+ ldr r0, _080D09D8
+ b _080D09DE
+ .align 2, 0
+_080D09D4: .4byte gUnknown_03004B00
+_080D09D8: .4byte gUnknown_0202F7C8
+_080D09DC:
+ ldr r0, _080D0A3C
+_080D09DE:
+ ldrb r5, [r0]
+ adds r0, r5, 0
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080D09F8
+ ldr r1, _080D0A40
+ movs r2, 0x2
+ ldrsh r0, [r1, r2]
+ negs r0, r0
+ strh r0, [r1, 0x2]
+_080D09F8:
+ adds r0, r5, 0
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ ldr r4, _080D0A40
+ lsrs r0, 24
+ ldrh r1, [r4, 0x2]
+ adds r0, r1
+ strh r0, [r6, 0x20]
+ adds r0, r5, 0
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r4, [r4, 0x4]
+ adds r0, r4
+ strh r0, [r6, 0x22]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x7
+ bgt _080D0A2A
+ movs r0, 0x8
+ strh r0, [r6, 0x22]
+_080D0A2A:
+ ldr r1, _080D0A44
+ adds r0, r6, 0
+ bl oamt_set_x3A_32
+ ldr r0, _080D0A48
+ str r0, [r6, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D0A3C: .4byte gUnknown_0202F7C9
+_080D0A40: .4byte gUnknown_03004B00
+_080D0A44: .4byte move_anim_8074EE0
+_080D0A48: .4byte sub_80785E4
+ thumb_func_end sub_80D09C0
+
+ thumb_func_start sub_80D0A4C
+sub_80D0A4C: @ 80D0A4C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ ldr r0, _080D0A80
+ adds r4, r0
+ movs r0, 0
+ bl obj_id_for_side_relative_to_move
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ movs r0, 0
+ strh r1, [r4, 0x8]
+ strh r0, [r4, 0xA]
+ ldr r2, _080D0A84
+ adds r0, r4, 0
+ bl sub_80798F4
+ ldr r0, _080D0A88
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D0A80: .4byte gTasks
+_080D0A84: .4byte gUnknown_083D77B0
+_080D0A88: .4byte sub_80D0A8C
+ thumb_func_end sub_80D0A4C
+
+ thumb_func_start sub_80D0A8C
+sub_80D0A8C: @ 80D0A8C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ ldr r1, _080D0AB4
+ adds r0, r1
+ bl sub_807992C
+ lsls r0, 24
+ cmp r0, 0
+ bne _080D0AAC
+ adds r0, r4, 0
+ bl move_anim_task_del
+_080D0AAC:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D0AB4: .4byte gTasks
+ thumb_func_end sub_80D0A8C
+
+ thumb_func_start sub_80D0AB8
+sub_80D0AB8: @ 80D0AB8
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _080D0B2C
+ adds r4, r1, r0
+ movs r0, 0
+ bl obj_id_for_side_relative_to_move
+ lsls r0, 24
+ lsrs r0, 24
+ movs r2, 0
+ strh r0, [r4, 0x8]
+ strh r2, [r4, 0xA]
+ movs r0, 0x4
+ strh r0, [r4, 0xC]
+ movs r0, 0x7
+ strh r0, [r4, 0xE]
+ movs r0, 0x3
+ strh r0, [r4, 0x10]
+ ldr r3, _080D0B30
+ movs r0, 0x8
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ ldrh r0, [r0, 0x20]
+ strh r0, [r4, 0x12]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ ldrh r0, [r0, 0x22]
+ strh r0, [r4, 0x14]
+ strh r2, [r4, 0x16]
+ strh r2, [r4, 0x18]
+ movs r0, 0x2
+ strh r0, [r4, 0x1A]
+ ldr r0, _080D0B34
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080D0B22
+ movs r1, 0xC
+ ldrsh r0, [r4, r1]
+ negs r0, r0
+ strh r0, [r4, 0xC]
+_080D0B22:
+ ldr r0, _080D0B38
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D0B2C: .4byte gTasks
+_080D0B30: .4byte gSprites
+_080D0B34: .4byte gUnknown_0202F7C8
+_080D0B38: .4byte sub_80D0B3C
+ thumb_func_end sub_80D0AB8
+
+ thumb_func_start sub_80D0B3C
+sub_80D0B3C: @ 80D0B3C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ ldr r1, _080D0B84
+ adds r3, r0, r1
+ ldrh r0, [r3, 0x16]
+ adds r0, 0x1
+ strh r0, [r3, 0x16]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x2
+ ble _080D0BA2
+ movs r0, 0
+ strh r0, [r3, 0x16]
+ ldrh r0, [r3, 0x18]
+ adds r0, 0x1
+ strh r0, [r3, 0x18]
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080D0B8C
+ ldr r2, _080D0B88
+ movs r0, 0x8
+ ldrsh r1, [r3, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r3, 0x1A]
+ ldrh r2, [r0, 0x22]
+ adds r1, r2
+ b _080D0BA0
+ .align 2, 0
+_080D0B84: .4byte gTasks
+_080D0B88: .4byte gSprites
+_080D0B8C:
+ ldr r2, _080D0BB4
+ movs r5, 0x8
+ ldrsh r1, [r3, r5]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r0, 0x22]
+ ldrh r2, [r3, 0x1A]
+ subs r1, r2
+_080D0BA0:
+ strh r1, [r0, 0x22]
+_080D0BA2:
+ movs r1, 0xA
+ ldrsh r0, [r3, r1]
+ cmp r0, 0x1
+ beq _080D0BF0
+ cmp r0, 0x1
+ bgt _080D0BB8
+ cmp r0, 0
+ beq _080D0BBE
+ b _080D0C80
+ .align 2, 0
+_080D0BB4: .4byte gSprites
+_080D0BB8:
+ cmp r0, 0x2
+ beq _080D0C20
+ b _080D0C80
+_080D0BBE:
+ ldr r2, _080D0BEC
+ movs r5, 0x8
+ ldrsh r1, [r3, r5]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r3, 0xC]
+ ldrh r2, [r0, 0x20]
+ adds r1, r2
+ strh r1, [r0, 0x20]
+ ldrh r0, [r3, 0xE]
+ subs r0, 0x1
+ strh r0, [r3, 0xE]
+ lsls r0, 16
+ cmp r0, 0
+ bne _080D0C80
+ movs r0, 0xE
+ strh r0, [r3, 0xE]
+ movs r0, 0x1
+ strh r0, [r3, 0xA]
+ b _080D0C80
+ .align 2, 0
+_080D0BEC: .4byte gSprites
+_080D0BF0:
+ ldr r2, _080D0C1C
+ movs r5, 0x8
+ ldrsh r1, [r3, r5]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r0, 0x20]
+ ldrh r2, [r3, 0xC]
+ subs r1, r2
+ strh r1, [r0, 0x20]
+ ldrh r0, [r3, 0xE]
+ subs r0, 0x1
+ strh r0, [r3, 0xE]
+ lsls r0, 16
+ cmp r0, 0
+ bne _080D0C80
+ movs r0, 0x7
+ strh r0, [r3, 0xE]
+ movs r0, 0x2
+ strh r0, [r3, 0xA]
+ b _080D0C80
+ .align 2, 0
+_080D0C1C: .4byte gSprites
+_080D0C20:
+ ldr r2, _080D0C58
+ movs r0, 0x8
+ ldrsh r1, [r3, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r3, 0xC]
+ ldrh r5, [r0, 0x20]
+ adds r1, r5
+ strh r1, [r0, 0x20]
+ ldrh r0, [r3, 0xE]
+ subs r0, 0x1
+ strh r0, [r3, 0xE]
+ lsls r0, 16
+ asrs r1, r0, 16
+ cmp r1, 0
+ bne _080D0C80
+ ldrh r0, [r3, 0x10]
+ subs r0, 0x1
+ strh r0, [r3, 0x10]
+ lsls r0, 16
+ cmp r0, 0
+ beq _080D0C5C
+ movs r0, 0x7
+ strh r0, [r3, 0xE]
+ strh r1, [r3, 0xA]
+ b _080D0C80
+ .align 2, 0
+_080D0C58: .4byte gSprites
+_080D0C5C:
+ ldrh r1, [r3, 0x18]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080D0C7A
+ movs r0, 0x8
+ ldrsh r1, [r3, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r0, 0x22]
+ ldrh r2, [r3, 0x1A]
+ subs r1, r2
+ strh r1, [r0, 0x22]
+_080D0C7A:
+ adds r0, r4, 0
+ bl move_anim_task_del
+_080D0C80:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D0B3C
+
+ thumb_func_start sub_80D0C88
+sub_80D0C88: @ 80D0C88
+ push {r4-r6,lr}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _080D0CD8
+ adds r5, r1, r0
+ ldr r4, _080D0CDC
+ ldrb r0, [r4]
+ bl sub_8077FC0
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, 0x20
+ movs r1, 0
+ strh r0, [r5, 0x8]
+ movs r0, 0x4
+ strh r0, [r5, 0xA]
+ strh r1, [r5, 0xC]
+ strh r1, [r5, 0xE]
+ strh r1, [r5, 0x10]
+ strh r1, [r5, 0x12]
+ ldrb r0, [r4]
+ bl sub_807A100
+ strh r0, [r5, 0x26]
+ ldrb r0, [r4]
+ bl battle_get_per_side_status_permutated
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080D0CE8
+ ldr r0, _080D0CE0
+ ldrh r0, [r0]
+ strh r0, [r5, 0x14]
+ ldr r0, _080D0CE4
+ b _080D0CF0
+ .align 2, 0
+_080D0CD8: .4byte gTasks
+_080D0CDC: .4byte gUnknown_0202F7C9
+_080D0CE0: .4byte gUnknown_030042C0
+_080D0CE4: .4byte REG_BG1HOFS
+_080D0CE8:
+ ldr r0, _080D0D54
+ ldrh r0, [r0]
+ strh r0, [r5, 0x14]
+ ldr r0, _080D0D58
+_080D0CF0:
+ str r0, [sp]
+ ldrh r0, [r5, 0x8]
+ adds r1, r0, 0
+ subs r1, 0x40
+ lsls r2, r1, 16
+ lsls r0, 16
+ cmp r2, r0
+ bgt _080D0D2E
+ ldr r4, _080D0D5C
+ movs r0, 0xF0
+ lsls r0, 3
+ adds r6, r4, r0
+_080D0D08:
+ asrs r3, r2, 16
+ cmp r3, 0
+ blt _080D0D20
+ lsls r1, r3, 1
+ adds r2, r1, r4
+ ldrh r0, [r5, 0x14]
+ adds r0, 0xF0
+ strh r0, [r2]
+ adds r1, r6
+ ldrh r0, [r5, 0x14]
+ adds r0, 0xF0
+ strh r0, [r1]
+_080D0D20:
+ adds r0, r3, 0x1
+ lsls r2, r0, 16
+ asrs r1, r2, 16
+ movs r3, 0x8
+ ldrsh r0, [r5, r3]
+ cmp r1, r0
+ ble _080D0D08
+_080D0D2E:
+ ldr r0, _080D0D60
+ str r0, [sp, 0x4]
+ mov r1, sp
+ movs r2, 0
+ movs r0, 0x1
+ strb r0, [r1, 0x8]
+ mov r0, sp
+ strb r2, [r0, 0x9]
+ ldr r0, [sp]
+ ldr r1, [sp, 0x4]
+ ldr r2, [sp, 0x8]
+ bl sub_80895F8
+ ldr r0, _080D0D64
+ str r0, [r5]
+ add sp, 0xC
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D0D54: .4byte gUnknown_03004288
+_080D0D58: .4byte REG_BG2HOFS
+_080D0D5C: .4byte gUnknown_03004DE0
+_080D0D60: .4byte 0xa2600001
+_080D0D64: .4byte sub_80D0D68
+ thumb_func_end sub_80D0C88
+
+ thumb_func_start sub_80D0D68
+sub_80D0D68: @ 80D0D68
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ ldr r1, _080D0D88
+ adds r3, r0, r1
+ movs r1, 0x10
+ ldrsh r0, [r3, r1]
+ cmp r0, 0
+ beq _080D0D8C
+ cmp r0, 0x1
+ beq _080D0DA2
+ b _080D0E22
+ .align 2, 0
+_080D0D88: .4byte gTasks
+_080D0D8C:
+ ldrh r0, [r3, 0x12]
+ adds r0, 0x1
+ strh r0, [r3, 0x12]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x14
+ ble _080D0E22
+ ldrh r0, [r3, 0x10]
+ adds r0, 0x1
+ strh r0, [r3, 0x10]
+ b _080D0E22
+_080D0DA2:
+ ldrh r0, [r3, 0xA]
+ adds r0, 0x1
+ strh r0, [r3, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3
+ ble _080D0E22
+ movs r0, 0
+ strh r0, [r3, 0xA]
+ ldrh r1, [r3, 0xE]
+ movs r0, 0x3
+ ands r0, r1
+ strh r0, [r3, 0xC]
+ ldrh r0, [r3, 0x8]
+ subs r0, r1
+ strh r0, [r3, 0x12]
+ movs r2, 0xC
+ ldrsh r1, [r3, r2]
+ cmp r1, 0x1
+ beq _080D0DD8
+ cmp r1, 0x1
+ ble _080D0DE0
+ cmp r1, 0x2
+ beq _080D0DDC
+ cmp r1, 0x3
+ beq _080D0DDC
+ b _080D0DE0
+_080D0DD8:
+ subs r0, 0x2
+ b _080D0DDE
+_080D0DDC:
+ adds r0, 0x1
+_080D0DDE:
+ strh r0, [r3, 0x12]
+_080D0DE0:
+ movs r1, 0x12
+ ldrsh r0, [r3, r1]
+ cmp r0, 0
+ blt _080D0E04
+ ldr r2, _080D0E28
+ lsls r0, 1
+ adds r0, r2
+ ldrh r1, [r3, 0x14]
+ strh r1, [r0]
+ movs r1, 0x12
+ ldrsh r0, [r3, r1]
+ lsls r0, 1
+ movs r1, 0xF0
+ lsls r1, 3
+ adds r2, r1
+ adds r0, r2
+ ldrh r1, [r3, 0x14]
+ strh r1, [r0]
+_080D0E04:
+ ldrh r0, [r3, 0xE]
+ adds r0, 0x1
+ strh r0, [r3, 0xE]
+ lsls r0, 16
+ asrs r0, 16
+ movs r2, 0x26
+ ldrsh r1, [r3, r2]
+ cmp r0, r1
+ blt _080D0E22
+ ldr r1, _080D0E2C
+ movs r0, 0x3
+ strb r0, [r1, 0x15]
+ adds r0, r4, 0
+ bl move_anim_task_del
+_080D0E22:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D0E28: .4byte gUnknown_03004DE0
+_080D0E2C: .4byte gUnknown_03004DC0
+ thumb_func_end sub_80D0D68
+
+ thumb_func_start sub_80D0E30
+sub_80D0E30: @ 80D0E30
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ ldr r6, _080D0E84
+ ldrb r0, [r6]
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ subs r0, 0x10
+ movs r5, 0
+ strh r0, [r4, 0x20]
+ ldrb r0, [r6]
+ bl sub_8077FC0
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, 0x10
+ strh r0, [r4, 0x22]
+ strh r5, [r4, 0x2E]
+ strh r5, [r4, 0x30]
+ strh r5, [r4, 0x32]
+ movs r0, 0x10
+ strh r0, [r4, 0x34]
+ strh r5, [r4, 0x36]
+ ldrb r0, [r6]
+ movs r1, 0
+ bl sub_807A100
+ adds r0, 0x2
+ strh r0, [r4, 0x38]
+ movs r0, 0x3F
+ bl sub_8076F98
+ lsls r0, 24
+ asrs r0, 24
+ strh r0, [r4, 0x3A]
+ ldr r0, _080D0E88
+ str r0, [r4, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D0E84: .4byte gUnknown_0202F7C9
+_080D0E88: .4byte sub_80D0E8C
+ thumb_func_end sub_80D0E30
+
+ thumb_func_start sub_80D0E8C
+sub_80D0E8C: @ 80D0E8C
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r0, 0x2E
+ ldrsh r1, [r4, r0]
+ cmp r1, 0x1
+ beq _080D0EF0
+ cmp r1, 0x1
+ bgt _080D0EA2
+ cmp r1, 0
+ beq _080D0EA8
+ b _080D0FD0
+_080D0EA2:
+ cmp r1, 0x2
+ beq _080D0F82
+ b _080D0FD0
+_080D0EA8:
+ ldrh r0, [r4, 0x32]
+ adds r0, 0x1
+ strh r0, [r4, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080D0ED2
+ strh r1, [r4, 0x32]
+ adds r3, r4, 0
+ adds r3, 0x3E
+ ldrb r2, [r3]
+ lsrs r1, r2, 2
+ movs r0, 0x1
+ eors r1, r0
+ ands r1, r0
+ lsls r1, 2
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+_080D0ED2:
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x10
+ ble _080D0FD0
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x5
+ negs r1, r1
+ ands r1, r0
+ strb r1, [r2]
+ b _080D0F7A
+_080D0EF0:
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3
+ ble _080D0F36
+ ldrh r2, [r4, 0x32]
+ movs r3, 0x32
+ ldrsh r1, [r4, r3]
+ movs r3, 0x38
+ ldrsh r0, [r4, r3]
+ cmp r1, r0
+ bge _080D0F36
+ movs r0, 0
+ strh r0, [r4, 0x30]
+ ldrh r0, [r4, 0x22]
+ subs r0, 0x1
+ strh r0, [r4, 0x22]
+ adds r0, r2, 0x1
+ strh r0, [r4, 0x32]
+ movs r1, 0x32
+ ldrsh r0, [r4, r1]
+ movs r1, 0xA
+ bl __modsi3
+ lsls r0, 16
+ cmp r0, 0
+ bne _080D0F36
+ ldrh r1, [r4, 0x3A]
+ lsls r1, 24
+ asrs r1, 24
+ movs r0, 0xCD
+ bl PlaySE12WithPanning
+_080D0F36:
+ ldrh r0, [r4, 0x34]
+ ldrh r2, [r4, 0x36]
+ adds r1, r0, r2
+ strh r1, [r4, 0x36]
+ lsls r0, r1, 16
+ asrs r2, r0, 16
+ cmp r2, 0x1F
+ ble _080D0F4A
+ movs r0, 0x40
+ b _080D0F58
+_080D0F4A:
+ movs r0, 0x20
+ negs r0, r0
+ cmp r2, r0
+ bgt _080D0F64
+ movs r2, 0x40
+ negs r2, r2
+ adds r0, r2, 0
+_080D0F58:
+ subs r0, r1
+ strh r0, [r4, 0x36]
+ movs r3, 0x34
+ ldrsh r0, [r4, r3]
+ negs r0, r0
+ strh r0, [r4, 0x34]
+_080D0F64:
+ ldrh r0, [r4, 0x36]
+ movs r2, 0
+ strh r0, [r4, 0x24]
+ movs r0, 0x38
+ ldrsh r1, [r4, r0]
+ movs r3, 0x32
+ ldrsh r0, [r4, r3]
+ cmp r1, r0
+ bne _080D0FD0
+ strh r2, [r4, 0x30]
+ strh r2, [r4, 0x32]
+_080D0F7A:
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ b _080D0FD0
+_080D0F82:
+ ldrh r0, [r4, 0x32]
+ adds r0, 0x1
+ strh r0, [r4, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080D0FAE
+ movs r0, 0
+ strh r0, [r4, 0x32]
+ adds r3, r4, 0
+ adds r3, 0x3E
+ ldrb r2, [r3]
+ lsrs r1, r2, 2
+ movs r0, 0x1
+ eors r1, r0
+ ands r1, r0
+ lsls r1, 2
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+_080D0FAE:
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x10
+ ble _080D0FD0
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r1, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080D0FD0:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D0E8C
+
+ thumb_func_start sub_80D0FD8
+sub_80D0FD8: @ 80D0FD8
+ push {r4-r7,lr}
+ sub sp, 0x4
+ adds r6, r0, 0
+ movs r5, 0
+ mov r0, sp
+ strh r5, [r0]
+ mov r1, sp
+ adds r1, 0x2
+ strh r5, [r1]
+ ldr r0, _080D0FFC
+ movs r3, 0x4
+ ldrsh r2, [r0, r3]
+ adds r7, r1, 0
+ adds r1, r0, 0
+ cmp r2, 0
+ bne _080D1004
+ ldr r0, _080D1000
+ b _080D1006
+ .align 2, 0
+_080D0FFC: .4byte gUnknown_03004B00
+_080D1000: .4byte gUnknown_0202F7C8
+_080D1004:
+ ldr r0, _080D1040
+_080D1006:
+ ldrb r5, [r0]
+ ldrb r1, [r1, 0x6]
+ movs r0, 0x1
+ adds r4, r0, 0
+ eors r4, r1
+ bl battle_type_is_double
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D107E
+ movs r1, 0x2
+ adds r0, r5, 0
+ eors r0, r1
+ bl b_side_obj__get_some_boolean
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D107E
+ adds r0, r5, 0
+ adds r1, r4, 0
+ mov r2, sp
+ adds r3, r7, 0
+ bl sub_807A3FC
+ cmp r4, 0
+ bne _080D1044
+ adds r0, r5, 0
+ movs r1, 0
+ b _080D1048
+ .align 2, 0
+_080D1040: .4byte gUnknown_0202F7C9
+_080D1044:
+ adds r0, r5, 0
+ movs r1, 0x2
+_080D1048:
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r0, r5, 0
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D1074
+ ldr r2, _080D1070
+ mov r0, sp
+ ldrh r1, [r0]
+ subs r1, r4
+ ldrh r0, [r2]
+ subs r1, r0
+ subs r0, r1
+ strh r0, [r2]
+ b _080D107E
+ .align 2, 0
+_080D1070: .4byte gUnknown_03004B00
+_080D1074:
+ ldr r1, _080D1090
+ mov r0, sp
+ ldrh r0, [r0]
+ subs r0, r4
+ strh r0, [r1]
+_080D107E:
+ ldr r1, _080D1094
+ str r1, [r6, 0x1C]
+ adds r0, r6, 0
+ bl _call_via_r1
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D1090: .4byte gUnknown_03004B00
+_080D1094: .4byte sub_80793C4
+ thumb_func_end sub_80D0FD8
+
+ thumb_func_start sub_80D1098
+sub_80D1098: @ 80D1098
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_8078B5C
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D10B2
+ adds r0, r4, 0
+ bl FreeSpriteOamMatrix
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080D10B2:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D1098
+
+ thumb_func_start sub_80D10B8
+sub_80D10B8: @ 80D10B8
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ adds r5, r0, 0
+ movs r6, 0
+ mov r0, sp
+ strh r6, [r0]
+ mov r1, sp
+ adds r1, 0x2
+ strh r6, [r1]
+ ldr r0, _080D10E4
+ movs r2, 0xA
+ ldrsh r0, [r0, r2]
+ cmp r0, 0
+ bne _080D10F0
+ ldr r0, _080D10E8
+ ldrb r7, [r0]
+ ldr r0, _080D10EC
+ b _080D10F6
+ .align 2, 0
+_080D10E4: .4byte gUnknown_03004B00
+_080D10E8: .4byte gUnknown_0202F7C8
+_080D10EC: .4byte gUnknown_0202F7C9
+_080D10F0:
+ ldr r0, _080D1110
+ ldrb r7, [r0]
+ ldr r0, _080D1114
+_080D10F6:
+ ldrb r0, [r0]
+ mov r8, r0
+ ldr r0, _080D1118
+ movs r3, 0xC
+ ldrsh r0, [r0, r3]
+ cmp r0, 0
+ bne _080D111C
+ movs r0, 0
+ mov r10, r0
+ movs r1, 0x1
+ str r1, [sp, 0x4]
+ b _080D1124
+ .align 2, 0
+_080D1110: .4byte gUnknown_0202F7C9
+_080D1114: .4byte gUnknown_0202F7C8
+_080D1118: .4byte gUnknown_03004B00
+_080D111C:
+ movs r2, 0x2
+ mov r10, r2
+ movs r3, 0x3
+ str r3, [sp, 0x4]
+_080D1124:
+ adds r0, r7, 0
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D1180
+ adds r0, r7, 0
+ mov r1, r10
+ bl sub_8077ABC
+ lsls r0, 24
+ ldr r1, _080D1164
+ lsrs r0, 24
+ ldrh r1, [r1]
+ adds r0, r1
+ lsls r0, 16
+ lsrs r0, 16
+ mov r9, r0
+ movs r0, 0x2
+ mov r4, r8
+ eors r4, r0
+ adds r0, r4, 0
+ bl b_side_obj__get_some_boolean
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D1170
+ ldr r2, _080D1168
+ ldr r0, _080D116C
+ adds r0, r4, r0
+ b _080D120A
+ .align 2, 0
+_080D1164: .4byte gUnknown_03004B00
+_080D1168: .4byte gSprites
+_080D116C: .4byte gUnknown_02024BE0
+_080D1170:
+ ldr r2, _080D1178
+ ldr r0, _080D117C
+ add r0, r8
+ b _080D120A
+ .align 2, 0
+_080D1178: .4byte gSprites
+_080D117C: .4byte gUnknown_02024BE0
+_080D1180:
+ adds r0, r7, 0
+ mov r1, r10
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _080D11EC
+ ldrh r1, [r1]
+ subs r0, r1
+ lsls r0, 16
+ lsrs r0, 16
+ mov r9, r0
+ ldr r0, _080D11F0
+ ldr r1, _080D11F4
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080D1204
+ adds r4, r7, 0
+ movs r0, 0x2
+ eors r4, r0
+ adds r0, r4, 0
+ bl b_side_obj__get_some_boolean
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D1204
+ ldr r3, _080D11F8
+ ldr r2, _080D11FC
+ adds r0, r7, r2
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r6, r0, r3
+ adds r2, r4, r2
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r2, r0, r3
+ movs r3, 0x20
+ ldrsh r1, [r6, r3]
+ movs r3, 0x20
+ ldrsh r0, [r2, r3]
+ cmp r1, r0
+ bge _080D1200
+ adds r0, r2, 0
+ adds r0, 0x43
+ ldrb r0, [r0]
+ adds r0, 0x1
+ b _080D121A
+ .align 2, 0
+_080D11EC: .4byte gUnknown_03004B00
+_080D11F0: .4byte gMain
+_080D11F4: .4byte 0x0000043d
+_080D11F8: .4byte gSprites
+_080D11FC: .4byte gUnknown_02024BE0
+_080D1200:
+ adds r0, r6, 0
+ b _080D1214
+_080D1204:
+ ldr r2, _080D1268
+ ldr r0, _080D126C
+ adds r0, r7, r0
+_080D120A:
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+_080D1214:
+ adds r0, 0x43
+ ldrb r0, [r0]
+ subs r0, 0x1
+_080D121A:
+ adds r1, r5, 0
+ adds r1, 0x43
+ strb r0, [r1]
+ adds r0, r7, 0
+ ldr r1, [sp, 0x4]
+ bl sub_8077ABC
+ lsls r0, 24
+ ldr r4, _080D1270
+ lsrs r0, 24
+ ldrh r1, [r4, 0x2]
+ adds r0, r1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ ldr r0, _080D1274
+ ldr r2, _080D1278
+ adds r0, r2
+ ldrb r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080D127C
+ mov r0, r8
+ movs r1, 0x2
+ eors r0, r1
+ bl b_side_obj__get_some_boolean
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D127C
+ ldrb r1, [r4, 0xC]
+ mov r0, r8
+ mov r2, sp
+ mov r3, sp
+ adds r3, 0x2
+ bl sub_807A3FC
+ b _080D129C
+ .align 2, 0
+_080D1268: .4byte gSprites
+_080D126C: .4byte gUnknown_02024BE0
+_080D1270: .4byte gUnknown_03004B00
+_080D1274: .4byte gMain
+_080D1278: .4byte 0x0000043d
+_080D127C:
+ mov r4, sp
+ mov r0, r8
+ mov r1, r10
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4]
+ mov r0, r8
+ ldr r1, [sp, 0x4]
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ mov r3, sp
+ strh r0, [r3, 0x2]
+_080D129C:
+ mov r0, r8
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D12C0
+ mov r3, sp
+ mov r2, sp
+ ldr r1, _080D12BC
+ ldrh r0, [r1, 0x6]
+ ldrh r2, [r2]
+ adds r0, r2
+ strh r0, [r3]
+ adds r2, r1, 0
+ b _080D12CE
+ .align 2, 0
+_080D12BC: .4byte gUnknown_03004B00
+_080D12C0:
+ mov r3, sp
+ mov r0, sp
+ ldr r2, _080D1310
+ ldrh r0, [r0]
+ ldrh r1, [r2, 0x6]
+ subs r0, r1
+ strh r0, [r3]
+_080D12CE:
+ ldrh r1, [r2, 0x8]
+ mov r0, sp
+ ldrh r0, [r0, 0x2]
+ adds r1, r0
+ mov r3, sp
+ strh r1, [r3, 0x2]
+ mov r0, r9
+ strh r0, [r5, 0x30]
+ strh r0, [r5, 0x20]
+ strh r6, [r5, 0x34]
+ strh r6, [r5, 0x22]
+ mov r0, sp
+ ldrh r0, [r0]
+ strh r0, [r5, 0x32]
+ strh r1, [r5, 0x36]
+ ldrh r0, [r2]
+ strh r0, [r5, 0x2E]
+ adds r0, r5, 0
+ bl obj_translate_based_on_private_1_2_3_4
+ ldr r1, _080D1314
+ str r1, [r5, 0x1C]
+ adds r0, r5, 0
+ bl _call_via_r1
+ add sp, 0x8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D1310: .4byte gUnknown_03004B00
+_080D1314: .4byte sub_80D1098
+ thumb_func_end sub_80D10B8
+
+ thumb_func_start sub_80D1318
+sub_80D1318: @ 80D1318
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _080D1358
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xFF
+ beq _080D133E
+ lsls r0, 20
+ ldr r1, _080D135C
+ adds r0, r1
+ lsrs r0, 16
+ ldr r1, _080D1360
+ ldrb r2, [r1, 0xA]
+ ldrh r3, [r1, 0x8]
+ movs r1, 0xF
+ bl BlendPalette
+_080D133E:
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl StartSpriteAffineAnim
+ ldr r1, _080D1364
+ str r1, [r4, 0x1C]
+ adds r0, r4, 0
+ bl _call_via_r1
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D1358: .4byte 0x000027db
+_080D135C: .4byte 0x01010000
+_080D1360: .4byte gUnknown_03004B00
+_080D1364: .4byte sub_80793C4
+ thumb_func_end sub_80D1318
+
+ thumb_func_start sub_80D1368
+sub_80D1368: @ 80D1368
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0
+ bl sub_80787B0
+ ldr r0, _080D139C
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ movs r1, 0xA0
+ cmp r0, 0
+ beq _080D1384
+ ldr r1, _080D13A0
+_080D1384:
+ movs r0, 0xE0
+ lsls r0, 2
+ strh r0, [r4, 0x2E]
+ strh r1, [r4, 0x30]
+ ldr r0, _080D13A4
+ ldrh r0, [r0, 0x4]
+ strh r0, [r4, 0x3C]
+ ldr r0, _080D13A8
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D139C: .4byte gUnknown_0202F7C8
+_080D13A0: .4byte 0x0000ff60
+_080D13A4: .4byte gUnknown_03004B00
+_080D13A8: .4byte sub_80D13AC
+ thumb_func_end sub_80D1368
+
+ thumb_func_start sub_80D13AC
+sub_80D13AC: @ 80D13AC
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldrh r2, [r4, 0x2E]
+ lsls r0, r2, 16
+ asrs r0, 24
+ ldrh r1, [r4, 0x26]
+ subs r1, r0
+ movs r5, 0
+ strh r1, [r4, 0x26]
+ ldrh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 24
+ strh r0, [r4, 0x24]
+ subs r2, 0x20
+ strh r2, [r4, 0x2E]
+ ldr r0, _080D1418
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ movs r1, 0xA0
+ cmp r0, 0
+ beq _080D13DC
+ ldr r1, _080D141C
+_080D13DC:
+ lsls r0, r1, 16
+ asrs r0, 16
+ ldrh r1, [r4, 0x30]
+ adds r0, r1
+ strh r0, [r4, 0x30]
+ ldrh r1, [r4, 0x26]
+ movs r2, 0x26
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ ble _080D1410
+ ldrh r2, [r4, 0x22]
+ adds r0, r1, r2
+ strh r0, [r4, 0x22]
+ ldrh r0, [r4, 0x24]
+ ldrh r1, [r4, 0x20]
+ adds r0, r1
+ strh r0, [r4, 0x20]
+ strh r5, [r4, 0x26]
+ strh r5, [r4, 0x24]
+ strh r5, [r4, 0x2E]
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl StartSpriteAffineAnim
+ ldr r0, _080D1420
+ str r0, [r4, 0x1C]
+_080D1410:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D1418: .4byte gUnknown_0202F7C8
+_080D141C: .4byte 0x0000ff60
+_080D1420: .4byte sub_80D1424
+ thumb_func_end sub_80D13AC
+
+ thumb_func_start sub_80D1424
+sub_80D1424: @ 80D1424
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x2E]
+ adds r1, r0, 0x1
+ strh r1, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x13
+ ble _080D1442
+ adds r0, r4, 0
+ movs r1, 0x2
+ bl StartSpriteAffineAnim
+ ldr r0, _080D1448
+ str r0, [r4, 0x1C]
+_080D1442:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D1448: .4byte sub_80D144C
+ thumb_func_end sub_80D1424
+
+ thumb_func_start sub_80D144C
+sub_80D144C: @ 80D144C
+ push {r4,lr}
+ adds r4, r0, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _080D14B2
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl StartSpriteAffineAnim
+ movs r0, 0
+ strh r0, [r4, 0x2E]
+ movs r1, 0x3C
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080D1498
+ ldrh r2, [r4, 0x4]
+ lsls r1, r2, 22
+ lsrs r1, 22
+ adds r1, 0x10
+ ldr r3, _080D148C
+ adds r0, r3, 0
+ ands r1, r0
+ ldr r0, _080D1490
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r4, 0x4]
+ ldr r0, _080D1494
+ b _080D14B0
+ .align 2, 0
+_080D148C: .4byte 0x000003ff
+_080D1490: .4byte 0xfffffc00
+_080D1494: .4byte sub_80D14C4
+_080D1498:
+ ldrh r2, [r4, 0x4]
+ lsls r1, r2, 22
+ lsrs r1, 22
+ adds r1, 0x20
+ ldr r3, _080D14B8
+ adds r0, r3, 0
+ ands r1, r0
+ ldr r0, _080D14BC
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r4, 0x4]
+ ldr r0, _080D14C0
+_080D14B0:
+ str r0, [r4, 0x1C]
+_080D14B2:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D14B8: .4byte 0x000003ff
+_080D14BC: .4byte 0xfffffc00
+_080D14C0: .4byte sub_80D154C
+ thumb_func_end sub_80D144C
+
+ thumb_func_start sub_80D14C4
+sub_80D14C4: @ 80D14C4
+ push {lr}
+ adds r2, r0, 0
+ ldrh r0, [r2, 0x26]
+ subs r0, 0x2
+ strh r0, [r2, 0x26]
+ ldrh r0, [r2, 0x2E]
+ adds r0, 0x1
+ strh r0, [r2, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x9
+ bne _080D14F8
+ movs r0, 0x10
+ strh r0, [r2, 0x2E]
+ movs r0, 0
+ strh r0, [r2, 0x30]
+ ldr r1, _080D14FC
+ movs r3, 0xFD
+ lsls r3, 6
+ adds r0, r3, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ ldrh r0, [r2, 0x2E]
+ strh r0, [r1]
+ ldr r0, _080D1500
+ str r0, [r2, 0x1C]
+_080D14F8:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D14FC: .4byte REG_BLDCNT
+_080D1500: .4byte sub_80D1504
+ thumb_func_end sub_80D14C4
+
+ thumb_func_start sub_80D1504
+sub_80D1504: @ 80D1504
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x30]
+ adds r1, r0, 0x1
+ strh r1, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x3
+ bl __modsi3
+ lsls r0, 16
+ cmp r0, 0
+ bne _080D153C
+ ldrh r1, [r4, 0x2E]
+ subs r1, 0x1
+ strh r1, [r4, 0x2E]
+ ldr r2, _080D1544
+ movs r0, 0x10
+ subs r0, r1
+ lsls r0, 8
+ orrs r1, r0
+ strh r1, [r2]
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080D153C
+ ldr r0, _080D1548
+ str r0, [r4, 0x1C]
+_080D153C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D1544: .4byte REG_BLDALPHA
+_080D1548: .4byte sub_80D154C
+ thumb_func_end sub_80D1504
+
+ thumb_func_start sub_80D154C
+sub_80D154C: @ 80D154C
+ push {lr}
+ adds r3, r0, 0
+ ldr r0, _080D1574
+ ldrh r1, [r0, 0xE]
+ ldr r0, _080D1578
+ cmp r1, r0
+ bne _080D1584
+ adds r2, r3, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ movs r1, 0x3C
+ ldrsh r0, [r3, r1]
+ cmp r0, 0
+ bne _080D1580
+ ldr r0, _080D157C
+ b _080D1582
+ .align 2, 0
+_080D1574: .4byte gUnknown_03004B00
+_080D1578: .4byte 0x0000ffff
+_080D157C: .4byte sub_80D158C
+_080D1580:
+ ldr r0, _080D1588
+_080D1582:
+ str r0, [r3, 0x1C]
+_080D1584:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D1588: .4byte move_anim_8072740
+ thumb_func_end sub_80D154C
+
+ thumb_func_start sub_80D158C
+sub_80D158C: @ 80D158C
+ push {lr}
+ ldr r1, _080D15A0
+ movs r2, 0
+ strh r2, [r1]
+ adds r1, 0x2
+ strh r2, [r1]
+ bl move_anim_8072740
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D15A0: .4byte REG_BLDCNT
+ thumb_func_end sub_80D158C
+
+ thumb_func_start sub_80D15A4
+sub_80D15A4: @ 80D15A4
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ ldr r0, _080D15D4
+ adds r4, r0
+ movs r0, 0
+ bl obj_id_for_side_relative_to_move
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ strh r1, [r4, 0x8]
+ ldr r2, _080D15D8
+ adds r0, r4, 0
+ bl sub_80798F4
+ ldr r0, _080D15DC
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D15D4: .4byte gTasks
+_080D15D8: .4byte gUnknown_083D79BC
+_080D15DC: .4byte sub_80D15E0
+ thumb_func_end sub_80D15A4
+
+ thumb_func_start sub_80D15E0
+sub_80D15E0: @ 80D15E0
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, _080D1630
+ adds r4, r0, r1
+ adds r0, r4, 0
+ bl sub_807992C
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0
+ bne _080D162A
+ ldr r2, _080D1634
+ movs r0, 0x8
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ strh r3, [r0, 0x26]
+ movs r0, 0x8
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+ adds r0, r5, 0
+ bl move_anim_task_del
+_080D162A:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D1630: .4byte gTasks
+_080D1634: .4byte gSprites
+ thumb_func_end sub_80D15E0
+
+ thumb_func_start sub_80D1638
+sub_80D1638: @ 80D1638
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _080D166C
+ adds r4, r1, r0
+ movs r0, 0
+ strh r0, [r4, 0x8]
+ strh r0, [r4, 0xA]
+ strh r0, [r4, 0xC]
+ strh r0, [r4, 0xE]
+ movs r0, 0x3
+ strh r0, [r4, 0x20]
+ ldr r0, _080D1670
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _080D1678
+ ldr r0, _080D1674
+ strh r0, [r4, 0x22]
+ movs r0, 0x8
+ b _080D167E
+ .align 2, 0
+_080D166C: .4byte gTasks
+_080D1670: .4byte gUnknown_0202F7C9
+_080D1674: .4byte 0x0000ffff
+_080D1678:
+ movs r0, 0x1
+ strh r0, [r4, 0x22]
+ ldr r0, _080D1698
+_080D167E:
+ strh r0, [r4, 0x24]
+ movs r0, 0x1
+ bl obj_id_for_side_relative_to_move
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x26]
+ ldr r0, _080D169C
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D1698: .4byte 0x0000fff8
+_080D169C: .4byte sub_80D16A0
+ thumb_func_end sub_80D1638
+
+ thumb_func_start sub_80D16A0
+sub_80D16A0: @ 80D16A0
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, _080D16C4
+ adds r3, r0, r1
+ movs r0, 0x8
+ ldrsh r4, [r3, r0]
+ cmp r4, 0x1
+ beq _080D16F4
+ cmp r4, 0x1
+ bgt _080D16C8
+ cmp r4, 0
+ beq _080D16D2
+ b _080D17BA
+ .align 2, 0
+_080D16C4: .4byte gTasks
+_080D16C8:
+ cmp r4, 0x2
+ beq _080D1770
+ cmp r4, 0x3
+ beq _080D178A
+ b _080D17BA
+_080D16D2:
+ ldr r2, _080D16F0
+ movs r0, 0x26
+ ldrsh r1, [r3, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r3, 0x24]
+ ldrh r2, [r0, 0x24]
+ adds r1, r2
+ strh r1, [r0, 0x24]
+ strh r4, [r3, 0xA]
+ strh r4, [r3, 0xC]
+ strh r4, [r3, 0xE]
+ b _080D1782
+ .align 2, 0
+_080D16F0: .4byte gSprites
+_080D16F4:
+ ldrh r0, [r3, 0xA]
+ adds r0, 0x1
+ strh r0, [r3, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080D17BA
+ movs r0, 0
+ strh r0, [r3, 0xA]
+ ldrh r0, [r3, 0xC]
+ adds r0, 0x1
+ strh r0, [r3, 0xC]
+ ands r0, r4
+ lsls r0, 16
+ cmp r0, 0
+ beq _080D172C
+ ldr r2, _080D1728
+ movs r4, 0x26
+ ldrsh r1, [r3, r4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r0, 0x24]
+ adds r1, 0x6
+ b _080D173E
+ .align 2, 0
+_080D1728: .4byte gSprites
+_080D172C:
+ ldr r2, _080D176C
+ movs r0, 0x26
+ ldrsh r1, [r3, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r0, 0x24]
+ subs r1, 0x6
+_080D173E:
+ strh r1, [r0, 0x24]
+ ldrh r0, [r3, 0xE]
+ adds r0, 0x1
+ strh r0, [r3, 0xE]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ ble _080D17BA
+ ldrh r1, [r3, 0xC]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080D1782
+ movs r1, 0x26
+ ldrsh r0, [r3, r1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ ldrh r0, [r1, 0x24]
+ subs r0, 0x6
+ strh r0, [r1, 0x24]
+ b _080D1782
+ .align 2, 0
+_080D176C: .4byte gSprites
+_080D1770:
+ ldrh r0, [r3, 0x20]
+ subs r0, 0x1
+ strh r0, [r3, 0x20]
+ lsls r0, 16
+ cmp r0, 0
+ beq _080D1782
+ movs r0, 0
+ strh r0, [r3, 0x8]
+ b _080D17BA
+_080D1782:
+ ldrh r0, [r3, 0x8]
+ adds r0, 0x1
+ strh r0, [r3, 0x8]
+ b _080D17BA
+_080D178A:
+ ldr r2, _080D17C0
+ movs r4, 0x26
+ ldrsh r1, [r3, r4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r3, 0x22]
+ ldrh r4, [r0, 0x24]
+ adds r1, r4
+ strh r1, [r0, 0x24]
+ movs r0, 0x26
+ ldrsh r1, [r3, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0x24
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080D17BA
+ adds r0, r5, 0
+ bl move_anim_task_del
+_080D17BA:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D17C0: .4byte gSprites
+ thumb_func_end sub_80D16A0
+
+ thumb_func_start sub_80D17C4
+sub_80D17C4: @ 80D17C4
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ ldr r0, _080D1800
+ adds r4, r0
+ movs r0, 0
+ strh r0, [r4, 0x8]
+ strh r0, [r4, 0xA]
+ strh r0, [r4, 0xC]
+ strh r0, [r4, 0xE]
+ movs r0, 0x1
+ strh r0, [r4, 0x10]
+ movs r0, 0xE
+ strh r0, [r4, 0x22]
+ movs r0, 0x2
+ strh r0, [r4, 0x24]
+ movs r0, 0
+ bl obj_id_for_side_relative_to_move
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x26]
+ ldr r0, _080D1804
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D1800: .4byte gTasks
+_080D1804: .4byte sub_80D1808
+ thumb_func_end sub_80D17C4
+
+ thumb_func_start sub_80D1808
+sub_80D1808: @ 80D1808
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, _080D185C
+ adds r4, r0, r1
+ movs r0, 0x8
+ ldrsh r2, [r4, r0]
+ cmp r2, 0
+ bne _080D18CE
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ movs r3, 0x10
+ ldrsh r1, [r4, r3]
+ cmp r0, r1
+ ble _080D18CE
+ strh r2, [r4, 0xA]
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x1
+ strh r0, [r4, 0xC]
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080D1864
+ ldr r3, _080D1860
+ movs r6, 0x26
+ ldrsh r1, [r4, r6]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ adds r0, 0x3E
+ ldrb r2, [r0]
+ movs r1, 0x5
+ negs r1, r1
+ ands r1, r2
+ b _080D187A
+ .align 2, 0
+_080D185C: .4byte gTasks
+_080D1860: .4byte gSprites
+_080D1864:
+ ldr r3, _080D18AC
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+_080D187A:
+ strb r1, [r0]
+ ldrh r0, [r4, 0xE]
+ adds r0, 0x1
+ movs r2, 0
+ strh r0, [r4, 0xE]
+ lsls r0, 16
+ asrs r0, 16
+ movs r6, 0x22
+ ldrsh r1, [r4, r6]
+ cmp r0, r1
+ blt _080D18CE
+ ldrh r0, [r4, 0x10]
+ adds r0, 0x1
+ strh r0, [r4, 0x10]
+ lsls r0, 16
+ asrs r0, 16
+ movs r6, 0x24
+ ldrsh r1, [r4, r6]
+ cmp r0, r1
+ bge _080D18B0
+ strh r2, [r4, 0xA]
+ strh r2, [r4, 0xC]
+ strh r2, [r4, 0xE]
+ b _080D18CE
+ .align 2, 0
+_080D18AC: .4byte gSprites
+_080D18B0:
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ adds r0, 0x3E
+ ldrb r2, [r0]
+ movs r1, 0x5
+ negs r1, r1
+ ands r1, r2
+ strb r1, [r0]
+ adds r0, r5, 0
+ bl move_anim_task_del
+_080D18CE:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D1808
+
+ thumb_func_start sub_80D18D4
+sub_80D18D4: @ 80D18D4
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ ldr r0, _080D1924
+ adds r4, r0
+ movs r0, 0
+ strh r0, [r4, 0x8]
+ movs r1, 0x4
+ strh r1, [r4, 0xA]
+ strh r0, [r4, 0xC]
+ strh r0, [r4, 0xE]
+ strh r0, [r4, 0x10]
+ strh r0, [r4, 0x12]
+ strh r0, [r4, 0x14]
+ strh r0, [r4, 0x16]
+ strh r0, [r4, 0x18]
+ strh r0, [r4, 0x22]
+ ldr r5, _080D1928
+ ldrb r0, [r5]
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x24]
+ ldrb r0, [r5]
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x26]
+ ldr r0, _080D192C
+ str r0, [r4]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D1924: .4byte gTasks
+_080D1928: .4byte gUnknown_0202F7C8
+_080D192C: .4byte sub_80D1930
+ thumb_func_end sub_80D18D4
+
+ thumb_func_start sub_80D1930
+sub_80D1930: @ 80D1930
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ ldr r1, _080D1954
+ adds r4, r0, r1
+ movs r0, 0x18
+ ldrsh r2, [r4, r0]
+ cmp r2, 0x1
+ beq _080D199C
+ cmp r2, 0x1
+ bgt _080D1958
+ cmp r2, 0
+ beq _080D195E
+ b _080D19B8
+ .align 2, 0
+_080D1954: .4byte gTasks
+_080D1958:
+ cmp r2, 0x2
+ beq _080D19B4
+ b _080D19B8
+_080D195E:
+ ldrh r0, [r4, 0x10]
+ adds r0, 0x1
+ strh r0, [r4, 0x10]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080D19B8
+ strh r2, [r4, 0x10]
+ ldrh r0, [r4, 0x12]
+ adds r0, 0x1
+ movs r1, 0x1
+ ands r0, r1
+ strh r0, [r4, 0x12]
+ ldrh r0, [r4, 0x14]
+ adds r0, 0x1
+ strh r0, [r4, 0x14]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x14
+ ble _080D19B8
+ movs r1, 0x16
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080D1996
+ strh r2, [r4, 0x14]
+ movs r0, 0x1
+ strh r0, [r4, 0x18]
+ b _080D19B8
+_080D1996:
+ movs r0, 0x2
+ strh r0, [r4, 0x18]
+ b _080D19B8
+_080D199C:
+ movs r1, 0
+ strh r1, [r4, 0x12]
+ ldrh r0, [r4, 0x10]
+ adds r0, 0x1
+ strh r0, [r4, 0x10]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x14
+ ble _080D19B8
+ strh r2, [r4, 0x16]
+ strh r1, [r4, 0x18]
+ b _080D19B8
+_080D19B4:
+ movs r0, 0x1
+ strh r0, [r4, 0x12]
+_080D19B8:
+ movs r2, 0x8
+ ldrsh r5, [r4, r2]
+ cmp r5, 0
+ beq _080D19C6
+ cmp r5, 0x1
+ beq _080D1A5C
+ b _080D1A6A
+_080D19C6:
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ ble _080D1A6A
+ strh r5, [r4, 0xA]
+ ldr r0, _080D1A50
+ movs r3, 0x24
+ ldrsh r1, [r4, r3]
+ movs r3, 0x26
+ ldrsh r2, [r4, r3]
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x40
+ beq _080D1A6A
+ ldr r0, _080D1A54
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r0
+ strh r6, [r1, 0x2E]
+ movs r0, 0xD
+ strh r0, [r1, 0x30]
+ ldr r2, _080D1A58
+ movs r3, 0xC
+ ldrsh r0, [r4, r3]
+ lsls r0, 1
+ adds r0, r2
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ strh r0, [r1, 0x24]
+ movs r3, 0xC
+ ldrsh r0, [r4, r3]
+ lsls r0, 1
+ adds r2, 0x1
+ adds r0, r2
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ strh r0, [r1, 0x26]
+ ldrh r0, [r4, 0x22]
+ adds r0, 0x1
+ strh r0, [r4, 0x22]
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x1
+ strh r0, [r4, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3
+ ble _080D1A6A
+ strh r5, [r4, 0xC]
+ ldrh r0, [r4, 0xE]
+ adds r0, 0x1
+ strh r0, [r4, 0xE]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x5
+ ble _080D1A6A
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _080D1A6A
+ .align 2, 0
+_080D1A50: .4byte gSpriteTemplate_83D79E8
+_080D1A54: .4byte gSprites
+_080D1A58: .4byte gUnknown_083D7A00
+_080D1A5C:
+ movs r1, 0x22
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080D1A6A
+ adds r0, r6, 0
+ bl move_anim_task_del
+_080D1A6A:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D1930
+
+ thumb_func_start sub_80D1A70
+sub_80D1A70: @ 80D1A70
+ push {r4,lr}
+ adds r3, r0, 0
+ ldr r4, _080D1AD8
+ movs r0, 0x2E
+ ldrsh r1, [r3, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r4
+ movs r1, 0x3E
+ adds r1, r3
+ mov r12, r1
+ movs r2, 0x1
+ ldrb r1, [r0, 0x12]
+ ands r1, r2
+ 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]
+ adds r0, r3, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080D1AD2
+ movs r0, 0x30
+ ldrsh r1, [r3, r0]
+ lsls r1, 1
+ movs r0, 0x2E
+ ldrsh r2, [r3, r0]
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r1, r0
+ adds r0, r4, 0
+ adds r0, 0x8
+ adds r1, r0
+ ldrh r0, [r1]
+ subs r0, 0x1
+ strh r0, [r1]
+ adds r0, r3, 0
+ bl DestroySprite
+_080D1AD2:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D1AD8: .4byte gTasks
+ thumb_func_end sub_80D1A70
+
+ thumb_func_start sub_80D1ADC
+sub_80D1ADC: @ 80D1ADC
+ push {r4-r6,lr}
+ sub sp, 0x8
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r0, _080D1B34
+ bl IndexOfSpritePaletteTag
+ mov r1, sp
+ strb r0, [r1]
+ movs r5, 0x1
+ ldr r0, _080D1B38
+ adds r4, r0, 0
+_080D1AF4:
+ subs r0, r4, r5
+ lsls r0, 16
+ lsrs r0, 16
+ bl AllocSpritePalette
+ mov r2, sp
+ adds r1, r2, r5
+ strb r0, [r1]
+ adds r5, 0x1
+ cmp r5, 0x4
+ ble _080D1AF4
+ ldr r4, _080D1B3C
+ bl sub_8076BE0
+ lsls r0, 24
+ ldr r1, _080D1B40
+ cmp r0, 0
+ beq _080D1B1C
+ ldr r0, _080D1B44
+ adds r1, r0
+_080D1B1C:
+ adds r0, r4, 0
+ bl sub_800D238
+ movs r5, 0
+_080D1B24:
+ lsls r4, r5, 5
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D1B4C
+ ldr r0, _080D1B48
+ b _080D1B4E
+ .align 2, 0
+_080D1B34: .4byte 0x000027de
+_080D1B38: .4byte 0x00002710
+_080D1B3C: .4byte gBattleAnimSpritePalette_206
+_080D1B40: .4byte 0x02018000
+_080D1B44: .4byte 0xffffc800
+_080D1B48: .4byte 0x02014800
+_080D1B4C:
+ ldr r0, _080D1B7C
+_080D1B4E:
+ adds r2, r4, r0
+ mov r1, sp
+ adds r0, r1, r5
+ ldrb r1, [r0]
+ lsls r1, 20
+ movs r0, 0x80
+ lsls r0, 17
+ adds r1, r0
+ lsrs r1, 16
+ adds r0, r2, 0
+ movs r2, 0x20
+ bl LoadPalette
+ adds r5, 0x1
+ cmp r5, 0x4
+ ble _080D1B24
+ adds r0, r6, 0
+ bl move_anim_task_del
+ add sp, 0x8
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D1B7C: .4byte 0x02018000
+ thumb_func_end sub_80D1ADC
+
+ thumb_func_start sub_80D1B80
+sub_80D1B80: @ 80D1B80
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r5, _080D1BA4
+ movs r4, 0x4
+_080D1B8A:
+ ldrh r0, [r5]
+ bl FreeSpritePaletteByTag
+ adds r5, 0x2
+ subs r4, 0x1
+ cmp r4, 0
+ bge _080D1B8A
+ adds r0, r6, 0
+ bl move_anim_task_del
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D1BA4: .4byte gUnknown_083D7A5C
+ thumb_func_end sub_80D1B80
+
+ thumb_func_start sub_80D1BA8
+sub_80D1BA8: @ 80D1BA8
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ lsls r1, 24
+ lsls r2, 24
+ lsrs r3, r2, 24
+ movs r0, 0x1
+ ands r3, r0
+ negs r0, r3
+ orrs r0, r3
+ asrs r0, 31
+ movs r3, 0x20
+ ands r0, r3
+ ldrh r4, [r5, 0x4]
+ lsls r3, r4, 22
+ lsrs r3, 22
+ lsrs r1, 22
+ adds r0, r1
+ adds r3, r0
+ ldr r1, _080D1BFC
+ adds r0, r1, 0
+ ands r3, r0
+ ldr r0, _080D1C00
+ ands r0, r4
+ orrs r0, r3
+ strh r0, [r5, 0x4]
+ ldr r0, _080D1C04
+ lsrs r2, 25
+ lsls r2, 1
+ adds r2, r0
+ ldrh r0, [r2]
+ 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
+ .align 2, 0
+_080D1BFC: .4byte 0x000003ff
+_080D1C00: .4byte 0xfffffc00
+_080D1C04: .4byte gUnknown_083D7A5C
+ thumb_func_end sub_80D1BA8
+
+ thumb_func_start sub_80D1C08
+sub_80D1C08: @ 80D1C08
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ movs r1, 0
+ bl sub_80787B0
+ ldr r6, _080D1C70
+ ldrb r0, [r6]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D1C28
+ ldr r1, _080D1C74
+ ldrh r0, [r1, 0x4]
+ negs r0, r0
+ strh r0, [r1, 0x4]
+_080D1C28:
+ ldr r4, _080D1C74
+ ldrh r0, [r4, 0x8]
+ strh r0, [r5, 0x2E]
+ ldrb r0, [r6]
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r4, 0x4]
+ adds r0, r1
+ strh r0, [r5, 0x32]
+ ldrb r0, [r6]
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r4, 0x6]
+ adds r0, r1
+ strh r0, [r5, 0x36]
+ ldr r0, _080D1C78
+ str r0, [r5, 0x1C]
+ ldr r1, _080D1C7C
+ adds r0, r5, 0
+ bl oamt_set_x3A_32
+ ldrb r1, [r4, 0xA]
+ ldrb r2, [r4, 0xC]
+ adds r0, r5, 0
+ bl sub_80D1BA8
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D1C70: .4byte gUnknown_0202F7C8
+_080D1C74: .4byte gUnknown_03004B00
+_080D1C78: .4byte sub_8078B34
+_080D1C7C: .4byte move_anim_8072740
+ thumb_func_end sub_80D1C08
+
+ thumb_func_start sub_80D1C80
+sub_80D1C80: @ 80D1C80
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ bne _080D1C9A
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_80787B0
+_080D1C9A:
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ movs r1, 0x8
+ bl Sin
+ strh r0, [r4, 0x24]
+ ldrh r2, [r4, 0x32]
+ lsls r0, r2, 16
+ asrs r0, 24
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x7
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x30]
+ subs r2, 0x80
+ strh r2, [r4, 0x32]
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x3C
+ bne _080D1CCA
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080D1CCA:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D1C80
+
+ thumb_func_start sub_80D1CD0
+sub_80D1CD0: @ 80D1CD0
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_8076BE0
+ lsls r0, 24
+ movs r2, 0xF0
+ cmp r0, 0
+ beq _080D1CE4
+ movs r2, 0x98
+_080D1CE4:
+ movs r3, 0
+ ldr r0, _080D1D2C
+ strh r2, [r0]
+ ldr r0, _080D1D30
+ movs r1, 0xA0
+ strh r1, [r0]
+ ldr r0, _080D1D34
+ strh r2, [r0]
+ adds r0, 0x4
+ strh r1, [r0]
+ ldr r1, _080D1D38
+ ldr r5, _080D1D3C
+ adds r0, r5, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ adds r5, 0x20
+ adds r0, r5, 0
+ strh r0, [r1]
+ adds r1, 0x6
+ movs r0, 0xC8
+ strh r0, [r1]
+ adds r1, 0x4
+ movs r0, 0x10
+ strh r0, [r1]
+ ldr r1, _080D1D40
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ strh r3, [r0, 0x8]
+ strh r2, [r0, 0xA]
+ ldr r1, _080D1D44
+ str r1, [r0]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D1D2C: .4byte gUnknown_030042C4
+_080D1D30: .4byte gUnknown_03004240
+_080D1D34: .4byte REG_WIN0H
+_080D1D38: .4byte REG_WININ
+_080D1D3C: .4byte 0x00003f1f
+_080D1D40: .4byte gTasks
+_080D1D44: .4byte sub_80D1D48
+ thumb_func_end sub_80D1CD0
+
+ thumb_func_start sub_80D1D48
+sub_80D1D48: @ 80D1D48
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080D1D7C
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r3, r1, r2
+ ldrh r0, [r3, 0x8]
+ adds r4, r0, 0
+ adds r4, 0xD
+ strh r4, [r3, 0x8]
+ ldrh r0, [r3, 0xA]
+ adds r2, r0, 0
+ subs r2, 0xD
+ strh r2, [r3, 0xA]
+ lsls r1, r4, 16
+ lsls r0, r2, 16
+ cmp r1, r0
+ blt _080D1D88
+ ldr r0, _080D1D80
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, _080D1D84
+ str r0, [r3]
+ b _080D1D90
+ .align 2, 0
+_080D1D7C: .4byte gTasks
+_080D1D80: .4byte gUnknown_030042C4
+_080D1D84: .4byte sub_80D1D9C
+_080D1D88:
+ ldr r1, _080D1D98
+ lsls r0, r4, 8
+ orrs r2, r0
+ strh r2, [r1]
+_080D1D90:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D1D98: .4byte gUnknown_030042C4
+ thumb_func_end sub_80D1D48
+
+ thumb_func_start sub_80D1D9C
+sub_80D1D9C: @ 80D1D9C
+ push {r4,r5,lr}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r0, 24
+ adds r2, r0, 0
+ ldr r5, _080D1DEC
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r3, r0, 3
+ adds r1, r3, r5
+ ldrh r0, [r1, 0x1C]
+ adds r0, 0x1
+ movs r4, 0
+ strh r0, [r1, 0x1C]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x5
+ bne _080D1DF8
+ movs r0, 0x88
+ strh r0, [r1, 0x1E]
+ adds r0, r5, r3
+ adds r0, 0x1E
+ ldr r1, _080D1DF0
+ movs r2, 0x2
+ bl RequestSpriteCopy
+ str r4, [sp]
+ str r4, [sp, 0x4]
+ str r4, [sp, 0x8]
+ movs r0, 0x1
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl sub_80791A8
+ ldr r2, _080D1DF4
+ movs r1, 0x10
+ bl BlendPalettes
+ b _080D1E1E
+ .align 2, 0
+_080D1DEC: .4byte gTasks
+_080D1DF0: .4byte REG_BLDCNT
+_080D1DF4: .4byte 0x00007fff
+_080D1DF8:
+ cmp r0, 0x4
+ ble _080D1E1E
+ ldr r0, _080D1E28
+ strh r4, [r0]
+ ldr r0, _080D1E2C
+ strh r4, [r0]
+ ldr r0, _080D1E30
+ ldr r3, _080D1E34
+ adds r1, r3, 0
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x6
+ strh r4, [r0]
+ adds r0, 0x4
+ strh r4, [r0]
+ adds r0, r2, 0
+ bl move_anim_task_del
+_080D1E1E:
+ add sp, 0xC
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D1E28: .4byte gUnknown_030042C4
+_080D1E2C: .4byte gUnknown_03004240
+_080D1E30: .4byte REG_WININ
+_080D1E34: .4byte 0x00003f3f
+ thumb_func_end sub_80D1D9C
+
+ thumb_func_start sub_80D1E38
+sub_80D1E38: @ 80D1E38
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r6, r0, 0
+ movs r0, 0x1
+ bl obj_id_for_side_relative_to_move
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r1, _080D1E88
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r5, r0, r1
+ ldrh r0, [r5, 0x8]
+ adds r0, 0x1
+ strh r0, [r5, 0x8]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ bne _080D1E94
+ movs r0, 0x1
+ bl obj_id_for_side_relative_to_move
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r2, _080D1E8C
+ adds r0, r5, 0
+ bl sub_80798F4
+ ldr r1, _080D1E90
+ lsls r0, r4, 4
+ adds r0, r4
+ lsls r0, 2
+ adds r0, r1
+ movs r1, 0x4
+ strh r1, [r0, 0x24]
+ b _080D1EBC
+ .align 2, 0
+_080D1E88: .4byte gTasks
+_080D1E8C: .4byte gUnknown_083D7A98
+_080D1E90: .4byte gSprites
+_080D1E94:
+ ldr r1, _080D1EC4
+ lsls r0, r4, 4
+ adds r0, r4
+ lsls r0, 2
+ adds r4, r0, r1
+ ldrh r0, [r4, 0x24]
+ negs r0, r0
+ strh r0, [r4, 0x24]
+ adds r0, r5, 0
+ bl sub_807992C
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ bne _080D1EBC
+ strh r0, [r4, 0x24]
+ strh r0, [r4, 0x26]
+ adds r0, r6, 0
+ bl move_anim_task_del
+_080D1EBC:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D1EC4: .4byte gSprites
+ thumb_func_end sub_80D1E38
+
+ thumb_func_start sub_80D1EC8
+sub_80D1EC8: @ 80D1EC8
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r6, r0, 0
+ movs r0, 0
+ bl obj_id_for_side_relative_to_move
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r1, _080D1F18
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r5, r0, r1
+ ldrh r0, [r5, 0x8]
+ adds r0, 0x1
+ strh r0, [r5, 0x8]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ bne _080D1F24
+ movs r0, 0
+ bl obj_id_for_side_relative_to_move
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r2, _080D1F1C
+ adds r0, r5, 0
+ bl sub_80798F4
+ ldr r1, _080D1F20
+ lsls r0, r4, 4
+ adds r0, r4
+ lsls r0, 2
+ adds r0, r1
+ movs r1, 0x4
+ strh r1, [r0, 0x24]
+ b _080D1F4C
+ .align 2, 0
+_080D1F18: .4byte gTasks
+_080D1F1C: .4byte gUnknown_083D7A98
+_080D1F20: .4byte gSprites
+_080D1F24:
+ ldr r1, _080D1F54
+ lsls r0, r4, 4
+ adds r0, r4
+ lsls r0, 2
+ adds r4, r0, r1
+ ldrh r0, [r4, 0x24]
+ negs r0, r0
+ strh r0, [r4, 0x24]
+ adds r0, r5, 0
+ bl sub_807992C
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ bne _080D1F4C
+ strh r0, [r4, 0x24]
+ strh r0, [r4, 0x26]
+ adds r0, r6, 0
+ bl move_anim_task_del
+_080D1F4C:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D1F54: .4byte gSprites
+ thumb_func_end sub_80D1EC8
+
+ thumb_func_start sub_80D1F58
+sub_80D1F58: @ 80D1F58
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r1, 0x1
+ bl sub_80787B0
+ movs r0, 0x5F
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r4, 0x20]
+ strh r0, [r4, 0x30]
+ ldr r5, _080D1F9C
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x32]
+ ldrh r0, [r4, 0x22]
+ strh r0, [r4, 0x34]
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x36]
+ adds r0, r4, 0
+ bl obj_translate_based_on_private_1_2_3_4
+ ldr r0, _080D1FA0
+ str r0, [r4, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D1F9C: .4byte gUnknown_0202F7C9
+_080D1FA0: .4byte sub_80D1FA4
+ thumb_func_end sub_80D1F58
+
+ thumb_func_start sub_80D1FA4
+sub_80D1FA4: @ 80D1FA4
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_8078B5C
+ lsls r0, 24
+ cmp r0, 0
+ bne _080D1FCE
+ movs r1, 0x38
+ ldrsh r0, [r4, r1]
+ movs r1, 0xE
+ bl Sin
+ ldrh r1, [r4, 0x26]
+ adds r0, r1
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x38]
+ adds r0, 0x4
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x38]
+ b _080D1FD4
+_080D1FCE:
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080D1FD4:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D1FA4
+
+ thumb_func_start sub_80D1FDC
+sub_80D1FDC: @ 80D1FDC
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r2, [r4, 0x2E]
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080D2000
+ ldr r1, _080D1FFC
+ ldrh r0, [r1]
+ strh r0, [r4, 0x30]
+ ldrh r0, [r1, 0x2]
+ strh r0, [r4, 0x32]
+ adds r0, r2, 0x1
+ strh r0, [r4, 0x2E]
+ b _080D205C
+ .align 2, 0
+_080D1FFC: .4byte gUnknown_03004B00
+_080D2000:
+ ldrh r0, [r4, 0x30]
+ ldrh r2, [r4, 0x36]
+ adds r0, r2
+ strh r0, [r4, 0x36]
+ lsls r0, 16
+ asrs r0, 24
+ strh r0, [r4, 0x24]
+ movs r1, 0x34
+ ldrsh r0, [r4, r1]
+ movs r2, 0x32
+ ldrsh r1, [r4, r2]
+ bl Sin
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x34]
+ adds r0, 0x3
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x34]
+ cmp r0, 0x64
+ ble _080D204E
+ movs r0, 0x34
+ ldrsh r1, [r4, r0]
+ lsrs r0, r1, 31
+ adds r0, r1, r0
+ asrs r0, 1
+ lsls r0, 1
+ subs r1, r0
+ adds r3, r4, 0
+ adds r3, 0x3E
+ movs r0, 0x1
+ ands r1, r0
+ lsls r1, 2
+ ldrb r2, [r3]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+_080D204E:
+ movs r1, 0x34
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x78
+ ble _080D205C
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080D205C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D1FDC
+
+ thumb_func_start sub_80D2064
+sub_80D2064: @ 80D2064
+ push {lr}
+ ldr r2, _080D2088
+ ldrh r1, [r2]
+ strh r1, [r0, 0x20]
+ movs r1, 0xA0
+ strh r1, [r0, 0x22]
+ ldrh r1, [r2, 0x4]
+ strh r1, [r0, 0x2E]
+ ldrh r1, [r2, 0x2]
+ strh r1, [r0, 0x30]
+ ldr r1, _080D208C
+ str r1, [r0, 0x1C]
+ ldr r1, _080D2090
+ bl oamt_set_x3A_32
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D2088: .4byte gUnknown_03004B00
+_080D208C: .4byte sub_80782D8
+_080D2090: .4byte sub_80D2094
+ thumb_func_end sub_80D2064
+
+ thumb_func_start sub_80D2094
+sub_80D2094: @ 80D2094
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x30]
+ ldrh r1, [r4, 0x32]
+ adds r0, r1
+ strh r0, [r4, 0x32]
+ lsls r0, 16
+ lsrs r0, 24
+ negs r0, r0
+ strh r0, [r4, 0x26]
+ movs r1, 0x34
+ ldrsh r0, [r4, r1]
+ movs r1, 0x4
+ bl Sin
+ strh r0, [r4, 0x24]
+ ldrh r0, [r4, 0x34]
+ adds r0, 0x3
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x34]
+ ldrh r0, [r4, 0x26]
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ lsls r0, 16
+ asrs r5, r0, 16
+ cmp r5, 0x48
+ bgt _080D20FA
+ movs r0, 0x34
+ ldrsh r1, [r4, r0]
+ lsrs r0, r1, 31
+ adds r0, r1, r0
+ asrs r0, 1
+ lsls r0, 1
+ subs r1, r0
+ adds r3, r4, 0
+ adds r3, 0x3E
+ movs r0, 0x1
+ ands r1, r0
+ lsls r1, 2
+ ldrb r2, [r3]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+ cmp r5, 0x40
+ bgt _080D20FA
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080D20FA:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D2094
+
+ thumb_func_start sub_80D2100
+sub_80D2100: @ 80D2100
+ push {r4,r5,lr}
+ sub sp, 0x10
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _080D21BC
+ ldr r2, _080D21C0
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r2, 0x80
+ lsls r2, 5
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r4, _080D21C4
+ ldrb r0, [r4]
+ movs r1, 0x3
+ orrs r0, r1
+ strb r0, [r4]
+ ldrb r1, [r4, 0x1]
+ movs r0, 0x3F
+ ands r0, r1
+ strb r0, [r4, 0x1]
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080D2144
+ ldrb r0, [r4]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r0
+ movs r0, 0x4
+ orrs r1, r0
+ strb r1, [r4]
+_080D2144:
+ ldr r0, _080D21C8
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, _080D21CC
+ strh r1, [r0]
+ ldr r0, _080D21D0
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ mov r0, sp
+ bl sub_8078914
+ ldr r1, [sp, 0x4]
+ movs r0, 0
+ str r0, [sp, 0xC]
+ ldr r2, _080D21D4
+ add r0, sp, 0xC
+ str r0, [r2]
+ str r1, [r2, 0x4]
+ ldr r0, _080D21D8
+ str r0, [r2, 0x8]
+ ldr r0, [r2, 0x8]
+ ldr r0, _080D21DC
+ bl LZDecompressVram
+ ldr r0, _080D21E0
+ ldr r1, [sp]
+ bl LZDecompressVram
+ ldr r0, _080D21E4
+ mov r1, sp
+ ldrb r1, [r1, 0x8]
+ lsls r1, 4
+ movs r2, 0x20
+ bl LoadCompressedPalette
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D21A4
+ mov r0, sp
+ ldrb r0, [r0, 0x8]
+ ldr r1, [sp, 0x4]
+ movs r2, 0
+ movs r3, 0
+ bl sub_80763FC
+_080D21A4:
+ ldr r0, _080D21E8
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _080D21EC
+ str r0, [r1]
+ add sp, 0x10
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D21BC: .4byte REG_BLDCNT
+_080D21C0: .4byte 0x00003f42
+_080D21C4: .4byte REG_BG1CNT
+_080D21C8: .4byte gUnknown_030042C0
+_080D21CC: .4byte gUnknown_030041B4
+_080D21D0: .4byte REG_BG1HOFS
+_080D21D4: .4byte 0x040000d4
+_080D21D8: .4byte 0x85000400
+_080D21DC: .4byte gAttractTilemap
+_080D21E0: .4byte gAttractGfx
+_080D21E4: .4byte gAttractPal
+_080D21E8: .4byte gTasks
+_080D21EC: .4byte sub_80D21F0
+ thumb_func_end sub_80D2100
+
+ thumb_func_start sub_80D21F0
+sub_80D21F0: @ 80D21F0
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x10
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _080D2220
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ movs r2, 0x20
+ ldrsh r0, [r0, r2]
+ adds r2, r1, 0
+ cmp r0, 0x4
+ bls _080D2216
+ b _080D238C
+_080D2216:
+ lsls r0, 2
+ ldr r1, _080D2224
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080D2220: .4byte gTasks
+_080D2224: .4byte _080D2228
+ .align 2, 0
+_080D2228:
+ .4byte _080D223C
+ .4byte _080D2284
+ .4byte _080D22A6
+ .4byte _080D22E8
+ .4byte _080D236C
+_080D223C:
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r3, r0, r2
+ ldrh r0, [r3, 0x1C]
+ adds r0, 0x1
+ movs r4, 0
+ strh r0, [r3, 0x1C]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ beq _080D2256
+ b _080D238C
+_080D2256:
+ strh r4, [r3, 0x1C]
+ ldrh r1, [r3, 0x1E]
+ adds r1, 0x1
+ strh r1, [r3, 0x1E]
+ ldr r2, _080D2280
+ movs r0, 0x10
+ subs r0, r1
+ lsls r0, 8
+ orrs r1, r0
+ strh r1, [r2]
+ movs r1, 0x1E
+ ldrsh r0, [r3, r1]
+ cmp r0, 0x10
+ beq _080D2274
+ b _080D238C
+_080D2274:
+ ldrh r0, [r3, 0x20]
+ adds r0, 0x1
+ strh r0, [r3, 0x20]
+ strh r4, [r3, 0x1E]
+ b _080D238C
+ .align 2, 0
+_080D2280: .4byte REG_BLDALPHA
+_080D2284:
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r1, r0, r2
+ ldrh r0, [r1, 0x1E]
+ adds r0, 0x1
+ strh r0, [r1, 0x1E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x8D
+ bne _080D238C
+ movs r0, 0x10
+ strh r0, [r1, 0x1E]
+ ldrh r0, [r1, 0x20]
+ adds r0, 0x1
+ strh r0, [r1, 0x20]
+ b _080D238C
+_080D22A6:
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r3, r0, r2
+ ldrh r0, [r3, 0x1C]
+ adds r0, 0x1
+ strh r0, [r3, 0x1C]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ bne _080D238C
+ movs r0, 0
+ strh r0, [r3, 0x1C]
+ ldrh r1, [r3, 0x1E]
+ subs r1, 0x1
+ strh r1, [r3, 0x1E]
+ ldr r2, _080D22E4
+ movs r0, 0x10
+ subs r0, r1
+ lsls r0, 8
+ orrs r1, r0
+ strh r1, [r2]
+ movs r2, 0x1E
+ ldrsh r1, [r3, r2]
+ cmp r1, 0
+ bne _080D238C
+ ldrh r0, [r3, 0x20]
+ adds r0, 0x1
+ strh r0, [r3, 0x20]
+ strh r1, [r3, 0x1E]
+ b _080D238C
+ .align 2, 0
+_080D22E4: .4byte REG_BLDALPHA
+_080D22E8:
+ mov r0, sp
+ bl sub_8078914
+ ldr r2, [sp]
+ movs r3, 0x80
+ lsls r3, 6
+ lsls r0, r5, 2
+ mov r10, r0
+ add r6, sp, 0xC
+ movs r7, 0
+ ldr r1, _080D239C
+ movs r4, 0x80
+ lsls r4, 5
+ mov r8, r6
+ ldr r0, _080D23A0
+ mov r12, r0
+ movs r0, 0x85
+ lsls r0, 24
+ mov r9, r0
+_080D230E:
+ str r7, [sp, 0xC]
+ mov r0, r8
+ str r0, [r1]
+ str r2, [r1, 0x4]
+ mov r0, r12
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ adds r2, r4
+ subs r3, r4
+ cmp r3, r4
+ bhi _080D230E
+ str r7, [sp, 0xC]
+ str r6, [r1]
+ str r2, [r1, 0x4]
+ lsrs r0, r3, 2
+ mov r2, r9
+ orrs r0, r2
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ ldr r1, [sp, 0x4]
+ movs r0, 0
+ str r0, [sp, 0xC]
+ ldr r0, _080D239C
+ str r6, [r0]
+ str r1, [r0, 0x4]
+ ldr r1, _080D23A4
+ str r1, [r0, 0x8]
+ ldr r0, [r0, 0x8]
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080D235C
+ ldr r2, _080D23A8
+ ldrb r1, [r2]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+_080D235C:
+ ldr r0, _080D23AC
+ mov r2, r10
+ adds r1, r2, r5
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x20]
+ adds r0, 0x1
+ strh r0, [r1, 0x20]
+_080D236C:
+ ldr r0, _080D23B0
+ movs r1, 0
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ ldr r2, _080D23A8
+ ldrb r1, [r2]
+ movs r0, 0x4
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r2]
+ adds r0, r5, 0
+ bl move_anim_task_del
+_080D238C:
+ add sp, 0x10
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D239C: .4byte 0x040000d4
+_080D23A0: .4byte 0x85000400
+_080D23A4: .4byte 0x85000200
+_080D23A8: .4byte REG_BG1CNT
+_080D23AC: .4byte gTasks
+_080D23B0: .4byte REG_BLDCNT
+ thumb_func_end sub_80D21F0
+
+ thumb_func_start sub_80D23B4
+sub_80D23B4: @ 80D23B4
+ push {r4,r5,lr}
+ sub sp, 0x10
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _080D2438
+ ldr r2, _080D243C
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r2, 0x80
+ lsls r2, 5
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r4, _080D2440
+ ldrb r1, [r4]
+ movs r0, 0x4
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r4]
+ ldrb r1, [r4, 0x1]
+ movs r0, 0x3F
+ ands r0, r1
+ strb r0, [r4, 0x1]
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080D23FE
+ ldrb r0, [r4]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r0
+ movs r0, 0x4
+ orrs r1, r0
+ strb r1, [r4]
+_080D23FE:
+ ldr r0, _080D2444
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, _080D2448
+ strh r1, [r0]
+ ldr r0, _080D244C
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ mov r0, sp
+ bl sub_8078914
+ ldr r2, [sp, 0x4]
+ movs r0, 0
+ str r0, [sp, 0xC]
+ ldr r1, _080D2450
+ add r0, sp, 0xC
+ str r0, [r1]
+ str r2, [r1, 0x4]
+ ldr r0, _080D2454
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D245C
+ ldr r0, _080D2458
+ b _080D246E
+ .align 2, 0
+_080D2438: .4byte REG_BLDCNT
+_080D243C: .4byte 0x00003f42
+_080D2440: .4byte REG_BG1CNT
+_080D2444: .4byte gUnknown_030042C0
+_080D2448: .4byte gUnknown_030041B4
+_080D244C: .4byte REG_BG1HOFS
+_080D2450: .4byte 0x040000d4
+_080D2454: .4byte 0x85000400
+_080D2458: .4byte gBattleAnimBackgroundTilemap_ScaryFaceContest
+_080D245C:
+ ldr r0, _080D2478
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080D2480
+ ldr r0, _080D247C
+_080D246E:
+ ldr r1, [sp, 0x4]
+ bl LZDecompressVram
+ b _080D2488
+ .align 2, 0
+_080D2478: .4byte gUnknown_0202F7C9
+_080D247C: .4byte gBattleAnimBackgroundTilemap_ScaryFacePlayer
+_080D2480:
+ ldr r0, _080D24CC
+ ldr r1, [sp, 0x4]
+ bl LZDecompressVram
+_080D2488:
+ ldr r0, _080D24D0
+ ldr r1, [sp]
+ bl LZDecompressVram
+ ldr r0, _080D24D4
+ mov r1, sp
+ ldrb r1, [r1, 0x8]
+ lsls r1, 4
+ movs r2, 0x20
+ bl LoadCompressedPalette
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D24B6
+ mov r0, sp
+ ldrb r0, [r0, 0x8]
+ ldr r1, [sp, 0x4]
+ movs r2, 0
+ movs r3, 0
+ bl sub_80763FC
+_080D24B6:
+ ldr r0, _080D24D8
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _080D24DC
+ str r0, [r1]
+ add sp, 0x10
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D24CC: .4byte gBattleAnimBackgroundTilemap_ScaryFaceOpponent
+_080D24D0: .4byte gBattleAnimBackgroundImage_ScaryFace
+_080D24D4: .4byte gBattleAnimBackgroundPalette_ScaryFace
+_080D24D8: .4byte gTasks
+_080D24DC: .4byte sub_80D24E0
+ thumb_func_end sub_80D23B4
+
+ thumb_func_start sub_80D24E0
+sub_80D24E0: @ 80D24E0
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x10
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _080D2510
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ movs r2, 0x20
+ ldrsh r0, [r0, r2]
+ adds r2, r1, 0
+ cmp r0, 0x4
+ bls _080D2506
+ b _080D267C
+_080D2506:
+ lsls r0, 2
+ ldr r1, _080D2514
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080D2510: .4byte gTasks
+_080D2514: .4byte _080D2518
+ .align 2, 0
+_080D2518:
+ .4byte _080D252C
+ .4byte _080D2574
+ .4byte _080D2596
+ .4byte _080D25D8
+ .4byte _080D265C
+_080D252C:
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r3, r0, r2
+ ldrh r0, [r3, 0x1C]
+ adds r0, 0x1
+ movs r4, 0
+ strh r0, [r3, 0x1C]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x2
+ beq _080D2546
+ b _080D267C
+_080D2546:
+ strh r4, [r3, 0x1C]
+ ldrh r1, [r3, 0x1E]
+ adds r1, 0x1
+ strh r1, [r3, 0x1E]
+ ldr r2, _080D2570
+ movs r0, 0x10
+ subs r0, r1
+ lsls r0, 8
+ orrs r1, r0
+ strh r1, [r2]
+ movs r1, 0x1E
+ ldrsh r0, [r3, r1]
+ cmp r0, 0xE
+ beq _080D2564
+ b _080D267C
+_080D2564:
+ ldrh r0, [r3, 0x20]
+ adds r0, 0x1
+ strh r0, [r3, 0x20]
+ strh r4, [r3, 0x1E]
+ b _080D267C
+ .align 2, 0
+_080D2570: .4byte REG_BLDALPHA
+_080D2574:
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r1, r0, r2
+ ldrh r0, [r1, 0x1E]
+ adds r0, 0x1
+ strh r0, [r1, 0x1E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x15
+ bne _080D267C
+ movs r0, 0xE
+ strh r0, [r1, 0x1E]
+ ldrh r0, [r1, 0x20]
+ adds r0, 0x1
+ strh r0, [r1, 0x20]
+ b _080D267C
+_080D2596:
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r3, r0, r2
+ ldrh r0, [r3, 0x1C]
+ adds r0, 0x1
+ strh r0, [r3, 0x1C]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x2
+ bne _080D267C
+ movs r0, 0
+ strh r0, [r3, 0x1C]
+ ldrh r1, [r3, 0x1E]
+ subs r1, 0x1
+ strh r1, [r3, 0x1E]
+ ldr r2, _080D25D4
+ movs r0, 0x10
+ subs r0, r1
+ lsls r0, 8
+ orrs r1, r0
+ strh r1, [r2]
+ movs r2, 0x1E
+ ldrsh r1, [r3, r2]
+ cmp r1, 0
+ bne _080D267C
+ ldrh r0, [r3, 0x20]
+ adds r0, 0x1
+ strh r0, [r3, 0x20]
+ strh r1, [r3, 0x1E]
+ b _080D267C
+ .align 2, 0
+_080D25D4: .4byte REG_BLDALPHA
+_080D25D8:
+ mov r0, sp
+ bl sub_8078914
+ ldr r2, [sp]
+ movs r3, 0x80
+ lsls r3, 6
+ lsls r0, r5, 2
+ mov r10, r0
+ add r6, sp, 0xC
+ movs r7, 0
+ ldr r1, _080D268C
+ movs r4, 0x80
+ lsls r4, 5
+ mov r8, r6
+ ldr r0, _080D2690
+ mov r12, r0
+ movs r0, 0x85
+ lsls r0, 24
+ mov r9, r0
+_080D25FE:
+ str r7, [sp, 0xC]
+ mov r0, r8
+ str r0, [r1]
+ str r2, [r1, 0x4]
+ mov r0, r12
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ adds r2, r4
+ subs r3, r4
+ cmp r3, r4
+ bhi _080D25FE
+ str r7, [sp, 0xC]
+ str r6, [r1]
+ str r2, [r1, 0x4]
+ lsrs r0, r3, 2
+ mov r2, r9
+ orrs r0, r2
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ ldr r1, [sp, 0x4]
+ movs r0, 0
+ str r0, [sp, 0xC]
+ ldr r0, _080D268C
+ str r6, [r0]
+ str r1, [r0, 0x4]
+ ldr r1, _080D2694
+ str r1, [r0, 0x8]
+ ldr r0, [r0, 0x8]
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080D264C
+ ldr r2, _080D2698
+ ldrb r1, [r2]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+_080D264C:
+ ldr r0, _080D269C
+ mov r2, r10
+ adds r1, r2, r5
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x20]
+ adds r0, 0x1
+ strh r0, [r1, 0x20]
+_080D265C:
+ ldr r0, _080D26A0
+ movs r1, 0
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ ldr r2, _080D2698
+ ldrb r1, [r2]
+ movs r0, 0x4
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r2]
+ adds r0, r5, 0
+ bl move_anim_task_del
+_080D267C:
+ add sp, 0x10
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D268C: .4byte 0x040000d4
+_080D2690: .4byte 0x85000400
+_080D2694: .4byte 0x85000200
+_080D2698: .4byte REG_BG1CNT
+_080D269C: .4byte gTasks
+_080D26A0: .4byte REG_BLDCNT
+ thumb_func_end sub_80D24E0
+
+ thumb_func_start sub_80D26A4
+sub_80D26A4: @ 80D26A4
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldr r5, _080D26F8
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x20]
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x22]
+ adds r2, r4, 0
+ adds r2, 0x2C
+ ldrb r0, [r2]
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r1, _080D26FC
+ ldrh r0, [r1]
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r1, 0x2]
+ strh r0, [r4, 0x30]
+ ldrb r0, [r5]
+ bl sub_8079E90
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x3C]
+ ldr r1, _080D2700
+ str r1, [r4, 0x1C]
+ adds r0, r4, 0
+ bl _call_via_r1
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D26F8: .4byte gUnknown_0202F7C8
+_080D26FC: .4byte gUnknown_03004B00
+_080D2700: .4byte sub_80D2704
+ thumb_func_end sub_80D26A4
+
+ thumb_func_start sub_80D2704
+sub_80D2704: @ 80D2704
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x30]
+ subs r0, 0x40
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x7F
+ bhi _080D271A
+ ldrh r0, [r4, 0x3C]
+ adds r0, 0x1
+ b _080D271E
+_080D271A:
+ ldrh r0, [r4, 0x3C]
+ subs r0, 0x1
+_080D271E:
+ adds r1, r4, 0
+ adds r1, 0x43
+ strb r0, [r1]
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ ldrh r1, [r4, 0x32]
+ lsls r1, 16
+ asrs r1, 24
+ bl Sin
+ strh r0, [r4, 0x24]
+ movs r2, 0x30
+ ldrsh r0, [r4, r2]
+ ldrh r1, [r4, 0x34]
+ lsls r1, 16
+ asrs r1, 24
+ bl Cos
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x9
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x30]
+ movs r3, 0x38
+ ldrsh r2, [r4, r3]
+ cmp r2, 0
+ beq _080D2790
+ cmp r2, 0x1
+ bne _080D27C0
+ ldr r1, _080D2788
+ adds r0, r1, 0
+ ldrh r2, [r4, 0x32]
+ adds r0, r2
+ strh r0, [r4, 0x32]
+ ldr r3, _080D278C
+ adds r0, r3, 0
+ ldrh r1, [r4, 0x34]
+ adds r0, r1
+ strh r0, [r4, 0x34]
+ ldrh r0, [r4, 0x36]
+ adds r0, 0x1
+ strh r0, [r4, 0x36]
+ lsls r0, 16
+ asrs r0, 16
+ movs r2, 0x2E
+ ldrsh r1, [r4, r2]
+ cmp r0, r1
+ bne _080D27C0
+ movs r0, 0x2
+ strh r0, [r4, 0x38]
+ b _080D27D0
+ .align 2, 0
+_080D2788: .4byte 0xfffffc00
+_080D278C: .4byte 0xffffff00
+_080D2790:
+ movs r3, 0x80
+ lsls r3, 3
+ adds r0, r3, 0
+ ldrh r1, [r4, 0x32]
+ adds r0, r1
+ strh r0, [r4, 0x32]
+ movs r3, 0x80
+ lsls r3, 1
+ adds r0, r3, 0
+ ldrh r1, [r4, 0x34]
+ adds r0, r1
+ strh r0, [r4, 0x34]
+ ldrh r0, [r4, 0x36]
+ adds r0, 0x1
+ strh r0, [r4, 0x36]
+ lsls r0, 16
+ asrs r0, 16
+ movs r3, 0x2E
+ ldrsh r1, [r4, r3]
+ cmp r0, r1
+ bne _080D27C0
+ strh r2, [r4, 0x36]
+ movs r0, 0x1
+ strh r0, [r4, 0x38]
+_080D27C0:
+ ldr r0, _080D27D8
+ ldrh r1, [r0, 0xE]
+ ldr r0, _080D27DC
+ cmp r1, r0
+ bne _080D27D0
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080D27D0:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D27D8: .4byte gUnknown_03004B00
+_080D27DC: .4byte 0x0000ffff
+ thumb_func_end sub_80D2704
+
+ thumb_func_start sub_80D27E0
+sub_80D27E0: @ 80D27E0
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r4, _080D2828
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+ ldr r4, _080D282C
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ movs r1, 0xA
+ bl Sin
+ strh r0, [r5, 0x2E]
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ movs r1, 0x7
+ bl Cos
+ strh r0, [r5, 0x30]
+ ldr r0, _080D2830
+ str r0, [r5, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D2828: .4byte gUnknown_0202F7C8
+_080D282C: .4byte gUnknown_03004B00
+_080D2830: .4byte sub_80D2834
+ thumb_func_end sub_80D27E0
+
+ thumb_func_start sub_80D2834
+sub_80D2834: @ 80D2834
+ push {lr}
+ adds r2, r0, 0
+ ldrh r0, [r2, 0x2E]
+ ldrh r1, [r2, 0x24]
+ adds r0, r1
+ strh r0, [r2, 0x24]
+ ldrh r0, [r2, 0x30]
+ ldrh r3, [r2, 0x26]
+ adds r0, r3
+ strh r0, [r2, 0x26]
+ movs r1, 0x20
+ ldrsh r0, [r2, r1]
+ movs r3, 0x24
+ ldrsh r1, [r2, r3]
+ adds r0, r1
+ adds r0, 0x10
+ movs r1, 0x88
+ lsls r1, 1
+ cmp r0, r1
+ bhi _080D2872
+ movs r0, 0x22
+ ldrsh r1, [r2, r0]
+ movs r3, 0x26
+ ldrsh r0, [r2, r3]
+ adds r1, r0
+ cmp r1, 0xA0
+ bgt _080D2872
+ movs r0, 0x10
+ negs r0, r0
+ cmp r1, r0
+ bge _080D2878
+_080D2872:
+ adds r0, r2, 0
+ bl move_anim_8072740
+_080D2878:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D2834
+
+ thumb_func_start sub_80D287C
+sub_80D287C: @ 80D287C
+ push {lr}
+ adds r2, r0, 0
+ ldrh r0, [r2, 0x2E]
+ ldrh r1, [r2, 0x24]
+ adds r0, r1
+ strh r0, [r2, 0x24]
+ ldrh r0, [r2, 0x30]
+ ldrh r3, [r2, 0x26]
+ adds r0, r3
+ strh r0, [r2, 0x26]
+ ldrh r0, [r2, 0x34]
+ adds r1, r0, 0x1
+ strh r1, [r2, 0x34]
+ lsls r0, 16
+ asrs r0, 16
+ movs r3, 0x32
+ ldrsh r1, [r2, r3]
+ cmp r0, r1
+ blt _080D28A8
+ adds r0, r2, 0
+ bl move_anim_8072740
+_080D28A8:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D287C
+
+ thumb_func_start sub_80D28AC
+sub_80D28AC: @ 80D28AC
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r4, _080D28F8
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+ ldr r4, _080D28FC
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ movs r1, 0xA
+ bl Sin
+ strh r0, [r5, 0x2E]
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ movs r1, 0x7
+ bl Cos
+ strh r0, [r5, 0x30]
+ ldrh r0, [r4, 0x2]
+ strh r0, [r5, 0x32]
+ ldr r0, _080D2900
+ str r0, [r5, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D28F8: .4byte gUnknown_0202F7C8
+_080D28FC: .4byte gUnknown_03004B00
+_080D2900: .4byte sub_80D287C
+ thumb_func_end sub_80D28AC
+
+ thumb_func_start sub_80D2904
+sub_80D2904: @ 80D2904
+ push {lr}
+ adds r2, r0, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080D291A
+ adds r0, r2, 0
+ bl move_anim_8072740
+_080D291A:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D2904
+
+ thumb_func_start sub_80D2920
+sub_80D2920: @ 80D2920
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x1
+ bl sub_80787B0
+ ldr r0, _080D2934
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D2934: .4byte sub_80D2904
+ thumb_func_end sub_80D2920
+
+ thumb_func_start sub_80D2938
+sub_80D2938: @ 80D2938
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080D2956
+ ldr r0, _080D29C8
+ ldrh r1, [r0]
+ ldrh r2, [r4, 0x20]
+ adds r1, r2
+ strh r1, [r4, 0x20]
+ ldrh r0, [r0, 0x2]
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r4, 0x22]
+_080D2956:
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ movs r2, 0x2E
+ ldrsh r1, [r4, r2]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r5, r0, 1
+ movs r0, 0xFF
+ ands r5, r0
+ adds r0, r5, 0
+ movs r1, 0x50
+ bl Sin
+ lsls r0, 16
+ asrs r0, 24
+ strh r0, [r4, 0x24]
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x4F
+ bgt _080D299A
+ adds r0, r5, 0
+ movs r1, 0x50
+ bl Cos
+ movs r2, 0x2E
+ ldrsh r1, [r4, r2]
+ lsrs r2, r1, 31
+ adds r1, r2
+ asrs r1, 1
+ lsls r0, 16
+ asrs r0, 24
+ adds r1, r0
+ strh r1, [r4, 0x26]
+_080D299A:
+ movs r0, 0x2E
+ ldrsh r2, [r4, r0]
+ cmp r2, 0x5A
+ ble _080D29B8
+ ldrh r0, [r4, 0x32]
+ adds r0, 0x1
+ strh r0, [r4, 0x32]
+ movs r0, 0x32
+ ldrsh r1, [r4, r0]
+ lsrs r0, r1, 31
+ adds r1, r0
+ asrs r1, 1
+ ldrh r0, [r4, 0x24]
+ subs r0, r1
+ strh r0, [r4, 0x24]
+_080D29B8:
+ cmp r2, 0x64
+ ble _080D29C2
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080D29C2:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D29C8: .4byte gUnknown_03004B00
+ thumb_func_end sub_80D2938
+
+ thumb_func_start sub_80D29CC
+sub_80D29CC: @ 80D29CC
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x38]
+ adds r0, 0x1
+ strh r0, [r4, 0x38]
+ movs r1, 0x34
+ ldrsh r0, [r4, r1]
+ movs r1, 0x5
+ bl Sin
+ strh r0, [r4, 0x24]
+ movs r1, 0x38
+ ldrsh r0, [r4, r1]
+ lsrs r1, r0, 31
+ adds r0, r1
+ asrs r0, 1
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x34]
+ adds r0, 0x3
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x34]
+ movs r1, 0x38
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x14
+ ble _080D2A22
+ adds r1, r0, 0
+ lsrs r0, r1, 31
+ adds r0, r1, r0
+ asrs r0, 1
+ lsls r0, 1
+ subs r1, r0
+ adds r3, r4, 0
+ adds r3, 0x3E
+ movs r0, 0x1
+ ands r1, r0
+ lsls r1, 2
+ ldrb r2, [r3]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+_080D2A22:
+ movs r1, 0x38
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1E
+ ble _080D2A30
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080D2A30:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D29CC
+
+ thumb_func_start sub_80D2A38
+sub_80D2A38: @ 80D2A38
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldrh r2, [r4, 0x2E]
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080D2A5C
+ ldr r1, _080D2A58
+ ldrh r0, [r1]
+ strh r0, [r4, 0x30]
+ ldrh r0, [r1, 0x2]
+ strh r0, [r4, 0x32]
+ adds r0, r2, 0x1
+ strh r0, [r4, 0x2E]
+ b _080D2AB0
+ .align 2, 0
+_080D2A58: .4byte gUnknown_03004B00
+_080D2A5C:
+ ldrh r0, [r4, 0x30]
+ ldrh r2, [r4, 0x36]
+ adds r0, r2
+ movs r5, 0
+ strh r0, [r4, 0x36]
+ lsls r0, 16
+ asrs r0, 24
+ strh r0, [r4, 0x24]
+ movs r1, 0x34
+ ldrsh r0, [r4, r1]
+ movs r2, 0x32
+ ldrsh r1, [r4, r2]
+ bl Sin
+ adds r2, r0, 0
+ strh r2, [r4, 0x26]
+ ldrh r0, [r4, 0x34]
+ adds r0, 0x3
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x34]
+ cmp r0, 0x46
+ ble _080D2AB0
+ ldr r0, _080D2AB8
+ str r0, [r4, 0x1C]
+ ldrh r0, [r4, 0x24]
+ ldrh r1, [r4, 0x20]
+ adds r0, r1
+ strh r0, [r4, 0x20]
+ ldrh r1, [r4, 0x22]
+ adds r0, r2, r1
+ strh r0, [r4, 0x22]
+ strh r5, [r4, 0x24]
+ strh r5, [r4, 0x26]
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0xB4
+ bl __umodsi3
+ strh r0, [r4, 0x34]
+_080D2AB0:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D2AB8: .4byte sub_80D29CC
+ thumb_func_end sub_80D2A38
+
+ thumb_func_start sub_80D2ABC
+sub_80D2ABC: @ 80D2ABC
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x34
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080D2AF6
+ ldr r1, _080D2BB8
+ ldrh r0, [r1]
+ ldrh r2, [r4, 0x20]
+ adds r0, r2
+ strh r0, [r4, 0x20]
+ ldrh r0, [r1, 0x2]
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r4, 0x22]
+ adds r0, r4, 0
+ movs r1, 0
+ bl StartSpriteAnim
+ ldr r0, _080D2BBC
+ ldrb r0, [r0]
+ bl sub_8079E90
+ subs r0, 0x1
+ adds r1, r4, 0
+ adds r1, 0x43
+ strb r0, [r1]
+ movs r0, 0x1
+ strh r0, [r4, 0x32]
+_080D2AF6:
+ ldrh r0, [r4, 0x32]
+ ldrh r2, [r4, 0x2E]
+ adds r0, r2
+ strh r0, [r4, 0x2E]
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ lsls r1, r0, 2
+ adds r0, r1, 0
+ cmp r1, 0
+ bge _080D2B0C
+ adds r0, 0xFF
+_080D2B0C:
+ asrs r0, 8
+ lsls r0, 8
+ subs r0, r1, r0
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ cmp r0, 0
+ bge _080D2B1E
+ movs r0, 0
+ strh r0, [r4, 0x30]
+_080D2B1E:
+ movs r0, 0x30
+ ldrsh r2, [r4, r0]
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bge _080D2B2C
+ adds r0, 0x3
+_080D2B2C:
+ asrs r0, 2
+ movs r1, 0x1E
+ subs r1, r0
+ adds r0, r2, 0
+ bl Cos
+ strh r0, [r4, 0x24]
+ movs r0, 0x30
+ ldrsh r2, [r4, r0]
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bge _080D2B48
+ adds r0, 0x7
+_080D2B48:
+ asrs r0, 3
+ movs r1, 0xA
+ subs r1, r0
+ adds r0, r2, 0
+ bl Sin
+ strh r0, [r4, 0x26]
+ movs r2, 0x30
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x80
+ ble _080D2B6C
+ ldrh r1, [r4, 0x32]
+ movs r2, 0x32
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ ble _080D2B6C
+ ldr r0, _080D2BC0
+ strh r0, [r4, 0x32]
+_080D2B6C:
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080D2B80
+ movs r2, 0x32
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ bge _080D2B80
+ movs r0, 0x1
+ strh r0, [r4, 0x32]
+_080D2B80:
+ ldrh r0, [r4, 0x34]
+ adds r1, r0, 0x1
+ strh r1, [r4, 0x34]
+ subs r0, 0x9
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x46
+ bls _080D2BC4
+ movs r0, 0x2E
+ ldrsh r1, [r4, r0]
+ lsrs r0, r1, 31
+ adds r0, r1, r0
+ asrs r0, 1
+ lsls r0, 1
+ subs r1, r0
+ adds r3, r4, 0
+ adds r3, 0x3E
+ movs r0, 0x1
+ ands r1, r0
+ lsls r1, 2
+ ldrb r2, [r3]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+ b _080D2BD2
+ .align 2, 0
+_080D2BB8: .4byte gUnknown_03004B00
+_080D2BBC: .4byte gUnknown_0202F7C9
+_080D2BC0: .4byte 0x0000ffff
+_080D2BC4:
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r1, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+_080D2BD2:
+ movs r1, 0x34
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x5A
+ ble _080D2BE0
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080D2BE0:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D2ABC
+
+ thumb_func_start sub_80D2BE8
+sub_80D2BE8: @ 80D2BE8
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080D2C1C
+ ldr r1, _080D2C18
+ ldrh r0, [r1]
+ ldrh r2, [r4, 0x20]
+ adds r0, r2
+ strh r0, [r4, 0x20]
+ ldrh r0, [r1, 0x2]
+ ldrh r2, [r4, 0x22]
+ adds r0, r2
+ strh r0, [r4, 0x22]
+ ldrb r1, [r1, 0x4]
+ adds r0, r4, 0
+ bl StartSpriteAnim
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ b _080D2C30
+ .align 2, 0
+_080D2C18: .4byte gUnknown_03004B00
+_080D2C1C:
+ adds r0, r4, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080D2C30
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080D2C30:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D2BE8
+
+ thumb_func_start sub_80D2C38
+sub_80D2C38: @ 80D2C38
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r1, _080D2C50
+ movs r2, 0x4
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ bne _080D2C54
+ adds r0, r5, 0
+ bl move_anim_8072740
+ b _080D2CB8
+ .align 2, 0
+_080D2C50: .4byte gUnknown_03004B00
+_080D2C54:
+ movs r2, 0
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ bne _080D2C64
+ ldr r4, _080D2C60
+ b _080D2C66
+ .align 2, 0
+_080D2C60: .4byte gUnknown_0202F7C8
+_080D2C64:
+ ldr r4, _080D2C94
+_080D2C66:
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+ ldr r0, _080D2C98
+ movs r2, 0x2
+ ldrsh r1, [r0, r2]
+ adds r2, r0, 0
+ cmp r1, 0
+ bne _080D2C9C
+ ldrh r0, [r5, 0x20]
+ adds r0, 0x20
+ b _080D2CA0
+ .align 2, 0
+_080D2C94: .4byte gUnknown_0202F7C9
+_080D2C98: .4byte gUnknown_03004B00
+_080D2C9C:
+ ldrh r0, [r5, 0x20]
+ subs r0, 0x20
+_080D2CA0:
+ strh r0, [r5, 0x20]
+ ldrh r0, [r2, 0x4]
+ strh r0, [r5, 0x2E]
+ ldrh r1, [r2, 0x2]
+ strh r1, [r5, 0x30]
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r5, 0
+ bl StartSpriteAnim
+ ldr r0, _080D2CC0
+ str r0, [r5, 0x1C]
+_080D2CB8:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D2CC0: .4byte sub_80D2CC4
+ thumb_func_end sub_80D2C38
+
+ thumb_func_start sub_80D2CC4
+sub_80D2CC4: @ 80D2CC4
+ push {lr}
+ adds r2, r0, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080D2CF4
+ ldrh r0, [r2, 0x2E]
+ subs r0, 0x1
+ strh r0, [r2, 0x2E]
+ lsls r0, 16
+ cmp r0, 0
+ beq _080D2CEE
+ ldrh r1, [r2, 0x30]
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r2, 0
+ bl StartSpriteAnim
+ b _080D2CF4
+_080D2CEE:
+ adds r0, r2, 0
+ bl move_anim_8072740
+_080D2CF4:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D2CC4
+
+ thumb_func_start sub_80D2CF8
+sub_80D2CF8: @ 80D2CF8
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ ldr r0, _080D2D2C
+ ldrb r0, [r0]
+ bl obj_id_for_side_relative_to_move
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r4, r5, 2
+ adds r4, r5
+ lsls r4, 3
+ ldr r0, _080D2D30
+ adds r4, r0
+ ldr r2, _080D2D34
+ adds r0, r4, 0
+ bl sub_80798F4
+ ldr r0, _080D2D38
+ str r0, [r4]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D2D2C: .4byte gUnknown_03004B00
+_080D2D30: .4byte gTasks
+_080D2D34: .4byte gUnknown_083D7CA8
+_080D2D38: .4byte sub_80D2D3C
+ thumb_func_end sub_80D2CF8
+
+ thumb_func_start sub_80D2D3C
+sub_80D2D3C: @ 80D2D3C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ ldr r1, _080D2D64
+ adds r0, r1
+ bl sub_807992C
+ lsls r0, 24
+ cmp r0, 0
+ bne _080D2D5C
+ adds r0, r4, 0
+ bl move_anim_task_del
+_080D2D5C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D2D64: .4byte gTasks
+ thumb_func_end sub_80D2D3C
+
+ thumb_func_start sub_80D2D68
+sub_80D2D68: @ 80D2D68
+ push {r4-r7,lr}
+ adds r5, r0, 0
+ ldr r0, _080D2D7C
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080D2D84
+ ldr r0, _080D2D80
+ b _080D2D86
+ .align 2, 0
+_080D2D7C: .4byte gUnknown_03004B00
+_080D2D80: .4byte gUnknown_0202F7C8
+_080D2D84:
+ ldr r0, _080D2E1C
+_080D2D86:
+ ldrb r6, [r0]
+ adds r0, r6, 0
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080D2DA0
+ ldr r1, _080D2E20
+ movs r2, 0x2
+ ldrsh r0, [r1, r2]
+ negs r0, r0
+ strh r0, [r1, 0x2]
+_080D2DA0:
+ adds r0, r6, 0
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ ldr r7, _080D2E20
+ lsrs r0, 24
+ ldrh r3, [r7, 0x2]
+ adds r0, r3
+ movs r4, 0
+ strh r0, [r5, 0x20]
+ adds r0, r6, 0
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r7, 0x4]
+ adds r0, r1
+ strh r0, [r5, 0x22]
+ strh r4, [r5, 0x2E]
+ ldrh r1, [r5, 0x20]
+ lsls r1, 3
+ strh r1, [r5, 0x30]
+ lsls r0, 3
+ strh r0, [r5, 0x32]
+ movs r2, 0x2
+ ldrsh r0, [r7, r2]
+ lsls r0, 3
+ cmp r0, 0
+ bge _080D2DE0
+ adds r0, 0x7
+_080D2DE0:
+ asrs r0, 3
+ strh r0, [r5, 0x34]
+ movs r3, 0x4
+ ldrsh r0, [r7, r3]
+ lsls r0, 3
+ cmp r0, 0
+ bge _080D2DF0
+ adds r0, 0x7
+_080D2DF0:
+ asrs r0, 3
+ strh r0, [r5, 0x36]
+ ldrh r2, [r5, 0x4]
+ lsls r1, r2, 22
+ lsrs r1, 22
+ movs r3, 0x6
+ ldrsh r0, [r7, r3]
+ lsls r0, 4
+ adds r1, r0
+ ldr r3, _080D2E24
+ adds r0, r3, 0
+ ands r1, r0
+ ldr r0, _080D2E28
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r5, 0x4]
+ ldr r0, _080D2E2C
+ str r0, [r5, 0x1C]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D2E1C: .4byte gUnknown_0202F7C9
+_080D2E20: .4byte gUnknown_03004B00
+_080D2E24: .4byte 0x000003ff
+_080D2E28: .4byte 0xfffffc00
+_080D2E2C: .4byte sub_80D2E30
+ thumb_func_end sub_80D2D68
+
+ thumb_func_start sub_80D2E30
+sub_80D2E30: @ 80D2E30
+ push {lr}
+ adds r2, r0, 0
+ ldrh r0, [r2, 0x34]
+ ldrh r1, [r2, 0x30]
+ adds r0, r1
+ strh r0, [r2, 0x30]
+ ldrh r1, [r2, 0x36]
+ ldrh r3, [r2, 0x32]
+ adds r1, r3
+ strh r1, [r2, 0x32]
+ lsls r0, 16
+ asrs r0, 19
+ strh r0, [r2, 0x20]
+ lsls r1, 16
+ asrs r1, 19
+ strh r1, [r2, 0x22]
+ ldrh r0, [r2, 0x2E]
+ adds r0, 0x1
+ strh r0, [r2, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x10
+ ble _080D2E64
+ adds r0, r2, 0
+ bl move_anim_8072740
+_080D2E64:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D2E30
+
+ thumb_func_start sub_80D2E68
+sub_80D2E68: @ 80D2E68
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080D2E8A
+ ldr r0, _080D2EC4
+ ldrh r1, [r0]
+ movs r0, 0x78
+ subs r0, r1
+ strh r0, [r4, 0x30]
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+_080D2E8A:
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ movs r2, 0x30
+ ldrsh r1, [r4, r2]
+ cmp r0, r1
+ bne _080D2EA8
+ ldrb r0, [r4, 0x5]
+ lsrs r0, 4
+ adds r0, 0x10
+ movs r1, 0
+ bl sub_8079108
+_080D2EA8:
+ movs r0, 0x2E
+ ldrsh r1, [r4, r0]
+ movs r2, 0x30
+ ldrsh r0, [r4, r2]
+ adds r0, 0x50
+ cmp r1, r0
+ bne _080D2EBC
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080D2EBC:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D2EC4: .4byte gUnknown_03004B00
+ thumb_func_end sub_80D2E68
+
+ thumb_func_start sub_80D2EC8
+sub_80D2EC8: @ 80D2EC8
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r6, r1]
+ cmp r0, 0
+ bne _080D2EF6
+ movs r5, 0x78
+ strh r5, [r6, 0x20]
+ ldr r4, _080D2F78
+ movs r2, 0
+ ldrsh r0, [r4, r2]
+ lsrs r1, r0, 31
+ adds r0, r1
+ asrs r0, 1
+ subs r0, 0xF
+ strh r0, [r6, 0x22]
+ ldrb r1, [r4, 0x2]
+ adds r0, r6, 0
+ bl StartSpriteAnim
+ strh r5, [r6, 0x38]
+ ldrh r0, [r4, 0x4]
+ strh r0, [r6, 0x34]
+_080D2EF6:
+ ldrh r0, [r6, 0x2E]
+ adds r0, 0x1
+ movs r5, 0
+ strh r0, [r6, 0x2E]
+ movs r1, 0x2E
+ ldrsh r0, [r6, r1]
+ lsrs r1, r0, 31
+ adds r0, r1
+ asrs r0, 1
+ strh r0, [r6, 0x30]
+ movs r2, 0x2E
+ ldrsh r0, [r6, r2]
+ lsls r4, r0, 1
+ adds r4, r0
+ ldrh r0, [r6, 0x34]
+ adds r4, r0
+ movs r2, 0xFF
+ ldrh r0, [r6, 0x3A]
+ adds r0, 0xA
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r6, 0x3A]
+ ands r4, r2
+ adds r0, r4, 0
+ movs r1, 0x64
+ bl Cos
+ strh r0, [r6, 0x24]
+ adds r0, r4, 0
+ movs r1, 0xA
+ bl Sin
+ adds r4, r0, 0
+ movs r1, 0x3A
+ ldrsh r0, [r6, r1]
+ movs r1, 0x4
+ bl Cos
+ ldrh r2, [r6, 0x30]
+ adds r4, r2
+ adds r0, r4
+ strh r0, [r6, 0x26]
+ movs r0, 0x2E
+ ldrsh r1, [r6, r0]
+ movs r2, 0x38
+ ldrsh r0, [r6, r2]
+ cmp r1, r0
+ ble _080D2F72
+ ldr r0, _080D2F7C
+ str r0, [r6, 0x1C]
+ strh r5, [r6, 0x2E]
+ adds r0, r6, 0
+ bl oamt_add_pos2_onto_pos1
+ movs r0, 0x5
+ strh r0, [r6, 0x32]
+ strh r5, [r6, 0x36]
+ strh r5, [r6, 0x34]
+ adds r0, r6, 0
+ movs r1, 0x1
+ bl StartSpriteAffineAnim
+_080D2F72:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D2F78: .4byte gUnknown_03004B00
+_080D2F7C: .4byte sub_80D2F80
+ thumb_func_end sub_80D2EC8
+
+ thumb_func_start sub_80D2F80
+sub_80D2F80: @ 80D2F80
+ push {lr}
+ adds r1, r0, 0
+ ldrh r0, [r1, 0x2E]
+ adds r0, 0x1
+ strh r0, [r1, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xA
+ ble _080D2F9A
+ movs r0, 0
+ strh r0, [r1, 0x2E]
+ ldr r0, _080D2FA0
+ str r0, [r1, 0x1C]
+_080D2F9A:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D2FA0: .4byte sub_80D2FA4
+ thumb_func_end sub_80D2F80
+
+ thumb_func_start sub_80D2FA4
+sub_80D2FA4: @ 80D2FA4
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r1, [r4, 0x32]
+ ldrh r2, [r4, 0x34]
+ adds r0, r1, r2
+ strh r0, [r4, 0x34]
+ strh r0, [r4, 0x26]
+ adds r1, 0x1
+ strh r1, [r4, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x30
+ ble _080D2FCE
+ lsls r0, r1, 16
+ cmp r0, 0
+ ble _080D2FCE
+ ldrh r0, [r4, 0x36]
+ subs r1, r0, 0x5
+ strh r1, [r4, 0x32]
+ adds r0, 0x1
+ strh r0, [r4, 0x36]
+_080D2FCE:
+ movs r1, 0x36
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x3
+ ble _080D3000
+ movs r2, 0x32
+ ldrsh r1, [r4, r2]
+ lsrs r0, r1, 31
+ adds r0, r1, r0
+ asrs r0, 1
+ lsls r0, 1
+ subs r1, r0
+ adds r3, r4, 0
+ adds r3, 0x3E
+ movs r0, 0x1
+ ands r1, r0
+ lsls r1, 2
+ ldrb r2, [r3]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080D3000:
+ movs r1, 0x36
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x4
+ bne _080D300E
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080D300E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D2FA4
+
+ thumb_func_start sub_80D3014
+sub_80D3014: @ 80D3014
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r0, _080D3058
+ ldrh r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080D3060
+ ldr r4, _080D305C
+ ldrb r1, [r4]
+ movs r0, 0x2
+ eors r0, r1
+ bl b_side_obj__get_some_boolean
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D3060
+ ldrb r0, [r4]
+ adds r2, r5, 0
+ adds r2, 0x20
+ adds r3, r5, 0
+ adds r3, 0x22
+ movs r1, 0
+ bl sub_807A3FC
+ ldrh r0, [r5, 0x22]
+ adds r0, 0x28
+ strh r0, [r5, 0x22]
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl StartSpriteAffineAnim
+ b _080D3080
+ .align 2, 0
+_080D3058: .4byte gUnknown_020239F8
+_080D305C: .4byte gUnknown_0202F7C8
+_080D3060:
+ ldr r4, _080D30A0
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, 0x28
+ strh r0, [r5, 0x22]
+_080D3080:
+ movs r0, 0xD
+ strh r0, [r5, 0x2E]
+ ldrh r0, [r5, 0x20]
+ strh r0, [r5, 0x32]
+ ldrh r0, [r5, 0x22]
+ subs r0, 0x48
+ strh r0, [r5, 0x36]
+ ldr r0, _080D30A4
+ str r0, [r5, 0x1C]
+ ldr r1, _080D30A8
+ adds r0, r5, 0
+ bl oamt_set_x3A_32
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D30A0: .4byte gUnknown_0202F7C8
+_080D30A4: .4byte sub_8078B34
+_080D30A8: .4byte move_anim_8072740
+ thumb_func_end sub_80D3014
+
+ thumb_func_start sub_80D30AC
+sub_80D30AC: @ 80D30AC
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r3, _080D30C8
+ ldr r1, _080D30CC
+ ldr r1, [r1]
+ ldrb r2, [r1, 0x10]
+ movs r1, 0x1
+ ands r1, r2
+ strh r1, [r3, 0xE]
+ bl move_anim_task_del
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D30C8: .4byte gUnknown_03004B00
+_080D30CC: .4byte gUnknown_0202F7B4
+ thumb_func_end sub_80D30AC
+
+ thumb_func_start update_fury_cutter_counter_copy
+update_fury_cutter_counter_copy: @ 80D30D0
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080D30E8
+ ldr r1, _080D30EC
+ ldr r1, [r1]
+ ldrb r1, [r1, 0x10]
+ strh r1, [r2, 0xE]
+ bl move_anim_task_del
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D30E8: .4byte gUnknown_03004B00
+_080D30EC: .4byte gUnknown_0202F7B4
+ thumb_func_end update_fury_cutter_counter_copy
+
+ thumb_func_start sub_80D30F0
+sub_80D30F0: @ 80D30F0
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r6, r0, 0
+ ldr r1, _080D3178
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r5, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ bne _080D3118
+ ldr r1, _080D317C
+ ldrh r0, [r1]
+ strh r0, [r5, 0xA]
+ ldrh r0, [r1, 0x2]
+ strh r0, [r5, 0xC]
+ ldrh r0, [r1, 0x4]
+ strh r0, [r5, 0xE]
+_080D3118:
+ ldrh r0, [r5, 0x8]
+ adds r0, 0x1
+ strh r0, [r5, 0x8]
+ movs r2, 0x8
+ ldrsh r0, [r5, r2]
+ movs r2, 0xC
+ ldrsh r1, [r5, r2]
+ bl __modsi3
+ cmp r0, 0x1
+ bne _080D3160
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0xF0
+ bl __umodsi3
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x50
+ bl __umodsi3
+ adds r2, r0, 0
+ lsls r2, 24
+ lsrs r2, 24
+ ldr r0, _080D3180
+ adds r1, r4, 0
+ movs r3, 0x4
+ bl CreateSprite
+_080D3160:
+ movs r0, 0x8
+ ldrsh r1, [r5, r0]
+ movs r2, 0xE
+ ldrsh r0, [r5, r2]
+ cmp r1, r0
+ bne _080D3172
+ adds r0, r6, 0
+ bl move_anim_task_del
+_080D3172:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D3178: .4byte gTasks
+_080D317C: .4byte gUnknown_03004B00
+_080D3180: .4byte gSpriteTemplate_83D9130
+ thumb_func_end sub_80D30F0
+
+ thumb_func_start sub_80D3184
+sub_80D3184: @ 80D3184
+ ldr r1, _080D318C
+ str r1, [r0, 0x1C]
+ bx lr
+ .align 2, 0
+_080D318C: .4byte sub_80D3190
+ thumb_func_end sub_80D3184
+
+ thumb_func_start sub_80D3190
+sub_80D3190: @ 80D3190
+ 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, 0xD
+ bgt _080D31AE
+ ldrh r0, [r2, 0x24]
+ adds r0, 0x1
+ strh r0, [r2, 0x24]
+ ldrh r0, [r2, 0x26]
+ adds r0, 0x4
+ strh r0, [r2, 0x26]
+_080D31AE:
+ adds r0, r2, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080D31C2
+ adds r0, r2, 0
+ bl DestroySprite
+_080D31C2:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D3190
+
+ thumb_func_start sub_80D31C8
+sub_80D31C8: @ 80D31C8
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ ldr r5, _080D31F0
+ ldrb r0, [r5]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D31F8
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r4, _080D31F4
+ ldrh r1, [r4]
+ subs r0, r1
+ b _080D320A
+ .align 2, 0
+_080D31F0: .4byte gUnknown_0202F7C8
+_080D31F4: .4byte gUnknown_03004B00
+_080D31F8:
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ ldr r4, _080D32D0
+ lsrs r0, 24
+ ldrh r1, [r4]
+ adds r0, r1
+_080D320A:
+ strh r0, [r6, 0x20]
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r4, [r4, 0x2]
+ adds r0, r4
+ strh r0, [r6, 0x22]
+ adds r2, r6, 0
+ adds r2, 0x2C
+ ldrb r0, [r2]
+ movs r1, 0x40
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r0, _080D32D4
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D3240
+ ldr r1, _080D32D0
+ ldrh r0, [r1, 0x4]
+ negs r0, r0
+ strh r0, [r1, 0x4]
+_080D3240:
+ ldr r5, _080D32D0
+ ldrh r0, [r5, 0xC]
+ strh r0, [r6, 0x2E]
+ ldrh r0, [r6, 0x20]
+ strh r0, [r6, 0x30]
+ ldr r4, _080D32D8
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r6, 0x32]
+ ldrh r0, [r6, 0x22]
+ strh r0, [r6, 0x34]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r6, 0x36]
+ adds r0, r6, 0
+ bl obj_translate_based_on_private_1_2_3_4
+ ldr r0, _080D32DC
+ bl object_new_hidden_with_callback
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ strh r4, [r6, 0x38]
+ ldrb r0, [r5, 0x8]
+ movs r2, 0x4
+ ldrsh r1, [r5, r2]
+ bl Sin
+ ldrh r1, [r6, 0x20]
+ subs r1, r0
+ strh r1, [r6, 0x20]
+ ldrb r0, [r5, 0x8]
+ movs r2, 0x6
+ ldrsh r1, [r5, r2]
+ bl Cos
+ ldrh r1, [r6, 0x22]
+ subs r1, r0
+ strh r1, [r6, 0x22]
+ ldr r0, _080D32E0
+ lsls r1, r4, 4
+ adds r1, r4
+ lsls r1, 2
+ adds r1, r0
+ ldrh r0, [r5, 0x4]
+ strh r0, [r1, 0x2E]
+ ldrh r0, [r5, 0x6]
+ strh r0, [r1, 0x30]
+ ldrh r0, [r5, 0xA]
+ strh r0, [r1, 0x32]
+ ldrb r0, [r5, 0x8]
+ lsls r0, 8
+ strh r0, [r1, 0x34]
+ ldrh r0, [r5, 0xC]
+ strh r0, [r1, 0x36]
+ ldr r1, _080D32E4
+ str r1, [r6, 0x1C]
+ adds r0, r6, 0
+ bl _call_via_r1
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D32D0: .4byte gUnknown_03004B00
+_080D32D4: .4byte gUnknown_0202F7C8
+_080D32D8: .4byte gUnknown_0202F7C9
+_080D32DC: .4byte SpriteCallbackDummy
+_080D32E0: .4byte gSprites
+_080D32E4: .4byte sub_80D32E8
+ thumb_func_end sub_80D31C8
+
+ thumb_func_start sub_80D32E8
+sub_80D32E8: @ 80D32E8
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ adds r5, r0, 0
+ ldrh r1, [r5, 0x38]
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r2, _080D3350
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r7, r0, r2
+ ldrh r4, [r7, 0x36]
+ lsls r4, 24
+ lsrs r4, 24
+ ldrh r0, [r7, 0x34]
+ mov r8, r0
+ movs r0, 0x1
+ strh r0, [r5, 0x2E]
+ adds r0, r5, 0
+ bl sub_8078B5C
+ mov r1, r8
+ lsrs r6, r1, 8
+ movs r0, 0x2E
+ ldrsh r1, [r7, r0]
+ adds r0, r6, 0
+ bl Sin
+ ldrh r1, [r5, 0x24]
+ adds r0, r1
+ strh r0, [r5, 0x24]
+ movs r0, 0x30
+ ldrsh r1, [r7, r0]
+ adds r0, r6, 0
+ bl Cos
+ ldrh r1, [r5, 0x26]
+ adds r0, r1
+ strh r0, [r5, 0x26]
+ ldrh r0, [r7, 0x32]
+ mov r1, r8
+ adds r1, r0
+ strh r1, [r7, 0x34]
+ subs r4, 0x1
+ lsls r4, 24
+ lsrs r4, 24
+ cmp r4, 0
+ beq _080D3354
+ strh r4, [r7, 0x36]
+ b _080D335E
+ .align 2, 0
+_080D3350: .4byte gSprites
+_080D3354:
+ ldr r0, _080D336C
+ str r0, [r5, 0x1C]
+ adds r0, r7, 0
+ bl DestroySprite
+_080D335E:
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D336C: .4byte sub_80D3370
+ thumb_func_end sub_80D32E8
+
+ thumb_func_start sub_80D3370
+sub_80D3370: @ 80D3370
+ push {lr}
+ adds r3, r0, 0
+ adds r3, 0x2C
+ ldrb r2, [r3]
+ movs r1, 0x41
+ negs r1, r1
+ ands r1, r2
+ strb r1, [r3]
+ ldr r1, _080D3390
+ str r1, [r0, 0x1C]
+ ldr r1, _080D3394
+ bl oamt_set_x3A_32
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D3390: .4byte sub_8078600
+_080D3394: .4byte sub_80D3398
+ thumb_func_end sub_80D3370
+
+ thumb_func_start sub_80D3398
+sub_80D3398: @ 80D3398
+ push {lr}
+ movs r1, 0xA
+ strh r1, [r0, 0x2E]
+ ldr r1, _080D33AC
+ str r1, [r0, 0x1C]
+ ldr r1, _080D33B0
+ bl oamt_set_x3A_32
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D33AC: .4byte sub_80782D8
+_080D33B0: .4byte move_anim_8074EE0
+ thumb_func_end sub_80D3398
+
+ thumb_func_start sub_80D33B4
+sub_80D33B4: @ 80D33B4
+ push {r4-r7,lr}
+ adds r5, r0, 0
+ movs r1, 0x1
+ bl sub_80787B0
+ ldr r0, _080D33DC
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D33E4
+ ldr r1, _080D33E0
+ ldrh r0, [r1, 0x4]
+ negs r0, r0
+ lsls r0, 16
+ lsrs r6, r0, 16
+ adds r7, r1, 0
+ b _080D33EA
+ .align 2, 0
+_080D33DC: .4byte gUnknown_0202F7C8
+_080D33E0: .4byte gUnknown_03004B00
+_080D33E4:
+ ldr r0, _080D3440
+ ldrh r6, [r0, 0x4]
+ adds r7, r0, 0
+_080D33EA:
+ ldrh r0, [r7, 0x8]
+ strh r0, [r5, 0x2E]
+ ldrh r0, [r5, 0x20]
+ strh r0, [r5, 0x30]
+ ldr r4, _080D3444
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, r6
+ strh r0, [r5, 0x32]
+ ldrh r0, [r5, 0x22]
+ strh r0, [r5, 0x34]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r7, [r7, 0x6]
+ adds r0, r7
+ strh r0, [r5, 0x36]
+ adds r0, r5, 0
+ bl obj_translate_based_on_private_1_2_3_4
+ ldr r0, _080D3448
+ str r0, [r5, 0x1C]
+ adds r2, r5, 0
+ adds r2, 0x2C
+ ldrb r0, [r2]
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r1, [r5, 0x1C]
+ adds r0, r5, 0
+ bl _call_via_r1
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D3440: .4byte gUnknown_03004B00
+_080D3444: .4byte gUnknown_0202F7C9
+_080D3448: .4byte sub_80D344C
+ thumb_func_end sub_80D33B4
+
+ thumb_func_start sub_80D344C
+sub_80D344C: @ 80D344C
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _080D3488
+ ldrh r1, [r0, 0xE]
+ ldr r0, _080D348C
+ cmp r1, r0
+ bne _080D346E
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl StartSpriteAnim
+ adds r2, r4, 0
+ adds r2, 0x2C
+ ldrb r1, [r2]
+ movs r0, 0x7F
+ ands r0, r1
+ strb r0, [r2]
+_080D346E:
+ adds r0, r4, 0
+ bl sub_8078B5C
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D3480
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080D3480:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D3488: .4byte gUnknown_03004B00
+_080D348C: .4byte 0x0000ffff
+ thumb_func_end sub_80D344C
+
+ thumb_func_start sub_80D3490
+sub_80D3490: @ 80D3490
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _080D34C4
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ adds r4, r1
+ ldr r0, _080D34C8
+ ldrh r0, [r0]
+ strh r0, [r4, 0x8]
+ ldr r0, _080D34CC
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r0, 20
+ movs r1, 0x80
+ lsls r1, 1
+ adds r0, r1
+ strh r0, [r4, 0xC]
+ ldr r0, _080D34D0
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D34C4: .4byte gTasks
+_080D34C8: .4byte gUnknown_03004B00
+_080D34CC: .4byte 0x0000279c
+_080D34D0: .4byte sub_80D34D4
+ thumb_func_end sub_80D3490
+
+ thumb_func_start sub_80D34D4
+sub_80D34D4: @ 80D34D4
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r1, _080D354C
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r2, r0, r1
+ ldrh r0, [r2, 0x1C]
+ adds r0, 0x1
+ strh r0, [r2, 0x1C]
+ lsls r0, 16
+ asrs r0, 16
+ mov r12, r1
+ cmp r0, 0x3
+ bne _080D3526
+ movs r0, 0
+ strh r0, [r2, 0x1C]
+ ldrh r0, [r2, 0xC]
+ adds r0, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ ldr r1, _080D3550
+ lsls r0, r5, 1
+ adds r0, r1
+ ldrh r6, [r0]
+ adds r7, r1, 0
+ adds r3, r0, 0x2
+ movs r1, 0x6
+ adds r2, r0, 0
+_080D3510:
+ ldrh r0, [r3]
+ strh r0, [r2]
+ adds r3, 0x2
+ adds r2, 0x2
+ subs r1, 0x1
+ cmp r1, 0
+ bge _080D3510
+ adds r0, r5, 0x7
+ lsls r0, 1
+ adds r0, r7
+ strh r6, [r0]
+_080D3526:
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ add r0, r12
+ ldrh r1, [r0, 0x1E]
+ adds r1, 0x1
+ strh r1, [r0, 0x1E]
+ lsls r1, 16
+ asrs r1, 16
+ movs r2, 0x8
+ ldrsh r0, [r0, r2]
+ cmp r1, r0
+ bne _080D3546
+ adds r0, r4, 0
+ bl move_anim_task_del
+_080D3546:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D354C: .4byte gTasks
+_080D3550: .4byte gPlttBufferFaded
+ thumb_func_end sub_80D34D4
+
+ thumb_func_start sub_80D3554
+sub_80D3554: @ 80D3554
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ movs r1, 0x1
+ bl sub_80787B0
+ movs r0, 0x1E
+ strh r0, [r5, 0x2E]
+ ldrh r0, [r5, 0x20]
+ strh r0, [r5, 0x30]
+ ldr r4, _080D35BC
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x32]
+ ldrh r0, [r5, 0x22]
+ strh r0, [r5, 0x34]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x36]
+ adds r0, r5, 0
+ bl obj_translate_based_on_private_1_2_3_4
+ movs r0, 0x2E
+ ldrsh r1, [r5, r0]
+ movs r0, 0xD2
+ lsls r0, 8
+ bl __divsi3
+ strh r0, [r5, 0x38]
+ ldr r0, _080D35C0
+ ldrh r2, [r0, 0x6]
+ strh r2, [r5, 0x3C]
+ ldrh r1, [r0, 0xE]
+ movs r3, 0xE
+ ldrsh r0, [r0, r3]
+ cmp r0, 0x7F
+ ble _080D35C4
+ adds r0, r1, 0
+ subs r0, 0x7F
+ lsls r0, 8
+ strh r0, [r5, 0x3A]
+ negs r0, r2
+ strh r0, [r5, 0x3C]
+ b _080D35C8
+ .align 2, 0
+_080D35BC: .4byte gUnknown_0202F7C9
+_080D35C0: .4byte gUnknown_03004B00
+_080D35C4:
+ lsls r0, r1, 8
+ strh r0, [r5, 0x3A]
+_080D35C8:
+ ldr r1, _080D35D8
+ str r1, [r5, 0x1C]
+ adds r0, r5, 0
+ bl _call_via_r1
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D35D8: .4byte sub_80D35DC
+ thumb_func_end sub_80D3554
+
+ thumb_func_start sub_80D35DC
+sub_80D35DC: @ 80D35DC
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_8078B5C
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D35F0
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080D35F0:
+ ldrh r0, [r4, 0x3A]
+ lsls r0, 16
+ asrs r0, 24
+ movs r2, 0x3C
+ ldrsh r1, [r4, r2]
+ bl Sin
+ ldrh r1, [r4, 0x26]
+ adds r0, r1
+ strh r0, [r4, 0x26]
+ movs r2, 0x3A
+ ldrsh r0, [r4, r2]
+ movs r2, 0x38
+ ldrsh r1, [r4, r2]
+ adds r0, r1
+ asrs r0, 8
+ cmp r0, 0x7F
+ ble _080D3620
+ movs r0, 0
+ strh r0, [r4, 0x3A]
+ ldrh r0, [r4, 0x3C]
+ negs r0, r0
+ strh r0, [r4, 0x3C]
+ b _080D3628
+_080D3620:
+ ldrh r0, [r4, 0x38]
+ ldrh r1, [r4, 0x3A]
+ adds r0, r1
+ strh r0, [r4, 0x3A]
+_080D3628:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D35DC
+
+ thumb_func_start sub_80D3630
+sub_80D3630: @ 80D3630
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080D3650
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldr r3, _080D3654
+ ldrh r0, [r3]
+ movs r2, 0
+ strh r0, [r1, 0x8]
+ strh r2, [r3, 0xE]
+ ldr r0, _080D3658
+ str r0, [r1]
+ bx lr
+ .align 2, 0
+_080D3650: .4byte gTasks
+_080D3654: .4byte gUnknown_03004B00
+_080D3658: .4byte sub_80D365C
+ thumb_func_end sub_80D3630
+
+ thumb_func_start sub_80D365C
+sub_80D365C: @ 80D365C
+ push {lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldr r2, _080D3690
+ ldrh r0, [r2, 0xE]
+ adds r0, 0x3
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r2, 0xE]
+ ldr r1, _080D3694
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r0, 3
+ adds r0, r1
+ ldrh r1, [r0, 0x8]
+ subs r1, 0x1
+ strh r1, [r0, 0x8]
+ lsls r1, 16
+ cmp r1, 0
+ bne _080D368A
+ adds r0, r3, 0
+ bl move_anim_task_del
+_080D368A:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D3690: .4byte gUnknown_03004B00
+_080D3694: .4byte gTasks
+ thumb_func_end sub_80D365C
+
+ thumb_func_start sub_80D3698
+sub_80D3698: @ 80D3698
+ push {r4-r7,lr}
+ adds r4, r0, 0
+ ldr r7, _080D36E4
+ ldrb r0, [r7]
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x20]
+ ldrb r0, [r7]
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x22]
+ ldr r6, _080D36E8
+ strh r6, [r4, 0x26]
+ ldrb r0, [r7]
+ bl sub_8079E90
+ lsls r0, 24
+ lsrs r5, r0, 24
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080D36F2
+ ldrb r0, [r7]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _080D36EC
+ movs r0, 0xA
+ strh r0, [r4, 0x24]
+ b _080D36F4
+ .align 2, 0
+_080D36E4: .4byte gUnknown_0202F7C8
+_080D36E8: .4byte 0x0000fff6
+_080D36EC:
+ strh r6, [r4, 0x24]
+ subs r0, r5, 0x2
+ b _080D36F6
+_080D36F2:
+ strh r6, [r4, 0x24]
+_080D36F4:
+ adds r0, r5, 0x2
+_080D36F6:
+ adds r1, r4, 0
+ adds r1, 0x43
+ strb r0, [r1]
+ ldr r0, _080D3708
+ str r0, [r4, 0x1C]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D3708: .4byte sub_80D370C
+ thumb_func_end sub_80D3698
+
+ thumb_func_start sub_80D370C
+sub_80D370C: @ 80D370C
+ push {lr}
+ adds r2, r0, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _080D3722
+ adds r0, r2, 0
+ bl move_anim_8072740
+_080D3722:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D370C
+
+ thumb_func_start sub_80D3728
+sub_80D3728: @ 80D3728
+ push {r4-r7,lr}
+ adds r6, r0, 0
+ ldr r5, _080D37E8
+ ldrb r0, [r5]
+ bl battle_side_get_owner
+ adds r4, r0, 0
+ ldr r0, _080D37EC
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r4, 24
+ lsls r0, 24
+ cmp r4, r0
+ bne _080D3772
+ ldr r4, _080D37F0
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ negs r0, r0
+ strh r0, [r4]
+ ldrb r0, [r5]
+ bl battle_get_per_side_status
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D376A
+ ldrb r0, [r5]
+ bl battle_get_per_side_status
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080D3772
+_080D376A:
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ negs r0, r0
+ strh r0, [r4]
+_080D3772:
+ ldr r5, _080D37F0
+ movs r1, 0xA
+ ldrsh r0, [r5, r1]
+ movs r1, 0xFF
+ lsls r1, 8
+ ands r0, r1
+ movs r1, 0
+ cmp r0, 0
+ bne _080D3786
+ movs r1, 0x1
+_080D3786:
+ ldrb r0, [r5, 0xA]
+ movs r7, 0x1
+ cmp r0, 0
+ bne _080D3790
+ movs r7, 0x3
+_080D3790:
+ adds r0, r6, 0
+ bl sub_80787B0
+ ldr r0, _080D37E8
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D37AA
+ ldrh r0, [r5, 0x4]
+ negs r0, r0
+ strh r0, [r5, 0x4]
+_080D37AA:
+ ldrh r0, [r5, 0x8]
+ strh r0, [r6, 0x2E]
+ ldr r4, _080D37EC
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r5, 0x4]
+ adds r0, r1
+ strh r0, [r6, 0x32]
+ ldrb r0, [r4]
+ adds r1, r7, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r5, [r5, 0x6]
+ adds r0, r5
+ strh r0, [r6, 0x36]
+ ldr r0, _080D37F4
+ str r0, [r6, 0x1C]
+ ldr r1, _080D37F8
+ adds r0, r6, 0
+ bl oamt_set_x3A_32
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D37E8: .4byte gUnknown_0202F7C8
+_080D37EC: .4byte gUnknown_0202F7C9
+_080D37F0: .4byte gUnknown_03004B00
+_080D37F4: .4byte sub_8078B34
+_080D37F8: .4byte move_anim_8072740
+ thumb_func_end sub_80D3728
+
+ thumb_func_start sub_80D37FC
+sub_80D37FC: @ 80D37FC
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x1
+ bl sub_8078764
+ ldr r0, _080D382C
+ ldrh r1, [r0, 0x8]
+ strh r1, [r4, 0x2E]
+ ldrh r0, [r0, 0x4]
+ ldrh r2, [r4, 0x20]
+ adds r0, r2
+ strh r0, [r4, 0x32]
+ ldrh r0, [r4, 0x22]
+ adds r1, r0
+ strh r1, [r4, 0x36]
+ ldr r0, _080D3830
+ str r0, [r4, 0x1C]
+ ldr r1, _080D3834
+ adds r0, r4, 0
+ bl oamt_set_x3A_32
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D382C: .4byte gUnknown_03004B00
+_080D3830: .4byte sub_8078B34
+_080D3834: .4byte move_anim_8072740
+ thumb_func_end sub_80D37FC
+
+ thumb_func_start sub_80D3838
+sub_80D3838: @ 80D3838
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _080D3850
+ movs r1, 0x6
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ beq _080D3854
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_8078764
+ b _080D385C
+ .align 2, 0
+_080D3850: .4byte gUnknown_03004B00
+_080D3854:
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_80787B0
+_080D385C:
+ ldr r0, _080D386C
+ ldrh r0, [r0, 0x4]
+ strh r0, [r4, 0x3C]
+ ldr r0, _080D3870
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D386C: .4byte gUnknown_03004B00
+_080D3870: .4byte sub_80D3874
+ thumb_func_end sub_80D3838
+
+ thumb_func_start sub_80D3874
+sub_80D3874: @ 80D3874
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0xB
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x2E]
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ movs r1, 0x4
+ bl Sin
+ strh r0, [r4, 0x24]
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x30
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 24
+ negs r0, r0
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x3C]
+ subs r0, 0x1
+ strh r0, [r4, 0x3C]
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ bne _080D38B4
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080D38B4:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D3874
+
+ thumb_func_start sub_80D38BC
+sub_80D38BC: @ 80D38BC
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x14
+ lsls r0, 24
+ lsrs r0, 24
+ mov r10, r0
+ ldr r1, _080D398C
+ ldr r2, _080D3990
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r3, 0x80
+ lsls r3, 5
+ adds r0, r3, 0
+ strh r0, [r1]
+ ldr r2, _080D3994
+ ldrb r1, [r2]
+ movs r0, 0x4
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r2]
+ ldrb r1, [r2, 0x1]
+ movs r0, 0x3F
+ ands r0, r1
+ movs r1, 0x40
+ orrs r0, r1
+ strb r0, [r2, 0x1]
+ mov r0, sp
+ bl sub_8078914
+ ldr r2, [sp]
+ movs r3, 0x80
+ lsls r3, 6
+ add r6, sp, 0x10
+ add r0, sp, 0xC
+ mov r12, r0
+ movs r5, 0
+ ldr r1, _080D3998
+ movs r4, 0x80
+ lsls r4, 5
+ mov r8, r6
+ ldr r7, _080D399C
+ movs r0, 0x85
+ lsls r0, 24
+ mov r9, r0
+_080D3920:
+ str r5, [sp, 0x10]
+ mov r0, r8
+ str r0, [r1]
+ str r2, [r1, 0x4]
+ str r7, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ adds r2, r4
+ subs r3, r4
+ cmp r3, r4
+ bhi _080D3920
+ str r5, [sp, 0x10]
+ str r6, [r1]
+ str r2, [r1, 0x4]
+ lsrs r0, r3, 2
+ mov r2, r9
+ orrs r0, r2
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ movs r0, 0
+ mov r3, r12
+ strb r0, [r3]
+ strb r0, [r3]
+ ldr r1, [sp, 0x4]
+ movs r0, 0
+ str r0, [sp, 0x10]
+ ldr r0, _080D3998
+ str r6, [r0]
+ str r1, [r0, 0x4]
+ ldr r1, _080D399C
+ str r1, [r0, 0x8]
+ ldr r0, [r0, 0x8]
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080D39B8
+ ldr r2, _080D3994
+ ldrb r1, [r2]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r0, _080D39A0
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080D39A8
+ ldr r0, _080D39A4
+ b _080D39AA
+ .align 2, 0
+_080D398C: .4byte REG_BLDCNT
+_080D3990: .4byte 0x00003f42
+_080D3994: .4byte REG_BG1CNT
+_080D3998: .4byte 0x040000d4
+_080D399C: .4byte 0x85000400
+_080D39A0: .4byte gUnknown_0202F7C8
+_080D39A4: .4byte gUnknown_08E70968
+_080D39A8:
+ ldr r0, _080D39B4
+_080D39AA:
+ ldr r1, [sp, 0x4]
+ bl LZDecompressVram
+ b _080D39CE
+ .align 2, 0
+_080D39B4: .4byte gUnknown_08E70C38
+_080D39B8:
+ ldr r0, _080D39F0
+ ldr r1, [sp, 0x4]
+ bl LZDecompressVram
+ mov r0, sp
+ ldrb r0, [r0, 0x8]
+ ldr r1, [sp, 0x4]
+ movs r2, 0
+ movs r3, 0x1
+ bl sub_80763FC
+_080D39CE:
+ ldr r0, _080D39F4
+ ldr r1, [sp]
+ bl LZDecompressVram
+ ldr r0, _080D39F8
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080D3A00
+ ldr r0, _080D39FC
+ mov r1, sp
+ ldrb r1, [r1, 0x8]
+ lsls r1, 4
+ movs r2, 0x20
+ bl LoadCompressedPalette
+ b _080D3A0E
+ .align 2, 0
+_080D39F0: .4byte gUnknown_08E70F0C
+_080D39F4: .4byte gBattleAnimBackgroundImage_Surf
+_080D39F8: .4byte gUnknown_03004B00
+_080D39FC: .4byte gBattleAnimBackgroundPalette_Surf
+_080D3A00:
+ ldr r0, _080D3A78
+ mov r1, sp
+ ldrb r1, [r1, 0x8]
+ lsls r1, 4
+ movs r2, 0x20
+ bl LoadCompressedPalette
+_080D3A0E:
+ ldr r0, _080D3A7C
+ ldr r4, _080D3A80
+ mov r2, r10
+ lsls r5, r2, 2
+ adds r1, r5, r2
+ lsls r1, 3
+ adds r6, r1, r4
+ ldrb r1, [r6, 0x7]
+ adds r1, 0x1
+ lsls r1, 24
+ lsrs r1, 24
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ movs r3, 0
+ mov r9, r3
+ mov r0, r8
+ strh r0, [r6, 0x26]
+ mov r1, r8
+ lsls r0, r1, 2
+ add r0, r8
+ lsls r0, 3
+ adds r7, r0, r4
+ mov r2, r9
+ strh r2, [r7, 0x8]
+ movs r0, 0x80
+ lsls r0, 5
+ strh r0, [r7, 0xA]
+ strh r0, [r7, 0xC]
+ bl sub_8076BE0
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ beq _080D3A94
+ ldr r3, _080D3A84
+ adds r0, r3, 0
+ ldr r1, _080D3A88
+ strh r0, [r1]
+ ldr r2, _080D3A8C
+ adds r0, r2, 0
+ ldr r3, _080D3A90
+ strh r0, [r3]
+ movs r0, 0x2
+ strh r0, [r6, 0x8]
+ movs r0, 0x1
+ strh r0, [r6, 0xA]
+ mov r0, r9
+ strh r0, [r7, 0xE]
+ b _080D3AEE
+ .align 2, 0
+_080D3A78: .4byte gBattleAnimBackgroundImageMuddyWater_Pal
+_080D3A7C: .4byte sub_80D3D68
+_080D3A80: .4byte gTasks
+_080D3A84: .4byte 0x0000ffb0
+_080D3A88: .4byte gUnknown_030042C0
+_080D3A8C: .4byte 0x0000ffd0
+_080D3A90: .4byte gUnknown_030041B4
+_080D3A94:
+ ldr r0, _080D3AC4
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x1
+ bne _080D3AD8
+ ldr r2, _080D3AC8
+ adds r0, r2, 0
+ ldr r3, _080D3ACC
+ strh r0, [r3]
+ movs r2, 0x80
+ lsls r2, 1
+ adds r0, r2, 0
+ ldr r3, _080D3AD0
+ strh r0, [r3]
+ movs r0, 0x2
+ strh r0, [r6, 0x8]
+ ldr r0, _080D3AD4
+ strh r0, [r6, 0xA]
+ strh r1, [r7, 0xE]
+ b _080D3AEE
+ .align 2, 0
+_080D3AC4: .4byte gUnknown_0202F7C8
+_080D3AC8: .4byte 0x0000ff20
+_080D3ACC: .4byte gUnknown_030042C0
+_080D3AD0: .4byte gUnknown_030041B4
+_080D3AD4: .4byte 0x0000ffff
+_080D3AD8:
+ ldr r0, _080D3B1C
+ strh r4, [r0]
+ ldr r1, _080D3B20
+ adds r0, r1, 0
+ ldr r2, _080D3B24
+ strh r0, [r2]
+ ldr r0, _080D3B28
+ strh r0, [r6, 0x8]
+ movs r0, 0x1
+ strh r0, [r6, 0xA]
+ strh r4, [r7, 0xE]
+_080D3AEE:
+ ldr r1, _080D3B2C
+ ldr r3, _080D3B1C
+ ldrh r0, [r3]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r2, _080D3B24
+ ldrh r0, [r2]
+ strh r0, [r1]
+ ldr r1, _080D3B30
+ mov r3, r8
+ lsls r0, r3, 2
+ add r0, r8
+ lsls r0, 3
+ adds r2, r0, r1
+ movs r3, 0xE
+ ldrsh r0, [r2, r3]
+ cmp r0, 0
+ bne _080D3B34
+ movs r0, 0x30
+ strh r0, [r2, 0x10]
+ movs r0, 0x70
+ b _080D3B38
+ .align 2, 0
+_080D3B1C: .4byte gUnknown_030042C0
+_080D3B20: .4byte 0x0000ffd0
+_080D3B24: .4byte gUnknown_030041B4
+_080D3B28: .4byte 0x0000fffe
+_080D3B2C: .4byte REG_BG1HOFS
+_080D3B30: .4byte gTasks
+_080D3B34:
+ movs r0, 0
+ strh r0, [r2, 0x10]
+_080D3B38:
+ strh r0, [r2, 0x12]
+ mov r2, r10
+ adds r0, r5, r2
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0x1
+ strh r1, [r0, 0x14]
+ ldr r1, _080D3B5C
+ str r1, [r0]
+ add sp, 0x14
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D3B5C: .4byte sub_80D3B60
+ thumb_func_end sub_80D38BC
+
+ thumb_func_start sub_80D3B60
+sub_80D3B60: @ 80D3B60
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x18
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r0, _080D3D44
+ lsls r4, r7, 2
+ adds r4, r7
+ lsls r4, 3
+ adds r4, r0
+ ldrh r0, [r4, 0x8]
+ ldr r1, _080D3D48
+ ldrh r1, [r1]
+ adds r0, r1
+ ldr r2, _080D3D48
+ strh r0, [r2]
+ ldrh r0, [r4, 0xA]
+ ldr r3, _080D3D4C
+ ldrh r3, [r3]
+ adds r0, r3
+ ldr r1, _080D3D4C
+ strh r0, [r1]
+ add r5, sp, 0x4
+ adds r0, r5, 0
+ bl sub_8078914
+ ldrh r0, [r4, 0xA]
+ ldrh r2, [r4, 0xC]
+ adds r0, r2
+ strh r0, [r4, 0xC]
+ ldrh r0, [r4, 0x12]
+ adds r0, 0x1
+ strh r0, [r4, 0x12]
+ lsls r0, 16
+ asrs r0, 16
+ mov r10, r5
+ cmp r0, 0x4
+ bne _080D3C02
+ ldr r1, _080D3D50
+ ldrb r0, [r5, 0x8]
+ lsls r0, 4
+ adds r0, 0x7
+ lsls r0, 1
+ adds r0, r1
+ ldrh r6, [r0]
+ movs r2, 0x6
+ adds r5, r1, 0
+ adds r3, r5, 0
+ mov r4, r10
+_080D3BC8:
+ ldrb r0, [r4, 0x8]
+ lsls r0, 4
+ adds r1, r2, 0x1
+ adds r0, r1
+ lsls r1, r0, 1
+ adds r1, r3
+ subs r0, 0x1
+ lsls r0, 1
+ adds r0, r3
+ ldrh r0, [r0]
+ strh r0, [r1]
+ subs r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0
+ bne _080D3BC8
+ mov r3, r10
+ ldrb r0, [r3, 0x8]
+ lsls r0, 4
+ adds r0, 0x1
+ lsls r0, 1
+ adds r0, r5
+ strh r6, [r0]
+ ldr r1, _080D3D44
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r0, r1
+ strh r2, [r0, 0x12]
+_080D3C02:
+ ldr r1, _080D3D44
+ lsls r2, r7, 2
+ adds r0, r2, r7
+ lsls r0, 3
+ adds r3, r0, r1
+ ldrh r0, [r3, 0x14]
+ adds r0, 0x1
+ strh r0, [r3, 0x14]
+ lsls r0, 16
+ asrs r0, 16
+ adds r4, r1, 0
+ str r2, [sp, 0x14]
+ cmp r0, 0x1
+ ble _080D3C70
+ movs r0, 0
+ strh r0, [r3, 0x14]
+ ldrh r0, [r3, 0xE]
+ adds r2, r0, 0x1
+ strh r2, [r3, 0xE]
+ lsls r0, r2, 16
+ asrs r0, 16
+ cmp r0, 0xD
+ bgt _080D3C4C
+ movs r1, 0x26
+ ldrsh r0, [r3, r1]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r4
+ movs r0, 0x10
+ subs r0, r2
+ lsls r0, 8
+ orrs r2, r0
+ strh r2, [r1, 0xA]
+ ldrh r0, [r3, 0x10]
+ adds r0, 0x1
+ strh r0, [r3, 0x10]
+_080D3C4C:
+ movs r2, 0xE
+ ldrsh r0, [r3, r2]
+ cmp r0, 0x36
+ ble _080D3C70
+ ldrh r2, [r3, 0x10]
+ subs r2, 0x1
+ strh r2, [r3, 0x10]
+ movs r1, 0x26
+ ldrsh r0, [r3, r1]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r4
+ movs r0, 0x10
+ subs r0, r2
+ lsls r0, 8
+ orrs r2, r0
+ strh r2, [r1, 0xA]
+_080D3C70:
+ ldr r2, [sp, 0x14]
+ adds r0, r2, r7
+ lsls r0, 3
+ adds r0, r4
+ movs r3, 0x26
+ ldrsh r1, [r0, r3]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r4
+ ldrh r1, [r0, 0xA]
+ movs r0, 0x1F
+ ands r0, r1
+ cmp r0, 0
+ bne _080D3D32
+ ldr r2, [sp, 0x4]
+ movs r3, 0x80
+ lsls r3, 6
+ add r6, sp, 0x10
+ movs r5, 0
+ ldr r1, _080D3D54
+ movs r4, 0x80
+ lsls r4, 5
+ mov r8, r6
+ ldr r0, _080D3D58
+ mov r12, r0
+ movs r0, 0x85
+ lsls r0, 24
+ mov r9, r0
+_080D3CAA:
+ str r5, [sp, 0x10]
+ mov r0, r8
+ str r0, [r1]
+ str r2, [r1, 0x4]
+ mov r0, r12
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ adds r2, r4
+ subs r3, r4
+ cmp r3, r4
+ bhi _080D3CAA
+ str r5, [sp, 0x10]
+ str r6, [r1]
+ str r2, [r1, 0x4]
+ lsrs r0, r3, 2
+ mov r2, r9
+ orrs r0, r2
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ mov r0, sp
+ movs r1, 0
+ strb r1, [r0]
+ strb r1, [r0]
+ mov r3, r10
+ ldr r1, [r3, 0x4]
+ movs r4, 0
+ str r4, [sp, 0x10]
+ ldr r0, _080D3D54
+ str r6, [r0]
+ str r1, [r0, 0x4]
+ ldr r1, _080D3D58
+ str r1, [r0, 0x8]
+ ldr r0, [r0, 0x8]
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080D3D02
+ ldr r2, _080D3D5C
+ ldrb r1, [r2]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+_080D3D02:
+ ldr r0, _080D3D48
+ strh r4, [r0]
+ ldr r1, _080D3D4C
+ strh r4, [r1]
+ ldr r0, _080D3D60
+ strh r4, [r0]
+ adds r0, 0x2
+ strh r4, [r0]
+ ldr r2, _080D3D44
+ ldr r3, [sp, 0x14]
+ adds r0, r3, r7
+ lsls r0, 3
+ adds r0, r2
+ movs r3, 0x26
+ ldrsh r1, [r0, r3]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldr r1, _080D3D64
+ strh r1, [r0, 0x26]
+ adds r0, r7, 0
+ bl move_anim_task_del
+_080D3D32:
+ add sp, 0x18
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D3D44: .4byte gTasks
+_080D3D48: .4byte gUnknown_030042C0
+_080D3D4C: .4byte gUnknown_030041B4
+_080D3D50: .4byte gPlttBufferFaded
+_080D3D54: .4byte 0x040000d4
+_080D3D58: .4byte 0x85000400
+_080D3D5C: .4byte REG_BG1CNT
+_080D3D60: .4byte REG_BLDCNT
+_080D3D64: .4byte 0x0000ffff
+ thumb_func_end sub_80D3B60
+
+ thumb_func_start sub_80D3D68
+sub_80D3D68: @ 80D3D68
+ push {r4-r7,lr}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r7, r0, 24
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ ldr r1, _080D3D90
+ adds r4, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ bne _080D3D84
+ b _080D3EBC
+_080D3D84:
+ cmp r0, 0x1
+ bgt _080D3D94
+ cmp r0, 0
+ beq _080D3D9C
+ b _080D4032
+ .align 2, 0
+_080D3D90: .4byte gTasks
+_080D3D94:
+ cmp r0, 0x2
+ bne _080D3D9A
+ b _080D3F88
+_080D3D9A:
+ b _080D4032
+_080D3D9C:
+ movs r3, 0
+ movs r2, 0x10
+ ldrsh r0, [r4, r2]
+ ldr r1, _080D3E6C
+ mov r12, r1
+ cmp r3, r0
+ bge _080D3DDA
+ mov r7, r12
+ movs r5, 0xF0
+ lsls r5, 3
+ add r5, r12
+ ldr r6, _080D3E70
+_080D3DB4:
+ lsls r2, r3, 16
+ asrs r2, 16
+ lsls r1, r2, 1
+ adds r3, r1, r7
+ adds r1, r5
+ ldrh r0, [r4, 0xC]
+ strh r0, [r1]
+ ldrh r1, [r4, 0xC]
+ adds r0, r6, 0
+ ands r0, r1
+ strh r0, [r3]
+ adds r2, 0x1
+ lsls r2, 16
+ lsrs r3, r2, 16
+ asrs r2, 16
+ movs r1, 0x10
+ ldrsh r0, [r4, r1]
+ cmp r2, r0
+ blt _080D3DB4
+_080D3DDA:
+ ldrh r3, [r4, 0x10]
+ lsls r2, r3, 16
+ asrs r1, r2, 16
+ movs r3, 0x12
+ ldrsh r0, [r4, r3]
+ cmp r1, r0
+ bge _080D3E14
+ ldr r5, _080D3E6C
+ movs r0, 0xF0
+ lsls r0, 3
+ adds r6, r5, r0
+ ldr r7, _080D3E70
+_080D3DF2:
+ asrs r2, 16
+ lsls r1, r2, 1
+ adds r3, r1, r5
+ adds r1, r6
+ ldrh r0, [r4, 0xA]
+ strh r0, [r1]
+ ldrh r1, [r4, 0xA]
+ adds r0, r7, 0
+ ands r0, r1
+ strh r0, [r3]
+ adds r2, 0x1
+ lsls r2, 16
+ asrs r1, r2, 16
+ movs r3, 0x12
+ ldrsh r0, [r4, r3]
+ cmp r1, r0
+ blt _080D3DF2
+_080D3E14:
+ ldrh r3, [r4, 0x12]
+ lsls r2, r3, 16
+ asrs r0, r2, 16
+ cmp r0, 0x9F
+ bgt _080D3E4A
+ ldr r5, _080D3E6C
+ movs r0, 0xF0
+ lsls r0, 3
+ adds r6, r5, r0
+ ldr r7, _080D3E70
+_080D3E28:
+ asrs r2, 16
+ lsls r1, r2, 1
+ adds r3, r1, r5
+ adds r1, r6
+ ldrh r0, [r4, 0xC]
+ strh r0, [r1]
+ ldrh r1, [r4, 0xC]
+ adds r0, r7, 0
+ ands r0, r1
+ strh r0, [r3]
+ adds r2, 0x1
+ lsls r2, 16
+ lsrs r3, r2, 16
+ lsls r2, r3, 16
+ asrs r0, r2, 16
+ cmp r0, 0x9F
+ ble _080D3E28
+_080D3E4A:
+ movs r1, 0x10
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080D3E74
+ lsls r0, r3, 16
+ asrs r0, 15
+ mov r3, r12
+ adds r2, r0, r3
+ movs r1, 0xF0
+ lsls r1, 3
+ add r1, r12
+ adds r0, r1
+ ldrh r1, [r4, 0xA]
+ strh r1, [r0]
+ ldrh r0, [r4, 0xA]
+ b _080D3E8A
+ .align 2, 0
+_080D3E6C: .4byte gUnknown_03004DE0
+_080D3E70: .4byte 0x0000ffff
+_080D3E74:
+ lsls r0, r3, 16
+ asrs r0, 15
+ mov r1, r12
+ adds r2, r0, r1
+ movs r1, 0xF0
+ lsls r1, 3
+ add r1, r12
+ adds r0, r1
+ ldrh r1, [r4, 0xC]
+ strh r1, [r0]
+ ldrh r0, [r4, 0xC]
+_080D3E8A:
+ strh r0, [r2]
+ ldr r0, _080D3EB4
+ str r0, [sp]
+ ldr r0, _080D3EB8
+ str r0, [sp, 0x4]
+ mov r1, sp
+ movs r2, 0
+ movs r0, 0x1
+ strb r0, [r1, 0x8]
+ mov r0, sp
+ strb r2, [r0, 0x9]
+ ldr r0, [sp]
+ ldr r1, [sp, 0x4]
+ ldr r2, [sp, 0x8]
+ bl sub_80895F8
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _080D4032
+ .align 2, 0
+_080D3EB4: .4byte REG_BLDALPHA
+_080D3EB8: .4byte 0xa2600001
+_080D3EBC:
+ movs r2, 0xE
+ ldrsh r1, [r4, r2]
+ cmp r1, 0
+ bne _080D3ED4
+ ldrh r0, [r4, 0x10]
+ subs r0, 0x1
+ strh r0, [r4, 0x10]
+ lsls r0, 16
+ cmp r0, 0
+ bgt _080D3EE8
+ strh r1, [r4, 0x10]
+ b _080D3EE2
+_080D3ED4:
+ ldrh r0, [r4, 0x12]
+ adds r0, 0x1
+ strh r0, [r4, 0x12]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x6F
+ ble _080D3EE8
+_080D3EE2:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+_080D3EE8:
+ movs r3, 0
+ movs r1, 0x10
+ ldrsh r0, [r4, r1]
+ cmp r3, r0
+ bge _080D3F1C
+ ldr r6, _080D3F80
+ ldr r5, _080D3F84
+_080D3EF6:
+ lsls r1, r3, 16
+ asrs r1, 16
+ lsls r3, r1, 1
+ ldrb r2, [r5, 0x14]
+ lsls r0, r2, 4
+ subs r0, r2
+ lsls r0, 7
+ adds r3, r0
+ adds r3, r6
+ ldrh r0, [r4, 0xC]
+ strh r0, [r3]
+ adds r1, 0x1
+ lsls r1, 16
+ lsrs r3, r1, 16
+ asrs r1, 16
+ movs r2, 0x10
+ ldrsh r0, [r4, r2]
+ cmp r1, r0
+ blt _080D3EF6
+_080D3F1C:
+ ldrh r3, [r4, 0x10]
+ lsls r2, r3, 16
+ asrs r1, r2, 16
+ movs r3, 0x12
+ ldrsh r0, [r4, r3]
+ cmp r1, r0
+ bge _080D3F50
+ ldr r6, _080D3F80
+ ldr r5, _080D3F84
+_080D3F2E:
+ asrs r3, r2, 16
+ lsls r2, r3, 1
+ ldrb r1, [r5, 0x14]
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 7
+ adds r2, r0
+ adds r2, r6
+ ldrh r0, [r4, 0xA]
+ strh r0, [r2]
+ adds r3, 0x1
+ lsls r2, r3, 16
+ asrs r1, r2, 16
+ movs r3, 0x12
+ ldrsh r0, [r4, r3]
+ cmp r1, r0
+ blt _080D3F2E
+_080D3F50:
+ ldrh r3, [r4, 0x12]
+ lsls r1, r3, 16
+ asrs r0, r1, 16
+ cmp r0, 0x9F
+ bgt _080D4032
+ ldr r6, _080D3F80
+ ldr r5, _080D3F84
+_080D3F5E:
+ asrs r3, r1, 16
+ lsls r2, r3, 1
+ ldrb r1, [r5, 0x14]
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 7
+ adds r2, r0
+ adds r2, r6
+ ldrh r0, [r4, 0xC]
+ strh r0, [r2]
+ adds r3, 0x1
+ lsls r1, r3, 16
+ asrs r0, r1, 16
+ cmp r0, 0x9F
+ ble _080D3F5E
+ b _080D4032
+ .align 2, 0
+_080D3F80: .4byte gUnknown_03004DE0
+_080D3F84: .4byte gUnknown_03004DC0
+_080D3F88:
+ movs r3, 0
+ movs r1, 0x10
+ ldrsh r0, [r4, r1]
+ cmp r3, r0
+ bge _080D3FBC
+ ldr r6, _080D403C
+ ldr r5, _080D4040
+_080D3F96:
+ lsls r1, r3, 16
+ asrs r1, 16
+ lsls r3, r1, 1
+ ldrb r2, [r5, 0x14]
+ lsls r0, r2, 4
+ subs r0, r2
+ lsls r0, 7
+ adds r3, r0
+ adds r3, r6
+ ldrh r0, [r4, 0xC]
+ strh r0, [r3]
+ adds r1, 0x1
+ lsls r1, 16
+ lsrs r3, r1, 16
+ asrs r1, 16
+ movs r2, 0x10
+ ldrsh r0, [r4, r2]
+ cmp r1, r0
+ blt _080D3F96
+_080D3FBC:
+ ldrh r3, [r4, 0x10]
+ lsls r2, r3, 16
+ asrs r1, r2, 16
+ movs r3, 0x12
+ ldrsh r0, [r4, r3]
+ cmp r1, r0
+ bge _080D3FF0
+ ldr r6, _080D403C
+ ldr r5, _080D4040
+_080D3FCE:
+ asrs r3, r2, 16
+ lsls r2, r3, 1
+ ldrb r1, [r5, 0x14]
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 7
+ adds r2, r0
+ adds r2, r6
+ ldrh r0, [r4, 0xA]
+ strh r0, [r2]
+ adds r3, 0x1
+ lsls r2, r3, 16
+ asrs r1, r2, 16
+ movs r3, 0x12
+ ldrsh r0, [r4, r3]
+ cmp r1, r0
+ blt _080D3FCE
+_080D3FF0:
+ ldrh r3, [r4, 0x12]
+ lsls r1, r3, 16
+ asrs r0, r1, 16
+ cmp r0, 0x9F
+ bgt _080D401C
+ ldr r6, _080D403C
+ ldr r5, _080D4040
+_080D3FFE:
+ asrs r3, r1, 16
+ lsls r2, r3, 1
+ ldrb r1, [r5, 0x14]
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 7
+ adds r2, r0
+ adds r2, r6
+ ldrh r0, [r4, 0xC]
+ strh r0, [r2]
+ adds r3, 0x1
+ lsls r1, r3, 16
+ asrs r0, r1, 16
+ cmp r0, 0x9F
+ ble _080D3FFE
+_080D401C:
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ bne _080D4032
+ bl remove_some_task
+ adds r0, r7, 0
+ bl DestroyTask
+_080D4032:
+ add sp, 0xC
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D403C: .4byte gUnknown_03004DE0
+_080D4040: .4byte gUnknown_03004DC0
+ thumb_func_end sub_80D3D68
+
+ thumb_func_start sub_80D4044
+sub_80D4044: @ 80D4044
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ ldrh r2, [r4, 0x4]
+ lsls r1, r2, 22
+ lsrs r1, 22
+ adds r1, 0x8
+ ldr r3, _080D4098
+ adds r0, r3, 0
+ ands r1, r0
+ ldr r0, _080D409C
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r4, 0x4]
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_8078764
+ bl Random
+ movs r5, 0xFF
+ ands r5, r0
+ movs r0, 0x80
+ lsls r0, 1
+ adds r6, r0, 0
+ orrs r5, r6
+ bl Random
+ ldr r1, _080D40A0
+ ands r1, r0
+ adds r0, r1, 0
+ cmp r0, 0xFF
+ ble _080D408A
+ subs r0, r6, r0
+ lsls r0, 16
+ lsrs r1, r0, 16
+_080D408A:
+ strh r5, [r4, 0x30]
+ strh r1, [r4, 0x32]
+ ldr r0, _080D40A4
+ str r0, [r4, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D4098: .4byte 0x000003ff
+_080D409C: .4byte 0xfffffc00
+_080D40A0: .4byte 0x000001ff
+_080D40A4: .4byte sub_80D40A8
+ thumb_func_end sub_80D4044
+
+ thumb_func_start sub_80D40A8
+sub_80D40A8: @ 80D40A8
+ push {r4,lr}
+ adds r2, r0, 0
+ ldrh r0, [r2, 0x30]
+ ldrh r1, [r2, 0x34]
+ adds r3, r0, r1
+ strh r3, [r2, 0x34]
+ ldrh r1, [r2, 0x32]
+ ldrh r4, [r2, 0x36]
+ adds r1, r4
+ strh r1, [r2, 0x36]
+ movs r1, 0x1
+ ands r1, r0
+ cmp r1, 0
+ beq _080D40CC
+ lsls r0, r3, 16
+ asrs r0, 24
+ negs r0, r0
+ b _080D40D0
+_080D40CC:
+ lsls r0, r3, 16
+ asrs r0, 24
+_080D40D0:
+ strh r0, [r2, 0x24]
+ ldrh r0, [r2, 0x36]
+ lsls r0, 16
+ asrs r0, 24
+ strh r0, [r2, 0x26]
+ ldrh r0, [r2, 0x2E]
+ adds r0, 0x1
+ strh r0, [r2, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x15
+ bne _080D40EE
+ adds r0, r2, 0
+ bl move_anim_8072740
+_080D40EE:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D40A8
+
+ thumb_func_start sub_80D40F4
+sub_80D40F4: @ 80D40F4
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ ldr r0, _080D4144
+ adds r4, r0
+ movs r0, 0
+ bl obj_id_for_side_relative_to_move
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x26]
+ ldr r2, _080D4148
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r0, [r0, 0x22]
+ strh r0, [r4, 0x12]
+ bl sub_80D4394
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0xA]
+ ldrh r0, [r4, 0x26]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0
+ bl sub_8078E70
+ ldr r0, _080D414C
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D4144: .4byte gTasks
+_080D4148: .4byte gSprites
+_080D414C: .4byte sub_80D4150
+ thumb_func_end sub_80D40F4
+
+ thumb_func_start sub_80D4150
+sub_80D4150: @ 80D4150
+ push {r4-r6,lr}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ ldr r1, _080D4178
+ adds r4, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x7
+ bls _080D416C
+ b _080D438A
+_080D416C:
+ lsls r0, 2
+ ldr r1, _080D417C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080D4178: .4byte gTasks
+_080D417C: .4byte _080D4180
+ .align 2, 0
+_080D4180:
+ .4byte _080D41A0
+ .4byte _080D41C6
+ .4byte _080D4258
+ .4byte _080D428E
+ .4byte _080D42A2
+ .4byte _080D42B0
+ .4byte _080D4330
+ .4byte _080D437C
+_080D41A0:
+ ldrh r1, [r4, 0x26]
+ lsls r1, 24
+ lsrs r1, 24
+ movs r3, 0x80
+ lsls r3, 1
+ movs r0, 0xE0
+ str r0, [sp]
+ movs r0, 0x80
+ lsls r0, 2
+ str r0, [sp, 0x4]
+ movs r0, 0x20
+ str r0, [sp, 0x8]
+ adds r0, r4, 0
+ adds r2, r3, 0
+ bl sub_8079C08
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+_080D41C6:
+ ldrh r0, [r4, 0xE]
+ adds r0, 0x1
+ strh r0, [r4, 0xE]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080D4222
+ movs r0, 0
+ strh r0, [r4, 0xE]
+ ldrh r0, [r4, 0x10]
+ adds r0, 0x1
+ strh r0, [r4, 0x10]
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080D4210
+ ldr r2, _080D420C
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0x3
+ strh r1, [r0, 0x24]
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r0, 0x22]
+ adds r1, 0x1
+ strh r1, [r0, 0x22]
+ b _080D4222
+ .align 2, 0
+_080D420C: .4byte gSprites
+_080D4210:
+ ldr r2, _080D4250
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldr r1, _080D4254
+ strh r1, [r0, 0x24]
+_080D4222:
+ adds r0, r4, 0
+ bl sub_8079C74
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0
+ beq _080D4232
+ b _080D438A
+_080D4232:
+ ldrh r0, [r4, 0x26]
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8079A64
+ ldr r2, _080D4250
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ strh r5, [r0, 0x24]
+ strh r5, [r4, 0xE]
+ b _080D436C
+ .align 2, 0
+_080D4250: .4byte gSprites
+_080D4254: .4byte 0x0000fffd
+_080D4258:
+ ldrh r0, [r4, 0xE]
+ adds r0, 0x1
+ strh r0, [r4, 0xE]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ bgt _080D4268
+ b _080D438A
+_080D4268:
+ ldrh r1, [r4, 0x26]
+ lsls r1, 24
+ lsrs r1, 24
+ movs r3, 0x80
+ lsls r3, 2
+ movs r0, 0xC0
+ lsls r0, 1
+ str r0, [sp]
+ movs r0, 0xE0
+ str r0, [sp, 0x4]
+ movs r0, 0x8
+ str r0, [sp, 0x8]
+ adds r0, r4, 0
+ movs r2, 0xE0
+ bl sub_8079C08
+ movs r0, 0
+ strh r0, [r4, 0xE]
+ b _080D436E
+_080D428E:
+ adds r0, r4, 0
+ bl sub_8079C74
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ bne _080D438A
+ strh r0, [r4, 0xE]
+ strh r0, [r4, 0x10]
+ b _080D436E
+_080D42A2:
+ adds r0, r4, 0
+ adds r1, r2, 0
+ bl sub_80D4418
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+_080D42B0:
+ ldrh r0, [r4, 0xE]
+ adds r0, 0x1
+ strh r0, [r4, 0xE]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080D438A
+ movs r0, 0
+ strh r0, [r4, 0xE]
+ ldrh r0, [r4, 0x10]
+ adds r0, 0x1
+ strh r0, [r4, 0x10]
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080D42E8
+ ldr r2, _080D42E4
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r0, 0x26]
+ adds r1, 0x2
+ b _080D42FA
+ .align 2, 0
+_080D42E4: .4byte gSprites
+_080D42E8:
+ ldr r2, _080D432C
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r0, 0x26]
+ subs r1, 0x2
+_080D42FA:
+ strh r1, [r0, 0x26]
+ movs r1, 0x10
+ ldrsh r0, [r4, r1]
+ cmp r0, 0xA
+ bne _080D438A
+ ldrh r1, [r4, 0x26]
+ lsls r1, 24
+ lsrs r1, 24
+ movs r2, 0xC0
+ lsls r2, 1
+ movs r0, 0x80
+ lsls r0, 1
+ str r0, [sp]
+ str r0, [sp, 0x4]
+ movs r0, 0x8
+ str r0, [sp, 0x8]
+ adds r0, r4, 0
+ movs r3, 0xE0
+ bl sub_8079C08
+ movs r0, 0
+ strh r0, [r4, 0xE]
+ strh r0, [r4, 0x10]
+ b _080D436E
+ .align 2, 0
+_080D432C: .4byte gSprites
+_080D4330:
+ ldr r6, _080D4378
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ ldrh r1, [r0, 0x22]
+ subs r1, 0x1
+ strh r1, [r0, 0x22]
+ adds r0, r4, 0
+ bl sub_8079C74
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0
+ bne _080D438A
+ ldrh r0, [r4, 0x26]
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8078F40
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ ldrh r1, [r4, 0x12]
+ strh r1, [r0, 0x22]
+_080D436C:
+ strh r5, [r4, 0x10]
+_080D436E:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _080D438A
+ .align 2, 0
+_080D4378: .4byte gSprites
+_080D437C:
+ movs r1, 0xC
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080D438A
+ adds r0, r2, 0
+ bl move_anim_task_del
+_080D438A:
+ add sp, 0xC
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D4150
+
+ thumb_func_start sub_80D4394
+sub_80D4394: @ 80D4394
+ push {r4,r5,lr}
+ ldr r4, _080D43B8
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _080D43C8
+ ldr r1, _080D43BC
+ ldrb r0, [r4]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r1, r0
+ ldr r0, _080D43C0
+ b _080D43D8
+ .align 2, 0
+_080D43B8: .4byte gUnknown_0202F7C8
+_080D43BC: .4byte gUnknown_02024A6A
+_080D43C0: .4byte gPlayerParty
+_080D43C4:
+ adds r0, r2, 0
+ b _080D440A
+_080D43C8:
+ ldr r1, _080D4410
+ ldrb r0, [r4]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r1, r0
+ ldr r0, _080D4414
+_080D43D8:
+ adds r5, r1, r0
+ adds r0, r5, 0
+ movs r1, 0x3A
+ bl GetMonData
+ adds r4, r0, 0
+ lsls r4, 16
+ adds r0, r5, 0
+ movs r1, 0x39
+ bl GetMonData
+ lsls r0, 16
+ lsrs r3, r0, 16
+ lsrs r4, 18
+ movs r2, 0
+_080D43F6:
+ adds r1, r2, 0x1
+ adds r0, r4, 0
+ muls r0, r1
+ cmp r3, r0
+ blt _080D43C4
+ lsls r0, r1, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x2
+ bls _080D43F6
+ movs r0, 0x3
+_080D440A:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080D4410: .4byte gUnknown_02024A6A
+_080D4414: .4byte gEnemyParty
+ thumb_func_end sub_80D4394
+
+ thumb_func_start sub_80D4418
+sub_80D4418: @ 80D4418
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x14
+ adds r7, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ str r1, [sp]
+ ldr r4, _080D4520
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r5, 0xAC
+ ldrb r0, [r4]
+ bl sub_8079E90
+ subs r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x8]
+ ldrh r1, [r7, 0xA]
+ movs r0, 0x4
+ subs r0, r1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r0, 0
+ bgt _080D4468
+ movs r1, 0x1
+_080D4468:
+ movs r0, 0
+ str r0, [sp, 0x4]
+ lsls r0, r1, 16
+ mov r10, r8
+ mov r9, r6
+ mov r1, r10
+ lsls r1, 4
+ str r1, [sp, 0xC]
+ mov r1, r9
+ lsls r1, 4
+ str r1, [sp, 0x10]
+ asrs r0, 16
+ mov r8, r0
+_080D4482:
+ ldr r0, _080D4524
+ mov r1, r10
+ mov r2, r9
+ ldr r3, [sp, 0x8]
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r6, r5, 16
+ cmp r2, 0x40
+ beq _080D44EA
+ ldr r1, _080D4528
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r5, r0, r1
+ mov r0, sp
+ ldrh r0, [r0, 0x4]
+ strh r0, [r5, 0x30]
+ mov r1, sp
+ ldrh r1, [r1, 0xC]
+ strh r1, [r5, 0x32]
+ mov r0, sp
+ ldrh r0, [r0, 0x10]
+ strh r0, [r5, 0x34]
+ asrs r4, r6, 16
+ adds r0, r4, 0
+ movs r1, 0x40
+ bl Cos
+ strh r0, [r5, 0x36]
+ adds r0, r4, 0
+ movs r1, 0x40
+ bl Sin
+ strh r0, [r5, 0x38]
+ mov r1, sp
+ ldrh r1, [r1]
+ strh r1, [r5, 0x3A]
+ movs r0, 0x2
+ strh r0, [r5, 0x3C]
+ ldrh r1, [r7, 0xC]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080D44E4
+ adds r0, r5, 0
+ bl sub_80D452C
+_080D44E4:
+ ldrh r0, [r7, 0xC]
+ adds r0, 0x1
+ strh r0, [r7, 0xC]
+_080D44EA:
+ mov r1, r8
+ lsls r0, r1, 1
+ asrs r1, r6, 16
+ adds r1, r0
+ lsls r1, 16
+ movs r0, 0xFF
+ lsls r0, 16
+ ands r0, r1
+ lsrs r5, r0, 16
+ ldr r1, [sp, 0x4]
+ lsls r0, r1, 16
+ asrs r0, 16
+ add r0, r8
+ lsls r0, 16
+ lsrs r1, r0, 16
+ str r1, [sp, 0x4]
+ asrs r0, 16
+ cmp r0, 0x13
+ ble _080D4482
+ add sp, 0x14
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D4520: .4byte gUnknown_0202F7C8
+_080D4524: .4byte gSpriteTemplate_83D9378
+_080D4528: .4byte gSprites
+ thumb_func_end sub_80D4418
+
+ thumb_func_start sub_80D452C
+sub_80D452C: @ 80D452C
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080D453E
+ cmp r0, 0x1
+ beq _080D4574
+ b _080D45CE
+_080D453E:
+ movs r2, 0x30
+ ldrsh r0, [r4, r2]
+ movs r1, 0x6
+ bl __modsi3
+ lsls r0, 16
+ asrs r0, 16
+ lsls r1, r0, 1
+ adds r1, r0
+ ldrh r0, [r4, 0x36]
+ adds r1, r0
+ strh r1, [r4, 0x36]
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ movs r1, 0x3
+ bl __modsi3
+ lsls r0, 16
+ asrs r0, 16
+ lsls r1, r0, 1
+ adds r1, r0
+ ldrh r2, [r4, 0x38]
+ adds r1, r2
+ strh r1, [r4, 0x38]
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+_080D4574:
+ ldrh r0, [r4, 0x36]
+ ldrh r1, [r4, 0x32]
+ adds r0, r1
+ strh r0, [r4, 0x32]
+ ldrh r1, [r4, 0x38]
+ ldrh r2, [r4, 0x34]
+ adds r1, r2
+ strh r1, [r4, 0x34]
+ lsls r0, 16
+ asrs r0, 20
+ strh r0, [r4, 0x20]
+ lsls r1, 16
+ asrs r2, r1, 20
+ strh r2, [r4, 0x22]
+ adds r0, 0x8
+ lsls r0, 16
+ movs r1, 0x80
+ lsls r1, 17
+ cmp r0, r1
+ bhi _080D45AA
+ adds r1, r2, 0
+ movs r0, 0x8
+ negs r0, r0
+ cmp r1, r0
+ blt _080D45AA
+ cmp r1, 0x78
+ ble _080D45CE
+_080D45AA:
+ ldr r3, _080D45D4
+ movs r0, 0x3C
+ ldrsh r1, [r4, r0]
+ lsls r1, 1
+ movs r0, 0x3A
+ ldrsh r2, [r4, r0]
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r1, r0
+ adds r3, 0x8
+ adds r1, r3
+ ldrh r0, [r1]
+ subs r0, 0x1
+ strh r0, [r1]
+ adds r0, r4, 0
+ bl DestroySprite
+_080D45CE:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D45D4: .4byte gTasks
+ thumb_func_end sub_80D452C
+
+ thumb_func_start sub_80D45D8
+sub_80D45D8: @ 80D45D8
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _080D4608
+ adds r4, r1, r0
+ bl sub_80D4394
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0xA]
+ ldr r0, _080D460C
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _080D4610
+ movs r0, 0x88
+ strh r0, [r4, 0x10]
+ movs r0, 0x28
+ b _080D4616
+ .align 2, 0
+_080D4608: .4byte gTasks
+_080D460C: .4byte gUnknown_0202F7C8
+_080D4610:
+ movs r0, 0x10
+ strh r0, [r4, 0x10]
+ movs r0, 0x50
+_080D4616:
+ strh r0, [r4, 0x14]
+ movs r0, 0x62
+ strh r0, [r4, 0x12]
+ ldrh r0, [r4, 0x10]
+ adds r0, 0x31
+ strh r0, [r4, 0x16]
+ movs r0, 0xA
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ adds r0, 0x5
+ strh r0, [r4, 0x20]
+ ldr r0, _080D4638
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D4638: .4byte sub_80D463C
+ thumb_func_end sub_80D45D8
+
+ thumb_func_start sub_80D463C
+sub_80D463C: @ 80D463C
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 24
+ lsrs r1, r0, 24
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ ldr r7, _080D4660
+ adds r4, r0, r7
+ movs r0, 0x8
+ ldrsh r2, [r4, r0]
+ cmp r2, 0
+ beq _080D4664
+ cmp r2, 0x1
+ beq _080D4714
+ b _080D4722
+ .align 2, 0
+_080D4660: .4byte gTasks
+_080D4664:
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x1
+ strh r0, [r4, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x2
+ ble _080D467A
+ strh r2, [r4, 0xC]
+ adds r0, r4, 0
+ bl sub_80D472C
+_080D467A:
+ movs r1, 0x1C
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080D46F4
+ movs r2, 0x22
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ bne _080D46F4
+ ldr r5, _080D4708
+ movs r1, 0x1
+ mov r8, r1
+ mov r2, r8
+ strh r2, [r5]
+ strh r0, [r5, 0x2]
+ movs r0, 0xC
+ strh r0, [r5, 0x4]
+ ldr r6, _080D470C
+ adds r0, r6, 0
+ movs r1, 0x50
+ bl CreateTask
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0xFF
+ beq _080D46C4
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r0, r7
+ ldr r1, [r0]
+ adds r0, r2, 0
+ bl _call_via_r1
+ ldr r1, _080D4710
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+_080D46C4:
+ movs r0, 0x3
+ strh r0, [r5]
+ adds r0, r6, 0
+ movs r1, 0x50
+ bl CreateTask
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0xFF
+ beq _080D46F0
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r0, r7
+ ldr r1, [r0]
+ adds r0, r2, 0
+ bl _call_via_r1
+ ldr r1, _080D4710
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+_080D46F0:
+ mov r0, r8
+ strh r0, [r4, 0x22]
+_080D46F4:
+ movs r2, 0x1E
+ ldrsh r1, [r4, r2]
+ movs r2, 0x20
+ ldrsh r0, [r4, r2]
+ cmp r1, r0
+ blt _080D4722
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _080D4722
+ .align 2, 0
+_080D4708: .4byte gUnknown_03004B00
+_080D470C: .4byte sub_80E1864
+_080D4710: .4byte gUnknown_0202F7B2
+_080D4714:
+ movs r2, 0x1A
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ bne _080D4722
+ adds r0, r1, 0
+ bl move_anim_task_del
+_080D4722:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D463C
+
+ thumb_func_start sub_80D472C
+sub_80D472C: @ 80D472C
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ lsls r1, 24
+ lsrs r6, r1, 24
+ ldr r1, _080D47B8
+ movs r2, 0x18
+ ldrsh r0, [r4, r2]
+ lsls r0, 1
+ adds r0, r1
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ adds r0, 0x3
+ asrs r0, 4
+ ldrh r2, [r4, 0x14]
+ adds r0, r2
+ lsls r0, 16
+ lsrs r5, r0, 16
+ ldr r0, _080D47BC
+ movs r2, 0x16
+ ldrsh r1, [r4, r2]
+ movs r2, 0
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x40
+ beq _080D4786
+ ldr r3, _080D47C0
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r3, 0
+ adds r1, 0x1C
+ adds r1, r0, r1
+ ldr r2, _080D47C4
+ str r2, [r1]
+ adds r0, r3
+ strh r5, [r0, 0x38]
+ strh r6, [r0, 0x3A]
+ movs r1, 0x9
+ strh r1, [r0, 0x3C]
+ ldrh r0, [r4, 0x1A]
+ adds r0, 0x1
+ strh r0, [r4, 0x1A]
+_080D4786:
+ ldrh r0, [r4, 0x1E]
+ adds r0, 0x1
+ strh r0, [r4, 0x1E]
+ ldrh r0, [r4, 0x18]
+ adds r0, 0x27
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x18]
+ movs r0, 0x16
+ ldrsh r1, [r4, r0]
+ ldr r0, _080D47C8
+ muls r0, r1
+ ldr r1, _080D47CC
+ adds r0, r1
+ movs r2, 0x12
+ ldrsh r1, [r4, r2]
+ bl __modsi3
+ ldrh r1, [r4, 0x10]
+ adds r1, r0
+ strh r1, [r4, 0x16]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D47B8: .4byte gSineTable
+_080D47BC: .4byte gSpriteTemplate_83D9378
+_080D47C0: .4byte gSprites
+_080D47C4: .4byte sub_80D47D0
+_080D47C8: .4byte 0x41c64e6d
+_080D47CC: .4byte 0x00003039
+ thumb_func_end sub_80D472C
+
+ thumb_func_start sub_80D47D0
+sub_80D47D0: @ 80D47D0
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ bne _080D4866
+ ldrh r0, [r5, 0x22]
+ adds r0, 0x8
+ strh r0, [r5, 0x22]
+ lsls r0, 16
+ asrs r0, 16
+ movs r2, 0x38
+ ldrsh r1, [r5, r2]
+ cmp r0, r1
+ blt _080D4866
+ ldr r2, _080D486C
+ movs r3, 0x3A
+ ldrsh r1, [r5, r3]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ movs r1, 0x1
+ strh r1, [r0, 0x1C]
+ ldr r0, _080D4870
+ movs r2, 0x20
+ ldrsh r1, [r5, r2]
+ movs r3, 0x22
+ ldrsh r2, [r5, r3]
+ movs r3, 0x1
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x30]
+ cmp r0, 0x40
+ beq _080D4860
+ movs r0, 0x30
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r4, _080D4874
+ adds r0, r4
+ movs r1, 0x3
+ bl StartSpriteAffineAnim
+ movs r2, 0x30
+ ldrsh r1, [r5, r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrh r1, [r5, 0x3A]
+ strh r1, [r0, 0x3A]
+ movs r3, 0x30
+ ldrsh r1, [r5, r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrh r1, [r5, 0x3C]
+ strh r1, [r0, 0x3C]
+ movs r0, 0x30
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r4, 0x1C
+ adds r0, r4
+ ldr r1, _080D4878
+ str r1, [r0]
+_080D4860:
+ adds r0, r5, 0
+ bl DestroySprite
+_080D4866:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D486C: .4byte gTasks
+_080D4870: .4byte gBattleAnimSpriteTemplate_83DB4D8
+_080D4874: .4byte gSprites
+_080D4878: .4byte sub_80D487C
+ thumb_func_end sub_80D47D0
+
+ thumb_func_start sub_80D487C
+sub_80D487C: @ 80D487C
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080D48E8
+ movs r0, 0
+ strh r0, [r4, 0x30]
+ adds r3, r4, 0
+ 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]
+ ldrh r0, [r4, 0x32]
+ adds r0, 0x1
+ strh r0, [r4, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xC
+ bne _080D48E8
+ ldr r3, _080D48F0
+ movs r0, 0x3C
+ ldrsh r1, [r4, r0]
+ lsls r1, 1
+ movs r0, 0x3A
+ ldrsh r2, [r4, r0]
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r1, r0
+ adds r3, 0x8
+ adds r1, r3
+ ldrh r0, [r1]
+ subs r0, 0x1
+ strh r0, [r1]
+ ldrb r0, [r4, 0x3]
+ lsls r0, 26
+ lsrs r0, 27
+ bl FreeOamMatrix
+ adds r0, r4, 0
+ bl DestroySprite
+_080D48E8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D48F0: .4byte gTasks
+ thumb_func_end sub_80D487C
+
+ thumb_func_start sub_80D48F4
+sub_80D48F4: @ 80D48F4
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _080D4978
+ adds r5, r1, r0
+ ldr r4, _080D497C
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ movs r6, 0
+ strh r0, [r5, 0xE]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x10]
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ lsls r0, 24
+ movs r2, 0x1
+ negs r2, r2
+ adds r1, r2, 0
+ cmp r0, 0
+ bne _080D4938
+ movs r1, 0x1
+_080D4938:
+ strh r1, [r5, 0x16]
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D494C
+ movs r1, 0x16
+ ldrsh r0, [r5, r1]
+ negs r0, r0
+ strh r0, [r5, 0x16]
+_080D494C:
+ movs r2, 0x16
+ ldrsh r0, [r5, r2]
+ lsls r0, 3
+ ldrh r1, [r5, 0xE]
+ adds r0, r1
+ strh r0, [r5, 0x12]
+ movs r2, 0x16
+ ldrsh r1, [r5, r2]
+ lsls r1, 3
+ ldrh r0, [r5, 0x10]
+ subs r0, r1
+ strh r0, [r5, 0x14]
+ ldr r0, _080D4980
+ strh r0, [r5, 0x1A]
+ strh r6, [r5, 0xA]
+ strh r6, [r5, 0x8]
+ ldr r0, _080D4984
+ str r0, [r5]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D4978: .4byte gTasks
+_080D497C: .4byte gUnknown_0202F7C8
+_080D4980: .4byte 0x0000ffe0
+_080D4984: .4byte sub_80D4988
+ thumb_func_end sub_80D48F4
+
+ thumb_func_start sub_80D4988
+sub_80D4988: @ 80D4988
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ ldr r1, _080D49AC
+ adds r4, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x6
+ bls _080D49A2
+ b _080D4AC2
+_080D49A2:
+ lsls r0, 2
+ ldr r1, _080D49B0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080D49AC: .4byte gTasks
+_080D49B0: .4byte _080D49B4
+ .align 2, 0
+_080D49B4:
+ .4byte _080D49D0
+ .4byte _080D49E0
+ .4byte _080D49FA
+ .4byte _080D4A3C
+ .4byte _080D4A5E
+ .4byte _080D4A8C
+ .4byte _080D4AB2
+_080D49D0:
+ adds r0, r4, 0
+ bl sub_80D4AD0
+ movs r1, 0x1C
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080D4AC8
+ b _080D4ABA
+_080D49E0:
+ adds r0, r4, 0
+ bl sub_80D4AD0
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x10
+ ble _080D4AC8
+ movs r0, 0
+ strh r0, [r4, 0xA]
+ b _080D4ABA
+_080D49FA:
+ adds r0, r4, 0
+ bl sub_80D4AD0
+ movs r1, 0x16
+ ldrsh r0, [r4, r1]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 1
+ ldrh r0, [r4, 0x12]
+ adds r1, r0
+ movs r2, 0
+ strh r1, [r4, 0x12]
+ adds r1, 0x10
+ lsls r1, 16
+ movs r0, 0x88
+ lsls r0, 17
+ cmp r1, r0
+ bls _080D4AC8
+ ldrh r0, [r4, 0x20]
+ adds r0, 0x1
+ strh r0, [r4, 0x20]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x2
+ ble _080D4A38
+ movs r0, 0x1
+ strh r0, [r4, 0x22]
+ movs r0, 0x6
+ strh r0, [r4, 0x8]
+ strh r2, [r4, 0xA]
+ b _080D4AC8
+_080D4A38:
+ strh r2, [r4, 0xA]
+ b _080D4ABA
+_080D4A3C:
+ adds r0, r4, 0
+ bl sub_80D4AD0
+ movs r0, 0x16
+ ldrsh r1, [r4, r0]
+ lsls r1, 1
+ ldrh r0, [r4, 0x14]
+ subs r0, r1
+ strh r0, [r4, 0x14]
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x7
+ ble _080D4AC8
+ b _080D4ABA
+_080D4A5E:
+ adds r0, r4, 0
+ bl sub_80D4AD0
+ movs r1, 0x16
+ ldrsh r0, [r4, r1]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 1
+ ldrh r0, [r4, 0x12]
+ subs r0, r1
+ strh r0, [r4, 0x12]
+ adds r0, 0x10
+ lsls r0, 16
+ movs r1, 0x88
+ lsls r1, 17
+ cmp r0, r1
+ bls _080D4AC8
+ ldrh r0, [r4, 0x20]
+ adds r0, 0x1
+ strh r0, [r4, 0x20]
+ movs r0, 0
+ strh r0, [r4, 0xA]
+ b _080D4ABA
+_080D4A8C:
+ adds r0, r4, 0
+ bl sub_80D4AD0
+ movs r0, 0x16
+ ldrsh r1, [r4, r0]
+ lsls r1, 1
+ ldrh r0, [r4, 0x14]
+ subs r0, r1
+ strh r0, [r4, 0x14]
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x7
+ ble _080D4AC8
+ movs r0, 0x2
+ strh r0, [r4, 0x8]
+ b _080D4AC8
+_080D4AB2:
+ movs r1, 0x18
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080D4AC8
+_080D4ABA:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _080D4AC8
+_080D4AC2:
+ adds r0, r2, 0
+ bl move_anim_task_del
+_080D4AC8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D4988
+
+ thumb_func_start sub_80D4AD0
+sub_80D4AD0: @ 80D4AD0
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ ldrh r0, [r6, 0xC]
+ adds r0, 0x1
+ strh r0, [r6, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080D4B2A
+ movs r0, 0
+ strh r0, [r6, 0xC]
+ ldr r0, _080D4B30
+ movs r2, 0xE
+ ldrsh r1, [r6, r2]
+ movs r3, 0x10
+ ldrsh r2, [r6, r3]
+ movs r3, 0xA
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x40
+ beq _080D4B2A
+ ldr r5, _080D4B34
+ lsls r4, r0, 4
+ adds r4, r0
+ lsls r4, 2
+ adds r0, r4, r5
+ movs r1, 0x10
+ strh r1, [r0, 0x2E]
+ ldrh r1, [r6, 0x12]
+ strh r1, [r0, 0x32]
+ ldrh r1, [r6, 0x14]
+ strh r1, [r0, 0x36]
+ ldrh r1, [r6, 0x1A]
+ strh r1, [r0, 0x38]
+ bl sub_80786EC
+ adds r5, 0x1C
+ adds r4, r5
+ ldr r0, _080D4B38
+ str r0, [r4]
+ ldrh r0, [r6, 0x18]
+ adds r0, 0x1
+ strh r0, [r6, 0x18]
+_080D4B2A:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D4B30: .4byte gSpriteTemplate_83D9378
+_080D4B34: .4byte gSprites
+_080D4B38: .4byte sub_80D4B3C
+ thumb_func_end sub_80D4AD0
+
+ thumb_func_start sub_80D4B3C
+sub_80D4B3C: @ 80D4B3C
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ bl sub_8078718
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D4B96
+ ldrh r0, [r6, 0x24]
+ ldrh r1, [r6, 0x20]
+ adds r0, r1
+ strh r0, [r6, 0x20]
+ ldrh r0, [r6, 0x26]
+ ldrh r1, [r6, 0x22]
+ adds r0, r1
+ strh r0, [r6, 0x22]
+ movs r0, 0x6
+ strh r0, [r6, 0x2E]
+ bl Random
+ movs r4, 0x1F
+ adds r1, r4, 0
+ ands r1, r0
+ ldr r5, _080D4B9C
+ adds r1, r5
+ ldrh r0, [r6, 0x20]
+ adds r1, r0
+ strh r1, [r6, 0x32]
+ bl Random
+ ands r4, r0
+ adds r4, r5
+ ldrh r1, [r6, 0x22]
+ adds r4, r1
+ strh r4, [r6, 0x36]
+ bl Random
+ movs r1, 0x7
+ ands r1, r0
+ mvns r1, r1
+ strh r1, [r6, 0x38]
+ adds r0, r6, 0
+ bl sub_80786EC
+ ldr r0, _080D4BA0
+ str r0, [r6, 0x1C]
+_080D4B96:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D4B9C: .4byte 0x0000fff0
+_080D4BA0: .4byte sub_80D4BA4
+ thumb_func_end sub_80D4B3C
+
+ thumb_func_start sub_80D4BA4
+sub_80D4BA4: @ 80D4BA4
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ bl sub_8078718
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D4BE0
+ movs r4, 0
+ ldr r6, _080D4BE8
+_080D4BB6:
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r2, r0, r6
+ ldr r1, [r2]
+ ldr r0, _080D4BEC
+ cmp r1, r0
+ bne _080D4BD6
+ movs r0, 0x1
+ strh r0, [r2, 0x1C]
+ ldrh r0, [r2, 0x18]
+ subs r0, 0x1
+ strh r0, [r2, 0x18]
+ adds r0, r5, 0
+ bl DestroySprite
+_080D4BD6:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0xF
+ bls _080D4BB6
+_080D4BE0:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D4BE8: .4byte gTasks
+_080D4BEC: .4byte sub_80D4988
+ thumb_func_end sub_80D4BA4
+
+ thumb_func_start sub_80D4BF0
+sub_80D4BF0: @ 80D4BF0
+ ldr r2, _080D4C10
+ ldrh r1, [r2]
+ strh r1, [r0, 0x20]
+ ldrh r1, [r2, 0x2]
+ strh r1, [r0, 0x22]
+ ldrh r1, [r2, 0x4]
+ strh r1, [r0, 0x2E]
+ ldrh r1, [r2, 0x6]
+ strh r1, [r0, 0x30]
+ ldrh r1, [r2, 0x8]
+ strh r1, [r0, 0x32]
+ ldrh r1, [r2, 0xA]
+ strh r1, [r0, 0x34]
+ ldr r1, _080D4C14
+ str r1, [r0, 0x1C]
+ bx lr
+ .align 2, 0
+_080D4C10: .4byte gUnknown_03004B00
+_080D4C14: .4byte sub_80D4C18
+ thumb_func_end sub_80D4BF0
+
+ thumb_func_start sub_80D4C18
+sub_80D4C18: @ 80D4C18
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x36]
+ ldrh r1, [r4, 0x2E]
+ subs r0, r1
+ strh r0, [r4, 0x36]
+ movs r1, 0x36
+ ldrsh r0, [r4, r1]
+ movs r1, 0xA
+ bl __divsi3
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x30]
+ ldrh r2, [r4, 0x38]
+ adds r0, r2
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x38]
+ movs r1, 0x38
+ ldrsh r0, [r4, r1]
+ movs r2, 0x32
+ ldrsh r1, [r4, r2]
+ bl Sin
+ strh r0, [r4, 0x24]
+ ldrh r0, [r4, 0x34]
+ subs r0, 0x1
+ strh r0, [r4, 0x34]
+ lsls r0, 16
+ cmp r0, 0
+ bne _080D4C5C
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080D4C5C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D4C18
+
+ thumb_func_start sub_80D4C64
+sub_80D4C64: @ 80D4C64
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x30]
+ ldrh r1, [r4, 0x34]
+ adds r0, r1
+ strh r0, [r4, 0x34]
+ ldrh r1, [r4, 0x32]
+ ldrh r2, [r4, 0x36]
+ adds r1, r2
+ strh r1, [r4, 0x36]
+ lsls r0, 16
+ asrs r0, 23
+ strh r0, [r4, 0x24]
+ lsls r1, 16
+ asrs r1, 23
+ strh r1, [r4, 0x26]
+ ldrh r0, [r4, 0x2E]
+ subs r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ cmp r0, 0
+ bne _080D4C9C
+ adds r0, r4, 0
+ bl FreeSpriteOamMatrix
+ adds r0, r4, 0
+ bl DestroySprite
+_080D4C9C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D4C64
+
+ thumb_func_start sub_80D4CA4
+sub_80D4CA4: @ 80D4CA4
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r1, 0x1
+ bl sub_80787B0
+ ldr r5, _080D4CE0
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x30]
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x32]
+ ldr r1, _080D4CE4
+ ldrh r0, [r1, 0x4]
+ strh r0, [r4, 0x34]
+ ldrh r0, [r1, 0x6]
+ strh r0, [r4, 0x36]
+ ldr r0, _080D4CE8
+ str r0, [r4, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D4CE0: .4byte gUnknown_0202F7C9
+_080D4CE4: .4byte gUnknown_03004B00
+_080D4CE8: .4byte sub_80D4CEC
+ thumb_func_end sub_80D4CA4
+
+ thumb_func_start sub_80D4CEC
+sub_80D4CEC: @ 80D4CEC
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ movs r0, 0x30
+ ldrsh r1, [r4, r0]
+ movs r2, 0x20
+ ldrsh r0, [r4, r2]
+ subs r6, r1, r0
+ movs r0, 0x32
+ ldrsh r1, [r4, r0]
+ movs r2, 0x22
+ ldrsh r0, [r4, r2]
+ subs r5, r1, r0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ muls r0, r6
+ movs r2, 0x34
+ ldrsh r1, [r4, r2]
+ bl __divsi3
+ strh r0, [r4, 0x24]
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ muls r0, r5
+ movs r2, 0x34
+ ldrsh r1, [r4, r2]
+ bl __divsi3
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x38]
+ adds r0, 0x1
+ strh r0, [r4, 0x38]
+ lsls r0, 16
+ asrs r0, 16
+ movs r2, 0x36
+ ldrsh r1, [r4, r2]
+ cmp r0, r1
+ bne _080D4D44
+ movs r0, 0
+ strh r0, [r4, 0x38]
+ adds r0, r4, 0
+ adds r1, r6, 0
+ adds r2, r5, 0
+ bl sub_80D4D64
+_080D4D44:
+ movs r0, 0x34
+ ldrsh r1, [r4, r0]
+ movs r2, 0x2E
+ ldrsh r0, [r4, r2]
+ cmp r1, r0
+ bne _080D4D56
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080D4D56:
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D4CEC
+
+ thumb_func_start sub_80D4D64
+sub_80D4D64: @ 80D4D64
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x18
+ adds r4, r1, 0
+ adds r5, r2, 0
+ movs r2, 0x2E
+ ldrsh r1, [r0, r2]
+ lsrs r2, r1, 31
+ adds r1, r2
+ lsls r1, 15
+ lsrs r1, 16
+ str r1, [sp]
+ ldrh r1, [r0, 0x24]
+ ldrh r3, [r0, 0x20]
+ adds r1, r3
+ lsls r1, 16
+ lsrs r1, 16
+ mov r8, r1
+ ldrh r1, [r0, 0x26]
+ ldrh r0, [r0, 0x22]
+ adds r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ mov r10, r1
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0xA
+ bl __umodsi3
+ adds r0, r5, r0
+ subs r0, 0x5
+ lsls r0, 16
+ lsrs r0, 16
+ mov r9, r0
+ bl Random
+ negs r4, r4
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0xA
+ bl __umodsi3
+ adds r4, r0
+ subs r4, 0x5
+ lsls r4, 16
+ lsrs r7, r4, 16
+ movs r6, 0
+ mov r0, r8
+ lsls r0, 16
+ mov r8, r0
+ mov r1, r10
+ lsls r1, 16
+ str r1, [sp, 0xC]
+ ldr r2, [sp]
+ lsls r2, 16
+ str r2, [sp, 0x10]
+ asrs r1, 16
+ lsls r0, r7, 16
+ asrs r5, r0, 16
+ str r0, [sp, 0x14]
+ negs r3, r5
+ str r3, [sp, 0x4]
+ asrs r0, r2, 16
+ adds r1, r0
+ lsls r1, 16
+ mov r10, r1
+_080D4DF2:
+ ldr r0, _080D4E34
+ mov r2, r8
+ asrs r1, r2, 16
+ mov r3, r10
+ asrs r2, r3, 16
+ movs r3, 0x82
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r1, _080D4E38
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r4, r0, r1
+ movs r0, 0x14
+ strh r0, [r4, 0x2E]
+ mov r0, r9
+ strh r0, [r4, 0x30]
+ ldr r0, _080D4E3C
+ ldrb r0, [r0]
+ bl sub_8079E90
+ subs r0, 0x1
+ adds r1, r4, 0
+ adds r1, 0x43
+ strb r0, [r1]
+ cmp r5, 0
+ bge _080D4E40
+ mov r1, sp
+ ldrh r1, [r1, 0x4]
+ strh r1, [r4, 0x32]
+ b _080D4E42
+ .align 2, 0
+_080D4E34: .4byte gSpriteTemplate_83D9420
+_080D4E38: .4byte gSprites
+_080D4E3C: .4byte gUnknown_0202F7C8
+_080D4E40:
+ strh r7, [r4, 0x32]
+_080D4E42:
+ lsls r0, r6, 16
+ movs r2, 0x80
+ lsls r2, 9
+ adds r0, r2
+ lsrs r6, r0, 16
+ cmp r0, 0
+ ble _080D4DF2
+ movs r6, 0
+ ldr r3, [sp, 0xC]
+ asrs r1, r3, 16
+ ldr r0, [sp, 0x14]
+ asrs r5, r0, 16
+ negs r2, r5
+ str r2, [sp, 0x8]
+ ldr r3, [sp, 0x10]
+ asrs r0, r3, 16
+ subs r1, r0
+ lsls r1, 16
+ mov r10, r1
+_080D4E68:
+ ldr r0, _080D4EAC
+ mov r2, r8
+ asrs r1, r2, 16
+ mov r3, r10
+ asrs r2, r3, 16
+ movs r3, 0x82
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r1, _080D4EB0
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r4, r0, r1
+ movs r0, 0x14
+ strh r0, [r4, 0x2E]
+ mov r0, r9
+ strh r0, [r4, 0x30]
+ ldr r0, _080D4EB4
+ ldrb r0, [r0]
+ bl sub_8079E90
+ subs r0, 0x1
+ adds r1, r4, 0
+ adds r1, 0x43
+ strb r0, [r1]
+ cmp r5, 0
+ ble _080D4EB8
+ mov r1, sp
+ ldrh r1, [r1, 0x8]
+ strh r1, [r4, 0x32]
+ b _080D4EBA
+ .align 2, 0
+_080D4EAC: .4byte gSpriteTemplate_83D9420
+_080D4EB0: .4byte gSprites
+_080D4EB4: .4byte gUnknown_0202F7C8
+_080D4EB8:
+ strh r7, [r4, 0x32]
+_080D4EBA:
+ lsls r0, r6, 16
+ movs r2, 0x80
+ lsls r2, 9
+ adds r0, r2
+ lsrs r6, r0, 16
+ cmp r0, 0
+ ble _080D4E68
+ 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_80D4D64
+
+ thumb_func_start sub_80D4ED8
+sub_80D4ED8: @ 80D4ED8
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _080D4F0C
+ ldrh r0, [r0]
+ strh r0, [r4, 0x2E]
+ movs r0, 0x3C
+ strh r0, [r4, 0x30]
+ movs r0, 0x9
+ strh r0, [r4, 0x32]
+ movs r0, 0x1E
+ strh r0, [r4, 0x34]
+ movs r0, 0xFE
+ lsls r0, 8
+ strh r0, [r4, 0x36]
+ ldr r1, _080D4F10
+ adds r0, r4, 0
+ bl oamt_set_x3A_32
+ ldr r1, _080D4F14
+ str r1, [r4, 0x1C]
+ adds r0, r4, 0
+ bl _call_via_r1
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D4F0C: .4byte gUnknown_03004B00
+_080D4F10: .4byte move_anim_8072740
+_080D4F14: .4byte sub_8078174
+ thumb_func_end sub_80D4ED8
+
+ thumb_func_start sub_80D4F18
+sub_80D4F18: @ 80D4F18
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldr r5, _080D4F50
+ movs r0, 0
+ ldrsh r1, [r5, r0]
+ adds r0, r4, 0
+ bl sub_807867C
+ ldrh r0, [r5, 0x2]
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r4, 0x22]
+ ldrh r0, [r5, 0x8]
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r5, 0x4]
+ strh r0, [r4, 0x30]
+ ldrh r0, [r5, 0x6]
+ strh r0, [r4, 0x32]
+ ldr r0, _080D4F54
+ str r0, [r4, 0x1C]
+ ldr r1, _080D4F58
+ adds r0, r4, 0
+ bl oamt_set_x3A_32
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D4F50: .4byte gUnknown_03004B00
+_080D4F54: .4byte sub_8078394
+_080D4F58: .4byte move_anim_8072740
+ thumb_func_end sub_80D4F18
+
+ thumb_func_start sub_80D4F5C
+sub_80D4F5C: @ 80D4F5C
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_8078650
+ ldr r0, _080D4F90
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D4F98
+ ldr r2, _080D4F94
+ ldrh r0, [r4, 0x20]
+ ldrh r1, [r2]
+ subs r0, r1
+ strh r0, [r4, 0x20]
+ ldrh r0, [r2, 0x2]
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r4, 0x22]
+ ldrh r0, [r2, 0x8]
+ negs r0, r0
+ strh r0, [r4, 0x32]
+ adds r1, r2, 0
+ b _080D4FAE
+ .align 2, 0
+_080D4F90: .4byte gUnknown_0202F7C8
+_080D4F94: .4byte gUnknown_03004B00
+_080D4F98:
+ ldr r1, _080D4FC4
+ ldrh r0, [r1]
+ ldrh r2, [r4, 0x20]
+ adds r0, r2
+ strh r0, [r4, 0x20]
+ ldrh r0, [r1, 0x2]
+ ldrh r2, [r4, 0x22]
+ adds r0, r2
+ strh r0, [r4, 0x22]
+ ldrh r0, [r1, 0x8]
+ strh r0, [r4, 0x32]
+_080D4FAE:
+ ldrh r0, [r1, 0x4]
+ strh r0, [r4, 0x30]
+ ldrh r0, [r1, 0x6]
+ strh r0, [r4, 0x36]
+ ldrh r0, [r1, 0xA]
+ strh r0, [r4, 0x34]
+ ldr r0, _080D4FC8
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D4FC4: .4byte gUnknown_03004B00
+_080D4FC8: .4byte sub_80D5038
+ thumb_func_end sub_80D4F5C
+
+ thumb_func_start sub_80D4FCC
+sub_80D4FCC: @ 80D4FCC
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _080D4FF8
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D5000
+ ldr r2, _080D4FFC
+ ldrh r0, [r4, 0x20]
+ ldrh r1, [r2]
+ subs r0, r1
+ strh r0, [r4, 0x20]
+ ldrh r0, [r2, 0x2]
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r4, 0x22]
+ ldrh r0, [r2, 0x8]
+ strh r0, [r4, 0x32]
+ adds r1, r2, 0
+ b _080D5018
+ .align 2, 0
+_080D4FF8: .4byte gUnknown_0202F7C8
+_080D4FFC: .4byte gUnknown_03004B00
+_080D5000:
+ ldr r1, _080D5030
+ ldrh r0, [r1]
+ ldrh r2, [r4, 0x20]
+ adds r0, r2
+ strh r0, [r4, 0x20]
+ ldrh r0, [r1, 0x2]
+ ldrh r2, [r4, 0x22]
+ adds r0, r2
+ strh r0, [r4, 0x22]
+ ldrh r0, [r1, 0x8]
+ negs r0, r0
+ strh r0, [r4, 0x32]
+_080D5018:
+ ldrh r0, [r1, 0x4]
+ strh r0, [r4, 0x30]
+ ldrh r0, [r1, 0x6]
+ strh r0, [r4, 0x36]
+ ldrh r0, [r1, 0xA]
+ strh r0, [r4, 0x34]
+ ldr r0, _080D5034
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D5030: .4byte gUnknown_03004B00
+_080D5034: .4byte sub_80D5038
+ thumb_func_end sub_80D4FCC
+
+ thumb_func_start sub_80D5038
+sub_80D5038: @ 80D5038
+ push {lr}
+ adds r2, r0, 0
+ ldrh r0, [r2, 0x2E]
+ adds r0, 0x1
+ strh r0, [r2, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ movs r3, 0x36
+ ldrsh r1, [r2, r3]
+ cmp r0, r1
+ bge _080D505E
+ ldrh r0, [r2, 0x32]
+ ldrh r1, [r2, 0x24]
+ adds r0, r1
+ strh r0, [r2, 0x24]
+ ldrh r0, [r2, 0x34]
+ ldrh r3, [r2, 0x26]
+ adds r0, r3
+ strh r0, [r2, 0x26]
+_080D505E:
+ movs r0, 0x2E
+ ldrsh r1, [r2, r0]
+ movs r3, 0x30
+ ldrsh r0, [r2, r3]
+ cmp r1, r0
+ bne _080D5070
+ adds r0, r2, 0
+ bl move_anim_8074EE0
+_080D5070:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D5038
+
+ thumb_func_start sub_80D5074
+sub_80D5074: @ 80D5074
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_8078650
+ ldr r0, _080D5098
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D50A0
+ ldr r0, _080D509C
+ ldrh r1, [r4, 0x20]
+ ldrh r2, [r0]
+ subs r1, r2
+ strh r1, [r4, 0x20]
+ b _080D50B2
+ .align 2, 0
+_080D5098: .4byte gUnknown_0202F7C8
+_080D509C: .4byte gUnknown_03004B00
+_080D50A0:
+ ldr r0, _080D50E0
+ ldrh r1, [r0]
+ ldrh r2, [r4, 0x20]
+ adds r1, r2
+ strh r1, [r4, 0x20]
+ adds r2, r4, 0
+ adds r2, 0x43
+ movs r1, 0x8
+ strb r1, [r2]
+_080D50B2:
+ adds r2, r0, 0
+ ldrh r0, [r2, 0x2]
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ movs r1, 0
+ strh r0, [r4, 0x22]
+ ldrh r0, [r2, 0x4]
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r2, 0x6]
+ strh r0, [r4, 0x30]
+ ldrh r0, [r2, 0x8]
+ strh r0, [r4, 0x32]
+ ldrh r0, [r2, 0xA]
+ strh r0, [r4, 0x34]
+ ldrh r0, [r2, 0xC]
+ strh r0, [r4, 0x36]
+ strh r1, [r4, 0x38]
+ ldr r0, _080D50E4
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D50E0: .4byte gUnknown_03004B00
+_080D50E4: .4byte sub_80D50E8
+ thumb_func_end sub_80D5074
+
+ thumb_func_start sub_80D50E8
+sub_80D50E8: @ 80D50E8
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x34
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080D5170
+ movs r2, 0x38
+ ldrsh r1, [r4, r2]
+ ldr r0, _080D5154
+ cmp r1, r0
+ ble _080D5106
+ adds r1, r4, 0
+ adds r1, 0x43
+ movs r0, 0x1
+ strb r0, [r1]
+_080D5106:
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ ldrh r1, [r4, 0x38]
+ lsls r1, 16
+ asrs r1, 24
+ ldrh r2, [r4, 0x30]
+ adds r1, r2
+ lsls r1, 16
+ asrs r1, 16
+ bl Sin
+ strh r0, [r4, 0x24]
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ ldrh r1, [r4, 0x38]
+ lsls r1, 16
+ asrs r1, 24
+ ldrh r2, [r4, 0x30]
+ adds r1, r2
+ lsls r1, 16
+ asrs r1, 16
+ bl Cos
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x32]
+ ldrh r2, [r4, 0x2E]
+ adds r1, r0, r2
+ strh r1, [r4, 0x2E]
+ ldrh r0, [r4, 0x36]
+ ldrh r2, [r4, 0x38]
+ adds r0, r2
+ strh r0, [r4, 0x38]
+ lsls r0, r1, 16
+ asrs r0, 16
+ cmp r0, 0xFF
+ ble _080D515C
+ ldr r2, _080D5158
+ b _080D5164
+ .align 2, 0
+_080D5154: .4byte 0x00002710
+_080D5158: .4byte 0xffffff00
+_080D515C:
+ cmp r0, 0
+ bge _080D5168
+ movs r2, 0x80
+ lsls r2, 1
+_080D5164:
+ adds r0, r1, r2
+ strh r0, [r4, 0x2E]
+_080D5168:
+ ldrh r0, [r4, 0x34]
+ subs r0, 0x1
+ strh r0, [r4, 0x34]
+ b _080D5176
+_080D5170:
+ adds r0, r4, 0
+ bl move_anim_8074EE0
+_080D5176:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D50E8
+
+ thumb_func_start sub_80D517C
+sub_80D517C: @ 80D517C
+ push {lr}
+ movs r1, 0
+ strh r1, [r0, 0x20]
+ strh r1, [r0, 0x22]
+ movs r1, 0x3C
+ strh r1, [r0, 0x2E]
+ movs r1, 0x8C
+ strh r1, [r0, 0x32]
+ movs r1, 0x50
+ strh r1, [r0, 0x36]
+ ldr r1, _080D51A0
+ str r1, [r0, 0x1C]
+ ldr r1, _080D51A4
+ bl oamt_set_x3A_32
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D51A0: .4byte sub_8078B34
+_080D51A4: .4byte move_anim_8072740
+ thumb_func_end sub_80D517C
+
+ thumb_func_start sub_80D51A8
+sub_80D51A8: @ 80D51A8
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ ldr r5, _080D5200
+ ldrb r0, [r5]
+ bl battle_side_get_owner
+ adds r4, r0, 0
+ ldr r0, _080D5204
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r4, 24
+ lsls r0, 24
+ cmp r4, r0
+ bne _080D51EE
+ movs r0, 0x2
+ bl battle_get_side_with_given_state
+ ldrb r1, [r5]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r1, r0
+ beq _080D51E6
+ movs r0, 0x3
+ bl battle_get_side_with_given_state
+ ldrb r1, [r5]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r1, r0
+ bne _080D51EE
+_080D51E6:
+ ldr r1, _080D5208
+ ldrh r0, [r1, 0x4]
+ negs r0, r0
+ strh r0, [r1, 0x4]
+_080D51EE:
+ ldr r1, _080D520C
+ str r1, [r6, 0x1C]
+ adds r0, r6, 0
+ bl _call_via_r1
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D5200: .4byte gUnknown_0202F7C8
+_080D5204: .4byte gUnknown_0202F7C9
+_080D5208: .4byte gUnknown_03004B00
+_080D520C: .4byte sub_8079534
+ thumb_func_end sub_80D51A8
+
+ thumb_func_start sub_80D5210
+sub_80D5210: @ 80D5210
+ ldr r2, _080D5224
+ ldrh r1, [r2]
+ negs r1, r1
+ strh r1, [r2]
+ ldrh r1, [r2, 0x4]
+ negs r1, r1
+ strh r1, [r2, 0x4]
+ ldr r1, _080D5228
+ str r1, [r0, 0x1C]
+ bx lr
+ .align 2, 0
+_080D5224: .4byte gUnknown_03004B00
+_080D5228: .4byte sub_8079534
+ thumb_func_end sub_80D5210
+
+ thumb_func_start sub_80D522C
+sub_80D522C: @ 80D522C
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x1
+ bl sub_80787B0
+ ldr r0, _080D524C
+ ldrh r0, [r0, 0x4]
+ movs r1, 0
+ strh r0, [r4, 0x3C]
+ strh r1, [r4, 0x2E]
+ ldr r0, _080D5250
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D524C: .4byte gUnknown_03004B00
+_080D5250: .4byte sub_80D5254
+ thumb_func_end sub_80D522C
+
+ thumb_func_start sub_80D5254
+sub_80D5254: @ 80D5254
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ bl sub_80D5348
+ ldrh r0, [r5, 0x2E]
+ adds r0, 0x1
+ strh r0, [r5, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x12
+ bne _080D529E
+ movs r0, 0x19
+ strh r0, [r5, 0x2E]
+ ldrh r0, [r5, 0x20]
+ strh r0, [r5, 0x30]
+ ldr r4, _080D52A4
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x32]
+ ldrh r0, [r5, 0x22]
+ strh r0, [r5, 0x34]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x36]
+ adds r0, r5, 0
+ bl obj_translate_based_on_private_1_2_3_4
+ ldr r0, _080D52A8
+ str r0, [r5, 0x1C]
+_080D529E:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D52A4: .4byte gUnknown_0202F7C9
+_080D52A8: .4byte sub_80D52AC
+ thumb_func_end sub_80D5254
+
+ thumb_func_start sub_80D52AC
+sub_80D52AC: @ 80D52AC
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ bl sub_8078B5C
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D52F4
+ movs r4, 0
+ strh r4, [r6, 0x2E]
+ ldr r5, _080D52EC
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r6, 0x20]
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r6, 0x22]
+ strh r4, [r6, 0x26]
+ strh r4, [r6, 0x24]
+ ldr r1, _080D52F0
+ str r1, [r6, 0x1C]
+ adds r0, r6, 0
+ bl _call_via_r1
+ b _080D531E
+ .align 2, 0
+_080D52EC: .4byte gUnknown_0202F7C9
+_080D52F0: .4byte sub_80D5324
+_080D52F4:
+ movs r1, 0x3C
+ ldrsh r0, [r6, r1]
+ movs r1, 0x1C
+ bl Sin
+ ldrh r1, [r6, 0x24]
+ adds r0, r1
+ strh r0, [r6, 0x24]
+ movs r1, 0x3C
+ ldrsh r0, [r6, r1]
+ movs r1, 0x1C
+ bl Cos
+ ldrh r1, [r6, 0x26]
+ adds r0, r1
+ strh r0, [r6, 0x26]
+ ldrh r0, [r6, 0x3C]
+ adds r0, 0x14
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r6, 0x3C]
+_080D531E:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D52AC
+
+ thumb_func_start sub_80D5324
+sub_80D5324: @ 80D5324
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_80D5348
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1F
+ bne _080D5340
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080D5340:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D5324
+
+ thumb_func_start sub_80D5348
+sub_80D5348: @ 80D5348
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x3C
+ ldrsh r0, [r4, r1]
+ movs r1, 0x1C
+ bl Sin
+ strh r0, [r4, 0x24]
+ movs r1, 0x3C
+ ldrsh r0, [r4, r1]
+ movs r1, 0x1C
+ bl Cos
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x3C]
+ adds r0, 0x14
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x3C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D5348
+
+ thumb_func_start sub_80D5374
+sub_80D5374: @ 80D5374
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r1, _080D53A8
+ ldrh r0, [r1]
+ ldrh r2, [r4, 0x20]
+ adds r0, r2
+ strh r0, [r4, 0x20]
+ ldrh r0, [r1, 0x2]
+ ldrh r2, [r4, 0x22]
+ adds r0, r2
+ strh r0, [r4, 0x22]
+ ldrh r0, [r1, 0x4]
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r1, 0x6]
+ strh r0, [r4, 0x30]
+ ldrh r0, [r1, 0x8]
+ strh r0, [r4, 0x32]
+ ldr r1, _080D53AC
+ adds r0, r4, 0
+ bl oamt_set_x3A_32
+ ldr r0, _080D53B0
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D53A8: .4byte gUnknown_03004B00
+_080D53AC: .4byte move_anim_8072740
+_080D53B0: .4byte sub_8078364
+ thumb_func_end sub_80D5374
+
+ thumb_func_start sub_80D53B4
+sub_80D53B4: @ 80D53B4
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x1
+ bl sub_80787B0
+ ldr r1, _080D53E8
+ ldrh r0, [r1, 0x4]
+ strh r0, [r4, 0x30]
+ ldrh r0, [r1, 0x6]
+ strh r0, [r4, 0x2E]
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r0, _080D53EC
+ str r0, [r4, 0x1C]
+ ldr r1, _080D53F0
+ adds r0, r4, 0
+ bl oamt_set_x3A_32
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D53E8: .4byte gUnknown_03004B00
+_080D53EC: .4byte sub_80782D8
+_080D53F0: .4byte sub_80D53F4
+ thumb_func_end sub_80D53B4
+
+ thumb_func_start sub_80D53F4
+sub_80D53F4: @ 80D53F4
+ push {lr}
+ adds r3, r0, 0
+ adds r3, 0x3E
+ ldrb r2, [r3]
+ movs r1, 0x5
+ negs r1, r1
+ ands r1, r2
+ strb r1, [r3]
+ ldrh r1, [r0, 0x30]
+ movs r2, 0
+ strh r1, [r0, 0x2E]
+ strh r2, [r0, 0x30]
+ ldr r1, _080D5418
+ str r1, [r0, 0x1C]
+ bl _call_via_r1
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D5418: .4byte sub_80D541C
+ thumb_func_end sub_80D53F4
+
+ thumb_func_start sub_80D541C
+sub_80D541C: @ 80D541C
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ ldrh r1, [r4, 0x32]
+ lsls r1, 16
+ asrs r1, 24
+ bl Sin
+ strh r0, [r4, 0x24]
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ ldrh r1, [r4, 0x32]
+ lsls r1, 16
+ asrs r1, 24
+ bl Cos
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x30]
+ adds r0, 0xA
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x30]
+ ldrh r0, [r4, 0x32]
+ adds r0, 0xD0
+ strh r0, [r4, 0x32]
+ ldrh r0, [r4, 0x2E]
+ subs r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ bne _080D5468
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080D5468:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D541C
+
+ thumb_func_start sub_80D5470
+sub_80D5470: @ 80D5470
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ ldr r0, _080D54D0
+ adds r4, r0
+ movs r0, 0
+ bl obj_id_for_side_relative_to_move
+ lsls r0, 24
+ lsrs r0, 24
+ movs r5, 0
+ strh r0, [r4, 0x26]
+ strh r5, [r4, 0x8]
+ strh r5, [r4, 0xA]
+ strh r5, [r4, 0xC]
+ strh r5, [r4, 0xE]
+ ldr r2, _080D54D4
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r0, [r0, 0x22]
+ strh r0, [r4, 0x10]
+ ldr r0, _080D54D8
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x12]
+ strh r5, [r4, 0x14]
+ ldrh r0, [r4, 0x26]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0
+ bl sub_8078E70
+ ldr r0, _080D54DC
+ str r0, [r4]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D54D0: .4byte gTasks
+_080D54D4: .4byte gSprites
+_080D54D8: .4byte gUnknown_0202F7C8
+_080D54DC: .4byte sub_80D54E0
+ thumb_func_end sub_80D5470
+
+ thumb_func_start sub_80D54E0
+sub_80D54E0: @ 80D54E0
+ push {r4,r5,lr}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, _080D5508
+ adds r4, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x6
+ bls _080D54FC
+ b _080D57BA
+_080D54FC:
+ lsls r0, 2
+ ldr r1, _080D550C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080D5508: .4byte gTasks
+_080D550C: .4byte _080D5510
+ .align 2, 0
+_080D5510:
+ .4byte _080D552C
+ .4byte _080D5552
+ .4byte _080D5604
+ .4byte _080D5664
+ .4byte _080D5682
+ .4byte _080D5758
+ .4byte _080D57AC
+_080D552C:
+ ldrh r1, [r4, 0x26]
+ lsls r1, 24
+ lsrs r1, 24
+ movs r3, 0x80
+ lsls r3, 1
+ movs r0, 0xE0
+ str r0, [sp]
+ movs r0, 0x80
+ lsls r0, 2
+ str r0, [sp, 0x4]
+ movs r0, 0x20
+ str r0, [sp, 0x8]
+ adds r0, r4, 0
+ adds r2, r3, 0
+ bl sub_8079C08
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+_080D5552:
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080D559A
+ movs r0, 0
+ strh r0, [r4, 0xA]
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x1
+ strh r0, [r4, 0xC]
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080D5588
+ ldr r2, _080D5584
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0x3
+ b _080D5598
+ .align 2, 0
+_080D5584: .4byte gSprites
+_080D5588:
+ ldr r2, _080D55FC
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldr r1, _080D5600
+_080D5598:
+ strh r1, [r0, 0x24]
+_080D559A:
+ movs r1, 0x12
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080D55C8
+ ldrh r0, [r4, 0xE]
+ adds r0, 0x1
+ strh r0, [r4, 0xE]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ ble _080D55C8
+ movs r0, 0
+ strh r0, [r4, 0xE]
+ ldr r2, _080D55FC
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r0, 0x22]
+ adds r1, 0x1
+ strh r1, [r0, 0x22]
+_080D55C8:
+ adds r0, r4, 0
+ bl sub_8079C74
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0
+ beq _080D55D8
+ b _080D57BA
+_080D55D8:
+ ldrh r0, [r4, 0x26]
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8079A64
+ ldr r2, _080D55FC
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ strh r5, [r0, 0x24]
+ strh r5, [r4, 0xA]
+ strh r5, [r4, 0xC]
+ strh r5, [r4, 0xE]
+ b _080D57A0
+ .align 2, 0
+_080D55FC: .4byte gSprites
+_080D5600: .4byte 0x0000fffd
+_080D5604:
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ bgt _080D5614
+ b _080D57BA
+_080D5614:
+ movs r1, 0x12
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080D563E
+ ldrh r1, [r4, 0x26]
+ lsls r1, 24
+ lsrs r1, 24
+ movs r3, 0x80
+ lsls r3, 2
+ movs r0, 0xC0
+ lsls r0, 1
+ str r0, [sp]
+ movs r0, 0xF0
+ str r0, [sp, 0x4]
+ movs r0, 0x6
+ str r0, [sp, 0x8]
+ adds r0, r4, 0
+ movs r2, 0xE0
+ bl sub_8079C08
+ b _080D565E
+_080D563E:
+ ldrh r1, [r4, 0x26]
+ lsls r1, 24
+ lsrs r1, 24
+ movs r3, 0x80
+ lsls r3, 2
+ movs r0, 0xC0
+ lsls r0, 1
+ str r0, [sp]
+ movs r0, 0xC0
+ str r0, [sp, 0x4]
+ movs r0, 0x6
+ str r0, [sp, 0x8]
+ adds r0, r4, 0
+ movs r2, 0xE0
+ bl sub_8079C08
+_080D565E:
+ movs r0, 0
+ strh r0, [r4, 0xA]
+ b _080D57A0
+_080D5664:
+ adds r0, r4, 0
+ bl sub_8079C74
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D5672
+ b _080D57BA
+_080D5672:
+ ldrh r0, [r4, 0x26]
+ lsls r0, 24
+ lsrs r0, 24
+ adds r1, r5, 0
+ movs r2, 0x6
+ bl sub_80D57C4
+ b _080D57A0
+_080D5682:
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080D56D0
+ movs r0, 0
+ strh r0, [r4, 0xA]
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x1
+ strh r0, [r4, 0xC]
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080D56BC
+ ldr r2, _080D56B8
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r0, 0x26]
+ adds r1, 0x3
+ b _080D56CE
+ .align 2, 0
+_080D56B8: .4byte gSprites
+_080D56BC:
+ ldr r2, _080D5708
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r0, 0x26]
+ subs r1, 0x3
+_080D56CE:
+ strh r1, [r0, 0x26]
+_080D56D0:
+ ldrh r0, [r4, 0xE]
+ adds r0, 0x1
+ strh r0, [r4, 0xE]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x18
+ ble _080D57BA
+ movs r1, 0x12
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080D570C
+ ldrh r1, [r4, 0x26]
+ lsls r1, 24
+ lsrs r1, 24
+ movs r2, 0xC0
+ lsls r2, 1
+ movs r0, 0x80
+ lsls r0, 1
+ str r0, [sp]
+ str r0, [sp, 0x4]
+ movs r0, 0x8
+ str r0, [sp, 0x8]
+ adds r0, r4, 0
+ movs r3, 0xF0
+ bl sub_8079C08
+ b _080D572A
+ .align 2, 0
+_080D5708: .4byte gSprites
+_080D570C:
+ ldrh r1, [r4, 0x26]
+ lsls r1, 24
+ lsrs r1, 24
+ movs r2, 0xC0
+ lsls r2, 1
+ movs r0, 0x80
+ lsls r0, 1
+ str r0, [sp]
+ str r0, [sp, 0x4]
+ movs r0, 0x8
+ str r0, [sp, 0x8]
+ adds r0, r4, 0
+ movs r3, 0xC0
+ bl sub_8079C08
+_080D572A:
+ ldrh r1, [r4, 0xC]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080D5748
+ ldr r2, _080D5754
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r0, 0x26]
+ subs r1, 0x3
+ strh r1, [r0, 0x26]
+_080D5748:
+ movs r0, 0
+ strh r0, [r4, 0xA]
+ strh r0, [r4, 0xC]
+ strh r0, [r4, 0xE]
+ b _080D57A0
+ .align 2, 0
+_080D5754: .4byte gSprites
+_080D5758:
+ movs r1, 0x12
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080D5774
+ ldr r2, _080D57A8
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r0, 0x22]
+ subs r1, 0x1
+ strh r1, [r0, 0x22]
+_080D5774:
+ adds r0, r4, 0
+ bl sub_8079C74
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0
+ bne _080D57BA
+ ldr r2, _080D57A8
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r4, 0x10]
+ strh r1, [r0, 0x22]
+ ldrh r0, [r4, 0x26]
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8078F40
+ strh r5, [r4, 0xC]
+_080D57A0:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _080D57BA
+ .align 2, 0
+_080D57A8: .4byte gSprites
+_080D57AC:
+ movs r1, 0x14
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080D57BA
+ adds r0, r5, 0
+ bl move_anim_task_del
+_080D57BA:
+ add sp, 0xC
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D54E0
+
+ thumb_func_start sub_80D57C4
+sub_80D57C4: @ 80D57C4
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0xC
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r1, 24
+ lsrs r7, r1, 24
+ lsls r2, 24
+ lsrs r2, 24
+ mov r8, r2
+ adds r0, r4, 0
+ bl sub_80D5940
+ lsls r0, 16
+ lsrs r0, 16
+ mov r9, r0
+ ldr r1, _080D5814
+ lsls r0, r4, 4
+ adds r0, r4
+ lsls r0, 2
+ adds r0, r1
+ ldrh r4, [r0, 0x20]
+ ldr r0, _080D5818
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _080D581C
+ adds r0, r4, 0
+ subs r0, 0xC
+ lsls r0, 16
+ lsrs r4, r0, 16
+ movs r0, 0x1
+ b _080D5826
+ .align 2, 0
+_080D5814: .4byte gSprites
+_080D5818: .4byte gUnknown_0202F7C8
+_080D581C:
+ adds r0, r4, 0
+ adds r0, 0x10
+ lsls r0, 16
+ lsrs r4, r0, 16
+ movs r0, 0xFF
+_080D5826:
+ movs r6, 0
+ movs r5, 0
+ lsls r4, 16
+ str r4, [sp, 0x8]
+ mov r1, r9
+ lsls r1, 16
+ str r1, [sp, 0x4]
+ ldr r2, _080D58E0
+ mov r9, r2
+ lsls r0, 24
+ asrs r0, 24
+ str r0, [sp]
+ mov r3, r8
+ lsls r3, 1
+ mov r10, r3
+_080D5844:
+ ldr r0, _080D58E4
+ ldr r2, [sp, 0x8]
+ asrs r1, r2, 16
+ ldr r3, [sp, 0x4]
+ asrs r2, r3, 16
+ movs r3, 0x2
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x40
+ beq _080D58C6
+ ldr r1, _080D58E8
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r4, r0, r1
+ ldrh r2, [r4, 0x4]
+ lsls r1, r2, 22
+ lsrs r1, 22
+ lsls r0, r5, 2
+ adds r0, 0x40
+ adds r1, r0
+ ldr r3, _080D58EC
+ adds r0, r3, 0
+ ands r1, r0
+ ldr r3, _080D58F0
+ adds r0, r3, 0
+ ands r2, r0
+ orrs r2, r1
+ strh r2, [r4, 0x4]
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x4
+ bls _080D588E
+ movs r5, 0
+_080D588E:
+ lsls r2, r6, 2
+ mov r1, r9
+ adds r0, r2, r1
+ ldrh r0, [r0]
+ ldr r3, [sp]
+ adds r1, r0, 0
+ muls r1, r3
+ lsls r1, 16
+ asrs r1, 16
+ ldr r0, _080D58F4
+ adds r2, r0
+ movs r3, 0
+ ldrsh r2, [r2, r3]
+ adds r0, r4, 0
+ bl sub_80D5994
+ strh r7, [r4, 0x3A]
+ mov r0, r8
+ strh r0, [r4, 0x3C]
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ add r0, r10
+ ldr r1, _080D58F8
+ adds r0, r1
+ ldrh r1, [r0]
+ adds r1, 0x1
+ strh r1, [r0]
+_080D58C6:
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ cmp r6, 0x6
+ bls _080D5844
+ add sp, 0xC
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D58E0: .4byte gUnknown_083D96DC
+_080D58E4: .4byte gSpriteTemplate_83D96C4
+_080D58E8: .4byte gSprites
+_080D58EC: .4byte 0x000003ff
+_080D58F0: .4byte 0xfffffc00
+_080D58F4: .4byte gUnknown_083D96DC + 0x2
+_080D58F8: .4byte gUnknown_03004B28
+ thumb_func_end sub_80D57C4
+
+ thumb_func_start sub_80D58FC
+sub_80D58FC: @ 80D58FC
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_80D59B0
+ adds r0, r4, 0
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _080D5936
+ ldr r3, _080D593C
+ movs r0, 0x3C
+ ldrsh r1, [r4, r0]
+ lsls r1, 1
+ movs r0, 0x3A
+ ldrsh r2, [r4, r0]
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r1, r0
+ adds r3, 0x8
+ adds r1, r3
+ ldrh r0, [r1]
+ subs r0, 0x1
+ strh r0, [r1]
+ adds r0, r4, 0
+ bl DestroySprite
+_080D5936:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D593C: .4byte gTasks
+ thumb_func_end sub_80D58FC
+
+ thumb_func_start sub_80D5940
+sub_80D5940: @ 80D5940
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080D5978
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ ldrh r2, [r1, 0x26]
+ ldrh r0, [r1, 0x22]
+ adds r2, r0
+ adds r1, 0x29
+ movs r0, 0
+ ldrsb r0, [r1, r0]
+ adds r0, r2
+ lsls r0, 16
+ lsrs r4, r0, 16
+ ldr r0, _080D597C
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _080D5980
+ lsls r0, r4, 16
+ movs r1, 0x94
+ lsls r1, 15
+ b _080D5986
+ .align 2, 0
+_080D5978: .4byte gSprites
+_080D597C: .4byte gUnknown_0202F7C8
+_080D5980:
+ lsls r0, r4, 16
+ movs r1, 0xB0
+ lsls r1, 14
+_080D5986:
+ adds r0, r1
+ lsrs r4, r0, 16
+ adds r0, r4, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80D5940
+
+ thumb_func_start sub_80D5994
+sub_80D5994: @ 80D5994
+ movs r3, 0
+ strh r3, [r0, 0x2E]
+ strh r3, [r0, 0x30]
+ ldrh r3, [r0, 0x20]
+ lsls r3, 3
+ strh r3, [r0, 0x32]
+ ldrh r3, [r0, 0x22]
+ lsls r3, 3
+ strh r3, [r0, 0x34]
+ lsls r1, 3
+ strh r1, [r0, 0x36]
+ lsls r2, 3
+ strh r2, [r0, 0x38]
+ bx lr
+ thumb_func_end sub_80D5994
+
+ thumb_func_start sub_80D59B0
+sub_80D59B0: @ 80D59B0
+ 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, 0x2
+ ble _080D59DA
+ movs r0, 0
+ strh r0, [r2, 0x2E]
+ ldrh r0, [r2, 0x30]
+ adds r0, 0x1
+ strh r0, [r2, 0x30]
+ ldrh r0, [r2, 0x30]
+ adds r1, r0, 0
+ muls r1, r0
+ adds r0, r1, 0
+ ldrh r3, [r2, 0x34]
+ adds r0, r3
+ strh r0, [r2, 0x34]
+_080D59DA:
+ ldrh r0, [r2, 0x36]
+ ldrh r1, [r2, 0x32]
+ adds r0, r1
+ strh r0, [r2, 0x32]
+ lsls r0, 16
+ asrs r0, 19
+ strh r0, [r2, 0x20]
+ ldrh r1, [r2, 0x38]
+ ldrh r3, [r2, 0x34]
+ adds r1, r3
+ strh r1, [r2, 0x34]
+ lsls r1, 16
+ asrs r3, r1, 19
+ strh r3, [r2, 0x22]
+ adds r0, 0x8
+ lsls r0, 16
+ movs r1, 0x80
+ lsls r1, 17
+ cmp r0, r1
+ bhi _080D5A10
+ adds r1, r3, 0
+ movs r0, 0x8
+ negs r0, r0
+ cmp r1, r0
+ blt _080D5A10
+ cmp r1, 0x78
+ ble _080D5A1C
+_080D5A10:
+ adds r0, r2, 0
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+_080D5A1C:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D59B0
+
+ thumb_func_start sub_80D5A20
+sub_80D5A20: @ 80D5A20
+ push {r4,r5,lr}
+ ldr r3, _080D5A64
+ ldrh r1, [r3]
+ movs r2, 0
+ strh r1, [r0, 0x20]
+ ldrh r1, [r3, 0x2]
+ strh r1, [r0, 0x22]
+ strh r2, [r0, 0x2E]
+ strh r2, [r0, 0x30]
+ strh r2, [r0, 0x32]
+ ldrh r1, [r3, 0x4]
+ strh r1, [r0, 0x3A]
+ ldrh r1, [r3, 0x6]
+ strh r1, [r0, 0x3C]
+ ldrh r4, [r0, 0x4]
+ lsls r2, r4, 22
+ lsrs r2, 22
+ movs r5, 0x8
+ ldrsh r1, [r3, r5]
+ lsls r1, 4
+ adds r2, r1
+ ldr r3, _080D5A68
+ adds r1, r3, 0
+ ands r2, r1
+ ldr r1, _080D5A6C
+ ands r1, r4
+ orrs r1, r2
+ strh r1, [r0, 0x4]
+ ldr r1, _080D5A70
+ str r1, [r0, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D5A64: .4byte gUnknown_03004B00
+_080D5A68: .4byte 0x000003ff
+_080D5A6C: .4byte 0xfffffc00
+_080D5A70: .4byte sub_80D5A74
+ thumb_func_end sub_80D5A20
+
+ thumb_func_start sub_80D5A74
+sub_80D5A74: @ 80D5A74
+ push {r4,lr}
+ adds r2, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r2, r1]
+ cmp r0, 0x1
+ beq _080D5AA6
+ cmp r0, 0x1
+ bgt _080D5A8A
+ cmp r0, 0
+ beq _080D5A90
+ b _080D5B04
+_080D5A8A:
+ cmp r0, 0x2
+ beq _080D5AC4
+ b _080D5B04
+_080D5A90:
+ ldrh r1, [r2, 0x3A]
+ movs r3, 0x3A
+ ldrsh r0, [r2, r3]
+ cmp r0, 0
+ beq _080D5AA0
+ subs r0, r1, 0x1
+ strh r0, [r2, 0x3A]
+ b _080D5B04
+_080D5AA0:
+ ldrh r0, [r2, 0x2E]
+ adds r0, 0x1
+ strh r0, [r2, 0x2E]
+_080D5AA6:
+ ldrh r0, [r2, 0x22]
+ adds r0, 0x8
+ strh r0, [r2, 0x22]
+ lsls r0, 16
+ asrs r0, 16
+ ldrh r3, [r2, 0x3C]
+ movs r4, 0x3C
+ ldrsh r1, [r2, r4]
+ cmp r0, r1
+ blt _080D5B04
+ strh r3, [r2, 0x22]
+ ldrh r0, [r2, 0x2E]
+ adds r0, 0x1
+ strh r0, [r2, 0x2E]
+ b _080D5B04
+_080D5AC4:
+ ldrh r0, [r2, 0x30]
+ adds r0, 0x1
+ strh r0, [r2, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080D5AF0
+ movs r0, 0
+ strh r0, [r2, 0x30]
+ ldrh r0, [r2, 0x32]
+ adds r0, 0x1
+ strh r0, [r2, 0x32]
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080D5AEC
+ ldr r0, _080D5AE8
+ b _080D5AEE
+ .align 2, 0
+_080D5AE8: .4byte 0x0000fffd
+_080D5AEC:
+ movs r0, 0x3
+_080D5AEE:
+ strh r0, [r2, 0x26]
+_080D5AF0:
+ ldrh r0, [r2, 0x34]
+ adds r0, 0x1
+ strh r0, [r2, 0x34]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x10
+ ble _080D5B04
+ adds r0, r2, 0
+ bl move_anim_8072740
+_080D5B04:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D5A74
+
+ thumb_func_start sub_80D5B0C
+sub_80D5B0C: @ 80D5B0C
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x1
+ beq _080D5B80
+ cmp r0, 0x1
+ bgt _080D5B22
+ cmp r0, 0
+ beq _080D5B28
+ b _080D5C4E
+_080D5B22:
+ cmp r0, 0x2
+ beq _080D5BDE
+ b _080D5C4E
+_080D5B28:
+ adds r0, r5, 0
+ movs r1, 0
+ bl sub_80787B0
+ ldr r4, _080D5B50
+ ldrb r1, [r4, 0x4]
+ adds r0, r5, 0
+ bl StartSpriteAnim
+ ldrh r0, [r4, 0x4]
+ strh r0, [r5, 0x3C]
+ ldr r0, _080D5B54
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D5B58
+ movs r0, 0x4
+ b _080D5B5A
+ .align 2, 0
+_080D5B50: .4byte gUnknown_03004B00
+_080D5B54: .4byte gUnknown_0202F7C8
+_080D5B58:
+ ldr r0, _080D5B78
+_080D5B5A:
+ strh r0, [r5, 0x36]
+ ldr r0, _080D5B7C
+ ldrb r0, [r0]
+ bl sub_8079ED4
+ movs r1, 0x3
+ ands r1, r0
+ lsls r1, 2
+ ldrb r2, [r5, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r5, 0x5]
+ b _080D5BD6
+ .align 2, 0
+_080D5B78: .4byte 0x0000fffc
+_080D5B7C: .4byte gUnknown_0202F7C9
+_080D5B80:
+ ldrh r0, [r5, 0x30]
+ adds r0, 0xC0
+ strh r0, [r5, 0x30]
+ ldr r0, _080D5BA0
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D5BA4
+ ldrh r0, [r5, 0x30]
+ lsls r0, 16
+ asrs r0, 24
+ negs r0, r0
+ b _080D5BAA
+ .align 2, 0
+_080D5BA0: .4byte gUnknown_0202F7C8
+_080D5BA4:
+ ldrh r0, [r5, 0x30]
+ lsls r0, 16
+ asrs r0, 24
+_080D5BAA:
+ strh r0, [r5, 0x26]
+ movs r2, 0x32
+ ldrsh r0, [r5, r2]
+ movs r2, 0x36
+ ldrsh r1, [r5, r2]
+ bl Sin
+ strh r0, [r5, 0x24]
+ ldrh r0, [r5, 0x32]
+ adds r0, 0x4
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r5, 0x32]
+ ldrh r0, [r5, 0x34]
+ adds r0, 0x1
+ strh r0, [r5, 0x34]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ bne _080D5C4E
+ movs r0, 0
+ strh r0, [r5, 0x34]
+_080D5BD6:
+ ldrh r0, [r5, 0x2E]
+ adds r0, 0x1
+ strh r0, [r5, 0x2E]
+ b _080D5C4E
+_080D5BDE:
+ movs r1, 0x32
+ ldrsh r0, [r5, r1]
+ movs r2, 0x36
+ ldrsh r1, [r5, r2]
+ bl Sin
+ adds r2, r0, 0
+ movs r3, 0
+ strh r2, [r5, 0x24]
+ ldrh r0, [r5, 0x32]
+ adds r0, 0x4
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r5, 0x32]
+ ldrh r0, [r5, 0x34]
+ adds r0, 0x1
+ strh r0, [r5, 0x34]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1F
+ bne _080D5C4E
+ ldrh r0, [r5, 0x20]
+ adds r1, r2, r0
+ strh r1, [r5, 0x20]
+ ldrh r0, [r5, 0x26]
+ ldrh r2, [r5, 0x22]
+ adds r0, r2
+ strh r0, [r5, 0x22]
+ strh r3, [r5, 0x26]
+ strh r3, [r5, 0x24]
+ movs r0, 0x80
+ lsls r0, 1
+ strh r0, [r5, 0x2E]
+ strh r1, [r5, 0x30]
+ ldr r4, _080D5C54
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x32]
+ ldrh r0, [r5, 0x22]
+ strh r0, [r5, 0x34]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x36]
+ adds r0, r5, 0
+ bl sub_8078BD4
+ ldr r0, _080D5C58
+ str r0, [r5, 0x1C]
+_080D5C4E:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D5C54: .4byte gUnknown_0202F7C9
+_080D5C58: .4byte sub_80D5C5C
+ thumb_func_end sub_80D5B0C
+
+ thumb_func_start sub_80D5C5C
+sub_80D5C5C: @ 80D5C5C
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_8078B5C
+ lsls r0, 24
+ cmp r0, 0
+ bne _080D5CB4
+ movs r1, 0x38
+ ldrsh r0, [r4, r1]
+ movs r1, 0x10
+ bl Sin
+ ldrh r1, [r4, 0x24]
+ adds r0, r1
+ strh r0, [r4, 0x24]
+ ldrh r2, [r4, 0x38]
+ adds r0, r2, 0x4
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x38]
+ ldrh r0, [r4, 0x38]
+ lsls r2, 16
+ asrs r2, 16
+ cmp r2, 0
+ beq _080D5C92
+ cmp r2, 0xC4
+ ble _080D5CBA
+_080D5C92:
+ lsls r0, 16
+ cmp r0, 0
+ ble _080D5CBA
+ movs r1, 0x3C
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080D5CBA
+ ldr r0, _080D5CB0
+ movs r1, 0
+ ldrsb r1, [r0, r1]
+ movs r0, 0x90
+ bl PlaySE12WithPanning
+ b _080D5CBA
+ .align 2, 0
+_080D5CB0: .4byte gUnknown_0202F7D2
+_080D5CB4:
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080D5CBA:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D5C5C
+
+ thumb_func_start sub_80D5CC0
+sub_80D5CC0: @ 80D5CC0
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r1, [r4, 0x2E]
+ movs r2, 0x2E
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ bne _080D5CD8
+ ldr r0, _080D5D4C
+ ldrh r0, [r0]
+ strh r0, [r4, 0x30]
+ adds r0, r1, 0x1
+ strh r0, [r4, 0x2E]
+_080D5CD8:
+ movs r0, 0xC0
+ lsls r0, 1
+ adds r1, r0, 0
+ ldrh r2, [r4, 0x34]
+ adds r1, r2
+ strh r1, [r4, 0x34]
+ ldrh r0, [r4, 0x36]
+ adds r0, 0xA0
+ strh r0, [r4, 0x36]
+ movs r2, 0x30
+ ldrsh r0, [r4, r2]
+ lsls r1, 16
+ asrs r1, 24
+ bl Sin
+ strh r0, [r4, 0x24]
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ ldrh r1, [r4, 0x36]
+ lsls r1, 16
+ asrs r1, 24
+ bl Cos
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x30]
+ adds r2, r0, 0x7
+ movs r0, 0xFF
+ ands r2, r0
+ strh r2, [r4, 0x30]
+ ldr r0, _080D5D50
+ ldr r1, _080D5D54
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080D5D84
+ adds r0, r2, 0
+ subs r0, 0x40
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x83
+ bls _080D5D5C
+ ldr r0, _080D5D58
+ ldrb r0, [r0]
+ bl sub_8079ED4
+ movs r1, 0x3
+ ands r1, r0
+ lsls r1, 2
+ ldrb r2, [r4, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r4, 0x5]
+ b _080D5DA0
+ .align 2, 0
+_080D5D4C: .4byte gUnknown_03004B00
+_080D5D50: .4byte gMain
+_080D5D54: .4byte 0x0000043d
+_080D5D58: .4byte gUnknown_0202F7C9
+_080D5D5C:
+ ldr r0, _080D5D80
+ ldrb r0, [r0]
+ bl sub_8079ED4
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, 0x1
+ movs r1, 0x3
+ ands r0, r1
+ lsls r0, 2
+ ldrb r2, [r4, 0x5]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r4, 0x5]
+ b _080D5DA0
+ .align 2, 0
+_080D5D80: .4byte gUnknown_0202F7C9
+_080D5D84:
+ adds r0, r2, 0
+ subs r0, 0x40
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x83
+ bls _080D5D98
+ adds r1, r4, 0
+ adds r1, 0x43
+ movs r0, 0x1D
+ b _080D5D9E
+_080D5D98:
+ adds r1, r4, 0
+ adds r1, 0x43
+ movs r0, 0x1F
+_080D5D9E:
+ strb r0, [r1]
+_080D5DA0:
+ ldrh r0, [r4, 0x32]
+ adds r0, 0x1
+ strh r0, [r4, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x14
+ ble _080D5DC8
+ adds r3, r4, 0
+ 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]
+_080D5DC8:
+ movs r2, 0x32
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x1E
+ bne _080D5DD6
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080D5DD6:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D5CC0
+
+ thumb_func_start sub_80D5DDC
+sub_80D5DDC: @ 80D5DDC
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _080D5E3C
+ adds r4, r1, r0
+ ldr r0, _080D5E40
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ movs r2, 0x1
+ negs r2, r2
+ adds r1, r2, 0
+ cmp r0, 0
+ bne _080D5E02
+ movs r1, 0x1
+_080D5E02:
+ strh r1, [r4, 0x20]
+ ldr r0, _080D5E44
+ ldrb r1, [r0]
+ movs r0, 0x2
+ eors r0, r1
+ bl b_side_obj__get_some_boolean
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, 0x1
+ strh r0, [r4, 0x22]
+ movs r0, 0x1
+ bl obj_id_for_side_relative_to_move
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x24]
+ movs r0, 0x3
+ bl obj_id_for_side_relative_to_move
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x26]
+ ldr r0, _080D5E48
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D5E3C: .4byte gTasks
+_080D5E40: .4byte gUnknown_0202F7C8
+_080D5E44: .4byte gUnknown_0202F7C9
+_080D5E48: .4byte sub_80D5E4C
+ thumb_func_end sub_80D5DDC
+
+ thumb_func_start sub_80D5E4C
+sub_80D5E4C: @ 80D5E4C
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ ldr r1, _080D5E70
+ adds r2, r0, r1
+ movs r0, 0x8
+ ldrsh r3, [r2, r0]
+ cmp r3, 0x1
+ beq _080D5F14
+ cmp r3, 0x1
+ bgt _080D5E74
+ cmp r3, 0
+ beq _080D5E82
+ b _080D6074
+ .align 2, 0
+_080D5E70: .4byte gTasks
+_080D5E74:
+ cmp r3, 0x2
+ bne _080D5E7A
+ b _080D5F9C
+_080D5E7A:
+ cmp r3, 0x3
+ bne _080D5E80
+ b _080D6030
+_080D5E80:
+ b _080D6074
+_080D5E82:
+ movs r1, 0x20
+ ldrsh r0, [r2, r1]
+ lsls r0, 1
+ ldrh r5, [r2, 0x1C]
+ adds r0, r5
+ strh r0, [r2, 0x1C]
+ ldrh r0, [r2, 0xA]
+ adds r0, 0x1
+ strh r0, [r2, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080D5EB4
+ strh r3, [r2, 0xA]
+ ldrh r0, [r2, 0xC]
+ adds r0, 0x1
+ strh r0, [r2, 0xC]
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080D5EB0
+ movs r0, 0x2
+ b _080D5EB2
+_080D5EB0:
+ ldr r0, _080D5F0C
+_080D5EB2:
+ strh r0, [r2, 0x1E]
+_080D5EB4:
+ movs r1, 0
+ strh r1, [r2, 0xE]
+ movs r7, 0x22
+ ldrsh r0, [r2, r7]
+ cmp r1, r0
+ bge _080D5EF6
+ ldr r4, _080D5F10
+ adds r3, r2, 0
+ adds r3, 0x8
+_080D5EC6:
+ movs r1, 0xE
+ ldrsh r0, [r2, r1]
+ adds r0, 0xE
+ lsls r0, 1
+ adds r0, r3, r0
+ movs r5, 0
+ ldrsh r0, [r0, r5]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ ldrh r0, [r2, 0x1E]
+ ldrh r7, [r2, 0x1C]
+ adds r0, r7
+ strh r0, [r1, 0x24]
+ ldrh r0, [r2, 0xE]
+ adds r0, 0x1
+ strh r0, [r2, 0xE]
+ lsls r0, 16
+ asrs r0, 16
+ movs r5, 0x22
+ ldrsh r1, [r2, r5]
+ cmp r0, r1
+ blt _080D5EC6
+_080D5EF6:
+ ldrh r0, [r2, 0x1A]
+ adds r0, 0x1
+ strh r0, [r2, 0x1A]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x10
+ beq _080D5F06
+ b _080D6074
+_080D5F06:
+ movs r0, 0
+ strh r0, [r2, 0x1A]
+ b _080D6020
+ .align 2, 0
+_080D5F0C: .4byte 0x0000fffe
+_080D5F10: .4byte gSprites
+_080D5F14:
+ ldrh r0, [r2, 0xA]
+ adds r0, 0x1
+ strh r0, [r2, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ ble _080D5F3C
+ movs r0, 0
+ strh r0, [r2, 0xA]
+ ldrh r0, [r2, 0xC]
+ adds r0, 0x1
+ strh r0, [r2, 0xC]
+ ands r0, r3
+ lsls r0, 16
+ cmp r0, 0
+ beq _080D5F38
+ movs r0, 0x2
+ b _080D5F3A
+_080D5F38:
+ ldr r0, _080D5F94
+_080D5F3A:
+ strh r0, [r2, 0x1E]
+_080D5F3C:
+ movs r1, 0
+ strh r1, [r2, 0xE]
+ movs r7, 0x22
+ ldrsh r0, [r2, r7]
+ cmp r1, r0
+ bge _080D5F7E
+ ldr r4, _080D5F98
+ adds r3, r2, 0
+ adds r3, 0x8
+_080D5F4E:
+ movs r1, 0xE
+ ldrsh r0, [r2, r1]
+ adds r0, 0xE
+ lsls r0, 1
+ adds r0, r3, r0
+ movs r5, 0
+ ldrsh r0, [r0, r5]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ ldrh r0, [r2, 0x1E]
+ ldrh r7, [r2, 0x1C]
+ adds r0, r7
+ strh r0, [r1, 0x24]
+ ldrh r0, [r2, 0xE]
+ adds r0, 0x1
+ strh r0, [r2, 0xE]
+ lsls r0, 16
+ asrs r0, 16
+ movs r5, 0x22
+ ldrsh r1, [r2, r5]
+ cmp r0, r1
+ blt _080D5F4E
+_080D5F7E:
+ ldrh r0, [r2, 0x1A]
+ adds r0, 0x1
+ strh r0, [r2, 0x1A]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x60
+ bne _080D6074
+ movs r0, 0
+ strh r0, [r2, 0x1A]
+ b _080D6020
+ .align 2, 0
+_080D5F94: .4byte 0x0000fffe
+_080D5F98: .4byte gSprites
+_080D5F9C:
+ movs r7, 0x20
+ ldrsh r1, [r2, r7]
+ lsls r1, 1
+ ldrh r0, [r2, 0x1C]
+ subs r0, r1
+ strh r0, [r2, 0x1C]
+ ldrh r0, [r2, 0xA]
+ adds r0, 0x1
+ strh r0, [r2, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080D5FD0
+ movs r0, 0
+ strh r0, [r2, 0xA]
+ ldrh r0, [r2, 0xC]
+ adds r0, 0x1
+ strh r0, [r2, 0xC]
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080D5FCC
+ strh r3, [r2, 0x1E]
+ b _080D5FD0
+_080D5FCC:
+ ldr r0, _080D6028
+ strh r0, [r2, 0x1E]
+_080D5FD0:
+ movs r1, 0
+ strh r1, [r2, 0xE]
+ movs r3, 0x22
+ ldrsh r0, [r2, r3]
+ cmp r1, r0
+ bge _080D6012
+ ldr r4, _080D602C
+ adds r3, r2, 0
+ adds r3, 0x8
+_080D5FE2:
+ movs r5, 0xE
+ ldrsh r0, [r2, r5]
+ adds r0, 0xE
+ lsls r0, 1
+ adds r0, r3, r0
+ movs r7, 0
+ ldrsh r0, [r0, r7]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ ldrh r0, [r2, 0x1E]
+ ldrh r5, [r2, 0x1C]
+ adds r0, r5
+ strh r0, [r1, 0x24]
+ ldrh r0, [r2, 0xE]
+ adds r0, 0x1
+ strh r0, [r2, 0xE]
+ lsls r0, 16
+ asrs r0, 16
+ movs r7, 0x22
+ ldrsh r1, [r2, r7]
+ cmp r0, r1
+ blt _080D5FE2
+_080D6012:
+ ldrh r0, [r2, 0x1A]
+ adds r0, 0x1
+ strh r0, [r2, 0x1A]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x10
+ bne _080D6074
+_080D6020:
+ ldrh r0, [r2, 0x8]
+ adds r0, 0x1
+ strh r0, [r2, 0x8]
+ b _080D6074
+ .align 2, 0
+_080D6028: .4byte 0x0000fffe
+_080D602C: .4byte gSprites
+_080D6030:
+ movs r1, 0
+ strh r1, [r2, 0xE]
+ movs r3, 0x22
+ ldrsh r0, [r2, r3]
+ cmp r1, r0
+ bge _080D606E
+ ldr r6, _080D607C
+ adds r3, r2, 0
+ adds r3, 0x8
+ movs r5, 0
+_080D6044:
+ movs r7, 0xE
+ ldrsh r0, [r2, r7]
+ adds r0, 0xE
+ lsls r0, 1
+ adds r0, r3, r0
+ movs r7, 0
+ ldrsh r1, [r0, r7]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ strh r5, [r0, 0x24]
+ ldrh r0, [r2, 0xE]
+ adds r0, 0x1
+ strh r0, [r2, 0xE]
+ lsls r0, 16
+ asrs r0, 16
+ movs r7, 0x22
+ ldrsh r1, [r2, r7]
+ cmp r0, r1
+ blt _080D6044
+_080D606E:
+ adds r0, r4, 0
+ bl move_anim_task_del
+_080D6074:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D607C: .4byte gSprites
+ thumb_func_end sub_80D5E4C
+
+ thumb_func_start sub_80D6080
+sub_80D6080: @ 80D6080
+ push {r4,lr}
+ sub sp, 0xC
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ mov r0, sp
+ bl sub_8078914
+ mov r0, sp
+ ldrb r0, [r0, 0x8]
+ lsls r0, 4
+ ldr r1, _080D60B0
+ ldrb r2, [r1]
+ ldrh r3, [r1, 0x2]
+ movs r1, 0x10
+ bl BlendPalette
+ adds r0, r4, 0
+ bl move_anim_task_del
+ add sp, 0xC
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D60B0: .4byte gUnknown_03004B00
+ thumb_func_end sub_80D6080
+
+ thumb_func_start sub_80D60B4
+sub_80D60B4: @ 80D60B4
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r1, _080D610C
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r2, r0, r1
+ movs r3, 0x8
+ ldrsh r0, [r2, r3]
+ mov r9, r1
+ ldr r4, _080D6110
+ mov r8, r4
+ cmp r0, 0
+ bne _080D60EA
+ ldrh r0, [r4]
+ strh r0, [r2, 0xA]
+ ldrh r0, [r4, 0x2]
+ strh r0, [r2, 0xC]
+ ldrh r0, [r4, 0x4]
+ strh r0, [r2, 0xE]
+ ldrh r0, [r4, 0x6]
+ strh r0, [r2, 0x10]
+_080D60EA:
+ ldrh r0, [r2, 0x8]
+ adds r0, 0x1
+ strh r0, [r2, 0x8]
+ ldr r1, _080D6114
+ ldr r0, _080D6118
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r6, [r0]
+ movs r5, 0x10
+ ldrsh r0, [r2, r5]
+ cmp r0, 0
+ bne _080D6120
+ ldr r4, _080D611C
+ movs r1, 0x8
+ ldrsh r0, [r2, r1]
+ b _080D6126
+ .align 2, 0
+_080D610C: .4byte gTasks
+_080D6110: .4byte gUnknown_03004B00
+_080D6114: .4byte gUnknown_02024BE0
+_080D6118: .4byte gUnknown_0202F7C9
+_080D611C: .4byte gUnknown_083D9794
+_080D6120:
+ ldr r4, _080D616C
+ movs r3, 0x8
+ ldrsh r0, [r2, r3]
+_080D6126:
+ movs r1, 0xA
+ bl __modsi3
+ lsls r0, 16
+ asrs r0, 16
+ adds r0, r4
+ ldrb r5, [r0]
+ lsls r0, r7, 2
+ adds r1, r0, r7
+ lsls r1, 3
+ add r1, r9
+ movs r4, 0xE
+ ldrsh r1, [r1, r4]
+ mov r12, r0
+ cmp r1, 0x1
+ bne _080D6174
+ ldr r2, _080D6170
+ lsls r3, r6, 4
+ adds r0, r3, r6
+ lsls r0, 2
+ adds r0, r2
+ mov r10, r0
+ mov r0, r8
+ movs r4, 0x2
+ ldrsh r1, [r0, r4]
+ lsls r0, r5, 24
+ asrs r0, 24
+ muls r0, r1
+ cmp r0, 0
+ bge _080D6164
+ negs r0, r0
+_080D6164:
+ mov r5, r10
+ strh r0, [r5, 0x26]
+ b _080D618E
+ .align 2, 0
+_080D616C: .4byte gUnknown_083D97A4
+_080D6170: .4byte gSprites
+_080D6174:
+ ldr r3, _080D61C4
+ lsls r4, r6, 4
+ adds r2, r4, r6
+ lsls r2, 2
+ adds r2, r3
+ lsls r0, r5, 24
+ asrs r0, 24
+ mov r5, r8
+ ldrh r1, [r5, 0x2]
+ muls r0, r1
+ strh r0, [r2, 0x24]
+ adds r2, r3, 0
+ adds r3, r4, 0
+_080D618E:
+ mov r1, r12
+ adds r0, r1, r7
+ lsls r0, 3
+ add r0, r9
+ movs r4, 0x8
+ ldrsh r1, [r0, r4]
+ movs r5, 0xA
+ ldrsh r0, [r0, r5]
+ cmp r1, r0
+ bne _080D61B4
+ adds r0, r3, r6
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0
+ strh r1, [r0, 0x24]
+ strh r1, [r0, 0x26]
+ adds r0, r7, 0
+ bl move_anim_task_del
+_080D61B4:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D61C4: .4byte gSprites
+ thumb_func_end sub_80D60B4
+
+ thumb_func_start sub_80D61C8
+sub_80D61C8: @ 80D61C8
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _080D61E8
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D61F0
+ ldr r0, _080D61EC
+ ldrh r1, [r4, 0x20]
+ ldrh r2, [r0]
+ subs r1, r2
+ strh r1, [r4, 0x20]
+ b _080D61FC
+ .align 2, 0
+_080D61E8: .4byte gUnknown_0202F7C8
+_080D61EC: .4byte gUnknown_03004B00
+_080D61F0:
+ ldr r1, _080D6210
+ ldrh r0, [r1]
+ ldrh r2, [r4, 0x20]
+ adds r0, r2
+ strh r0, [r4, 0x20]
+ adds r0, r1, 0
+_080D61FC:
+ ldrh r0, [r0, 0x2]
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r4, 0x22]
+ ldr r0, _080D6214
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D6210: .4byte gUnknown_03004B00
+_080D6214: .4byte sub_80D6218
+ thumb_func_end sub_80D61C8
+
+ thumb_func_start sub_80D6218
+sub_80D6218: @ 80D6218
+ push {lr}
+ adds r2, r0, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080D622E
+ adds r0, r2, 0
+ bl move_anim_8072740
+_080D622E:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D6218
+
+ thumb_func_start sub_80D6234
+sub_80D6234: @ 80D6234
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _080D6254
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D625C
+ ldr r0, _080D6258
+ ldrh r1, [r4, 0x20]
+ ldrh r0, [r0]
+ subs r1, r0
+ strh r1, [r4, 0x20]
+ b _080D6266
+ .align 2, 0
+_080D6254: .4byte gUnknown_0202F7C8
+_080D6258: .4byte gUnknown_03004B00
+_080D625C:
+ ldr r0, _080D6270
+ ldrh r0, [r0]
+ ldrh r1, [r4, 0x20]
+ adds r0, r1
+ strh r0, [r4, 0x20]
+_080D6266:
+ ldr r0, _080D6274
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D6270: .4byte gUnknown_03004B00
+_080D6274: .4byte sub_80D6278
+ thumb_func_end sub_80D6234
+
+ thumb_func_start sub_80D6278
+sub_80D6278: @ 80D6278
+ push {lr}
+ adds r2, r0, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _080D628E
+ adds r0, r2, 0
+ bl move_anim_8074EE0
+_080D628E:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D6278
+
+ thumb_func_start sub_80D6294
+sub_80D6294: @ 80D6294
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r4, _080D62D8
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+ ldr r0, _080D62DC
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D62E4
+ ldr r2, _080D62E0
+ ldrh r0, [r5, 0x20]
+ ldrh r1, [r2]
+ subs r0, r1
+ strh r0, [r5, 0x20]
+ ldrh r0, [r5, 0x22]
+ ldrh r1, [r2, 0x2]
+ subs r0, r1
+ strh r0, [r5, 0x22]
+ b _080D62F8
+ .align 2, 0
+_080D62D8: .4byte gUnknown_0202F7C9
+_080D62DC: .4byte gUnknown_0202F7C8
+_080D62E0: .4byte gUnknown_03004B00
+_080D62E4:
+ ldr r0, _080D631C
+ ldrh r1, [r0]
+ ldrh r2, [r5, 0x20]
+ adds r1, r2
+ strh r1, [r5, 0x20]
+ ldrh r1, [r0, 0x2]
+ ldrh r2, [r5, 0x22]
+ adds r1, r2
+ strh r1, [r5, 0x22]
+ adds r2, r0, 0
+_080D62F8:
+ movs r0, 0
+ strh r0, [r5, 0x2E]
+ ldrh r0, [r2, 0x4]
+ strh r0, [r5, 0x30]
+ ldrh r0, [r2, 0x6]
+ strh r0, [r5, 0x32]
+ ldrh r0, [r2, 0x8]
+ strh r0, [r5, 0x34]
+ ldr r1, _080D6320
+ adds r0, r5, 0
+ bl oamt_set_x3A_32
+ ldr r0, _080D6324
+ str r0, [r5, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D631C: .4byte gUnknown_03004B00
+_080D6320: .4byte move_anim_8074EE0
+_080D6324: .4byte sub_8078114
+ thumb_func_end sub_80D6294
+
+ thumb_func_start sub_80D6328
+sub_80D6328: @ 80D6328
+ push {r4-r7,lr}
+ adds r5, r0, 0
+ ldr r0, _080D6340
+ movs r1, 0x8
+ ldrsh r0, [r0, r1]
+ cmp r0, 0x1
+ beq _080D63A0
+ cmp r0, 0x1
+ bgt _080D6344
+ cmp r0, 0
+ beq _080D634E
+ b _080D63A0
+ .align 2, 0
+_080D6340: .4byte gUnknown_03004B00
+_080D6344:
+ cmp r0, 0x2
+ beq _080D6358
+ cmp r0, 0x3
+ beq _080D637C
+ b _080D63A0
+_080D634E:
+ ldr r0, _080D6354
+ b _080D63A2
+ .align 2, 0
+_080D6354: .4byte gUnknown_0202F7C8
+_080D6358:
+ ldr r4, _080D6370
+ ldrb r0, [r4]
+ movs r6, 0x2
+ eors r0, r6
+ bl b_side_obj__get_some_boolean
+ lsls r0, 24
+ cmp r0, 0
+ bne _080D6374
+ ldrb r4, [r4]
+ b _080D63A4
+ .align 2, 0
+_080D6370: .4byte gUnknown_0202F7C8
+_080D6374:
+ ldrb r0, [r4]
+ adds r4, r6, 0
+ eors r4, r0
+ b _080D63A4
+_080D637C:
+ ldr r0, _080D6398
+ ldrb r0, [r0]
+ movs r4, 0x2
+ eors r0, r4
+ bl b_side_obj__get_some_boolean
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D63A0
+ ldr r0, _080D639C
+ ldrb r0, [r0]
+ eors r4, r0
+ b _080D63A4
+ .align 2, 0
+_080D6398: .4byte gUnknown_0202F7C8
+_080D639C: .4byte gUnknown_0202F7C9
+_080D63A0:
+ ldr r0, _080D63C4
+_080D63A2:
+ ldrb r4, [r0]
+_080D63A4:
+ ldr r0, _080D63C8
+ movs r2, 0xA
+ ldrsh r0, [r0, r2]
+ cmp r0, 0
+ bne _080D63CC
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ adds r0, r4, 0
+ movs r1, 0x1
+ b _080D63DE
+ .align 2, 0
+_080D63C4: .4byte gUnknown_0202F7C9
+_080D63C8: .4byte gUnknown_03004B00
+_080D63CC:
+ adds r0, r4, 0
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ adds r0, r4, 0
+ movs r1, 0x3
+_080D63DE:
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+ ldr r7, _080D647C
+ ldr r6, _080D6480
+ movs r1, 0
+ ldrsh r0, [r6, r1]
+ lsls r0, 1
+ adds r0, r7
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ movs r2, 0x2
+ ldrsh r0, [r6, r2]
+ muls r0, r1
+ asrs r0, 8
+ strh r0, [r5, 0x24]
+ movs r1, 0
+ ldrsh r0, [r6, r1]
+ adds r0, 0x40
+ lsls r0, 1
+ adds r0, r7
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ movs r2, 0x2
+ ldrsh r0, [r6, r2]
+ muls r0, r1
+ asrs r0, 8
+ strh r0, [r5, 0x26]
+ ldrh r1, [r6, 0xC]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080D6442
+ adds r0, r4, 0
+ bl sub_8079ED4
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, 0x1
+ movs r1, 0x3
+ ands r0, r1
+ lsls r0, 2
+ ldrb r2, [r5, 0x5]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r5, 0x5]
+_080D6442:
+ ldrb r2, [r5, 0x3]
+ lsls r2, 26
+ lsrs r2, 27
+ movs r0, 0x4
+ ldrsh r1, [r6, r0]
+ lsls r0, r1, 1
+ adds r0, r7
+ ldrh r0, [r0]
+ ldr r3, _080D6484
+ lsls r2, 3
+ adds r2, r3
+ adds r1, 0x40
+ lsls r1, 1
+ adds r1, r7
+ ldrh r1, [r1]
+ strh r1, [r2, 0x6]
+ strh r1, [r2]
+ strh r0, [r2, 0x2]
+ lsls r0, 16
+ asrs r0, 16
+ negs r0, r0
+ strh r0, [r2, 0x4]
+ ldrh r0, [r6, 0x6]
+ strh r0, [r5, 0x2E]
+ ldr r0, _080D6488
+ str r0, [r5, 0x1C]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D647C: .4byte gSineTable
+_080D6480: .4byte gUnknown_03004B00
+_080D6484: .4byte gOamMatrices
+_080D6488: .4byte sub_80DA48C
+ thumb_func_end sub_80D6328
+
+ thumb_func_start sub_80D648C
+sub_80D648C: @ 80D648C
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ movs r1, 0x1
+ bl sub_80787B0
+ ldr r5, _080D6500
+ ldrh r0, [r5, 0x6]
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r4, 0x20]
+ strh r0, [r4, 0x30]
+ ldr r6, _080D6504
+ ldrb r0, [r6]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x32]
+ ldrh r0, [r4, 0x22]
+ strh r0, [r4, 0x34]
+ ldrb r0, [r6]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x36]
+ adds r0, r4, 0
+ bl obj_translate_based_on_private_1_2_3_4
+ ldrh r0, [r5, 0x4]
+ strh r0, [r4, 0x38]
+ ldrh r0, [r5, 0xA]
+ strh r0, [r4, 0x3A]
+ ldrh r0, [r5, 0x8]
+ strh r0, [r4, 0x3C]
+ ldrh r2, [r4, 0x4]
+ lsls r1, r2, 22
+ lsrs r1, 22
+ movs r3, 0xC
+ ldrsh r0, [r5, r3]
+ lsls r0, 2
+ adds r1, r0
+ ldr r3, _080D6508
+ adds r0, r3, 0
+ ands r1, r0
+ ldr r0, _080D650C
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r4, 0x4]
+ ldr r1, _080D6510
+ str r1, [r4, 0x1C]
+ adds r0, r4, 0
+ bl _call_via_r1
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D6500: .4byte gUnknown_03004B00
+_080D6504: .4byte gUnknown_0202F7C9
+_080D6508: .4byte 0x000003ff
+_080D650C: .4byte 0xfffffc00
+_080D6510: .4byte sub_80D6514
+ thumb_func_end sub_80D648C
+
+ thumb_func_start sub_80D6514
+sub_80D6514: @ 80D6514
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_8078B5C
+ lsls r0, 24
+ cmp r0, 0
+ bne _080D657E
+ movs r1, 0x3C
+ ldrsh r0, [r4, r1]
+ movs r2, 0x38
+ ldrsh r1, [r4, r2]
+ bl Sin
+ ldrh r1, [r4, 0x24]
+ adds r0, r1
+ strh r0, [r4, 0x24]
+ movs r2, 0x3C
+ ldrsh r0, [r4, r2]
+ movs r2, 0x38
+ ldrsh r1, [r4, r2]
+ bl Cos
+ ldrh r1, [r4, 0x26]
+ adds r0, r1
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x3A]
+ ldrh r2, [r4, 0x3C]
+ adds r0, r2
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x3C]
+ movs r1, 0x3C
+ ldrsh r0, [r4, r1]
+ movs r1, 0x3
+ bl __modsi3
+ lsls r0, 16
+ cmp r0, 0
+ bne _080D6584
+ adds r3, r4, 0
+ 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]
+ b _080D6584
+_080D657E:
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080D6584:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D6514
+
+ thumb_func_start sub_80D658C
+sub_80D658C: @ 80D658C
+ push {lr}
+ adds r3, r0, 0
+ ldrh r0, [r3, 0x38]
+ subs r0, 0x1
+ strh r0, [r3, 0x38]
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ bne _080D65C4
+ movs r0, 0x3E
+ adds r0, r3
+ mov r12, r0
+ ldrb r2, [r0]
+ 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
+ mov r1, r12
+ strb r0, [r1]
+ ldrh r0, [r3, 0x36]
+ strh r0, [r3, 0x38]
+_080D65C4:
+ ldrh r0, [r3, 0x34]
+ subs r1, r0, 0x1
+ strh r1, [r3, 0x34]
+ lsls r0, 16
+ cmp r0, 0
+ bgt _080D65D6
+ adds r0, r3, 0
+ bl move_anim_8072740
+_080D65D6:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D658C
+
+ thumb_func_start sub_80D65DC
+sub_80D65DC: @ 80D65DC
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ ldr r0, _080D6644
+ ldr r1, _080D6648
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080D65FE
+ ldr r0, _080D664C
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _080D6606
+_080D65FE:
+ ldr r1, _080D6650
+ ldrh r0, [r1, 0x2]
+ negs r0, r0
+ strh r0, [r1, 0x2]
+_080D6606:
+ ldr r5, _080D664C
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ ldr r4, _080D6650
+ lsrs r0, 24
+ ldrh r1, [r4, 0x2]
+ adds r0, r1
+ strh r0, [r6, 0x20]
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r4, 0x4]
+ adds r0, r1
+ strh r0, [r6, 0x22]
+ ldrh r0, [r4]
+ strh r0, [r6, 0x34]
+ ldrh r0, [r4, 0x6]
+ strh r0, [r6, 0x36]
+ strh r0, [r6, 0x38]
+ ldr r0, _080D6654
+ str r0, [r6, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D6644: .4byte gMain
+_080D6648: .4byte 0x0000043d
+_080D664C: .4byte gUnknown_0202F7C9
+_080D6650: .4byte gUnknown_03004B00
+_080D6654: .4byte sub_80D658C
+ thumb_func_end sub_80D65DC
+
+ thumb_func_start sub_80D6658
+sub_80D6658: @ 80D6658
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ ldr r1, _080D6674
+ ldrh r0, [r1, 0x6]
+ strh r0, [r5, 0x2E]
+ movs r2, 0xE
+ ldrsh r0, [r1, r2]
+ movs r1, 0x80
+ lsls r1, 8
+ ands r0, r1
+ cmp r0, 0
+ beq _080D667C
+ ldr r0, _080D6678
+ b _080D667E
+ .align 2, 0
+_080D6674: .4byte gUnknown_03004B00
+_080D6678: .4byte gUnknown_0202F7C9
+_080D667C:
+ ldr r0, _080D670C
+_080D667E:
+ ldrb r6, [r0]
+ ldr r0, _080D6710
+ ldr r3, _080D6714
+ adds r0, r3
+ ldrb r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080D669C
+ adds r0, r6, 0
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _080D66A4
+_080D669C:
+ ldr r1, _080D6718
+ ldrh r0, [r1]
+ negs r0, r0
+ strh r0, [r1]
+_080D66A4:
+ adds r0, r6, 0
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ ldr r4, _080D6718
+ lsrs r0, 24
+ ldrh r1, [r4]
+ adds r0, r1
+ strh r0, [r5, 0x20]
+ adds r0, r6, 0
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r2, [r4, 0x2]
+ adds r0, r2
+ strh r0, [r5, 0x22]
+ ldrh r1, [r4, 0xE]
+ ldr r0, _080D671C
+ ands r0, r1
+ strh r0, [r5, 0x36]
+ ldrh r0, [r4, 0x4]
+ strh r0, [r5, 0x38]
+ ldrh r0, [r4, 0xA]
+ strh r0, [r5, 0x3A]
+ ldrh r0, [r4, 0x8]
+ strh r0, [r5, 0x3C]
+ ldrh r2, [r5, 0x4]
+ lsls r1, r2, 22
+ lsrs r1, 22
+ movs r3, 0xC
+ ldrsh r0, [r4, r3]
+ lsls r0, 2
+ adds r1, r0
+ ldr r3, _080D6720
+ adds r0, r3, 0
+ ands r1, r0
+ ldr r0, _080D6724
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r5, 0x4]
+ ldr r1, _080D6728
+ str r1, [r5, 0x1C]
+ adds r0, r5, 0
+ bl _call_via_r1
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D670C: .4byte gUnknown_0202F7C8
+_080D6710: .4byte gMain
+_080D6714: .4byte 0x0000043d
+_080D6718: .4byte gUnknown_03004B00
+_080D671C: .4byte 0x00007fff
+_080D6720: .4byte 0x000003ff
+_080D6724: .4byte 0xfffffc00
+_080D6728: .4byte sub_80D672C
+ thumb_func_end sub_80D6658
+
+ thumb_func_start sub_80D672C
+sub_80D672C: @ 80D672C
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x3C
+ ldrsh r0, [r4, r1]
+ movs r2, 0x38
+ ldrsh r1, [r4, r2]
+ bl Sin
+ strh r0, [r4, 0x24]
+ movs r1, 0x3C
+ ldrsh r0, [r4, r1]
+ movs r2, 0x38
+ ldrsh r1, [r4, r2]
+ bl Cos
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x3A]
+ ldrh r1, [r4, 0x3C]
+ adds r0, r1
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x3C]
+ movs r2, 0x3C
+ ldrsh r0, [r4, r2]
+ movs r2, 0x36
+ ldrsh r1, [r4, r2]
+ bl __modsi3
+ cmp r0, 0
+ bne _080D6782
+ adds r3, r4, 0
+ 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]
+_080D6782:
+ ldrh r0, [r4, 0x2E]
+ subs r1, r0, 0x1
+ strh r1, [r4, 0x2E]
+ lsls r0, 16
+ cmp r0, 0
+ bgt _080D6794
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080D6794:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D672C
+
+ thumb_func_start sub_80D679C
+sub_80D679C: @ 80D679C
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r1, 0
+ bl sub_8078764
+ ldrh r2, [r4, 0x4]
+ lsls r1, r2, 22
+ lsrs r1, 22
+ ldr r3, _080D67D8
+ movs r5, 0x6
+ ldrsh r0, [r3, r5]
+ lsls r0, 2
+ adds r1, r0
+ ldr r5, _080D67DC
+ adds r0, r5, 0
+ ands r1, r0
+ ldr r0, _080D67E0
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r4, 0x4]
+ movs r1, 0x6
+ ldrsh r0, [r3, r1]
+ cmp r0, 0x1
+ bne _080D67E4
+ ldrb r0, [r4, 0x3]
+ movs r1, 0x3F
+ negs r1, r1
+ ands r1, r0
+ movs r0, 0x10
+ b _080D67F2
+ .align 2, 0
+_080D67D8: .4byte gUnknown_03004B00
+_080D67DC: .4byte 0x000003ff
+_080D67E0: .4byte 0xfffffc00
+_080D67E4:
+ cmp r0, 0x2
+ bne _080D67F6
+ ldrb r0, [r4, 0x3]
+ movs r1, 0x3F
+ negs r1, r1
+ ands r1, r0
+ movs r0, 0x20
+_080D67F2:
+ orrs r1, r0
+ strb r1, [r4, 0x3]
+_080D67F6:
+ ldr r0, _080D6810
+ ldrh r0, [r0, 0x4]
+ strh r0, [r4, 0x2E]
+ ldr r0, _080D6814
+ str r0, [r4, 0x1C]
+ ldr r1, _080D6818
+ adds r0, r4, 0
+ bl oamt_set_x3A_32
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D6810: .4byte gUnknown_03004B00
+_080D6814: .4byte sub_80782D8
+_080D6818: .4byte move_anim_8072740
+ thumb_func_end sub_80D679C
+
+ thumb_func_start sub_80D681C
+sub_80D681C: @ 80D681C
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ ldr r6, _080D6864
+ ldrb r0, [r6]
+ movs r1, 0
+ bl sub_8077ABC
+ ldr r1, _080D6868
+ lsls r4, r5, 2
+ adds r4, r5
+ lsls r4, 3
+ adds r4, r1
+ lsls r0, 24
+ ldr r5, _080D686C
+ lsrs r0, 24
+ ldrh r1, [r5]
+ adds r0, r1
+ strh r0, [r4, 0x8]
+ ldrb r0, [r6]
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r5, 0x2]
+ adds r0, r1
+ strh r0, [r4, 0xA]
+ ldrh r0, [r5, 0x4]
+ strh r0, [r4, 0xC]
+ ldr r0, _080D6870
+ str r0, [r4]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D6864: .4byte gUnknown_0202F7C9
+_080D6868: .4byte gTasks
+_080D686C: .4byte gUnknown_03004B00
+_080D6870: .4byte sub_80D6874
+ thumb_func_end sub_80D681C
+
+ thumb_func_start sub_80D6874
+sub_80D6874: @ 80D6874
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ movs r5, 0
+ movs r7, 0
+ ldr r1, _080D68B4
+ lsls r0, 2
+ add r0, r9
+ lsls r0, 3
+ adds r0, r1
+ ldrb r2, [r0, 0xC]
+ str r2, [sp]
+ ldrh r4, [r0, 0x8]
+ ldrh r6, [r0, 0xA]
+ movs r3, 0xC
+ ldrsh r0, [r0, r3]
+ mov r10, r1
+ cmp r0, 0
+ bne _080D68B8
+ movs r0, 0
+ mov r8, r0
+ movs r2, 0x1
+ movs r1, 0x10
+ mov r12, r1
+ b _080D68C2
+ .align 2, 0
+_080D68B4: .4byte gTasks
+_080D68B8:
+ movs r2, 0x10
+ mov r12, r2
+ movs r3, 0x8
+ mov r8, r3
+ movs r2, 0x4
+_080D68C2:
+ mov r0, r9
+ lsls r1, r0, 2
+ adds r0, r1, r0
+ lsls r0, 3
+ add r0, r10
+ movs r3, 0x1C
+ ldrsh r0, [r0, r3]
+ mov r10, r1
+ cmp r0, 0xA
+ bhi _080D69B8
+ lsls r0, 2
+ ldr r1, _080D68E0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080D68E0: .4byte _080D68E4
+ .align 2, 0
+_080D68E4:
+ .4byte _080D6910
+ .4byte _080D69B8
+ .4byte _080D6924
+ .4byte _080D69B8
+ .4byte _080D6944
+ .4byte _080D69B8
+ .4byte _080D695A
+ .4byte _080D69B8
+ .4byte _080D697C
+ .4byte _080D69B8
+ .4byte _080D69B0
+_080D6910:
+ ldr r0, _080D6920
+ lsls r1, r4, 16
+ asrs r1, 16
+ lsls r2, r6, 16
+ asrs r2, 16
+ mov r4, r12
+ lsls r3, r4, 16
+ b _080D6992
+ .align 2, 0
+_080D6920: .4byte gSpriteTemplate_83D9938
+_080D6924:
+ mov r0, r12
+ lsls r3, r0, 17
+ mov r1, r8
+ adds r0, r1, r2
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ ldr r0, _080D6940
+ lsls r1, r4, 16
+ asrs r1, 16
+ lsls r2, r6, 16
+ asrs r2, 16
+ b _080D6992
+ .align 2, 0
+_080D6940: .4byte gSpriteTemplate_83D9938
+_080D6944:
+ mov r3, r12
+ lsls r0, r3, 16
+ asrs r0, 16
+ lsls r3, r0, 1
+ adds r3, r0
+ lsls r0, r2, 1
+ add r0, r8
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ b _080D6986
+_080D695A:
+ mov r0, r12
+ lsls r3, r0, 18
+ lsls r0, r2, 1
+ adds r0, r2
+ add r0, r8
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ ldr r0, _080D6978
+ lsls r1, r4, 16
+ asrs r1, 16
+ lsls r2, r6, 16
+ asrs r2, 16
+ b _080D6992
+ .align 2, 0
+_080D6978: .4byte gSpriteTemplate_83D9938
+_080D697C:
+ mov r1, r12
+ lsls r0, r1, 16
+ asrs r0, 16
+ lsls r3, r0, 2
+ adds r3, r0
+_080D6986:
+ ldr r0, _080D69AC
+ lsls r1, r4, 16
+ asrs r1, 16
+ lsls r2, r6, 16
+ asrs r2, 16
+ lsls r3, 16
+_080D6992:
+ asrs r3, 16
+ adds r2, r3
+ lsls r2, 16
+ asrs r2, 16
+ movs r3, 0x2
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r0, r7, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+ b _080D69B8
+ .align 2, 0
+_080D69AC: .4byte gSpriteTemplate_83D9938
+_080D69B0:
+ mov r0, r9
+ bl move_anim_task_del
+ b _080D69FC
+_080D69B8:
+ cmp r7, 0
+ beq _080D69EC
+ ldr r4, _080D6A0C
+ lsls r3, r5, 4
+ adds r3, r5
+ lsls r3, 2
+ adds r0, r3, r4
+ ldrh r5, [r0, 0x4]
+ lsls r2, r5, 22
+ lsrs r2, 22
+ add r2, r8
+ ldr r6, _080D6A10
+ adds r1, r6, 0
+ ands r2, r1
+ ldr r1, _080D6A14
+ ands r1, r5
+ orrs r1, r2
+ strh r1, [r0, 0x4]
+ mov r1, sp
+ ldrh r1, [r1]
+ strh r1, [r0, 0x2E]
+ adds r4, 0x1C
+ adds r3, r4
+ ldr r1, [r3]
+ bl _call_via_r1
+_080D69EC:
+ ldr r0, _080D6A18
+ mov r1, r10
+ add r1, r9
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x1C]
+ adds r0, 0x1
+ strh r0, [r1, 0x1C]
+_080D69FC:
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D6A0C: .4byte gSprites
+_080D6A10: .4byte 0x000003ff
+_080D6A14: .4byte 0xfffffc00
+_080D6A18: .4byte gTasks
+ thumb_func_end sub_80D6874
+
+ thumb_func_start sub_80D6A1C
+sub_80D6A1C: @ 80D6A1C
+ push {lr}
+ adds r3, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r3, r1]
+ cmp r0, 0
+ bne _080D6A3E
+ ldrb r1, [r3, 0x1]
+ movs r2, 0x3F
+ adds r0, r2, 0
+ ands r0, r1
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r3, 0x1]
+ ldrb r0, [r3, 0x3]
+ ands r2, r0
+ strb r2, [r3, 0x3]
+ b _080D6A52
+_080D6A3E:
+ ldrb r2, [r3, 0x1]
+ movs r1, 0x3F
+ adds r0, r1, 0
+ ands r0, r2
+ strb r0, [r3, 0x1]
+ ldrb r0, [r3, 0x3]
+ ands r1, r0
+ movs r0, 0x40
+ orrs r1, r0
+ strb r1, [r3, 0x3]
+_080D6A52:
+ ldrh r0, [r3, 0x30]
+ adds r0, 0x1
+ strh r0, [r3, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xF
+ bne _080D6A66
+ adds r0, r3, 0
+ bl DestroySprite
+_080D6A66:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D6A1C
+
+ thumb_func_start sub_80D6A6C
+sub_80D6A6C: @ 80D6A6C
+ push {r4-r7,lr}
+ adds r4, r0, 0
+ ldr r0, _080D6AD4
+ ldrh r1, [r0]
+ ldrh r2, [r4, 0x20]
+ adds r1, r2
+ strh r1, [r4, 0x20]
+ ldrh r0, [r0, 0x2]
+ ldrh r3, [r4, 0x22]
+ adds r0, r3
+ strh r0, [r4, 0x22]
+ ldr r0, _080D6AD8
+ adds r1, 0x20
+ lsls r1, 16
+ asrs r1, 16
+ movs r7, 0x22
+ ldrsh r2, [r4, r7]
+ adds r3, r4, 0
+ adds r3, 0x43
+ ldrb r3, [r3]
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r3, _080D6ADC
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r6, r2, r3
+ ldrh r5, [r6, 0x4]
+ lsls r1, r5, 22
+ lsrs r1, 22
+ adds r1, 0x8
+ ldr r7, _080D6AE0
+ adds r0, r7, 0
+ ands r1, r0
+ ldr r0, _080D6AE4
+ ands r0, r5
+ orrs r0, r1
+ strh r0, [r6, 0x4]
+ ldr r1, _080D6AE8
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ adds r3, 0x1C
+ adds r2, r3
+ ldr r0, _080D6AEC
+ str r0, [r2]
+ str r0, [r4, 0x1C]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D6AD4: .4byte gUnknown_03004B00
+_080D6AD8: .4byte gBattleAnimSpriteTemplate_83D9950
+_080D6ADC: .4byte gSprites
+_080D6AE0: .4byte 0x000003ff
+_080D6AE4: .4byte 0xfffffc00
+_080D6AE8: .4byte gUnknown_0202F7B2
+_080D6AEC: .4byte sub_80D6AF0
+ thumb_func_end sub_80D6A6C
+
+ thumb_func_start sub_80D6AF0
+sub_80D6AF0: @ 80D6AF0
+ push {lr}
+ adds r3, r0, 0
+ ldrh r0, [r3, 0x2E]
+ adds r0, 0x1
+ strh r0, [r3, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3
+ bne _080D6B24
+ movs r0, 0
+ strh r0, [r3, 0x2E]
+ movs r0, 0x3E
+ adds r0, r3
+ mov r12, r0
+ ldrb r2, [r0]
+ 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
+ mov r1, r12
+ strb r0, [r1]
+_080D6B24:
+ ldrh r0, [r3, 0x30]
+ adds r0, 0x1
+ strh r0, [r3, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x33
+ bne _080D6B38
+ adds r0, r3, 0
+ bl move_anim_8072740
+_080D6B38:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D6AF0
+
+ thumb_func_start sub_80D6B3C
+sub_80D6B3C: @ 80D6B3C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _080D6B5C
+ adds r5, r1, r0
+ ldr r0, _080D6B60
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080D6B68
+ ldr r4, _080D6B64
+ b _080D6B6A
+ .align 2, 0
+_080D6B5C: .4byte gTasks
+_080D6B60: .4byte gUnknown_03004B00
+_080D6B64: .4byte gUnknown_0202F7C8
+_080D6B68:
+ ldr r4, _080D6BAC
+_080D6B6A:
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x24]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x26]
+ ldr r2, _080D6BB0
+ ldrh r0, [r2, 0x2]
+ movs r1, 0
+ strh r0, [r5, 0x14]
+ strh r1, [r5, 0x16]
+ strh r1, [r5, 0x18]
+ strh r1, [r5, 0x1A]
+ strh r1, [r5, 0x1C]
+ ldrh r0, [r2, 0x6]
+ strh r0, [r5, 0x1E]
+ strh r1, [r5, 0x20]
+ ldrh r0, [r2, 0x4]
+ strh r0, [r5, 0x22]
+ ldr r0, _080D6BB4
+ str r0, [r5]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D6BAC: .4byte gUnknown_0202F7C9
+_080D6BB0: .4byte gUnknown_03004B00
+_080D6BB4: .4byte sub_80D6BB8
+ thumb_func_end sub_80D6B3C
+
+ thumb_func_start sub_80D6BB8
+sub_80D6BB8: @ 80D6BB8
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ adds r2, r6, 0
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ ldr r1, _080D6CA0
+ adds r5, r0, r1
+ movs r1, 0x14
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ beq _080D6CB8
+ ldrh r0, [r5, 0x20]
+ adds r0, 0x1
+ movs r7, 0
+ strh r0, [r5, 0x20]
+ lsls r0, 16
+ asrs r0, 16
+ movs r2, 0x22
+ ldrsh r1, [r5, r2]
+ cmp r0, r1
+ ble _080D6CC6
+ strh r7, [r5, 0x20]
+ ldr r0, _080D6CA4
+ movs r3, 0x24
+ ldrsh r1, [r5, r3]
+ movs r3, 0x26
+ ldrsh r2, [r5, r3]
+ movs r3, 0x2
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x40
+ beq _080D6CC6
+ lsls r4, r0, 4
+ adds r4, r0
+ lsls r4, 2
+ ldr r0, _080D6CA8
+ adds r4, r0
+ ldr r1, _080D6CAC
+ movs r2, 0x1A
+ ldrsh r0, [r5, r2]
+ lsls r0, 1
+ adds r0, r1
+ movs r3, 0
+ ldrsb r3, [r0, r3]
+ ldrh r0, [r4, 0x20]
+ adds r3, r0
+ strh r3, [r4, 0x20]
+ movs r2, 0x1A
+ ldrsh r0, [r5, r2]
+ lsls r0, 1
+ adds r1, 0x1
+ adds r0, r1
+ movs r2, 0
+ ldrsb r2, [r0, r2]
+ ldrh r0, [r4, 0x22]
+ adds r2, r0
+ strh r2, [r4, 0x22]
+ movs r1, 0x18
+ ldrsh r0, [r5, r1]
+ lsls r1, r0, 2
+ adds r1, r0
+ movs r0, 0x28
+ subs r0, r1
+ strh r0, [r4, 0x2E]
+ strh r3, [r4, 0x30]
+ ldrh r0, [r5, 0x24]
+ strh r0, [r4, 0x32]
+ strh r2, [r4, 0x34]
+ ldrh r0, [r5, 0x26]
+ strh r0, [r4, 0x36]
+ strh r6, [r4, 0x38]
+ adds r0, r4, 0
+ bl obj_translate_based_on_private_1_2_3_4
+ ldr r1, _080D6CB0
+ adds r0, r4, 0
+ bl oamt_set_x3A_32
+ ldr r0, _080D6CB4
+ str r0, [r4, 0x1C]
+ ldrh r0, [r5, 0x1A]
+ adds r0, 0x1
+ strh r0, [r5, 0x1A]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xF
+ ble _080D6C70
+ strh r7, [r5, 0x1A]
+_080D6C70:
+ ldrh r0, [r5, 0x1C]
+ adds r0, 0x1
+ strh r0, [r5, 0x1C]
+ lsls r0, 16
+ asrs r0, 16
+ movs r2, 0x1E
+ ldrsh r1, [r5, r2]
+ cmp r0, r1
+ blt _080D6C92
+ strh r7, [r5, 0x1C]
+ ldrh r1, [r5, 0x18]
+ movs r3, 0x18
+ ldrsh r0, [r5, r3]
+ cmp r0, 0x5
+ bgt _080D6C92
+ adds r0, r1, 0x1
+ strh r0, [r5, 0x18]
+_080D6C92:
+ ldrh r0, [r5, 0x16]
+ adds r0, 0x1
+ strh r0, [r5, 0x16]
+ ldrh r0, [r5, 0x14]
+ subs r0, 0x1
+ strh r0, [r5, 0x14]
+ b _080D6CC6
+ .align 2, 0
+_080D6CA0: .4byte gTasks
+_080D6CA4: .4byte gSpriteTemplate_83D99B8
+_080D6CA8: .4byte gSprites
+_080D6CAC: .4byte gUnknown_083D9968
+_080D6CB0: .4byte sub_80D6D00
+_080D6CB4: .4byte sub_8078600
+_080D6CB8:
+ movs r1, 0x16
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ bne _080D6CC6
+ adds r0, r2, 0
+ bl move_anim_task_del
+_080D6CC6:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D6BB8
+
+ thumb_func_start sub_80D6CCC
+sub_80D6CCC: @ 80D6CCC
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_8078B5C
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D6CF4
+ ldr r2, _080D6CFC
+ movs r0, 0x38
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldrh r1, [r0, 0x16]
+ subs r1, 0x1
+ strh r1, [r0, 0x16]
+ adds r0, r4, 0
+ bl DestroySprite
+_080D6CF4:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D6CFC: .4byte gTasks
+ thumb_func_end sub_80D6CCC
+
+ thumb_func_start sub_80D6D00
+sub_80D6D00: @ 80D6D00
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x1
+ bl StartSpriteAnim
+ ldr r0, _080D6D14
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D6D14: .4byte sub_80D6CCC
+ thumb_func_end sub_80D6D00
+
+ thumb_func_start sub_80D6D18
+sub_80D6D18: @ 80D6D18
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r0, _080D6D2C
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080D6D34
+ ldr r4, _080D6D30
+ b _080D6D36
+ .align 2, 0
+_080D6D2C: .4byte gUnknown_03004B00
+_080D6D30: .4byte gUnknown_0202F7C8
+_080D6D34:
+ ldr r4, _080D6D64
+_080D6D36:
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+ ldr r1, _080D6D68
+ adds r0, r5, 0
+ bl oamt_set_x3A_32
+ ldr r0, _080D6D6C
+ str r0, [r5, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D6D64: .4byte gUnknown_0202F7C9
+_080D6D68: .4byte move_anim_8074EE0
+_080D6D6C: .4byte sub_80785E4
+ thumb_func_end sub_80D6D18
+
+ thumb_func_start sub_80D6D70
+sub_80D6D70: @ 80D6D70
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r0, _080D6D84
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080D6D8C
+ ldr r4, _080D6D88
+ b _080D6D8E
+ .align 2, 0
+_080D6D84: .4byte gUnknown_03004B00
+_080D6D88: .4byte gUnknown_0202F7C8
+_080D6D8C:
+ ldr r4, _080D6DC8
+_080D6D8E:
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+ ldr r1, _080D6DCC
+ ldrh r0, [r1, 0x2]
+ strh r0, [r5, 0x24]
+ ldrh r0, [r1, 0x4]
+ strh r0, [r5, 0x26]
+ ldr r1, _080D6DD0
+ adds r0, r5, 0
+ bl oamt_set_x3A_32
+ ldr r0, _080D6DD4
+ str r0, [r5, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D6DC8: .4byte gUnknown_0202F7C9
+_080D6DCC: .4byte gUnknown_03004B00
+_080D6DD0: .4byte move_anim_8072740
+_080D6DD4: .4byte sub_8078600
+ thumb_func_end sub_80D6D70
+
+ thumb_func_start sub_80D6DD8
+sub_80D6DD8: @ 80D6DD8
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ movs r1, 0x1
+ bl StartSpriteAffineAnim
+ ldr r4, _080D6E30
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+ movs r0, 0
+ bl obj_id_for_side_relative_to_move
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x3A]
+ movs r0, 0x10
+ strh r0, [r5, 0x3C]
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080D6E26
+ movs r1, 0x3C
+ ldrsh r0, [r5, r1]
+ negs r0, r0
+ strh r0, [r5, 0x3C]
+_080D6E26:
+ ldr r0, _080D6E34
+ str r0, [r5, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D6E30: .4byte gUnknown_0202F7C8
+_080D6E34: .4byte sub_80D6E38
+ thumb_func_end sub_80D6DD8
+
+ thumb_func_start sub_80D6E38
+sub_80D6E38: @ 80D6E38
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080D6E4A
+ cmp r0, 0x1
+ beq _080D6E60
+ b _080D6E90
+_080D6E4A:
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x28
+ ble _080D6E90
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ b _080D6E90
+_080D6E60:
+ ldrh r2, [r4, 0x3C]
+ ldrh r1, [r4, 0x20]
+ adds r0, r2, r1
+ strh r0, [r4, 0x20]
+ ldr r3, _080D6E98
+ movs r0, 0x3A
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ ldrh r1, [r0, 0x24]
+ adds r2, r1
+ strh r2, [r0, 0x24]
+ ldrh r0, [r4, 0x20]
+ adds r0, 0x50
+ lsls r0, 16
+ movs r1, 0xC8
+ lsls r1, 17
+ cmp r0, r1
+ bls _080D6E90
+ adds r0, r4, 0
+ bl move_anim_8074EE0
+_080D6E90:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D6E98: .4byte gSprites
+ thumb_func_end sub_80D6E38
+
+ thumb_func_start sub_80D6E9C
+sub_80D6E9C: @ 80D6E9C
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r0, 3
+ ldr r1, _080D6EC0
+ adds r5, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x1
+ beq _080D6F30
+ cmp r0, 0x1
+ bgt _080D6EC4
+ cmp r0, 0
+ beq _080D6ED0
+ b _080D7000
+ .align 2, 0
+_080D6EC0: .4byte gTasks
+_080D6EC4:
+ cmp r0, 0x2
+ beq _080D6F8C
+ cmp r0, 0x3
+ bne _080D6ECE
+ b _080D6FE0
+_080D6ECE:
+ b _080D7000
+_080D6ED0:
+ movs r0, 0
+ bl obj_id_for_side_relative_to_move
+ lsls r0, 24
+ lsrs r0, 24
+ movs r6, 0
+ strh r0, [r5, 0x26]
+ ldr r4, _080D6F04
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x24]
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _080D6F0C
+ ldr r0, _080D6F08
+ strh r0, [r5, 0x24]
+ movs r0, 0x2
+ b _080D6F12
+ .align 2, 0
+_080D6F04: .4byte gUnknown_0202F7C8
+_080D6F08: .4byte 0x0000ffe0
+_080D6F0C:
+ movs r0, 0x20
+ strh r0, [r5, 0x24]
+ ldr r0, _080D6F28
+_080D6F12:
+ strh r0, [r5, 0x22]
+ ldr r2, _080D6F2C
+ movs r0, 0x26
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r5, 0x24]
+ strh r1, [r0, 0x24]
+ b _080D6FD2
+ .align 2, 0
+_080D6F28: .4byte 0x0000fffe
+_080D6F2C: .4byte gSprites
+_080D6F30:
+ ldrh r0, [r5, 0xA]
+ adds r0, 0x1
+ strh r0, [r5, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080D7000
+ movs r0, 0
+ strh r0, [r5, 0xA]
+ ldr r4, _080D6F88
+ movs r1, 0x26
+ ldrsh r0, [r5, r1]
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r2, r4
+ adds r2, 0x3E
+ ldrb r3, [r2]
+ lsls r0, r3, 29
+ lsrs r0, 31
+ movs r1, 0x1
+ eors r1, r0
+ lsls r1, 2
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r3
+ orrs r0, r1
+ strb r0, [r2]
+ ldrh r1, [r5, 0x24]
+ movs r2, 0x24
+ ldrsh r0, [r5, r2]
+ cmp r0, 0
+ beq _080D6FD2
+ ldrh r2, [r5, 0x22]
+ adds r2, r1, r2
+ strh r2, [r5, 0x24]
+ movs r0, 0x26
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ strh r2, [r0, 0x24]
+ b _080D7000
+ .align 2, 0
+_080D6F88: .4byte gSprites
+_080D6F8C:
+ ldrh r0, [r5, 0xA]
+ adds r0, 0x1
+ strh r0, [r5, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080D7000
+ movs r0, 0
+ strh r0, [r5, 0xA]
+ ldr r1, _080D6FDC
+ movs r2, 0x26
+ ldrsh r0, [r5, r2]
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r2, r1
+ adds r2, 0x3E
+ ldrb r3, [r2]
+ lsls r0, r3, 29
+ lsrs r0, 31
+ movs r1, 0x1
+ eors r1, r0
+ lsls r1, 2
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r3
+ orrs r0, r1
+ strb r0, [r2]
+ ldrh r0, [r5, 0xC]
+ adds r0, 0x1
+ strh r0, [r5, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x8
+ bne _080D7000
+_080D6FD2:
+ ldrh r0, [r5, 0x8]
+ adds r0, 0x1
+ strh r0, [r5, 0x8]
+ b _080D7000
+ .align 2, 0
+_080D6FDC: .4byte gSprites
+_080D6FE0:
+ ldr r2, _080D7008
+ movs r0, 0x26
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ adds r0, 0x3E
+ ldrb r2, [r0]
+ movs r1, 0x5
+ negs r1, r1
+ ands r1, r2
+ strb r1, [r0]
+ adds r0, r3, 0
+ bl move_anim_task_del
+_080D7000:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D7008: .4byte gSprites
+ thumb_func_end sub_80D6E9C
+
+ thumb_func_start sub_80D700C
+sub_80D700C: @ 80D700C
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ ldr r1, _080D7030
+ adds r5, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x1
+ bne _080D7026
+ b _080D714C
+_080D7026:
+ cmp r0, 0x1
+ bgt _080D7034
+ cmp r0, 0
+ beq _080D703C
+ b _080D718E
+ .align 2, 0
+_080D7030: .4byte gTasks
+_080D7034:
+ cmp r0, 0x2
+ bne _080D703A
+ b _080D7180
+_080D703A:
+ b _080D718E
+_080D703C:
+ ldr r4, _080D707C
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ lsls r0, 24
+ movs r2, 0x1
+ negs r2, r2
+ adds r1, r2, 0
+ cmp r0, 0
+ bne _080D7052
+ movs r1, 0x1
+_080D7052:
+ movs r6, 0
+ strh r1, [r5, 0xA]
+ ldr r0, _080D7080
+ movs r1, 0
+ ldrsh r2, [r0, r1]
+ adds r3, r0, 0
+ cmp r2, 0
+ beq _080D7088
+ cmp r2, 0x4
+ beq _080D70B0
+ ldrh r1, [r3]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080D70E8
+ movs r0, 0x80
+ lsls r0, 1
+ strh r0, [r5, 0xE]
+ ldr r0, _080D7084
+ b _080D70F0
+ .align 2, 0
+_080D707C: .4byte gUnknown_0202F7C8
+_080D7080: .4byte gUnknown_03004B00
+_080D7084: .4byte 0x0000fff0
+_080D7088:
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0xE]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x12]
+ movs r2, 0xA
+ ldrsh r0, [r5, r2]
+ lsls r0, 7
+ adds r0, 0x78
+ strh r0, [r5, 0x10]
+ b _080D7126
+_080D70B0:
+ movs r0, 0xA
+ ldrsh r1, [r5, r0]
+ lsls r1, 7
+ movs r0, 0x78
+ subs r0, r1
+ strh r0, [r5, 0xE]
+ ldr r4, _080D70E4
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x12]
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ movs r2, 0xA
+ ldrsh r1, [r5, r2]
+ lsls r1, 5
+ subs r0, r1
+ strh r0, [r5, 0x10]
+ b _080D7126
+ .align 2, 0
+_080D70E4: .4byte gUnknown_0202F7C9
+_080D70E8:
+ ldr r0, _080D710C
+ strh r0, [r5, 0xE]
+ movs r0, 0x80
+ lsls r0, 1
+_080D70F0:
+ strh r0, [r5, 0x10]
+ movs r1, 0xA
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x1
+ bne _080D7110
+ movs r2, 0
+ ldrsh r0, [r3, r2]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 1
+ movs r0, 0x50
+ subs r0, r1
+ strh r0, [r5, 0x12]
+ b _080D7126
+ .align 2, 0
+_080D710C: .4byte 0x0000fff0
+_080D7110:
+ movs r0, 0
+ ldrsh r1, [r3, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 1
+ adds r0, 0x28
+ strh r0, [r5, 0x12]
+ ldrh r1, [r5, 0xE]
+ ldrh r0, [r5, 0x10]
+ strh r0, [r5, 0xE]
+ strh r1, [r5, 0x10]
+_080D7126:
+ movs r2, 0xE
+ ldrsh r1, [r5, r2]
+ movs r2, 0x10
+ ldrsh r0, [r5, r2]
+ cmp r1, r0
+ bge _080D713C
+ movs r1, 0
+ movs r0, 0x1
+ strh r0, [r5, 0xA]
+ strh r1, [r5, 0x14]
+ b _080D7178
+_080D713C:
+ ldr r0, _080D7148
+ strh r0, [r5, 0xA]
+ movs r0, 0x3
+ strh r0, [r5, 0x14]
+ b _080D7178
+ .align 2, 0
+_080D7148: .4byte 0x0000ffff
+_080D714C:
+ ldrh r0, [r5, 0xC]
+ adds r0, 0x1
+ strh r0, [r5, 0xC]
+ lsls r0, 16
+ cmp r0, 0
+ ble _080D718E
+ movs r0, 0
+ strh r0, [r5, 0xC]
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_80D7194
+ lsls r0, 24
+ cmp r0, 0
+ bne _080D7178
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_80D7194
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D718E
+_080D7178:
+ ldrh r0, [r5, 0x8]
+ adds r0, 0x1
+ strh r0, [r5, 0x8]
+ b _080D718E
+_080D7180:
+ movs r1, 0x16
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ bne _080D718E
+ adds r0, r4, 0
+ bl move_anim_task_del
+_080D718E:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D700C
+
+ thumb_func_start sub_80D7194
+sub_80D7194: @ 80D7194
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ lsls r1, 24
+ lsrs r5, r1, 24
+ ldr r0, _080D7220
+ movs r2, 0xE
+ ldrsh r1, [r4, r2]
+ movs r3, 0x12
+ ldrsh r2, [r4, r3]
+ movs r3, 0x23
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x40
+ beq _080D71CA
+ ldr r1, _080D7224
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r1
+ strh r5, [r0, 0x3A]
+ movs r1, 0x7
+ strh r1, [r0, 0x3C]
+ ldrh r0, [r4, 0x16]
+ adds r0, 0x1
+ strh r0, [r4, 0x16]
+_080D71CA:
+ ldrh r1, [r4, 0xA]
+ ldrh r5, [r4, 0x14]
+ adds r0, r1, r5
+ strh r0, [r4, 0x14]
+ lsls r0, 16
+ cmp r0, 0
+ bge _080D71DC
+ movs r0, 0x3
+ strh r0, [r4, 0x14]
+_080D71DC:
+ movs r2, 0x14
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x3
+ ble _080D71E8
+ movs r0, 0
+ strh r0, [r4, 0x14]
+_080D71E8:
+ movs r3, 0xA
+ ldrsh r0, [r4, r3]
+ lsls r0, 4
+ ldrh r5, [r4, 0xE]
+ adds r2, r0, r5
+ strh r2, [r4, 0xE]
+ lsls r0, r1, 16
+ asrs r3, r0, 16
+ cmp r3, 0x1
+ bne _080D7208
+ lsls r0, r2, 16
+ asrs r0, 16
+ movs r5, 0x10
+ ldrsh r1, [r4, r5]
+ cmp r0, r1
+ bge _080D721C
+_080D7208:
+ movs r0, 0x1
+ negs r0, r0
+ cmp r3, r0
+ bne _080D7228
+ lsls r0, r2, 16
+ asrs r0, 16
+ movs r2, 0x10
+ ldrsh r1, [r4, r2]
+ cmp r0, r1
+ bgt _080D7228
+_080D721C:
+ movs r0, 0x1
+ b _080D722A
+ .align 2, 0
+_080D7220: .4byte gSpriteTemplate_83D9B10
+_080D7224: .4byte gSprites
+_080D7228:
+ movs r0, 0
+_080D722A:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80D7194
+
+ thumb_func_start sub_80D7230
+sub_80D7230: @ 80D7230
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xC
+ ble _080D7270
+ ldr r3, _080D7278
+ movs r0, 0x3C
+ ldrsh r1, [r4, r0]
+ lsls r1, 1
+ movs r0, 0x3A
+ ldrsh r2, [r4, r0]
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r1, r0
+ adds r3, 0x8
+ adds r1, r3
+ ldrh r0, [r1]
+ subs r0, 0x1
+ strh r0, [r1]
+ ldrb r0, [r4, 0x3]
+ lsls r0, 26
+ lsrs r0, 27
+ bl FreeOamMatrix
+ adds r0, r4, 0
+ bl DestroySprite
+_080D7270:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D7278: .4byte gTasks
+ thumb_func_end sub_80D7230
+
+ thumb_func_start sub_80D727C
+sub_80D727C: @ 80D727C
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ beq _080D728E
+ cmp r0, 0x1
+ beq _080D72C0
+ b _080D72D4
+_080D728E:
+ ldr r4, _080D72BC
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+ adds r0, r5, 0
+ movs r1, 0x2
+ bl StartSpriteAffineAnim
+ ldrh r0, [r5, 0x2E]
+ adds r0, 0x1
+ strh r0, [r5, 0x2E]
+ b _080D72D4
+ .align 2, 0
+_080D72BC: .4byte gUnknown_0202F7C8
+_080D72C0:
+ adds r0, r5, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _080D72D4
+ adds r0, r5, 0
+ bl move_anim_8074EE0
+_080D72D4:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D727C
+
+ thumb_func_start sub_80D72DC
+sub_80D72DC: @ 80D72DC
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ ldr r1, _080D7300
+ adds r5, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x4
+ bls _080D72F6
+ b _080D7468
+_080D72F6:
+ lsls r0, 2
+ ldr r1, _080D7304
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080D7300: .4byte gTasks
+_080D7304: .4byte _080D7308
+ .align 2, 0
+_080D7308:
+ .4byte _080D731C
+ .4byte _080D73AC
+ .4byte _080D73E8
+ .4byte _080D7444
+ .4byte _080D7454
+_080D731C:
+ ldr r4, _080D73A0
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x14]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x16]
+ movs r0, 0x4
+ strh r0, [r5, 0x18]
+ ldr r0, _080D73A4
+ ldrb r0, [r0]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x1C]
+ movs r2, 0x1C
+ ldrsh r0, [r5, r2]
+ movs r2, 0x14
+ ldrsh r1, [r5, r2]
+ subs r0, r1
+ movs r1, 0x5
+ bl __divsi3
+ strh r0, [r5, 0x1A]
+ movs r0, 0x7
+ strh r0, [r5, 0x10]
+ ldr r0, _080D73A8
+ strh r0, [r5, 0x12]
+ movs r0, 0xC
+ strh r0, [r5, 0x1E]
+ subs r0, 0x4C
+ bl sub_8076F98
+ lsls r0, 24
+ asrs r0, 24
+ strh r0, [r5, 0x20]
+ movs r0, 0x3F
+ bl sub_8076F98
+ lsls r0, 24
+ asrs r0, 24
+ strh r0, [r5, 0x22]
+ ldrh r0, [r5, 0x20]
+ strh r0, [r5, 0x24]
+ movs r1, 0x22
+ ldrsh r0, [r5, r1]
+ movs r2, 0x20
+ ldrsh r1, [r5, r2]
+ subs r0, r1
+ movs r1, 0x3
+ bl __divsi3
+ strh r0, [r5, 0x26]
+ ldrh r0, [r5, 0x8]
+ adds r0, 0x1
+ b _080D7466
+ .align 2, 0
+_080D73A0: .4byte gUnknown_0202F7C8
+_080D73A4: .4byte gUnknown_0202F7C9
+_080D73A8: .4byte 0x0000ffff
+_080D73AC:
+ ldrh r0, [r5, 0xA]
+ adds r0, 0x1
+ strh r0, [r5, 0xA]
+ lsls r0, 16
+ cmp r0, 0
+ ble _080D73DC
+ movs r0, 0
+ strh r0, [r5, 0xA]
+ adds r0, r5, 0
+ adds r1, r2, 0
+ bl sub_80D7470
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D73DC
+ movs r1, 0xC
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x5
+ bne _080D73D6
+ movs r0, 0x3
+ b _080D73DA
+_080D73D6:
+ ldrh r0, [r5, 0x8]
+ adds r0, 0x1
+_080D73DA:
+ strh r0, [r5, 0x8]
+_080D73DC:
+ ldrh r1, [r5, 0x1E]
+ movs r2, 0x1E
+ ldrsh r0, [r5, r2]
+ cmp r0, 0
+ beq _080D7468
+ b _080D745E
+_080D73E8:
+ ldrh r1, [r5, 0x1E]
+ movs r2, 0x1E
+ ldrsh r0, [r5, r2]
+ cmp r0, 0
+ beq _080D73F6
+ subs r0, r1, 0x1
+ strh r0, [r5, 0x1E]
+_080D73F6:
+ ldrh r0, [r5, 0xA]
+ adds r0, 0x1
+ movs r3, 0
+ strh r0, [r5, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ ble _080D7468
+ strh r3, [r5, 0xA]
+ ldrh r1, [r5, 0xC]
+ movs r2, 0x1
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _080D7422
+ movs r0, 0x4
+ strh r0, [r5, 0x16]
+ movs r0, 0x44
+ strh r0, [r5, 0x18]
+ strh r3, [r5, 0x10]
+ strh r2, [r5, 0x12]
+ b _080D7432
+_080D7422:
+ movs r0, 0x44
+ strh r0, [r5, 0x16]
+ movs r0, 0x4
+ strh r0, [r5, 0x18]
+ movs r0, 0x7
+ strh r0, [r5, 0x10]
+ ldr r0, _080D7440
+ strh r0, [r5, 0x12]
+_080D7432:
+ movs r1, 0x1E
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ beq _080D7464
+ movs r0, 0x4
+ b _080D7466
+ .align 2, 0
+_080D7440: .4byte 0x0000ffff
+_080D7444:
+ movs r1, 0xE
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ bne _080D7468
+ adds r0, r2, 0
+ bl move_anim_task_del
+ b _080D7468
+_080D7454:
+ ldrh r1, [r5, 0x1E]
+ movs r2, 0x1E
+ ldrsh r0, [r5, r2]
+ cmp r0, 0
+ beq _080D7464
+_080D745E:
+ subs r0, r1, 0x1
+ strh r0, [r5, 0x1E]
+ b _080D7468
+_080D7464:
+ movs r0, 0x1
+_080D7466:
+ strh r0, [r5, 0x8]
+_080D7468:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D72DC
+
+ thumb_func_start sub_80D7470
+sub_80D7470: @ 80D7470
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ lsls r1, 24
+ lsrs r5, r1, 24
+ ldr r0, _080D7538
+ movs r2, 0x14
+ ldrsh r1, [r4, r2]
+ movs r3, 0x16
+ ldrsh r2, [r4, r3]
+ movs r3, 0x23
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x40
+ beq _080D74DC
+ ldr r1, _080D753C
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r3, r0, r1
+ ldrh r2, [r3, 0x4]
+ lsls r1, r2, 22
+ lsrs r1, 22
+ ldrh r6, [r4, 0x10]
+ adds r1, r6
+ ldr r6, _080D7540
+ adds r0, r6, 0
+ ands r1, r0
+ ldr r0, _080D7544
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r3, 0x4]
+ ldrh r0, [r4, 0x12]
+ ldrh r1, [r4, 0x10]
+ adds r0, r1
+ strh r0, [r4, 0x10]
+ lsls r0, 16
+ cmp r0, 0
+ bge _080D74C4
+ movs r0, 0x7
+ strh r0, [r4, 0x10]
+_080D74C4:
+ movs r2, 0x10
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x7
+ ble _080D74D0
+ movs r0, 0
+ strh r0, [r4, 0x10]
+_080D74D0:
+ strh r5, [r3, 0x3A]
+ movs r0, 0x3
+ strh r0, [r3, 0x3C]
+ ldrh r0, [r4, 0xE]
+ adds r0, 0x1
+ strh r0, [r4, 0xE]
+_080D74DC:
+ movs r3, 0x10
+ ldrsh r0, [r4, r3]
+ cmp r0, 0
+ bne _080D74FE
+ movs r5, 0x12
+ ldrsh r0, [r4, r5]
+ cmp r0, 0
+ ble _080D74FE
+ ldrh r1, [r4, 0x26]
+ ldrh r6, [r4, 0x24]
+ adds r1, r6
+ strh r1, [r4, 0x24]
+ lsls r1, 24
+ asrs r1, 24
+ movs r0, 0x76
+ bl PlaySE12WithPanning
+_080D74FE:
+ movs r0, 0x12
+ ldrsh r3, [r4, r0]
+ ldrh r2, [r4, 0x16]
+ cmp r3, 0
+ bge _080D7514
+ lsls r0, r2, 16
+ asrs r0, 16
+ movs r5, 0x18
+ ldrsh r1, [r4, r5]
+ cmp r0, r1
+ ble _080D7524
+_080D7514:
+ cmp r3, 0
+ ble _080D7548
+ lsls r0, r2, 16
+ asrs r0, 16
+ movs r6, 0x18
+ ldrsh r1, [r4, r6]
+ cmp r0, r1
+ blt _080D7548
+_080D7524:
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x1
+ strh r0, [r4, 0xC]
+ ldrh r0, [r4, 0x1A]
+ ldrh r1, [r4, 0x14]
+ adds r0, r1
+ strh r0, [r4, 0x14]
+ movs r0, 0x1
+ b _080D7554
+ .align 2, 0
+_080D7538: .4byte gSpriteTemplate_83D9B40
+_080D753C: .4byte gSprites
+_080D7540: .4byte 0x000003ff
+_080D7544: .4byte 0xfffffc00
+_080D7548:
+ movs r3, 0x12
+ ldrsh r0, [r4, r3]
+ lsls r0, 3
+ adds r0, r2, r0
+ strh r0, [r4, 0x16]
+ movs r0, 0
+_080D7554:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80D7470
+
+ thumb_func_start sub_80D755C
+sub_80D755C: @ 80D755C
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xC
+ ble _080D7592
+ ldr r3, _080D7598
+ movs r0, 0x3C
+ ldrsh r1, [r4, r0]
+ lsls r1, 1
+ movs r0, 0x3A
+ ldrsh r2, [r4, r0]
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r1, r0
+ adds r3, 0x8
+ adds r1, r3
+ ldrh r0, [r1]
+ subs r0, 0x1
+ strh r0, [r1]
+ adds r0, r4, 0
+ bl DestroySprite
+_080D7592:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D7598: .4byte gTasks
+ thumb_func_end sub_80D755C
+
+ thumb_func_start sub_80D759C
+sub_80D759C: @ 80D759C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ ldr r1, _080D75C0
+ adds r5, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x1
+ beq _080D7618
+ cmp r0, 0x1
+ bgt _080D75C4
+ cmp r0, 0
+ beq _080D75CA
+ b _080D764E
+ .align 2, 0
+_080D75C0: .4byte gTasks
+_080D75C4:
+ cmp r0, 0x2
+ beq _080D7640
+ b _080D764E
+_080D75CA:
+ ldr r0, _080D7614
+ ldrb r0, [r0]
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, 0x20
+ strh r0, [r5, 0x26]
+ strh r0, [r5, 0x24]
+ cmp r0, 0x10
+ ble _080D75F4
+ adds r2, r0, 0
+_080D75E4:
+ adds r1, r2, 0
+ subs r1, 0x20
+ adds r2, r1, 0
+ lsls r0, r1, 16
+ asrs r0, 16
+ cmp r0, 0x10
+ bgt _080D75E4
+ strh r1, [r5, 0x24]
+_080D75F4:
+ ldr r4, _080D7614
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+ ldrb r0, [r4]
+ bl sub_8079E90
+ lsls r0, 24
+ lsrs r0, 24
+ subs r0, 0x2
+ strh r0, [r5, 0x20]
+ b _080D7638
+ .align 2, 0
+_080D7614: .4byte gUnknown_0202F7C9
+_080D7618:
+ ldrh r0, [r5, 0xA]
+ adds r0, 0x1
+ strh r0, [r5, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080D764E
+ movs r0, 0
+ strh r0, [r5, 0xA]
+ adds r0, r5, 0
+ adds r1, r2, 0
+ bl sub_80D7654
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D764E
+_080D7638:
+ ldrh r0, [r5, 0x8]
+ adds r0, 0x1
+ strh r0, [r5, 0x8]
+ b _080D764E
+_080D7640:
+ movs r1, 0x1C
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ bne _080D764E
+ adds r0, r2, 0
+ bl move_anim_task_del
+_080D764E:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D759C
+
+ thumb_func_start sub_80D7654
+sub_80D7654: @ 80D7654
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ lsls r1, 24
+ lsrs r5, r1, 24
+ ldr r0, _080D76B0
+ movs r2, 0x22
+ ldrsh r1, [r4, r2]
+ movs r3, 0x24
+ ldrsh r2, [r4, r3]
+ ldrh r3, [r4, 0x20]
+ lsls r3, 24
+ lsrs r3, 24
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x40
+ beq _080D7698
+ ldr r3, _080D76B4
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r3, 0
+ adds r1, 0x1C
+ adds r1, r0, r1
+ ldr r2, _080D76B8
+ str r2, [r1]
+ adds r0, r3
+ strh r5, [r0, 0x3A]
+ movs r1, 0xA
+ strh r1, [r0, 0x3C]
+ ldrh r0, [r4, 0x1C]
+ adds r0, 0x1
+ strh r0, [r4, 0x1C]
+_080D7698:
+ ldrh r2, [r4, 0x24]
+ movs r0, 0x24
+ ldrsh r1, [r4, r0]
+ movs r3, 0x26
+ ldrsh r0, [r4, r3]
+ cmp r1, r0
+ bge _080D76BC
+ adds r0, r2, 0
+ adds r0, 0x20
+ strh r0, [r4, 0x24]
+ movs r0, 0
+ b _080D76BE
+ .align 2, 0
+_080D76B0: .4byte gBattleAnimSpriteTemplate_83D97D0
+_080D76B4: .4byte gSprites
+_080D76B8: .4byte sub_80D76C4
+_080D76BC:
+ movs r0, 0x1
+_080D76BE:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80D7654
+
+ thumb_func_start sub_80D76C4
+sub_80D76C4: @ 80D76C4
+ push {r4,lr}
+ adds r4, r0, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080D76F8
+ ldr r3, _080D7700
+ movs r0, 0x3C
+ ldrsh r1, [r4, r0]
+ lsls r1, 1
+ movs r0, 0x3A
+ ldrsh r2, [r4, r0]
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r1, r0
+ adds r3, 0x8
+ adds r1, r3
+ ldrh r0, [r1]
+ subs r0, 0x1
+ strh r0, [r1]
+ adds r0, r4, 0
+ bl DestroySprite
+_080D76F8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D7700: .4byte gTasks
+ thumb_func_end sub_80D76C4
+
+ thumb_func_start sub_80D7704
+sub_80D7704: @ 80D7704
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ adds r5, r0, 0
+ ldrh r2, [r5, 0x4]
+ lsls r1, r2, 22
+ lsrs r1, 22
+ adds r1, 0x7
+ ldr r3, _080D780C
+ adds r0, r3, 0
+ ands r1, r0
+ ldr r0, _080D7810
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r5, 0x4]
+ ldr r4, _080D7814
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ ldr r4, _080D7818
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldrb r0, [r4]
+ movs r1, 0x3
+ str r3, [sp]
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r1, _080D781C
+ ldrh r0, [r1, 0x8]
+ strh r0, [r5, 0x2E]
+ ldrh r0, [r1]
+ ldr r3, [sp]
+ adds r0, r3
+ strh r0, [r5, 0x30]
+ ldrh r0, [r1, 0x4]
+ mov r4, r9
+ adds r0, r4, r0
+ strh r0, [r5, 0x32]
+ ldrh r0, [r1, 0x2]
+ adds r0, r6
+ strh r0, [r5, 0x34]
+ ldrh r0, [r1, 0x6]
+ mov r7, r8
+ adds r0, r7, r0
+ strh r0, [r5, 0x36]
+ adds r0, r5, 0
+ bl sub_8078314
+ adds r4, 0x20
+ movs r0, 0x98
+ lsls r0, 1
+ mov r12, r0
+ ldr r3, [sp]
+ cmp r4, r12
+ bhi _080D77DE
+ adds r0, r7, 0
+ adds r0, 0x20
+ ldrh r1, [r5, 0x30]
+ ldrh r2, [r5, 0x32]
+ cmp r0, 0xE0
+ bhi _080D77DE
+ adds r4, r1, 0
+ mov r10, r12
+_080D77AA:
+ mov r7, r9
+ lsls r1, r7, 16
+ asrs r1, 16
+ adds r1, r4
+ lsls r1, 16
+ mov r7, r8
+ lsls r0, r7, 16
+ asrs r0, 16
+ adds r0, r2
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ lsrs r0, r1, 16
+ mov r9, r0
+ movs r7, 0x80
+ lsls r7, 14
+ adds r1, r7
+ lsrs r1, 16
+ cmp r1, r10
+ bhi _080D77DE
+ mov r1, r8
+ lsls r0, r1, 16
+ adds r0, r7
+ lsrs r0, 16
+ cmp r0, 0xE0
+ bls _080D77AA
+_080D77DE:
+ ldrh r0, [r5, 0x30]
+ negs r7, r0
+ strh r7, [r5, 0x30]
+ ldrh r0, [r5, 0x32]
+ negs r4, r0
+ strh r4, [r5, 0x32]
+ lsls r0, r3, 16
+ movs r1, 0x80
+ lsls r1, 14
+ adds r0, r1
+ lsrs r0, 16
+ movs r2, 0x98
+ lsls r2, 1
+ mov r12, r2
+ ldr r1, _080D781C
+ mov r10, r1
+ cmp r0, r12
+ bhi _080D784A
+ lsls r1, r6, 16
+ movs r2, 0x80
+ lsls r2, 14
+ adds r0, r1, r2
+ b _080D7842
+ .align 2, 0
+_080D780C: .4byte 0x000003ff
+_080D7810: .4byte 0xfffffc00
+_080D7814: .4byte gUnknown_0202F7C9
+_080D7818: .4byte gUnknown_0202F7C8
+_080D781C: .4byte gUnknown_03004B00
+_080D7820:
+ lsls r1, r3, 16
+ asrs r1, 16
+ adds r1, r7
+ lsls r1, 16
+ asrs r0, r2, 16
+ adds r0, r4
+ lsls r0, 16
+ lsrs r6, r0, 16
+ lsrs r3, r1, 16
+ movs r0, 0x80
+ lsls r0, 14
+ adds r1, r0
+ lsrs r1, 16
+ cmp r1, r12
+ bhi _080D784A
+ lsls r1, r6, 16
+ adds r0, r1, r0
+_080D7842:
+ lsrs r0, 16
+ adds r2, r1, 0
+ cmp r0, 0xE0
+ bls _080D7820
+_080D784A:
+ strh r3, [r5, 0x20]
+ strh r6, [r5, 0x22]
+ mov r1, r10
+ ldrh r0, [r1, 0x8]
+ strh r0, [r5, 0x2E]
+ strh r3, [r5, 0x30]
+ mov r2, r9
+ strh r2, [r5, 0x32]
+ strh r6, [r5, 0x34]
+ mov r3, r8
+ strh r3, [r5, 0x36]
+ adds r0, r5, 0
+ bl sub_8078314
+ mov r7, r10
+ ldrh r0, [r7, 0xA]
+ strh r0, [r5, 0x34]
+ ldrh r0, [r7, 0xC]
+ strh r0, [r5, 0x36]
+ ldr r0, _080D7884
+ str r0, [r5, 0x1C]
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D7884: .4byte sub_80D7888
+ thumb_func_end sub_80D7704
+
+ thumb_func_start sub_80D7888
+sub_80D7888: @ 80D7888
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080D78E0
+ ldrh r1, [r4, 0x30]
+ ldrh r2, [r4, 0x38]
+ adds r1, r2
+ strh r1, [r4, 0x38]
+ ldrh r0, [r4, 0x32]
+ ldrh r2, [r4, 0x3A]
+ adds r0, r2
+ strh r0, [r4, 0x3A]
+ strh r1, [r4, 0x24]
+ strh r0, [r4, 0x26]
+ movs r1, 0x3C
+ ldrsh r0, [r4, r1]
+ movs r2, 0x34
+ ldrsh r1, [r4, r2]
+ bl Sin
+ ldrh r1, [r4, 0x24]
+ adds r0, r1
+ strh r0, [r4, 0x24]
+ movs r2, 0x3C
+ ldrsh r0, [r4, r2]
+ movs r2, 0x34
+ ldrsh r1, [r4, r2]
+ bl Sin
+ ldrh r1, [r4, 0x26]
+ adds r0, r1
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x36]
+ ldrh r2, [r4, 0x3C]
+ adds r0, r2
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x3C]
+ ldrh r0, [r4, 0x2E]
+ subs r0, 0x1
+ strh r0, [r4, 0x2E]
+ b _080D78E6
+_080D78E0:
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080D78E6:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D7888
+
+ thumb_func_start sub_80D78EC
+sub_80D78EC: @ 80D78EC
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _080D7920
+ ldrh r0, [r0]
+ strh r0, [r4, 0x2E]
+ movs r0, 0x3C
+ strh r0, [r4, 0x30]
+ movs r0, 0x9
+ strh r0, [r4, 0x32]
+ movs r0, 0x1E
+ strh r0, [r4, 0x34]
+ movs r0, 0xFE
+ lsls r0, 8
+ strh r0, [r4, 0x36]
+ ldr r1, _080D7924
+ adds r0, r4, 0
+ bl oamt_set_x3A_32
+ ldr r1, _080D7928
+ str r1, [r4, 0x1C]
+ adds r0, r4, 0
+ bl _call_via_r1
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D7920: .4byte gUnknown_03004B00
+_080D7924: .4byte move_anim_8072740
+_080D7928: .4byte sub_8078174
+ thumb_func_end sub_80D78EC
+
+ thumb_func_start sub_80D792C
+sub_80D792C: @ 80D792C
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x1
+ bl sub_80787B0
+ ldr r0, _080D7960
+ ldrb r0, [r0]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x32]
+ ldr r0, _080D7964
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D796C
+ ldr r0, _080D7968
+ ldrh r1, [r4, 0x32]
+ ldrh r0, [r0, 0x4]
+ subs r1, r0
+ strh r1, [r4, 0x32]
+ b _080D7976
+ .align 2, 0
+_080D7960: .4byte gUnknown_0202F7C9
+_080D7964: .4byte gUnknown_0202F7C8
+_080D7968: .4byte gUnknown_03004B00
+_080D796C:
+ ldr r0, _080D79A4
+ ldrh r0, [r0, 0x4]
+ ldrh r1, [r4, 0x32]
+ adds r0, r1
+ strh r0, [r4, 0x32]
+_080D7976:
+ ldr r0, _080D79A8
+ ldrb r0, [r0]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ ldr r1, _080D79A4
+ lsrs r0, 24
+ ldrh r2, [r1, 0x6]
+ adds r0, r2
+ strh r0, [r4, 0x36]
+ ldrh r0, [r1, 0x8]
+ strh r0, [r4, 0x2E]
+ ldr r1, _080D79AC
+ adds r0, r4, 0
+ bl oamt_set_x3A_32
+ ldr r0, _080D79B0
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D79A4: .4byte gUnknown_03004B00
+_080D79A8: .4byte gUnknown_0202F7C9
+_080D79AC: .4byte move_anim_8072740
+_080D79B0: .4byte sub_8078B34
+ thumb_func_end sub_80D792C
+
+ thumb_func_start sub_80D79B4
+sub_80D79B4: @ 80D79B4
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldr r5, _080D79CC
+ movs r1, 0x4
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ bne _080D79D0
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_8078764
+ b _080D7A06
+ .align 2, 0
+_080D79CC: .4byte gUnknown_03004B00
+_080D79D0:
+ ldr r0, _080D7A18
+ ldrb r0, [r0]
+ adds r2, r4, 0
+ adds r2, 0x20
+ adds r3, r4, 0
+ adds r3, 0x22
+ movs r1, 0x1
+ bl sub_807A3FC
+ ldr r0, _080D7A1C
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D79F6
+ ldrh r0, [r5]
+ negs r0, r0
+ strh r0, [r5]
+_080D79F6:
+ ldrh r0, [r5]
+ ldrh r1, [r4, 0x20]
+ adds r0, r1
+ strh r0, [r4, 0x20]
+ ldrh r0, [r5, 0x2]
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r4, 0x22]
+_080D7A06:
+ ldr r1, _080D7A20
+ adds r0, r4, 0
+ bl oamt_set_x3A_32
+ ldr r0, _080D7A24
+ str r0, [r4, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D7A18: .4byte gUnknown_0202F7C9
+_080D7A1C: .4byte gUnknown_0202F7C8
+_080D7A20: .4byte sub_80D7A28
+_080D7A24: .4byte sub_80785E4
+ thumb_func_end sub_80D79B4
+
+ thumb_func_start sub_80D7A28
+sub_80D7A28: @ 80D7A28
+ push {lr}
+ adds r3, r0, 0
+ movs r0, 0x3E
+ adds r0, r3
+ mov r12, r0
+ ldrb r2, [r0]
+ 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
+ mov r1, r12
+ strb r0, [r1]
+ ldrh r0, [r3, 0x2E]
+ adds r0, 0x1
+ strh r0, [r3, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x14
+ bne _080D7A5E
+ adds r0, r3, 0
+ bl move_anim_8074EE0
+_080D7A5E:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D7A28
+
+ thumb_func_start sub_80D7A64
+sub_80D7A64: @ 80D7A64
+ push {r4-r7,lr}
+ sub sp, 0x10
+ adds r5, r0, 0
+ movs r1, 0x1
+ bl sub_80787B0
+ ldr r6, _080D7AAC
+ ldrh r0, [r6, 0x8]
+ strh r0, [r5, 0x2E]
+ ldrh r0, [r5, 0x20]
+ strh r0, [r5, 0x30]
+ ldrh r0, [r5, 0x22]
+ strh r0, [r5, 0x34]
+ movs r1, 0xA
+ ldrsh r0, [r6, r1]
+ cmp r0, 0
+ bne _080D7AB4
+ ldr r4, _080D7AB0
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x32]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r6, [r6, 0x6]
+ adds r0, r6
+ strh r0, [r5, 0x36]
+ b _080D7AC6
+ .align 2, 0
+_080D7AAC: .4byte gUnknown_03004B00
+_080D7AB0: .4byte gUnknown_0202F7C9
+_080D7AB4:
+ ldr r0, _080D7AE0
+ ldrb r0, [r0]
+ adds r2, r5, 0
+ adds r2, 0x32
+ adds r3, r5, 0
+ adds r3, 0x36
+ movs r1, 0x1
+ bl sub_807A3FC
+_080D7AC6:
+ ldr r0, _080D7AE4
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D7AEC
+ ldr r0, _080D7AE8
+ ldrh r1, [r5, 0x32]
+ ldrh r0, [r0, 0x4]
+ subs r1, r0
+ strh r1, [r5, 0x32]
+ b _080D7AF6
+ .align 2, 0
+_080D7AE0: .4byte gUnknown_0202F7C9
+_080D7AE4: .4byte gUnknown_0202F7C8
+_080D7AE8: .4byte gUnknown_03004B00
+_080D7AEC:
+ ldr r0, _080D7B94
+ ldrh r0, [r0, 0x4]
+ ldrh r2, [r5, 0x32]
+ adds r0, r2
+ strh r0, [r5, 0x32]
+_080D7AF6:
+ adds r7, r5, 0
+ adds r7, 0x2E
+ adds r2, r7, 0
+ mov r1, sp
+ movs r4, 0x7
+_080D7B00:
+ ldrh r0, [r2]
+ strh r0, [r1]
+ adds r2, 0x2
+ adds r1, 0x2
+ subs r4, 0x1
+ cmp r4, 0
+ bge _080D7B00
+ adds r0, r5, 0
+ bl sub_8078D60
+ ldrh r0, [r5, 0x30]
+ movs r1, 0x1
+ eors r0, r1
+ strh r0, [r5, 0x30]
+ ldrh r0, [r5, 0x32]
+ eors r0, r1
+ strh r0, [r5, 0x32]
+_080D7B22:
+ movs r0, 0x1
+ strh r0, [r5, 0x2E]
+ adds r0, r5, 0
+ bl sub_8078CE8
+ movs r0, 0x20
+ ldrsh r1, [r5, r0]
+ movs r2, 0x24
+ ldrsh r0, [r5, r2]
+ adds r1, r0
+ adds r1, 0x10
+ movs r0, 0x88
+ lsls r0, 1
+ cmp r1, r0
+ bhi _080D7B56
+ movs r0, 0x22
+ ldrsh r1, [r5, r0]
+ movs r2, 0x26
+ ldrsh r0, [r5, r2]
+ adds r1, r0
+ cmp r1, 0xA0
+ bgt _080D7B56
+ movs r0, 0x10
+ negs r0, r0
+ cmp r1, r0
+ bge _080D7B22
+_080D7B56:
+ ldrh r0, [r5, 0x24]
+ ldrh r1, [r5, 0x20]
+ adds r0, r1
+ movs r1, 0
+ strh r0, [r5, 0x20]
+ ldrh r0, [r5, 0x26]
+ ldrh r2, [r5, 0x22]
+ adds r0, r2
+ strh r0, [r5, 0x22]
+ strh r1, [r5, 0x26]
+ strh r1, [r5, 0x24]
+ ldr r6, _080D7B98
+ ldr r1, _080D7B9C
+ mov r3, sp
+ adds r2, r7, 0
+ movs r4, 0x7
+_080D7B76:
+ ldrh r0, [r3]
+ strh r0, [r2]
+ adds r3, 0x2
+ adds r2, 0x2
+ subs r4, 0x1
+ cmp r4, 0
+ bge _080D7B76
+ str r6, [r5, 0x1C]
+ adds r0, r5, 0
+ bl oamt_set_x3A_32
+ add sp, 0x10
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D7B94: .4byte gUnknown_03004B00
+_080D7B98: .4byte sub_8078D8C
+_080D7B9C: .4byte sub_80D7BA0
+ thumb_func_end sub_80D7A64
+
+ thumb_func_start sub_80D7BA0
+sub_80D7BA0: @ 80D7BA0
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x24]
+ ldrh r1, [r4, 0x20]
+ adds r0, r1
+ movs r5, 0
+ strh r0, [r4, 0x20]
+ ldrh r0, [r4, 0x26]
+ ldrh r2, [r4, 0x22]
+ adds r0, r2
+ strh r0, [r4, 0x22]
+ strh r5, [r4, 0x26]
+ strh r5, [r4, 0x24]
+ movs r0, 0x80
+ strh r0, [r4, 0x2E]
+ ldr r0, _080D7BFC
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ ldr r1, _080D7C00
+ cmp r0, 0
+ beq _080D7BD0
+ movs r1, 0x14
+_080D7BD0:
+ movs r2, 0x2E
+ ldrsh r0, [r4, r2]
+ lsls r1, 16
+ asrs r1, 16
+ bl Sin
+ strh r0, [r4, 0x34]
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ movs r1, 0xF
+ bl Cos
+ strh r0, [r4, 0x36]
+ strh r5, [r4, 0x38]
+ ldr r1, _080D7C04
+ str r1, [r4, 0x1C]
+ adds r0, r4, 0
+ bl _call_via_r1
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D7BFC: .4byte gUnknown_0202F7C8
+_080D7C00: .4byte 0x0000ffec
+_080D7C04: .4byte sub_80D7C08
+ thumb_func_end sub_80D7BA0
+
+ thumb_func_start sub_80D7C08
+sub_80D7C08: @ 80D7C08
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _080D7C5C
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ ldr r1, _080D7C60
+ cmp r0, 0
+ beq _080D7C1E
+ movs r1, 0x14
+_080D7C1E:
+ movs r2, 0x38
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x1F
+ bgt _080D7C64
+ movs r2, 0x2E
+ ldrsh r0, [r4, r2]
+ lsls r1, 16
+ asrs r1, 16
+ bl Sin
+ ldrh r1, [r4, 0x34]
+ subs r0, r1
+ strh r0, [r4, 0x24]
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ movs r1, 0xF
+ bl Cos
+ ldrh r1, [r4, 0x36]
+ subs r0, r1
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x10
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r4, 0x38]
+ adds r0, 0x1
+ strh r0, [r4, 0x38]
+ b _080D7C82
+ .align 2, 0
+_080D7C5C: .4byte gUnknown_0202F7C8
+_080D7C60: .4byte 0x0000ffec
+_080D7C64:
+ ldrh r0, [r4, 0x24]
+ ldrh r2, [r4, 0x20]
+ adds r0, r2
+ movs r1, 0
+ strh r0, [r4, 0x20]
+ ldrh r0, [r4, 0x26]
+ ldrh r2, [r4, 0x22]
+ adds r0, r2
+ strh r0, [r4, 0x22]
+ strh r1, [r4, 0x26]
+ strh r1, [r4, 0x24]
+ strh r1, [r4, 0x36]
+ strh r1, [r4, 0x34]
+ ldr r0, _080D7C88
+ str r0, [r4, 0x1C]
+_080D7C82:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D7C88: .4byte sub_80D7C8C
+ thumb_func_end sub_80D7C08
+
+ thumb_func_start sub_80D7C8C
+sub_80D7C8C: @ 80D7C8C
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r0, 0x1
+ strh r0, [r4, 0x2E]
+ adds r0, r4, 0
+ bl sub_8078CE8
+ movs r1, 0x20
+ ldrsh r0, [r4, r1]
+ movs r2, 0x24
+ ldrsh r1, [r4, r2]
+ adds r0, r1
+ adds r0, 0x10
+ movs r1, 0x88
+ lsls r1, 1
+ cmp r0, r1
+ bhi _080D7CC8
+ movs r1, 0x22
+ ldrsh r0, [r4, r1]
+ movs r2, 0x26
+ ldrsh r1, [r4, r2]
+ adds r1, r0, r1
+ movs r0, 0x80
+ lsls r0, 1
+ cmp r1, r0
+ bgt _080D7CC8
+ movs r0, 0x10
+ negs r0, r0
+ cmp r1, r0
+ bge _080D7CCE
+_080D7CC8:
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080D7CCE:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D7C8C
+
+ thumb_func_start sub_80D7CD4
+sub_80D7CD4: @ 80D7CD4
+ push {r4-r7,lr}
+ sub sp, 0x10
+ adds r5, r0, 0
+ movs r1, 0x1
+ bl sub_80787B0
+ ldr r1, _080D7D18
+ ldrh r0, [r1, 0x8]
+ strh r0, [r5, 0x2E]
+ ldrh r0, [r5, 0x20]
+ strh r0, [r5, 0x30]
+ ldrh r0, [r5, 0x22]
+ strh r0, [r5, 0x34]
+ movs r2, 0xE
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ bne _080D7D20
+ ldr r4, _080D7D1C
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x32]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x36]
+ b _080D7D32
+ .align 2, 0
+_080D7D18: .4byte gUnknown_03004B00
+_080D7D1C: .4byte gUnknown_0202F7C9
+_080D7D20:
+ ldr r0, _080D7D50
+ ldrb r0, [r0]
+ adds r2, r5, 0
+ adds r2, 0x32
+ adds r3, r5, 0
+ adds r3, 0x36
+ movs r1, 0x1
+ bl sub_807A3FC
+_080D7D32:
+ ldr r0, _080D7D54
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D7D5C
+ ldr r0, _080D7D58
+ ldrh r1, [r5, 0x32]
+ ldrh r2, [r0, 0x4]
+ subs r1, r2
+ strh r1, [r5, 0x32]
+ adds r1, r0, 0
+ b _080D7D66
+ .align 2, 0
+_080D7D50: .4byte gUnknown_0202F7C9
+_080D7D54: .4byte gUnknown_0202F7C8
+_080D7D58: .4byte gUnknown_03004B00
+_080D7D5C:
+ ldr r1, _080D7E10
+ ldrh r0, [r1, 0x4]
+ ldrh r2, [r5, 0x32]
+ adds r0, r2
+ strh r0, [r5, 0x32]
+_080D7D66:
+ ldrh r0, [r1, 0x6]
+ ldrh r1, [r5, 0x36]
+ adds r0, r1
+ strh r0, [r5, 0x36]
+ adds r0, r5, 0
+ bl sub_8078D60
+ adds r7, r5, 0
+ adds r7, 0x2E
+ adds r2, r7, 0
+ mov r1, sp
+ movs r4, 0x7
+_080D7D7E:
+ ldrh r0, [r2]
+ strh r0, [r1]
+ adds r2, 0x2
+ adds r1, 0x2
+ subs r4, 0x1
+ cmp r4, 0
+ bge _080D7D7E
+ ldrh r0, [r5, 0x30]
+ movs r1, 0x1
+ eors r0, r1
+ strh r0, [r5, 0x30]
+ ldrh r0, [r5, 0x32]
+ eors r0, r1
+ strh r0, [r5, 0x32]
+_080D7D9A:
+ movs r0, 0x1
+ strh r0, [r5, 0x2E]
+ adds r0, r5, 0
+ bl sub_8078CE8
+ movs r2, 0x20
+ ldrsh r1, [r5, r2]
+ movs r2, 0x24
+ ldrsh r0, [r5, r2]
+ adds r1, r0
+ adds r1, 0x10
+ movs r0, 0x88
+ lsls r0, 1
+ cmp r1, r0
+ bhi _080D7DCE
+ movs r0, 0x22
+ ldrsh r1, [r5, r0]
+ movs r2, 0x26
+ ldrsh r0, [r5, r2]
+ adds r1, r0
+ cmp r1, 0xA0
+ bgt _080D7DCE
+ movs r0, 0x10
+ negs r0, r0
+ cmp r1, r0
+ bge _080D7D9A
+_080D7DCE:
+ ldrh r0, [r5, 0x24]
+ ldrh r1, [r5, 0x20]
+ adds r0, r1
+ movs r1, 0
+ strh r0, [r5, 0x20]
+ ldrh r0, [r5, 0x26]
+ ldrh r2, [r5, 0x22]
+ adds r0, r2
+ strh r0, [r5, 0x22]
+ strh r1, [r5, 0x26]
+ strh r1, [r5, 0x24]
+ ldr r1, _080D7E10
+ ldr r6, _080D7E14
+ mov r3, sp
+ adds r2, r7, 0
+ movs r4, 0x7
+_080D7DEE:
+ ldrh r0, [r3]
+ strh r0, [r2]
+ adds r3, 0x2
+ adds r2, 0x2
+ subs r4, 0x1
+ cmp r4, 0
+ bge _080D7DEE
+ ldrh r0, [r1, 0xA]
+ strh r0, [r5, 0x38]
+ ldrh r0, [r1, 0xC]
+ strh r0, [r5, 0x3A]
+ str r6, [r5, 0x1C]
+ add sp, 0x10
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D7E10: .4byte gUnknown_03004B00
+_080D7E14: .4byte sub_80D7E18
+ thumb_func_end sub_80D7CD4
+
+ thumb_func_start sub_80D7E18
+sub_80D7E18: @ 80D7E18
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_8078CE8
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080D7E2C
+ movs r0, 0x1
+ strh r0, [r4, 0x2E]
+_080D7E2C:
+ movs r2, 0x3C
+ ldrsh r0, [r4, r2]
+ movs r2, 0x38
+ ldrsh r1, [r4, r2]
+ bl Sin
+ ldrh r1, [r4, 0x26]
+ adds r0, r1
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x3A]
+ ldrh r2, [r4, 0x3C]
+ adds r0, r2
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x3C]
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ bne _080D7E82
+ movs r2, 0x20
+ ldrsh r0, [r4, r2]
+ movs r2, 0x24
+ ldrsh r1, [r4, r2]
+ adds r0, r1
+ adds r0, 0x10
+ movs r1, 0x88
+ lsls r1, 1
+ cmp r0, r1
+ bhi _080D7E7C
+ movs r0, 0x22
+ ldrsh r1, [r4, r0]
+ movs r2, 0x26
+ ldrsh r0, [r4, r2]
+ adds r1, r0
+ cmp r1, 0xA0
+ bgt _080D7E7C
+ movs r0, 0x10
+ negs r0, r0
+ cmp r1, r0
+ bge _080D7E82
+_080D7E7C:
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080D7E82:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D7E18
+
+ thumb_func_start sub_80D7E88
+sub_80D7E88: @ 80D7E88
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080D7EF4
+ ldr r5, _080D7EA8
+ movs r1, 0x4
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ bne _080D7EAC
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_8078764
+ b _080D7EE2
+ .align 2, 0
+_080D7EA8: .4byte gUnknown_03004B00
+_080D7EAC:
+ ldr r0, _080D7EEC
+ ldrb r0, [r0]
+ adds r2, r4, 0
+ adds r2, 0x20
+ adds r3, r4, 0
+ adds r3, 0x22
+ movs r1, 0
+ bl sub_807A3FC
+ ldr r0, _080D7EF0
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D7ED2
+ ldrh r0, [r5]
+ negs r0, r0
+ strh r0, [r5]
+_080D7ED2:
+ ldrh r0, [r5]
+ ldrh r1, [r4, 0x20]
+ adds r0, r1
+ strh r0, [r4, 0x20]
+ ldrh r0, [r5, 0x2]
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r4, 0x22]
+_080D7EE2:
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ b _080D7F08
+ .align 2, 0
+_080D7EEC: .4byte gUnknown_0202F7C9
+_080D7EF0: .4byte gUnknown_0202F7C8
+_080D7EF4:
+ adds r0, r4, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080D7F08
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080D7F08:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D7E88
+
+ thumb_func_start sub_80D7F10
+sub_80D7F10: @ 80D7F10
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ ldr r6, _080D7F30
+ movs r1, 0x8
+ ldrsh r0, [r6, r1]
+ cmp r0, 0
+ bne _080D7F80
+ movs r1, 0xA
+ ldrsh r0, [r6, r1]
+ cmp r0, 0
+ bne _080D7F34
+ adds r0, r5, 0
+ movs r1, 0
+ bl sub_80787B0
+ b _080D7F72
+ .align 2, 0
+_080D7F30: .4byte gUnknown_03004B00
+_080D7F34:
+ ldr r4, _080D7F5C
+ ldrb r0, [r4]
+ adds r2, r5, 0
+ adds r2, 0x20
+ adds r3, r5, 0
+ adds r3, 0x22
+ movs r1, 0
+ bl sub_807A3FC
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D7F60
+ ldrh r0, [r5, 0x20]
+ ldrh r1, [r6]
+ subs r0, r1
+ b _080D7F66
+ .align 2, 0
+_080D7F5C: .4byte gUnknown_0202F7C8
+_080D7F60:
+ ldrh r0, [r6]
+ ldrh r1, [r5, 0x20]
+ adds r0, r1
+_080D7F66:
+ strh r0, [r5, 0x20]
+ ldr r0, _080D7F78
+ ldrh r0, [r0, 0x2]
+ ldrh r1, [r5, 0x22]
+ adds r0, r1
+ strh r0, [r5, 0x22]
+_080D7F72:
+ ldr r0, _080D7F7C
+ b _080D7FD0
+ .align 2, 0
+_080D7F78: .4byte gUnknown_03004B00
+_080D7F7C: .4byte gUnknown_0202F7C8
+_080D7F80:
+ movs r1, 0xA
+ ldrsh r0, [r6, r1]
+ cmp r0, 0
+ bne _080D7F92
+ adds r0, r5, 0
+ movs r1, 0
+ bl sub_8078764
+ b _080D7FCE
+_080D7F92:
+ ldr r4, _080D7FB8
+ ldrb r0, [r4]
+ adds r2, r5, 0
+ adds r2, 0x20
+ adds r3, r5, 0
+ adds r3, 0x22
+ movs r1, 0
+ bl sub_807A3FC
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D7FBC
+ ldrh r0, [r5, 0x20]
+ ldrh r1, [r6]
+ subs r0, r1
+ b _080D7FC2
+ .align 2, 0
+_080D7FB8: .4byte gUnknown_0202F7C9
+_080D7FBC:
+ ldrh r0, [r6]
+ ldrh r1, [r5, 0x20]
+ adds r0, r1
+_080D7FC2:
+ strh r0, [r5, 0x20]
+ ldr r0, _080D7FEC
+ ldrh r0, [r0, 0x2]
+ ldrh r1, [r5, 0x22]
+ adds r0, r1
+ strh r0, [r5, 0x22]
+_080D7FCE:
+ ldr r0, _080D7FF0
+_080D7FD0:
+ ldrb r0, [r0]
+ strh r0, [r5, 0x3C]
+ ldr r0, _080D7FEC
+ movs r1, 0xA
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ beq _080D7FE8
+ bl battle_type_is_double
+ lsls r0, 24
+ cmp r0, 0
+ bne _080D7FF4
+_080D7FE8:
+ movs r0, 0x20
+ b _080D7FF6
+ .align 2, 0
+_080D7FEC: .4byte gUnknown_03004B00
+_080D7FF0: .4byte gUnknown_0202F7C9
+_080D7FF4:
+ movs r0, 0x40
+_080D7FF6:
+ strh r0, [r5, 0x3A]
+ ldr r0, _080D803C
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _080D800C
+ ldrh r0, [r5, 0x22]
+ adds r0, 0x8
+ strh r0, [r5, 0x22]
+_080D800C:
+ ldr r1, _080D8040
+ ldrh r0, [r1, 0x6]
+ strh r0, [r5, 0x2E]
+ ldrh r0, [r5, 0x20]
+ strh r0, [r5, 0x30]
+ strh r0, [r5, 0x32]
+ ldrh r0, [r5, 0x22]
+ strh r0, [r5, 0x34]
+ ldrh r1, [r1, 0x4]
+ adds r0, r1
+ strh r0, [r5, 0x36]
+ adds r0, r5, 0
+ bl obj_translate_based_on_private_1_2_3_4
+ movs r0, 0x40
+ strh r0, [r5, 0x38]
+ ldr r1, _080D8044
+ str r1, [r5, 0x1C]
+ adds r0, r5, 0
+ bl _call_via_r1
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D803C: .4byte gUnknown_0202F7C9
+_080D8040: .4byte gUnknown_03004B00
+_080D8044: .4byte sub_80D8048
+ thumb_func_end sub_80D7F10
+
+ thumb_func_start sub_80D8048
+sub_80D8048: @ 80D8048
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_8078B5C
+ lsls r0, 24
+ cmp r0, 0
+ bne _080D80D2
+ movs r1, 0x38
+ ldrsh r0, [r4, r1]
+ movs r2, 0x3A
+ ldrsh r1, [r4, r2]
+ bl Sin
+ ldrh r1, [r4, 0x24]
+ adds r0, r1
+ strh r0, [r4, 0x24]
+ movs r2, 0x38
+ ldrsh r0, [r4, r2]
+ movs r1, 0x6
+ negs r1, r1
+ bl Cos
+ ldrh r1, [r4, 0x26]
+ adds r0, r1
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x38]
+ subs r0, 0x40
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x7F
+ bhi _080D80A4
+ ldrh r0, [r4, 0x3C]
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8079ED4
+ movs r1, 0x3
+ ands r1, r0
+ lsls r1, 2
+ ldrb r2, [r4, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r4, 0x5]
+ b _080D80C6
+_080D80A4:
+ ldrh r0, [r4, 0x3C]
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8079ED4
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, 0x1
+ movs r1, 0x3
+ ands r0, r1
+ lsls r0, 2
+ ldrb r2, [r4, 0x5]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r4, 0x5]
+_080D80C6:
+ ldrh r0, [r4, 0x38]
+ adds r0, 0x3
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x38]
+ b _080D80D8
+_080D80D2:
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080D80D8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D8048
+
+ thumb_func_start sub_80D80E0
+sub_80D80E0: @ 80D80E0
+ push {r4,r5,lr}
+ sub sp, 0x10
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _080D81A8
+ ldr r2, _080D81AC
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r2, 0x80
+ lsls r2, 5
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r4, _080D81B0
+ ldrb r1, [r4]
+ movs r0, 0x4
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r4]
+ ldrb r1, [r4, 0x1]
+ movs r0, 0x3F
+ ands r0, r1
+ strb r0, [r4, 0x1]
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080D812A
+ ldrb r0, [r4]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r0
+ movs r0, 0x4
+ orrs r1, r0
+ strb r1, [r4]
+_080D812A:
+ ldr r0, _080D81B4
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, _080D81B8
+ strh r1, [r0]
+ ldr r0, _080D81BC
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ mov r0, sp
+ bl sub_8078914
+ ldr r1, [sp, 0x4]
+ movs r0, 0
+ str r0, [sp, 0xC]
+ ldr r0, _080D81C0
+ add r2, sp, 0xC
+ str r2, [r0]
+ str r1, [r0, 0x4]
+ ldr r2, _080D81C4
+ str r2, [r0, 0x8]
+ ldr r2, [r0, 0x8]
+ ldr r2, _080D81C8
+ ldr r3, [sp]
+ str r2, [r0]
+ str r3, [r0, 0x4]
+ ldr r2, _080D81CC
+ str r2, [r0, 0x8]
+ ldr r0, [r0, 0x8]
+ ldr r0, _080D81D0
+ bl LZDecompressVram
+ ldr r0, _080D81D4
+ mov r1, sp
+ ldrb r1, [r1, 0x8]
+ lsls r1, 4
+ movs r2, 0x20
+ bl LoadPalette
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D8190
+ mov r0, sp
+ ldrb r0, [r0, 0x8]
+ ldr r1, [sp, 0x4]
+ movs r2, 0
+ movs r3, 0
+ bl sub_80763FC
+_080D8190:
+ ldr r0, _080D81D8
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _080D81DC
+ str r0, [r1]
+ add sp, 0x10
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D81A8: .4byte REG_BLDCNT
+_080D81AC: .4byte 0x00003f42
+_080D81B0: .4byte REG_BG1CNT
+_080D81B4: .4byte gUnknown_030042C0
+_080D81B8: .4byte gUnknown_030041B4
+_080D81BC: .4byte REG_BG1HOFS
+_080D81C0: .4byte 0x040000d4
+_080D81C4: .4byte 0x85000400
+_080D81C8: .4byte gWeatherFog1Tiles
+_080D81CC: .4byte 0x80000400
+_080D81D0: .4byte gWeatherFog1Tilemap
+_080D81D4: .4byte gUnknown_083970E8
+_080D81D8: .4byte gTasks
+_080D81DC: .4byte sub_80D81E0
+ thumb_func_end sub_80D80E0
+
+ thumb_func_start sub_80D81E0
+sub_80D81E0: @ 80D81E0
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x10
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r2, _080D8220
+ ldr r1, _080D8224
+ adds r0, r1, 0
+ ldrh r4, [r2]
+ adds r0, r4
+ strh r0, [r2]
+ ldr r1, _080D8228
+ ldr r3, _080D822C
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r0, r3
+ movs r4, 0x20
+ ldrsh r0, [r0, r4]
+ adds r4, r1, 0
+ cmp r0, 0x4
+ bls _080D8214
+ b _080D83B0
+_080D8214:
+ lsls r0, 2
+ ldr r1, _080D8230
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080D8220: .4byte gUnknown_030042C0
+_080D8224: .4byte 0x0000ffff
+_080D8228: .4byte gUnknown_030041B4
+_080D822C: .4byte gTasks
+_080D8230: .4byte _080D8234
+ .align 2, 0
+_080D8234:
+ .4byte _080D8248
+ .4byte _080D82A0
+ .4byte _080D82C2
+ .4byte _080D8304
+ .4byte _080D838C
+_080D8248:
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r3, r0, r3
+ ldrh r0, [r3, 0x1C]
+ adds r0, 0x1
+ movs r4, 0
+ strh r0, [r3, 0x1C]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ beq _080D8262
+ b _080D83B0
+_080D8262:
+ strh r4, [r3, 0x1C]
+ ldrh r0, [r3, 0x1A]
+ adds r0, 0x1
+ strh r0, [r3, 0x1A]
+ ldr r1, _080D8298
+ movs r2, 0x1A
+ ldrsh r0, [r3, r2]
+ adds r0, r1
+ ldrb r1, [r0]
+ strh r1, [r3, 0x1E]
+ ldr r2, _080D829C
+ movs r0, 0x10
+ subs r0, r1
+ lsls r0, 8
+ orrs r1, r0
+ strh r1, [r2]
+ movs r1, 0x1E
+ ldrsh r0, [r3, r1]
+ cmp r0, 0x9
+ beq _080D828C
+ b _080D83B0
+_080D828C:
+ ldrh r0, [r3, 0x20]
+ adds r0, 0x1
+ strh r0, [r3, 0x20]
+ strh r4, [r3, 0x1E]
+ b _080D83B0
+ .align 2, 0
+_080D8298: .4byte gUnknown_083D9D6C
+_080D829C: .4byte REG_BLDALPHA
+_080D82A0:
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r3, r0, r3
+ ldrh r0, [r3, 0x1E]
+ adds r0, 0x1
+ strh r0, [r3, 0x1E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x51
+ bne _080D83B0
+ movs r0, 0x9
+ strh r0, [r3, 0x1E]
+ ldrh r0, [r3, 0x20]
+ adds r0, 0x1
+ strh r0, [r3, 0x20]
+ b _080D83B0
+_080D82C2:
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r3, r0, r3
+ ldrh r0, [r3, 0x1C]
+ adds r0, 0x1
+ strh r0, [r3, 0x1C]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ bne _080D83B0
+ movs r0, 0
+ strh r0, [r3, 0x1C]
+ ldrh r1, [r3, 0x1E]
+ subs r1, 0x1
+ strh r1, [r3, 0x1E]
+ ldr r2, _080D8300
+ movs r0, 0x10
+ subs r0, r1
+ lsls r0, 8
+ orrs r1, r0
+ strh r1, [r2]
+ movs r2, 0x1E
+ ldrsh r1, [r3, r2]
+ cmp r1, 0
+ bne _080D83B0
+ ldrh r0, [r3, 0x20]
+ adds r0, 0x1
+ strh r0, [r3, 0x20]
+ strh r1, [r3, 0x1E]
+ b _080D83B0
+ .align 2, 0
+_080D8300: .4byte REG_BLDALPHA
+_080D8304:
+ mov r0, sp
+ bl sub_8078914
+ ldr r2, [sp]
+ movs r3, 0x80
+ lsls r3, 6
+ lsls r4, r6, 2
+ mov r10, r4
+ add r5, sp, 0xC
+ movs r7, 0
+ ldr r1, _080D83C0
+ movs r4, 0x80
+ lsls r4, 5
+ mov r8, r5
+ ldr r0, _080D83C4
+ mov r12, r0
+ movs r0, 0x85
+ lsls r0, 24
+ mov r9, r0
+_080D832A:
+ str r7, [sp, 0xC]
+ mov r0, r8
+ str r0, [r1]
+ str r2, [r1, 0x4]
+ mov r0, r12
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ adds r2, r4
+ subs r3, r4
+ cmp r3, r4
+ bhi _080D832A
+ str r7, [sp, 0xC]
+ str r5, [r1]
+ str r2, [r1, 0x4]
+ lsrs r0, r3, 2
+ mov r2, r9
+ orrs r0, r2
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ ldr r1, [sp, 0x4]
+ movs r0, 0
+ str r0, [sp, 0xC]
+ ldr r0, _080D83C0
+ str r5, [r0]
+ str r1, [r0, 0x4]
+ ldr r1, _080D83C8
+ str r1, [r0, 0x8]
+ ldr r0, [r0, 0x8]
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080D8378
+ ldr r2, _080D83CC
+ ldrb r1, [r2]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+_080D8378:
+ ldr r0, _080D83D0
+ mov r4, r10
+ adds r1, r4, r6
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x20]
+ adds r0, 0x1
+ strh r0, [r1, 0x20]
+ ldr r2, _080D83D4
+ ldr r4, _080D83D8
+_080D838C:
+ movs r1, 0
+ strh r1, [r2]
+ strh r1, [r4]
+ ldr r0, _080D83DC
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ ldr r2, _080D83CC
+ ldrb r1, [r2]
+ movs r0, 0x4
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r2]
+ adds r0, r6, 0
+ bl move_anim_task_del
+_080D83B0:
+ add sp, 0x10
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D83C0: .4byte 0x040000d4
+_080D83C4: .4byte 0x85000400
+_080D83C8: .4byte 0x85000200
+_080D83CC: .4byte REG_BG1CNT
+_080D83D0: .4byte gTasks
+_080D83D4: .4byte gUnknown_030042C0
+_080D83D8: .4byte gUnknown_030041B4
+_080D83DC: .4byte REG_BLDCNT
+ thumb_func_end sub_80D81E0
+
+ thumb_func_start sub_80D83E0
+sub_80D83E0: @ 80D83E0
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldr r5, _080D840C
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x20]
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x22]
+ ldr r0, _080D8410
+ str r0, [r4, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D840C: .4byte gUnknown_0202F7C8
+_080D8410: .4byte sub_807941C
+ thumb_func_end sub_80D83E0
+
+ thumb_func_start sub_80D8414
+sub_80D8414: @ 80D8414
+ push {r4,r5,lr}
+ sub sp, 0x10
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _080D84E0
+ ldr r2, _080D84E4
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r2, 0x80
+ lsls r2, 5
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r4, _080D84E8
+ ldrb r1, [r4]
+ movs r0, 0x4
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r4]
+ ldrb r1, [r4, 0x1]
+ movs r0, 0x3F
+ ands r0, r1
+ strb r0, [r4, 0x1]
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080D845E
+ ldrb r0, [r4]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r0
+ movs r0, 0x4
+ orrs r1, r0
+ strb r1, [r4]
+_080D845E:
+ ldr r0, _080D84EC
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, _080D84F0
+ strh r1, [r0]
+ ldr r0, _080D84F4
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ mov r0, sp
+ bl sub_8078914
+ ldr r1, [sp, 0x4]
+ movs r0, 0
+ str r0, [sp, 0xC]
+ ldr r0, _080D84F8
+ add r2, sp, 0xC
+ str r2, [r0]
+ str r1, [r0, 0x4]
+ ldr r2, _080D84FC
+ str r2, [r0, 0x8]
+ ldr r2, [r0, 0x8]
+ ldr r2, _080D8500
+ ldr r3, [sp]
+ str r2, [r0]
+ str r3, [r0, 0x4]
+ ldr r2, _080D8504
+ str r2, [r0, 0x8]
+ ldr r0, [r0, 0x8]
+ ldr r0, _080D8508
+ bl LZDecompressVram
+ ldr r0, _080D850C
+ mov r1, sp
+ ldrb r1, [r1, 0x8]
+ lsls r1, 4
+ movs r2, 0x20
+ bl LoadPalette
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D84C4
+ mov r0, sp
+ ldrb r0, [r0, 0x8]
+ ldr r1, [sp, 0x4]
+ movs r2, 0
+ movs r3, 0
+ bl sub_80763FC
+_080D84C4:
+ ldr r1, _080D8510
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080D8514
+ strh r1, [r0, 0x26]
+ ldr r1, _080D8518
+ str r1, [r0]
+ add sp, 0x10
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D84E0: .4byte REG_BLDCNT
+_080D84E4: .4byte 0x00003f42
+_080D84E8: .4byte REG_BG1CNT
+_080D84EC: .4byte gUnknown_030042C0
+_080D84F0: .4byte gUnknown_030041B4
+_080D84F4: .4byte REG_BG1HOFS
+_080D84F8: .4byte 0x040000d4
+_080D84FC: .4byte 0x85000400
+_080D8500: .4byte gWeatherFog1Tiles
+_080D8504: .4byte 0x80000400
+_080D8508: .4byte gWeatherFog1Tilemap
+_080D850C: .4byte gUnknown_083970E8
+_080D8510: .4byte gTasks
+_080D8514: .4byte 0x0000ffff
+_080D8518: .4byte sub_80D851C
+ thumb_func_end sub_80D8414
+
+ thumb_func_start sub_80D851C
+sub_80D851C: @ 80D851C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x10
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r3, _080D8558
+ ldr r4, _080D855C
+ lsls r1, r6, 2
+ adds r1, r6
+ lsls r1, 3
+ adds r1, r4
+ ldrh r0, [r1, 0x26]
+ ldrh r2, [r3]
+ adds r0, r2
+ strh r0, [r3]
+ ldr r2, _080D8560
+ movs r5, 0x20
+ ldrsh r0, [r1, r5]
+ cmp r0, 0x4
+ bls _080D854C
+ b _080D86D0
+_080D854C:
+ lsls r0, 2
+ ldr r1, _080D8564
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080D8558: .4byte gUnknown_030042C0
+_080D855C: .4byte gTasks
+_080D8560: .4byte gUnknown_030041B4
+_080D8564: .4byte _080D8568
+ .align 2, 0
+_080D8568:
+ .4byte _080D857C
+ .4byte _080D85C0
+ .4byte _080D85E2
+ .4byte _080D8624
+ .4byte _080D86AC
+_080D857C:
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r4, r0, r4
+ ldrh r0, [r4, 0x1A]
+ adds r0, 0x1
+ strh r0, [r4, 0x1A]
+ ldr r1, _080D85B8
+ movs r2, 0x1A
+ ldrsh r0, [r4, r2]
+ adds r0, r1
+ ldrb r1, [r0]
+ strh r1, [r4, 0x1E]
+ ldr r2, _080D85BC
+ movs r0, 0x11
+ subs r0, r1
+ lsls r0, 8
+ orrs r1, r0
+ strh r1, [r2]
+ movs r5, 0x1E
+ ldrsh r0, [r4, r5]
+ cmp r0, 0x5
+ beq _080D85AC
+ b _080D86D0
+_080D85AC:
+ ldrh r0, [r4, 0x20]
+ adds r0, 0x1
+ strh r0, [r4, 0x20]
+ movs r0, 0
+ strh r0, [r4, 0x1E]
+ b _080D86D0
+ .align 2, 0
+_080D85B8: .4byte gUnknown_083D9D98
+_080D85BC: .4byte REG_BLDALPHA
+_080D85C0:
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r1, r0, r4
+ ldrh r0, [r1, 0x1E]
+ adds r0, 0x1
+ strh r0, [r1, 0x1E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x51
+ bne _080D86D0
+ movs r0, 0x5
+ strh r0, [r1, 0x1E]
+ ldrh r0, [r1, 0x20]
+ adds r0, 0x1
+ strh r0, [r1, 0x20]
+ b _080D86D0
+_080D85E2:
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r4, r0, r4
+ ldrh r0, [r4, 0x1C]
+ adds r0, 0x1
+ strh r0, [r4, 0x1C]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ bne _080D86D0
+ movs r0, 0
+ strh r0, [r4, 0x1C]
+ ldrh r1, [r4, 0x1E]
+ subs r1, 0x1
+ strh r1, [r4, 0x1E]
+ ldr r2, _080D8620
+ movs r0, 0x10
+ subs r0, r1
+ lsls r0, 8
+ orrs r1, r0
+ strh r1, [r2]
+ movs r0, 0x1E
+ ldrsh r1, [r4, r0]
+ cmp r1, 0
+ bne _080D86D0
+ ldrh r0, [r4, 0x20]
+ adds r0, 0x1
+ strh r0, [r4, 0x20]
+ strh r1, [r4, 0x1E]
+ b _080D86D0
+ .align 2, 0
+_080D8620: .4byte REG_BLDALPHA
+_080D8624:
+ mov r0, sp
+ bl sub_8078914
+ ldr r2, [sp]
+ movs r3, 0x80
+ lsls r3, 6
+ lsls r1, r6, 2
+ mov r10, r1
+ add r5, sp, 0xC
+ movs r7, 0
+ ldr r1, _080D86E0
+ movs r4, 0x80
+ lsls r4, 5
+ mov r8, r5
+ ldr r0, _080D86E4
+ mov r12, r0
+ movs r0, 0x85
+ lsls r0, 24
+ mov r9, r0
+_080D864A:
+ str r7, [sp, 0xC]
+ mov r0, r8
+ str r0, [r1]
+ str r2, [r1, 0x4]
+ mov r0, r12
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ adds r2, r4
+ subs r3, r4
+ cmp r3, r4
+ bhi _080D864A
+ str r7, [sp, 0xC]
+ str r5, [r1]
+ str r2, [r1, 0x4]
+ lsrs r0, r3, 2
+ mov r2, r9
+ orrs r0, r2
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ ldr r1, [sp, 0x4]
+ movs r0, 0
+ str r0, [sp, 0xC]
+ ldr r0, _080D86E0
+ str r5, [r0]
+ str r1, [r0, 0x4]
+ ldr r1, _080D86E8
+ str r1, [r0, 0x8]
+ ldr r0, [r0, 0x8]
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080D8698
+ ldr r2, _080D86EC
+ ldrb r1, [r2]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+_080D8698:
+ ldr r0, _080D86F0
+ mov r5, r10
+ adds r1, r5, r6
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x20]
+ adds r0, 0x1
+ strh r0, [r1, 0x20]
+ ldr r3, _080D86F4
+ ldr r2, _080D86F8
+_080D86AC:
+ movs r1, 0
+ strh r1, [r3]
+ strh r1, [r2]
+ ldr r0, _080D86FC
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ ldr r2, _080D86EC
+ ldrb r1, [r2]
+ movs r0, 0x4
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r2]
+ adds r0, r6, 0
+ bl move_anim_task_del
+_080D86D0:
+ add sp, 0x10
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D86E0: .4byte 0x040000d4
+_080D86E4: .4byte 0x85000400
+_080D86E8: .4byte 0x85000200
+_080D86EC: .4byte REG_BG1CNT
+_080D86F0: .4byte gTasks
+_080D86F4: .4byte gUnknown_030042C0
+_080D86F8: .4byte gUnknown_030041B4
+_080D86FC: .4byte REG_BLDCNT
+ thumb_func_end sub_80D851C
+
+ thumb_func_start sub_80D8700
+sub_80D8700: @ 80D8700
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r5, r0, 0
+ ldr r6, _080D87E8
+ ldrh r0, [r6]
+ strh r0, [r5, 0x2E]
+ ldr r0, _080D87EC
+ mov r8, r0
+ ldrb r0, [r0]
+ movs r1, 0x2
+ bl sub_8077ABC
+ adds r4, r0, 0
+ ldr r7, _080D87F0
+ ldrb r0, [r7]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r4, 24
+ lsls r0, 24
+ cmp r4, r0
+ bcs _080D8734
+ movs r0, 0x80
+ lsls r0, 8
+ strh r0, [r5, 0x3C]
+_080D8734:
+ ldr r3, _080D87F4
+ ldrb r0, [r7]
+ adds r0, r3
+ ldrb r1, [r0]
+ movs r2, 0x1
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _080D8794
+ ldrh r0, [r6, 0x2]
+ negs r0, r0
+ strh r0, [r6, 0x2]
+ ldrh r0, [r6, 0x6]
+ negs r0, r0
+ strh r0, [r6, 0x6]
+ movs r1, 0x3C
+ ldrsh r0, [r5, r1]
+ movs r1, 0x80
+ lsls r1, 8
+ ands r0, r1
+ cmp r0, 0
+ beq _080D8790
+ mov r1, r8
+ ldrb r0, [r1]
+ adds r0, r3
+ ldrb r1, [r0]
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _080D8790
+ movs r0, 0x1
+ bl obj_id_for_side_relative_to_move
+ ldr r2, _080D87F8
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ adds r1, 0x43
+ ldrb r0, [r1]
+ adds r0, 0x1
+ adds r1, r5, 0
+ adds r1, 0x43
+ strb r0, [r1]
+_080D8790:
+ movs r0, 0x1
+ strh r0, [r5, 0x3A]
+_080D8794:
+ ldr r4, _080D87EC
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+ ldr r6, _080D87E8
+ movs r1, 0xE
+ ldrsh r0, [r6, r1]
+ cmp r0, 0
+ beq _080D87FC
+ ldrh r0, [r6, 0x2]
+ ldrh r1, [r5, 0x20]
+ adds r0, r1
+ strh r0, [r5, 0x30]
+ ldr r4, _080D87F0
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r6, 0x6]
+ adds r0, r1
+ strh r0, [r5, 0x32]
+ ldrh r0, [r6, 0x4]
+ ldrh r1, [r5, 0x22]
+ adds r0, r1
+ strh r0, [r5, 0x34]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ b _080D8824
+ .align 2, 0
+_080D87E8: .4byte gUnknown_03004B00
+_080D87EC: .4byte gUnknown_0202F7C8
+_080D87F0: .4byte gUnknown_0202F7C9
+_080D87F4: .4byte gUnknown_02024A72
+_080D87F8: .4byte gSprites
+_080D87FC:
+ ldrh r0, [r6, 0x2]
+ ldrh r1, [r5, 0x20]
+ adds r0, r1
+ strh r0, [r5, 0x30]
+ ldr r4, _080D886C
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r6, 0x6]
+ adds r0, r1
+ strh r0, [r5, 0x32]
+ ldrh r0, [r6, 0x4]
+ ldrh r1, [r5, 0x22]
+ adds r0, r1
+ strh r0, [r5, 0x34]
+ ldrb r0, [r4]
+ movs r1, 0x1
+_080D8824:
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r6, [r6, 0x8]
+ adds r0, r6
+ strh r0, [r5, 0x36]
+ ldrb r0, [r4]
+ bl sub_8079ED4
+ lsls r0, 24
+ lsrs r0, 16
+ ldrh r1, [r5, 0x3C]
+ orrs r0, r1
+ strh r0, [r5, 0x3C]
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D8858
+ movs r0, 0x1
+ strh r0, [r5, 0x3A]
+ adds r1, r5, 0
+ adds r1, 0x43
+ movs r0, 0x80
+ strb r0, [r1]
+_080D8858:
+ adds r0, r5, 0
+ bl obj_translate_based_on_private_1_2_3_4
+ ldr r0, _080D8870
+ str r0, [r5, 0x1C]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D886C: .4byte gUnknown_0202F7C9
+_080D8870: .4byte sub_80D8874
+ thumb_func_end sub_80D8700
+
+ thumb_func_start sub_80D8874
+sub_80D8874: @ 80D8874
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x3C]
+ movs r5, 0xFF
+ movs r1, 0xFF
+ ands r1, r0
+ cmp r1, 0x1
+ beq _080D8968
+ cmp r1, 0x1
+ bgt _080D888E
+ cmp r1, 0
+ beq _080D8896
+ b _080D8AD0
+_080D888E:
+ cmp r1, 0x2
+ bne _080D8894
+ b _080D8A94
+_080D8894:
+ b _080D8AD0
+_080D8896:
+ adds r0, r4, 0
+ bl sub_8078B5C
+ ldr r1, _080D88C0
+ movs r2, 0x38
+ ldrsh r0, [r4, r2]
+ lsls r0, 1
+ adds r0, r1
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ asrs r0, 4
+ ldrh r2, [r4, 0x24]
+ adds r0, r2
+ strh r0, [r4, 0x24]
+ movs r1, 0x3A
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080D88C4
+ ldrh r0, [r4, 0x38]
+ subs r0, 0x8
+ b _080D88C8
+ .align 2, 0
+_080D88C0: .4byte gSineTable
+_080D88C4:
+ ldrh r0, [r4, 0x38]
+ adds r0, 0x8
+_080D88C8:
+ ands r0, r5
+ strh r0, [r4, 0x38]
+ movs r2, 0x2E
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ ble _080D88D6
+ b _080D8AD0
+_080D88D6:
+ movs r5, 0x50
+ strh r5, [r4, 0x2E]
+ ldr r6, _080D8928
+ ldrb r0, [r6]
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x20]
+ strh r0, [r4, 0x30]
+ strh r0, [r4, 0x32]
+ ldrh r0, [r4, 0x26]
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r4, 0x22]
+ strh r0, [r4, 0x34]
+ adds r0, 0x1D
+ strh r0, [r4, 0x36]
+ ldrh r0, [r4, 0x3C]
+ adds r0, 0x1
+ strh r0, [r4, 0x3C]
+ ldr r0, _080D892C
+ ldr r2, _080D8930
+ adds r0, r2
+ ldrb r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080D8938
+ ldr r1, _080D8934
+ ldrb r0, [r6]
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080D8938
+ movs r0, 0xCC
+ strh r0, [r4, 0x38]
+ b _080D893A
+ .align 2, 0
+_080D8928: .4byte gUnknown_0202F7C9
+_080D892C: .4byte gMain
+_080D8930: .4byte 0x0000043d
+_080D8934: .4byte gUnknown_02024A72
+_080D8938:
+ strh r5, [r4, 0x38]
+_080D893A:
+ movs r0, 0
+ strh r0, [r4, 0x26]
+ ldr r1, _080D8964
+ movs r2, 0x38
+ ldrsh r0, [r4, r2]
+ lsls r0, 1
+ adds r0, r1
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ asrs r0, 3
+ strh r0, [r4, 0x24]
+ ldrh r0, [r4, 0x38]
+ adds r0, 0x2
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x38]
+ adds r0, r4, 0
+ bl obj_translate_based_on_private_1_2_3_4
+ b _080D8AD0
+ .align 2, 0
+_080D8964: .4byte gSineTable
+_080D8968:
+ adds r0, r4, 0
+ bl sub_8078B5C
+ ldr r1, _080D89C8
+ movs r2, 0x38
+ ldrsh r0, [r4, r2]
+ lsls r0, 1
+ adds r0, r1
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ asrs r0, 3
+ ldrh r2, [r4, 0x24]
+ adds r0, r2
+ strh r0, [r4, 0x24]
+ movs r2, 0x38
+ ldrsh r0, [r4, r2]
+ adds r0, 0x40
+ lsls r0, 1
+ adds r0, r1
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ lsls r0, r1, 1
+ adds r0, r1
+ negs r0, r0
+ asrs r0, 8
+ ldrh r1, [r4, 0x26]
+ adds r0, r1
+ strh r0, [r4, 0x26]
+ ldr r0, _080D89CC
+ ldr r2, _080D89D0
+ adds r0, r2
+ ldrb r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080D89F2
+ ldrh r1, [r4, 0x38]
+ adds r0, r1, 0
+ subs r0, 0x40
+ lsls r0, 16
+ lsrs r0, 16
+ adds r3, r1, 0
+ cmp r0, 0x7F
+ bhi _080D89D4
+ ldrh r1, [r4, 0x3C]
+ lsls r1, 16
+ asrs r1, 24
+ b _080D89DC
+ .align 2, 0
+_080D89C8: .4byte gSineTable
+_080D89CC: .4byte gMain
+_080D89D0: .4byte 0x0000043d
+_080D89D4:
+ ldrh r1, [r4, 0x3C]
+ lsls r1, 16
+ asrs r1, 24
+ adds r1, 0x1
+_080D89DC:
+ movs r0, 0x3
+ ands r1, r0
+ lsls r1, 2
+ ldrb r2, [r4, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r4, 0x5]
+ adds r0, r3, 0x4
+ b _080D8A12
+_080D89F2:
+ ldrh r0, [r4, 0x38]
+ subs r0, 0x40
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x7F
+ bhi _080D8A06
+ adds r1, r4, 0
+ adds r1, 0x43
+ movs r0, 0x80
+ b _080D8A0C
+_080D8A06:
+ adds r1, r4, 0
+ adds r1, 0x43
+ movs r0, 0x8C
+_080D8A0C:
+ strb r0, [r1]
+ ldrh r0, [r4, 0x38]
+ subs r0, 0x4
+_080D8A12:
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x38]
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bgt _080D8AD0
+ movs r2, 0
+ movs r0, 0xC0
+ lsls r0, 2
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r4, 0x24]
+ ldrh r1, [r4, 0x20]
+ adds r0, r1
+ strh r0, [r4, 0x20]
+ strh r0, [r4, 0x30]
+ ldrh r0, [r4, 0x26]
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r4, 0x22]
+ strh r0, [r4, 0x34]
+ adds r0, 0x4
+ strh r0, [r4, 0x36]
+ ldr r0, _080D8A68
+ ldr r1, _080D8A6C
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080D8A78
+ ldr r1, _080D8A70
+ ldr r0, _080D8A74
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080D8A78
+ movs r0, 0x80
+ lsls r0, 1
+ b _080D8A7A
+ .align 2, 0
+_080D8A68: .4byte gMain
+_080D8A6C: .4byte 0x0000043d
+_080D8A70: .4byte gUnknown_02024A72
+_080D8A74: .4byte gUnknown_0202F7C9
+_080D8A78:
+ ldr r0, _080D8A90
+_080D8A7A:
+ strh r0, [r4, 0x32]
+ ldrh r0, [r4, 0x3C]
+ adds r0, 0x1
+ movs r1, 0
+ strh r0, [r4, 0x3C]
+ strh r1, [r4, 0x26]
+ strh r1, [r4, 0x24]
+ adds r0, r4, 0
+ bl sub_8078BD4
+ b _080D8AD0
+ .align 2, 0
+_080D8A90: .4byte 0x0000fff0
+_080D8A94:
+ adds r0, r4, 0
+ bl sub_8078B5C
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D8AD0
+ ldrb r0, [r4, 0x1]
+ lsls r0, 30
+ lsrs r0, 30
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080D8AC2
+ ldrb r0, [r4, 0x3]
+ lsls r0, 26
+ lsrs r0, 27
+ bl FreeOamMatrix
+ ldrb r1, [r4, 0x1]
+ movs r0, 0x4
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r4, 0x1]
+_080D8AC2:
+ adds r0, r4, 0
+ bl DestroySprite
+ ldr r1, _080D8AD8
+ ldrb r0, [r1]
+ subs r0, 0x1
+ strb r0, [r1]
+_080D8AD0:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D8AD8: .4byte gUnknown_0202F7B2
+ thumb_func_end sub_80D8874
+
+ thumb_func_start sub_80D8ADC
+sub_80D8ADC: @ 80D8ADC
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _080D8AF0
+ adds r1, r0
+ ldr r0, _080D8AF4
+ str r0, [r1]
+ bx lr
+ .align 2, 0
+_080D8AF0: .4byte gTasks
+_080D8AF4: .4byte sub_80D8AF8
+ thumb_func_end sub_80D8ADC
+
+ thumb_func_start sub_80D8AF8
+sub_80D8AF8: @ 80D8AF8
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ ldr r1, _080D8B1C
+ adds r4, r0, r1
+ movs r0, 0x8
+ ldrsh r5, [r4, r0]
+ cmp r5, 0x1
+ beq _080D8B3C
+ cmp r5, 0x1
+ bgt _080D8B20
+ cmp r5, 0
+ beq _080D8B26
+ b _080D8BA0
+ .align 2, 0
+_080D8B1C: .4byte gTasks
+_080D8B20:
+ cmp r5, 0x2
+ beq _080D8B92
+ b _080D8BA0
+_080D8B26:
+ ldrh r0, [r4, 0x10]
+ adds r0, 0x1
+ strh r0, [r4, 0x10]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x2
+ ble _080D8BA0
+ strh r5, [r4, 0x10]
+ strh r5, [r4, 0x12]
+ strh r5, [r4, 0xC]
+ b _080D8B78
+_080D8B3C:
+ ldrh r1, [r4, 0x12]
+ movs r3, 0x12
+ ldrsh r0, [r4, r3]
+ cmp r0, 0
+ bne _080D8B8C
+ ldrb r0, [r4, 0xE]
+ ldrb r1, [r4, 0xC]
+ movs r3, 0x1
+ bl sub_80D8BA8
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D8B5C
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+_080D8B5C:
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x1
+ strh r0, [r4, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3
+ bne _080D8B88
+ ldrh r0, [r4, 0xE]
+ adds r0, 0x1
+ strh r0, [r4, 0xE]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xA
+ bne _080D8B80
+_080D8B78:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _080D8BA0
+_080D8B80:
+ ldrh r0, [r4, 0x8]
+ subs r0, 0x1
+ strh r0, [r4, 0x8]
+ b _080D8BA0
+_080D8B88:
+ strh r5, [r4, 0x12]
+ b _080D8BA0
+_080D8B8C:
+ subs r0, r1, 0x1
+ strh r0, [r4, 0x12]
+ b _080D8BA0
+_080D8B92:
+ movs r1, 0xA
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080D8BA0
+ adds r0, r2, 0
+ bl move_anim_task_del
+_080D8BA0:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D8AF8
+
+ thumb_func_start sub_80D8BA8
+sub_80D8BA8: @ 80D8BA8
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ lsls r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ mov r9, r1
+ lsls r2, 24
+ lsrs r2, 24
+ str r2, [sp]
+ lsls r3, 24
+ lsrs r3, 24
+ mov r10, r3
+ movs r1, 0
+ str r1, [sp, 0x4]
+ ldr r1, _080D8C20
+ lsrs r0, 22
+ adds r4, r0, r1
+ ldrb r0, [r4, 0x3]
+ lsls r0, 24
+ asrs r0, 28
+ mov r8, r0
+ cmp r0, 0x2
+ beq _080D8C94
+ ldrh r0, [r4, 0x2]
+ lsls r0, 20
+ lsrs r0, 24
+ bl battle_get_side_with_given_state
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r0, r5, 0
+ bl b_side_obj__get_some_boolean
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D8C94
+ movs r0, 0x1
+ str r0, [sp, 0x4]
+ adds r0, r5, 0
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r7, r0, 24
+ adds r0, r5, 0
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r6, r0, 24
+ mov r1, r8
+ cmp r1, 0
+ beq _080D8C24
+ cmp r1, 0x1
+ beq _080D8C5A
+ b _080D8CA6
+ .align 2, 0
+_080D8C20: .4byte gUnknown_083D9DC4
+_080D8C24:
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl sub_807A100
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x6
+ bl __divsi3
+ lsls r1, r7, 16
+ asrs r1, 16
+ subs r1, r0
+ lsls r1, 16
+ lsrs r7, r1, 16
+ adds r0, r5, 0
+ movs r1, 0
+ bl sub_807A100
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x6
+ bl __divsi3
+ lsls r1, r6, 16
+ asrs r1, 16
+ subs r1, r0
+ b _080D8C8E
+_080D8C5A:
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl sub_807A100
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x6
+ bl __divsi3
+ lsls r1, r7, 16
+ asrs r1, 16
+ adds r1, r0
+ lsls r1, 16
+ lsrs r7, r1, 16
+ adds r0, r5, 0
+ movs r1, 0
+ bl sub_807A100
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x6
+ bl __divsi3
+ lsls r1, r6, 16
+ asrs r1, 16
+ adds r1, r0
+_080D8C8E:
+ lsls r1, 16
+ lsrs r6, r1, 16
+ b _080D8CA6
+_080D8C94:
+ ldrh r0, [r4]
+ lsls r0, 22
+ asrs r0, 6
+ lsrs r7, r0, 16
+ ldr r0, [r4]
+ lsls r0, 12
+ asrs r0, 22
+ lsls r0, 16
+ lsrs r6, r0, 16
+_080D8CA6:
+ lsls r0, r6, 16
+ asrs r0, 16
+ adds r0, 0x8
+ lsrs r1, r0, 31
+ adds r0, r1
+ asrs r0, 1
+ lsls r1, r7, 16
+ asrs r1, 16
+ subs r1, r0
+ ldr r0, _080D8D00
+ lsls r1, 16
+ asrs r1, 16
+ movs r2, 0x8
+ negs r2, r2
+ movs r3, 0x12
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x40
+ beq _080D8D08
+ lsls r4, r5, 4
+ adds r4, r5
+ lsls r4, 2
+ ldr r0, _080D8D04
+ adds r4, r0
+ adds r0, r4, 0
+ mov r1, r9
+ bl StartSpriteAffineAnim
+ mov r0, sp
+ ldrh r0, [r0, 0x4]
+ strh r0, [r4, 0x2E]
+ strh r7, [r4, 0x34]
+ strh r6, [r4, 0x36]
+ mov r1, r9
+ strh r1, [r4, 0x38]
+ mov r0, sp
+ ldrh r0, [r0]
+ strh r0, [r4, 0x3A]
+ mov r1, r10
+ strh r1, [r4, 0x3C]
+ movs r0, 0x1
+ b _080D8D0A
+ .align 2, 0
+_080D8D00: .4byte gSpriteTemplate_83D9E3C
+_080D8D04: .4byte gSprites
+_080D8D08:
+ movs r0, 0
+_080D8D0A:
+ add sp, 0x8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80D8BA8
+
+ thumb_func_start sub_80D8D1C
+sub_80D8D1C: @ 80D8D1C
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x20]
+ adds r0, 0x4
+ strh r0, [r4, 0x20]
+ ldrh r1, [r4, 0x22]
+ adds r2, r1, 0
+ adds r2, 0x8
+ strh r2, [r4, 0x22]
+ lsls r0, 16
+ asrs r0, 16
+ movs r3, 0x34
+ ldrsh r1, [r4, r3]
+ cmp r0, r1
+ bge _080D8D46
+ lsls r0, r2, 16
+ asrs r0, 16
+ movs r2, 0x36
+ ldrsh r1, [r4, r2]
+ cmp r0, r1
+ blt _080D8DF6
+_080D8D46:
+ movs r3, 0x2E
+ ldrsh r0, [r4, r3]
+ cmp r0, 0x1
+ bne _080D8DC8
+ movs r1, 0x38
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080D8DC8
+ ldr r0, _080D8DBC
+ movs r2, 0x34
+ ldrsh r1, [r4, r2]
+ movs r3, 0x36
+ ldrsh r2, [r4, r3]
+ adds r3, r4, 0
+ adds r3, 0x43
+ ldrb r3, [r3]
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x2E]
+ cmp r0, 0x40
+ beq _080D8DAA
+ ldr r2, _080D8DC0
+ movs r0, 0x2E
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r2, 0
+ adds r1, 0x1C
+ adds r0, r1
+ ldr r1, _080D8DC4
+ str r1, [r0]
+ movs r3, 0x2E
+ ldrsh r1, [r4, r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r4, 0x3A]
+ strh r1, [r0, 0x3A]
+ movs r0, 0x2E
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r4, 0x3C]
+ strh r1, [r0, 0x3C]
+_080D8DAA:
+ ldrb r0, [r4, 0x3]
+ lsls r0, 26
+ lsrs r0, 27
+ bl FreeOamMatrix
+ adds r0, r4, 0
+ bl DestroySprite
+ b _080D8DF6
+ .align 2, 0
+_080D8DBC: .4byte gBattleAnimSpriteTemplate_83D9C78
+_080D8DC0: .4byte gSprites
+_080D8DC4: .4byte sub_80D8E00
+_080D8DC8:
+ ldr r3, _080D8DFC
+ movs r2, 0x3C
+ ldrsh r1, [r4, r2]
+ lsls r1, 1
+ movs r0, 0x3A
+ ldrsh r2, [r4, r0]
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r1, r0
+ adds r3, 0x8
+ adds r1, r3
+ ldrh r0, [r1]
+ subs r0, 0x1
+ strh r0, [r1]
+ ldrb r0, [r4, 0x3]
+ lsls r0, 26
+ lsrs r0, 27
+ bl FreeOamMatrix
+ adds r0, r4, 0
+ bl DestroySprite
+_080D8DF6:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D8DFC: .4byte gTasks
+ thumb_func_end sub_80D8D1C
+
+ thumb_func_start sub_80D8E00
+sub_80D8E00: @ 80D8E00
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x14
+ bne _080D8E40
+ ldr r3, _080D8E48
+ movs r0, 0x3C
+ ldrsh r1, [r4, r0]
+ lsls r1, 1
+ movs r0, 0x3A
+ ldrsh r2, [r4, r0]
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r1, r0
+ adds r3, 0x8
+ adds r1, r3
+ ldrh r0, [r1]
+ subs r0, 0x1
+ strh r0, [r1]
+ ldrb r0, [r4, 0x3]
+ lsls r0, 26
+ lsrs r0, 27
+ bl FreeOamMatrix
+ adds r0, r4, 0
+ bl DestroySprite
+_080D8E40:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D8E48: .4byte gTasks
+ thumb_func_end sub_80D8E00
+
+ thumb_func_start unc_080B06FC
+unc_080B06FC: @ 80D8E4C
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ ldr r0, _080D8ECC
+ ldr r0, [r0]
+ ldrb r1, [r0, 0x11]
+ lsrs r0, r1, 4
+ lsls r1, 28
+ lsrs r1, 28
+ subs r0, r1
+ subs r0, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x4
+ bls _080D8E6A
+ movs r1, 0x4
+_080D8E6A:
+ adds r0, r5, 0
+ bl StartSpriteAffineAnim
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl sub_80787B0
+ ldr r6, _080D8ED0
+ ldrh r0, [r6, 0x8]
+ strh r0, [r5, 0x2E]
+ ldr r0, _080D8ED4
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D8E92
+ ldrh r0, [r6, 0x4]
+ negs r0, r0
+ strh r0, [r6, 0x4]
+_080D8E92:
+ ldr r4, _080D8ED8
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r6, 0x4]
+ adds r0, r1
+ strh r0, [r5, 0x32]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r6, 0x6]
+ adds r0, r1
+ strh r0, [r5, 0x36]
+ ldrh r0, [r6, 0xA]
+ strh r0, [r5, 0x38]
+ adds r0, r5, 0
+ bl sub_80786EC
+ ldr r0, _080D8EDC
+ str r0, [r5, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D8ECC: .4byte gUnknown_0202F7B4
+_080D8ED0: .4byte gUnknown_03004B00
+_080D8ED4: .4byte gUnknown_0202F7C8
+_080D8ED8: .4byte gUnknown_0202F7C9
+_080D8EDC: .4byte sub_80D8EE0
+ thumb_func_end unc_080B06FC
+
+ thumb_func_start sub_80D8EE0
+sub_80D8EE0: @ 80D8EE0
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_8078718
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D8F02
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl StartSpriteAnim
+ ldr r0, _080D8F08
+ str r0, [r4, 0x1C]
+ ldr r1, _080D8F0C
+ adds r0, r4, 0
+ bl oamt_set_x3A_32
+_080D8F02:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D8F08: .4byte sub_8078600
+_080D8F0C: .4byte move_anim_8072740
+ thumb_func_end sub_80D8EE0
+
+ thumb_func_start sub_80D8F10
+sub_80D8F10: @ 80D8F10
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ ldrh r2, [r4, 0x4]
+ lsls r1, r2, 22
+ lsrs r1, 22
+ adds r1, 0x8
+ ldr r3, _080D8F64
+ adds r0, r3, 0
+ ands r1, r0
+ ldr r0, _080D8F68
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r4, 0x4]
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_8078764
+ bl Random
+ movs r5, 0xFF
+ ands r5, r0
+ movs r0, 0x80
+ lsls r0, 1
+ adds r6, r0, 0
+ orrs r5, r6
+ bl Random
+ ldr r1, _080D8F6C
+ ands r1, r0
+ adds r0, r1, 0
+ cmp r0, 0xFF
+ ble _080D8F56
+ subs r0, r6, r0
+ lsls r0, 16
+ lsrs r1, r0, 16
+_080D8F56:
+ strh r5, [r4, 0x30]
+ strh r1, [r4, 0x32]
+ ldr r0, _080D8F70
+ str r0, [r4, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D8F64: .4byte 0x000003ff
+_080D8F68: .4byte 0xfffffc00
+_080D8F6C: .4byte 0x000001ff
+_080D8F70: .4byte sub_80D8F74
+ thumb_func_end sub_80D8F10
+
+ thumb_func_start sub_80D8F74
+sub_80D8F74: @ 80D8F74
+ push {r4,lr}
+ adds r2, r0, 0
+ ldrh r0, [r2, 0x30]
+ ldrh r1, [r2, 0x34]
+ adds r3, r0, r1
+ strh r3, [r2, 0x34]
+ ldrh r1, [r2, 0x32]
+ ldrh r4, [r2, 0x36]
+ adds r1, r4
+ strh r1, [r2, 0x36]
+ movs r1, 0x1
+ ands r1, r0
+ cmp r1, 0
+ beq _080D8F98
+ lsls r0, r3, 16
+ asrs r0, 24
+ negs r0, r0
+ b _080D8F9C
+_080D8F98:
+ lsls r0, r3, 16
+ asrs r0, 24
+_080D8F9C:
+ strh r0, [r2, 0x24]
+ ldrh r0, [r2, 0x36]
+ lsls r0, 16
+ asrs r0, 24
+ strh r0, [r2, 0x26]
+ ldrh r0, [r2, 0x2E]
+ adds r0, 0x1
+ strh r0, [r2, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x15
+ bne _080D8FBA
+ adds r0, r2, 0
+ bl move_anim_8072740
+_080D8FBA:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D8F74
+
+ thumb_func_start sub_80D8FC0
+sub_80D8FC0: @ 80D8FC0
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _080D8FE8
+ ldrb r3, [r1]
+ lsls r3, 1
+ adds r3, r1
+ ldr r1, _080D8FEC
+ ldr r1, [r1]
+ ldrb r1, [r1, 0x11]
+ lsrs r2, r1, 4
+ lsls r1, 28
+ lsrs r1, 28
+ subs r2, r1
+ subs r2, 0x1
+ strh r2, [r3]
+ bl move_anim_task_del
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D8FE8: .4byte gUnknown_03004B00
+_080D8FEC: .4byte gUnknown_0202F7B4
+ thumb_func_end sub_80D8FC0
+
+ thumb_func_start unc_080B08A0
+unc_080B08A0: @ 80D8FF0
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldr r5, _080D9020
+ movs r0, 0
+ ldrsh r1, [r5, r0]
+ adds r0, r4, 0
+ bl sub_807867C
+ ldrh r0, [r5, 0x2]
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r4, 0x22]
+ movs r0, 0xF
+ strh r0, [r4, 0x2E]
+ ldr r0, _080D9024
+ str r0, [r4, 0x1C]
+ ldr r1, _080D9028
+ adds r0, r4, 0
+ bl oamt_set_x3A_32
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D9020: .4byte gUnknown_03004B00
+_080D9024: .4byte sub_80782D8
+_080D9028: .4byte move_anim_8072740
+ thumb_func_end unc_080B08A0
+
+ thumb_func_start sub_80D902C
+sub_80D902C: @ 80D902C
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r4, _080D9070
+ movs r1, 0xE
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ bne _080D9054
+ ldr r0, _080D9074
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D9054
+ ldrh r0, [r4, 0x2]
+ negs r0, r0
+ strh r0, [r4, 0x2]
+ ldrh r0, [r4, 0x6]
+ negs r0, r0
+ strh r0, [r4, 0x6]
+_080D9054:
+ ldr r4, _080D9070
+ ldrb r1, [r4, 0xC]
+ adds r0, r5, 0
+ bl StartSpriteAnim
+ movs r0, 0
+ strh r0, [r4, 0xC]
+ adds r0, r5, 0
+ bl sub_8079534
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D9070: .4byte gUnknown_03004B00
+_080D9074: .4byte gUnknown_0202F7C8
+ thumb_func_end sub_80D902C
+
+ thumb_func_start sub_80D9078
+sub_80D9078: @ 80D9078
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D9094
+ ldr r0, _080D90A0
+ ldrh r1, [r0, 0x2]
+ negs r1, r1
+ strh r1, [r0, 0x2]
+ ldrh r1, [r0, 0x6]
+ negs r1, r1
+ strh r1, [r0, 0x6]
+_080D9094:
+ adds r0, r4, 0
+ bl sub_80D902C
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D90A0: .4byte gUnknown_03004B00
+ thumb_func_end sub_80D9078
+
+ thumb_func_start sub_80D90A4
+sub_80D90A4: @ 80D90A4
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r4, _080D90C4
+ ldrb r1, [r4, 0x8]
+ bl StartSpriteAnim
+ movs r1, 0x6
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080D90C8
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl sub_80787B0
+ b _080D90D0
+ .align 2, 0
+_080D90C4: .4byte gUnknown_03004B00
+_080D90C8:
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl sub_8078764
+_080D90D0:
+ ldr r0, _080D90E8
+ ldrh r0, [r0, 0x4]
+ strh r0, [r5, 0x2E]
+ ldr r0, _080D90EC
+ str r0, [r5, 0x1C]
+ ldr r1, _080D90F0
+ adds r0, r5, 0
+ bl oamt_set_x3A_32
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D90E8: .4byte gUnknown_03004B00
+_080D90EC: .4byte sub_80782D8
+_080D90F0: .4byte move_anim_8072740
+ thumb_func_end sub_80D90A4
+
+ thumb_func_start sub_80D90F4
+sub_80D90F4: @ 80D90F4
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ adds r5, r0, 0
+ ldr r0, _080D9110
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ mov r9, r0
+ cmp r1, 0
+ bne _080D9118
+ ldr r0, _080D9114
+ b _080D911A
+ .align 2, 0
+_080D9110: .4byte gUnknown_03004B00
+_080D9114: .4byte gUnknown_0202F7C8
+_080D9118:
+ ldr r0, _080D9260
+_080D911A:
+ ldrb r0, [r0]
+ mov r8, r0
+ mov r4, r9
+ movs r3, 0x4
+ ldrsh r0, [r4, r3]
+ cmp r0, 0
+ bge _080D9138
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x5
+ bl __umodsi3
+ strh r0, [r4, 0x4]
+_080D9138:
+ ldrb r1, [r4, 0x4]
+ adds r0, r5, 0
+ bl StartSpriteAnim
+ mov r0, r8
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ mov r0, r8
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+ mov r0, r8
+ movs r1, 0x1
+ bl sub_807A100
+ lsls r0, 16
+ asrs r1, r0, 16
+ lsrs r0, 31
+ adds r1, r0
+ lsls r1, 15
+ lsrs r6, r1, 16
+ mov r0, r8
+ movs r1, 0
+ bl sub_807A100
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0
+ bge _080D9182
+ adds r0, 0x3
+_080D9182:
+ lsls r4, r0, 14
+ lsrs r4, 16
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r1, r6, 16
+ asrs r1, 16
+ bl __modsi3
+ lsls r0, 16
+ lsrs r6, r0, 16
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r4, 16
+ asrs r4, 16
+ adds r1, r4, 0
+ bl __modsi3
+ lsls r0, 16
+ lsrs r4, r0, 16
+ bl Random
+ movs r7, 0x1
+ adds r1, r7, 0
+ ands r1, r0
+ cmp r1, 0
+ beq _080D91C4
+ lsls r0, r6, 16
+ negs r0, r0
+ lsrs r6, r0, 16
+_080D91C4:
+ bl Random
+ adds r1, r7, 0
+ ands r1, r0
+ cmp r1, 0
+ beq _080D91D6
+ lsls r0, r4, 16
+ negs r0, r0
+ lsrs r4, r0, 16
+_080D91D6:
+ ldr r0, _080D9264
+ add r0, r8
+ ldrb r1, [r0]
+ adds r0, r7, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _080D91EC
+ lsls r0, r4, 16
+ ldr r1, _080D9268
+ adds r0, r1
+ lsrs r4, r0, 16
+_080D91EC:
+ lsls r0, r6, 16
+ asrs r0, 16
+ ldrh r2, [r5, 0x20]
+ adds r0, r2
+ strh r0, [r5, 0x20]
+ lsls r0, r4, 16
+ asrs r0, 16
+ ldrh r3, [r5, 0x22]
+ adds r0, r3
+ strh r0, [r5, 0x22]
+ mov r1, r9
+ ldrh r0, [r1, 0x2]
+ strh r0, [r5, 0x2E]
+ ldr r0, _080D926C
+ movs r2, 0x20
+ ldrsh r1, [r5, r2]
+ movs r3, 0x22
+ ldrsh r2, [r5, r3]
+ adds r3, r5, 0
+ adds r3, 0x43
+ ldrb r3, [r3]
+ adds r3, 0x1
+ lsls r3, 24
+ lsrs r3, 24
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x3C]
+ cmp r0, 0x40
+ beq _080D9250
+ movs r0, 0x3C
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r4, _080D9270
+ adds r0, r4
+ movs r1, 0
+ bl StartSpriteAffineAnim
+ movs r2, 0x3C
+ ldrsh r1, [r5, r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r4, 0x1C
+ adds r0, r4
+ ldr r1, _080D9274
+ str r1, [r0]
+_080D9250:
+ ldr r0, _080D9278
+ str r0, [r5, 0x1C]
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D9260: .4byte gUnknown_0202F7C9
+_080D9264: .4byte gUnknown_02024A72
+_080D9268: .4byte 0xfff00000
+_080D926C: .4byte gBattleAnimSpriteTemplate_83DB4A8
+_080D9270: .4byte gSprites
+_080D9274: .4byte SpriteCallbackDummy
+_080D9278: .4byte sub_80D927C
+ thumb_func_end sub_80D90F4
+
+ thumb_func_start sub_80D927C
+sub_80D927C: @ 80D927C
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldrh r1, [r5, 0x2E]
+ movs r2, 0x2E
+ ldrsh r0, [r5, r2]
+ cmp r0, 0
+ bne _080D92C4
+ movs r1, 0x3C
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x40
+ beq _080D92B8
+ ldr r4, _080D92C0
+ adds r1, r0, 0
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrb r0, [r0, 0x3]
+ lsls r0, 26
+ lsrs r0, 27
+ bl FreeOamMatrix
+ movs r0, 0x3C
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ bl DestroySprite
+_080D92B8:
+ adds r0, r5, 0
+ bl move_anim_8072740
+ b _080D92C8
+ .align 2, 0
+_080D92C0: .4byte gSprites
+_080D92C4:
+ subs r0, r1, 0x1
+ strh r0, [r5, 0x2E]
+_080D92C8:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D927C
+
+ thumb_func_start sub_80D92D0
+sub_80D92D0: @ 80D92D0
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x1
+ bl sub_8078764
+ movs r0, 0x1E
+ strh r0, [r4, 0x2E]
+ ldr r0, _080D92F0
+ movs r1, 0x4
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080D92F4
+ ldrh r0, [r4, 0x20]
+ subs r0, 0x14
+ strh r0, [r4, 0x32]
+ b _080D9306
+ .align 2, 0
+_080D92F0: .4byte gUnknown_03004B00
+_080D92F4:
+ ldrh r0, [r4, 0x20]
+ adds r0, 0x14
+ strh r0, [r4, 0x32]
+ adds r2, r4, 0
+ adds r2, 0x3F
+ ldrb r0, [r2]
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r2]
+_080D9306:
+ ldrh r0, [r4, 0x22]
+ subs r0, 0x14
+ strh r0, [r4, 0x36]
+ ldr r0, _080D9320
+ str r0, [r4, 0x1C]
+ ldr r1, _080D9324
+ adds r0, r4, 0
+ bl oamt_set_x3A_32
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D9320: .4byte sub_8078B34
+_080D9324: .4byte sub_80D9328
+ thumb_func_end sub_80D92D0
+
+ thumb_func_start sub_80D9328
+sub_80D9328: @ 80D9328
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ ldrh r0, [r5, 0x38]
+ adds r0, 0x1
+ movs r6, 0
+ strh r0, [r5, 0x38]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xB
+ bne _080D9368
+ ldrh r2, [r5, 0x20]
+ ldrh r4, [r5, 0x24]
+ subs r0, r2, r4
+ strh r0, [r5, 0x32]
+ ldrh r1, [r5, 0x22]
+ ldrh r3, [r5, 0x26]
+ subs r0, r1, r3
+ strh r0, [r5, 0x36]
+ movs r0, 0x8
+ strh r0, [r5, 0x2E]
+ adds r2, r4
+ strh r2, [r5, 0x20]
+ adds r1, r3
+ strh r1, [r5, 0x22]
+ strh r6, [r5, 0x26]
+ strh r6, [r5, 0x24]
+ ldr r0, _080D9370
+ str r0, [r5, 0x1C]
+ ldr r1, _080D9374
+ adds r0, r5, 0
+ bl oamt_set_x3A_32
+_080D9368:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D9370: .4byte sub_8078B34
+_080D9374: .4byte move_anim_8072740
+ thumb_func_end sub_80D9328
+
+ thumb_func_start sub_80D9378
+sub_80D9378: @ 80D9378
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ ldr r0, _080D93F4
+ ldrb r1, [r0]
+ movs r0, 0x2
+ ldr r2, _080D93F8
+ eors r0, r1
+ ldrb r1, [r2]
+ cmp r0, r1
+ bne _080D93A4
+ ldrb r0, [r2]
+ bl battle_get_per_side_status
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bhi _080D93A4
+ ldr r1, _080D93FC
+ movs r2, 0
+ ldrsh r0, [r1, r2]
+ negs r0, r0
+ strh r0, [r1]
+_080D93A4:
+ adds r0, r6, 0
+ movs r1, 0x1
+ bl sub_8078764
+ ldr r0, _080D93F4
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D93C2
+ ldr r1, _080D93FC
+ ldrh r0, [r1, 0x4]
+ negs r0, r0
+ strh r0, [r1, 0x4]
+_080D93C2:
+ ldr r4, _080D93FC
+ ldrh r0, [r4, 0x6]
+ movs r5, 0
+ strh r0, [r6, 0x2E]
+ ldrh r0, [r6, 0x20]
+ strh r0, [r6, 0x30]
+ ldrh r1, [r4, 0x4]
+ adds r0, r1
+ strh r0, [r6, 0x32]
+ ldrh r0, [r6, 0x22]
+ strh r0, [r6, 0x34]
+ strh r0, [r6, 0x36]
+ adds r0, r6, 0
+ bl obj_translate_based_on_private_1_2_3_4
+ ldrh r0, [r4, 0xA]
+ strh r0, [r6, 0x38]
+ ldrh r0, [r4, 0x8]
+ strh r0, [r6, 0x3A]
+ strh r5, [r6, 0x3C]
+ ldr r0, _080D9400
+ str r0, [r6, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D93F4: .4byte gUnknown_0202F7C8
+_080D93F8: .4byte gUnknown_0202F7C9
+_080D93FC: .4byte gUnknown_03004B00
+_080D9400: .4byte sub_80D9404
+ thumb_func_end sub_80D9378
+
+ thumb_func_start sub_80D9404
+sub_80D9404: @ 80D9404
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_8078B5C
+ lsls r0, 24
+ cmp r0, 0
+ bne _080D9430
+ ldrh r0, [r4, 0x3C]
+ lsls r0, 16
+ asrs r0, 24
+ movs r2, 0x38
+ ldrsh r1, [r4, r2]
+ bl Sin
+ ldrh r1, [r4, 0x26]
+ adds r0, r1
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x3A]
+ ldrh r2, [r4, 0x3C]
+ adds r0, r2
+ strh r0, [r4, 0x3C]
+ b _080D9436
+_080D9430:
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080D9436:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D9404
+
+ thumb_func_start sub_80D943C
+sub_80D943C: @ 80D943C
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r1, 0x1
+ bl sub_8078764
+ ldr r5, _080D9468
+ ldrb r1, [r5, 0x4]
+ adds r0, r4, 0
+ bl StartSpriteAnim
+ ldrh r0, [r5, 0x6]
+ strh r0, [r4, 0x2E]
+ ldr r0, _080D946C
+ str r0, [r4, 0x1C]
+ ldr r1, _080D9470
+ adds r0, r4, 0
+ bl oamt_set_x3A_32
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D9468: .4byte gUnknown_03004B00
+_080D946C: .4byte sub_80782D8
+_080D9470: .4byte sub_80D9474
+ thumb_func_end sub_80D943C
+
+ thumb_func_start sub_80D9474
+sub_80D9474: @ 80D9474
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0
+ bl StartSpriteAffineAnim
+ adds r2, r4, 0
+ adds r2, 0x2C
+ ldrb r0, [r2]
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r2]
+ movs r0, 0x14
+ strh r0, [r4, 0x2E]
+ ldr r0, _080D94A0
+ str r0, [r4, 0x1C]
+ ldr r1, _080D94A4
+ adds r0, r4, 0
+ bl oamt_set_x3A_32
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D94A0: .4byte sub_80782D8
+_080D94A4: .4byte move_anim_8072740
+ thumb_func_end sub_80D9474
+
+ thumb_func_start sub_80D94A8
+sub_80D94A8: @ 80D94A8
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x1
+ bl sub_8078764
+ ldr r0, _080D94C4
+ ldrh r0, [r0, 0x4]
+ strh r0, [r4, 0x2E]
+ ldr r0, _080D94C8
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D94C4: .4byte gUnknown_03004B00
+_080D94C8: .4byte sub_80D94CC
+ thumb_func_end sub_80D94A8
+
+ thumb_func_start sub_80D94CC
+sub_80D94CC: @ 80D94CC
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldrh r0, [r5, 0x2E]
+ subs r0, 0x1
+ strh r0, [r5, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ bne _080D9510
+ movs r0, 0x6
+ strh r0, [r5, 0x2E]
+ ldr r4, _080D9518
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x32]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x36]
+ ldr r0, _080D951C
+ str r0, [r5, 0x1C]
+ ldr r1, _080D9520
+ adds r0, r5, 0
+ bl oamt_set_x3A_32
+_080D9510:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D9518: .4byte gUnknown_0202F7C9
+_080D951C: .4byte sub_8078B34
+_080D9520: .4byte sub_80D9524
+ thumb_func_end sub_80D94CC
+
+ thumb_func_start sub_80D9524
+sub_80D9524: @ 80D9524
+ push {lr}
+ movs r1, 0xF
+ strh r1, [r0, 0x2E]
+ ldr r1, _080D9538
+ str r1, [r0, 0x1C]
+ ldr r1, _080D953C
+ bl oamt_set_x3A_32
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D9538: .4byte sub_80782D8
+_080D953C: .4byte move_anim_8072740
+ thumb_func_end sub_80D9524
+
+ thumb_func_start sub_80D9540
+sub_80D9540: @ 80D9540
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080D956C
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_8078764
+ ldr r1, _080D9568
+ ldrh r0, [r1, 0x4]
+ strh r0, [r4, 0x30]
+ ldrh r0, [r1, 0x6]
+ strh r0, [r4, 0x32]
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ b _080D95C8
+ .align 2, 0
+_080D9568: .4byte gUnknown_03004B00
+_080D956C:
+ ldrh r0, [r4, 0x30]
+ ldrh r2, [r4, 0x36]
+ adds r0, r2
+ strh r0, [r4, 0x36]
+ lsls r0, 16
+ asrs r0, 24
+ strh r0, [r4, 0x24]
+ movs r1, 0x34
+ ldrsh r0, [r4, r1]
+ movs r2, 0x32
+ ldrsh r1, [r4, r2]
+ bl Sin
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x34]
+ adds r0, 0x3
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x34]
+ cmp r0, 0x64
+ ble _080D95BA
+ movs r0, 0x34
+ ldrsh r1, [r4, r0]
+ lsrs r0, r1, 31
+ adds r0, r1, r0
+ asrs r0, 1
+ lsls r0, 1
+ subs r1, r0
+ adds r3, r4, 0
+ adds r3, 0x3E
+ movs r0, 0x1
+ ands r1, r0
+ lsls r1, 2
+ ldrb r2, [r3]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+_080D95BA:
+ movs r1, 0x34
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x78
+ ble _080D95C8
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080D95C8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D9540
+
+ thumb_func_start sub_80D95D0
+sub_80D95D0: @ 80D95D0
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r0, _080D95E4
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080D95EC
+ ldr r4, _080D95E8
+ b _080D95EE
+ .align 2, 0
+_080D95E4: .4byte gUnknown_03004B00
+_080D95E8: .4byte gUnknown_0202F7C8
+_080D95EC:
+ ldr r4, _080D9634
+_080D95EE:
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+ ldr r1, _080D9638
+ ldrh r0, [r1, 0x2]
+ ldrh r2, [r5, 0x20]
+ adds r0, r2
+ movs r2, 0
+ strh r0, [r5, 0x20]
+ ldrh r0, [r1, 0x4]
+ ldrh r3, [r5, 0x22]
+ adds r0, r3
+ strh r0, [r5, 0x22]
+ strh r2, [r5, 0x2E]
+ ldrh r0, [r1, 0x6]
+ strh r0, [r5, 0x30]
+ ldrh r0, [r1, 0x8]
+ strh r0, [r5, 0x32]
+ strh r2, [r5, 0x34]
+ ldr r0, _080D963C
+ str r0, [r5, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D9634: .4byte gUnknown_0202F7C9
+_080D9638: .4byte gUnknown_03004B00
+_080D963C: .4byte sub_80D9640
+ thumb_func_end sub_80D95D0
+
+ thumb_func_start sub_80D9640
+sub_80D9640: @ 80D9640
+ push {lr}
+ adds r1, r0, 0
+ movs r0, 0x2E
+ ldrsh r2, [r1, r0]
+ cmp r2, 0
+ beq _080D9652
+ cmp r2, 0x1
+ beq _080D9676
+ b _080D96B0
+_080D9652:
+ ldrh r0, [r1, 0x30]
+ subs r0, 0x1
+ strh r0, [r1, 0x30]
+ lsls r0, 16
+ cmp r0, 0
+ bne _080D96B0
+ movs r2, 0x32
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ bne _080D966E
+ adds r0, r1, 0
+ bl move_anim_8072740
+ b _080D96B0
+_080D966E:
+ ldrh r0, [r1, 0x2E]
+ adds r0, 0x1
+ strh r0, [r1, 0x2E]
+ b _080D96B0
+_080D9676:
+ ldrh r0, [r1, 0x30]
+ adds r0, 0x1
+ strh r0, [r1, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080D969E
+ movs r0, 0
+ strh r0, [r1, 0x30]
+ ldrh r0, [r1, 0x34]
+ adds r0, 0x1
+ strh r0, [r1, 0x34]
+ ands r0, r2
+ lsls r0, 16
+ cmp r0, 0
+ beq _080D969A
+ movs r0, 0x2
+ b _080D969C
+_080D969A:
+ ldr r0, _080D96B4
+_080D969C:
+ strh r0, [r1, 0x24]
+_080D969E:
+ ldrh r0, [r1, 0x32]
+ subs r0, 0x1
+ strh r0, [r1, 0x32]
+ lsls r0, 16
+ cmp r0, 0
+ bne _080D96B0
+ adds r0, r1, 0
+ bl move_anim_8072740
+_080D96B0:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D96B4: .4byte 0x0000fffe
+ thumb_func_end sub_80D9640
+
+ thumb_func_start sub_80D96B8
+sub_80D96B8: @ 80D96B8
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ ldr r6, _080D96DC
+ movs r1, 0
+ ldrsh r0, [r6, r1]
+ cmp r0, 0
+ bne _080D96E4
+ ldr r4, _080D96E0
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r2, [r6, 0x4]
+ adds r0, r2
+ b _080D96F6
+ .align 2, 0
+_080D96DC: .4byte gUnknown_03004B00
+_080D96E0: .4byte gUnknown_0202F7C8
+_080D96E4:
+ ldr r4, _080D9740
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r6, 0x4]
+ adds r0, r1
+_080D96F6:
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r6, [r6, 0x6]
+ adds r0, r6
+ strh r0, [r5, 0x22]
+ ldrh r2, [r5, 0x4]
+ lsls r1, r2, 22
+ lsrs r1, 22
+ ldr r3, _080D9744
+ movs r4, 0x2
+ ldrsh r0, [r3, r4]
+ lsls r0, 4
+ adds r1, r0
+ ldr r4, _080D9748
+ adds r0, r4, 0
+ ands r1, r0
+ ldr r0, _080D974C
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r5, 0x4]
+ movs r1, 0
+ movs r0, 0
+ strh r0, [r5, 0x2E]
+ movs r2, 0x2
+ ldrsh r0, [r3, r2]
+ cmp r0, 0x1
+ beq _080D9764
+ cmp r0, 0x1
+ bgt _080D9750
+ cmp r0, 0
+ beq _080D975A
+ b _080D978A
+ .align 2, 0
+_080D9740: .4byte gUnknown_0202F7C9
+_080D9744: .4byte gUnknown_03004B00
+_080D9748: .4byte 0x000003ff
+_080D974C: .4byte 0xfffffc00
+_080D9750:
+ cmp r0, 0x2
+ beq _080D9774
+ cmp r0, 0x3
+ beq _080D9784
+ b _080D978A
+_080D975A:
+ ldr r0, _080D9760
+ b _080D9784
+ .align 2, 0
+_080D9760: .4byte 0x0000fffd
+_080D9764:
+ movs r0, 0x3
+ strh r0, [r5, 0x3A]
+ ldr r0, _080D9770
+ strh r0, [r5, 0x3C]
+ b _080D9792
+ .align 2, 0
+_080D9770: .4byte 0x0000fffd
+_080D9774:
+ ldr r0, _080D9780
+ strh r0, [r5, 0x3A]
+ movs r0, 0x3
+ strh r0, [r5, 0x3C]
+ b _080D9792
+ .align 2, 0
+_080D9780: .4byte 0x0000fffd
+_080D9784:
+ strh r0, [r5, 0x3A]
+ strh r0, [r5, 0x3C]
+ b _080D9792
+_080D978A:
+ adds r0, r5, 0
+ bl move_anim_8072740
+ b _080D9796
+_080D9792:
+ ldr r0, _080D979C
+ str r0, [r5, 0x1C]
+_080D9796:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D979C: .4byte sub_80D97A0
+ thumb_func_end sub_80D96B8
+
+ thumb_func_start sub_80D97A0
+sub_80D97A0: @ 80D97A0
+ push {lr}
+ adds r1, r0, 0
+ ldrh r0, [r1, 0x3A]
+ ldrh r2, [r1, 0x20]
+ adds r0, r2
+ strh r0, [r1, 0x20]
+ ldrh r0, [r1, 0x3C]
+ ldrh r2, [r1, 0x22]
+ adds r0, r2
+ strh r0, [r1, 0x22]
+ ldrh r0, [r1, 0x2E]
+ adds r0, 0x1
+ strh r0, [r1, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x28
+ ble _080D97C8
+ adds r0, r1, 0
+ bl move_anim_8072740
+_080D97C8:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D97A0
+
+ thumb_func_start sub_80D97CC
+sub_80D97CC: @ 80D97CC
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r0, _080D9818
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080D9828
+ ldr r4, _080D981C
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+ ldr r0, _080D9820
+ ldrb r0, [r0]
+ bl sub_8079ED4
+ movs r1, 0x3
+ ands r1, r0
+ lsls r1, 2
+ ldrb r2, [r5, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r5, 0x5]
+ ldr r0, _080D9824
+ b _080D9844
+ .align 2, 0
+_080D9818: .4byte gUnknown_03004B00
+_080D981C: .4byte gUnknown_02024C07
+_080D9820: .4byte gUnknown_0202F7C8
+_080D9824: .4byte gUnknown_0202F7C9
+_080D9828:
+ ldr r0, _080D9860
+ ldrb r0, [r0]
+ bl sub_8079ED4
+ movs r1, 0x3
+ ands r1, r0
+ lsls r1, 2
+ ldrb r2, [r5, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r5, 0x5]
+ ldr r0, _080D9864
+_080D9844:
+ ldrb r0, [r0]
+ strh r0, [r5, 0x3C]
+ movs r0, 0
+ strh r0, [r5, 0x2E]
+ movs r0, 0xC
+ strh r0, [r5, 0x30]
+ movs r0, 0x8
+ strh r0, [r5, 0x32]
+ ldr r0, _080D9868
+ str r0, [r5, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D9860: .4byte gUnknown_0202F7C9
+_080D9864: .4byte gUnknown_0202F7C8
+_080D9868: .4byte sub_80D986C
+ thumb_func_end sub_80D97CC
+
+ thumb_func_start sub_80D986C
+sub_80D986C: @ 80D986C
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xB4
+ bne _080D98C6
+ ldr r1, _080D98CC
+ movs r0, 0
+ strh r0, [r1]
+ movs r0, 0x10
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r4, 0x20]
+ strh r0, [r4, 0x30]
+ ldrh r0, [r4, 0x3C]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x32]
+ ldrh r0, [r4, 0x22]
+ strh r0, [r4, 0x34]
+ ldrh r0, [r4, 0x3C]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x36]
+ adds r0, r4, 0
+ bl obj_translate_based_on_private_1_2_3_4
+ ldr r1, _080D98D0
+ adds r0, r4, 0
+ bl oamt_set_x3A_32
+ ldr r0, _080D98D4
+ str r0, [r4, 0x1C]
+_080D98C6:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D98CC: .4byte REG_BLDCNT
+_080D98D0: .4byte move_anim_8074EE0
+_080D98D4: .4byte sub_8078BB8
+ thumb_func_end sub_80D986C
+
+ thumb_func_start sub_80D98D8
+sub_80D98D8: @ 80D98D8
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r4, _080D9924
+ ldrh r0, [r4]
+ strh r0, [r5, 0x20]
+ movs r2, 0x78
+ strh r2, [r5, 0x22]
+ ldrh r0, [r4, 0x6]
+ strh r0, [r5, 0x2E]
+ adds r0, r5, 0
+ adds r0, 0x36
+ adds r1, r5, 0
+ adds r1, 0x38
+ lsls r2, 8
+ bl sub_8079BF4
+ ldrh r0, [r4, 0x2]
+ strh r0, [r5, 0x3A]
+ ldrh r2, [r5, 0x4]
+ lsls r1, r2, 22
+ lsrs r1, 22
+ movs r3, 0x4
+ ldrsh r0, [r4, r3]
+ lsls r0, 2
+ adds r1, r0
+ ldr r3, _080D9928
+ adds r0, r3, 0
+ ands r1, r0
+ ldr r0, _080D992C
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r5, 0x4]
+ ldr r0, _080D9930
+ str r0, [r5, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D9924: .4byte gUnknown_03004B00
+_080D9928: .4byte 0x000003ff
+_080D992C: .4byte 0xfffffc00
+_080D9930: .4byte sub_80D9934
+ thumb_func_end sub_80D98D8
+
+ thumb_func_start sub_80D9934
+sub_80D9934: @ 80D9934
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r7, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r7, r1]
+ cmp r0, 0
+ beq _080D9986
+ movs r2, 0x36
+ ldrsh r0, [r7, r2]
+ movs r2, 0x38
+ ldrsh r1, [r7, r2]
+ bl sub_8079BFC
+ adds r4, r0, 0
+ movs r1, 0x3A
+ ldrsh r0, [r7, r1]
+ subs r4, r0
+ adds r0, r7, 0
+ adds r0, 0x36
+ adds r1, r7, 0
+ adds r1, 0x38
+ adds r2, r4, 0
+ bl sub_8079BF4
+ asrs r4, 8
+ strh r4, [r7, 0x22]
+ lsls r4, 16
+ asrs r4, 16
+ movs r0, 0x8
+ negs r0, r0
+ cmp r4, r0
+ bge _080D997E
+ adds r0, r7, 0
+ bl move_anim_8072740
+ b _080D99DC
+_080D997E:
+ ldrh r0, [r7, 0x2E]
+ subs r0, 0x1
+ strh r0, [r7, 0x2E]
+ b _080D99DC
+_080D9986:
+ ldr r4, _080D99E8
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ adds r6, r0, 0
+ lsls r6, 24
+ lsrs r6, 24
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ ldr r2, _080D99EC
+ mov r8, r2
+ ldrb r0, [r2]
+ movs r1, 0x2
+ bl sub_8077ABC
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ mov r1, r8
+ ldrb r0, [r1]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ subs r4, r6
+ strh r4, [r7, 0x2E]
+ lsrs r0, 24
+ subs r0, r5
+ strh r0, [r7, 0x30]
+ ldrh r0, [r7, 0x20]
+ lsls r0, 4
+ strh r0, [r7, 0x32]
+ ldrh r0, [r7, 0x22]
+ lsls r0, 4
+ strh r0, [r7, 0x34]
+ ldr r0, _080D99F0
+ str r0, [r7, 0x1C]
+_080D99DC:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D99E8: .4byte gUnknown_0202F7C8
+_080D99EC: .4byte gUnknown_0202F7C9
+_080D99F0: .4byte sub_80D99F4
+ thumb_func_end sub_80D9934
+
+ thumb_func_start sub_80D99F4
+sub_80D99F4: @ 80D99F4
+ push {lr}
+ adds r2, r0, 0
+ ldrh r0, [r2, 0x2E]
+ ldrh r1, [r2, 0x32]
+ adds r0, r1
+ strh r0, [r2, 0x32]
+ ldrh r1, [r2, 0x30]
+ ldrh r3, [r2, 0x34]
+ adds r1, r3
+ strh r1, [r2, 0x34]
+ lsls r0, 16
+ asrs r0, 20
+ strh r0, [r2, 0x20]
+ lsls r1, 16
+ asrs r3, r1, 20
+ strh r3, [r2, 0x22]
+ adds r0, 0x8
+ lsls r0, 16
+ movs r1, 0x80
+ lsls r1, 17
+ cmp r0, r1
+ bhi _080D9A2E
+ adds r1, r3, 0
+ movs r0, 0x8
+ negs r0, r0
+ cmp r1, r0
+ blt _080D9A2E
+ cmp r1, 0x78
+ ble _080D9A34
+_080D9A2E:
+ adds r0, r2, 0
+ bl move_anim_8072740
+_080D9A34:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D99F4
+
+ thumb_func_start sub_80D9A38
+sub_80D9A38: @ 80D9A38
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r0, _080D9A6C
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080D9A7C
+ ldr r4, _080D9A70
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+ ldr r0, _080D9A74
+ ldrb r4, [r0]
+ ldr r0, _080D9A78
+ b _080D9A82
+ .align 2, 0
+_080D9A6C: .4byte gUnknown_03004B00
+_080D9A70: .4byte gUnknown_02024C07
+_080D9A74: .4byte gUnknown_0202F7C9
+_080D9A78: .4byte gUnknown_0202F7C8
+_080D9A7C:
+ ldr r0, _080D9AB4
+ ldrb r4, [r0]
+ ldr r0, _080D9AB8
+_080D9A82:
+ ldrb r0, [r0]
+ bl sub_8079ED4
+ movs r1, 0x3
+ ands r1, r0
+ lsls r1, 2
+ ldrb r2, [r5, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r5, 0x5]
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D9ABC
+ ldrb r2, [r5, 0x3]
+ lsls r1, r2, 26
+ lsrs r1, 27
+ movs r0, 0x8
+ orrs r1, r0
+ lsls r1, 1
+ subs r0, 0x47
+ b _080D9AD6
+ .align 2, 0
+_080D9AB4: .4byte gUnknown_0202F7C8
+_080D9AB8: .4byte gUnknown_0202F7C9
+_080D9ABC:
+ adds r0, r4, 0
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _080D9ADC
+ ldrb r2, [r5, 0x3]
+ lsls r1, r2, 26
+ lsrs r1, 27
+ movs r0, 0x18
+ orrs r1, r0
+ lsls r1, 1
+ subs r0, 0x57
+_080D9AD6:
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r5, 0x3]
+_080D9ADC:
+ movs r0, 0x10
+ strh r0, [r5, 0x2E]
+ ldrh r0, [r5, 0x20]
+ strh r0, [r5, 0x30]
+ adds r0, r4, 0
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x32]
+ ldrh r0, [r5, 0x22]
+ strh r0, [r5, 0x34]
+ adds r0, r4, 0
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x36]
+ adds r0, r5, 0
+ bl obj_translate_based_on_private_1_2_3_4
+ ldr r1, _080D9B1C
+ adds r0, r5, 0
+ bl oamt_set_x3A_32
+ ldr r0, _080D9B20
+ str r0, [r5, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D9B1C: .4byte move_anim_8072740
+_080D9B20: .4byte sub_8078BB8
+ thumb_func_end sub_80D9A38
+
+ thumb_func_start sub_80D9B24
+sub_80D9B24: @ 80D9B24
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r0, 0x2E
+ ldrsh r1, [r4, r0]
+ movs r2, 0x36
+ ldrsh r0, [r4, r2]
+ cmp r1, r0
+ bne _080D9B3A
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080D9B3A:
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D9B24
+
+ thumb_func_start sub_80D9B48
+sub_80D9B48: @ 80D9B48
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ ldr r4, _080D9BC4
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+ ldr r1, _080D9BC8
+ ldrh r0, [r1, 0x6]
+ strh r0, [r5, 0x30]
+ ldrh r0, [r1]
+ strh r0, [r5, 0x32]
+ ldrh r0, [r1, 0x2]
+ strh r0, [r5, 0x34]
+ ldrh r0, [r1, 0x4]
+ strh r0, [r5, 0x36]
+ ldr r0, _080D9BCC
+ ldrb r6, [r0]
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _080D9B92
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+_080D9B92:
+ movs r0, 0x1
+ ands r6, r0
+ cmp r6, 0
+ beq _080D9BA6
+ ldrh r0, [r5, 0x32]
+ negs r0, r0
+ strh r0, [r5, 0x32]
+ ldrh r0, [r5, 0x30]
+ adds r0, 0x1
+ strh r0, [r5, 0x30]
+_080D9BA6:
+ ldrh r1, [r5, 0x30]
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r5, 0
+ bl StartSpriteAnim
+ ldrh r0, [r5, 0x32]
+ strh r0, [r5, 0x24]
+ ldrh r0, [r5, 0x34]
+ strh r0, [r5, 0x26]
+ ldr r0, _080D9BD0
+ str r0, [r5, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D9BC4: .4byte gUnknown_0202F7C9
+_080D9BC8: .4byte gUnknown_03004B00
+_080D9BCC: .4byte gUnknown_0202F7C4
+_080D9BD0: .4byte sub_80D9B24
+ thumb_func_end sub_80D9B48
+
+ thumb_func_start sub_80D9BD4
+sub_80D9BD4: @ 80D9BD4
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _080D9BEC
+ movs r1, 0x4
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080D9BF0
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_80787B0
+ b _080D9BF8
+ .align 2, 0
+_080D9BEC: .4byte gUnknown_03004B00
+_080D9BF0:
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_8078764
+_080D9BF8:
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D9C0C
+ adds r0, r4, 0
+ movs r1, 0x2
+ bl StartSpriteAnim
+ b _080D9C22
+_080D9C0C:
+ ldr r0, _080D9C34
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D9C22
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl StartSpriteAnim
+_080D9C22:
+ ldr r0, _080D9C38
+ str r0, [r4, 0x1C]
+ ldr r1, _080D9C3C
+ adds r0, r4, 0
+ bl oamt_set_x3A_32
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D9C34: .4byte gUnknown_0202F7C8
+_080D9C38: .4byte sub_8078600
+_080D9C3C: .4byte move_anim_8072740
+ thumb_func_end sub_80D9BD4
+
+ thumb_func_start sub_80D9C40
+sub_80D9C40: @ 80D9C40
+ push {r4,lr}
+ adds r4, r0, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _080D9C7A
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x28
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x30]
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ movs r1, 0x2
+ bl Sin
+ strh r0, [r4, 0x24]
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x28
+ ble _080D9C7A
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080D9C7A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D9C40
+
+ thumb_func_start sub_80D9C80
+sub_80D9C80: @ 80D9C80
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ ldr r1, _080D9CB0
+ adds r4, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ beq _080D9CB8
+ cmp r0, 0x1
+ bgt _080D9CD2
+ cmp r0, 0
+ bne _080D9CD2
+ movs r0, 0
+ bl sub_80789D4
+ ldr r0, _080D9CB4
+ ldrh r0, [r0]
+ strh r0, [r4, 0x18]
+ b _080D9CCA
+ .align 2, 0
+_080D9CB0: .4byte gTasks
+_080D9CB4: .4byte gUnknown_03004B00
+_080D9CB8:
+ ldrh r0, [r4, 0x18]
+ subs r0, 0x1
+ strh r0, [r4, 0x18]
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ bne _080D9CDE
+_080D9CCA:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _080D9CDE
+_080D9CD2:
+ movs r2, 0xA0
+ lsls r2, 3
+ adds r0, r2, 0
+ ldrh r1, [r4, 0x1A]
+ adds r0, r1
+ strh r0, [r4, 0x1A]
+_080D9CDE:
+ movs r2, 0xB0
+ lsls r2, 4
+ adds r0, r2, 0
+ ldrh r1, [r4, 0x1C]
+ adds r0, r1
+ strh r0, [r4, 0x1C]
+ ldr r0, _080D9D0C
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _080D9D14
+ ldr r1, _080D9D10
+ ldrh r0, [r4, 0x1A]
+ lsls r0, 16
+ asrs r0, 24
+ ldrh r2, [r1]
+ adds r0, r2
+ strh r0, [r1]
+ adds r7, r1, 0
+ b _080D9D24
+ .align 2, 0
+_080D9D0C: .4byte gUnknown_0202F7C9
+_080D9D10: .4byte gUnknown_030041B0
+_080D9D14:
+ ldr r2, _080D9D64
+ ldrh r1, [r4, 0x1A]
+ lsls r1, 16
+ asrs r1, 24
+ ldrh r0, [r2]
+ subs r0, r1
+ strh r0, [r2]
+ adds r7, r2, 0
+_080D9D24:
+ ldr r3, _080D9D68
+ ldrh r2, [r4, 0x1C]
+ lsls r0, r2, 16
+ asrs r0, 24
+ ldrh r1, [r3]
+ adds r0, r1
+ strh r0, [r3]
+ movs r0, 0xFF
+ ldrb r1, [r4, 0x1A]
+ movs r5, 0
+ strh r1, [r4, 0x1A]
+ ands r0, r2
+ strh r0, [r4, 0x1C]
+ ldr r0, _080D9D6C
+ movs r2, 0xE
+ ldrsh r1, [r0, r2]
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ bne _080D9D5C
+ strh r5, [r7]
+ strh r5, [r3]
+ movs r0, 0x1
+ bl sub_80789D4
+ adds r0, r6, 0
+ bl move_anim_task_del
+_080D9D5C:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D9D64: .4byte gUnknown_030041B0
+_080D9D68: .4byte gUnknown_030041B8
+_080D9D6C: .4byte gUnknown_03004B00
+ thumb_func_end sub_80D9C80
+
+ thumb_func_start sub_80D9D70
+sub_80D9D70: @ 80D9D70
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r4, _080D9DC4
+ movs r1, 0x6
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080D9D86
+ adds r0, r5, 0
+ movs r1, 0x2
+ bl StartSpriteAnim
+_080D9D86:
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl sub_80787B0
+ ldrh r0, [r4, 0x4]
+ strh r0, [r5, 0x2E]
+ ldr r4, _080D9DC8
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x32]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x36]
+ ldr r0, _080D9DCC
+ strh r0, [r5, 0x38]
+ adds r0, r5, 0
+ bl sub_80786EC
+ ldr r0, _080D9DD0
+ str r0, [r5, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D9DC4: .4byte gUnknown_03004B00
+_080D9DC8: .4byte gUnknown_0202F7C9
+_080D9DCC: .4byte 0x0000ffe2
+_080D9DD0: .4byte sub_80D9DD4
+ thumb_func_end sub_80D9D70
+
+ thumb_func_start sub_80D9DD4
+sub_80D9DD4: @ 80D9DD4
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_8078718
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D9DE8
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080D9DE8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D9DD4
+
+ thumb_func_start sub_80D9DF0
+sub_80D9DF0: @ 80D9DF0
+ push {r4-r6,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ ldr r5, _080D9E64
+ movs r1, 0x6
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ bne _080D9E08
+ adds r0, r4, 0
+ movs r1, 0x2
+ bl StartSpriteAnim
+_080D9E08:
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_80787B0
+ ldr r0, _080D9E68
+ ldrb r0, [r0]
+ mov r6, sp
+ adds r6, 0x2
+ movs r1, 0x1
+ mov r2, sp
+ adds r3, r6, 0
+ bl sub_807A3FC
+ ldr r0, _080D9E6C
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D9E36
+ ldrh r0, [r5, 0x8]
+ negs r0, r0
+ strh r0, [r5, 0x8]
+_080D9E36:
+ ldrh r0, [r5, 0x4]
+ strh r0, [r4, 0x2E]
+ mov r1, sp
+ ldrh r0, [r5, 0x8]
+ ldrh r1, [r1]
+ adds r0, r1
+ strh r0, [r4, 0x32]
+ ldrh r0, [r5, 0xA]
+ ldrh r6, [r6]
+ adds r0, r6
+ strh r0, [r4, 0x36]
+ ldr r0, _080D9E70
+ strh r0, [r4, 0x38]
+ adds r0, r4, 0
+ bl sub_80786EC
+ ldr r0, _080D9E74
+ str r0, [r4, 0x1C]
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D9E64: .4byte gUnknown_03004B00
+_080D9E68: .4byte gUnknown_0202F7C9
+_080D9E6C: .4byte gUnknown_0202F7C8
+_080D9E70: .4byte 0x0000ffe2
+_080D9E74: .4byte sub_80D9E78
+ thumb_func_end sub_80D9DF0
+
+ thumb_func_start sub_80D9E78
+sub_80D9E78: @ 80D9E78
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_8078718
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D9E8C
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080D9E8C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D9E78
+
+ thumb_func_start sub_80D9E94
+sub_80D9E94: @ 80D9E94
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldr r5, _080D9EE0
+ ldrh r0, [r5, 0x4]
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r4, 0x20]
+ strh r0, [r4, 0x30]
+ ldrh r1, [r5]
+ adds r0, r1
+ strh r0, [r4, 0x32]
+ ldrh r0, [r4, 0x22]
+ strh r0, [r4, 0x34]
+ ldrh r1, [r5, 0x2]
+ adds r0, r1
+ strh r0, [r4, 0x36]
+ adds r0, r4, 0
+ bl sub_8078A5C
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ movs r2, 0x4
+ ldrsh r1, [r5, r2]
+ bl __divsi3
+ strh r0, [r4, 0x38]
+ movs r1, 0x32
+ ldrsh r0, [r4, r1]
+ movs r2, 0x4
+ ldrsh r1, [r5, r2]
+ bl __divsi3
+ strh r0, [r4, 0x3A]
+ ldr r0, _080D9EE4
+ str r0, [r4, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D9EE0: .4byte gUnknown_03004B00
+_080D9EE4: .4byte sub_80D9EE8
+ thumb_func_end sub_80D9E94
+
+ thumb_func_start sub_80D9EE8
+sub_80D9EE8: @ 80D9EE8
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_8078394
+ ldrh r0, [r4, 0x30]
+ ldrh r1, [r4, 0x38]
+ subs r0, r1
+ strh r0, [r4, 0x30]
+ ldrh r0, [r4, 0x32]
+ ldrh r1, [r4, 0x3A]
+ subs r0, r1
+ strh r0, [r4, 0x32]
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080D9F0E
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080D9F0E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D9EE8
+
+ thumb_func_start sub_80D9F14
+sub_80D9F14: @ 80D9F14
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _080D9F74
+ ldrb r0, [r0]
+ adds r2, r4, 0
+ adds r2, 0x20
+ adds r3, r4, 0
+ adds r3, 0x22
+ movs r1, 0x1
+ bl sub_807A3FC
+ ldr r0, _080D9F78
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D9F40
+ ldr r1, _080D9F7C
+ ldrh r0, [r1]
+ negs r0, r0
+ strh r0, [r1]
+_080D9F40:
+ ldr r0, _080D9F7C
+ ldrh r2, [r0]
+ ldrh r1, [r4, 0x20]
+ adds r2, r1
+ strh r2, [r4, 0x20]
+ ldrh r1, [r0, 0x2]
+ ldrh r3, [r4, 0x22]
+ adds r1, r3
+ strh r1, [r4, 0x22]
+ ldrh r3, [r0, 0x8]
+ strh r3, [r4, 0x2E]
+ ldrh r0, [r0, 0x4]
+ adds r2, r0
+ strh r2, [r4, 0x32]
+ adds r1, r3
+ strh r1, [r4, 0x36]
+ ldr r0, _080D9F80
+ str r0, [r4, 0x1C]
+ ldr r1, _080D9F84
+ adds r0, r4, 0
+ bl oamt_set_x3A_32
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D9F74: .4byte gUnknown_0202F7C9
+_080D9F78: .4byte gUnknown_0202F7C8
+_080D9F7C: .4byte gUnknown_03004B00
+_080D9F80: .4byte sub_8078B34
+_080D9F84: .4byte move_anim_8072740
+ thumb_func_end sub_80D9F14
+
+ thumb_func_start sub_80D9F88
+sub_80D9F88: @ 80D9F88
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldr r5, _080D9FA0
+ movs r1, 0x4
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ bne _080D9FA4
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_8078764
+ b _080D9FDA
+ .align 2, 0
+_080D9FA0: .4byte gUnknown_03004B00
+_080D9FA4:
+ ldr r0, _080D9FE4
+ ldrb r0, [r0]
+ adds r2, r4, 0
+ adds r2, 0x20
+ adds r3, r4, 0
+ adds r3, 0x22
+ movs r1, 0x1
+ bl sub_807A3FC
+ ldr r0, _080D9FE8
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D9FCA
+ ldrh r0, [r5]
+ negs r0, r0
+ strh r0, [r5]
+_080D9FCA:
+ ldrh r0, [r5]
+ ldrh r1, [r4, 0x20]
+ adds r0, r1
+ strh r0, [r4, 0x20]
+ ldrh r0, [r5, 0x2]
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r4, 0x22]
+_080D9FDA:
+ ldr r0, _080D9FEC
+ str r0, [r4, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D9FE4: .4byte gUnknown_0202F7C9
+_080D9FE8: .4byte gUnknown_0202F7C8
+_080D9FEC: .4byte sub_80D9FF0
+ thumb_func_end sub_80D9F88
+
+ thumb_func_start sub_80D9FF0
+sub_80D9FF0: @ 80D9FF0
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0xB
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x2E]
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ movs r1, 0x4
+ bl Sin
+ strh r0, [r4, 0x24]
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x30
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 24
+ negs r0, r0
+ strh r0, [r4, 0x26]
+ adds r0, r4, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _080DA02C
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080DA02C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D9FF0
+
+ thumb_func_start sub_80DA034
+sub_80DA034: @ 80DA034
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0
+ bl sub_8078764
+ ldrh r0, [r4, 0x22]
+ adds r0, 0x14
+ strh r0, [r4, 0x22]
+ movs r0, 0xBF
+ strh r0, [r4, 0x30]
+ ldr r1, _080DA058
+ str r1, [r4, 0x1C]
+ adds r0, r4, 0
+ bl _call_via_r1
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DA058: .4byte sub_80DA05C
+ thumb_func_end sub_80DA034
+
+ thumb_func_start sub_80DA05C
+sub_80DA05C: @ 80DA05C
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ movs r1, 0x20
+ bl Sin
+ strh r0, [r4, 0x24]
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ movs r1, 0x8
+ bl Cos
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x5
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x30]
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x47
+ bne _080DA096
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080DA096:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80DA05C
+
+ thumb_func_start sub_80DA09C
+sub_80DA09C: @ 80DA09C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _080DA0CC
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ adds r4, r1
+ ldr r1, _080DA0D0
+ ldrh r0, [r1, 0x2]
+ strh r0, [r4, 0x8]
+ ldrh r0, [r1]
+ strh r0, [r4, 0xA]
+ ldr r0, _080DA0D4
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0xC]
+ ldr r0, _080DA0D8
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DA0CC: .4byte gTasks
+_080DA0D0: .4byte gUnknown_03004B00
+_080DA0D4: .4byte 0x00002719
+_080DA0D8: .4byte sub_80DA0DC
+ thumb_func_end sub_80DA09C
+
+ thumb_func_start sub_80DA0DC
+sub_80DA0DC: @ 80DA0DC
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r2, _080DA15C
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r3, r0, r2
+ ldrh r0, [r3, 0x1C]
+ adds r1, r0, 0x1
+ strh r1, [r3, 0x1C]
+ lsls r0, 16
+ asrs r0, 16
+ movs r4, 0xA
+ ldrsh r1, [r3, r4]
+ adds r7, r2, 0
+ cmp r0, r1
+ bne _080DA13A
+ movs r0, 0
+ strh r0, [r3, 0x1C]
+ ldrb r0, [r3, 0xC]
+ ldr r2, _080DA160
+ lsls r0, 4
+ movs r3, 0x84
+ lsls r3, 1
+ adds r1, r0, r3
+ lsls r1, 1
+ adds r1, r2
+ ldrh r6, [r1]
+ movs r4, 0x7
+ mov r12, r0
+ ldr r0, _080DA164
+ add r0, r12
+ lsls r0, 1
+ adds r3, r0, r2
+_080DA122:
+ ldrh r0, [r3]
+ strh r0, [r1]
+ subs r3, 0x2
+ subs r1, 0x2
+ subs r4, 0x1
+ cmp r4, 0
+ bgt _080DA122
+ ldr r0, _080DA168
+ add r0, r12
+ lsls r0, 1
+ adds r0, r2
+ strh r6, [r0]
+_080DA13A:
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r7
+ ldrh r1, [r0, 0x8]
+ subs r1, 0x1
+ strh r1, [r0, 0x8]
+ lsls r1, 16
+ cmp r1, 0
+ bne _080DA154
+ adds r0, r5, 0
+ bl move_anim_task_del
+_080DA154:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DA15C: .4byte gTasks
+_080DA160: .4byte gPlttBufferFaded
+_080DA164: .4byte 0x00000107
+_080DA168: .4byte 0x00000101
+ thumb_func_end sub_80DA0DC
+
+ thumb_func_start sub_80DA16C
+sub_80DA16C: @ 80DA16C
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ movs r1, 0x1
+ bl sub_80787B0
+ ldr r0, _080DA1D8
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080DA18C
+ ldr r1, _080DA1DC
+ ldrh r0, [r1, 0x4]
+ negs r0, r0
+ strh r0, [r1, 0x4]
+_080DA18C:
+ ldr r4, _080DA1DC
+ ldrh r0, [r4, 0x8]
+ strh r0, [r6, 0x2E]
+ ldrh r0, [r6, 0x20]
+ strh r0, [r6, 0x30]
+ ldr r5, _080DA1E0
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r4, 0x4]
+ adds r0, r1
+ strh r0, [r6, 0x32]
+ ldrh r0, [r6, 0x22]
+ strh r0, [r6, 0x34]
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r4, [r4, 0x6]
+ adds r0, r4
+ strh r0, [r6, 0x36]
+ adds r0, r6, 0
+ bl obj_translate_based_on_private_1_2_3_4
+ ldr r0, _080DA1E4
+ str r0, [r6, 0x1C]
+ ldr r1, _080DA1E8
+ adds r0, r6, 0
+ bl oamt_set_x3A_32
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DA1D8: .4byte gUnknown_0202F7C8
+_080DA1DC: .4byte gUnknown_03004B00
+_080DA1E0: .4byte gUnknown_0202F7C9
+_080DA1E4: .4byte sub_80785E4
+_080DA1E8: .4byte sub_80DA1EC
+ thumb_func_end sub_80DA16C
+
+ thumb_func_start sub_80DA1EC
+sub_80DA1EC: @ 80DA1EC
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_8078B5C
+ lsls r0, 24
+ cmp r0, 0
+ beq _080DA200
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080DA200:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80DA1EC
+
+ thumb_func_start sub_80DA208
+sub_80DA208: @ 80DA208
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r4, _080DA2A4
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080DA234
+ ldr r1, _080DA2A8
+ ldrh r0, [r1]
+ negs r0, r0
+ strh r0, [r1]
+ ldrh r0, [r1, 0x2]
+ negs r0, r0
+ strh r0, [r1, 0x2]
+ ldrh r0, [r1, 0x4]
+ negs r0, r0
+ strh r0, [r1, 0x4]
+ ldrh r0, [r1, 0x6]
+ negs r0, r0
+ strh r0, [r1, 0x6]
+_080DA234:
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080DA24C
+ ldr r0, _080DA2A8
+ ldrh r1, [r0, 0x2]
+ negs r1, r1
+ strh r1, [r0, 0x2]
+ ldrh r1, [r0, 0x6]
+ negs r1, r1
+ strh r1, [r0, 0x6]
+_080DA24C:
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ ldr r2, _080DA2A8
+ ldrh r1, [r2]
+ ldrh r3, [r5, 0x20]
+ adds r1, r3
+ strh r1, [r5, 0x20]
+ lsrs r0, 24
+ ldrh r1, [r2, 0x2]
+ adds r0, r1
+ strh r0, [r5, 0x22]
+ ldrh r0, [r2, 0x8]
+ strh r0, [r5, 0x2E]
+ movs r3, 0xC
+ ldrsh r0, [r2, r3]
+ cmp r0, 0
+ bne _080DA2B0
+ ldr r4, _080DA2AC
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x32]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x36]
+ b _080DA2C2
+ .align 2, 0
+_080DA2A4: .4byte gUnknown_0202F7C8
+_080DA2A8: .4byte gUnknown_03004B00
+_080DA2AC: .4byte gUnknown_0202F7C9
+_080DA2B0:
+ ldr r0, _080DA2F0
+ ldrb r0, [r0]
+ adds r2, r5, 0
+ adds r2, 0x32
+ adds r3, r5, 0
+ adds r3, 0x36
+ movs r1, 0x1
+ bl sub_807A3FC
+_080DA2C2:
+ ldr r4, _080DA2F4
+ ldrh r0, [r4, 0x4]
+ ldrh r1, [r5, 0x32]
+ adds r0, r1
+ strh r0, [r5, 0x32]
+ ldrh r0, [r4, 0x6]
+ ldrh r3, [r5, 0x36]
+ adds r0, r3
+ strh r0, [r5, 0x36]
+ ldr r0, _080DA2F8
+ str r0, [r5, 0x1C]
+ ldr r1, _080DA2FC
+ adds r0, r5, 0
+ bl oamt_set_x3A_32
+ ldrb r1, [r4, 0xA]
+ adds r0, r5, 0
+ bl SeekSpriteAnim
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DA2F0: .4byte gUnknown_0202F7C9
+_080DA2F4: .4byte gUnknown_03004B00
+_080DA2F8: .4byte sub_8078B34
+_080DA2FC: .4byte move_anim_8072740
+ thumb_func_end sub_80DA208
+
+ thumb_func_start sub_80DA300
+sub_80DA300: @ 80DA300
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x1
+ bl sub_80787B0
+ ldr r1, _080DA33C
+ ldrh r0, [r1, 0x4]
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r1, 0x6]
+ strh r0, [r4, 0x30]
+ ldr r0, _080DA340
+ str r0, [r4, 0x1C]
+ movs r0, 0
+ bl obj_id_for_side_relative_to_move
+ ldr r2, _080DA344
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ adds r1, 0x3E
+ ldrb r0, [r1]
+ movs r2, 0x4
+ orrs r0, r2
+ strb r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DA33C: .4byte gUnknown_03004B00
+_080DA340: .4byte sub_80DA348
+_080DA344: .4byte gSprites
+ thumb_func_end sub_80DA300
+
+ thumb_func_start sub_80DA348
+sub_80DA348: @ 80DA348
+ push {lr}
+ adds r2, r0, 0
+ ldrh r1, [r2, 0x2E]
+ movs r3, 0x2E
+ ldrsh r0, [r2, r3]
+ cmp r0, 0
+ ble _080DA35C
+ subs r0, r1, 0x1
+ strh r0, [r2, 0x2E]
+ b _080DA36E
+_080DA35C:
+ ldrh r0, [r2, 0x30]
+ ldrh r1, [r2, 0x32]
+ adds r0, r1
+ strh r0, [r2, 0x32]
+ lsls r0, 16
+ asrs r0, 24
+ ldrh r1, [r2, 0x26]
+ subs r1, r0
+ strh r1, [r2, 0x26]
+_080DA36E:
+ movs r3, 0x22
+ ldrsh r0, [r2, r3]
+ movs r3, 0x26
+ ldrsh r1, [r2, r3]
+ adds r0, r1
+ movs r1, 0x20
+ negs r1, r1
+ cmp r0, r1
+ bge _080DA386
+ adds r0, r2, 0
+ bl move_anim_8072740
+_080DA386:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80DA348
+
+ thumb_func_start sub_80DA38C
+sub_80DA38C: @ 80DA38C
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r0, _080DA3B4
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080DA3BC
+ movs r0, 0x88
+ lsls r0, 1
+ strh r0, [r5, 0x20]
+ ldr r0, _080DA3B8
+ strh r0, [r5, 0x22]
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl StartSpriteAffineAnim
+ b _080DA3C2
+ .align 2, 0
+_080DA3B4: .4byte gUnknown_0202F7C8
+_080DA3B8: .4byte 0x0000ffe0
+_080DA3BC:
+ ldr r0, _080DA400
+ strh r0, [r5, 0x20]
+ strh r0, [r5, 0x22]
+_080DA3C2:
+ ldr r0, _080DA404
+ ldrh r0, [r0]
+ strh r0, [r5, 0x2E]
+ ldrh r0, [r5, 0x20]
+ strh r0, [r5, 0x30]
+ ldr r4, _080DA408
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x32]
+ ldrh r0, [r5, 0x22]
+ strh r0, [r5, 0x34]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x36]
+ adds r0, r5, 0
+ bl obj_translate_based_on_private_1_2_3_4
+ ldr r0, _080DA40C
+ str r0, [r5, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DA400: .4byte 0x0000ffe0
+_080DA404: .4byte gUnknown_03004B00
+_080DA408: .4byte gUnknown_0202F7C9
+_080DA40C: .4byte sub_80DA410
+ thumb_func_end sub_80DA38C
+
+ thumb_func_start sub_80DA410
+sub_80DA410: @ 80DA410
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r0, 0x1
+ strh r0, [r4, 0x2E]
+ adds r0, r4, 0
+ bl sub_8078B5C
+ ldrh r1, [r4, 0x34]
+ lsrs r0, r1, 8
+ cmp r0, 0xC8
+ bls _080DA438
+ ldrh r0, [r4, 0x24]
+ ldrh r2, [r4, 0x20]
+ adds r0, r2
+ strh r0, [r4, 0x20]
+ movs r0, 0
+ strh r0, [r4, 0x24]
+ movs r0, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x34]
+_080DA438:
+ movs r1, 0x20
+ ldrsh r0, [r4, r1]
+ movs r2, 0x24
+ ldrsh r1, [r4, r2]
+ adds r0, r1
+ adds r0, 0x20
+ movs r1, 0x98
+ lsls r1, 1
+ cmp r0, r1
+ bhi _080DA45A
+ movs r1, 0x22
+ ldrsh r0, [r4, r1]
+ movs r2, 0x26
+ ldrsh r1, [r4, r2]
+ adds r0, r1
+ cmp r0, 0xA0
+ ble _080DA480
+_080DA45A:
+ movs r0, 0
+ bl obj_id_for_side_relative_to_move
+ ldr r2, _080DA488
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ adds r1, 0x3E
+ ldrb r2, [r1]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1]
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080DA480:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DA488: .4byte gSprites
+ thumb_func_end sub_80DA410
+
+ thumb_func_start sub_80DA48C
+sub_80DA48C: @ 80DA48C
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x2E]
+ subs r1, r0, 0x1
+ strh r1, [r4, 0x2E]
+ lsls r0, 16
+ cmp r0, 0
+ bgt _080DA4CC
+ ldrb r0, [r4, 0x1]
+ lsls r0, 30
+ lsrs r0, 30
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080DA4BE
+ ldrb r0, [r4, 0x3]
+ lsls r0, 26
+ lsrs r0, 27
+ bl FreeOamMatrix
+ ldrb r1, [r4, 0x1]
+ movs r0, 0x4
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r4, 0x1]
+_080DA4BE:
+ adds r0, r4, 0
+ bl DestroySprite
+ ldr r1, _080DA4D4
+ ldrb r0, [r1]
+ subs r0, 0x1
+ strb r0, [r1]
+_080DA4CC:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DA4D4: .4byte gUnknown_0202F7B2
+ thumb_func_end sub_80DA48C
+
+ thumb_func_start sub_80DA4D8
+sub_80DA4D8: @ 80DA4D8
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r7, r0, 0
+ adds r5, r7, 0
+ adds r5, 0x2E
+ ldr r0, _080DA4F8
+ ldrh r1, [r0, 0xE]
+ movs r0, 0x80
+ lsls r0, 1
+ ands r0, r1
+ cmp r0, 0
+ beq _080DA500
+ ldr r0, _080DA4FC
+ b _080DA502
+ .align 2, 0
+_080DA4F8: .4byte gUnknown_03004B00
+_080DA4FC: .4byte gUnknown_0202F7C8
+_080DA500:
+ ldr r0, _080DA5B0
+_080DA502:
+ ldrb r6, [r0]
+ adds r0, r6, 0
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _080DA518
+ ldr r1, _080DA5B4
+ ldrh r0, [r1]
+ negs r0, r0
+ strh r0, [r1]
+_080DA518:
+ adds r0, r6, 0
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ ldr r4, _080DA5B4
+ lsrs r0, 24
+ ldrh r1, [r4]
+ adds r0, r1
+ strh r0, [r7, 0x20]
+ adds r0, r6, 0
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ ldrh r1, [r4, 0x2]
+ lsrs r0, 24
+ adds r1, r0, r1
+ strh r1, [r7, 0x22]
+ lsls r1, 8
+ strh r1, [r5, 0x8]
+ ldrh r1, [r4, 0xC]
+ adds r0, r1
+ lsls r0, 1
+ ldrh r2, [r5, 0xE]
+ movs r1, 0x1
+ ands r1, r2
+ orrs r1, r0
+ strh r1, [r5, 0xE]
+ ldrb r0, [r5]
+ movs r2, 0x4
+ mov r8, r2
+ mov r1, r8
+ orrs r0, r1
+ strb r0, [r5]
+ ldrh r0, [r4, 0x4]
+ ldrb r1, [r4, 0x4]
+ strh r1, [r5, 0x2]
+ lsls r0, 16
+ lsrs r0, 24
+ strh r0, [r5, 0xA]
+ ldrh r0, [r4, 0x6]
+ strh r0, [r5, 0x4]
+ ldrh r0, [r4, 0x8]
+ strh r0, [r5, 0x6]
+ ldrh r0, [r4, 0xA]
+ strh r0, [r5, 0xC]
+ subs r1, 0x40
+ lsls r1, 16
+ lsrs r1, 16
+ cmp r1, 0x7F
+ bhi _080DA618
+ ldr r0, _080DA5B8
+ ldr r2, _080DA5BC
+ adds r0, r2
+ ldrb r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080DA5C0
+ adds r0, r6, 0
+ bl sub_8079ED4
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, 0x1
+ movs r1, 0x3
+ ands r0, r1
+ lsls r0, 2
+ ldrb r2, [r7, 0x5]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r7, 0x5]
+ b _080DA5D8
+ .align 2, 0
+_080DA5B0: .4byte gUnknown_0202F7C9
+_080DA5B4: .4byte gUnknown_03004B00
+_080DA5B8: .4byte gMain
+_080DA5BC: .4byte 0x0000043d
+_080DA5C0:
+ adds r0, r6, 0
+ bl sub_8079ED4
+ movs r1, 0x3
+ ands r1, r0
+ lsls r1, 2
+ ldrb r2, [r7, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r7, 0x5]
+_080DA5D8:
+ ldrb r1, [r5, 0xE]
+ movs r4, 0x2
+ negs r4, r4
+ adds r0, r4, 0
+ ands r0, r1
+ strb r0, [r5, 0xE]
+ movs r1, 0x4
+ ldrsh r0, [r5, r1]
+ movs r1, 0x80
+ lsls r1, 8
+ ands r0, r1
+ cmp r0, 0
+ bne _080DA678
+ adds r3, r7, 0
+ adds r3, 0x3F
+ ldrb r2, [r3]
+ lsls r0, r2, 31
+ lsrs r0, 31
+ movs r1, 0x1
+ eors r1, r0
+ adds r0, r4, 0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+ lsls r0, 31
+ lsrs r0, 31
+ adds r1, r7, 0
+ adds r1, 0x2A
+ strb r0, [r1]
+ ldrb r0, [r3]
+ movs r1, 0x4
+ b _080DA66E
+_080DA618:
+ adds r0, r6, 0
+ bl sub_8079ED4
+ movs r1, 0x3
+ ands r1, r0
+ lsls r1, 2
+ ldrb r2, [r7, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r7, 0x5]
+ ldrb r0, [r5, 0xE]
+ movs r4, 0x1
+ orrs r0, r4
+ strb r0, [r5, 0xE]
+ movs r2, 0x4
+ ldrsh r0, [r5, r2]
+ movs r1, 0x80
+ lsls r1, 8
+ ands r0, r1
+ cmp r0, 0
+ beq _080DA678
+ adds r3, r7, 0
+ adds r3, 0x3F
+ ldrb r2, [r3]
+ lsls r1, r2, 31
+ lsrs r1, 31
+ movs r0, 0x1
+ eors r1, r0
+ ands r1, r4
+ movs r0, 0x2
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+ lsls r0, 31
+ lsrs r0, 31
+ adds r1, r7, 0
+ adds r1, 0x2A
+ strb r0, [r1]
+ ldrb r0, [r3]
+ mov r1, r8
+_080DA66E:
+ orrs r0, r1
+ movs r1, 0x11
+ negs r1, r1
+ ands r0, r1
+ strb r0, [r3]
+_080DA678:
+ ldrh r1, [r5, 0x2]
+ lsrs r1, 6
+ lsls r1, 4
+ ldrb r2, [r5]
+ movs r0, 0xF
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r5]
+ ldr r3, _080DA6E4
+ ldrh r0, [r5, 0x2]
+ lsls r0, 1
+ adds r0, r3
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ ldrb r0, [r5, 0xC]
+ muls r0, r1
+ asrs r0, 8
+ strh r0, [r7, 0x24]
+ ldrb r2, [r7, 0x3]
+ lsls r2, 26
+ lsrs r2, 27
+ movs r1, 0x24
+ ldrsh r0, [r7, r1]
+ negs r0, r0
+ asrs r0, 1
+ ldrb r5, [r5, 0xA]
+ adds r0, r5
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 1
+ adds r1, r3
+ ldrh r4, [r1]
+ ldr r1, _080DA6E8
+ lsls r2, 3
+ adds r2, r1
+ adds r0, 0x40
+ lsls r0, 1
+ adds r0, r3
+ ldrh r0, [r0]
+ strh r0, [r2, 0x6]
+ strh r0, [r2]
+ strh r4, [r2, 0x2]
+ lsls r0, r4, 16
+ asrs r0, 16
+ negs r0, r0
+ strh r0, [r2, 0x4]
+ ldr r0, _080DA6EC
+ str r0, [r7, 0x1C]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DA6E4: .4byte gSineTable
+_080DA6E8: .4byte gOamMatrices
+_080DA6EC: .4byte sub_80DA6F0
+ thumb_func_end sub_80DA4D8
+
+ thumb_func_start sub_80DA6F0
+sub_80DA6F0: @ 80DA6F0
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ adds r5, r0, 0
+ movs r6, 0
+ movs r0, 0x2E
+ adds r0, r5
+ mov r12, r0
+ ldrb r2, [r0]
+ movs r7, 0x1
+ movs r1, 0x1
+ mov r9, r1
+ mov r0, r9
+ ands r0, r2
+ cmp r0, 0
+ beq _080DA730
+ mov r3, r12
+ ldrb r0, [r3, 0x1]
+ adds r1, r0, 0
+ adds r1, 0xFF
+ strb r1, [r3, 0x1]
+ lsls r0, 24
+ cmp r0, 0
+ beq _080DA724
+ b _080DAD1A
+_080DA724:
+ movs r0, 0x2
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r3]
+ strb r6, [r3, 0x1]
+ b _080DAD1A
+_080DA730:
+ mov r4, r12
+ ldrh r0, [r4, 0x2]
+ lsrs r4, r0, 6
+ mov r8, r0
+ cmp r4, 0x1
+ bne _080DA73E
+ b _080DA896
+_080DA73E:
+ cmp r4, 0x1
+ bgt _080DA748
+ cmp r4, 0
+ beq _080DA756
+ b _080DAC52
+_080DA748:
+ cmp r4, 0x2
+ bne _080DA74E
+ b _080DA9C8
+_080DA74E:
+ cmp r4, 0x3
+ bne _080DA754
+ b _080DAB0E
+_080DA754:
+ b _080DAC52
+_080DA756:
+ lsls r1, r2, 24
+ lsrs r0, r1, 28
+ cmp r0, 0x1
+ bne _080DA76C
+ movs r0, 0x8
+ orrs r0, r2
+ orrs r0, r7
+ mov r1, r12
+ strb r0, [r1]
+ strb r6, [r1, 0x1]
+ b _080DA88A
+_080DA76C:
+ lsrs r0, r1, 28
+ cmp r0, 0x3
+ bne _080DA790
+ lsls r0, r2, 30
+ lsrs r0, 31
+ movs r1, 0x1
+ eors r0, r1
+ ands r0, r7
+ lsls r0, 1
+ movs r1, 0x3
+ negs r1, r1
+ ands r1, r2
+ orrs r1, r0
+ orrs r1, r7
+ mov r2, r12
+ strb r1, [r2]
+ strb r6, [r2, 0x1]
+ b _080DA88A
+_080DA790:
+ movs r0, 0x8
+ ands r0, r2
+ cmp r0, 0
+ beq _080DA88A
+ adds r3, r5, 0
+ adds r3, 0x3F
+ ldrb r2, [r3]
+ lsls r1, r2, 31
+ lsrs r1, 31
+ movs r4, 0x1
+ eors r1, r4
+ ands r1, r7
+ movs r6, 0x2
+ negs r6, r6
+ adds r0, r6, 0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+ lsls r0, 31
+ lsrs r0, 31
+ adds r1, r5, 0
+ adds r1, 0x2A
+ strb r0, [r1]
+ ldrb r0, [r3]
+ movs r1, 0x4
+ orrs r0, r1
+ movs r1, 0x11
+ negs r1, r1
+ ands r0, r1
+ strb r0, [r3]
+ mov r3, r12
+ ldrb r1, [r3]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _080DA87A
+ ldr r0, _080DA80C
+ ldr r1, _080DA810
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080DA82E
+ ldrb r1, [r3, 0xE]
+ mov r0, r9
+ ands r0, r1
+ cmp r0, 0
+ bne _080DA814
+ ldrb r2, [r5, 0x5]
+ lsls r1, r2, 28
+ lsrs r1, 30
+ subs r1, 0x1
+ movs r0, 0x3
+ ands r1, r0
+ lsls r1, 2
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r5, 0x5]
+ b _080DA868
+ .align 2, 0
+_080DA80C: .4byte gMain
+_080DA810: .4byte 0x0000043d
+_080DA814:
+ ldrb r2, [r5, 0x5]
+ lsls r1, r2, 28
+ lsrs r1, 30
+ adds r1, 0x1
+ movs r0, 0x3
+ ands r1, r0
+ lsls r1, 2
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r5, 0x5]
+ b _080DA866
+_080DA82E:
+ mov r0, r12
+ ldrb r1, [r0, 0xE]
+ mov r0, r9
+ ands r0, r1
+ cmp r0, 0
+ bne _080DA85C
+ adds r1, r5, 0
+ adds r1, 0x43
+ ldrb r0, [r1]
+ subs r0, 0xC
+ strb r0, [r1]
+ mov r1, r12
+ ldrb r2, [r1, 0xE]
+ lsls r0, r2, 31
+ lsrs r0, 31
+ eors r0, r4
+ ands r0, r7
+ adds r1, r6, 0
+ ands r1, r2
+ orrs r1, r0
+ mov r2, r12
+ strb r1, [r2, 0xE]
+ b _080DA87A
+_080DA85C:
+ adds r1, r5, 0
+ adds r1, 0x43
+ ldrb r0, [r1]
+ adds r0, 0xC
+ strb r0, [r1]
+_080DA866:
+ mov r3, r12
+_080DA868:
+ ldrb r2, [r3, 0xE]
+ lsls r0, r2, 31
+ lsrs r0, 31
+ eors r0, r4
+ ands r0, r7
+ adds r1, r6, 0
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r3, 0xE]
+_080DA87A:
+ mov r4, r12
+ ldrb r1, [r4]
+ movs r0, 0x9
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r4]
+ ldrh r0, [r4, 0x2]
+ mov r8, r0
+_080DA88A:
+ mov r2, r12
+ ldrb r1, [r2]
+ movs r0, 0xF
+ ands r0, r1
+ strb r0, [r2]
+ b _080DAC52
+_080DA896:
+ lsls r1, r2, 24
+ lsrs r0, r1, 28
+ cmp r0, 0
+ bne _080DA8AC
+ movs r0, 0x8
+ orrs r0, r2
+ orrs r0, r7
+ mov r3, r12
+ strb r0, [r3]
+ strb r6, [r3, 0x1]
+ b _080DA9BC
+_080DA8AC:
+ lsrs r0, r1, 28
+ cmp r0, 0x2
+ bne _080DA8BE
+ adds r0, r2, 0
+ orrs r0, r7
+ mov r4, r12
+ strb r0, [r4]
+ strb r6, [r4, 0x1]
+ b _080DA9BC
+_080DA8BE:
+ movs r0, 0x8
+ ands r0, r2
+ cmp r0, 0
+ beq _080DA9BC
+ adds r3, r5, 0
+ adds r3, 0x3F
+ ldrb r2, [r3]
+ lsls r1, r2, 31
+ lsrs r1, 31
+ movs r4, 0x1
+ eors r1, r4
+ ands r1, r7
+ movs r6, 0x2
+ negs r6, r6
+ adds r0, r6, 0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+ lsls r0, 31
+ lsrs r0, 31
+ adds r1, r5, 0
+ adds r1, 0x2A
+ strb r0, [r1]
+ ldrb r0, [r3]
+ movs r1, 0x4
+ orrs r0, r1
+ movs r1, 0x11
+ negs r1, r1
+ ands r0, r1
+ strb r0, [r3]
+ mov r0, r12
+ ldrb r1, [r0]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _080DA9AC
+ ldr r0, _080DA940
+ ldr r1, _080DA944
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080DA962
+ mov r2, r12
+ ldrb r1, [r2, 0xE]
+ mov r0, r9
+ ands r0, r1
+ cmp r0, 0
+ bne _080DA948
+ ldrb r2, [r5, 0x5]
+ lsls r1, r2, 28
+ lsrs r1, 30
+ subs r1, 0x1
+ movs r0, 0x3
+ ands r1, r0
+ lsls r1, 2
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r5, 0x5]
+ mov r3, r12
+ b _080DA978
+ .align 2, 0
+_080DA940: .4byte gMain
+_080DA944: .4byte 0x0000043d
+_080DA948:
+ ldrb r2, [r5, 0x5]
+ lsls r1, r2, 28
+ lsrs r1, 30
+ adds r1, 0x1
+ movs r0, 0x3
+ ands r1, r0
+ lsls r1, 2
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r5, 0x5]
+ b _080DA996
+_080DA962:
+ mov r3, r12
+ ldrb r1, [r3, 0xE]
+ mov r0, r9
+ ands r0, r1
+ cmp r0, 0
+ bne _080DA98C
+ adds r1, r5, 0
+ adds r1, 0x43
+ ldrb r0, [r1]
+ subs r0, 0xC
+ strb r0, [r1]
+_080DA978:
+ ldrb r2, [r3, 0xE]
+ lsls r0, r2, 31
+ lsrs r0, 31
+ eors r0, r4
+ ands r0, r7
+ adds r1, r6, 0
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r3, 0xE]
+ b _080DA9AC
+_080DA98C:
+ adds r1, r5, 0
+ adds r1, 0x43
+ ldrb r0, [r1]
+ adds r0, 0xC
+ strb r0, [r1]
+_080DA996:
+ mov r0, r12
+ ldrb r2, [r0, 0xE]
+ lsls r0, r2, 31
+ lsrs r0, 31
+ eors r0, r4
+ ands r0, r7
+ adds r1, r6, 0
+ ands r1, r2
+ orrs r1, r0
+ mov r2, r12
+ strb r1, [r2, 0xE]
+_080DA9AC:
+ mov r3, r12
+ ldrb r1, [r3]
+ movs r0, 0x9
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r3]
+ ldrh r4, [r3, 0x2]
+ mov r8, r4
+_080DA9BC:
+ mov r1, r12
+ ldrb r0, [r1]
+ movs r1, 0xF
+ ands r1, r0
+ movs r0, 0x10
+ b _080DAC4C
+_080DA9C8:
+ lsls r1, r2, 24
+ lsrs r0, r1, 28
+ cmp r0, 0x3
+ bne _080DA9DE
+ movs r0, 0x8
+ orrs r0, r2
+ orrs r0, r7
+ mov r3, r12
+ strb r0, [r3]
+ strb r6, [r3, 0x1]
+ b _080DAAFE
+_080DA9DE:
+ lsrs r0, r1, 28
+ cmp r0, 0x1
+ bne _080DA9F0
+ adds r0, r2, 0
+ orrs r0, r7
+ mov r4, r12
+ strb r0, [r4]
+ strb r6, [r4, 0x1]
+ b _080DAAFE
+_080DA9F0:
+ movs r0, 0x8
+ ands r0, r2
+ cmp r0, 0
+ bne _080DA9FA
+ b _080DAAFE
+_080DA9FA:
+ adds r3, r5, 0
+ adds r3, 0x3F
+ ldrb r2, [r3]
+ lsls r1, r2, 31
+ lsrs r1, 31
+ movs r6, 0x1
+ eors r1, r6
+ ands r1, r7
+ movs r0, 0x2
+ negs r0, r0
+ mov r8, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+ lsls r0, 31
+ lsrs r0, 31
+ adds r1, r5, 0
+ adds r1, 0x2A
+ strb r0, [r1]
+ ldrb r0, [r3]
+ movs r1, 0x4
+ orrs r0, r1
+ movs r1, 0x11
+ negs r1, r1
+ ands r0, r1
+ strb r0, [r3]
+ mov r2, r12
+ ldrb r1, [r2]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _080DAAEC
+ ldr r0, _080DAA6C
+ ldr r3, _080DAA70
+ adds r0, r3
+ ldrb r0, [r0]
+ ands r4, r0
+ cmp r4, 0
+ beq _080DAAA4
+ ldrb r1, [r2, 0xE]
+ mov r0, r9
+ ands r0, r1
+ cmp r0, 0
+ bne _080DAA74
+ ldrb r2, [r5, 0x5]
+ lsls r1, r2, 28
+ lsrs r1, 30
+ subs r1, 0x1
+ movs r0, 0x3
+ ands r1, r0
+ lsls r1, 2
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r5, 0x5]
+ b _080DAAD8
+ .align 2, 0
+_080DAA6C: .4byte gMain
+_080DAA70: .4byte 0x0000043d
+_080DAA74:
+ ldrb r2, [r5, 0x5]
+ lsls r1, r2, 28
+ lsrs r1, 30
+ adds r1, 0x1
+ movs r0, 0x3
+ ands r1, r0
+ lsls r1, 2
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r5, 0x5]
+ mov r0, r12
+ ldrb r2, [r0, 0xE]
+ lsls r0, r2, 31
+ lsrs r0, 31
+ eors r0, r6
+ ands r0, r7
+ mov r1, r8
+ ands r1, r2
+ orrs r1, r0
+ mov r2, r12
+ strb r1, [r2, 0xE]
+ b _080DAAEC
+_080DAAA4:
+ mov r3, r12
+ ldrb r1, [r3, 0xE]
+ mov r0, r9
+ ands r0, r1
+ cmp r0, 0
+ bne _080DAACE
+ adds r1, r5, 0
+ adds r1, 0x43
+ ldrb r0, [r1]
+ subs r0, 0xC
+ strb r0, [r1]
+ ldrb r2, [r3, 0xE]
+ lsls r0, r2, 31
+ lsrs r0, 31
+ eors r0, r6
+ ands r0, r7
+ mov r1, r8
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r3, 0xE]
+ b _080DAAEC
+_080DAACE:
+ adds r1, r5, 0
+ adds r1, 0x43
+ ldrb r0, [r1]
+ adds r0, 0xC
+ strb r0, [r1]
+_080DAAD8:
+ mov r4, r12
+ ldrb r2, [r4, 0xE]
+ lsls r0, r2, 31
+ lsrs r0, 31
+ eors r0, r6
+ ands r0, r7
+ mov r1, r8
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r4, 0xE]
+_080DAAEC:
+ mov r0, r12
+ ldrb r1, [r0]
+ movs r0, 0x9
+ negs r0, r0
+ ands r0, r1
+ mov r1, r12
+ strb r0, [r1]
+ ldrh r2, [r1, 0x2]
+ mov r8, r2
+_080DAAFE:
+ mov r3, r12
+ ldrb r0, [r3]
+ movs r1, 0xF
+ ands r1, r0
+ movs r0, 0x20
+ orrs r1, r0
+ strb r1, [r3]
+ b _080DAC52
+_080DAB0E:
+ lsls r1, r2, 24
+ lsrs r0, r1, 28
+ cmp r0, 0x2
+ bne _080DAB20
+ movs r0, 0x8
+ orrs r0, r2
+ mov r4, r12
+ strb r0, [r4]
+ b _080DAC42
+_080DAB20:
+ lsrs r0, r1, 28
+ cmp r0, 0
+ bne _080DAB44
+ lsls r0, r2, 30
+ lsrs r0, 31
+ movs r1, 0x1
+ eors r0, r1
+ ands r0, r7
+ lsls r0, 1
+ movs r1, 0x3
+ negs r1, r1
+ ands r1, r2
+ orrs r1, r0
+ orrs r1, r7
+ mov r0, r12
+ strb r1, [r0]
+ strb r6, [r0, 0x1]
+ b _080DAC42
+_080DAB44:
+ movs r0, 0x8
+ ands r0, r2
+ cmp r0, 0
+ beq _080DAC42
+ adds r3, r5, 0
+ adds r3, 0x3F
+ ldrb r2, [r3]
+ lsls r1, r2, 31
+ lsrs r1, 31
+ movs r4, 0x1
+ eors r1, r4
+ ands r1, r7
+ movs r6, 0x2
+ negs r6, r6
+ adds r0, r6, 0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+ lsls r0, 31
+ lsrs r0, 31
+ adds r1, r5, 0
+ adds r1, 0x2A
+ strb r0, [r1]
+ ldrb r0, [r3]
+ movs r1, 0x4
+ orrs r0, r1
+ movs r1, 0x11
+ negs r1, r1
+ ands r0, r1
+ strb r0, [r3]
+ mov r2, r12
+ ldrb r1, [r2]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _080DAC32
+ ldr r0, _080DABC4
+ ldr r3, _080DABC8
+ adds r0, r3
+ ldrb r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080DABE6
+ ldrb r1, [r2, 0xE]
+ mov r0, r9
+ ands r0, r1
+ cmp r0, 0
+ bne _080DABCC
+ ldrb r2, [r5, 0x5]
+ lsls r1, r2, 28
+ lsrs r1, 30
+ subs r1, 0x1
+ movs r0, 0x3
+ ands r1, r0
+ lsls r1, 2
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r5, 0x5]
+ mov r0, r12
+ ldrb r2, [r0, 0xE]
+ b _080DAC00
+ .align 2, 0
+_080DABC4: .4byte gMain
+_080DABC8: .4byte 0x0000043d
+_080DABCC:
+ ldrb r2, [r5, 0x5]
+ lsls r1, r2, 28
+ lsrs r1, 30
+ adds r1, 0x1
+ movs r0, 0x3
+ ands r1, r0
+ lsls r1, 2
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r5, 0x5]
+ b _080DAC1E
+_080DABE6:
+ mov r0, r12
+ ldrb r1, [r0, 0xE]
+ mov r0, r9
+ ands r0, r1
+ cmp r0, 0
+ bne _080DAC14
+ adds r1, r5, 0
+ adds r1, 0x43
+ ldrb r0, [r1]
+ subs r0, 0xC
+ strb r0, [r1]
+ mov r1, r12
+ ldrb r2, [r1, 0xE]
+_080DAC00:
+ lsls r0, r2, 31
+ lsrs r0, 31
+ eors r0, r4
+ ands r0, r7
+ adds r1, r6, 0
+ ands r1, r2
+ orrs r1, r0
+ mov r2, r12
+ strb r1, [r2, 0xE]
+ b _080DAC32
+_080DAC14:
+ adds r1, r5, 0
+ adds r1, 0x43
+ ldrb r0, [r1]
+ adds r0, 0xC
+ strb r0, [r1]
+_080DAC1E:
+ mov r3, r12
+ ldrb r2, [r3, 0xE]
+ lsls r0, r2, 31
+ lsrs r0, 31
+ eors r0, r4
+ ands r0, r7
+ adds r1, r6, 0
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r3, 0xE]
+_080DAC32:
+ mov r4, r12
+ ldrb r1, [r4]
+ movs r0, 0x9
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r4]
+ ldrh r0, [r4, 0x2]
+ mov r8, r0
+_080DAC42:
+ mov r1, r12
+ ldrb r0, [r1]
+ movs r1, 0xF
+ ands r1, r0
+ movs r0, 0x30
+_080DAC4C:
+ orrs r1, r0
+ mov r2, r12
+ strb r1, [r2]
+_080DAC52:
+ mov r3, r12
+ ldrb r1, [r3]
+ lsls r1, 30
+ lsrs r1, 31
+ mov r0, r12
+ adds r0, 0xC
+ adds r0, r1
+ ldrb r1, [r0]
+ ldr r3, _080DACE0
+ mov r4, r8
+ lsls r0, r4, 1
+ adds r0, r3
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ muls r0, r1
+ asrs r0, 8
+ strh r0, [r5, 0x24]
+ ldrb r2, [r5, 0x3]
+ lsls r2, 26
+ lsrs r2, 27
+ movs r4, 0x24
+ ldrsh r0, [r5, r4]
+ negs r0, r0
+ asrs r0, 1
+ mov r1, r12
+ ldrb r1, [r1, 0xA]
+ adds r0, r1
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 1
+ adds r1, r3
+ ldrh r6, [r1]
+ ldr r1, _080DACE4
+ lsls r2, 3
+ adds r2, r1
+ adds r0, 0x40
+ lsls r0, 1
+ adds r0, r3
+ ldrh r0, [r0]
+ strh r0, [r2, 0x6]
+ strh r0, [r2]
+ strh r6, [r2, 0x2]
+ lsls r0, r6, 16
+ asrs r0, 16
+ negs r0, r0
+ strh r0, [r2, 0x4]
+ mov r2, r12
+ ldrh r0, [r2, 0x6]
+ ldrh r3, [r2, 0x8]
+ adds r0, r3
+ strh r0, [r2, 0x8]
+ lsls r0, 16
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+ movs r4, 0x4
+ ldrsh r0, [r2, r4]
+ movs r1, 0x80
+ lsls r1, 8
+ ands r0, r1
+ cmp r0, 0
+ beq _080DACE8
+ ldrh r0, [r2, 0x4]
+ subs r1, 0x1
+ ands r1, r0
+ ldrh r0, [r2, 0x2]
+ subs r0, r1
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r2, 0x2]
+ b _080DACFE
+ .align 2, 0
+_080DACE0: .4byte gSineTable
+_080DACE4: .4byte gOamMatrices
+_080DACE8:
+ mov r1, r12
+ ldrh r0, [r1, 0x4]
+ ldr r1, _080DAD28
+ ands r1, r0
+ mov r2, r12
+ ldrh r2, [r2, 0x2]
+ adds r1, r2
+ movs r0, 0xFF
+ ands r1, r0
+ mov r3, r12
+ strh r1, [r3, 0x2]
+_080DACFE:
+ movs r4, 0x22
+ ldrsh r1, [r5, r4]
+ movs r2, 0x26
+ ldrsh r0, [r5, r2]
+ adds r1, r0
+ mov r3, r12
+ ldrh r0, [r3, 0xE]
+ lsrs r0, 1
+ cmp r1, r0
+ blt _080DAD1A
+ movs r0, 0
+ strh r0, [r5, 0x2E]
+ ldr r0, _080DAD2C
+ str r0, [r5, 0x1C]
+_080DAD1A:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DAD28: .4byte 0x00007fff
+_080DAD2C: .4byte sub_80DA48C
+ thumb_func_end sub_80DA6F0
+
+ thumb_func_start sub_80DAD30
+sub_80DAD30: @ 80DAD30
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldr r0, _080DAD78
+ ldrb r0, [r0]
+ bl sub_8079ED4
+ movs r1, 0x3
+ ands r1, r0
+ lsls r1, 2
+ ldrb r2, [r4, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r4, 0x5]
+ ldr r5, _080DAD7C
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x20]
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x22]
+ ldr r0, _080DAD80
+ str r0, [r4, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DAD78: .4byte gUnknown_0202F7C9
+_080DAD7C: .4byte gUnknown_0202F7C8
+_080DAD80: .4byte sub_807941C
+ thumb_func_end sub_80DAD30
+
+ thumb_func_start sub_80DAD84
+sub_80DAD84: @ 80DAD84
+ push {r4-r7,lr}
+ adds r4, r0, 0
+ ldr r5, _080DADCC
+ ldrh r0, [r5]
+ strh r0, [r4, 0x30]
+ ldrh r0, [r5, 0x2]
+ strh r0, [r4, 0x32]
+ ldrh r0, [r5, 0x4]
+ strh r0, [r4, 0x34]
+ ldr r0, _080DADD0
+ ldr r1, _080DADD4
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080DAE44
+ ldr r0, _080DADD8
+ ldr r1, _080DADDC
+ ldrb r2, [r1]
+ adds r0, r2, r0
+ ldrb r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080DADE0
+ adds r0, r2, 0
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r5, [r5, 0x6]
+ adds r0, r5
+ b _080DADEE
+ .align 2, 0
+_080DADCC: .4byte gUnknown_03004B00
+_080DADD0: .4byte gMain
+_080DADD4: .4byte 0x0000043d
+_080DADD8: .4byte gUnknown_02024A72
+_080DADDC: .4byte gUnknown_0202F7C9
+_080DADE0:
+ adds r0, r2, 0
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, 0x28
+_080DADEE:
+ strh r0, [r4, 0x3C]
+ ldr r0, _080DAE1C
+ movs r1, 0x8
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ beq _080DAE24
+ ldr r0, _080DAE20
+ ldrb r0, [r0]
+ bl sub_8079ED4
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, 0x1
+ movs r1, 0x3
+ ands r0, r1
+ lsls r0, 2
+ ldrb r2, [r4, 0x5]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r4, 0x5]
+ b _080DAE58
+ .align 2, 0
+_080DAE1C: .4byte gUnknown_03004B00
+_080DAE20: .4byte gUnknown_0202F7C9
+_080DAE24:
+ ldr r0, _080DAE40
+ ldrb r0, [r0]
+ bl sub_8079ED4
+ movs r1, 0x3
+ ands r1, r0
+ lsls r1, 2
+ ldrb r2, [r4, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r4, 0x5]
+ b _080DAE58
+ .align 2, 0
+_080DAE40: .4byte gUnknown_0202F7C9
+_080DAE44:
+ ldr r0, _080DAEFC
+ ldrb r0, [r0]
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r5, [r5, 0x6]
+ adds r0, r5
+ strh r0, [r4, 0x3C]
+_080DAE58:
+ ldr r5, _080DAF00
+ ldrh r3, [r4, 0x30]
+ movs r1, 0xFF
+ ands r1, r3
+ lsls r0, r1, 1
+ adds r0, r5
+ ldrh r0, [r0]
+ movs r2, 0
+ strh r0, [r4, 0x36]
+ adds r1, 0x40
+ lsls r1, 1
+ adds r1, r5
+ ldrh r0, [r1]
+ negs r0, r0
+ strh r0, [r4, 0x38]
+ strh r2, [r4, 0x3A]
+ strh r2, [r4, 0x26]
+ strh r2, [r4, 0x24]
+ ldrb r0, [r4, 0x3]
+ lsls r0, 26
+ lsrs r6, r0, 27
+ lsls r3, 16
+ lsrs r3, 24
+ strh r3, [r4, 0x30]
+ bl Random
+ lsls r0, 16
+ asrs r7, r0, 16
+ movs r0, 0x80
+ lsls r0, 8
+ ands r0, r7
+ cmp r0, 0
+ beq _080DAEA2
+ ldrh r1, [r4, 0x30]
+ movs r0, 0xFF
+ subs r0, r1
+ strh r0, [r4, 0x30]
+_080DAEA2:
+ movs r0, 0x30
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 1
+ adds r0, r5
+ ldrh r0, [r0]
+ ldr r3, _080DAF04
+ lsls r2, r6, 3
+ adds r2, r3
+ adds r1, 0x40
+ lsls r1, 1
+ adds r1, r5
+ ldrh r1, [r1]
+ strh r1, [r2, 0x6]
+ strh r1, [r2]
+ strh r0, [r2, 0x2]
+ lsls r0, 16
+ asrs r0, 16
+ negs r0, r0
+ strh r0, [r2, 0x4]
+ adds r3, r4, 0
+ adds r3, 0x3F
+ ldrb r0, [r3]
+ movs r1, 0x4
+ orrs r0, r1
+ movs r1, 0x11
+ negs r1, r1
+ ands r0, r1
+ strb r0, [r3]
+ movs r0, 0x1
+ ands r0, r7
+ cmp r0, 0
+ beq _080DAEF2
+ adds r2, r4, 0
+ adds r2, 0x2A
+ movs r1, 0x1
+ movs r0, 0x1
+ strb r0, [r2]
+ ldrb r0, [r3]
+ orrs r0, r1
+ strb r0, [r3]
+_080DAEF2:
+ ldr r0, _080DAF08
+ str r0, [r4, 0x1C]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DAEFC: .4byte gUnknown_0202F7C9
+_080DAF00: .4byte gSineTable
+_080DAF04: .4byte gOamMatrices
+_080DAF08: .4byte sub_80DAF0C
+ thumb_func_end sub_80DAD84
+
+ thumb_func_start sub_80DAF0C
+sub_80DAF0C: @ 80DAF0C
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x10
+ adds r4, r0, 0
+ adds r5, r4, 0
+ adds r5, 0x2E
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ movs r1, 0
+ mov r8, r1
+ movs r7, 0
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ ble _080DAFF0
+ movs r2, 0x36
+ ldrsh r1, [r4, r2]
+ movs r2, 0x3A
+ ldrsh r0, [r4, r2]
+ muls r0, r1
+ asrs r6, r0, 8
+ strh r6, [r4, 0x24]
+ movs r0, 0x38
+ ldrsh r1, [r4, r0]
+ movs r2, 0x3A
+ ldrsh r0, [r4, r2]
+ muls r0, r1
+ asrs r3, r0, 8
+ strh r3, [r4, 0x26]
+ ldrh r2, [r4, 0x34]
+ movs r1, 0xFF
+ adds r0, r1, 0
+ ands r0, r2
+ ldrh r2, [r4, 0x3A]
+ adds r0, r2
+ strh r0, [r4, 0x3A]
+ ldrh r2, [r4, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ ands r1, r2
+ cmp r0, r1
+ blt _080DAFF0
+ ldrh r0, [r4, 0x20]
+ adds r0, r6
+ strh r0, [r4, 0x20]
+ ldrh r0, [r4, 0x22]
+ adds r0, r3
+ strh r0, [r4, 0x22]
+ strh r7, [r4, 0x24]
+ strh r7, [r4, 0x26]
+ mov r0, sp
+ adds r1, r5, 0
+ movs r2, 0x10
+ bl memcpy
+ adds r0, r5, 0
+ movs r1, 0
+ movs r2, 0x10
+ bl memset
+ ldrh r0, [r4, 0x22]
+ lsls r0, 8
+ strh r0, [r5, 0x8]
+ mov r0, sp
+ ldrh r0, [r0, 0x6]
+ lsrs r1, r0, 8
+ strh r1, [r5, 0x6]
+ strh r7, [r5, 0x2]
+ mov r0, sp
+ ldrh r0, [r0, 0x2]
+ strh r0, [r5, 0xA]
+ adds r0, r4, 0
+ adds r0, 0x2A
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080DAFC0
+ movs r0, 0x8
+ ands r1, r0
+ cmp r1, 0
+ beq _080DAFB8
+ ldr r0, _080DAFB4
+ b _080DAFCE
+ .align 2, 0
+_080DAFB4: .4byte 0x00008001
+_080DAFB8:
+ ldr r0, _080DAFBC
+ b _080DAFCE
+ .align 2, 0
+_080DAFBC: .4byte 0x00008002
+_080DAFC0:
+ movs r0, 0x8
+ ands r1, r0
+ cmp r1, 0
+ beq _080DAFCC
+ movs r0, 0x1
+ b _080DAFCE
+_080DAFCC:
+ movs r0, 0x2
+_080DAFCE:
+ strh r0, [r5, 0x4]
+ mov r0, sp
+ ldrh r0, [r0, 0x4]
+ lsrs r0, 8
+ strb r0, [r5, 0xC]
+ subs r0, 0x2
+ strb r0, [r5, 0xD]
+ mov r0, sp
+ ldrh r1, [r0, 0xE]
+ lsls r1, 1
+ ldrh r2, [r5, 0xE]
+ movs r0, 0x1
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r5, 0xE]
+ ldr r0, _080DAFFC
+ str r0, [r4, 0x1C]
+_080DAFF0:
+ add sp, 0x10
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DAFFC: .4byte sub_80DA6F0
+ thumb_func_end sub_80DAF0C
+
+ thumb_func_start sub_80DB000
+sub_80DB000: @ 80DB000
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r0, _080DB018
+ movs r1, 0x4
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080DB01C
+ adds r0, r5, 0
+ movs r1, 0
+ bl sub_80787B0
+ b _080DB024
+ .align 2, 0
+_080DB018: .4byte gUnknown_03004B00
+_080DB01C:
+ adds r0, r5, 0
+ movs r1, 0
+ bl sub_8078764
+_080DB024:
+ ldr r4, _080DB08C
+ movs r2, 0x4
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ bne _080DB03C
+ ldr r0, _080DB090
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080DB052
+_080DB03C:
+ movs r1, 0x4
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ bne _080DB058
+ ldr r0, _080DB094
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _080DB058
+_080DB052:
+ ldrh r0, [r5, 0x20]
+ adds r0, 0x8
+ strh r0, [r5, 0x20]
+_080DB058:
+ ldr r4, _080DB08C
+ ldrb r1, [r4, 0x8]
+ adds r0, r5, 0
+ bl SeekSpriteAnim
+ ldrh r0, [r5, 0x20]
+ subs r0, 0x20
+ strh r0, [r5, 0x20]
+ ldr r0, _080DB098
+ strh r0, [r5, 0x30]
+ ldrh r1, [r4, 0x8]
+ movs r0, 0xC
+ adds r2, r0, 0
+ muls r2, r1
+ adds r0, r2, 0
+ ldrh r2, [r5, 0x24]
+ adds r0, r2
+ strh r0, [r5, 0x24]
+ strh r1, [r5, 0x2E]
+ ldrh r0, [r4, 0x6]
+ strh r0, [r5, 0x3C]
+ ldr r0, _080DB09C
+ str r0, [r5, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DB08C: .4byte gUnknown_03004B00
+_080DB090: .4byte gUnknown_0202F7C8
+_080DB094: .4byte gUnknown_0202F7C9
+_080DB098: .4byte 0x00000ccc
+_080DB09C: .4byte sub_80DB0A0
+ thumb_func_end sub_80DB000
+
+ thumb_func_start sub_80DB0A0
+sub_80DB0A0: @ 80DB0A0
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 24
+ ldrh r1, [r4, 0x24]
+ adds r0, r1
+ movs r1, 0
+ strh r0, [r4, 0x24]
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x6
+ bne _080DB0CA
+ strh r1, [r4, 0x2E]
+ strh r1, [r4, 0x24]
+ adds r0, r4, 0
+ bl StartSpriteAnim
+_080DB0CA:
+ ldrh r0, [r4, 0x3C]
+ subs r0, 0x1
+ strh r0, [r4, 0x3C]
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ bne _080DB0E2
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080DB0E2:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80DB0A0
+
+ thumb_func_start sub_80DB0E8
+sub_80DB0E8: @ 80DB0E8
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r6, r0, 0
+ ldr r1, _080DB180
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r7, r0, r1
+ ldrh r0, [r7, 0x8]
+ movs r1, 0x1F
+ ands r0, r1
+ cmp r0, 0
+ bne _080DB162
+ ldr r1, _080DB184
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ movs r1, 0x8
+ ldrsh r0, [r7, r1]
+ movs r5, 0xD
+ negs r5, r5
+ adds r1, r5, 0
+ bl Sin
+ ldr r4, _080DB188
+ strh r0, [r4]
+ movs r1, 0x8
+ ldrsh r0, [r7, r1]
+ adds r1, r5, 0
+ bl Cos
+ strh r0, [r4, 0x2]
+ movs r0, 0x1
+ strh r0, [r4, 0x4]
+ movs r0, 0x3
+ strh r0, [r4, 0x6]
+ ldr r0, _080DB18C
+ mov r8, r0
+ ldr r5, _080DB190
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8077ABC
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl sub_8077ABC
+ adds r2, r0, 0
+ lsls r2, 24
+ lsrs r2, 24
+ mov r0, r8
+ adds r1, r4, 0
+ movs r3, 0x3
+ bl CreateSpriteAndAnimate
+_080DB162:
+ ldrh r0, [r7, 0x8]
+ adds r0, 0x8
+ strh r0, [r7, 0x8]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xFF
+ ble _080DB176
+ adds r0, r6, 0
+ bl move_anim_task_del
+_080DB176:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DB180: .4byte gTasks
+_080DB184: .4byte gUnknown_0202F7B2
+_080DB188: .4byte gUnknown_03004B00
+_080DB18C: .4byte gBattleAnimSpriteTemplate_83DB538
+_080DB190: .4byte gUnknown_0202F7C9
+ thumb_func_end sub_80DB0E8
+
+ thumb_func_start sub_80DB194
+sub_80DB194: @ 80DB194
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080DB1A6
+ cmp r0, 0x1
+ beq _080DB1D8
+ b _080DB1EC
+_080DB1A6:
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_80787B0
+ movs r0, 0
+ bl obj_id_for_side_relative_to_move
+ ldr r2, _080DB1D4
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ adds r1, 0x3E
+ ldrb r0, [r1]
+ movs r2, 0x4
+ orrs r0, r2
+ strb r0, [r1]
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ b _080DB1EC
+ .align 2, 0
+_080DB1D4: .4byte gSprites
+_080DB1D8:
+ adds r0, r4, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _080DB1EC
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080DB1EC:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80DB194
+
+ thumb_func_start sub_80DB1F4
+sub_80DB1F4: @ 80DB1F4
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ beq _080DB22C
+ cmp r0, 0x1
+ bgt _080DB20A
+ cmp r0, 0
+ beq _080DB210
+ b _080DB27E
+_080DB20A:
+ cmp r0, 0x2
+ beq _080DB240
+ b _080DB27E
+_080DB210:
+ ldr r0, _080DB228
+ ldrb r0, [r0]
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x22]
+ negs r0, r0
+ subs r0, 0x20
+ strh r0, [r4, 0x26]
+ b _080DB238
+ .align 2, 0
+_080DB228: .4byte gUnknown_0202F7C9
+_080DB22C:
+ ldrh r0, [r4, 0x26]
+ adds r0, 0xA
+ strh r0, [r4, 0x26]
+ lsls r0, 16
+ cmp r0, 0
+ blt _080DB27E
+_080DB238:
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ b _080DB27E
+_080DB240:
+ ldrh r0, [r4, 0x26]
+ subs r0, 0xA
+ strh r0, [r4, 0x26]
+ movs r2, 0x22
+ ldrsh r0, [r4, r2]
+ movs r2, 0x26
+ ldrsh r1, [r4, r2]
+ adds r0, r1
+ movs r1, 0x20
+ negs r1, r1
+ cmp r0, r1
+ bge _080DB27E
+ movs r0, 0
+ bl obj_id_for_side_relative_to_move
+ ldr r2, _080DB284
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ adds r1, 0x3E
+ ldrb r2, [r1]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1]
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080DB27E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DB284: .4byte gSprites
+ thumb_func_end sub_80DB1F4
+
+ thumb_func_start sub_80DB288
+sub_80DB288: @ 80DB288
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x1
+ bl sub_80787B0
+ ldr r1, _080DB2C4
+ ldrh r0, [r1, 0x4]
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r1, 0x6]
+ strh r0, [r4, 0x30]
+ ldr r0, _080DB2C8
+ str r0, [r4, 0x1C]
+ movs r0, 0
+ bl obj_id_for_side_relative_to_move
+ ldr r2, _080DB2CC
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ adds r1, 0x3E
+ ldrb r0, [r1]
+ movs r2, 0x4
+ orrs r0, r2
+ strb r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DB2C4: .4byte gUnknown_03004B00
+_080DB2C8: .4byte sub_80DB2D0
+_080DB2CC: .4byte gSprites
+ thumb_func_end sub_80DB288
+
+ thumb_func_start sub_80DB2D0
+sub_80DB2D0: @ 80DB2D0
+ push {lr}
+ adds r2, r0, 0
+ ldrh r1, [r2, 0x2E]
+ movs r3, 0x2E
+ ldrsh r0, [r2, r3]
+ cmp r0, 0
+ ble _080DB2E4
+ subs r0, r1, 0x1
+ strh r0, [r2, 0x2E]
+ b _080DB328
+_080DB2E4:
+ movs r1, 0x22
+ ldrsh r0, [r2, r1]
+ movs r3, 0x26
+ ldrsh r1, [r2, r3]
+ adds r0, r1
+ movs r1, 0x20
+ negs r1, r1
+ cmp r0, r1
+ ble _080DB30A
+ ldrh r0, [r2, 0x30]
+ ldrh r1, [r2, 0x32]
+ adds r0, r1
+ strh r0, [r2, 0x32]
+ lsls r0, 16
+ asrs r0, 24
+ ldrh r1, [r2, 0x26]
+ subs r1, r0
+ strh r1, [r2, 0x26]
+ b _080DB328
+_080DB30A:
+ adds r3, r2, 0
+ adds r3, 0x3E
+ ldrb r0, [r3]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r3]
+ ldrh r0, [r2, 0x34]
+ adds r1, r0, 0x1
+ strh r1, [r2, 0x34]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x14
+ ble _080DB328
+ ldr r0, _080DB32C
+ str r0, [r2, 0x1C]
+_080DB328:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DB32C: .4byte sub_80DB330
+ thumb_func_end sub_80DB2D0
+
+ thumb_func_start sub_80DB330
+sub_80DB330: @ 80DB330
+ push {lr}
+ adds r2, r0, 0
+ ldrh r0, [r2, 0x32]
+ lsls r0, 16
+ asrs r0, 24
+ ldrh r1, [r2, 0x26]
+ adds r0, r1
+ strh r0, [r2, 0x26]
+ movs r3, 0x22
+ ldrsh r0, [r2, r3]
+ movs r3, 0x26
+ ldrsh r1, [r2, r3]
+ adds r0, r1
+ movs r1, 0x20
+ negs r1, r1
+ cmp r0, r1
+ ble _080DB360
+ adds r3, r2, 0
+ adds r3, 0x3E
+ ldrb r1, [r3]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r3]
+_080DB360:
+ movs r1, 0x26
+ ldrsh r0, [r2, r1]
+ cmp r0, 0
+ ble _080DB36E
+ adds r0, r2, 0
+ bl move_anim_8072740
+_080DB36E:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80DB330
+
+ thumb_func_start sub_80DB374
+sub_80DB374: @ 80DB374
+ push {r4,r5,lr}
+ sub sp, 0x4
+ adds r5, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ beq _080DB388
+ cmp r0, 0x1
+ beq _080DB3E0
+ b _080DB44C
+_080DB388:
+ ldr r0, _080DB398
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ cmp r0, 0
+ bne _080DB3A0
+ ldr r4, _080DB39C
+ b _080DB3A2
+ .align 2, 0
+_080DB398: .4byte gUnknown_03004B00
+_080DB39C: .4byte gUnknown_0202F7C8
+_080DB3A0:
+ ldr r4, _080DB3DC
+_080DB3A2:
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+ movs r0, 0
+ movs r3, 0x80
+ lsls r3, 2
+ strh r3, [r5, 0x30]
+ movs r2, 0x80
+ lsls r2, 1
+ str r0, [sp]
+ adds r0, r5, 0
+ movs r1, 0
+ bl sub_8078FDC
+ ldrh r0, [r5, 0x2E]
+ adds r0, 0x1
+ strh r0, [r5, 0x2E]
+ b _080DB44C
+ .align 2, 0
+_080DB3DC: .4byte gUnknown_0202F7C9
+_080DB3E0:
+ movs r1, 0x32
+ ldrsh r0, [r5, r1]
+ cmp r0, 0xB
+ bgt _080DB3EE
+ ldrh r0, [r5, 0x30]
+ subs r0, 0x28
+ b _080DB3F2
+_080DB3EE:
+ ldrh r0, [r5, 0x30]
+ adds r0, 0x28
+_080DB3F2:
+ strh r0, [r5, 0x30]
+ ldrh r0, [r5, 0x32]
+ adds r0, 0x1
+ movs r1, 0
+ strh r0, [r5, 0x32]
+ movs r2, 0x80
+ lsls r2, 1
+ movs r0, 0x30
+ ldrsh r3, [r5, r0]
+ str r1, [sp]
+ adds r0, r5, 0
+ bl sub_8078FDC
+ ldrb r1, [r5, 0x3]
+ lsls r1, 26
+ lsrs r1, 27
+ movs r0, 0xF4
+ lsls r0, 6
+ ldr r2, _080DB454
+ lsls r1, 3
+ adds r1, r2
+ movs r2, 0x6
+ ldrsh r1, [r1, r2]
+ bl __divsi3
+ adds r1, r0, 0x1
+ cmp r1, 0x80
+ ble _080DB42C
+ movs r1, 0x80
+_080DB42C:
+ movs r0, 0x40
+ subs r0, r1
+ lsrs r1, r0, 31
+ adds r0, r1
+ asrs r1, r0, 1
+ strh r1, [r5, 0x26]
+ movs r1, 0x32
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x18
+ bne _080DB44C
+ adds r0, r5, 0
+ bl sub_8079098
+ adds r0, r5, 0
+ bl move_anim_8072740
+_080DB44C:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DB454: .4byte gOamMatrices
+ thumb_func_end sub_80DB374
+
+ thumb_func_start sub_80DB458
+sub_80DB458: @ 80DB458
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ bl Random
+ ldr r4, _080DB47C
+ ands r4, r0
+ bl Random
+ movs r1, 0x7F
+ ands r1, r0
+ movs r0, 0x1
+ ands r0, r4
+ cmp r0, 0
+ beq _080DB480
+ movs r2, 0xB8
+ lsls r2, 2
+ adds r0, r4, r2
+ b _080DB488
+ .align 2, 0
+_080DB47C: .4byte 0x000001ff
+_080DB480:
+ movs r2, 0xB8
+ lsls r2, 2
+ adds r0, r2, 0
+ subs r0, r4
+_080DB488:
+ strh r0, [r5, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080DB49C
+ movs r2, 0xE0
+ lsls r2, 2
+ adds r0, r2, 0
+ adds r0, r1, r0
+ b _080DB4A4
+_080DB49C:
+ movs r2, 0xE0
+ lsls r2, 2
+ adds r0, r2, 0
+ subs r0, r1
+_080DB4A4:
+ strh r0, [r5, 0x30]
+ ldr r2, _080DB4CC
+ ldrh r0, [r2]
+ strh r0, [r5, 0x32]
+ lsls r0, 16
+ cmp r0, 0
+ beq _080DB4C0
+ ldrb r0, [r5, 0x3]
+ movs r1, 0x3F
+ negs r1, r1
+ ands r1, r0
+ movs r0, 0x10
+ orrs r1, r0
+ strb r1, [r5, 0x3]
+_080DB4C0:
+ movs r1, 0x2
+ ldrsh r0, [r2, r1]
+ cmp r0, 0
+ bne _080DB4D4
+ ldr r4, _080DB4D0
+ b _080DB4D6
+ .align 2, 0
+_080DB4CC: .4byte gUnknown_03004B00
+_080DB4D0: .4byte gUnknown_0202F7C8
+_080DB4D4:
+ ldr r4, _080DB500
+_080DB4D6:
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, 0x20
+ strh r0, [r5, 0x22]
+ ldr r0, _080DB504
+ str r0, [r5, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DB500: .4byte gUnknown_0202F7C9
+_080DB504: .4byte sub_80DB508
+ thumb_func_end sub_80DB458
+
+ thumb_func_start sub_80DB508
+sub_80DB508: @ 80DB508
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x32
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080DB520
+ ldrh r3, [r4, 0x2E]
+ lsls r0, r3, 16
+ asrs r0, 24
+ ldrh r1, [r4, 0x24]
+ adds r0, r1
+ b _080DB52A
+_080DB520:
+ ldrh r3, [r4, 0x2E]
+ lsls r1, r3, 16
+ asrs r1, 24
+ ldrh r0, [r4, 0x24]
+ subs r0, r1
+_080DB52A:
+ strh r0, [r4, 0x24]
+ ldrh r2, [r4, 0x30]
+ lsls r1, r2, 16
+ asrs r1, 24
+ ldrh r0, [r4, 0x26]
+ subs r0, r1
+ strh r0, [r4, 0x26]
+ strh r3, [r4, 0x2E]
+ adds r0, r2, 0
+ subs r0, 0x20
+ strh r0, [r4, 0x30]
+ lsls r0, r3, 16
+ cmp r0, 0
+ bge _080DB54A
+ movs r0, 0
+ strh r0, [r4, 0x2E]
+_080DB54A:
+ ldrh r0, [r4, 0x34]
+ adds r0, 0x1
+ strh r0, [r4, 0x34]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1F
+ bne _080DB55E
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080DB55E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80DB508
+
+ thumb_func_start sub_80DB564
+sub_80DB564: @ 80DB564
+ movs r1, 0
+ strh r1, [r0, 0x3A]
+ movs r1, 0x40
+ strh r1, [r0, 0x3C]
+ ldr r1, _080DB574
+ str r1, [r0, 0x1C]
+ bx lr
+ .align 2, 0
+_080DB574: .4byte sub_80DB578
+ thumb_func_end sub_80DB564
+
+ thumb_func_start sub_80DB578
+sub_80DB578: @ 80DB578
+ push {lr}
+ adds r3, r0, 0
+ movs r0, 0x2E
+ ldrsh r1, [r3, r0]
+ cmp r1, 0
+ beq _080DB58A
+ cmp r1, 0x1
+ beq _080DB5D8
+ b _080DB5DE
+_080DB58A:
+ ldrh r0, [r3, 0x30]
+ adds r0, 0x1
+ strh r0, [r3, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x8
+ ble _080DB5DE
+ strh r1, [r3, 0x30]
+ movs r1, 0x3E
+ adds r1, r3
+ mov r12, r1
+ ldrb r2, [r1]
+ 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
+ mov r1, r12
+ strb r0, [r1]
+ ldrh r0, [r3, 0x32]
+ adds r0, 0x1
+ strh r0, [r3, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x5
+ ble _080DB5DE
+ ldrb r1, [r1]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _080DB5DE
+ ldrh r0, [r3, 0x2E]
+ adds r0, 0x1
+ strh r0, [r3, 0x2E]
+ b _080DB5DE
+_080DB5D8:
+ adds r0, r3, 0
+ bl move_anim_8072740
+_080DB5DE:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80DB578
+
+ thumb_func_start sub_80DB5E4
+sub_80DB5E4: @ 80DB5E4
+ push {r4-r6,lr}
+ mov r6, r9
+ mov r5, r8
+ push {r5,r6}
+ sub sp, 0x4
+ mov r8, r0
+ ldrh r4, [r0, 0x20]
+ ldrh r5, [r0, 0x22]
+ ldr r6, _080DB698
+ ldrb r0, [r6]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ mov r1, r8
+ strh r0, [r1, 0x20]
+ ldrb r0, [r6]
+ movs r1, 0x3
+ bl sub_8077ABC
+ adds r6, r0, 0
+ lsls r6, 24
+ lsrs r6, 24
+ mov r2, r8
+ strh r6, [r2, 0x22]
+ ldrh r0, [r2, 0x20]
+ mov r9, r0
+ mov r1, r9
+ lsls r0, r1, 4
+ strh r0, [r2, 0x36]
+ lsls r0, r6, 4
+ strh r0, [r2, 0x38]
+ lsls r4, 16
+ asrs r4, 16
+ movs r1, 0x20
+ ldrsh r0, [r2, r1]
+ subs r0, r4, r0
+ lsls r0, 4
+ movs r1, 0xC
+ bl __divsi3
+ mov r2, r8
+ strh r0, [r2, 0x3A]
+ lsls r5, 16
+ asrs r5, 16
+ movs r1, 0x22
+ ldrsh r0, [r2, r1]
+ subs r0, r5, r0
+ lsls r0, 4
+ movs r1, 0xC
+ bl __divsi3
+ mov r2, r8
+ strh r0, [r2, 0x3C]
+ mov r0, r9
+ subs r4, r0
+ lsls r4, 16
+ asrs r4, 16
+ subs r5, r6
+ lsls r5, 16
+ asrs r5, 16
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_80790F0
+ lsls r0, 16
+ movs r1, 0xC0
+ lsls r1, 24
+ adds r0, r1
+ lsrs r0, 16
+ movs r3, 0x80
+ lsls r3, 1
+ str r0, [sp]
+ mov r0, r8
+ movs r1, 0x1
+ adds r2, r3, 0
+ bl sub_8078FDC
+ ldr r0, _080DB69C
+ mov r2, r8
+ str r0, [r2, 0x1C]
+ add sp, 0x4
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DB698: .4byte gUnknown_0202F7C8
+_080DB69C: .4byte sub_80DB6A0
+ thumb_func_end sub_80DB5E4
+
+ thumb_func_start sub_80DB6A0
+sub_80DB6A0: @ 80DB6A0
+ push {lr}
+ adds r2, r0, 0
+ ldrh r0, [r2, 0x3A]
+ ldrh r1, [r2, 0x36]
+ adds r0, r1
+ strh r0, [r2, 0x36]
+ ldrh r1, [r2, 0x3C]
+ ldrh r3, [r2, 0x38]
+ adds r1, r3
+ strh r1, [r2, 0x38]
+ lsls r0, 16
+ asrs r0, 20
+ strh r0, [r2, 0x20]
+ lsls r1, 16
+ asrs r3, r1, 20
+ strh r3, [r2, 0x22]
+ adds r0, 0x2D
+ lsls r0, 16
+ movs r1, 0xA5
+ lsls r1, 17
+ cmp r0, r1
+ bhi _080DB6DA
+ adds r1, r3, 0
+ cmp r1, 0x9D
+ bgt _080DB6DA
+ movs r0, 0x2D
+ negs r0, r0
+ cmp r1, r0
+ bge _080DB6E0
+_080DB6DA:
+ adds r0, r2, 0
+ bl move_anim_8074EE0
+_080DB6E0:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80DB6A0
+
+ thumb_func_start unref_sub_80DB6E4
+unref_sub_80DB6E4: @ 80DB6E4
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _080DB714
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080DB71C
+ movs r0, 0
+ bl obj_id_for_side_relative_to_move
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080DB718
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ adds r1, 0x3E
+ ldrb r0, [r1]
+ movs r2, 0x4
+ orrs r0, r2
+ b _080DB73A
+ .align 2, 0
+_080DB714: .4byte gUnknown_03004B00
+_080DB718: .4byte gSprites
+_080DB71C:
+ movs r0, 0
+ bl obj_id_for_side_relative_to_move
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080DB748
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ adds r1, 0x3E
+ ldrb r2, [r1]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+_080DB73A:
+ strb r0, [r1]
+ adds r0, r4, 0
+ bl move_anim_task_del
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DB748: .4byte gSprites
+ thumb_func_end unref_sub_80DB6E4
+
+ thumb_func_start sub_80DB74C
+sub_80DB74C: @ 80DB74C
+ push {r4-r7,lr}
+ adds r6, r0, 0
+ ldr r0, _080DB804
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080DB768
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080DB77E
+_080DB768:
+ ldrb r1, [r6, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x8
+ orrs r0, r1
+ strb r0, [r6, 0x5]
+ adds r1, r6, 0
+ adds r1, 0x43
+ movs r0, 0xC8
+ strb r0, [r1]
+_080DB77E:
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080DB7DA
+ movs r0, 0x1
+ bl battle_get_side_with_given_state
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r7, r4, 0
+ adds r0, r4, 0
+ bl battle_get_per_side_status_permutated
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x1
+ eors r0, r1
+ negs r1, r0
+ orrs r1, r0
+ lsrs r5, r1, 31
+ adds r0, r4, 0
+ bl b_side_obj__get_some_boolean
+ lsls r0, 24
+ cmp r0, 0
+ beq _080DB7BC
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_8076034
+_080DB7BC:
+ movs r0, 0x2
+ adds r4, r0, 0
+ eors r4, r7
+ adds r0, r4, 0
+ bl b_side_obj__get_some_boolean
+ lsls r0, 24
+ cmp r0, 0
+ beq _080DB7DA
+ movs r0, 0x1
+ eors r5, r0
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_8076034
+_080DB7DA:
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080DB810
+ bl battle_type_is_double
+ lsls r0, 24
+ cmp r0, 0
+ beq _080DB810
+ ldr r0, _080DB804
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _080DB808
+ movs r0, 0x48
+ strh r0, [r6, 0x20]
+ movs r0, 0x50
+ b _080DB84A
+ .align 2, 0
+_080DB804: .4byte gUnknown_0202F7C8
+_080DB808:
+ movs r0, 0xB0
+ strh r0, [r6, 0x20]
+ movs r0, 0x28
+ b _080DB84A
+_080DB810:
+ ldr r5, _080DB880
+ ldrb r0, [r5]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080DB826
+ ldr r1, _080DB884
+ ldrh r0, [r1]
+ negs r0, r0
+ strh r0, [r1]
+_080DB826:
+ ldrb r0, [r5]
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ ldr r4, _080DB884
+ lsrs r0, 24
+ ldrh r1, [r4]
+ adds r0, r1
+ strh r0, [r6, 0x20]
+ ldrb r0, [r5]
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r4, [r4, 0x2]
+ adds r0, r4
+_080DB84A:
+ strh r0, [r6, 0x22]
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080DB85C
+ ldrh r0, [r6, 0x22]
+ adds r0, 0x9
+ strh r0, [r6, 0x22]
+_080DB85C:
+ ldr r0, _080DB884
+ ldrh r0, [r0, 0x4]
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r0, 20
+ movs r1, 0x80
+ lsls r1, 1
+ adds r0, r1
+ strh r0, [r6, 0x2E]
+ ldr r1, _080DB888
+ str r1, [r6, 0x1C]
+ adds r0, r6, 0
+ bl _call_via_r1
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DB880: .4byte gUnknown_0202F7C8
+_080DB884: .4byte gUnknown_03004B00
+_080DB888: .4byte sub_80DB88C
+ thumb_func_end sub_80DB74C
+
+ thumb_func_start sub_80DB88C
+sub_80DB88C: @ 80DB88C
+ push {lr}
+ adds r3, r0, 0
+ ldr r2, _080DB8B0
+ ldrh r1, [r3, 0x34]
+ movs r0, 0x10
+ subs r0, r1
+ lsls r0, 8
+ orrs r0, r1
+ strh r0, [r2]
+ ldrh r1, [r3, 0x34]
+ movs r2, 0x34
+ ldrsh r0, [r3, r2]
+ cmp r0, 0xD
+ bne _080DB8B8
+ ldr r0, _080DB8B4
+ str r0, [r3, 0x1C]
+ b _080DB8BC
+ .align 2, 0
+_080DB8B0: .4byte REG_BLDALPHA
+_080DB8B4: .4byte sub_80DB8C0
+_080DB8B8:
+ adds r0, r1, 0x1
+ strh r0, [r3, 0x34]
+_080DB8BC:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80DB88C
+
+ thumb_func_start sub_80DB8C0
+sub_80DB8C0: @ 80DB8C0
+ push {r4-r7,lr}
+ adds r3, r0, 0
+ ldrh r0, [r3, 0x30]
+ adds r0, 0x1
+ strh r0, [r3, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x2
+ bne _080DB91E
+ movs r0, 0
+ strh r0, [r3, 0x30]
+ ldrh r4, [r3, 0x2E]
+ ldr r1, _080DB924
+ adds r0, r4, 0
+ adds r0, 0x8
+ lsls r0, 1
+ adds r0, r1
+ ldrh r7, [r0]
+ movs r5, 0x8
+ adds r6, r1, 0
+ adds r1, r4, 0x7
+ lsls r0, r4, 1
+ adds r0, r6
+ adds r2, r0, 0
+ adds r2, 0x10
+ lsls r1, 1
+ adds r1, r6
+_080DB8F6:
+ ldrh r0, [r1]
+ strh r0, [r2]
+ subs r1, 0x2
+ subs r2, 0x2
+ subs r5, 0x1
+ cmp r5, 0
+ bgt _080DB8F6
+ adds r0, r4, 0x1
+ lsls r0, 1
+ adds r0, r6
+ strh r7, [r0]
+ ldrh r0, [r3, 0x32]
+ adds r0, 0x1
+ strh r0, [r3, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x10
+ bne _080DB91E
+ ldr r0, _080DB928
+ str r0, [r3, 0x1C]
+_080DB91E:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DB924: .4byte gPlttBufferFaded
+_080DB928: .4byte sub_80DB92C
+ thumb_func_end sub_80DB8C0
+
+ thumb_func_start sub_80DB92C
+sub_80DB92C: @ 80DB92C
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ ldr r2, _080DB9D4
+ ldrh r1, [r5, 0x34]
+ movs r0, 0x10
+ subs r0, r1
+ lsls r0, 8
+ orrs r0, r1
+ strh r0, [r2]
+ ldrh r0, [r5, 0x34]
+ subs r0, 0x1
+ strh r0, [r5, 0x34]
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ bne _080DB9CC
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080DB9BC
+ movs r0, 0x1
+ bl battle_get_side_with_given_state
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r6, r4, 0
+ adds r0, r4, 0
+ bl b_side_obj__get_some_boolean
+ lsls r0, 24
+ cmp r0, 0
+ beq _080DB98E
+ ldr r2, _080DB9D8
+ ldr r0, _080DB9DC
+ adds r0, r4, r0
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ adds r0, 0x3E
+ ldrb r2, [r0]
+ movs r1, 0x5
+ negs r1, r1
+ ands r1, r2
+ strb r1, [r0]
+_080DB98E:
+ movs r0, 0x2
+ adds r4, r0, 0
+ eors r4, r6
+ adds r0, r4, 0
+ bl b_side_obj__get_some_boolean
+ lsls r0, 24
+ cmp r0, 0
+ beq _080DB9BC
+ ldr r2, _080DB9D8
+ ldr r0, _080DB9DC
+ adds r0, r4, r0
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ adds r0, 0x3E
+ ldrb r2, [r0]
+ movs r1, 0x5
+ negs r1, r1
+ ands r1, r2
+ strb r1, [r0]
+_080DB9BC:
+ adds r2, r5, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r0, _080DB9E0
+ str r0, [r5, 0x1C]
+_080DB9CC:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DB9D4: .4byte REG_BLDALPHA
+_080DB9D8: .4byte gSprites
+_080DB9DC: .4byte gUnknown_02024BE0
+_080DB9E0: .4byte sub_80DB9E4
+ thumb_func_end sub_80DB92C
+
+ thumb_func_start sub_80DB9E4
+sub_80DB9E4: @ 80DB9E4
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080DBA3C
+ movs r0, 0x1
+ bl battle_get_side_with_given_state
+ lsls r0, 24
+ lsrs r0, 24
+ adds r4, r0, 0
+ bl battle_get_per_side_status_permutated
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x1
+ eors r0, r1
+ negs r1, r0
+ orrs r1, r0
+ lsrs r5, r1, 31
+ adds r0, r4, 0
+ bl b_side_obj__get_some_boolean
+ lsls r0, 24
+ cmp r0, 0
+ beq _080DBA22
+ adds r0, r5, 0
+ bl sub_8076464
+_080DBA22:
+ movs r0, 0x2
+ eors r4, r0
+ adds r0, r4, 0
+ bl b_side_obj__get_some_boolean
+ lsls r0, 24
+ cmp r0, 0
+ beq _080DBA3C
+ movs r0, 0x1
+ eors r5, r0
+ adds r0, r5, 0
+ bl sub_8076464
+_080DBA3C:
+ ldr r0, _080DBA48
+ str r0, [r6, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DBA48: .4byte move_anim_8072740
+ thumb_func_end sub_80DB9E4
+
+ thumb_func_start sub_80DBA4C
+sub_80DBA4C: @ 80DBA4C
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080DBAD8
+ ldr r5, _080DBA98
+ movs r1, 0x6
+ ldrsh r0, [r5, r1]
+ movs r6, 0
+ cmp r0, 0
+ bne _080DBA66
+ movs r6, 0x1
+_080DBA66:
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080DBAAE
+ bl battle_type_is_double
+ lsls r0, 24
+ cmp r0, 0
+ beq _080DBAAE
+ ldr r0, _080DBA9C
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _080DBAA0
+ ldrh r0, [r5]
+ movs r1, 0x48
+ subs r1, r0
+ strh r1, [r4, 0x20]
+ ldrh r0, [r5, 0x2]
+ adds r0, 0x50
+ strh r0, [r4, 0x22]
+ b _080DBAD0
+ .align 2, 0
+_080DBA98: .4byte gUnknown_03004B00
+_080DBA9C: .4byte gUnknown_0202F7C8
+_080DBAA0:
+ ldrh r0, [r5]
+ adds r0, 0xB0
+ strh r0, [r4, 0x20]
+ ldrh r0, [r5, 0x2]
+ adds r0, 0x28
+ strh r0, [r4, 0x22]
+ b _080DBAD0
+_080DBAAE:
+ ldr r0, _080DBAC4
+ movs r1, 0x4
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080DBAC8
+ adds r0, r4, 0
+ adds r1, r6, 0
+ bl sub_80787B0
+ b _080DBAD0
+ .align 2, 0
+_080DBAC4: .4byte gUnknown_03004B00
+_080DBAC8:
+ adds r0, r4, 0
+ adds r1, r6, 0
+ bl sub_8078764
+_080DBAD0:
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ b _080DBAEC
+_080DBAD8:
+ adds r0, r4, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x30
+ ands r0, r1
+ cmp r0, 0
+ beq _080DBAEC
+ adds r0, r4, 0
+ bl move_anim_8074EE0
+_080DBAEC:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80DBA4C
+
+ thumb_func_start sub_80DBAF4
+sub_80DBAF4: @ 80DBAF4
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r4, _080DBB3C
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080DBB44
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl StartSpriteAnim
+ ldrh r0, [r5, 0x20]
+ subs r0, 0x28
+ strh r0, [r5, 0x20]
+ ldrh r0, [r5, 0x22]
+ adds r0, 0xA
+ strh r0, [r5, 0x22]
+ ldr r0, _080DBB40
+ b _080DBB52
+ .align 2, 0
+_080DBB3C: .4byte gUnknown_0202F7C8
+_080DBB40: .4byte 0x0000ffff
+_080DBB44:
+ ldrh r0, [r5, 0x20]
+ adds r0, 0x28
+ strh r0, [r5, 0x20]
+ ldrh r0, [r5, 0x22]
+ subs r0, 0xA
+ strh r0, [r5, 0x22]
+ movs r0, 0x1
+_080DBB52:
+ strh r0, [r5, 0x30]
+ ldr r1, _080DBB68
+ adds r0, r5, 0
+ bl oamt_set_x3A_32
+ ldr r0, _080DBB6C
+ str r0, [r5, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DBB68: .4byte move_anim_8072740
+_080DBB6C: .4byte sub_8078600
+ thumb_func_end sub_80DBAF4
+
+ thumb_func_start sub_80DBB70
+sub_80DBB70: @ 80DBB70
+ push {r4-r7,lr}
+ adds r5, r0, 0
+ ldr r6, _080DBBF4
+ ldrb r0, [r6]
+ movs r1, 0x1
+ bl sub_807A100
+ lsls r0, 16
+ asrs r1, r0, 16
+ lsrs r0, 31
+ adds r1, r0
+ lsls r1, 15
+ lsrs r4, r1, 16
+ ldrb r0, [r6]
+ movs r1, 0
+ bl sub_807A100
+ lsls r0, 16
+ asrs r1, r0, 16
+ lsrs r0, 31
+ adds r1, r0
+ asrs r1, 1
+ negs r1, r1
+ lsls r1, 16
+ lsrs r7, r1, 16
+ ldrb r0, [r6]
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080DBBB6
+ lsls r0, r4, 16
+ negs r0, r0
+ lsrs r4, r0, 16
+_080DBBB6:
+ ldrb r0, [r6]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, r4
+ strh r0, [r5, 0x20]
+ ldrb r0, [r6]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, r7
+ strh r0, [r5, 0x22]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xF
+ bgt _080DBBE2
+ movs r0, 0x10
+ strh r0, [r5, 0x22]
+_080DBBE2:
+ ldr r1, _080DBBF8
+ adds r0, r5, 0
+ bl oamt_set_x3A_32
+ ldr r0, _080DBBFC
+ str r0, [r5, 0x1C]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DBBF4: .4byte gUnknown_0202F7C8
+_080DBBF8: .4byte sub_80DBC00
+_080DBBFC: .4byte sub_8078600
+ thumb_func_end sub_80DBB70
+
+ thumb_func_start sub_80DBC00
+sub_80DBC00: @ 80DBC00
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrb r1, [r4, 0x1]
+ movs r0, 0x4
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r4, 0x1]
+ ldr r0, _080DBC2C
+ str r0, [r4, 0x10]
+ movs r0, 0
+ strh r0, [r4, 0x2E]
+ adds r0, r4, 0
+ bl InitSpriteAffineAnim
+ ldr r0, _080DBC30
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DBC2C: .4byte gUnknown_083DA888
+_080DBC30: .4byte sub_80DBC34
+ thumb_func_end sub_80DBC00
+
+ thumb_func_start sub_80DBC34
+sub_80DBC34: @ 80DBC34
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080DBC46
+ cmp r0, 0x1
+ beq _080DBC74
+ b _080DBC8C
+_080DBC46:
+ adds r0, r4, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _080DBC8C
+ ldrb r0, [r4, 0x3]
+ lsls r0, 26
+ lsrs r0, 27
+ bl FreeOamMatrix
+ ldrb r1, [r4, 0x1]
+ movs r0, 0x4
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r4, 0x1]
+ movs r0, 0x12
+ strh r0, [r4, 0x30]
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ b _080DBC8C
+_080DBC74:
+ ldrh r0, [r4, 0x30]
+ subs r0, 0x1
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ bne _080DBC8C
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080DBC8C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80DBC34
+
+ thumb_func_start sub_80DBC94
+sub_80DBC94: @ 80DBC94
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ ldr r0, _080DBCC4
+ adds r4, r0
+ movs r0, 0
+ bl obj_id_for_side_relative_to_move
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ strh r1, [r4, 0x8]
+ ldr r2, _080DBCC8
+ adds r0, r4, 0
+ bl sub_80798F4
+ ldr r0, _080DBCCC
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DBCC4: .4byte gTasks
+_080DBCC8: .4byte gUnknown_083DA8A4
+_080DBCCC: .4byte sub_80DBCD0
+ thumb_func_end sub_80DBC94
+
+ thumb_func_start sub_80DBCD0
+sub_80DBCD0: @ 80DBCD0
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ ldr r1, _080DBCF8
+ adds r0, r1
+ bl sub_807992C
+ lsls r0, 24
+ cmp r0, 0
+ bne _080DBCF0
+ adds r0, r4, 0
+ bl move_anim_task_del
+_080DBCF0:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DBCF8: .4byte gTasks
+ thumb_func_end sub_80DBCD0
+
+ thumb_func_start sub_80DBCFC
+sub_80DBCFC: @ 80DBCFC
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _080DBD48
+ adds r4, r1, r0
+ movs r0, 0
+ bl obj_id_for_side_relative_to_move
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0
+ strh r0, [r4, 0x8]
+ strh r1, [r4, 0xA]
+ strh r1, [r4, 0xC]
+ ldr r0, _080DBD4C
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ movs r1, 0x8
+ cmp r0, 0
+ beq _080DBD30
+ movs r1, 0x4
+_080DBD30:
+ strh r1, [r4, 0xE]
+ ldrb r1, [r4, 0x8]
+ ldr r2, _080DBD50
+ adds r0, r4, 0
+ bl sub_80798F4
+ ldr r0, _080DBD54
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DBD48: .4byte gTasks
+_080DBD4C: .4byte gUnknown_0202F7C8
+_080DBD50: .4byte gUnknown_083DA8C4
+_080DBD54: .4byte sub_80DBD58
+ thumb_func_end sub_80DBCFC
+
+ thumb_func_start sub_80DBD58
+sub_80DBD58: @ 80DBD58
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, _080DBD78
+ adds r4, r0, r1
+ movs r1, 0xA
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080DBD7C
+ cmp r0, 0x1
+ beq _080DBD98
+ b _080DBDF6
+ .align 2, 0
+_080DBD78: .4byte gTasks
+_080DBD7C:
+ adds r0, r4, 0
+ bl sub_807992C
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x1
+ strh r0, [r4, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x13
+ ble _080DBDF6
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ b _080DBDF6
+_080DBD98:
+ movs r1, 0xE
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080DBDC0
+ ldr r2, _080DBDBC
+ movs r0, 0x8
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r0, 0x26]
+ subs r1, 0x8
+ strh r1, [r0, 0x26]
+ ldrh r0, [r4, 0xE]
+ subs r0, 0x1
+ strh r0, [r4, 0xE]
+ b _080DBDF6
+ .align 2, 0
+_080DBDBC: .4byte gSprites
+_080DBDC0:
+ ldr r3, _080DBDFC
+ movs r0, 0x8
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+ movs r0, 0x8
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ movs r1, 0x88
+ lsls r1, 1
+ strh r1, [r0, 0x20]
+ ldrb r0, [r4, 0x8]
+ bl sub_8078F40
+ adds r0, r5, 0
+ bl move_anim_task_del
+_080DBDF6:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DBDFC: .4byte gSprites
+ thumb_func_end sub_80DBD58
+
+ thumb_func_start sub_80DBE00
+sub_80DBE00: @ 80DBE00
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _080DBE84
+ adds r5, r1, r0
+ movs r0, 0
+ movs r7, 0x10
+ strh r7, [r5, 0xE]
+ strh r0, [r5, 0x10]
+ ldr r4, _080DBE88
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x24]
+ ldrb r0, [r4]
+ movs r1, 0x1
+ bl sub_807A100
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x3
+ bl __divsi3
+ lsls r0, 16
+ lsrs r6, r0, 16
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_807A100
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x3
+ bl __divsi3
+ lsls r0, 16
+ lsrs r0, 16
+ adds r1, r0, 0
+ cmp r0, r6
+ bcs _080DBE6A
+ adds r1, r6, 0
+_080DBE6A:
+ strh r1, [r5, 0x20]
+ ldr r1, _080DBE8C
+ movs r2, 0xFD
+ lsls r2, 6
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r0, _080DBE90
+ strh r7, [r0]
+ ldr r0, _080DBE94
+ str r0, [r5]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DBE84: .4byte gTasks
+_080DBE88: .4byte gUnknown_0202F7C8
+_080DBE8C: .4byte REG_BLDCNT
+_080DBE90: .4byte REG_BLDALPHA
+_080DBE94: .4byte sub_80DBE98
+ thumb_func_end sub_80DBE00
+
+ thumb_func_start sub_80DBE98
+sub_80DBE98: @ 80DBE98
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ ldr r1, _080DBEBC
+ adds r4, r0, r1
+ movs r0, 0x8
+ ldrsh r1, [r4, r0]
+ cmp r1, 0x1
+ beq _080DBF98
+ cmp r1, 0x1
+ bgt _080DBEC0
+ cmp r1, 0
+ beq _080DBECE
+ b _080DC014
+ .align 2, 0
+_080DBEBC: .4byte gTasks
+_080DBEC0:
+ cmp r1, 0x2
+ bne _080DBEC6
+ b _080DBFF4
+_080DBEC6:
+ cmp r1, 0x3
+ bne _080DBECC
+ b _080DC004
+_080DBECC:
+ b _080DC014
+_080DBECE:
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x8
+ bgt _080DBEDE
+ b _080DC014
+_080DBEDE:
+ strh r1, [r4, 0xA]
+ ldr r0, _080DBF1C
+ movs r2, 0x22
+ ldrsh r1, [r4, r2]
+ movs r3, 0x24
+ ldrsh r2, [r4, r3]
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r2, r0, 24
+ movs r0, 0xC
+ ldrsh r1, [r4, r0]
+ adds r1, 0x8
+ lsls r1, 1
+ adds r0, r4, 0
+ adds r0, 0x8
+ adds r0, r1
+ strh r2, [r0]
+ cmp r2, 0x40
+ beq _080DBF82
+ movs r1, 0xC
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ beq _080DBF3C
+ cmp r0, 0x1
+ bgt _080DBF20
+ cmp r0, 0
+ beq _080DBF2A
+ b _080DBF82
+ .align 2, 0
+_080DBF1C: .4byte gSpriteTemplate_83DA8DC
+_080DBF20:
+ cmp r0, 0x2
+ beq _080DBF54
+ cmp r0, 0x3
+ beq _080DBF6C
+ b _080DBF82
+_080DBF2A:
+ ldr r0, _080DBF38
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r0
+ ldrh r0, [r4, 0x20]
+ b _080DBF7A
+ .align 2, 0
+_080DBF38: .4byte gSprites
+_080DBF3C:
+ ldr r0, _080DBF50
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r0
+ ldrh r0, [r4, 0x20]
+ negs r0, r0
+ strh r0, [r1, 0x24]
+ ldrh r0, [r4, 0x20]
+ b _080DBF80
+ .align 2, 0
+_080DBF50: .4byte gSprites
+_080DBF54:
+ ldr r1, _080DBF68
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r1
+ ldrh r1, [r4, 0x20]
+ strh r1, [r0, 0x24]
+ ldrh r1, [r4, 0x20]
+ strh r1, [r0, 0x26]
+ b _080DBF82
+ .align 2, 0
+_080DBF68: .4byte gSprites
+_080DBF6C:
+ ldr r0, _080DBF94
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r0
+ ldrh r0, [r4, 0x20]
+ negs r0, r0
+_080DBF7A:
+ strh r0, [r1, 0x24]
+ ldrh r0, [r4, 0x20]
+ negs r0, r0
+_080DBF80:
+ strh r0, [r1, 0x26]
+_080DBF82:
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x1
+ strh r0, [r4, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x5
+ bne _080DC014
+ b _080DBFF4
+ .align 2, 0
+_080DBF94: .4byte gSprites
+_080DBF98:
+ ldrh r0, [r4, 0xA]
+ ands r1, r0
+ cmp r1, 0
+ beq _080DBFA8
+ ldrh r0, [r4, 0xE]
+ subs r0, 0x1
+ strh r0, [r4, 0xE]
+ b _080DBFAE
+_080DBFA8:
+ ldrh r0, [r4, 0x10]
+ adds r0, 0x1
+ strh r0, [r4, 0x10]
+_080DBFAE:
+ ldr r2, _080DBFFC
+ ldrh r0, [r4, 0x10]
+ lsls r0, 8
+ ldrh r1, [r4, 0xE]
+ orrs r0, r1
+ strh r0, [r2]
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x20
+ bne _080DC014
+ movs r5, 0x8
+ adds r6, r4, 0
+ adds r6, 0x8
+_080DBFCE:
+ lsls r0, r5, 1
+ adds r1, r6, r0
+ movs r2, 0
+ ldrsh r0, [r1, r2]
+ cmp r0, 0x40
+ beq _080DBFEA
+ adds r1, r0, 0
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080DC000
+ adds r0, r1
+ bl DestroySprite
+_080DBFEA:
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0xC
+ bls _080DBFCE
+_080DBFF4:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _080DC014
+ .align 2, 0
+_080DBFFC: .4byte REG_BLDALPHA
+_080DC000: .4byte gSprites
+_080DC004:
+ ldr r0, _080DC01C
+ movs r1, 0
+ strh r1, [r0]
+ subs r0, 0x2
+ strh r1, [r0]
+ adds r0, r2, 0
+ bl move_anim_task_del
+_080DC014:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DC01C: .4byte REG_BLDALPHA
+ thumb_func_end sub_80DBE98
+
+ thumb_func_start sub_80DC020
+sub_80DC020: @ 80DC020
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r0, 0x30
+ ldrsh r1, [r4, r0]
+ movs r2, 0x2E
+ ldrsh r0, [r4, r2]
+ subs r0, 0xA
+ cmp r1, r0
+ ble _080DC04A
+ ldrh r0, [r4, 0x30]
+ movs r1, 0x1
+ ands r1, r0
+ adds r3, r4, 0
+ adds r3, 0x3E
+ lsls r1, 2
+ ldrb r2, [r3]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+_080DC04A:
+ movs r0, 0x30
+ ldrsh r1, [r4, r0]
+ movs r2, 0x2E
+ ldrsh r0, [r4, r2]
+ cmp r1, r0
+ bne _080DC05C
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080DC05C:
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80DC020
+
+ thumb_func_start sub_80DC068
+sub_80DC068: @ 80DC068
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ ldr r6, _080DC0A4
+ movs r1, 0
+ ldrsh r0, [r6, r1]
+ cmp r0, 0
+ bne _080DC094
+ ldr r4, _080DC0A8
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+_080DC094:
+ ldrh r0, [r6, 0x2]
+ strh r0, [r5, 0x2E]
+ ldr r0, _080DC0AC
+ str r0, [r5, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DC0A4: .4byte gUnknown_03004B00
+_080DC0A8: .4byte gUnknown_0202F7C8
+_080DC0AC: .4byte sub_80DC020
+ thumb_func_end sub_80DC068
+
+ thumb_func_start sub_80DC0B0
+sub_80DC0B0: @ 80DC0B0
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _080DC10C
+ adds r5, r1, r0
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080DC154
+ ldr r0, _080DC110
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0x1
+ bne _080DC120
+ ldr r0, _080DC114
+ strh r0, [r5, 0x1C]
+ ldr r4, _080DC118
+ ldrb r0, [r4]
+ movs r1, 0x5
+ bl sub_807A100
+ subs r0, 0x8
+ strh r0, [r5, 0x1E]
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_807A100
+ adds r0, 0x8
+ strh r0, [r5, 0x20]
+ ldr r4, _080DC11C
+ ldrb r0, [r4]
+ movs r1, 0x5
+ bl sub_807A100
+ subs r0, 0x8
+ strh r0, [r5, 0x22]
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_807A100
+ adds r0, 0x8
+ b _080DC1DE
+ .align 2, 0
+_080DC10C: .4byte gTasks
+_080DC110: .4byte gUnknown_03004B00
+_080DC114: .4byte 0x0000fff6
+_080DC118: .4byte gUnknown_0202F7C9
+_080DC11C: .4byte gUnknown_0202F7C8
+_080DC120:
+ movs r0, 0xA
+ strh r0, [r5, 0x1C]
+ ldr r4, _080DC14C
+ ldrb r0, [r4]
+ movs r1, 0x4
+ bl sub_807A100
+ adds r0, 0x8
+ strh r0, [r5, 0x1E]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_807A100
+ subs r0, 0x8
+ strh r0, [r5, 0x20]
+ ldr r4, _080DC150
+ ldrb r0, [r4]
+ movs r1, 0x4
+ bl sub_807A100
+ adds r0, 0x8
+ b _080DC1D2
+ .align 2, 0
+_080DC14C: .4byte gUnknown_0202F7C8
+_080DC150: .4byte gUnknown_0202F7C9
+_080DC154:
+ ldr r0, _080DC198
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0x1
+ bne _080DC1A8
+ ldr r0, _080DC19C
+ strh r0, [r5, 0x1C]
+ ldr r4, _080DC1A0
+ ldrb r0, [r4]
+ movs r1, 0x4
+ bl sub_807A100
+ adds r0, 0x8
+ strh r0, [r5, 0x1E]
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_807A100
+ adds r0, 0x8
+ strh r0, [r5, 0x20]
+ ldr r4, _080DC1A4
+ ldrb r0, [r4]
+ movs r1, 0x4
+ bl sub_807A100
+ adds r0, 0x8
+ strh r0, [r5, 0x22]
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_807A100
+ adds r0, 0x8
+ b _080DC1DE
+ .align 2, 0
+_080DC198: .4byte gUnknown_03004B00
+_080DC19C: .4byte 0x0000fff6
+_080DC1A0: .4byte gUnknown_0202F7C9
+_080DC1A4: .4byte gUnknown_0202F7C8
+_080DC1A8:
+ movs r0, 0xA
+ strh r0, [r5, 0x1C]
+ ldr r4, _080DC1F0
+ ldrb r0, [r4]
+ movs r1, 0x5
+ bl sub_807A100
+ subs r0, 0x8
+ strh r0, [r5, 0x1E]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_807A100
+ subs r0, 0x8
+ strh r0, [r5, 0x20]
+ ldr r4, _080DC1F4
+ ldrb r0, [r4]
+ movs r1, 0x5
+ bl sub_807A100
+ subs r0, 0x8
+_080DC1D2:
+ strh r0, [r5, 0x22]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_807A100
+ subs r0, 0x8
+_080DC1DE:
+ strh r0, [r5, 0x24]
+ movs r0, 0x6
+ strh r0, [r5, 0xA]
+ ldr r0, _080DC1F8
+ str r0, [r5]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DC1F0: .4byte gUnknown_0202F7C8
+_080DC1F4: .4byte gUnknown_0202F7C9
+_080DC1F8: .4byte sub_80DC1FC
+ thumb_func_end sub_80DC0B0
+
+ thumb_func_start sub_80DC1FC
+sub_80DC1FC: @ 80DC1FC
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ ldr r1, _080DC21C
+ adds r5, r0, r1
+ movs r0, 0x8
+ ldrsh r1, [r5, r0]
+ cmp r1, 0
+ beq _080DC220
+ cmp r1, 0x1
+ beq _080DC294
+ b _080DC2A8
+ .align 2, 0
+_080DC21C: .4byte gTasks
+_080DC220:
+ ldrh r0, [r5, 0xA]
+ adds r0, 0x1
+ strh r0, [r5, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x6
+ ble _080DC2A8
+ strh r1, [r5, 0xA]
+ ldr r0, _080DC28C
+ movs r2, 0x1E
+ ldrsh r1, [r5, r2]
+ movs r3, 0x20
+ ldrsh r2, [r5, r3]
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x40
+ beq _080DC274
+ ldr r0, _080DC290
+ lsls r4, r1, 4
+ adds r4, r1
+ lsls r4, 2
+ adds r4, r0
+ movs r0, 0x10
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r5, 0x22]
+ strh r0, [r4, 0x32]
+ ldrh r0, [r5, 0x24]
+ strh r0, [r4, 0x36]
+ ldrh r0, [r5, 0x1C]
+ strh r0, [r4, 0x38]
+ adds r0, r4, 0
+ bl sub_80786EC
+ ldrb r0, [r5, 0xC]
+ movs r1, 0x3
+ ands r1, r0
+ adds r0, r4, 0
+ bl StartSpriteAffineAnim
+_080DC274:
+ ldrh r0, [r5, 0xC]
+ adds r0, 0x1
+ strh r0, [r5, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xC
+ bne _080DC2A8
+ ldrh r0, [r5, 0x8]
+ adds r0, 0x1
+ strh r0, [r5, 0x8]
+ b _080DC2A8
+ .align 2, 0
+_080DC28C: .4byte gSpriteTemplate_83DA9AC
+_080DC290: .4byte gSprites
+_080DC294:
+ ldrh r0, [r5, 0xA]
+ adds r0, 0x1
+ strh r0, [r5, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x11
+ ble _080DC2A8
+ adds r0, r2, 0
+ bl move_anim_task_del
+_080DC2A8:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80DC1FC
+
+ thumb_func_start sub_80DC2B0
+sub_80DC2B0: @ 80DC2B0
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_8078718
+ lsls r0, 24
+ cmp r0, 0
+ beq _080DC2CE
+ ldrb r0, [r4, 0x3]
+ lsls r0, 26
+ lsrs r0, 27
+ bl FreeOamMatrix
+ adds r0, r4, 0
+ bl DestroySprite
+_080DC2CE:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80DC2B0
+
+ thumb_func_start sub_80DC2D4
+sub_80DC2D4: @ 80DC2D4
+ push {r4-r6,lr}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _080DC30C
+ adds r4, r1, r0
+ ldr r0, _080DC310
+ ldrb r0, [r0]
+ bl sub_8077FC0
+ lsls r0, 24
+ lsrs r1, r0, 24
+ adds r0, r1, 0
+ subs r0, 0x20
+ strh r0, [r4, 0x24]
+ ldr r0, _080DC314
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ cmp r0, 0x1
+ beq _080DC32A
+ cmp r0, 0x1
+ bgt _080DC318
+ cmp r0, 0
+ beq _080DC31E
+ b _080DC346
+ .align 2, 0
+_080DC30C: .4byte gTasks
+_080DC310: .4byte gUnknown_0202F7C9
+_080DC314: .4byte gUnknown_03004B00
+_080DC318:
+ cmp r0, 0x2
+ beq _080DC336
+ b _080DC346
+_080DC31E:
+ movs r0, 0x2
+ strh r0, [r4, 0x1E]
+ movs r0, 0x5
+ strh r0, [r4, 0x20]
+ movs r0, 0x40
+ b _080DC33E
+_080DC32A:
+ movs r0, 0x2
+ strh r0, [r4, 0x1E]
+ movs r0, 0x5
+ strh r0, [r4, 0x20]
+ movs r0, 0xC0
+ b _080DC33E
+_080DC336:
+ movs r0, 0x4
+ strh r0, [r4, 0x1E]
+ strh r0, [r4, 0x20]
+ movs r0, 0
+_080DC33E:
+ strh r0, [r4, 0x22]
+ adds r0, r1, 0
+ adds r0, 0x20
+ strh r0, [r4, 0x26]
+_080DC346:
+ movs r1, 0x24
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bge _080DC352
+ movs r0, 0
+ strh r0, [r4, 0x24]
+_080DC352:
+ ldr r0, _080DC36C
+ ldrb r0, [r0]
+ bl battle_get_per_side_status_permutated
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080DC378
+ ldr r0, _080DC370
+ ldrh r0, [r0]
+ strh r0, [r4, 0x1C]
+ ldr r0, _080DC374
+ b _080DC380
+ .align 2, 0
+_080DC36C: .4byte gUnknown_0202F7C9
+_080DC370: .4byte gUnknown_030042C0
+_080DC374: .4byte REG_BG1HOFS
+_080DC378:
+ ldr r0, _080DC3E0
+ ldrh r0, [r0]
+ strh r0, [r4, 0x1C]
+ ldr r0, _080DC3E4
+_080DC380:
+ str r0, [sp]
+ ldrh r1, [r4, 0x24]
+ lsls r3, r1, 16
+ asrs r1, r3, 16
+ movs r2, 0x24
+ ldrsh r0, [r4, r2]
+ adds r0, 0x40
+ cmp r1, r0
+ bgt _080DC3BA
+ ldr r5, _080DC3E8
+ movs r0, 0xF0
+ lsls r0, 3
+ adds r6, r5, r0
+_080DC39A:
+ asrs r3, 16
+ lsls r1, r3, 1
+ adds r2, r1, r5
+ ldrh r0, [r4, 0x1C]
+ strh r0, [r2]
+ adds r1, r6
+ ldrh r0, [r4, 0x1C]
+ strh r0, [r1]
+ adds r3, 0x1
+ lsls r3, 16
+ asrs r1, r3, 16
+ movs r2, 0x24
+ ldrsh r0, [r4, r2]
+ adds r0, 0x40
+ cmp r1, r0
+ ble _080DC39A
+_080DC3BA:
+ ldr r0, _080DC3EC
+ str r0, [sp, 0x4]
+ mov r1, sp
+ movs r2, 0
+ movs r0, 0x1
+ strb r0, [r1, 0x8]
+ mov r0, sp
+ strb r2, [r0, 0x9]
+ ldr r0, [sp]
+ ldr r1, [sp, 0x4]
+ ldr r2, [sp, 0x8]
+ bl sub_80895F8
+ ldr r0, _080DC3F0
+ str r0, [r4]
+ add sp, 0xC
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DC3E0: .4byte gUnknown_03004288
+_080DC3E4: .4byte REG_BG2HOFS
+_080DC3E8: .4byte gUnknown_03004DE0
+_080DC3EC: .4byte 0xa2600001
+_080DC3F0: .4byte sub_80DC3F4
+ thumb_func_end sub_80DC2D4
+
+ thumb_func_start sub_80DC3F4
+sub_80DC3F4: @ 80DC3F4
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ ldr r1, _080DC41C
+ adds r5, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x1
+ beq _080DC4CE
+ cmp r0, 0x1
+ bgt _080DC420
+ cmp r0, 0
+ beq _080DC426
+ b _080DC4E6
+ .align 2, 0
+_080DC41C: .4byte gTasks
+_080DC420:
+ cmp r0, 0x2
+ beq _080DC4E0
+ b _080DC4E6
+_080DC426:
+ ldrh r3, [r5, 0x22]
+ ldrh r4, [r5, 0x24]
+ movs r2, 0x24
+ ldrsh r1, [r5, r2]
+ movs r2, 0x26
+ ldrsh r0, [r5, r2]
+ cmp r1, r0
+ bgt _080DC4BE
+ ldr r0, _080DC470
+ mov r9, r0
+ movs r7, 0x3
+ ldr r1, _080DC474
+ mov r12, r1
+ movs r2, 0xF0
+ lsls r2, 3
+ add r2, r12
+ mov r8, r2
+_080DC448:
+ lsls r2, r3, 16
+ asrs r0, r2, 15
+ add r0, r9
+ movs r3, 0
+ ldrsh r0, [r0, r3]
+ movs r3, 0x20
+ ldrsh r1, [r5, r3]
+ asrs r0, r1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ asrs r3, r0, 16
+ adds r6, r2, 0
+ cmp r3, 0
+ ble _080DC478
+ ldrh r1, [r5, 0xA]
+ adds r0, r7, 0
+ ands r0, r1
+ adds r0, r3, r0
+ b _080DC484
+ .align 2, 0
+_080DC470: .4byte gSineTable
+_080DC474: .4byte gUnknown_03004DE0
+_080DC478:
+ cmp r3, 0
+ bge _080DC488
+ ldrh r1, [r5, 0xA]
+ adds r0, r7, 0
+ ands r0, r1
+ subs r0, r3, r0
+_080DC484:
+ lsls r0, 16
+ lsrs r1, r0, 16
+_080DC488:
+ lsls r2, r4, 16
+ asrs r2, 16
+ lsls r3, r2, 1
+ mov r0, r12
+ adds r4, r3, r0
+ ldrh r0, [r5, 0x1C]
+ lsls r1, 16
+ asrs r1, 16
+ adds r0, r1, r0
+ strh r0, [r4]
+ add r3, r8
+ ldrh r0, [r5, 0x1C]
+ adds r1, r0
+ strh r1, [r3]
+ asrs r0, r6, 16
+ ldrh r1, [r5, 0x1E]
+ adds r0, r1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ adds r2, 0x1
+ lsls r2, 16
+ lsrs r4, r2, 16
+ asrs r2, 16
+ movs r1, 0x26
+ ldrsh r0, [r5, r1]
+ cmp r2, r0
+ ble _080DC448
+_080DC4BE:
+ ldrh r0, [r5, 0xA]
+ adds r0, 0x1
+ strh r0, [r5, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x17
+ ble _080DC4E6
+ b _080DC4D4
+_080DC4CE:
+ ldr r1, _080DC4DC
+ movs r0, 0x3
+ strb r0, [r1, 0x15]
+_080DC4D4:
+ ldrh r0, [r5, 0x8]
+ adds r0, 0x1
+ strh r0, [r5, 0x8]
+ b _080DC4E6
+ .align 2, 0
+_080DC4DC: .4byte gUnknown_03004DC0
+_080DC4E0:
+ adds r0, r2, 0
+ bl move_anim_task_del
+_080DC4E6:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80DC3F4
+
+ thumb_func_start sub_80DC4F4
+sub_80DC4F4: @ 80DC4F4
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ mov r8, r4
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ ldr r1, _080DC528
+ adds r7, r0, r1
+ bl AllocOamMatrix
+ lsls r0, 24
+ lsrs r5, r0, 24
+ mov r10, r5
+ adds r6, r5, 0
+ cmp r6, 0xFF
+ bne _080DC52C
+ adds r0, r4, 0
+ bl move_anim_task_del
+ b _080DC5D6
+ .align 2, 0
+_080DC528: .4byte gTasks
+_080DC52C:
+ ldr r1, _080DC550
+ ldrb r0, [r1]
+ bl duplicate_obj_of_side_rel2move_in_transparent_mode
+ lsls r0, 16
+ lsrs r1, r0, 16
+ mov r9, r1
+ asrs r0, 16
+ cmp r0, 0
+ bge _080DC554
+ adds r0, r5, 0
+ bl FreeOamMatrix
+ mov r0, r8
+ bl move_anim_task_del
+ b _080DC5D6
+ .align 2, 0
+_080DC550: .4byte gUnknown_03004B00
+_080DC554:
+ ldr r2, _080DC5E4
+ lsls r4, r0, 4
+ adds r4, r0
+ lsls r4, 2
+ adds r0, r2, 0
+ adds r0, 0x1C
+ adds r0, r4, r0
+ ldr r1, _080DC5E8
+ str r1, [r0]
+ adds r4, r2
+ ldrb r0, [r4, 0x1]
+ movs r1, 0x3
+ orrs r0, r1
+ strb r0, [r4, 0x1]
+ movs r0, 0x1F
+ ands r6, r0
+ lsls r2, r6, 1
+ ldrb r1, [r4, 0x3]
+ movs r0, 0x3F
+ negs r0, r0
+ ands r0, r1
+ orrs r0, r2
+ strb r0, [r4, 0x3]
+ adds r2, r4, 0
+ adds r2, 0x2C
+ ldrb r0, [r2]
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r2]
+ adds r1, r4, 0
+ adds r1, 0x43
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ mov r1, r9
+ lsls r0, r1, 24
+ lsrs r0, 24
+ movs r2, 0x80
+ lsls r2, 1
+ adds r1, r2, 0
+ movs r3, 0
+ bl obj_id_set_rotscale
+ ldrb r3, [r4, 0x1]
+ lsrs r1, r3, 6
+ ldrb r2, [r4, 0x3]
+ lsrs r2, 6
+ lsls r3, 30
+ lsrs r3, 30
+ adds r0, r4, 0
+ bl CalcCenterToCornerVec
+ ldr r1, _080DC5EC
+ ldrb r0, [r1]
+ bl obj_id_for_side_relative_to_move
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r7, 0x22]
+ mov r0, r10
+ strh r0, [r7, 0x24]
+ mov r1, r9
+ strh r1, [r7, 0x26]
+ ldr r0, _080DC5F0
+ str r0, [r7]
+_080DC5D6:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DC5E4: .4byte gSprites
+_080DC5E8: .4byte SpriteCallbackDummy
+_080DC5EC: .4byte gUnknown_03004B00
+_080DC5F0: .4byte sub_80DC5F4
+ thumb_func_end sub_80DC4F4
+
+ thumb_func_start sub_80DC5F4
+sub_80DC5F4: @ 80DC5F4
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, _080DC618
+ adds r4, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ beq _080DC678
+ cmp r0, 0x1
+ bgt _080DC61C
+ cmp r0, 0
+ beq _080DC626
+ b _080DC6F8
+ .align 2, 0
+_080DC618: .4byte gTasks
+_080DC61C:
+ cmp r0, 0x2
+ beq _080DC6C8
+ cmp r0, 0x3
+ beq _080DC6E8
+ b _080DC6F8
+_080DC626:
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x4
+ strh r0, [r4, 0xA]
+ ldr r1, _080DC674
+ movs r2, 0xA
+ ldrsh r0, [r4, r2]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ lsls r1, 16
+ asrs r1, 17
+ movs r2, 0x80
+ lsls r2, 1
+ adds r0, r2, 0
+ subs r0, r1
+ strh r0, [r4, 0xC]
+ ldrh r0, [r4, 0x26]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0xC
+ ldrsh r2, [r4, r1]
+ adds r1, r2, 0
+ movs r3, 0
+ bl obj_id_set_rotscale
+ ldrh r0, [r4, 0x26]
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r4, 0x22]
+ lsls r1, 24
+ lsrs r1, 24
+ bl sub_8079AB8
+ movs r2, 0xA
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x30
+ bne _080DC6F8
+ b _080DC6DA
+ .align 2, 0
+_080DC674: .4byte gSineTable
+_080DC678:
+ ldrh r0, [r4, 0xA]
+ subs r0, 0x4
+ strh r0, [r4, 0xA]
+ ldr r1, _080DC6C4
+ movs r2, 0xA
+ ldrsh r0, [r4, r2]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ lsls r1, 16
+ asrs r1, 17
+ movs r2, 0x80
+ lsls r2, 1
+ adds r0, r2, 0
+ subs r0, r1
+ strh r0, [r4, 0xC]
+ ldrh r0, [r4, 0x26]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0xC
+ ldrsh r2, [r4, r1]
+ adds r1, r2, 0
+ movs r3, 0
+ bl obj_id_set_rotscale
+ ldrh r0, [r4, 0x26]
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r4, 0x22]
+ lsls r1, 24
+ lsrs r1, 24
+ bl sub_8079AB8
+ movs r2, 0xA
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ bne _080DC6F8
+ b _080DC6DA
+ .align 2, 0
+_080DC6C4: .4byte gSineTable
+_080DC6C8:
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080DC6E4
+ adds r0, r1
+ bl obj_delete_but_dont_free_vram
+_080DC6DA:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _080DC6F8
+ .align 2, 0
+_080DC6E4: .4byte gSprites
+_080DC6E8:
+ ldrh r0, [r4, 0x24]
+ lsls r0, 24
+ lsrs r0, 24
+ bl FreeOamMatrix
+ adds r0, r5, 0
+ bl move_anim_task_del
+_080DC6F8:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80DC5F4
+
+ thumb_func_start sub_80DC700
+sub_80DC700: @ 80DC700
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x1
+ beq _080DC778
+ cmp r0, 0x1
+ bgt _080DC716
+ cmp r0, 0
+ beq _080DC720
+ b _080DC818
+_080DC716:
+ cmp r0, 0x2
+ beq _080DC7AA
+ cmp r0, 0x3
+ beq _080DC808
+ b _080DC818
+_080DC720:
+ ldr r4, _080DC76C
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080DC74E
+ ldrh r0, [r5, 0x22]
+ adds r0, 0xC
+ strh r0, [r5, 0x22]
+_080DC74E:
+ movs r0, 0x8
+ strh r0, [r5, 0x30]
+ ldr r1, _080DC770
+ movs r2, 0xFD
+ lsls r2, 6
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r2, _080DC774
+ ldrh r1, [r5, 0x30]
+ movs r0, 0x10
+ subs r0, r1
+ lsls r0, 8
+ orrs r0, r1
+ strh r0, [r2]
+ b _080DC7A2
+ .align 2, 0
+_080DC76C: .4byte gUnknown_0202F7C8
+_080DC770: .4byte REG_BLDCNT
+_080DC774: .4byte REG_BLDALPHA
+_080DC778:
+ adds r0, r5, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _080DC818
+ movs r0, 0x40
+ negs r0, r0
+ bl sub_8076F98
+ adds r1, r0, 0
+ lsls r1, 24
+ asrs r1, 24
+ movs r0, 0xCB
+ bl PlaySE12WithPanning
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl ChangeSpriteAffineAnim
+_080DC7A2:
+ ldrh r0, [r5, 0x2E]
+ adds r0, 0x1
+ strh r0, [r5, 0x2E]
+ b _080DC818
+_080DC7AA:
+ ldrh r0, [r5, 0x32]
+ adds r1, r0, 0x1
+ strh r1, [r5, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080DC7E8
+ movs r0, 0
+ strh r0, [r5, 0x32]
+ ldrh r1, [r5, 0x30]
+ subs r1, 0x1
+ strh r1, [r5, 0x30]
+ ldr r2, _080DC804
+ movs r0, 0x10
+ subs r0, r1
+ lsls r0, 8
+ orrs r1, r0
+ strh r1, [r2]
+ movs r1, 0x30
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ bne _080DC7E8
+ ldrh r0, [r5, 0x2E]
+ adds r0, 0x1
+ strh r0, [r5, 0x2E]
+ adds r2, r5, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+_080DC7E8:
+ movs r0, 0xE0
+ lsls r0, 2
+ adds r2, r0, 0
+ ldrh r1, [r5, 0x34]
+ adds r2, r1
+ lsls r1, r2, 16
+ asrs r1, 24
+ ldrh r0, [r5, 0x26]
+ subs r0, r1
+ strh r0, [r5, 0x26]
+ movs r0, 0xFF
+ ands r2, r0
+ strh r2, [r5, 0x34]
+ b _080DC818
+ .align 2, 0
+_080DC804: .4byte REG_BLDALPHA
+_080DC808:
+ ldr r0, _080DC820
+ movs r1, 0
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, r5, 0
+ bl move_anim_8072740
+_080DC818:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DC820: .4byte REG_BLDCNT
+ thumb_func_end sub_80DC700
+
+ thumb_func_start sub_80DC824
+sub_80DC824: @ 80DC824
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080DC850
+ adds r0, r6, 0
+ movs r1, 0x2
+ bl StartSpriteAffineAnim
+ ldr r0, _080DC84C
+ ldrh r1, [r0, 0x4]
+ negs r1, r1
+ strh r1, [r0, 0x4]
+ ldrh r1, [r0]
+ negs r1, r1
+ strh r1, [r0]
+ b _080DC880
+ .align 2, 0
+_080DC84C: .4byte gUnknown_03004B00
+_080DC850:
+ ldr r0, _080DC8E4
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _080DC880
+ adds r0, r6, 0
+ movs r1, 0x1
+ bl StartSpriteAffineAnim
+ ldr r1, _080DC8E8
+ ldrh r0, [r1, 0x2]
+ negs r0, r0
+ strh r0, [r1, 0x2]
+ ldrh r0, [r1, 0x4]
+ negs r0, r0
+ strh r0, [r1, 0x4]
+ ldrh r0, [r1, 0x6]
+ negs r0, r0
+ strh r0, [r1, 0x6]
+ ldrh r0, [r1]
+ negs r0, r0
+ strh r0, [r1]
+_080DC880:
+ ldr r5, _080DC8E4
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8077EE4
+ lsls r0, 24
+ ldr r4, _080DC8E8
+ lsrs r0, 24
+ ldrh r1, [r4]
+ adds r0, r1
+ strh r0, [r6, 0x20]
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl sub_8077EE4
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r4, 0x2]
+ adds r0, r1
+ strh r0, [r6, 0x22]
+ ldrh r0, [r4, 0x8]
+ strh r0, [r6, 0x2E]
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r4, 0x4]
+ adds r0, r1
+ strh r0, [r6, 0x32]
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r4, [r4, 0x6]
+ adds r0, r4
+ strh r0, [r6, 0x36]
+ ldr r0, _080DC8EC
+ str r0, [r6, 0x1C]
+ ldr r1, _080DC8F0
+ adds r0, r6, 0
+ bl oamt_set_x3A_32
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DC8E4: .4byte gUnknown_0202F7C9
+_080DC8E8: .4byte gUnknown_03004B00
+_080DC8EC: .4byte sub_8078B34
+_080DC8F0: .4byte move_anim_8072740
+ thumb_func_end sub_80DC824
+
+ thumb_func_start sub_80DC8F4
+sub_80DC8F4: @ 80DC8F4
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080DC918
+ ldr r1, _080DC914
+ ldrh r0, [r1]
+ negs r0, r0
+ strh r0, [r1]
+ adds r0, r6, 0
+ movs r1, 0x2
+ bl StartSpriteAffineAnim
+ b _080DC934
+ .align 2, 0
+_080DC914: .4byte gUnknown_03004B00
+_080DC918:
+ ldr r0, _080DC990
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _080DC934
+ ldr r0, _080DC994
+ ldrh r1, [r0, 0x2]
+ negs r1, r1
+ strh r1, [r0, 0x2]
+ ldrh r1, [r0]
+ negs r1, r1
+ strh r1, [r0]
+_080DC934:
+ ldr r5, _080DC990
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8077EE4
+ lsls r0, 24
+ ldr r4, _080DC994
+ lsrs r0, 24
+ ldrh r1, [r4]
+ adds r0, r1
+ strh r0, [r6, 0x20]
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl sub_8077EE4
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r4, 0x2]
+ adds r0, r1
+ strh r0, [r6, 0x22]
+ ldrh r0, [r4, 0x4]
+ strh r0, [r6, 0x2E]
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r6, 0x32]
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r6, 0x36]
+ ldr r0, _080DC998
+ str r0, [r6, 0x1C]
+ ldr r1, _080DC99C
+ adds r0, r6, 0
+ bl oamt_set_x3A_32
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DC990: .4byte gUnknown_0202F7C9
+_080DC994: .4byte gUnknown_03004B00
+_080DC998: .4byte sub_8078B34
+_080DC99C: .4byte move_anim_8072740
+ thumb_func_end sub_80DC8F4
+
+ thumb_func_start sub_80DC9A0
+sub_80DC9A0: @ 80DC9A0
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080DC9BC
+ ldr r0, _080DC9FC
+ movs r2, 0x4
+ ldrsh r1, [r0, r2]
+ lsrs r2, r1, 31
+ adds r1, r2
+ asrs r1, 1
+ strh r1, [r0, 0x4]
+_080DC9BC:
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl sub_80787B0
+ ldr r1, _080DC9FC
+ ldrh r0, [r1, 0x4]
+ strh r0, [r5, 0x2E]
+ ldrh r0, [r5, 0x20]
+ strh r0, [r5, 0x30]
+ ldrh r0, [r5, 0x22]
+ strh r0, [r5, 0x34]
+ movs r2, 0x8
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ bne _080DCA04
+ ldr r4, _080DCA00
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x32]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x36]
+ b _080DCA16
+ .align 2, 0
+_080DC9FC: .4byte gUnknown_03004B00
+_080DCA00: .4byte gUnknown_0202F7C9
+_080DCA04:
+ ldr r0, _080DCA2C
+ ldrb r0, [r0]
+ adds r2, r5, 0
+ adds r2, 0x32
+ adds r3, r5, 0
+ adds r3, 0x36
+ movs r1, 0x1
+ bl sub_807A3FC
+_080DCA16:
+ adds r0, r5, 0
+ bl sub_8078BD4
+ ldr r0, _080DCA30
+ ldrh r0, [r0, 0x6]
+ strh r0, [r5, 0x38]
+ ldr r0, _080DCA34
+ str r0, [r5, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DCA2C: .4byte gUnknown_0202F7C9
+_080DCA30: .4byte gUnknown_03004B00
+_080DCA34: .4byte sub_80DCA38
+ thumb_func_end sub_80DC9A0
+
+ thumb_func_start sub_80DCA38
+sub_80DCA38: @ 80DCA38
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_8078B5C
+ lsls r0, 24
+ cmp r0, 0
+ beq _080DCA4E
+ adds r0, r4, 0
+ bl move_anim_8072740
+ b _080DCA6A
+_080DCA4E:
+ movs r1, 0x3A
+ ldrsh r0, [r4, r1]
+ movs r2, 0x38
+ ldrsh r1, [r4, r2]
+ bl Sin
+ ldrh r1, [r4, 0x24]
+ adds r0, r1
+ strh r0, [r4, 0x24]
+ ldrh r0, [r4, 0x3A]
+ adds r0, 0xD
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x3A]
+_080DCA6A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80DCA38
+
+ thumb_func_start sub_80DCA70
+sub_80DCA70: @ 80DCA70
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _080DCAA0
+ ldrb r0, [r0]
+ adds r2, r4, 0
+ adds r2, 0x20
+ adds r3, r4, 0
+ adds r3, 0x22
+ movs r1, 0
+ bl sub_807A3FC
+ ldr r0, _080DCAA4
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080DCAAC
+ ldr r0, _080DCAA8
+ ldrh r1, [r4, 0x20]
+ ldrh r2, [r0]
+ subs r1, r2
+ strh r1, [r4, 0x20]
+ b _080DCAB8
+ .align 2, 0
+_080DCAA0: .4byte gUnknown_0202F7C9
+_080DCAA4: .4byte gUnknown_0202F7C8
+_080DCAA8: .4byte gUnknown_03004B00
+_080DCAAC:
+ ldr r1, _080DCAE0
+ ldrh r0, [r1]
+ ldrh r2, [r4, 0x20]
+ adds r0, r2
+ strh r0, [r4, 0x20]
+ adds r0, r1, 0
+_080DCAB8:
+ ldrh r0, [r0, 0x2]
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r4, 0x22]
+ ldr r0, _080DCAE4
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _080DCAD4
+ ldrh r0, [r4, 0x22]
+ adds r0, 0x8
+ strh r0, [r4, 0x22]
+_080DCAD4:
+ ldr r0, _080DCAE8
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DCAE0: .4byte gUnknown_03004B00
+_080DCAE4: .4byte gUnknown_0202F7C9
+_080DCAE8: .4byte sub_80DCAEC
+ thumb_func_end sub_80DCA70
+
+ thumb_func_start sub_80DCAEC
+sub_80DCAEC: @ 80DCAEC
+ push {lr}
+ adds r3, r0, 0
+ ldrh r0, [r3, 0x2E]
+ adds r0, 0x1
+ strh r0, [r3, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3
+ bne _080DCB20
+ movs r0, 0
+ strh r0, [r3, 0x2E]
+ movs r0, 0x3E
+ adds r0, r3
+ mov r12, r0
+ ldrb r2, [r0]
+ 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
+ mov r1, r12
+ strb r0, [r1]
+_080DCB20:
+ ldrh r0, [r3, 0x30]
+ adds r0, 0x1
+ strh r0, [r3, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x33
+ bne _080DCB34
+ adds r0, r3, 0
+ bl move_anim_8072740
+_080DCB34:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80DCAEC
+
+ thumb_func_start sub_80DCB38
+sub_80DCB38: @ 80DCB38
+ ldr r2, _080DCB54
+ movs r3, 0xFD
+ lsls r3, 6
+ adds r1, r3, 0
+ strh r1, [r2]
+ adds r2, 0x2
+ movs r1, 0x10
+ strh r1, [r2]
+ movs r1, 0x10
+ strh r1, [r0, 0x2E]
+ ldr r1, _080DCB58
+ str r1, [r0, 0x1C]
+ bx lr
+ .align 2, 0
+_080DCB54: .4byte REG_BLDCNT
+_080DCB58: .4byte sub_80DCB5C
+ thumb_func_end sub_80DCB38
+
+ thumb_func_start sub_80DCB5C
+sub_80DCB5C: @ 80DCB5C
+ push {lr}
+ adds r3, r0, 0
+ ldrh r1, [r3, 0x32]
+ movs r2, 0x32
+ ldrsh r0, [r3, r2]
+ cmp r0, 0x13
+ bgt _080DCB70
+ adds r0, r1, 0x1
+ strh r0, [r3, 0x32]
+ b _080DCBA8
+_080DCB70:
+ ldrh r1, [r3, 0x30]
+ adds r0, r1, 0x1
+ strh r0, [r3, 0x30]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080DCBA8
+ ldrh r1, [r3, 0x2E]
+ subs r1, 0x1
+ strh r1, [r3, 0x2E]
+ ldr r2, _080DCBAC
+ movs r0, 0x10
+ subs r0, r1
+ lsls r0, 8
+ orrs r1, r0
+ strh r1, [r2]
+ movs r1, 0x2E
+ ldrsh r0, [r3, r1]
+ cmp r0, 0
+ bne _080DCBA8
+ adds r2, r3, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r0, _080DCBB0
+ str r0, [r3, 0x1C]
+_080DCBA8:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DCBAC: .4byte REG_BLDALPHA
+_080DCBB0: .4byte sub_80DCBB4
+ thumb_func_end sub_80DCB5C
+
+ thumb_func_start sub_80DCBB4
+sub_80DCBB4: @ 80DCBB4
+ push {lr}
+ ldr r1, _080DCBC8
+ movs r2, 0
+ strh r2, [r1]
+ adds r1, 0x2
+ strh r2, [r1]
+ bl move_anim_8072740
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DCBC8: .4byte REG_BLDCNT
+ thumb_func_end sub_80DCBB4
+
+ thumb_func_start sub_80DCBCC
+sub_80DCBCC: @ 80DCBCC
+ push {r4-r7,lr}
+ sub sp, 0x4
+ adds r7, r0, 0
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080DCBEC
+ ldr r1, _080DCBE8
+ ldrh r0, [r1, 0x4]
+ negs r0, r0
+ strh r0, [r1, 0x4]
+ b _080DCC0E
+ .align 2, 0
+_080DCBE8: .4byte gUnknown_03004B00
+_080DCBEC:
+ ldr r0, _080DCCE8
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080DCC0E
+ ldr r1, _080DCCEC
+ ldrh r0, [r1, 0x4]
+ negs r0, r0
+ strh r0, [r1, 0x4]
+ ldrh r0, [r1, 0x2]
+ negs r0, r0
+ strh r0, [r1, 0x2]
+ ldrh r0, [r1, 0x6]
+ negs r0, r0
+ strh r0, [r1, 0x6]
+_080DCC0E:
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080DCC5E
+ ldr r0, _080DCCE8
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ adds r4, r0, 0
+ ldr r5, _080DCCF0
+ ldrb r0, [r5]
+ bl battle_side_get_owner
+ lsls r4, 24
+ lsls r0, 24
+ cmp r4, r0
+ bne _080DCC5E
+ ldrb r0, [r5]
+ bl battle_get_per_side_status
+ lsls r0, 24
+ cmp r0, 0
+ beq _080DCC4C
+ ldrb r0, [r5]
+ bl battle_get_per_side_status
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080DCC5E
+_080DCC4C:
+ ldr r0, _080DCCEC
+ movs r2, 0x4
+ ldrsh r1, [r0, r2]
+ negs r1, r1
+ strh r1, [r0, 0x4]
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ negs r1, r1
+ strh r1, [r0]
+_080DCC5E:
+ adds r0, r7, 0
+ movs r1, 0x1
+ bl sub_80787B0
+ ldr r5, _080DCCF0
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8077ABC
+ adds r4, r0, 0
+ lsls r4, 24
+ ldr r6, _080DCCEC
+ lsrs r4, 24
+ ldrh r0, [r6, 0x4]
+ adds r4, r0
+ lsls r4, 16
+ lsrs r4, 16
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl sub_8077ABC
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ ldrh r2, [r6, 0x6]
+ adds r1, r2
+ lsls r1, 16
+ ldrh r2, [r7, 0x20]
+ lsls r0, r4, 16
+ asrs r0, 16
+ subs r0, r2
+ lsls r0, 16
+ asrs r0, 16
+ ldrh r2, [r7, 0x22]
+ lsrs r5, r1, 16
+ asrs r1, 16
+ subs r1, r2
+ lsls r1, 16
+ asrs r1, 16
+ bl sub_80790F0
+ lsls r0, 16
+ movs r1, 0xC0
+ lsls r1, 24
+ adds r0, r1
+ lsrs r0, 16
+ movs r3, 0x80
+ lsls r3, 1
+ str r0, [sp]
+ adds r0, r7, 0
+ movs r1, 0
+ adds r2, r3, 0
+ bl sub_8078FDC
+ ldrh r0, [r6, 0x8]
+ strh r0, [r7, 0x2E]
+ strh r4, [r7, 0x32]
+ strh r5, [r7, 0x36]
+ ldr r0, _080DCCF4
+ str r0, [r7, 0x1C]
+ ldr r1, _080DCCF8
+ adds r0, r7, 0
+ bl oamt_set_x3A_32
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DCCE8: .4byte gUnknown_0202F7C8
+_080DCCEC: .4byte gUnknown_03004B00
+_080DCCF0: .4byte gUnknown_0202F7C9
+_080DCCF4: .4byte sub_8078B34
+_080DCCF8: .4byte move_anim_8072740
+ thumb_func_end sub_80DCBCC
+
+ thumb_func_start sub_80DCCFC
+sub_80DCCFC: @ 80DCCFC
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ movs r1, 0x1
+ bl sub_80787B0
+ ldr r0, _080DCD68
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080DCD1C
+ ldr r1, _080DCD6C
+ ldrh r0, [r1, 0x4]
+ negs r0, r0
+ strh r0, [r1, 0x4]
+_080DCD1C:
+ ldr r4, _080DCD6C
+ ldrh r0, [r4, 0x8]
+ strh r0, [r6, 0x2E]
+ ldr r5, _080DCD70
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r4, 0x4]
+ adds r0, r1
+ strh r0, [r6, 0x32]
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r4, 0x6]
+ adds r0, r1
+ strh r0, [r6, 0x36]
+ ldrh r0, [r4, 0xA]
+ strh r0, [r6, 0x38]
+ adds r0, r6, 0
+ bl sub_80786EC
+ ldr r0, _080DCD74
+ str r0, [r6, 0x1C]
+ adds r2, r6, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DCD68: .4byte gUnknown_0202F7C8
+_080DCD6C: .4byte gUnknown_03004B00
+_080DCD70: .4byte gUnknown_0202F7C9
+_080DCD74: .4byte sub_80DCD78
+ thumb_func_end sub_80DCCFC
+
+ thumb_func_start sub_80DCD78
+sub_80DCD78: @ 80DCD78
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x14
+ adds r4, r0, 0
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x5
+ negs r1, r1
+ ands r1, r0
+ strb r1, [r2]
+ adds r0, r4, 0
+ bl sub_8078718
+ lsls r0, 24
+ cmp r0, 0
+ beq _080DCDA4
+ adds r0, r4, 0
+ bl move_anim_8072740
+ b _080DCE34
+_080DCDA4:
+ movs r0, 0x2E
+ adds r0, r4
+ mov r8, r0
+ ldrh r7, [r4, 0x20]
+ ldrh r5, [r4, 0x24]
+ ldrh r1, [r4, 0x22]
+ mov r12, r1
+ ldrh r6, [r4, 0x26]
+ mov r2, r8
+ add r1, sp, 0x4
+ movs r3, 0x7
+_080DCDBA:
+ ldrh r0, [r2]
+ strh r0, [r1]
+ adds r2, 0x2
+ adds r1, 0x2
+ subs r3, 0x1
+ cmp r3, 0
+ bge _080DCDBA
+ adds r0, r7, r5
+ lsls r0, 16
+ lsrs r5, r0, 16
+ mov r2, r12
+ adds r0, r2, r6
+ lsls r0, 16
+ lsrs r6, r0, 16
+ adds r0, r4, 0
+ bl sub_8078718
+ lsls r0, 24
+ cmp r0, 0
+ bne _080DCE34
+ ldrh r0, [r4, 0x24]
+ ldrh r1, [r4, 0x20]
+ adds r0, r1
+ lsls r1, r5, 16
+ asrs r1, 16
+ subs r0, r1
+ lsls r0, 16
+ asrs r0, 16
+ ldrh r1, [r4, 0x26]
+ ldrh r2, [r4, 0x22]
+ adds r1, r2
+ lsls r2, r6, 16
+ asrs r2, 16
+ subs r1, r2
+ lsls r1, 16
+ asrs r1, 16
+ bl sub_80790F0
+ lsls r0, 16
+ movs r1, 0xC0
+ lsls r1, 24
+ adds r0, r1
+ lsrs r0, 16
+ movs r3, 0x80
+ lsls r3, 1
+ str r0, [sp]
+ adds r0, r4, 0
+ movs r1, 0
+ adds r2, r3, 0
+ bl sub_8078FDC
+ add r2, sp, 0x4
+ mov r1, r8
+ movs r3, 0x7
+_080DCE26:
+ ldrh r0, [r2]
+ strh r0, [r1]
+ adds r2, 0x2
+ adds r1, 0x2
+ subs r3, 0x1
+ cmp r3, 0
+ bge _080DCE26
+_080DCE34:
+ add sp, 0x14
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80DCD78
+
+ thumb_func_start sub_80DCE40
+sub_80DCE40: @ 80DCE40
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r0, _080DCE54
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080DCE5C
+ ldr r4, _080DCE58
+ b _080DCE5E
+ .align 2, 0
+_080DCE54: .4byte gUnknown_03004B00
+_080DCE58: .4byte gUnknown_0202F7C8
+_080DCE5C:
+ ldr r4, _080DCE90
+_080DCE5E:
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, 0x12
+ strh r0, [r5, 0x22]
+ ldr r1, _080DCE94
+ adds r0, r5, 0
+ bl oamt_set_x3A_32
+ ldr r0, _080DCE98
+ str r0, [r5, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DCE90: .4byte gUnknown_0202F7C9
+_080DCE94: .4byte move_anim_8074EE0
+_080DCE98: .4byte sub_80785E4
+ thumb_func_end sub_80DCE40
+
+ thumb_func_start sub_80DCE9C
+sub_80DCE9C: @ 80DCE9C
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ ldr r6, _080DCF08
+ movs r1, 0x6
+ ldrsh r0, [r6, r1]
+ cmp r0, 0
+ beq _080DCEBC
+ ldr r0, _080DCF0C
+ ldrb r0, [r0]
+ adds r2, r5, 0
+ adds r2, 0x20
+ adds r3, r5, 0
+ adds r3, 0x22
+ movs r1, 0
+ bl sub_807A3FC
+_080DCEBC:
+ ldrh r0, [r6]
+ ldrh r1, [r5, 0x20]
+ adds r0, r1
+ movs r4, 0
+ strh r0, [r5, 0x20]
+ ldrh r0, [r5, 0x22]
+ adds r0, 0xE
+ strh r0, [r5, 0x22]
+ ldrb r1, [r6, 0x2]
+ adds r0, r5, 0
+ bl StartSpriteAnim
+ adds r0, r5, 0
+ bl AnimateSprite
+ strh r4, [r5, 0x2E]
+ strh r4, [r5, 0x30]
+ movs r0, 0x4
+ strh r0, [r5, 0x32]
+ movs r0, 0x10
+ strh r0, [r5, 0x34]
+ ldr r0, _080DCF10
+ strh r0, [r5, 0x36]
+ ldrh r0, [r6, 0x4]
+ strh r0, [r5, 0x38]
+ ldr r1, _080DCF14
+ adds r0, r5, 0
+ bl oamt_set_x3A_32
+ ldr r1, _080DCF18
+ str r1, [r5, 0x1C]
+ adds r0, r5, 0
+ bl _call_via_r1
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DCF08: .4byte gUnknown_03004B00
+_080DCF0C: .4byte gUnknown_0202F7C9
+_080DCF10: .4byte 0x0000ffba
+_080DCF14: .4byte sub_80DCF1C
+_080DCF18: .4byte sub_8078278
+ thumb_func_end sub_80DCE9C
+
+ thumb_func_start sub_80DCF1C
+sub_80DCF1C: @ 80DCF1C
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r1, [r4, 0x38]
+ ldrh r2, [r4, 0x20]
+ adds r0, r1, r2
+ strh r0, [r4, 0x20]
+ movs r0, 0xC0
+ strh r0, [r4, 0x2E]
+ strh r1, [r4, 0x30]
+ movs r0, 0x4
+ strh r0, [r4, 0x32]
+ movs r0, 0x20
+ strh r0, [r4, 0x34]
+ ldr r0, _080DCF54
+ strh r0, [r4, 0x36]
+ ldr r1, _080DCF58
+ adds r0, r4, 0
+ bl oamt_set_x3A_32
+ ldr r1, _080DCF5C
+ str r1, [r4, 0x1C]
+ adds r0, r4, 0
+ bl _call_via_r1
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DCF54: .4byte 0x0000ffe8
+_080DCF58: .4byte move_anim_8074EE0
+_080DCF5C: .4byte sub_8078278
+ thumb_func_end sub_80DCF1C
+
+ thumb_func_start sub_80DCF60
+sub_80DCF60: @ 80DCF60
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r4, _080DCF88
+ ldrb r1, [r4, 0xA]
+ bl StartSpriteAnim
+ adds r0, r5, 0
+ bl AnimateSprite
+ ldr r0, _080DCF8C
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080DCF90
+ ldrh r0, [r5, 0x20]
+ ldrh r1, [r4]
+ subs r0, r1
+ b _080DCF96
+ .align 2, 0
+_080DCF88: .4byte gUnknown_03004B00
+_080DCF8C: .4byte gUnknown_0202F7C8
+_080DCF90:
+ ldrh r0, [r4]
+ ldrh r1, [r5, 0x20]
+ adds r0, r1
+_080DCF96:
+ strh r0, [r5, 0x20]
+ ldr r3, _080DCFD8
+ ldrh r2, [r3, 0x2]
+ ldrh r0, [r5, 0x22]
+ adds r2, r0
+ movs r4, 0
+ strh r2, [r5, 0x22]
+ ldrh r0, [r3, 0x8]
+ strh r0, [r5, 0x2E]
+ ldrh r0, [r5, 0x20]
+ strh r0, [r5, 0x30]
+ ldrh r1, [r3, 0x4]
+ adds r0, r1
+ strh r0, [r5, 0x32]
+ strh r2, [r5, 0x34]
+ ldrh r0, [r3, 0x6]
+ adds r2, r0
+ strh r2, [r5, 0x36]
+ adds r0, r5, 0
+ bl sub_8078A5C
+ strh r4, [r5, 0x34]
+ strh r4, [r5, 0x36]
+ ldr r0, _080DCFDC
+ str r0, [r5, 0x1C]
+ ldr r1, _080DCFE0
+ adds r0, r5, 0
+ bl oamt_set_x3A_32
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DCFD8: .4byte gUnknown_03004B00
+_080DCFDC: .4byte sub_8078394
+_080DCFE0: .4byte move_anim_8074EE0
+ thumb_func_end sub_80DCF60
+
+ thumb_func_start sub_80DCFE4
+sub_80DCFE4: @ 80DCFE4
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _080DCFFC
+ movs r1, 0xC
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080DD000
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_80787B0
+ b _080DD008
+ .align 2, 0
+_080DCFFC: .4byte gUnknown_03004B00
+_080DD000:
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_8078764
+_080DD008:
+ ldr r1, _080DD024
+ ldrh r0, [r1, 0x6]
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r1, 0x4]
+ strh r0, [r4, 0x30]
+ ldrh r0, [r1, 0x8]
+ strh r0, [r4, 0x32]
+ ldrh r0, [r1, 0xA]
+ strh r0, [r4, 0x34]
+ ldr r0, _080DD028
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DD024: .4byte gUnknown_03004B00
+_080DD028: .4byte sub_80DD02C
+ thumb_func_end sub_80DCFE4
+
+ thumb_func_start sub_80DD02C
+sub_80DD02C: @ 80DD02C
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x30]
+ ldrh r1, [r4, 0x36]
+ adds r0, r1
+ strh r0, [r4, 0x36]
+ lsls r0, 16
+ asrs r0, 24
+ negs r0, r0
+ strh r0, [r4, 0x26]
+ movs r2, 0x38
+ ldrsh r0, [r4, r2]
+ movs r2, 0x34
+ ldrsh r1, [r4, r2]
+ bl Sin
+ strh r0, [r4, 0x24]
+ ldrh r0, [r4, 0x32]
+ ldrh r1, [r4, 0x38]
+ adds r0, r1
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x38]
+ ldrh r0, [r4, 0x2E]
+ subs r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ bne _080DD072
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080DD072:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80DD02C
+
+ thumb_func_start do_boulder_dust
+do_boulder_dust: @ 80DD078
+ push {r4-r6,lr}
+ sub sp, 0x10
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r5, 0
+ ldr r1, _080DD154
+ ldr r2, _080DD158
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r2, 0x80
+ lsls r2, 5
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r4, _080DD15C
+ ldrb r1, [r4]
+ movs r0, 0x4
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r4]
+ ldrb r1, [r4, 0x1]
+ movs r0, 0x3F
+ ands r0, r1
+ strb r0, [r4, 0x1]
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080DD0C4
+ ldrb r0, [r4]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r0
+ movs r0, 0x4
+ orrs r1, r0
+ strb r1, [r4]
+_080DD0C4:
+ ldr r0, _080DD160
+ strh r5, [r0]
+ ldr r0, _080DD164
+ strh r5, [r0]
+ ldr r0, _080DD168
+ strh r5, [r0]
+ adds r0, 0x2
+ strh r5, [r0]
+ mov r0, sp
+ bl sub_8078914
+ ldr r1, [sp, 0x4]
+ str r5, [sp, 0xC]
+ ldr r2, _080DD16C
+ add r0, sp, 0xC
+ str r0, [r2]
+ str r1, [r2, 0x4]
+ ldr r0, _080DD170
+ str r0, [r2, 0x8]
+ ldr r0, [r2, 0x8]
+ ldr r0, _080DD174
+ bl LZDecompressVram
+ ldr r0, _080DD178
+ ldr r1, [sp]
+ bl LZDecompressVram
+ ldr r0, _080DD17C
+ mov r1, sp
+ ldrb r1, [r1, 0x8]
+ lsls r1, 4
+ movs r2, 0x20
+ bl LoadCompressedPalette
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080DD120
+ mov r0, sp
+ ldrb r0, [r0, 0x8]
+ ldr r1, [sp, 0x4]
+ movs r2, 0
+ movs r3, 0
+ bl sub_80763FC
+_080DD120:
+ ldr r0, _080DD180
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ beq _080DD13A
+ ldr r0, _080DD184
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080DD13A
+ movs r5, 0x1
+_080DD13A:
+ ldr r0, _080DD188
+ lsls r1, r6, 2
+ adds r1, r6
+ lsls r1, 3
+ adds r1, r0
+ strh r5, [r1, 0x8]
+ ldr r0, _080DD18C
+ str r0, [r1]
+ add sp, 0x10
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DD154: .4byte REG_BLDCNT
+_080DD158: .4byte 0x00003f42
+_080DD15C: .4byte REG_BG1CNT
+_080DD160: .4byte gUnknown_030042C0
+_080DD164: .4byte gUnknown_030041B4
+_080DD168: .4byte REG_BG1HOFS
+_080DD16C: .4byte 0x040000d4
+_080DD170: .4byte 0x85000400
+_080DD174: .4byte gBattleAnimBackgroundTilemap_SandstormBrew
+_080DD178: .4byte gBattleAnimBackgroundImage_SandstormBrew
+_080DD17C: .4byte gBattleAnimSpritePalette_261
+_080DD180: .4byte gUnknown_03004B00
+_080DD184: .4byte gUnknown_0202F7C8
+_080DD188: .4byte gTasks
+_080DD18C: .4byte sub_80DD190
+ thumb_func_end do_boulder_dust
+
+ thumb_func_start sub_80DD190
+sub_80DD190: @ 80DD190
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x10
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r1, _080DD1C0
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r0, r1
+ movs r2, 0x8
+ ldrsh r0, [r0, r2]
+ adds r3, r1, 0
+ cmp r0, 0
+ bne _080DD1CC
+ ldr r1, _080DD1C4
+ ldr r5, _080DD1C8
+ adds r0, r5, 0
+ ldrh r2, [r1]
+ adds r0, r2
+ b _080DD1D2
+ .align 2, 0
+_080DD1C0: .4byte gTasks
+_080DD1C4: .4byte gUnknown_030042C0
+_080DD1C8: .4byte 0x0000fffa
+_080DD1CC:
+ ldr r1, _080DD204
+ ldrh r0, [r1]
+ adds r0, 0x6
+_080DD1D2:
+ strh r0, [r1]
+ adds r4, r1, 0
+ ldr r1, _080DD208
+ ldr r5, _080DD20C
+ adds r0, r5, 0
+ ldrh r2, [r1]
+ adds r0, r2
+ strh r0, [r1]
+ lsls r2, r7, 2
+ adds r0, r2, r7
+ lsls r0, 3
+ adds r0, r3
+ movs r5, 0x20
+ ldrsh r0, [r0, r5]
+ mov r8, r2
+ adds r2, r1, 0
+ cmp r0, 0x4
+ bls _080DD1F8
+ b _080DD37C
+_080DD1F8:
+ lsls r0, 2
+ ldr r1, _080DD210
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080DD204: .4byte gUnknown_030042C0
+_080DD208: .4byte gUnknown_030041B4
+_080DD20C: .4byte 0x0000ffff
+_080DD210: .4byte _080DD214
+ .align 2, 0
+_080DD214:
+ .4byte _080DD228
+ .4byte _080DD270
+ .4byte _080DD292
+ .4byte _080DD2D4
+ .4byte _080DD358
+_080DD228:
+ mov r1, r8
+ adds r0, r1, r7
+ lsls r0, 3
+ adds r3, r0, r3
+ ldrh r0, [r3, 0x1C]
+ adds r0, 0x1
+ movs r4, 0
+ strh r0, [r3, 0x1C]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ beq _080DD242
+ b _080DD37C
+_080DD242:
+ strh r4, [r3, 0x1C]
+ ldrh r1, [r3, 0x1E]
+ adds r1, 0x1
+ strh r1, [r3, 0x1E]
+ ldr r2, _080DD26C
+ movs r0, 0x10
+ subs r0, r1
+ lsls r0, 8
+ orrs r1, r0
+ strh r1, [r2]
+ movs r2, 0x1E
+ ldrsh r0, [r3, r2]
+ cmp r0, 0x7
+ beq _080DD260
+ b _080DD37C
+_080DD260:
+ ldrh r0, [r3, 0x20]
+ adds r0, 0x1
+ strh r0, [r3, 0x20]
+ strh r4, [r3, 0x1E]
+ b _080DD37C
+ .align 2, 0
+_080DD26C: .4byte REG_BLDALPHA
+_080DD270:
+ mov r5, r8
+ adds r0, r5, r7
+ lsls r0, 3
+ adds r1, r0, r3
+ ldrh r0, [r1, 0x1E]
+ adds r0, 0x1
+ strh r0, [r1, 0x1E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x65
+ bne _080DD37C
+ movs r0, 0x7
+ strh r0, [r1, 0x1E]
+ ldrh r0, [r1, 0x20]
+ adds r0, 0x1
+ strh r0, [r1, 0x20]
+ b _080DD37C
+_080DD292:
+ mov r1, r8
+ adds r0, r1, r7
+ lsls r0, 3
+ adds r3, r0, r3
+ ldrh r0, [r3, 0x1C]
+ adds r0, 0x1
+ strh r0, [r3, 0x1C]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ bne _080DD37C
+ movs r0, 0
+ strh r0, [r3, 0x1C]
+ ldrh r1, [r3, 0x1E]
+ subs r1, 0x1
+ strh r1, [r3, 0x1E]
+ ldr r2, _080DD2D0
+ movs r0, 0x10
+ subs r0, r1
+ lsls r0, 8
+ orrs r1, r0
+ strh r1, [r2]
+ movs r2, 0x1E
+ ldrsh r1, [r3, r2]
+ cmp r1, 0
+ bne _080DD37C
+ ldrh r0, [r3, 0x20]
+ adds r0, 0x1
+ strh r0, [r3, 0x20]
+ strh r1, [r3, 0x1E]
+ b _080DD37C
+ .align 2, 0
+_080DD2D0: .4byte REG_BLDALPHA
+_080DD2D4:
+ mov r0, sp
+ bl sub_8078914
+ ldr r2, [sp]
+ movs r3, 0x80
+ lsls r3, 6
+ add r5, sp, 0xC
+ movs r6, 0
+ ldr r1, _080DD38C
+ movs r4, 0x80
+ lsls r4, 5
+ mov r9, r5
+ ldr r0, _080DD390
+ mov r12, r0
+ movs r0, 0x85
+ lsls r0, 24
+ mov r10, r0
+_080DD2F6:
+ str r6, [sp, 0xC]
+ mov r0, r9
+ str r0, [r1]
+ str r2, [r1, 0x4]
+ mov r0, r12
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ adds r2, r4
+ subs r3, r4
+ cmp r3, r4
+ bhi _080DD2F6
+ str r6, [sp, 0xC]
+ str r5, [r1]
+ str r2, [r1, 0x4]
+ lsrs r0, r3, 2
+ mov r2, r10
+ orrs r0, r2
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ ldr r1, [sp, 0x4]
+ movs r0, 0
+ str r0, [sp, 0xC]
+ ldr r0, _080DD38C
+ str r5, [r0]
+ str r1, [r0, 0x4]
+ ldr r1, _080DD394
+ str r1, [r0, 0x8]
+ ldr r0, [r0, 0x8]
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080DD344
+ ldr r2, _080DD398
+ ldrb r1, [r2]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+_080DD344:
+ ldr r0, _080DD39C
+ mov r5, r8
+ adds r1, r5, r7
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x20]
+ adds r0, 0x1
+ strh r0, [r1, 0x20]
+ ldr r4, _080DD3A0
+ ldr r2, _080DD3A4
+_080DD358:
+ movs r1, 0
+ strh r1, [r4]
+ strh r1, [r2]
+ ldr r0, _080DD3A8
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ ldr r2, _080DD398
+ ldrb r1, [r2]
+ movs r0, 0x4
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r2]
+ adds r0, r7, 0
+ bl move_anim_task_del
+_080DD37C:
+ add sp, 0x10
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DD38C: .4byte 0x040000d4
+_080DD390: .4byte 0x85000400
+_080DD394: .4byte 0x85000200
+_080DD398: .4byte REG_BG1CNT
+_080DD39C: .4byte gTasks
+_080DD3A0: .4byte gUnknown_030042C0
+_080DD3A4: .4byte gUnknown_030041B4
+_080DD3A8: .4byte REG_BLDCNT
+ thumb_func_end sub_80DD190
+
+ thumb_func_start sub_80DD3AC
+sub_80DD3AC: @ 80DD3AC
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ bne _080DD428
+ ldr r4, _080DD3F0
+ movs r2, 0x6
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ beq _080DD3F8
+ ldr r0, _080DD3F4
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080DD3F8
+ movs r0, 0x98
+ lsls r0, 1
+ strh r0, [r5, 0x20]
+ ldrh r0, [r4, 0x2]
+ negs r0, r0
+ strh r0, [r4, 0x2]
+ movs r0, 0x1
+ strh r0, [r5, 0x38]
+ ldrb r1, [r5, 0x3]
+ subs r0, 0x40
+ ands r0, r1
+ movs r1, 0x10
+ orrs r0, r1
+ strb r0, [r5, 0x3]
+ b _080DD3FC
+ .align 2, 0
+_080DD3F0: .4byte gUnknown_03004B00
+_080DD3F4: .4byte gUnknown_0202F7C8
+_080DD3F8:
+ ldr r0, _080DD41C
+ strh r0, [r5, 0x20]
+_080DD3FC:
+ ldr r4, _080DD420
+ ldrh r0, [r4]
+ strh r0, [r5, 0x22]
+ ldr r1, _080DD424
+ adds r0, r5, 0
+ bl SetSubspriteTables
+ ldrh r0, [r4, 0x2]
+ strh r0, [r5, 0x30]
+ ldrh r0, [r4, 0x4]
+ strh r0, [r5, 0x32]
+ ldrh r0, [r5, 0x2E]
+ adds r0, 0x1
+ strh r0, [r5, 0x2E]
+ b _080DD484
+ .align 2, 0
+_080DD41C: .4byte 0x0000ffc0
+_080DD420: .4byte gUnknown_03004B00
+_080DD424: .4byte gUnknown_083DAD10
+_080DD428:
+ ldrh r1, [r5, 0x30]
+ ldrh r3, [r5, 0x34]
+ adds r1, r3
+ ldrh r2, [r5, 0x32]
+ ldrh r0, [r5, 0x36]
+ adds r2, r0
+ lsls r0, r1, 16
+ asrs r0, 24
+ ldrh r3, [r5, 0x24]
+ adds r0, r3
+ strh r0, [r5, 0x24]
+ lsls r0, r2, 16
+ asrs r0, 24
+ ldrh r3, [r5, 0x26]
+ adds r0, r3
+ strh r0, [r5, 0x26]
+ movs r0, 0xFF
+ ands r1, r0
+ strh r1, [r5, 0x34]
+ ands r2, r0
+ strh r2, [r5, 0x36]
+ movs r1, 0x38
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ bne _080DD46E
+ movs r2, 0x20
+ ldrsh r0, [r5, r2]
+ movs r3, 0x24
+ ldrsh r1, [r5, r3]
+ adds r0, r1
+ movs r1, 0x88
+ lsls r1, 1
+ cmp r0, r1
+ ble _080DD484
+ b _080DD480
+_080DD46E:
+ movs r1, 0x20
+ ldrsh r0, [r5, r1]
+ movs r2, 0x24
+ ldrsh r1, [r5, r2]
+ adds r0, r1
+ movs r1, 0x20
+ negs r1, r1
+ cmp r0, r1
+ bge _080DD484
+_080DD480:
+ ldr r0, _080DD48C
+ str r0, [r5, 0x1C]
+_080DD484:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DD48C: .4byte move_anim_8072740
+ thumb_func_end sub_80DD3AC
+
+ thumb_func_start sub_80DD490
+sub_80DD490: @ 80DD490
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldr r5, _080DD4C8
+ ldrb r1, [r5, 0x8]
+ bl StartSpriteAnim
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_80787B0
+ ldrh r0, [r5, 0x6]
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r4, 0x20]
+ strh r0, [r4, 0x32]
+ ldrh r0, [r5, 0x4]
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r4, 0x36]
+ ldr r0, _080DD4CC
+ str r0, [r4, 0x1C]
+ ldr r1, _080DD4D0
+ adds r0, r4, 0
+ bl oamt_set_x3A_32
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DD4C8: .4byte gUnknown_03004B00
+_080DD4CC: .4byte sub_8078B34
+_080DD4D0: .4byte move_anim_8072740
+ thumb_func_end sub_80DD490
+
+ thumb_func_start sub_80DD4D4
+sub_80DD4D4: @ 80DD4D4
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _080DD554
+ adds r6, r1, r0
+ ldr r5, _080DD558
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ ldrb r0, [r5]
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 8
+ movs r1, 0xC0
+ lsls r1, 13
+ adds r0, r1
+ lsrs r7, r0, 16
+ ldr r4, _080DD55C
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ mov r10, r0
+ ldrb r0, [r4]
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 8
+ movs r2, 0xC0
+ lsls r2, 13
+ adds r0, r2
+ lsrs r0, 16
+ mov r8, r0
+ ldrb r1, [r5]
+ movs r0, 0x2
+ eors r0, r1
+ ldrb r4, [r4]
+ cmp r0, r4
+ bne _080DD544
+ mov r8, r7
+_080DD544:
+ bl sub_80DD8BC
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x1
+ bne _080DD560
+ movs r0, 0x20
+ b _080DD566
+ .align 2, 0
+_080DD554: .4byte gTasks
+_080DD558: .4byte gUnknown_0202F7C8
+_080DD55C: .4byte gUnknown_0202F7C9
+_080DD560:
+ lsls r1, r5, 3
+ movs r0, 0x30
+ subs r0, r1
+_080DD566:
+ strh r0, [r6, 0x18]
+ movs r4, 0
+ strh r4, [r6, 0x8]
+ strh r4, [r6, 0x1E]
+ strh r4, [r6, 0x1A]
+ movs r0, 0x1
+ strh r0, [r6, 0x20]
+ movs r1, 0x18
+ ldrsh r0, [r6, r1]
+ cmp r0, 0
+ bge _080DD57E
+ adds r0, 0x7
+_080DD57E:
+ asrs r0, 3
+ subs r0, 0x1
+ strh r0, [r6, 0x1C]
+ mov r2, r9
+ lsls r0, r2, 3
+ strh r0, [r6, 0xC]
+ lsls r0, r7, 3
+ strh r0, [r6, 0xE]
+ mov r1, r10
+ subs r0, r1, r2
+ lsls r0, 3
+ movs r2, 0x18
+ ldrsh r1, [r6, r2]
+ bl __divsi3
+ strh r0, [r6, 0x10]
+ mov r1, r8
+ subs r0, r1, r7
+ lsls r0, 3
+ movs r2, 0x18
+ ldrsh r1, [r6, r2]
+ bl __divsi3
+ strh r0, [r6, 0x12]
+ strh r4, [r6, 0x14]
+ strh r4, [r6, 0x16]
+ movs r0, 0x40
+ negs r0, r0
+ bl sub_8076F98
+ adds r4, r0, 0
+ lsls r4, 24
+ asrs r4, 8
+ lsrs r4, 16
+ movs r0, 0x3F
+ bl sub_8076F98
+ lsls r0, 24
+ strh r4, [r6, 0x22]
+ asrs r0, 24
+ lsls r4, 16
+ asrs r4, 16
+ subs r0, r4
+ movs r2, 0x18
+ ldrsh r1, [r6, r2]
+ bl __divsi3
+ strh r0, [r6, 0x24]
+ strh r5, [r6, 0xA]
+ movs r0, 0
+ bl obj_id_for_side_relative_to_move
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r6, 0x26]
+ ldr r0, _080DD600
+ str r0, [r6]
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DD600: .4byte sub_80DD604
+ thumb_func_end sub_80DD4D4
+
+ thumb_func_start sub_80DD604
+sub_80DD604: @ 80DD604
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ ldr r1, _080DD628
+ adds r4, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x4
+ bls _080DD61E
+ b _080DD76C
+_080DD61E:
+ lsls r0, 2
+ ldr r1, _080DD62C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080DD628: .4byte gTasks
+_080DD62C: .4byte _080DD630
+ .align 2, 0
+_080DD630:
+ .4byte _080DD644
+ .4byte _080DD6A8
+ .4byte _080DD6B0
+ .4byte _080DD70C
+ .4byte _080DD75E
+_080DD644:
+ ldrh r2, [r4, 0x14]
+ ldrh r0, [r4, 0x10]
+ subs r2, r0
+ strh r2, [r4, 0x14]
+ ldrh r0, [r4, 0x16]
+ ldrh r1, [r4, 0x12]
+ subs r0, r1
+ strh r0, [r4, 0x16]
+ ldr r3, _080DD6A4
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ lsls r2, 16
+ asrs r2, 19
+ strh r2, [r0, 0x24]
+ movs r1, 0x26
+ ldrsh r0, [r4, r1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r3
+ ldrh r0, [r4, 0x16]
+ lsls r0, 16
+ asrs r0, 19
+ strh r0, [r1, 0x26]
+ ldrh r0, [r4, 0x1A]
+ adds r0, 0x1
+ strh r0, [r4, 0x1A]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xA
+ bne _080DD694
+ movs r0, 0x14
+ strh r0, [r4, 0x1E]
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+_080DD694:
+ ldrh r1, [r4, 0x22]
+ lsls r1, 24
+ asrs r1, 24
+ movs r0, 0xA2
+ bl PlaySE12WithPanning
+ b _080DD76C
+ .align 2, 0
+_080DD6A4: .4byte gSprites
+_080DD6A8:
+ ldrh r0, [r4, 0x1E]
+ subs r0, 0x1
+ strh r0, [r4, 0x1E]
+ b _080DD750
+_080DD6B0:
+ ldrh r0, [r4, 0x1A]
+ subs r0, 0x1
+ strh r0, [r4, 0x1A]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0
+ beq _080DD6D0
+ ldrh r0, [r4, 0x10]
+ ldrh r2, [r4, 0x14]
+ adds r0, r2
+ strh r0, [r4, 0x14]
+ ldrh r0, [r4, 0x12]
+ ldrh r1, [r4, 0x16]
+ adds r0, r1
+ strh r0, [r4, 0x16]
+ b _080DD6DA
+_080DD6D0:
+ strh r0, [r4, 0x14]
+ strh r0, [r4, 0x16]
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+_080DD6DA:
+ ldr r2, _080DD708
+ movs r1, 0x26
+ ldrsh r0, [r4, r1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ ldrh r0, [r4, 0x14]
+ lsls r0, 16
+ asrs r0, 19
+ strh r0, [r1, 0x24]
+ movs r1, 0x26
+ ldrsh r0, [r4, r1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ ldrh r0, [r4, 0x16]
+ lsls r0, 16
+ asrs r0, 19
+ strh r0, [r1, 0x26]
+ b _080DD76C
+ .align 2, 0
+_080DD708: .4byte gSprites
+_080DD70C:
+ ldrh r0, [r4, 0x10]
+ ldrh r2, [r4, 0xC]
+ adds r0, r2
+ strh r0, [r4, 0xC]
+ ldrh r0, [r4, 0x12]
+ ldrh r1, [r4, 0xE]
+ adds r0, r1
+ strh r0, [r4, 0xE]
+ ldrh r0, [r4, 0x1A]
+ adds r0, 0x1
+ strh r0, [r4, 0x1A]
+ lsls r0, 16
+ asrs r0, 16
+ movs r2, 0x1C
+ ldrsh r1, [r4, r2]
+ cmp r0, r1
+ blt _080DD74A
+ movs r0, 0
+ strh r0, [r4, 0x1A]
+ adds r0, r4, 0
+ bl sub_80DD774
+ ldrh r1, [r4, 0x24]
+ ldrh r0, [r4, 0x22]
+ adds r1, r0
+ strh r1, [r4, 0x22]
+ lsls r1, 24
+ asrs r1, 24
+ movs r0, 0xAF
+ bl PlaySE12WithPanning
+_080DD74A:
+ ldrh r0, [r4, 0x18]
+ subs r0, 0x1
+ strh r0, [r4, 0x18]
+_080DD750:
+ lsls r0, 16
+ cmp r0, 0
+ bne _080DD76C
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _080DD76C
+_080DD75E:
+ movs r1, 0x1E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080DD76C
+ adds r0, r2, 0
+ bl move_anim_task_del
+_080DD76C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80DD604
+
+ thumb_func_start sub_80DD774
+sub_80DD774: @ 80DD774
+ push {r4-r7,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0xA]
+ subs r0, 0x1
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ bhi _080DD864
+ lsls r0, 2
+ ldr r1, _080DD790
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080DD790: .4byte _080DD794
+ .align 2, 0
+_080DD794:
+ .4byte _080DD7A8
+ .4byte _080DD7B4
+ .4byte _080DD7B4
+ .4byte _080DD7C0
+ .4byte _080DD7CC
+_080DD7A8:
+ ldr r3, _080DD7B0
+ movs r5, 0
+ b _080DD7D0
+ .align 2, 0
+_080DD7B0: .4byte gSpriteTemplate_83DAD78
+_080DD7B4:
+ ldr r3, _080DD7BC
+ movs r5, 0x50
+ b _080DD7D0
+ .align 2, 0
+_080DD7BC: .4byte gSpriteTemplate_83DAD90
+_080DD7C0:
+ ldr r3, _080DD7C8
+ movs r5, 0x40
+ b _080DD7D0
+ .align 2, 0
+_080DD7C8: .4byte gSpriteTemplate_83DAD90
+_080DD7CC:
+ ldr r3, _080DD86C
+ movs r5, 0x30
+_080DD7D0:
+ ldrh r1, [r4, 0xC]
+ lsls r1, 16
+ asrs r1, 19
+ lsls r1, 16
+ lsrs r1, 16
+ ldrh r2, [r4, 0xE]
+ lsls r2, 16
+ asrs r2, 19
+ lsls r2, 16
+ movs r6, 0x20
+ ldrsh r0, [r4, r6]
+ lsls r0, 2
+ adds r1, r0
+ lsls r1, 16
+ lsrs r6, r1, 16
+ asrs r1, 16
+ lsrs r7, r2, 16
+ asrs r2, 16
+ adds r0, r3, 0
+ movs r3, 0x23
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x40
+ beq _080DD85C
+ ldr r1, _080DD870
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r1
+ movs r1, 0x12
+ strh r1, [r0, 0x2E]
+ movs r2, 0x20
+ ldrsh r1, [r4, r2]
+ lsls r2, r1, 2
+ adds r2, r1
+ lsls r2, 2
+ adds r2, r6, r2
+ movs r6, 0xA
+ ldrsh r3, [r4, r6]
+ lsls r1, r3, 1
+ adds r1, r3
+ adds r2, r1
+ strh r2, [r0, 0x32]
+ strh r7, [r0, 0x36]
+ movs r1, 0xA
+ ldrsh r2, [r4, r1]
+ lsls r2, 1
+ movs r3, 0x10
+ negs r3, r3
+ adds r1, r3, 0
+ subs r1, r2
+ strh r1, [r0, 0x38]
+ ldrh r3, [r0, 0x4]
+ lsls r2, r3, 22
+ lsrs r2, 22
+ adds r2, r5
+ ldr r5, _080DD874
+ adds r1, r5, 0
+ ands r2, r1
+ ldr r1, _080DD878
+ ands r1, r3
+ orrs r1, r2
+ strh r1, [r0, 0x4]
+ bl sub_80786EC
+ ldrh r0, [r4, 0x1E]
+ adds r0, 0x1
+ strh r0, [r4, 0x1E]
+_080DD85C:
+ movs r6, 0x20
+ ldrsh r0, [r4, r6]
+ negs r0, r0
+ strh r0, [r4, 0x20]
+_080DD864:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DD86C: .4byte gSpriteTemplate_83DAD90
+_080DD870: .4byte gSprites
+_080DD874: .4byte 0x000003ff
+_080DD878: .4byte 0xfffffc00
+ thumb_func_end sub_80DD774
+
+ thumb_func_start sub_80DD87C
+sub_80DD87C: @ 80DD87C
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_8078718
+ lsls r0, 24
+ cmp r0, 0
+ beq _080DD8AE
+ ldr r0, _080DD8B4
+ bl FindTaskIdByFunc
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0xFF
+ beq _080DD8A8
+ ldr r0, _080DD8B8
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x1E]
+ subs r0, 0x1
+ strh r0, [r1, 0x1E]
+_080DD8A8:
+ adds r0, r4, 0
+ bl DestroySprite
+_080DD8AE:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DD8B4: .4byte sub_80DD604
+_080DD8B8: .4byte gTasks
+ thumb_func_end sub_80DD87C
+
+ thumb_func_start sub_80DD8BC
+sub_80DD8BC: @ 80DD8BC
+ push {lr}
+ ldr r0, _080DD8E4
+ ldr r0, [r0]
+ ldrb r1, [r0, 0x11]
+ lsrs r0, r1, 4
+ lsls r1, 28
+ lsrs r1, 28
+ subs r0, r1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ movs r2, 0xFF
+ lsls r2, 24
+ adds r0, r2
+ lsrs r0, 24
+ cmp r0, 0x4
+ bls _080DD8DE
+ movs r1, 0x1
+_080DD8DE:
+ adds r0, r1, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080DD8E4: .4byte gUnknown_0202F7B4
+ thumb_func_end sub_80DD8BC
+
+ thumb_func_start sub_80DD8E8
+sub_80DD8E8: @ 80DD8E8
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldr r5, _080DD920
+ ldrb r1, [r5, 0x8]
+ bl StartSpriteAnim
+ ldrh r0, [r5]
+ strh r0, [r4, 0x24]
+ ldrh r0, [r5, 0x2]
+ strh r0, [r4, 0x32]
+ ldrh r0, [r4, 0x34]
+ ldrh r1, [r5, 0x4]
+ subs r0, r1
+ strh r0, [r4, 0x34]
+ movs r0, 0x3
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r5, 0x6]
+ strh r0, [r4, 0x30]
+ ldr r0, _080DD924
+ str r0, [r4, 0x1C]
+ adds r4, 0x3E
+ ldrb r0, [r4]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r4]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DD920: .4byte gUnknown_03004B00
+_080DD924: .4byte sub_80DD928
+ thumb_func_end sub_80DD8E8
+
+ thumb_func_start sub_80DD928
+sub_80DD928: @ 80DD928
+ push {lr}
+ adds r2, r0, 0
+ adds r3, r2, 0
+ adds r3, 0x3E
+ ldrb r0, [r3]
+ movs r1, 0x5
+ negs r1, r1
+ ands r1, r0
+ strb r1, [r3]
+ ldrh r1, [r2, 0x34]
+ movs r3, 0x34
+ ldrsh r0, [r2, r3]
+ cmp r0, 0
+ beq _080DD960
+ ldrh r3, [r2, 0x32]
+ adds r0, r1, r3
+ strh r0, [r2, 0x26]
+ ldrh r0, [r2, 0x2E]
+ adds r1, r0
+ strh r1, [r2, 0x34]
+ adds r0, 0x1
+ strh r0, [r2, 0x2E]
+ lsls r1, 16
+ cmp r1, 0
+ ble _080DD972
+ movs r0, 0
+ strh r0, [r2, 0x34]
+ b _080DD972
+_080DD960:
+ ldrh r0, [r2, 0x30]
+ subs r0, 0x1
+ strh r0, [r2, 0x30]
+ lsls r0, 16
+ cmp r0, 0
+ bne _080DD972
+ adds r0, r2, 0
+ bl move_anim_8072740
+_080DD972:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80DD928
+
+ thumb_func_start sub_80DD978
+sub_80DD978: @ 80DD978
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _080DD9A0
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080DD994
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl StartSpriteAffineAnim
+_080DD994:
+ adds r0, r4, 0
+ bl sub_807941C
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DD9A0: .4byte gUnknown_0202F7C8
+ thumb_func_end sub_80DD978
+
+ thumb_func_start sub_80DD9A4
+sub_80DD9A4: @ 80DD9A4
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldr r5, _080DD9F0
+ ldrb r0, [r5]
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x20]
+ ldrb r0, [r5]
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080DD9F4
+ ldrh r3, [r2]
+ ldrh r5, [r4, 0x20]
+ adds r1, r3, r5
+ strh r1, [r4, 0x20]
+ ldrh r1, [r2, 0x2]
+ adds r0, r1
+ strh r0, [r4, 0x22]
+ strh r3, [r4, 0x30]
+ strh r1, [r4, 0x32]
+ ldrh r0, [r2, 0x4]
+ strh r0, [r4, 0x38]
+ ldrb r1, [r2, 0x6]
+ adds r0, r4, 0
+ bl StartSpriteAnim
+ ldr r0, _080DD9F8
+ str r0, [r4, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DD9F0: .4byte gUnknown_0202F7C9
+_080DD9F4: .4byte gUnknown_03004B00
+_080DD9F8: .4byte sub_80DD9FC
+ thumb_func_end sub_80DD9A4
+
+ thumb_func_start sub_80DD9FC
+sub_80DD9FC: @ 80DD9FC
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x8
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r4, 0x30]
+ ldrh r1, [r4, 0x34]
+ adds r0, r1
+ strh r0, [r4, 0x34]
+ ldrh r0, [r4, 0x32]
+ ldrh r2, [r4, 0x36]
+ adds r0, r2
+ strh r0, [r4, 0x36]
+ movs r1, 0x34
+ ldrsh r0, [r4, r1]
+ movs r1, 0x28
+ bl __divsi3
+ ldrh r1, [r4, 0x24]
+ adds r1, r0
+ strh r1, [r4, 0x24]
+ movs r2, 0x2E
+ ldrsh r0, [r4, r2]
+ movs r2, 0x38
+ ldrsh r1, [r4, r2]
+ bl Sin
+ ldrh r1, [r4, 0x26]
+ subs r1, r0
+ strh r1, [r4, 0x26]
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x8C
+ ble _080DDA46
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080DDA46:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80DD9FC
+
+ thumb_func_start sub_80DDA4C
+sub_80DDA4C: @ 80DDA4C
+ push {lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldr r2, _080DDA84
+ ldr r0, [r2]
+ cmp r0, 0x20
+ bgt _080DDA60
+ ldr r1, _080DDA88
+ movs r0, 0
+ strh r0, [r1, 0xE]
+_080DDA60:
+ ldr r2, [r2]
+ adds r0, r2, 0
+ subs r0, 0x21
+ cmp r0, 0x20
+ bhi _080DDA70
+ ldr r1, _080DDA88
+ movs r0, 0x1
+ strh r0, [r1, 0xE]
+_080DDA70:
+ cmp r2, 0x41
+ ble _080DDA7A
+ ldr r1, _080DDA88
+ movs r0, 0x2
+ strh r0, [r1, 0xE]
+_080DDA7A:
+ adds r0, r3, 0
+ bl move_anim_task_del
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DDA84: .4byte gUnknown_0202F7B8
+_080DDA88: .4byte gUnknown_03004B00
+ thumb_func_end sub_80DDA4C
+
+ thumb_func_start sub_80DDA8C
+sub_80DDA8C: @ 80DDA8C
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r1, _080DDAE8
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r5, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ bne _080DDAAE
+ movs r0, 0
+ bl sub_80789D4
+ movs r0, 0xC8
+ strh r0, [r5, 0xA]
+_080DDAAE:
+ ldr r4, _080DDAEC
+ movs r1, 0xA
+ ldrsh r0, [r5, r1]
+ movs r1, 0xA
+ bl __divsi3
+ ldrh r1, [r4]
+ adds r1, r0
+ strh r1, [r4]
+ ldrh r0, [r5, 0xA]
+ subs r0, 0x3
+ strh r0, [r5, 0xA]
+ movs r1, 0x8
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x78
+ bne _080DDADA
+ movs r0, 0x1
+ bl sub_80789D4
+ adds r0, r6, 0
+ bl move_anim_task_del
+_080DDADA:
+ ldrh r0, [r5, 0x8]
+ adds r0, 0x1
+ strh r0, [r5, 0x8]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DDAE8: .4byte gTasks
+_080DDAEC: .4byte gUnknown_030041B8
+ thumb_func_end sub_80DDA8C
+
+ thumb_func_start sub_80DDAF0
+sub_80DDAF0: @ 80DDAF0
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r5, r0, 0
+ ldr r1, _080DDB5C
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r4, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080DDB1C
+ movs r0, 0
+ bl sub_80789D4
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ ldr r0, _080DDB60
+ ldrh r0, [r0]
+ strh r0, [r4, 0xC]
+_080DDB1C:
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x50
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0xA]
+ ldr r6, _080DDB60
+ movs r2, 0xA
+ ldrsh r1, [r4, r2]
+ movs r0, 0x4
+ bl Cos
+ ldrh r4, [r4, 0xC]
+ adds r0, r4
+ strh r0, [r6]
+ ldr r0, _080DDB64
+ movs r2, 0xE
+ ldrsh r1, [r0, r2]
+ ldr r0, _080DDB68
+ cmp r1, r0
+ bne _080DDB54
+ movs r0, 0
+ strh r0, [r6]
+ movs r0, 0x1
+ bl sub_80789D4
+ adds r0, r5, 0
+ bl move_anim_task_del
+_080DDB54:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DDB5C: .4byte gTasks
+_080DDB60: .4byte gUnknown_030041B8
+_080DDB64: .4byte gUnknown_03004B00
+_080DDB68: .4byte 0x00000fff
+ thumb_func_end sub_80DDAF0
+
+ thumb_func_start sub_80DDB6C
+sub_80DDB6C: @ 80DDB6C
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r1, 0x1
+ bl sub_80787B0
+ ldr r0, _080DDBC8
+ ldrh r0, [r0, 0x4]
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r4, 0x20]
+ strh r0, [r4, 0x30]
+ ldr r5, _080DDBCC
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x32]
+ ldrh r0, [r4, 0x22]
+ strh r0, [r4, 0x34]
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x36]
+ adds r0, r4, 0
+ bl sub_8078BD4
+ ldr r0, _080DDBD0
+ str r0, [r4, 0x1C]
+ movs r0, 0x10
+ strh r0, [r4, 0x3A]
+ ldr r1, _080DDBD4
+ movs r2, 0xFD
+ lsls r2, 6
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ ldrh r0, [r4, 0x3A]
+ strh r0, [r1]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DDBC8: .4byte gUnknown_03004B00
+_080DDBCC: .4byte gUnknown_0202F7C9
+_080DDBD0: .4byte sub_80DDBD8
+_080DDBD4: .4byte REG_BLDCNT
+ thumb_func_end sub_80DDB6C
+
+ thumb_func_start sub_80DDBD8
+sub_80DDBD8: @ 80DDBD8
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_80DDCC8
+ adds r0, r4, 0
+ bl sub_8078B5C
+ lsls r0, 24
+ cmp r0, 0
+ beq _080DDBF8
+ ldr r0, _080DDBF4
+ str r0, [r4, 0x1C]
+ b _080DDC42
+ .align 2, 0
+_080DDBF4: .4byte sub_80DDC4C
+_080DDBF8:
+ movs r1, 0x38
+ ldrsh r0, [r4, r1]
+ movs r1, 0xA
+ bl Sin
+ ldrh r1, [r4, 0x24]
+ adds r0, r1
+ strh r0, [r4, 0x24]
+ movs r1, 0x38
+ ldrsh r0, [r4, r1]
+ movs r1, 0xF
+ bl Cos
+ ldrh r1, [r4, 0x26]
+ adds r0, r1
+ strh r0, [r4, 0x26]
+ ldrh r2, [r4, 0x38]
+ adds r0, r2, 0x5
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x38]
+ ldrh r0, [r4, 0x38]
+ lsls r2, 16
+ asrs r2, 16
+ cmp r2, 0
+ beq _080DDC30
+ cmp r2, 0xC4
+ ble _080DDC42
+_080DDC30:
+ lsls r0, 16
+ cmp r0, 0
+ ble _080DDC42
+ ldr r0, _080DDC48
+ movs r1, 0
+ ldrsb r1, [r0, r1]
+ movs r0, 0xC4
+ bl PlaySE12WithPanning
+_080DDC42:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DDC48: .4byte gUnknown_0202F7D2
+ thumb_func_end sub_80DDBD8
+
+ thumb_func_start sub_80DDC4C
+sub_80DDC4C: @ 80DDC4C
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r0, 0x1
+ strh r0, [r4, 0x2E]
+ adds r0, r4, 0
+ bl sub_8078B5C
+ movs r1, 0x38
+ ldrsh r0, [r4, r1]
+ movs r1, 0xA
+ bl Sin
+ ldrh r1, [r4, 0x24]
+ adds r0, r1
+ strh r0, [r4, 0x24]
+ movs r1, 0x38
+ ldrsh r0, [r4, r1]
+ movs r1, 0xF
+ bl Cos
+ ldrh r1, [r4, 0x26]
+ adds r0, r1
+ strh r0, [r4, 0x26]
+ ldrh r2, [r4, 0x38]
+ adds r0, r2, 0x5
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x38]
+ ldrh r0, [r4, 0x38]
+ lsls r2, 16
+ asrs r2, 16
+ cmp r2, 0
+ beq _080DDC92
+ cmp r2, 0xC4
+ ble _080DDC9E
+_080DDC92:
+ lsls r0, 16
+ cmp r0, 0
+ ble _080DDC9E
+ movs r0, 0xC4
+ bl PlaySE
+_080DDC9E:
+ movs r1, 0x3A
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080DDCBC
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r0, _080DDCB8
+ str r0, [r4, 0x1C]
+ b _080DDCC2
+ .align 2, 0
+_080DDCB8: .4byte sub_807861C
+_080DDCBC:
+ adds r0, r4, 0
+ bl sub_80DDCC8
+_080DDCC2:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80DDC4C
+
+ thumb_func_start sub_80DDCC8
+sub_80DDCC8: @ 80DDCC8
+ push {r4,lr}
+ adds r3, r0, 0
+ ldrh r2, [r3, 0x3A]
+ movs r1, 0x3A
+ ldrsh r0, [r3, r1]
+ cmp r0, 0xFF
+ ble _080DDCEC
+ adds r0, r2, 0x1
+ strh r0, [r3, 0x3A]
+ lsls r0, 16
+ ldr r1, _080DDCE8
+ cmp r0, r1
+ bne _080DDD4C
+ movs r0, 0
+ b _080DDD4A
+ .align 2, 0
+_080DDCE8: .4byte 0x010d0000
+_080DDCEC:
+ ldrh r1, [r3, 0x3C]
+ adds r4, r1, 0x1
+ strh r4, [r3, 0x3C]
+ movs r0, 0xFF
+ ands r0, r1
+ cmp r0, 0
+ bne _080DDD4C
+ ldr r1, _080DDD10
+ ands r1, r4
+ strh r1, [r3, 0x3C]
+ movs r0, 0x80
+ lsls r0, 1
+ ands r0, r1
+ cmp r0, 0
+ beq _080DDD14
+ adds r0, r2, 0x1
+ b _080DDD16
+ .align 2, 0
+_080DDD10: .4byte 0xffffff00
+_080DDD14:
+ subs r0, r2, 0x1
+_080DDD16:
+ strh r0, [r3, 0x3A]
+ ldr r2, _080DDD54
+ ldrh r1, [r3, 0x3A]
+ movs r0, 0x10
+ subs r0, r1
+ lsls r0, 8
+ orrs r0, r1
+ strh r0, [r2]
+ movs r2, 0x3A
+ ldrsh r0, [r3, r2]
+ cmp r0, 0
+ beq _080DDD32
+ cmp r0, 0x10
+ bne _080DDD3E
+_080DDD32:
+ ldrh r0, [r3, 0x3C]
+ movs r2, 0x80
+ lsls r2, 1
+ adds r1, r2, 0
+ eors r0, r1
+ strh r0, [r3, 0x3C]
+_080DDD3E:
+ movs r1, 0x3A
+ ldrsh r0, [r3, r1]
+ cmp r0, 0
+ bne _080DDD4C
+ movs r0, 0x80
+ lsls r0, 1
+_080DDD4A:
+ strh r0, [r3, 0x3A]
+_080DDD4C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DDD54: .4byte REG_BLDALPHA
+ thumb_func_end sub_80DDCC8
+
+ thumb_func_start sub_80DDD58
+sub_80DDD58: @ 80DDD58
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x1
+ bl sub_8078764
+ ldr r1, _080DDD74
+ str r1, [r4, 0x1C]
+ adds r0, r4, 0
+ bl _call_via_r1
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DDD74: .4byte sub_80DDD78
+ thumb_func_end sub_80DDD58
+
+ thumb_func_start sub_80DDD78
+sub_80DDD78: @ 80DDD78
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ movs r1, 0x20
+ bl Sin
+ strh r0, [r4, 0x24]
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ movs r1, 0x8
+ bl Cos
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x2E]
+ subs r0, 0x41
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x82
+ bhi _080DDDAC
+ ldrb r0, [r4, 0x5]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r0
+ movs r0, 0x8
+ b _080DDDB6
+_080DDDAC:
+ ldrb r0, [r4, 0x5]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r0
+ movs r0, 0x4
+_080DDDB6:
+ orrs r1, r0
+ strb r1, [r4, 0x5]
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x13
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r4, 0x32]
+ adds r0, 0x50
+ strh r0, [r4, 0x32]
+ lsls r0, 16
+ asrs r0, 24
+ ldrh r1, [r4, 0x26]
+ adds r0, r1
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x3C]
+ adds r0, 0x1
+ strh r0, [r4, 0x3C]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3D
+ bne _080DDDE8
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080DDDE8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80DDD78
+
+ thumb_func_start sub_80DDDF0
+sub_80DDDF0: @ 80DDDF0
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ ldr r1, _080DDE68
+ movs r2, 0xFD
+ lsls r2, 6
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r2, 0x80
+ lsls r2, 5
+ adds r0, r2, 0
+ strh r0, [r1]
+ movs r0, 0
+ bl obj_id_for_side_relative_to_move
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_8078E70
+ adds r0, r4, 0
+ movs r1, 0x80
+ movs r2, 0x80
+ movs r3, 0
+ bl obj_id_set_rotscale
+ ldr r1, _080DDE6C
+ lsls r0, r4, 4
+ adds r0, r4
+ lsls r0, 2
+ adds r0, r1
+ adds r0, 0x3E
+ ldrb r2, [r0]
+ movs r1, 0x5
+ negs r1, r1
+ ands r1, r2
+ strb r1, [r0]
+ ldr r1, _080DDE70
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ movs r2, 0
+ movs r1, 0x80
+ strh r1, [r0, 0x8]
+ ldr r1, _080DDE74
+ ldrh r1, [r1]
+ strh r1, [r0, 0xA]
+ strh r2, [r0, 0xC]
+ movs r1, 0x10
+ strh r1, [r0, 0xE]
+ ldr r1, _080DDE78
+ str r1, [r0]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DDE68: .4byte REG_BLDCNT
+_080DDE6C: .4byte gSprites
+_080DDE70: .4byte gTasks
+_080DDE74: .4byte gUnknown_03004B00
+_080DDE78: .4byte sub_80DDE7C
+ thumb_func_end sub_80DDDF0
+
+ thumb_func_start sub_80DDE7C
+sub_80DDE7C: @ 80DDE7C
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080DDEC4
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r3, r1, r2
+ ldrh r0, [r3, 0x1C]
+ adds r0, 0x1
+ strh r0, [r3, 0x1C]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3
+ bne _080DDEBE
+ movs r0, 0
+ strh r0, [r3, 0x1C]
+ ldrh r1, [r3, 0xC]
+ adds r1, 0x1
+ strh r1, [r3, 0xC]
+ ldrh r0, [r3, 0xE]
+ subs r0, 0x1
+ strh r0, [r3, 0xE]
+ ldr r2, _080DDEC8
+ lsls r0, 8
+ orrs r1, r0
+ strh r1, [r2]
+ movs r1, 0xC
+ ldrsh r0, [r3, r1]
+ cmp r0, 0x9
+ bne _080DDEBE
+ ldr r0, _080DDECC
+ str r0, [r3]
+_080DDEBE:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DDEC4: .4byte gTasks
+_080DDEC8: .4byte REG_BLDALPHA
+_080DDECC: .4byte sub_80DDED0
+ thumb_func_end sub_80DDE7C
+
+ thumb_func_start sub_80DDED0
+sub_80DDED0: @ 80DDED0
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r5, r0, 0
+ ldr r1, _080DDEF4
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r4, r0, r1
+ ldrh r1, [r4, 0xA]
+ movs r2, 0xA
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ ble _080DDEF8
+ subs r0, r1, 0x1
+ strh r0, [r4, 0xA]
+ b _080DDF36
+ .align 2, 0
+_080DDEF4: .4byte gTasks
+_080DDEF8:
+ movs r0, 0
+ bl obj_id_for_side_relative_to_move
+ lsls r0, 24
+ lsrs r1, r0, 24
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x8
+ movs r6, 0
+ strh r0, [r4, 0x8]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xFF
+ bgt _080DDF22
+ movs r0, 0x8
+ ldrsh r2, [r4, r0]
+ adds r0, r1, 0
+ adds r1, r2, 0
+ movs r3, 0
+ bl obj_id_set_rotscale
+ b _080DDF36
+_080DDF22:
+ adds r0, r1, 0
+ bl sub_8078F40
+ adds r0, r5, 0
+ bl move_anim_task_del
+ ldr r0, _080DDF3C
+ strh r6, [r0]
+ adds r0, 0x2
+ strh r6, [r0]
+_080DDF36:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DDF3C: .4byte REG_BLDCNT
+ thumb_func_end sub_80DDED0
+
+ thumb_func_start sub_80DDF40
+sub_80DDF40: @ 80DDF40
+ push {r4-r6,lr}
+ mov r6, r9
+ mov r5, r8
+ push {r5,r6}
+ sub sp, 0x4
+ adds r4, r0, 0
+ ldrh r5, [r4, 0x20]
+ ldrh r6, [r4, 0x22]
+ ldr r0, _080DDFDC
+ mov r8, r0
+ ldrb r0, [r0]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0
+ mov r9, r1
+ strh r0, [r4, 0x20]
+ mov r1, r8
+ ldrb r0, [r1]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x22]
+ mov r1, r9
+ strh r1, [r4, 0x2E]
+ ldr r2, _080DDFE0
+ ldrh r1, [r2]
+ strh r1, [r4, 0x30]
+ ldrh r1, [r2, 0x2]
+ strh r1, [r4, 0x32]
+ ldrh r1, [r2, 0x4]
+ strh r1, [r4, 0x34]
+ ldrh r1, [r4, 0x20]
+ lsls r1, 4
+ strh r1, [r4, 0x36]
+ lsls r0, 4
+ strh r0, [r4, 0x38]
+ lsls r5, 16
+ asrs r5, 16
+ movs r1, 0x20
+ ldrsh r0, [r4, r1]
+ subs r5, r0
+ lsls r5, 4
+ movs r0, 0
+ ldrsh r1, [r2, r0]
+ lsls r1, 1
+ adds r0, r5, 0
+ str r2, [sp]
+ bl __divsi3
+ strh r0, [r4, 0x3A]
+ lsls r6, 16
+ asrs r6, 16
+ movs r1, 0x22
+ ldrsh r0, [r4, r1]
+ subs r6, r0
+ lsls r6, 4
+ ldr r2, [sp]
+ movs r0, 0
+ ldrsh r1, [r2, r0]
+ lsls r1, 1
+ adds r0, r6, 0
+ bl __divsi3
+ strh r0, [r4, 0x3C]
+ ldr r0, _080DDFE4
+ str r0, [r4, 0x1C]
+ add sp, 0x4
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DDFDC: .4byte gUnknown_0202F7C8
+_080DDFE0: .4byte gUnknown_03004B00
+_080DDFE4: .4byte sub_80DDFE8
+ thumb_func_end sub_80DDF40
+
+ thumb_func_start sub_80DDFE8
+sub_80DDFE8: @ 80DDFE8
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x1
+ beq _080DE032
+ cmp r0, 0x1
+ bgt _080DDFFE
+ cmp r0, 0
+ beq _080DE008
+ b _080DE0F6
+_080DDFFE:
+ cmp r0, 0x2
+ beq _080DE09C
+ cmp r0, 0x3
+ beq _080DE0F0
+ b _080DE0F6
+_080DE008:
+ ldrh r0, [r5, 0x3A]
+ ldrh r2, [r5, 0x36]
+ adds r0, r2
+ strh r0, [r5, 0x36]
+ ldrh r1, [r5, 0x3C]
+ ldrh r2, [r5, 0x38]
+ adds r1, r2
+ strh r1, [r5, 0x38]
+ lsls r0, 16
+ asrs r0, 20
+ strh r0, [r5, 0x20]
+ lsls r1, 16
+ asrs r1, 20
+ strh r1, [r5, 0x22]
+ ldrh r0, [r5, 0x30]
+ subs r0, 0x1
+ strh r0, [r5, 0x30]
+ lsls r0, 16
+ cmp r0, 0
+ bgt _080DE0F6
+ b _080DE0E2
+_080DE032:
+ ldrh r0, [r5, 0x32]
+ subs r0, 0x1
+ strh r0, [r5, 0x32]
+ lsls r0, 16
+ cmp r0, 0
+ bgt _080DE0F6
+ ldr r4, _080DE098
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x30]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x32]
+ ldrh r0, [r5, 0x20]
+ lsls r0, 4
+ strh r0, [r5, 0x36]
+ ldrh r0, [r5, 0x22]
+ lsls r0, 4
+ strh r0, [r5, 0x38]
+ movs r1, 0x30
+ ldrsh r0, [r5, r1]
+ movs r2, 0x20
+ ldrsh r1, [r5, r2]
+ subs r0, r1
+ lsls r0, 4
+ movs r2, 0x34
+ ldrsh r1, [r5, r2]
+ bl __divsi3
+ strh r0, [r5, 0x3A]
+ movs r1, 0x32
+ ldrsh r0, [r5, r1]
+ movs r2, 0x22
+ ldrsh r1, [r5, r2]
+ subs r0, r1
+ lsls r0, 4
+ movs r2, 0x34
+ ldrsh r1, [r5, r2]
+ bl __divsi3
+ strh r0, [r5, 0x3C]
+ b _080DE0E2
+ .align 2, 0
+_080DE098: .4byte gUnknown_0202F7C9
+_080DE09C:
+ ldrh r0, [r5, 0x3A]
+ ldrh r1, [r5, 0x36]
+ adds r0, r1
+ strh r0, [r5, 0x36]
+ ldrh r1, [r5, 0x3C]
+ ldrh r2, [r5, 0x38]
+ adds r1, r2
+ strh r1, [r5, 0x38]
+ lsls r0, 16
+ asrs r0, 20
+ strh r0, [r5, 0x20]
+ lsls r1, 16
+ asrs r1, 20
+ strh r1, [r5, 0x22]
+ ldrh r0, [r5, 0x34]
+ subs r0, 0x1
+ strh r0, [r5, 0x34]
+ lsls r0, 16
+ cmp r0, 0
+ bgt _080DE0F6
+ ldr r4, _080DE0EC
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+_080DE0E2:
+ ldrh r0, [r5, 0x2E]
+ adds r0, 0x1
+ strh r0, [r5, 0x2E]
+ b _080DE0F6
+ .align 2, 0
+_080DE0EC: .4byte gUnknown_0202F7C9
+_080DE0F0:
+ adds r0, r5, 0
+ bl move_anim_8074EE0
+_080DE0F6:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80DDFE8
+
+ thumb_func_start sub_80DE0FC
+sub_80DE0FC: @ 80DE0FC
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x1
+ bl sub_8078764
+ ldr r0, _080DE110
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DE110: .4byte sub_80DE114
+ thumb_func_end sub_80DE0FC
+
+ thumb_func_start sub_80DE114
+sub_80DE114: @ 80DE114
+ push {r4-r6,lr}
+ adds r3, r0, 0
+ movs r5, 0
+ movs r6, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080DE1AA
+ adds r1, r3, 0
+ adds r1, 0x3E
+ ldrb r2, [r1]
+ movs r0, 0x4
+ ands r0, r2
+ adds r4, r1, 0
+ cmp r0, 0
+ bne _080DE13E
+ movs r0, 0x4
+ orrs r0, r2
+ strb r0, [r4]
+_080DE13E:
+ movs r1, 0x2E
+ ldrsh r0, [r3, r1]
+ cmp r0, 0
+ beq _080DE14E
+ cmp r0, 0x1
+ beq _080DE158
+ movs r6, 0x1
+ b _080DE162
+_080DE14E:
+ movs r1, 0x30
+ ldrsh r0, [r3, r1]
+ cmp r0, 0x2
+ bne _080DE162
+ b _080DE166
+_080DE158:
+ movs r1, 0x30
+ ldrsh r0, [r3, r1]
+ cmp r0, 0x4
+ bne _080DE162
+ movs r5, 0x1
+_080DE162:
+ cmp r5, 0
+ beq _080DE198
+_080DE166:
+ ldrb r2, [r4]
+ 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, [r4]
+ ldrh r0, [r3, 0x32]
+ adds r0, 0x1
+ movs r1, 0
+ strh r0, [r3, 0x32]
+ strh r1, [r3, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x5
+ bne _080DE1AA
+ strh r1, [r3, 0x32]
+ ldrh r0, [r3, 0x2E]
+ adds r0, 0x1
+ strh r0, [r3, 0x2E]
+ b _080DE1AA
+_080DE198:
+ cmp r6, 0
+ beq _080DE1A4
+ adds r0, r3, 0
+ bl move_anim_8072740
+ b _080DE1AA
+_080DE1A4:
+ ldrh r0, [r3, 0x30]
+ adds r0, 0x1
+ strh r0, [r3, 0x30]
+_080DE1AA:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80DE114
+
+ thumb_func_start sub_80DE1B0
+sub_80DE1B0: @ 80DE1B0
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ ldr r1, _080DE1DC
+ adds r5, r0, r1
+ movs r0, 0x1
+ bl duplicate_obj_of_side_rel2move_in_transparent_mode
+ movs r6, 0
+ movs r1, 0
+ strh r0, [r5, 0x8]
+ lsls r0, 16
+ cmp r0, 0
+ bge _080DE1E0
+ adds r0, r4, 0
+ bl move_anim_task_del
+ b _080DE2C0
+ .align 2, 0
+_080DE1DC: .4byte gTasks
+_080DE1E0:
+ strh r1, [r5, 0xA]
+ movs r0, 0xF
+ strh r0, [r5, 0xC]
+ movs r0, 0x2
+ strh r0, [r5, 0xE]
+ strh r1, [r5, 0x10]
+ ldr r1, _080DE244
+ movs r2, 0xFD
+ lsls r2, 6
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r2, _080DE248
+ ldrh r0, [r5, 0xE]
+ lsls r0, 8
+ ldrh r1, [r5, 0xC]
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r4, _080DE24C
+ movs r0, 0x8
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ movs r1, 0x50
+ strh r1, [r0, 0x2E]
+ ldr r0, _080DE250
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _080DE258
+ movs r2, 0x8
+ ldrsh r1, [r5, r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldr r1, _080DE254
+ strh r1, [r0, 0x30]
+ movs r0, 0x8
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ movs r1, 0x70
+ b _080DE276
+ .align 2, 0
+_080DE244: .4byte REG_BLDCNT
+_080DE248: .4byte REG_BLDALPHA
+_080DE24C: .4byte gSprites
+_080DE250: .4byte gUnknown_0202F7C9
+_080DE254: .4byte 0x0000ff70
+_080DE258:
+ movs r2, 0x8
+ ldrsh r1, [r5, r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ movs r1, 0x90
+ strh r1, [r0, 0x30]
+ movs r0, 0x8
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldr r1, _080DE2C8
+_080DE276:
+ strh r1, [r0, 0x32]
+ ldr r4, _080DE2CC
+ movs r2, 0x8
+ ldrsh r1, [r5, r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ movs r2, 0
+ strh r2, [r0, 0x34]
+ movs r0, 0x8
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ strh r2, [r0, 0x36]
+ movs r2, 0x8
+ ldrsh r1, [r5, r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldr r1, _080DE2D0
+ bl oamt_set_x3A_32
+ movs r0, 0x8
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r4, 0x1C
+ adds r0, r4
+ ldr r1, _080DE2D4
+ str r1, [r0]
+ ldr r0, _080DE2D8
+ str r0, [r5]
+_080DE2C0:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DE2C8: .4byte 0x0000ff90
+_080DE2CC: .4byte gSprites
+_080DE2D0: .4byte SpriteCallbackDummy
+_080DE2D4: .4byte sub_8078394
+_080DE2D8: .4byte sub_80DE2DC
+ thumb_func_end sub_80DE1B0
+
+ thumb_func_start sub_80DE2DC
+sub_80DE2DC: @ 80DE2DC
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ ldr r1, _080DE300
+ adds r4, r0, r1
+ movs r1, 0x10
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ beq _080DE37C
+ cmp r0, 0x1
+ bgt _080DE304
+ cmp r0, 0
+ beq _080DE30A
+ b _080DE3A6
+ .align 2, 0
+_080DE300: .4byte gTasks
+_080DE304:
+ cmp r0, 0x2
+ beq _080DE3A0
+ b _080DE3A6
+_080DE30A:
+ ldrh r1, [r4, 0xA]
+ adds r1, 0x1
+ strh r1, [r4, 0xA]
+ movs r0, 0x3
+ ands r0, r1
+ strh r0, [r4, 0x12]
+ cmp r0, 0x1
+ bne _080DE328
+ ldrh r1, [r4, 0xC]
+ movs r2, 0xC
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ ble _080DE328
+ subs r0, r1, 0x1
+ strh r0, [r4, 0xC]
+_080DE328:
+ movs r1, 0x12
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x3
+ bne _080DE33E
+ ldrh r1, [r4, 0xE]
+ movs r2, 0xE
+ ldrsh r0, [r4, r2]
+ cmp r0, 0xF
+ bgt _080DE33E
+ adds r0, r1, 0x1
+ strh r0, [r4, 0xE]
+_080DE33E:
+ ldr r2, _080DE374
+ ldrh r0, [r4, 0xE]
+ lsls r0, 8
+ ldrh r1, [r4, 0xC]
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r1, [r4, 0xC]
+ movs r0, 0x80
+ lsls r0, 13
+ cmp r1, r0
+ bne _080DE3A6
+ movs r1, 0xA
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x50
+ ble _080DE3A6
+ movs r2, 0x8
+ ldrsh r1, [r4, r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080DE378
+ adds r0, r1
+ bl obj_delete_but_dont_free_vram
+ movs r0, 0x1
+ strh r0, [r4, 0x10]
+ b _080DE3A6
+ .align 2, 0
+_080DE374: .4byte REG_BLDALPHA
+_080DE378: .4byte gSprites
+_080DE37C:
+ ldrh r0, [r4, 0x14]
+ adds r0, 0x1
+ movs r1, 0
+ strh r0, [r4, 0x14]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080DE3A6
+ ldr r0, _080DE39C
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ ldrh r0, [r4, 0x10]
+ adds r0, 0x1
+ strh r0, [r4, 0x10]
+ b _080DE3A6
+ .align 2, 0
+_080DE39C: .4byte REG_BLDCNT
+_080DE3A0:
+ adds r0, r2, 0
+ bl move_anim_task_del
+_080DE3A6:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80DE2DC
+
+ thumb_func_start sub_80DE3AC
+sub_80DE3AC: @ 80DE3AC
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r2, _080DE3CC
+ adds r1, r2
+ movs r2, 0
+ strh r2, [r1, 0x26]
+ ldr r2, _080DE3D0
+ str r2, [r1]
+ bl _call_via_r2
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DE3CC: .4byte gTasks
+_080DE3D0: .4byte sub_80DE3D4
+ thumb_func_end sub_80DE3AC
+
+ thumb_func_start sub_80DE3D4
+sub_80DE3D4: @ 80DE3D4
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ ldr r1, _080DE40C
+ adds r5, r0, r1
+ ldr r0, _080DE410
+ ldrb r0, [r0]
+ bl battle_get_per_side_status_permutated
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r1, 0x26
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x4
+ bls _080DE400
+ b _080DE604
+_080DE400:
+ lsls r0, 2
+ ldr r1, _080DE414
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080DE40C: .4byte gTasks
+_080DE410: .4byte gUnknown_0202F7C9
+_080DE414: .4byte _080DE418
+ .align 2, 0
+_080DE418:
+ .4byte _080DE42C
+ .4byte _080DE500
+ .4byte _080DE544
+ .4byte _080DE5AC
+ .4byte _080DE5E0
+_080DE42C:
+ ldr r7, _080DE460
+ adds r0, r7, 0
+ bl AllocSpritePalette
+ lsls r0, 24
+ lsrs r0, 24
+ movs r2, 0
+ mov r8, r2
+ strh r0, [r5, 0x24]
+ cmp r0, 0xFF
+ beq _080DE456
+ movs r0, 0x1
+ bl duplicate_obj_of_side_rel2move_in_transparent_mode
+ strh r0, [r5, 0x8]
+ lsls r0, 16
+ cmp r0, 0
+ bge _080DE464
+ adds r0, r7, 0
+ bl FreeSpritePaletteByTag
+_080DE456:
+ adds r0, r4, 0
+ bl move_anim_task_del
+ b _080DE60A
+ .align 2, 0
+_080DE460: .4byte 0x00002771
+_080DE464:
+ ldr r4, _080DE4E4
+ movs r3, 0x8
+ ldrsh r0, [r5, r3]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ ldrh r2, [r5, 0x24]
+ lsls r2, 4
+ ldrb r3, [r1, 0x5]
+ movs r0, 0xF
+ ands r0, r3
+ orrs r0, r2
+ strb r0, [r1, 0x5]
+ movs r1, 0x8
+ ldrsh r0, [r5, r1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ ldrb r2, [r1, 0x1]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1, 0x1]
+ movs r2, 0x8
+ ldrsh r1, [r5, r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrb r1, [r0, 0x5]
+ movs r2, 0xC
+ orrs r1, r2
+ strb r1, [r0, 0x5]
+ mov r3, r8
+ strh r3, [r5, 0xA]
+ strh r3, [r5, 0xC]
+ movs r0, 0x10
+ strh r0, [r5, 0xE]
+ movs r0, 0x1
+ bl obj_id_for_side_relative_to_move
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+ movs r0, 0x22
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrb r0, [r0, 0x5]
+ lsrs r0, 4
+ adds r0, 0x10
+ lsls r0, 4
+ strh r0, [r5, 0x10]
+ cmp r6, 0x1
+ bne _080DE4EC
+ movs r2, 0x80
+ lsls r2, 19
+ ldrh r1, [r2]
+ ldr r0, _080DE4E8
+ b _080DE4F4
+ .align 2, 0
+_080DE4E4: .4byte gSprites
+_080DE4E8: .4byte 0x0000fdff
+_080DE4EC:
+ movs r2, 0x80
+ lsls r2, 19
+ ldrh r1, [r2]
+ ldr r0, _080DE4FC
+_080DE4F4:
+ ands r0, r1
+ strh r0, [r2]
+ b _080DE604
+ .align 2, 0
+_080DE4FC: .4byte 0x0000fbff
+_080DE500:
+ movs r1, 0x24
+ ldrsh r0, [r5, r1]
+ adds r0, 0x10
+ lsls r0, 4
+ strh r0, [r5, 0x24]
+ movs r2, 0x10
+ ldrsh r0, [r5, r2]
+ lsls r0, 1
+ ldr r1, _080DE534
+ adds r0, r1
+ movs r3, 0x24
+ ldrsh r1, [r5, r3]
+ lsls r1, 1
+ ldr r2, _080DE538
+ adds r1, r2
+ ldr r2, _080DE53C
+ bl CpuSet
+ ldrh r0, [r5, 0x10]
+ ldr r3, _080DE540
+ movs r1, 0x10
+ movs r2, 0xA
+ bl BlendPalette
+ b _080DE604
+ .align 2, 0
+_080DE534: .4byte gPlttBufferUnfaded
+_080DE538: .4byte gPlttBufferFaded
+_080DE53C: .4byte REG_BG0CNT
+_080DE540: .4byte 0x00003c0d
+_080DE544:
+ ldr r2, _080DE580
+ movs r0, 0x22
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r0, 0x26]
+ ldrh r0, [r0, 0x22]
+ adds r1, r0
+ subs r1, 0x20
+ lsls r1, 16
+ lsrs r2, r1, 16
+ cmp r1, 0
+ bge _080DE564
+ movs r2, 0
+_080DE564:
+ cmp r6, 0x1
+ bne _080DE584
+ lsls r0, r2, 24
+ lsrs r0, 24
+ adds r1, r2, 0
+ adds r1, 0x40
+ lsls r1, 24
+ lsrs r1, 24
+ movs r2, 0
+ str r2, [sp]
+ movs r2, 0x4
+ str r2, [sp, 0x4]
+ str r6, [sp, 0x8]
+ b _080DE59C
+ .align 2, 0
+_080DE580: .4byte gSprites
+_080DE584:
+ lsls r0, r2, 24
+ lsrs r0, 24
+ adds r1, r2, 0
+ adds r1, 0x40
+ lsls r1, 24
+ lsrs r1, 24
+ movs r2, 0
+ str r2, [sp]
+ movs r2, 0x8
+ str r2, [sp, 0x4]
+ movs r2, 0x1
+ str r2, [sp, 0x8]
+_080DE59C:
+ movs r2, 0x2
+ movs r3, 0x6
+ bl sub_8089944
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x1C]
+ b _080DE604
+_080DE5AC:
+ cmp r6, 0x1
+ bne _080DE5C0
+ ldr r1, _080DE5B8
+ ldr r2, _080DE5BC
+ adds r0, r2, 0
+ b _080DE5C6
+ .align 2, 0
+_080DE5B8: .4byte REG_BLDCNT
+_080DE5BC: .4byte 0x00003f42
+_080DE5C0:
+ ldr r1, _080DE5D4
+ ldr r3, _080DE5D8
+ adds r0, r3, 0
+_080DE5C6:
+ strh r0, [r1]
+ ldr r1, _080DE5DC
+ movs r2, 0x80
+ lsls r2, 5
+ adds r0, r2, 0
+ strh r0, [r1]
+ b _080DE604
+ .align 2, 0
+_080DE5D4: .4byte REG_BLDCNT
+_080DE5D8: .4byte 0x00003f44
+_080DE5DC: .4byte REG_BLDALPHA
+_080DE5E0:
+ cmp r6, 0x1
+ bne _080DE5F0
+ movs r0, 0x80
+ lsls r0, 19
+ ldrh r1, [r0]
+ movs r3, 0x80
+ lsls r3, 2
+ b _080DE5FA
+_080DE5F0:
+ movs r0, 0x80
+ lsls r0, 19
+ ldrh r1, [r0]
+ movs r3, 0x80
+ lsls r3, 3
+_080DE5FA:
+ adds r2, r3, 0
+ orrs r1, r2
+ strh r1, [r0]
+ ldr r0, _080DE618
+ str r0, [r5]
+_080DE604:
+ ldrh r0, [r5, 0x26]
+ adds r0, 0x1
+ strh r0, [r5, 0x26]
+_080DE60A:
+ add sp, 0xC
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DE618: .4byte sub_80DE61C
+ thumb_func_end sub_80DE3D4
+
+ thumb_func_start sub_80DE61C
+sub_80DE61C: @ 80DE61C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r5, r0, 0
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, _080DE6A0
+ adds r4, r0, r1
+ ldrh r1, [r4, 0xA]
+ adds r1, 0x1
+ strh r1, [r4, 0xA]
+ movs r0, 0x1
+ ands r0, r1
+ strh r0, [r4, 0x12]
+ cmp r0, 0
+ bne _080DE654
+ ldr r1, _080DE6A4
+ movs r2, 0xA
+ ldrsh r0, [r4, r2]
+ lsls r0, 1
+ adds r0, r1
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ movs r1, 0x12
+ bl __divsi3
+ strh r0, [r4, 0xC]
+_080DE654:
+ movs r2, 0x12
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x1
+ bne _080DE676
+ ldr r1, _080DE6A4
+ movs r2, 0xA
+ ldrsh r0, [r4, r2]
+ lsls r0, 1
+ adds r0, r1
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ movs r1, 0x12
+ bl __divsi3
+ movs r1, 0x10
+ subs r1, r0
+ strh r1, [r4, 0xE]
+_080DE676:
+ ldr r2, _080DE6A8
+ ldrh r0, [r4, 0xE]
+ lsls r0, 8
+ ldrh r1, [r4, 0xC]
+ orrs r0, r1
+ strh r0, [r2]
+ movs r2, 0xA
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x80
+ bne _080DE698
+ movs r0, 0
+ strh r0, [r4, 0x26]
+ ldr r1, _080DE6AC
+ str r1, [r4]
+ adds r0, r5, 0
+ bl _call_via_r1
+_080DE698:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DE6A0: .4byte gTasks
+_080DE6A4: .4byte gSineTable
+_080DE6A8: .4byte REG_BLDALPHA
+_080DE6AC: .4byte sub_80DE6B0
+ thumb_func_end sub_80DE61C
+
+ thumb_func_start sub_80DE6B0
+sub_80DE6B0: @ 80DE6B0
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, _080DE6E0
+ adds r4, r0, r1
+ ldr r0, _080DE6E4
+ ldrb r0, [r0]
+ bl battle_get_per_side_status_permutated
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r1, 0x26
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ beq _080DE72C
+ cmp r0, 0x1
+ bgt _080DE6E8
+ cmp r0, 0
+ beq _080DE6EE
+ b _080DE7AA
+ .align 2, 0
+_080DE6E0: .4byte gTasks
+_080DE6E4: .4byte gUnknown_0202F7C9
+_080DE6E8:
+ cmp r0, 0x2
+ beq _080DE740
+ b _080DE7AA
+_080DE6EE:
+ ldr r1, _080DE710
+ movs r0, 0x3
+ strb r0, [r1, 0x15]
+ movs r0, 0x1
+ bl obj_id_for_side_relative_to_move
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x24]
+ cmp r6, 0x1
+ bne _080DE718
+ movs r2, 0x80
+ lsls r2, 19
+ ldrh r1, [r2]
+ ldr r0, _080DE714
+ b _080DE720
+ .align 2, 0
+_080DE710: .4byte gUnknown_03004DC0
+_080DE714: .4byte 0x0000fdff
+_080DE718:
+ movs r2, 0x80
+ lsls r2, 19
+ ldrh r1, [r2]
+ ldr r0, _080DE728
+_080DE720:
+ ands r0, r1
+ strh r0, [r2]
+ b _080DE7AA
+ .align 2, 0
+_080DE728: .4byte 0x0000fbff
+_080DE72C:
+ ldrh r0, [r4, 0x10]
+ ldr r3, _080DE73C
+ movs r1, 0x10
+ movs r2, 0
+ bl BlendPalette
+ b _080DE7AA
+ .align 2, 0
+_080DE73C: .4byte 0x00003c0d
+_080DE740:
+ ldr r3, _080DE788
+ movs r0, 0x24
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+ movs r0, 0x8
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ bl obj_delete_but_dont_free_vram
+ ldr r0, _080DE78C
+ bl FreeSpritePaletteByTag
+ ldr r0, _080DE790
+ movs r1, 0
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ cmp r6, 0x1
+ bne _080DE794
+ subs r0, 0x52
+ ldrh r1, [r0]
+ movs r3, 0x80
+ lsls r3, 2
+ b _080DE79E
+ .align 2, 0
+_080DE788: .4byte gSprites
+_080DE78C: .4byte 0x00002771
+_080DE790: .4byte REG_BLDCNT
+_080DE794:
+ movs r0, 0x80
+ lsls r0, 19
+ ldrh r1, [r0]
+ movs r3, 0x80
+ lsls r3, 3
+_080DE79E:
+ adds r2, r3, 0
+ orrs r1, r2
+ strh r1, [r0]
+ adds r0, r5, 0
+ bl move_anim_task_del
+_080DE7AA:
+ ldrh r0, [r4, 0x26]
+ adds r0, 0x1
+ strh r0, [r4, 0x26]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80DE6B0
+
+ thumb_func_start sub_80DE7B8
+sub_80DE7B8: @ 80DE7B8
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ adds r7, r0, 0
+ ldr r0, _080DE7F4
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080DE800
+ ldr r4, _080DE7F8
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldrb r0, [r4]
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 8
+ movs r2, 0xE0
+ lsls r2, 13
+ adds r0, r2
+ lsrs r5, r0, 16
+ ldr r4, _080DE7FC
+ b _080DE824
+ .align 2, 0
+_080DE7F4: .4byte gUnknown_03004B00
+_080DE7F8: .4byte gUnknown_0202F7C8
+_080DE7FC: .4byte gUnknown_0202F7C9
+_080DE800:
+ ldr r4, _080DE8C8
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldrb r0, [r4]
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 8
+ movs r2, 0xE0
+ lsls r2, 13
+ adds r0, r2
+ lsrs r5, r0, 16
+ ldr r4, _080DE8CC
+_080DE824:
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ mov r10, r0
+ ldrb r0, [r4]
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 8
+ movs r1, 0xE0
+ lsls r1, 13
+ adds r0, r1
+ lsrs r0, 16
+ mov r9, r0
+ mov r8, r5
+ mov r2, r9
+ subs r4, r2, r5
+ lsls r4, 16
+ lsrs r4, 16
+ lsls r0, r6, 4
+ strh r0, [r7, 0x2E]
+ lsls r0, r5, 4
+ strh r0, [r7, 0x30]
+ mov r1, r10
+ subs r0, r1, r6
+ lsls r0, 4
+ ldr r5, _080DE8D0
+ movs r2, 0x2
+ ldrsh r1, [r5, r2]
+ bl __divsi3
+ strh r0, [r7, 0x32]
+ lsls r4, 16
+ asrs r4, 12
+ movs r0, 0x2
+ ldrsh r1, [r5, r0]
+ adds r0, r4, 0
+ bl __divsi3
+ strh r0, [r7, 0x34]
+ ldrh r0, [r5, 0x2]
+ strh r0, [r7, 0x36]
+ mov r1, r10
+ strh r1, [r7, 0x38]
+ mov r2, r9
+ strh r2, [r7, 0x3A]
+ movs r1, 0x36
+ ldrsh r0, [r7, r1]
+ lsrs r1, r0, 31
+ adds r0, r1
+ asrs r0, 1
+ strh r0, [r7, 0x3C]
+ ldrb r1, [r7, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x8
+ orrs r0, r1
+ strb r0, [r7, 0x5]
+ strh r6, [r7, 0x20]
+ mov r2, r8
+ strh r2, [r7, 0x22]
+ ldr r0, _080DE8D4
+ str r0, [r7, 0x1C]
+ adds r2, r7, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DE8C8: .4byte gUnknown_0202F7C9
+_080DE8CC: .4byte gUnknown_0202F7C8
+_080DE8D0: .4byte gUnknown_03004B00
+_080DE8D4: .4byte sub_80DE8D8
+ thumb_func_end sub_80DE7B8
+
+ thumb_func_start sub_80DE8D8
+sub_80DE8D8: @ 80DE8D8
+ push {r4,lr}
+ adds r2, r0, 0
+ ldrh r3, [r2, 0x36]
+ movs r1, 0x36
+ ldrsh r0, [r2, r1]
+ cmp r0, 0
+ beq _080DE910
+ ldrh r0, [r2, 0x32]
+ ldrh r4, [r2, 0x2E]
+ adds r0, r4
+ strh r0, [r2, 0x2E]
+ ldrh r1, [r2, 0x34]
+ ldrh r4, [r2, 0x30]
+ adds r1, r4
+ strh r1, [r2, 0x30]
+ lsls r0, 16
+ asrs r0, 20
+ strh r0, [r2, 0x20]
+ lsls r1, 16
+ asrs r1, 20
+ strh r1, [r2, 0x22]
+ subs r0, r3, 0x1
+ strh r0, [r2, 0x36]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0
+ bne _080DE910
+ strh r0, [r2, 0x2E]
+_080DE910:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80DE8D8
+
+ thumb_func_start sub_80DE918
+sub_80DE918: @ 80DE918
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x14
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _080DEA68
+ adds r1, r0
+ str r1, [sp]
+ ldr r1, _080DEA6C
+ movs r2, 0xFD
+ lsls r2, 6
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r3, 0x80
+ lsls r3, 5
+ adds r0, r3, 0
+ strh r0, [r1]
+ movs r0, 0
+ ldr r1, [sp]
+ strh r0, [r1, 0x12]
+ strh r0, [r1, 0x14]
+ strh r0, [r1, 0x16]
+ strh r0, [r1, 0x18]
+ movs r0, 0x10
+ strh r0, [r1, 0x1A]
+ ldr r2, _080DEA70
+ ldrh r0, [r2]
+ strh r0, [r1, 0x1C]
+ ldr r4, _080DEA74
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x4]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_807A100
+ lsls r0, 16
+ lsrs r0, 16
+ str r0, [sp, 0x8]
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080DE988
+ b _080DEA88
+_080DE988:
+ movs r4, 0
+_080DE98A:
+ lsls r1, r4, 16
+ asrs r3, r1, 16
+ ldr r0, _080DEA74
+ ldrb r2, [r0]
+ str r1, [sp, 0x10]
+ cmp r3, r2
+ beq _080DEA56
+ movs r0, 0x2
+ eors r2, r0
+ cmp r3, r2
+ beq _080DEA56
+ lsls r0, r4, 24
+ lsrs r4, r0, 24
+ adds r0, r4, 0
+ bl b_side_obj__get_some_boolean
+ lsls r0, 24
+ cmp r0, 0
+ beq _080DEA56
+ ldr r6, [sp, 0x4]
+ ldr r3, [sp, 0x8]
+ lsls r0, r3, 16
+ asrs r7, r0, 16
+ ldr r0, _080DEA78
+ adds r1, r6, 0
+ adds r2, r7, 0
+ movs r3, 0x37
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ cmp r0, 0x40
+ beq _080DEA56
+ adds r0, r4, 0
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ mov r10, r0
+ adds r0, r4, 0
+ movs r1, 0x3
+ bl sub_807A100
+ lsls r0, 16
+ lsrs r0, 16
+ mov r9, r0
+ mov r0, r8
+ lsls r5, r0, 4
+ add r5, r8
+ lsls r5, 2
+ ldr r1, _080DEA7C
+ adds r4, r5, r1
+ lsls r0, r6, 4
+ strh r0, [r4, 0x2E]
+ lsls r0, r7, 4
+ strh r0, [r4, 0x30]
+ mov r2, r10
+ subs r0, r2, r6
+ lsls r0, 4
+ ldr r3, _080DEA70
+ movs r2, 0x2
+ ldrsh r1, [r3, r2]
+ bl __divsi3
+ strh r0, [r4, 0x32]
+ mov r3, r9
+ lsls r0, r3, 16
+ asrs r0, 16
+ subs r0, r7
+ lsls r0, 4
+ ldr r2, _080DEA70
+ movs r3, 0x2
+ ldrsh r1, [r2, r3]
+ bl __divsi3
+ strh r0, [r4, 0x34]
+ ldr r1, _080DEA70
+ ldrh r0, [r1, 0x2]
+ strh r0, [r4, 0x36]
+ mov r2, r10
+ strh r2, [r4, 0x38]
+ mov r3, r9
+ strh r3, [r4, 0x3A]
+ ldr r0, _080DEA80
+ adds r5, r0
+ ldr r0, _080DEA84
+ str r0, [r5]
+ ldr r2, [sp]
+ movs r3, 0x20
+ ldrsh r1, [r2, r3]
+ adds r1, 0xD
+ lsls r1, 1
+ adds r0, r2, 0
+ adds r0, 0x8
+ adds r0, r1
+ mov r1, r8
+ strh r1, [r0]
+ ldrh r0, [r2, 0x20]
+ adds r0, 0x1
+ strh r0, [r2, 0x20]
+_080DEA56:
+ ldr r2, [sp, 0x10]
+ movs r3, 0x80
+ lsls r3, 9
+ adds r0, r2, r3
+ lsrs r4, r0, 16
+ asrs r0, 16
+ cmp r0, 0x3
+ ble _080DE98A
+ b _080DEB0C
+ .align 2, 0
+_080DEA68: .4byte gTasks
+_080DEA6C: .4byte REG_BLDCNT
+_080DEA70: .4byte gUnknown_03004B00
+_080DEA74: .4byte gUnknown_0202F7C8
+_080DEA78: .4byte gSpriteTemplate_83DAF08
+_080DEA7C: .4byte gSprites
+_080DEA80: .4byte gSprites + 0x1C
+_080DEA84: .4byte sub_80DE8D8
+_080DEA88:
+ ldr r0, _080DEB24
+ ldr r7, [sp, 0x4]
+ ldr r2, [sp, 0x8]
+ lsls r1, r2, 16
+ asrs r1, 16
+ str r1, [sp, 0xC]
+ adds r1, r7, 0
+ ldr r2, [sp, 0xC]
+ movs r3, 0x37
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ cmp r0, 0x40
+ beq _080DEB0C
+ movs r3, 0x30
+ mov r10, r3
+ movs r0, 0x28
+ mov r9, r0
+ ldr r6, _080DEB28
+ mov r1, r8
+ lsls r5, r1, 4
+ add r5, r8
+ lsls r5, 2
+ adds r4, r5, r6
+ lsls r0, r7, 4
+ strh r0, [r4, 0x2E]
+ ldr r2, [sp, 0xC]
+ lsls r0, r2, 4
+ strh r0, [r4, 0x30]
+ subs r0, r3, r7
+ lsls r0, 4
+ ldr r3, _080DEB2C
+ movs r2, 0x2
+ ldrsh r1, [r3, r2]
+ bl __divsi3
+ strh r0, [r4, 0x32]
+ mov r3, r9
+ ldr r1, [sp, 0xC]
+ subs r0, r3, r1
+ lsls r0, 4
+ ldr r2, _080DEB2C
+ movs r3, 0x2
+ ldrsh r1, [r2, r3]
+ bl __divsi3
+ strh r0, [r4, 0x34]
+ ldr r1, _080DEB2C
+ ldrh r0, [r1, 0x2]
+ strh r0, [r4, 0x36]
+ mov r2, r10
+ strh r2, [r4, 0x38]
+ mov r3, r9
+ strh r3, [r4, 0x3A]
+ adds r6, 0x1C
+ adds r5, r6
+ ldr r0, _080DEB30
+ str r0, [r5]
+ mov r1, r8
+ ldr r0, [sp]
+ strh r1, [r0, 0x22]
+ movs r0, 0x1
+ ldr r2, [sp]
+ strh r0, [r2, 0x20]
+_080DEB0C:
+ ldr r0, _080DEB34
+ ldr r3, [sp]
+ str r0, [r3]
+ add sp, 0x14
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DEB24: .4byte gSpriteTemplate_83DAF08
+_080DEB28: .4byte gSprites
+_080DEB2C: .4byte gUnknown_03004B00
+_080DEB30: .4byte sub_80DE8D8
+_080DEB34: .4byte sub_80DEB38
+ thumb_func_end sub_80DE918
+
+ thumb_func_start sub_80DEB38
+sub_80DEB38: @ 80DEB38
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ ldr r1, _080DEB5C
+ adds r4, r0, r1
+ movs r0, 0x8
+ ldrsh r1, [r4, r0]
+ cmp r1, 0x1
+ beq _080DEBEE
+ cmp r1, 0x1
+ bgt _080DEB60
+ cmp r1, 0
+ beq _080DEB6E
+ b _080DECA4
+ .align 2, 0
+_080DEB5C: .4byte gTasks
+_080DEB60:
+ cmp r1, 0x2
+ bne _080DEB66
+ b _080DEC80
+_080DEB66:
+ cmp r1, 0x3
+ bne _080DEB6C
+ b _080DEC94
+_080DEB6C:
+ b _080DECA4
+_080DEB6E:
+ movs r2, 0x14
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ bne _080DEBCE
+ ldrh r0, [r4, 0x12]
+ adds r0, 0x1
+ strh r0, [r4, 0x12]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080DEBCE
+ strh r1, [r4, 0x12]
+ ldrh r0, [r4, 0x16]
+ adds r0, 0x1
+ strh r0, [r4, 0x16]
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080DEBA4
+ ldrh r1, [r4, 0x18]
+ movs r2, 0x18
+ ldrsh r0, [r4, r2]
+ cmp r0, 0xF
+ bgt _080DEBB2
+ adds r0, r1, 0x1
+ strh r0, [r4, 0x18]
+ b _080DEBB2
+_080DEBA4:
+ ldrh r1, [r4, 0x1A]
+ movs r2, 0x1A
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ beq _080DEBB2
+ subs r0, r1, 0x1
+ strh r0, [r4, 0x1A]
+_080DEBB2:
+ ldr r2, _080DEBE0
+ ldrh r0, [r4, 0x1A]
+ lsls r0, 8
+ ldrh r1, [r4, 0x18]
+ orrs r0, r1
+ strh r0, [r2]
+ movs r1, 0x16
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x17
+ ble _080DEBCE
+ movs r0, 0
+ strh r0, [r4, 0x16]
+ movs r0, 0x1
+ strh r0, [r4, 0x14]
+_080DEBCE:
+ ldrh r1, [r4, 0x1C]
+ movs r2, 0x1C
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ beq _080DEBE4
+ subs r0, r1, 0x1
+ strh r0, [r4, 0x1C]
+ b _080DECA4
+ .align 2, 0
+_080DEBE0: .4byte REG_BLDALPHA
+_080DEBE4:
+ movs r1, 0x14
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080DECA4
+ b _080DEC8C
+_080DEBEE:
+ ldrh r0, [r4, 0x12]
+ adds r0, 0x1
+ strh r0, [r4, 0x12]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080DECA4
+ movs r0, 0
+ strh r0, [r4, 0x12]
+ ldrh r0, [r4, 0x16]
+ adds r0, 0x1
+ strh r0, [r4, 0x16]
+ ands r0, r1
+ lsls r0, 16
+ cmp r0, 0
+ beq _080DEC1E
+ ldrh r1, [r4, 0x18]
+ movs r2, 0x18
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ beq _080DEC2C
+ subs r0, r1, 0x1
+ strh r0, [r4, 0x18]
+ b _080DEC2C
+_080DEC1E:
+ ldrh r1, [r4, 0x1A]
+ movs r2, 0x1A
+ ldrsh r0, [r4, r2]
+ cmp r0, 0xF
+ bgt _080DEC2C
+ adds r0, r1, 0x1
+ strh r0, [r4, 0x1A]
+_080DEC2C:
+ ldr r2, _080DEC48
+ ldrh r0, [r4, 0x1A]
+ lsls r0, 8
+ ldrh r1, [r4, 0x18]
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r1, [r4, 0x18]
+ movs r0, 0x80
+ lsls r0, 13
+ cmp r1, r0
+ bne _080DECA4
+ movs r5, 0
+ b _080DEC70
+ .align 2, 0
+_080DEC48: .4byte REG_BLDALPHA
+_080DEC4C:
+ adds r1, r5, 0
+ adds r1, 0xD
+ lsls r1, 1
+ adds r0, r4, 0
+ adds r0, 0x8
+ adds r0, r1
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080DEC7C
+ adds r0, r1
+ bl DestroySprite
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+_080DEC70:
+ movs r1, 0x20
+ ldrsh r0, [r4, r1]
+ cmp r5, r0
+ blt _080DEC4C
+ b _080DEC8C
+ .align 2, 0
+_080DEC7C: .4byte gSprites
+_080DEC80:
+ ldrh r0, [r4, 0x12]
+ adds r0, 0x1
+ strh r0, [r4, 0x12]
+ lsls r0, 16
+ cmp r0, 0
+ ble _080DECA4
+_080DEC8C:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _080DECA4
+_080DEC94:
+ ldr r0, _080DECAC
+ movs r1, 0
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, r2, 0
+ bl move_anim_task_del
+_080DECA4:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DECAC: .4byte REG_BLDCNT
+ thumb_func_end sub_80DEB38
+
+ thumb_func_start sub_80DECB0
+sub_80DECB0: @ 80DECB0
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r0, _080DECF8
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, _080DECFC
+ strh r1, [r0]
+ ldr r1, _080DED00
+ ldr r2, _080DED04
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ subs r2, 0x20
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x6
+ movs r0, 0xC8
+ strh r0, [r1]
+ adds r1, 0x4
+ movs r0, 0x10
+ strh r0, [r1]
+ ldr r0, _080DED08
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _080DECF4
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080DED0C
+_080DECF4:
+ movs r6, 0x28
+ b _080DED0E
+ .align 2, 0
+_080DECF8: .4byte gUnknown_030042C4
+_080DECFC: .4byte gUnknown_03004240
+_080DED00: .4byte REG_WININ
+_080DED04: .4byte 0x00003f3f
+_080DED08: .4byte gUnknown_0202F7C8
+_080DED0C:
+ movs r6, 0xC8
+_080DED0E:
+ ldr r1, _080DED4C
+ lsls r3, r6, 16
+ asrs r2, r3, 16
+ lsls r0, r2, 8
+ orrs r0, r2
+ strh r0, [r1]
+ ldr r1, _080DED50
+ movs r5, 0x28
+ ldr r0, _080DED54
+ strh r0, [r1]
+ lsrs r3, 16
+ movs r1, 0xF0
+ subs r1, r2
+ movs r4, 0x48
+ ldr r2, _080DED58
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r0, r2
+ strh r3, [r0, 0xA]
+ strh r1, [r0, 0xC]
+ strh r5, [r0, 0xE]
+ strh r4, [r0, 0x10]
+ strh r6, [r0, 0x12]
+ strh r5, [r0, 0x14]
+ ldr r1, _080DED5C
+ str r1, [r0]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DED4C: .4byte gUnknown_030042C4
+_080DED50: .4byte gUnknown_03004240
+_080DED54: .4byte 0x00002828
+_080DED58: .4byte gTasks
+_080DED5C: .4byte sub_80DED60
+ thumb_func_end sub_80DECB0
+
+ thumb_func_start sub_80DED60
+sub_80DED60: @ 80DED60
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x20
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080DEE80
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r4, r1, r2
+ ldrh r1, [r4, 0x8]
+ adds r0, r1, 0x1
+ strh r0, [r4, 0x8]
+ ldrh r5, [r4, 0xA]
+ ldrh r7, [r4, 0xC]
+ ldrh r0, [r4, 0xE]
+ mov r10, r0
+ ldrh r2, [r4, 0x10]
+ str r2, [sp, 0xC]
+ ldrh r0, [r4, 0x12]
+ ldrh r2, [r4, 0x14]
+ mov r8, r2
+ lsls r1, 16
+ asrs r6, r1, 16
+ cmp r6, 0xF
+ ble _080DED9C
+ b _080DEE8C
+_080DED9C:
+ lsls r0, 16
+ asrs r0, 16
+ bl __floatsidf
+ str r0, [sp, 0x10]
+ str r1, [sp, 0x14]
+ lsls r0, r5, 16
+ asrs r0, 16
+ bl __floatsidf
+ ldr r2, _080DEE84
+ ldr r3, _080DEE88
+ bl __muldf3
+ adds r5, r1, 0
+ adds r4, r0, 0
+ adds r0, r6, 0
+ bl __floatsidf
+ str r0, [sp, 0x18]
+ str r1, [sp, 0x1C]
+ adds r1, r5, 0
+ adds r0, r4, 0
+ ldr r2, [sp, 0x18]
+ ldr r3, [sp, 0x1C]
+ bl __muldf3
+ adds r3, r1, 0
+ adds r2, r0, 0
+ ldr r0, [sp, 0x10]
+ ldr r1, [sp, 0x14]
+ bl __subdf3
+ bl __fixunsdfsi
+ lsls r0, 16
+ lsrs r0, 16
+ mov r9, r0
+ lsls r0, r7, 16
+ asrs r0, 16
+ bl __floatsidf
+ ldr r2, _080DEE84
+ ldr r3, _080DEE88
+ bl __muldf3
+ ldr r2, [sp, 0x18]
+ ldr r3, [sp, 0x1C]
+ bl __muldf3
+ adds r3, r1, 0
+ adds r2, r0, 0
+ ldr r0, [sp, 0x10]
+ ldr r1, [sp, 0x14]
+ bl __adddf3
+ bl __fixunsdfsi
+ lsls r0, 16
+ lsrs r7, r0, 16
+ mov r1, r8
+ lsls r0, r1, 16
+ asrs r0, 16
+ bl __floatsidf
+ adds r5, r1, 0
+ adds r4, r0, 0
+ mov r2, r10
+ lsls r0, r2, 16
+ asrs r0, 16
+ bl __floatsidf
+ ldr r2, _080DEE84
+ ldr r3, _080DEE88
+ bl __muldf3
+ ldr r2, [sp, 0x18]
+ ldr r3, [sp, 0x1C]
+ bl __muldf3
+ adds r3, r1, 0
+ adds r2, r0, 0
+ adds r1, r5, 0
+ adds r0, r4, 0
+ bl __subdf3
+ bl __fixunsdfsi
+ lsls r0, 16
+ lsrs r6, r0, 16
+ ldr r1, [sp, 0xC]
+ lsls r0, r1, 16
+ asrs r0, 16
+ bl __floatsidf
+ ldr r2, _080DEE84
+ ldr r3, _080DEE88
+ bl __muldf3
+ ldr r2, [sp, 0x18]
+ ldr r3, [sp, 0x1C]
+ bl __muldf3
+ adds r3, r1, 0
+ adds r2, r0, 0
+ adds r1, r5, 0
+ adds r0, r4, 0
+ bl __adddf3
+ bl __fixunsdfsi
+ lsls r0, 16
+ lsrs r5, r0, 16
+ b _080DEEBA
+ .align 2, 0
+_080DEE80: .4byte gTasks
+_080DEE84: .4byte 0x3fb00000
+_080DEE88: .4byte 0x00000000
+_080DEE8C:
+ movs r2, 0
+ mov r9, r2
+ movs r7, 0xF0
+ movs r6, 0
+ movs r5, 0x70
+ str r6, [sp]
+ str r6, [sp, 0x4]
+ str r6, [sp, 0x8]
+ movs r0, 0x1
+ movs r1, 0
+ movs r3, 0
+ bl sub_80791A8
+ lsls r0, 16
+ lsrs r0, 16
+ str r6, [sp]
+ movs r1, 0
+ movs r2, 0x10
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r0, _080DEEDC
+ str r0, [r4]
+_080DEEBA:
+ ldr r1, _080DEEE0
+ mov r2, r9
+ lsls r0, r2, 8
+ orrs r7, r0
+ strh r7, [r1]
+ ldr r1, _080DEEE4
+ lsls r0, r6, 8
+ orrs r5, r0
+ strh r5, [r1]
+ add sp, 0x20
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DEEDC: .4byte sub_80DEEE8
+_080DEEE0: .4byte gUnknown_030042C4
+_080DEEE4: .4byte gUnknown_03004240
+ thumb_func_end sub_80DED60
+
+ thumb_func_start sub_80DEEE8
+sub_80DEEE8: @ 80DEEE8
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldr r0, _080DEF28
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0
+ bne _080DEF20
+ ldr r0, _080DEF2C
+ strh r2, [r0]
+ ldr r0, _080DEF30
+ strh r2, [r0]
+ ldr r0, _080DEF34
+ ldr r4, _080DEF38
+ adds r1, r4, 0
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x6
+ strh r2, [r0]
+ adds r0, 0x4
+ strh r2, [r0]
+ adds r0, r3, 0
+ bl move_anim_task_del
+_080DEF20:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DEF28: .4byte gPaletteFade
+_080DEF2C: .4byte gUnknown_030042C4
+_080DEF30: .4byte gUnknown_03004240
+_080DEF34: .4byte REG_WININ
+_080DEF38: .4byte 0x00003f3f
+ thumb_func_end sub_80DEEE8
+
+ thumb_func_start sub_80DEF3C
+sub_80DEF3C: @ 80DEF3C
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x1
+ bl sub_80787B0
+ ldr r0, _080DEF68
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _080DEF70
+ movs r2, 0x18
+ ldr r3, _080DEF6C
+ ldrb r0, [r4, 0x3]
+ movs r1, 0x3F
+ negs r1, r1
+ ands r1, r0
+ movs r0, 0x10
+ orrs r1, r0
+ strb r1, [r4, 0x3]
+ b _080DEF74
+ .align 2, 0
+_080DEF68: .4byte gUnknown_0202F7C8
+_080DEF6C: .4byte 0x0000fffe
+_080DEF70:
+ ldr r2, _080DEF90
+ movs r3, 0x2
+_080DEF74:
+ lsls r0, r2, 16
+ asrs r0, 16
+ ldrh r1, [r4, 0x20]
+ adds r0, r1
+ strh r0, [r4, 0x20]
+ strh r3, [r4, 0x30]
+ movs r0, 0x3C
+ strh r0, [r4, 0x2E]
+ ldr r0, _080DEF94
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DEF90: .4byte 0x0000ffe8
+_080DEF94: .4byte sub_80DEF98
+ thumb_func_end sub_80DEF3C
+
+ thumb_func_start sub_80DEF98
+sub_80DEF98: @ 80DEF98
+ push {r4,lr}
+ adds r3, r0, 0
+ ldrh r1, [r3, 0x2E]
+ movs r2, 0x2E
+ ldrsh r0, [r3, r2]
+ cmp r0, 0
+ ble _080DEFAA
+ subs r0, r1, 0x1
+ b _080DF00E
+_080DEFAA:
+ ldrh r0, [r3, 0x30]
+ ldrh r4, [r3, 0x24]
+ adds r1, r0, r4
+ strh r1, [r3, 0x24]
+ adds r0, r1, 0x7
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0xE
+ bls _080DF010
+ ldrh r0, [r3, 0x20]
+ adds r0, r1
+ strh r0, [r3, 0x20]
+ movs r0, 0
+ strh r0, [r3, 0x24]
+ ldrh r2, [r3, 0x4]
+ lsls r1, r2, 22
+ lsrs r1, 22
+ adds r1, 0x8
+ ldr r4, _080DEFFC
+ adds r0, r4, 0
+ ands r1, r0
+ ldr r0, _080DF000
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r3, 0x4]
+ ldrh r0, [r3, 0x32]
+ adds r0, 0x1
+ strh r0, [r3, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3
+ bne _080DF00C
+ movs r0, 0x1E
+ strh r0, [r3, 0x2E]
+ ldr r0, _080DF004
+ str r0, [r3, 0x1C]
+ ldr r1, _080DF008
+ adds r0, r3, 0
+ bl oamt_set_x3A_32
+ b _080DF010
+ .align 2, 0
+_080DEFFC: .4byte 0x000003ff
+_080DF000: .4byte 0xfffffc00
+_080DF004: .4byte sub_80782D8
+_080DF008: .4byte sub_80DF018
+_080DF00C:
+ movs r0, 0x28
+_080DF00E:
+ strh r0, [r3, 0x2E]
+_080DF010:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80DEF98
+
+ thumb_func_start sub_80DF018
+sub_80DF018: @ 80DF018
+ push {r4,lr}
+ adds r3, r0, 0
+ movs r0, 0x2E
+ ldrsh r2, [r3, r0]
+ cmp r2, 0
+ bne _080DF044
+ ldr r1, _080DF040
+ movs r4, 0xFD
+ lsls r4, 6
+ adds r0, r4, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r0, 0x10
+ strh r0, [r1]
+ ldrh r0, [r3, 0x2E]
+ adds r0, 0x1
+ strh r0, [r3, 0x2E]
+ strh r2, [r3, 0x30]
+ strh r2, [r3, 0x32]
+ b _080DF082
+ .align 2, 0
+_080DF040: .4byte REG_BLDCNT
+_080DF044:
+ ldrh r1, [r3, 0x30]
+ movs r2, 0x30
+ ldrsh r0, [r3, r2]
+ cmp r0, 0x1
+ bgt _080DF054
+ adds r0, r1, 0x1
+ strh r0, [r3, 0x30]
+ b _080DF082
+_080DF054:
+ movs r0, 0
+ strh r0, [r3, 0x30]
+ ldrh r0, [r3, 0x32]
+ adds r0, 0x1
+ strh r0, [r3, 0x32]
+ ldr r2, _080DF088
+ movs r1, 0x10
+ subs r1, r0
+ lsls r0, 8
+ orrs r1, r0
+ strh r1, [r2]
+ movs r4, 0x32
+ ldrsh r0, [r3, r4]
+ cmp r0, 0x10
+ bne _080DF082
+ adds r2, r3, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r0, _080DF08C
+ str r0, [r3, 0x1C]
+_080DF082:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DF088: .4byte REG_BLDALPHA
+_080DF08C: .4byte sub_80DF090
+ thumb_func_end sub_80DF018
+
+ thumb_func_start sub_80DF090
+sub_80DF090: @ 80DF090
+ push {lr}
+ ldr r1, _080DF0AC
+ movs r2, 0
+ strh r2, [r1]
+ adds r1, 0x2
+ strh r2, [r1]
+ ldr r1, _080DF0B0
+ strh r2, [r1]
+ ldr r1, _080DF0B4
+ strh r2, [r1]
+ bl move_anim_8072740
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DF0AC: .4byte REG_BLDCNT
+_080DF0B0: .4byte gUnknown_030042C4
+_080DF0B4: .4byte gUnknown_03004240
+ thumb_func_end sub_80DF090
+
+ thumb_func_start sub_80DF0B8
+sub_80DF0B8: @ 80DF0B8
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ movs r1, 0xC
+ bl Sin
+ strh r0, [r4, 0x24]
+ ldr r0, _080DF120
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080DF0DC
+ ldrh r0, [r4, 0x24]
+ negs r0, r0
+ strh r0, [r4, 0x24]
+_080DF0DC:
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x6
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x2E]
+ movs r2, 0x80
+ lsls r2, 1
+ adds r0, r2, 0
+ ldrh r1, [r4, 0x30]
+ adds r0, r1
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 24
+ negs r0, r0
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x3C]
+ adds r0, 0x1
+ strh r0, [r4, 0x3C]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ bne _080DF12C
+ ldr r0, _080DF124
+ strh r0, [r4, 0x3A]
+ ldr r1, _080DF128
+ movs r2, 0xFD
+ lsls r2, 6
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ ldrh r0, [r4, 0x3A]
+ strh r0, [r1]
+ b _080DF17E
+ .align 2, 0
+_080DF120: .4byte gUnknown_0202F7C8
+_080DF124: .4byte 0x0000050b
+_080DF128: .4byte REG_BLDCNT
+_080DF12C:
+ cmp r0, 0x1E
+ ble _080DF17E
+ ldrh r0, [r4, 0x32]
+ adds r0, 0x1
+ strh r0, [r4, 0x32]
+ ldrh r1, [r4, 0x3A]
+ lsls r0, r1, 16
+ asrs r0, 24
+ lsls r0, 16
+ movs r2, 0xFF
+ ands r2, r1
+ movs r1, 0x80
+ lsls r1, 9
+ adds r0, r1
+ lsrs r3, r0, 16
+ cmp r3, 0x10
+ bls _080DF150
+ movs r3, 0x10
+_080DF150:
+ subs r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r0, 0
+ bge _080DF15C
+ movs r2, 0
+_080DF15C:
+ ldr r1, _080DF184
+ lsls r0, r3, 8
+ orrs r0, r2
+ strh r0, [r1]
+ strh r0, [r4, 0x3A]
+ cmp r3, 0x10
+ bne _080DF17E
+ cmp r2, 0
+ bne _080DF17E
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r0, _080DF188
+ str r0, [r4, 0x1C]
+_080DF17E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DF184: .4byte REG_BLDALPHA
+_080DF188: .4byte sub_80DF18C
+ thumb_func_end sub_80DF0B8
+
+ thumb_func_start sub_80DF18C
+sub_80DF18C: @ 80DF18C
+ push {lr}
+ ldr r1, _080DF1A0
+ movs r2, 0
+ strh r2, [r1]
+ adds r1, 0x2
+ strh r2, [r1]
+ bl move_anim_8072740
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DF1A0: .4byte REG_BLDCNT
+ thumb_func_end sub_80DF18C
+
+ thumb_func_start sub_80DF1A4
+sub_80DF1A4: @ 80DF1A4
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ ldr r0, _080DF23C
+ adds r4, r0
+ movs r6, 0
+ strh r6, [r4, 0x8]
+ movs r0, 0x10
+ mov r8, r0
+ mov r2, r8
+ strh r2, [r4, 0xA]
+ ldr r5, _080DF240
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x1A]
+ ldrb r0, [r5]
+ bl sub_8077FC0
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x1C]
+ ldrb r0, [r5]
+ movs r1, 0x1
+ bl sub_807A100
+ lsls r0, 16
+ asrs r1, r0, 16
+ lsrs r0, 31
+ adds r1, r0
+ asrs r1, 1
+ adds r1, 0x8
+ strh r1, [r4, 0x1E]
+ strh r6, [r4, 0x16]
+ ldrb r0, [r5]
+ bl sub_8079ED4
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x12]
+ ldrb r0, [r5]
+ bl sub_8079E90
+ lsls r0, 24
+ lsrs r0, 24
+ subs r0, 0x2
+ strh r0, [r4, 0x14]
+ strh r6, [r4, 0xE]
+ mov r0, r8
+ strh r0, [r4, 0x10]
+ ldr r1, _080DF244
+ movs r2, 0xFD
+ lsls r2, 6
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r2, 0x80
+ lsls r2, 5
+ adds r0, r2, 0
+ strh r0, [r1]
+ strh r6, [r4, 0x18]
+ ldr r0, _080DF248
+ str r0, [r4]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DF23C: .4byte gTasks
+_080DF240: .4byte gUnknown_0202F7C8
+_080DF244: .4byte REG_BLDCNT
+_080DF248: .4byte sub_80DF24C
+ thumb_func_end sub_80DF1A4
+
+ thumb_func_start sub_80DF24C
+sub_80DF24C: @ 80DF24C
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r7, r0, 24
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ ldr r1, _080DF270
+ adds r4, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x5
+ bls _080DF266
+ b _080DF3CC
+_080DF266:
+ lsls r0, 2
+ ldr r1, _080DF274
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080DF270: .4byte gTasks
+_080DF274: .4byte _080DF278
+ .align 2, 0
+_080DF278:
+ .4byte _080DF290
+ .4byte _080DF300
+ .4byte _080DF342
+ .4byte _080DF356
+ .4byte _080DF3AC
+ .4byte _080DF3BC
+_080DF290:
+ movs r6, 0
+_080DF292:
+ movs r2, 0x1A
+ ldrsh r1, [r4, r2]
+ movs r0, 0x1C
+ ldrsh r2, [r4, r0]
+ ldrb r3, [r4, 0x14]
+ ldr r0, _080DF2F4
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x40
+ beq _080DF2E6
+ ldr r1, _080DF2F8
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r5, r0, r1
+ strh r7, [r5, 0x2E]
+ ldr r0, _080DF2FC
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ movs r1, 0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080DF2C8
+ movs r1, 0x1
+_080DF2C8:
+ strh r1, [r5, 0x30]
+ movs r0, 0x2A
+ muls r0, r6
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r5, 0x32]
+ ldrh r0, [r4, 0x1E]
+ strh r0, [r5, 0x34]
+ lsls r0, r6, 1
+ adds r0, r6
+ lsls r0, 1
+ strh r0, [r5, 0x38]
+ ldrh r0, [r4, 0x16]
+ adds r0, 0x1
+ strh r0, [r4, 0x16]
+_080DF2E6:
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ cmp r6, 0x5
+ bls _080DF292
+ b _080DF3B4
+ .align 2, 0
+_080DF2F4: .4byte gSpriteTemplate_83DAF80
+_080DF2F8: .4byte gSprites
+_080DF2FC: .4byte gUnknown_0202F7C8
+_080DF300:
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080DF31E
+ ldrh r1, [r4, 0xE]
+ movs r2, 0xE
+ ldrsh r0, [r4, r2]
+ cmp r0, 0xD
+ bgt _080DF32C
+ adds r0, r1, 0x1
+ strh r0, [r4, 0xE]
+ b _080DF32C
+_080DF31E:
+ ldrh r1, [r4, 0x10]
+ movs r2, 0x10
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x4
+ ble _080DF32C
+ subs r0, r1, 0x1
+ strh r0, [r4, 0x10]
+_080DF32C:
+ movs r1, 0xE
+ ldrsh r0, [r4, r1]
+ ldrh r3, [r4, 0xE]
+ ldrh r2, [r4, 0x10]
+ cmp r0, 0xE
+ bne _080DF39C
+ cmp r2, 0x4
+ bne _080DF39C
+ movs r0, 0
+ strh r0, [r4, 0xA]
+ b _080DF396
+_080DF342:
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1E
+ ble _080DF3CC
+ movs r0, 0
+ strh r0, [r4, 0xA]
+ b _080DF3B4
+_080DF356:
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080DF374
+ ldrh r1, [r4, 0xE]
+ movs r2, 0xE
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ ble _080DF382
+ subs r0, r1, 0x1
+ strh r0, [r4, 0xE]
+ b _080DF382
+_080DF374:
+ ldrh r1, [r4, 0x10]
+ movs r2, 0x10
+ ldrsh r0, [r4, r2]
+ cmp r0, 0xF
+ bgt _080DF382
+ adds r0, r1, 0x1
+ strh r0, [r4, 0x10]
+_080DF382:
+ movs r1, 0xE
+ ldrsh r0, [r4, r1]
+ ldrh r3, [r4, 0xE]
+ ldrh r2, [r4, 0x10]
+ cmp r0, 0
+ bne _080DF39C
+ cmp r2, 0x10
+ bne _080DF39C
+ movs r0, 0x1
+ strh r0, [r4, 0x18]
+_080DF396:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+_080DF39C:
+ ldr r1, _080DF3A8
+ lsls r0, r2, 8
+ orrs r0, r3
+ strh r0, [r1]
+ b _080DF3CC
+ .align 2, 0
+_080DF3A8: .4byte REG_BLDALPHA
+_080DF3AC:
+ movs r2, 0x16
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ bne _080DF3CC
+_080DF3B4:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _080DF3CC
+_080DF3BC:
+ ldr r0, _080DF3D4
+ movs r1, 0
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, r7, 0
+ bl move_anim_task_del
+_080DF3CC:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DF3D4: .4byte REG_BLDCNT
+ thumb_func_end sub_80DF24C
+
+ thumb_func_start sub_80DF3D8
+sub_80DF3D8: @ 80DF3D8
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080DF3EA
+ ldrh r0, [r4, 0x32]
+ adds r0, 0x2
+ b _080DF3EE
+_080DF3EA:
+ ldrh r0, [r4, 0x32]
+ subs r0, 0x2
+_080DF3EE:
+ strh r0, [r4, 0x32]
+ ldrh r1, [r4, 0x32]
+ movs r0, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x32]
+ movs r2, 0x32
+ ldrsh r0, [r4, r2]
+ movs r2, 0x34
+ ldrsh r1, [r4, r2]
+ bl Sin
+ strh r0, [r4, 0x24]
+ ldrh r0, [r4, 0x32]
+ subs r0, 0x41
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x7E
+ bhi _080DF430
+ ldr r2, _080DF42C
+ movs r0, 0x2E
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldrh r1, [r0, 0x12]
+ adds r1, 0x1
+ movs r0, 0x3
+ ands r1, r0
+ b _080DF444
+ .align 2, 0
+_080DF42C: .4byte gTasks
+_080DF430:
+ ldr r2, _080DF498
+ movs r0, 0x2E
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ movs r2, 0x3
+ ldrb r1, [r0, 0x12]
+ ands r1, r2
+_080DF444:
+ lsls r1, 2
+ ldrb r2, [r4, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r4, 0x5]
+ ldrh r0, [r4, 0x38]
+ adds r0, 0x1
+ strh r0, [r4, 0x38]
+ movs r1, 0x38
+ ldrsh r0, [r4, r1]
+ lsls r0, 3
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x3A]
+ movs r2, 0x3A
+ ldrsh r0, [r4, r2]
+ movs r1, 0x7
+ bl Sin
+ strh r0, [r4, 0x26]
+ ldr r2, _080DF498
+ movs r0, 0x2E
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r1, r0, r2
+ movs r2, 0x18
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ beq _080DF492
+ ldrh r0, [r1, 0x16]
+ subs r0, 0x1
+ strh r0, [r1, 0x16]
+ adds r0, r4, 0
+ bl DestroySprite
+_080DF492:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DF498: .4byte gTasks
+ thumb_func_end sub_80DF3D8
+
+ thumb_func_start sub_80DF49C
+sub_80DF49C: @ 80DF49C
+ adds r3, r0, 0
+ adds r3, 0x3E
+ ldrb r1, [r3]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r3]
+ ldr r2, _080DF4E0
+ ldr r1, _080DF4E4
+ ldrb r1, [r1]
+ adds r1, r2
+ ldrb r1, [r1]
+ strh r1, [r0, 0x38]
+ movs r1, 0x80
+ strh r1, [r0, 0x2E]
+ movs r1, 0xA
+ strh r1, [r0, 0x30]
+ ldr r2, _080DF4E8
+ ldrh r1, [r2]
+ strh r1, [r0, 0x32]
+ ldrh r1, [r2, 0x2]
+ strh r1, [r0, 0x34]
+ ldr r1, _080DF4EC
+ str r1, [r0, 0x1C]
+ ldr r2, _080DF4F0
+ movs r3, 0x38
+ ldrsh r1, [r0, r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r0, 0x22]
+ adds r1, 0x8
+ strh r1, [r0, 0x22]
+ bx lr
+ .align 2, 0
+_080DF4E0: .4byte gUnknown_02024BE0
+_080DF4E4: .4byte gUnknown_0202F7C8
+_080DF4E8: .4byte gUnknown_03004B00
+_080DF4EC: .4byte sub_80DF4F4
+_080DF4F0: .4byte gSprites
+ thumb_func_end sub_80DF49C
+
+ thumb_func_start sub_80DF4F4
+sub_80DF4F4: @ 80DF4F4
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldrh r0, [r5, 0x34]
+ movs r1, 0x34
+ ldrsh r3, [r5, r1]
+ cmp r3, 0
+ beq _080DF55C
+ subs r0, 0x1
+ strh r0, [r5, 0x34]
+ movs r2, 0x2E
+ ldrsh r0, [r5, r2]
+ movs r2, 0x30
+ ldrsh r1, [r5, r2]
+ bl Sin
+ ldr r4, _080DF554
+ movs r1, 0x38
+ ldrsh r2, [r5, r1]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r4
+ strh r0, [r1, 0x24]
+ movs r2, 0x2E
+ ldrsh r0, [r5, r2]
+ movs r2, 0x30
+ ldrsh r1, [r5, r2]
+ bl Cos
+ movs r1, 0x38
+ ldrsh r2, [r5, r1]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r4
+ strh r0, [r1, 0x26]
+ ldrh r0, [r5, 0x32]
+ ldrh r2, [r5, 0x2E]
+ adds r1, r0, r2
+ strh r1, [r5, 0x2E]
+ lsls r0, r1, 16
+ asrs r0, 16
+ cmp r0, 0xFF
+ ble _080DF590
+ ldr r2, _080DF558
+ adds r0, r1, r2
+ strh r0, [r5, 0x2E]
+ b _080DF590
+ .align 2, 0
+_080DF554: .4byte gSprites
+_080DF558: .4byte 0xffffff00
+_080DF55C:
+ ldr r2, _080DF598
+ movs r0, 0x38
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ strh r3, [r0, 0x24]
+ movs r0, 0x38
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ strh r3, [r0, 0x26]
+ movs r0, 0x38
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r0, 0x22]
+ subs r1, 0x8
+ strh r1, [r0, 0x22]
+ ldr r0, _080DF59C
+ str r0, [r5, 0x1C]
+_080DF590:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DF598: .4byte gSprites
+_080DF59C: .4byte move_anim_8074EE0
+ thumb_func_end sub_80DF4F4
+
+ thumb_func_start sub_80DF5A0
+sub_80DF5A0: @ 80DF5A0
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r4, _080DF5E8
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080DF5F0
+ ldr r2, _080DF5EC
+ ldrh r0, [r5, 0x20]
+ ldrh r1, [r2]
+ subs r0, r1
+ strh r0, [r5, 0x20]
+ ldrh r0, [r2, 0x6]
+ negs r0, r0
+ strh r0, [r2, 0x6]
+ ldrh r0, [r2, 0x8]
+ negs r0, r0
+ strh r0, [r2, 0x8]
+ adds r1, r2, 0
+ b _080DF5FA
+ .align 2, 0
+_080DF5E8: .4byte gUnknown_0202F7C8
+_080DF5EC: .4byte gUnknown_03004B00
+_080DF5F0:
+ ldr r1, _080DF630
+ ldrh r0, [r1]
+ ldrh r2, [r5, 0x20]
+ adds r0, r2
+ strh r0, [r5, 0x20]
+_080DF5FA:
+ ldrh r0, [r1, 0x2]
+ ldrh r2, [r5, 0x22]
+ adds r0, r2
+ strh r0, [r5, 0x22]
+ ldrh r0, [r1, 0x4]
+ strh r0, [r5, 0x2E]
+ ldrh r0, [r1, 0x6]
+ strh r0, [r5, 0x30]
+ ldrh r0, [r1, 0x8]
+ strh r0, [r5, 0x34]
+ ldrh r0, [r1, 0xA]
+ strh r0, [r5, 0x38]
+ adds r2, r5, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r1, _080DF634
+ adds r0, r5, 0
+ bl oamt_set_x3A_32
+ ldr r0, _080DF638
+ str r0, [r5, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DF630: .4byte gUnknown_03004B00
+_080DF634: .4byte move_anim_8074EE0
+_080DF638: .4byte sub_8078504
+ thumb_func_end sub_80DF5A0
+
+ thumb_func_start sub_80DF63C
+sub_80DF63C: @ 80DF63C
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ bl sub_8078650
+ ldr r4, _080DF694
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x32]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x36]
+ ldr r0, _080DF698
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080DF6A0
+ ldr r2, _080DF69C
+ ldrh r0, [r5, 0x20]
+ ldrh r1, [r2, 0x2]
+ subs r0, r1
+ strh r0, [r5, 0x20]
+ ldrh r0, [r5, 0x22]
+ adds r1, r0
+ strh r1, [r5, 0x22]
+ ldrh r0, [r5, 0x32]
+ ldrh r1, [r2, 0x4]
+ subs r0, r1
+ strh r0, [r5, 0x32]
+ ldrh r0, [r2, 0x6]
+ ldrh r1, [r5, 0x36]
+ adds r0, r1
+ strh r0, [r5, 0x36]
+ b _080DF6CA
+ .align 2, 0
+_080DF694: .4byte gUnknown_0202F7C9
+_080DF698: .4byte gUnknown_0202F7C8
+_080DF69C: .4byte gUnknown_03004B00
+_080DF6A0:
+ ldr r1, _080DF6E4
+ ldrh r0, [r1]
+ ldrh r2, [r5, 0x20]
+ adds r0, r2
+ strh r0, [r5, 0x20]
+ ldrh r0, [r1, 0x2]
+ ldrh r2, [r5, 0x22]
+ adds r0, r2
+ strh r0, [r5, 0x22]
+ ldrh r0, [r1, 0x4]
+ ldrh r2, [r5, 0x32]
+ adds r0, r2
+ strh r0, [r5, 0x32]
+ ldrh r0, [r1, 0x6]
+ ldrh r1, [r5, 0x36]
+ adds r0, r1
+ strh r0, [r5, 0x36]
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl StartSpriteAnim
+_080DF6CA:
+ ldr r0, _080DF6E4
+ ldrh r0, [r0, 0x8]
+ strh r0, [r5, 0x2E]
+ ldr r0, _080DF6E8
+ str r0, [r5, 0x1C]
+ ldr r1, _080DF6EC
+ adds r0, r5, 0
+ bl oamt_set_x3A_32
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DF6E4: .4byte gUnknown_03004B00
+_080DF6E8: .4byte sub_8078B34
+_080DF6EC: .4byte move_anim_8074EE0
+ thumb_func_end sub_80DF63C
+
+ thumb_func_start sub_80DF6F0
+sub_80DF6F0: @ 80DF6F0
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r0, _080DF704
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080DF70C
+ ldr r4, _080DF708
+ b _080DF70E
+ .align 2, 0
+_080DF704: .4byte gUnknown_03004B00
+_080DF708: .4byte gUnknown_0202F7C8
+_080DF70C:
+ ldr r4, _080DF750
+_080DF70E:
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+ ldr r4, _080DF754
+ movs r0, 0x2
+ ldrsh r1, [r4, r0]
+ adds r0, r5, 0
+ bl sub_807867C
+ ldrh r0, [r4, 0x4]
+ ldrh r1, [r5, 0x22]
+ adds r0, r1
+ strh r0, [r5, 0x22]
+ ldr r0, _080DF758
+ str r0, [r5, 0x1C]
+ ldr r1, _080DF75C
+ adds r0, r5, 0
+ bl oamt_set_x3A_32
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DF750: .4byte gUnknown_0202F7C9
+_080DF754: .4byte gUnknown_03004B00
+_080DF758: .4byte sub_8078600
+_080DF75C: .4byte move_anim_8074EE0
+ thumb_func_end sub_80DF6F0
+
+ thumb_func_start sub_80DF760
+sub_80DF760: @ 80DF760
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _080DF788
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080DF77A
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl StartSpriteAffineAnim
+_080DF77A:
+ adds r0, r4, 0
+ bl sub_80DF63C
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DF788: .4byte gUnknown_0202F7C8
+ thumb_func_end sub_80DF760
+
+ thumb_func_start sub_80DF78C
+sub_80DF78C: @ 80DF78C
+ push {r4-r7,lr}
+ adds r6, r0, 0
+ ldr r4, _080DF7E0
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ movs r5, 0
+ strh r0, [r6, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r6, 0x22]
+ strh r5, [r6, 0x36]
+ movs r0, 0x1
+ strh r0, [r6, 0x38]
+ ldr r0, _080DF7E4
+ ldrh r0, [r0]
+ strh r0, [r6, 0x3A]
+ ldr r4, _080DF7E8
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_807A100
+ lsls r7, r0, 16
+ lsrs r5, r7, 16
+ ldrb r0, [r4]
+ movs r1, 0x1
+ bl sub_807A100
+ lsls r1, r0, 16
+ lsrs r0, r1, 16
+ cmp r5, r0
+ bls _080DF7EC
+ lsrs r0, r7, 17
+ b _080DF7EE
+ .align 2, 0
+_080DF7E0: .4byte gUnknown_0202F7C8
+_080DF7E4: .4byte gUnknown_03004B00
+_080DF7E8: .4byte gUnknown_02024C07
+_080DF7EC:
+ lsrs r0, r1, 17
+_080DF7EE:
+ strh r0, [r6, 0x3C]
+ movs r1, 0x3A
+ ldrsh r0, [r6, r1]
+ movs r2, 0x3C
+ ldrsh r1, [r6, r2]
+ bl Cos
+ strh r0, [r6, 0x24]
+ movs r1, 0x3A
+ ldrsh r0, [r6, r1]
+ movs r2, 0x3C
+ ldrsh r1, [r6, r2]
+ bl Sin
+ strh r0, [r6, 0x26]
+ ldr r0, _080DF818
+ str r0, [r6, 0x1C]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DF818: .4byte sub_80DF81C
+ thumb_func_end sub_80DF78C
+
+ thumb_func_start sub_80DF81C
+sub_80DF81C: @ 80DF81C
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r0, 0x2E
+ ldrsh r5, [r4, r0]
+ cmp r5, 0
+ beq _080DF82E
+ cmp r5, 0x1
+ beq _080DF89A
+ b _080DF91E
+_080DF82E:
+ ldrh r0, [r4, 0x3A]
+ ldrh r1, [r4, 0x38]
+ subs r0, r1
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x3A]
+ movs r1, 0x3A
+ ldrsh r0, [r4, r1]
+ movs r2, 0x3C
+ ldrsh r1, [r4, r2]
+ bl Cos
+ strh r0, [r4, 0x24]
+ movs r1, 0x3A
+ ldrsh r0, [r4, r1]
+ movs r2, 0x3C
+ ldrsh r1, [r4, r2]
+ bl Sin
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x36]
+ adds r0, 0x1
+ strh r0, [r4, 0x36]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x5
+ ble _080DF880
+ strh r5, [r4, 0x36]
+ ldrh r1, [r4, 0x38]
+ movs r2, 0x38
+ ldrsh r0, [r4, r2]
+ cmp r0, 0xF
+ bgt _080DF880
+ adds r0, r1, 0x1
+ strh r0, [r4, 0x38]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xF
+ ble _080DF880
+ movs r0, 0x10
+ strh r0, [r4, 0x38]
+_080DF880:
+ ldrh r0, [r4, 0x34]
+ adds r0, 0x1
+ strh r0, [r4, 0x34]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3C
+ ble _080DF91E
+ movs r0, 0
+ strh r0, [r4, 0x34]
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ b _080DF91E
+_080DF89A:
+ ldrh r0, [r4, 0x3A]
+ ldrh r1, [r4, 0x38]
+ subs r0, r1
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x3A]
+ ldrh r1, [r4, 0x3C]
+ movs r2, 0x3C
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x95
+ bgt _080DF8C2
+ adds r0, r1, 0
+ adds r0, 0x8
+ strh r0, [r4, 0x3C]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x95
+ ble _080DF8C2
+ movs r0, 0x96
+ strh r0, [r4, 0x3C]
+_080DF8C2:
+ movs r1, 0x3A
+ ldrsh r0, [r4, r1]
+ movs r2, 0x3C
+ ldrsh r1, [r4, r2]
+ bl Cos
+ strh r0, [r4, 0x24]
+ movs r1, 0x3A
+ ldrsh r0, [r4, r1]
+ movs r2, 0x3C
+ ldrsh r1, [r4, r2]
+ bl Sin
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x36]
+ adds r0, 0x1
+ strh r0, [r4, 0x36]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x5
+ ble _080DF90A
+ movs r0, 0
+ strh r0, [r4, 0x36]
+ ldrh r1, [r4, 0x38]
+ movs r2, 0x38
+ ldrsh r0, [r4, r2]
+ cmp r0, 0xF
+ bgt _080DF90A
+ adds r0, r1, 0x1
+ strh r0, [r4, 0x38]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xF
+ ble _080DF90A
+ movs r0, 0x10
+ strh r0, [r4, 0x38]
+_080DF90A:
+ ldrh r0, [r4, 0x34]
+ adds r0, 0x1
+ strh r0, [r4, 0x34]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x14
+ ble _080DF91E
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080DF91E:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80DF81C
+
+ thumb_func_start sub_80DF924
+sub_80DF924: @ 80DF924
+ push {r4-r6,lr}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _080DF950
+ adds r4, r1, r0
+ ldr r0, _080DF954
+ ldrb r0, [r0]
+ bl battle_get_per_side_status_permutated
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080DF960
+ ldr r0, _080DF958
+ str r0, [sp]
+ ldr r0, _080DF95C
+ b _080DF966
+ .align 2, 0
+_080DF950: .4byte gTasks
+_080DF954: .4byte gUnknown_0202F7C8
+_080DF958: .4byte REG_BG1HOFS
+_080DF95C: .4byte gUnknown_030042C0
+_080DF960:
+ ldr r0, _080DF9DC
+ str r0, [sp]
+ ldr r0, _080DF9E0
+_080DF966:
+ ldrh r0, [r0]
+ strh r0, [r4, 0xC]
+ ldr r0, _080DF9E4
+ str r0, [sp, 0x4]
+ mov r1, sp
+ movs r5, 0
+ movs r0, 0x1
+ strb r0, [r1, 0x8]
+ mov r0, sp
+ strb r5, [r0, 0x9]
+ ldr r0, _080DF9E8
+ ldrb r0, [r0]
+ bl sub_8077FC0
+ lsls r0, 24
+ lsrs r0, 24
+ adds r1, r0, 0
+ subs r1, 0x20
+ strh r1, [r4, 0xE]
+ adds r0, 0x20
+ strh r0, [r4, 0x10]
+ cmp r1, 0
+ bge _080DF996
+ strh r5, [r4, 0xE]
+_080DF996:
+ ldrh r3, [r4, 0xE]
+ movs r1, 0x10
+ ldrsh r0, [r4, r1]
+ cmp r3, r0
+ bgt _080DF9C4
+ ldr r5, _080DF9EC
+ movs r0, 0xF0
+ lsls r0, 3
+ adds r6, r5, r0
+_080DF9A8:
+ lsls r1, r3, 1
+ adds r2, r1, r5
+ ldrh r0, [r4, 0xC]
+ strh r0, [r2]
+ adds r1, r6
+ ldrh r0, [r4, 0xC]
+ strh r0, [r1]
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ movs r1, 0x10
+ ldrsh r0, [r4, r1]
+ cmp r3, r0
+ ble _080DF9A8
+_080DF9C4:
+ ldr r0, [sp]
+ ldr r1, [sp, 0x4]
+ ldr r2, [sp, 0x8]
+ bl sub_80895F8
+ ldr r0, _080DF9F0
+ str r0, [r4]
+ add sp, 0xC
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DF9DC: .4byte REG_BG2HOFS
+_080DF9E0: .4byte gUnknown_03004288
+_080DF9E4: .4byte 0xa2600001
+_080DF9E8: .4byte gUnknown_0202F7C8
+_080DF9EC: .4byte gUnknown_03004DE0
+_080DF9F0: .4byte sub_80DF9F4
+ thumb_func_end sub_80DF924
+
+ thumb_func_start sub_80DF9F4
+sub_80DF9F4: @ 80DF9F4
+ push {lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r0, 3
+ ldr r1, _080DFA18
+ adds r2, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r2, r1]
+ cmp r0, 0x4
+ bhi _080DFAAA
+ lsls r0, 2
+ ldr r1, _080DFA1C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080DFA18: .4byte gTasks
+_080DFA1C: .4byte _080DFA20
+ .align 2, 0
+_080DFA20:
+ .4byte _080DFA34
+ .4byte _080DFA56
+ .4byte _080DFA66
+ .4byte _080DFA92
+ .4byte _080DFAA4
+_080DFA34:
+ ldrh r0, [r2, 0x16]
+ adds r0, 0x1
+ strh r0, [r2, 0x16]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080DFA8A
+ movs r0, 0
+ strh r0, [r2, 0x16]
+ ldrh r0, [r2, 0x14]
+ adds r0, 0x1
+ strh r0, [r2, 0x14]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3
+ bne _080DFA8A
+ b _080DFA84
+_080DFA56:
+ ldrh r0, [r2, 0xA]
+ adds r0, 0x1
+ strh r0, [r2, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3C
+ ble _080DFA8A
+ b _080DFA84
+_080DFA66:
+ ldrh r0, [r2, 0x16]
+ adds r0, 0x1
+ strh r0, [r2, 0x16]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080DFA8A
+ movs r0, 0
+ strh r0, [r2, 0x16]
+ ldrh r0, [r2, 0x14]
+ subs r0, 0x1
+ strh r0, [r2, 0x14]
+ lsls r0, 16
+ cmp r0, 0
+ bne _080DFA8A
+_080DFA84:
+ ldrh r0, [r2, 0x8]
+ adds r0, 0x1
+ strh r0, [r2, 0x8]
+_080DFA8A:
+ adds r0, r2, 0
+ bl sub_80DFAB0
+ b _080DFAAA
+_080DFA92:
+ ldr r1, _080DFAA0
+ movs r0, 0x3
+ strb r0, [r1, 0x15]
+ ldrh r0, [r2, 0x8]
+ adds r0, 0x1
+ strh r0, [r2, 0x8]
+ b _080DFAAA
+ .align 2, 0
+_080DFAA0: .4byte gUnknown_03004DC0
+_080DFAA4:
+ adds r0, r3, 0
+ bl move_anim_task_del
+_080DFAAA:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80DF9F4
+
+ thumb_func_start sub_80DFAB0
+sub_80DFAB0: @ 80DFAB0
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r5, r0, 0
+ ldrh r3, [r5, 0x12]
+ ldrh r4, [r5, 0xE]
+ movs r1, 0x10
+ ldrsh r0, [r5, r1]
+ cmp r4, r0
+ bgt _080DFB06
+ ldr r7, _080DFB1C
+ mov r12, r7
+ ldr r0, _080DFB20
+ mov r8, r0
+ ldr r6, _080DFB24
+_080DFACE:
+ lsls r2, r4, 1
+ ldrb r1, [r6, 0x14]
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 7
+ adds r2, r0
+ add r2, r12
+ lsls r0, r3, 1
+ add r0, r8
+ movs r7, 0
+ ldrsh r1, [r0, r7]
+ movs r7, 0x14
+ ldrsh r0, [r5, r7]
+ muls r0, r1
+ asrs r0, 7
+ ldrh r1, [r5, 0xC]
+ adds r0, r1
+ strh r0, [r2]
+ adds r3, 0x8
+ movs r0, 0xFF
+ ands r3, r0
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ movs r7, 0x10
+ ldrsh r0, [r5, r7]
+ cmp r4, r0
+ ble _080DFACE
+_080DFB06:
+ ldrh r0, [r5, 0x12]
+ adds r0, 0x9
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r5, 0x12]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DFB1C: .4byte gUnknown_03004DE0
+_080DFB20: .4byte gSineTable
+_080DFB24: .4byte gUnknown_03004DC0
+ thumb_func_end sub_80DFAB0
+
+ thumb_func_start sub_80DFB28
+sub_80DFB28: @ 80DFB28
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ adds r4, r0, 0
+ ldr r5, _080DFBC8
+ movs r0, 0x4
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ movs r1, 0x5
+ bl __divsi3
+ adds r6, r0, 0
+ ldr r1, _080DFBCC
+ mov r8, r1
+ ldrb r0, [r1]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x20]
+ mov r2, r8
+ ldrb r0, [r2]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r3, [r5, 0x8]
+ adds r0, r3
+ strh r0, [r4, 0x22]
+ movs r1, 0x2
+ ldrsh r0, [r5, r1]
+ movs r2, 0x4
+ ldrsh r1, [r5, r2]
+ bl Cos
+ strh r0, [r4, 0x30]
+ movs r3, 0x2
+ ldrsh r0, [r5, r3]
+ lsls r6, 16
+ asrs r6, 16
+ adds r1, r6, 0
+ bl Sin
+ strh r0, [r4, 0x32]
+ ldrh r1, [r4, 0x30]
+ ldrh r2, [r5]
+ adds r3, r2, 0
+ muls r3, r1
+ adds r1, r3, 0
+ ldrh r3, [r4, 0x20]
+ adds r1, r3
+ strh r1, [r4, 0x20]
+ adds r1, r2, 0
+ muls r1, r0
+ adds r0, r1, 0
+ ldrh r2, [r4, 0x22]
+ adds r0, r2
+ strh r0, [r4, 0x22]
+ ldrh r0, [r5, 0x6]
+ strh r0, [r4, 0x34]
+ ldr r0, _080DFBD0
+ str r0, [r4, 0x1C]
+ adds r4, 0x2E
+ ldr r2, _080DFBD4
+ movs r1, 0x6
+_080DFBB0:
+ ldrh r0, [r4]
+ strh r0, [r2]
+ adds r4, 0x2
+ adds r2, 0x2
+ subs r1, 0x1
+ cmp r1, 0
+ bge _080DFBB0
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DFBC8: .4byte gUnknown_03004B00
+_080DFBCC: .4byte gUnknown_0202F7C8
+_080DFBD0: .4byte sub_80DFBD8
+_080DFBD4: .4byte gUnknown_03000730
+ thumb_func_end sub_80DFB28
+
+ thumb_func_start sub_80DFBD8
+sub_80DFBD8: @ 80DFBD8
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x30]
+ ldrh r1, [r4, 0x36]
+ adds r0, r1
+ strh r0, [r4, 0x36]
+ ldrh r0, [r4, 0x32]
+ ldrh r2, [r4, 0x38]
+ adds r0, r2
+ strh r0, [r4, 0x38]
+ movs r1, 0x36
+ ldrsh r0, [r4, r1]
+ movs r1, 0xA
+ bl __divsi3
+ strh r0, [r4, 0x24]
+ movs r2, 0x38
+ ldrsh r0, [r4, r2]
+ movs r1, 0xA
+ bl __divsi3
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ movs r2, 0x34
+ ldrsh r1, [r4, r2]
+ cmp r0, r1
+ ble _080DFC1C
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080DFC1C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80DFBD8
+
+ thumb_func_start sub_80DFC24
+sub_80DFC24: @ 80DFC24
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _080DFC58
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _080DFC5C
+ ldrh r0, [r0]
+ strh r0, [r1, 0x8]
+ ldr r0, _080DFC60
+ ldrb r0, [r0]
+ movs r2, 0x10
+ strh r2, [r1, 0xA]
+ ldr r1, _080DFC64
+ strh r2, [r1]
+ bl battle_get_per_side_status_permutated
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080DFC70
+ ldr r1, _080DFC68
+ ldr r2, _080DFC6C
+ b _080DFC74
+ .align 2, 0
+_080DFC58: .4byte gTasks
+_080DFC5C: .4byte gUnknown_03004B00
+_080DFC60: .4byte gUnknown_0202F7C8
+_080DFC64: .4byte REG_BLDALPHA
+_080DFC68: .4byte REG_BLDCNT
+_080DFC6C: .4byte 0x00003f42
+_080DFC70:
+ ldr r1, _080DFC8C
+ ldr r2, _080DFC90
+_080DFC74:
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r0, _080DFC94
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _080DFC98
+ str r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DFC8C: .4byte REG_BLDCNT
+_080DFC90: .4byte 0x00003f44
+_080DFC94: .4byte gTasks
+_080DFC98: .4byte sub_80DFC9C
+ thumb_func_end sub_80DFC24
+
+ thumb_func_start sub_80DFC9C
+sub_80DFC9C: @ 80DFC9C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _080DFD04
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r4, r0, r1
+ ldrh r0, [r4, 0xA]
+ lsrs r2, r0, 8
+ lsls r0, 24
+ lsrs r1, r0, 24
+ movs r3, 0xC
+ ldrsh r0, [r4, r3]
+ ldrb r3, [r4, 0x8]
+ cmp r0, r3
+ bne _080DFD18
+ adds r2, 0x1
+ lsls r2, 24
+ lsrs r2, 24
+ subs r0, r1, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r2, 8
+ orrs r1, r0
+ movs r3, 0
+ strh r1, [r4, 0xA]
+ ldr r0, _080DFD08
+ strh r1, [r0]
+ strh r3, [r4, 0xC]
+ cmp r2, 0x10
+ bne _080DFD1E
+ ldr r2, _080DFD0C
+ ldr r1, _080DFD10
+ ldr r0, _080DFD14
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+ adds r0, r5, 0
+ bl move_anim_task_del
+ b _080DFD1E
+ .align 2, 0
+_080DFD04: .4byte gTasks
+_080DFD08: .4byte REG_BLDALPHA
+_080DFD0C: .4byte gSprites
+_080DFD10: .4byte gUnknown_02024BE0
+_080DFD14: .4byte gUnknown_0202F7C8
+_080DFD18:
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x1
+ strh r0, [r4, 0xC]
+_080DFD1E:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80DFC9C
+
+ thumb_func_start sub_80DFD24
+sub_80DFD24: @ 80DFD24
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080DFD48
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldr r0, _080DFD4C
+ ldrh r0, [r0]
+ strh r0, [r1, 0x8]
+ movs r2, 0x80
+ lsls r2, 5
+ strh r2, [r1, 0xA]
+ ldr r0, _080DFD50
+ str r0, [r1]
+ ldr r0, _080DFD54
+ strh r2, [r0]
+ bx lr
+ .align 2, 0
+_080DFD48: .4byte gTasks
+_080DFD4C: .4byte gUnknown_03004B00
+_080DFD50: .4byte sub_80DFD58
+_080DFD54: .4byte REG_BLDALPHA
+ thumb_func_end sub_80DFD24
+
+ thumb_func_start sub_80DFD58
+sub_80DFD58: @ 80DFD58
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r1, _080DFDA8
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r2, r0, r1
+ ldrh r0, [r2, 0xA]
+ lsrs r1, r0, 8
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r3, 0xC
+ ldrsh r0, [r2, r3]
+ ldrb r3, [r2, 0x8]
+ cmp r0, r3
+ bne _080DFDB4
+ subs r0, r1, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r3, 8
+ orrs r1, r0
+ movs r0, 0
+ strh r1, [r2, 0xA]
+ ldr r5, _080DFDAC
+ strh r1, [r5]
+ strh r0, [r2, 0xC]
+ cmp r3, 0
+ bne _080DFDBA
+ ldr r0, _080DFDB0
+ strh r3, [r0]
+ strh r3, [r5]
+ adds r0, r4, 0
+ bl move_anim_task_del
+ b _080DFDBA
+ .align 2, 0
+_080DFDA8: .4byte gTasks
+_080DFDAC: .4byte REG_BLDALPHA
+_080DFDB0: .4byte REG_BLDCNT
+_080DFDB4:
+ ldrh r0, [r2, 0xC]
+ adds r0, 0x1
+ strh r0, [r2, 0xC]
+_080DFDBA:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80DFD58
+
+ thumb_func_start sub_80DFDC0
+sub_80DFDC0: @ 80DFDC0
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r1, _080DFDE8
+ movs r2, 0x80
+ lsls r2, 5
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r0, _080DFDEC
+ ldrb r0, [r0]
+ bl battle_get_per_side_status_permutated
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080DFDF8
+ ldr r1, _080DFDF0
+ ldr r2, _080DFDF4
+ b _080DFDFC
+ .align 2, 0
+_080DFDE8: .4byte REG_BLDALPHA
+_080DFDEC: .4byte gUnknown_0202F7C8
+_080DFDF0: .4byte REG_BLDCNT
+_080DFDF4: .4byte 0x00003f42
+_080DFDF8:
+ ldr r1, _080DFE0C
+ ldr r2, _080DFE10
+_080DFDFC:
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r0, r4, 0
+ bl move_anim_task_del
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DFE0C: .4byte REG_BLDCNT
+_080DFE10: .4byte 0x00003f44
+ thumb_func_end sub_80DFDC0
+
+ thumb_func_start sub_80DFE14
+sub_80DFE14: @ 80DFE14
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ ldr r6, _080DFE80
+ ldrb r0, [r6]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x30]
+ ldr r5, _080DFE84
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x32]
+ ldrb r0, [r6]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x34]
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x36]
+ movs r0, 0x7E
+ strh r0, [r4, 0x2E]
+ adds r0, r4, 0
+ bl sub_8078A5C
+ ldrh r0, [r4, 0x30]
+ negs r0, r0
+ strh r0, [r4, 0x34]
+ ldrh r0, [r4, 0x32]
+ negs r0, r0
+ strh r0, [r4, 0x36]
+ ldr r0, _080DFE88
+ strh r0, [r4, 0x3A]
+ ldr r1, _080DFE8C
+ str r1, [r4, 0x1C]
+ adds r0, r4, 0
+ bl _call_via_r1
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DFE80: .4byte gUnknown_0202F7C9
+_080DFE84: .4byte gUnknown_0202F7C8
+_080DFE88: .4byte 0x0000ffd8
+_080DFE8C: .4byte sub_80DFE90
+ thumb_func_end sub_80DFE14
+
+ thumb_func_start sub_80DFE90
+sub_80DFE90: @ 80DFE90
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ ldrh r5, [r4, 0x30]
+ ldrh r0, [r4, 0x34]
+ adds r2, r5, r0
+ strh r2, [r4, 0x34]
+ ldrh r3, [r4, 0x32]
+ ldrh r6, [r4, 0x36]
+ adds r1, r3, r6
+ strh r1, [r4, 0x36]
+ lsls r0, r2, 16
+ asrs r0, 24
+ strh r0, [r4, 0x24]
+ lsls r0, r1, 16
+ asrs r0, 24
+ strh r0, [r4, 0x26]
+ movs r6, 0x3C
+ ldrsh r0, [r4, r6]
+ cmp r0, 0
+ bne _080DFED2
+ adds r0, r2, r5
+ strh r0, [r4, 0x34]
+ adds r1, r3
+ strh r1, [r4, 0x36]
+ lsls r0, 16
+ asrs r0, 24
+ strh r0, [r4, 0x24]
+ lsls r1, 16
+ asrs r1, 24
+ strh r1, [r4, 0x26]
+ ldrh r0, [r4, 0x2E]
+ subs r0, 0x1
+ strh r0, [r4, 0x2E]
+_080DFED2:
+ movs r1, 0x38
+ ldrsh r0, [r4, r1]
+ movs r2, 0x3A
+ ldrsh r1, [r4, r2]
+ bl Sin
+ ldrh r6, [r4, 0x26]
+ adds r0, r6
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x38]
+ adds r0, 0x3
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x38]
+ cmp r0, 0x7F
+ ble _080DFF02
+ movs r0, 0
+ strh r0, [r4, 0x38]
+ ldrh r0, [r4, 0x3A]
+ adds r0, 0x14
+ strh r0, [r4, 0x3A]
+ ldrh r0, [r4, 0x3C]
+ adds r0, 0x1
+ strh r0, [r4, 0x3C]
+_080DFF02:
+ ldrh r0, [r4, 0x2E]
+ subs r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ cmp r0, 0
+ bne _080DFF14
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080DFF14:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80DFE90
+
+ thumb_func_start sub_80DFF1C
+sub_80DFF1C: @ 80DFF1C
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldr r5, _080DFF50
+ ldrh r0, [r5]
+ ldrh r1, [r4, 0x20]
+ adds r0, r1
+ strh r0, [r4, 0x20]
+ ldrh r0, [r5, 0x2]
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r4, 0x22]
+ ldrb r1, [r5, 0x4]
+ adds r0, r4, 0
+ bl StartSpriteAffineAnim
+ ldrh r0, [r5, 0x6]
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r5, 0x8]
+ strh r0, [r4, 0x30]
+ ldrh r0, [r5, 0xA]
+ strh r0, [r4, 0x32]
+ ldr r0, _080DFF54
+ str r0, [r4, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DFF50: .4byte gUnknown_03004B00
+_080DFF54: .4byte sub_80DFF58
+ thumb_func_end sub_80DFF1C
+
+ thumb_func_start sub_80DFF58
+sub_80DFF58: @ 80DFF58
+ push {lr}
+ adds r2, r0, 0
+ ldrh r0, [r2, 0x2E]
+ ldrh r1, [r2, 0x36]
+ adds r0, r1
+ strh r0, [r2, 0x36]
+ ldrh r1, [r2, 0x30]
+ ldrh r3, [r2, 0x38]
+ adds r1, r3
+ strh r1, [r2, 0x38]
+ lsls r0, 16
+ asrs r0, 24
+ strh r0, [r2, 0x24]
+ lsls r1, 16
+ asrs r1, 24
+ strh r1, [r2, 0x26]
+ ldrh r0, [r2, 0x34]
+ adds r0, 0x1
+ strh r0, [r2, 0x34]
+ lsls r0, 16
+ asrs r0, 16
+ movs r3, 0x32
+ ldrsh r1, [r2, r3]
+ cmp r0, r1
+ bne _080DFF8E
+ ldr r0, _080DFF94
+ str r0, [r2, 0x1C]
+_080DFF8E:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DFF94: .4byte sub_80DFF98
+ thumb_func_end sub_80DFF58
+
+ thumb_func_start sub_80DFF98
+sub_80DFF98: @ 80DFF98
+ push {lr}
+ adds r3, r0, 0
+ ldrh r1, [r3, 0x36]
+ ldrh r0, [r3, 0x2E]
+ subs r1, r0
+ strh r1, [r3, 0x36]
+ ldrh r0, [r3, 0x38]
+ ldrh r2, [r3, 0x30]
+ subs r0, r2
+ strh r0, [r3, 0x38]
+ lsls r1, 16
+ asrs r1, 24
+ strh r1, [r3, 0x24]
+ lsls r0, 16
+ asrs r0, 24
+ strh r0, [r3, 0x26]
+ ldrh r0, [r3, 0x34]
+ subs r0, 0x1
+ strh r0, [r3, 0x34]
+ lsls r0, 16
+ cmp r0, 0
+ bne _080DFFCA
+ adds r0, r3, 0
+ bl move_anim_8074EE0
+_080DFFCA:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80DFF98
+
+ thumb_func_start sub_80DFFD0
+sub_80DFFD0: @ 80DFFD0
+ push {r4-r7,lr}
+ adds r4, r0, 0
+ ldr r0, _080DFFE4
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ adds r3, r0, 0
+ cmp r1, 0
+ bne _080DFFEC
+ ldr r0, _080DFFE8
+ b _080DFFEE
+ .align 2, 0
+_080DFFE4: .4byte gUnknown_03004B00
+_080DFFE8: .4byte gUnknown_0202F7C8
+_080DFFEC:
+ ldr r0, _080E001C
+_080DFFEE:
+ ldrb r5, [r0]
+ movs r6, 0x14
+ ldrh r2, [r4, 0x4]
+ lsls r1, r2, 22
+ lsrs r1, 22
+ adds r1, 0x4
+ ldr r7, _080E0020
+ adds r0, r7, 0
+ ands r1, r0
+ ldr r0, _080E0024
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r4, 0x4]
+ movs r1, 0x2
+ ldrsh r0, [r3, r1]
+ cmp r0, 0x1
+ beq _080E004C
+ cmp r0, 0x1
+ bgt _080E0028
+ cmp r0, 0
+ beq _080E0032
+ b _080E00A0
+ .align 2, 0
+_080E001C: .4byte gUnknown_0202F7C9
+_080E0020: .4byte 0x000003ff
+_080E0024: .4byte 0xfffffc00
+_080E0028:
+ cmp r0, 0x2
+ beq _080E0066
+ cmp r0, 0x3
+ beq _080E007E
+ b _080E00A0
+_080E0032:
+ adds r0, r5, 0
+ movs r1, 0x5
+ bl sub_807A100
+ subs r0, 0x8
+ strh r0, [r4, 0x20]
+ adds r0, r5, 0
+ movs r1, 0x2
+ bl sub_807A100
+ adds r0, 0x8
+ strh r0, [r4, 0x22]
+ b _080E00A0
+_080E004C:
+ adds r0, r5, 0
+ movs r1, 0x5
+ bl sub_807A100
+ subs r0, 0xE
+ strh r0, [r4, 0x20]
+ adds r0, r5, 0
+ movs r1, 0x2
+ bl sub_807A100
+ adds r0, 0x10
+ strh r0, [r4, 0x22]
+ b _080E00A0
+_080E0066:
+ adds r0, r5, 0
+ movs r1, 0x4
+ bl sub_807A100
+ adds r0, 0x8
+ strh r0, [r4, 0x20]
+ adds r0, r5, 0
+ movs r1, 0x2
+ bl sub_807A100
+ adds r0, 0x8
+ b _080E0094
+_080E007E:
+ adds r0, r5, 0
+ movs r1, 0x4
+ bl sub_807A100
+ adds r0, 0xE
+ strh r0, [r4, 0x20]
+ adds r0, r5, 0
+ movs r1, 0x2
+ bl sub_807A100
+ adds r0, 0x10
+_080E0094:
+ strh r0, [r4, 0x22]
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl StartSpriteAffineAnim
+ movs r6, 0xEC
+_080E00A0:
+ movs r0, 0x20
+ strh r0, [r4, 0x2E]
+ lsls r0, r6, 24
+ asrs r0, 24
+ ldrh r2, [r4, 0x20]
+ adds r0, r2
+ strh r0, [r4, 0x32]
+ ldrh r0, [r4, 0x22]
+ adds r0, 0xC
+ strh r0, [r4, 0x36]
+ ldr r0, _080E00C8
+ strh r0, [r4, 0x38]
+ adds r0, r4, 0
+ bl sub_80786EC
+ ldr r0, _080E00CC
+ str r0, [r4, 0x1C]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E00C8: .4byte 0x0000fff4
+_080E00CC: .4byte sub_80E00D0
+ thumb_func_end sub_80DFFD0
+
+ thumb_func_start sub_80E00D0
+sub_80E00D0: @ 80E00D0
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_8078718
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E00E4
+ adds r0, r4, 0
+ bl move_anim_8074EE0
+_080E00E4:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80E00D0
+
+ thumb_func_start sub_80E00EC
+sub_80E00EC: @ 80E00EC
+ push {r4-r7,lr}
+ sub sp, 0x18
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _080E0150
+ adds r5, r1, r0
+ ldr r4, _080E0154
+ ldrb r0, [r4]
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, 0x1F
+ movs r6, 0
+ strh r0, [r5, 0x16]
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_807A100
+ subs r0, 0x7
+ strh r0, [r5, 0x14]
+ ldrh r1, [r5, 0x16]
+ strh r1, [r5, 0x12]
+ strh r0, [r5, 0x10]
+ subs r1, r0
+ lsls r1, 8
+ strh r1, [r5, 0x22]
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ adds r1, r0, 0
+ subs r1, 0x20
+ strh r1, [r5, 0x24]
+ adds r0, 0x20
+ strh r0, [r5, 0x26]
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _080E015C
+ ldr r0, _080E0158
+ b _080E015E
+ .align 2, 0
+_080E0150: .4byte gTasks
+_080E0154: .4byte gUnknown_0202F7C8
+_080E0158: .4byte 0x0000fff4
+_080E015C:
+ ldr r0, _080E01A8
+_080E015E:
+ strh r0, [r5, 0x18]
+ ldr r0, _080E01AC
+ ldrb r0, [r0]
+ bl battle_get_per_side_status_permutated
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0xE]
+ cmp r0, 0x1
+ bne _080E01C4
+ add r4, sp, 0xC
+ adds r0, r4, 0
+ bl sub_8078914
+ ldr r0, _080E01B0
+ ldrh r0, [r0]
+ strh r0, [r5, 0x1C]
+ ldr r1, _080E01B4
+ ldr r2, _080E01B8
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldrb r1, [r4, 0x8]
+ lsls r1, 4
+ movs r0, 0
+ movs r2, 0x20
+ bl FillPalette
+ ldr r0, _080E01BC
+ str r0, [sp]
+ movs r7, 0x2
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080E01F4
+ ldr r1, _080E01C0
+ b _080E01EE
+ .align 2, 0
+_080E01A8: .4byte 0x0000ffc0
+_080E01AC: .4byte gUnknown_0202F7C8
+_080E01B0: .4byte gUnknown_030041B4
+_080E01B4: .4byte REG_BLDCNT
+_080E01B8: .4byte 0x00003f42
+_080E01BC: .4byte REG_BG1VOFS
+_080E01C0: .4byte gUnknown_03004288
+_080E01C4:
+ ldr r0, _080E0278
+ ldrh r0, [r0]
+ strh r0, [r5, 0x1C]
+ ldr r1, _080E027C
+ ldr r2, _080E0280
+ adds r0, r2, 0
+ strh r0, [r1]
+ movs r0, 0
+ movs r1, 0x90
+ movs r2, 0x20
+ bl FillPalette
+ ldr r0, _080E0284
+ str r0, [sp]
+ movs r7, 0x4
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080E01F4
+ ldr r1, _080E0288
+_080E01EE:
+ ldrh r0, [r1]
+ adds r0, 0xF0
+ strh r0, [r1]
+_080E01F4:
+ ldr r0, _080E028C
+ str r0, [sp, 0x4]
+ mov r2, sp
+ movs r1, 0
+ movs r0, 0x1
+ strb r0, [r2, 0x8]
+ mov r0, sp
+ strb r1, [r0, 0x9]
+ strh r1, [r5, 0x1E]
+ movs r0, 0x10
+ strh r0, [r5, 0x20]
+ strh r1, [r5, 0x8]
+ strh r1, [r5, 0xA]
+ strh r1, [r5, 0xC]
+ movs r0, 0x3
+ bl sub_80E08CC
+ movs r3, 0
+ ldr r4, _080E0290
+ movs r0, 0xF0
+ lsls r0, 3
+ adds r6, r4, r0
+_080E0220:
+ lsls r1, r3, 1
+ adds r2, r1, r4
+ ldrh r0, [r5, 0x1C]
+ strh r0, [r2]
+ adds r1, r6
+ ldrh r0, [r5, 0x1C]
+ strh r0, [r1]
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0x6F
+ bls _080E0220
+ ldr r0, [sp]
+ ldr r1, [sp, 0x4]
+ ldr r2, [sp, 0x8]
+ bl sub_80895F8
+ ldr r1, _080E0294
+ movs r0, 0x3F
+ eors r7, r0
+ movs r2, 0xFC
+ lsls r2, 6
+ adds r0, r2, 0
+ orrs r7, r0
+ strh r7, [r1]
+ subs r1, 0x2
+ adds r2, 0x3F
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r2, _080E0298
+ ldrh r0, [r5, 0x24]
+ lsls r0, 8
+ ldrh r1, [r5, 0x26]
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r1, _080E029C
+ movs r0, 0xA0
+ strh r0, [r1]
+ ldr r0, _080E02A0
+ str r0, [r5]
+ add sp, 0x18
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E0278: .4byte gUnknown_03004280
+_080E027C: .4byte REG_BLDCNT
+_080E0280: .4byte 0x00003f44
+_080E0284: .4byte REG_BG2VOFS
+_080E0288: .4byte gUnknown_030042C0
+_080E028C: .4byte 0xa2600001
+_080E0290: .4byte gUnknown_03004DE0
+_080E0294: .4byte REG_WINOUT
+_080E0298: .4byte gUnknown_030042C4
+_080E029C: .4byte gUnknown_03004240
+_080E02A0: .4byte sub_80E02A4
+ thumb_func_end sub_80E00EC
+
+ thumb_func_start sub_80E02A4
+sub_80E02A4: @ 80E02A4
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ ldr r1, _080E02C8
+ adds r4, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x4
+ bls _080E02BE
+ b _080E03B6
+_080E02BE:
+ lsls r0, 2
+ ldr r1, _080E02CC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080E02C8: .4byte gTasks
+_080E02CC: .4byte _080E02D0
+ .align 2, 0
+_080E02D0:
+ .4byte _080E02E4
+ .4byte _080E0344
+ .4byte _080E035E
+ .4byte _080E039C
+ .4byte _080E03B0
+_080E02E4:
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080E03B6
+ movs r0, 0
+ strh r0, [r4, 0xA]
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x1
+ strh r0, [r4, 0xC]
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080E0314
+ ldrh r1, [r4, 0x1E]
+ movs r2, 0x1E
+ ldrsh r0, [r4, r2]
+ cmp r0, 0xC
+ beq _080E0322
+ adds r0, r1, 0x1
+ strh r0, [r4, 0x1E]
+ b _080E0322
+_080E0314:
+ ldrh r1, [r4, 0x20]
+ movs r2, 0x20
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x8
+ beq _080E0322
+ subs r0, r1, 0x1
+ strh r0, [r4, 0x20]
+_080E0322:
+ ldr r2, _080E0340
+ ldrh r0, [r4, 0x20]
+ lsls r0, 8
+ ldrh r1, [r4, 0x1E]
+ orrs r0, r1
+ strh r0, [r2]
+ movs r1, 0x1E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0xC
+ bne _080E03B6
+ movs r2, 0x20
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x8
+ bne _080E03B6
+ b _080E03A2
+ .align 2, 0
+_080E0340: .4byte REG_BLDALPHA
+_080E0344:
+ ldrh r0, [r4, 0x10]
+ subs r0, 0x8
+ strh r0, [r4, 0x10]
+ adds r0, r4, 0
+ bl sub_80E079C
+ movs r0, 0x10
+ ldrsh r1, [r4, r0]
+ movs r2, 0x18
+ ldrsh r0, [r4, r2]
+ cmp r1, r0
+ bge _080E03B6
+ b _080E03A2
+_080E035E:
+ ldrh r0, [r4, 0x10]
+ subs r0, 0x8
+ strh r0, [r4, 0x10]
+ adds r0, r4, 0
+ bl sub_80E079C
+ ldrh r1, [r4, 0x24]
+ adds r1, 0x4
+ strh r1, [r4, 0x24]
+ ldrh r0, [r4, 0x26]
+ subs r2, r0, 0x4
+ strh r2, [r4, 0x26]
+ lsls r1, 16
+ lsls r0, r2, 16
+ cmp r1, r0
+ blt _080E0380
+ strh r2, [r4, 0x24]
+_080E0380:
+ ldr r3, _080E0398
+ ldrh r2, [r4, 0x24]
+ lsls r0, r2, 8
+ ldrh r1, [r4, 0x26]
+ orrs r0, r1
+ strh r0, [r3]
+ lsls r2, 16
+ lsls r1, 16
+ cmp r2, r1
+ bne _080E03B6
+ b _080E03A2
+ .align 2, 0
+_080E0398: .4byte gUnknown_030042C4
+_080E039C:
+ ldr r1, _080E03AC
+ movs r0, 0x3
+ strb r0, [r1, 0x15]
+_080E03A2:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _080E03B6
+ .align 2, 0
+_080E03AC: .4byte gUnknown_03004DC0
+_080E03B0:
+ adds r0, r2, 0
+ bl move_anim_task_del
+_080E03B6:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80E02A4
+
+ thumb_func_start sub_80E03BC
+sub_80E03BC: @ 80E03BC
+ push {r4-r7,lr}
+ sub sp, 0x18
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ ldr r1, _080E03E4
+ adds r5, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x4
+ bls _080E03D8
+ b _080E05F2
+_080E03D8:
+ lsls r0, 2
+ ldr r1, _080E03E8
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080E03E4: .4byte gTasks
+_080E03E8: .4byte _080E03EC
+ .align 2, 0
+_080E03EC:
+ .4byte _080E0400
+ .4byte _080E048C
+ .4byte _080E04D0
+ .4byte _080E053C
+ .4byte _080E05A4
+_080E0400:
+ bl sub_8076BE0
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080E043C
+ ldr r0, _080E042C
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, _080E0430
+ strh r1, [r0]
+ ldr r0, _080E0434
+ ldr r2, _080E0438
+ adds r1, r2, 0
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, r4, 0
+ bl move_anim_task_del
+ b _080E05F2
+ .align 2, 0
+_080E042C: .4byte gUnknown_030042C4
+_080E0430: .4byte gUnknown_03004240
+_080E0434: .4byte REG_WININ
+_080E0438: .4byte 0x00003f3f
+_080E043C:
+ ldr r0, _080E045C
+ ldrb r0, [r0]
+ bl battle_get_per_side_status_permutated
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0xE]
+ cmp r0, 0x1
+ bne _080E046C
+ ldr r1, _080E0460
+ ldr r2, _080E0464
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r1, _080E0468
+ b _080E0476
+ .align 2, 0
+_080E045C: .4byte gUnknown_0202F7C9
+_080E0460: .4byte REG_BLDCNT
+_080E0464: .4byte 0x00003f42
+_080E0468: .4byte gUnknown_03004288
+_080E046C:
+ ldr r1, _080E0480
+ ldr r2, _080E0484
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r1, _080E0488
+_080E0476:
+ ldrh r0, [r1]
+ adds r0, 0xF0
+ strh r0, [r1]
+ b _080E0590
+ .align 2, 0
+_080E0480: .4byte REG_BLDCNT
+_080E0484: .4byte 0x00003f44
+_080E0488: .4byte gUnknown_030042C0
+_080E048C:
+ movs r1, 0xE
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x1
+ bne _080E04B4
+ mov r0, sp
+ bl sub_8078914
+ ldr r0, _080E04B0
+ ldrh r0, [r0]
+ strh r0, [r5, 0x1C]
+ mov r0, sp
+ ldrb r1, [r0, 0x8]
+ lsls r1, 4
+ movs r0, 0
+ movs r2, 0x20
+ bl FillPalette
+ b _080E04C4
+ .align 2, 0
+_080E04B0: .4byte gUnknown_030041B4
+_080E04B4:
+ ldr r0, _080E04CC
+ ldrh r0, [r0]
+ strh r0, [r5, 0x1C]
+ movs r0, 0
+ movs r1, 0x90
+ movs r2, 0x20
+ bl FillPalette
+_080E04C4:
+ movs r0, 0x3
+ bl sub_80E08CC
+ b _080E0590
+ .align 2, 0
+_080E04CC: .4byte gUnknown_03004280
+_080E04D0:
+ ldr r4, _080E051C
+ ldrb r0, [r4]
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, 0x1F
+ movs r6, 0
+ strh r0, [r5, 0x16]
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_807A100
+ subs r0, 0x7
+ strh r0, [r5, 0x14]
+ ldrh r1, [r5, 0x16]
+ subs r1, r0
+ lsls r1, 8
+ strh r1, [r5, 0x22]
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ subs r1, r0, 0x4
+ strh r1, [r5, 0x24]
+ adds r0, 0x4
+ strh r0, [r5, 0x26]
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _080E0524
+ ldr r0, _080E0520
+ b _080E0526
+ .align 2, 0
+_080E051C: .4byte gUnknown_0202F7C9
+_080E0520: .4byte 0x0000fff4
+_080E0524:
+ ldr r0, _080E0538
+_080E0526:
+ strh r0, [r5, 0x18]
+ ldrh r0, [r5, 0x18]
+ strh r0, [r5, 0x10]
+ strh r0, [r5, 0x12]
+ movs r0, 0xC
+ strh r0, [r5, 0x1E]
+ movs r0, 0x8
+ strh r0, [r5, 0x20]
+ b _080E0590
+ .align 2, 0
+_080E0538: .4byte 0x0000ffc0
+_080E053C:
+ movs r2, 0xE
+ ldrsh r0, [r5, r2]
+ cmp r0, 0x1
+ bne _080E054C
+ ldr r0, _080E0548
+ b _080E054E
+ .align 2, 0
+_080E0548: .4byte REG_BG1VOFS
+_080E054C:
+ ldr r0, _080E0598
+_080E054E:
+ str r0, [sp, 0xC]
+ movs r3, 0
+ add r4, sp, 0xC
+ ldr r6, _080E059C
+ movs r0, 0xF0
+ lsls r0, 3
+ adds r7, r6, r0
+_080E055C:
+ lsls r1, r3, 1
+ adds r2, r1, r6
+ ldrh r0, [r5, 0x1C]
+ adds r0, 0x9F
+ subs r0, r3
+ strh r0, [r2]
+ adds r1, r7
+ ldrh r0, [r5, 0x1C]
+ adds r0, 0x9F
+ subs r0, r3
+ strh r0, [r1]
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0x6F
+ bls _080E055C
+ ldr r1, _080E05A0
+ str r1, [r4, 0x4]
+ movs r2, 0
+ movs r0, 0x1
+ strb r0, [r4, 0x8]
+ strb r2, [r4, 0x9]
+ ldr r0, [sp, 0xC]
+ ldr r2, [r4, 0x8]
+ bl sub_80895F8
+_080E0590:
+ ldrh r0, [r5, 0x8]
+ adds r0, 0x1
+ strh r0, [r5, 0x8]
+ b _080E05F2
+ .align 2, 0
+_080E0598: .4byte REG_BG2VOFS
+_080E059C: .4byte gUnknown_03004DE0
+_080E05A0: .4byte 0xa2600001
+_080E05A4:
+ movs r1, 0xE
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x1
+ bne _080E05BC
+ ldr r1, _080E05B4
+ ldr r2, _080E05B8
+ b _080E05C0
+ .align 2, 0
+_080E05B4: .4byte REG_WINOUT
+_080E05B8: .4byte 0x00003f3d
+_080E05BC:
+ ldr r1, _080E05FC
+ ldr r2, _080E0600
+_080E05C0:
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r1, _080E0604
+ ldr r2, _080E0608
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r2, _080E060C
+ ldrh r0, [r5, 0x24]
+ lsls r0, 8
+ ldrh r1, [r5, 0x26]
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r1, _080E0610
+ movs r0, 0xA0
+ strh r0, [r1]
+ movs r0, 0
+ strh r0, [r5, 0x8]
+ strh r0, [r5, 0xA]
+ strh r0, [r5, 0xC]
+ ldr r1, _080E0614
+ ldr r2, _080E0618
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r0, _080E061C
+ str r0, [r5]
+_080E05F2:
+ add sp, 0x18
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E05FC: .4byte REG_WINOUT
+_080E0600: .4byte 0x00003f3b
+_080E0604: .4byte REG_WININ
+_080E0608: .4byte 0x00003f3f
+_080E060C: .4byte gUnknown_030042C4
+_080E0610: .4byte gUnknown_03004240
+_080E0614: .4byte REG_BLDALPHA
+_080E0618: .4byte 0x0000080c
+_080E061C: .4byte sub_80E0620
+ thumb_func_end sub_80E03BC
+
+ thumb_func_start sub_80E0620
+sub_80E0620: @ 80E0620
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ ldr r1, _080E0644
+ adds r4, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x4
+ bls _080E063A
+ b _080E0784
+_080E063A:
+ lsls r0, 2
+ ldr r1, _080E0648
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080E0644: .4byte gTasks
+_080E0648: .4byte _080E064C
+ .align 2, 0
+_080E064C:
+ .4byte _080E0660
+ .4byte _080E068C
+ .4byte _080E06F4
+ .4byte _080E0754
+ .4byte _080E0768
+_080E0660:
+ ldrh r0, [r4, 0x12]
+ adds r0, 0x8
+ strh r0, [r4, 0x12]
+ lsls r0, 16
+ asrs r0, 16
+ ldrh r2, [r4, 0x16]
+ movs r3, 0x16
+ ldrsh r1, [r4, r3]
+ cmp r0, r1
+ blt _080E0676
+ strh r2, [r4, 0x12]
+_080E0676:
+ adds r0, r4, 0
+ bl sub_80E079C
+ movs r0, 0x12
+ ldrsh r1, [r4, r0]
+ movs r2, 0x16
+ ldrsh r0, [r4, r2]
+ cmp r1, r0
+ beq _080E068A
+ b _080E0784
+_080E068A:
+ b _080E075A
+_080E068C:
+ movs r3, 0x26
+ ldrsh r0, [r4, r3]
+ movs r2, 0x24
+ ldrsh r1, [r4, r2]
+ subs r0, r1
+ cmp r0, 0x3F
+ bgt _080E06A8
+ ldrh r0, [r4, 0x24]
+ subs r0, 0x4
+ strh r0, [r4, 0x24]
+ ldrh r0, [r4, 0x26]
+ adds r0, 0x4
+ strh r0, [r4, 0x26]
+ b _080E06AC
+_080E06A8:
+ movs r0, 0x1
+ strh r0, [r4, 0xA]
+_080E06AC:
+ ldr r2, _080E06F0
+ ldrh r0, [r4, 0x24]
+ lsls r0, 8
+ ldrh r1, [r4, 0x26]
+ orrs r0, r1
+ strh r0, [r2]
+ ldrh r0, [r4, 0x10]
+ adds r0, 0x8
+ strh r0, [r4, 0x10]
+ lsls r0, 16
+ asrs r0, 16
+ ldrh r2, [r4, 0x14]
+ movs r3, 0x14
+ ldrsh r1, [r4, r3]
+ cmp r0, r1
+ blt _080E06CE
+ strh r2, [r4, 0x10]
+_080E06CE:
+ adds r0, r4, 0
+ bl sub_80E079C
+ movs r0, 0x10
+ ldrsh r1, [r4, r0]
+ movs r2, 0x14
+ ldrsh r0, [r4, r2]
+ cmp r1, r0
+ bne _080E0784
+ movs r3, 0xA
+ ldrsh r0, [r4, r3]
+ cmp r0, 0
+ beq _080E0784
+ movs r0, 0
+ strh r0, [r4, 0xA]
+ b _080E075A
+ .align 2, 0
+_080E06F0: .4byte gUnknown_030042C4
+_080E06F4:
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080E0784
+ movs r0, 0
+ strh r0, [r4, 0xA]
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x1
+ strh r0, [r4, 0xC]
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080E0724
+ ldrh r1, [r4, 0x1E]
+ movs r2, 0x1E
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ beq _080E0732
+ subs r0, r1, 0x1
+ strh r0, [r4, 0x1E]
+ b _080E0732
+_080E0724:
+ ldrh r1, [r4, 0x20]
+ movs r3, 0x20
+ ldrsh r0, [r4, r3]
+ cmp r0, 0xF
+ bgt _080E0732
+ adds r0, r1, 0x1
+ strh r0, [r4, 0x20]
+_080E0732:
+ ldr r2, _080E0750
+ ldrh r0, [r4, 0x20]
+ lsls r0, 8
+ ldrh r1, [r4, 0x1E]
+ orrs r0, r1
+ strh r0, [r2]
+ movs r1, 0x1E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080E0784
+ movs r2, 0x20
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x10
+ bne _080E0784
+ b _080E075A
+ .align 2, 0
+_080E0750: .4byte REG_BLDALPHA
+_080E0754:
+ ldr r1, _080E0764
+ movs r0, 0x3
+ strb r0, [r1, 0x15]
+_080E075A:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _080E0784
+ .align 2, 0
+_080E0764: .4byte gUnknown_03004DC0
+_080E0768:
+ ldr r0, _080E078C
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, _080E0790
+ strh r1, [r0]
+ ldr r0, _080E0794
+ ldr r3, _080E0798
+ adds r1, r3, 0
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, r2, 0
+ bl move_anim_task_del
+_080E0784:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E078C: .4byte gUnknown_030042C4
+_080E0790: .4byte gUnknown_03004240
+_080E0794: .4byte REG_WININ
+_080E0798: .4byte 0x00003f3f
+ thumb_func_end sub_80E0620
+
+ thumb_func_start sub_80E079C
+sub_80E079C: @ 80E079C
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r6, r0, 0
+ ldrh r0, [r6, 0x12]
+ ldrh r4, [r6, 0x10]
+ subs r0, r4
+ lsls r0, 16
+ asrs r1, r0, 16
+ cmp r1, 0
+ beq _080E0890
+ movs r2, 0x22
+ ldrsh r0, [r6, r2]
+ bl __divsi3
+ mov r8, r0
+ movs r3, 0x14
+ ldrsh r0, [r6, r3]
+ lsls r5, r0, 8
+ lsls r0, r4, 16
+ movs r4, 0
+ cmp r0, 0
+ ble _080E07FC
+ ldr r0, _080E0888
+ mov r12, r0
+ ldr r7, _080E088C
+_080E07D0:
+ lsls r2, r4, 16
+ asrs r2, 16
+ lsls r3, r2, 1
+ ldrb r1, [r7, 0x14]
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 7
+ adds r3, r0
+ add r3, r12
+ adds r1, r2, 0
+ subs r1, 0x9F
+ ldrh r0, [r6, 0x1C]
+ subs r0, r1
+ strh r0, [r3]
+ adds r2, 0x1
+ lsls r2, 16
+ lsrs r4, r2, 16
+ asrs r2, 16
+ movs r1, 0x10
+ ldrsh r0, [r6, r1]
+ cmp r2, r0
+ blt _080E07D0
+_080E07FC:
+ ldrh r4, [r6, 0x10]
+ lsls r3, r4, 16
+ asrs r1, r3, 16
+ movs r2, 0x12
+ ldrsh r0, [r6, r2]
+ cmp r1, r0
+ bgt _080E0846
+ ldr r0, _080E0888
+ mov r12, r0
+ ldr r7, _080E088C
+_080E0810:
+ asrs r4, r3, 16
+ cmp r4, 0
+ blt _080E0832
+ asrs r1, r5, 8
+ subs r1, r4
+ lsls r3, r4, 1
+ ldrb r2, [r7, 0x14]
+ lsls r0, r2, 4
+ subs r0, r2
+ lsls r0, 7
+ adds r3, r0
+ add r3, r12
+ lsls r1, 16
+ asrs r1, 16
+ ldrh r2, [r6, 0x1C]
+ adds r1, r2
+ strh r1, [r3]
+_080E0832:
+ add r5, r8
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ lsls r3, r4, 16
+ asrs r1, r3, 16
+ movs r2, 0x12
+ ldrsh r0, [r6, r2]
+ cmp r1, r0
+ ble _080E0810
+_080E0846:
+ movs r3, 0x1C
+ ldrsh r0, [r6, r3]
+ adds r0, 0x9F
+ lsls r2, r4, 16
+ asrs r1, r2, 16
+ subs r5, r0, r1
+ movs r3, 0x16
+ ldrsh r0, [r6, r3]
+ cmp r1, r0
+ bge _080E08BE
+ ldr r7, _080E0888
+ ldr r4, _080E088C
+_080E085E:
+ asrs r3, r2, 16
+ cmp r3, 0
+ blt _080E0876
+ lsls r2, r3, 1
+ ldrb r1, [r4, 0x14]
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 7
+ adds r2, r0
+ adds r2, r7
+ strh r5, [r2]
+ subs r5, 0x1
+_080E0876:
+ adds r0, r3, 0x1
+ lsls r2, r0, 16
+ asrs r1, r2, 16
+ movs r3, 0x16
+ ldrsh r0, [r6, r3]
+ cmp r1, r0
+ blt _080E085E
+ b _080E08BE
+ .align 2, 0
+_080E0888: .4byte gUnknown_03004DE0
+_080E088C: .4byte gUnknown_03004DC0
+_080E0890:
+ movs r1, 0x1C
+ ldrsh r0, [r6, r1]
+ adds r5, r0, 0
+ adds r5, 0x9F
+ movs r4, 0
+ ldr r3, _080E08C8
+ movs r2, 0xF0
+ lsls r2, 3
+ adds r6, r3, r2
+_080E08A2:
+ lsls r0, r4, 16
+ asrs r0, 16
+ lsls r2, r0, 1
+ adds r1, r2, r3
+ strh r5, [r1]
+ adds r2, r6
+ strh r5, [r2]
+ subs r5, 0x1
+ adds r0, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ asrs r0, 16
+ cmp r0, 0x6F
+ ble _080E08A2
+_080E08BE:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E08C8: .4byte gUnknown_03004DE0
+ thumb_func_end sub_80E079C
+
+ thumb_func_start sub_80E08CC
+sub_80E08CC: @ 80E08CC
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ movs r4, 0
+ ldr r7, _080E0914
+ movs r1, 0x3
+ ands r0, r1
+ lsls r5, r0, 2
+ movs r0, 0xD
+ negs r0, r0
+ adds r6, r0, 0
+_080E08E2:
+ lsls r0, r4, 24
+ lsrs r0, 24
+ bl obj_id_for_side_relative_to_move
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xFF
+ beq _080E0902
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r7
+ ldrb r0, [r1, 0x5]
+ ands r0, r6
+ orrs r0, r5
+ strb r0, [r1, 0x5]
+_080E0902:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x3
+ bls _080E08E2
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E0914: .4byte gSprites
+ thumb_func_end sub_80E08CC
+
+ thumb_func_start sub_80E0918
+sub_80E0918: @ 80E0918
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ lsls r0, 24
+ lsrs r0, 24
+ mov r10, r0
+ ldr r6, _080E09B8
+ ldrb r0, [r6]
+ bl battle_get_per_side_status_permutated
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x1
+ eors r0, r1
+ negs r1, r0
+ orrs r1, r0
+ lsrs r4, r1, 31
+ ldrb r0, [r6]
+ adds r1, r4, 0
+ bl sub_8076034
+ ldr r0, _080E09BC
+ mov r9, r0
+ ldr r0, _080E09C0
+ mov r8, r0
+ ldrb r0, [r6]
+ add r0, r8
+ ldrb r0, [r0]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ add r1, r9
+ adds r1, 0x3E
+ ldrb r2, [r1]
+ movs r7, 0x5
+ negs r7, r7
+ adds r0, r7, 0
+ ands r0, r2
+ strb r0, [r1]
+ ldrb r0, [r6]
+ movs r5, 0x2
+ eors r0, r5
+ bl b_side_obj__get_some_boolean
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E09A2
+ ldrb r0, [r6]
+ eors r0, r5
+ movs r1, 0x1
+ eors r4, r1
+ adds r1, r4, 0
+ bl sub_8076034
+ ldrb r0, [r6]
+ eors r0, r5
+ add r0, r8
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ add r0, r9
+ adds r0, 0x3E
+ ldrb r2, [r0]
+ adds r1, r7, 0
+ ands r1, r2
+ strb r1, [r0]
+_080E09A2:
+ mov r0, r10
+ bl move_anim_task_del
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E09B8: .4byte gUnknown_0202F7C8
+_080E09BC: .4byte gSprites
+_080E09C0: .4byte gUnknown_02024BE0
+ thumb_func_end sub_80E0918
+
+ thumb_func_start sub_80E09C4
+sub_80E09C4: @ 80E09C4
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r4, _080E0A0C
+ ldrb r0, [r4]
+ bl battle_get_per_side_status_permutated
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x1
+ eors r0, r1
+ negs r1, r0
+ orrs r1, r0
+ lsrs r5, r1, 31
+ adds r0, r5, 0
+ bl sub_8076464
+ ldrb r1, [r4]
+ movs r0, 0x2
+ eors r0, r1
+ bl b_side_obj__get_some_boolean
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E0A00
+ movs r0, 0x1
+ eors r5, r0
+ adds r0, r5, 0
+ bl sub_8076464
+_080E0A00:
+ adds r0, r6, 0
+ bl move_anim_task_del
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E0A0C: .4byte gUnknown_0202F7C8
+ thumb_func_end sub_80E09C4
+
+ thumb_func_start sub_80E0A10
+sub_80E0A10: @ 80E0A10
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r1, _080E0A40
+ ldrh r0, [r1]
+ ldrh r2, [r4, 0x20]
+ adds r0, r2
+ strh r0, [r4, 0x20]
+ ldrh r0, [r1, 0x2]
+ ldrh r2, [r4, 0x22]
+ adds r0, r2
+ strh r0, [r4, 0x22]
+ ldrb r1, [r1, 0x4]
+ adds r0, r4, 0
+ bl StartSpriteAnim
+ ldr r0, _080E0A44
+ str r0, [r4, 0x1C]
+ ldr r1, _080E0A48
+ adds r0, r4, 0
+ bl oamt_set_x3A_32
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E0A40: .4byte gUnknown_03004B00
+_080E0A44: .4byte sub_8078600
+_080E0A48: .4byte move_anim_8072740
+ thumb_func_end sub_80E0A10
+
+ thumb_func_start sub_80E0A4C
+sub_80E0A4C: @ 80E0A4C
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x10
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ movs r7, 0
+ ldr r0, _080E0B50
+ strh r7, [r0]
+ ldr r0, _080E0B54
+ strh r7, [r0]
+ ldr r1, _080E0B58
+ ldr r2, _080E0B5C
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r3, _080E0B60
+ adds r0, r3, 0
+ strh r0, [r1]
+ movs r2, 0x80
+ lsls r2, 19
+ ldrh r0, [r2]
+ movs r3, 0x80
+ lsls r3, 8
+ adds r1, r3, 0
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r1, _080E0B64
+ ldr r2, _080E0B68
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r3, _080E0B6C
+ adds r0, r3, 0
+ strh r0, [r1]
+ ldr r5, _080E0B70
+ ldrb r1, [r5]
+ movs r0, 0x4
+ negs r0, r0
+ mov r8, r0
+ ands r0, r1
+ strb r0, [r5]
+ ldrb r1, [r5, 0x1]
+ movs r0, 0x3F
+ ands r0, r1
+ strb r0, [r5, 0x1]
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080E0AC4
+ ldrb r0, [r5]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r0
+ movs r0, 0x4
+ orrs r1, r0
+ strb r1, [r5]
+_080E0AC4:
+ bl battle_type_is_double
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E0B40
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080E0B40
+ ldr r4, _080E0B74
+ ldrb r0, [r4]
+ bl battle_get_per_side_status
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x3
+ beq _080E0AF4
+ ldrb r0, [r4]
+ bl battle_get_per_side_status
+ lsls r0, 24
+ cmp r0, 0
+ bne _080E0B40
+_080E0AF4:
+ ldrb r0, [r4]
+ movs r6, 0x2
+ eors r0, r6
+ bl b_side_obj__get_some_boolean
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080E0B40
+ ldr r3, _080E0B78
+ ldr r1, _080E0B7C
+ ldrb r0, [r4]
+ eors r0, r6
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r2, r3
+ ldrb r3, [r2, 0x5]
+ lsls r1, r3, 28
+ lsrs r1, 30
+ subs r1, 0x1
+ movs r0, 0x3
+ ands r1, r0
+ lsls r1, 2
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r3
+ orrs r0, r1
+ strb r0, [r2, 0x5]
+ ldrb r1, [r5]
+ mov r0, r8
+ ands r0, r1
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r5]
+ movs r7, 0x1
+_080E0B40:
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E0B84
+ ldr r0, _080E0B80
+ ldrh r5, [r0]
+ b _080E0BCC
+ .align 2, 0
+_080E0B50: .4byte gUnknown_030042C4
+_080E0B54: .4byte gUnknown_03004240
+_080E0B58: .4byte REG_WININ
+_080E0B5C: .4byte 0x00003f3f
+_080E0B60: .4byte 0x00003f3d
+_080E0B64: .4byte REG_BLDCNT
+_080E0B68: .4byte 0x00003f42
+_080E0B6C: .4byte 0x00000c08
+_080E0B70: .4byte REG_BG1CNT
+_080E0B74: .4byte gUnknown_0202F7C8
+_080E0B78: .4byte gSprites
+_080E0B7C: .4byte gUnknown_02024BE0
+_080E0B80: .4byte 0x02019348
+_080E0B84:
+ ldr r4, _080E0BA4
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E0BB0
+ ldr r1, _080E0BA8
+ ldrb r0, [r4]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _080E0BAC
+ b _080E0BC0
+ .align 2, 0
+_080E0BA4: .4byte gUnknown_0202F7C8
+_080E0BA8: .4byte gUnknown_02024A6A
+_080E0BAC: .4byte gEnemyParty
+_080E0BB0:
+ ldr r1, _080E0C58
+ ldrb r0, [r4]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _080E0C5C
+_080E0BC0:
+ adds r0, r1
+ movs r1, 0xB
+ bl GetMonData
+ lsls r0, 16
+ lsrs r5, r0, 16
+_080E0BCC:
+ movs r0, 0
+ bl obj_id_for_side_relative_to_move
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _080E0C60
+ ldrb r0, [r0]
+ adds r1, r4, 0
+ adds r2, r5, 0
+ bl sub_807A4A0
+ lsls r0, 24
+ lsrs r5, r0, 24
+ mov r0, sp
+ bl sub_8078914
+ ldr r1, [sp, 0x4]
+ movs r0, 0
+ str r0, [sp, 0xC]
+ ldr r2, _080E0C64
+ add r0, sp, 0xC
+ str r0, [r2]
+ str r1, [r2, 0x4]
+ ldr r0, _080E0C68
+ str r0, [r2, 0x8]
+ ldr r0, [r2, 0x8]
+ ldr r0, _080E0C6C
+ bl LZDecompressVram
+ ldr r0, _080E0C70
+ ldr r1, [sp]
+ bl LZDecompressVram
+ ldr r0, _080E0C74
+ mov r1, sp
+ ldrb r1, [r1, 0x8]
+ lsls r1, 4
+ movs r2, 0x20
+ bl LoadCompressedPalette
+ ldr r2, _080E0C78
+ ldr r0, _080E0C7C
+ lsls r1, r4, 4
+ adds r1, r4
+ lsls r1, 2
+ adds r1, r0
+ ldrh r0, [r1, 0x20]
+ negs r0, r0
+ adds r0, 0x60
+ strh r0, [r2]
+ ldr r2, _080E0C80
+ ldrh r0, [r1, 0x22]
+ negs r0, r0
+ adds r0, 0x20
+ strh r0, [r2]
+ ldrb r0, [r1, 0x5]
+ lsrs r0, 4
+ adds r0, 0x10
+ adds r1, r0, 0
+ ldr r2, _080E0C84
+ movs r3, 0x2
+ ldrsh r0, [r2, r3]
+ cmp r0, 0
+ bne _080E0C88
+ adds r0, r1, 0
+ movs r1, 0
+ bl sub_8079108
+ b _080E0C94
+ .align 2, 0
+_080E0C58: .4byte gUnknown_02024A6A
+_080E0C5C: .4byte gPlayerParty
+_080E0C60: .4byte gUnknown_0202F7C8
+_080E0C64: .4byte 0x040000d4
+_080E0C68: .4byte 0x85000400
+_080E0C6C: .4byte gUnknown_08D1D574
+_080E0C70: .4byte gUnknown_08D1D410
+_080E0C74: .4byte gUnknown_08D1D54C
+_080E0C78: .4byte gUnknown_030042C0
+_080E0C7C: .4byte gSprites
+_080E0C80: .4byte gUnknown_030041B4
+_080E0C84: .4byte gUnknown_03004B00
+_080E0C88:
+ lsls r0, r1, 4
+ ldrh r3, [r2, 0x4]
+ movs r1, 0x10
+ movs r2, 0xB
+ bl BlendPalette
+_080E0C94:
+ ldr r1, _080E0CC4
+ mov r2, r9
+ lsls r0, r2, 2
+ add r0, r9
+ lsls r0, 3
+ adds r0, r1
+ strh r5, [r0, 0x8]
+ ldr r2, _080E0CC8
+ ldrh r1, [r2]
+ strh r1, [r0, 0xA]
+ ldrh r1, [r2, 0x2]
+ strh r1, [r0, 0xC]
+ ldrh r1, [r2, 0x4]
+ strh r1, [r0, 0xE]
+ strh r7, [r0, 0x14]
+ ldr r1, _080E0CCC
+ str r1, [r0]
+ add sp, 0x10
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E0CC4: .4byte gTasks
+_080E0CC8: .4byte gUnknown_03004B00
+_080E0CCC: .4byte sub_80E0CD0
+ thumb_func_end sub_80E0A4C
+
+ thumb_func_start sub_80E0CD0
+sub_80E0CD0: @ 80E0CD0
+ push {r4-r7,lr}
+ sub sp, 0x10
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r1, _080E0DF0
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r4, r0, r1
+ ldrh r0, [r4, 0x1C]
+ adds r0, 0x4
+ movs r5, 0
+ strh r0, [r4, 0x1C]
+ ldr r2, _080E0DF4
+ ldrh r3, [r2]
+ subs r1, r3, 0x4
+ strh r1, [r2]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x80
+ bne _080E0DE8
+ strh r5, [r4, 0x1C]
+ adds r0, r3, 0
+ adds r0, 0x7C
+ strh r0, [r2]
+ ldrh r0, [r4, 0x1E]
+ adds r0, 0x1
+ strh r0, [r4, 0x1E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x2
+ bne _080E0DE8
+ movs r0, 0
+ bl sub_8076464
+ ldr r0, _080E0DF8
+ strh r5, [r0]
+ ldr r0, _080E0DFC
+ strh r5, [r0]
+ ldr r0, _080E0E00
+ ldr r2, _080E0E04
+ adds r1, r2, 0
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080E0D40
+ ldr r2, _080E0E08
+ ldrb r1, [r2]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+_080E0D40:
+ movs r2, 0x80
+ lsls r2, 19
+ ldrh r0, [r2]
+ movs r3, 0x80
+ lsls r3, 8
+ adds r1, r3, 0
+ eors r0, r1
+ strh r0, [r2]
+ ldr r0, _080E0E0C
+ strh r5, [r0]
+ adds r0, 0x2
+ strh r5, [r0]
+ movs r0, 0
+ bl obj_id_for_side_relative_to_move
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r6, _080E0E10
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r6
+ ldrb r0, [r1, 0x5]
+ lsrs r0, 4
+ adds r0, 0x10
+ adds r1, r0, 0
+ movs r2, 0xA
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ bne _080E0D84
+ adds r0, r1, 0
+ movs r1, 0x1
+ bl sub_8079108
+_080E0D84:
+ movs r3, 0x8
+ ldrsh r1, [r4, r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ bl DestroySprite
+ mov r0, sp
+ bl sub_8078914
+ ldr r2, [sp, 0x4]
+ str r5, [sp, 0xC]
+ ldr r1, _080E0E14
+ add r0, sp, 0xC
+ str r0, [r1]
+ str r2, [r1, 0x4]
+ ldr r0, _080E0E18
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ movs r1, 0x14
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ bne _080E0DE2
+ ldr r2, _080E0E1C
+ ldr r0, _080E0E20
+ ldrb r1, [r0]
+ movs r0, 0x2
+ eors r0, r1
+ adds r0, r2
+ ldrb r0, [r0]
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r2, r6
+ ldrb r3, [r2, 0x5]
+ lsls r1, r3, 28
+ lsrs r1, 30
+ adds r1, 0x1
+ movs r0, 0x3
+ ands r1, r0
+ lsls r1, 2
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r3
+ orrs r0, r1
+ strb r0, [r2, 0x5]
+_080E0DE2:
+ adds r0, r7, 0
+ bl move_anim_task_del
+_080E0DE8:
+ add sp, 0x10
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E0DF0: .4byte gTasks
+_080E0DF4: .4byte gUnknown_030042C0
+_080E0DF8: .4byte gUnknown_030042C4
+_080E0DFC: .4byte gUnknown_03004240
+_080E0E00: .4byte REG_WININ
+_080E0E04: .4byte 0x00003f3f
+_080E0E08: .4byte REG_BG1CNT
+_080E0E0C: .4byte REG_BLDCNT
+_080E0E10: .4byte gSprites
+_080E0E14: .4byte 0x040000d4
+_080E0E18: .4byte 0x85000200
+_080E0E1C: .4byte gUnknown_02024BE0
+_080E0E20: .4byte gUnknown_0202F7C8
+ thumb_func_end sub_80E0CD0
+
+ thumb_func_start sub_80E0E24
+sub_80E0E24: @ 80E0E24
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r4, 0
+ ldr r0, _080E0E44
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ adds r2, r0, 0
+ cmp r1, 0x7
+ bhi _080E0E88
+ lsls r0, r1, 2
+ ldr r1, _080E0E48
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080E0E44: .4byte gUnknown_03004B00
+_080E0E48: .4byte _080E0E4C
+ .align 2, 0
+_080E0E4C:
+ .4byte _080E0E6C
+ .4byte _080E0E6C
+ .4byte _080E0E6C
+ .4byte _080E0E6C
+ .4byte _080E0E78
+ .4byte _080E0E7C
+ .4byte _080E0E80
+ .4byte _080E0E84
+_080E0E6C:
+ ldrb r0, [r2]
+ bl obj_id_for_side_relative_to_move
+ lsls r0, 24
+ lsrs r2, r0, 24
+ b _080E0E8A
+_080E0E78:
+ movs r4, 0
+ b _080E0E90
+_080E0E7C:
+ movs r4, 0x2
+ b _080E0E90
+_080E0E80:
+ movs r4, 0x1
+ b _080E0E90
+_080E0E84:
+ movs r4, 0x3
+ b _080E0E90
+_080E0E88:
+ movs r2, 0xFF
+_080E0E8A:
+ movs r0, 0
+ cmp r0, 0
+ beq _080E0EB6
+_080E0E90:
+ adds r0, r4, 0
+ bl battle_get_side_with_given_state
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r0, r4, 0
+ bl b_side_obj__get_some_boolean
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E0EB4
+ ldr r0, _080E0EB0
+ adds r0, r4, r0
+ ldrb r2, [r0]
+ b _080E0EB6
+ .align 2, 0
+_080E0EB0: .4byte gUnknown_02024BE0
+_080E0EB4:
+ movs r2, 0xFF
+_080E0EB6:
+ cmp r2, 0xFF
+ beq _080E0ED2
+ ldr r1, _080E0EE0
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r1
+ ldrb r0, [r0, 0x5]
+ lsrs r0, 4
+ adds r0, 0x10
+ ldr r1, _080E0EE4
+ ldrb r1, [r1, 0x2]
+ bl sub_8079108
+_080E0ED2:
+ adds r0, r5, 0
+ bl move_anim_task_del
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E0EE0: .4byte gSprites
+_080E0EE4: .4byte gUnknown_03004B00
+ thumb_func_end sub_80E0E24
+
+ thumb_func_start sub_80E0EE8
+sub_80E0EE8: @ 80E0EE8
+ push {lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldr r2, _080E0F14
+ ldrb r0, [r2]
+ cmp r0, 0x1
+ bhi _080E0EFC
+ ldr r1, _080E0F18
+ movs r0, 0
+ strh r0, [r1, 0xE]
+_080E0EFC:
+ ldrb r0, [r2]
+ cmp r0, 0x2
+ bne _080E0F08
+ ldr r1, _080E0F18
+ movs r0, 0x1
+ strh r0, [r1, 0xE]
+_080E0F08:
+ adds r0, r3, 0
+ bl move_anim_task_del
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E0F14: .4byte gUnknown_0202F7C4
+_080E0F18: .4byte gUnknown_03004B00
+ thumb_func_end sub_80E0EE8
+
+ thumb_func_start sub_80E0F1C
+sub_80E0F1C: @ 80E0F1C
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldr r5, _080E0F74
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x20]
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x22]
+ movs r0, 0x14
+ strh r0, [r4, 0x2E]
+ ldr r5, _080E0F78
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x32]
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x36]
+ ldr r0, _080E0F7C
+ strh r0, [r4, 0x38]
+ adds r0, r4, 0
+ bl sub_80786EC
+ ldr r0, _080E0F80
+ str r0, [r4, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E0F74: .4byte gUnknown_0202F7C8
+_080E0F78: .4byte gUnknown_0202F7C9
+_080E0F7C: .4byte 0x0000ffd8
+_080E0F80: .4byte sub_80E0F84
+ thumb_func_end sub_80E0F1C
+
+ thumb_func_start sub_80E0F84
+sub_80E0F84: @ 80E0F84
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ bl sub_8078718
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E0FD8
+ ldrh r0, [r5, 0x24]
+ ldrh r1, [r5, 0x20]
+ adds r0, r1
+ movs r1, 0
+ strh r0, [r5, 0x20]
+ ldrh r0, [r5, 0x26]
+ ldrh r2, [r5, 0x22]
+ adds r0, r2
+ strh r0, [r5, 0x22]
+ strh r1, [r5, 0x26]
+ strh r1, [r5, 0x24]
+ movs r0, 0x14
+ strh r0, [r5, 0x2E]
+ ldr r4, _080E0FE0
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x32]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x36]
+ movs r0, 0x28
+ strh r0, [r5, 0x38]
+ adds r0, r5, 0
+ bl sub_80786EC
+ ldr r0, _080E0FE4
+ str r0, [r5, 0x1C]
+_080E0FD8:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E0FE0: .4byte gUnknown_0202F7C8
+_080E0FE4: .4byte sub_80E0FE8
+ thumb_func_end sub_80E0F84
+
+ thumb_func_start sub_80E0FE8
+sub_80E0FE8: @ 80E0FE8
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_8078718
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E0FFC
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080E0FFC:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80E0FE8
+
+ thumb_func_start sub_80E1004
+sub_80E1004: @ 80E1004
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ movs r1, 0x1
+ bl sub_8078764
+ ldr r0, _080E1064
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E1024
+ ldr r1, _080E1068
+ ldrh r0, [r1, 0x4]
+ negs r0, r0
+ strh r0, [r1, 0x4]
+_080E1024:
+ ldr r4, _080E1068
+ ldrh r0, [r4, 0x8]
+ strh r0, [r6, 0x2E]
+ ldr r5, _080E106C
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r4, 0x4]
+ adds r0, r1
+ strh r0, [r6, 0x32]
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r4, [r4, 0x6]
+ adds r0, r4
+ strh r0, [r6, 0x36]
+ ldr r0, _080E1070
+ str r0, [r6, 0x1C]
+ ldr r1, _080E1074
+ adds r0, r6, 0
+ bl oamt_set_x3A_32
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E1064: .4byte gUnknown_0202F7C8
+_080E1068: .4byte gUnknown_03004B00
+_080E106C: .4byte gUnknown_0202F7C9
+_080E1070: .4byte sub_8078B34
+_080E1074: .4byte move_anim_8072740
+ thumb_func_end sub_80E1004
+
+ thumb_func_start sub_80E1078
+sub_80E1078: @ 80E1078
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r6, r0, 0
+ movs r1, 0x1
+ bl sub_80787B0
+ ldr r4, _080E10F8
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077EE4
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077EE4
+ lsls r0, 24
+ lsrs r7, r0, 24
+ bl Random
+ movs r4, 0x1F
+ adds r5, r4, 0
+ ands r5, r0
+ bl Random
+ ands r4, r0
+ adds r1, r5, 0
+ cmp r1, 0x10
+ ble _080E10C0
+ movs r0, 0x10
+ subs r0, r1
+ lsls r0, 16
+ lsrs r5, r0, 16
+_080E10C0:
+ lsls r0, r4, 16
+ asrs r1, r0, 16
+ cmp r1, 0x10
+ ble _080E10D0
+ movs r0, 0x10
+ subs r0, r1
+ lsls r0, 16
+ lsrs r4, r0, 16
+_080E10D0:
+ ldr r0, _080E10FC
+ ldrh r0, [r0, 0x4]
+ strh r0, [r6, 0x2E]
+ mov r1, r8
+ adds r0, r1, r5
+ strh r0, [r6, 0x32]
+ adds r0, r7, r4
+ strh r0, [r6, 0x36]
+ ldr r0, _080E1100
+ str r0, [r6, 0x1C]
+ ldr r1, _080E1104
+ adds r0, r6, 0
+ bl oamt_set_x3A_32
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E10F8: .4byte gUnknown_0202F7C9
+_080E10FC: .4byte gUnknown_03004B00
+_080E1100: .4byte sub_8078B34
+_080E1104: .4byte move_anim_8074EE0
+ thumb_func_end sub_80E1078
+
+ thumb_func_start sub_80E1108
+sub_80E1108: @ 80E1108
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ ldrh r2, [r5, 0x4]
+ lsls r1, r2, 22
+ lsrs r1, 22
+ adds r1, 0x1
+ ldr r3, _080E1168
+ adds r0, r3, 0
+ ands r1, r0
+ ldr r0, _080E116C
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r5, 0x4]
+ ldr r6, _080E1170
+ movs r1, 0
+ ldrsh r0, [r6, r1]
+ cmp r0, 0
+ bne _080E117C
+ ldr r4, _080E1174
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r2, [r6, 0x2]
+ adds r0, r2
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r3, [r6, 0x4]
+ adds r0, r3
+ strh r0, [r5, 0x22]
+ movs r1, 0x2
+ ldrsh r0, [r6, r1]
+ movs r2, 0x1
+ negs r2, r2
+ adds r1, r2, 0
+ cmp r0, 0
+ ble _080E1162
+ movs r1, 0x1
+_080E1162:
+ strh r1, [r5, 0x2E]
+ ldr r0, _080E1178
+ b _080E118A
+ .align 2, 0
+_080E1168: .4byte 0x000003ff
+_080E116C: .4byte 0xfffffc00
+_080E1170: .4byte gUnknown_03004B00
+_080E1174: .4byte gUnknown_0202F7C8
+_080E1178: .4byte sub_80E1198
+_080E117C:
+ ldrh r0, [r6, 0x2]
+ strh r0, [r5, 0x20]
+ ldrh r0, [r6, 0x4]
+ strh r0, [r5, 0x22]
+ negs r0, r0
+ strh r0, [r5, 0x26]
+ ldr r0, _080E1194
+_080E118A:
+ str r0, [r5, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E1194: .4byte sub_80E11D4
+ thumb_func_end sub_80E1108
+
+ thumb_func_start sub_80E1198
+sub_80E1198: @ 80E1198
+ push {lr}
+ adds r2, r0, 0
+ ldrh r0, [r2, 0x30]
+ adds r0, 0x1
+ strh r0, [r2, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080E11B6
+ movs r0, 0
+ strh r0, [r2, 0x30]
+ ldrh r0, [r2, 0x2E]
+ ldrh r1, [r2, 0x20]
+ adds r0, r1
+ strh r0, [r2, 0x20]
+_080E11B6:
+ ldrh r0, [r2, 0x22]
+ subs r0, 0x4
+ strh r0, [r2, 0x22]
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x4
+ negs r1, r1
+ cmp r0, r1
+ bge _080E11CE
+ adds r0, r2, 0
+ bl move_anim_8072740
+_080E11CE:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80E1198
+
+ thumb_func_start sub_80E11D4
+sub_80E11D4: @ 80E11D4
+ push {lr}
+ adds r3, r0, 0
+ movs r0, 0x2E
+ ldrsh r1, [r3, r0]
+ cmp r1, 0
+ beq _080E11E6
+ cmp r1, 0x1
+ beq _080E11FC
+ b _080E123E
+_080E11E6:
+ ldrh r0, [r3, 0x26]
+ adds r0, 0x4
+ strh r0, [r3, 0x26]
+ lsls r0, 16
+ cmp r0, 0
+ blt _080E123E
+ strh r1, [r3, 0x26]
+ ldrh r0, [r3, 0x2E]
+ adds r0, 0x1
+ strh r0, [r3, 0x2E]
+ b _080E123E
+_080E11FC:
+ ldrh r0, [r3, 0x30]
+ adds r0, 0x1
+ strh r0, [r3, 0x30]
+ lsls r0, 16
+ cmp r0, 0
+ ble _080E123E
+ movs r0, 0
+ strh r0, [r3, 0x30]
+ movs r1, 0x3E
+ adds r1, r3
+ mov r12, r1
+ ldrb r2, [r1]
+ 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
+ mov r1, r12
+ strb r0, [r1]
+ ldrh r0, [r3, 0x32]
+ adds r0, 0x1
+ strh r0, [r3, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xA
+ bne _080E123E
+ adds r0, r3, 0
+ bl move_anim_8072740
+_080E123E:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80E11D4
+
+ thumb_func_start sub_80E1244
+sub_80E1244: @ 80E1244
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ ldr r1, _080E1264
+ adds r1, r0, r1
+ ldr r0, _080E1268
+ movs r3, 0
+ ldrsh r0, [r0, r3]
+ cmp r0, 0
+ bne _080E1270
+ ldr r0, _080E126C
+ b _080E1272
+ .align 2, 0
+_080E1264: .4byte gTasks
+_080E1268: .4byte gUnknown_03004B00
+_080E126C: .4byte sub_80E1284
+_080E1270:
+ ldr r0, _080E1280
+_080E1272:
+ str r0, [r1]
+ ldr r1, [r1]
+ adds r0, r2, 0
+ bl _call_via_r1
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E1280: .4byte sub_80E143C
+ thumb_func_end sub_80E1244
+
+ thumb_func_start sub_80E1284
+sub_80E1284: @ 80E1284
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ ldr r1, _080E12A8
+ adds r4, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x4
+ bls _080E129E
+ b _080E1432
+_080E129E:
+ lsls r0, 2
+ ldr r1, _080E12AC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080E12A8: .4byte gTasks
+_080E12AC: .4byte _080E12B0
+ .align 2, 0
+_080E12B0:
+ .4byte _080E12C4
+ .4byte _080E134C
+ .4byte _080E135C
+ .4byte _080E1400
+ .4byte _080E1414
+_080E12C4:
+ movs r0, 0
+ bl obj_id_for_side_relative_to_move
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x1C]
+ ldr r0, _080E12EC
+ ldrb r0, [r0]
+ bl battle_get_per_side_status_permutated
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x1E]
+ cmp r0, 0x1
+ bne _080E12F8
+ ldr r0, _080E12F0
+ ldrh r0, [r0]
+ strh r0, [r4, 0x20]
+ ldr r0, _080E12F4
+ b _080E1300
+ .align 2, 0
+_080E12EC: .4byte gUnknown_0202F7C8
+_080E12F0: .4byte gUnknown_030042C0
+_080E12F4: .4byte gUnknown_030041B4
+_080E12F8:
+ ldr r0, _080E133C
+ ldrh r0, [r0]
+ strh r0, [r4, 0x20]
+ ldr r0, _080E1340
+_080E1300:
+ ldrh r0, [r0]
+ strh r0, [r4, 0x22]
+ ldr r0, _080E1344
+ ldrb r0, [r0]
+ bl sub_8077FC0
+ lsls r0, 24
+ lsrs r0, 24
+ adds r1, r0, 0
+ subs r1, 0x20
+ strh r1, [r4, 0x24]
+ adds r0, 0x20
+ strh r0, [r4, 0x26]
+ cmp r1, 0
+ bge _080E1322
+ movs r0, 0
+ strh r0, [r4, 0x24]
+_080E1322:
+ ldr r2, _080E1348
+ movs r3, 0x1C
+ ldrsh r1, [r4, r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+ b _080E1406
+ .align 2, 0
+_080E133C: .4byte gUnknown_03004288
+_080E1340: .4byte gUnknown_03004280
+_080E1344: .4byte gUnknown_0202F7C8
+_080E1348: .4byte gSprites
+_080E134C:
+ ldrb r0, [r4, 0x1E]
+ movs r2, 0x24
+ ldrsh r1, [r4, r2]
+ movs r3, 0x26
+ ldrsh r2, [r4, r3]
+ bl sub_80E1668
+ b _080E1406
+_080E135C:
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x6
+ movs r1, 0x7F
+ ands r0, r1
+ strh r0, [r4, 0xC]
+ ldrh r0, [r4, 0x10]
+ adds r0, 0x1
+ strh r0, [r4, 0x10]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x2
+ ble _080E137E
+ movs r0, 0
+ strh r0, [r4, 0x10]
+ ldrh r0, [r4, 0xE]
+ adds r0, 0x1
+ strh r0, [r4, 0xE]
+_080E137E:
+ ldr r1, _080E13A0
+ movs r2, 0xC
+ ldrsh r0, [r4, r2]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ lsls r0, 16
+ asrs r0, 20
+ ldrh r3, [r4, 0xE]
+ adds r2, r0, r3
+ strh r2, [r4, 0x12]
+ movs r1, 0x1E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ bne _080E13A8
+ ldr r1, _080E13A4
+ b _080E13AA
+ .align 2, 0
+_080E13A0: .4byte gSineTable
+_080E13A4: .4byte gUnknown_030041B4
+_080E13A8:
+ ldr r1, _080E13CC
+_080E13AA:
+ ldrh r0, [r4, 0x22]
+ subs r0, r2
+ strh r0, [r1]
+ movs r2, 0x12
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x3F
+ ble _080E1432
+ ldrh r0, [r4, 0x24]
+ movs r1, 0x78
+ subs r2, r1, r0
+ strh r2, [r4, 0x12]
+ movs r3, 0x1E
+ ldrsh r0, [r4, r3]
+ cmp r0, 0x1
+ bne _080E13D4
+ ldr r1, _080E13D0
+ b _080E13D6
+ .align 2, 0
+_080E13CC: .4byte gUnknown_03004280
+_080E13D0: .4byte gUnknown_030041B4
+_080E13D4:
+ ldr r1, _080E13F8
+_080E13D6:
+ ldrh r0, [r4, 0x22]
+ subs r0, r2
+ strh r0, [r1]
+ ldr r2, _080E13FC
+ movs r1, 0x1C
+ ldrsh r0, [r4, r1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ ldrh r2, [r1, 0x20]
+ movs r3, 0x88
+ lsls r3, 1
+ adds r0, r3, 0
+ subs r0, r2
+ strh r0, [r1, 0x24]
+ b _080E1406
+ .align 2, 0
+_080E13F8: .4byte gUnknown_03004280
+_080E13FC: .4byte gSprites
+_080E1400:
+ ldr r1, _080E1410
+ movs r0, 0x3
+ strb r0, [r1, 0x15]
+_080E1406:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _080E1432
+ .align 2, 0
+_080E1410: .4byte gUnknown_03004DC0
+_080E1414:
+ adds r0, r2, 0
+ bl move_anim_task_del
+ ldr r2, _080E1438
+ movs r0, 0x1C
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+_080E1432:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E1438: .4byte gSprites
+ thumb_func_end sub_80E1284
+
+ thumb_func_start sub_80E143C
+sub_80E143C: @ 80E143C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r0, 0
+ bl obj_id_for_side_relative_to_move
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080E147C
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ adds r3, r1, 0
+ adds r3, 0x3E
+ ldrb r0, [r3]
+ movs r2, 0x4
+ orrs r0, r2
+ strb r0, [r3]
+ movs r4, 0
+ strh r4, [r1, 0x24]
+ strh r4, [r1, 0x26]
+ ldr r0, _080E1480
+ ldrb r0, [r0]
+ bl battle_get_per_side_status_permutated
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080E1488
+ ldr r0, _080E1484
+ b _080E148A
+ .align 2, 0
+_080E147C: .4byte gSprites
+_080E1480: .4byte gUnknown_0202F7C8
+_080E1484: .4byte gUnknown_030041B4
+_080E1488:
+ ldr r0, _080E1498
+_080E148A:
+ strh r4, [r0]
+ adds r0, r5, 0
+ bl move_anim_task_del
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E1498: .4byte gUnknown_03004280
+ thumb_func_end sub_80E143C
+
+ thumb_func_start sub_80E149C
+sub_80E149C: @ 80E149C
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ ldr r1, _080E14BC
+ adds r1, r0, r1
+ ldr r0, _080E14C0
+ movs r3, 0
+ ldrsh r0, [r0, r3]
+ cmp r0, 0
+ bne _080E14C8
+ ldr r0, _080E14C4
+ b _080E14CA
+ .align 2, 0
+_080E14BC: .4byte gTasks
+_080E14C0: .4byte gUnknown_03004B00
+_080E14C4: .4byte sub_80E14DC
+_080E14C8:
+ ldr r0, _080E14D8
+_080E14CA:
+ str r0, [r1]
+ ldr r1, [r1]
+ adds r0, r2, 0
+ bl _call_via_r1
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E14D8: .4byte sub_80E1560
+ thumb_func_end sub_80E149C
+
+ thumb_func_start sub_80E14DC
+sub_80E14DC: @ 80E14DC
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ ldr r1, _080E14FC
+ adds r4, r0, r1
+ movs r0, 0x8
+ ldrsh r5, [r4, r0]
+ cmp r5, 0
+ beq _080E1500
+ cmp r5, 0x1
+ beq _080E1554
+ b _080E155A
+ .align 2, 0
+_080E14FC: .4byte gTasks
+_080E1500:
+ movs r0, 0
+ bl obj_id_for_side_relative_to_move
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x1C]
+ ldr r3, _080E1550
+ movs r0, 0x1C
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ adds r0, 0x3E
+ ldrb r2, [r0]
+ movs r1, 0x5
+ negs r1, r1
+ ands r1, r2
+ strb r1, [r0]
+ movs r0, 0x1C
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ strh r5, [r0, 0x24]
+ movs r1, 0x1C
+ ldrsh r0, [r4, r1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r3
+ ldrh r2, [r1, 0x22]
+ movs r0, 0xA0
+ subs r0, r2
+ strh r0, [r1, 0x26]
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _080E155A
+ .align 2, 0
+_080E1550: .4byte gSprites
+_080E1554:
+ adds r0, r2, 0
+ bl move_anim_task_del
+_080E155A:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80E14DC
+
+ thumb_func_start sub_80E1560
+sub_80E1560: @ 80E1560
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ ldr r1, _080E1584
+ adds r4, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x4
+ bhi _080E1662
+ lsls r0, 2
+ ldr r1, _080E1588
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080E1584: .4byte gTasks
+_080E1588: .4byte _080E158C
+ .align 2, 0
+_080E158C:
+ .4byte _080E15A0
+ .4byte _080E15F4
+ .4byte _080E1602
+ .4byte _080E161C
+ .4byte _080E165C
+_080E15A0:
+ movs r0, 0
+ bl obj_id_for_side_relative_to_move
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x1C]
+ ldr r0, _080E15C4
+ ldrb r0, [r0]
+ bl battle_get_per_side_status_permutated
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x1E]
+ cmp r0, 0x1
+ bne _080E15CC
+ ldr r0, _080E15C8
+ b _080E15CE
+ .align 2, 0
+_080E15C4: .4byte gUnknown_0202F7C8
+_080E15C8: .4byte gUnknown_030042C0
+_080E15CC:
+ ldr r0, _080E15EC
+_080E15CE:
+ ldrh r0, [r0]
+ strh r0, [r4, 0x20]
+ ldr r0, _080E15F0
+ ldrb r0, [r0]
+ bl sub_8077FC0
+ lsls r0, 24
+ lsrs r0, 24
+ adds r1, r0, 0
+ subs r1, 0x20
+ strh r1, [r4, 0x24]
+ adds r0, 0x20
+ strh r0, [r4, 0x26]
+ b _080E164A
+ .align 2, 0
+_080E15EC: .4byte gUnknown_03004288
+_080E15F0: .4byte gUnknown_0202F7C8
+_080E15F4:
+ ldrb r0, [r4, 0x1E]
+ movs r1, 0x26
+ ldrsh r2, [r4, r1]
+ movs r1, 0
+ bl sub_80E1668
+ b _080E164A
+_080E1602:
+ ldr r2, _080E1618
+ movs r0, 0x1C
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0x60
+ strh r1, [r0, 0x26]
+ b _080E164A
+ .align 2, 0
+_080E1618: .4byte gSprites
+_080E161C:
+ ldr r2, _080E1654
+ movs r0, 0x1C
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r0, 0x26]
+ subs r1, 0x8
+ strh r1, [r0, 0x26]
+ movs r0, 0x1C
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0x26
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080E1662
+ ldr r1, _080E1658
+ movs r0, 0x3
+ strb r0, [r1, 0x15]
+_080E164A:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _080E1662
+ .align 2, 0
+_080E1654: .4byte gSprites
+_080E1658: .4byte gUnknown_03004DC0
+_080E165C:
+ adds r0, r2, 0
+ bl move_anim_task_del
+_080E1662:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80E1560
+
+ thumb_func_start sub_80E1668
+sub_80E1668: @ 80E1668
+ push {r4-r6,lr}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 16
+ lsrs r1, 16
+ lsls r2, 16
+ lsrs r4, r2, 16
+ cmp r0, 0x1
+ bne _080E168C
+ ldr r0, _080E1684
+ ldrh r3, [r0]
+ ldr r0, _080E1688
+ b _080E1692
+ .align 2, 0
+_080E1684: .4byte gUnknown_030042C0
+_080E1688: .4byte REG_BG1HOFS
+_080E168C:
+ ldr r0, _080E1718
+ ldrh r3, [r0]
+ ldr r0, _080E171C
+_080E1692:
+ str r0, [sp]
+ lsls r0, r1, 16
+ cmp r0, 0
+ bge _080E169C
+ movs r1, 0
+_080E169C:
+ lsls r2, r1, 16
+ lsls r0, r4, 16
+ asrs r4, r0, 16
+ cmp r2, r0
+ bge _080E16C8
+ ldr r5, _080E1720
+ movs r0, 0xF0
+ lsls r0, 3
+ adds r6, r5, r0
+_080E16AE:
+ asrs r2, 16
+ lsls r1, r2, 1
+ adds r0, r1, r5
+ strh r3, [r0]
+ adds r1, r6
+ strh r3, [r1]
+ adds r2, 0x1
+ lsls r2, 16
+ lsrs r1, r2, 16
+ lsls r2, r1, 16
+ asrs r0, r2, 16
+ cmp r0, r4
+ blt _080E16AE
+_080E16C8:
+ lsls r1, 16
+ asrs r0, r1, 16
+ cmp r0, 0x9F
+ bgt _080E16F6
+ ldr r4, _080E1720
+ lsls r0, r3, 16
+ asrs r0, 16
+ adds r3, r0, 0
+ adds r3, 0xF0
+ movs r0, 0xF0
+ lsls r0, 3
+ adds r5, r4, r0
+_080E16E0:
+ asrs r2, r1, 16
+ lsls r1, r2, 1
+ adds r0, r1, r4
+ strh r3, [r0]
+ adds r1, r5
+ strh r3, [r1]
+ adds r2, 0x1
+ lsls r1, r2, 16
+ asrs r0, r1, 16
+ cmp r0, 0x9F
+ ble _080E16E0
+_080E16F6:
+ ldr r0, _080E1724
+ str r0, [sp, 0x4]
+ mov r1, sp
+ movs r2, 0
+ movs r0, 0x1
+ strb r0, [r1, 0x8]
+ mov r0, sp
+ strb r2, [r0, 0x9]
+ ldr r0, [sp]
+ ldr r1, [sp, 0x4]
+ ldr r2, [sp, 0x8]
+ bl sub_80895F8
+ add sp, 0xC
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E1718: .4byte gUnknown_03004288
+_080E171C: .4byte REG_BG2HOFS
+_080E1720: .4byte gUnknown_03004DE0
+_080E1724: .4byte 0xa2600001
+ thumb_func_end sub_80E1668
+
+ thumb_func_start sub_80E1728
+sub_80E1728: @ 80E1728
+ push {r4-r7,lr}
+ adds r5, r0, 0
+ ldr r0, _080E173C
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ adds r7, r0, 0
+ cmp r1, 0
+ bne _080E1744
+ ldr r0, _080E1740
+ b _080E1746
+ .align 2, 0
+_080E173C: .4byte gUnknown_03004B00
+_080E1740: .4byte gUnknown_0202F7C8
+_080E1744:
+ ldr r0, _080E17A8
+_080E1746:
+ ldrb r4, [r0]
+ movs r6, 0x18
+ adds r1, r7, 0
+ movs r2, 0x2
+ ldrsh r0, [r1, r2]
+ cmp r0, 0x1
+ bne _080E1762
+ negs r0, r6
+ lsls r0, 16
+ lsrs r6, r0, 16
+ movs r2, 0x4
+ ldrsh r0, [r1, r2]
+ negs r0, r0
+ strh r0, [r1, 0x4]
+_080E1762:
+ adds r0, r4, 0
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, r6
+ strh r0, [r5, 0x20]
+ adds r0, r4, 0
+ bl sub_8077FC0
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, 0x1E
+ strh r0, [r5, 0x22]
+ ldrh r1, [r7, 0xA]
+ strh r1, [r5, 0x2E]
+ ldrh r1, [r7, 0x4]
+ ldrh r2, [r5, 0x20]
+ adds r1, r2
+ strh r1, [r5, 0x32]
+ ldrh r1, [r7, 0x6]
+ adds r0, r1
+ strh r0, [r5, 0x36]
+ ldrh r0, [r7, 0x8]
+ strh r0, [r5, 0x38]
+ adds r0, r5, 0
+ bl sub_80786EC
+ ldr r0, _080E17AC
+ str r0, [r5, 0x1C]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E17A8: .4byte gUnknown_0202F7C9
+_080E17AC: .4byte sub_80E17B0
+ thumb_func_end sub_80E1728
+
+ thumb_func_start sub_80E17B0
+sub_80E17B0: @ 80E17B0
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_8078718
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E17C4
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080E17C4:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80E17B0
+
+ thumb_func_start sub_80E17CC
+sub_80E17CC: @ 80E17CC
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ ldr r0, _080E17E0
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080E17E8
+ ldr r0, _080E17E4
+ b _080E17EA
+ .align 2, 0
+_080E17E0: .4byte gUnknown_03004B00
+_080E17E4: .4byte gUnknown_0202F7C8
+_080E17E8:
+ ldr r0, _080E1848
+_080E17EA:
+ ldrb r5, [r0]
+ adds r0, r5, 0
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080E184C
+ adds r0, r2
+ ldr r4, _080E1850
+ movs r3, 0x2
+ ldrsh r1, [r4, r3]
+ lsls r1, 5
+ adds r0, r1
+ strh r0, [r6, 0x20]
+ adds r0, r5, 0
+ bl sub_8077FC0
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, 0x20
+ strh r0, [r6, 0x22]
+ ldrh r2, [r6, 0x4]
+ lsls r1, r2, 22
+ lsrs r1, 22
+ movs r3, 0x2
+ ldrsh r0, [r4, r3]
+ lsls r0, 3
+ adds r1, r0
+ ldr r3, _080E1854
+ adds r0, r3, 0
+ ands r1, r0
+ ldr r0, _080E1858
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r6, 0x4]
+ ldr r1, _080E185C
+ adds r0, r6, 0
+ bl oamt_set_x3A_32
+ ldrh r0, [r4, 0x4]
+ strh r0, [r6, 0x2E]
+ ldr r0, _080E1860
+ str r0, [r6, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E1848: .4byte gUnknown_0202F7C9
+_080E184C: .4byte 0x0000fff0
+_080E1850: .4byte gUnknown_03004B00
+_080E1854: .4byte 0x000003ff
+_080E1858: .4byte 0xfffffc00
+_080E185C: .4byte move_anim_8072740
+_080E1860: .4byte sub_80782D8
+ thumb_func_end sub_80E17CC
+
+ thumb_func_start sub_80E1864
+sub_80E1864: @ 80E1864
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, _080E1888
+ adds r4, r0, r1
+ ldr r0, _080E188C
+ ldrh r2, [r0, 0x2]
+ movs r3, 0x2
+ ldrsh r1, [r0, r3]
+ adds r6, r0, 0
+ cmp r1, 0
+ beq _080E1890
+ adds r0, r2, 0x3
+ b _080E189C
+ .align 2, 0
+_080E1888: .4byte gTasks
+_080E188C: .4byte gUnknown_03004B00
+_080E1890:
+ ldr r0, _080E18BC
+ ldrh r0, [r0]
+ movs r1, 0xA
+ bl __udivsi3
+ adds r0, 0x3
+_080E189C:
+ strh r0, [r4, 0x26]
+ strh r0, [r4, 0x24]
+ adds r1, r6, 0
+ ldrh r0, [r1, 0x4]
+ strh r0, [r4, 0xE]
+ movs r2, 0
+ ldrsh r0, [r1, r2]
+ cmp r0, 0x4
+ beq _080E18C8
+ cmp r0, 0x5
+ bne _080E1908
+ ldr r0, _080E18C0
+ ldrh r0, [r0]
+ strh r0, [r4, 0x22]
+ ldr r0, _080E18C4
+ b _080E1926
+ .align 2, 0
+_080E18BC: .4byte gUnknown_0202F7BC
+_080E18C0: .4byte gUnknown_030041B0
+_080E18C4: .4byte sub_80E1934
+_080E18C8:
+ movs r0, 0
+ strh r0, [r4, 0x22]
+ movs r5, 0
+_080E18CE:
+ lsls r0, r5, 24
+ lsrs r0, 24
+ bl b_side_obj__get_some_boolean
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E18F8
+ movs r3, 0x22
+ ldrsh r0, [r4, r3]
+ adds r0, 0x9
+ lsls r0, 1
+ adds r1, r4, 0
+ adds r1, 0x8
+ adds r1, r0
+ ldr r0, _080E1904
+ adds r0, r5, r0
+ ldrb r0, [r0]
+ strh r0, [r1]
+ ldrh r0, [r4, 0x22]
+ adds r0, 0x1
+ strh r0, [r4, 0x22]
+_080E18F8:
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x3
+ bls _080E18CE
+ b _080E1924
+ .align 2, 0
+_080E1904: .4byte gUnknown_02024BE0
+_080E1908:
+ ldrb r0, [r6]
+ bl obj_id_for_side_relative_to_move
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x1A]
+ cmp r0, 0xFF
+ bne _080E1920
+ adds r0, r5, 0
+ bl move_anim_task_del
+ b _080E1928
+_080E1920:
+ movs r0, 0x1
+ strh r0, [r4, 0x22]
+_080E1924:
+ ldr r0, _080E1930
+_080E1926:
+ str r0, [r4]
+_080E1928:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E1930: .4byte sub_80E1A2C
+ thumb_func_end sub_80E1864
+
+ thumb_func_start sub_80E1934
+sub_80E1934: @ 80E1934
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ ldr r1, _080E1958
+ adds r3, r0, r1
+ movs r0, 0x8
+ ldrsh r1, [r3, r0]
+ cmp r1, 0x1
+ beq _080E19B8
+ cmp r1, 0x1
+ bgt _080E195C
+ cmp r1, 0
+ beq _080E1962
+ b _080E1A24
+ .align 2, 0
+_080E1958: .4byte gTasks
+_080E195C:
+ cmp r1, 0x2
+ beq _080E1A18
+ b _080E1A24
+_080E1962:
+ ldrh r0, [r3, 0xA]
+ adds r0, 0x1
+ strh r0, [r3, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080E1A24
+ strh r1, [r3, 0xA]
+ ldrh r1, [r3, 0xC]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _080E198C
+ ldr r1, _080E1988
+ ldrh r0, [r3, 0x26]
+ ldrh r2, [r3, 0x22]
+ adds r0, r2
+ strh r0, [r1]
+ b _080E1996
+ .align 2, 0
+_080E1988: .4byte gUnknown_030041B0
+_080E198C:
+ ldr r0, _080E19B4
+ ldrh r1, [r3, 0x22]
+ ldrh r2, [r3, 0x26]
+ subs r1, r2
+ strh r1, [r0]
+_080E1996:
+ ldrh r0, [r3, 0xC]
+ adds r0, 0x1
+ strh r0, [r3, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ movs r2, 0xE
+ ldrsh r1, [r3, r2]
+ cmp r0, r1
+ bne _080E1A24
+ movs r0, 0
+ strh r0, [r3, 0xC]
+ ldrh r0, [r3, 0x24]
+ subs r0, 0x1
+ strh r0, [r3, 0x24]
+ b _080E1A0C
+ .align 2, 0
+_080E19B4: .4byte gUnknown_030041B0
+_080E19B8:
+ ldrh r0, [r3, 0xA]
+ adds r0, 0x1
+ strh r0, [r3, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080E1A24
+ movs r0, 0
+ strh r0, [r3, 0xA]
+ ldrh r0, [r3, 0xC]
+ ands r1, r0
+ cmp r1, 0
+ bne _080E19E4
+ ldr r1, _080E19E0
+ ldrh r0, [r3, 0x24]
+ ldrh r2, [r3, 0x22]
+ adds r0, r2
+ strh r0, [r1]
+ b _080E19EE
+ .align 2, 0
+_080E19E0: .4byte gUnknown_030041B0
+_080E19E4:
+ ldr r0, _080E1A14
+ ldrh r1, [r3, 0x22]
+ ldrh r2, [r3, 0x24]
+ subs r1, r2
+ strh r1, [r0]
+_080E19EE:
+ ldrh r0, [r3, 0xC]
+ adds r0, 0x1
+ strh r0, [r3, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ bne _080E1A24
+ movs r0, 0
+ strh r0, [r3, 0xC]
+ ldrh r0, [r3, 0x24]
+ subs r0, 0x1
+ strh r0, [r3, 0x24]
+ lsls r0, 16
+ cmp r0, 0
+ bne _080E1A24
+_080E1A0C:
+ ldrh r0, [r3, 0x8]
+ adds r0, 0x1
+ strh r0, [r3, 0x8]
+ b _080E1A24
+ .align 2, 0
+_080E1A14: .4byte gUnknown_030041B0
+_080E1A18:
+ ldr r1, _080E1A28
+ ldrh r0, [r3, 0x22]
+ strh r0, [r1]
+ adds r0, r2, 0
+ bl move_anim_task_del
+_080E1A24:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E1A28: .4byte gUnknown_030041B0
+ thumb_func_end sub_80E1934
+
+ thumb_func_start sub_80E1A2C
+sub_80E1A2C: @ 80E1A2C
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r0, 3
+ ldr r1, _080E1A50
+ adds r4, r0, r1
+ movs r0, 0x8
+ ldrsh r5, [r4, r0]
+ cmp r5, 0x1
+ beq _080E1A8C
+ cmp r5, 0x1
+ bgt _080E1A54
+ cmp r5, 0
+ beq _080E1A5A
+ b _080E1B06
+ .align 2, 0
+_080E1A50: .4byte gTasks
+_080E1A54:
+ cmp r5, 0x2
+ beq _080E1AC8
+ b _080E1B06
+_080E1A5A:
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080E1B06
+ strh r5, [r4, 0xA]
+ adds r0, r4, 0
+ bl sub_80E1B10
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x1
+ strh r0, [r4, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ movs r2, 0xE
+ ldrsh r1, [r4, r2]
+ cmp r0, r1
+ bne _080E1B06
+ strh r5, [r4, 0xC]
+ ldrh r0, [r4, 0x24]
+ subs r0, 0x1
+ strh r0, [r4, 0x24]
+ b _080E1AC0
+_080E1A8C:
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ movs r5, 0
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080E1B06
+ strh r5, [r4, 0xA]
+ adds r0, r4, 0
+ bl sub_80E1B10
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x1
+ strh r0, [r4, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ bne _080E1B06
+ strh r5, [r4, 0xC]
+ ldrh r0, [r4, 0x24]
+ subs r0, 0x1
+ strh r0, [r4, 0x24]
+ lsls r0, 16
+ cmp r0, 0
+ bne _080E1B06
+_080E1AC0:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _080E1B06
+_080E1AC8:
+ movs r2, 0
+ movs r7, 0x22
+ ldrsh r0, [r4, r7]
+ cmp r2, r0
+ bge _080E1B00
+ ldr r0, _080E1B0C
+ mov r12, r0
+ adds r5, r4, 0
+ adds r5, 0x8
+ movs r6, 0
+_080E1ADC:
+ adds r0, r2, 0
+ adds r0, 0x9
+ lsls r0, 1
+ adds r0, r5, r0
+ movs r7, 0
+ ldrsh r1, [r0, r7]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ add r0, r12
+ strh r6, [r0, 0x24]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ movs r1, 0x22
+ ldrsh r0, [r4, r1]
+ cmp r2, r0
+ blt _080E1ADC
+_080E1B00:
+ adds r0, r3, 0
+ bl move_anim_task_del
+_080E1B06:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E1B0C: .4byte gSprites
+ thumb_func_end sub_80E1A2C
+
+ thumb_func_start sub_80E1B10
+sub_80E1B10: @ 80E1B10
+ push {r4-r7,lr}
+ adds r3, r0, 0
+ ldrh r1, [r3, 0xC]
+ movs r4, 0x1
+ adds r0, r4, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _080E1B38
+ movs r0, 0x24
+ ldrsh r1, [r3, r0]
+ lsrs r0, r1, 31
+ adds r1, r0
+ asrs r1, 1
+ ldrh r2, [r3, 0x24]
+ adds r0, r4, 0
+ ands r0, r2
+ adds r1, r0
+ lsls r1, 16
+ lsrs r4, r1, 16
+ b _080E1B48
+_080E1B38:
+ movs r1, 0x24
+ ldrsh r0, [r3, r1]
+ lsrs r1, r0, 31
+ adds r0, r1
+ asrs r0, 1
+ negs r0, r0
+ lsls r0, 16
+ lsrs r4, r0, 16
+_080E1B48:
+ movs r2, 0
+ movs r7, 0x22
+ ldrsh r0, [r3, r7]
+ cmp r2, r0
+ bge _080E1B7C
+ ldr r6, _080E1B84
+ adds r5, r3, 0
+ adds r5, 0x8
+_080E1B58:
+ adds r0, r2, 0
+ adds r0, 0x9
+ lsls r0, 1
+ adds r0, r5, r0
+ movs r7, 0
+ ldrsh r1, [r0, r7]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ strh r4, [r0, 0x24]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ movs r1, 0x22
+ ldrsh r0, [r3, r1]
+ cmp r2, r0
+ blt _080E1B58
+_080E1B7C:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E1B84: .4byte gSprites
+ thumb_func_end sub_80E1B10
+
+ thumb_func_start sub_80E1B88
+sub_80E1B88: @ 80E1B88
+ push {lr}
+ lsls r0, 24
+ lsrs r1, r0, 24
+ ldr r3, _080E1BA8
+ movs r2, 0
+ ldr r0, _080E1BAC
+ ldrh r0, [r0]
+ cmp r0, 0x63
+ bls _080E1B9C
+ movs r2, 0x1
+_080E1B9C:
+ strh r2, [r3, 0x1E]
+ adds r0, r1, 0
+ bl move_anim_task_del
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E1BA8: .4byte gUnknown_03004B00
+_080E1BAC: .4byte gUnknown_0202F7BC
+ thumb_func_end sub_80E1B88
+
+ thumb_func_start sub_80E1BB0
+sub_80E1BB0: @ 80E1BB0
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r2, _080E1BC8
+ ldrh r1, [r2]
+ movs r0, 0x1
+ ands r0, r1
+ adds r6, r2, 0
+ cmp r0, 0
+ beq _080E1BD0
+ ldr r0, _080E1BCC
+ b _080E1BD2
+ .align 2, 0
+_080E1BC8: .4byte gUnknown_03004B00
+_080E1BCC: .4byte gUnknown_0202F7C9
+_080E1BD0:
+ ldr r0, _080E1C40
+_080E1BD2:
+ ldrb r0, [r0]
+ adds r5, r0, 0
+ movs r1, 0
+ ldrsh r0, [r6, r1]
+ cmp r0, 0x1
+ ble _080E1BE2
+ movs r0, 0x2
+ eors r5, r0
+_080E1BE2:
+ ldr r0, _080E1C44
+ ldrb r1, [r6, 0x2]
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ ldr r0, _080E1C48
+ adds r4, r0
+ adds r0, r5, 0
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x20
+ subs r1, r0
+ ldr r2, _080E1C4C
+ adds r0, r2, 0
+ ands r1, r0
+ strh r1, [r4, 0xA]
+ adds r0, r5, 0
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x40
+ subs r1, r0
+ movs r0, 0xFF
+ ands r1, r0
+ strh r1, [r4, 0xC]
+ ldr r2, _080E1C50
+ ldrh r0, [r4, 0xA]
+ strh r0, [r2]
+ ldr r0, _080E1C54
+ strh r1, [r0]
+ ldrh r0, [r6, 0x4]
+ strh r0, [r4, 0xE]
+ adds r0, r7, 0
+ bl move_anim_task_del
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E1C40: .4byte gUnknown_0202F7C8
+_080E1C44: .4byte sub_80E1C58
+_080E1C48: .4byte gTasks
+_080E1C4C: .4byte 0x000001ff
+_080E1C50: .4byte gUnknown_030041B0
+_080E1C54: .4byte gUnknown_030041B8
+ thumb_func_end sub_80E1BB0
+
+ thumb_func_start sub_80E1C58
+sub_80E1C58: @ 80E1C58
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r0, 3
+ ldr r1, _080E1C88
+ adds r2, r0, r1
+ ldr r0, _080E1C8C
+ movs r4, 0xE
+ ldrsh r1, [r0, r4]
+ movs r4, 0xE
+ ldrsh r0, [r2, r4]
+ cmp r1, r0
+ bne _080E1C98
+ ldr r0, _080E1C90
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, _080E1C94
+ strh r1, [r0]
+ adds r0, r3, 0
+ bl DestroyTask
+ b _080E1CA4
+ .align 2, 0
+_080E1C88: .4byte gTasks
+_080E1C8C: .4byte gUnknown_03004B00
+_080E1C90: .4byte gUnknown_030041B0
+_080E1C94: .4byte gUnknown_030041B8
+_080E1C98:
+ ldr r1, _080E1CAC
+ ldrh r0, [r2, 0xA]
+ strh r0, [r1]
+ ldr r1, _080E1CB0
+ ldrh r0, [r2, 0xC]
+ strh r0, [r1]
+_080E1CA4:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E1CAC: .4byte gUnknown_030041B0
+_080E1CB0: .4byte gUnknown_030041B8
+ thumb_func_end sub_80E1C58
+
+ thumb_func_start sub_80E1CB4
+sub_80E1CB4: @ 80E1CB4
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldr r5, _080E1CEC
+ ldrh r0, [r5]
+ ldrh r1, [r4, 0x20]
+ adds r0, r1
+ strh r0, [r4, 0x20]
+ ldrh r0, [r5, 0x2]
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r4, 0x22]
+ ldrh r0, [r5, 0x4]
+ strh r0, [r4, 0x2E]
+ ldr r0, _080E1CF0
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0
+ beq _080E1CF4
+ ldrh r0, [r5, 0x6]
+ negs r0, r0
+ strh r0, [r4, 0x30]
+ movs r0, 0x1
+ strh r0, [r4, 0x36]
+ b _080E1D02
+ .align 2, 0
+_080E1CEC: .4byte gUnknown_03004B00
+_080E1CF0: .4byte gUnknown_0202F7C8
+_080E1CF4:
+ ldrh r0, [r5, 0x6]
+ strh r0, [r4, 0x30]
+ strh r1, [r4, 0x36]
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl StartSpriteAnim
+_080E1D02:
+ ldr r0, _080E1D18
+ ldrh r0, [r0, 0x8]
+ strh r0, [r4, 0x34]
+ ldr r1, _080E1D1C
+ str r1, [r4, 0x1C]
+ adds r0, r4, 0
+ bl _call_via_r1
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E1D18: .4byte gUnknown_03004B00
+_080E1D1C: .4byte sub_80E1D20
+ thumb_func_end sub_80E1CB4
+
+ thumb_func_start sub_80E1D20
+sub_80E1D20: @ 80E1D20
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ movs r1, 0x1E
+ bl Cos
+ strh r0, [r4, 0x24]
+ movs r2, 0x2E
+ ldrsh r0, [r4, r2]
+ movs r1, 0xA
+ bl Sin
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x2E]
+ cmp r0, 0x7F
+ bhi _080E1D52
+ ldrb r0, [r4, 0x5]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r0
+ movs r0, 0x4
+ orrs r1, r0
+ strb r1, [r4, 0x5]
+ b _080E1D5A
+_080E1D52:
+ ldrb r0, [r4, 0x5]
+ movs r1, 0xC
+ orrs r0, r1
+ strb r0, [r4, 0x5]
+_080E1D5A:
+ ldrh r0, [r4, 0x30]
+ ldrh r1, [r4, 0x2E]
+ adds r0, r1
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r4, 0x32]
+ adds r0, 0x1
+ strh r0, [r4, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ movs r2, 0x34
+ ldrsh r1, [r4, r2]
+ cmp r0, r1
+ bne _080E1D7E
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080E1D7E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80E1D20
+
+ thumb_func_start sub_80E1D84
+sub_80E1D84: @ 80E1D84
+ push {r4,r5,lr}
+ sub sp, 0x4
+ adds r5, r0, 0
+ ldr r4, _080E1DBC
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ bl sub_80E1DC4
+ movs r1, 0x2
+ ldrsb r1, [r4, r1]
+ ldrb r2, [r4, 0x4]
+ ldrb r3, [r4, 0x6]
+ ldrh r4, [r4, 0x8]
+ str r4, [sp]
+ bl BeginNormalPaletteFade
+ adds r2, r5, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r0, _080E1DC0
+ str r0, [r5, 0x1C]
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E1DBC: .4byte gUnknown_03004B00
+_080E1DC0: .4byte sub_80E1E0C
+ thumb_func_end sub_80E1D84
+
+ thumb_func_start sub_80E1DC4
+sub_80E1DC4: @ 80E1DC4
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ sub sp, 0xC
+ lsls r0, 16
+ lsrs r0, 16
+ movs r4, 0x1
+ mov r8, r0
+ mov r1, r8
+ ands r1, r4
+ mov r8, r1
+ lsls r0, 16
+ asrs r1, r0, 17
+ ands r1, r4
+ asrs r2, r0, 18
+ ands r2, r4
+ asrs r3, r0, 19
+ ands r3, r4
+ asrs r6, r0, 20
+ ands r6, r4
+ asrs r5, r0, 21
+ ands r5, r4
+ asrs r0, 22
+ ands r0, r4
+ str r6, [sp]
+ str r5, [sp, 0x4]
+ str r0, [sp, 0x8]
+ mov r0, r8
+ bl sub_80791A8
+ add sp, 0xC
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80E1DC4
+
+ thumb_func_start sub_80E1E0C
+sub_80E1E0C: @ 80E1E0C
+ push {lr}
+ adds r2, r0, 0
+ ldr r0, _080E1E28
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080E1E22
+ adds r0, r2, 0
+ bl move_anim_8072740
+_080E1E22:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E1E28: .4byte gPaletteFade
+ thumb_func_end sub_80E1E0C
+
+ thumb_func_start sub_80E1E2C
+sub_80E1E2C: @ 80E1E2C
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r4, _080E1E78
+ ldrh r0, [r4, 0x2]
+ strh r0, [r5, 0x2E]
+ strh r0, [r5, 0x30]
+ ldrh r0, [r4, 0x4]
+ strh r0, [r5, 0x32]
+ ldrh r0, [r4, 0x6]
+ strh r0, [r5, 0x34]
+ ldrh r0, [r4, 0x8]
+ strh r0, [r5, 0x36]
+ ldrh r0, [r4, 0xA]
+ strh r0, [r5, 0x38]
+ ldrh r0, [r4, 0xC]
+ strh r0, [r5, 0x3A]
+ ldrh r0, [r4]
+ strh r0, [r5, 0x3C]
+ movs r1, 0x3C
+ ldrsh r0, [r5, r1]
+ bl sub_80E1DC4
+ ldrb r1, [r4, 0x8]
+ ldrh r2, [r4, 0x6]
+ bl BlendPalettes
+ adds r2, r5, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r0, _080E1E7C
+ str r0, [r5, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E1E78: .4byte gUnknown_03004B00
+_080E1E7C: .4byte sub_80E1E80
+ thumb_func_end sub_80E1E2C
+
+ thumb_func_start sub_80E1E80
+sub_80E1E80: @ 80E1E80
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r1, [r4, 0x2E]
+ movs r2, 0x2E
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ ble _080E1E94
+ subs r0, r1, 0x1
+ strh r0, [r4, 0x2E]
+ b _080E1F04
+_080E1E94:
+ ldr r0, _080E1EB0
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080E1F04
+ movs r1, 0x32
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080E1EB8
+ ldr r0, _080E1EB4
+ str r0, [r4, 0x1C]
+ b _080E1F04
+ .align 2, 0
+_080E1EB0: .4byte gPaletteFade
+_080E1EB4: .4byte sub_80E1F0C
+_080E1EB8:
+ movs r2, 0x3C
+ ldrsh r0, [r4, r2]
+ bl sub_80E1DC4
+ adds r3, r0, 0
+ ldrh r1, [r4, 0x30]
+ movs r0, 0x80
+ lsls r0, 1
+ ands r0, r1
+ cmp r0, 0
+ beq _080E1EDE
+ ldrh r1, [r4, 0x36]
+ lsls r1, 24
+ lsrs r1, 24
+ ldrh r2, [r4, 0x34]
+ adds r0, r3, 0
+ bl BlendPalettes
+ b _080E1EEC
+_080E1EDE:
+ ldrh r1, [r4, 0x3A]
+ lsls r1, 24
+ lsrs r1, 24
+ ldrh r2, [r4, 0x38]
+ adds r0, r3, 0
+ bl BlendPalettes
+_080E1EEC:
+ ldrh r0, [r4, 0x30]
+ movs r2, 0x80
+ lsls r2, 1
+ adds r1, r2, 0
+ eors r0, r1
+ strh r0, [r4, 0x30]
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r4, 0x32]
+ subs r0, 0x1
+ strh r0, [r4, 0x32]
+_080E1F04:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80E1E80
+
+ thumb_func_start sub_80E1F0C
+sub_80E1F0C: @ 80E1F0C
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _080E1F38
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080E1F32
+ movs r1, 0x3C
+ ldrsh r0, [r4, r1]
+ bl sub_80E1DC4
+ movs r1, 0
+ movs r2, 0
+ bl BlendPalettes
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080E1F32:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E1F38: .4byte gPaletteFade
+ thumb_func_end sub_80E1F0C
+
+ thumb_func_start sub_80E1F3C
+sub_80E1F3C: @ 80E1F3C
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r1, _080E1F80
+ ldrh r0, [r1]
+ ldrh r2, [r4, 0x20]
+ adds r0, r2
+ movs r2, 0
+ strh r0, [r4, 0x20]
+ ldrh r0, [r1, 0x2]
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r4, 0x22]
+ strh r2, [r4, 0x2E]
+ movs r0, 0xA
+ strh r0, [r4, 0x30]
+ movs r0, 0x8
+ strh r0, [r4, 0x32]
+ movs r0, 0x28
+ strh r0, [r4, 0x34]
+ movs r0, 0x70
+ strh r0, [r4, 0x36]
+ strh r2, [r4, 0x38]
+ ldr r1, _080E1F84
+ adds r0, r4, 0
+ bl oamt_set_x3A_32
+ ldr r1, _080E1F88
+ str r1, [r4, 0x1C]
+ adds r0, r4, 0
+ bl _call_via_r1
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E1F80: .4byte gUnknown_03004B00
+_080E1F84: .4byte move_anim_8074EE0
+_080E1F88: .4byte sub_8078174
+ thumb_func_end sub_80E1F3C
+
+ thumb_func_start sub_80E1F8C
+sub_80E1F8C: @ 80E1F8C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _080E1FD0
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ adds r4, r1
+ ldr r3, _080E1FD4
+ ldrh r1, [r3]
+ movs r5, 0
+ strh r1, [r4, 0x8]
+ ldrh r1, [r3, 0x2]
+ strh r1, [r4, 0xA]
+ ldrh r1, [r3, 0x4]
+ strh r1, [r4, 0xC]
+ ldrh r1, [r3, 0x6]
+ strh r1, [r4, 0xE]
+ ldrh r2, [r3, 0x8]
+ strh r2, [r4, 0x10]
+ ldrh r1, [r3, 0xA]
+ strh r1, [r4, 0x12]
+ strh r5, [r4, 0x18]
+ lsls r2, 24
+ lsrs r2, 24
+ movs r1, 0
+ bl sub_80E1FDC
+ ldr r0, _080E1FD8
+ str r0, [r4]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E1FD0: .4byte gTasks
+_080E1FD4: .4byte gUnknown_03004B00
+_080E1FD8: .4byte sub_80E202C
+ thumb_func_end sub_80E1F8C
+
+ thumb_func_start sub_80E1FDC
+sub_80E1FDC: @ 80E1FDC
+ push {r4-r6,lr}
+ sub sp, 0x4
+ adds r5, r1, 0
+ adds r6, r2, 0
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r6, 24
+ lsrs r6, 24
+ ldr r1, _080E2028
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ adds r4, r1
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ bl sub_80E1DC4
+ movs r1, 0xA
+ ldrsb r1, [r4, r1]
+ ldrh r2, [r4, 0x12]
+ str r2, [sp]
+ adds r2, r5, 0
+ adds r3, r6, 0
+ bl BeginNormalPaletteFade
+ ldrh r0, [r4, 0xC]
+ subs r0, 0x1
+ strh r0, [r4, 0xC]
+ ldrh r0, [r4, 0x18]
+ movs r1, 0x1
+ eors r0, r1
+ strh r0, [r4, 0x18]
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E2028: .4byte gTasks
+ thumb_func_end sub_80E1FDC
+
+ thumb_func_start sub_80E202C
+sub_80E202C: @ 80E202C
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ adds r4, r3, 0
+ ldr r0, _080E2064
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080E208E
+ ldr r1, _080E2068
+ lsls r2, r3, 2
+ adds r0, r2, r3
+ lsls r0, 3
+ adds r3, r0, r1
+ movs r5, 0xC
+ ldrsh r0, [r3, r5]
+ adds r6, r1, 0
+ adds r5, r2, 0
+ cmp r0, 0
+ ble _080E2088
+ movs r1, 0x18
+ ldrsh r0, [r3, r1]
+ cmp r0, 0
+ bne _080E206C
+ ldrb r1, [r3, 0xE]
+ ldrb r2, [r3, 0x10]
+ b _080E2070
+ .align 2, 0
+_080E2064: .4byte gPaletteFade
+_080E2068: .4byte gTasks
+_080E206C:
+ ldrb r1, [r3, 0x10]
+ ldrb r2, [r3, 0xE]
+_080E2070:
+ adds r0, r5, r4
+ lsls r0, 3
+ adds r0, r6
+ movs r3, 0xC
+ ldrsh r0, [r0, r3]
+ cmp r0, 0x1
+ bne _080E2080
+ movs r2, 0
+_080E2080:
+ adds r0, r4, 0
+ bl sub_80E1FDC
+ b _080E208E
+_080E2088:
+ adds r0, r4, 0
+ bl move_anim_task_del
+_080E208E:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80E202C
+
+ thumb_func_start sub_80E2094
+sub_80E2094: @ 80E2094
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _080E20D8
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ adds r4, r1
+ ldr r3, _080E20DC
+ ldrh r1, [r3]
+ movs r5, 0
+ strh r1, [r4, 0x8]
+ ldrh r1, [r3, 0x2]
+ strh r1, [r4, 0xA]
+ ldrh r1, [r3, 0x4]
+ strh r1, [r4, 0xC]
+ ldrh r1, [r3, 0x6]
+ strh r1, [r4, 0xE]
+ ldrh r2, [r3, 0x8]
+ strh r2, [r4, 0x10]
+ ldrh r1, [r3, 0xA]
+ strh r1, [r4, 0x12]
+ strh r5, [r4, 0x18]
+ lsls r2, 24
+ lsrs r2, 24
+ movs r1, 0
+ bl sub_80E20E4
+ ldr r0, _080E20E0
+ str r0, [r4]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E20D8: .4byte gTasks
+_080E20DC: .4byte gUnknown_03004B00
+_080E20E0: .4byte sub_80E2140
+ thumb_func_end sub_80E2094
+
+ thumb_func_start sub_80E20E4
+sub_80E20E4: @ 80E20E4
+ push {r4-r6,lr}
+ sub sp, 0x4
+ adds r5, r1, 0
+ adds r6, r2, 0
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r6, 24
+ lsrs r6, 24
+ ldr r1, _080E213C
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ adds r4, r1
+ ldrh r0, [r4, 0x8]
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, 0x10
+ movs r2, 0x1
+ lsls r2, r0
+ movs r1, 0xA
+ ldrsb r1, [r4, r1]
+ ldrh r0, [r4, 0x12]
+ str r0, [sp]
+ adds r0, r2, 0
+ adds r2, r5, 0
+ adds r3, r6, 0
+ bl BeginNormalPaletteFade
+ ldrh r0, [r4, 0xC]
+ subs r0, 0x1
+ strh r0, [r4, 0xC]
+ ldrh r0, [r4, 0x18]
+ movs r1, 0x1
+ eors r0, r1
+ strh r0, [r4, 0x18]
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E213C: .4byte gTasks
+ thumb_func_end sub_80E20E4
+
+ thumb_func_start sub_80E2140
+sub_80E2140: @ 80E2140
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ adds r4, r3, 0
+ ldr r0, _080E2178
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080E21A2
+ ldr r1, _080E217C
+ lsls r2, r3, 2
+ adds r0, r2, r3
+ lsls r0, 3
+ adds r3, r0, r1
+ movs r5, 0xC
+ ldrsh r0, [r3, r5]
+ adds r6, r1, 0
+ adds r5, r2, 0
+ cmp r0, 0
+ ble _080E219C
+ movs r1, 0x18
+ ldrsh r0, [r3, r1]
+ cmp r0, 0
+ bne _080E2180
+ ldrb r1, [r3, 0xE]
+ ldrb r2, [r3, 0x10]
+ b _080E2184
+ .align 2, 0
+_080E2178: .4byte gPaletteFade
+_080E217C: .4byte gTasks
+_080E2180:
+ ldrb r1, [r3, 0x10]
+ ldrb r2, [r3, 0xE]
+_080E2184:
+ adds r0, r5, r4
+ lsls r0, 3
+ adds r0, r6
+ movs r3, 0xC
+ ldrsh r0, [r0, r3]
+ cmp r0, 0x1
+ bne _080E2194
+ movs r2, 0
+_080E2194:
+ adds r0, r4, 0
+ bl sub_80E20E4
+ b _080E21A2
+_080E219C:
+ adds r0, r4, 0
+ bl move_anim_task_del
+_080E21A2:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80E2140
+
+ thumb_func_start sub_80E21A8
+sub_80E21A8: @ 80E21A8
+ push {r4,r5,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _080E2208
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ adds r4, r1
+ ldr r5, _080E220C
+ ldrh r0, [r5, 0x2]
+ strh r0, [r4, 0x8]
+ ldrh r0, [r5, 0x2]
+ strh r0, [r4, 0xA]
+ ldrh r0, [r5, 0x4]
+ strh r0, [r4, 0xC]
+ ldrh r0, [r5, 0x6]
+ strh r0, [r4, 0xE]
+ ldrh r0, [r5, 0x8]
+ strh r0, [r4, 0x10]
+ ldrh r0, [r5, 0xA]
+ strh r0, [r4, 0x12]
+ ldrh r0, [r5, 0xC]
+ strh r0, [r4, 0x14]
+ ldrh r0, [r5]
+ strh r0, [r4, 0x16]
+ ldrh r0, [r5]
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, 0x10
+ movs r1, 0x1
+ lsls r1, r0
+ ldrb r3, [r5, 0x8]
+ ldrh r0, [r5, 0x6]
+ str r0, [sp]
+ adds r0, r1, 0
+ movs r1, 0
+ adds r2, r3, 0
+ bl BeginNormalPaletteFade
+ ldr r0, _080E2210
+ str r0, [r4]
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E2208: .4byte gTasks
+_080E220C: .4byte gUnknown_03004B00
+_080E2210: .4byte sub_80E2214
+ thumb_func_end sub_80E21A8
+
+ thumb_func_start sub_80E2214
+sub_80E2214: @ 80E2214
+ push {r4,r5,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _080E2238
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r4, r0, r1
+ ldrh r1, [r4, 0x8]
+ movs r2, 0x8
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ ble _080E223C
+ subs r0, r1, 0x1
+ strh r0, [r4, 0x8]
+ b _080E22C0
+ .align 2, 0
+_080E2238: .4byte gTasks
+_080E223C:
+ ldr r0, _080E2258
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080E22C0
+ movs r3, 0xC
+ ldrsh r0, [r4, r3]
+ cmp r0, 0
+ bne _080E2260
+ ldr r0, _080E225C
+ str r0, [r4]
+ b _080E22C0
+ .align 2, 0
+_080E2258: .4byte gPaletteFade
+_080E225C: .4byte sub_80E22CC
+_080E2260:
+ ldrh r0, [r4, 0x16]
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, 0x10
+ movs r2, 0x1
+ lsls r2, r0
+ ldrh r1, [r4, 0xA]
+ movs r0, 0x80
+ lsls r0, 1
+ ands r0, r1
+ cmp r0, 0
+ beq _080E228E
+ ldrb r3, [r4, 0x10]
+ ldrh r0, [r4, 0xE]
+ str r0, [sp]
+ adds r0, r2, 0
+ movs r1, 0
+ adds r2, r3, 0
+ bl BeginNormalPaletteFade
+ b _080E229E
+_080E228E:
+ ldrb r3, [r4, 0x14]
+ ldrh r0, [r4, 0x12]
+ str r0, [sp]
+ adds r0, r2, 0
+ movs r1, 0
+ adds r2, r3, 0
+ bl BeginNormalPaletteFade
+_080E229E:
+ ldr r0, _080E22C8
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0xA]
+ movs r3, 0x80
+ lsls r3, 1
+ adds r2, r3, 0
+ eors r0, r2
+ strh r0, [r1, 0xA]
+ movs r2, 0xFF
+ ands r0, r2
+ strh r0, [r1, 0x8]
+ ldrh r0, [r1, 0xC]
+ subs r0, 0x1
+ strh r0, [r1, 0xC]
+_080E22C0:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E22C8: .4byte gTasks
+ thumb_func_end sub_80E2214
+
+ thumb_func_start sub_80E22CC
+sub_80E22CC: @ 80E22CC
+ push {r4,r5,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _080E231C
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0
+ bne _080E2312
+ ldr r1, _080E2320
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldrh r0, [r0, 0x16]
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, 0x10
+ movs r1, 0x1
+ lsls r1, r0
+ str r5, [sp]
+ adds r0, r1, 0
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ adds r0, r4, 0
+ bl move_anim_task_del
+_080E2312:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E231C: .4byte gPaletteFade
+_080E2320: .4byte gTasks
+ thumb_func_end sub_80E22CC
+
+ thumb_func_start sub_80E2324
+sub_80E2324: @ 80E2324
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ movs r2, 0
+ ldr r0, _080E239C
+ ldrb r6, [r0]
+ ldr r0, _080E23A0
+ ldrb r7, [r0]
+ ldr r4, _080E23A4
+ ldrh r1, [r4]
+ movs r5, 0x80
+ lsls r5, 1
+ adds r0, r5, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _080E235E
+ str r2, [sp]
+ str r2, [sp, 0x4]
+ str r2, [sp, 0x8]
+ movs r0, 0x1
+ movs r1, 0
+ movs r3, 0
+ bl sub_80791A8
+ adds r2, r0, 0
+_080E235E:
+ ldrh r1, [r4, 0x2]
+ adds r0, r5, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _080E2370
+ movs r0, 0x80
+ lsls r0, 9
+ lsls r0, r6
+ orrs r2, r0
+_080E2370:
+ ldrh r1, [r4, 0x4]
+ adds r0, r5, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _080E2382
+ movs r0, 0x80
+ lsls r0, 9
+ lsls r0, r7
+ orrs r2, r0
+_080E2382:
+ adds r0, r2, 0
+ bl InvertPlttBuffer
+ mov r0, r8
+ bl move_anim_task_del
+ add sp, 0xC
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E239C: .4byte gUnknown_0202F7C8
+_080E23A0: .4byte gUnknown_0202F7C9
+_080E23A4: .4byte gUnknown_03004B00
+ thumb_func_end sub_80E2324
+
+ thumb_func_start unref_sub_80E23A8
+unref_sub_80E23A8: @ 80E23A8
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ movs r5, 0
+ ldr r1, _080E249C
+ lsls r0, 2
+ add r0, r8
+ lsls r0, 3
+ adds r4, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080E23EA
+ ldr r1, _080E24A0
+ ldrh r0, [r1]
+ strh r0, [r4, 0xC]
+ ldrh r0, [r1, 0x2]
+ strh r0, [r4, 0xE]
+ ldrh r0, [r1, 0x4]
+ strh r0, [r4, 0x10]
+ ldrh r0, [r1, 0x6]
+ strh r0, [r4, 0xA]
+ ldrh r0, [r1, 0x8]
+ strh r0, [r4, 0x12]
+ ldrh r0, [r1, 0xA]
+ strh r0, [r4, 0x14]
+ ldrh r0, [r1, 0xC]
+ strh r0, [r4, 0x16]
+_080E23EA:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ ldr r0, _080E24A4
+ ldrb r0, [r0]
+ mov r9, r0
+ ldr r0, _080E24A8
+ ldrb r0, [r0]
+ mov r10, r0
+ ldrh r1, [r4, 0xC]
+ movs r7, 0x80
+ lsls r7, 1
+ adds r0, r7, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _080E240C
+ ldr r5, _080E24AC
+_080E240C:
+ movs r6, 0x1
+ adds r0, r6, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _080E243C
+ ldr r2, _080E24B0
+ ldr r0, _080E24B4
+ add r0, r9
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r2, 0x14
+ adds r0, r2
+ ldr r0, [r0]
+ ldrh r0, [r0, 0x2]
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r0, 24
+ adds r1, r6, 0
+ lsls r1, r0
+ lsls r1, 16
+ orrs r5, r1
+_080E243C:
+ ldrh r1, [r4, 0xE]
+ adds r0, r7, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _080E2450
+ adds r0, r6, 0
+ mov r2, r9
+ lsls r0, r2
+ lsls r0, 16
+ orrs r5, r0
+_080E2450:
+ ldrh r1, [r4, 0x10]
+ adds r0, r7, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _080E2464
+ adds r0, r6, 0
+ mov r1, r10
+ lsls r0, r1
+ lsls r0, 16
+ orrs r5, r0
+_080E2464:
+ movs r1, 0x12
+ ldrsb r1, [r4, r1]
+ movs r2, 0x14
+ ldrsb r2, [r4, r2]
+ movs r3, 0x16
+ ldrsb r3, [r4, r3]
+ adds r0, r5, 0
+ bl TintPlttBuffer
+ movs r2, 0x8
+ ldrsh r1, [r4, r2]
+ movs r2, 0xA
+ ldrsh r0, [r4, r2]
+ cmp r1, r0
+ bne _080E248E
+ adds r0, r5, 0
+ bl UnfadePlttBuffer
+ mov r0, r8
+ bl move_anim_task_del
+_080E248E:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E249C: .4byte gTasks
+_080E24A0: .4byte gUnknown_03004B00
+_080E24A4: .4byte gUnknown_0202F7C8
+_080E24A8: .4byte gUnknown_0202F7C9
+_080E24AC: .4byte 0x0000ffff
+_080E24B0: .4byte gSprites
+_080E24B4: .4byte gUnknown_03004340
+ thumb_func_end unref_sub_80E23A8
+
+ thumb_func_start sub_80E24B8
+sub_80E24B8: @ 80E24B8
+ push {r4,lr}
+ adds r4, r0, 0
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r1, _080E24EC
+ ldrh r0, [r1]
+ negs r0, r0
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r1, 0x2]
+ strh r0, [r4, 0x30]
+ strh r0, [r4, 0x32]
+ ldrh r0, [r1, 0x4]
+ strh r0, [r4, 0x34]
+ movs r2, 0x6
+ ldrsh r0, [r1, r2]
+ cmp r0, 0x1
+ beq _080E2500
+ cmp r0, 0x1
+ bgt _080E24F0
+ cmp r0, 0
+ beq _080E24F6
+ b _080E2518
+ .align 2, 0
+_080E24EC: .4byte gUnknown_03004B00
+_080E24F0:
+ cmp r0, 0x2
+ beq _080E2508
+ b _080E2518
+_080E24F6:
+ ldr r1, _080E24FC
+ b _080E250A
+ .align 2, 0
+_080E24FC: .4byte gUnknown_030041B0
+_080E2500:
+ ldr r1, _080E2504
+ b _080E250A
+ .align 2, 0
+_080E2504: .4byte gUnknown_030041B8
+_080E2508:
+ ldr r1, _080E2514
+_080E250A:
+ adds r0, r4, 0
+ bl oamt_set_x3A_32
+ b _080E2520
+ .align 2, 0
+_080E2514: .4byte gSpriteCoordOffsetX
+_080E2518:
+ ldr r1, _080E2550
+ adds r0, r4, 0
+ bl oamt_set_x3A_32
+_080E2520:
+ movs r0, 0x3A
+ ldrsh r1, [r4, r0]
+ movs r2, 0x3C
+ ldrsh r0, [r4, r2]
+ lsls r0, 16
+ orrs r1, r0
+ ldr r0, [r1]
+ strh r0, [r4, 0x36]
+ ldr r0, _080E2554
+ ldrh r0, [r0, 0x6]
+ strh r0, [r4, 0x38]
+ subs r0, 0x2
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x1
+ bhi _080E2544
+ bl sub_80E260C
+_080E2544:
+ ldr r0, _080E2558
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E2550: .4byte gSpriteCoordOffsetY
+_080E2554: .4byte gUnknown_03004B00
+_080E2558: .4byte sub_80E255C
+ thumb_func_end sub_80E24B8
+
+ thumb_func_start sub_80E255C
+sub_80E255C: @ 80E255C
+ push {r4-r7,lr}
+ adds r3, r0, 0
+ ldrh r1, [r3, 0x34]
+ movs r2, 0x34
+ ldrsh r0, [r3, r2]
+ cmp r0, 0
+ ble _080E25A0
+ subs r0, r1, 0x1
+ strh r0, [r3, 0x34]
+ ldrh r1, [r3, 0x30]
+ movs r2, 0x30
+ ldrsh r0, [r3, r2]
+ cmp r0, 0
+ ble _080E257E
+ subs r0, r1, 0x1
+ strh r0, [r3, 0x30]
+ b _080E25FA
+_080E257E:
+ ldrh r0, [r3, 0x32]
+ strh r0, [r3, 0x30]
+ movs r0, 0x3A
+ ldrsh r1, [r3, r0]
+ movs r2, 0x3C
+ ldrsh r0, [r3, r2]
+ lsls r0, 16
+ orrs r1, r0
+ movs r0, 0x2E
+ ldrsh r2, [r3, r0]
+ ldr r0, [r1]
+ adds r0, r2
+ str r0, [r1]
+ ldrh r0, [r3, 0x2E]
+ negs r0, r0
+ strh r0, [r3, 0x2E]
+ b _080E25FA
+_080E25A0:
+ movs r2, 0x3A
+ ldrsh r1, [r3, r2]
+ movs r2, 0x3C
+ ldrsh r0, [r3, r2]
+ lsls r0, 16
+ orrs r1, r0
+ movs r2, 0x36
+ ldrsh r0, [r3, r2]
+ str r0, [r1]
+ ldrh r0, [r3, 0x38]
+ subs r0, 0x2
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x1
+ bhi _080E25F4
+ movs r4, 0
+ ldr r5, _080E2600
+ ldrb r0, [r5]
+ cmp r4, r0
+ bcs _080E25F4
+ ldr r2, _080E2604
+ mov r12, r2
+ ldr r6, _080E2608
+ movs r7, 0x3
+ negs r7, r7
+_080E25D2:
+ adds r0, r4, r6
+ ldrb r0, [r0]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ add r1, r12
+ adds r1, 0x3E
+ ldrb r2, [r1]
+ adds r0, r7, 0
+ ands r0, r2
+ strb r0, [r1]
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldrb r0, [r5]
+ cmp r4, r0
+ bcc _080E25D2
+_080E25F4:
+ adds r0, r3, 0
+ bl move_anim_8072740
+_080E25FA:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E2600: .4byte gUnknown_02024A68
+_080E2604: .4byte gSprites
+_080E2608: .4byte gUnknown_02024BE0
+ thumb_func_end sub_80E255C
+
+ thumb_func_start sub_80E260C
+sub_80E260C: @ 80E260C
+ push {r4-r6,lr}
+ ldr r6, _080E2680
+ ldr r4, _080E2684
+ ldr r5, _080E2688
+ ldrb r0, [r5]
+ adds r0, r4
+ ldrb r0, [r0]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r6
+ adds r1, 0x3E
+ ldrb r3, [r1]
+ movs r2, 0x3
+ negs r2, r2
+ adds r0, r2, 0
+ ands r0, r3
+ strb r0, [r1]
+ ldr r3, _080E268C
+ ldrb r0, [r3]
+ adds r0, r4
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ ands r2, r1
+ strb r2, [r0]
+ ldr r0, _080E2690
+ movs r1, 0x8
+ ldrsh r0, [r0, r1]
+ cmp r0, 0x2
+ bne _080E2694
+ ldrb r0, [r5]
+ adds r0, r4
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x2
+ orrs r1, r2
+ strb r1, [r0]
+ ldrb r0, [r3]
+ adds r0, r4
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ b _080E26B0
+ .align 2, 0
+_080E2680: .4byte gSprites
+_080E2684: .4byte gUnknown_02024BE0
+_080E2688: .4byte gUnknown_0202F7C8
+_080E268C: .4byte gUnknown_0202F7C9
+_080E2690: .4byte gUnknown_03004B00
+_080E2694:
+ cmp r0, 0
+ bne _080E269C
+ ldrb r0, [r5]
+ b _080E269E
+_080E269C:
+ ldrb r0, [r3]
+_080E269E:
+ adds r0, r4
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x2
+_080E26B0:
+ orrs r1, r2
+ strb r1, [r0]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80E260C
+
+ thumb_func_start sub_80E26BC
+sub_80E26BC: @ 80E26BC
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _080E26FC
+ lsls r2, r0, 2
+ adds r2, r0
+ lsls r2, 3
+ adds r2, r1
+ ldr r3, _080E2700
+ ldrh r1, [r3]
+ strh r1, [r2, 0x8]
+ ldrh r1, [r3, 0x2]
+ strh r1, [r2, 0xA]
+ ldrh r1, [r3, 0x4]
+ strh r1, [r2, 0xC]
+ ldrh r1, [r3, 0x6]
+ strh r1, [r2, 0xE]
+ ldrh r1, [r3, 0x6]
+ strh r1, [r2, 0x18]
+ ldr r4, _080E2704
+ ldrh r1, [r3]
+ strh r1, [r4]
+ ldr r4, _080E2708
+ ldrh r1, [r3, 0x2]
+ strh r1, [r4]
+ ldr r1, _080E270C
+ str r1, [r2]
+ bl _call_via_r1
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E26FC: .4byte gTasks
+_080E2700: .4byte gUnknown_03004B00
+_080E2704: .4byte gUnknown_030041B0
+_080E2708: .4byte gUnknown_030041B8
+_080E270C: .4byte sub_80E2710
+ thumb_func_end sub_80E26BC
+
+ thumb_func_start sub_80E2710
+sub_80E2710: @ 80E2710
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _080E2740
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r3, r0, r1
+ ldrh r2, [r3, 0xE]
+ movs r4, 0xE
+ ldrsh r0, [r3, r4]
+ mov r12, r1
+ cmp r0, 0
+ bne _080E2796
+ ldr r0, _080E2744
+ ldrh r2, [r0]
+ movs r7, 0x8
+ ldrsh r1, [r3, r7]
+ adds r6, r0, 0
+ cmp r2, r1
+ bne _080E2748
+ ldrh r0, [r3, 0x8]
+ negs r0, r0
+ b _080E274A
+ .align 2, 0
+_080E2740: .4byte gTasks
+_080E2744: .4byte gUnknown_030041B0
+_080E2748:
+ ldrh r0, [r3, 0x8]
+_080E274A:
+ strh r0, [r6]
+ ldr r2, _080E2768
+ ldrh r3, [r2]
+ lsls r1, r5, 2
+ adds r0, r1, r5
+ lsls r0, 3
+ mov r7, r12
+ adds r4, r0, r7
+ movs r7, 0xA
+ ldrsh r0, [r4, r7]
+ cmn r3, r0
+ bne _080E276C
+ movs r0, 0
+ b _080E2770
+ .align 2, 0
+_080E2768: .4byte gUnknown_030041B8
+_080E276C:
+ ldrh r0, [r4, 0xA]
+ negs r0, r0
+_080E2770:
+ strh r0, [r2]
+ adds r0, r1, r5
+ lsls r0, 3
+ add r0, r12
+ ldrh r1, [r0, 0x18]
+ strh r1, [r0, 0xE]
+ ldrh r1, [r0, 0xC]
+ subs r1, 0x1
+ strh r1, [r0, 0xC]
+ lsls r1, 16
+ asrs r1, 16
+ cmp r1, 0
+ bne _080E279A
+ strh r1, [r6]
+ strh r1, [r2]
+ adds r0, r5, 0
+ bl move_anim_task_del
+ b _080E279A
+_080E2796:
+ subs r0, r2, 0x1
+ strh r0, [r3, 0xE]
+_080E279A:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80E2710
+
+ thumb_func_start sub_80E27A0
+sub_80E27A0: @ 80E27A0
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r4, _080E27C0
+ ldrb r1, [r4, 0x6]
+ bl StartSpriteAffineAnim
+ movs r1, 0x4
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080E27C4
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl sub_80787B0
+ b _080E27CC
+ .align 2, 0
+_080E27C0: .4byte gUnknown_03004B00
+_080E27C4:
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl sub_8078764
+_080E27CC:
+ ldr r0, _080E27E0
+ str r0, [r5, 0x1C]
+ ldr r1, _080E27E4
+ adds r0, r5, 0
+ bl oamt_set_x3A_32
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E27E0: .4byte sub_80785E4
+_080E27E4: .4byte move_anim_8072740
+ thumb_func_end sub_80E27A0
+
+ thumb_func_start sub_80E27E8
+sub_80E27E8: @ 80E27E8
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r4, _080E2808
+ ldrb r1, [r4, 0x6]
+ bl StartSpriteAffineAnim
+ movs r1, 0x4
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080E280C
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl sub_80787B0
+ b _080E2814
+ .align 2, 0
+_080E2808: .4byte gUnknown_03004B00
+_080E280C:
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl sub_8078764
+_080E2814:
+ ldr r0, _080E282C
+ ldrh r0, [r0, 0x8]
+ strh r0, [r5, 0x2E]
+ ldr r0, _080E2830
+ str r0, [r5, 0x1C]
+ ldr r1, _080E2834
+ adds r0, r5, 0
+ bl oamt_set_x3A_32
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E282C: .4byte gUnknown_03004B00
+_080E2830: .4byte sub_80785E4
+_080E2834: .4byte sub_80DA48C
+ thumb_func_end sub_80E27E8
+
+ thumb_func_start sub_80E2838
+sub_80E2838: @ 80E2838
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _080E2868
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E285C
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080E285C
+ ldr r1, _080E286C
+ ldrh r0, [r1, 0x2]
+ negs r0, r0
+ strh r0, [r1, 0x2]
+_080E285C:
+ adds r0, r4, 0
+ bl sub_80E27A0
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E2868: .4byte gUnknown_0202F7C8
+_080E286C: .4byte gUnknown_03004B00
+ thumb_func_end sub_80E2838
+
+ thumb_func_start sub_80E2870
+sub_80E2870: @ 80E2870
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldr r5, _080E28A8
+ movs r0, 0x2
+ ldrsh r1, [r5, r0]
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ bne _080E288C
+ bl Random
+ movs r1, 0x3
+ ands r1, r0
+ strh r1, [r5, 0x2]
+_080E288C:
+ ldrb r1, [r5, 0x2]
+ adds r0, r4, 0
+ bl StartSpriteAffineAnim
+ movs r1, 0
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ bne _080E28AC
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_80787B0
+ b _080E28B4
+ .align 2, 0
+_080E28A8: .4byte gUnknown_03004B00
+_080E28AC:
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_8078764
+_080E28B4:
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x30
+ bl __umodsi3
+ ldr r1, _080E28F8
+ adds r0, r1
+ ldrh r1, [r4, 0x24]
+ adds r0, r1
+ strh r0, [r4, 0x24]
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x18
+ bl __umodsi3
+ ldr r1, _080E28FC
+ adds r0, r1
+ ldrh r1, [r4, 0x26]
+ adds r0, r1
+ strh r0, [r4, 0x26]
+ ldr r1, _080E2900
+ adds r0, r4, 0
+ bl oamt_set_x3A_32
+ ldr r0, _080E2904
+ str r0, [r4, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E28F8: .4byte 0x0000ffe8
+_080E28FC: .4byte 0x0000fff4
+_080E2900: .4byte move_anim_8074EE0
+_080E2904: .4byte sub_80785E4
+ thumb_func_end sub_80E2870
+
+ thumb_func_start sub_80E2908
+sub_80E2908: @ 80E2908
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldr r5, _080E2968
+ ldrb r0, [r5]
+ bl obj_id_for_side_relative_to_move
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x2E]
+ ldr r2, _080E296C
+ movs r0, 0x2E
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r0, 0x24]
+ ldrh r0, [r0, 0x20]
+ adds r1, r0
+ strh r1, [r4, 0x20]
+ movs r0, 0x2E
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r0, 0x26]
+ ldrh r0, [r0, 0x22]
+ adds r1, r0
+ strh r1, [r4, 0x22]
+ ldrh r0, [r5, 0x2]
+ strh r0, [r4, 0x24]
+ ldrh r0, [r5, 0x4]
+ strh r0, [r4, 0x26]
+ ldrb r1, [r5, 0x6]
+ adds r0, r4, 0
+ bl StartSpriteAffineAnim
+ ldr r1, _080E2970
+ adds r0, r4, 0
+ bl oamt_set_x3A_32
+ ldr r0, _080E2974
+ str r0, [r4, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E2968: .4byte gUnknown_03004B00
+_080E296C: .4byte gSprites
+_080E2970: .4byte move_anim_8074EE0
+_080E2974: .4byte sub_80785E4
+ thumb_func_end sub_80E2908
+
+ thumb_func_start sub_80E2978
+sub_80E2978: @ 80E2978
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _080E2990
+ movs r1, 0x4
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080E2994
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_80787B0
+ b _080E299C
+ .align 2, 0
+_080E2990: .4byte gUnknown_03004B00
+_080E2994:
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_8078764
+_080E299C:
+ ldr r0, _080E29B4
+ ldrh r0, [r0, 0x6]
+ strh r0, [r4, 0x2E]
+ ldr r1, _080E29B8
+ adds r0, r4, 0
+ bl oamt_set_x3A_32
+ ldr r0, _080E29BC
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E29B4: .4byte gUnknown_03004B00
+_080E29B8: .4byte move_anim_8072740
+_080E29BC: .4byte sub_80782D8
+ thumb_func_end sub_80E2978
+
+ thumb_func_start sub_80E29C0
+sub_80E29C0: @ 80E29C0
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r4, _080E29E0
+ ldrb r1, [r4, 0x6]
+ bl StartSpriteAffineAnim
+ movs r1, 0x4
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080E29E4
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl sub_80787B0
+ b _080E29EC
+ .align 2, 0
+_080E29E0: .4byte gUnknown_03004B00
+_080E29E4:
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl sub_8078764
+_080E29EC:
+ ldr r0, _080E29F8
+ str r0, [r5, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E29F8: .4byte sub_80E29FC
+ thumb_func_end sub_80E29C0
+
+ thumb_func_start sub_80E29FC
+sub_80E29FC: @ 80E29FC
+ push {lr}
+ adds r3, r0, 0
+ movs r0, 0x3E
+ adds r0, r3
+ mov r12, r0
+ ldrb r2, [r0]
+ 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
+ mov r1, r12
+ strb r0, [r1]
+ ldrh r0, [r3, 0x2E]
+ adds r1, r0, 0x1
+ strh r1, [r3, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xC
+ ble _080E2A32
+ adds r0, r3, 0
+ bl move_anim_8072740
+_080E2A32:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80E29FC
+
+ thumb_func_start sub_80E2A38
+sub_80E2A38: @ 80E2A38
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ ldr r4, _080E2A78
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ bl sub_80E1DC4
+ adds r6, r0, 0
+ ldrh r3, [r4]
+ lsls r3, 16
+ asrs r0, r3, 23
+ movs r4, 0x1
+ ands r0, r4
+ asrs r1, r3, 24
+ ands r1, r4
+ asrs r2, r3, 25
+ ands r2, r4
+ asrs r3, 26
+ ands r3, r4
+ bl sub_80792C0
+ orrs r6, r0
+ adds r0, r5, 0
+ adds r1, r6, 0
+ bl sub_80E2C8C
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E2A78: .4byte gUnknown_03004B00
+ thumb_func_end sub_80E2A38
+
+ thumb_func_start sub_80E2A7C
+sub_80E2A7C: @ 80E2A7C
+ push {r4-r7,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r7, r0, 24
+ mov r1, sp
+ movs r0, 0xFF
+ strb r0, [r1, 0x1]
+ movs r0, 0x1
+ bl sub_80E1DC4
+ adds r5, r0, 0
+ ldr r0, _080E2AA8
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0x7
+ bhi _080E2B26
+ lsls r0, 2
+ ldr r1, _080E2AAC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080E2AA8: .4byte gUnknown_03004B00
+_080E2AAC: .4byte _080E2AB0
+ .align 2, 0
+_080E2AB0:
+ .4byte _080E2AD2
+ .4byte _080E2ADE
+ .4byte _080E2AD0
+ .4byte _080E2ADC
+ .4byte _080E2AEC
+ .4byte _080E2B04
+ .4byte _080E2B0C
+ .4byte _080E2B18
+_080E2AD0:
+ movs r5, 0
+_080E2AD2:
+ mov r0, sp
+ ldr r1, _080E2AD8
+ b _080E2AE2
+ .align 2, 0
+_080E2AD8: .4byte gUnknown_0202F7C8
+_080E2ADC:
+ movs r5, 0
+_080E2ADE:
+ mov r0, sp
+ ldr r1, _080E2AE8
+_080E2AE2:
+ ldrb r1, [r1]
+ strb r1, [r0]
+ b _080E2B26
+ .align 2, 0
+_080E2AE8: .4byte gUnknown_0202F7C9
+_080E2AEC:
+ mov r1, sp
+ ldr r0, _080E2AFC
+ ldrb r0, [r0]
+ strb r0, [r1]
+ ldr r0, _080E2B00
+ ldrb r0, [r0]
+ strb r0, [r1, 0x1]
+ b _080E2B26
+ .align 2, 0
+_080E2AFC: .4byte gUnknown_0202F7C8
+_080E2B00: .4byte gUnknown_0202F7C9
+_080E2B04:
+ mov r1, sp
+ movs r0, 0xFF
+ strb r0, [r1]
+ b _080E2B26
+_080E2B0C:
+ movs r5, 0
+ mov r2, sp
+ ldr r0, _080E2B14
+ b _080E2B1E
+ .align 2, 0
+_080E2B14: .4byte gUnknown_0202F7C8
+_080E2B18:
+ movs r5, 0
+ mov r2, sp
+ ldr r0, _080E2B70
+_080E2B1E:
+ ldrb r0, [r0]
+ movs r1, 0x2
+ eors r0, r1
+ strb r0, [r2]
+_080E2B26:
+ movs r4, 0
+ mov r6, sp
+_080E2B2A:
+ ldrb r0, [r6]
+ cmp r4, r0
+ beq _080E2B54
+ ldrb r0, [r6, 0x1]
+ cmp r4, r0
+ beq _080E2B54
+ adds r0, r4, 0
+ bl b_side_obj__get_some_boolean
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E2B54
+ adds r0, r4, 0
+ bl sub_80793A8
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x80
+ lsls r1, 9
+ lsls r1, r0
+ orrs r5, r1
+_080E2B54:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x3
+ bls _080E2B2A
+ adds r0, r7, 0
+ adds r1, r5, 0
+ bl sub_80E2C8C
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E2B70: .4byte gUnknown_0202F7C9
+ thumb_func_end sub_80E2A7C
+
+ thumb_func_start sub_80E2B74
+sub_80E2B74: @ 80E2B74
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _080E2B98
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ bl sub_80E1DC4
+ adds r2, r0, 0
+ ldr r0, _080E2B9C
+ ldrb r0, [r0]
+ cmp r0, 0x9
+ bhi _080E2C4A
+ lsls r0, 2
+ ldr r1, _080E2BA0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080E2B98: .4byte gUnknown_03004B00
+_080E2B9C: .4byte gUnknown_0300428C
+_080E2BA0: .4byte _080E2BA4
+ .align 2, 0
+_080E2BA4:
+ .4byte _080E2BCC
+ .4byte _080E2BDC
+ .4byte _080E2BE8
+ .4byte _080E2BF8
+ .4byte _080E2C04
+ .4byte _080E2C14
+ .4byte _080E2C24
+ .4byte _080E2C34
+ .4byte _080E2C44
+ .4byte _080E2C44
+_080E2BCC:
+ ldr r1, _080E2BD4
+ ldr r0, _080E2BD8
+ b _080E2C48
+ .align 2, 0
+_080E2BD4: .4byte gUnknown_03004B00
+_080E2BD8: .4byte 0x00000b0c
+_080E2BDC:
+ ldr r1, _080E2BE4
+ movs r0, 0x9E
+ lsls r0, 4
+ b _080E2C48
+ .align 2, 0
+_080E2BE4: .4byte gUnknown_03004B00
+_080E2BE8:
+ ldr r1, _080E2BF0
+ ldr r0, _080E2BF4
+ b _080E2C48
+ .align 2, 0
+_080E2BF0: .4byte gUnknown_03004B00
+_080E2BF4: .4byte 0x00002f1e
+_080E2BF8:
+ ldr r1, _080E2C00
+ movs r0, 0x90
+ lsls r0, 7
+ b _080E2C48
+ .align 2, 0
+_080E2C00: .4byte gUnknown_03004B00
+_080E2C04:
+ ldr r1, _080E2C0C
+ ldr r0, _080E2C10
+ b _080E2C48
+ .align 2, 0
+_080E2C0C: .4byte gUnknown_03004B00
+_080E2C10: .4byte 0x00007ecb
+_080E2C14:
+ ldr r1, _080E2C1C
+ ldr r0, _080E2C20
+ b _080E2C48
+ .align 2, 0
+_080E2C1C: .4byte gUnknown_03004B00
+_080E2C20: .4byte 0x00007ecb
+_080E2C24:
+ ldr r1, _080E2C2C
+ ldr r0, _080E2C30
+ b _080E2C48
+ .align 2, 0
+_080E2C2C: .4byte gUnknown_03004B00
+_080E2C30: .4byte 0x00002a16
+_080E2C34:
+ ldr r1, _080E2C3C
+ ldr r0, _080E2C40
+ b _080E2C48
+ .align 2, 0
+_080E2C3C: .4byte gUnknown_03004B00
+_080E2C40: .4byte 0x00000d2e
+_080E2C44:
+ ldr r1, _080E2C58
+ ldr r0, _080E2C5C
+_080E2C48:
+ strh r0, [r1, 0x8]
+_080E2C4A:
+ adds r0, r4, 0
+ adds r1, r2, 0
+ bl sub_80E2C8C
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E2C58: .4byte gUnknown_03004B00
+_080E2C5C: .4byte 0x00007fff
+ thumb_func_end sub_80E2B74
+
+ thumb_func_start sub_80E2C60
+sub_80E2C60: @ 80E2C60
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _080E2C88
+ ldrh r0, [r0]
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, 0x10
+ movs r1, 0x1
+ lsls r1, r0
+ adds r0, r4, 0
+ bl sub_80E2C8C
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E2C88: .4byte gUnknown_03004B00
+ thumb_func_end sub_80E2C60
+
+ thumb_func_start sub_80E2C8C
+sub_80E2C8C: @ 80E2C8C
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r3, _080E2CC4
+ lsls r2, r0, 2
+ adds r2, r0
+ lsls r2, 3
+ adds r2, r3
+ strh r1, [r2, 0x8]
+ lsrs r1, 16
+ strh r1, [r2, 0xA]
+ ldr r3, _080E2CC8
+ ldrh r1, [r3, 0x2]
+ strh r1, [r2, 0xC]
+ ldrh r1, [r3, 0x4]
+ strh r1, [r2, 0xE]
+ ldrh r1, [r3, 0x6]
+ strh r1, [r2, 0x10]
+ ldrh r1, [r3, 0x8]
+ strh r1, [r2, 0x12]
+ ldrh r1, [r3, 0x4]
+ strh r1, [r2, 0x1C]
+ ldr r1, _080E2CCC
+ str r1, [r2]
+ bl _call_via_r1
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E2CC4: .4byte gTasks
+_080E2CC8: .4byte gUnknown_03004B00
+_080E2CCC: .4byte sub_80E2CD0
+ thumb_func_end sub_80E2C8C
+
+ thumb_func_start sub_80E2CD0
+sub_80E2CD0: @ 80E2CD0
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ lsls r0, 24
+ lsrs r7, r0, 24
+ movs r6, 0
+ ldr r2, _080E2D50
+ lsls r5, r7, 2
+ adds r0, r5, r7
+ lsls r0, 3
+ adds r3, r0, r2
+ ldrh r0, [r3, 0x1A]
+ mov r8, r0
+ movs r4, 0x1A
+ ldrsh r1, [r3, r4]
+ movs r4, 0xC
+ ldrsh r0, [r3, r4]
+ mov r9, r2
+ cmp r1, r0
+ bne _080E2D66
+ strh r6, [r3, 0x1A]
+ movs r0, 0x8
+ ldrsh r4, [r3, r0]
+ movs r1, 0xA
+ ldrsh r0, [r3, r1]
+ lsls r0, 16
+ orrs r4, r0
+ mov r8, r5
+ cmp r4, 0
+ beq _080E2D32
+ adds r5, r3, 0
+_080E2D10:
+ movs r0, 0x1
+ ands r0, r4
+ cmp r0, 0
+ beq _080E2D24
+ ldrb r2, [r5, 0x1C]
+ ldrh r3, [r5, 0x12]
+ adds r0, r6, 0
+ movs r1, 0x10
+ bl BlendPalette
+_080E2D24:
+ adds r0, r6, 0
+ adds r0, 0x10
+ lsls r0, 16
+ lsrs r6, r0, 16
+ lsrs r4, 1
+ cmp r4, 0
+ bne _080E2D10
+_080E2D32:
+ mov r4, r8
+ adds r0, r4, r7
+ lsls r0, 3
+ mov r1, r9
+ adds r2, r0, r1
+ ldrh r0, [r2, 0x1C]
+ movs r4, 0x1C
+ ldrsh r3, [r2, r4]
+ movs r4, 0x10
+ ldrsh r1, [r2, r4]
+ cmp r3, r1
+ bge _080E2D54
+ adds r0, 0x1
+ strh r0, [r2, 0x1C]
+ b _080E2D6C
+ .align 2, 0
+_080E2D50: .4byte gTasks
+_080E2D54:
+ cmp r3, r1
+ ble _080E2D5E
+ subs r0, 0x1
+ strh r0, [r2, 0x1C]
+ b _080E2D6C
+_080E2D5E:
+ adds r0, r7, 0
+ bl move_anim_task_del
+ b _080E2D6C
+_080E2D66:
+ mov r0, r8
+ adds r0, 0x1
+ strh r0, [r3, 0x1A]
+_080E2D6C:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80E2CD0
+
+ thumb_func_start sub_80E2D78
+sub_80E2D78: @ 80E2D78
+ push {r4,r5,lr}
+ sub sp, 0x4
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ ldr r4, _080E2DAC
+ ldrb r0, [r4]
+ ldrb r1, [r4, 0x2]
+ ldrb r2, [r4, 0x4]
+ ldrb r3, [r4, 0x6]
+ ldrb r4, [r4, 0x8]
+ str r4, [sp]
+ bl BeginHardwarePaletteFade
+ ldr r1, _080E2DB0
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080E2DB4
+ str r1, [r0]
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E2DAC: .4byte gUnknown_03004B00
+_080E2DB0: .4byte gTasks
+_080E2DB4: .4byte sub_80E2DB8
+ thumb_func_end sub_80E2D78
+
+ thumb_func_start sub_80E2DB8
+sub_80E2DB8: @ 80E2DB8
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r0, _080E2DD4
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080E2DD0
+ adds r0, r2, 0
+ bl move_anim_task_del
+_080E2DD0:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E2DD4: .4byte gPaletteFade
+ thumb_func_end sub_80E2DB8
+
+ thumb_func_start sub_80E2DD8
+sub_80E2DD8: @ 80E2DD8
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _080E2E04
+ adds r1, r0
+ ldr r2, _080E2E08
+ ldrh r0, [r2]
+ movs r3, 0
+ strh r0, [r1, 0x8]
+ strh r3, [r1, 0xA]
+ ldrh r0, [r2, 0x2]
+ strh r0, [r1, 0xC]
+ ldrh r0, [r2, 0x4]
+ strh r0, [r1, 0xE]
+ ldrh r0, [r2, 0x6]
+ strh r0, [r1, 0x10]
+ strh r3, [r1, 0x12]
+ ldr r0, _080E2E0C
+ str r0, [r1]
+ bx lr
+ .align 2, 0
+_080E2E04: .4byte gTasks
+_080E2E08: .4byte gUnknown_03004B00
+_080E2E0C: .4byte sub_80E2E10
+ thumb_func_end sub_80E2DD8
+
+ thumb_func_start sub_80E2E10
+sub_80E2E10: @ 80E2E10
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r2, r5, 0
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, _080E2E3C
+ adds r4, r0, r1
+ movs r1, 0x10
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080E2ED4
+ ldrh r1, [r4, 0xA]
+ movs r2, 0xA
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ beq _080E2E40
+ subs r0, r1, 0x1
+ strh r0, [r4, 0xA]
+ b _080E2EE2
+ .align 2, 0
+_080E2E3C: .4byte gTasks
+_080E2E40:
+ ldrb r0, [r4, 0x8]
+ bl duplicate_obj_of_side_rel2move_in_transparent_mode
+ strh r0, [r4, 0x14]
+ lsls r0, 16
+ cmp r0, 0
+ blt _080E2EBE
+ ldr r6, _080E2ECC
+ movs r1, 0x14
+ ldrsh r0, [r4, r1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r3, r1, r6
+ movs r2, 0x8
+ ldrsh r0, [r4, r2]
+ movs r2, 0x2
+ cmp r0, 0
+ beq _080E2E68
+ movs r2, 0x1
+_080E2E68:
+ lsls r2, 2
+ ldrb r1, [r3, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r1
+ orrs r0, r2
+ strb r0, [r3, 0x5]
+ movs r0, 0x14
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ ldrh r1, [r4, 0xE]
+ strh r1, [r0, 0x2E]
+ movs r2, 0x14
+ ldrsh r1, [r4, r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ strh r5, [r0, 0x30]
+ movs r0, 0x14
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ movs r1, 0x5
+ strh r1, [r0, 0x32]
+ movs r2, 0x14
+ ldrsh r1, [r4, r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r6, 0
+ adds r1, 0x1C
+ adds r0, r1
+ ldr r1, _080E2ED0
+ str r1, [r0]
+ ldrh r0, [r4, 0x12]
+ adds r0, 0x1
+ strh r0, [r4, 0x12]
+_080E2EBE:
+ ldrh r0, [r4, 0x10]
+ subs r0, 0x1
+ strh r0, [r4, 0x10]
+ ldrh r0, [r4, 0xC]
+ strh r0, [r4, 0xA]
+ b _080E2EE2
+ .align 2, 0
+_080E2ECC: .4byte gSprites
+_080E2ED0: .4byte sub_80E2EE8
+_080E2ED4:
+ movs r1, 0x12
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080E2EE2
+ adds r0, r2, 0
+ bl move_anim_task_del
+_080E2EE2:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80E2E10
+
+ thumb_func_start sub_80E2EE8
+sub_80E2EE8: @ 80E2EE8
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r1, [r4, 0x2E]
+ movs r2, 0x2E
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ beq _080E2EFC
+ subs r0, r1, 0x1
+ strh r0, [r4, 0x2E]
+ b _080E2F20
+_080E2EFC:
+ ldr r3, _080E2F28
+ movs r0, 0x32
+ ldrsh r1, [r4, r0]
+ lsls r1, 1
+ movs r0, 0x30
+ ldrsh r2, [r4, r0]
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r1, r0
+ adds r3, 0x8
+ adds r1, r3
+ ldrh r0, [r1]
+ subs r0, 0x1
+ strh r0, [r1]
+ adds r0, r4, 0
+ bl obj_delete_but_dont_free_vram
+_080E2F20:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E2F28: .4byte gTasks
+ thumb_func_end sub_80E2EE8
+
+ thumb_func_start sub_80E2F2C
+sub_80E2F2C: @ 80E2F2C
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x10
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ movs r7, 0
+ ldr r0, _080E3038
+ strh r7, [r0]
+ ldr r0, _080E303C
+ strh r7, [r0]
+ ldr r1, _080E3040
+ ldr r2, _080E3044
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r3, _080E3048
+ adds r0, r3, 0
+ strh r0, [r1]
+ movs r2, 0x80
+ lsls r2, 19
+ ldrh r0, [r2]
+ movs r3, 0x80
+ lsls r3, 8
+ adds r1, r3, 0
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r1, _080E304C
+ ldr r2, _080E3050
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r3, _080E3054
+ adds r0, r3, 0
+ strh r0, [r1]
+ ldr r4, _080E3058
+ ldrb r1, [r4]
+ movs r0, 0x4
+ negs r0, r0
+ mov r8, r0
+ ands r0, r1
+ strb r0, [r4]
+ ldrb r1, [r4, 0x1]
+ movs r0, 0x3F
+ ands r0, r1
+ strb r0, [r4, 0x1]
+ ldrb r0, [r4, 0x1]
+ movs r1, 0x20
+ orrs r0, r1
+ strb r0, [r4, 0x1]
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080E2FAC
+ ldrb r0, [r4]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r0
+ movs r0, 0x4
+ orrs r1, r0
+ strb r1, [r4]
+_080E2FAC:
+ bl battle_type_is_double
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E3028
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080E3028
+ ldr r5, _080E305C
+ ldrb r0, [r5]
+ bl battle_get_per_side_status
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x3
+ beq _080E2FDC
+ ldrb r0, [r5]
+ bl battle_get_per_side_status
+ lsls r0, 24
+ cmp r0, 0
+ bne _080E3028
+_080E2FDC:
+ ldrb r0, [r5]
+ movs r6, 0x2
+ eors r0, r6
+ bl b_side_obj__get_some_boolean
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080E3028
+ ldr r3, _080E3060
+ ldr r1, _080E3064
+ ldrb r0, [r5]
+ eors r0, r6
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r2, r3
+ ldrb r3, [r2, 0x5]
+ lsls r1, r3, 28
+ lsrs r1, 30
+ subs r1, 0x1
+ movs r0, 0x3
+ ands r1, r0
+ lsls r1, 2
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r3
+ orrs r0, r1
+ strb r0, [r2, 0x5]
+ ldrb r1, [r4]
+ mov r0, r8
+ ands r0, r1
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r4]
+ movs r7, 0x1
+_080E3028:
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E306C
+ ldr r0, _080E3068
+ ldrh r4, [r0]
+ b _080E30B4
+ .align 2, 0
+_080E3038: .4byte gUnknown_030042C4
+_080E303C: .4byte gUnknown_03004240
+_080E3040: .4byte REG_WININ
+_080E3044: .4byte 0x00003f3f
+_080E3048: .4byte 0x00003f3d
+_080E304C: .4byte REG_BLDCNT
+_080E3050: .4byte 0x00003f42
+_080E3054: .4byte 0x00000c08
+_080E3058: .4byte REG_BG1CNT
+_080E305C: .4byte gUnknown_0202F7C8
+_080E3060: .4byte gSprites
+_080E3064: .4byte gUnknown_02024BE0
+_080E3068: .4byte 0x02019348
+_080E306C:
+ ldr r4, _080E308C
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E3098
+ ldr r1, _080E3090
+ ldrb r0, [r4]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _080E3094
+ b _080E30A8
+ .align 2, 0
+_080E308C: .4byte gUnknown_0202F7C8
+_080E3090: .4byte gUnknown_02024A6A
+_080E3094: .4byte gEnemyParty
+_080E3098:
+ ldr r1, _080E3160
+ ldrb r0, [r4]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _080E3164
+_080E30A8:
+ adds r0, r1
+ movs r1, 0xB
+ bl GetMonData
+ lsls r0, 16
+ lsrs r4, r0, 16
+_080E30B4:
+ movs r0, 0
+ bl obj_id_for_side_relative_to_move
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, _080E3168
+ ldrb r0, [r0]
+ adds r1, r5, 0
+ adds r2, r4, 0
+ bl sub_807A4A0
+ lsls r0, 24
+ lsrs r4, r0, 24
+ mov r0, sp
+ bl sub_8078914
+ ldr r1, [sp, 0x4]
+ movs r0, 0
+ str r0, [sp, 0xC]
+ ldr r2, _080E316C
+ add r0, sp, 0xC
+ str r0, [r2]
+ str r1, [r2, 0x4]
+ ldr r0, _080E3170
+ str r0, [r2, 0x8]
+ ldr r0, [r2, 0x8]
+ ldr r0, _080E3174
+ bl LZDecompressVram
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E3106
+ mov r0, sp
+ ldrb r0, [r0, 0x8]
+ ldr r1, [sp, 0x4]
+ movs r2, 0
+ movs r3, 0
+ bl sub_80763FC
+_080E3106:
+ ldr r0, _080E3178
+ ldr r1, [sp]
+ bl LZDecompressVram
+ ldr r0, _080E317C
+ mov r1, sp
+ ldrb r1, [r1, 0x8]
+ lsls r1, 4
+ adds r1, 0x1
+ movs r2, 0x2
+ bl LoadPalette
+ ldr r2, _080E3180
+ ldr r0, _080E3184
+ lsls r1, r5, 4
+ adds r1, r5
+ lsls r1, 2
+ adds r1, r0
+ ldrh r0, [r1, 0x20]
+ negs r0, r0
+ adds r0, 0x20
+ strh r0, [r2]
+ ldr r2, _080E3188
+ ldrh r0, [r1, 0x22]
+ negs r0, r0
+ adds r0, 0x20
+ strh r0, [r2]
+ ldr r1, _080E318C
+ mov r2, r9
+ lsls r0, r2, 2
+ add r0, r9
+ lsls r0, 3
+ adds r0, r1
+ strh r4, [r0, 0x8]
+ strh r7, [r0, 0x14]
+ ldr r1, _080E3190
+ str r1, [r0]
+ add sp, 0x10
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E3160: .4byte gUnknown_02024A6A
+_080E3164: .4byte gPlayerParty
+_080E3168: .4byte gUnknown_0202F7C8
+_080E316C: .4byte 0x040000d4
+_080E3170: .4byte 0x85000400
+_080E3174: .4byte gUnknown_08D20A30
+_080E3178: .4byte gUnknown_08D20A14
+_080E317C: .4byte gUnknown_083DB568
+_080E3180: .4byte gUnknown_030042C0
+_080E3184: .4byte gSprites
+_080E3188: .4byte gUnknown_030041B4
+_080E318C: .4byte gTasks
+_080E3190: .4byte sub_80E3194
+ thumb_func_end sub_80E2F2C
+
+ thumb_func_start sub_80E3194
+sub_80E3194: @ 80E3194
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x10
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r1, _080E32AC
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r4, r0, r1
+ ldrh r0, [r4, 0x1C]
+ adds r0, 0x4
+ movs r5, 0
+ strh r0, [r4, 0x1C]
+ ldr r7, _080E32B0
+ ldrh r2, [r7]
+ subs r1, r2, 0x4
+ strh r1, [r7]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x40
+ bne _080E329E
+ strh r5, [r4, 0x1C]
+ adds r0, r2, 0
+ adds r0, 0x3C
+ strh r0, [r7]
+ ldrh r0, [r4, 0x1E]
+ adds r0, 0x1
+ strh r0, [r4, 0x1E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ bne _080E329E
+ movs r0, 0
+ bl sub_8076464
+ ldr r0, _080E32B4
+ strh r5, [r0]
+ ldr r0, _080E32B8
+ strh r5, [r0]
+ ldr r0, _080E32BC
+ ldr r2, _080E32C0
+ adds r1, r2, 0
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080E3208
+ ldr r2, _080E32C4
+ ldrb r1, [r2]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+_080E3208:
+ movs r2, 0x80
+ lsls r2, 19
+ ldrh r0, [r2]
+ movs r3, 0x80
+ lsls r3, 8
+ adds r1, r3, 0
+ eors r0, r1
+ strh r0, [r2]
+ ldr r0, _080E32C8
+ strh r5, [r0]
+ adds r0, 0x2
+ strh r5, [r0]
+ movs r0, 0
+ bl obj_id_for_side_relative_to_move
+ ldr r0, _080E32CC
+ mov r8, r0
+ movs r2, 0x8
+ ldrsh r1, [r4, r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ add r0, r8
+ bl DestroySprite
+ mov r0, sp
+ bl sub_8078914
+ ldr r2, [sp, 0x4]
+ str r5, [sp, 0xC]
+ ldr r1, _080E32D0
+ add r0, sp, 0xC
+ str r0, [r1]
+ str r2, [r1, 0x4]
+ ldr r0, _080E32D4
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ movs r3, 0x14
+ ldrsh r0, [r4, r3]
+ cmp r0, 0x1
+ bne _080E3288
+ ldr r2, _080E32D8
+ ldr r0, _080E32DC
+ ldrb r1, [r0]
+ movs r0, 0x2
+ eors r0, r1
+ adds r0, r2
+ ldrb r0, [r0]
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ add r2, r8
+ ldrb r3, [r2, 0x5]
+ lsls r1, r3, 28
+ lsrs r1, 30
+ adds r1, 0x1
+ movs r0, 0x3
+ ands r1, r0
+ lsls r1, 2
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r3
+ orrs r0, r1
+ strb r0, [r2, 0x5]
+_080E3288:
+ ldr r2, _080E32C4
+ ldrb r1, [r2, 0x1]
+ movs r0, 0x21
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2, 0x1]
+ movs r0, 0
+ strh r0, [r7]
+ adds r0, r6, 0
+ bl move_anim_task_del
+_080E329E:
+ add sp, 0x10
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E32AC: .4byte gTasks
+_080E32B0: .4byte gUnknown_030041B4
+_080E32B4: .4byte gUnknown_030042C4
+_080E32B8: .4byte gUnknown_03004240
+_080E32BC: .4byte REG_WININ
+_080E32C0: .4byte 0x00003f3f
+_080E32C4: .4byte REG_BG1CNT
+_080E32C8: .4byte REG_BLDCNT
+_080E32CC: .4byte gSprites
+_080E32D0: .4byte 0x040000d4
+_080E32D4: .4byte 0x85000200
+_080E32D8: .4byte gUnknown_02024BE0
+_080E32DC: .4byte gUnknown_0202F7C8
+ thumb_func_end sub_80E3194
+
+ thumb_func_start sub_80E32E0
+sub_80E32E0: @ 80E32E0
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ movs r2, 0
+ ldr r0, _080E332C
+ mov r12, r0
+ ldr r1, _080E3330
+ mov r8, r1
+ lsls r1, r3, 2
+ adds r0, r1, r3
+ lsls r4, r0, 3
+ mov r7, r12
+ adds r7, 0x8
+ adds r5, r1, 0
+ ldr r6, _080E3334
+_080E3302:
+ lsls r0, r2, 1
+ adds r1, r0, r4
+ adds r1, r7
+ adds r0, r6
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x7
+ bls _080E3302
+ adds r0, r5, r3
+ lsls r0, 3
+ add r0, r12
+ mov r1, r8
+ str r1, [r0]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E332C: .4byte gTasks
+_080E3330: .4byte sub_80E3338
+_080E3334: .4byte gUnknown_03004B00
+ thumb_func_end sub_80E32E0
+
+ thumb_func_start sub_80E3338
+sub_80E3338: @ 80E3338
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x24
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ movs r0, 0
+ str r0, [sp, 0x1C]
+ movs r1, 0
+ str r1, [sp, 0x20]
+ add r7, sp, 0xC
+ ldr r2, _080E3388
+ mov r3, r9
+ lsls r1, r3, 2
+ adds r0, r1, r3
+ lsls r0, 3
+ mov r10, r1
+ adds r1, r2, 0
+ adds r1, 0x8
+ adds r1, r0, r1
+ adds r3, r7, 0
+ movs r4, 0
+ movs r2, 0x7
+_080E336C:
+ ldrh r0, [r1]
+ strh r0, [r3]
+ strh r4, [r1]
+ adds r1, 0x2
+ adds r3, 0x2
+ subs r2, 0x1
+ cmp r2, 0
+ bge _080E336C
+ movs r1, 0x4
+ ldrsh r0, [r7, r1]
+ cmp r0, 0
+ bne _080E3390
+ ldr r0, _080E338C
+ b _080E3392
+ .align 2, 0
+_080E3388: .4byte gTasks
+_080E338C: .4byte gUnknown_0202F7C8
+_080E3390:
+ ldr r0, _080E34B4
+_080E3392:
+ ldrb r5, [r0]
+ movs r0, 0x2
+ mov r8, r5
+ mov r2, r8
+ eors r2, r0
+ mov r8, r2
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080E33BC
+ movs r3, 0x6
+ ldrsh r0, [r7, r3]
+ cmp r0, 0
+ beq _080E33C0
+ mov r0, r8
+ bl b_side_obj__get_some_boolean
+ lsls r0, 24
+ cmp r0, 0
+ bne _080E33C0
+_080E33BC:
+ movs r0, 0
+ strh r0, [r7, 0x6]
+_080E33C0:
+ ldr r0, _080E34B8
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, _080E34BC
+ strh r1, [r0]
+ ldr r1, _080E34C0
+ ldr r2, _080E34C4
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r3, _080E34C8
+ adds r0, r3, 0
+ strh r0, [r1]
+ movs r2, 0x80
+ lsls r2, 19
+ ldrh r0, [r2]
+ movs r3, 0x80
+ lsls r3, 8
+ adds r1, r3, 0
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r1, _080E34CC
+ ldr r2, _080E34D0
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r3, 0x80
+ lsls r3, 5
+ adds r0, r3, 0
+ strh r0, [r1]
+ ldr r4, _080E34D4
+ ldrb r1, [r4]
+ movs r6, 0x4
+ negs r6, r6
+ adds r0, r6, 0
+ ands r0, r1
+ strb r0, [r4]
+ ldrb r1, [r4, 0x1]
+ movs r0, 0x3F
+ ands r0, r1
+ strb r0, [r4, 0x1]
+ ldrb r0, [r4, 0x1]
+ movs r1, 0x20
+ orrs r0, r1
+ strb r0, [r4, 0x1]
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080E3432
+ ldrb r0, [r4]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r0
+ movs r0, 0x4
+ orrs r1, r0
+ strb r1, [r4]
+_080E3432:
+ bl battle_type_is_double
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E34A4
+ movs r1, 0x6
+ ldrsh r0, [r7, r1]
+ cmp r0, 0
+ bne _080E34A4
+ adds r0, r5, 0
+ bl battle_get_per_side_status
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x3
+ beq _080E345E
+ adds r0, r5, 0
+ bl battle_get_per_side_status
+ lsls r0, 24
+ cmp r0, 0
+ bne _080E34A4
+_080E345E:
+ mov r0, r8
+ bl b_side_obj__get_some_boolean
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080E34A4
+ ldr r1, _080E34D8
+ ldr r0, _080E34DC
+ add r0, r8
+ ldrb r0, [r0]
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r2, r1
+ ldrb r3, [r2, 0x5]
+ lsls r1, r3, 28
+ lsrs r1, 30
+ subs r1, 0x1
+ movs r0, 0x3
+ ands r1, r0
+ lsls r1, 2
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r3
+ orrs r0, r1
+ strb r0, [r2, 0x5]
+ ldrb r1, [r4]
+ adds r0, r6, 0
+ ands r0, r1
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r4]
+ movs r2, 0x1
+ str r2, [sp, 0x20]
+_080E34A4:
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E34E4
+ ldr r0, _080E34E0
+ ldrh r4, [r0]
+ b _080E3522
+ .align 2, 0
+_080E34B4: .4byte gUnknown_0202F7C9
+_080E34B8: .4byte gUnknown_030042C4
+_080E34BC: .4byte gUnknown_03004240
+_080E34C0: .4byte REG_WININ
+_080E34C4: .4byte 0x00003f3f
+_080E34C8: .4byte 0x00003f3d
+_080E34CC: .4byte REG_BLDCNT
+_080E34D0: .4byte 0x00003f42
+_080E34D4: .4byte REG_BG1CNT
+_080E34D8: .4byte gSprites
+_080E34DC: .4byte gUnknown_02024BE0
+_080E34E0: .4byte 0x02019348
+_080E34E4:
+ adds r0, r5, 0
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E3508
+ ldr r1, _080E3500
+ lsls r0, r5, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _080E3504
+ b _080E3516
+ .align 2, 0
+_080E3500: .4byte gUnknown_02024A6A
+_080E3504: .4byte gEnemyParty
+_080E3508:
+ ldr r1, _080E3568
+ lsls r0, r5, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _080E356C
+_080E3516:
+ adds r0, r1
+ movs r1, 0xB
+ bl GetMonData
+ lsls r0, 16
+ lsrs r4, r0, 16
+_080E3522:
+ ldr r6, _080E3570
+ adds r0, r5, r6
+ ldrb r1, [r0]
+ adds r0, r5, 0
+ adds r2, r4, 0
+ bl sub_807A4A0
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r3, 0x6
+ ldrsh r0, [r7, r3]
+ cmp r0, 0
+ beq _080E3550
+ mov r1, r8
+ adds r0, r1, r6
+ ldrb r1, [r0]
+ mov r0, r8
+ adds r2, r4, 0
+ bl sub_807A4A0
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x1C]
+_080E3550:
+ mov r0, sp
+ bl sub_8078914
+ movs r2, 0
+ ldrsh r0, [r7, r2]
+ cmp r0, 0
+ bne _080E3578
+ ldr r0, _080E3574
+ ldr r1, [sp, 0x4]
+ bl LZDecompressVram
+ b _080E3580
+ .align 2, 0
+_080E3568: .4byte gUnknown_02024A6A
+_080E356C: .4byte gPlayerParty
+_080E3570: .4byte gUnknown_02024BE0
+_080E3574: .4byte gBattleStatMask1_Tilemap
+_080E3578:
+ ldr r0, _080E35B0
+ ldr r1, [sp, 0x4]
+ bl LZDecompressVram
+_080E3580:
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E3598
+ mov r0, sp
+ ldrb r0, [r0, 0x8]
+ ldr r1, [sp, 0x4]
+ movs r2, 0
+ movs r3, 0
+ bl sub_80763FC
+_080E3598:
+ ldr r0, _080E35B4
+ ldr r1, [sp]
+ bl LZDecompressVram
+ ldrh r0, [r7, 0x2]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0
+ bne _080E35BC
+ ldr r0, _080E35B8
+ b _080E35FE
+ .align 2, 0
+_080E35B0: .4byte gBattleStatMask2_Tilemap
+_080E35B4: .4byte gBattleStatMask_Gfx
+_080E35B8: .4byte gBattleStatMask2_Pal
+_080E35BC:
+ cmp r0, 0x1
+ bne _080E35C8
+ ldr r0, _080E35C4
+ b _080E35FE
+ .align 2, 0
+_080E35C4: .4byte gBattleStatMask1_Pal
+_080E35C8:
+ cmp r0, 0x2
+ bne _080E35D4
+ ldr r0, _080E35D0
+ b _080E35FE
+ .align 2, 0
+_080E35D0: .4byte gBattleStatMask3_Pal
+_080E35D4:
+ cmp r0, 0x3
+ bne _080E35E0
+ ldr r0, _080E35DC
+ b _080E35FE
+ .align 2, 0
+_080E35DC: .4byte gBattleStatMask4_Pal
+_080E35E0:
+ cmp r0, 0x4
+ bne _080E35EC
+ ldr r0, _080E35E8
+ b _080E35FE
+ .align 2, 0
+_080E35E8: .4byte gBattleStatMask6_Pal
+_080E35EC:
+ cmp r0, 0x5
+ bne _080E35F8
+ ldr r0, _080E35F4
+ b _080E35FE
+ .align 2, 0
+_080E35F4: .4byte gBattleStatMask7_Pal
+_080E35F8:
+ cmp r0, 0x6
+ bne _080E3610
+ ldr r0, _080E360C
+_080E35FE:
+ mov r1, sp
+ ldrb r1, [r1, 0x8]
+ lsls r1, 4
+ movs r2, 0x20
+ bl LoadCompressedPalette
+ b _080E361E
+ .align 2, 0
+_080E360C: .4byte gBattleStatMask8_Pal
+_080E3610:
+ ldr r0, _080E3644
+ mov r1, sp
+ ldrb r1, [r1, 0x8]
+ lsls r1, 4
+ movs r2, 0x20
+ bl LoadCompressedPalette
+_080E361E:
+ ldr r2, _080E3648
+ movs r1, 0
+ strh r1, [r2]
+ ldr r0, _080E364C
+ strh r1, [r0]
+ movs r3, 0
+ ldrsh r0, [r7, r3]
+ cmp r0, 0x1
+ bne _080E3658
+ movs r0, 0x40
+ strh r0, [r2]
+ ldr r2, _080E3650
+ mov r0, r10
+ add r0, r9
+ lsls r0, 3
+ adds r0, r2
+ ldr r1, _080E3654
+ strh r1, [r0, 0xA]
+ b _080E3668
+ .align 2, 0
+_080E3644: .4byte gBattleStatMask5_Pal
+_080E3648: .4byte gUnknown_030042C0
+_080E364C: .4byte gUnknown_030041B4
+_080E3650: .4byte gTasks
+_080E3654: .4byte 0x0000fffd
+_080E3658:
+ ldr r0, _080E3680
+ mov r1, r10
+ add r1, r9
+ lsls r1, 3
+ adds r1, r0
+ movs r2, 0x3
+ strh r2, [r1, 0xA]
+ adds r2, r0, 0
+_080E3668:
+ movs r1, 0x8
+ ldrsh r0, [r7, r1]
+ cmp r0, 0
+ bne _080E3684
+ mov r0, r10
+ add r0, r9
+ lsls r0, 3
+ adds r0, r2
+ movs r1, 0xA
+ strh r1, [r0, 0x10]
+ movs r1, 0x14
+ b _080E3692
+ .align 2, 0
+_080E3680: .4byte gTasks
+_080E3684:
+ mov r0, r10
+ add r0, r9
+ lsls r0, 3
+ adds r0, r2
+ movs r1, 0xD
+ strh r1, [r0, 0x10]
+ movs r1, 0x1E
+_080E3692:
+ strh r1, [r0, 0x12]
+ mov r1, r10
+ add r1, r9
+ lsls r1, 3
+ adds r1, r2
+ strh r5, [r1, 0x8]
+ ldrh r0, [r7, 0x6]
+ strh r0, [r1, 0xC]
+ mov r2, sp
+ ldrh r2, [r2, 0x1C]
+ strh r2, [r1, 0xE]
+ mov r3, sp
+ ldrh r3, [r3, 0x20]
+ strh r3, [r1, 0x14]
+ ldr r0, _080E36D8
+ add r0, r8
+ ldrb r0, [r0]
+ strh r0, [r1, 0x16]
+ ldr r0, _080E36DC
+ str r0, [r1]
+ movs r1, 0
+ ldrsh r0, [r7, r1]
+ cmp r0, 0
+ bne _080E36E0
+ movs r0, 0x40
+ negs r0, r0
+ bl sub_8077094
+ adds r1, r0, 0
+ lsls r1, 24
+ asrs r1, 24
+ movs r0, 0xEF
+ bl PlaySE12WithPanning
+ b _080E36F4
+ .align 2, 0
+_080E36D8: .4byte gUnknown_02024BE0
+_080E36DC: .4byte sub_80E3704
+_080E36E0:
+ movs r0, 0x40
+ negs r0, r0
+ bl sub_8077094
+ adds r1, r0, 0
+ lsls r1, 24
+ asrs r1, 24
+ movs r0, 0xF5
+ bl PlaySE12WithPanning
+_080E36F4:
+ add sp, 0x24
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80E3338
+
+ thumb_func_start sub_80E3704
+sub_80E3704: @ 80E3704
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r2, _080E3730
+ ldr r1, _080E3734
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r4, r0, r1
+ ldrh r0, [r4, 0xA]
+ ldrh r1, [r2]
+ adds r0, r1
+ strh r0, [r2]
+ movs r3, 0x26
+ ldrsh r2, [r4, r3]
+ cmp r2, 0x1
+ beq _080E3774
+ cmp r2, 0x1
+ bgt _080E3738
+ cmp r2, 0
+ beq _080E373E
+ b _080E3866
+ .align 2, 0
+_080E3730: .4byte gUnknown_030041B4
+_080E3734: .4byte gTasks
+_080E3738:
+ cmp r2, 0x2
+ beq _080E378E
+ b _080E3866
+_080E373E:
+ ldrh r0, [r4, 0x1E]
+ adds r1, r0, 0x1
+ strh r1, [r4, 0x1E]
+ lsls r0, 16
+ cmp r0, 0
+ bgt _080E374C
+ b _080E3866
+_080E374C:
+ strh r2, [r4, 0x1E]
+ ldrh r1, [r4, 0x20]
+ adds r1, 0x1
+ strh r1, [r4, 0x20]
+ ldr r2, _080E3770
+ movs r0, 0x10
+ subs r0, r1
+ lsls r0, 8
+ orrs r1, r0
+ strh r1, [r2]
+ movs r0, 0x20
+ ldrsh r1, [r4, r0]
+ movs r2, 0x10
+ ldrsh r0, [r4, r2]
+ cmp r1, r0
+ bne _080E3866
+ b _080E3786
+ .align 2, 0
+_080E3770: .4byte REG_BLDALPHA
+_080E3774:
+ ldrh r0, [r4, 0x1C]
+ adds r0, 0x1
+ strh r0, [r4, 0x1C]
+ lsls r0, 16
+ asrs r0, 16
+ movs r3, 0x12
+ ldrsh r1, [r4, r3]
+ cmp r0, r1
+ bne _080E3866
+_080E3786:
+ ldrh r0, [r4, 0x26]
+ adds r0, 0x1
+ strh r0, [r4, 0x26]
+ b _080E3866
+_080E378E:
+ ldrh r0, [r4, 0x1E]
+ adds r1, r0, 0x1
+ strh r1, [r4, 0x1E]
+ lsls r0, 16
+ cmp r0, 0
+ ble _080E3866
+ movs r0, 0
+ strh r0, [r4, 0x1E]
+ ldrh r1, [r4, 0x20]
+ subs r1, 0x1
+ strh r1, [r4, 0x20]
+ ldr r7, _080E386C
+ movs r0, 0x10
+ subs r0, r1
+ lsls r0, 8
+ orrs r1, r0
+ strh r1, [r7]
+ movs r0, 0x20
+ ldrsh r5, [r4, r0]
+ cmp r5, 0
+ bne _080E3866
+ movs r0, 0
+ bl sub_8076464
+ ldr r0, _080E3870
+ strh r5, [r0]
+ ldr r0, _080E3874
+ strh r5, [r0]
+ ldr r0, _080E3878
+ ldr r2, _080E387C
+ adds r1, r2, 0
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080E37E8
+ ldr r2, _080E3880
+ ldrb r1, [r2]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+_080E37E8:
+ movs r2, 0x80
+ lsls r2, 19
+ ldrh r0, [r2]
+ movs r3, 0x80
+ lsls r3, 8
+ adds r1, r3, 0
+ eors r0, r1
+ strh r0, [r2]
+ ldr r0, _080E3884
+ strh r5, [r0]
+ strh r5, [r7]
+ movs r0, 0x8
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r5, _080E3888
+ adds r0, r5
+ bl DestroySprite
+ movs r1, 0xC
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080E3828
+ movs r2, 0xE
+ ldrsh r1, [r4, r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ bl DestroySprite
+_080E3828:
+ movs r3, 0x14
+ ldrsh r0, [r4, r3]
+ cmp r0, 0x1
+ bne _080E3854
+ movs r1, 0x16
+ ldrsh r0, [r4, r1]
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r2, r5
+ ldrb r3, [r2, 0x5]
+ lsls r1, r3, 28
+ lsrs r1, 30
+ adds r1, 0x1
+ movs r0, 0x3
+ ands r1, r0
+ lsls r1, 2
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r3
+ orrs r0, r1
+ strb r0, [r2, 0x5]
+_080E3854:
+ ldr r2, _080E3880
+ ldrb r1, [r2, 0x1]
+ movs r0, 0x21
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2, 0x1]
+ adds r0, r6, 0
+ bl move_anim_task_del
+_080E3866:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E386C: .4byte REG_BLDALPHA
+_080E3870: .4byte gUnknown_030042C4
+_080E3874: .4byte gUnknown_03004240
+_080E3878: .4byte REG_WININ
+_080E387C: .4byte 0x00003f3f
+_080E3880: .4byte REG_BG1CNT
+_080E3884: .4byte REG_BLDCNT
+_080E3888: .4byte gSprites
+ thumb_func_end sub_80E3704
+
+ thumb_func_start sub_80E388C
+sub_80E388C: @ 80E388C
+ push {r4-r6,lr}
+ sub sp, 0xC
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ movs r0, 0x1
+ movs r1, 0x1
+ movs r2, 0x1
+ movs r3, 0x1
+ bl sub_80792C0
+ adds r6, r0, 0
+ movs r1, 0
+ bl sub_80E39BC
+ ldr r0, _080E38EC
+ lsls r4, r5, 2
+ adds r4, r5
+ lsls r4, 3
+ adds r4, r0
+ lsrs r0, r6, 16
+ movs r5, 0
+ strh r0, [r4, 0x24]
+ str r5, [sp]
+ str r5, [sp, 0x4]
+ str r5, [sp, 0x8]
+ movs r0, 0x1
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl sub_80791A8
+ adds r6, r0, 0
+ ldr r1, _080E38F0
+ ands r6, r1
+ adds r0, r6, 0
+ bl sub_80E39BC
+ strh r6, [r4, 0x26]
+ strh r5, [r4, 0x8]
+ strh r5, [r4, 0xA]
+ ldr r0, _080E38F4
+ str r0, [r4]
+ add sp, 0xC
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E38EC: .4byte gTasks
+_080E38F0: .4byte 0x0000ffff
+_080E38F4: .4byte sub_80E38F8
+ thumb_func_end sub_80E388C
+
+ thumb_func_start sub_80E38F8
+sub_80E38F8: @ 80E38F8
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ ldr r1, _080E391C
+ adds r4, r0, r1
+ movs r0, 0x8
+ ldrsh r1, [r4, r0]
+ cmp r1, 0x1
+ beq _080E393C
+ cmp r1, 0x1
+ bgt _080E3920
+ cmp r1, 0
+ beq _080E3926
+ b _080E39B6
+ .align 2, 0
+_080E391C: .4byte gTasks
+_080E3920:
+ cmp r1, 0x2
+ beq _080E39B0
+ b _080E39B6
+_080E3926:
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x6
+ ble _080E39B6
+ strh r1, [r4, 0xA]
+ movs r0, 0x10
+ strh r0, [r4, 0xC]
+ b _080E39A4
+_080E393C:
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080E39B6
+ movs r0, 0
+ strh r0, [r4, 0xA]
+ ldrh r0, [r4, 0xC]
+ subs r0, 0x1
+ strh r0, [r4, 0xC]
+ movs r5, 0
+ movs r6, 0x1
+_080E3958:
+ movs r1, 0x26
+ ldrsh r0, [r4, r1]
+ asrs r0, r5
+ ands r0, r6
+ cmp r0, 0
+ beq _080E3972
+ lsls r0, r5, 20
+ lsrs r0, 16
+ ldrb r2, [r4, 0xC]
+ movs r1, 0x10
+ ldr r3, _080E39AC
+ bl BlendPalette
+_080E3972:
+ movs r1, 0x24
+ ldrsh r0, [r4, r1]
+ asrs r0, r5
+ ands r0, r6
+ cmp r0, 0
+ beq _080E3992
+ lsls r0, r5, 20
+ movs r1, 0x80
+ lsls r1, 17
+ adds r0, r1
+ lsrs r0, 16
+ ldrb r2, [r4, 0xC]
+ movs r1, 0x10
+ movs r3, 0
+ bl BlendPalette
+_080E3992:
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0xF
+ bls _080E3958
+ movs r1, 0xC
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080E39B6
+_080E39A4:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _080E39B6
+ .align 2, 0
+_080E39AC: .4byte 0x0000ffff
+_080E39B0:
+ adds r0, r2, 0
+ bl move_anim_task_del
+_080E39B6:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80E38F8
+
+ thumb_func_start sub_80E39BC
+sub_80E39BC: @ 80E39BC
+ push {r4-r6,lr}
+ adds r3, r0, 0
+ lsls r1, 16
+ lsrs r6, r1, 16
+ movs r2, 0
+_080E39C6:
+ movs r0, 0x1
+ ands r0, r3
+ lsrs r4, r3, 1
+ adds r5, r2, 0x1
+ cmp r0, 0
+ beq _080E39F2
+ lsls r0, r2, 20
+ lsrs r2, r0, 16
+ adds r0, r2, 0
+ adds r0, 0x10
+ cmp r2, r0
+ bge _080E39F2
+ ldr r1, _080E3A04
+ adds r3, r0, 0
+_080E39E2:
+ lsls r0, r2, 1
+ adds r0, r1
+ strh r6, [r0]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, r3
+ blt _080E39E2
+_080E39F2:
+ adds r3, r4, 0
+ lsls r0, r5, 16
+ lsrs r2, r0, 16
+ cmp r2, 0x1F
+ bls _080E39C6
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E3A04: .4byte gPlttBufferFaded
+ thumb_func_end sub_80E39BC
+
+ thumb_func_start sub_80E3A08
+sub_80E3A08: @ 80E3A08
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r4, 0
+ movs r2, 0
+ ldr r0, _080E3A50
+ ldrb r3, [r0]
+ movs r5, 0x1
+_080E3A18:
+ cmp r3, r2
+ beq _080E3A26
+ adds r1, r2, 0
+ adds r1, 0x10
+ adds r0, r5, 0
+ lsls r0, r1
+ orrs r4, r0
+_080E3A26:
+ adds r2, 0x1
+ cmp r2, 0x3
+ bls _080E3A18
+ movs r2, 0x5
+ ldr r0, _080E3A54
+ adds r1, r0, 0
+ adds r1, 0x8
+_080E3A34:
+ ldrh r0, [r1]
+ strh r0, [r1, 0x2]
+ subs r1, 0x2
+ subs r2, 0x1
+ cmp r2, 0
+ bne _080E3A34
+ adds r0, r6, 0
+ adds r1, r4, 0
+ bl sub_80E2C8C
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E3A50: .4byte gUnknown_0202F7C8
+_080E3A54: .4byte gUnknown_03004B00
+ thumb_func_end sub_80E3A08
+
+ thumb_func_start sub_80E3A58
+sub_80E3A58: @ 80E3A58
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r0, 0
+ bl sub_80789D4
+ ldr r0, _080E3AC0
+ movs r1, 0x5
+ bl CreateTask
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r4, _080E3AC4
+ movs r1, 0x4
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080E3A94
+ ldr r0, _080E3AC8
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E3A94
+ ldrh r0, [r4]
+ negs r0, r0
+ strh r0, [r4]
+ ldrh r0, [r4, 0x2]
+ negs r0, r0
+ strh r0, [r4, 0x2]
+_080E3A94:
+ ldr r0, _080E3ACC
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ adds r1, r0
+ ldr r2, _080E3AC4
+ ldrh r0, [r2]
+ strh r0, [r1, 0xA]
+ ldrh r0, [r2, 0x2]
+ strh r0, [r1, 0xC]
+ ldrh r0, [r2, 0x6]
+ strh r0, [r1, 0xE]
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ adds r0, r6, 0
+ bl move_anim_task_del
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E3AC0: .4byte sub_80E3AD0
+_080E3AC4: .4byte gUnknown_03004B00
+_080E3AC8: .4byte gUnknown_0202F7C8
+_080E3ACC: .4byte gTasks
+ thumb_func_end sub_80E3A58
+
+ thumb_func_start sub_80E3AD0
+sub_80E3AD0: @ 80E3AD0
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, _080E3B3C
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ adds r1, r0
+ ldrh r3, [r1, 0xA]
+ ldrh r0, [r1, 0x1C]
+ adds r3, r0
+ movs r4, 0
+ mov r12, r4
+ strh r3, [r1, 0x1C]
+ ldrh r2, [r1, 0xC]
+ ldrh r7, [r1, 0x1E]
+ adds r2, r7
+ strh r2, [r1, 0x1E]
+ ldr r6, _080E3B40
+ lsls r0, r3, 16
+ asrs r0, 24
+ ldrh r4, [r6]
+ adds r0, r4
+ strh r0, [r6]
+ ldr r4, _080E3B44
+ lsls r0, r2, 16
+ asrs r0, 24
+ ldrh r7, [r4]
+ adds r0, r7
+ strh r0, [r4]
+ movs r0, 0xFF
+ ands r3, r0
+ strh r3, [r1, 0x1C]
+ ands r2, r0
+ strh r2, [r1, 0x1E]
+ ldr r0, _080E3B48
+ movs r3, 0xE
+ ldrsh r2, [r0, r3]
+ movs r7, 0xE
+ ldrsh r0, [r1, r7]
+ cmp r2, r0
+ bne _080E3B36
+ mov r0, r12
+ strh r0, [r6]
+ strh r0, [r4]
+ movs r0, 0x1
+ bl sub_80789D4
+ adds r0, r5, 0
+ bl DestroyTask
+_080E3B36:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E3B3C: .4byte gTasks
+_080E3B40: .4byte gUnknown_030041B0
+_080E3B44: .4byte gUnknown_030041B8
+_080E3B48: .4byte gUnknown_03004B00
+ thumb_func_end sub_80E3AD0
+
+ thumb_func_start sub_80E3B4C
+sub_80E3B4C: @ 80E3B4C
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _080E3B70
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ ldr r1, _080E3B74
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r1, 0xE]
+ adds r0, r4, 0
+ bl move_anim_task_del
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E3B70: .4byte gUnknown_0202F7C8
+_080E3B74: .4byte gUnknown_03004B00
+ thumb_func_end sub_80E3B4C
+
+ thumb_func_start sub_80E3B78
+sub_80E3B78: @ 80E3B78
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _080E3B9C
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ ldr r1, _080E3BA0
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r1, 0xE]
+ adds r0, r4, 0
+ bl move_anim_task_del
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E3B9C: .4byte gUnknown_0202F7C9
+_080E3BA0: .4byte gUnknown_03004B00
+ thumb_func_end sub_80E3B78
+
+ thumb_func_start sub_80E3BA4
+sub_80E3BA4: @ 80E3BA4
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldr r5, _080E3BD0
+ movs r4, 0
+ ldr r0, _080E3BD4
+ ldrb r2, [r0]
+ movs r0, 0x2
+ ldr r1, _080E3BD8
+ eors r0, r2
+ ldrb r1, [r1]
+ cmp r0, r1
+ bne _080E3BC0
+ movs r4, 0x1
+_080E3BC0:
+ strh r4, [r5, 0xE]
+ adds r0, r3, 0
+ bl move_anim_task_del
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E3BD0: .4byte gUnknown_03004B00
+_080E3BD4: .4byte gUnknown_0202F7C8
+_080E3BD8: .4byte gUnknown_0202F7C9
+ thumb_func_end sub_80E3BA4
+
+ thumb_func_start sub_80E3BDC
+sub_80E3BDC: @ 80E3BDC
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r4, 0
+ ldr r6, _080E3C3C
+_080E3BE6:
+ ldr r0, _080E3C40
+ ldrb r0, [r0]
+ cmp r4, r0
+ beq _080E3C24
+ lsls r0, r4, 24
+ lsrs r0, 24
+ bl b_side_obj__get_some_boolean
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E3C24
+ ldr r0, _080E3C44
+ adds r0, r4, r0
+ ldrb r0, [r0]
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r2, r6
+ ldr r1, _080E3C48
+ adds r2, 0x3E
+ movs r0, 0x1
+ ldrb r3, [r1]
+ ands r3, r0
+ lsls r3, 2
+ ldrb r0, [r2]
+ movs r7, 0x5
+ negs r7, r7
+ adds r1, r7, 0
+ ands r0, r1
+ orrs r0, r3
+ strb r0, [r2]
+_080E3C24:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x3
+ bls _080E3BE6
+ adds r0, r5, 0
+ bl move_anim_task_del
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E3C3C: .4byte gSprites
+_080E3C40: .4byte gUnknown_0202F7C8
+_080E3C44: .4byte gUnknown_02024BE0
+_080E3C48: .4byte gUnknown_03004B00
+ thumb_func_end sub_80E3BDC
+
+ thumb_func_start sub_80E3C4C
+sub_80E3C4C: @ 80E3C4C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x1C
+ ldr r1, [sp, 0x3C]
+ ldr r4, [sp, 0x40]
+ ldr r5, [sp, 0x44]
+ ldr r6, [sp, 0x48]
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ lsls r2, 16
+ lsrs r2, 16
+ str r2, [sp, 0xC]
+ lsls r3, 24
+ lsrs r7, r3, 24
+ lsls r1, 24
+ lsrs r1, 24
+ mov r8, r1
+ lsls r4, 24
+ lsrs r4, 24
+ str r4, [sp, 0x10]
+ lsls r5, 24
+ lsrs r5, 24
+ str r5, [sp, 0x14]
+ lsls r6, 24
+ lsrs r6, 24
+ mov r10, r6
+ movs r0, 0
+ str r0, [sp, 0x18]
+ movs r0, 0x2
+ adds r6, r7, 0
+ eors r6, r0
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080E3CAE
+ mov r1, r8
+ cmp r1, 0
+ beq _080E3CB2
+ adds r0, r6, 0
+ bl b_side_obj__get_some_boolean
+ lsls r0, 24
+ cmp r0, 0
+ bne _080E3CB2
+_080E3CAE:
+ movs r2, 0
+ mov r8, r2
+_080E3CB2:
+ ldr r0, _080E3D34
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, _080E3D38
+ strh r1, [r0]
+ ldr r1, _080E3D3C
+ ldr r3, _080E3D40
+ adds r0, r3, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r2, _080E3D44
+ adds r0, r2, 0
+ strh r0, [r1]
+ movs r2, 0x80
+ lsls r2, 19
+ ldrh r0, [r2]
+ movs r3, 0x80
+ lsls r3, 8
+ adds r1, r3, 0
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r1, _080E3D48
+ ldr r2, _080E3D4C
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r3, 0x80
+ lsls r3, 5
+ adds r0, r3, 0
+ strh r0, [r1]
+ ldr r4, _080E3D50
+ ldrb r1, [r4]
+ movs r0, 0x4
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r4]
+ ldrb r1, [r4, 0x1]
+ movs r0, 0x3F
+ ands r0, r1
+ strb r0, [r4, 0x1]
+ ldrb r0, [r4, 0x1]
+ movs r1, 0x20
+ orrs r0, r1
+ strb r0, [r4, 0x1]
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080E3D22
+ ldrb r0, [r4]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r0
+ movs r0, 0x4
+ orrs r1, r0
+ strb r1, [r4]
+_080E3D22:
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E3D58
+ ldr r0, _080E3D54
+ ldrh r4, [r0]
+ b _080E3D96
+ .align 2, 0
+_080E3D34: .4byte gUnknown_030042C4
+_080E3D38: .4byte gUnknown_03004240
+_080E3D3C: .4byte REG_WININ
+_080E3D40: .4byte 0x00003f3f
+_080E3D44: .4byte 0x00003f3d
+_080E3D48: .4byte REG_BLDCNT
+_080E3D4C: .4byte 0x00003f42
+_080E3D50: .4byte REG_BG1CNT
+_080E3D54: .4byte 0x02019348
+_080E3D58:
+ adds r0, r7, 0
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E3D7C
+ ldr r1, _080E3D74
+ lsls r0, r7, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _080E3D78
+ b _080E3D8A
+ .align 2, 0
+_080E3D74: .4byte gUnknown_02024A6A
+_080E3D78: .4byte gEnemyParty
+_080E3D7C:
+ ldr r1, _080E3E48
+ lsls r0, r7, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _080E3E4C
+_080E3D8A:
+ adds r0, r1
+ movs r1, 0xB
+ bl GetMonData
+ lsls r0, 16
+ lsrs r4, r0, 16
+_080E3D96:
+ ldr r5, _080E3E50
+ adds r0, r7, r5
+ ldrb r1, [r0]
+ adds r0, r7, 0
+ adds r2, r4, 0
+ bl sub_807A4A0
+ lsls r0, 24
+ lsrs r7, r0, 24
+ mov r0, r8
+ cmp r0, 0
+ beq _080E3DC0
+ adds r0, r6, r5
+ ldrb r1, [r0]
+ adds r0, r6, 0
+ adds r2, r4, 0
+ bl sub_807A4A0
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x18]
+_080E3DC0:
+ mov r0, sp
+ bl sub_8078914
+ ldr r1, [sp, 0x4]
+ ldr r0, [sp, 0x50]
+ bl LZDecompressVram
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E3DE6
+ mov r0, sp
+ ldrb r0, [r0, 0x8]
+ ldr r1, [sp, 0x4]
+ movs r2, 0
+ movs r3, 0
+ bl sub_80763FC
+_080E3DE6:
+ ldr r1, [sp]
+ ldr r0, [sp, 0x4C]
+ bl LZDecompressVram
+ mov r0, sp
+ ldrb r1, [r0, 0x8]
+ lsls r1, 4
+ ldr r0, [sp, 0x54]
+ movs r2, 0x20
+ bl LoadCompressedPalette
+ ldr r0, _080E3E54
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, _080E3E58
+ strh r1, [r0]
+ ldr r1, _080E3E5C
+ mov r2, r9
+ lsls r0, r2, 2
+ add r0, r9
+ lsls r0, 3
+ adds r0, r1
+ mov r3, sp
+ ldrh r3, [r3, 0xC]
+ strh r3, [r0, 0xA]
+ mov r1, sp
+ ldrh r1, [r1, 0x10]
+ strh r1, [r0, 0x10]
+ mov r2, r10
+ strh r2, [r0, 0x12]
+ mov r3, sp
+ ldrh r3, [r3, 0x14]
+ strh r3, [r0, 0x14]
+ strh r7, [r0, 0x8]
+ mov r1, r8
+ strh r1, [r0, 0xC]
+ mov r2, sp
+ ldrh r2, [r2, 0x18]
+ strh r2, [r0, 0xE]
+ ldr r1, _080E3E60
+ str r1, [r0]
+ add sp, 0x1C
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E3E48: .4byte gUnknown_02024A6A
+_080E3E4C: .4byte gPlayerParty
+_080E3E50: .4byte gUnknown_02024BE0
+_080E3E54: .4byte gUnknown_030042C0
+_080E3E58: .4byte gUnknown_030041B4
+_080E3E5C: .4byte gTasks
+_080E3E60: .4byte sub_80E3E64
+ thumb_func_end sub_80E3C4C
+
+ thumb_func_start sub_80E3E64
+sub_80E3E64: @ 80E3E64
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r1, _080E3E9C
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r3, r0, r1
+ movs r0, 0xA
+ ldrsh r2, [r3, r0]
+ adds r5, r1, 0
+ cmp r2, 0
+ bge _080E3E80
+ negs r2, r2
+_080E3E80:
+ ldrh r0, [r3, 0x22]
+ adds r4, r0, r2
+ strh r4, [r3, 0x22]
+ movs r1, 0xA
+ ldrsh r0, [r3, r1]
+ cmp r0, 0
+ bge _080E3EA4
+ ldr r2, _080E3EA0
+ lsls r1, r4, 16
+ asrs r1, 24
+ ldrh r0, [r2]
+ subs r0, r1
+ strh r0, [r2]
+ b _080E3EB0
+ .align 2, 0
+_080E3E9C: .4byte gTasks
+_080E3EA0: .4byte gUnknown_030041B4
+_080E3EA4:
+ ldr r1, _080E3ED4
+ lsls r0, r4, 16
+ asrs r0, 24
+ ldrh r2, [r1]
+ adds r0, r2
+ strh r0, [r1]
+_080E3EB0:
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r4, r0, r5
+ ldrh r1, [r4, 0x22]
+ movs r0, 0xFF
+ ands r0, r1
+ movs r2, 0
+ strh r0, [r4, 0x22]
+ movs r3, 0x26
+ ldrsh r0, [r4, r3]
+ cmp r0, 0x1
+ beq _080E3F18
+ cmp r0, 0x1
+ bgt _080E3ED8
+ cmp r0, 0
+ beq _080E3EDE
+ b _080E3FE2
+ .align 2, 0
+_080E3ED4: .4byte gUnknown_030041B4
+_080E3ED8:
+ cmp r0, 0x2
+ beq _080E3F32
+ b _080E3FE2
+_080E3EDE:
+ ldrh r0, [r4, 0x1E]
+ adds r1, r0, 0x1
+ strh r1, [r4, 0x1E]
+ lsls r0, 16
+ asrs r0, 16
+ movs r3, 0x14
+ ldrsh r1, [r4, r3]
+ cmp r0, r1
+ blt _080E3FE2
+ strh r2, [r4, 0x1E]
+ ldrh r1, [r4, 0x20]
+ adds r1, 0x1
+ strh r1, [r4, 0x20]
+ ldr r2, _080E3F14
+ movs r0, 0x10
+ subs r0, r1
+ lsls r0, 8
+ orrs r1, r0
+ strh r1, [r2]
+ movs r0, 0x20
+ ldrsh r1, [r4, r0]
+ movs r2, 0x10
+ ldrsh r0, [r4, r2]
+ cmp r1, r0
+ bne _080E3FE2
+ b _080E3F2A
+ .align 2, 0
+_080E3F14: .4byte REG_BLDALPHA
+_080E3F18:
+ ldrh r0, [r4, 0x1C]
+ adds r0, 0x1
+ strh r0, [r4, 0x1C]
+ lsls r0, 16
+ asrs r0, 16
+ movs r3, 0x12
+ ldrsh r1, [r4, r3]
+ cmp r0, r1
+ bne _080E3FE2
+_080E3F2A:
+ ldrh r0, [r4, 0x26]
+ adds r0, 0x1
+ strh r0, [r4, 0x26]
+ b _080E3FE2
+_080E3F32:
+ ldrh r0, [r4, 0x1E]
+ adds r1, r0, 0x1
+ strh r1, [r4, 0x1E]
+ lsls r0, 16
+ asrs r0, 16
+ movs r3, 0x14
+ ldrsh r1, [r4, r3]
+ cmp r0, r1
+ blt _080E3FE2
+ strh r2, [r4, 0x1E]
+ ldrh r1, [r4, 0x20]
+ subs r1, 0x1
+ strh r1, [r4, 0x20]
+ ldr r7, _080E3FE8
+ movs r0, 0x10
+ subs r0, r1
+ lsls r0, 8
+ orrs r1, r0
+ strh r1, [r7]
+ movs r0, 0x20
+ ldrsh r5, [r4, r0]
+ cmp r5, 0
+ bne _080E3FE2
+ movs r0, 0
+ bl sub_8076464
+ ldr r0, _080E3FEC
+ strh r5, [r0]
+ ldr r0, _080E3FF0
+ strh r5, [r0]
+ ldr r0, _080E3FF4
+ ldr r2, _080E3FF8
+ adds r1, r2, 0
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080E3F90
+ ldr r2, _080E3FFC
+ ldrb r1, [r2]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+_080E3F90:
+ movs r2, 0x80
+ lsls r2, 19
+ ldrh r0, [r2]
+ movs r3, 0x80
+ lsls r3, 8
+ adds r1, r3, 0
+ eors r0, r1
+ strh r0, [r2]
+ ldr r0, _080E4000
+ strh r5, [r0]
+ strh r5, [r7]
+ movs r0, 0x8
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r5, _080E4004
+ adds r0, r5
+ bl DestroySprite
+ movs r1, 0xC
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080E3FD0
+ movs r2, 0xE
+ ldrsh r1, [r4, r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ bl DestroySprite
+_080E3FD0:
+ ldr r2, _080E3FFC
+ ldrb r1, [r2, 0x1]
+ movs r0, 0x21
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2, 0x1]
+ adds r0, r6, 0
+ bl move_anim_task_del
+_080E3FE2:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E3FE8: .4byte REG_BLDALPHA
+_080E3FEC: .4byte gUnknown_030042C4
+_080E3FF0: .4byte gUnknown_03004240
+_080E3FF4: .4byte REG_WININ
+_080E3FF8: .4byte 0x00003f3f
+_080E3FFC: .4byte REG_BG1CNT
+_080E4000: .4byte REG_BLDCNT
+_080E4004: .4byte gSprites
+ thumb_func_end sub_80E3E64
+
+ thumb_func_start sub_80E4008
+sub_80E4008: @ 80E4008
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080E4020
+ ldr r1, _080E4024
+ ldrb r1, [r1]
+ strh r1, [r2]
+ bl move_anim_task_del
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E4020: .4byte gUnknown_03004B00
+_080E4024: .4byte gUnknown_0300428C
+ thumb_func_end sub_80E4008
+
+ thumb_func_start sub_80E4028
+sub_80E4028: @ 80E4028
+ push {r4-r6,lr}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r4, 0
+ ldr r0, _080E4068
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080E406C
+ str r4, [sp]
+ str r4, [sp, 0x4]
+ str r4, [sp, 0x8]
+ movs r0, 0x1
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl sub_80791A8
+ adds r1, r0, 0
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _080E4084
+ movs r2, 0x1
+_080E405A:
+ lsrs r1, 1
+ adds r4, 0x1
+ adds r0, r1, 0
+ ands r0, r2
+ cmp r0, 0
+ beq _080E405A
+ b _080E4084
+ .align 2, 0
+_080E4068: .4byte gUnknown_03004B00
+_080E406C:
+ cmp r0, 0x1
+ bne _080E4078
+ ldr r0, _080E4074
+ b _080E407E
+ .align 2, 0
+_080E4074: .4byte gUnknown_0202F7C8
+_080E4078:
+ cmp r0, 0x2
+ bne _080E4084
+ ldr r0, _080E409C
+_080E407E:
+ ldrb r0, [r0]
+ adds r4, r0, 0
+ adds r4, 0x10
+_080E4084:
+ ldr r0, _080E40A0
+ movs r1, 0x2
+ ldrsh r0, [r0, r1]
+ lsls r5, r0, 5
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E40A8
+ ldr r0, _080E40A4
+ b _080E40AA
+ .align 2, 0
+_080E409C: .4byte gUnknown_0202F7C9
+_080E40A0: .4byte gUnknown_03004B00
+_080E40A4: .4byte 0x02014800
+_080E40A8:
+ ldr r0, _080E40C8
+_080E40AA:
+ adds r2, r5, r0
+ lsls r1, r4, 5
+ ldr r0, _080E40CC
+ adds r1, r0
+ adds r0, r2, 0
+ movs r2, 0x20
+ bl memcpy
+ adds r0, r6, 0
+ bl move_anim_task_del
+ add sp, 0xC
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E40C8: .4byte 0x02018000
+_080E40CC: .4byte gPlttBufferUnfaded
+ thumb_func_end sub_80E4028
+
+ thumb_func_start sub_80E40D0
+sub_80E40D0: @ 80E40D0
+ push {r4-r6,lr}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r4, 0
+ ldr r0, _080E4110
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080E4114
+ str r4, [sp]
+ str r4, [sp, 0x4]
+ str r4, [sp, 0x8]
+ movs r0, 0x1
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl sub_80791A8
+ adds r1, r0, 0
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _080E412C
+ movs r2, 0x1
+_080E4102:
+ lsrs r1, 1
+ adds r4, 0x1
+ adds r0, r1, 0
+ ands r0, r2
+ cmp r0, 0
+ beq _080E4102
+ b _080E412C
+ .align 2, 0
+_080E4110: .4byte gUnknown_03004B00
+_080E4114:
+ cmp r0, 0x1
+ bne _080E4120
+ ldr r0, _080E411C
+ b _080E4126
+ .align 2, 0
+_080E411C: .4byte gUnknown_0202F7C8
+_080E4120:
+ cmp r0, 0x2
+ bne _080E412C
+ ldr r0, _080E4148
+_080E4126:
+ ldrb r0, [r0]
+ adds r4, r0, 0
+ adds r4, 0x10
+_080E412C:
+ lsls r1, r4, 5
+ ldr r0, _080E414C
+ adds r5, r1, r0
+ ldr r0, _080E4150
+ movs r1, 0x2
+ ldrsh r0, [r0, r1]
+ lsls r4, r0, 5
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E4158
+ ldr r0, _080E4154
+ b _080E415A
+ .align 2, 0
+_080E4148: .4byte gUnknown_0202F7C9
+_080E414C: .4byte gPlttBufferUnfaded
+_080E4150: .4byte gUnknown_03004B00
+_080E4154: .4byte 0x02014800
+_080E4158:
+ ldr r0, _080E4174
+_080E415A:
+ adds r1, r4, r0
+ adds r0, r5, 0
+ movs r2, 0x20
+ bl memcpy
+ adds r0, r6, 0
+ bl move_anim_task_del
+ add sp, 0xC
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E4174: .4byte 0x02018000
+ thumb_func_end sub_80E40D0
+
+ thumb_func_start sub_80E4178
+sub_80E4178: @ 80E4178
+ push {r4,r5,lr}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r4, 0
+ ldr r0, _080E41B8
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080E41BC
+ str r4, [sp]
+ str r4, [sp, 0x4]
+ str r4, [sp, 0x8]
+ movs r0, 0x1
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl sub_80791A8
+ adds r1, r0, 0
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _080E41D4
+ movs r2, 0x1
+_080E41AA:
+ lsrs r1, 1
+ adds r4, 0x1
+ adds r0, r1, 0
+ ands r0, r2
+ cmp r0, 0
+ beq _080E41AA
+ b _080E41D4
+ .align 2, 0
+_080E41B8: .4byte gUnknown_03004B00
+_080E41BC:
+ cmp r0, 0x1
+ bne _080E41C8
+ ldr r0, _080E41C4
+ b _080E41CE
+ .align 2, 0
+_080E41C4: .4byte gUnknown_0202F7C8
+_080E41C8:
+ cmp r0, 0x2
+ bne _080E41D4
+ ldr r0, _080E41F4
+_080E41CE:
+ ldrb r0, [r0]
+ adds r4, r0, 0
+ adds r4, 0x10
+_080E41D4:
+ lsls r1, r4, 5
+ ldr r0, _080E41F8
+ adds r0, r1, r0
+ ldr r2, _080E41FC
+ adds r1, r2
+ movs r2, 0x20
+ bl memcpy
+ adds r0, r5, 0
+ bl move_anim_task_del
+ add sp, 0xC
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E41F4: .4byte gUnknown_0202F7C9
+_080E41F8: .4byte gPlttBufferUnfaded
+_080E41FC: .4byte gPlttBufferFaded
+ thumb_func_end sub_80E4178
+
+ thumb_func_start sub_80E4200
+sub_80E4200: @ 80E4200
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_8076BE0
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0
+ beq _080E4220
+ ldr r1, _080E421C
+ movs r0, 0x1
+ strh r0, [r1, 0xE]
+ b _080E4224
+ .align 2, 0
+_080E421C: .4byte gUnknown_03004B00
+_080E4220:
+ ldr r0, _080E4230
+ strh r1, [r0, 0xE]
+_080E4224:
+ adds r0, r4, 0
+ bl move_anim_task_del
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E4230: .4byte gUnknown_03004B00
+ thumb_func_end sub_80E4200
+
+ thumb_func_start sub_80E4234
+sub_80E4234: @ 80E4234
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080E4254
+ ldr r1, _080E4258
+ ldrb r1, [r1]
+ strb r1, [r2]
+ ldr r2, _080E425C
+ ldr r1, _080E4260
+ ldrb r1, [r1]
+ strb r1, [r2]
+ bl move_anim_task_del
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E4254: .4byte gUnknown_0202F7C8
+_080E4258: .4byte gUnknown_02024C08
+_080E425C: .4byte gUnknown_0202F7C9
+_080E4260: .4byte gUnknown_02024C0A
+ thumb_func_end sub_80E4234
+
+ thumb_func_start sub_80E4264
+sub_80E4264: @ 80E4264
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, _080E428C
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ adds r4, r0, 0
+ ldr r0, _080E4290
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r4, 24
+ lsls r0, 24
+ cmp r4, r0
+ bne _080E4298
+ ldr r1, _080E4294
+ movs r0, 0x1
+ b _080E429C
+ .align 2, 0
+_080E428C: .4byte gUnknown_0202F7C8
+_080E4290: .4byte gUnknown_0202F7C9
+_080E4294: .4byte gUnknown_03004B00
+_080E4298:
+ ldr r1, _080E42AC
+ movs r0, 0
+_080E429C:
+ strh r0, [r1, 0xE]
+ adds r0, r5, 0
+ bl move_anim_task_del
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E42AC: .4byte gUnknown_03004B00
+ thumb_func_end sub_80E4264
+
+ thumb_func_start sub_80E42B0
+sub_80E42B0: @ 80E42B0
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080E42C8
+ ldr r1, _080E42CC
+ ldrb r1, [r1]
+ strb r1, [r2]
+ bl move_anim_task_del
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E42C8: .4byte gUnknown_0202F7C9
+_080E42CC: .4byte gUnknown_02024C08
+ thumb_func_end sub_80E42B0
+
+ thumb_func_start sub_80E42D0
+sub_80E42D0: @ 80E42D0
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080E42F0
+ ldr r1, _080E42F4
+ ldrb r1, [r1]
+ strb r1, [r2]
+ ldr r2, _080E42F8
+ ldr r1, _080E42FC
+ ldrb r1, [r1]
+ strb r1, [r2]
+ bl move_anim_task_del
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E42F0: .4byte gUnknown_0202F7C8
+_080E42F4: .4byte gUnknown_02024C07
+_080E42F8: .4byte gUnknown_0202F7C9
+_080E42FC: .4byte gUnknown_02024C0A
+ thumb_func_end sub_80E42D0
+
+ thumb_func_start sub_80E4300
+sub_80E4300: @ 80E4300
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E4318
+ adds r0, r4, 0
+ bl move_anim_task_del
+ b _080E434E
+_080E4318:
+ ldr r0, _080E4354
+ lsls r3, r4, 2
+ adds r3, r4
+ lsls r3, 3
+ adds r3, r0
+ ldr r1, _080E4358
+ ldrb r0, [r1]
+ lsls r0, 2
+ ldr r2, _080E435C
+ adds r0, r2
+ ldr r0, [r0]
+ lsls r0, 31
+ lsrs r0, 31
+ strh r0, [r3, 0x8]
+ ldrb r1, [r1]
+ lsls r1, 2
+ adds r1, r2
+ ldrb r0, [r1]
+ movs r2, 0x1
+ orrs r0, r2
+ strb r0, [r1]
+ ldr r0, _080E4360
+ str r0, [r3]
+ ldr r1, _080E4364
+ ldrb r0, [r1]
+ subs r0, 0x1
+ strb r0, [r1]
+_080E434E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E4354: .4byte gTasks
+_080E4358: .4byte gUnknown_0202F7C8
+_080E435C: .4byte 0x02017800
+_080E4360: .4byte sub_80E4368
+_080E4364: .4byte gUnknown_0202F7B2
+ thumb_func_end sub_80E4300
+
+ thumb_func_start sub_80E4368
+sub_80E4368: @ 80E4368
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _080E43B0
+ movs r2, 0xE
+ ldrsh r1, [r0, r2]
+ movs r0, 0x80
+ lsls r0, 5
+ cmp r1, r0
+ bne _080E43A8
+ ldr r0, _080E43B4
+ ldrb r3, [r0]
+ lsls r3, 2
+ ldr r0, _080E43B8
+ adds r3, r0
+ ldr r1, _080E43BC
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldrb r0, [r0, 0x8]
+ movs r1, 0x1
+ ands r1, r0
+ ldrb r2, [r3]
+ movs r0, 0x2
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+ adds r0, r4, 0
+ bl DestroyTask
+_080E43A8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E43B0: .4byte gUnknown_03004B00
+_080E43B4: .4byte gUnknown_0202F7C8
+_080E43B8: .4byte 0x02017800
+_080E43BC: .4byte gTasks
+ thumb_func_end sub_80E4368
+
+ thumb_func_start sub_80E43C0
+sub_80E43C0: @ 80E43C0
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _080E43D8
+ ldrh r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080E43E0
+ ldr r0, _080E43DC
+ b _080E4408
+ .align 2, 0
+_080E43D8: .4byte gUnknown_020239F8
+_080E43DC: .4byte sub_80E4C34
+_080E43E0:
+ movs r0, 0x80
+ lsls r0, 5
+ ands r0, r1
+ cmp r0, 0
+ beq _080E4400
+ ldr r0, _080E43F8
+ ldrb r0, [r0]
+ cmp r0, 0x2
+ beq _080E4400
+ movs r4, 0x3
+ ldr r0, _080E43FC
+ b _080E4408
+ .align 2, 0
+_080E43F8: .4byte gGameVersion
+_080E43FC: .4byte task00_battle_intro_80BC6C8
+_080E4400:
+ ldr r1, _080E4434
+ lsls r0, r4, 2
+ adds r0, r1
+ ldr r0, [r0]
+_080E4408:
+ movs r1, 0
+ bl CreateTask
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r0, _080E4438
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 3
+ adds r1, r0
+ movs r0, 0
+ strh r0, [r1, 0x8]
+ strh r4, [r1, 0xA]
+ strh r0, [r1, 0xC]
+ strh r0, [r1, 0xE]
+ strh r0, [r1, 0x10]
+ strh r0, [r1, 0x12]
+ strh r0, [r1, 0x14]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E4434: .4byte gUnknown_083DB56C
+_080E4438: .4byte gTasks
+ thumb_func_end sub_80E43C0
+
+ thumb_func_start sub_80E443C
+sub_80E443C: @ 80E443C
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ bl DestroyTask
+ ldr r0, _080E4474
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, _080E4478
+ strh r1, [r0]
+ ldr r0, _080E447C
+ strh r1, [r0]
+ ldr r0, _080E4480
+ strh r1, [r0]
+ ldr r0, _080E4484
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ subs r0, 0xC
+ ldr r2, _080E4488
+ adds r1, r2, 0
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E4474: .4byte gUnknown_030042C0
+_080E4478: .4byte gUnknown_030041B4
+_080E447C: .4byte gUnknown_03004288
+_080E4480: .4byte gUnknown_03004280
+_080E4484: .4byte REG_BLDCNT
+_080E4488: .4byte 0x00003f3f
+ thumb_func_end sub_80E443C
+
+ thumb_func_start task_battle_intro_80BC47C
+task_battle_intro_80BC47C: @ 80E448C
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r1, _080E44C4
+ ldrh r0, [r1]
+ adds r0, 0x6
+ strh r0, [r1]
+ ldr r1, _080E44C8
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ movs r2, 0x8
+ ldrsh r0, [r0, r2]
+ mov r8, r1
+ cmp r0, 0x4
+ bls _080E44B8
+ b _080E46BE
+_080E44B8:
+ lsls r0, 2
+ ldr r1, _080E44CC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080E44C4: .4byte gUnknown_030042C0
+_080E44C8: .4byte gTasks
+_080E44CC: .4byte _080E44D0
+ .align 2, 0
+_080E44D0:
+ .4byte _080E44E4
+ .4byte _080E4514
+ .4byte _080E4540
+ .4byte _080E4588
+ .4byte _080E46B8
+_080E44E4:
+ ldr r0, _080E44FC
+ ldrh r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080E4500
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ add r0, r8
+ movs r1, 0x10
+ b _080E450A
+ .align 2, 0
+_080E44FC: .4byte gUnknown_020239F8
+_080E4500:
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ add r0, r8
+ movs r1, 0x1
+_080E450A:
+ strh r1, [r0, 0xC]
+ ldrh r1, [r0, 0x8]
+ adds r1, 0x1
+ strh r1, [r0, 0x8]
+ b _080E46BE
+_080E4514:
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ mov r3, r8
+ adds r1, r0, r3
+ ldrh r0, [r1, 0xC]
+ subs r0, 0x1
+ strh r0, [r1, 0xC]
+ lsls r0, 16
+ cmp r0, 0
+ beq _080E452C
+ b _080E46BE
+_080E452C:
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ ldr r1, _080E453C
+ movs r0, 0x3F
+ strh r0, [r1]
+ b _080E46BE
+ .align 2, 0
+_080E453C: .4byte REG_WININ
+_080E4540:
+ ldr r1, _080E457C
+ ldrh r0, [r1]
+ subs r0, 0xFF
+ strh r0, [r1]
+ movs r1, 0xFF
+ lsls r1, 8
+ ands r0, r1
+ movs r1, 0xC0
+ lsls r1, 6
+ cmp r0, r1
+ beq _080E4558
+ b _080E46BE
+_080E4558:
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ add r1, r8
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ movs r0, 0xF0
+ strh r0, [r1, 0xC]
+ movs r0, 0x20
+ strh r0, [r1, 0xE]
+ ldr r2, _080E4580
+ ldrh r1, [r2]
+ ldr r0, _080E4584
+ ands r0, r1
+ strh r0, [r2]
+ b _080E46BE
+ .align 2, 0
+_080E457C: .4byte gUnknown_03004240
+_080E4580: .4byte gUnknown_02024DE8
+_080E4584: .4byte 0x0000fffe
+_080E4588:
+ lsls r0, r4, 2
+ adds r1, r0, r4
+ lsls r1, 3
+ mov r5, r8
+ adds r2, r1, r5
+ ldrh r3, [r2, 0xE]
+ movs r5, 0xE
+ ldrsh r1, [r2, r5]
+ mov r12, r0
+ cmp r1, 0
+ beq _080E45A4
+ subs r0, r3, 0x1
+ strh r0, [r2, 0xE]
+ b _080E45D2
+_080E45A4:
+ movs r1, 0xA
+ ldrsh r0, [r2, r1]
+ cmp r0, 0x1
+ bne _080E45C4
+ ldr r2, _080E45BC
+ ldrh r1, [r2]
+ ldr r0, _080E45C0
+ cmp r1, r0
+ beq _080E45D2
+ subs r0, r1, 0x2
+ b _080E45D0
+ .align 2, 0
+_080E45BC: .4byte gUnknown_030041B4
+_080E45C0: .4byte 0x0000ffb0
+_080E45C4:
+ ldr r2, _080E4690
+ ldrh r1, [r2]
+ ldr r0, _080E4694
+ cmp r1, r0
+ beq _080E45D2
+ subs r0, r1, 0x1
+_080E45D0:
+ strh r0, [r2]
+_080E45D2:
+ ldr r2, _080E4698
+ ldrh r1, [r2]
+ movs r0, 0xFF
+ lsls r0, 8
+ ands r0, r1
+ cmp r0, 0
+ beq _080E45E6
+ ldr r3, _080E469C
+ adds r0, r1, r3
+ strh r0, [r2]
+_080E45E6:
+ mov r5, r12
+ adds r0, r5, r4
+ lsls r0, 3
+ mov r2, r8
+ adds r1, r0, r2
+ ldrh r2, [r1, 0xC]
+ movs r3, 0xC
+ ldrsh r0, [r1, r3]
+ cmp r0, 0
+ beq _080E45FE
+ subs r0, r2, 0x2
+ strh r0, [r1, 0xC]
+_080E45FE:
+ movs r3, 0
+ ldr r5, _080E46A0
+ mov r9, r5
+ ldr r7, _080E46A4
+ mov r6, r9
+ adds r5, r1, 0
+_080E460A:
+ lsls r2, r3, 1
+ ldrb r1, [r6, 0x14]
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 7
+ adds r2, r0
+ adds r2, r7
+ ldrh r0, [r5, 0xC]
+ strh r0, [r2]
+ adds r3, 0x1
+ cmp r3, 0x4F
+ ble _080E460A
+ cmp r3, 0x9F
+ bgt _080E464E
+ ldr r7, _080E46A4
+ ldr r6, _080E46A0
+ ldr r1, _080E46A8
+ mov r2, r12
+ adds r0, r2, r4
+ lsls r0, 3
+ adds r5, r0, r1
+_080E4634:
+ lsls r2, r3, 1
+ ldrb r1, [r6, 0x14]
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 7
+ adds r2, r0
+ adds r2, r7
+ ldrh r0, [r5, 0xC]
+ negs r0, r0
+ strh r0, [r2]
+ adds r3, 0x1
+ cmp r3, 0x9F
+ ble _080E4634
+_080E464E:
+ mov r3, r12
+ adds r0, r3, r4
+ lsls r0, 3
+ mov r5, r8
+ adds r1, r0, r5
+ movs r0, 0xC
+ ldrsh r2, [r1, r0]
+ cmp r2, 0
+ bne _080E46BE
+ movs r0, 0x3
+ mov r3, r9
+ strb r0, [r3, 0x15]
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ str r2, [sp]
+ ldr r1, _080E46AC
+ ldr r2, _080E46B0
+ mov r0, sp
+ bl CpuSet
+ ldr r1, _080E46B4
+ movs r5, 0x9C
+ lsls r5, 8
+ adds r0, r5, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r2, 0xBC
+ lsls r2, 7
+ adds r0, r2, 0
+ strh r0, [r1]
+ b _080E46BE
+ .align 2, 0
+_080E4690: .4byte gUnknown_030041B4
+_080E4694: .4byte 0x0000ffc8
+_080E4698: .4byte gUnknown_03004240
+_080E469C: .4byte 0xfffffc04
+_080E46A0: .4byte gUnknown_03004DC0
+_080E46A4: .4byte gUnknown_03004DE0
+_080E46A8: .4byte gTasks
+_080E46AC: .4byte 0x0600e000
+_080E46B0: .4byte 0x05000200
+_080E46B4: .4byte REG_BG1CNT
+_080E46B8:
+ adds r0, r4, 0
+ bl sub_80E443C
+_080E46BE:
+ add sp, 0x4
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end task_battle_intro_80BC47C
+
+ thumb_func_start task00_battle_intro_80BC6C8
+task00_battle_intro_80BC6C8: @ 80E46CC
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _080E46F8
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ movs r2, 0xA
+ ldrsh r0, [r0, r2]
+ adds r2, r1, 0
+ cmp r0, 0x3
+ beq _080E470C
+ cmp r0, 0x3
+ bgt _080E46FC
+ cmp r0, 0x2
+ beq _080E4700
+ b _080E4714
+ .align 2, 0
+_080E46F8: .4byte gTasks
+_080E46FC:
+ cmp r0, 0x4
+ bne _080E4714
+_080E4700:
+ ldr r1, _080E4708
+ ldrh r0, [r1]
+ adds r0, 0x8
+ b _080E4712
+ .align 2, 0
+_080E4708: .4byte gUnknown_030042C0
+_080E470C:
+ ldr r1, _080E4750
+ ldrh r0, [r1]
+ adds r0, 0x6
+_080E4712:
+ strh r0, [r1]
+_080E4714:
+ lsls r0, r5, 2
+ adds r1, r0, r5
+ lsls r1, 3
+ adds r4, r1, r2
+ movs r3, 0xA
+ ldrsh r1, [r4, r3]
+ adds r6, r0, 0
+ cmp r1, 0x4
+ bne _080E4778
+ ldr r7, _080E4754
+ ldrh r0, [r4, 0x14]
+ bl Cos2
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0
+ bge _080E473A
+ ldr r1, _080E4758
+ adds r0, r1
+_080E473A:
+ asrs r0, 9
+ subs r0, 0x8
+ strh r0, [r7]
+ ldrh r1, [r4, 0x14]
+ movs r2, 0x14
+ ldrsh r0, [r4, r2]
+ cmp r0, 0xB3
+ bgt _080E475C
+ adds r0, r1, 0x4
+ b _080E475E
+ .align 2, 0
+_080E4750: .4byte gUnknown_030042C0
+_080E4754: .4byte gUnknown_030041B4
+_080E4758: .4byte 0x000001ff
+_080E475C:
+ adds r0, r1, 0x6
+_080E475E:
+ strh r0, [r4, 0x14]
+ ldr r2, _080E4794
+ adds r0, r6, r5
+ lsls r0, 3
+ adds r3, r0, r2
+ movs r4, 0x14
+ ldrsh r1, [r3, r4]
+ movs r0, 0xB4
+ lsls r0, 1
+ cmp r1, r0
+ bne _080E4778
+ movs r0, 0
+ strh r0, [r3, 0x14]
+_080E4778:
+ adds r0, r6, r5
+ lsls r0, 3
+ adds r0, r2
+ movs r1, 0x8
+ ldrsh r0, [r0, r1]
+ cmp r0, 0x4
+ bls _080E4788
+ b _080E4996
+_080E4788:
+ lsls r0, 2
+ ldr r1, _080E4798
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080E4794: .4byte gTasks
+_080E4798: .4byte _080E479C
+ .align 2, 0
+_080E479C:
+ .4byte _080E47B0
+ .4byte _080E47E0
+ .4byte _080E480C
+ .4byte _080E485C
+ .4byte _080E4990
+_080E47B0:
+ ldr r1, _080E47CC
+ adds r0, r6, r5
+ lsls r0, 3
+ adds r2, r0, r1
+ movs r3, 0x10
+ strh r3, [r2, 0x10]
+ ldr r0, _080E47D0
+ ldrh r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080E47D4
+ strh r3, [r2, 0xC]
+ b _080E47D8
+ .align 2, 0
+_080E47CC: .4byte gTasks
+_080E47D0: .4byte gUnknown_020239F8
+_080E47D4:
+ movs r0, 0x1
+ strh r0, [r2, 0xC]
+_080E47D8:
+ ldrh r0, [r2, 0x8]
+ adds r0, 0x1
+ strh r0, [r2, 0x8]
+ b _080E4996
+_080E47E0:
+ ldr r0, _080E4804
+ adds r1, r6, r5
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0xC]
+ subs r0, 0x1
+ strh r0, [r1, 0xC]
+ lsls r0, 16
+ cmp r0, 0
+ beq _080E47F6
+ b _080E4996
+_080E47F6:
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ ldr r1, _080E4808
+ movs r0, 0x3F
+ strh r0, [r1]
+ b _080E4996
+ .align 2, 0
+_080E4804: .4byte gTasks
+_080E4808: .4byte REG_WININ
+_080E480C:
+ ldr r1, _080E484C
+ ldrh r0, [r1]
+ subs r0, 0xFF
+ strh r0, [r1]
+ movs r1, 0xFF
+ lsls r1, 8
+ ands r0, r1
+ movs r1, 0xC0
+ lsls r1, 6
+ cmp r0, r1
+ beq _080E4824
+ b _080E4996
+_080E4824:
+ ldr r0, _080E4850
+ adds r1, r6, r5
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ movs r0, 0xF0
+ strh r0, [r1, 0xC]
+ movs r0, 0x20
+ strh r0, [r1, 0xE]
+ movs r0, 0x1
+ strh r0, [r1, 0x12]
+ ldr r2, _080E4854
+ ldrh r1, [r2]
+ ldr r0, _080E4858
+ ands r0, r1
+ strh r0, [r2]
+ b _080E4996
+ .align 2, 0
+_080E484C: .4byte gUnknown_03004240
+_080E4850: .4byte gTasks
+_080E4854: .4byte gUnknown_02024DE8
+_080E4858: .4byte 0x0000fffe
+_080E485C:
+ adds r0, r6, r5
+ lsls r0, 3
+ adds r1, r0, r2
+ ldrh r3, [r1, 0xE]
+ movs r4, 0xE
+ ldrsh r0, [r1, r4]
+ cmp r0, 0
+ beq _080E4898
+ subs r0, r3, 0x1
+ strh r0, [r1, 0xE]
+ lsls r0, 16
+ asrs r3, r0, 16
+ cmp r3, 0
+ bne _080E48B8
+ ldr r1, _080E488C
+ ldr r4, _080E4890
+ adds r0, r4, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r0, 0xF
+ strh r0, [r1]
+ ldr r0, _080E4894
+ strh r3, [r0]
+ b _080E48B8
+ .align 2, 0
+_080E488C: .4byte REG_BLDCNT
+_080E4890: .4byte 0x00001842
+_080E4894: .4byte REG_BLDY
+_080E4898:
+ ldrh r3, [r1, 0x10]
+ movs r0, 0x1F
+ ands r0, r3
+ cmp r0, 0
+ beq _080E48B8
+ ldrh r0, [r1, 0x12]
+ subs r0, 0x1
+ strh r0, [r1, 0x12]
+ lsls r0, 16
+ cmp r0, 0
+ bne _080E48B8
+ adds r0, r3, 0
+ adds r0, 0xFF
+ strh r0, [r1, 0x10]
+ movs r0, 0x4
+ strh r0, [r1, 0x12]
+_080E48B8:
+ ldr r3, _080E4970
+ ldrh r1, [r3]
+ movs r0, 0xFF
+ lsls r0, 8
+ ands r0, r1
+ cmp r0, 0
+ beq _080E48CC
+ ldr r4, _080E4974
+ adds r0, r1, r4
+ strh r0, [r3]
+_080E48CC:
+ adds r0, r6, r5
+ lsls r0, 3
+ adds r1, r0, r2
+ ldrh r2, [r1, 0xC]
+ movs r3, 0xC
+ ldrsh r0, [r1, r3]
+ cmp r0, 0
+ beq _080E48E0
+ subs r0, r2, 0x2
+ strh r0, [r1, 0xC]
+_080E48E0:
+ movs r3, 0
+ ldr r4, _080E4978
+ mov r8, r4
+ ldr r0, _080E497C
+ mov r12, r0
+ mov r7, r8
+ adds r4, r1, 0
+_080E48EE:
+ lsls r2, r3, 1
+ ldrb r1, [r7, 0x14]
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 7
+ adds r2, r0
+ add r2, r12
+ ldrh r0, [r4, 0xC]
+ strh r0, [r2]
+ adds r3, 0x1
+ cmp r3, 0x4F
+ ble _080E48EE
+ cmp r3, 0x9F
+ bgt _080E4932
+ ldr r1, _080E497C
+ mov r12, r1
+ ldr r7, _080E4978
+ ldr r1, _080E4980
+ adds r0, r6, r5
+ lsls r0, 3
+ adds r4, r0, r1
+_080E4918:
+ lsls r2, r3, 1
+ ldrb r1, [r7, 0x14]
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 7
+ adds r2, r0
+ add r2, r12
+ ldrh r0, [r4, 0xC]
+ negs r0, r0
+ strh r0, [r2]
+ adds r3, 0x1
+ cmp r3, 0x9F
+ ble _080E4918
+_080E4932:
+ ldr r1, _080E4980
+ adds r0, r6, r5
+ lsls r0, 3
+ adds r1, r0, r1
+ movs r3, 0xC
+ ldrsh r2, [r1, r3]
+ cmp r2, 0
+ bne _080E4996
+ movs r0, 0x3
+ mov r4, r8
+ strb r0, [r4, 0x15]
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ str r2, [sp]
+ ldr r1, _080E4984
+ ldr r2, _080E4988
+ mov r0, sp
+ bl CpuSet
+ ldr r1, _080E498C
+ movs r2, 0x9C
+ lsls r2, 8
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r3, 0xBC
+ lsls r3, 7
+ adds r0, r3, 0
+ strh r0, [r1]
+ b _080E4996
+ .align 2, 0
+_080E4970: .4byte gUnknown_03004240
+_080E4974: .4byte 0xfffffc04
+_080E4978: .4byte gUnknown_03004DC0
+_080E497C: .4byte gUnknown_03004DE0
+_080E4980: .4byte gTasks
+_080E4984: .4byte 0x0600e000
+_080E4988: .4byte 0x05000200
+_080E498C: .4byte REG_BG1CNT
+_080E4990:
+ adds r0, r5, 0
+ bl sub_80E443C
+_080E4996:
+ ldr r0, _080E49B8
+ adds r1, r6, r5
+ lsls r1, 3
+ adds r2, r1, r0
+ movs r4, 0x8
+ ldrsh r0, [r2, r4]
+ cmp r0, 0x4
+ beq _080E49AC
+ ldr r1, _080E49BC
+ ldrh r0, [r2, 0x10]
+ strh r0, [r1]
+_080E49AC:
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E49B8: .4byte gTasks
+_080E49BC: .4byte REG_BLDALPHA
+ thumb_func_end task00_battle_intro_80BC6C8
+
+ thumb_func_start task_battle_intro_anim
+task_battle_intro_anim: @ 80E49C0
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r1, _080E49F4
+ ldrh r0, [r1]
+ adds r0, 0x8
+ strh r0, [r1]
+ ldr r1, _080E49F8
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ movs r2, 0x8
+ ldrsh r0, [r0, r2]
+ adds r5, r1, 0
+ cmp r0, 0x4
+ bls _080E49EA
+ b _080E4C06
+_080E49EA:
+ lsls r0, 2
+ ldr r1, _080E49FC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080E49F4: .4byte gUnknown_030042C0
+_080E49F8: .4byte gTasks
+_080E49FC: .4byte _080E4A00
+ .align 2, 0
+_080E4A00:
+ .4byte _080E4A14
+ .4byte _080E4A6C
+ .4byte _080E4A9C
+ .4byte _080E4AEC
+ .4byte _080E4C00
+_080E4A14:
+ ldr r1, _080E4A48
+ ldr r3, _080E4A4C
+ adds r0, r3, 0
+ strh r0, [r1]
+ ldr r0, _080E4A50
+ ldr r6, _080E4A54
+ adds r2, r6, 0
+ strh r2, [r0]
+ adds r1, 0x4
+ movs r0, 0
+ strh r0, [r1]
+ ldr r1, _080E4A58
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r3, r0, r1
+ strh r2, [r3, 0x10]
+ ldr r0, _080E4A5C
+ ldrh r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080E4A60
+ movs r0, 0x10
+ b _080E4A62
+ .align 2, 0
+_080E4A48: .4byte REG_BLDCNT
+_080E4A4C: .4byte 0x00001842
+_080E4A50: .4byte REG_BLDALPHA
+_080E4A54: .4byte 0x00000808
+_080E4A58: .4byte gTasks
+_080E4A5C: .4byte gUnknown_020239F8
+_080E4A60:
+ movs r0, 0x1
+_080E4A62:
+ strh r0, [r3, 0xC]
+ ldrh r0, [r3, 0x8]
+ adds r0, 0x1
+ strh r0, [r3, 0x8]
+ b _080E4C06
+_080E4A6C:
+ ldr r0, _080E4A94
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0xC]
+ subs r0, 0x1
+ strh r0, [r1, 0xC]
+ lsls r0, 16
+ cmp r0, 0
+ beq _080E4A84
+ b _080E4C06
+_080E4A84:
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ ldr r1, _080E4A98
+ movs r0, 0x3F
+ strh r0, [r1]
+ b _080E4C06
+ .align 2, 0
+_080E4A94: .4byte gTasks
+_080E4A98: .4byte REG_WININ
+_080E4A9C:
+ ldr r1, _080E4ADC
+ ldrh r0, [r1]
+ subs r0, 0xFF
+ strh r0, [r1]
+ movs r1, 0xFF
+ lsls r1, 8
+ ands r0, r1
+ movs r1, 0xC0
+ lsls r1, 6
+ cmp r0, r1
+ beq _080E4AB4
+ b _080E4C06
+_080E4AB4:
+ ldr r0, _080E4AE0
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ movs r0, 0xF0
+ strh r0, [r1, 0xC]
+ movs r0, 0x20
+ strh r0, [r1, 0xE]
+ movs r0, 0x1
+ strh r0, [r1, 0x12]
+ ldr r2, _080E4AE4
+ ldrh r1, [r2]
+ ldr r0, _080E4AE8
+ ands r0, r1
+ strh r0, [r2]
+ b _080E4C06
+ .align 2, 0
+_080E4ADC: .4byte gUnknown_03004240
+_080E4AE0: .4byte gTasks
+_080E4AE4: .4byte gUnknown_02024DE8
+_080E4AE8: .4byte 0x0000fffe
+_080E4AEC:
+ lsls r0, r4, 2
+ adds r1, r0, r4
+ lsls r1, 3
+ adds r2, r1, r5
+ ldrh r3, [r2, 0xE]
+ movs r6, 0xE
+ ldrsh r1, [r2, r6]
+ mov r12, r0
+ cmp r1, 0
+ beq _080E4B06
+ subs r0, r3, 0x1
+ strh r0, [r2, 0xE]
+ b _080E4B26
+_080E4B06:
+ ldrh r1, [r2, 0x10]
+ movs r0, 0xF
+ ands r0, r1
+ cmp r0, 0
+ beq _080E4B26
+ ldrh r0, [r2, 0x12]
+ subs r0, 0x1
+ strh r0, [r2, 0x12]
+ lsls r0, 16
+ cmp r0, 0
+ bne _080E4B26
+ adds r0, r1, 0
+ adds r0, 0xFF
+ strh r0, [r2, 0x10]
+ movs r0, 0x6
+ strh r0, [r2, 0x12]
+_080E4B26:
+ ldr r2, _080E4BE0
+ ldrh r1, [r2]
+ movs r0, 0xFF
+ lsls r0, 8
+ ands r0, r1
+ cmp r0, 0
+ beq _080E4B3A
+ ldr r3, _080E4BE4
+ adds r0, r1, r3
+ strh r0, [r2]
+_080E4B3A:
+ mov r6, r12
+ adds r0, r6, r4
+ lsls r0, 3
+ adds r1, r0, r5
+ ldrh r2, [r1, 0xC]
+ movs r3, 0xC
+ ldrsh r0, [r1, r3]
+ cmp r0, 0
+ beq _080E4B50
+ subs r0, r2, 0x2
+ strh r0, [r1, 0xC]
+_080E4B50:
+ movs r3, 0
+ ldr r6, _080E4BE8
+ mov r8, r6
+ ldr r7, _080E4BEC
+ adds r5, r1, 0
+_080E4B5A:
+ lsls r2, r3, 1
+ ldrb r1, [r6, 0x14]
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 7
+ adds r2, r0
+ adds r2, r7
+ ldrh r0, [r5, 0xC]
+ strh r0, [r2]
+ adds r3, 0x1
+ cmp r3, 0x4F
+ ble _080E4B5A
+ cmp r3, 0x9F
+ bgt _080E4B9E
+ ldr r7, _080E4BEC
+ ldr r6, _080E4BE8
+ ldr r1, _080E4BF0
+ mov r2, r12
+ adds r0, r2, r4
+ lsls r0, 3
+ adds r5, r0, r1
+_080E4B84:
+ lsls r2, r3, 1
+ ldrb r1, [r6, 0x14]
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 7
+ adds r2, r0
+ adds r2, r7
+ ldrh r0, [r5, 0xC]
+ negs r0, r0
+ strh r0, [r2]
+ adds r3, 0x1
+ cmp r3, 0x9F
+ ble _080E4B84
+_080E4B9E:
+ ldr r1, _080E4BF0
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r1, r0, r1
+ movs r3, 0xC
+ ldrsh r2, [r1, r3]
+ cmp r2, 0
+ bne _080E4C06
+ movs r0, 0x3
+ mov r6, r8
+ strb r0, [r6, 0x15]
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ str r2, [sp]
+ ldr r1, _080E4BF4
+ ldr r2, _080E4BF8
+ mov r0, sp
+ bl CpuSet
+ ldr r1, _080E4BFC
+ movs r2, 0x9C
+ lsls r2, 8
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r3, 0xBC
+ lsls r3, 7
+ adds r0, r3, 0
+ strh r0, [r1]
+ b _080E4C06
+ .align 2, 0
+_080E4BE0: .4byte gUnknown_03004240
+_080E4BE4: .4byte 0xfffffc04
+_080E4BE8: .4byte gUnknown_03004DC0
+_080E4BEC: .4byte gUnknown_03004DE0
+_080E4BF0: .4byte gTasks
+_080E4BF4: .4byte 0x0600e000
+_080E4BF8: .4byte 0x05000200
+_080E4BFC: .4byte REG_BG1CNT
+_080E4C00:
+ adds r0, r4, 0
+ bl sub_80E443C
+_080E4C06:
+ ldr r0, _080E4C2C
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r2, r1, r0
+ movs r6, 0x8
+ ldrsh r0, [r2, r6]
+ cmp r0, 0x4
+ beq _080E4C1E
+ ldr r1, _080E4C30
+ ldrh r0, [r2, 0x10]
+ strh r0, [r1]
+_080E4C1E:
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E4C2C: .4byte gTasks
+_080E4C30: .4byte REG_BLDALPHA
+ thumb_func_end task_battle_intro_anim
+
+ thumb_func_start sub_80E4C34
+sub_80E4C34: @ 80E4C34
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x8
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r1, _080E4C80
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r7, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r7, r1]
+ cmp r0, 0x1
+ ble _080E4CAA
+ movs r2, 0x10
+ ldrsh r0, [r7, r2]
+ cmp r0, 0
+ bne _080E4CAA
+ ldr r2, _080E4C84
+ ldrh r1, [r2]
+ movs r0, 0x80
+ lsls r0, 8
+ ands r0, r1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0
+ bne _080E4C72
+ cmp r1, 0x4F
+ bhi _080E4C8C
+_080E4C72:
+ adds r0, r1, 0x3
+ strh r0, [r2]
+ ldr r1, _080E4C88
+ ldrh r0, [r1]
+ subs r0, 0x3
+ strh r0, [r1]
+ b _080E4CAA
+ .align 2, 0
+_080E4C80: .4byte gTasks
+_080E4C84: .4byte gUnknown_030042C0
+_080E4C88: .4byte gUnknown_03004288
+_080E4C8C:
+ str r5, [sp]
+ ldr r1, _080E4CCC
+ ldr r4, _080E4CD0
+ mov r0, sp
+ adds r2, r4, 0
+ bl CpuSet
+ str r5, [sp, 0x4]
+ add r0, sp, 0x4
+ ldr r1, _080E4CD4
+ adds r2, r4, 0
+ bl CpuSet
+ movs r0, 0x1
+ strh r0, [r7, 0x10]
+_080E4CAA:
+ ldr r0, _080E4CD8
+ lsls r2, r6, 2
+ adds r1, r2, r6
+ lsls r1, 3
+ adds r1, r0
+ movs r3, 0x8
+ ldrsh r1, [r1, r3]
+ mov r12, r0
+ adds r5, r2, 0
+ cmp r1, 0x4
+ bls _080E4CC2
+ b _080E4EBA
+_080E4CC2:
+ lsls r0, r1, 2
+ ldr r1, _080E4CDC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080E4CCC: .4byte 0x0600e000
+_080E4CD0: .4byte 0x05000200
+_080E4CD4: .4byte 0x0600f000
+_080E4CD8: .4byte gTasks
+_080E4CDC: .4byte _080E4CE0
+ .align 2, 0
+_080E4CE0:
+ .4byte _080E4CF4
+ .4byte _080E4D06
+ .4byte _080E4DA8
+ .4byte _080E4DEC
+ .4byte _080E4EB4
+_080E4CF4:
+ adds r0, r5, r6
+ lsls r0, 3
+ add r0, r12
+ movs r1, 0x10
+ strh r1, [r0, 0xC]
+ ldrh r1, [r0, 0x8]
+ adds r1, 0x1
+ strh r1, [r0, 0x8]
+ b _080E4EBA
+_080E4D06:
+ adds r0, r5, r6
+ lsls r0, 3
+ mov r2, r12
+ adds r1, r0, r2
+ ldrh r0, [r1, 0xC]
+ subs r0, 0x1
+ strh r0, [r1, 0xC]
+ lsls r0, 16
+ cmp r0, 0
+ beq _080E4D1C
+ b _080E4EBA
+_080E4D1C:
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ ldr r5, _080E4D8C
+ ldr r4, _080E4D90
+ ldr r3, _080E4D94
+ adds r6, r4, r3
+ ldrb r0, [r6]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r5
+ ldrb r3, [r1, 0x1]
+ movs r2, 0xD
+ negs r2, r2
+ adds r0, r2, 0
+ ands r0, r3
+ movs r3, 0x8
+ mov r8, r3
+ mov r3, r8
+ orrs r0, r3
+ strb r0, [r1, 0x1]
+ ldrb r1, [r6]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r6, r5, 0
+ adds r6, 0x1C
+ adds r0, r6
+ ldr r3, _080E4D98
+ str r3, [r0]
+ ldr r0, _080E4D9C
+ adds r4, r0
+ ldrb r1, [r4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldrb r1, [r0, 0x1]
+ ands r2, r1
+ mov r1, r8
+ orrs r2, r1
+ strb r2, [r0, 0x1]
+ ldrb r1, [r4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ str r3, [r0]
+ ldr r1, _080E4DA0
+ movs r0, 0x3F
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r2, _080E4DA4
+ b _080E4E94
+ .align 2, 0
+_080E4D8C: .4byte gSprites
+_080E4D90: .4byte 0x02000000
+_080E4D94: .4byte 0x0001608a
+_080E4D98: .4byte sub_800FE20
+_080E4D9C: .4byte 0x0001608b
+_080E4DA0: .4byte REG_WININ
+_080E4DA4: .4byte 0x00003f06
+_080E4DA8:
+ ldr r1, _080E4DE0
+ ldrh r0, [r1]
+ subs r0, 0xFF
+ strh r0, [r1]
+ movs r1, 0xFF
+ lsls r1, 8
+ ands r0, r1
+ movs r1, 0xC0
+ lsls r1, 6
+ cmp r0, r1
+ beq _080E4DC0
+ b _080E4EBA
+_080E4DC0:
+ adds r1, r5, r6
+ lsls r1, 3
+ add r1, r12
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ movs r0, 0xF0
+ strh r0, [r1, 0xC]
+ movs r0, 0x20
+ strh r0, [r1, 0xE]
+ ldr r2, _080E4DE4
+ ldrh r1, [r2]
+ ldr r0, _080E4DE8
+ ands r0, r1
+ strh r0, [r2]
+ b _080E4EBA
+ .align 2, 0
+_080E4DE0: .4byte gUnknown_03004240
+_080E4DE4: .4byte gUnknown_02024DE8
+_080E4DE8: .4byte 0x0000fffe
+_080E4DEC:
+ ldr r2, _080E4E9C
+ ldrh r1, [r2]
+ movs r0, 0xFF
+ lsls r0, 8
+ ands r0, r1
+ cmp r0, 0
+ beq _080E4E00
+ ldr r3, _080E4EA0
+ adds r0, r1, r3
+ strh r0, [r2]
+_080E4E00:
+ adds r0, r5, r6
+ lsls r0, 3
+ mov r2, r12
+ adds r1, r0, r2
+ ldrh r2, [r1, 0xC]
+ movs r3, 0xC
+ ldrsh r0, [r1, r3]
+ cmp r0, 0
+ beq _080E4E16
+ subs r0, r2, 0x2
+ strh r0, [r1, 0xC]
+_080E4E16:
+ movs r3, 0
+ ldr r0, _080E4EA4
+ mov r9, r0
+ ldr r2, _080E4EA8
+ mov r8, r2
+ mov r7, r9
+ adds r4, r1, 0
+_080E4E24:
+ lsls r2, r3, 1
+ ldrb r1, [r7, 0x14]
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 7
+ adds r2, r0
+ add r2, r8
+ ldrh r0, [r4, 0xC]
+ strh r0, [r2]
+ adds r3, 0x1
+ cmp r3, 0x4F
+ ble _080E4E24
+ cmp r3, 0x9F
+ bgt _080E4E68
+ ldr r0, _080E4EA8
+ mov r8, r0
+ ldr r7, _080E4EA4
+ ldr r1, _080E4EAC
+ adds r0, r5, r6
+ lsls r0, 3
+ adds r4, r0, r1
+_080E4E4E:
+ lsls r2, r3, 1
+ ldrb r1, [r7, 0x14]
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 7
+ adds r2, r0
+ add r2, r8
+ ldrh r0, [r4, 0xC]
+ negs r0, r0
+ strh r0, [r2]
+ adds r3, 0x1
+ cmp r3, 0x9F
+ ble _080E4E4E
+_080E4E68:
+ adds r0, r5, r6
+ lsls r0, 3
+ mov r2, r12
+ adds r1, r0, r2
+ movs r3, 0xC
+ ldrsh r0, [r1, r3]
+ cmp r0, 0
+ bne _080E4EBA
+ movs r0, 0x3
+ mov r2, r9
+ strb r0, [r2, 0x15]
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ ldr r1, _080E4EB0
+ movs r3, 0x9C
+ lsls r3, 8
+ adds r0, r3, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r2, 0xBC
+ lsls r2, 7
+_080E4E94:
+ adds r0, r2, 0
+ strh r0, [r1]
+ b _080E4EBA
+ .align 2, 0
+_080E4E9C: .4byte gUnknown_03004240
+_080E4EA0: .4byte 0xfffffc04
+_080E4EA4: .4byte gUnknown_03004DC0
+_080E4EA8: .4byte gUnknown_03004DE0
+_080E4EAC: .4byte gTasks
+_080E4EB0: .4byte REG_BG1CNT
+_080E4EB4:
+ adds r0, r6, 0
+ bl sub_80E443C
+_080E4EBA:
+ add sp, 0x8
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80E4C34
+
+ thumb_func_start unref_sub_80E4EC8
+unref_sub_80E4EC8: @ 80E4EC8
+ push {r4,lr}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r2, 24
+ lsrs r2, 24
+ lsls r3, 24
+ lsrs r3, 24
+ movs r4, 0x80
+ lsls r4, 7
+ str r4, [sp]
+ movs r4, 0x1E
+ str r4, [sp, 0x4]
+ movs r4, 0x1
+ str r4, [sp, 0x8]
+ bl sub_80E4EF8
+ add sp, 0xC
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end unref_sub_80E4EC8
+
+ thumb_func_start sub_80E4EF8
+sub_80E4EF8: @ 80E4EF8
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ mov r9, r1
+ adds r4, r2, 0
+ ldr r1, [sp, 0x24]
+ mov r8, r1
+ ldr r1, [sp, 0x28]
+ ldr r5, [sp, 0x2C]
+ lsls r0, 24
+ lsrs r0, 24
+ mov r10, r0
+ mov r7, r9
+ lsls r7, 24
+ adds r0, r7, 0
+ lsrs r0, 24
+ mov r9, r0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r3, 24
+ lsrs r3, 24
+ str r3, [sp]
+ mov r3, r8
+ lsls r3, 16
+ mov r8, r3
+ lsrs r6, r3, 16
+ lsls r1, 24
+ lsrs r7, r1, 24
+ lsls r5, 24
+ lsrs r5, 24
+ adds r0, r4, 0
+ bl battle_get_side_with_given_state
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080E4FCC
+ ldr r1, _080E4FD0
+ lsls r4, 2
+ adds r4, r1
+ ldr r1, _080E4FD4
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r1, 11
+ ldr r0, [r4]
+ adds r0, r1
+ str r0, [r2]
+ movs r0, 0xC0
+ lsls r0, 19
+ adds r6, r0
+ str r6, [r2, 0x4]
+ ldr r0, _080E4FD8
+ str r0, [r2, 0x8]
+ ldr r0, [r2, 0x8]
+ mov r0, r8
+ lsrs r0, 21
+ lsls r5, 9
+ subs r5, r0, r5
+ mov r0, r9
+ adds r1, r0, 0
+ adds r1, 0x8
+ cmp r0, r1
+ bge _080E4FBC
+ mov r9, r1
+ mov r1, r10
+ lsls r1, 1
+ mov r8, r1
+ lsls r7, 11
+ mov r12, r7
+_080E4F86:
+ mov r2, r10
+ adds r4, r2, 0
+ adds r4, 0x8
+ adds r1, r0, 0x1
+ cmp r2, r4
+ bge _080E4FB6
+ ldr r3, [sp]
+ lsls r6, r3, 12
+ lsls r0, 6
+ movs r7, 0xC0
+ lsls r7, 19
+ adds r0, r7
+ add r0, r12
+ mov r7, r8
+ adds r3, r7, r0
+ subs r2, r4, r2
+_080E4FA6:
+ adds r0, r5, 0
+ orrs r0, r6
+ strh r0, [r3]
+ adds r5, 0x1
+ adds r3, 0x2
+ subs r2, 0x1
+ cmp r2, 0
+ bne _080E4FA6
+_080E4FB6:
+ adds r0, r1, 0
+ cmp r0, r9
+ blt _080E4F86
+_080E4FBC:
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E4FCC: .4byte 0x040000d4
+_080E4FD0: .4byte gUnknown_081FAF4C
+_080E4FD4: .4byte gUnknown_02024E84
+_080E4FD8: .4byte 0x80000400
+ thumb_func_end sub_80E4EF8
+
+ thumb_func_start unref_sub_80E4FDC
+unref_sub_80E4FDC: @ 80E4FDC
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ ldr r4, [sp, 0x24]
+ ldr r5, [sp, 0x28]
+ mov r8, r5
+ ldr r5, [sp, 0x2C]
+ ldr r6, [sp, 0x30]
+ mov r9, r6
+ lsls r0, 24
+ lsrs r0, 24
+ mov r12, r0
+ lsls r1, 24
+ lsls r2, 24
+ lsls r3, 24
+ lsls r4, 24
+ lsrs r4, 24
+ mov r10, r4
+ mov r7, r8
+ lsls r7, 16
+ lsrs r6, r7, 16
+ lsls r5, 24
+ lsrs r5, 24
+ mov r0, r9
+ lsls r0, 24
+ mov r9, r0
+ ldr r4, _080E509C
+ ldr r0, _080E50A0
+ lsrs r2, 22
+ adds r2, r0
+ lsrs r3, 13
+ ldr r0, [r2]
+ adds r0, r3
+ str r0, [r4]
+ movs r0, 0xC0
+ lsls r0, 19
+ adds r6, r0
+ str r6, [r4, 0x4]
+ ldr r0, _080E50A4
+ str r0, [r4, 0x8]
+ ldr r0, [r4, 0x8]
+ adds r2, r7, 0
+ lsrs r2, 21
+ mov r6, r9
+ lsrs r6, 15
+ subs r4, r2, r6
+ lsrs r0, r1, 24
+ adds r1, r0, 0
+ adds r1, 0x8
+ cmp r0, r1
+ bge _080E508C
+ mov r9, r1
+ mov r7, r12
+ lsls r7, 1
+ mov r8, r7
+ lsls r5, 11
+ str r5, [sp]
+_080E5054:
+ mov r2, r12
+ adds r3, r2, 0
+ adds r3, 0x8
+ adds r5, r0, 0x1
+ cmp r2, r3
+ bge _080E5086
+ mov r1, r10
+ lsls r6, r1, 12
+ lsls r0, 6
+ movs r7, 0xC0
+ lsls r7, 19
+ adds r0, r7
+ ldr r1, [sp]
+ adds r0, r1, r0
+ mov r7, r8
+ adds r1, r7, r0
+ subs r2, r3, r2
+_080E5076:
+ adds r0, r4, 0
+ orrs r0, r6
+ strh r0, [r1]
+ adds r4, 0x1
+ adds r1, 0x2
+ subs r2, 0x1
+ cmp r2, 0
+ bne _080E5076
+_080E5086:
+ adds r0, r5, 0
+ cmp r0, r9
+ blt _080E5054
+_080E508C:
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E509C: .4byte 0x040000d4
+_080E50A0: .4byte gUnknown_081FAF4C
+_080E50A4: .4byte 0x80000400
+ thumb_func_end unref_sub_80E4FDC
+
+ thumb_func_start MovePlayerOnBike
+MovePlayerOnBike: @ 80E50A8
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ lsls r1, 16
+ lsrs r4, r1, 16
+ lsls r2, 16
+ lsrs r2, 16
+ ldr r0, _080E50CC
+ ldrb r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080E50D0
+ adds r0, r3, 0
+ adds r1, r4, 0
+ bl MovePlayerOnMachBike
+ b _080E50D8
+ .align 2, 0
+_080E50CC: .4byte gPlayerAvatar
+_080E50D0:
+ adds r0, r3, 0
+ adds r1, r4, 0
+ bl MovePlayerOnAcroBike
+_080E50D8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end MovePlayerOnBike
+
+ thumb_func_start MovePlayerOnMachBike
+MovePlayerOnMachBike: @ 80E50E0
+ push {r4,lr}
+ sub sp, 0x4
+ mov r1, sp
+ strb r0, [r1]
+ ldr r4, _080E510C
+ mov r0, sp
+ bl CheckMovementInputMachBike
+ lsls r0, 24
+ lsrs r0, 22
+ adds r0, r4
+ mov r1, sp
+ ldrb r1, [r1]
+ ldr r2, [r0]
+ adds r0, r1, 0
+ bl _call_via_r2
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E510C: .4byte gUnknown_083DB594
+ thumb_func_end MovePlayerOnMachBike
+
+ thumb_func_start CheckMovementInputMachBike
+CheckMovementInputMachBike: @ 80E5110
+ push {r4,lr}
+ adds r4, r0, 0
+ bl player_get_direction_upper_nybble
+ lsls r0, 24
+ lsrs r0, 24
+ adds r3, r0, 0
+ ldrb r1, [r4]
+ cmp r1, 0
+ bne _080E5138
+ strb r0, [r4]
+ ldr r2, _080E5134
+ ldrb r0, [r2, 0xB]
+ cmp r0, 0
+ bne _080E514C
+ strb r1, [r2, 0x2]
+ movs r0, 0
+ b _080E5160
+ .align 2, 0
+_080E5134: .4byte gPlayerAvatar
+_080E5138:
+ ldr r2, _080E5154
+ cmp r1, r3
+ beq _080E515C
+ ldrb r0, [r2, 0x2]
+ cmp r0, 0x2
+ beq _080E515C
+ ldrb r0, [r2, 0xB]
+ cmp r0, 0
+ beq _080E5158
+ strb r3, [r4]
+_080E514C:
+ movs r0, 0x2
+ strb r0, [r2, 0x2]
+ movs r0, 0x3
+ b _080E5160
+ .align 2, 0
+_080E5154: .4byte gPlayerAvatar
+_080E5158:
+ movs r0, 0x1
+ b _080E515E
+_080E515C:
+ movs r0, 0x2
+_080E515E:
+ strb r0, [r2, 0x2]
+_080E5160:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end CheckMovementInputMachBike
+
+ thumb_func_start sub_80E5168
+sub_80E5168: @ 80E5168
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ bl PlayerFaceDirection
+ bl sub_80E6024
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80E5168
+
+ thumb_func_start sub_80E517C
+sub_80E517C: @ 80E517C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, _080E51AC
+ ldrb r1, [r0, 0x5]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080E51B0
+ adds r4, r0, r1
+ ldrb r1, [r4, 0x1E]
+ adds r0, r5, 0
+ bl sub_80E5E70
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E51B4
+ adds r0, r5, 0
+ bl PlayerTurnInPlace
+ bl sub_80E6024
+ b _080E51BE
+ .align 2, 0
+_080E51AC: .4byte gPlayerAvatar
+_080E51B0: .4byte gMapObjects
+_080E51B4:
+ ldrb r0, [r4, 0x18]
+ lsls r0, 28
+ lsrs r0, 28
+ bl sub_80E5168
+_080E51BE:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80E517C
+
+ thumb_func_start sub_80E51C4
+sub_80E51C4: @ 80E51C4
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r7, r5, 0
+ ldr r6, _080E51F8
+ ldrb r1, [r6, 0x5]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080E51FC
+ adds r4, r0, r1
+ ldrb r1, [r4, 0x1E]
+ adds r0, r5, 0
+ bl sub_80E5E70
+ lsls r0, 24
+ cmp r0, 0
+ bne _080E520A
+ ldrb r0, [r6, 0xB]
+ cmp r0, 0
+ beq _080E5200
+ ldrb r0, [r4, 0x18]
+ lsrs r0, 4
+ bl sub_80E5270
+ b _080E5266
+ .align 2, 0
+_080E51F8: .4byte gPlayerAvatar
+_080E51FC: .4byte gMapObjects
+_080E5200:
+ ldrb r0, [r4, 0x18]
+ lsrs r0, 4
+ bl sub_80E5168
+ b _080E5266
+_080E520A:
+ adds r0, r5, 0
+ bl sub_80E5D34
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r1, 0xFF
+ lsls r1, 24
+ adds r0, r1
+ lsrs r0, 24
+ cmp r0, 0xA
+ bhi _080E5242
+ cmp r4, 0x6
+ bne _080E522C
+ adds r0, r5, 0
+ bl PlayerJumpLedge
+ b _080E5266
+_080E522C:
+ bl sub_80E6024
+ subs r0, r4, 0x5
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x3
+ bls _080E5266
+ adds r0, r5, 0
+ bl PlayerOnBikeCollide
+ b _080E5266
+_080E5242:
+ ldr r1, _080E526C
+ ldrb r0, [r6, 0xA]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, [r0]
+ adds r0, r7, 0
+ bl _call_via_r1
+ ldrb r2, [r6, 0xA]
+ lsls r0, r2, 24
+ lsrs r1, r0, 24
+ lsrs r0, 25
+ adds r0, r2, r0
+ strb r0, [r6, 0xB]
+ cmp r1, 0x1
+ bhi _080E5266
+ adds r0, r2, 0x1
+ strb r0, [r6, 0xA]
+_080E5266:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E526C: .4byte gUnknown_083DB5A4
+ thumb_func_end sub_80E51C4
+
+ thumb_func_start sub_80E5270
+sub_80E5270: @ 80E5270
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r7, r4, 0
+ ldr r6, _080E52A8
+ ldrb r0, [r6, 0xB]
+ cmp r0, 0
+ beq _080E5286
+ subs r0, 0x1
+ strb r0, [r6, 0xB]
+ strb r0, [r6, 0xA]
+_080E5286:
+ adds r0, r4, 0
+ bl sub_80E5D34
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r1, 0xFF
+ lsls r1, 24
+ adds r0, r1
+ lsrs r0, 24
+ cmp r0, 0xA
+ bhi _080E52C2
+ cmp r5, 0x6
+ bne _080E52AC
+ adds r0, r4, 0
+ bl PlayerJumpLedge
+ b _080E52D2
+ .align 2, 0
+_080E52A8: .4byte gPlayerAvatar
+_080E52AC:
+ bl sub_80E6024
+ subs r0, r5, 0x5
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x3
+ bls _080E52D2
+ adds r0, r4, 0
+ bl PlayerOnBikeCollide
+ b _080E52D2
+_080E52C2:
+ ldr r0, _080E52D8
+ ldrb r1, [r6, 0xA]
+ lsls r1, 2
+ adds r1, r0
+ ldr r1, [r1]
+ adds r0, r7, 0
+ bl _call_via_r1
+_080E52D2:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E52D8: .4byte gUnknown_083DB5A4
+ thumb_func_end sub_80E5270
+
+ thumb_func_start MovePlayerOnAcroBike
+MovePlayerOnAcroBike: @ 80E52DC
+ push {r4,lr}
+ sub sp, 0x4
+ mov r3, sp
+ strb r0, [r3]
+ lsls r1, 16
+ lsrs r1, 16
+ lsls r2, 16
+ lsrs r2, 16
+ ldr r4, _080E5310
+ mov r0, sp
+ bl CheckMovementInputAcroBike
+ lsls r0, 24
+ lsrs r0, 22
+ adds r0, r4
+ mov r1, sp
+ ldrb r1, [r1]
+ ldr r2, [r0]
+ adds r0, r1, 0
+ bl _call_via_r2
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E5310: .4byte gUnknown_083DB5B0
+ thumb_func_end MovePlayerOnAcroBike
+
+ thumb_func_start CheckMovementInputAcroBike
+CheckMovementInputAcroBike: @ 80E5314
+ push {r4,lr}
+ lsls r1, 16
+ lsrs r1, 16
+ lsls r2, 16
+ lsrs r2, 16
+ ldr r4, _080E5338
+ ldr r3, _080E533C
+ ldrb r3, [r3, 0x8]
+ lsls r3, 2
+ adds r3, r4
+ ldr r3, [r3]
+ bl _call_via_r3
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080E5338: .4byte gUnknown_083DB5E4
+_080E533C: .4byte gPlayerAvatar
+ thumb_func_end CheckMovementInputAcroBike
+
+ thumb_func_start CheckMovementInputAcroBikeNormal
+CheckMovementInputAcroBikeNormal: @ 80E5340
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ lsls r1, 16
+ lsrs r6, r1, 16
+ lsls r2, 16
+ lsrs r5, r2, 16
+ bl player_get_direction_upper_nybble
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldr r2, _080E5374
+ movs r0, 0
+ strb r0, [r2, 0xA]
+ ldrb r1, [r4]
+ cmp r1, 0
+ bne _080E5380
+ movs r0, 0x2
+ ands r0, r6
+ cmp r0, 0
+ beq _080E5378
+ strb r3, [r4]
+ strb r1, [r2, 0x2]
+ movs r0, 0x2
+ strb r0, [r2, 0x8]
+ movs r0, 0x3
+ b _080E53D4
+ .align 2, 0
+_080E5374: .4byte gPlayerAvatar
+_080E5378:
+ strb r3, [r4]
+ strb r1, [r2, 0x2]
+ movs r0, 0
+ b _080E53D4
+_080E5380:
+ cmp r1, r3
+ bne _080E53A6
+ movs r0, 0x2
+ ands r0, r5
+ cmp r0, 0
+ beq _080E539E
+ ldrb r0, [r2, 0xB]
+ cmp r0, 0
+ bne _080E539E
+ adds r0, 0x1
+ strb r0, [r2, 0xB]
+ movs r0, 0x4
+ strb r0, [r2, 0x8]
+ movs r0, 0xB
+ b _080E53D4
+_080E539E:
+ ldrb r0, [r4]
+ ldr r2, _080E53CC
+ cmp r0, r3
+ beq _080E53D0
+_080E53A6:
+ ldr r0, _080E53CC
+ ldrb r1, [r0, 0x2]
+ adds r2, r0, 0
+ cmp r1, 0x2
+ beq _080E53D0
+ movs r1, 0
+ movs r0, 0x1
+ strb r0, [r2, 0x8]
+ ldrb r0, [r4]
+ strb r0, [r2, 0x9]
+ strb r1, [r2, 0x2]
+ adds r0, r4, 0
+ adds r1, r6, 0
+ adds r2, r5, 0
+ bl CheckMovementInputAcroBike
+ lsls r0, 24
+ lsrs r0, 24
+ b _080E53D4
+ .align 2, 0
+_080E53CC: .4byte gPlayerAvatar
+_080E53D0:
+ movs r0, 0x2
+ strb r0, [r2, 0x2]
+_080E53D4:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end CheckMovementInputAcroBikeNormal
+
+ thumb_func_start CheckMovementInputAcroBikeChangingDirection
+CheckMovementInputAcroBikeChangingDirection: @ 80E53DC
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ ldr r4, _080E5404
+ ldrb r0, [r4, 0x9]
+ strb r0, [r5]
+ ldrb r0, [r4, 0xA]
+ adds r0, 0x1
+ strb r0, [r4, 0xA]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x6
+ bls _080E5408
+ movs r0, 0x1
+ strb r0, [r4, 0x2]
+ movs r0, 0
+ strb r0, [r4, 0x8]
+ bl sub_80E6024
+ movs r0, 0x1
+ b _080E544E
+ .align 2, 0
+_080E5404: .4byte gPlayerAvatar
+_080E5408:
+ bl player_get_direction_upper_nybble
+ lsls r0, 24
+ lsrs r6, r0, 24
+ bl sub_80E5C2C
+ ldrb r1, [r5]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r1, r0
+ bne _080E544A
+ bl sub_80E6024
+ movs r0, 0x1
+ strb r0, [r4, 0xB]
+ adds r0, r6, 0
+ bl GetOppositeDirection
+ ldrb r1, [r5]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r1, r0
+ bne _080E543E
+ movs r0, 0x6
+ strb r0, [r4, 0x8]
+ movs r0, 0x9
+ b _080E544E
+_080E543E:
+ movs r0, 0x2
+ strb r0, [r4, 0x2]
+ movs r0, 0x5
+ strb r0, [r4, 0x8]
+ movs r0, 0x8
+ b _080E544E
+_080E544A:
+ strb r6, [r5]
+ movs r0, 0
+_080E544E:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end CheckMovementInputAcroBikeChangingDirection
+
+ thumb_func_start CheckMovementInputAcroBikeStandingWheelie
+CheckMovementInputAcroBikeStandingWheelie: @ 80E5454
+ push {r4-r7,lr}
+ adds r7, r0, 0
+ lsls r4, r2, 16
+ lsrs r4, 16
+ bl player_get_direction_upper_nybble
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r5, _080E54A0
+ ldrb r1, [r5, 0x5]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080E54A4
+ adds r1, r0, r1
+ movs r0, 0
+ strb r0, [r5, 0x2]
+ movs r0, 0x2
+ ands r4, r0
+ lsls r4, 16
+ lsrs r4, 16
+ cmp r4, 0
+ bne _080E54A8
+ strb r4, [r5, 0xA]
+ ldrb r0, [r1, 0x1E]
+ bl MetatileBehavior_IsBumpySlope
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ bne _080E54AE
+ strb r6, [r7]
+ strb r0, [r5, 0x8]
+ bl sub_80E6024
+ movs r0, 0x4
+ b _080E54EC
+ .align 2, 0
+_080E54A0: .4byte gPlayerAvatar
+_080E54A4: .4byte gMapObjects
+_080E54A8:
+ ldrb r0, [r5, 0xA]
+ adds r0, 0x1
+ strb r0, [r5, 0xA]
+_080E54AE:
+ ldr r1, _080E54C4
+ ldrb r0, [r1, 0xA]
+ cmp r0, 0x27
+ bls _080E54C8
+ strb r6, [r7]
+ movs r0, 0x3
+ strb r0, [r1, 0x8]
+ bl sub_80E6024
+ movs r0, 0x6
+ b _080E54EC
+ .align 2, 0
+_080E54C4: .4byte gPlayerAvatar
+_080E54C8:
+ ldrb r0, [r7]
+ cmp r0, r6
+ bne _080E54DE
+ movs r0, 0x2
+ strb r0, [r1, 0x2]
+ movs r0, 0x4
+ strb r0, [r1, 0x8]
+ bl sub_80E6024
+ movs r0, 0xA
+ b _080E54EC
+_080E54DE:
+ cmp r0, 0
+ beq _080E54E8
+ movs r0, 0x1
+ strb r0, [r1, 0x2]
+ b _080E54EA
+_080E54E8:
+ strb r6, [r7]
+_080E54EA:
+ movs r0, 0x5
+_080E54EC:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end CheckMovementInputAcroBikeStandingWheelie
+
+ thumb_func_start CheckMovementInputAcroBikeBunnyHop
+CheckMovementInputAcroBikeBunnyHop: @ 80E54F4
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ adds r6, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ mov r9, r1
+ lsls r2, 16
+ lsrs r2, 16
+ mov r8, r2
+ bl player_get_direction_upper_nybble
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r2, r5, 0
+ ldr r4, _080E5554
+ ldrb r1, [r4, 0x5]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080E5558
+ adds r7, r0, r1
+ movs r0, 0x2
+ mov r1, r8
+ ands r0, r1
+ cmp r0, 0
+ bne _080E5566
+ bl sub_80E6024
+ ldrb r0, [r7, 0x1E]
+ bl MetatileBehavior_IsBumpySlope
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ beq _080E555C
+ movs r0, 0x2
+ strb r0, [r4, 0x8]
+ adds r0, r6, 0
+ mov r1, r9
+ mov r2, r8
+ bl CheckMovementInputAcroBike
+ lsls r0, 24
+ lsrs r0, 24
+ b _080E558A
+ .align 2, 0
+_080E5554: .4byte gPlayerAvatar
+_080E5558: .4byte gMapObjects
+_080E555C:
+ strb r5, [r6]
+ strb r0, [r4, 0x2]
+ strb r0, [r4, 0x8]
+ movs r0, 0x4
+ b _080E558A
+_080E5566:
+ ldrb r0, [r6]
+ cmp r0, 0
+ bne _080E5570
+ strb r5, [r6]
+ b _080E557C
+_080E5570:
+ cmp r0, r2
+ beq _080E5582
+ ldrb r0, [r4, 0x2]
+ cmp r0, 0x2
+ beq _080E5582
+ movs r0, 0x1
+_080E557C:
+ strb r0, [r4, 0x2]
+ movs r0, 0x6
+ b _080E558A
+_080E5582:
+ ldr r1, _080E5598
+ movs r0, 0x2
+ strb r0, [r1, 0x2]
+ movs r0, 0x7
+_080E558A:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080E5598: .4byte gPlayerAvatar
+ thumb_func_end CheckMovementInputAcroBikeBunnyHop
+
+ thumb_func_start CheckMovementInputAcroBikeMovingWheelie
+CheckMovementInputAcroBikeMovingWheelie: @ 80E559C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ adds r6, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ mov r10, r1
+ lsls r2, 16
+ lsrs r2, 16
+ mov r8, r2
+ bl player_get_direction_lower_nybble
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r2, r5, 0
+ ldr r4, _080E55F8
+ ldrb r1, [r4, 0x5]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080E55FC
+ adds r7, r0, r1
+ movs r0, 0x2
+ mov r9, r0
+ movs r0, 0x2
+ mov r1, r8
+ ands r0, r1
+ cmp r0, 0
+ bne _080E5634
+ bl sub_80E6024
+ ldrb r0, [r7, 0x1E]
+ bl MetatileBehavior_IsBumpySlope
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0
+ bne _080E5620
+ strb r1, [r4, 0x8]
+ ldrb r0, [r6]
+ cmp r0, 0
+ bne _080E5600
+ strb r5, [r6]
+ b _080E560A
+ .align 2, 0
+_080E55F8: .4byte gPlayerAvatar
+_080E55FC: .4byte gMapObjects
+_080E5600:
+ cmp r0, r5
+ beq _080E5610
+ ldrb r0, [r4, 0x2]
+ cmp r0, 0x2
+ beq _080E5610
+_080E560A:
+ strb r1, [r4, 0x2]
+ movs r0, 0x4
+ b _080E5664
+_080E5610:
+ ldr r1, _080E561C
+ movs r0, 0x2
+ strb r0, [r1, 0x2]
+ movs r0, 0xC
+ b _080E5664
+ .align 2, 0
+_080E561C: .4byte gPlayerAvatar
+_080E5620:
+ mov r0, r9
+ strb r0, [r4, 0x8]
+ adds r0, r6, 0
+ mov r1, r10
+ mov r2, r8
+ bl CheckMovementInputAcroBike
+ lsls r0, 24
+ lsrs r0, 24
+ b _080E5664
+_080E5634:
+ ldrb r0, [r6]
+ cmp r0, 0
+ bne _080E564A
+ strb r5, [r6]
+ mov r1, r9
+ strb r1, [r4, 0x8]
+ strb r0, [r4, 0x2]
+ bl sub_80E6024
+ movs r0, 0x5
+ b _080E5664
+_080E564A:
+ cmp r2, r0
+ beq _080E565C
+ ldrb r0, [r4, 0x2]
+ cmp r0, 0x2
+ beq _080E565C
+ movs r0, 0
+ strb r0, [r4, 0x2]
+ movs r0, 0x5
+ b _080E5664
+_080E565C:
+ ldr r1, _080E5674
+ movs r0, 0x2
+ strb r0, [r1, 0x2]
+ movs r0, 0xA
+_080E5664:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080E5674: .4byte gPlayerAvatar
+ thumb_func_end CheckMovementInputAcroBikeMovingWheelie
+
+ thumb_func_start CheckMovementInputAcroBikeUnknownMode5
+CheckMovementInputAcroBikeUnknownMode5: @ 80E5678
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ mov r8, r0
+ adds r4, r1, 0
+ adds r5, r2, 0
+ lsls r4, 16
+ lsrs r4, 16
+ lsls r5, 16
+ lsrs r5, 16
+ ldr r6, _080E56CC
+ ldrb r1, [r6, 0x5]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080E56D0
+ adds r0, r1
+ ldrb r2, [r0, 0x1]
+ movs r1, 0x3
+ negs r1, r1
+ ands r1, r2
+ strb r1, [r0, 0x1]
+ ldrb r1, [r0, 0x18]
+ lsls r1, 28
+ lsrs r1, 28
+ bl FieldObjectSetDirection
+ movs r0, 0
+ strb r0, [r6, 0x8]
+ mov r0, r8
+ adds r1, r4, 0
+ adds r2, r5, 0
+ bl CheckMovementInputAcroBike
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080E56CC: .4byte gPlayerAvatar
+_080E56D0: .4byte gMapObjects
+ thumb_func_end CheckMovementInputAcroBikeUnknownMode5
+
+ thumb_func_start CheckMovementInputAcroBikeUnknownMode6
+CheckMovementInputAcroBikeUnknownMode6: @ 80E56D4
+ push {r4,lr}
+ lsls r1, 16
+ lsrs r1, 16
+ lsls r2, 16
+ lsrs r2, 16
+ ldr r4, _080E56F4
+ movs r3, 0
+ strb r3, [r4, 0x8]
+ bl CheckMovementInputAcroBike
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080E56F4: .4byte gPlayerAvatar
+ thumb_func_end CheckMovementInputAcroBikeUnknownMode6
+
+ thumb_func_start sub_80E56F8
+sub_80E56F8: @ 80E56F8
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ bl PlayerFaceDirection
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80E56F8
+
+ thumb_func_start sub_80E5708
+sub_80E5708: @ 80E5708
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _080E573C
+ ldrb r1, [r0, 0x5]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080E5740
+ adds r5, r0, r1
+ ldrb r1, [r5, 0x1E]
+ adds r0, r4, 0
+ bl sub_80E5E70
+ lsls r0, 24
+ cmp r0, 0
+ bne _080E572E
+ ldrb r0, [r5, 0x18]
+ lsrs r4, r0, 4
+_080E572E:
+ adds r0, r4, 0
+ bl PlayerFaceDirection
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E573C: .4byte gPlayerAvatar
+_080E5740: .4byte gMapObjects
+ thumb_func_end sub_80E5708
+
+ thumb_func_start sub_80E5744
+sub_80E5744: @ 80E5744
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r6, r4, 0
+ ldr r0, _080E5774
+ ldrb r1, [r0, 0x5]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080E5778
+ adds r5, r0, r1
+ ldrb r1, [r5, 0x1E]
+ adds r0, r4, 0
+ bl sub_80E5E70
+ lsls r0, 24
+ cmp r0, 0
+ bne _080E577C
+ ldrb r0, [r5, 0x18]
+ lsrs r0, 4
+ bl sub_80E56F8
+ b _080E57B6
+ .align 2, 0
+_080E5774: .4byte gPlayerAvatar
+_080E5778: .4byte gMapObjects
+_080E577C:
+ adds r0, r4, 0
+ bl sub_80E5D34
+ lsls r0, 24
+ lsrs r1, r0, 24
+ movs r2, 0xFF
+ lsls r2, 24
+ adds r0, r2
+ lsrs r0, 24
+ cmp r0, 0xA
+ bhi _080E57B0
+ cmp r1, 0x6
+ bne _080E579E
+ adds r0, r4, 0
+ bl PlayerJumpLedge
+ b _080E57B6
+_080E579E:
+ subs r0, r1, 0x5
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x3
+ bls _080E57B6
+ adds r0, r4, 0
+ bl PlayerOnBikeCollide
+ b _080E57B6
+_080E57B0:
+ adds r0, r6, 0
+ bl npc_use_some_d2s
+_080E57B6:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80E5744
+
+ thumb_func_start sub_80E57BC
+sub_80E57BC: @ 80E57BC
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _080E57F0
+ ldrb r1, [r0, 0x5]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080E57F4
+ adds r5, r0, r1
+ ldrb r1, [r5, 0x1E]
+ adds r0, r4, 0
+ bl sub_80E5E70
+ lsls r0, 24
+ cmp r0, 0
+ bne _080E57E2
+ ldrb r0, [r5, 0x18]
+ lsrs r4, r0, 4
+_080E57E2:
+ adds r0, r4, 0
+ bl sub_805951C
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E57F0: .4byte gPlayerAvatar
+_080E57F4: .4byte gMapObjects
+ thumb_func_end sub_80E57BC
+
+ thumb_func_start sub_80E57F8
+sub_80E57F8: @ 80E57F8
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _080E582C
+ ldrb r1, [r0, 0x5]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080E5830
+ adds r5, r0, r1
+ ldrb r1, [r5, 0x1E]
+ adds r0, r4, 0
+ bl sub_80E5E70
+ lsls r0, 24
+ cmp r0, 0
+ bne _080E581E
+ ldrb r0, [r5, 0x18]
+ lsrs r4, r0, 4
+_080E581E:
+ adds r0, r4, 0
+ bl sub_8059534
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E582C: .4byte gPlayerAvatar
+_080E5830: .4byte gMapObjects
+ thumb_func_end sub_80E57F8
+
+ thumb_func_start sub_80E5834
+sub_80E5834: @ 80E5834
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _080E5868
+ ldrb r1, [r0, 0x5]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080E586C
+ adds r5, r0, r1
+ ldrb r1, [r5, 0x1E]
+ adds r0, r4, 0
+ bl sub_80E5E70
+ lsls r0, 24
+ cmp r0, 0
+ bne _080E585A
+ ldrb r0, [r5, 0x18]
+ lsrs r4, r0, 4
+_080E585A:
+ adds r0, r4, 0
+ bl sub_8059504
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E5868: .4byte gPlayerAvatar
+_080E586C: .4byte gMapObjects
+ thumb_func_end sub_80E5834
+
+ thumb_func_start sub_80E5870
+sub_80E5870: @ 80E5870
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _080E58A4
+ ldrb r1, [r0, 0x5]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080E58A8
+ adds r5, r0, r1
+ ldrb r1, [r5, 0x1E]
+ adds r0, r4, 0
+ bl sub_80E5E70
+ lsls r0, 24
+ cmp r0, 0
+ bne _080E5896
+ ldrb r0, [r5, 0x18]
+ lsrs r4, r0, 4
+_080E5896:
+ adds r0, r4, 0
+ bl sub_805954C
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E58A4: .4byte gPlayerAvatar
+_080E58A8: .4byte gMapObjects
+ thumb_func_end sub_80E5870
+
+ thumb_func_start sub_80E58AC
+sub_80E58AC: @ 80E58AC
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _080E58D8
+ ldrb r1, [r0, 0x5]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080E58DC
+ adds r5, r0, r1
+ ldrb r1, [r5, 0x1E]
+ adds r0, r4, 0
+ bl sub_80E5E70
+ lsls r0, 24
+ cmp r0, 0
+ bne _080E58E0
+ ldrb r0, [r5, 0x18]
+ lsrs r0, 4
+ bl sub_80E5870
+ b _080E591A
+ .align 2, 0
+_080E58D8: .4byte gPlayerAvatar
+_080E58DC: .4byte gMapObjects
+_080E58E0:
+ adds r0, r4, 0
+ bl sub_80E5D34
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0
+ beq _080E5914
+ cmp r1, 0x9
+ beq _080E5914
+ cmp r1, 0x6
+ bne _080E58FE
+ adds r0, r4, 0
+ bl sub_8059594
+ b _080E591A
+_080E58FE:
+ subs r0, r1, 0x5
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x3
+ bls _080E591A
+ cmp r1, 0xB
+ bhi _080E5914
+ adds r0, r4, 0
+ bl sub_80E5870
+ b _080E591A
+_080E5914:
+ adds r0, r4, 0
+ bl sub_8059570
+_080E591A:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80E58AC
+
+ thumb_func_start sub_80E5920
+sub_80E5920: @ 80E5920
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r0, r5, 0
+ bl sub_80E5D34
+ lsls r0, 24
+ lsrs r0, 24
+ adds r1, r0, 0
+ cmp r0, 0
+ beq _080E5954
+ cmp r0, 0x7
+ beq _080E5980
+ cmp r0, 0x9
+ bls _080E594C
+ adds r0, r1, 0
+ adds r1, r5, 0
+ bl sub_80E5EC0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080E5954
+_080E594C:
+ adds r0, r5, 0
+ bl sub_80E5708
+ b _080E5980
+_080E5954:
+ ldr r0, _080E5988
+ ldrb r0, [r0, 0x5]
+ lsls r4, r0, 3
+ adds r4, r0
+ lsls r4, 2
+ ldr r0, _080E598C
+ adds r4, r0
+ movs r0, 0x22
+ bl PlaySE
+ ldrb r0, [r4, 0x1]
+ movs r1, 0x2
+ orrs r0, r1
+ strb r0, [r4, 0x1]
+ adds r0, r5, 0
+ bl sub_80608A4
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x2
+ bl player_npc_set_state_and_x22_etc
+_080E5980:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E5988: .4byte gPlayerAvatar
+_080E598C: .4byte gMapObjects
+ thumb_func_end sub_80E5920
+
+ thumb_func_start sub_80E5990
+sub_80E5990: @ 80E5990
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_80595B8
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80E5990
+
+ thumb_func_start sub_80E59A0
+sub_80E59A0: @ 80E59A0
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r6, r4, 0
+ ldr r7, _080E59D0
+ ldrb r1, [r7, 0x5]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080E59D4
+ adds r5, r0, r1
+ ldrb r1, [r5, 0x1E]
+ adds r0, r4, 0
+ bl sub_80E5E70
+ lsls r0, 24
+ cmp r0, 0
+ bne _080E59D8
+ ldrb r0, [r5, 0x18]
+ lsrs r0, 4
+ bl sub_8059504
+ b _080E5A28
+ .align 2, 0
+_080E59D0: .4byte gPlayerAvatar
+_080E59D4: .4byte gMapObjects
+_080E59D8:
+ adds r0, r4, 0
+ bl sub_80E5D34
+ lsls r0, 24
+ lsrs r1, r0, 24
+ movs r2, 0xFF
+ lsls r2, 24
+ adds r0, r2
+ lsrs r0, 24
+ cmp r0, 0xA
+ bhi _080E5A1E
+ cmp r1, 0x6
+ bne _080E59FA
+ adds r0, r4, 0
+ bl sub_8059594
+ b _080E5A28
+_080E59FA:
+ cmp r1, 0x9
+ beq _080E5A0E
+ cmp r1, 0x4
+ bhi _080E5A28
+ ldrb r0, [r5, 0x1E]
+ bl MetatileBehavior_IsBumpySlope
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E5A16
+_080E5A0E:
+ adds r0, r4, 0
+ bl sub_8059504
+ b _080E5A28
+_080E5A16:
+ adds r0, r4, 0
+ bl sub_80595DC
+ b _080E5A28
+_080E5A1E:
+ adds r0, r6, 0
+ bl sub_8059618
+ movs r0, 0x2
+ strb r0, [r7, 0x2]
+_080E5A28:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80E59A0
+
+ thumb_func_start sub_80E5A30
+sub_80E5A30: @ 80E5A30
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r6, r4, 0
+ ldr r7, _080E5A60
+ ldrb r1, [r7, 0x5]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080E5A64
+ adds r5, r0, r1
+ ldrb r1, [r5, 0x1E]
+ adds r0, r4, 0
+ bl sub_80E5E70
+ lsls r0, 24
+ cmp r0, 0
+ bne _080E5A68
+ ldrb r0, [r5, 0x18]
+ lsrs r0, 4
+ bl sub_805951C
+ b _080E5AB8
+ .align 2, 0
+_080E5A60: .4byte gPlayerAvatar
+_080E5A64: .4byte gMapObjects
+_080E5A68:
+ adds r0, r4, 0
+ bl sub_80E5D34
+ lsls r0, 24
+ lsrs r1, r0, 24
+ movs r2, 0xFF
+ lsls r2, 24
+ adds r0, r2
+ lsrs r0, 24
+ cmp r0, 0xA
+ bhi _080E5AAE
+ cmp r1, 0x6
+ bne _080E5A8A
+ adds r0, r4, 0
+ bl sub_8059594
+ b _080E5AB8
+_080E5A8A:
+ cmp r1, 0x9
+ beq _080E5A9E
+ cmp r1, 0x4
+ bhi _080E5AB8
+ ldrb r0, [r5, 0x1E]
+ bl MetatileBehavior_IsBumpySlope
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E5AA6
+_080E5A9E:
+ adds r0, r4, 0
+ bl sub_8059504
+ b _080E5AB8
+_080E5AA6:
+ adds r0, r4, 0
+ bl sub_80595DC
+ b _080E5AB8
+_080E5AAE:
+ adds r0, r6, 0
+ bl sub_8059600
+ movs r0, 0x2
+ strb r0, [r7, 0x2]
+_080E5AB8:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80E5A30
+
+ thumb_func_start sub_80E5AC0
+sub_80E5AC0: @ 80E5AC0
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r6, r4, 0
+ ldr r0, _080E5AF0
+ ldrb r1, [r0, 0x5]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080E5AF4
+ adds r5, r0, r1
+ ldrb r1, [r5, 0x1E]
+ adds r0, r4, 0
+ bl sub_80E5E70
+ lsls r0, 24
+ cmp r0, 0
+ bne _080E5AF8
+ ldrb r0, [r5, 0x18]
+ lsrs r0, 4
+ bl sub_8059534
+ b _080E5B32
+ .align 2, 0
+_080E5AF0: .4byte gPlayerAvatar
+_080E5AF4: .4byte gMapObjects
+_080E5AF8:
+ adds r0, r4, 0
+ bl sub_80E5D34
+ lsls r0, 24
+ lsrs r1, r0, 24
+ movs r2, 0xFF
+ lsls r2, 24
+ adds r0, r2
+ lsrs r0, 24
+ cmp r0, 0xA
+ bhi _080E5B2C
+ cmp r1, 0x6
+ bne _080E5B1A
+ adds r0, r4, 0
+ bl PlayerJumpLedge
+ b _080E5B32
+_080E5B1A:
+ subs r0, r1, 0x5
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x3
+ bls _080E5B32
+ adds r0, r4, 0
+ bl sub_8059534
+ b _080E5B32
+_080E5B2C:
+ adds r0, r6, 0
+ bl sub_8059630
+_080E5B32:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80E5AC0
+
+ thumb_func_start sub_80E5B38
+sub_80E5B38: @ 80E5B38
+ push {lr}
+ lsls r0, 16
+ lsrs r3, r0, 16
+ lsls r1, 16
+ lsrs r2, r1, 16
+ ldr r0, _080E5B5C
+ ldrb r1, [r0]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _080E5B56
+ adds r0, r3, 0
+ adds r1, r2, 0
+ bl sub_80E5B60
+_080E5B56:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E5B5C: .4byte gPlayerAvatar
+ thumb_func_end sub_80E5B38
+
+ thumb_func_start sub_80E5B60
+sub_80E5B60: @ 80E5B60
+ push {r4,r5,lr}
+ lsls r1, 16
+ lsrs r5, r1, 16
+ adds r0, r5, 0
+ bl sub_80E5CF4
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r4, _080E5B88
+ ldr r0, [r4, 0xC]
+ movs r1, 0xF
+ ands r0, r1
+ cmp r2, r0
+ bne _080E5B8C
+ ldrb r0, [r4, 0x14]
+ cmp r0, 0xFE
+ bhi _080E5B96
+ adds r0, 0x1
+ strb r0, [r4, 0x14]
+ b _080E5B96
+ .align 2, 0
+_080E5B88: .4byte gPlayerAvatar
+_080E5B8C:
+ adds r0, r2, 0
+ bl sub_80E5C7C
+ movs r0, 0
+ strb r0, [r4, 0xB]
+_080E5B96:
+ movs r0, 0xF
+ adds r2, r5, 0
+ ands r2, r0
+ ldr r4, _080E5BB4
+ ldr r0, [r4, 0x10]
+ movs r1, 0xF
+ ands r0, r1
+ cmp r2, r0
+ bne _080E5BB8
+ ldrb r0, [r4, 0x1C]
+ cmp r0, 0xFE
+ bhi _080E5BC2
+ adds r0, 0x1
+ strb r0, [r4, 0x1C]
+ b _080E5BC2
+ .align 2, 0
+_080E5BB4: .4byte gPlayerAvatar
+_080E5BB8:
+ adds r0, r2, 0
+ bl sub_80E5CB8
+ movs r0, 0
+ strb r0, [r4, 0xB]
+_080E5BC2:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80E5B60
+
+ thumb_func_start sub_80E5BC8
+sub_80E5BC8: @ 80E5BC8
+ push {r4,r5,lr}
+ adds r3, r0, 0
+ adds r4, r1, 0
+ movs r2, 0
+ ldrb r0, [r3]
+ cmp r0, 0
+ beq _080E5BF2
+ ldr r5, _080E5C0C
+_080E5BD8:
+ adds r0, r2, r5
+ adds r1, r3, r2
+ ldrb r0, [r0]
+ ldrb r1, [r1]
+ cmp r0, r1
+ bhi _080E5C08
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ adds r0, r3, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080E5BD8
+_080E5BF2:
+ movs r2, 0
+ ldrb r0, [r4]
+ cmp r0, 0
+ beq _080E5C22
+ ldr r3, _080E5C10
+_080E5BFC:
+ adds r0, r2, r3
+ adds r1, r4, r2
+ ldrb r0, [r0]
+ ldrb r1, [r1]
+ cmp r0, r1
+ bls _080E5C14
+_080E5C08:
+ movs r0, 0
+ b _080E5C24
+ .align 2, 0
+_080E5C0C: .4byte gUnknown_0202E86C
+_080E5C10: .4byte gUnknown_0202E874
+_080E5C14:
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ adds r0, r4, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080E5BFC
+_080E5C22:
+ movs r0, 0x1
+_080E5C24:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80E5BC8
+
+ thumb_func_start sub_80E5C2C
+sub_80E5C2C: @ 80E5C2C
+ push {r4-r6,lr}
+ movs r6, 0
+ movs r5, 0
+_080E5C32:
+ ldr r0, _080E5C64
+ adds r4, r5, r0
+ ldr r0, _080E5C68
+ ldr r1, [r0, 0xC]
+ ldr r2, [r0, 0x10]
+ ldr r0, [r4, 0x8]
+ ands r1, r0
+ ldr r0, [r4, 0xC]
+ ands r2, r0
+ ldr r0, [r4]
+ cmp r1, r0
+ bne _080E5C6C
+ ldr r0, [r4, 0x4]
+ cmp r2, r0
+ bne _080E5C6C
+ ldr r0, [r4, 0x10]
+ ldr r1, [r4, 0x14]
+ bl sub_80E5BC8
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E5C6C
+ ldrb r0, [r4, 0x18]
+ b _080E5C76
+ .align 2, 0
+_080E5C64: .4byte gUnknown_083DB608
+_080E5C68: .4byte gPlayerAvatar
+_080E5C6C:
+ adds r5, 0x1C
+ adds r6, 0x1
+ cmp r6, 0x3
+ bls _080E5C32
+ movs r0, 0
+_080E5C76:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80E5C2C
+
+ thumb_func_start sub_80E5C7C
+sub_80E5C7C: @ 80E5C7C
+ push {r4,lr}
+ lsls r0, 24
+ ldr r3, _080E5CB4
+ ldr r2, [r3, 0xC]
+ lsls r2, 4
+ movs r1, 0xF0
+ lsls r1, 20
+ ands r1, r0
+ lsrs r1, 24
+ orrs r2, r1
+ str r2, [r3, 0xC]
+ movs r1, 0x7
+ adds r4, r3, 0
+ adds r3, 0x14
+_080E5C98:
+ adds r2, r1, r3
+ subs r1, 0x1
+ adds r0, r1, r3
+ ldrb r0, [r0]
+ strb r0, [r2]
+ lsls r1, 24
+ lsrs r1, 24
+ cmp r1, 0
+ bne _080E5C98
+ movs r0, 0x1
+ strb r0, [r4, 0x14]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E5CB4: .4byte gPlayerAvatar
+ thumb_func_end sub_80E5C7C
+
+ thumb_func_start sub_80E5CB8
+sub_80E5CB8: @ 80E5CB8
+ push {r4,lr}
+ lsls r0, 24
+ ldr r3, _080E5CF0
+ ldr r2, [r3, 0x10]
+ lsls r2, 4
+ movs r1, 0xF0
+ lsls r1, 20
+ ands r1, r0
+ lsrs r1, 24
+ orrs r2, r1
+ str r2, [r3, 0x10]
+ movs r1, 0x7
+ adds r4, r3, 0
+ adds r3, 0x1C
+_080E5CD4:
+ adds r2, r1, r3
+ subs r1, 0x1
+ adds r0, r1, r3
+ ldrb r0, [r0]
+ strb r0, [r2]
+ lsls r1, 24
+ lsrs r1, 24
+ cmp r1, 0
+ bne _080E5CD4
+ movs r0, 0x1
+ strb r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E5CF0: .4byte gPlayerAvatar
+ thumb_func_end sub_80E5CB8
+
+ thumb_func_start sub_80E5CF4
+sub_80E5CF4: @ 80E5CF4
+ push {lr}
+ lsls r0, 16
+ lsrs r1, r0, 16
+ adds r2, r1, 0
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _080E5D08
+ movs r0, 0x2
+ b _080E5D2E
+_080E5D08:
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _080E5D14
+ movs r0, 0x1
+ b _080E5D2E
+_080E5D14:
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _080E5D20
+ movs r0, 0x3
+ b _080E5D2E
+_080E5D20:
+ movs r0, 0x10
+ ands r2, r0
+ cmp r2, 0
+ bne _080E5D2C
+ movs r0, 0
+ b _080E5D2E
+_080E5D2C:
+ movs r0, 0x4
+_080E5D2E:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80E5CF4
+
+ thumb_func_start sub_80E5D34
+sub_80E5D34: @ 80E5D34
+ push {r4-r6,lr}
+ sub sp, 0x8
+ adds r6, r0, 0
+ lsls r6, 24
+ lsrs r6, 24
+ ldr r0, _080E5D98
+ ldrb r0, [r0, 0x5]
+ lsls r4, r0, 3
+ adds r4, r0
+ lsls r4, 2
+ ldr r0, _080E5D9C
+ adds r4, r0
+ ldrh r1, [r4, 0x10]
+ add r0, sp, 0x4
+ strh r1, [r0]
+ ldrh r0, [r4, 0x12]
+ mov r5, sp
+ adds r5, 0x6
+ strh r0, [r5]
+ adds r0, r6, 0
+ add r1, sp, 0x4
+ adds r2, r5, 0
+ bl MoveCoords
+ add r0, sp, 0x4
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ movs r2, 0
+ ldrsh r1, [r5, r2]
+ bl MapGridGetMetatileBehaviorAt
+ lsls r0, 24
+ lsrs r0, 24
+ add r1, sp, 0x4
+ movs r3, 0
+ ldrsh r1, [r1, r3]
+ movs r3, 0
+ ldrsh r2, [r5, r3]
+ str r0, [sp]
+ adds r0, r4, 0
+ adds r3, r6, 0
+ bl sub_80E5DA0
+ lsls r0, 24
+ lsrs r0, 24
+ add sp, 0x8
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080E5D98: .4byte gPlayerAvatar
+_080E5D9C: .4byte gMapObjects
+ thumb_func_end sub_80E5D34
+
+ thumb_func_start sub_80E5DA0
+sub_80E5DA0: @ 80E5DA0
+ push {r4,r5,lr}
+ sub sp, 0x4
+ ldr r4, [sp, 0x10]
+ lsls r3, 24
+ lsrs r3, 24
+ lsls r4, 24
+ lsrs r4, 24
+ adds r5, r4, 0
+ lsls r1, 16
+ asrs r1, 16
+ lsls r2, 16
+ asrs r2, 16
+ str r5, [sp]
+ bl CheckForFieldObjectCollision
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x4
+ bhi _080E5DE0
+ cmp r4, 0
+ bne _080E5DDC
+ adds r0, r5, 0
+ bl IsRunningDisallowedByMetatile
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E5DD8
+ movs r4, 0x2
+_080E5DD8:
+ cmp r4, 0
+ beq _080E5DE0
+_080E5DDC:
+ bl sub_80E5E4C
+_080E5DE0:
+ adds r0, r4, 0
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80E5DA0
+
+ thumb_func_start sub_80E5DEC
+sub_80E5DEC: @ 80E5DEC
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ bl IsRunningDisallowedByMetatile
+ lsls r0, 24
+ cmp r0, 0
+ bne _080E5E04
+ ldr r0, _080E5E08
+ ldrb r0, [r0, 0x17]
+ cmp r0, 0x8
+ bne _080E5E0C
+_080E5E04:
+ movs r0, 0x1
+ b _080E5E0E
+ .align 2, 0
+_080E5E08: .4byte gMapHeader
+_080E5E0C:
+ movs r0, 0
+_080E5E0E:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80E5DEC
+
+ thumb_func_start IsRunningDisallowedByMetatile
+IsRunningDisallowedByMetatile: @ 80E5E14
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r0, r4, 0
+ bl MetatileBehavior_IsRunningDisallowed
+ lsls r0, 24
+ cmp r0, 0
+ bne _080E5E3E
+ adds r0, r4, 0
+ bl MetatileBehavior_IsFortreeBridge
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E5E42
+ bl PlayerGetZCoord
+ movs r1, 0x1
+ ands r1, r0
+ cmp r1, 0
+ bne _080E5E42
+_080E5E3E:
+ movs r0, 0x1
+ b _080E5E44
+_080E5E42:
+ movs r0, 0
+_080E5E44:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end IsRunningDisallowedByMetatile
+
+ thumb_func_start sub_80E5E4C
+sub_80E5E4C: @ 80E5E4C
+ push {lr}
+ ldr r0, _080E5E68
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080E5E62
+ ldr r1, _080E5E6C
+ ldrb r0, [r1]
+ cmp r0, 0x63
+ bhi _080E5E62
+ adds r0, 0x1
+ strb r0, [r1]
+_080E5E62:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E5E68: .4byte gUnknown_02039250
+_080E5E6C: .4byte gUnknown_02039251
+ thumb_func_end sub_80E5E4C
+
+ thumb_func_start sub_80E5E70
+sub_80E5E70: @ 80E5E70
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsls r1, 24
+ lsrs r4, r1, 24
+ adds r5, r4, 0
+ movs r1, 0xFD
+ lsls r1, 24
+ adds r0, r1
+ lsrs r0, 24
+ cmp r0, 0x1
+ bhi _080E5E9A
+ adds r0, r4, 0
+ bl MetatileBehavior_IsIsolatedVerticalRail
+ lsls r0, 24
+ cmp r0, 0
+ bne _080E5EB2
+ adds r0, r4, 0
+ bl MetatileBehavior_IsVerticalRail
+ b _080E5EAC
+_080E5E9A:
+ adds r0, r5, 0
+ bl MetatileBehavior_IsIsolatedHorizontalRail
+ lsls r0, 24
+ cmp r0, 0
+ bne _080E5EB2
+ adds r0, r5, 0
+ bl MetatileBehavior_IsHorizontalRail
+_080E5EAC:
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E5EB6
+_080E5EB2:
+ movs r0, 0
+ b _080E5EB8
+_080E5EB6:
+ movs r0, 0x1
+_080E5EB8:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80E5E70
+
+ thumb_func_start sub_80E5EC0
+sub_80E5EC0: @ 80E5EC0
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r2, r0, 0
+ lsls r1, 24
+ movs r3, 0xFF
+ lsls r3, 24
+ adds r1, r3
+ lsrs r1, 24
+ cmp r1, 0x1
+ bhi _080E5EE0
+ cmp r0, 0xA
+ beq _080E5EE8
+ cmp r0, 0xC
+ bne _080E5EEC
+ b _080E5EE8
+_080E5EE0:
+ cmp r2, 0xB
+ beq _080E5EE8
+ cmp r2, 0xD
+ bne _080E5EEC
+_080E5EE8:
+ movs r0, 0
+ b _080E5EEE
+_080E5EEC:
+ movs r0, 0x1
+_080E5EEE:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80E5EC0
+
+ thumb_func_start sub_80E5EF4
+sub_80E5EF4: @ 80E5EF4
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r0, _080E5F30
+ ldrb r1, [r0]
+ movs r0, 0x18
+ ands r0, r1
+ cmp r0, 0
+ bne _080E5F34
+ mov r4, sp
+ adds r4, 0x2
+ mov r0, sp
+ adds r1, r4, 0
+ bl PlayerGetDestCoords
+ mov r0, sp
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ movs r2, 0
+ ldrsh r1, [r4, r2]
+ bl MapGridGetMetatileBehaviorAt
+ lsls r0, 24
+ lsrs r0, 24
+ bl IsRunningDisallowedByMetatile
+ lsls r0, 24
+ cmp r0, 0
+ bne _080E5F34
+ movs r0, 0
+ b _080E5F36
+ .align 2, 0
+_080E5F30: .4byte gPlayerAvatar
+_080E5F34:
+ movs r0, 0x1
+_080E5F36:
+ add sp, 0x4
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80E5EF4
+
+ thumb_func_start player_should_look_direction_be_enforced_upon_movement
+player_should_look_direction_be_enforced_upon_movement: @ 80E5F40
+ push {lr}
+ movs r0, 0x4
+ bl TestPlayerAvatarFlags
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E5F74
+ ldr r2, _080E5F6C
+ ldr r0, _080E5F70
+ ldrb r1, [r0, 0x5]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0, 0x1E]
+ bl MetatileBehavior_IsBumpySlope
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E5F74
+ movs r0, 0
+ b _080E5F76
+ .align 2, 0
+_080E5F6C: .4byte gMapObjects
+_080E5F70: .4byte gPlayerAvatar
+_080E5F74:
+ movs r0, 0x1
+_080E5F76:
+ pop {r1}
+ bx r1
+ thumb_func_end player_should_look_direction_be_enforced_upon_movement
+
+ thumb_func_start GetOnOffBike
+GetOnOffBike: @ 80E5F7C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r1, _080E5FA4
+ movs r0, 0
+ strb r0, [r1]
+ ldr r0, _080E5FA8
+ ldrb r1, [r0]
+ movs r0, 0x6
+ ands r0, r1
+ cmp r0, 0
+ beq _080E5FAC
+ movs r0, 0x1
+ bl SetPlayerAvatarTransitionFlags
+ bl sav1_reset_battle_music_maybe
+ bl sub_8053E90
+ b _080E5FC0
+ .align 2, 0
+_080E5FA4: .4byte gUnknown_0202E854
+_080E5FA8: .4byte gPlayerAvatar
+_080E5FAC:
+ adds r0, r2, 0
+ bl SetPlayerAvatarTransitionFlags
+ ldr r4, _080E5FC8
+ adds r0, r4, 0
+ bl sav1_set_battle_music_maybe
+ adds r0, r4, 0
+ bl sub_8053FB0
+_080E5FC0:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E5FC8: .4byte 0x00000193
+ thumb_func_end GetOnOffBike
+
+ thumb_func_start sub_80E5FCC
+sub_80E5FCC: @ 80E5FCC
+ push {lr}
+ ldr r2, _080E6008
+ movs r3, 0
+ strb r3, [r2, 0x8]
+ strb r3, [r2, 0x9]
+ strb r3, [r2, 0xA]
+ strb r3, [r2, 0xB]
+ str r0, [r2, 0xC]
+ str r1, [r2, 0x10]
+ movs r1, 0
+ adds r2, 0x14
+_080E5FE2:
+ adds r0, r1, r2
+ strb r3, [r0]
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x7
+ bls _080E5FE2
+ movs r1, 0
+ ldr r3, _080E600C
+ movs r2, 0
+_080E5FF6:
+ adds r0, r1, r3
+ strb r2, [r0]
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x7
+ bls _080E5FF6
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E6008: .4byte gPlayerAvatar
+_080E600C: .4byte gUnknown_0202E874
+ thumb_func_end sub_80E5FCC
+
+ thumb_func_start sub_80E6010
+sub_80E6010: @ 80E6010
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080E6020
+ strb r0, [r2, 0xA]
+ lsrs r1, r0, 1
+ adds r0, r1
+ strb r0, [r2, 0xB]
+ bx lr
+ .align 2, 0
+_080E6020: .4byte gPlayerAvatar
+ thumb_func_end sub_80E6010
+
+ thumb_func_start sub_80E6024
+sub_80E6024: @ 80E6024
+ ldr r1, _080E6030
+ movs r0, 0
+ strb r0, [r1, 0xA]
+ strb r0, [r1, 0xB]
+ bx lr
+ .align 2, 0
+_080E6030: .4byte gPlayerAvatar
+ thumb_func_end sub_80E6024
+
+ thumb_func_start sub_80E6034
+sub_80E6034: @ 80E6034
+ push {lr}
+ sub sp, 0x8
+ ldr r1, _080E605C
+ mov r0, sp
+ movs r2, 0x6
+ bl memcpy
+ ldr r2, _080E6060
+ ldrb r1, [r2]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080E6064
+ ldrb r0, [r2, 0xA]
+ lsls r0, 1
+ add r0, sp
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ b _080E607E
+ .align 2, 0
+_080E605C: .4byte gUnknown_083DB600
+_080E6060: .4byte gPlayerAvatar
+_080E6064:
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _080E6070
+ movs r0, 0x3
+ b _080E607E
+_080E6070:
+ movs r0, 0x88
+ ands r0, r1
+ cmp r0, 0
+ bne _080E607C
+ movs r0, 0x1
+ b _080E607E
+_080E607C:
+ movs r0, 0x2
+_080E607E:
+ add sp, 0x8
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80E6034
+
+ thumb_func_start sub_80E6084
+sub_80E6084: @ 80E6084
+ push {r4,r5,lr}
+ sub sp, 0x4
+ ldr r5, _080E60D4
+ ldrb r1, [r5]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _080E60CC
+ mov r4, sp
+ adds r4, 0x2
+ mov r0, sp
+ adds r1, r4, 0
+ bl PlayerGetDestCoords
+ mov r0, sp
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ movs r2, 0
+ ldrsh r1, [r4, r2]
+ bl MapGridGetMetatileBehaviorAt
+ lsls r0, 24
+ lsrs r0, 24
+ bl MetatileBehavior_IsBumpySlope
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E60CC
+ movs r0, 0x2
+ strb r0, [r5, 0x8]
+ bl player_get_direction_upper_nybble
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8059C94
+_080E60CC:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E60D4: .4byte gPlayerAvatar
+ thumb_func_end sub_80E6084
+
+ thumb_func_start sub_80E60D8
+sub_80E60D8: @ 80E60D8
+ push {r4-r7,lr}
+ movs r4, 0x3
+ ldr r0, _080E60F4
+ ldrh r1, [r0]
+ adds r7, r0, 0
+ cmp r1, 0xD
+ bls _080E60E8
+ b _080E6284
+_080E60E8:
+ lsls r0, r1, 2
+ ldr r1, _080E60F8
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080E60F4: .4byte gUnknown_0202E8CC
+_080E60F8: .4byte _080E60FC
+ .align 2, 0
+_080E60FC:
+ .4byte _080E6134
+ .4byte _080E613C
+ .4byte _080E6144
+ .4byte _080E614C
+ .4byte _080E6154
+ .4byte _080E619C
+ .4byte _080E616C
+ .4byte _080E61BC
+ .4byte _080E61E0
+ .4byte _080E61FC
+ .4byte _080E6200
+ .4byte _080E6214
+ .4byte _080E623C
+ .4byte _080E6260
+_080E6134:
+ ldr r1, _080E6138
+ b _080E624C
+ .align 2, 0
+_080E6138: .4byte gSaveBlock1 + 0x2B1C
+_080E613C:
+ ldr r1, _080E6140
+ b _080E6276
+ .align 2, 0
+_080E6140: .4byte gSaveBlock1 + 0x2B28
+_080E6144:
+ ldr r1, _080E6148
+ b _080E624C
+ .align 2, 0
+_080E6148: .4byte gSaveBlock1 + 0x2B34
+_080E614C:
+ ldr r1, _080E6150
+ b _080E6276
+ .align 2, 0
+_080E6150: .4byte gSaveBlock1 + 0x2B40
+_080E6154:
+ ldr r0, _080E6164
+ ldrh r1, [r0]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080E6168
+ adds r1, r0, r1
+ b _080E624C
+ .align 2, 0
+_080E6164: .4byte gUnknown_0202E8CE
+_080E6168: .4byte gSaveBlock1 + 0x2B4C
+_080E616C:
+ ldr r0, _080E6194
+ movs r2, 0
+ ldr r1, _080E6198
+ mov r12, r1
+ adds r3, r0, 0
+ adds r3, 0xE
+ adds r5, r0, 0x2
+ adds r6, r3, 0
+_080E617C:
+ lsls r0, r2, 1
+ adds r1, r3, r0
+ adds r0, r5, r0
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0x5
+ bls _080E617C
+ adds r1, r6, 0
+ b _080E627A
+ .align 2, 0
+_080E6194: .4byte gSaveBlock1 + 0x2D94
+_080E6198: .4byte sub_80546B8
+_080E619C:
+ ldr r0, _080E61B0
+ ldrh r1, [r0]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080E61B4
+ adds r1, r0, r1
+ ldr r0, _080E61B8
+ ldrb r4, [r0]
+ b _080E6276
+ .align 2, 0
+_080E61B0: .4byte gUnknown_0202E8CE
+_080E61B4: .4byte gSaveBlock1 + 0x273C
+_080E61B8: .4byte gUnknown_0202E8D0
+_080E61BC:
+ ldr r0, _080E61D4
+ ldrh r0, [r0]
+ lsls r1, r0, 3
+ adds r1, r0
+ lsls r1, 2
+ ldr r0, _080E61D8
+ adds r1, r0
+ ldr r0, _080E61DC
+ ldrh r0, [r0]
+ lsls r0, 1
+ adds r1, r0
+ b _080E624A
+ .align 2, 0
+_080E61D4: .4byte gUnknown_0202E8CE
+_080E61D8: .4byte gSaveBlock1 + 0x2754
+_080E61DC: .4byte gUnknown_0202E8D0
+_080E61E0:
+ ldr r0, _080E61F4
+ ldrh r1, [r0]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080E61F8
+ adds r1, r0, r1
+ movs r4, 0
+ b _080E6276
+ .align 2, 0
+_080E61F4: .4byte gUnknown_0202E8CE
+_080E61F8: .4byte gSaveBlock1 + 0x273A
+_080E61FC:
+ movs r1, 0
+ b _080E624C
+_080E6200:
+ ldr r1, _080E620C
+ ldr r2, _080E6210
+ adds r0, r2, 0
+ strh r0, [r1]
+ b _080E624A
+ .align 2, 0
+_080E620C: .4byte gSaveBlock1 + 0x2B16
+_080E6210: .4byte 0x0000ffff
+_080E6214:
+ ldr r0, _080E6230
+ ldrh r0, [r0]
+ lsls r1, r0, 3
+ adds r1, r0
+ lsls r1, 2
+ ldr r0, _080E6234
+ adds r1, r0
+ ldr r0, _080E6238
+ ldrh r0, [r0]
+ lsls r0, 1
+ adds r1, r0
+ movs r4, 0
+ b _080E6276
+ .align 2, 0
+_080E6230: .4byte gUnknown_0202E8CE
+_080E6234: .4byte gSaveBlock1 + 0x273C
+_080E6238: .4byte gUnknown_0202E8D0
+_080E623C:
+ ldr r0, _080E6254
+ ldrh r1, [r0]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080E6258
+ adds r1, r0, r1
+_080E624A:
+ movs r4, 0x1
+_080E624C:
+ ldr r0, _080E625C
+ mov r12, r0
+ b _080E627A
+ .align 2, 0
+_080E6254: .4byte gUnknown_0202E8CE
+_080E6258: .4byte gSaveBlock1 + 0x2750
+_080E625C: .4byte sub_80546B8
+_080E6260:
+ ldr r1, _080E628C
+ ldr r0, _080E6290
+ adds r2, r1, r0
+ ldr r0, _080E6294
+ strh r0, [r2]
+ ldr r0, _080E6298
+ adds r1, r0
+ movs r0, 0x1
+ negs r0, r0
+ strh r0, [r1]
+ adds r1, r2, 0
+_080E6276:
+ ldr r2, _080E629C
+ mov r12, r2
+_080E627A:
+ ldrb r0, [r7]
+ mov r2, r12
+ adds r3, r4, 0
+ bl sub_80E62A0
+_080E6284:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E628C: .4byte 0x02001000
+_080E6290: .4byte 0x00009c7c
+_080E6294: .4byte 0x0000ffff
+_080E6298: .4byte 0x00009c7e
+_080E629C: .4byte sub_80546B8
+ thumb_func_end sub_80E60D8
+
+ thumb_func_start sub_80E62A0
+sub_80E62A0: @ 80E62A0
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r4, _080E62DC
+ str r2, [r4]
+ str r1, [r4, 0x4]
+ strb r0, [r4, 0x8]
+ strb r3, [r4, 0xB]
+ cmp r0, 0x9
+ bne _080E62D0
+ ldr r0, _080E62E0
+ adds r2, r4, r0
+ str r2, [r4, 0x4]
+ ldr r0, _080E62E4
+ ldr r3, _080E62E8
+ adds r1, r0, r3
+ ldrh r1, [r1]
+ strh r1, [r2]
+ ldr r1, _080E62EC
+ adds r0, r1
+ ldrh r1, [r0]
+ ldr r2, _080E62F0
+ adds r0, r4, r2
+ strh r1, [r0]
+_080E62D0:
+ ldr r0, _080E62F4
+ bl SetMainCallback2
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E62DC: .4byte 0x02001000
+_080E62E0: .4byte 0x00009c7c
+_080E62E4: .4byte gSaveBlock1
+_080E62E8: .4byte 0x00002dd8
+_080E62EC: .4byte 0x00002dda
+_080E62F0: .4byte 0x00009c7e
+_080E62F4: .4byte sub_80E62F8
+ thumb_func_end sub_80E62A0
+
+ thumb_func_start sub_80E62F8
+sub_80E62F8: @ 80E62F8
+ push {lr}
+ sub sp, 0x4
+ ldr r0, _080E6314
+ ldr r1, _080E6318
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x8
+ bhi _080E6344
+ lsls r0, 2
+ ldr r1, _080E631C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080E6314: .4byte gMain
+_080E6318: .4byte 0x0000043c
+_080E631C: .4byte _080E6320
+ .align 2, 0
+_080E6320:
+ .4byte _080E6344
+ .4byte _080E6380
+ .4byte _080E638C
+ .4byte _080E63A8
+ .4byte _080E63AE
+ .4byte _080E63B4
+ .4byte _080E63BE
+ .4byte _080E63D8
+ .4byte _080E63EA
+_080E6344:
+ movs r1, 0x80
+ lsls r1, 19
+ movs r0, 0
+ strh r0, [r1]
+ movs r0, 0
+ bl SetVBlankCallback
+ bl ResetPaletteFade
+ bl ResetSpriteData
+ bl dp12_8087EA4
+ bl remove_some_task
+ bl sub_80EAD08
+ ldr r2, _080E637C
+ ldr r0, [r2]
+ ldr r1, [r2, 0x4]
+ ldr r2, [r2, 0x8]
+ bl sub_80895F8
+ bl FreeSpriteTileRanges
+ bl FreeAllSpritePalettes
+ b _080E6402
+ .align 2, 0
+_080E637C: .4byte gUnknown_083DB698
+_080E6380:
+ ldr r0, _080E6388
+ bl SetUpWindowConfig
+ b _080E6402
+ .align 2, 0
+_080E6388: .4byte gWindowConfig_81E6DA8
+_080E638C:
+ ldr r0, _080E63A0
+ bl InitMenuWindow
+ ldr r0, _080E63A4
+ bl InitMenuWindow
+ bl MenuZeroFillScreen
+ b _080E6402
+ .align 2, 0
+_080E63A0: .4byte gWindowConfig_81E6D54
+_080E63A4: .4byte gWindowConfig_81E6DA8
+_080E63A8:
+ bl sub_80E6424
+ b _080E6402
+_080E63AE:
+ bl sub_80E8DD8
+ b _080E6402
+_080E63B4:
+ bl sub_80E8218
+ bl sub_80E8CEC
+ b _080E6402
+_080E63BE:
+ bl sub_80E69F8
+ ldr r0, _080E63D0
+ bl sub_80E682C
+ ldr r0, _080E63D4
+ bl SetVBlankCallback
+ b _080E6402
+ .align 2, 0
+_080E63D0: .4byte sub_80E6AA8
+_080E63D4: .4byte sub_80E6A6C
+_080E63D8:
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ b _080E6402
+_080E63EA:
+ movs r1, 0x80
+ lsls r1, 19
+ movs r2, 0xFA
+ lsls r2, 5
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r0, _080E6414
+ bl SetMainCallback2
+ ldr r0, _080E6418
+ bl FlagSet
+_080E6402:
+ ldr r1, _080E641C
+ ldr r0, _080E6420
+ adds r1, r0
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E6414: .4byte sub_80E6A88
+_080E6418: .4byte 0x00000805
+_080E641C: .4byte gMain
+_080E6420: .4byte 0x0000043c
+ thumb_func_end sub_80E62F8
+
+ thumb_func_start sub_80E6424
+sub_80E6424: @ 80E6424
+ push {lr}
+ ldr r2, _080E6444
+ ldr r0, _080E6448
+ ldrb r1, [r2, 0x8]
+ adds r1, r0
+ ldrb r0, [r1]
+ strb r0, [r2, 0x9]
+ ldrb r0, [r2, 0x9]
+ adds r3, r2, 0
+ cmp r0, 0x5
+ bhi _080E6512
+ lsls r0, 2
+ ldr r1, _080E644C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080E6444: .4byte 0x02001000
+_080E6448: .4byte gUnknown_083DB6A4
+_080E644C: .4byte _080E6450
+ .align 2, 0
+_080E6450:
+ .4byte _080E64A0
+ .4byte _080E64B8
+ .4byte _080E64DA
+ .4byte _080E64F6
+ .4byte _080E6468
+ .4byte _080E6480
+_080E6468:
+ movs r2, 0x4
+ strb r2, [r3, 0xA]
+ adds r0, r3, 0
+ adds r0, 0x83
+ movs r1, 0x2
+ strb r1, [r0]
+ adds r0, 0x1
+ strb r1, [r0]
+ adds r1, r3, 0
+ adds r1, 0x88
+ movs r0, 0x5
+ b _080E64D0
+_080E6480:
+ movs r1, 0x4
+ strb r1, [r3, 0xA]
+ adds r2, r3, 0
+ adds r2, 0x83
+ movs r0, 0x1
+ strb r0, [r2]
+ adds r0, r3, 0
+ adds r0, 0x84
+ strb r1, [r0]
+ adds r1, r3, 0
+ adds r1, 0x88
+ movs r0, 0x10
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r0, 0x2
+ b _080E6510
+_080E64A0:
+ movs r0, 0x6
+ strb r0, [r3, 0xA]
+ adds r1, r3, 0
+ adds r1, 0x83
+ movs r0, 0x2
+ strb r0, [r1]
+ adds r0, r3, 0
+ adds r0, 0x84
+ movs r2, 0x3
+ strb r2, [r0]
+ adds r1, 0x5
+ b _080E64CE
+_080E64B8:
+ movs r2, 0
+ movs r0, 0x9
+ strb r0, [r3, 0xA]
+ adds r1, r3, 0
+ adds r1, 0x83
+ movs r0, 0x2
+ strb r0, [r1]
+ adds r1, 0x1
+ movs r0, 0x5
+ strb r0, [r1]
+ adds r1, 0x4
+_080E64CE:
+ movs r0, 0x4
+_080E64D0:
+ strh r0, [r1]
+ adds r0, r3, 0
+ adds r0, 0x8A
+ strh r2, [r0]
+ b _080E6512
+_080E64DA:
+ movs r1, 0x1
+ strb r1, [r3, 0xA]
+ adds r0, r3, 0
+ adds r0, 0x83
+ strb r1, [r0]
+ adds r0, 0x1
+ strb r1, [r0]
+ adds r1, r3, 0
+ adds r1, 0x88
+ movs r0, 0x10
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r0, 0x4
+ b _080E6510
+_080E64F6:
+ movs r0, 0x2
+ strb r0, [r3, 0xA]
+ adds r1, r3, 0
+ adds r1, 0x83
+ strb r0, [r1]
+ adds r1, 0x1
+ movs r0, 0x1
+ strb r0, [r1]
+ adds r1, 0x4
+ movs r0, 0x5
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r0, 0x3
+_080E6510:
+ strh r0, [r1]
+_080E6512:
+ adds r1, r3, 0
+ adds r1, 0x86
+ movs r0, 0
+ strb r0, [r1]
+ subs r1, 0x1
+ strb r0, [r1]
+ adds r1, 0x2
+ strb r0, [r1]
+ subs r1, 0x61
+ strb r0, [r1]
+ movs r2, 0xDD
+ lsls r2, 1
+ adds r1, r3, r2
+ strh r0, [r1]
+ movs r0, 0xDF
+ lsls r0, 1
+ adds r1, r3, r0
+ movs r0, 0x2
+ strb r0, [r1]
+ bl sub_80E6554
+ bl sub_80EAECC
+ bl sub_80EB040
+ bl sub_80E7E50
+ bl sub_80E6630
+ bl sub_80E6690
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80E6424
+
+ thumb_func_start sub_80E6554
+sub_80E6554: @ 80E6554
+ push {r4-r7,lr}
+ sub sp, 0x4
+ movs r4, 0
+ movs r7, 0
+ ldr r0, _080E6564
+ mov r12, r0
+ b _080E656E
+ .align 2, 0
+_080E6564: .4byte 0x02001000
+_080E6568:
+ adds r0, r7, 0x1
+ lsls r0, 16
+ lsrs r7, r0, 16
+_080E656E:
+ movs r5, 0
+ lsls r3, r7, 1
+ mov r6, r12
+ adds r6, 0x2A
+ adds r2, r3, r6
+ adds r1, r4, 0
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ strb r1, [r2]
+ cmp r4, 0x11
+ beq _080E65A6
+_080E6586:
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x1
+ bhi _080E65A2
+ adds r2, r5, r3
+ adds r2, r6
+ adds r1, r4, 0
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ strb r1, [r2]
+ cmp r4, 0x11
+ bne _080E6586
+_080E65A2:
+ cmp r4, 0x11
+ bne _080E6568
+_080E65A6:
+ movs r0, 0x11
+ mov r1, r12
+ strh r0, [r1, 0x28]
+ cmp r4, 0x15
+ bhi _080E6612
+ mov r6, r12
+ adds r2, r6, 0
+ adds r2, 0x78
+_080E65B6:
+ lsls r0, r4, 24
+ lsrs r0, 24
+ str r2, [sp]
+ bl sub_80EAD7C
+ lsls r0, 24
+ lsrs r1, r0, 24
+ ldr r2, [sp]
+ cmp r1, 0
+ beq _080E65FC
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x1
+ bls _080E65DC
+ adds r0, r7, 0x1
+ lsls r0, 16
+ lsrs r7, r0, 16
+ movs r5, 0
+_080E65DC:
+ lsls r0, r7, 1
+ adds r0, r5, r0
+ adds r1, r6, 0
+ adds r1, 0x2A
+ adds r0, r1
+ strb r4, [r0]
+ adds r0, r4, 0
+ subs r0, 0x11
+ adds r0, r2
+ movs r1, 0x1
+ strb r1, [r0]
+ ldrh r0, [r6, 0x28]
+ adds r0, 0x1
+ strh r0, [r6, 0x28]
+ mov r12, r6
+ b _080E6608
+_080E65FC:
+ adds r0, r4, 0
+ subs r0, 0x11
+ adds r0, r2
+ strb r1, [r0]
+ ldr r0, _080E662C
+ mov r12, r0
+_080E6608:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x15
+ bls _080E65B6
+_080E6612:
+ mov r1, r12
+ ldrh r0, [r1, 0x28]
+ adds r0, 0x1
+ asrs r0, 1
+ movs r1, 0xDB
+ lsls r1, 1
+ add r1, r12
+ strb r0, [r1]
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E662C: .4byte 0x02001000
+ thumb_func_end sub_80E6554
+
+ thumb_func_start sub_80E6630
+sub_80E6630: @ 80E6630
+ push {r4-r7,lr}
+ movs r1, 0
+ ldr r0, _080E6664
+ mov r12, r0
+_080E6638:
+ lsls r0, r1, 4
+ mov r2, r12
+ adds r5, r0, r2
+ movs r3, 0
+ ldrb r0, [r5]
+ adds r7, r1, 0x1
+ cmp r0, 0xFF
+ beq _080E6680
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r4, r0, 1
+ ldr r6, _080E6668
+_080E6650:
+ adds r0, r5, r3
+ ldrb r1, [r0]
+ adds r2, r1, 0
+ cmp r2, 0
+ beq _080E666C
+ adds r0, r3, r4
+ adds r0, r6
+ adds r1, 0x46
+ strb r1, [r0]
+ b _080E6672
+ .align 2, 0
+_080E6664: .4byte gUnknown_083DB6B2
+_080E6668: .4byte 0x02001040
+_080E666C:
+ adds r0, r3, r4
+ adds r0, r6
+ strb r2, [r0]
+_080E6672:
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ adds r0, r5, r3
+ ldrb r0, [r0]
+ cmp r0, 0xFF
+ bne _080E6650
+_080E6680:
+ lsls r0, r7, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x3
+ bls _080E6638
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80E6630
+
+ thumb_func_start sub_80E6690
+sub_80E6690: @ 80E6690
+ push {r4-r6,lr}
+ sub sp, 0x10
+ mov r0, sp
+ ldr r1, _080E66E0
+ ldm r1!, {r2-r4}
+ stm r0!, {r2-r4}
+ ldr r1, [r1]
+ str r1, [r0]
+ movs r5, 0
+ ldr r6, _080E66E4
+_080E66A4:
+ ldr r0, _080E66E8
+ ldrb r0, [r0, 0x8]
+ lsls r0, 1
+ adds r0, r5, r0
+ adds r0, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080E66EC
+ adds r4, r0, r1
+ lsls r0, r5, 3
+ add r0, sp
+ ldr r0, [r0]
+ ldr r1, [r4]
+ bl StringCopy
+ adds r3, r0, 0
+ ldrb r0, [r4, 0x8]
+ cmp r0, 0
+ beq _080E66F0
+ lsls r0, r5, 1
+ adds r0, 0x1
+ lsls r0, 2
+ add r0, sp
+ ldr r0, [r0]
+ ldr r1, [r4, 0x4]
+ bl StringCopy
+ b _080E670A
+ .align 2, 0
+_080E66E0: .4byte gUnknown_083DB7DC
+_080E66E4: .4byte gUnknown_083DB7C0
+_080E66E8: .4byte 0x02001000
+_080E66EC: .4byte gUnknown_083DB6F4
+_080E66F0:
+ strb r0, [r3]
+ adds r3, 0x1
+ ldr r1, [r4, 0x4]
+ adds r0, r3, 0
+ bl StringCopy
+ lsls r0, r5, 1
+ adds r0, 0x1
+ lsls r0, 2
+ add r0, sp
+ ldr r1, [r0]
+ movs r0, 0xFF
+ strb r0, [r1]
+_080E670A:
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x1
+ bls _080E66A4
+ movs r5, 0
+ ldr r3, _080E6758
+ ldr r0, _080E675C
+ adds r2, r3, r0
+ movs r1, 0
+_080E671E:
+ adds r0, r5, r2
+ strb r1, [r0]
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x23
+ bls _080E671E
+ ldr r1, _080E675C
+ adds r0, r3, r1
+ adds r0, r5, r0
+ movs r4, 0x1
+ negs r4, r4
+ adds r2, r4, 0
+ movs r1, 0xFF
+ strb r1, [r0]
+ ldr r0, _080E6760
+ adds r3, r0
+ movs r0, 0xFC
+ strb r0, [r3]
+ movs r0, 0x11
+ strb r0, [r3, 0x1]
+ movs r0, 0xE0
+ strb r0, [r3, 0x2]
+ strb r2, [r3, 0x3]
+ add sp, 0x10
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E6758: .4byte 0x02001000
+_080E675C: .4byte 0x00009da4
+_080E6760: .4byte 0x00009f6e
+ thumb_func_end sub_80E6690
+
+ thumb_func_start sub_80E6764
+sub_80E6764: @ 80E6764
+ push {r4-r6,lr}
+ movs r3, 0
+ ldr r4, _080E680C
+ ldr r2, _080E6810
+_080E676C:
+ lsls r0, r3, 1
+ adds r1, r0, r4
+ adds r0, r2
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0x3
+ bls _080E676C
+ movs r3, 0
+ ldr r4, _080E6814
+ ldr r2, _080E6818
+_080E6786:
+ lsls r0, r3, 1
+ adds r1, r0, r4
+ adds r0, r2
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0x5
+ bls _080E6786
+ movs r3, 0
+ ldr r5, _080E681C
+ ldr r0, _080E6820
+ adds r4, r0, 0
+ adds r6, r5, 0
+ adds r6, 0xC
+_080E67A6:
+ lsls r1, r3, 1
+ adds r2, r1, r5
+ ldrh r0, [r2]
+ orrs r0, r4
+ strh r0, [r2]
+ adds r1, r6
+ ldrh r0, [r1]
+ orrs r0, r4
+ strh r0, [r1]
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0x5
+ bls _080E67A6
+ movs r3, 0
+ ldr r6, _080E6824
+ ldr r0, _080E6820
+ adds r5, r0, 0
+_080E67CA:
+ movs r2, 0
+ lsls r0, r3, 3
+ adds r0, r3
+ lsls r4, r0, 2
+_080E67D2:
+ lsls r0, r2, 1
+ adds r0, r4
+ adds r0, r6
+ ldrh r1, [r0]
+ orrs r1, r5
+ strh r1, [r0]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0x8
+ bls _080E67D2
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0xF
+ bls _080E67CA
+ movs r3, 0
+ ldr r2, _080E6828
+ movs r1, 0
+_080E67F8:
+ adds r0, r3, r2
+ strb r1, [r0]
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0x3F
+ bls _080E67F8
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E680C: .4byte gSaveBlock1 + 0x2B1C
+_080E6810: .4byte gUnknown_083DB7EC
+_080E6814: .4byte gSaveBlock1 + 0x2B28
+_080E6818: .4byte gUnknown_083DB7F4
+_080E681C: .4byte gSaveBlock1 + 0x2B34
+_080E6820: .4byte 0x0000ffff
+_080E6824: .4byte gSaveBlock1 + 0x2B4C
+_080E6828: .4byte gSaveBlock1 + 0x2D8C
+ thumb_func_end sub_80E6764
+
+ thumb_func_start sub_80E682C
+sub_80E682C: @ 80E682C
+ ldr r1, _080E6838
+ str r0, [r1, 0x20]
+ movs r0, 0
+ strh r0, [r1, 0x24]
+ bx lr
+ .align 2, 0
+_080E6838: .4byte 0x02001000
+ thumb_func_end sub_80E682C
+
+ thumb_func_start sub_80E683C
+sub_80E683C: @ 80E683C
+ push {r4,r5,lr}
+ ldr r1, _080E6890
+ adds r0, r1, 0
+ adds r0, 0x26
+ ldrb r0, [r0]
+ adds r2, r1, 0
+ cmp r0, 0
+ bne _080E6898
+ movs r1, 0
+ movs r0, 0xDB
+ lsls r0, 1
+ adds r3, r2, r0
+ movs r0, 0
+ ldrsb r0, [r3, r0]
+ cmp r1, r0
+ bge _080E6876
+ movs r0, 0xD5
+ lsls r0, 1
+ adds r5, r2, r0
+ movs r4, 0x2
+_080E6864:
+ adds r0, r1, r5
+ strb r4, [r0]
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ movs r0, 0
+ ldrsb r0, [r3, r0]
+ cmp r1, r0
+ blt _080E6864
+_080E6876:
+ adds r0, r2, r1
+ ldr r1, _080E6894
+ adds r3, r0, r1
+ ldrh r0, [r2, 0x28]
+ movs r1, 0x1
+ ands r0, r1
+ strb r0, [r3]
+ cmp r0, 0
+ bne _080E68B8
+ movs r0, 0x2
+ strb r0, [r3]
+ b _080E68B8
+ .align 2, 0
+_080E6890: .4byte 0x02001000
+_080E6894: .4byte 0x000001a9
+_080E6898:
+ movs r3, 0xD5
+ lsls r3, 1
+ adds r1, r2, r3
+ movs r0, 0x7
+ strb r0, [r1]
+ ldr r1, _080E68E0
+ adds r3, r2, r1
+ movs r1, 0x6
+ strb r1, [r3]
+ movs r3, 0xD6
+ lsls r3, 1
+ adds r1, r2, r3
+ strb r0, [r1]
+ adds r3, 0x1
+ adds r1, r2, r3
+ strb r0, [r1]
+_080E68B8:
+ movs r0, 0xD4
+ lsls r0, 1
+ adds r1, r2, r0
+ movs r0, 0
+ strb r0, [r1]
+ ldr r3, _080E68E4
+ adds r1, r2, r3
+ strb r0, [r1]
+ adds r3, 0xC
+ adds r1, r2, r3
+ strb r0, [r1]
+ adds r3, 0x2
+ adds r1, r2, r3
+ strb r0, [r1]
+ bl sub_80E9A4C
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E68E0: .4byte 0x000001ab
+_080E68E4: .4byte 0x000001a9
+ thumb_func_end sub_80E683C
+
+ thumb_func_start sub_80E68E8
+sub_80E68E8: @ 80E68E8
+ push {r4-r6,lr}
+ bl sub_80EB0B0
+ ldr r3, _080E694C
+ adds r0, r3, 0
+ adds r0, 0x26
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080E695C
+ movs r1, 0xDC
+ lsls r1, 1
+ adds r0, r3, r1
+ ldrb r6, [r0]
+ lsls r0, r6, 1
+ ldr r2, _080E6950
+ adds r1, r3, r2
+ adds r0, r1
+ ldrh r0, [r0]
+ adds r0, 0x1
+ asrs r0, 1
+ ldr r1, _080E6954
+ adds r2, r3, r1
+ strb r0, [r2]
+ movs r1, 0
+ movs r0, 0
+ ldrsb r0, [r2, r0]
+ adds r5, r3, 0
+ cmp r1, r0
+ bge _080E693A
+ ldr r3, _080E6958
+ adds r4, r5, r3
+ movs r3, 0x2
+_080E6928:
+ adds r0, r1, r4
+ strb r3, [r0]
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ movs r0, 0
+ ldrsb r0, [r2, r0]
+ cmp r1, r0
+ blt _080E6928
+_080E693A:
+ subs r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ ldr r2, _080E6958
+ adds r0, r5, r2
+ adds r2, r1, r0
+ lsls r0, r6, 1
+ ldr r3, _080E6950
+ b _080E69AC
+ .align 2, 0
+_080E694C: .4byte 0x02001000
+_080E6950: .4byte 0x00004178
+_080E6954: .4byte 0x00009a28
+_080E6958: .4byte 0x000099a6
+_080E695C:
+ movs r1, 0xDC
+ lsls r1, 1
+ adds r0, r3, r1
+ ldrb r6, [r0]
+ lsls r0, r6, 1
+ ldr r2, _080E69E0
+ adds r1, r3, r2
+ adds r0, r1
+ ldrh r0, [r0]
+ adds r0, 0x1
+ asrs r0, 1
+ ldr r1, _080E69E4
+ adds r2, r3, r1
+ strb r0, [r2]
+ movs r1, 0
+ movs r0, 0
+ ldrsb r0, [r2, r0]
+ adds r5, r3, 0
+ cmp r1, r0
+ bge _080E699C
+ ldr r3, _080E69E8
+ adds r4, r5, r3
+ movs r3, 0x2
+_080E698A:
+ adds r0, r1, r4
+ strb r3, [r0]
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ movs r0, 0
+ ldrsb r0, [r2, r0]
+ cmp r1, r0
+ blt _080E698A
+_080E699C:
+ subs r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ ldr r2, _080E69E8
+ adds r0, r5, r2
+ adds r2, r1, r0
+ lsls r0, r6, 1
+ ldr r3, _080E69E0
+_080E69AC:
+ adds r1, r5, r3
+ adds r0, r1
+ ldrh r0, [r0]
+ movs r1, 0x1
+ ands r0, r1
+ strb r0, [r2]
+ cmp r0, 0
+ bne _080E69C0
+ movs r0, 0x2
+ strb r0, [r2]
+_080E69C0:
+ ldr r1, _080E69EC
+ adds r0, r5, r1
+ movs r1, 0
+ strb r1, [r0]
+ ldr r2, _080E69F0
+ adds r0, r5, r2
+ strb r1, [r0]
+ ldr r3, _080E69F4
+ adds r0, r5, r3
+ strb r1, [r0]
+ bl sub_80E9A4C
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E69E0: .4byte 0x00004142
+_080E69E4: .4byte 0x00009a28
+_080E69E8: .4byte 0x000099a6
+_080E69EC: .4byte 0x000099a4
+_080E69F0: .4byte 0x000099a5
+_080E69F4: .4byte 0x00009a29
+ thumb_func_end sub_80E68E8
+
+ thumb_func_start sub_80E69F8
+sub_80E69F8: @ 80E69F8
+ push {r4,lr}
+ ldr r0, _080E6A10
+ ldrb r1, [r0, 0x8]
+ adds r4, r0, 0
+ cmp r1, 0xD
+ bhi _080E6A50
+ lsls r0, r1, 2
+ ldr r1, _080E6A14
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080E6A10: .4byte 0x02001000
+_080E6A14: .4byte _080E6A18
+ .align 2, 0
+_080E6A18:
+ .4byte _080E6A50
+ .4byte _080E6A50
+ .4byte _080E6A50
+ .4byte _080E6A50
+ .4byte _080E6A50
+ .4byte _080E6A58
+ .4byte _080E6A50
+ .4byte _080E6A58
+ .4byte _080E6A58
+ .4byte _080E6A50
+ .4byte _080E6A58
+ .4byte _080E6A58
+ .4byte _080E6A58
+ .4byte _080E6A50
+_080E6A50:
+ ldrb r0, [r4, 0x8]
+ bl sub_80E9368
+ b _080E6A66
+_080E6A58:
+ ldrb r0, [r4, 0x8]
+ bl sub_80E9368
+ ldrb r0, [r4, 0xB]
+ ldrb r1, [r4, 0x9]
+ bl sub_80E8BF4
+_080E6A66:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80E69F8
+
+ thumb_func_start sub_80E6A6C
+sub_80E6A6C: @ 80E6A6C
+ push {lr}
+ bl LoadOam
+ bl ProcessSpriteCopyRequests
+ bl sub_80EAC5C
+ bl TransferPlttBuffer
+ bl sub_8089668
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80E6A6C
+
+ thumb_func_start sub_80E6A88
+sub_80E6A88: @ 80E6A88
+ push {lr}
+ ldr r0, _080E6AA4
+ ldr r0, [r0, 0x20]
+ bl _call_via_r0
+ bl AnimateSprites
+ bl BuildOamBuffer
+ bl sub_80EAD08
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E6AA4: .4byte 0x02001000
+ thumb_func_end sub_80E6A88
+
+ thumb_func_start sub_80E6AA8
+sub_80E6AA8: @ 80E6AA8
+ push {lr}
+ bl UpdatePaletteFade
+ lsls r0, 24
+ cmp r0, 0
+ bne _080E6ABA
+ ldr r0, _080E6AC0
+ bl sub_80E682C
+_080E6ABA:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E6AC0: .4byte sub_80E6AC4
+ thumb_func_end sub_80E6AA8
+
+ thumb_func_start sub_80E6AC4
+sub_80E6AC4: @ 80E6AC4
+ push {lr}
+ bl sub_80E88F0
+ movs r0, 0
+ bl sub_80E8398
+ movs r0, 0
+ bl sub_80E91D4
+ ldr r0, _080E6AE0
+ bl sub_80E682C
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E6AE0: .4byte sub_80E6AE4
+ thumb_func_end sub_80E6AC4
+
+ thumb_func_start sub_80E6AE4
+sub_80E6AE4: @ 80E6AE4
+ push {r4,r5,lr}
+ bl sub_80E75D8
+ ldr r4, _080E6B44
+ adds r1, r4, 0
+ adds r1, 0x87
+ strb r0, [r1]
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E6AFE
+ movs r0, 0x5
+ bl PlaySE
+_080E6AFE:
+ ldr r2, _080E6B48
+ ldrh r1, [r2, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ adds r5, r2, 0
+ cmp r0, 0
+ beq _080E6BA4
+ movs r0, 0x5
+ bl PlaySE
+ adds r1, r4, 0
+ adds r1, 0x86
+ adds r0, r4, 0
+ adds r0, 0x84
+ ldrb r2, [r1]
+ ldrb r1, [r1]
+ lsls r1, 24
+ asrs r1, 24
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r1, r0
+ bne _080E6B78
+ adds r0, r4, 0
+ adds r0, 0x85
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0x1
+ beq _080E6B60
+ cmp r0, 0x1
+ bgt _080E6B4C
+ cmp r0, 0
+ beq _080E6B52
+ b _080E6BA4
+ .align 2, 0
+_080E6B44: .4byte 0x02001000
+_080E6B48: .4byte gMain
+_080E6B4C:
+ cmp r0, 0x2
+ beq _080E6B6C
+ b _080E6BA4
+_080E6B52:
+ ldr r0, _080E6B5C
+ bl sub_80E682C
+ b _080E6BB4
+ .align 2, 0
+_080E6B5C: .4byte sub_80E6BC0
+_080E6B60:
+ ldr r0, _080E6B68
+ bl sub_80E682C
+ b _080E6BB4
+ .align 2, 0
+_080E6B68: .4byte sub_80E6C84
+_080E6B6C:
+ ldr r0, _080E6B74
+ bl sub_80E682C
+ b _080E6BB4
+ .align 2, 0
+_080E6B74: .4byte sub_80E6D7C
+_080E6B78:
+ adds r0, r4, 0
+ adds r0, 0x83
+ ldrb r0, [r0]
+ adds r1, r4, 0
+ adds r1, 0x85
+ adds r3, r0, 0
+ muls r3, r2
+ adds r0, r3, 0
+ ldrb r1, [r1]
+ adds r0, r1
+ adds r1, r4, 0
+ adds r1, 0x27
+ strb r0, [r1]
+ bl sub_80E7574
+ ldr r0, _080E6BA0
+ bl sub_80E682C
+ b _080E6BB4
+ .align 2, 0
+_080E6BA0: .4byte sub_80E6F68
+_080E6BA4:
+ ldrh r1, [r5, 0x2E]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080E6BB4
+ ldr r0, _080E6BBC
+ bl sub_80E682C
+_080E6BB4:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E6BBC: .4byte sub_80E6C84
+ thumb_func_end sub_80E6AE4
+
+ thumb_func_start sub_80E6BC0
+sub_80E6BC0: @ 80E6BC0
+ push {r4,lr}
+ ldr r4, _080E6BD4
+ ldrh r0, [r4, 0x24]
+ cmp r0, 0x1
+ beq _080E6C12
+ cmp r0, 0x1
+ bgt _080E6BD8
+ cmp r0, 0
+ beq _080E6BE2
+ b _080E6C76
+ .align 2, 0
+_080E6BD4: .4byte 0x02001000
+_080E6BD8:
+ cmp r0, 0x2
+ beq _080E6C54
+ cmp r0, 0x64
+ beq _080E6C64
+ b _080E6C76
+_080E6BE2:
+ movs r0, 0x2
+ bl sub_80E8398
+ ldrb r0, [r4, 0x8]
+ cmp r0, 0x6
+ bne _080E6BFA
+ movs r0, 0x6
+ bl sub_80E91D4
+ movs r0, 0x64
+ strh r0, [r4, 0x24]
+ b _080E6C76
+_080E6BFA:
+ movs r0, 0x2
+ bl sub_80E91D4
+ movs r0, 0x17
+ movs r1, 0x8
+ movs r2, 0x1
+ bl DisplayYesNoMenu
+ movs r0, 0x1
+ bl MoveMenuCursor
+ b _080E6C3E
+_080E6C12:
+ bl ProcessMenuInputNoWrap_
+ lsls r0, 24
+ asrs r1, r0, 24
+ cmp r1, 0
+ beq _080E6C32
+ cmp r1, 0
+ bgt _080E6C2C
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ beq _080E6C46
+ b _080E6C76
+_080E6C2C:
+ cmp r1, 0x1
+ beq _080E6C46
+ b _080E6C76
+_080E6C32:
+ bl sub_80E7D6C
+ bl sub_80E98C4
+ bl sub_80E95A4
+_080E6C3E:
+ ldrh r0, [r4, 0x24]
+ adds r0, 0x1
+ strh r0, [r4, 0x24]
+ b _080E6C76
+_080E6C46:
+ ldr r1, _080E6C50
+ ldrh r0, [r1, 0x24]
+ adds r0, 0x1
+ strh r0, [r1, 0x24]
+ b _080E6C76
+ .align 2, 0
+_080E6C50: .4byte 0x02001000
+_080E6C54:
+ bl sub_80E81FC
+ ldr r0, _080E6C60
+ bl sub_80E682C
+ b _080E6C76
+ .align 2, 0
+_080E6C60: .4byte sub_80E6AC4
+_080E6C64:
+ ldr r0, _080E6C7C
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0
+ beq _080E6C76
+ ldr r0, _080E6C80
+ bl sub_80E682C
+_080E6C76:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E6C7C: .4byte gMain
+_080E6C80: .4byte sub_80E6AC4
+ thumb_func_end sub_80E6BC0
+
+ thumb_func_start sub_80E6C84
+sub_80E6C84: @ 80E6C84
+ push {r4,lr}
+ ldr r4, _080E6C98
+ ldrh r0, [r4, 0x24]
+ cmp r0, 0x1
+ beq _080E6CF4
+ cmp r0, 0x1
+ bgt _080E6C9C
+ cmp r0, 0
+ beq _080E6CA6
+ b _080E6D72
+ .align 2, 0
+_080E6C98: .4byte 0x02001000
+_080E6C9C:
+ cmp r0, 0x2
+ beq _080E6D24
+ cmp r0, 0xFF
+ beq _080E6D64
+ b _080E6D72
+_080E6CA6:
+ movs r0, 0x2
+ bl sub_80E8398
+ movs r0, 0x3
+ bl sub_80E91D4
+ movs r0, 0x17
+ movs r1, 0x8
+ movs r2, 0
+ bl DisplayYesNoMenu
+ movs r0, 0x1
+ bl MoveMenuCursor
+ ldrb r0, [r4, 0x8]
+ cmp r0, 0x9
+ beq _080E6CE8
+ cmp r0, 0x4
+ beq _080E6CE8
+ cmp r0, 0x7
+ beq _080E6CE8
+ cmp r0, 0x8
+ beq _080E6CE8
+ cmp r0, 0xA
+ beq _080E6CE8
+ cmp r0, 0xB
+ beq _080E6CE8
+ cmp r0, 0xC
+ beq _080E6CE8
+ cmp r0, 0x5
+ beq _080E6CE8
+ cmp r0, 0xD
+ bne _080E6D1C
+_080E6CE8:
+ ldr r1, _080E6CF0
+ movs r0, 0x2
+ strh r0, [r1, 0x24]
+ b _080E6D72
+ .align 2, 0
+_080E6CF0: .4byte 0x02001000
+_080E6CF4:
+ bl ProcessMenuInputNoWrap_
+ lsls r0, 24
+ asrs r1, r0, 24
+ cmp r1, 0
+ beq _080E6D06
+ cmp r1, 0
+ ble _080E6D34
+ b _080E6D3E
+_080E6D06:
+ movs r0, 0x4
+ bl sub_80E91D4
+ movs r0, 0x17
+ movs r1, 0x8
+ movs r2, 0
+ bl DisplayYesNoMenu
+ movs r0, 0x1
+ bl MoveMenuCursor
+_080E6D1C:
+ ldrh r0, [r4, 0x24]
+ adds r0, 0x1
+ strh r0, [r4, 0x24]
+ b _080E6D72
+_080E6D24:
+ bl ProcessMenuInputNoWrap_
+ lsls r0, 24
+ asrs r1, r0, 24
+ cmp r1, 0
+ beq _080E6D44
+ cmp r1, 0
+ bgt _080E6D3E
+_080E6D34:
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ beq _080E6D58
+ b _080E6D72
+_080E6D3E:
+ cmp r1, 0x1
+ beq _080E6D58
+ b _080E6D72
+_080E6D44:
+ ldr r0, _080E6D50
+ strh r1, [r0]
+ ldr r0, _080E6D54
+ bl sub_80E682C
+ b _080E6D72
+ .align 2, 0
+_080E6D50: .4byte gScriptResult
+_080E6D54: .4byte sub_80E752C
+_080E6D58:
+ ldr r1, _080E6D60
+ movs r0, 0xFF
+ strh r0, [r1, 0x24]
+ b _080E6D72
+ .align 2, 0
+_080E6D60: .4byte 0x02001000
+_080E6D64:
+ bl sub_8072DEC
+ bl sub_80E81FC
+ ldr r0, _080E6D78
+ bl sub_80E682C
+_080E6D72:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E6D78: .4byte sub_80E6AC4
+ thumb_func_end sub_80E6C84
+
+ thumb_func_start sub_80E6D7C
+sub_80E6D7C: @ 80E6D7C
+ push {r4-r7,lr}
+ ldr r5, _080E6D98
+ ldrh r0, [r5, 0x24]
+ cmp r0, 0xA
+ bne _080E6D88
+ b _080E6F06
+_080E6D88:
+ cmp r0, 0xA
+ bgt _080E6D9C
+ cmp r0, 0
+ beq _080E6DB6
+ cmp r0, 0x1
+ beq _080E6E3C
+ b _080E6F5E
+ .align 2, 0
+_080E6D98: .4byte 0x02001000
+_080E6D9C:
+ cmp r0, 0x65
+ bne _080E6DA2
+ b _080E6F30
+_080E6DA2:
+ cmp r0, 0x65
+ bgt _080E6DAE
+ cmp r0, 0x64
+ bne _080E6DAC
+ b _080E6F24
+_080E6DAC:
+ b _080E6F5E
+_080E6DAE:
+ cmp r0, 0x66
+ bne _080E6DB4
+ b _080E6F50
+_080E6DB4:
+ b _080E6F5E
+_080E6DB6:
+ movs r0, 0x2
+ bl sub_80E8398
+ bl sub_80E8054
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E6DCA
+ movs r0, 0x5
+ b _080E6DEE
+_080E6DCA:
+ ldrb r0, [r5, 0x8]
+ cmp r0, 0x9
+ bne _080E6DFC
+ bl sub_80E7FA8
+ lsls r0, 24
+ cmp r0, 0
+ bne _080E6DDE
+ movs r0, 0x8
+ b _080E6DEE
+_080E6DDE:
+ ldrh r0, [r5, 0xC]
+ ldr r1, _080E6DF8
+ cmp r0, r1
+ beq _080E6DEC
+ ldrh r0, [r5, 0xE]
+ cmp r0, r1
+ bne _080E6DFC
+_080E6DEC:
+ movs r0, 0x9
+_080E6DEE:
+ bl sub_80E91D4
+ movs r0, 0xA
+ strh r0, [r5, 0x24]
+ b _080E6F5E
+ .align 2, 0
+_080E6DF8: .4byte 0x0000ffff
+_080E6DFC:
+ ldr r0, _080E6E18
+ ldrb r0, [r0, 0x8]
+ cmp r0, 0x4
+ bne _080E6E20
+ bl sub_80E7FA8
+ lsls r0, 24
+ cmp r0, 0
+ bne _080E6E20
+ ldr r0, _080E6E1C
+ bl sub_80E682C
+ b _080E6F5E
+ .align 2, 0
+_080E6E18: .4byte 0x02001000
+_080E6E1C: .4byte sub_80E6C84
+_080E6E20:
+ movs r0, 0x1
+ bl sub_80E91D4
+ bl sub_80E9744
+ movs r0, 0x17
+ movs r1, 0x8
+ movs r2, 0
+ bl DisplayYesNoMenu
+ movs r0, 0
+ bl MoveMenuCursor
+ b _080E6F3C
+_080E6E3C:
+ bl ProcessMenuInputNoWrap_
+ lsls r0, 24
+ asrs r6, r0, 24
+ cmp r6, 0
+ beq _080E6E5C
+ cmp r6, 0
+ bgt _080E6E56
+ movs r0, 0x1
+ negs r0, r0
+ cmp r6, r0
+ beq _080E6EDC
+ b _080E6F5E
+_080E6E56:
+ cmp r6, 0x1
+ beq _080E6EDC
+ b _080E6F5E
+_080E6E5C:
+ ldr r7, _080E6EC8
+ bl sub_80E7FA8
+ lsls r0, 24
+ lsrs r0, 24
+ negs r0, r0
+ lsrs r0, 31
+ strh r0, [r7]
+ bl sub_80E7D9C
+ ldrb r0, [r5, 0x8]
+ cmp r0, 0
+ bne _080E6E82
+ ldr r4, _080E6ECC
+ bl sub_80E8094
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4]
+_080E6E82:
+ ldrb r0, [r5, 0x8]
+ cmp r0, 0x9
+ bne _080E6E9C
+ bl sub_80E81C0
+ ldr r4, _080E6ECC
+ ldr r1, _080E6ED0
+ adds r0, r5, r1
+ bl sub_80FA364
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4]
+_080E6E9C:
+ ldrb r0, [r5, 0x8]
+ cmp r0, 0xD
+ bne _080E6EBE
+ ldrh r0, [r5, 0xC]
+ ldr r1, _080E6ED4
+ cmp r0, r1
+ beq _080E6EB0
+ ldrh r0, [r5, 0xE]
+ cmp r0, r1
+ bne _080E6EB2
+_080E6EB0:
+ strh r6, [r7]
+_080E6EB2:
+ ldr r4, _080E6ECC
+ bl sub_80E810C
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4]
+_080E6EBE:
+ ldr r0, _080E6ED8
+ bl sub_80E682C
+ b _080E6F5E
+ .align 2, 0
+_080E6EC8: .4byte gScriptResult
+_080E6ECC: .4byte gUnknown_0202E8CC
+_080E6ED0: .4byte 0x00009c7c
+_080E6ED4: .4byte 0x0000ffff
+_080E6ED8: .4byte sub_80E752C
+_080E6EDC:
+ bl sub_8072DEC
+ bl sub_80E81FC
+ ldr r4, _080E6EFC
+ ldrb r0, [r4, 0x8]
+ cmp r0, 0x6
+ bne _080E6F00
+ bl sub_80E7FA8
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E6F00
+ movs r0, 0x64
+ strh r0, [r4, 0x24]
+ b _080E6F5E
+ .align 2, 0
+_080E6EFC: .4byte 0x02001000
+_080E6F00:
+ bl sub_80E95A4
+ b _080E6F12
+_080E6F06:
+ ldr r0, _080E6F1C
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0
+ beq _080E6F5E
+_080E6F12:
+ ldr r0, _080E6F20
+ bl sub_80E682C
+ b _080E6F5E
+ .align 2, 0
+_080E6F1C: .4byte gMain
+_080E6F20: .4byte sub_80E6AC4
+_080E6F24:
+ movs r0, 0x7
+ bl sub_80E91D4
+ ldrh r0, [r5, 0x24]
+ adds r0, 0x1
+ strh r0, [r5, 0x24]
+_080E6F30:
+ ldr r0, _080E6F48
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080E6F5E
+_080E6F3C:
+ ldr r1, _080E6F4C
+ ldrh r0, [r1, 0x24]
+ adds r0, 0x1
+ strh r0, [r1, 0x24]
+ b _080E6F5E
+ .align 2, 0
+_080E6F48: .4byte gMain
+_080E6F4C: .4byte 0x02001000
+_080E6F50:
+ bl sub_80E7E50
+ bl sub_80E95A4
+ ldr r0, _080E6F64
+ bl sub_80E682C
+_080E6F5E:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E6F64: .4byte sub_80E6AC4
+ thumb_func_end sub_80E6D7C
+
+ thumb_func_start sub_80E6F68
+sub_80E6F68: @ 80E6F68
+ push {r4,lr}
+ ldr r4, _080E6F78
+ ldrh r0, [r4, 0x24]
+ cmp r0, 0
+ beq _080E6F7C
+ cmp r0, 0x1
+ beq _080E6F9C
+ b _080E6FBC
+ .align 2, 0
+_080E6F78: .4byte 0x02001000
+_080E6F7C:
+ movs r0, 0x1
+ bl sub_80E8398
+ movs r0, 0xA
+ bl sub_80E91D4
+ bl sub_80E683C
+ bl sub_80E9974
+ bl sub_80E9E98
+ ldrh r0, [r4, 0x24]
+ adds r0, 0x1
+ strh r0, [r4, 0x24]
+ b _080E6FBC
+_080E6F9C:
+ bl sub_80E9EA8
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E6FBC
+ movs r0, 0x1
+ bl sub_80E8D8C
+ bl sub_80E8420
+ movs r0, 0
+ bl sub_80E8958
+ ldr r0, _080E6FC4
+ bl sub_80E682C
+_080E6FBC:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E6FC4: .4byte sub_80E6FC8
+ thumb_func_end sub_80E6F68
+
+ thumb_func_start sub_80E6FC8
+sub_80E6FC8: @ 80E6FC8
+ push {r4,lr}
+ bl sub_80E77C8
+ adds r1, r0, 0
+ ldr r4, _080E7000
+ adds r0, r4, 0
+ adds r0, 0x96
+ strb r1, [r0]
+ movs r2, 0xE0
+ lsls r2, 1
+ adds r0, r4, r2
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0
+ beq _080E700C
+ movs r0, 0x5
+ bl PlaySE
+ movs r1, 0xE2
+ lsls r1, 1
+ adds r0, r4, r1
+ ldr r1, _080E7004
+ str r1, [r0]
+ ldr r0, _080E7008
+ bl sub_80E682C
+ b _080E710A
+ .align 2, 0
+_080E7000: .4byte 0x02001000
+_080E7004: .4byte sub_80E6FC8
+_080E7008: .4byte sub_80E7458
+_080E700C:
+ lsls r0, r1, 24
+ cmp r0, 0
+ beq _080E7018
+ movs r0, 0x5
+ bl PlaySE
+_080E7018:
+ ldr r0, _080E7054
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080E70E8
+ ldr r2, _080E7058
+ adds r0, r4, r2
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0
+ beq _080E7090
+ movs r0, 0x5
+ bl PlaySE
+ movs r1, 0xD4
+ lsls r1, 1
+ adds r0, r4, r1
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0x2
+ beq _080E7070
+ cmp r0, 0x2
+ bgt _080E705C
+ cmp r0, 0x1
+ beq _080E7062
+ b _080E710A
+ .align 2, 0
+_080E7054: .4byte gMain
+_080E7058: .4byte 0x000001b7
+_080E705C:
+ cmp r0, 0x3
+ beq _080E70F0
+ b _080E710A
+_080E7062:
+ ldr r0, _080E706C
+ bl sub_80E682C
+ b _080E710A
+ .align 2, 0
+_080E706C: .4byte sub_80E718C
+_080E7070:
+ ldrb r0, [r4, 0x8]
+ cmp r0, 0x6
+ beq _080E710A
+ adds r0, r4, 0
+ adds r0, 0x27
+ ldrb r0, [r0]
+ ldr r1, _080E708C
+ bl sub_80E7F00
+ bl sub_80E7574
+ bl sub_80E95A4
+ b _080E710A
+ .align 2, 0
+_080E708C: .4byte 0x0000ffff
+_080E7090:
+ adds r0, r4, 0
+ adds r0, 0x26
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080E70CA
+ ldr r2, _080E70DC
+ adds r0, r4, r2
+ movs r2, 0
+ ldrsb r2, [r0, r2]
+ movs r1, 0xD4
+ lsls r1, 1
+ adds r0, r4, r1
+ movs r1, 0
+ ldrsb r1, [r0, r1]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 1
+ adds r2, r0
+ adds r0, r4, 0
+ adds r0, 0x40
+ adds r2, r0
+ ldrb r0, [r2]
+ lsls r0, 1
+ ldr r2, _080E70E0
+ adds r1, r4, r2
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _080E710A
+_080E70CA:
+ movs r0, 0x5
+ bl PlaySE
+ bl sub_80E7AD4
+ ldr r0, _080E70E4
+ bl sub_80E682C
+ b _080E710A
+ .align 2, 0
+_080E70DC: .4byte 0x000001a9
+_080E70E0: .4byte 0x00004142
+_080E70E4: .4byte sub_80E7218
+_080E70E8:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080E70FC
+_080E70F0:
+ ldr r0, _080E70F8
+ bl sub_80E682C
+ b _080E710A
+ .align 2, 0
+_080E70F8: .4byte sub_80E7114
+_080E70FC:
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _080E710A
+ ldr r0, _080E7110
+ bl sub_80E682C
+_080E710A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E7110: .4byte sub_80E718C
+ thumb_func_end sub_80E6FC8
+
+ thumb_func_start sub_80E7114
+sub_80E7114: @ 80E7114
+ push {lr}
+ ldr r0, _080E712C
+ ldrh r1, [r0, 0x24]
+ adds r2, r0, 0
+ cmp r1, 0x4
+ bhi _080E7182
+ lsls r0, r1, 2
+ ldr r1, _080E7130
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080E712C: .4byte 0x02001000
+_080E7130: .4byte _080E7134
+ .align 2, 0
+_080E7134:
+ .4byte _080E7148
+ .4byte _080E715C
+ .4byte _080E715C
+ .4byte _080E7164
+ .4byte _080E717C
+_080E7148:
+ bl sub_80E8504
+ bl sub_80E9E98
+ bl sub_80E88F0
+ movs r0, 0
+ bl sub_80E8D8C
+ b _080E716E
+_080E715C:
+ ldrh r0, [r2, 0x24]
+ adds r0, 0x1
+ strh r0, [r2, 0x24]
+ b _080E7182
+_080E7164:
+ bl sub_80E9F50
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E7182
+_080E716E:
+ ldr r1, _080E7178
+ ldrh r0, [r1, 0x24]
+ adds r0, 0x1
+ strh r0, [r1, 0x24]
+ b _080E7182
+ .align 2, 0
+_080E7178: .4byte 0x02001000
+_080E717C:
+ ldr r0, _080E7188
+ bl sub_80E682C
+_080E7182:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E7188: .4byte sub_80E6AC4
+ thumb_func_end sub_80E7114
+
+ thumb_func_start sub_80E718C
+sub_80E718C: @ 80E718C
+ push {r4,lr}
+ ldr r0, _080E71A4
+ ldrh r1, [r0, 0x24]
+ adds r4, r0, 0
+ cmp r1, 0x1
+ beq _080E71C6
+ cmp r1, 0x1
+ bgt _080E71A8
+ cmp r1, 0
+ beq _080E71AE
+ b _080E71EC
+ .align 2, 0
+_080E71A4: .4byte 0x02001000
+_080E71A8:
+ cmp r1, 0x8
+ beq _080E71F4
+ b _080E71EC
+_080E71AE:
+ bl sub_80E8504
+ bl sub_80E9E98
+ bl sub_80E88F0
+ ldrh r0, [r4, 0x24]
+ adds r0, 0x1
+ strh r0, [r4, 0x24]
+ bl sub_80E8D54
+ b _080E720E
+_080E71C6:
+ bl sub_80E9FD4
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E720E
+ movs r2, 0
+ adds r1, r4, 0
+ adds r1, 0x26
+ ldrb r0, [r1]
+ cmp r0, 0
+ bne _080E71DE
+ movs r2, 0x1
+_080E71DE:
+ strb r2, [r1]
+ bl sub_80E683C
+ bl sub_80E9974
+ bl sub_80E9E98
+_080E71EC:
+ ldrh r0, [r4, 0x24]
+ adds r0, 0x1
+ strh r0, [r4, 0x24]
+ b _080E720E
+_080E71F4:
+ bl sub_80EA014
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E720E
+ bl sub_80E8420
+ movs r0, 0
+ bl sub_80E8958
+ ldr r0, _080E7214
+ bl sub_80E682C
+_080E720E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E7214: .4byte sub_80E6FC8
+ thumb_func_end sub_80E718C
+
+ thumb_func_start sub_80E7218
+sub_80E7218: @ 80E7218
+ push {r4,lr}
+ ldr r4, _080E7230
+ ldrh r0, [r4, 0x24]
+ adds r1, r4, 0
+ cmp r0, 0x9
+ beq _080E7260
+ cmp r0, 0x9
+ bgt _080E7234
+ cmp r0, 0x8
+ beq _080E7244
+ b _080E723C
+ .align 2, 0
+_080E7230: .4byte 0x02001000
+_080E7234:
+ cmp r0, 0xA
+ beq _080E7276
+ cmp r0, 0xB
+ beq _080E7288
+_080E723C:
+ ldrh r0, [r1, 0x24]
+ adds r0, 0x1
+ strh r0, [r1, 0x24]
+ b _080E7288
+_080E7244:
+ movs r0, 0
+ bl sub_80E8D8C
+ bl sub_80E8504
+ bl sub_80E9AD4
+ bl sub_80E68E8
+ bl sub_80E88F0
+ bl sub_80E9E98
+ b _080E726E
+_080E7260:
+ bl sub_80EA050
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E7288
+ bl sub_80E9C94
+_080E726E:
+ ldrh r0, [r4, 0x24]
+ adds r0, 0x1
+ strh r0, [r4, 0x24]
+ b _080E7288
+_080E7276:
+ movs r0, 0x1
+ bl sub_80E87CC
+ movs r0, 0x1
+ bl sub_80E8958
+ ldr r0, _080E7290
+ bl sub_80E682C
+_080E7288:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E7290: .4byte sub_80E7294
+ thumb_func_end sub_80E7218
+
+ thumb_func_start sub_80E7294
+sub_80E7294: @ 80E7294
+ push {r4,lr}
+ bl sub_80E7B40
+ adds r1, r0, 0
+ ldr r4, _080E72CC
+ ldr r2, _080E72D0
+ adds r0, r4, r2
+ strb r1, [r0]
+ adds r2, 0x7
+ adds r0, r4, r2
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0
+ beq _080E72DC
+ movs r0, 0x5
+ bl PlaySE
+ movs r1, 0xE2
+ lsls r1, 1
+ adds r0, r4, r1
+ ldr r1, _080E72D4
+ str r1, [r0]
+ ldr r0, _080E72D8
+ bl sub_80E682C
+ b _080E731A
+ .align 2, 0
+_080E72CC: .4byte 0x02001000
+_080E72D0: .4byte 0x000001b9
+_080E72D4: .4byte sub_80E7294
+_080E72D8: .4byte sub_80E7458
+_080E72DC:
+ lsls r0, r1, 24
+ cmp r0, 0
+ beq _080E72E8
+ movs r0, 0x5
+ bl PlaySE
+_080E72E8:
+ ldr r0, _080E7304
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080E730C
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, _080E7308
+ bl sub_80E682C
+ b _080E731A
+ .align 2, 0
+_080E7304: .4byte gMain
+_080E7308: .4byte sub_80E7324
+_080E730C:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080E731A
+ ldr r0, _080E7320
+ bl sub_80E682C
+_080E731A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E7320: .4byte sub_80E73D0
+ thumb_func_end sub_80E7294
+
+ thumb_func_start sub_80E7324
+sub_80E7324: @ 80E7324
+ push {lr}
+ ldr r0, _080E733C
+ ldrh r1, [r0, 0x24]
+ adds r2, r0, 0
+ cmp r1, 0x4
+ bhi _080E73C6
+ lsls r0, r1, 2
+ ldr r1, _080E7340
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080E733C: .4byte 0x02001000
+_080E7340: .4byte _080E7344
+ .align 2, 0
+_080E7344:
+ .4byte _080E7358
+ .4byte _080E737C
+ .4byte _080E7384
+ .4byte _080E738A
+ .4byte _080E73A4
+_080E7358:
+ bl sub_80E7DD0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080E7370
+ ldr r0, _080E736C
+ bl sub_80E682C
+ b _080E73C6
+ .align 2, 0
+_080E736C: .4byte sub_80E7294
+_080E7370:
+ bl sub_80E88F0
+ movs r0, 0
+ bl sub_80E87CC
+ b _080E7394
+_080E737C:
+ ldrh r0, [r2, 0x24]
+ adds r0, 0x1
+ strh r0, [r2, 0x24]
+ b _080E73C6
+_080E7384:
+ bl sub_80E9E98
+ b _080E7394
+_080E738A:
+ bl sub_80EA184
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E73C6
+_080E7394:
+ ldr r1, _080E73A0
+ ldrh r0, [r1, 0x24]
+ adds r0, 0x1
+ strh r0, [r1, 0x24]
+ b _080E73C6
+ .align 2, 0
+_080E73A0: .4byte 0x02001000
+_080E73A4:
+ ldrb r0, [r2, 0x8]
+ cmp r0, 0x6
+ bne _080E73C0
+ bl sub_80E7FA8
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E73C0
+ ldr r0, _080E73BC
+ bl sub_80E682C
+ b _080E73C6
+ .align 2, 0
+_080E73BC: .4byte sub_80E6D7C
+_080E73C0:
+ ldr r0, _080E73CC
+ bl sub_80E682C
+_080E73C6:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E73CC: .4byte sub_80E6AC4
+ thumb_func_end sub_80E7324
+
+ thumb_func_start sub_80E73D0
+sub_80E73D0: @ 80E73D0
+ push {lr}
+ ldr r0, _080E73E4
+ ldrh r0, [r0, 0x24]
+ cmp r0, 0x4
+ bhi _080E744E
+ lsls r0, 2
+ ldr r1, _080E73E8
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080E73E4: .4byte 0x02001000
+_080E73E8: .4byte _080E73EC
+ .align 2, 0
+_080E73EC:
+ .4byte _080E7400
+ .4byte _080E740C
+ .4byte _080E7416
+ .4byte _080E742C
+ .4byte _080E7444
+_080E7400:
+ movs r0, 0
+ bl sub_80E87CC
+ bl sub_80E88F0
+ b _080E7436
+_080E740C:
+ bl sub_80E9AD4
+ bl sub_80E9E98
+ b _080E7436
+_080E7416:
+ bl sub_80EA0E4
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E744E
+ movs r0, 0x1
+ bl sub_80E8D8C
+ bl sub_80E9A14
+ b _080E7436
+_080E742C:
+ bl sub_80E8420
+ movs r0, 0
+ bl sub_80E8958
+_080E7436:
+ ldr r1, _080E7440
+ ldrh r0, [r1, 0x24]
+ adds r0, 0x1
+ strh r0, [r1, 0x24]
+ b _080E744E
+ .align 2, 0
+_080E7440: .4byte 0x02001000
+_080E7444:
+ bl sub_80E9974
+ ldr r0, _080E7454
+ bl sub_80E682C
+_080E744E:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E7454: .4byte sub_80E6FC8
+ thumb_func_end sub_80E73D0
+
+ thumb_func_start sub_80E7458
+sub_80E7458: @ 80E7458
+ push {r4,r5,lr}
+ ldr r4, _080E7468
+ ldrh r5, [r4, 0x24]
+ cmp r5, 0
+ beq _080E746C
+ cmp r5, 0x1
+ beq _080E74A4
+ b _080E7518
+ .align 2, 0
+_080E7468: .4byte 0x02001000
+_080E746C:
+ movs r1, 0xE2
+ lsls r1, 1
+ adds r0, r4, r1
+ ldr r1, [r0]
+ ldr r0, _080E7480
+ cmp r1, r0
+ bne _080E7484
+ bl sub_80E9D7C
+ b _080E7488
+ .align 2, 0
+_080E7480: .4byte sub_80E6FC8
+_080E7484:
+ bl sub_80E9D00
+_080E7488:
+ ldr r4, _080E74A0
+ movs r2, 0xDF
+ lsls r2, 1
+ adds r0, r4, r2
+ ldrb r0, [r0]
+ bl sub_80E9E08
+ ldrh r0, [r4, 0x24]
+ adds r0, 0x1
+ strh r0, [r4, 0x24]
+ b _080E7518
+ .align 2, 0
+_080E74A0: .4byte 0x02001000
+_080E74A4:
+ bl sub_80E9E54
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E7518
+ movs r1, 0xE2
+ lsls r1, 1
+ adds r0, r4, r1
+ ldr r1, [r0]
+ ldr r0, _080E74DC
+ cmp r1, r0
+ bne _080E74E4
+ bl sub_80E9D7C
+ ldr r2, _080E74E0
+ adds r1, r4, r2
+ adds r2, 0xB
+ adds r0, r4, r2
+ ldrb r0, [r0]
+ ldrb r2, [r1]
+ adds r0, r2
+ strb r0, [r1]
+ bl sub_80E7A98
+ adds r0, r4, 0
+ adds r0, 0x96
+ b _080E74FE
+ .align 2, 0
+_080E74DC: .4byte sub_80E6FC8
+_080E74E0: .4byte 0x000001b5
+_080E74E4:
+ ldr r0, _080E7520
+ adds r1, r4, r0
+ movs r2, 0xE0
+ lsls r2, 1
+ adds r0, r4, r2
+ ldrb r0, [r0]
+ ldrb r2, [r1]
+ adds r0, r2
+ strb r0, [r1]
+ bl sub_80E7D30
+ ldr r1, _080E7524
+ adds r0, r4, r1
+_080E74FE:
+ strb r5, [r0]
+ ldr r1, _080E7528
+ movs r0, 0xDF
+ lsls r0, 1
+ adds r2, r1, r0
+ movs r0, 0x2
+ strb r0, [r2]
+ movs r2, 0xE2
+ lsls r2, 1
+ adds r0, r1, r2
+ ldr r0, [r0]
+ bl sub_80E682C
+_080E7518:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E7520: .4byte 0x00009a29
+_080E7524: .4byte 0x000001b9
+_080E7528: .4byte 0x02001000
+ thumb_func_end sub_80E7458
+
+ thumb_func_start sub_80E752C
+sub_80E752C: @ 80E752C
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r4, _080E7540
+ ldrh r1, [r4, 0x24]
+ cmp r1, 0
+ beq _080E7544
+ cmp r1, 0x1
+ beq _080E755C
+ b _080E756C
+ .align 2, 0
+_080E7540: .4byte 0x02001000
+_080E7544:
+ movs r0, 0x1
+ negs r0, r0
+ str r1, [sp]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldrh r0, [r4, 0x24]
+ adds r0, 0x1
+ strh r0, [r4, 0x24]
+ b _080E756C
+_080E755C:
+ bl UpdatePaletteFade
+ lsls r0, 24
+ cmp r0, 0
+ bne _080E756C
+ ldr r0, [r4]
+ bl SetMainCallback2
+_080E756C:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80E752C
+
+ thumb_func_start sub_80E7574
+sub_80E7574: @ 80E7574
+ push {r4,r5,lr}
+ ldr r4, _080E75B8
+ ldrb r5, [r4, 0x8]
+ cmp r5, 0x1
+ bne _080E75BC
+ adds r0, r4, 0
+ adds r0, 0x86
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ adds r1, r4, 0
+ adds r1, 0x7E
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x2
+ bne _080E75BC
+ adds r0, r4, 0
+ adds r0, 0x27
+ ldrb r0, [r0]
+ lsls r0, 1
+ subs r1, 0x72
+ adds r0, r1
+ ldrh r0, [r0]
+ bl sub_80EB2D4
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x7
+ beq _080E75BC
+ adds r0, r4, 0
+ adds r0, 0x7D
+ strb r5, [r0]
+ adds r1, r4, 0
+ b _080E75C6
+ .align 2, 0
+_080E75B8: .4byte 0x02001000
+_080E75BC:
+ ldr r1, _080E75D4
+ adds r2, r1, 0
+ adds r2, 0x7D
+ movs r0, 0
+ strb r0, [r2]
+_080E75C6:
+ adds r1, 0x7D
+ movs r0, 0
+ strb r0, [r1]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E75D4: .4byte 0x02001000
+ thumb_func_end sub_80E7574
+
+ thumb_func_start sub_80E75D8
+sub_80E75D8: @ 80E75D8
+ push {r4-r6,lr}
+ movs r4, 0
+ ldr r2, _080E75FC
+ ldrh r1, [r2, 0x2E]
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ beq _080E7604
+ ldr r1, _080E7600
+ adds r0, r1, 0
+ adds r0, 0x84
+ ldrb r0, [r0]
+ adds r2, r1, 0
+ adds r2, 0x86
+ strb r0, [r2]
+ adds r1, 0x85
+ movs r0, 0x2
+ b _080E768E
+ .align 2, 0
+_080E75FC: .4byte gMain
+_080E7600: .4byte 0x02001000
+_080E7604:
+ ldrh r1, [r2, 0x30]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _080E7630
+ ldr r2, _080E762C
+ adds r1, r2, 0
+ adds r1, 0x86
+ ldrb r0, [r1]
+ subs r0, 0x1
+ strb r0, [r1]
+ lsls r0, 24
+ cmp r0, 0
+ bge _080E765C
+ adds r0, r2, 0
+ adds r0, 0x84
+ ldrb r0, [r0]
+ strb r0, [r1]
+ b _080E765C
+ .align 2, 0
+_080E762C: .4byte 0x02001000
+_080E7630:
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _080E7658
+ ldr r0, _080E7684
+ adds r3, r0, 0
+ adds r3, 0x86
+ ldrb r1, [r3]
+ adds r1, 0x1
+ strb r1, [r3]
+ adds r0, 0x84
+ lsls r1, 24
+ asrs r1, 24
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r1, r0
+ ble _080E7656
+ strb r4, [r3]
+_080E7656:
+ movs r4, 0x1
+_080E7658:
+ cmp r4, 0
+ beq _080E76EA
+_080E765C:
+ ldr r2, _080E7684
+ ldrb r3, [r2, 0x9]
+ cmp r3, 0x2
+ bne _080E7692
+ adds r1, r2, 0
+ adds r1, 0x86
+ adds r0, r2, 0
+ adds r0, 0x84
+ ldrb r1, [r1]
+ lsls r1, 24
+ asrs r1, 24
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r1, r0
+ bne _080E7688
+ adds r0, r2, 0
+ adds r0, 0x85
+ strb r3, [r0]
+ b _080E77BC
+ .align 2, 0
+_080E7684: .4byte 0x02001000
+_080E7688:
+ adds r1, r2, 0
+ adds r1, 0x85
+ movs r0, 0
+_080E768E:
+ strb r0, [r1]
+ b _080E77BC
+_080E7692:
+ movs r0, 0x85
+ adds r0, r2
+ mov r12, r0
+ adds r4, r2, 0
+ adds r4, 0x83
+ movs r1, 0
+ ldrsb r1, [r0, r1]
+ ldrb r3, [r4]
+ movs r0, 0
+ ldrsb r0, [r4, r0]
+ cmp r1, r0
+ blt _080E76B0
+ subs r0, r3, 0x1
+ mov r1, r12
+ strb r0, [r1]
+_080E76B0:
+ adds r1, r2, 0
+ adds r1, 0x86
+ adds r0, r2, 0
+ adds r0, 0x84
+ ldrb r3, [r1]
+ ldrb r1, [r1]
+ lsls r1, 24
+ asrs r1, 24
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r1, r0
+ beq _080E77BC
+ ldrb r0, [r4]
+ adds r4, r0, 0
+ muls r4, r3
+ adds r0, r4, 0
+ mov r5, r12
+ ldrb r5, [r5]
+ adds r0, r5
+ lsls r0, 24
+ lsrs r0, 24
+ ldrb r1, [r2, 0xA]
+ cmp r0, r1
+ bcc _080E77BC
+ subs r0, r1
+ mov r6, r12
+ strb r0, [r6]
+ b _080E77BC
+_080E76EA:
+ ldrh r2, [r2, 0x30]
+ movs r0, 0x20
+ ands r0, r2
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0
+ beq _080E7744
+ ldr r2, _080E7728
+ adds r3, r2, 0
+ adds r3, 0x85
+ ldrb r0, [r3]
+ subs r0, 0x1
+ strb r0, [r3]
+ lsls r0, 24
+ cmp r0, 0
+ bge _080E77BC
+ adds r1, r2, 0
+ adds r1, 0x86
+ adds r0, r2, 0
+ adds r0, 0x84
+ ldrb r4, [r1]
+ ldrb r1, [r1]
+ lsls r1, 24
+ asrs r1, 24
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r1, r0
+ bne _080E772C
+ movs r0, 0x2
+ b _080E77BA
+ .align 2, 0
+_080E7728: .4byte 0x02001000
+_080E772C:
+ adds r0, r2, 0
+ adds r0, 0x83
+ ldrb r0, [r0]
+ subs r1, r0, 0x1
+ strb r1, [r3]
+ adds r5, r4, 0
+ muls r5, r0
+ adds r0, r5, 0
+ adds r1, r0
+ lsls r1, 24
+ lsrs r0, r1, 24
+ b _080E77B2
+_080E7744:
+ movs r0, 0x10
+ ands r0, r2
+ cmp r0, 0
+ beq _080E77C0
+ ldr r2, _080E777C
+ adds r5, r2, 0
+ adds r5, 0x86
+ adds r0, r2, 0
+ adds r0, 0x84
+ movs r1, 0
+ ldrsb r1, [r5, r1]
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r1, r0
+ bne _080E7780
+ adds r1, r2, 0
+ adds r1, 0x85
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0x2
+ ble _080E77BC
+ strb r4, [r1]
+ b _080E77BC
+ .align 2, 0
+_080E777C: .4byte 0x02001000
+_080E7780:
+ adds r3, r2, 0
+ adds r3, 0x85
+ ldrb r0, [r3]
+ adds r0, 0x1
+ strb r0, [r3]
+ movs r6, 0x83
+ adds r6, r2
+ mov r12, r6
+ lsls r0, 24
+ asrs r0, 24
+ movs r1, 0
+ ldrsb r1, [r6, r1]
+ cmp r0, r1
+ blt _080E779E
+ strb r4, [r3]
+_080E779E:
+ ldrb r1, [r5]
+ mov r4, r12
+ ldrb r0, [r4]
+ adds r5, r0, 0
+ muls r5, r1
+ adds r0, r5, 0
+ ldrb r6, [r3]
+ adds r0, r6
+ lsls r0, 24
+ lsrs r0, 24
+_080E77B2:
+ ldrb r1, [r2, 0xA]
+ cmp r0, r1
+ bcc _080E77BC
+ subs r0, r1
+_080E77BA:
+ strb r0, [r3]
+_080E77BC:
+ movs r0, 0x1
+ b _080E77C2
+_080E77C0:
+ movs r0, 0
+_080E77C2:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80E75D8
+
+ thumb_func_start sub_80E77C8
+sub_80E77C8: @ 80E77C8
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ movs r7, 0
+ ldr r1, _080E780C
+ ldr r2, _080E7810
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ adds r3, r1, 0
+ cmp r0, 0
+ beq _080E783E
+ ldr r1, _080E7814
+ ldrh r2, [r1, 0x30]
+ movs r0, 0x40
+ ands r0, r2
+ adds r6, r1, 0
+ cmp r0, 0
+ beq _080E7818
+ movs r4, 0xD4
+ lsls r4, 1
+ adds r1, r3, r4
+ ldrb r0, [r1]
+ subs r0, 0x1
+ strb r0, [r1]
+ lsls r0, 24
+ cmp r0, 0
+ ble _080E7806
+ b _080E7948
+_080E7806:
+ movs r0, 0x3
+ strb r0, [r1]
+ b _080E7948
+ .align 2, 0
+_080E780C: .4byte 0x02001000
+_080E7810: .4byte 0x000001b7
+_080E7814: .4byte gMain
+_080E7818:
+ movs r0, 0x80
+ ands r0, r2
+ cmp r0, 0
+ bne _080E7822
+ b _080E7950
+_080E7822:
+ movs r5, 0xD4
+ lsls r5, 1
+ adds r1, r3, r5
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0x3
+ bgt _080E7838
+ b _080E7948
+_080E7838:
+ movs r0, 0x1
+ strb r0, [r1]
+ b _080E7948
+_080E783E:
+ adds r0, r3, 0
+ adds r0, 0x26
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _080E789A
+ movs r4, 0
+ ldr r1, _080E7870
+ ldrh r2, [r1, 0x30]
+ movs r0, 0x40
+ ands r0, r2
+ adds r6, r1, 0
+ cmp r0, 0
+ beq _080E7874
+ movs r6, 0xD4
+ lsls r6, 1
+ adds r1, r3, r6
+ ldrb r0, [r1]
+ subs r0, 0x1
+ strb r0, [r1]
+ lsls r0, 24
+ cmp r0, 0
+ bge _080E7944
+ movs r0, 0x3
+ strb r0, [r1]
+ b _080E7944
+ .align 2, 0
+_080E7870: .4byte gMain
+_080E7874:
+ movs r0, 0x80
+ ands r0, r2
+ cmp r0, 0
+ beq _080E7894
+ movs r0, 0xD4
+ lsls r0, 1
+ adds r1, r3, r0
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0x3
+ ble _080E7892
+ strb r7, [r1]
+_080E7892:
+ movs r4, 0x1
+_080E7894:
+ cmp r4, 0
+ beq _080E7950
+ b _080E7944
+_080E789A:
+ movs r4, 0
+ movs r1, 0xE0
+ lsls r1, 1
+ adds r5, r3, r1
+ strb r7, [r5]
+ ldr r1, _080E78E0
+ ldrh r2, [r1, 0x30]
+ movs r0, 0x40
+ ands r0, r2
+ adds r6, r1, 0
+ cmp r0, 0
+ beq _080E78E8
+ movs r2, 0xD4
+ lsls r2, 1
+ adds r1, r3, r2
+ ldrb r2, [r1]
+ movs r0, 0
+ ldrsb r0, [r1, r0]
+ cmp r0, 0
+ bne _080E78C4
+ b _080E7A88
+_080E78C4:
+ subs r0, r2, 0x1
+ strb r0, [r1]
+ ldr r4, _080E78E4
+ adds r1, r3, r4
+ lsls r0, 24
+ asrs r0, 24
+ ldrb r1, [r1]
+ lsls r1, 24
+ asrs r1, 24
+ cmp r0, r1
+ bge _080E7932
+ movs r0, 0xFF
+ strb r0, [r5]
+ b _080E7932
+ .align 2, 0
+_080E78E0: .4byte gMain
+_080E78E4: .4byte 0x000001b5
+_080E78E8:
+ movs r0, 0x80
+ ands r0, r2
+ cmp r0, 0
+ beq _080E792E
+ movs r0, 0xD4
+ lsls r0, 1
+ adds r2, r3, r0
+ movs r1, 0
+ ldrsb r1, [r2, r1]
+ movs r4, 0xDB
+ lsls r4, 1
+ adds r0, r3, r4
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ subs r0, 0x1
+ cmp r1, r0
+ blt _080E790E
+ b _080E7A88
+_080E790E:
+ ldrb r0, [r2]
+ adds r0, 0x1
+ strb r0, [r2]
+ movs r1, 0
+ ldrsb r1, [r2, r1]
+ ldr r2, _080E794C
+ adds r0, r3, r2
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ adds r0, 0x3
+ cmp r1, r0
+ ble _080E792C
+ movs r0, 0x1
+ strb r0, [r5]
+_080E792C:
+ movs r4, 0x1
+_080E792E:
+ cmp r4, 0
+ beq _080E7950
+_080E7932:
+ movs r4, 0xE0
+ lsls r4, 1
+ adds r0, r3, r4
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0
+ beq _080E7944
+ b _080E7A88
+_080E7944:
+ bl sub_80E7A98
+_080E7948:
+ movs r0, 0x1
+ b _080E7A8A
+ .align 2, 0
+_080E794C: .4byte 0x000001b5
+_080E7950:
+ ldrh r1, [r6, 0x30]
+ movs r0, 0x20
+ ands r0, r1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ cmp r6, 0
+ beq _080E7992
+ ldr r5, _080E7974
+ adds r2, r3, r5
+ ldrb r1, [r2]
+ movs r0, 0
+ ldrsb r0, [r2, r0]
+ cmp r0, 0
+ beq _080E7978
+ subs r0, r1, 0x1
+ strb r0, [r2]
+ b _080E79E6
+ .align 2, 0
+_080E7974: .4byte 0x000001a9
+_080E7978:
+ movs r6, 0xD4
+ lsls r6, 1
+ adds r0, r3, r6
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ movs r4, 0xD5
+ lsls r4, 1
+ adds r1, r3, r4
+ adds r0, r1
+ ldrb r0, [r0]
+ strb r0, [r2]
+ b _080E79E6
+_080E7992:
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080E79E2
+ ldr r5, _080E79D4
+ adds r0, r3, r5
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0
+ bne _080E79CC
+ ldr r0, _080E79D8
+ adds r4, r3, r0
+ movs r1, 0xD4
+ lsls r1, 1
+ adds r0, r3, r1
+ movs r1, 0
+ ldrsb r1, [r0, r1]
+ movs r2, 0xD5
+ lsls r2, 1
+ adds r0, r3, r2
+ adds r1, r0
+ ldrb r5, [r4]
+ movs r2, 0
+ ldrsb r2, [r4, r2]
+ movs r0, 0
+ ldrsb r0, [r1, r0]
+ cmp r2, r0
+ bne _080E79DC
+_080E79CC:
+ ldr r4, _080E79D8
+ adds r0, r3, r4
+ strb r6, [r0]
+ b _080E79E0
+ .align 2, 0
+_080E79D4: .4byte 0x000001b7
+_080E79D8: .4byte 0x000001a9
+_080E79DC:
+ adds r0, r5, 0x1
+ strb r0, [r4]
+_080E79E0:
+ movs r7, 0x1
+_080E79E2:
+ cmp r7, 0
+ beq _080E7A88
+_080E79E6:
+ adds r2, r3, 0
+ ldr r5, _080E7A48
+ adds r7, r2, r5
+ ldrb r6, [r7]
+ mov r9, r6
+ movs r1, 0
+ ldr r0, _080E7A4C
+ adds r0, r2
+ mov r12, r0
+ subs r5, 0xF
+ adds r4, r2, r5
+ movs r0, 0
+ ldrsb r0, [r4, r0]
+ movs r6, 0xD5
+ lsls r6, 1
+ adds r6, r2
+ mov r8, r6
+ add r0, r8
+ mov r6, r12
+ movs r5, 0
+ ldrsb r5, [r6, r5]
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r5, r0
+ bne _080E7A1C
+ movs r1, 0x1
+_080E7A1C:
+ strb r1, [r7]
+ cmp r1, 0
+ beq _080E7A58
+ ldr r0, _080E7A50
+ adds r1, r2, r0
+ ldrb r0, [r4]
+ ldrb r1, [r1]
+ subs r0, r1
+ strb r0, [r4]
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E7A36
+ b _080E7948
+_080E7A36:
+ movs r0, 0x1
+ strb r0, [r4]
+ ldr r1, _080E7A54
+ adds r0, r2, r1
+ ldrb r0, [r0]
+ mov r2, r12
+ strb r0, [r2]
+ b _080E7948
+ .align 2, 0
+_080E7A48: .4byte 0x000001b7
+_080E7A4C: .4byte 0x000001a9
+_080E7A50: .4byte 0x000001b5
+_080E7A54: .4byte 0x000001ab
+_080E7A58:
+ mov r6, r9
+ cmp r6, 0
+ bne _080E7A60
+ b _080E7948
+_080E7A60:
+ ldr r1, _080E7A84
+ adds r0, r3, r1
+ ldrb r0, [r0]
+ ldrb r2, [r4]
+ adds r0, r2
+ strb r0, [r4]
+ cmp r5, 0
+ bne _080E7A72
+ b _080E7948
+_080E7A72:
+ movs r0, 0
+ ldrsb r0, [r4, r0]
+ add r0, r8
+ ldrb r0, [r0]
+ subs r0, 0x1
+ mov r4, r12
+ strb r0, [r4]
+ b _080E7948
+ .align 2, 0
+_080E7A84: .4byte 0x000001b5
+_080E7A88:
+ movs r0, 0
+_080E7A8A:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80E77C8
+
+ thumb_func_start sub_80E7A98
+sub_80E7A98: @ 80E7A98
+ push {lr}
+ ldr r1, _080E7ACC
+ ldr r0, _080E7AD0
+ adds r3, r1, r0
+ movs r2, 0xD4
+ lsls r2, 1
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ adds r2, 0x2
+ adds r1, r2
+ adds r0, r1
+ movs r1, 0
+ ldrsb r1, [r3, r1]
+ ldrb r2, [r0]
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r1, r0
+ blt _080E7AC6
+ subs r0, r2, 0x1
+ strb r0, [r3]
+_080E7AC6:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E7ACC: .4byte 0x02001000
+_080E7AD0: .4byte 0x000001a9
+ thumb_func_end sub_80E7A98
+
+ thumb_func_start sub_80E7AD4
+sub_80E7AD4: @ 80E7AD4
+ push {lr}
+ ldr r3, _080E7B08
+ adds r0, r3, 0
+ adds r0, 0x26
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080E7B10
+ ldr r1, _080E7B0C
+ adds r0, r3, r1
+ movs r1, 0
+ ldrsb r1, [r0, r1]
+ movs r2, 0xD4
+ lsls r2, 1
+ adds r0, r3, r2
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ lsls r0, 1
+ adds r1, r0
+ adds r0, r3, 0
+ adds r0, 0x2A
+ adds r1, r0
+ ldrb r1, [r1]
+ adds r2, 0x10
+ b _080E7B34
+ .align 2, 0
+_080E7B08: .4byte 0x02001000
+_080E7B0C: .4byte 0x000001a9
+_080E7B10:
+ ldr r1, _080E7B3C
+ adds r0, r3, r1
+ movs r2, 0
+ ldrsb r2, [r0, r2]
+ subs r1, 0x1
+ adds r0, r3, r1
+ movs r1, 0
+ ldrsb r1, [r0, r1]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 1
+ adds r2, r0
+ adds r0, r3, 0
+ adds r0, 0x40
+ adds r2, r0
+ ldrb r1, [r2]
+ movs r2, 0xDC
+ lsls r2, 1
+_080E7B34:
+ adds r0, r3, r2
+ strb r1, [r0]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E7B3C: .4byte 0x000001a9
+ thumb_func_end sub_80E7AD4
+
+ thumb_func_start sub_80E7B40
+sub_80E7B40: @ 80E7B40
+ push {r4-r7,lr}
+ movs r5, 0
+ ldr r2, _080E7B8C
+ movs r0, 0xE0
+ lsls r0, 1
+ adds r6, r2, r0
+ strb r5, [r6]
+ ldr r1, _080E7B90
+ ldrh r4, [r1, 0x30]
+ movs r0, 0x40
+ ands r0, r4
+ adds r3, r2, 0
+ adds r7, r1, 0
+ cmp r0, 0
+ beq _080E7B9C
+ ldr r2, _080E7B94
+ adds r1, r3, r2
+ ldrb r2, [r1]
+ movs r0, 0
+ ldrsb r0, [r1, r0]
+ cmp r0, 0
+ bne _080E7B6E
+ b _080E7D1A
+_080E7B6E:
+ subs r0, r2, 0x1
+ strb r0, [r1]
+ ldr r4, _080E7B98
+ adds r1, r3, r4
+ lsls r0, 24
+ asrs r0, 24
+ ldrb r1, [r1]
+ lsls r1, 24
+ asrs r1, 24
+ cmp r0, r1
+ bge _080E7BF2
+ movs r0, 0xFF
+ strb r0, [r6]
+ b _080E7D1A
+ .align 2, 0
+_080E7B8C: .4byte 0x02001000
+_080E7B90: .4byte gMain
+_080E7B94: .4byte 0x000099a4
+_080E7B98: .4byte 0x00009a29
+_080E7B9C:
+ movs r0, 0x80
+ ands r0, r4
+ cmp r0, 0
+ beq _080E7BEE
+ ldr r0, _080E7BE0
+ adds r2, r3, r0
+ movs r1, 0
+ ldrsb r1, [r2, r1]
+ ldr r4, _080E7BE4
+ adds r0, r3, r4
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ subs r0, 0x1
+ cmp r1, r0
+ blt _080E7BBE
+ b _080E7D1A
+_080E7BBE:
+ ldrb r0, [r2]
+ adds r0, 0x1
+ strb r0, [r2]
+ movs r1, 0
+ ldrsb r1, [r2, r1]
+ ldr r2, _080E7BE8
+ adds r0, r3, r2
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ adds r0, 0x4
+ cmp r1, r0
+ blt _080E7BEC
+ movs r0, 0x1
+ strb r0, [r6]
+ b _080E7D1A
+ .align 2, 0
+_080E7BE0: .4byte 0x000099a4
+_080E7BE4: .4byte 0x00009a28
+_080E7BE8: .4byte 0x00009a29
+_080E7BEC:
+ movs r5, 0x1
+_080E7BEE:
+ cmp r5, 0
+ beq _080E7BFA
+_080E7BF2:
+ bl sub_80E7D30
+_080E7BF6:
+ movs r0, 0x1
+ b _080E7D1C
+_080E7BFA:
+ ldrh r1, [r7, 0x30]
+ movs r0, 0x20
+ ands r0, r1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0
+ beq _080E7C38
+ ldr r4, _080E7C30
+ adds r2, r3, r4
+ ldrb r0, [r2]
+ subs r0, 0x1
+ strb r0, [r2]
+ lsls r0, 24
+ cmp r0, 0
+ bge _080E7BF6
+ ldr r6, _080E7C34
+ adds r0, r3, r6
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ adds r4, 0x1
+ adds r1, r3, r4
+ adds r0, r1
+ ldrb r0, [r0]
+ subs r0, 0x1
+ strb r0, [r2]
+ b _080E7BF6
+ .align 2, 0
+_080E7C30: .4byte 0x000099a5
+_080E7C34: .4byte 0x000099a4
+_080E7C38:
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080E7C70
+ ldr r6, _080E7C68
+ adds r4, r3, r6
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+ ldr r2, _080E7C6C
+ adds r1, r3, r2
+ movs r2, 0
+ ldrsb r2, [r1, r2]
+ adds r6, 0x1
+ adds r1, r3, r6
+ adds r2, r1
+ lsls r0, 24
+ asrs r0, 24
+ movs r1, 0
+ ldrsb r1, [r2, r1]
+ cmp r0, r1
+ blt _080E7BF6
+ strb r5, [r4]
+ b _080E7BF6
+ .align 2, 0
+_080E7C68: .4byte 0x000099a5
+_080E7C6C: .4byte 0x000099a4
+_080E7C70:
+ ldrh r1, [r7, 0x2E]
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ beq _080E7CC4
+ ldr r1, _080E7CBC
+ adds r0, r3, r1
+ ldrb r1, [r0]
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0
+ beq _080E7CA2
+ negs r0, r1
+ movs r4, 0xE0
+ lsls r4, 1
+ adds r2, r3, r4
+ strb r0, [r2]
+ lsls r0, 24
+ asrs r0, 24
+ movs r1, 0x4
+ negs r1, r1
+ cmp r0, r1
+ bge _080E7CA2
+ strb r1, [r2]
+_080E7CA2:
+ ldr r6, _080E7CC0
+ adds r1, r3, r6
+ movs r2, 0xE0
+ lsls r2, 1
+ adds r0, r3, r2
+ ldrb r0, [r0]
+ ldrb r4, [r1]
+ adds r0, r4
+ strb r0, [r1]
+ movs r6, 0xDF
+ lsls r6, 1
+ adds r1, r3, r6
+ b _080E7D16
+ .align 2, 0
+_080E7CBC: .4byte 0x00009a29
+_080E7CC0: .4byte 0x000099a4
+_080E7CC4:
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _080E7D1A
+ ldr r0, _080E7D24
+ adds r4, r3, r0
+ movs r1, 0
+ ldrsb r1, [r4, r1]
+ ldr r6, _080E7D28
+ adds r2, r3, r6
+ movs r0, 0
+ ldrsb r0, [r2, r0]
+ subs r0, 0x4
+ cmp r1, r0
+ bge _080E7CFE
+ ldrb r1, [r4]
+ adds r1, 0x4
+ ldrb r0, [r2]
+ subs r0, r1
+ movs r2, 0xE0
+ lsls r2, 1
+ adds r1, r3, r2
+ strb r0, [r1]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0x4
+ ble _080E7CFE
+ movs r0, 0x4
+ strb r0, [r1]
+_080E7CFE:
+ ldr r4, _080E7D2C
+ adds r1, r3, r4
+ movs r6, 0xE0
+ lsls r6, 1
+ adds r0, r3, r6
+ ldrb r0, [r0]
+ ldrb r2, [r1]
+ adds r0, r2
+ strb r0, [r1]
+ movs r4, 0xDF
+ lsls r4, 1
+ adds r1, r3, r4
+_080E7D16:
+ movs r0, 0x4
+ strb r0, [r1]
+_080E7D1A:
+ movs r0, 0
+_080E7D1C:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080E7D24: .4byte 0x00009a29
+_080E7D28: .4byte 0x00009a28
+_080E7D2C: .4byte 0x000099a4
+ thumb_func_end sub_80E7B40
+
+ thumb_func_start sub_80E7D30
+sub_80E7D30: @ 80E7D30
+ push {r4,lr}
+ ldr r0, _080E7D60
+ ldr r1, _080E7D64
+ adds r4, r0, r1
+ ldr r2, _080E7D68
+ adds r1, r0, r2
+ ldrb r1, [r1]
+ lsls r1, 24
+ asrs r1, 24
+ adds r2, 0x2
+ adds r0, r2
+ adds r1, r0
+ movs r2, 0
+ ldrsb r2, [r4, r2]
+ ldrb r3, [r1]
+ movs r0, 0
+ ldrsb r0, [r1, r0]
+ cmp r2, r0
+ blt _080E7D5A
+ subs r0, r3, 0x1
+ strb r0, [r4]
+_080E7D5A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E7D60: .4byte 0x02001000
+_080E7D64: .4byte 0x000099a5
+_080E7D68: .4byte 0x000099a4
+ thumb_func_end sub_80E7D30
+
+ thumb_func_start sub_80E7D6C
+sub_80E7D6C: @ 80E7D6C
+ push {r4,r5,lr}
+ movs r4, 0
+ ldr r0, _080E7D94
+ ldrb r1, [r0, 0xA]
+ cmp r4, r1
+ bcs _080E7D8E
+ adds r5, r0, 0
+_080E7D7A:
+ adds r0, r4, 0
+ ldr r1, _080E7D98
+ bl sub_80E7F00
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ ldrb r0, [r5, 0xA]
+ cmp r4, r0
+ bcc _080E7D7A
+_080E7D8E:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E7D94: .4byte 0x02001000
+_080E7D98: .4byte 0x0000ffff
+ thumb_func_end sub_80E7D6C
+
+ thumb_func_start sub_80E7D9C
+sub_80E7D9C: @ 80E7D9C
+ push {r4,r5,lr}
+ movs r2, 0
+ ldr r0, _080E7DCC
+ ldrb r1, [r0, 0xA]
+ cmp r2, r1
+ bcs _080E7DC6
+ adds r3, r0, 0
+ ldr r4, [r3, 0x4]
+ adds r5, r3, 0
+ adds r5, 0xC
+_080E7DB0:
+ lsls r0, r2, 1
+ adds r1, r0, r4
+ adds r0, r5
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ ldrb r0, [r3, 0xA]
+ cmp r2, r0
+ bcc _080E7DB0
+_080E7DC6:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E7DCC: .4byte 0x02001000
+ thumb_func_end sub_80E7D9C
+
+ thumb_func_start sub_80E7DD0
+sub_80E7DD0: @ 80E7DD0
+ push {r4,lr}
+ ldr r2, _080E7E28
+ ldr r1, _080E7E2C
+ adds r0, r2, r1
+ movs r1, 0
+ ldrsb r1, [r0, r1]
+ lsls r1, 1
+ ldr r3, _080E7E30
+ adds r0, r2, r3
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ lsls r0, 2
+ adds r1, r0
+ adds r3, 0x86
+ adds r0, r2, r3
+ adds r1, r0
+ ldrh r4, [r1]
+ adds r0, r2, 0
+ adds r0, 0x7D
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080E7E34
+ adds r0, r2, 0
+ adds r0, 0x86
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ adds r1, r2, 0
+ adds r1, 0x7E
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bls _080E7E34
+ adds r0, r4, 0
+ bl sub_80EB2D4
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x7
+ bne _080E7E34
+ movs r0, 0
+ b _080E7E46
+ .align 2, 0
+_080E7E28: .4byte 0x02001000
+_080E7E2C: .4byte 0x000099a5
+_080E7E30: .4byte 0x000099a4
+_080E7E34:
+ ldr r0, _080E7E4C
+ adds r0, 0x27
+ ldrb r0, [r0]
+ adds r1, r4, 0
+ bl sub_80E7F00
+ bl sub_80E95A4
+ movs r0, 0x1
+_080E7E46:
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080E7E4C: .4byte 0x02001000
+ thumb_func_end sub_80E7DD0
+
+ thumb_func_start sub_80E7E50
+sub_80E7E50: @ 80E7E50
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ movs r5, 0
+ movs r2, 0
+ ldr r1, _080E7EF0
+ adds r3, r1, 0
+ adds r3, 0x84
+ movs r0, 0
+ ldrsb r0, [r3, r0]
+ cmp r2, r0
+ bge _080E7EDE
+ mov r8, r1
+ adds r0, r1, 0
+ str r0, [sp]
+_080E7E74:
+ mov r0, r8
+ adds r0, 0x7E
+ adds r0, r2, r0
+ movs r1, 0
+ strb r1, [r0]
+ movs r3, 0
+ ldr r6, _080E7EF4
+ movs r0, 0
+ ldrsb r0, [r6, r0]
+ adds r1, r2, 0x1
+ str r1, [sp, 0x4]
+ cmp r3, r0
+ bge _080E7ECE
+ ldr r6, [sp]
+ mov r12, r6
+ movs r0, 0
+ mov r10, r0
+ ldr r1, _080E7EF4
+ mov r9, r1
+ ldr r7, _080E7EF8
+ lsls r4, r2, 1
+_080E7E9E:
+ lsls r1, r5, 1
+ adds r2, r1, r7
+ mov r6, r12
+ ldr r0, [r6, 0x4]
+ adds r1, r0
+ ldrh r0, [r1]
+ strh r0, [r2]
+ adds r0, r3, r4
+ mov r1, r12
+ adds r1, 0x8C
+ adds r0, r1
+ mov r1, r10
+ strb r1, [r0]
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ mov r6, r9
+ movs r0, 0
+ ldrsb r0, [r6, r0]
+ cmp r3, r0
+ blt _080E7E9E
+_080E7ECE:
+ ldr r1, [sp, 0x4]
+ lsls r0, r1, 16
+ lsrs r2, r0, 16
+ ldr r6, _080E7EFC
+ movs r0, 0
+ ldrsb r0, [r6, r0]
+ cmp r2, r0
+ blt _080E7E74
+_080E7EDE:
+ add sp, 0x8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E7EF0: .4byte 0x02001000
+_080E7EF4: .4byte 0x02001083
+_080E7EF8: .4byte 0x0200100c
+_080E7EFC: .4byte 0x02001084
+ thumb_func_end sub_80E7E50
+
+ thumb_func_start sub_80E7F00
+sub_80E7F00: @ 80E7F00
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ lsls r0, 16
+ lsrs r6, r0, 16
+ lsls r1, 16
+ lsrs r1, 16
+ mov r9, r1
+ ldr r7, _080E7F68
+ adds r0, r7, 0
+ adds r0, 0x83
+ movs r4, 0
+ ldrsb r4, [r0, r4]
+ adds r0, r6, 0
+ adds r1, r4, 0
+ bl __divsi3
+ lsls r0, 16
+ lsrs r5, r0, 16
+ adds r0, r6, 0
+ adds r1, r4, 0
+ bl __modsi3
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ lsls r0, r6, 1
+ adds r1, r7, 0
+ adds r1, 0xC
+ adds r0, r1
+ ldrh r0, [r0]
+ bl sub_80EB2D4
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ mov r0, r9
+ bl sub_80EB2D4
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r4, 0x7
+ bne _080E7F6C
+ cmp r3, 0x7
+ beq _080E7F7C
+ adds r1, r7, 0
+ adds r1, 0x7E
+ adds r1, r5, r1
+ ldrb r0, [r1]
+ subs r0, 0x1
+ b _080E7F7A
+ .align 2, 0
+_080E7F68: .4byte 0x02001000
+_080E7F6C:
+ cmp r3, 0x7
+ bne _080E7F7C
+ adds r1, r7, 0
+ adds r1, 0x7E
+ adds r1, r5, r1
+ ldrb r0, [r1]
+ adds r0, 0x1
+_080E7F7A:
+ strb r0, [r1]
+_080E7F7C:
+ movs r3, 0
+ ldr r2, _080E7FA4
+ lsls r0, r5, 1
+ add r0, r8
+ adds r1, r2, 0
+ adds r1, 0x8C
+ adds r0, r1
+ strb r3, [r0]
+ lsls r0, r6, 1
+ adds r2, 0xC
+ adds r0, r2
+ mov r1, r9
+ strh r1, [r0]
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E7FA4: .4byte 0x02001000
+ thumb_func_end sub_80E7F00
+
+ thumb_func_start sub_80E7FA8
+sub_80E7FA8: @ 80E7FA8
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ movs r0, 0
+ mov r8, r0
+ movs r5, 0
+ ldr r0, _080E8040
+ ldrb r1, [r0, 0xA]
+ cmp r8, r1
+ bcs _080E802E
+ ldr r3, _080E8044
+ adds r6, r0, r3
+ ldr r1, _080E8048
+ adds r1, r0
+ mov r9, r1
+_080E7FC8:
+ ldr r3, _080E804C
+ adds r7, r6, r3
+ ldr r0, [r7, 0x4]
+ lsls r4, r5, 1
+ adds r0, r4, r0
+ ldrh r1, [r0]
+ adds r0, r6, 0
+ movs r2, 0
+ bl sub_80EB218
+ ldr r1, _080E8050
+ adds r0, r6, r1
+ adds r0, r4
+ ldrh r1, [r0]
+ mov r0, r9
+ movs r2, 0
+ bl sub_80EB218
+ adds r1, r6, 0
+ mov r2, r9
+ ldrb r0, [r1]
+ adds r4, r5, 0x1
+ ldrb r3, [r2]
+ cmp r0, r3
+ bne _080E8018
+ adds r3, r7, 0
+ cmp r0, 0xFF
+ beq _080E8010
+_080E8000:
+ adds r1, 0x1
+ adds r2, 0x1
+ ldrb r0, [r1]
+ ldrb r5, [r2]
+ cmp r0, r5
+ bne _080E8018
+ cmp r0, 0xFF
+ bne _080E8000
+_080E8010:
+ ldrb r0, [r1]
+ ldrb r2, [r2]
+ cmp r0, r2
+ beq _080E8024
+_080E8018:
+ mov r0, r8
+ adds r0, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ ldr r3, _080E8040
+_080E8024:
+ lsls r0, r4, 16
+ lsrs r5, r0, 16
+ ldrb r3, [r3, 0xA]
+ cmp r5, r3
+ bcc _080E7FC8
+_080E802E:
+ mov r1, r8
+ lsls r0, r1, 24
+ lsrs r0, 24
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080E8040: .4byte 0x02001000
+_080E8044: .4byte 0x00009e14
+_080E8048: .4byte 0x00009e41
+_080E804C: .4byte 0xffff61ec
+_080E8050: .4byte 0xffff61f8
+ thumb_func_end sub_80E7FA8
+
+ thumb_func_start sub_80E8054
+sub_80E8054: @ 80E8054
+ push {r4,lr}
+ movs r1, 0
+ ldr r2, _080E8078
+ ldrb r0, [r2, 0xA]
+ cmp r1, r0
+ bcs _080E808A
+ adds r4, r2, 0
+ adds r4, 0xC
+ ldr r3, _080E807C
+ adds r2, r0, 0
+_080E8068:
+ lsls r0, r1, 1
+ adds r0, r4
+ ldrh r0, [r0]
+ cmp r0, r3
+ beq _080E8080
+ movs r0, 0
+ b _080E808C
+ .align 2, 0
+_080E8078: .4byte 0x02001000
+_080E807C: .4byte 0x0000ffff
+_080E8080:
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, r2
+ bcc _080E8068
+_080E808A:
+ movs r0, 0x1
+_080E808C:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80E8054
+
+ thumb_func_start sub_80E8094
+sub_80E8094: @ 80E8094
+ push {r4-r7,lr}
+ movs r5, 0
+ ldr r6, _080E80C4
+ adds r7, r6, 0
+ adds r7, 0x2D
+_080E809E:
+ lsls r4, r5, 1
+ ldr r1, _080E80C8
+ adds r0, r6, r1
+ adds r0, r4
+ ldrh r1, [r0]
+ adds r0, r6, 0
+ movs r2, 0
+ bl sub_80EB218
+ ldr r0, _080E80CC
+ adds r4, r0
+ ldrh r1, [r4]
+ adds r0, r7, 0
+ movs r2, 0
+ bl sub_80EB218
+ adds r3, r6, 0
+ adds r4, r7, 0
+ b _080E80D8
+ .align 2, 0
+_080E80C4: .4byte 0x0200ae14
+_080E80C8: .4byte 0xffff61f8
+_080E80CC: .4byte gMysteryEventPhrase
+_080E80D0:
+ adds r4, 0x1
+ adds r3, 0x1
+ cmp r2, r1
+ bne _080E80F4
+_080E80D8:
+ ldrb r2, [r3]
+ adds r0, r2, 0
+ cmp r0, 0xFF
+ beq _080E80EE
+ ldrb r1, [r4]
+ adds r0, r1, 0
+ cmp r0, 0xFF
+ bne _080E80D0
+ ldrb r0, [r3]
+ cmp r0, 0xFF
+ bne _080E80F4
+_080E80EE:
+ ldrb r0, [r4]
+ cmp r0, 0xFF
+ beq _080E80F8
+_080E80F4:
+ movs r0, 0
+ b _080E8104
+_080E80F8:
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x3
+ bls _080E809E
+ movs r0, 0x1
+_080E8104:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80E8094
+
+ thumb_func_start sub_80E810C
+sub_80E810C: @ 80E810C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ movs r5, 0
+ ldr r6, _080E8198
+ ldr r0, _080E819C
+ adds r0, r6
+ mov r9, r0
+ movs r1, 0
+ mov r8, r1
+ adds r7, r6, 0
+ adds r7, 0x80
+ ldr r2, _080E81A0
+ mov r10, r2
+_080E812C:
+ mov r0, r9
+ ldrh r1, [r0, 0xC]
+ adds r0, r6, 0
+ movs r2, 0
+ bl sub_80EB218
+ mov r1, r8
+ strb r1, [r0]
+ adds r0, 0x1
+ mov r2, r9
+ ldrh r1, [r2, 0xE]
+ movs r2, 0
+ bl sub_80EB218
+ lsls r4, r5, 2
+ mov r1, r10
+ adds r0, r4, r1
+ ldrh r1, [r0]
+ adds r0, r7, 0
+ movs r2, 0
+ bl sub_80EB218
+ mov r2, r8
+ strb r2, [r0]
+ adds r0, 0x1
+ ldr r1, _080E81A4
+ adds r4, r1
+ ldrh r1, [r4]
+ movs r2, 0
+ bl sub_80EB218
+ adds r0, r6, 0
+ adds r3, r7, 0
+ adds r4, r5, 0x1
+_080E8170:
+ ldrb r2, [r0]
+ cmp r2, 0xFF
+ beq _080E818A
+ ldrb r1, [r3]
+ cmp r1, 0xFF
+ beq _080E8184
+ adds r3, 0x1
+ adds r0, 0x1
+ cmp r2, r1
+ beq _080E8170
+_080E8184:
+ ldrb r0, [r0]
+ cmp r0, 0xFF
+ bne _080E81A8
+_080E818A:
+ ldrb r0, [r3]
+ cmp r0, 0xFF
+ bne _080E81A8
+ lsls r0, r4, 24
+ lsrs r0, 24
+ b _080E81B2
+ .align 2, 0
+_080E8198: .4byte 0x0200ae6e
+_080E819C: .4byte 0xffff6192
+_080E81A0: .4byte gBerryMasterWifePhrases
+_080E81A4: .4byte gBerryMasterWifePhrases + 0x2
+_080E81A8:
+ lsls r0, r4, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x4
+ bls _080E812C
+ movs r0, 0
+_080E81B2:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80E810C
+
+ thumb_func_start sub_80E81C0
+sub_80E81C0: @ 80E81C0
+ push {r4,lr}
+ ldr r0, _080E81EC
+ ldr r4, _080E81F0
+ ldr r2, _080E81F4
+ adds r1, r4, r2
+ ldrh r1, [r1]
+ movs r2, 0
+ bl sub_80EB218
+ movs r1, 0
+ strb r1, [r0]
+ adds r0, 0x1
+ ldr r1, _080E81F8
+ adds r4, r1
+ ldrh r1, [r4]
+ movs r2, 0
+ bl sub_80EB218
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E81EC: .4byte gStringVar2
+_080E81F0: .4byte 0x02001000
+_080E81F4: .4byte 0x00009c7c
+_080E81F8: .4byte 0x00009c7e
+ thumb_func_end sub_80E81C0
+
+ thumb_func_start sub_80E81FC
+sub_80E81FC: @ 80E81FC
+ push {lr}
+ movs r0, 0x5
+ bl PlaySE
+ bl sub_80E95A4
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0xD
+ bl MenuZeroFillWindowRect
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80E81FC
+
+ thumb_func_start sub_80E8218
+sub_80E8218: @ 80E8218
+ push {r4,r5,lr}
+ sub sp, 0x40
+ mov r1, sp
+ ldr r0, _080E8260
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ ldm r0!, {r2,r3,r5}
+ stm r1!, {r2,r3,r5}
+ ldm r0!, {r2,r4,r5}
+ stm r1!, {r2,r4,r5}
+ ldr r0, [r0]
+ str r0, [r1]
+ add r4, sp, 0x28
+ adds r1, r4, 0
+ ldr r0, _080E8264
+ ldm r0!, {r2,r3,r5}
+ stm r1!, {r2,r3,r5}
+ ldm r0!, {r2,r3,r5}
+ stm r1!, {r2,r3,r5}
+ mov r0, sp
+ bl LoadSpriteSheets
+ adds r0, r4, 0
+ bl LoadSpritePalettes
+ bl sub_80E8268
+ bl sub_80E8818
+ bl sub_80E8A7C
+ add sp, 0x40
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E8260: .4byte gSpriteSheets_Interview
+_080E8264: .4byte gSpritePalettes_Interview
+ thumb_func_end sub_80E8218
+
+ thumb_func_start sub_80E8268
+sub_80E8268: @ 80E8268
+ push {lr}
+ ldr r0, _080E82B0
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080E82B4
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ ldr r0, _080E82B8
+ ldr r3, [r0]
+ adds r0, r3, 0
+ adds r0, 0x8A
+ ldrh r0, [r0]
+ lsls r0, 3
+ adds r0, 0x8
+ movs r2, 0
+ strh r0, [r1, 0x22]
+ adds r0, r3, 0
+ adds r0, 0x88
+ ldrh r0, [r0]
+ lsls r0, 3
+ adds r0, 0x4
+ strh r0, [r1, 0x20]
+ strh r2, [r1, 0x2E]
+ strh r2, [r1, 0x30]
+ adds r0, r3, 0
+ adds r0, 0x98
+ str r1, [r0]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E82B0: .4byte gSpriteTemplate_83DBBFC
+_080E82B4: .4byte gSprites
+_080E82B8: .4byte gUnknown_083DB694
+ thumb_func_end sub_80E8268
+
+ thumb_func_start sub_80E82BC
+sub_80E82BC: @ 80E82BC
+ push {r4-r7,lr}
+ adds r3, r0, 0
+ movs r1, 0x30
+ ldrsh r0, [r3, r1]
+ cmp r0, 0
+ bne _080E838C
+ ldr r0, _080E8334
+ ldr r2, [r0]
+ adds r1, r2, 0
+ adds r1, 0x87
+ ldrb r1, [r1]
+ mov r12, r0
+ cmp r1, 0
+ beq _080E836C
+ adds r0, r2, 0
+ adds r0, 0x86
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ lsls r0, 16
+ lsrs r5, r0, 16
+ adds r0, r2, 0
+ adds r0, 0x85
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ lsls r0, 16
+ lsrs r4, r0, 16
+ movs r7, 0
+ movs r1, 0
+ cmp r7, r4
+ bcs _080E8316
+ lsls r6, r5, 1
+ adds r2, 0x8C
+_080E8300:
+ adds r0, r1, r6
+ adds r0, r2, r0
+ ldrb r0, [r0]
+ adds r0, r7, r0
+ lsls r0, 16
+ lsrs r7, r0, 16
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, r4
+ bcc _080E8300
+_080E8316:
+ mov r0, r12
+ ldr r2, [r0]
+ adds r0, r2, 0
+ adds r0, 0x84
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r5, r0
+ bne _080E8338
+ movs r0, 0x60
+ strh r0, [r3, 0x22]
+ lsls r0, r4, 3
+ subs r0, r4
+ adds r0, 0x3
+ b _080E8356
+ .align 2, 0
+_080E8334: .4byte gUnknown_083DB694
+_080E8338:
+ adds r1, r2, 0
+ adds r1, 0x8A
+ lsls r0, r5, 1
+ ldrh r1, [r1]
+ adds r0, r1
+ lsls r0, 3
+ adds r0, 0x8
+ strh r0, [r3, 0x22]
+ adds r0, r2, 0
+ adds r0, 0x88
+ ldrh r0, [r0]
+ adds r0, r7
+ movs r1, 0xB
+ muls r1, r4
+ adds r0, r1
+_080E8356:
+ lsls r0, 3
+ adds r0, 0x4
+ strh r0, [r3, 0x20]
+ movs r1, 0
+ ldr r0, _080E8368
+ strh r0, [r3, 0x24]
+ strh r1, [r3, 0x2E]
+ b _080E838C
+ .align 2, 0
+_080E8368: .4byte 0x0000fffa
+_080E836C:
+ ldrh r0, [r3, 0x2E]
+ adds r0, 0x1
+ strh r0, [r3, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x2
+ ble _080E838C
+ strh r1, [r3, 0x2E]
+ ldrh r0, [r3, 0x24]
+ adds r0, 0x1
+ strh r0, [r3, 0x24]
+ lsls r0, 16
+ cmp r0, 0
+ ble _080E838C
+ ldr r0, _080E8394
+ strh r0, [r3, 0x24]
+_080E838C:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E8394: .4byte 0x0000fffa
+ thumb_func_end sub_80E82BC
+
+ thumb_func_start sub_80E8398
+sub_80E8398: @ 80E8398
+ push {lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x1
+ beq _080E83D4
+ cmp r3, 0x1
+ bgt _080E83AC
+ cmp r3, 0
+ beq _080E83B2
+ b _080E8416
+_080E83AC:
+ cmp r3, 0x2
+ beq _080E83F8
+ b _080E8416
+_080E83B2:
+ ldr r0, _080E83D0
+ ldr r0, [r0]
+ adds r0, 0x98
+ ldr r1, [r0]
+ strh r3, [r1, 0x30]
+ ldr r1, [r0]
+ strh r3, [r1, 0x24]
+ ldr r1, [r0]
+ adds r1, 0x3E
+ ldrb r2, [r1]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ b _080E8414
+ .align 2, 0
+_080E83D0: .4byte gUnknown_083DB694
+_080E83D4:
+ ldr r0, _080E83F4
+ ldr r1, [r0]
+ adds r1, 0x98
+ ldr r0, [r1]
+ movs r2, 0
+ strh r3, [r0, 0x30]
+ ldr r0, [r1]
+ strh r2, [r0, 0x24]
+ ldr r1, [r1]
+ adds r1, 0x3E
+ ldrb r2, [r1]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ b _080E8414
+ .align 2, 0
+_080E83F4: .4byte gUnknown_083DB694
+_080E83F8:
+ ldr r0, _080E841C
+ ldr r1, [r0]
+ adds r1, 0x98
+ ldr r2, [r1]
+ movs r3, 0
+ movs r0, 0x1
+ strh r0, [r2, 0x30]
+ ldr r0, [r1]
+ strh r3, [r0, 0x24]
+ ldr r1, [r1]
+ adds r1, 0x3E
+ ldrb r0, [r1]
+ movs r2, 0x4
+ orrs r0, r2
+_080E8414:
+ strb r0, [r1]
+_080E8416:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E841C: .4byte gUnknown_083DB694
+ thumb_func_end sub_80E8398
+
+ thumb_func_start sub_80E8420
+sub_80E8420: @ 80E8420
+ push {r4-r7,lr}
+ sub sp, 0x18
+ mov r1, sp
+ ldr r0, _080E84E0
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ mov r0, sp
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x3
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _080E84E4
+ ldr r7, [r1]
+ adds r5, r7, 0
+ adds r5, 0x9C
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ ldr r4, _080E84E8
+ adds r1, r4
+ str r1, [r5]
+ ldr r0, _080E84EC
+ str r0, [sp, 0x8]
+ ldr r0, _080E84F0
+ str r0, [sp, 0x14]
+ mov r0, sp
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x4
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ adds r6, r7, 0
+ adds r6, 0xA0
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ str r1, [r6]
+ ldr r0, _080E84F4
+ str r0, [sp, 0x8]
+ ldr r0, _080E84F8
+ str r0, [sp, 0x14]
+ mov r0, sp
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x5
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ adds r2, r7, 0
+ adds r2, 0xA4
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ str r1, [r2]
+ ldr r0, [r5]
+ movs r1, 0
+ strh r1, [r0, 0x2E]
+ ldr r0, [r6]
+ strh r1, [r0, 0x2E]
+ ldr r0, [r2]
+ strh r1, [r0, 0x2E]
+ movs r0, 0x1
+ bl IndexOfSpritePaletteTag
+ ldr r1, [r5]
+ lsls r0, 24
+ lsrs r0, 20
+ ldr r2, _080E84FC
+ adds r0, r2
+ strh r0, [r1, 0x34]
+ bl sub_80E8534
+ adds r1, r7, 0
+ adds r1, 0x96
+ movs r0, 0x1
+ strb r0, [r1]
+ ldr r1, _080E8500
+ movs r3, 0xFD
+ lsls r3, 6
+ adds r0, r3, 0
+ strh r0, [r1]
+ add sp, 0x18
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E84E0: .4byte gSpriteTemplate_83DBCAC
+_080E84E4: .4byte gUnknown_083DB694
+_080E84E8: .4byte gSprites
+_080E84EC: .4byte gSpriteAnimTable_83DBC8C
+_080E84F0: .4byte sub_80E872C
+_080E84F4: .4byte gSpriteAnimTable_83DBC9C
+_080E84F8: .4byte sub_80E8760
+_080E84FC: .4byte 0x00000101
+_080E8500: .4byte REG_BLDCNT
+ thumb_func_end sub_80E8420
+
+ thumb_func_start sub_80E8504
+sub_80E8504: @ 80E8504
+ push {r4,lr}
+ ldr r0, _080E8530
+ ldr r4, [r0]
+ adds r0, r4, 0
+ adds r0, 0x9C
+ ldr r0, [r0]
+ bl DestroySprite
+ adds r0, r4, 0
+ adds r0, 0xA0
+ ldr r0, [r0]
+ bl DestroySprite
+ adds r0, r4, 0
+ adds r0, 0xA4
+ ldr r0, [r0]
+ bl DestroySprite
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E8530: .4byte gUnknown_083DB694
+ thumb_func_end sub_80E8504
+
+ thumb_func_start sub_80E8534
+sub_80E8534: @ 80E8534
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ ldr r1, _080E8554
+ ldr r3, [r1]
+ ldr r2, _080E8558
+ adds r0, r3, r2
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ adds r4, r1, 0
+ cmp r0, 0
+ beq _080E8560
+ ldr r1, _080E855C
+ movs r0, 0x1
+ b _080E8598
+ .align 2, 0
+_080E8554: .4byte gUnknown_083DB694
+_080E8558: .4byte 0x000001b7
+_080E855C: .4byte gUnknown_020388AC
+_080E8560:
+ adds r0, r3, 0
+ adds r0, 0x26
+ ldrb r2, [r0]
+ cmp r2, 0
+ bne _080E8578
+ ldr r0, _080E8574
+ strb r2, [r0]
+ adds r7, r0, 0
+ b _080E859C
+ .align 2, 0
+_080E8574: .4byte gUnknown_020388AC
+_080E8578:
+ movs r1, 0xD4
+ lsls r1, 1
+ adds r0, r3, r1
+ ldrh r1, [r0]
+ movs r0, 0xC0
+ lsls r0, 3
+ cmp r1, r0
+ bne _080E8594
+ ldr r1, _080E8590
+ movs r0, 0x2
+ b _080E8598
+ .align 2, 0
+_080E8590: .4byte gUnknown_020388AC
+_080E8594:
+ ldr r1, _080E85F4
+ movs r0, 0x3
+_080E8598:
+ strb r0, [r1]
+ adds r7, r1, 0
+_080E859C:
+ ldr r2, [r4]
+ adds r4, r2, 0
+ adds r4, 0x9C
+ ldr r1, [r4]
+ ldrb r0, [r7]
+ movs r3, 0
+ mov r8, r3
+ strh r0, [r1, 0x32]
+ adds r5, r2, 0
+ adds r5, 0xA0
+ ldr r1, [r5]
+ ldrb r0, [r7]
+ strh r0, [r1, 0x32]
+ adds r6, r2, 0
+ adds r6, 0xA4
+ ldr r1, [r6]
+ ldrb r0, [r7]
+ strh r0, [r1, 0x32]
+ ldr r0, [r4]
+ ldrb r1, [r7]
+ bl StartSpriteAnim
+ ldr r0, [r5]
+ ldrb r1, [r7]
+ bl StartSpriteAnim
+ ldr r0, [r6]
+ ldrb r1, [r7]
+ bl StartSpriteAnim
+ ldr r0, [r4]
+ movs r1, 0x8
+ strh r1, [r0, 0x38]
+ ldr r0, [r4]
+ strh r1, [r0, 0x3A]
+ ldr r0, [r4]
+ mov r1, r8
+ strh r1, [r0, 0x30]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E85F4: .4byte gUnknown_020388AC
+ thumb_func_end sub_80E8534
+
+ thumb_func_start sub_80E85F8
+sub_80E85F8: @ 80E85F8
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ ldrh r0, [r5, 0x2E]
+ adds r0, 0x1
+ strh r0, [r5, 0x2E]
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080E8624
+ ldr r1, _080E8620
+ movs r2, 0x30
+ ldrsh r0, [r5, r2]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ lsls r0, 16
+ asrs r0, 21
+ adds r0, 0x8
+ strh r0, [r5, 0x38]
+ b _080E863A
+ .align 2, 0
+_080E8620: .4byte gSineTable
+_080E8624:
+ ldr r1, _080E8688
+ movs r2, 0x30
+ ldrsh r0, [r5, r2]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ lsls r1, 16
+ asrs r1, 21
+ movs r0, 0x8
+ subs r0, r1
+ strh r0, [r5, 0x3A]
+_080E863A:
+ ldrh r0, [r5, 0x30]
+ adds r0, 0x5
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r5, 0x30]
+ ldr r2, _080E868C
+ ldrh r0, [r5, 0x3A]
+ lsls r0, 8
+ ldrh r1, [r5, 0x38]
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r0, _080E8690
+ ldr r6, [r0]
+ adds r0, r6, 0
+ adds r0, 0x96
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080E871A
+ bl sub_80E8534
+ adds r1, r6, 0
+ adds r1, 0x9C
+ ldr r0, [r1]
+ movs r2, 0x8
+ strh r2, [r0, 0x38]
+ ldr r0, [r1]
+ strh r2, [r0, 0x3A]
+ ldr r1, [r1]
+ movs r0, 0
+ strh r0, [r1, 0x30]
+ movs r1, 0x32
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x1
+ beq _080E86C4
+ cmp r0, 0x1
+ bgt _080E8694
+ cmp r0, 0
+ beq _080E869E
+ b _080E871A
+ .align 2, 0
+_080E8688: .4byte gSineTable
+_080E868C: .4byte REG_BLDALPHA
+_080E8690: .4byte gUnknown_083DB694
+_080E8694:
+ cmp r0, 0x2
+ beq _080E86D6
+ cmp r0, 0x3
+ beq _080E86DE
+ b _080E871A
+_080E869E:
+ ldr r2, _080E86C0
+ adds r0, r6, r2
+ movs r1, 0
+ ldrsb r1, [r0, r1]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, 0x20
+ strh r0, [r5, 0x20]
+ movs r1, 0xD4
+ lsls r1, 1
+ adds r0, r6, r1
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ adds r2, 0xC
+ b _080E870A
+ .align 2, 0
+_080E86C0: .4byte 0x000001a9
+_080E86C4:
+ movs r0, 0xD8
+ strh r0, [r5, 0x20]
+ movs r1, 0xD4
+ lsls r1, 1
+ adds r0, r6, r1
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ b _080E8714
+_080E86D6:
+ movs r0, 0x97
+ strh r0, [r5, 0x20]
+ movs r0, 0x60
+ b _080E8718
+_080E86DE:
+ ldr r4, _080E8720
+ ldr r2, _080E8724
+ adds r0, r6, r2
+ movs r1, 0
+ ldrsb r1, [r0, r1]
+ movs r0, 0xD4
+ lsls r0, 1
+ adds r3, r6, r0
+ movs r2, 0
+ ldrsb r2, [r3, r2]
+ lsls r0, r2, 3
+ subs r0, r2
+ adds r1, r0
+ adds r1, r4
+ movs r0, 0
+ ldrsb r0, [r1, r0]
+ lsls r0, 3
+ adds r0, 0x1F
+ strh r0, [r5, 0x20]
+ movs r0, 0
+ ldrsb r0, [r3, r0]
+ ldr r2, _080E8728
+_080E870A:
+ adds r1, r6, r2
+ ldrb r1, [r1]
+ lsls r1, 24
+ asrs r1, 24
+ subs r0, r1
+_080E8714:
+ lsls r0, 4
+ adds r0, 0x60
+_080E8718:
+ strh r0, [r5, 0x22]
+_080E871A:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E8720: .4byte gUnknown_083DBCC4
+_080E8724: .4byte 0x000001a9
+_080E8728: .4byte 0x000001b5
+ thumb_func_end sub_80E85F8
+
+ thumb_func_start sub_80E872C
+sub_80E872C: @ 80E872C
+ push {lr}
+ adds r2, r0, 0
+ ldr r0, _080E875C
+ ldr r1, [r0]
+ adds r0, r1, 0
+ adds r0, 0x96
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080E8756
+ movs r3, 0x32
+ ldrsh r0, [r2, r3]
+ cmp r0, 0
+ bne _080E8756
+ adds r1, 0x9C
+ ldr r0, [r1]
+ ldrh r0, [r0, 0x20]
+ adds r0, 0x20
+ strh r0, [r2, 0x20]
+ ldr r0, [r1]
+ ldrh r0, [r0, 0x22]
+ strh r0, [r2, 0x22]
+_080E8756:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E875C: .4byte gUnknown_083DB694
+ thumb_func_end sub_80E872C
+
+ thumb_func_start sub_80E8760
+sub_80E8760: @ 80E8760
+ push {lr}
+ adds r2, r0, 0
+ ldr r0, _080E8780
+ ldr r1, [r0]
+ adds r0, r1, 0
+ adds r0, 0x96
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080E879E
+ movs r3, 0x32
+ ldrsh r0, [r2, r3]
+ cmp r0, 0
+ beq _080E8784
+ cmp r0, 0x2
+ beq _080E878E
+ b _080E879E
+ .align 2, 0
+_080E8780: .4byte gUnknown_083DB694
+_080E8784:
+ adds r1, 0x9C
+ ldr r0, [r1]
+ ldrh r0, [r0, 0x20]
+ adds r0, 0x40
+ b _080E8796
+_080E878E:
+ adds r1, 0x9C
+ ldr r0, [r1]
+ ldrh r0, [r0, 0x20]
+ adds r0, 0x15
+_080E8796:
+ strh r0, [r2, 0x20]
+ ldr r0, [r1]
+ ldrh r0, [r0, 0x22]
+ strh r0, [r2, 0x22]
+_080E879E:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80E8760
+
+ thumb_func_start sub_80E87A4
+sub_80E87A4: @ 80E87A4
+ push {r4,lr}
+ lsls r0, 24
+ ldr r1, _080E87C8
+ ldr r1, [r1]
+ adds r2, r1, 0
+ adds r2, 0xA8
+ ldr r3, [r2]
+ movs r4, 0
+ cmp r0, 0
+ bne _080E87BA
+ movs r4, 0x1
+_080E87BA:
+ movs r1, 0
+ strh r4, [r3, 0x30]
+ ldr r0, [r2]
+ strh r1, [r0, 0x24]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E87C8: .4byte gUnknown_083DB694
+ thumb_func_end sub_80E87A4
+
+ thumb_func_start sub_80E87CC
+sub_80E87CC: @ 80E87CC
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r4, r0, 0
+ ldr r0, _080E8810
+ ldr r5, [r0]
+ adds r0, r5, 0
+ adds r0, 0xA8
+ ldr r0, [r0]
+ movs r3, 0
+ cmp r4, 0
+ bne _080E87E6
+ movs r3, 0x1
+_080E87E6:
+ adds r2, r0, 0
+ adds r2, 0x3E
+ lsls r3, 2
+ ldrb r1, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ orrs r0, r3
+ strb r0, [r2]
+ adds r0, r4, 0
+ bl sub_80E87A4
+ cmp r4, 0
+ beq _080E880A
+ ldr r0, _080E8814
+ adds r1, r5, r0
+ movs r0, 0x1
+ strb r0, [r1]
+_080E880A:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E8810: .4byte gUnknown_083DB694
+_080E8814: .4byte 0x000001b9
+ thumb_func_end sub_80E87CC
+
+ thumb_func_start sub_80E8818
+sub_80E8818: @ 80E8818
+ push {lr}
+ ldr r0, _080E8850
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080E8854
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ movs r0, 0
+ strh r0, [r1, 0x2E]
+ strh r0, [r1, 0x30]
+ ldr r0, _080E8858
+ ldr r0, [r0]
+ adds r0, 0xA8
+ str r1, [r0]
+ ldr r0, _080E885C
+ str r0, [r1, 0x1C]
+ movs r0, 0
+ bl sub_80E87CC
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E8850: .4byte gSpriteTemplate_83DBBFC
+_080E8854: .4byte gSprites
+_080E8858: .4byte gUnknown_083DB694
+_080E885C: .4byte sub_80E8860
+ thumb_func_end sub_80E8818
+
+ thumb_func_start sub_80E8860
+sub_80E8860: @ 80E8860
+ push {r4,r5,lr}
+ adds r2, r0, 0
+ movs r0, 0x30
+ ldrsh r4, [r2, r0]
+ cmp r4, 0
+ bne _080E88E4
+ ldr r0, _080E88B0
+ ldr r3, [r0]
+ ldr r1, _080E88B4
+ adds r0, r3, r1
+ ldrb r1, [r0]
+ cmp r1, 0
+ beq _080E88C4
+ ldr r5, _080E88B8
+ adds r0, r3, r5
+ movs r1, 0
+ ldrsb r1, [r0, r1]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, 0x2C
+ strh r0, [r2, 0x20]
+ ldr r1, _080E88BC
+ adds r0, r3, r1
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ adds r5, 0x84
+ adds r1, r3, r5
+ ldrb r1, [r1]
+ lsls r1, 24
+ asrs r1, 24
+ subs r0, r1
+ lsls r0, 4
+ adds r0, 0x60
+ strh r0, [r2, 0x22]
+ ldr r0, _080E88C0
+ strh r0, [r2, 0x24]
+ strh r4, [r2, 0x2E]
+ b _080E88E4
+ .align 2, 0
+_080E88B0: .4byte gUnknown_083DB694
+_080E88B4: .4byte 0x000001b9
+_080E88B8: .4byte 0x000099a5
+_080E88BC: .4byte 0x000099a4
+_080E88C0: .4byte 0x0000fffa
+_080E88C4:
+ ldrh r0, [r2, 0x2E]
+ adds r0, 0x1
+ strh r0, [r2, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x2
+ ble _080E88E4
+ strh r1, [r2, 0x2E]
+ ldrh r0, [r2, 0x24]
+ adds r0, 0x1
+ strh r0, [r2, 0x24]
+ lsls r0, 16
+ cmp r0, 0
+ ble _080E88E4
+ ldr r0, _080E88EC
+ strh r0, [r2, 0x24]
+_080E88E4:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E88EC: .4byte 0x0000fffa
+ thumb_func_end sub_80E8860
+
+ thumb_func_start sub_80E88F0
+sub_80E88F0: @ 80E88F0
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ movs r4, 0
+ ldr r0, _080E8950
+ mov r8, r0
+ ldr r0, [r0]
+ movs r6, 0x4
+ movs r5, 0
+ movs r1, 0xB4
+ adds r1, r0
+ mov r12, r1
+ adds r7, r0, 0
+ adds r7, 0xAC
+_080E890C:
+ lsls r2, r4, 2
+ adds r3, r7, r2
+ ldr r1, [r3]
+ adds r1, 0x3E
+ ldrb r0, [r1]
+ orrs r0, r6
+ strb r0, [r1]
+ ldr r0, [r3]
+ strh r5, [r0, 0x30]
+ add r2, r12
+ ldr r1, [r2]
+ adds r1, 0x3E
+ ldrb r0, [r1]
+ orrs r0, r6
+ strb r0, [r1]
+ ldr r0, [r2]
+ strh r5, [r0, 0x30]
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x1
+ bls _080E890C
+ mov r1, r8
+ ldr r0, [r1]
+ ldr r1, _080E8954
+ adds r0, r1
+ movs r1, 0
+ strb r1, [r0]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E8950: .4byte gUnknown_083DB694
+_080E8954: .4byte 0x00009c70
+ thumb_func_end sub_80E88F0
+
+ thumb_func_start sub_80E8958
+sub_80E8958: @ 80E8958
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ lsls r0, 24
+ lsrs r7, r0, 24
+ cmp r7, 0
+ bne _080E89B4
+ movs r0, 0x64
+ mov r9, r0
+ ldr r0, _080E8998
+ ldr r2, [r0]
+ ldr r3, _080E899C
+ adds r1, r2, r3
+ ldr r3, _080E89A0
+ adds r0, r2, r3
+ str r0, [r1]
+ adds r0, r2, 0
+ adds r0, 0x26
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080E89A8
+ movs r1, 0xDB
+ lsls r1, 1
+ adds r0, r2, r1
+ ldrb r0, [r0]
+ subs r0, 0x4
+ ldr r3, _080E89A4
+ adds r1, r2, r3
+ strb r0, [r1]
+ b _080E8A00
+ .align 2, 0
+_080E8998: .4byte gUnknown_083DB694
+_080E899C: .4byte 0x00009c6c
+_080E89A0: .4byte 0x000001b5
+_080E89A4: .4byte 0x00009c71
+_080E89A8:
+ ldr r1, _080E89B0
+ adds r0, r2, r1
+ strb r7, [r0]
+ b _080E8A00
+ .align 2, 0
+_080E89B0: .4byte 0x00009c71
+_080E89B4:
+ movs r3, 0x78
+ mov r9, r3
+ ldr r0, _080E8A64
+ ldr r2, [r0]
+ ldr r0, _080E8A68
+ adds r1, r2, r0
+ ldr r3, _080E8A6C
+ adds r0, r2, r3
+ str r0, [r1]
+ ldr r1, _080E8A70
+ adds r0, r2, r1
+ ldrb r0, [r0]
+ subs r0, 0x4
+ ldr r3, _080E8A74
+ adds r1, r2, r3
+ strb r0, [r1]
+ movs r4, 0
+ adds r5, r2, 0
+ adds r5, 0xB4
+ movs r0, 0x5
+ negs r0, r0
+ mov r12, r0
+ movs r6, 0x1
+_080E89E2:
+ lsls r3, r4, 2
+ adds r3, r5, r3
+ ldr r1, [r3]
+ adds r1, 0x3E
+ ldrb r2, [r1]
+ mov r0, r12
+ ands r0, r2
+ strb r0, [r1]
+ ldr r0, [r3]
+ strh r6, [r0, 0x30]
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x1
+ bls _080E89E2
+_080E8A00:
+ ldr r0, _080E8A64
+ ldr r2, [r0]
+ ldr r3, _080E8A74
+ adds r1, r2, r3
+ movs r0, 0
+ ldrsb r0, [r1, r0]
+ cmp r0, 0
+ bge _080E8A14
+ movs r0, 0
+ strb r0, [r1]
+_080E8A14:
+ movs r4, 0
+ adds r6, r2, 0
+ adds r6, 0xAC
+ movs r0, 0x5
+ negs r0, r0
+ mov r8, r0
+_080E8A20:
+ lsls r2, r4, 2
+ adds r2, r6, r2
+ ldr r0, [r2]
+ mov r1, r9
+ strh r1, [r0, 0x20]
+ ldr r1, [r2]
+ adds r1, 0x3E
+ ldrb r0, [r1]
+ mov r3, r8
+ ands r0, r3
+ strb r0, [r1]
+ ldr r0, [r2]
+ movs r5, 0x1
+ strh r5, [r0, 0x30]
+ ldr r0, [r2]
+ adds r1, r7, 0
+ bl StartSpriteAnim
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x1
+ bls _080E8A20
+ ldr r0, _080E8A64
+ ldr r0, [r0]
+ ldr r1, _080E8A78
+ adds r0, r1
+ strb r5, [r0]
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E8A64: .4byte gUnknown_083DB694
+_080E8A68: .4byte 0x00009c6c
+_080E8A6C: .4byte 0x00009a29
+_080E8A70: .4byte 0x00009a28
+_080E8A74: .4byte 0x00009c71
+_080E8A78: .4byte 0x00009c70
+ thumb_func_end sub_80E8958
+
+ thumb_func_start sub_80E8A7C
+sub_80E8A7C: @ 80E8A7C
+ push {r4-r7,lr}
+ sub sp, 0x18
+ mov r1, sp
+ ldr r0, _080E8B68
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ movs r5, 0
+_080E8A8E:
+ lsls r2, r5, 3
+ adds r2, r5
+ lsls r2, 19
+ movs r0, 0xA8
+ lsls r0, 15
+ adds r2, r0
+ asrs r2, 16
+ mov r0, sp
+ movs r1, 0
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r1, r0, 24
+ ldr r0, _080E8B6C
+ ldr r2, [r0]
+ lsls r0, r5, 2
+ adds r2, 0xAC
+ adds r2, r0
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080E8B70
+ adds r0, r1
+ str r0, [r2]
+ strh r5, [r0, 0x2E]
+ ldr r3, [r2]
+ adds r3, 0x3F
+ movs r0, 0x1
+ adds r2, r5, 0
+ ands r2, r0
+ lsls r2, 1
+ ldrb r0, [r3]
+ movs r4, 0x3
+ negs r4, r4
+ adds r1, r4, 0
+ ands r0, r1
+ orrs r0, r2
+ strb r0, [r3]
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x1
+ bls _080E8A8E
+ mov r0, sp
+ movs r1, 0x3
+ strh r1, [r0]
+ ldr r0, _080E8B74
+ str r0, [sp, 0x8]
+ movs r5, 0
+ movs r7, 0x3F
+ movs r6, 0x40
+_080E8AF6:
+ lsls r4, r5, 2
+ adds r1, r4, r5
+ lsls r1, 19
+ movs r0, 0x8E
+ lsls r0, 16
+ adds r1, r0
+ asrs r1, 16
+ mov r0, sp
+ movs r2, 0x58
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r1, r0, 24
+ ldr r0, _080E8B6C
+ ldr r2, [r0]
+ adds r2, 0xB4
+ adds r2, r4
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080E8B70
+ adds r0, r1
+ str r0, [r2]
+ strh r5, [r0, 0x2E]
+ ldr r3, [r2]
+ ldrb r1, [r3, 0x1]
+ adds r0, r7, 0
+ ands r0, r1
+ orrs r0, r6
+ strb r0, [r3, 0x1]
+ ldr r3, [r2]
+ ldrb r1, [r3, 0x3]
+ adds r0, r7, 0
+ ands r0, r1
+ orrs r0, r6
+ strb r0, [r3, 0x3]
+ ldr r0, [r2]
+ lsls r1, r5, 24
+ lsrs r1, 24
+ bl StartSpriteAnim
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x1
+ bls _080E8AF6
+ movs r0, 0
+ bl sub_80E8958
+ bl sub_80E88F0
+ add sp, 0x18
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E8B68: .4byte gSpriteTemplate_83DBD18
+_080E8B6C: .4byte gUnknown_083DB694
+_080E8B70: .4byte gSprites
+_080E8B74: .4byte gUnknown_083DBD10
+ thumb_func_end sub_80E8A7C
+
+ thumb_func_start sub_80E8B78
+sub_80E8B78: @ 80E8B78
+ push {r4,lr}
+ adds r3, r0, 0
+ ldr r0, _080E8BB0
+ ldr r1, [r0]
+ ldr r2, _080E8BB4
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080E8BE8
+ movs r2, 0x30
+ ldrsh r0, [r3, r2]
+ cmp r0, 0
+ beq _080E8BE8
+ movs r2, 0x2E
+ ldrsh r0, [r3, r2]
+ cmp r0, 0
+ bne _080E8BBC
+ movs r4, 0
+ ldr r2, _080E8BB8
+ adds r0, r1, r2
+ ldr r0, [r0]
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0
+ bne _080E8BD6
+ b _080E8BD4
+ .align 2, 0
+_080E8BB0: .4byte gUnknown_083DB694
+_080E8BB4: .4byte 0x00009c70
+_080E8BB8: .4byte 0x00009c6c
+_080E8BBC:
+ movs r4, 0
+ ldr r2, _080E8BF0
+ adds r0, r1, r2
+ ldr r0, [r0]
+ adds r2, 0x5
+ adds r1, r2
+ movs r2, 0
+ ldrsb r2, [r0, r2]
+ movs r0, 0
+ ldrsb r0, [r1, r0]
+ cmp r2, r0
+ bne _080E8BD6
+_080E8BD4:
+ movs r4, 0x1
+_080E8BD6:
+ adds r2, r3, 0
+ adds r2, 0x3E
+ lsls r3, r4, 2
+ ldrb r1, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ orrs r0, r3
+ strb r0, [r2]
+_080E8BE8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E8BF0: .4byte 0x00009c6c
+ thumb_func_end sub_80E8B78
+
+ thumb_func_start sub_80E8BF4
+sub_80E8BF4: @ 80E8BF4
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x14
+ lsls r0, 24
+ lsrs r3, r0, 24
+ lsls r1, 24
+ lsrs r2, r1, 24
+ ldr r0, _080E8C28
+ ldr r1, [r0, 0x4]
+ ldr r0, [r0]
+ str r0, [sp, 0x4]
+ str r1, [sp, 0x8]
+ ldr r0, _080E8C2C
+ ldr r1, [r0, 0x4]
+ ldr r0, [r0]
+ str r0, [sp, 0xC]
+ str r1, [sp, 0x10]
+ cmp r2, 0x2
+ beq _080E8C20
+ cmp r2, 0x5
+ beq _080E8C30
+_080E8C20:
+ movs r4, 0x40
+ movs r5, 0x28
+ b _080E8C34
+ .align 2, 0
+_080E8C28: .4byte gUnknown_083DBD30
+_080E8C2C: .4byte gUnknown_083DBD38
+_080E8C30:
+ movs r4, 0x24
+ movs r5, 0x30
+_080E8C34:
+ cmp r3, 0
+ beq _080E8C3C
+ cmp r3, 0x1
+ beq _080E8C40
+_080E8C3C:
+ movs r0, 0x43
+ b _080E8C42
+_080E8C40:
+ movs r0, 0x44
+_080E8C42:
+ mov r8, r0
+ add r0, sp, 0x4
+ bl LoadCompressedObjectPic
+ add r0, sp, 0xC
+ bl LoadSpritePalette
+ ldr r0, _080E8CDC
+ adds r1, r4, 0
+ adds r2, r5, 0
+ movs r3, 0x1
+ bl CreateSprite
+ ldr r0, _080E8CE0
+ ldrb r0, [r0, 0x8]
+ movs r1, 0x69
+ cmp r0, 0
+ bne _080E8C68
+ movs r1, 0x64
+_080E8C68:
+ ldr r7, _080E8CE4
+ adds r2, r4, 0
+ subs r2, 0xC
+ movs r6, 0
+ str r6, [sp]
+ adds r0, r1, 0
+ adds r1, r7, 0
+ adds r3, r5, 0
+ bl AddPseudoFieldObject
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x40
+ beq _080E8C9E
+ ldr r1, _080E8CE8
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r1
+ ldrb r2, [r0, 0x5]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r2
+ strb r1, [r0, 0x5]
+ movs r1, 0x3
+ bl StartSpriteAnim
+_080E8C9E:
+ adds r2, r4, 0
+ adds r2, 0xC
+ str r6, [sp]
+ mov r0, r8
+ adds r1, r7, 0
+ adds r3, r5, 0
+ bl AddPseudoFieldObject
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x40
+ beq _080E8CD0
+ ldr r1, _080E8CE8
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r1
+ ldrb r2, [r0, 0x5]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r2
+ strb r1, [r0, 0x5]
+ movs r1, 0x2
+ bl StartSpriteAnim
+_080E8CD0:
+ add sp, 0x14
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E8CDC: .4byte gSpriteTemplate_83DBD48
+_080E8CE0: .4byte gSaveBlock2
+_080E8CE4: .4byte SpriteCallbackDummy
+_080E8CE8: .4byte gSprites
+ thumb_func_end sub_80E8BF4
+
+ thumb_func_start sub_80E8CEC
+sub_80E8CEC: @ 80E8CEC
+ push {lr}
+ ldr r0, _080E8D24
+ bl LoadCompressedObjectPic
+ ldr r0, _080E8D28
+ bl LoadSpritePalette
+ ldr r0, _080E8D2C
+ movs r1, 0xE0
+ movs r2, 0x58
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x40
+ beq _080E8D3C
+ ldr r0, _080E8D30
+ ldr r2, [r0]
+ ldr r0, _080E8D34
+ adds r2, r0
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080E8D38
+ adds r0, r1
+ str r0, [r2]
+ b _080E8D48
+ .align 2, 0
+_080E8D24: .4byte gUnknown_083DBD60
+_080E8D28: .4byte gUnknown_083DBD68
+_080E8D2C: .4byte gSpriteTemplate_83DBDE4
+_080E8D30: .4byte gUnknown_083DB694
+_080E8D34: .4byte 0x00009c74
+_080E8D38: .4byte gSprites
+_080E8D3C:
+ ldr r0, _080E8D4C
+ ldr r0, [r0]
+ ldr r1, _080E8D50
+ adds r0, r1
+ movs r1, 0
+ str r1, [r0]
+_080E8D48:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E8D4C: .4byte gUnknown_083DB694
+_080E8D50: .4byte 0x00009c74
+ thumb_func_end sub_80E8CEC
+
+ thumb_func_start sub_80E8D54
+sub_80E8D54: @ 80E8D54
+ push {lr}
+ ldr r0, _080E8D78
+ ldr r2, [r0]
+ ldr r1, _080E8D7C
+ adds r0, r2, r1
+ ldr r1, [r0]
+ cmp r1, 0
+ beq _080E8D88
+ adds r0, r2, 0
+ adds r0, 0x26
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080E8D80
+ adds r0, r1, 0
+ movs r1, 0x1
+ bl StartSpriteAnim
+ b _080E8D88
+ .align 2, 0
+_080E8D78: .4byte gUnknown_083DB694
+_080E8D7C: .4byte 0x00009c74
+_080E8D80:
+ adds r0, r1, 0
+ movs r1, 0x2
+ bl StartSpriteAnim
+_080E8D88:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80E8D54
+
+ thumb_func_start sub_80E8D8C
+sub_80E8D8C: @ 80E8D8C
+ push {lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldr r0, _080E8DB8
+ ldr r2, [r0]
+ ldr r1, _080E8DBC
+ adds r0, r2, r1
+ ldr r1, [r0]
+ cmp r1, 0
+ beq _080E8DD2
+ cmp r3, 0
+ beq _080E8DCA
+ adds r0, r2, 0
+ adds r0, 0x26
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080E8DC0
+ adds r0, r1, 0
+ movs r1, 0x3
+ bl StartSpriteAnim
+ b _080E8DD2
+ .align 2, 0
+_080E8DB8: .4byte gUnknown_083DB694
+_080E8DBC: .4byte 0x00009c74
+_080E8DC0:
+ adds r0, r1, 0
+ movs r1, 0x4
+ bl StartSpriteAnim
+ b _080E8DD2
+_080E8DCA:
+ adds r0, r1, 0
+ movs r1, 0x5
+ bl StartSpriteAnim
+_080E8DD2:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80E8D8C
+
+ thumb_func_start sub_80E8DD8
+sub_80E8DD8: @ 80E8DD8
+ push {r4-r6,lr}
+ mov r6, r9
+ mov r5, r8
+ push {r5,r6}
+ sub sp, 0x8
+ ldr r0, _080E8F2C
+ movs r6, 0
+ strh r6, [r0]
+ adds r0, 0x2
+ strh r6, [r0]
+ adds r0, 0x2
+ strh r6, [r0]
+ adds r0, 0x2
+ strh r6, [r0]
+ adds r0, 0x4
+ strh r6, [r0]
+ subs r0, 0x2
+ strh r6, [r0]
+ adds r0, 0x4
+ strh r6, [r0]
+ adds r0, 0x2
+ strh r6, [r0]
+ ldr r1, _080E8F30
+ movs r2, 0x8B
+ lsls r2, 8
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r2, _080E8F34
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r0, _080E8F38
+ ldr r1, _080E8F3C
+ ldr r1, [r1]
+ mov r8, r1
+ movs r4, 0xE4
+ lsls r4, 1
+ add r4, r8
+ movs r5, 0xA0
+ lsls r5, 2
+ adds r1, r4, 0
+ adds r2, r5, 0
+ bl CpuSet
+ ldr r0, _080E8F40
+ movs r1, 0xD9
+ lsls r1, 3
+ add r1, r8
+ bl LZ77UnCompWram
+ ldr r0, _080E8F44
+ ldr r1, _080E8F48
+ bl LZ77UnCompVram
+ ldr r1, _080E8F4C
+ adds r0, r4, 0
+ adds r2, r5, 0
+ bl CpuSet
+ ldr r0, _080E8F50
+ movs r1, 0x40
+ movs r2, 0x40
+ bl LoadPalette
+ ldr r1, _080E8F54
+ ldr r2, _080E8F58
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r1, _080E8F5C
+ movs r5, 0x80
+ lsls r5, 4
+ mov r0, sp
+ strh r6, [r0]
+ ldr r4, _080E8F60
+ str r0, [r4]
+ str r1, [r4, 0x4]
+ lsrs r0, r5, 1
+ movs r2, 0x81
+ lsls r2, 24
+ orrs r0, r2
+ str r0, [r4, 0x8]
+ ldr r0, [r4, 0x8]
+ ldr r0, _080E8F64
+ ldr r2, _080E8F68
+ str r0, [r4]
+ str r2, [r4, 0x4]
+ ldr r0, _080E8F6C
+ str r0, [r4, 0x8]
+ ldr r0, [r4, 0x8]
+ ldr r0, _080E8F70
+ bl LZ77UnCompVram
+ ldr r0, _080E8F74
+ movs r1, 0
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r0, _080E8F78
+ movs r1, 0x10
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r1, _080E8F7C
+ ldr r2, _080E8F80
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r1, _080E8F84
+ movs r0, 0
+ mov r9, r0
+ str r0, [sp, 0x4]
+ add r0, sp, 0x4
+ str r0, [r4]
+ str r1, [r4, 0x4]
+ lsrs r5, 2
+ movs r0, 0x85
+ lsls r0, 24
+ orrs r5, r0
+ str r5, [r4, 0x8]
+ ldr r0, [r4, 0x8]
+ ldr r0, _080E8F88
+ movs r1, 0x20
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r0, _080E8F8C
+ adds r1, r0, 0
+ adds r1, 0x7E
+ ldr r3, _080E8F90
+ strh r3, [r1]
+ subs r1, 0x1C
+ ldr r2, _080E8F94
+ strh r2, [r1]
+ adds r0, 0x70
+ ldr r1, _080E8F98
+ strh r1, [r0]
+ ldr r0, _080E8F9C
+ adds r4, r0, 0
+ adds r4, 0x7E
+ strh r3, [r4]
+ adds r3, r0, 0
+ adds r3, 0x62
+ strh r2, [r3]
+ adds r0, 0x70
+ strh r1, [r0]
+ movs r1, 0xBC
+ add r8, r1
+ mov r2, r8
+ strb r6, [r2]
+ bl sub_80E8FA4
+ bl sub_80E948C
+ movs r0, 0xA
+ bl sub_80E9198
+ movs r0, 0
+ bl sub_80E91D4
+ bl sub_80E95A4
+ ldr r0, _080E8FA0
+ mov r1, r9
+ strh r1, [r0]
+ add sp, 0x8
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E8F2C: .4byte REG_BG0HOFS
+_080E8F30: .4byte REG_BG0CNT
+_080E8F34: .4byte 0x00000d09
+_080E8F38: .4byte gUnknown_08E945D0
+_080E8F3C: .4byte gUnknown_083DB694
+_080E8F40: .4byte gUnknown_08E953D0
+_080E8F44: .4byte gMenuWordGroupFrame_Gfx
+_080E8F48: .4byte 0x06008000
+_080E8F4C: .4byte 0x06006800
+_080E8F50: .4byte gMenuWordGroupFrame1_Pal
+_080E8F54: .4byte REG_BG2CNT
+_080E8F58: .4byte 0x00000e02
+_080E8F5C: .4byte 0x06007000
+_080E8F60: .4byte 0x040000d4
+_080E8F64: .4byte gUnknown_08E9AB00
+_080E8F68: .4byte 0x06006000
+_080E8F6C: .4byte 0x80000020
+_080E8F70: .4byte gUnknown_08E9AB60
+_080E8F74: .4byte gUnknown_08E9AB40
+_080E8F78: .4byte gUnknown_083DBDFC
+_080E8F7C: .4byte REG_BG3CNT
+_080E8F80: .4byte 0x00000f0f
+_080E8F84: .4byte 0x06007800
+_080E8F88: .4byte gUnknown_083DBE40
+_080E8F8C: .4byte gPlttBufferUnfaded
+_080E8F90: .4byte 0x00007fff
+_080E8F94: .4byte 0x00006f5b
+_080E8F98: .4byte 0x0000739c
+_080E8F9C: .4byte gPlttBufferFaded
+_080E8FA0: .4byte REG_BLDCNT
+ thumb_func_end sub_80E8DD8
+
+ thumb_func_start sub_80E8FA4
+sub_80E8FA4: @ 80E8FA4
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x2C
+ movs r0, 0
+ mov r9, r0
+ mov r1, sp
+ adds r1, 0x18
+ str r1, [sp, 0x24]
+ add r2, sp, 0xC
+ mov r12, r2
+_080E8FBE:
+ mov r3, r9
+ lsls r1, r3, 1
+ ldr r4, _080E90F4
+ adds r0, r1, r4
+ ldrh r2, [r0]
+ movs r0, 0x1F
+ ands r0, r2
+ lsls r0, 8
+ str r0, [sp]
+ ldr r5, _080E90F8
+ adds r1, r5
+ ldrh r1, [r1]
+ movs r0, 0x1F
+ ands r0, r1
+ lsls r0, 8
+ str r0, [sp, 0xC]
+ lsls r2, 16
+ lsrs r0, r2, 21
+ movs r3, 0x1F
+ ands r0, r3
+ lsls r0, 8
+ str r0, [sp, 0x4]
+ lsls r1, 16
+ lsrs r0, r1, 21
+ ands r0, r3
+ lsls r0, 8
+ mov r4, r12
+ str r0, [r4, 0x4]
+ lsrs r2, 26
+ ands r2, r3
+ lsls r2, 8
+ str r2, [sp, 0x8]
+ lsrs r1, 26
+ ands r1, r3
+ lsls r1, 8
+ str r1, [r4, 0x8]
+ movs r3, 0
+ mov r5, r9
+ lsls r5, 3
+ mov r10, r5
+ mov r0, r9
+ adds r0, 0x1
+ str r0, [sp, 0x28]
+ ldr r4, [sp, 0x24]
+_080E9016:
+ lsls r0, r3, 2
+ adds r2, r4, r0
+ mov r5, r12
+ adds r1, r5, r0
+ add r0, sp
+ ldr r1, [r1]
+ ldr r0, [r0]
+ subs r0, r1, r0
+ cmp r0, 0
+ bge _080E902C
+ adds r0, 0x7
+_080E902C:
+ asrs r0, 3
+ str r0, [r2]
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0x2
+ bls _080E9016
+ movs r4, 0
+ ldr r0, _080E90FC
+ ldr r1, [r0]
+ mov r0, r10
+ add r0, r9
+ lsls r0, 1
+ mov r8, r0
+ movs r5, 0x1F
+ ldr r6, [sp, 0x24]
+ ldr r0, _080E9100
+ adds r7, r1, r0
+_080E9050:
+ lsls r2, r4, 1
+ add r2, r8
+ adds r2, r7, r2
+ ldr r1, [sp, 0x8]
+ asrs r1, 8
+ ands r1, r5
+ lsls r1, 10
+ ldr r0, [sp, 0x4]
+ asrs r0, 8
+ ands r0, r5
+ lsls r0, 5
+ orrs r1, r0
+ ldr r0, [sp]
+ asrs r0, 8
+ ands r0, r5
+ orrs r1, r0
+ strh r1, [r2]
+ movs r3, 0
+ adds r4, 0x1
+_080E9076:
+ lsls r0, r3, 2
+ mov r1, sp
+ adds r2, r1, r0
+ adds r0, r6, r0
+ ldr r1, [r2]
+ ldr r0, [r0]
+ adds r1, r0
+ str r1, [r2]
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0x2
+ bls _080E9076
+ lsls r0, r4, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x7
+ bls _080E9050
+ ldr r2, _080E90FC
+ ldr r3, [r2]
+ mov r0, r10
+ add r0, r9
+ adds r0, r4
+ lsls r0, 1
+ ldr r4, _080E9100
+ adds r2, r3, r4
+ adds r2, r0
+ mov r5, r12
+ ldr r1, [r5, 0x8]
+ asrs r1, 8
+ movs r0, 0x1F
+ ands r1, r0
+ lsls r1, 10
+ ldr r0, [r5, 0x4]
+ asrs r0, 8
+ movs r4, 0x1F
+ ands r0, r4
+ lsls r0, 5
+ orrs r1, r0
+ ldr r0, [sp, 0xC]
+ asrs r0, 8
+ ands r0, r4
+ orrs r1, r0
+ strh r1, [r2]
+ ldr r5, [sp, 0x28]
+ lsls r0, r5, 16
+ lsrs r0, 16
+ mov r9, r0
+ cmp r0, 0x2
+ bhi _080E90DA
+ b _080E8FBE
+_080E90DA:
+ ldr r0, _080E9104
+ adds r1, r3, r0
+ movs r0, 0
+ strb r0, [r1]
+ add sp, 0x2C
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E90F4: .4byte gMenuWordGroupFrame2_Pal + 0x2
+_080E90F8: .4byte gMenuWordGroupFrame2_Pal + 0x8
+_080E90FC: .4byte gUnknown_083DB694
+_080E9100: .4byte 0x00009c34
+_080E9104: .4byte 0x00009c32
+ thumb_func_end sub_80E8FA4
+
+ thumb_func_start sub_80E9108
+sub_80E9108: @ 80E9108
+ push {r4-r7,lr}
+ lsls r0, 24
+ ldr r1, _080E9164
+ ldr r2, [r1]
+ ldr r3, _080E9168
+ adds r1, r2, r3
+ lsrs r0, 24
+ ldrb r3, [r1]
+ adds r0, r3
+ strb r0, [r1]
+ movs r4, 0
+ ldr r0, _080E916C
+ mov r12, r0
+ adds r6, r1, 0
+ ldr r3, _080E9170
+ adds r5, r2, r3
+ ldr r7, _080E9174
+_080E912A:
+ adds r2, r4, 0
+ adds r2, 0x51
+ lsls r2, 1
+ mov r0, r12
+ adds r3, r2, r0
+ ldrb r0, [r6]
+ lsls r0, 1
+ lsls r1, r4, 3
+ adds r1, r4
+ lsls r1, 1
+ adds r0, r1
+ adds r0, r5, r0
+ ldrh r0, [r0]
+ strh r0, [r3]
+ adds r2, r7
+ ldrb r0, [r6]
+ lsls r0, 1
+ adds r0, r1
+ adds r0, r5, r0
+ ldrh r0, [r0]
+ strh r0, [r2]
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x2
+ bls _080E912A
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E9164: .4byte gUnknown_083DB694
+_080E9168: .4byte 0x00009c32
+_080E916C: .4byte gPlttBufferUnfaded
+_080E9170: .4byte 0x00009c34
+_080E9174: .4byte gPlttBufferFaded
+ thumb_func_end sub_80E9108
+
+ thumb_func_start sub_80E9178
+sub_80E9178: @ 80E9178
+ push {lr}
+ ldr r0, _080E9190
+ ldr r0, [r0]
+ ldr r1, _080E9194
+ adds r0, r1
+ movs r1, 0
+ strb r1, [r0]
+ movs r0, 0
+ bl sub_80E9108
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E9190: .4byte gUnknown_083DB694
+_080E9194: .4byte 0x00009c32
+ thumb_func_end sub_80E9178
+
+ thumb_func_start sub_80E9198
+sub_80E9198: @ 80E9198
+ ldr r1, _080E91A0
+ strb r0, [r1]
+ bx lr
+ .align 2, 0
+_080E91A0: .4byte gUnknown_03000740
+ thumb_func_end sub_80E9198
+
+ thumb_func_start sub_80E91A4
+sub_80E91A4: @ 80E91A4
+ ldr r0, _080E91AC
+ ldrb r0, [r0]
+ bx lr
+ .align 2, 0
+_080E91AC: .4byte gUnknown_03000740
+ thumb_func_end sub_80E91A4
+
+ thumb_func_start sub_80E91B0
+sub_80E91B0: @ 80E91B0
+ push {lr}
+ sub sp, 0x8
+ lsls r2, 24
+ lsls r1, 27
+ lsrs r1, 24
+ lsrs r2, 21
+ lsls r3, 27
+ lsrs r3, 24
+ str r3, [sp]
+ movs r3, 0x1
+ str r3, [sp, 0x4]
+ movs r3, 0xB0
+ bl sub_8072AB0
+ add sp, 0x8
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80E91B0
+
+ thumb_func_start sub_80E91D4
+sub_80E91D4: @ 80E91D4
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r4, r0, 0
+ ldr r0, _080E91FC
+ bl BasicInitMenuWindow
+ cmp r4, 0xA
+ bne _080E9200
+ movs r0, 0x3
+ movs r1, 0xE
+ movs r2, 0x1A
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ movs r0, 0xA
+ bl sub_80E9198
+ b _080E935C
+ .align 2, 0
+_080E91FC: .4byte gWindowConfig_81E6DA8
+_080E9200:
+ bl sub_80E91A4
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xA
+ bne _080E9218
+ movs r0, 0x3
+ movs r1, 0xE
+ movs r2, 0x1A
+ movs r3, 0x13
+ bl MenuDrawTextWindow
+_080E9218:
+ adds r0, r4, 0
+ bl sub_80E9198
+ cmp r4, 0x9
+ bls _080E9224
+ b _080E935C
+_080E9224:
+ lsls r0, r4, 2
+ ldr r1, _080E9230
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080E9230: .4byte _080E9234
+ .align 2, 0
+_080E9234:
+ .4byte _080E925C
+ .4byte _080E9284
+ .4byte _080E92AC
+ .4byte _080E92C4
+ .4byte _080E92F0
+ .4byte _080E9308
+ .4byte _080E9310
+ .4byte _080E9318
+ .4byte _080E933C
+ .4byte _080E9350
+_080E925C:
+ ldr r0, _080E9278
+ ldr r4, [r0]
+ ldr r1, _080E927C
+ adds r0, r4, r1
+ movs r1, 0x4
+ movs r2, 0xF
+ movs r3, 0x2
+ bl sub_80E91B0
+ ldr r0, _080E9280
+ adds r4, r0
+ adds r0, r4, 0
+ b _080E9326
+ .align 2, 0
+_080E9278: .4byte gUnknown_083DB694
+_080E927C: .4byte 0x00009c80
+_080E9280: .4byte 0x00009cc9
+_080E9284:
+ ldr r0, _080E92A0
+ ldr r4, [r0]
+ ldr r1, _080E92A4
+ adds r0, r4, r1
+ movs r1, 0x4
+ movs r2, 0xF
+ movs r3, 0x2
+ bl sub_80E91B0
+ ldr r0, _080E92A8
+ adds r4, r0
+ adds r0, r4, 0
+ b _080E9326
+ .align 2, 0
+_080E92A0: .4byte gUnknown_083DB694
+_080E92A4: .4byte 0x00009d12
+_080E92A8: .4byte 0x00009d5b
+_080E92AC:
+ ldr r0, _080E92BC
+ movs r1, 0x4
+ movs r2, 0xF
+ movs r3, 0x2
+ bl sub_80E91B0
+ ldr r0, _080E92C0
+ b _080E9326
+ .align 2, 0
+_080E92BC: .4byte gOtherText_TextDeletedConfirmPage1
+_080E92C0: .4byte gOtherText_TextDeletedConfirmPage2
+_080E92C4:
+ ldr r0, _080E92D8
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x8]
+ cmp r0, 0x4
+ beq _080E92E0
+ cmp r0, 0x9
+ bne _080E92E8
+ ldr r0, _080E92DC
+ b _080E933E
+ .align 2, 0
+_080E92D8: .4byte gUnknown_083DB694
+_080E92DC: .4byte gOtherText_QuitGivingInfo
+_080E92E0:
+ ldr r0, _080E92E4
+ b _080E933E
+ .align 2, 0
+_080E92E4: .4byte gOtherText_StopGivingMail
+_080E92E8:
+ ldr r0, _080E92EC
+ b _080E933E
+ .align 2, 0
+_080E92EC: .4byte gOtherText_QuitEditing
+_080E92F0:
+ ldr r0, _080E9300
+ movs r1, 0x4
+ movs r2, 0xF
+ movs r3, 0x2
+ bl sub_80E91B0
+ ldr r0, _080E9304
+ b _080E9326
+ .align 2, 0
+_080E9300: .4byte gOtherText_EditedTextNoSavePage1
+_080E9304: .4byte gOtherText_EditedTextNoSavePage2
+_080E9308:
+ ldr r0, _080E930C
+ b _080E933E
+ .align 2, 0
+_080E930C: .4byte gOtherText_EnterAPhraseOrWord
+_080E9310:
+ ldr r0, _080E9314
+ b _080E933E
+ .align 2, 0
+_080E9314: .4byte gOtherText_TextNoDelete
+_080E9318:
+ ldr r0, _080E9334
+ movs r1, 0x4
+ movs r2, 0xF
+ movs r3, 0x2
+ bl sub_80E91B0
+ ldr r0, _080E9338
+_080E9326:
+ movs r1, 0x4
+ movs r2, 0x11
+ movs r3, 0x2
+ bl sub_80E91B0
+ b _080E935C
+ .align 2, 0
+_080E9334: .4byte gOtherText_OnlyOnePhrase
+_080E9338: .4byte gOtherText_OriginalSongRestored
+_080E933C:
+ ldr r0, _080E934C
+_080E933E:
+ movs r1, 0x4
+ movs r2, 0xF
+ movs r3, 0x4
+ bl sub_80E91B0
+ b _080E935C
+ .align 2, 0
+_080E934C: .4byte gOtherText_TrendyAlready
+_080E9350:
+ ldr r0, _080E9364
+ movs r1, 0x4
+ movs r2, 0xF
+ movs r3, 0x4
+ bl sub_80E91B0
+_080E935C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E9364: .4byte gOtherText_CombineTwoPhrases
+ thumb_func_end sub_80E91D4
+
+ thumb_func_start sub_80E9368
+sub_80E9368: @ 80E9368
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xD
+ bhi _080E93F8
+ lsls r0, 2
+ ldr r1, _080E937C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080E937C: .4byte _080E9380
+ .align 2, 0
+_080E9380:
+ .4byte _080E93B8
+ .4byte _080E93C0
+ .4byte _080E93C8
+ .4byte _080E93D0
+ .4byte _080E93F8
+ .4byte _080E93E8
+ .4byte _080E93D8
+ .4byte _080E93E8
+ .4byte _080E93E8
+ .4byte _080E93E0
+ .4byte _080E93E8
+ .4byte _080E93E8
+ .4byte _080E93E8
+ .4byte _080E93F0
+_080E93B8:
+ ldr r4, _080E93BC
+ b _080E93FA
+ .align 2, 0
+_080E93BC: .4byte gOtherText_Profile
+_080E93C0:
+ ldr r4, _080E93C4
+ b _080E93FA
+ .align 2, 0
+_080E93C4: .4byte gOtherText_AtBattleStart
+_080E93C8:
+ ldr r4, _080E93CC
+ b _080E93FA
+ .align 2, 0
+_080E93CC: .4byte gOtherText_UponWinningBattle
+_080E93D0:
+ ldr r4, _080E93D4
+ b _080E93FA
+ .align 2, 0
+_080E93D4: .4byte gOtherText_UponLosingBattle
+_080E93D8:
+ ldr r4, _080E93DC
+ b _080E93FA
+ .align 2, 0
+_080E93DC: .4byte gOtherText_TheBardsSong
+_080E93E0:
+ ldr r4, _080E93E4
+ b _080E93FA
+ .align 2, 0
+_080E93E4: .4byte gOtherText_WhatsHipHappening
+_080E93E8:
+ ldr r4, _080E93EC
+ b _080E93FA
+ .align 2, 0
+_080E93EC: .4byte gOtherText_Interview
+_080E93F0:
+ ldr r4, _080E93F4
+ b _080E93FA
+ .align 2, 0
+_080E93F4: .4byte gOtherText_GoodSaying
+_080E93F8:
+ movs r4, 0
+_080E93FA:
+ ldr r0, _080E943C
+ bl BasicInitMenuWindow
+ ldr r0, _080E9440
+ ldr r2, [r0]
+ ldr r0, _080E9444
+ adds r5, r2, r0
+ movs r3, 0xFC
+ strb r3, [r5]
+ adds r0, 0x1
+ adds r1, r2, r0
+ movs r0, 0x5
+ strb r0, [r1]
+ ldr r0, _080E9448
+ adds r1, r2, r0
+ movs r0, 0x1
+ strb r0, [r1]
+ cmp r4, 0
+ beq _080E9450
+ ldr r1, _080E944C
+ adds r0, r2, r1
+ adds r1, r4, 0
+ movs r2, 0xF0
+ movs r3, 0x2
+ bl sub_8072C74
+ adds r0, r5, 0
+ movs r1, 0
+ movs r2, 0
+ bl MenuPrint
+ b _080E9476
+ .align 2, 0
+_080E943C: .4byte gWindowConfig_81E6D8C
+_080E9440: .4byte gUnknown_083DB694
+_080E9444: .4byte 0x00009f8e
+_080E9448: .4byte 0x00009f90
+_080E944C: .4byte 0x00009f91
+_080E9450:
+ ldr r0, _080E9484
+ adds r1, r2, r0
+ strb r3, [r1]
+ movs r0, 0x11
+ strb r0, [r1, 0x1]
+ movs r0, 0x10
+ strb r0, [r1, 0x2]
+ movs r0, 0xFF
+ strb r0, [r1, 0x3]
+ adds r0, r5, 0
+ movs r1, 0
+ movs r2, 0
+ bl MenuPrint
+ adds r0, r5, 0
+ movs r1, 0x1C
+ movs r2, 0
+ bl MenuPrint
+_080E9476:
+ ldr r0, _080E9488
+ bl BasicInitMenuWindow
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E9484: .4byte 0x00009f91
+_080E9488: .4byte gWindowConfig_81E6DA8
+ thumb_func_end sub_80E9368
+
+ thumb_func_start sub_80E948C
+sub_80E948C: @ 80E948C
+ push {lr}
+ sub sp, 0x10
+ ldr r0, _080E94A8
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x9]
+ cmp r0, 0x5
+ bls _080E949C
+ b _080E9594
+_080E949C:
+ lsls r0, 2
+ ldr r1, _080E94AC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080E94A8: .4byte gUnknown_083DB694
+_080E94AC: .4byte _080E94B0
+ .align 2, 0
+_080E94B0:
+ .4byte _080E9508
+ .4byte _080E9530
+ .4byte _080E9554
+ .4byte _080E9578
+ .4byte _080E94C8
+ .4byte _080E94E8
+_080E94C8:
+ ldr r0, _080E94E0
+ ldr r3, _080E94E4
+ movs r1, 0
+ str r1, [sp]
+ movs r1, 0x1A
+ str r1, [sp, 0x4]
+ movs r1, 0x18
+ str r1, [sp, 0x8]
+ movs r1, 0x6
+ str r1, [sp, 0xC]
+ movs r1, 0x3
+ b _080E9568
+ .align 2, 0
+_080E94E0: .4byte 0x06006800
+_080E94E4: .4byte gUnknown_08E94AD0
+_080E94E8:
+ ldr r0, _080E9500
+ ldr r3, _080E9504
+ movs r1, 0
+ str r1, [sp]
+ movs r1, 0x12
+ str r1, [sp, 0x4]
+ movs r1, 0xD
+ str r1, [sp, 0x8]
+ movs r1, 0x8
+ str r1, [sp, 0xC]
+ movs r1, 0xE
+ b _080E951E
+ .align 2, 0
+_080E9500: .4byte 0x06006800
+_080E9504: .4byte gUnknown_08E94AD0
+_080E9508:
+ ldr r0, _080E9528
+ ldr r3, _080E952C
+ movs r1, 0
+ str r1, [sp]
+ movs r1, 0xA
+ str r1, [sp, 0x4]
+ movs r1, 0x1A
+ str r1, [sp, 0x8]
+ movs r1, 0x8
+ str r1, [sp, 0xC]
+ movs r1, 0x2
+_080E951E:
+ movs r2, 0x2
+ bl sub_809D104
+ b _080E9594
+ .align 2, 0
+_080E9528: .4byte 0x06006800
+_080E952C: .4byte gUnknown_08E94AD0
+_080E9530:
+ ldr r0, _080E954C
+ ldr r3, _080E9550
+ movs r1, 0
+ str r1, [sp]
+ str r1, [sp, 0x4]
+ movs r1, 0x1A
+ str r1, [sp, 0x8]
+ movs r1, 0xA
+ str r1, [sp, 0xC]
+ movs r1, 0x2
+ movs r2, 0
+ bl sub_809D104
+ b _080E9594
+ .align 2, 0
+_080E954C: .4byte 0x06006800
+_080E9550: .4byte gUnknown_08E94AD0
+_080E9554:
+ ldr r0, _080E9570
+ ldr r3, _080E9574
+ movs r2, 0xD
+ str r2, [sp]
+ movs r1, 0x12
+ str r1, [sp, 0x4]
+ str r2, [sp, 0x8]
+ movs r1, 0x4
+ str r1, [sp, 0xC]
+ movs r1, 0xE
+_080E9568:
+ movs r2, 0x3
+ bl sub_809D104
+ b _080E9594
+ .align 2, 0
+_080E9570: .4byte 0x06006800
+_080E9574: .4byte gUnknown_08E94AD0
+_080E9578:
+ ldr r0, _080E959C
+ ldr r3, _080E95A0
+ movs r1, 0
+ str r1, [sp]
+ movs r1, 0x20
+ str r1, [sp, 0x4]
+ movs r1, 0x18
+ str r1, [sp, 0x8]
+ movs r1, 0x4
+ str r1, [sp, 0xC]
+ movs r1, 0x3
+ movs r2, 0x2
+ bl sub_809D104
+_080E9594:
+ add sp, 0x10
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E959C: .4byte 0x06006800
+_080E95A0: .4byte gUnknown_08E94AD0
+ thumb_func_end sub_80E948C
+
+ thumb_func_start sub_80E95A4
+sub_80E95A4: @ 80E95A4
+ push {lr}
+ ldr r0, _080E95C0
+ bl BasicInitMenuWindow
+ ldr r0, _080E95C4
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x9]
+ cmp r0, 0x5
+ bhi _080E9612
+ lsls r0, 2
+ ldr r1, _080E95C8
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080E95C0: .4byte gWindowConfig_81E6D8C
+_080E95C4: .4byte gUnknown_083DB694
+_080E95C8: .4byte _080E95CC
+ .align 2, 0
+_080E95CC:
+ .4byte _080E95F2
+ .4byte _080E95F6
+ .4byte _080E9600
+ .4byte _080E960A
+ .4byte _080E95E4
+ .4byte _080E95EE
+_080E95E4:
+ movs r0, 0x4
+ movs r1, 0x6
+ bl sub_80E9620
+ b _080E9612
+_080E95EE:
+ movs r0, 0x2
+ b _080E9602
+_080E95F2:
+ movs r0, 0x3
+ b _080E95F8
+_080E95F6:
+ movs r0, 0
+_080E95F8:
+ movs r1, 0x5
+ bl sub_80E9620
+ b _080E9612
+_080E9600:
+ movs r0, 0x4
+_080E9602:
+ movs r1, 0x11
+ bl sub_80E9620
+ b _080E9612
+_080E960A:
+ movs r0, 0x3
+ movs r1, 0x6
+ bl sub_80E9620
+_080E9612:
+ ldr r0, _080E961C
+ bl BasicInitMenuWindow
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E961C: .4byte gWindowConfig_81E6DA8
+ thumb_func_end sub_80E95A4
+
+ thumb_func_start sub_80E9620
+sub_80E9620: @ 80E9620
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x20
+ lsls r0, 16
+ lsls r1, 16
+ lsrs r1, 16
+ str r1, [sp, 0x14]
+ movs r1, 0
+ mov r10, r1
+ lsrs r7, r0, 16
+ mov r9, r1
+ ldr r0, _080E9644
+ ldr r0, [r0]
+ b _080E971A
+ .align 2, 0
+_080E9644: .4byte gUnknown_083DB694
+_080E9648:
+ ldr r6, [sp, 0x14]
+ movs r2, 0
+ mov r8, r2
+ adds r0, r7, 0x2
+ str r0, [sp, 0x1C]
+ mov r1, r9
+ adds r1, 0x1
+ str r1, [sp, 0x18]
+ b _080E96E4
+_080E965A:
+ mov r2, r10
+ lsls r0, r2, 1
+ adds r1, r5, 0
+ adds r1, 0xC
+ adds r1, r0
+ ldrh r0, [r1]
+ ldr r2, _080E9690
+ cmp r0, r2
+ bne _080E969C
+ movs r0, 0
+ str r0, [sp]
+ str r0, [sp, 0x4]
+ movs r1, 0x9
+ str r1, [sp, 0x8]
+ movs r0, 0x2
+ str r0, [sp, 0xC]
+ str r1, [sp, 0x10]
+ ldr r0, _080E9694
+ adds r1, r6, 0
+ adds r2, r7, 0
+ ldr r3, _080E9698
+ bl sub_8095C8C
+ adds r0, r6, 0
+ adds r0, 0xB
+ b _080E96CC
+ .align 2, 0
+_080E9690: .4byte 0x0000ffff
+_080E9694: .4byte 0x06007000
+_080E9698: .4byte gUnknown_083DBE1C
+_080E969C:
+ ldr r0, _080E9738
+ adds r4, r5, r0
+ ldrh r1, [r1]
+ adds r0, r4, 0
+ movs r2, 0xB
+ bl sub_80EB218
+ lsls r1, r6, 24
+ lsrs r1, 24
+ lsls r2, r7, 24
+ lsrs r2, 24
+ adds r0, r4, 0
+ bl MenuPrint
+ mov r1, r9
+ lsls r0, r1, 1
+ add r0, r8
+ adds r1, r5, 0
+ adds r1, 0x8C
+ adds r1, r0
+ adds r0, r6, 0
+ adds r0, 0xB
+ ldrb r1, [r1]
+ adds r0, r1
+_080E96CC:
+ lsls r0, 16
+ lsrs r6, r0, 16
+ mov r0, r10
+ adds r0, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+ mov r10, r0
+ mov r0, r8
+ adds r0, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+_080E96E4:
+ ldr r0, _080E973C
+ ldr r5, [r0]
+ adds r0, r5, 0
+ adds r0, 0x83
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r8, r0
+ bge _080E970A
+ ldrb r2, [r5, 0xA]
+ cmp r10, r2
+ bcc _080E965A
+ lsls r1, r6, 24
+ lsrs r1, 24
+ lsls r2, r7, 24
+ lsrs r2, 24
+ ldr r0, _080E9740
+ bl MenuPrint
+_080E970A:
+ ldr r1, [sp, 0x1C]
+ lsls r0, r1, 16
+ lsrs r7, r0, 16
+ ldr r2, [sp, 0x18]
+ lsls r0, r2, 16
+ lsrs r0, 16
+ mov r9, r0
+ adds r0, r5, 0
+_080E971A:
+ adds r0, 0x84
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r9, r0
+ blt _080E9648
+ add sp, 0x20
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E9738: .4byte 0x00009e14
+_080E973C: .4byte gUnknown_083DB694
+_080E9740: .4byte gUnknown_083DBEA8
+ thumb_func_end sub_80E9620
+
+ thumb_func_start sub_80E9744
+sub_80E9744: @ 80E9744
+ push {lr}
+ ldr r0, _080E9760
+ bl BasicInitMenuWindow
+ ldr r0, _080E9764
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x9]
+ cmp r0, 0x5
+ bhi _080E97B2
+ lsls r0, 2
+ ldr r1, _080E9768
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080E9760: .4byte gWindowConfig_81E6D8C
+_080E9764: .4byte gUnknown_083DB694
+_080E9768: .4byte _080E976C
+ .align 2, 0
+_080E976C:
+ .4byte _080E9792
+ .4byte _080E9796
+ .4byte _080E97A0
+ .4byte _080E97AA
+ .4byte _080E9784
+ .4byte _080E978E
+_080E9784:
+ movs r0, 0x4
+ movs r1, 0x6
+ bl sub_80E97C0
+ b _080E97B2
+_080E978E:
+ movs r0, 0x2
+ b _080E97A2
+_080E9792:
+ movs r0, 0x3
+ b _080E9798
+_080E9796:
+ movs r0, 0
+_080E9798:
+ movs r1, 0x5
+ bl sub_80E97C0
+ b _080E97B2
+_080E97A0:
+ movs r0, 0x4
+_080E97A2:
+ movs r1, 0x11
+ bl sub_80E97C0
+ b _080E97B2
+_080E97AA:
+ movs r0, 0x3
+ movs r1, 0x6
+ bl sub_80E97C0
+_080E97B2:
+ ldr r0, _080E97BC
+ bl BasicInitMenuWindow
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E97BC: .4byte gWindowConfig_81E6DA8
+ thumb_func_end sub_80E9744
+
+ thumb_func_start sub_80E97C0
+sub_80E97C0: @ 80E97C0
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ lsls r0, 16
+ lsrs r5, r0, 16
+ lsls r1, 16
+ lsrs r1, 16
+ str r1, [sp]
+ movs r7, 0
+ movs r3, 0
+ ldr r1, _080E98B8
+ ldr r0, [r1]
+ adds r0, 0x84
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r3, r0
+ bge _080E98A6
+_080E97EA:
+ ldr r1, [r1]
+ ldr r0, _080E98BC
+ adds r2, r1, r0
+ movs r6, 0
+ adds r0, r1, 0
+ adds r0, 0x83
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ ldr r4, [sp]
+ lsls r4, 24
+ mov r8, r4
+ lsls r4, r5, 24
+ mov r9, r4
+ adds r5, 0x2
+ mov r10, r5
+ adds r3, 0x1
+ str r3, [sp, 0x4]
+ cmp r6, r0
+ bge _080E985E
+ ldrb r1, [r1, 0xA]
+ cmp r7, r1
+ bcs _080E985E
+ ldr r0, _080E98B8
+ ldr r4, [r0]
+ ldr r5, _080E98C0
+_080E981E:
+ lsls r0, r7, 1
+ adds r1, r4, 0
+ adds r1, 0xC
+ adds r1, r0
+ ldrh r0, [r1]
+ cmp r0, r5
+ beq _080E983E
+ adds r1, r0, 0
+ adds r0, r2, 0
+ movs r2, 0
+ bl sub_80EB218
+ adds r2, r0, 0
+ movs r0, 0
+ strb r0, [r2]
+ adds r2, 0x1
+_080E983E:
+ adds r0, r7, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ adds r0, r4, 0
+ adds r0, 0x83
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r6, r0
+ bge _080E985E
+ ldrb r0, [r4, 0xA]
+ cmp r7, r0
+ bcc _080E981E
+_080E985E:
+ ldr r1, _080E98B8
+ ldr r4, [r1]
+ adds r0, r4, 0
+ adds r0, 0x83
+ movs r1, 0
+ ldrsb r1, [r0, r1]
+ movs r0, 0xB
+ muls r1, r0
+ movs r0, 0xFC
+ strb r0, [r2]
+ movs r0, 0x13
+ strb r0, [r2, 0x1]
+ lsls r1, 3
+ strb r1, [r2, 0x2]
+ movs r0, 0xFF
+ strb r0, [r2, 0x3]
+ ldr r2, _080E98BC
+ adds r0, r4, r2
+ mov r3, r8
+ lsrs r1, r3, 24
+ mov r3, r9
+ lsrs r2, r3, 24
+ bl MenuPrint
+ mov r1, r10
+ lsls r0, r1, 16
+ lsrs r5, r0, 16
+ ldr r2, [sp, 0x4]
+ lsls r0, r2, 24
+ lsrs r3, r0, 24
+ ldr r1, _080E98B8
+ adds r4, 0x84
+ movs r0, 0
+ ldrsb r0, [r4, r0]
+ cmp r3, r0
+ blt _080E97EA
+_080E98A6:
+ add sp, 0x8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E98B8: .4byte gUnknown_083DB694
+_080E98BC: .4byte 0x00009e6e
+_080E98C0: .4byte 0x0000ffff
+ thumb_func_end sub_80E97C0
+
+ thumb_func_start sub_80E98C4
+sub_80E98C4: @ 80E98C4
+ push {lr}
+ ldr r0, _080E98E0
+ bl BasicInitMenuWindow
+ ldr r0, _080E98E4
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x9]
+ cmp r0, 0x5
+ bhi _080E9936
+ lsls r0, 2
+ ldr r1, _080E98E8
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080E98E0: .4byte gWindowConfig_81E6D8C
+_080E98E4: .4byte gUnknown_083DB694
+_080E98E8: .4byte _080E98EC
+ .align 2, 0
+_080E98EC:
+ .4byte _080E990A
+ .4byte _080E9910
+ .4byte _080E9916
+ .4byte _080E991A
+ .4byte _080E9904
+ .4byte _080E990A
+_080E9904:
+ movs r1, 0x4
+ movs r3, 0x2
+ b _080E991E
+_080E990A:
+ movs r1, 0x3
+ movs r3, 0x2
+ b _080E991E
+_080E9910:
+ movs r1, 0x1
+ movs r3, 0x3
+ b _080E991E
+_080E9916:
+ movs r1, 0x4
+ b _080E991C
+_080E991A:
+ movs r1, 0x3
+_080E991C:
+ movs r3, 0x1
+_080E991E:
+ lsls r3, 1
+ adds r3, r1, r3
+ subs r3, 0x1
+ lsls r3, 24
+ lsrs r3, 24
+ movs r0, 0x2
+ movs r2, 0x1B
+ bl MenuFillWindowRectWithBlankTile
+ ldr r0, _080E993C
+ bl BasicInitMenuWindow
+_080E9936:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E993C: .4byte gWindowConfig_81E6DA8
+ thumb_func_end sub_80E98C4
+
+ thumb_func_start sub_80E9940
+sub_80E9940: @ 80E9940
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ lsls r5, r1, 24
+ lsrs r5, 24
+ movs r4, 0x7
+ ands r4, r5
+ lsls r3, r4, 1
+ adds r1, r3, 0
+ adds r3, 0x1
+ movs r0, 0x2
+ movs r2, 0x1F
+ bl MenuFillWindowRectWithBlankTile
+ adds r0, r6, 0
+ adds r1, r5, 0
+ bl sub_80E9A7C
+ lsls r4, 1
+ adds r0, r6, 0
+ movs r1, 0x2
+ adds r2, r4, 0
+ bl sub_80E9A60
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80E9940
+
+ thumb_func_start sub_80E9974
+sub_80E9974: @ 80E9974
+ push {r4-r6,lr}
+ ldr r0, _080E99C4
+ bl BasicInitMenuWindow
+ ldr r0, _080E99C8
+ ldr r2, [r0]
+ adds r0, r2, 0
+ adds r0, 0x26
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080E99D4
+ ldr r1, _080E99CC
+ adds r0, r2, r1
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ lsls r1, r0, 16
+ lsrs r4, r1, 16
+ adds r0, 0x4
+ cmp r4, r0
+ bge _080E9A08
+ adds r5, r2, 0
+ ldr r2, _080E99CC
+ adds r6, r5, r2
+_080E99A4:
+ lsls r1, r4, 24
+ lsrs r1, 24
+ ldr r2, _080E99D0
+ adds r0, r5, r2
+ bl sub_80E9940
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ movs r0, 0
+ ldrsb r0, [r6, r0]
+ adds r0, 0x4
+ cmp r4, r0
+ blt _080E99A4
+ b _080E9A08
+ .align 2, 0
+_080E99C4: .4byte gWindowConfig_81E6D54
+_080E99C8: .4byte gUnknown_083DB694
+_080E99CC: .4byte 0x000001b5
+_080E99D0: .4byte 0x00009dc9
+_080E99D4:
+ bl sub_80E9AD4
+ ldr r4, _080E9A10
+ adds r0, r4, 0
+ movs r1, 0x2
+ movs r2, 0
+ bl sub_80E9A60
+ adds r0, r4, 0
+ adds r0, 0x20
+ movs r1, 0x2
+ movs r2, 0x2
+ bl sub_80E9A60
+ adds r0, r4, 0
+ adds r0, 0x40
+ movs r1, 0x2
+ movs r2, 0x4
+ bl sub_80E9A60
+ adds r4, 0x60
+ adds r0, r4, 0
+ movs r1, 0x2
+ movs r2, 0x6
+ bl sub_80E9A60
+_080E9A08:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E9A10: .4byte gUnknown_083DBEAC
+ thumb_func_end sub_80E9974
+
+ thumb_func_start sub_80E9A14
+sub_80E9A14: @ 80E9A14
+ push {lr}
+ bl sub_80E9A4C
+ ldr r0, _080E9A44
+ ldr r1, [r0]
+ adds r0, r1, 0
+ adds r0, 0x26
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080E9A40
+ movs r0, 0xDD
+ lsls r0, 1
+ adds r2, r1, r0
+ ldr r3, _080E9A48
+ adds r0, r1, r3
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ lsls r0, 4
+ ldrh r1, [r2]
+ adds r0, r1
+ strh r0, [r2]
+_080E9A40:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E9A44: .4byte gUnknown_083DB694
+_080E9A48: .4byte 0x000001b5
+ thumb_func_end sub_80E9A14
+
+ thumb_func_start sub_80E9A4C
+sub_80E9A4C: @ 80E9A4C
+ ldr r0, _080E9A5C
+ ldr r0, [r0]
+ movs r2, 0xDD
+ lsls r2, 1
+ adds r1, r0, r2
+ movs r0, 0
+ strh r0, [r1]
+ bx lr
+ .align 2, 0
+_080E9A5C: .4byte gUnknown_083DB694
+ thumb_func_end sub_80E9A4C
+
+ thumb_func_start sub_80E9A60
+sub_80E9A60: @ 80E9A60
+ push {lr}
+ lsls r2, 16
+ movs r3, 0xF0
+ lsls r3, 12
+ ands r3, r2
+ lsls r1, 24
+ lsrs r1, 24
+ lsrs r3, 16
+ adds r2, r3, 0
+ bl MenuPrint
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80E9A60
+
+ thumb_func_start sub_80E9A7C
+sub_80E9A7C: @ 80E9A7C
+ push {r4-r7,lr}
+ adds r2, r0, 0
+ lsls r1, 16
+ lsrs r7, r1, 16
+ lsls r0, r7, 17
+ lsrs r5, r0, 16
+ movs r4, 0
+ ldr r0, _080E9AD0
+ ldr r6, [r0]
+_080E9A8E:
+ movs r0, 0xFC
+ strb r0, [r2]
+ movs r0, 0x12
+ strb r0, [r2, 0x1]
+ movs r0, 0x58
+ muls r0, r4
+ strb r0, [r2, 0x2]
+ adds r2, 0x3
+ lsls r1, r7, 1
+ adds r1, r4, r1
+ adds r0, r6, 0
+ adds r0, 0x2A
+ adds r0, r1
+ ldrb r1, [r0]
+ adds r0, r2, 0
+ movs r2, 0xB
+ bl sub_80EAD64
+ adds r2, r0, 0
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ ldrh r0, [r6, 0x28]
+ cmp r5, r0
+ bcs _080E9ACA
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x1
+ bls _080E9A8E
+_080E9ACA:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E9AD0: .4byte gUnknown_083DB694
+ thumb_func_end sub_80E9A7C
+
+ thumb_func_start sub_80E9AD4
+sub_80E9AD4: @ 80E9AD4
+ push {r4,lr}
+ ldr r0, _080E9AF4
+ bl BasicInitMenuWindow
+ movs r4, 0
+_080E9ADE:
+ adds r0, r4, 0
+ bl sub_80E9C74
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0xF
+ bls _080E9ADE
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E9AF4: .4byte gWindowConfig_81E6D54
+ thumb_func_end sub_80E9AD4
+
+ thumb_func_start sub_80E9AF8
+sub_80E9AF8: @ 80E9AF8
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ lsls r0, 16
+ lsrs r7, r0, 16
+ adds r0, r7, 0
+ bl sub_80E9C74
+ ldr r4, _080E9B7C
+ ldr r5, [r4]
+ ldr r0, _080E9B80
+ adds r0, r5
+ mov r8, r0
+ movs r0, 0xFC
+ mov r1, r8
+ strb r0, [r1]
+ movs r0, 0x11
+ strb r0, [r1, 0x1]
+ movs r0, 0x10
+ strb r0, [r1, 0x2]
+ ldr r2, _080E9B84
+ adds r2, r5
+ mov r8, r2
+ adds r0, r5, 0
+ adds r0, 0x7D
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080E9BF4
+ movs r6, 0
+ ldr r3, _080E9B88
+ adds r0, r5, r3
+ adds r0, r7
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r6, r0
+ blt _080E9B4A
+ b _080E9C52
+_080E9B4A:
+ lsls r0, r7, 2
+ mov r9, r0
+ ldr r1, _080E9B8C
+ adds r1, r5, r1
+ str r1, [sp]
+ lsls r2, r7, 17
+ mov r10, r2
+_080E9B58:
+ lsls r4, r6, 1
+ mov r3, r9
+ adds r0, r4, r3
+ ldr r1, [sp]
+ adds r0, r1, r0
+ ldrh r0, [r0]
+ bl sub_80EB2D4
+ lsls r0, 16
+ lsrs r0, 16
+ adds r5, r4, 0
+ cmp r0, 0x7
+ bne _080E9B94
+ ldr r0, _080E9B90
+ bl BasicInitMenuWindow
+ b _080E9B9A
+ .align 2, 0
+_080E9B7C: .4byte gUnknown_083DB694
+_080E9B80: .4byte 0x00009e14
+_080E9B84: .4byte 0x00009e17
+_080E9B88: .4byte 0x000099a6
+_080E9B8C: .4byte 0x00009a2a
+_080E9B90: .4byte gWindowConfig_81E6D70
+_080E9B94:
+ ldr r0, _080E9BE0
+ bl BasicInitMenuWindow
+_080E9B9A:
+ ldr r2, _080E9BE4
+ ldr r4, [r2]
+ mov r3, r9
+ adds r1, r5, r3
+ ldr r2, _080E9BE8
+ adds r0, r4, r2
+ adds r0, r1
+ ldrh r1, [r0]
+ mov r0, r8
+ movs r2, 0x9
+ bl sub_80EB218
+ ldr r3, _080E9BEC
+ adds r0, r4, r3
+ movs r1, 0xB
+ muls r1, r6
+ adds r1, 0x4
+ lsls r1, 16
+ lsrs r1, 16
+ mov r3, r10
+ lsrs r2, r3, 16
+ bl sub_80E9A60
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ ldr r0, _080E9BF0
+ adds r4, r0
+ adds r4, r7
+ movs r0, 0
+ ldrsb r0, [r4, r0]
+ cmp r6, r0
+ blt _080E9B58
+ b _080E9C52
+ .align 2, 0
+_080E9BE0: .4byte gWindowConfig_81E6D54
+_080E9BE4: .4byte gUnknown_083DB694
+_080E9BE8: .4byte 0x00009a2a
+_080E9BEC: .4byte 0x00009e14
+_080E9BF0: .4byte 0x000099a6
+_080E9BF4:
+ ldr r0, _080E9C64
+ bl BasicInitMenuWindow
+ movs r6, 0
+ ldr r1, _080E9C68
+ adds r0, r5, r1
+ adds r0, r7
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r6, r0
+ bge _080E9C52
+ adds r4, r5, 0
+ adds r0, r4, r1
+ adds r0, r7
+ mov r9, r0
+ lsls r5, r7, 17
+_080E9C16:
+ lsls r1, r6, 1
+ lsls r0, r7, 2
+ adds r1, r0
+ ldr r2, _080E9C6C
+ adds r0, r4, r2
+ adds r0, r1
+ ldrh r1, [r0]
+ mov r0, r8
+ movs r2, 0x9
+ bl sub_80EB218
+ movs r0, 0xB
+ adds r1, r6, 0
+ muls r1, r0
+ adds r1, 0x4
+ lsls r1, 16
+ lsrs r1, 16
+ ldr r3, _080E9C70
+ adds r0, r4, r3
+ lsrs r2, r5, 16
+ bl sub_80E9A60
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ mov r1, r9
+ movs r0, 0
+ ldrsb r0, [r1, r0]
+ cmp r6, r0
+ blt _080E9C16
+_080E9C52:
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E9C64: .4byte gWindowConfig_81E6D54
+_080E9C68: .4byte 0x000099a6
+_080E9C6C: .4byte 0x00009a2a
+_080E9C70: .4byte 0x00009e14
+ thumb_func_end sub_80E9AF8
+
+ thumb_func_start sub_80E9C74
+sub_80E9C74: @ 80E9C74
+ push {lr}
+ lsls r0, 16
+ movs r1, 0xE0
+ lsls r1, 11
+ ands r1, r0
+ lsrs r1, 16
+ lsls r3, r1, 1
+ adds r1, r3, 0
+ adds r3, 0x1
+ movs r0, 0
+ movs r2, 0x1D
+ bl MenuFillWindowRectWithBlankTile
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80E9C74
+
+ thumb_func_start sub_80E9C94
+sub_80E9C94: @ 80E9C94
+ push {r4-r6,lr}
+ ldr r0, _080E9CAC
+ ldr r0, [r0]
+ ldr r2, _080E9CB0
+ adds r1, r0, r2
+ movs r0, 0
+ ldrsb r0, [r1, r0]
+ cmp r0, 0x3
+ bgt _080E9CB4
+ lsls r0, 16
+ lsrs r0, 16
+ b _080E9CB6
+ .align 2, 0
+_080E9CAC: .4byte gUnknown_083DB694
+_080E9CB0: .4byte 0x00009a28
+_080E9CB4:
+ movs r0, 0x4
+_080E9CB6:
+ adds r5, r0, 0
+ movs r4, 0
+ cmp r4, r5
+ bcs _080E9CF4
+ ldr r0, _080E9CE0
+ ldr r0, [r0]
+ ldr r1, _080E9CE4
+ adds r6, r0, r1
+_080E9CC6:
+ movs r0, 0
+ ldrsb r0, [r6, r0]
+ adds r0, r4, r0
+ lsls r0, 16
+ lsrs r0, 16
+ bl sub_80E9AF8
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, r5
+ bcc _080E9CC6
+ b _080E9CF4
+ .align 2, 0
+_080E9CE0: .4byte gUnknown_083DB694
+_080E9CE4: .4byte 0x00009a29
+_080E9CE8:
+ adds r0, r4, 0
+ adds r1, r0, 0x1
+ lsls r1, 16
+ lsrs r4, r1, 16
+ bl sub_80E9C74
+_080E9CF4:
+ cmp r4, 0x3
+ bls _080E9CE8
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80E9C94
+
+ thumb_func_start sub_80E9D00
+sub_80E9D00: @ 80E9D00
+ push {r4-r6,lr}
+ ldr r0, _080E9D28
+ ldr r2, [r0]
+ movs r0, 0xE0
+ lsls r0, 1
+ adds r1, r2, r0
+ movs r0, 0
+ ldrsb r0, [r1, r0]
+ cmp r0, 0
+ ble _080E9D30
+ lsls r0, 16
+ lsrs r4, r0, 16
+ ldr r1, _080E9D2C
+ adds r0, r2, r1
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ adds r0, 0x4
+ b _080E9D46
+ .align 2, 0
+_080E9D28: .4byte gUnknown_083DB694
+_080E9D2C: .4byte 0x00009a29
+_080E9D30:
+ movs r0, 0
+ ldrsb r0, [r1, r0]
+ negs r0, r0
+ lsls r0, 16
+ lsrs r4, r0, 16
+ ldr r1, _080E9D74
+ adds r0, r2, r1
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ subs r0, r4
+_080E9D46:
+ lsls r0, 16
+ lsrs r5, r0, 16
+ subs r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ ldr r0, _080E9D78
+ cmp r4, r0
+ beq _080E9D6E
+ adds r6, r0, 0
+_080E9D58:
+ adds r0, r5, 0
+ adds r1, r0, 0x1
+ lsls r1, 16
+ lsrs r5, r1, 16
+ bl sub_80E9AF8
+ subs r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, r6
+ bne _080E9D58
+_080E9D6E:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E9D74: .4byte 0x00009a29
+_080E9D78: .4byte 0x0000ffff
+ thumb_func_end sub_80E9D00
+
+ thumb_func_start sub_80E9D7C
+sub_80E9D7C: @ 80E9D7C
+ push {r4-r7,lr}
+ ldr r0, _080E9DAC
+ bl BasicInitMenuWindow
+ ldr r0, _080E9DB0
+ ldr r2, [r0]
+ movs r0, 0xE0
+ lsls r0, 1
+ adds r1, r2, r0
+ movs r0, 0
+ ldrsb r0, [r1, r0]
+ cmp r0, 0
+ bge _080E9DB8
+ negs r0, r0
+ lsls r0, 16
+ lsrs r6, r0, 16
+ ldr r1, _080E9DB4
+ adds r0, r2, r1
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ subs r0, r6
+ b _080E9DCC
+ .align 2, 0
+_080E9DAC: .4byte gWindowConfig_81E6D54
+_080E9DB0: .4byte gUnknown_083DB694
+_080E9DB4: .4byte 0x000001b5
+_080E9DB8:
+ movs r0, 0
+ ldrsb r0, [r1, r0]
+ lsls r0, 16
+ lsrs r6, r0, 16
+ ldr r1, _080E9DFC
+ adds r0, r2, r1
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ adds r0, 0x4
+_080E9DCC:
+ lsls r0, 16
+ lsrs r4, r0, 16
+ movs r5, 0
+ cmp r5, r6
+ bcs _080E9DF6
+ ldr r0, _080E9E00
+ ldr r7, [r0]
+_080E9DDA:
+ lsls r1, r4, 24
+ lsrs r1, 24
+ ldr r2, _080E9E04
+ adds r0, r7, r2
+ bl sub_80E9940
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, r6
+ bcc _080E9DDA
+_080E9DF6:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E9DFC: .4byte 0x000001b5
+_080E9E00: .4byte gUnknown_083DB694
+_080E9E04: .4byte 0x00009dc9
+ thumb_func_end sub_80E9D7C
+
+ thumb_func_start sub_80E9E08
+sub_80E9E08: @ 80E9E08
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _080E9E4C
+ ldr r3, [r0]
+ movs r0, 0xDD
+ lsls r0, 1
+ adds r1, r3, r0
+ movs r5, 0xE0
+ lsls r5, 1
+ adds r2, r3, r5
+ movs r0, 0
+ ldrsb r0, [r2, r0]
+ lsls r0, 4
+ ldrh r1, [r1]
+ adds r0, r1
+ movs r1, 0x7F
+ ands r0, r1
+ subs r5, 0x4
+ adds r1, r3, r5
+ strh r0, [r1]
+ adds r1, r4, 0
+ movs r0, 0
+ ldrsb r0, [r2, r0]
+ cmp r0, 0
+ bge _080E9E3E
+ negs r1, r4
+_080E9E3E:
+ ldr r2, _080E9E50
+ adds r0, r3, r2
+ strb r1, [r0]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E9E4C: .4byte gUnknown_083DB694
+_080E9E50: .4byte 0x000001bf
+ thumb_func_end sub_80E9E08
+
+ thumb_func_start sub_80E9E54
+sub_80E9E54: @ 80E9E54
+ push {r4,lr}
+ ldr r0, _080E9E8C
+ ldr r2, [r0]
+ movs r0, 0xDD
+ lsls r0, 1
+ adds r3, r2, r0
+ ldr r1, _080E9E90
+ adds r0, r2, r1
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ ldrh r4, [r3]
+ adds r0, r4
+ movs r1, 0x7F
+ ands r0, r1
+ strh r0, [r3]
+ movs r3, 0
+ movs r4, 0xDE
+ lsls r4, 1
+ adds r1, r2, r4
+ ldrh r1, [r1]
+ cmp r0, r1
+ bne _080E9E84
+ movs r3, 0x1
+_080E9E84:
+ adds r0, r3, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080E9E8C: .4byte gUnknown_083DB694
+_080E9E90: .4byte 0x000001bf
+ thumb_func_end sub_80E9E54
+
+ thumb_func_start nullsub_23
+nullsub_23: @ 80E9E94
+ bx lr
+ thumb_func_end nullsub_23
+
+ thumb_func_start sub_80E9E98
+sub_80E9E98: @ 80E9E98
+ ldr r0, _080E9EA4
+ ldr r0, [r0]
+ adds r0, 0xBE
+ movs r1, 0
+ strh r1, [r0]
+ bx lr
+ .align 2, 0
+_080E9EA4: .4byte gUnknown_083DB694
+ thumb_func_end sub_80E9E98
+
+ thumb_func_start sub_80E9EA8
+sub_80E9EA8: @ 80E9EA8
+ push {lr}
+ ldr r1, _080E9EC4
+ ldr r0, [r1]
+ adds r0, 0xBE
+ ldrh r0, [r0]
+ adds r2, r1, 0
+ cmp r0, 0x5
+ bhi _080E9F48
+ lsls r0, 2
+ ldr r1, _080E9EC8
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080E9EC4: .4byte gUnknown_083DB694
+_080E9EC8: .4byte _080E9ECC
+ .align 2, 0
+_080E9ECC:
+ .4byte _080E9EE4
+ .4byte _080E9EF4
+ .4byte _080E9F0C
+ .4byte _080E9F24
+ .4byte _080E9F38
+ .4byte _080E9F44
+_080E9EE4:
+ bl sub_80EA24C
+ ldr r0, _080E9F08
+ ldr r1, [r0]
+ adds r1, 0xBE
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_080E9EF4:
+ bl sub_80EA1E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E9F48
+ bl sub_80EA4A4
+ ldr r0, _080E9F08
+ ldr r1, [r0]
+ b _080E9F3A
+ .align 2, 0
+_080E9F08: .4byte gUnknown_083DB694
+_080E9F0C:
+ bl sub_80EA1E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E9F48
+ bl sub_80EA704
+ ldr r0, _080E9F20
+ ldr r1, [r0]
+ b _080E9F3A
+ .align 2, 0
+_080E9F20: .4byte gUnknown_083DB694
+_080E9F24:
+ bl sub_80EA1E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E9F48
+ ldr r0, _080E9F34
+ ldr r1, [r0]
+ b _080E9F3A
+ .align 2, 0
+_080E9F34: .4byte gUnknown_083DB694
+_080E9F38:
+ ldr r1, [r2]
+_080E9F3A:
+ adds r1, 0xBE
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ b _080E9F48
+_080E9F44:
+ movs r0, 0x1
+ b _080E9F4A
+_080E9F48:
+ movs r0, 0
+_080E9F4A:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80E9EA8
+
+ thumb_func_start sub_80E9F50
+sub_80E9F50: @ 80E9F50
+ push {lr}
+ ldr r0, _080E9F68
+ ldr r0, [r0]
+ adds r0, 0xBE
+ ldrh r0, [r0]
+ cmp r0, 0x6
+ bhi _080E9FCC
+ lsls r0, 2
+ ldr r1, _080E9F6C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080E9F68: .4byte gUnknown_083DB694
+_080E9F6C: .4byte _080E9F70
+ .align 2, 0
+_080E9F70:
+ .4byte _080E9F8C
+ .4byte _080E9FAC
+ .4byte _080E9F96
+ .4byte _080E9FAC
+ .4byte _080E9F9C
+ .4byte _080E9FAC
+ .4byte _080E9FC8
+_080E9F8C:
+ bl nullsub_23
+ bl sub_80EA764
+ b _080E9FA0
+_080E9F96:
+ bl sub_80EA5A0
+ b _080E9FA0
+_080E9F9C:
+ bl sub_80EA348
+_080E9FA0:
+ ldr r0, _080E9FC4
+ ldr r1, [r0]
+ adds r1, 0xBE
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_080E9FAC:
+ bl sub_80EA1E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E9FCC
+ ldr r0, _080E9FC4
+ ldr r1, [r0]
+ adds r1, 0xBE
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ b _080E9FCC
+ .align 2, 0
+_080E9FC4: .4byte gUnknown_083DB694
+_080E9FC8:
+ movs r0, 0x1
+ b _080E9FCE
+_080E9FCC:
+ movs r0, 0
+_080E9FCE:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80E9F50
+
+ thumb_func_start sub_80E9FD4
+sub_80E9FD4: @ 80E9FD4
+ push {r4,lr}
+ ldr r0, _080E9FEC
+ ldr r0, [r0]
+ adds r4, r0, 0
+ adds r4, 0xBE
+ ldrh r0, [r4]
+ cmp r0, 0
+ beq _080E9FF0
+ cmp r0, 0x1
+ beq _080E9FFE
+ b _080EA00C
+ .align 2, 0
+_080E9FEC: .4byte gUnknown_083DB694
+_080E9FF0:
+ bl nullsub_23
+ bl sub_80EA5A0
+ ldrh r0, [r4]
+ adds r0, 0x1
+ strh r0, [r4]
+_080E9FFE:
+ bl sub_80EA1E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080EA00C
+ movs r0, 0x1
+ b _080EA00E
+_080EA00C:
+ movs r0, 0
+_080EA00E:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80E9FD4
+
+ thumb_func_start sub_80EA014
+sub_80EA014: @ 80EA014
+ push {r4,lr}
+ ldr r0, _080EA02C
+ ldr r0, [r0]
+ adds r4, r0, 0
+ adds r4, 0xBE
+ ldrh r0, [r4]
+ cmp r0, 0
+ beq _080EA030
+ cmp r0, 0x1
+ beq _080EA03A
+ b _080EA048
+ .align 2, 0
+_080EA02C: .4byte gUnknown_083DB694
+_080EA030:
+ bl sub_80EA4A4
+ ldrh r0, [r4]
+ adds r0, 0x1
+ strh r0, [r4]
+_080EA03A:
+ bl sub_80EA1E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080EA048
+ movs r0, 0x1
+ b _080EA04A
+_080EA048:
+ movs r0, 0
+_080EA04A:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80EA014
+
+ thumb_func_start sub_80EA050
+sub_80EA050: @ 80EA050
+ push {lr}
+ ldr r0, _080EA068
+ ldr r0, [r0]
+ adds r0, 0xBE
+ ldrh r0, [r0]
+ cmp r0, 0x4
+ bhi _080EA0DC
+ lsls r0, 2
+ ldr r1, _080EA06C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080EA068: .4byte gUnknown_083DB694
+_080EA06C: .4byte _080EA070
+ .align 2, 0
+_080EA070:
+ .4byte _080EA084
+ .4byte _080EA08E
+ .4byte _080EA09E
+ .4byte _080EA0B4
+ .4byte _080EA0D8
+_080EA084:
+ bl nullsub_23
+ bl sub_80EA764
+ b _080EA0C4
+_080EA08E:
+ bl sub_80EA1E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080EA0DC
+ bl sub_80EA7F4
+ b _080EA0C4
+_080EA09E:
+ movs r0, 0x1
+ bl sub_80E9108
+ bl sub_80EA1E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080EA0DC
+ bl sub_80EA8BC
+ b _080EA0C4
+_080EA0B4:
+ movs r0, 0x1
+ bl sub_80E9108
+ bl sub_80EA1E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080EA0DC
+_080EA0C4:
+ ldr r0, _080EA0D4
+ ldr r1, [r0]
+ adds r1, 0xBE
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ b _080EA0DC
+ .align 2, 0
+_080EA0D4: .4byte gUnknown_083DB694
+_080EA0D8:
+ movs r0, 0x1
+ b _080EA0DE
+_080EA0DC:
+ movs r0, 0
+_080EA0DE:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80EA050
+
+ thumb_func_start sub_80EA0E4
+sub_80EA0E4: @ 80EA0E4
+ push {lr}
+ ldr r0, _080EA0FC
+ ldr r0, [r0]
+ adds r0, 0xBE
+ ldrh r0, [r0]
+ cmp r0, 0x4
+ bhi _080EA17C
+ lsls r0, 2
+ ldr r1, _080EA100
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080EA0FC: .4byte gUnknown_083DB694
+_080EA100: .4byte _080EA104
+ .align 2, 0
+_080EA104:
+ .4byte _080EA118
+ .4byte _080EA128
+ .4byte _080EA144
+ .4byte _080EA15C
+ .4byte _080EA178
+_080EA118:
+ bl sub_80EA948
+ ldr r0, _080EA140
+ ldr r1, [r0]
+ adds r1, 0xBE
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_080EA128:
+ movs r0, 0x1
+ negs r0, r0
+ bl sub_80E9108
+ bl sub_80EA1E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080EA17C
+ bl sub_80EAA44
+ b _080EA166
+ .align 2, 0
+_080EA140: .4byte gUnknown_083DB694
+_080EA144:
+ movs r0, 0x1
+ negs r0, r0
+ bl sub_80E9108
+ bl sub_80EA1E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080EA17C
+ bl sub_80EA704
+ b _080EA166
+_080EA15C:
+ bl sub_80EA1E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080EA17C
+_080EA166:
+ ldr r0, _080EA174
+ ldr r1, [r0]
+ adds r1, 0xBE
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ b _080EA17C
+ .align 2, 0
+_080EA174: .4byte gUnknown_083DB694
+_080EA178:
+ movs r0, 0x1
+ b _080EA17E
+_080EA17C:
+ movs r0, 0
+_080EA17E:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80EA0E4
+
+ thumb_func_start sub_80EA184
+sub_80EA184: @ 80EA184
+ push {r4,lr}
+ ldr r0, _080EA1A0
+ ldr r0, [r0]
+ adds r4, r0, 0
+ adds r4, 0xBE
+ ldrh r0, [r4]
+ cmp r0, 0x1
+ beq _080EA1B4
+ cmp r0, 0x1
+ bgt _080EA1A4
+ cmp r0, 0
+ beq _080EA1AA
+ b _080EA1D8
+ .align 2, 0
+_080EA1A0: .4byte gUnknown_083DB694
+_080EA1A4:
+ cmp r0, 0x2
+ beq _080EA1D0
+ b _080EA1D8
+_080EA1AA:
+ bl sub_80EAAD4
+ ldrh r0, [r4]
+ adds r0, 0x1
+ strh r0, [r4]
+_080EA1B4:
+ bl sub_80EA1E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080EA1D8
+ ldr r0, _080EA1CC
+ ldr r1, [r0]
+ adds r1, 0xBE
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ b _080EA1D8
+ .align 2, 0
+_080EA1CC: .4byte gUnknown_083DB694
+_080EA1D0:
+ bl sub_80E9178
+ movs r0, 0x1
+ b _080EA1DA
+_080EA1D8:
+ movs r0, 0
+_080EA1DA:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80EA184
+
+ thumb_func_start sub_80EA1E0
+sub_80EA1E0: @ 80EA1E0
+ push {r4-r6,lr}
+ ldr r0, _080EA240
+ ldr r1, [r0]
+ adds r0, r1, 0
+ adds r0, 0xC4
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _080EA244
+ movs r4, 0
+ adds r0, r1, 0
+ adds r0, 0xC2
+ ldrh r2, [r0]
+ cmp r4, r2
+ bcs _080EA228
+ adds r5, r1, 0
+ adds r6, r0, 0
+_080EA200:
+ lsls r0, r4, 4
+ adds r0, 0xC8
+ adds r0, r5, r0
+ bl sub_80EAC0C
+ lsls r0, r4, 1
+ adds r0, r4
+ lsls r0, 2
+ movs r1, 0xA4
+ lsls r1, 1
+ adds r0, r1
+ adds r0, r5, r0
+ bl sub_80EAC48
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ ldrh r2, [r6]
+ cmp r4, r2
+ bcc _080EA200
+_080EA228:
+ ldr r0, _080EA240
+ ldr r1, [r0]
+ adds r2, r1, 0
+ adds r2, 0xBC
+ movs r0, 0x1
+ strb r0, [r2]
+ adds r1, 0xC4
+ ldrh r0, [r1]
+ subs r0, 0x1
+ strh r0, [r1]
+ movs r0, 0
+ b _080EA246
+ .align 2, 0
+_080EA240: .4byte gUnknown_083DB694
+_080EA244:
+ movs r0, 0x1
+_080EA246:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80EA1E0
+
+ thumb_func_start sub_80EA24C
+sub_80EA24C: @ 80EA24C
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x14
+ ldr r0, _080EA340
+ ldr r7, [r0]
+ adds r0, r7, 0
+ adds r0, 0xC8
+ movs r6, 0xF
+ str r6, [sp]
+ ldr r1, _080EA344
+ mov r8, r1
+ str r1, [sp, 0x4]
+ movs r4, 0
+ str r4, [sp, 0x8]
+ str r4, [sp, 0xC]
+ str r4, [sp, 0x10]
+ movs r1, 0xD
+ movs r2, 0xE
+ movs r3, 0xD
+ bl sub_80EABD4
+ movs r1, 0xA4
+ lsls r1, 1
+ adds r0, r7, r1
+ str r4, [sp]
+ movs r1, 0xD9
+ lsls r1, 3
+ adds r5, r7, r1
+ str r5, [sp, 0x4]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl sub_80EAC30
+ adds r0, r7, 0
+ adds r0, 0xD8
+ str r6, [sp]
+ str r4, [sp, 0x4]
+ str r4, [sp, 0x8]
+ movs r1, 0x2
+ mov r9, r1
+ str r1, [sp, 0xC]
+ str r4, [sp, 0x10]
+ movs r1, 0xC
+ movs r2, 0xE
+ movs r3, 0xC
+ bl sub_80EABD4
+ movs r1, 0xAA
+ lsls r1, 1
+ adds r0, r7, r1
+ str r4, [sp]
+ str r5, [sp, 0x4]
+ movs r1, 0x1E
+ movs r2, 0
+ mov r3, r8
+ bl sub_80EAC30
+ adds r0, r7, 0
+ adds r0, 0xE8
+ movs r6, 0x10
+ str r6, [sp]
+ mov r1, r8
+ str r1, [sp, 0x4]
+ str r4, [sp, 0x8]
+ str r4, [sp, 0xC]
+ str r4, [sp, 0x10]
+ movs r1, 0xD
+ movs r2, 0xF
+ movs r3, 0xD
+ bl sub_80EABD4
+ movs r1, 0xB0
+ lsls r1, 1
+ adds r0, r7, r1
+ str r4, [sp]
+ str r5, [sp, 0x4]
+ movs r1, 0
+ movs r2, 0x9
+ movs r3, 0
+ bl sub_80EAC30
+ adds r0, r7, 0
+ adds r0, 0xF8
+ str r6, [sp]
+ str r4, [sp, 0x4]
+ str r4, [sp, 0x8]
+ mov r1, r9
+ str r1, [sp, 0xC]
+ str r4, [sp, 0x10]
+ movs r1, 0xC
+ movs r2, 0xF
+ movs r3, 0xC
+ bl sub_80EABD4
+ movs r1, 0xB6
+ lsls r1, 1
+ adds r0, r7, r1
+ str r4, [sp]
+ str r5, [sp, 0x4]
+ movs r1, 0x1E
+ movs r2, 0x9
+ mov r3, r8
+ bl sub_80EAC30
+ adds r1, r7, 0
+ adds r1, 0xC2
+ movs r0, 0x4
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r0, 0x6
+ strh r0, [r1]
+ add sp, 0x14
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EA340: .4byte gUnknown_083DB694
+_080EA344: .4byte 0x0000fffe
+ thumb_func_end sub_80EA24C
+
+ thumb_func_start sub_80EA348
+sub_80EA348: @ 80EA348
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x14
+ ldr r0, _080EA49C
+ ldr r7, [r0]
+ adds r0, r7, 0
+ adds r0, 0xC8
+ movs r5, 0xF
+ str r5, [sp]
+ movs r1, 0x2
+ mov r9, r1
+ str r1, [sp, 0x4]
+ movs r4, 0
+ str r4, [sp, 0x8]
+ str r4, [sp, 0xC]
+ str r4, [sp, 0x10]
+ movs r1, 0x1
+ movs r2, 0xE
+ movs r3, 0xD
+ bl sub_80EABD4
+ movs r1, 0xA4
+ lsls r1, 1
+ adds r0, r7, r1
+ str r4, [sp]
+ movs r1, 0xD9
+ lsls r1, 3
+ adds r6, r7, r1
+ str r6, [sp, 0x4]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl sub_80EAC30
+ adds r0, r7, 0
+ adds r0, 0xD8
+ str r5, [sp]
+ str r4, [sp, 0x4]
+ str r4, [sp, 0x8]
+ ldr r1, _080EA4A0
+ mov r8, r1
+ str r1, [sp, 0xC]
+ str r4, [sp, 0x10]
+ movs r1, 0xC
+ movs r2, 0xE
+ movs r3, 0x18
+ bl sub_80EABD4
+ movs r1, 0xAA
+ lsls r1, 1
+ adds r0, r7, r1
+ str r4, [sp]
+ str r6, [sp, 0x4]
+ movs r1, 0x12
+ movs r2, 0
+ movs r3, 0x2
+ bl sub_80EAC30
+ adds r0, r7, 0
+ adds r0, 0xE8
+ movs r5, 0x10
+ str r5, [sp]
+ mov r1, r9
+ str r1, [sp, 0x4]
+ str r4, [sp, 0x8]
+ str r4, [sp, 0xC]
+ str r4, [sp, 0x10]
+ movs r1, 0x1
+ movs r2, 0xF
+ movs r3, 0xD
+ bl sub_80EABD4
+ movs r1, 0xB0
+ lsls r1, 1
+ adds r0, r7, r1
+ str r4, [sp]
+ str r6, [sp, 0x4]
+ movs r1, 0
+ movs r2, 0x9
+ movs r3, 0
+ bl sub_80EAC30
+ adds r0, r7, 0
+ adds r0, 0xF8
+ str r5, [sp]
+ str r4, [sp, 0x4]
+ str r4, [sp, 0x8]
+ mov r1, r8
+ str r1, [sp, 0xC]
+ str r4, [sp, 0x10]
+ movs r1, 0xC
+ movs r2, 0xF
+ movs r3, 0x18
+ bl sub_80EABD4
+ movs r1, 0xB6
+ lsls r1, 1
+ adds r0, r7, r1
+ str r4, [sp]
+ str r6, [sp, 0x4]
+ movs r1, 0x12
+ movs r2, 0x9
+ movs r3, 0x2
+ bl sub_80EAC30
+ movs r1, 0x84
+ lsls r1, 1
+ adds r0, r7, r1
+ str r5, [sp]
+ str r4, [sp, 0x4]
+ str r4, [sp, 0x8]
+ mov r1, r9
+ str r1, [sp, 0xC]
+ str r4, [sp, 0x10]
+ movs r1, 0x1
+ movs r2, 0xE
+ movs r3, 0x1
+ bl sub_80EABD4
+ movs r1, 0xBC
+ lsls r1, 1
+ adds r0, r7, r1
+ str r4, [sp]
+ adds r1, 0x50
+ adds r6, r7, r1
+ str r6, [sp, 0x4]
+ movs r1, 0x1
+ movs r2, 0xE
+ movs r3, 0
+ bl sub_80EAC30
+ movs r1, 0x8C
+ lsls r1, 1
+ adds r0, r7, r1
+ str r5, [sp]
+ mov r1, r8
+ str r1, [sp, 0x4]
+ str r4, [sp, 0x8]
+ str r4, [sp, 0xC]
+ str r4, [sp, 0x10]
+ movs r1, 0x18
+ movs r2, 0xE
+ movs r3, 0x18
+ bl sub_80EABD4
+ movs r1, 0xC2
+ lsls r1, 1
+ adds r0, r7, r1
+ str r4, [sp]
+ str r6, [sp, 0x4]
+ movs r1, 0x18
+ movs r2, 0xE
+ mov r3, r8
+ bl sub_80EAC30
+ adds r0, r7, 0
+ adds r0, 0xC2
+ movs r1, 0x6
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ add sp, 0x14
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EA49C: .4byte gUnknown_083DB694
+_080EA4A0: .4byte 0x0000fffe
+ thumb_func_end sub_80EA348
+
+ thumb_func_start sub_80EA4A4
+sub_80EA4A4: @ 80EA4A4
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x14
+ ldr r0, _080EA598
+ ldr r7, [r0]
+ adds r0, r7, 0
+ adds r0, 0xC8
+ movs r6, 0xF
+ str r6, [sp]
+ movs r4, 0
+ str r4, [sp, 0x4]
+ ldr r1, _080EA59C
+ mov r8, r1
+ str r1, [sp, 0x8]
+ str r4, [sp, 0xC]
+ str r4, [sp, 0x10]
+ movs r1, 0x1
+ movs r2, 0xE
+ movs r3, 0xD
+ bl sub_80EABD4
+ movs r1, 0xA4
+ lsls r1, 1
+ adds r0, r7, r1
+ str r4, [sp]
+ movs r1, 0xD9
+ lsls r1, 3
+ adds r5, r7, r1
+ str r5, [sp, 0x4]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl sub_80EAC30
+ adds r0, r7, 0
+ adds r0, 0xD8
+ str r6, [sp]
+ str r4, [sp, 0x4]
+ mov r1, r8
+ str r1, [sp, 0x8]
+ str r4, [sp, 0xC]
+ str r4, [sp, 0x10]
+ movs r1, 0xC
+ movs r2, 0xE
+ movs r3, 0x18
+ bl sub_80EABD4
+ movs r1, 0xAA
+ lsls r1, 1
+ adds r0, r7, r1
+ str r4, [sp]
+ str r5, [sp, 0x4]
+ movs r1, 0x12
+ movs r2, 0
+ movs r3, 0
+ bl sub_80EAC30
+ adds r0, r7, 0
+ adds r0, 0xE8
+ movs r1, 0x10
+ mov r9, r1
+ str r1, [sp]
+ str r4, [sp, 0x4]
+ str r4, [sp, 0x8]
+ str r4, [sp, 0xC]
+ movs r6, 0x1
+ str r6, [sp, 0x10]
+ movs r1, 0x1
+ movs r2, 0xF
+ movs r3, 0xD
+ bl sub_80EABD4
+ movs r1, 0xB0
+ lsls r1, 1
+ adds r0, r7, r1
+ mov r1, r8
+ str r1, [sp]
+ str r5, [sp, 0x4]
+ movs r1, 0
+ movs r2, 0x9
+ movs r3, 0
+ bl sub_80EAC30
+ adds r0, r7, 0
+ adds r0, 0xF8
+ mov r1, r9
+ str r1, [sp]
+ str r4, [sp, 0x4]
+ str r4, [sp, 0x8]
+ str r4, [sp, 0xC]
+ str r6, [sp, 0x10]
+ movs r1, 0xC
+ movs r2, 0xF
+ movs r3, 0x18
+ bl sub_80EABD4
+ movs r1, 0xB6
+ lsls r1, 1
+ adds r0, r7, r1
+ mov r1, r8
+ str r1, [sp]
+ str r5, [sp, 0x4]
+ movs r1, 0x12
+ movs r2, 0x9
+ movs r3, 0
+ bl sub_80EAC30
+ adds r0, r7, 0
+ adds r0, 0xC2
+ movs r1, 0x4
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ add sp, 0x14
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EA598: .4byte gUnknown_083DB694
+_080EA59C: .4byte 0x0000ffff
+ thumb_func_end sub_80EA4A4
+
+ thumb_func_start sub_80EA5A0
+sub_80EA5A0: @ 80EA5A0
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x14
+ ldr r0, _080EA6FC
+ ldr r7, [r0]
+ adds r0, r7, 0
+ adds r0, 0xC8
+ movs r6, 0xF
+ str r6, [sp]
+ movs r4, 0
+ str r4, [sp, 0x4]
+ movs r1, 0x1
+ mov r8, r1
+ str r1, [sp, 0x8]
+ str r4, [sp, 0xC]
+ str r4, [sp, 0x10]
+ movs r2, 0xA
+ movs r3, 0xD
+ bl sub_80EABD4
+ movs r1, 0xA4
+ lsls r1, 1
+ adds r0, r7, r1
+ str r4, [sp]
+ movs r1, 0xD9
+ lsls r1, 3
+ adds r5, r7, r1
+ str r5, [sp, 0x4]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl sub_80EAC30
+ adds r0, r7, 0
+ adds r0, 0xD8
+ str r6, [sp]
+ str r4, [sp, 0x4]
+ mov r1, r8
+ str r1, [sp, 0x8]
+ str r4, [sp, 0xC]
+ str r4, [sp, 0x10]
+ movs r1, 0xC
+ movs r2, 0xA
+ movs r3, 0x18
+ bl sub_80EABD4
+ movs r1, 0xAA
+ lsls r1, 1
+ adds r0, r7, r1
+ str r4, [sp]
+ str r5, [sp, 0x4]
+ movs r1, 0x12
+ movs r2, 0
+ movs r3, 0
+ bl sub_80EAC30
+ adds r0, r7, 0
+ adds r0, 0xE8
+ movs r1, 0x14
+ mov r9, r1
+ str r1, [sp]
+ str r4, [sp, 0x4]
+ str r4, [sp, 0x8]
+ str r4, [sp, 0xC]
+ ldr r6, _080EA700
+ str r6, [sp, 0x10]
+ movs r1, 0x1
+ movs r2, 0xF
+ movs r3, 0xD
+ bl sub_80EABD4
+ movs r1, 0xB0
+ lsls r1, 1
+ adds r0, r7, r1
+ mov r1, r8
+ str r1, [sp]
+ str r5, [sp, 0x4]
+ movs r1, 0
+ movs r2, 0x5
+ movs r3, 0
+ bl sub_80EAC30
+ adds r0, r7, 0
+ adds r0, 0xF8
+ mov r1, r9
+ str r1, [sp]
+ str r4, [sp, 0x4]
+ str r4, [sp, 0x8]
+ str r4, [sp, 0xC]
+ str r6, [sp, 0x10]
+ movs r1, 0xC
+ movs r2, 0xF
+ movs r3, 0x18
+ bl sub_80EABD4
+ movs r1, 0xB6
+ lsls r1, 1
+ adds r0, r7, r1
+ mov r1, r8
+ str r1, [sp]
+ str r5, [sp, 0x4]
+ movs r1, 0x12
+ movs r2, 0x5
+ movs r3, 0
+ bl sub_80EAC30
+ movs r1, 0x84
+ lsls r1, 1
+ adds r0, r7, r1
+ movs r1, 0xA
+ str r1, [sp]
+ str r4, [sp, 0x4]
+ str r4, [sp, 0x8]
+ str r4, [sp, 0xC]
+ mov r1, r8
+ str r1, [sp, 0x10]
+ movs r1, 0x1
+ movs r2, 0xA
+ movs r3, 0x18
+ bl sub_80EABD4
+ movs r1, 0xBC
+ lsls r1, 1
+ adds r0, r7, r1
+ str r4, [sp]
+ adds r1, 0x50
+ adds r5, r7, r1
+ str r5, [sp, 0x4]
+ movs r1, 0x1
+ movs r2, 0xA
+ movs r3, 0
+ bl sub_80EAC30
+ movs r1, 0x8C
+ lsls r1, 1
+ adds r0, r7, r1
+ mov r1, r9
+ str r1, [sp]
+ str r4, [sp, 0x4]
+ str r6, [sp, 0x8]
+ str r4, [sp, 0xC]
+ str r4, [sp, 0x10]
+ movs r1, 0x1
+ movs r2, 0x14
+ movs r3, 0x18
+ bl sub_80EABD4
+ movs r1, 0xC2
+ lsls r1, 1
+ adds r0, r7, r1
+ str r6, [sp]
+ str r5, [sp, 0x4]
+ movs r1, 0x1
+ movs r2, 0x14
+ movs r3, 0
+ bl sub_80EAC30
+ adds r1, r7, 0
+ adds r1, 0xC2
+ movs r0, 0x6
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r0, 0x4
+ strh r0, [r1]
+ add sp, 0x14
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EA6FC: .4byte gUnknown_083DB694
+_080EA700: .4byte 0x0000ffff
+ thumb_func_end sub_80EA5A0
+
+ thumb_func_start sub_80EA704
+sub_80EA704: @ 80EA704
+ push {r4-r6,lr}
+ sub sp, 0x14
+ ldr r0, _080EA75C
+ ldr r6, [r0]
+ adds r0, r6, 0
+ adds r0, 0xC8
+ movs r1, 0x14
+ str r1, [sp]
+ movs r4, 0
+ str r4, [sp, 0x4]
+ str r4, [sp, 0x8]
+ movs r5, 0x1
+ str r5, [sp, 0xC]
+ str r4, [sp, 0x10]
+ movs r1, 0x18
+ movs r2, 0xC
+ movs r3, 0x19
+ bl sub_80EABD4
+ movs r1, 0xA4
+ lsls r1, 1
+ adds r0, r6, r1
+ ldr r3, _080EA760
+ str r4, [sp]
+ movs r2, 0xD9
+ lsls r2, 3
+ adds r1, r6, r2
+ str r1, [sp, 0x4]
+ movs r1, 0x5
+ movs r2, 0xA
+ bl sub_80EAC30
+ adds r0, r6, 0
+ adds r0, 0xC2
+ strh r5, [r0]
+ adds r1, r6, 0
+ adds r1, 0xC4
+ movs r0, 0x5
+ strh r0, [r1]
+ add sp, 0x14
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EA75C: .4byte gUnknown_083DB694
+_080EA760: .4byte 0x0000ffff
+ thumb_func_end sub_80EA704
+
+ thumb_func_start sub_80EA764
+sub_80EA764: @ 80EA764
+ push {r4-r7,lr}
+ sub sp, 0x14
+ ldr r0, _080EA7EC
+ ldr r7, [r0]
+ adds r0, r7, 0
+ adds r0, 0xC8
+ movs r6, 0x14
+ str r6, [sp]
+ movs r4, 0
+ str r4, [sp, 0x4]
+ str r4, [sp, 0x8]
+ ldr r5, _080EA7F0
+ str r5, [sp, 0xC]
+ str r4, [sp, 0x10]
+ movs r1, 0x18
+ movs r2, 0xC
+ movs r3, 0x1E
+ bl sub_80EABD4
+ movs r1, 0xA4
+ lsls r1, 1
+ adds r0, r7, r1
+ str r4, [sp]
+ movs r2, 0xD9
+ lsls r2, 3
+ adds r1, r7, r2
+ str r1, [sp, 0x4]
+ movs r1, 0
+ movs r2, 0xA
+ movs r3, 0x1
+ bl sub_80EAC30
+ adds r0, r7, 0
+ adds r0, 0xD8
+ str r6, [sp]
+ str r5, [sp, 0x4]
+ str r4, [sp, 0x8]
+ str r4, [sp, 0xC]
+ str r4, [sp, 0x10]
+ movs r1, 0x1E
+ movs r2, 0xC
+ movs r3, 0x1F
+ bl sub_80EABD4
+ movs r1, 0xAA
+ lsls r1, 1
+ adds r0, r7, r1
+ str r4, [sp]
+ movs r2, 0xE4
+ lsls r2, 1
+ adds r1, r7, r2
+ str r1, [sp, 0x4]
+ movs r1, 0x1E
+ movs r2, 0xC
+ adds r3, r5, 0
+ bl sub_80EAC30
+ adds r1, r7, 0
+ adds r1, 0xC2
+ movs r0, 0x2
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r0, 0x6
+ strh r0, [r1]
+ add sp, 0x14
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EA7EC: .4byte gUnknown_083DB694
+_080EA7F0: .4byte 0x0000ffff
+ thumb_func_end sub_80EA764
+
+ thumb_func_start sub_80EA7F4
+sub_80EA7F4: @ 80EA7F4
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x14
+ ldr r0, _080EA8B4
+ ldr r7, [r0]
+ adds r0, r7, 0
+ adds r0, 0xC8
+ movs r6, 0x14
+ str r6, [sp]
+ movs r4, 0
+ str r4, [sp, 0x4]
+ str r4, [sp, 0x8]
+ movs r5, 0x1
+ str r5, [sp, 0xC]
+ str r4, [sp, 0x10]
+ movs r1, 0x14
+ movs r2, 0xA
+ movs r3, 0x19
+ bl sub_80EABD4
+ movs r1, 0xA4
+ lsls r1, 1
+ adds r0, r7, r1
+ ldr r3, _080EA8B8
+ str r4, [sp]
+ movs r2, 0xD9
+ lsls r2, 3
+ adds r2, r7
+ mov r8, r2
+ str r2, [sp, 0x4]
+ movs r1, 0x19
+ movs r2, 0
+ bl sub_80EAC30
+ adds r0, r7, 0
+ adds r0, 0xD8
+ str r6, [sp]
+ str r4, [sp, 0x4]
+ str r4, [sp, 0x8]
+ str r5, [sp, 0xC]
+ str r4, [sp, 0x10]
+ movs r1, 0
+ movs r2, 0xA
+ movs r3, 0x1
+ bl sub_80EABD4
+ movs r1, 0xAA
+ lsls r1, 1
+ adds r0, r7, r1
+ str r4, [sp]
+ movs r2, 0xE4
+ lsls r2, 1
+ adds r1, r7, r2
+ str r1, [sp, 0x4]
+ movs r1, 0
+ movs r2, 0xA
+ movs r3, 0
+ bl sub_80EAC30
+ adds r0, r7, 0
+ adds r0, 0xE8
+ str r6, [sp]
+ str r5, [sp, 0x4]
+ str r4, [sp, 0x8]
+ str r4, [sp, 0xC]
+ str r4, [sp, 0x10]
+ movs r1, 0x1
+ movs r2, 0xA
+ movs r3, 0x4
+ bl sub_80EABD4
+ movs r1, 0xB0
+ lsls r1, 1
+ adds r0, r7, r1
+ str r4, [sp]
+ mov r2, r8
+ str r2, [sp, 0x4]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl sub_80EAC30
+ adds r1, r7, 0
+ adds r1, 0xC2
+ movs r0, 0x3
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r0, 0x2
+ strh r0, [r1]
+ add sp, 0x14
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EA8B4: .4byte gUnknown_083DB694
+_080EA8B8: .4byte 0x0000ffff
+ thumb_func_end sub_80EA7F4
+
+ thumb_func_start sub_80EA8BC
+sub_80EA8BC: @ 80EA8BC
+ push {r4-r6,lr}
+ sub sp, 0x14
+ ldr r0, _080EA944
+ ldr r6, [r0]
+ adds r0, r6, 0
+ adds r0, 0xC8
+ movs r5, 0x14
+ str r5, [sp]
+ movs r4, 0
+ str r4, [sp, 0x4]
+ str r4, [sp, 0x8]
+ str r4, [sp, 0xC]
+ str r4, [sp, 0x10]
+ movs r1, 0x3
+ movs r2, 0xA
+ movs r3, 0x4
+ bl sub_80EABD4
+ movs r1, 0xA4
+ lsls r1, 1
+ adds r0, r6, r1
+ str r4, [sp]
+ movs r2, 0xD9
+ lsls r2, 3
+ adds r1, r6, r2
+ str r1, [sp, 0x4]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl sub_80EAC30
+ adds r0, r6, 0
+ adds r0, 0xD8
+ str r5, [sp]
+ str r4, [sp, 0x4]
+ str r4, [sp, 0x8]
+ str r4, [sp, 0xC]
+ str r4, [sp, 0x10]
+ movs r1, 0
+ movs r2, 0xA
+ movs r3, 0x2
+ bl sub_80EABD4
+ movs r1, 0xAA
+ lsls r1, 1
+ adds r0, r6, r1
+ str r4, [sp]
+ movs r2, 0xE4
+ lsls r2, 1
+ adds r1, r6, r2
+ str r1, [sp, 0x4]
+ movs r1, 0
+ movs r2, 0xA
+ movs r3, 0
+ bl sub_80EAC30
+ adds r1, r6, 0
+ adds r1, 0xC2
+ movs r0, 0x2
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r0, 0x1
+ strh r0, [r1]
+ add sp, 0x14
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EA944: .4byte gUnknown_083DB694
+ thumb_func_end sub_80EA8BC
+
+ thumb_func_start sub_80EA948
+sub_80EA948: @ 80EA948
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x14
+ ldr r0, _080EAA3C
+ ldr r7, [r0]
+ adds r0, r7, 0
+ adds r0, 0xC8
+ movs r6, 0x14
+ str r6, [sp]
+ movs r4, 0
+ str r4, [sp, 0x4]
+ str r4, [sp, 0x8]
+ ldr r5, _080EAA40
+ str r5, [sp, 0xC]
+ str r4, [sp, 0x10]
+ movs r1, 0
+ movs r2, 0xA
+ movs r3, 0x2
+ bl sub_80EABD4
+ movs r1, 0xA4
+ lsls r1, 1
+ adds r0, r7, r1
+ str r4, [sp]
+ adds r1, 0x80
+ adds r1, r7
+ mov r9, r1
+ str r1, [sp, 0x4]
+ movs r1, 0
+ movs r2, 0xA
+ movs r3, 0
+ bl sub_80EAC30
+ adds r0, r7, 0
+ adds r0, 0xD8
+ str r6, [sp]
+ str r5, [sp, 0x4]
+ str r4, [sp, 0x8]
+ str r4, [sp, 0xC]
+ str r4, [sp, 0x10]
+ movs r1, 0x3
+ movs r2, 0xA
+ movs r3, 0x5
+ bl sub_80EABD4
+ movs r1, 0xAA
+ lsls r1, 1
+ adds r0, r7, r1
+ str r4, [sp]
+ movs r1, 0xD9
+ lsls r1, 3
+ adds r1, r7
+ mov r8, r1
+ str r1, [sp, 0x4]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl sub_80EAC30
+ adds r0, r7, 0
+ adds r0, 0xE8
+ str r6, [sp]
+ str r5, [sp, 0x4]
+ str r4, [sp, 0x8]
+ str r4, [sp, 0xC]
+ str r4, [sp, 0x10]
+ movs r1, 0x1A
+ movs r2, 0xA
+ movs r3, 0x1E
+ bl sub_80EABD4
+ movs r1, 0xB0
+ lsls r1, 1
+ adds r0, r7, r1
+ str r4, [sp]
+ mov r1, r9
+ str r1, [sp, 0x4]
+ movs r1, 0x1A
+ movs r2, 0xA
+ adds r3, r5, 0
+ bl sub_80EAC30
+ adds r0, r7, 0
+ adds r0, 0xF8
+ str r6, [sp]
+ str r5, [sp, 0x4]
+ str r4, [sp, 0x8]
+ str r5, [sp, 0xC]
+ str r4, [sp, 0x10]
+ movs r1, 0x19
+ movs r2, 0xA
+ movs r3, 0x1A
+ bl sub_80EABD4
+ movs r1, 0xB6
+ lsls r1, 1
+ adds r0, r7, r1
+ str r4, [sp]
+ mov r1, r8
+ str r1, [sp, 0x4]
+ movs r1, 0x1D
+ movs r2, 0
+ movs r3, 0
+ bl sub_80EAC30
+ adds r1, r7, 0
+ adds r1, 0xC2
+ movs r0, 0x4
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r0, 0x2
+ strh r0, [r1]
+ add sp, 0x14
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EAA3C: .4byte gUnknown_083DB694
+_080EAA40: .4byte 0x0000ffff
+ thumb_func_end sub_80EA948
+
+ thumb_func_start sub_80EAA44
+sub_80EAA44: @ 80EAA44
+ push {r4-r6,lr}
+ sub sp, 0x14
+ ldr r0, _080EAACC
+ ldr r6, [r0]
+ adds r0, r6, 0
+ adds r0, 0xC8
+ movs r5, 0x14
+ str r5, [sp]
+ movs r4, 0
+ str r4, [sp, 0x4]
+ str r4, [sp, 0x8]
+ str r4, [sp, 0xC]
+ str r4, [sp, 0x10]
+ movs r1, 0x18
+ movs r2, 0xA
+ movs r3, 0x1E
+ bl sub_80EABD4
+ movs r1, 0xA4
+ lsls r1, 1
+ adds r0, r6, r1
+ str r4, [sp]
+ movs r2, 0xE4
+ lsls r2, 1
+ adds r1, r6, r2
+ str r1, [sp, 0x4]
+ movs r1, 0x18
+ movs r2, 0xA
+ movs r3, 0
+ bl sub_80EAC30
+ adds r0, r6, 0
+ adds r0, 0xD8
+ str r5, [sp]
+ str r4, [sp, 0x4]
+ str r4, [sp, 0x8]
+ ldr r1, _080EAAD0
+ str r1, [sp, 0xC]
+ str r4, [sp, 0x10]
+ movs r1, 0x17
+ movs r2, 0xA
+ movs r3, 0x18
+ bl sub_80EABD4
+ movs r1, 0xAA
+ lsls r1, 1
+ adds r0, r6, r1
+ str r4, [sp]
+ movs r2, 0xD9
+ lsls r2, 3
+ adds r1, r6, r2
+ str r1, [sp, 0x4]
+ movs r1, 0x1D
+ movs r2, 0
+ movs r3, 0
+ bl sub_80EAC30
+ adds r1, r6, 0
+ adds r1, 0xC2
+ movs r0, 0x2
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r0, 0x1
+ strh r0, [r1]
+ add sp, 0x14
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EAACC: .4byte gUnknown_083DB694
+_080EAAD0: .4byte 0x0000ffff
+ thumb_func_end sub_80EAA44
+
+ thumb_func_start sub_80EAAD4
+sub_80EAAD4: @ 80EAAD4
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x14
+ ldr r0, _080EABCC
+ ldr r7, [r0]
+ adds r0, r7, 0
+ adds r0, 0xC8
+ movs r1, 0xF
+ str r1, [sp]
+ movs r4, 0
+ str r4, [sp, 0x4]
+ movs r5, 0x1
+ str r5, [sp, 0x8]
+ str r4, [sp, 0xC]
+ str r4, [sp, 0x10]
+ movs r1, 0
+ movs r2, 0xA
+ movs r3, 0x1E
+ bl sub_80EABD4
+ movs r1, 0xA4
+ lsls r1, 1
+ adds r0, r7, r1
+ str r4, [sp]
+ movs r1, 0xD9
+ lsls r1, 3
+ adds r1, r7
+ mov r8, r1
+ str r1, [sp, 0x4]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl sub_80EAC30
+ adds r0, r7, 0
+ adds r0, 0xD8
+ movs r1, 0x14
+ mov r9, r1
+ str r1, [sp]
+ str r4, [sp, 0x4]
+ str r4, [sp, 0x8]
+ str r4, [sp, 0xC]
+ ldr r6, _080EABD0
+ str r6, [sp, 0x10]
+ movs r1, 0
+ movs r2, 0xF
+ movs r3, 0x1E
+ bl sub_80EABD4
+ movs r1, 0xAA
+ lsls r1, 1
+ adds r0, r7, r1
+ str r5, [sp]
+ mov r1, r8
+ str r1, [sp, 0x4]
+ movs r1, 0
+ movs r2, 0x5
+ movs r3, 0
+ bl sub_80EAC30
+ adds r0, r7, 0
+ adds r0, 0xE8
+ movs r1, 0xA
+ str r1, [sp]
+ str r4, [sp, 0x4]
+ str r4, [sp, 0x8]
+ str r4, [sp, 0xC]
+ str r5, [sp, 0x10]
+ movs r1, 0
+ movs r2, 0xA
+ movs r3, 0x1E
+ bl sub_80EABD4
+ movs r1, 0xB0
+ lsls r1, 1
+ adds r0, r7, r1
+ str r4, [sp]
+ adds r1, 0x68
+ adds r5, r7, r1
+ str r5, [sp, 0x4]
+ movs r1, 0
+ movs r2, 0xA
+ movs r3, 0
+ bl sub_80EAC30
+ adds r0, r7, 0
+ adds r0, 0xF8
+ mov r1, r9
+ str r1, [sp]
+ str r4, [sp, 0x4]
+ str r6, [sp, 0x8]
+ str r4, [sp, 0xC]
+ str r4, [sp, 0x10]
+ movs r1, 0
+ movs r2, 0x14
+ movs r3, 0x1E
+ bl sub_80EABD4
+ movs r1, 0xB6
+ lsls r1, 1
+ adds r0, r7, r1
+ str r6, [sp]
+ str r5, [sp, 0x4]
+ movs r1, 0
+ movs r2, 0x14
+ movs r3, 0
+ bl sub_80EAC30
+ adds r1, r7, 0
+ adds r1, 0xC2
+ movs r0, 0x4
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r0, 0x5
+ strh r0, [r1]
+ add sp, 0x14
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EABCC: .4byte gUnknown_083DB694
+_080EABD0: .4byte 0x0000ffff
+ thumb_func_end sub_80EAAD4
+
+ thumb_func_start sub_80EABD4
+sub_80EABD4: @ 80EABD4
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ ldr r5, [sp, 0x1C]
+ ldr r6, [sp, 0x20]
+ ldr r4, [sp, 0x24]
+ mov r9, r4
+ ldr r4, [sp, 0x28]
+ ldr r7, [sp, 0x2C]
+ mov r8, r7
+ strh r1, [r0]
+ strh r3, [r0, 0x2]
+ strh r2, [r0, 0x4]
+ strh r5, [r0, 0x6]
+ strh r6, [r0, 0x8]
+ strh r4, [r0, 0xA]
+ mov r1, r9
+ strh r1, [r0, 0xC]
+ mov r4, r8
+ strh r4, [r0, 0xE]
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80EABD4
+
+ thumb_func_start sub_80EAC0C
+sub_80EAC0C: @ 80EAC0C
+ ldrh r1, [r0, 0x8]
+ ldrh r2, [r0]
+ adds r1, r2
+ strh r1, [r0]
+ ldrh r1, [r0, 0xA]
+ ldrh r2, [r0, 0x2]
+ adds r1, r2
+ strh r1, [r0, 0x2]
+ ldrh r1, [r0, 0xC]
+ ldrh r2, [r0, 0x4]
+ adds r1, r2
+ strh r1, [r0, 0x4]
+ ldrh r1, [r0, 0xE]
+ ldrh r2, [r0, 0x6]
+ adds r1, r2
+ strh r1, [r0, 0x6]
+ bx lr
+ thumb_func_end sub_80EAC0C
+
+ thumb_func_start sub_80EAC30
+sub_80EAC30: @ 80EAC30
+ push {r4,r5,lr}
+ ldr r4, [sp, 0xC]
+ ldr r5, [sp, 0x10]
+ strh r1, [r0]
+ strh r2, [r0, 0x2]
+ strh r3, [r0, 0x4]
+ strh r4, [r0, 0x6]
+ str r5, [r0, 0x8]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80EAC30
+
+ thumb_func_start sub_80EAC48
+sub_80EAC48: @ 80EAC48
+ ldrh r1, [r0, 0x4]
+ ldrh r2, [r0]
+ adds r1, r2
+ strh r1, [r0]
+ ldrh r1, [r0, 0x6]
+ ldrh r2, [r0, 0x2]
+ adds r1, r2
+ strh r1, [r0, 0x2]
+ bx lr
+ thumb_func_end sub_80EAC48
+
+ thumb_func_start sub_80EAC5C
+sub_80EAC5C: @ 80EAC5C
+ push {r4-r6,lr}
+ ldr r0, _080EACB4
+ ldr r1, [r0]
+ adds r0, r1, 0
+ adds r0, 0xBC
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080EACAC
+ movs r4, 0
+ adds r0, r1, 0
+ adds r0, 0xC2
+ ldrh r2, [r0]
+ cmp r4, r2
+ bcs _080EACA2
+ adds r5, r1, 0
+ adds r6, r0, 0
+_080EAC7C:
+ lsls r1, r4, 4
+ adds r1, 0xC8
+ adds r1, r5, r1
+ lsls r2, r4, 1
+ adds r2, r4
+ lsls r2, 2
+ movs r0, 0xA4
+ lsls r0, 1
+ adds r2, r0
+ adds r2, r5, r2
+ ldr r0, _080EACB8
+ bl sub_80EACBC
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ ldrh r2, [r6]
+ cmp r4, r2
+ bcc _080EAC7C
+_080EACA2:
+ ldr r0, _080EACB4
+ ldr r0, [r0]
+ adds r0, 0xBC
+ movs r1, 0
+ strb r1, [r0]
+_080EACAC:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EACB4: .4byte gUnknown_083DB694
+_080EACB8: .4byte 0x06006800
+ thumb_func_end sub_80EAC5C
+
+ thumb_func_start sub_80EACBC
+sub_80EACBC: @ 80EACBC
+ push {r4-r7,lr}
+ sub sp, 0x10
+ adds r7, r0, 0
+ adds r3, r1, 0
+ adds r4, r2, 0
+ ldrh r2, [r3, 0x2]
+ ldrh r0, [r3]
+ subs r2, r0
+ ldrh r0, [r3, 0x6]
+ ldrh r1, [r3, 0x4]
+ subs r0, r1
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r6, r2, 16
+ cmp r6, 0
+ ble _080EACFE
+ lsls r5, r0, 16
+ cmp r5, 0
+ ble _080EACFE
+ ldrh r1, [r3]
+ ldrh r2, [r3, 0x4]
+ ldr r3, [r4, 0x8]
+ ldrh r0, [r4]
+ str r0, [sp]
+ ldrh r0, [r4, 0x2]
+ str r0, [sp, 0x4]
+ lsrs r0, r6, 16
+ str r0, [sp, 0x8]
+ lsrs r0, r5, 16
+ str r0, [sp, 0xC]
+ adds r0, r7, 0
+ bl sub_809D104
+_080EACFE:
+ add sp, 0x10
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80EACBC
+
+ thumb_func_start sub_80EAD08
+sub_80EAD08: @ 80EAD08
+ push {r4,r5,lr}
+ ldr r0, _080EAD58
+ ldrb r1, [r0, 0x14]
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 7
+ ldr r1, _080EAD5C
+ adds r4, r0, r1
+ adds r4, 0xB0
+ ldr r0, _080EAD60
+ ldr r1, [r0]
+ movs r0, 0xDD
+ lsls r0, 1
+ adds r1, r0
+ ldrh r0, [r1]
+ adds r2, r0, 0
+ subs r2, 0x58
+ movs r0, 0xFF
+ ands r2, r0
+ movs r3, 0
+ movs r5, 0xFF
+_080EAD32:
+ ldrh r0, [r1]
+ adds r0, r3
+ cmp r0, 0x80
+ bne _080EAD42
+ negs r0, r3
+ adds r2, r0, 0
+ subs r2, 0x58
+ ands r2, r5
+_080EAD42:
+ strh r2, [r4]
+ adds r4, 0x2
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0x3F
+ bls _080EAD32
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EAD58: .4byte gUnknown_03004DC0
+_080EAD5C: .4byte gUnknown_03004DE0
+_080EAD60: .4byte gUnknown_083DB694
+ thumb_func_end sub_80EAD08
+
+ thumb_func_start sub_80EAD64
+sub_80EAD64: @ 80EAD64
+ push {lr}
+ lsls r1, 24
+ ldr r2, _080EAD78
+ lsrs r1, 22
+ adds r1, r2
+ ldr r1, [r1]
+ bl StringCopy
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080EAD78: .4byte gEasyChatGroupNames
+ thumb_func_end sub_80EAD64
+
+ thumb_func_start sub_80EAD7C
+sub_80EAD7C: @ 80EAD7C
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r1, r0, 0
+ cmp r0, 0x14
+ beq _080EADA2
+ cmp r0, 0x14
+ bgt _080EAD9C
+ cmp r0, 0x11
+ blt _080EADBA
+ ldr r0, _080EAD98
+ bl FlagGet
+ b _080EADB4
+ .align 2, 0
+_080EAD98: .4byte 0x00000804
+_080EAD9C:
+ cmp r1, 0x15
+ beq _080EADB0
+ b _080EADBA
+_080EADA2:
+ ldr r0, _080EADAC
+ bl FlagGet
+ b _080EADB4
+ .align 2, 0
+_080EADAC: .4byte 0x00000806
+_080EADB0:
+ bl sub_80EB9C8
+_080EADB4:
+ lsls r0, 24
+ lsrs r0, 24
+ b _080EADBC
+_080EADBA:
+ movs r0, 0x1
+_080EADBC:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80EAD7C
+
+ thumb_func_start sub_80EADC0
+sub_80EADC0: @ 80EADC0
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r1, 16
+ lsrs r3, r1, 16
+ cmp r2, 0x15
+ bhi _080EAE82
+ lsls r0, r2, 2
+ ldr r1, _080EADD8
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080EADD8: .4byte _080EADDC
+ .align 2, 0
+_080EADDC:
+ .4byte _080EAE50
+ .4byte _080EAE82
+ .4byte _080EAE82
+ .4byte _080EAE82
+ .4byte _080EAE82
+ .4byte _080EAE82
+ .4byte _080EAE82
+ .4byte _080EAE82
+ .4byte _080EAE82
+ .4byte _080EAE82
+ .4byte _080EAE82
+ .4byte _080EAE82
+ .4byte _080EAE82
+ .4byte _080EAE82
+ .4byte _080EAE82
+ .4byte _080EAE82
+ .4byte _080EAE82
+ .4byte _080EAE62
+ .4byte _080EAE62
+ .4byte _080EAE62
+ .4byte _080EAE34
+ .4byte _080EAE78
+_080EAE34:
+ ldr r0, _080EAE4C
+ ldr r0, [r0]
+ adds r0, r2
+ adds r0, 0x67
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080EAE70
+ lsls r0, r3, 24
+ lsrs r0, 24
+ bl sub_80EB868
+ b _080EAE7C
+ .align 2, 0
+_080EAE4C: .4byte gUnknown_083DB694
+_080EAE50:
+ adds r0, r3, 0
+ bl SpeciesToNationalPokedexNum
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0
+ bl sub_8090D90
+ b _080EAE7C
+_080EAE62:
+ ldr r0, _080EAE74
+ ldr r0, [r0]
+ adds r0, r2
+ adds r0, 0x67
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080EAE82
+_080EAE70:
+ movs r0, 0
+ b _080EAE84
+ .align 2, 0
+_080EAE74: .4byte gUnknown_083DB694
+_080EAE78:
+ bl sub_80EB9C8
+_080EAE7C:
+ lsls r0, 24
+ lsrs r0, 24
+ b _080EAE84
+_080EAE82:
+ movs r0, 0x1
+_080EAE84:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80EADC0
+
+ thumb_func_start sub_80EAE88
+sub_80EAE88: @ 80EAE88
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ beq _080EAEA6
+ cmp r4, 0x14
+ beq _080EAEB2
+ adds r0, r4, 0
+ bl sub_80EAD7C
+ lsls r0, 24
+ cmp r0, 0
+ bne _080EAEBC
+ movs r0, 0
+ b _080EAEC2
+_080EAEA6:
+ movs r0, 0
+ bl sub_8090F68
+ lsls r0, 16
+ lsrs r0, 16
+ b _080EAEC2
+_080EAEB2:
+ bl sub_80EB8C0
+ lsls r0, 24
+ lsrs r0, 24
+ b _080EAEC2
+_080EAEBC:
+ ldr r0, _080EAEC8
+ adds r0, r4, r0
+ ldrb r0, [r0]
+_080EAEC2:
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080EAEC8: .4byte gEasyChatGroupSizes
+ thumb_func_end sub_80EAE88
+
+ thumb_func_start sub_80EAECC
+sub_80EAECC: @ 80EAECC
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x10
+ movs r0, 0
+ mov r8, r0
+ ldr r1, _080EAF10
+ ldr r0, [r1]
+ ldr r3, _080EAF14
+ adds r3, r0, r3
+ str r3, [sp, 0x4]
+_080EAEE6:
+ ldr r1, _080EAF18
+ mov r7, r8
+ lsls r2, r7, 1
+ adds r0, r2, r1
+ ldrh r4, [r0]
+ mov r3, r8
+ adds r3, 0x1
+ lsls r0, r3, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ str r0, [sp]
+ ldr r0, [sp, 0x4]
+ adds r1, r0, r2
+ movs r0, 0
+ strh r0, [r1]
+ mov r9, r0
+ adds r6, r4, 0
+ mov r10, r2
+ str r3, [sp, 0x8]
+ b _080EB00C
+ .align 2, 0
+_080EAF10: .4byte gUnknown_083DB694
+_080EAF14: .4byte 0x00004142
+_080EAF18: .4byte gEasyChatWordsByLetter
+_080EAF1C:
+ ldr r2, _080EAFB0
+ adds r0, r6, 0
+ adds r1, r0, 0x1
+ lsls r1, 16
+ lsrs r6, r1, 16
+ lsls r0, 1
+ adds r0, r2
+ ldrh r1, [r0]
+ adds r4, r1, 0
+ ldr r0, _080EAFB4
+ cmp r1, r0
+ bls _080EAFCC
+ movs r0, 0xFF
+ ands r1, r0
+ movs r7, 0
+ subs r0, r1, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ ldr r3, _080EAFB8
+ cmp r5, r3
+ beq _080EB00C
+ mov r1, r8
+ lsls r0, r1, 8
+ subs r0, r1
+ lsls r3, r0, 1
+_080EAF4E:
+ adds r1, r6, 0
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ lsls r1, 1
+ ldr r0, _080EAFB0
+ adds r1, r0
+ ldrh r4, [r1]
+ lsrs r0, r4, 9
+ ldr r1, _080EAFBC
+ adds r2, r1, 0
+ adds r1, r4, 0
+ ands r1, r2
+ str r3, [sp, 0xC]
+ bl sub_80EADC0
+ lsls r0, 24
+ ldr r3, [sp, 0xC]
+ cmp r0, 0
+ beq _080EAFA2
+ cmp r7, 0
+ bne _080EAFA2
+ ldr r7, _080EAFC0
+ ldr r2, [r7]
+ mov r1, r9
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+ mov r9, r0
+ lsls r1, 1
+ adds r1, r3
+ ldr r7, _080EAFC4
+ adds r0, r2, r7
+ adds r0, r1
+ strh r4, [r0]
+ ldr r0, _080EAFC8
+ adds r2, r0
+ add r2, r10
+ ldrh r0, [r2]
+ adds r0, 0x1
+ strh r0, [r2]
+ movs r7, 0x1
+_080EAFA2:
+ subs r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ ldr r1, _080EAFB8
+ cmp r5, r1
+ bne _080EAF4E
+ b _080EB00C
+ .align 2, 0
+_080EAFB0: .4byte gEasyChatWordsAlphabetized
+_080EAFB4: .4byte 0x0000feff
+_080EAFB8: .4byte 0x0000ffff
+_080EAFBC: .4byte 0x000001ff
+_080EAFC0: .4byte gUnknown_083DB694
+_080EAFC4: .4byte 0x00000b78
+_080EAFC8: .4byte 0x00004142
+_080EAFCC:
+ lsrs r0, r4, 9
+ ldr r3, _080EB030
+ adds r2, r3, 0
+ adds r1, r4, 0
+ ands r1, r2
+ bl sub_80EADC0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080EB00C
+ ldr r7, _080EB034
+ ldr r2, [r7]
+ mov r1, r9
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+ mov r9, r0
+ mov r3, r8
+ lsls r0, r3, 8
+ subs r0, r3
+ adds r0, r1
+ lsls r0, 1
+ ldr r7, _080EB038
+ adds r1, r2, r7
+ adds r1, r0
+ strh r4, [r1]
+ ldr r0, _080EB03C
+ adds r2, r0
+ add r2, r10
+ ldrh r0, [r2]
+ adds r0, 0x1
+ strh r0, [r2]
+_080EB00C:
+ ldr r1, [sp]
+ cmp r6, r1
+ bcc _080EAF1C
+ ldr r3, [sp, 0x8]
+ lsls r0, r3, 16
+ lsrs r0, 16
+ mov r8, r0
+ cmp r0, 0x1A
+ bhi _080EB020
+ b _080EAEE6
+_080EB020:
+ add sp, 0x10
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EB030: .4byte 0x000001ff
+_080EB034: .4byte gUnknown_083DB694
+_080EB038: .4byte 0x00000b78
+_080EB03C: .4byte 0x00004142
+ thumb_func_end sub_80EAECC
+
+ thumb_func_start sub_80EB040
+sub_80EB040: @ 80EB040
+ push {r4-r6,lr}
+ movs r3, 0
+_080EB044:
+ adds r6, r3, 0x1
+ cmp r3, 0
+ beq _080EB094
+ cmp r3, 0x15
+ beq _080EB094
+ cmp r3, 0x12
+ beq _080EB094
+ cmp r3, 0x13
+ beq _080EB094
+ ldr r0, _080EB0A4
+ lsls r1, r3, 2
+ adds r1, r0
+ ldr r2, [r1]
+ movs r4, 0
+ ldrb r0, [r2]
+ cmp r0, 0xFF
+ beq _080EB094
+ ldr r0, _080EB0A8
+ ldr r0, [r0]
+ ldr r1, _080EB0AC
+ adds r5, r0, r1
+_080EB06E:
+ lsls r0, r4, 2
+ lsls r1, r3, 10
+ adds r0, r1
+ adds r0, r5, r0
+ str r2, [r0]
+ ldrb r0, [r2]
+ adds r1, r4, 0x1
+ cmp r0, 0xFF
+ beq _080EB088
+_080EB080:
+ adds r2, 0x1
+ ldrb r0, [r2]
+ cmp r0, 0xFF
+ bne _080EB080
+_080EB088:
+ adds r2, 0x1
+ lsls r0, r1, 16
+ lsrs r4, r0, 16
+ ldrb r0, [r2]
+ cmp r0, 0xFF
+ bne _080EB06E
+_080EB094:
+ lsls r0, r6, 16
+ lsrs r3, r0, 16
+ cmp r3, 0x15
+ bls _080EB044
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EB0A4: .4byte gEasyChatGroupWords
+_080EB0A8: .4byte gUnknown_083DB694
+_080EB0AC: .4byte 0x000041a4
+ thumb_func_end sub_80EB040
+
+ thumb_func_start sub_80EB0B0
+sub_80EB0B0: @ 80EB0B0
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ ldr r3, _080EB184
+ ldr r4, [r3]
+ adds r0, r4, 0
+ adds r0, 0x26
+ ldrb r5, [r0]
+ cmp r5, 0
+ bne _080EB19C
+ movs r0, 0xDC
+ lsls r0, 1
+ adds r2, r4, r0
+ ldrb r6, [r2]
+ lsls r1, r6, 1
+ ldr r7, _080EB188
+ adds r0, r4, r7
+ adds r0, r1
+ strh r5, [r0]
+ movs r7, 0
+ movs r0, 0
+ mov r9, r0
+ ldr r1, _080EB18C
+ lsls r0, r6, 2
+ adds r0, r1
+ ldr r0, [r0]
+ str r0, [sp]
+ movs r1, 0
+ mov r8, r1
+ ldr r1, _080EB190
+ ldrb r0, [r2]
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r8, r0
+ bcc _080EB0FE
+ b _080EB1FA
+_080EB0FE:
+ movs r2, 0xDC
+ lsls r2, 1
+ adds r2, r4, r2
+ str r2, [sp, 0x4]
+ lsls r5, r6, 24
+ mov r10, r5
+_080EB10A:
+ mov r1, r8
+ lsls r0, r1, 1
+ ldr r2, [sp]
+ adds r5, r0, r2
+ ldrh r1, [r5]
+ mov r2, r10
+ lsrs r0, r2, 24
+ bl sub_80EADC0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080EB16A
+ ldr r0, _080EB184
+ ldr r3, [r0]
+ lsls r1, r7, 1
+ mov r2, r9
+ lsls r0, r2, 2
+ adds r1, r0
+ ldr r0, _080EB194
+ adds r4, r3, r0
+ adds r4, r1
+ movs r0, 0x7F
+ ands r0, r6
+ lsls r0, 9
+ ldrh r1, [r5]
+ ldr r5, _080EB198
+ adds r2, r5, 0
+ ands r1, r2
+ orrs r0, r1
+ strh r0, [r4]
+ lsls r0, r6, 1
+ ldr r1, _080EB188
+ adds r3, r1
+ adds r3, r0
+ ldrh r0, [r3]
+ adds r0, 0x1
+ strh r0, [r3]
+ adds r0, r7, 0x1
+ lsls r0, 16
+ lsrs r7, r0, 16
+ cmp r7, 0x1
+ bls _080EB16A
+ movs r7, 0
+ mov r0, r9
+ adds r0, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+ mov r9, r0
+_080EB16A:
+ mov r0, r8
+ adds r0, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ ldr r1, _080EB190
+ ldr r2, [sp, 0x4]
+ ldrb r0, [r2]
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r8, r0
+ bcc _080EB10A
+ b _080EB1FA
+ .align 2, 0
+_080EB184: .4byte gUnknown_083DB694
+_080EB188: .4byte 0x00004178
+_080EB18C: .4byte gEasyChatGroupOrders
+_080EB190: .4byte gEasyChatGroupSizes
+_080EB194: .4byte 0x00009a2a
+_080EB198: .4byte 0x000001ff
+_080EB19C:
+ movs r5, 0xDC
+ lsls r5, 1
+ adds r0, r4, r5
+ ldrb r2, [r0]
+ movs r3, 0
+ movs r6, 0
+ movs r5, 0
+ lsls r1, r2, 1
+ ldr r7, _080EB20C
+ adds r0, r4, r7
+ adds r1, r0, r1
+ ldrh r0, [r1]
+ cmp r5, r0
+ bcs _080EB1FA
+ ldr r7, _080EB210
+ adds r7, r4
+ mov r8, r7
+ lsls r0, r2, 8
+ subs r0, r2
+ lsls r7, r0, 1
+ ldr r0, _080EB214
+ adds r2, r4, r0
+ adds r4, r1, 0
+_080EB1CA:
+ lsls r1, r3, 1
+ lsls r0, r6, 2
+ adds r1, r0
+ add r1, r8
+ lsls r0, r5, 1
+ adds r0, r7
+ adds r0, r2, r0
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0x1
+ bls _080EB1EE
+ movs r3, 0
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+_080EB1EE:
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ ldrh r1, [r4]
+ cmp r5, r1
+ bcc _080EB1CA
+_080EB1FA:
+ add sp, 0x8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EB20C: .4byte 0x00004142
+_080EB210: .4byte 0x00009a2a
+_080EB214: .4byte 0x00000b78
+ thumb_func_end sub_80EB0B0
+
+ thumb_func_start sub_80EB218
+sub_80EB218: @ 80EB218
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r5, r0, 0
+ lsls r6, r1, 16
+ lsrs r4, r6, 16
+ adds r7, r4, 0
+ lsls r2, 16
+ lsrs r2, 16
+ mov r8, r2
+ adds r0, r4, 0
+ bl sub_80EB37C
+ lsls r0, 24
+ cmp r0, 0
+ beq _080EB240
+ ldr r1, _080EB23C
+ b _080EB2A2
+ .align 2, 0
+_080EB23C: .4byte gOtherText_ThreeQuestions
+_080EB240:
+ ldr r0, _080EB250
+ cmp r4, r0
+ bne _080EB254
+ adds r1, r5, 0
+ movs r0, 0xFF
+ strb r0, [r1]
+ b _080EB2AA
+ .align 2, 0
+_080EB250: .4byte 0x0000ffff
+_080EB254:
+ lsrs r2, r6, 25
+ ldr r1, _080EB268
+ ands r1, r7
+ cmp r2, 0x13
+ bgt _080EB26C
+ cmp r2, 0x12
+ bge _080EB280
+ cmp r2, 0
+ beq _080EB270
+ b _080EB290
+ .align 2, 0
+_080EB268: .4byte 0x000001ff
+_080EB26C:
+ cmp r2, 0x15
+ bne _080EB290
+_080EB270:
+ movs r0, 0xB
+ muls r1, r0
+ ldr r0, _080EB27C
+ adds r1, r0
+ b _080EB2A2
+ .align 2, 0
+_080EB27C: .4byte gSpeciesNames
+_080EB280:
+ movs r0, 0xD
+ muls r1, r0
+ ldr r0, _080EB28C
+ adds r1, r0
+ b _080EB2A2
+ .align 2, 0
+_080EB28C: .4byte gMoveNames
+_080EB290:
+ ldr r0, _080EB2CC
+ ldr r0, [r0]
+ lsls r1, 2
+ lsls r2, 10
+ adds r1, r2
+ ldr r2, _080EB2D0
+ adds r0, r2
+ adds r0, r1
+ ldr r1, [r0]
+_080EB2A2:
+ adds r0, r5, 0
+ bl StringCopy
+ adds r1, r0, 0
+_080EB2AA:
+ movs r0, 0xFC
+ strb r0, [r1]
+ movs r0, 0x13
+ strb r0, [r1, 0x1]
+ mov r2, r8
+ lsls r0, r2, 3
+ strb r0, [r1, 0x2]
+ adds r1, 0x3
+ movs r0, 0xFF
+ strb r0, [r1]
+ adds r0, r1, 0
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080EB2CC: .4byte gUnknown_083DB694
+_080EB2D0: .4byte 0x000041a4
+ thumb_func_end sub_80EB218
+
+ thumb_func_start sub_80EB2D4
+sub_80EB2D4: @ 80EB2D4
+ push {r4-r6,lr}
+ lsls r5, r0, 16
+ lsrs r4, r5, 16
+ adds r6, r4, 0
+ adds r0, r4, 0
+ bl sub_80EB37C
+ lsls r0, 24
+ cmp r0, 0
+ beq _080EB2F8
+ ldr r0, _080EB2F4
+ bl StringLength
+ lsls r0, 16
+ lsrs r0, 16
+ b _080EB374
+ .align 2, 0
+_080EB2F4: .4byte gOtherText_ThreeQuestions
+_080EB2F8:
+ ldr r0, _080EB304
+ cmp r4, r0
+ bne _080EB308
+ movs r0, 0
+ b _080EB374
+ .align 2, 0
+_080EB304: .4byte 0x0000ffff
+_080EB308:
+ lsrs r2, r5, 25
+ ldr r1, _080EB31C
+ ands r1, r6
+ cmp r2, 0x13
+ bgt _080EB320
+ cmp r2, 0x12
+ bge _080EB334
+ cmp r2, 0
+ beq _080EB324
+ b _080EB344
+ .align 2, 0
+_080EB31C: .4byte 0x000001ff
+_080EB320:
+ cmp r2, 0x15
+ bne _080EB344
+_080EB324:
+ movs r0, 0xB
+ muls r1, r0
+ ldr r0, _080EB330
+ adds r1, r0
+ b _080EB356
+ .align 2, 0
+_080EB330: .4byte gSpeciesNames
+_080EB334:
+ movs r0, 0xD
+ muls r1, r0
+ ldr r0, _080EB340
+ adds r1, r0
+ b _080EB356
+ .align 2, 0
+_080EB340: .4byte gMoveNames
+_080EB344:
+ ldr r0, _080EB35C
+ ldr r0, [r0]
+ lsls r1, 2
+ lsls r2, 10
+ adds r1, r2
+ ldr r2, _080EB360
+ adds r0, r2
+ adds r0, r1
+ ldr r1, [r0]
+_080EB356:
+ movs r2, 0
+ b _080EB36C
+ .align 2, 0
+_080EB35C: .4byte gUnknown_083DB694
+_080EB360: .4byte 0x000041a4
+_080EB364:
+ adds r1, 0x1
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+_080EB36C:
+ ldrb r0, [r1]
+ cmp r0, 0xFF
+ bne _080EB364
+ adds r0, r2, 0
+_080EB374:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80EB2D4
+
+ thumb_func_start sub_80EB37C
+sub_80EB37C: @ 80EB37C
+ push {r4,r5,lr}
+ lsls r1, r0, 16
+ lsrs r3, r1, 16
+ ldr r0, _080EB3A0
+ cmp r3, r0
+ beq _080EB3EA
+ lsrs r2, r1, 25
+ ldr r5, _080EB3A4
+ ands r5, r3
+ cmp r2, 0x15
+ bhi _080EB3F4
+ cmp r2, 0x13
+ bgt _080EB3A8
+ cmp r2, 0x12
+ bge _080EB3AC
+ cmp r2, 0
+ beq _080EB3AC
+ b _080EB3E0
+ .align 2, 0
+_080EB3A0: .4byte 0x0000ffff
+_080EB3A4: .4byte 0x000001ff
+_080EB3A8:
+ cmp r2, 0x15
+ bne _080EB3E0
+_080EB3AC:
+ ldr r0, _080EB3D8
+ lsls r1, r2, 2
+ adds r1, r0
+ ldr r4, [r1]
+ movs r3, 0
+ ldr r0, _080EB3DC
+ adds r0, r2, r0
+ ldrb r0, [r0]
+ cmp r3, r0
+ bcs _080EB3F4
+ adds r1, r0, 0
+_080EB3C2:
+ lsls r0, r3, 1
+ adds r0, r4
+ ldrh r0, [r0]
+ cmp r5, r0
+ beq _080EB3EA
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, r1
+ bcc _080EB3C2
+ b _080EB3F4
+ .align 2, 0
+_080EB3D8: .4byte gEasyChatGroupWords
+_080EB3DC: .4byte gEasyChatGroupSizes
+_080EB3E0:
+ ldr r0, _080EB3F0
+ adds r0, r2, r0
+ ldrb r0, [r0]
+ cmp r5, r0
+ bcs _080EB3F4
+_080EB3EA:
+ movs r0, 0
+ b _080EB3F6
+ .align 2, 0
+_080EB3F0: .4byte gEasyChatGroupSizes
+_080EB3F4:
+ movs r0, 0x1
+_080EB3F6:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80EB37C
+
+ thumb_func_start sub_80EB3FC
+sub_80EB3FC: @ 80EB3FC
+ push {r4-r7,lr}
+ adds r5, r0, 0
+ lsls r6, r1, 16
+ lsrs r4, r6, 16
+ adds r7, r4, 0
+ adds r0, r4, 0
+ bl sub_80EB37C
+ lsls r0, 24
+ cmp r0, 0
+ beq _080EB420
+ ldr r1, _080EB41C
+ adds r0, r5, 0
+ bl StringCopy
+ b _080EB4A6
+ .align 2, 0
+_080EB41C: .4byte gOtherText_ThreeQuestions
+_080EB420:
+ ldr r0, _080EB43C
+ cmp r4, r0
+ beq _080EB4A0
+ lsrs r1, r6, 25
+ ldr r2, _080EB440
+ ands r2, r7
+ cmp r1, 0x13
+ bgt _080EB444
+ cmp r1, 0x12
+ bge _080EB458
+ cmp r1, 0
+ beq _080EB448
+ b _080EB468
+ .align 2, 0
+_080EB43C: .4byte 0x0000ffff
+_080EB440: .4byte 0x000001ff
+_080EB444:
+ cmp r1, 0x15
+ bne _080EB468
+_080EB448:
+ movs r0, 0xB
+ adds r1, r2, 0
+ muls r1, r0
+ ldr r0, _080EB454
+ adds r1, r0
+ b _080EB498
+ .align 2, 0
+_080EB454: .4byte gSpeciesNames
+_080EB458:
+ movs r0, 0xD
+ adds r1, r2, 0
+ muls r1, r0
+ ldr r0, _080EB464
+ adds r1, r0
+ b _080EB498
+ .align 2, 0
+_080EB464: .4byte gMoveNames
+_080EB468:
+ ldr r0, _080EB4AC
+ lsls r1, 2
+ adds r1, r0
+ ldr r1, [r1]
+ subs r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ ldr r0, _080EB4B0
+ cmp r2, r0
+ beq _080EB498
+ adds r3, r0, 0
+_080EB47E:
+ ldrb r0, [r1]
+ adds r1, 0x1
+ subs r2, 0x1
+ cmp r0, 0xFF
+ beq _080EB490
+_080EB488:
+ ldrb r0, [r1]
+ adds r1, 0x1
+ cmp r0, 0xFF
+ bne _080EB488
+_080EB490:
+ lsls r0, r2, 16
+ lsrs r2, r0, 16
+ cmp r2, r3
+ bne _080EB47E
+_080EB498:
+ adds r0, r5, 0
+ bl StringCopy
+ adds r5, r0, 0
+_080EB4A0:
+ movs r0, 0xFF
+ strb r0, [r5]
+ adds r0, r5, 0
+_080EB4A6:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080EB4AC: .4byte gEasyChatGroupWords
+_080EB4B0: .4byte 0x0000ffff
+ thumb_func_end sub_80EB3FC
+
+ thumb_func_start ConvertEasyChatWordsToString
+ConvertEasyChatWordsToString: @ 80EB4B4
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x4
+ adds r4, r0, 0
+ adds r5, r1, 0
+ lsls r2, 16
+ lsls r3, 16
+ lsrs r3, 16
+ mov r9, r3
+ ldr r0, _080EB53C
+ adds r2, r0
+ lsrs r7, r2, 16
+ movs r0, 0
+ cmp r0, r9
+ bcs _080EB524
+_080EB4D6:
+ movs r6, 0
+ adds r0, 0x1
+ mov r8, r0
+ cmp r6, r7
+ bcs _080EB508
+ ldr r2, _080EB540
+_080EB4E2:
+ ldrh r1, [r5]
+ adds r0, r4, 0
+ str r2, [sp]
+ bl sub_80EB3FC
+ adds r4, r0, 0
+ ldrh r0, [r5]
+ ldr r2, [sp]
+ cmp r0, r2
+ beq _080EB4FC
+ movs r0, 0
+ strb r0, [r4]
+ adds r4, 0x1
+_080EB4FC:
+ adds r5, 0x2
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ cmp r6, r7
+ bcc _080EB4E2
+_080EB508:
+ ldrh r1, [r5]
+ adds r5, 0x2
+ adds r0, r4, 0
+ bl sub_80EB3FC
+ adds r4, r0, 0
+ movs r0, 0xFE
+ strb r0, [r4]
+ adds r4, 0x1
+ mov r1, r8
+ lsls r0, r1, 16
+ lsrs r0, 16
+ cmp r0, r9
+ bcc _080EB4D6
+_080EB524:
+ subs r4, 0x1
+ movs r0, 0xFF
+ strb r0, [r4]
+ adds r0, r4, 0
+ add sp, 0x4
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080EB53C: .4byte 0xffff0000
+_080EB540: .4byte 0x0000ffff
+ thumb_func_end ConvertEasyChatWordsToString
+
+ thumb_func_start sub_80EB544
+sub_80EB544: @ 80EB544
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ adds r4, r0, 0
+ adds r5, r1, 0
+ lsls r2, 16
+ lsls r3, 16
+ lsrs r3, 16
+ mov r10, r3
+ ldr r0, _080EB5B0
+ adds r2, r0
+ lsrs r2, 16
+ mov r8, r2
+ movs r7, 0
+ cmp r7, r10
+ bcs _080EB5C8
+_080EB56A:
+ movs r6, 0
+ adds r1, r7, 0x1
+ mov r9, r1
+ cmp r6, r8
+ bcs _080EB59C
+ ldr r2, _080EB5B4
+_080EB576:
+ ldrh r1, [r5]
+ adds r0, r4, 0
+ str r2, [sp]
+ bl sub_80EB3FC
+ adds r4, r0, 0
+ ldrh r0, [r5]
+ ldr r2, [sp]
+ cmp r0, r2
+ beq _080EB590
+ movs r0, 0
+ strb r0, [r4]
+ adds r4, 0x1
+_080EB590:
+ adds r5, 0x2
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ cmp r6, r8
+ bcc _080EB576
+_080EB59C:
+ ldrh r1, [r5]
+ adds r5, 0x2
+ adds r0, r4, 0
+ bl sub_80EB3FC
+ adds r4, r0, 0
+ cmp r7, 0
+ bne _080EB5B8
+ movs r0, 0xFE
+ b _080EB5BA
+ .align 2, 0
+_080EB5B0: .4byte 0xffff0000
+_080EB5B4: .4byte 0x0000ffff
+_080EB5B8:
+ movs r0, 0xFA
+_080EB5BA:
+ strb r0, [r4]
+ adds r4, 0x1
+ mov r1, r9
+ lsls r0, r1, 16
+ lsrs r7, r0, 16
+ cmp r7, r10
+ bcc _080EB56A
+_080EB5C8:
+ subs r4, 0x1
+ movs r0, 0xFF
+ strb r0, [r4]
+ adds r0, r4, 0
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80EB544
+
+ thumb_func_start unref_sub_80EB5E0
+unref_sub_80EB5E0: @ 80EB5E0
+ push {lr}
+ lsls r1, r0, 16
+ lsrs r3, r1, 16
+ ldr r0, _080EB5F0
+ cmp r3, r0
+ bne _080EB5F4
+ movs r0, 0
+ b _080EB67C
+ .align 2, 0
+_080EB5F0: .4byte 0x0000ffff
+_080EB5F4:
+ lsrs r1, 25
+ ldr r2, _080EB608
+ ands r2, r3
+ cmp r1, 0x13
+ bgt _080EB60C
+ cmp r1, 0x12
+ bge _080EB620
+ cmp r1, 0
+ beq _080EB610
+ b _080EB630
+ .align 2, 0
+_080EB608: .4byte 0x000001ff
+_080EB60C:
+ cmp r1, 0x15
+ bne _080EB630
+_080EB610:
+ movs r0, 0xB
+ adds r1, r2, 0
+ muls r1, r0
+ ldr r0, _080EB61C
+ adds r1, r0
+ b _080EB660
+ .align 2, 0
+_080EB61C: .4byte gSpeciesNames
+_080EB620:
+ movs r0, 0xD
+ adds r1, r2, 0
+ muls r1, r0
+ ldr r0, _080EB62C
+ adds r1, r0
+ b _080EB660
+ .align 2, 0
+_080EB62C: .4byte gMoveNames
+_080EB630:
+ ldr r0, _080EB664
+ lsls r1, 2
+ adds r1, r0
+ ldr r1, [r1]
+ subs r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ ldr r0, _080EB668
+ cmp r2, r0
+ beq _080EB660
+ adds r3, r0, 0
+_080EB646:
+ ldrb r0, [r1]
+ adds r1, 0x1
+ subs r2, 0x1
+ cmp r0, 0xFF
+ beq _080EB658
+_080EB650:
+ ldrb r0, [r1]
+ adds r1, 0x1
+ cmp r0, 0xFF
+ bne _080EB650
+_080EB658:
+ lsls r0, r2, 16
+ lsrs r2, r0, 16
+ cmp r2, r3
+ bne _080EB646
+_080EB660:
+ movs r2, 0
+ b _080EB674
+ .align 2, 0
+_080EB664: .4byte gEasyChatGroupWords
+_080EB668: .4byte 0x0000ffff
+_080EB66C:
+ adds r1, 0x1
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+_080EB674:
+ ldrb r0, [r1]
+ cmp r0, 0xFF
+ bne _080EB66C
+ adds r0, r2, 0
+_080EB67C:
+ pop {r1}
+ bx r1
+ thumb_func_end unref_sub_80EB5E0
+
+ thumb_func_start sub_80EB680
+sub_80EB680: @ 80EB680
+ movs r0, 0
+ bx lr
+ thumb_func_end sub_80EB680
+
+ thumb_func_start unref_sub_80EB684
+unref_sub_80EB684: @ 80EB684
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r2, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ cmp r0, 0x7
+ beq _080EB6B4
+ cmp r0, 0x7
+ bgt _080EB69E
+ cmp r0, 0x5
+ beq _080EB6A4
+ b _080EB6EE
+_080EB69E:
+ cmp r2, 0x8
+ beq _080EB6C4
+ b _080EB6EE
+_080EB6A4:
+ movs r2, 0x6
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080EB6B0
+ b _080EB6CE
+ .align 2, 0
+_080EB6B0: .4byte gSaveBlock1 + 0x273C
+_080EB6B4:
+ movs r2, 0x2
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080EB6C0
+ b _080EB6CE
+ .align 2, 0
+_080EB6C0: .4byte gSaveBlock1 + 0x2754
+_080EB6C4:
+ movs r2, 0x1
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080EB6F4
+_080EB6CE:
+ adds r1, r0, r1
+ subs r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ ldr r0, _080EB6F8
+ cmp r2, r0
+ beq _080EB6EE
+ adds r4, r0, 0
+ adds r3, r0, 0
+_080EB6E0:
+ strh r4, [r1]
+ adds r1, 0x2
+ subs r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, r3
+ bne _080EB6E0
+_080EB6EE:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EB6F4: .4byte gSaveBlock1 + 0x273A
+_080EB6F8: .4byte 0x0000ffff
+ thumb_func_end unref_sub_80EB684
+
+ thumb_func_start sub_80EB6FC
+sub_80EB6FC: @ 80EB6FC
+ push {lr}
+ adds r2, r0, 0
+ lsls r1, 16
+ ldr r0, _080EB724
+ adds r1, r0
+ lsrs r0, r1, 16
+ ldr r1, _080EB728
+ cmp r0, r1
+ beq _080EB71E
+ adds r3, r1, 0
+_080EB710:
+ strh r3, [r2]
+ adds r2, 0x2
+ subs r0, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, r1
+ bne _080EB710
+_080EB71E:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EB724: .4byte 0xffff0000
+_080EB728: .4byte 0x0000ffff
+ thumb_func_end sub_80EB6FC
+
+ thumb_func_start sub_80EB72C
+sub_80EB72C: @ 80EB72C
+ push {r4,lr}
+ lsls r0, 16
+ lsrs r4, r0, 16
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r1, _080EB778
+ adds r1, r4, r1
+ ldrb r1, [r1]
+ bl __modsi3
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r4, 0
+ beq _080EB758
+ cmp r4, 0x15
+ beq _080EB758
+ cmp r4, 0x12
+ beq _080EB758
+ cmp r4, 0x13
+ bne _080EB766
+_080EB758:
+ ldr r1, _080EB77C
+ lsls r0, r4, 2
+ adds r0, r1
+ ldr r1, [r0]
+ lsls r0, r2, 1
+ adds r0, r1
+ ldrh r2, [r0]
+_080EB766:
+ movs r0, 0x7F
+ ands r0, r4
+ lsls r0, 9
+ ldr r1, _080EB780
+ ands r2, r1
+ orrs r0, r2
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080EB778: .4byte gEasyChatGroupSizes
+_080EB77C: .4byte gEasyChatGroupWords
+_080EB780: .4byte 0x000001ff
+ thumb_func_end sub_80EB72C
+
+ thumb_func_start sub_80EB784
+sub_80EB784: @ 80EB784
+ push {r4,lr}
+ lsls r0, 16
+ lsrs r4, r0, 16
+ lsls r0, r4, 24
+ lsrs r0, 24
+ bl sub_80EAD7C
+ lsls r0, 24
+ cmp r0, 0
+ bne _080EB7A0
+ ldr r0, _080EB79C
+ b _080EB7BE
+ .align 2, 0
+_080EB79C: .4byte 0x0000ffff
+_080EB7A0:
+ cmp r4, 0
+ beq _080EB7AE
+ cmp r4, 0x14
+ bne _080EB7B4
+ bl sub_80EB960
+ b _080EB7BA
+_080EB7AE:
+ bl sub_80EB9D8
+ b _080EB7BA
+_080EB7B4:
+ adds r0, r4, 0
+ bl sub_80EB72C
+_080EB7BA:
+ lsls r0, 16
+ lsrs r0, 16
+_080EB7BE:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80EB784
+
+ thumb_func_start sub_80EB7C4
+sub_80EB7C4: @ 80EB7C4
+ push {r4,r5,lr}
+ ldr r0, _080EB7D8
+ ldrh r0, [r0]
+ cmp r0, 0x1
+ beq _080EB7F0
+ cmp r0, 0x1
+ bgt _080EB7DC
+ cmp r0, 0
+ beq _080EB7E6
+ b _080EB82E
+ .align 2, 0
+_080EB7D8: .4byte gUnknown_0202E8CC
+_080EB7DC:
+ cmp r0, 0x2
+ beq _080EB810
+ cmp r0, 0x3
+ beq _080EB818
+ b _080EB82E
+_080EB7E6:
+ ldr r5, _080EB7EC
+ movs r2, 0x2
+ b _080EB81C
+ .align 2, 0
+_080EB7EC: .4byte gSaveBlock1 + 0x2B1C
+_080EB7F0:
+ ldr r5, _080EB80C
+ adds r0, r5, 0
+ movs r1, 0x3
+ movs r2, 0x2
+ movs r3, 0x14
+ bl sub_80EB680
+ lsls r0, 24
+ cmp r0, 0
+ beq _080EB81A
+ movs r2, 0x2
+ movs r3, 0x3
+ b _080EB81E
+ .align 2, 0
+_080EB80C: .4byte gSaveBlock1 + 0x2B28
+_080EB810:
+ ldr r5, _080EB814
+ b _080EB81A
+ .align 2, 0
+_080EB814: .4byte gSaveBlock1 + 0x2B34
+_080EB818:
+ ldr r5, _080EB834
+_080EB81A:
+ movs r2, 0x3
+_080EB81C:
+ movs r3, 0x2
+_080EB81E:
+ ldr r4, _080EB838
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl ConvertEasyChatWordsToString
+ adds r0, r4, 0
+ bl ShowFieldAutoScrollMessage
+_080EB82E:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EB834: .4byte gSaveBlock1 + 0x2B40
+_080EB838: .4byte gStringVar4
+ thumb_func_end sub_80EB7C4
+
+ thumb_func_start sub_80EB83C
+sub_80EB83C: @ 80EB83C
+ push {lr}
+ bl Random
+ movs r1, 0x1
+ ands r1, r0
+ movs r0, 0xC
+ cmp r1, 0
+ beq _080EB84E
+ movs r0, 0xD
+_080EB84E:
+ bl sub_80EB784
+ adds r1, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ ldr r0, _080EB864
+ bl sub_80EB3FC
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EB864: .4byte gStringVar2
+ thumb_func_end sub_80EB83C
+
+ thumb_func_start sub_80EB868
+sub_80EB868: @ 80EB868
+ lsls r0, 24
+ lsrs r2, r0, 27
+ movs r1, 0xE0
+ lsls r1, 19
+ ands r1, r0
+ lsrs r1, 24
+ ldr r0, _080EB888
+ ldr r3, _080EB88C
+ adds r0, r3
+ adds r2, r0
+ ldrb r0, [r2]
+ asrs r0, r1
+ movs r1, 0x1
+ ands r0, r1
+ bx lr
+ .align 2, 0
+_080EB888: .4byte gSaveBlock1
+_080EB88C: .4byte 0x00002d8c
+ thumb_func_end sub_80EB868
+
+ thumb_func_start sub_80EB890
+sub_80EB890: @ 80EB890
+ push {lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x20
+ bhi _080EB8B2
+ lsrs r2, r0, 27
+ movs r1, 0x7
+ ands r1, r3
+ ldr r0, _080EB8B8
+ ldr r3, _080EB8BC
+ adds r0, r3
+ adds r2, r0
+ movs r0, 0x1
+ lsls r0, r1
+ ldrb r1, [r2]
+ orrs r0, r1
+ strb r0, [r2]
+_080EB8B2:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EB8B8: .4byte gSaveBlock1
+_080EB8BC: .4byte 0x00002d8c
+ thumb_func_end sub_80EB890
+
+ thumb_func_start sub_80EB8C0
+sub_80EB8C0: @ 80EB8C0
+ push {r4,r5,lr}
+ movs r4, 0
+ movs r5, 0
+_080EB8C6:
+ adds r0, r4, 0
+ bl sub_80EB868
+ lsls r0, 24
+ cmp r0, 0
+ beq _080EB8D8
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+_080EB8D8:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x20
+ bls _080EB8C6
+ adds r0, r5, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80EB8C0
+
+ thumb_func_start sub_80EB8EC
+sub_80EB8EC: @ 80EB8EC
+ push {r4-r6,lr}
+ bl sub_80EB8C0
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x21
+ bne _080EB918
+ b _080EB952
+_080EB8FC:
+ adds r0, r5, 0
+ bl sub_80EB890
+ ldr r0, _080EB914
+ ands r4, r0
+ movs r1, 0xA0
+ lsls r1, 6
+ adds r0, r1, 0
+ orrs r4, r0
+ adds r0, r4, 0
+ b _080EB954
+ .align 2, 0
+_080EB914: .4byte 0x000001ff
+_080EB918:
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x21
+ subs r1, r4
+ bl __modsi3
+ lsls r0, 16
+ lsrs r6, r0, 16
+ movs r4, 0
+_080EB92E:
+ lsls r0, r4, 24
+ lsrs r5, r0, 24
+ adds r0, r5, 0
+ bl sub_80EB868
+ lsls r0, 24
+ cmp r0, 0
+ bne _080EB948
+ cmp r6, 0
+ beq _080EB8FC
+ subs r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+_080EB948:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x20
+ bls _080EB92E
+_080EB952:
+ ldr r0, _080EB95C
+_080EB954:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080EB95C: .4byte 0x0000ffff
+ thumb_func_end sub_80EB8EC
+
+ thumb_func_start sub_80EB960
+sub_80EB960: @ 80EB960
+ push {r4,r5,lr}
+ bl sub_80EB8C0
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0
+ bne _080EB984
+ b _080EB9BA
+_080EB970:
+ ldr r0, _080EB980
+ ands r4, r0
+ movs r1, 0xA0
+ lsls r1, 6
+ adds r0, r1, 0
+ orrs r4, r0
+ adds r0, r4, 0
+ b _080EB9BC
+ .align 2, 0
+_080EB980: .4byte 0x000001ff
+_080EB984:
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ adds r1, r5, 0
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r5, r0, 16
+ movs r4, 0
+_080EB998:
+ lsls r0, r4, 24
+ lsrs r0, 24
+ bl sub_80EB868
+ lsls r0, 24
+ cmp r0, 0
+ beq _080EB9B0
+ cmp r5, 0
+ beq _080EB970
+ subs r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+_080EB9B0:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x20
+ bls _080EB998
+_080EB9BA:
+ ldr r0, _080EB9C4
+_080EB9BC:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080EB9C4: .4byte 0x0000ffff
+ thumb_func_end sub_80EB960
+
+ thumb_func_start sub_80EB9C8
+sub_80EB9C8: @ 80EB9C8
+ push {lr}
+ bl sub_806912C
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80EB9C8
+
+ thumb_func_start sub_80EB9D8
+sub_80EB9D8: @ 80EB9D8
+ push {r4-r7,lr}
+ movs r0, 0
+ bl sub_80EAE88
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0
+ bne _080EB9F8
+ b _080EBA46
+_080EB9EA:
+ ldrh r1, [r5]
+ ldr r0, _080EB9F4
+ ands r0, r1
+ b _080EBA48
+ .align 2, 0
+_080EB9F4: .4byte 0x000001ff
+_080EB9F8:
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ adds r1, r4, 0
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r4, r0, 16
+ ldr r0, _080EBA50
+ ldr r5, [r0]
+ movs r6, 0
+ ldr r0, _080EBA54
+ ldrb r0, [r0]
+ cmp r6, r0
+ bcs _080EBA46
+ adds r7, r0, 0
+_080EBA1A:
+ ldrh r0, [r5]
+ bl SpeciesToNationalPokedexNum
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0
+ bl sub_8090D90
+ lsls r0, 24
+ cmp r0, 0
+ beq _080EBA3A
+ cmp r4, 0
+ beq _080EB9EA
+ subs r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+_080EBA3A:
+ adds r5, 0x2
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ cmp r6, r7
+ bcc _080EBA1A
+_080EBA46:
+ ldr r0, _080EBA58
+_080EBA48:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080EBA50: .4byte gEasyChatGroupWords
+_080EBA54: .4byte gEasyChatGroupSizes
+_080EBA58: .4byte 0x0000ffff
+ thumb_func_end sub_80EB9D8
+
+ thumb_func_start sub_80EBA5C
+sub_80EBA5C: @ 80EBA5C
+ push {lr}
+ ldr r0, _080EBA74
+ ldr r2, _080EBA78
+ adds r1, r0, r2
+ ldrb r0, [r1]
+ cmp r0, 0xE
+ bhi _080EBABC
+ lsls r0, 2
+ ldr r1, _080EBA7C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080EBA74: .4byte gMain
+_080EBA78: .4byte 0x0000043c
+_080EBA7C: .4byte _080EBA80
+ .align 2, 0
+_080EBA80:
+ .4byte _080EBAC0
+ .4byte _080EBB08
+ .4byte _080EBB10
+ .4byte _080EBB16
+ .4byte _080EBB1C
+ .4byte _080EBB22
+ .4byte _080EBB28
+ .4byte _080EBB2E
+ .4byte _080EBB3E
+ .4byte _080EBB4C
+ .4byte _080EBB5C
+ .4byte _080EBB6C
+ .4byte _080EBB7C
+ .4byte _080EBB90
+ .4byte _080EBBA0
+_080EBABC:
+ movs r0, 0
+ strb r0, [r1]
+_080EBAC0:
+ bl is_c1_link_related_active
+ ldr r3, _080EBAF0
+ ldr r2, _080EBAF4
+ adds r1, r3, r2
+ strb r0, [r1]
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0
+ bne _080EBBC0
+ ldr r1, _080EBAF8
+ adds r0, r3, r1
+ strb r2, [r0]
+ ldr r1, _080EBAFC
+ ldr r2, _080EBB00
+ adds r1, r2
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ ldr r0, _080EBB04
+ bl SetMainCallback2
+ b _080EBBC0
+ .align 2, 0
+_080EBAF0: .4byte 0x02000000
+_080EBAF4: .4byte 0x00006dac
+_080EBAF8: .4byte 0x00006dab
+_080EBAFC: .4byte gMain
+_080EBB00: .4byte 0x0000043c
+_080EBB04: .4byte sub_80EBBE8
+_080EBB08:
+ movs r0, 0
+ bl SetVBlankCallback
+ b _080EBBC0
+_080EBB10:
+ bl ResetPaletteFade
+ b _080EBBC0
+_080EBB16:
+ bl ResetSpriteData
+ b _080EBBC0
+_080EBB1C:
+ bl FreeAllSpritePalettes
+ b _080EBBC0
+_080EBB22:
+ bl ResetTasks
+ b _080EBBC0
+_080EBB28:
+ bl remove_some_task
+ b _080EBBC0
+_080EBB2E:
+ bl sub_80F1A90
+ ldr r1, _080EBB44
+ ldr r0, _080EBB48
+ adds r1, r0
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+_080EBB3E:
+ bl sub_80F1AC4
+ b _080EBB80
+ .align 2, 0
+_080EBB44: .4byte gMain
+_080EBB48: .4byte 0x0000043c
+_080EBB4C:
+ bl sub_80F2688
+ ldr r1, _080EBB64
+ ldr r2, _080EBB68
+ adds r1, r2
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+_080EBB5C:
+ bl sub_80F26BC
+ b _080EBB80
+ .align 2, 0
+_080EBB64: .4byte gMain
+_080EBB68: .4byte 0x0000043c
+_080EBB6C:
+ bl sub_80F36F0
+ ldr r1, _080EBB88
+ ldr r0, _080EBB8C
+ adds r1, r0
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+_080EBB7C:
+ bl sub_80F3724
+_080EBB80:
+ lsls r0, 24
+ cmp r0, 0
+ bne _080EBBCC
+ b _080EBBC0
+ .align 2, 0
+_080EBB88: .4byte gMain
+_080EBB8C: .4byte 0x0000043c
+_080EBB90:
+ bl sub_80EBC10
+ ldr r0, _080EBB9C
+ bl sub_80EBDBC
+ b _080EBBC0
+ .align 2, 0
+_080EBB9C: .4byte sub_80EBDD8
+_080EBBA0:
+ ldr r0, _080EBBD0
+ ldr r1, _080EBBD4
+ adds r0, r1
+ movs r1, 0x1
+ strb r1, [r0]
+ movs r0, 0x6E
+ bl PlaySE
+ ldr r0, _080EBBD8
+ bl SetMainCallback2
+ ldr r0, _080EBBDC
+ bl SetVBlankCallback
+ bl sub_80F1A74
+_080EBBC0:
+ ldr r1, _080EBBE0
+ ldr r2, _080EBBE4
+ adds r1, r2
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+_080EBBCC:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EBBD0: .4byte 0x02000000
+_080EBBD4: .4byte 0x00006dab
+_080EBBD8: .4byte sub_80EBD90
+_080EBBDC: .4byte sub_80EBD18
+_080EBBE0: .4byte gMain
+_080EBBE4: .4byte 0x0000043c
+ thumb_func_end sub_80EBA5C
+
+ thumb_func_start sub_80EBBE8
+sub_80EBBE8: @ 80EBBE8
+ push {r4,lr}
+ ldr r0, _080EBC08
+ ldr r2, _080EBC0C
+ adds r1, r0, r2
+ ldrb r0, [r1]
+ cmp r0, 0
+ bne _080EBC02
+ adds r4, r1, 0
+_080EBBF8:
+ bl sub_80EBA5C
+ ldrb r0, [r4]
+ cmp r0, 0
+ beq _080EBBF8
+_080EBC02:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EBC08: .4byte 0x02000000
+_080EBC0C: .4byte 0x00006dab
+ thumb_func_end sub_80EBBE8
+
+ thumb_func_start sub_80EBC10
+sub_80EBC10: @ 80EBC10
+ push {r4-r7,lr}
+ ldr r1, _080EBC7C
+ movs r0, 0x14
+ strh r0, [r1]
+ bl CalculatePlayerPartyCount
+ ldr r2, _080EBC80
+ ldr r1, _080EBC84
+ adds r3, r2, r1
+ movs r1, 0
+ strb r0, [r3]
+ ldr r3, _080EBC88
+ adds r0, r2, r3
+ strb r1, [r0]
+ ldr r3, _080EBC8C
+ adds r0, r2, r3
+ strb r1, [r0]
+ ldr r3, _080EBC90
+ adds r0, r2, r3
+ str r1, [r0]
+ ldr r3, _080EBC94
+ adds r0, r2, r3
+ str r1, [r0]
+ movs r3, 0
+ ldr r0, _080EBC98
+ adds r7, r2, r0
+ mov r12, r2
+ movs r6, 0
+ ldr r5, _080EBC9C
+ movs r4, 0x9B
+_080EBC4C:
+ adds r0, r3, r7
+ strb r6, [r0]
+ lsls r1, r3, 2
+ adds r1, r2
+ adds r0, r1, r5
+ strh r4, [r0]
+ ldr r0, _080EBCA0
+ adds r1, r0
+ movs r0, 0x5B
+ strh r0, [r1]
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0x4
+ bls _080EBC4C
+ ldr r1, _080EBCA4
+ add r1, r12
+ movs r0, 0
+ strb r0, [r1]
+ bl sub_80EBCA8
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EBC7C: .4byte gKeyRepeatStartDelay
+_080EBC80: .4byte 0x02000000
+_080EBC84: .4byte 0x00008828
+_080EBC88: .4byte 0x00006ddc
+_080EBC8C: .4byte 0x00009344
+_080EBC90: .4byte 0x00008768
+_080EBC94: .4byte 0x0000ced0
+_080EBC98: .4byte 0x00008fff
+_080EBC9C: .4byte 0x00009040
+_080EBCA0: .4byte 0x00009042
+_080EBCA4: .4byte 0x00006e95
+ thumb_func_end sub_80EBC10
+
+ thumb_func_start sub_80EBCA8
+sub_80EBCA8: @ 80EBCA8
+ push {r4,lr}
+ ldr r4, _080EBCDC
+ ldr r0, _080EBCE0
+ adds r1, r4, r0
+ movs r0, 0x1
+ strb r0, [r1]
+ ldr r0, _080EBCE4
+ adds r1, r4, r0
+ movs r0, 0x2
+ strb r0, [r1]
+ ldr r0, _080EBCE8
+ adds r1, r4, r0
+ movs r0, 0x3
+ strb r0, [r1]
+ ldr r0, _080EBCEC
+ bl FlagGet
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0
+ beq _080EBCF4
+ ldr r0, _080EBCF0
+ adds r1, r4, r0
+ movs r0, 0x4
+ strb r0, [r1]
+ b _080EBCFA
+ .align 2, 0
+_080EBCDC: .4byte 0x02000000
+_080EBCE0: .4byte 0x00006db2
+_080EBCE4: .4byte 0x00006db3
+_080EBCE8: .4byte 0x00006db4
+_080EBCEC: .4byte 0x0000083b
+_080EBCF0: .4byte 0x00006db5
+_080EBCF4:
+ ldr r1, _080EBD0C
+ adds r0, r4, r1
+ strb r2, [r0]
+_080EBCFA:
+ ldr r0, _080EBD10
+ ldr r1, _080EBD14
+ adds r0, r1
+ movs r1, 0x5
+ strb r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EBD0C: .4byte 0x00006db5
+_080EBD10: .4byte 0x02000000
+_080EBD14: .4byte 0x00006db6
+ thumb_func_end sub_80EBCA8
+
+ thumb_func_start sub_80EBD18
+sub_80EBD18: @ 80EBD18
+ push {lr}
+ bl LoadOam
+ bl ProcessSpriteCopyRequests
+ bl TransferPlttBuffer
+ bl sub_80F1FF0
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80EBD18
+
+ thumb_func_start sub_80EBD30
+sub_80EBD30: @ 80EBD30
+ push {lr}
+ bl LoadOam
+ bl ProcessSpriteCopyRequests
+ bl TransferPlttBuffer
+ bl sub_80FB260
+ bl sub_80EFE7C
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80EBD30
+
+ thumb_func_start sub_80EBD4C
+sub_80EBD4C: @ 80EBD4C
+ push {lr}
+ bl LoadOam
+ bl ProcessSpriteCopyRequests
+ bl TransferPlttBuffer
+ bl sub_80F5BF0
+ bl sub_8089668
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80EBD4C
+
+ thumb_func_start sub_80EBD68
+sub_80EBD68: @ 80EBD68
+ push {lr}
+ bl LoadOam
+ bl ProcessSpriteCopyRequests
+ bl TransferPlttBuffer
+ bl sub_80F6F64
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80EBD68
+
+ thumb_func_start sub_80EBD80
+sub_80EBD80: @ 80EBD80
+ push {lr}
+ bl LoadOam
+ bl ProcessSpriteCopyRequests
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80EBD80
+
+ thumb_func_start sub_80EBD90
+sub_80EBD90: @ 80EBD90
+ push {lr}
+ ldr r0, _080EBDB8
+ movs r1, 0xC0
+ lsls r1, 2
+ adds r0, r1
+ ldr r0, [r0]
+ bl _call_via_r0
+ bl AnimateSprites
+ bl BuildOamBuffer
+ bl RunTasks
+ bl UpdatePaletteFade
+ bl sub_80F19FC
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EBDB8: .4byte 0x02000000
+ thumb_func_end sub_80EBD90
+
+ thumb_func_start sub_80EBDBC
+sub_80EBDBC: @ 80EBDBC
+ ldr r2, _080EBDD4
+ movs r3, 0xC0
+ lsls r3, 2
+ adds r1, r2, r3
+ str r0, [r1]
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r2, r0
+ movs r0, 0
+ strh r0, [r1]
+ bx lr
+ .align 2, 0
+_080EBDD4: .4byte 0x02000000
+ thumb_func_end sub_80EBDBC
+
+ thumb_func_start sub_80EBDD8
+sub_80EBDD8: @ 80EBDD8
+ push {lr}
+ sub sp, 0x4
+ ldr r1, _080EBDF8
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r0, r1, r2
+ ldrh r0, [r0]
+ adds r2, r1, 0
+ cmp r0, 0x11
+ bls _080EBDEE
+ b _080EC000
+_080EBDEE:
+ lsls r0, 2
+ ldr r1, _080EBDFC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080EBDF8: .4byte 0x02000000
+_080EBDFC: .4byte _080EBE00
+ .align 2, 0
+_080EBE00:
+ .4byte _080EBE48
+ .4byte _080EBE80
+ .4byte _080EBE92
+ .4byte _080EBEAC
+ .4byte _080EBEC0
+ .4byte _080EBED2
+ .4byte _080EBEF0
+ .4byte _080EBF04
+ .4byte _080EBF18
+ .4byte _080EBF2C
+ .4byte _080EBF48
+ .4byte _080EBF54
+ .4byte _080EBF74
+ .4byte _080EBF88
+ .4byte _080EBFA0
+ .4byte _080EBFB4
+ .4byte _080EBFD0
+ .4byte _080EBFE8
+_080EBE48:
+ movs r0, 0
+ bl SetVBlankCallback
+ movs r1, 0x80
+ lsls r1, 19
+ movs r0, 0
+ strh r0, [r1]
+ ldr r1, _080EBE74
+ ldr r3, _080EBE78
+ adds r0, r1, r3
+ ldrb r2, [r0]
+ subs r3, 0x2F
+ adds r0, r1, r3
+ strb r2, [r0]
+ ldr r0, _080EBE7C
+ adds r2, r1, r0
+ movs r0, 0x5
+ strb r0, [r2]
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r2
+ b _080EBFDC
+ .align 2, 0
+_080EBE74: .4byte 0x02000000
+_080EBE78: .4byte 0x00006ddc
+_080EBE7C: .4byte 0x00006dae
+_080EBE80:
+ bl sub_80F3FF0
+ ldr r1, _080EBEA8
+ movs r3, 0xC1
+ lsls r3, 2
+ adds r1, r3
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_080EBE92:
+ bl sub_80F4024
+ lsls r0, 24
+ cmp r0, 0
+ beq _080EBE9E
+ b _080EC000
+_080EBE9E:
+ ldr r1, _080EBEA8
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r0
+ b _080EBFDC
+ .align 2, 0
+_080EBEA8: .4byte 0x02000000
+_080EBEAC:
+ bl sub_80F2598
+ ldr r1, _080EBEBC
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r2
+ b _080EBFDC
+ .align 2, 0
+_080EBEBC: .4byte 0x02000000
+_080EBEC0:
+ bl sub_80EEE20
+ ldr r1, _080EBEEC
+ movs r3, 0xC1
+ lsls r3, 2
+ adds r1, r3
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_080EBED2:
+ bl sub_80EEE54
+ lsls r0, 24
+ cmp r0, 0
+ beq _080EBEDE
+ b _080EC000
+_080EBEDE:
+ bl sub_80EEE08
+ ldr r1, _080EBEEC
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r0
+ b _080EBFDC
+ .align 2, 0
+_080EBEEC: .4byte 0x02000000
+_080EBEF0:
+ movs r0, 0
+ bl sub_80EF248
+ ldr r1, _080EBF14
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r2
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_080EBF04:
+ movs r0, 0
+ bl sub_80EF284
+ lsls r0, 24
+ cmp r0, 0
+ beq _080EBF12
+ b _080EC000
+_080EBF12:
+ b _080EBFD4
+ .align 2, 0
+_080EBF14: .4byte 0x02000000
+_080EBF18:
+ movs r0, 0
+ bl sub_80F1B8C
+ ldr r1, _080EBF44
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r0
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_080EBF2C:
+ movs r0, 0
+ bl sub_80F1BC8
+ lsls r0, 24
+ cmp r0, 0
+ bne _080EC000
+ ldr r1, _080EBF44
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r2
+ b _080EBFDC
+ .align 2, 0
+_080EBF44: .4byte 0x02000000
+_080EBF48:
+ ldr r0, _080EBF50
+ bl SetVBlankCallback
+ b _080EBFD4
+ .align 2, 0
+_080EBF50: .4byte sub_80EBD18
+_080EBF54:
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ ldr r1, _080EBF70
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r0
+ b _080EBFDC
+ .align 2, 0
+_080EBF70: .4byte 0x02000000
+_080EBF74:
+ movs r0, 0
+ bl sub_80EED2C
+ ldr r1, _080EBF84
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r2
+ b _080EBFDC
+ .align 2, 0
+_080EBF84: .4byte 0x02000000
+_080EBF88:
+ ldr r0, _080EBF9C
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080EC000
+ movs r3, 0xC1
+ lsls r3, 2
+ adds r1, r2, r3
+ b _080EBFDC
+ .align 2, 0
+_080EBF9C: .4byte gPaletteFade
+_080EBFA0:
+ movs r0, 0
+ bl sub_80F2C80
+ ldr r1, _080EBFCC
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r0
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_080EBFB4:
+ movs r0, 0
+ bl sub_80F2CBC
+ lsls r0, 24
+ cmp r0, 0
+ bne _080EC000
+ ldr r1, _080EBFCC
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r2
+ b _080EBFDC
+ .align 2, 0
+_080EBFCC: .4byte 0x02000000
+_080EBFD0:
+ bl sub_80F1DF0
+_080EBFD4:
+ ldr r1, _080EBFE4
+ movs r3, 0xC1
+ lsls r3, 2
+ adds r1, r3
+_080EBFDC:
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ b _080EC000
+ .align 2, 0
+_080EBFE4: .4byte 0x02000000
+_080EBFE8:
+ bl sub_80F1E50
+ lsls r0, 24
+ cmp r0, 0
+ bne _080EC000
+ movs r0, 0
+ movs r1, 0
+ bl sub_80EF428
+ ldr r0, _080EC008
+ bl sub_80EBDBC
+_080EC000:
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EC008: .4byte sub_80EC268
+ thumb_func_end sub_80EBDD8
+
+ thumb_func_start sub_80EC00C
+sub_80EC00C: @ 80EC00C
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r1, _080EC02C
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r0, r1, r2
+ ldrh r0, [r0]
+ adds r4, r1, 0
+ cmp r0, 0xD
+ bls _080EC022
+ b _080EC1FA
+_080EC022:
+ lsls r0, 2
+ ldr r1, _080EC030
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080EC02C: .4byte 0x02000000
+_080EC030: .4byte _080EC034
+ .align 2, 0
+_080EC034:
+ .4byte _080EC06C
+ .4byte _080EC0C0
+ .4byte _080EC0D4
+ .4byte _080EC0F0
+ .4byte _080EC104
+ .4byte _080EC120
+ .4byte _080EC12A
+ .4byte _080EC154
+ .4byte _080EC168
+ .4byte _080EC180
+ .4byte _080EC194
+ .4byte _080EC1A8
+ .4byte _080EC1C4
+ .4byte _080EC1DC
+_080EC06C:
+ bl sub_80EEF78
+ lsls r0, 24
+ cmp r0, 0
+ beq _080EC078
+ b _080EC1FA
+_080EC078:
+ ldr r0, _080EC0AC
+ bl SetVBlankCallback
+ bl sub_80EED1C
+ ldr r4, _080EC0B0
+ ldr r1, _080EC0B4
+ adds r0, r4, r1
+ ldrb r1, [r0]
+ ldr r2, _080EC0B8
+ adds r0, r4, r2
+ strb r1, [r0]
+ ldr r0, _080EC0BC
+ adds r1, r4, r0
+ movs r0, 0x5
+ strb r0, [r1]
+ bl sub_80EEE08
+ movs r1, 0xC1
+ lsls r1, 2
+ adds r4, r1
+ ldrh r0, [r4]
+ adds r0, 0x1
+ strh r0, [r4]
+ b _080EC1FA
+ .align 2, 0
+_080EC0AC: .4byte sub_80EBD80
+_080EC0B0: .4byte 0x02000000
+_080EC0B4: .4byte 0x00006ddc
+_080EC0B8: .4byte 0x00006dad
+_080EC0BC: .4byte 0x00006dae
+_080EC0C0:
+ movs r0, 0
+ bl sub_80EF248
+ ldr r1, _080EC0EC
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r2
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_080EC0D4:
+ movs r0, 0
+ bl sub_80EF284
+ lsls r0, 24
+ cmp r0, 0
+ beq _080EC0E2
+ b _080EC1FA
+_080EC0E2:
+ ldr r1, _080EC0EC
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r0
+ b _080EC1D0
+ .align 2, 0
+_080EC0EC: .4byte 0x02000000
+_080EC0F0:
+ movs r0, 0
+ bl sub_80F1B8C
+ ldr r1, _080EC11C
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r2
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_080EC104:
+ movs r0, 0
+ bl sub_80F1BC8
+ lsls r0, 24
+ cmp r0, 0
+ beq _080EC112
+ b _080EC1FA
+_080EC112:
+ ldr r1, _080EC11C
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r0
+ b _080EC1D0
+ .align 2, 0
+_080EC11C: .4byte 0x02000000
+_080EC120:
+ bl sub_8055870
+ cmp r0, 0
+ bne _080EC1FA
+ b _080EC1C8
+_080EC12A:
+ movs r1, 0xC2
+ lsls r1, 2
+ adds r0, r4, r1
+ ldr r0, [r0]
+ movs r1, 0x1
+ negs r1, r1
+ movs r2, 0
+ str r2, [sp]
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ ldr r0, _080EC150
+ bl SetVBlankCallback
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r4, r2
+ b _080EC1D0
+ .align 2, 0
+_080EC150: .4byte sub_80EBD18
+_080EC154:
+ movs r0, 0
+ bl sub_80EED2C
+ ldr r1, _080EC164
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r0
+ b _080EC1D0
+ .align 2, 0
+_080EC164: .4byte 0x02000000
+_080EC168:
+ ldr r0, _080EC17C
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080EC1FA
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r4, r2
+ b _080EC1D0
+ .align 2, 0
+_080EC17C: .4byte gPaletteFade
+_080EC180:
+ bl sub_80F2598
+ ldr r1, _080EC190
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r0
+ b _080EC1D0
+ .align 2, 0
+_080EC190: .4byte 0x02000000
+_080EC194:
+ movs r0, 0
+ bl sub_80F2C80
+ ldr r1, _080EC1C0
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r2
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_080EC1A8:
+ movs r0, 0
+ bl sub_80F2CBC
+ lsls r0, 24
+ cmp r0, 0
+ bne _080EC1FA
+ ldr r1, _080EC1C0
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r0
+ b _080EC1D0
+ .align 2, 0
+_080EC1C0: .4byte 0x02000000
+_080EC1C4:
+ bl sub_80F1DF0
+_080EC1C8:
+ ldr r1, _080EC1D8
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r2
+_080EC1D0:
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ b _080EC1FA
+ .align 2, 0
+_080EC1D8: .4byte 0x02000000
+_080EC1DC:
+ bl sub_80F1E50
+ lsls r0, 24
+ cmp r0, 0
+ bne _080EC1FA
+ ldr r0, _080EC204
+ ldr r1, _080EC208
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0
+ bl sub_80EF428
+ ldr r0, _080EC20C
+ bl sub_80EBDBC
+_080EC1FA:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EC204: .4byte 0x02000000
+_080EC208: .4byte 0x00006dad
+_080EC20C: .4byte sub_80EC268
+ thumb_func_end sub_80EC00C
+
+ thumb_func_start sub_80EC210
+sub_80EC210: @ 80EC210
+ push {r4,r5,lr}
+ ldr r5, _080EC228
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r4, r5, r0
+ ldrh r0, [r4]
+ cmp r0, 0
+ beq _080EC22C
+ cmp r0, 0x1
+ beq _080EC24C
+ b _080EC25C
+ .align 2, 0
+_080EC228: .4byte 0x02000000
+_080EC22C:
+ movs r0, 0x1
+ bl sub_80F2D04
+ ldr r1, _080EC248
+ adds r0, r5, r1
+ ldrb r1, [r0]
+ movs r0, 0
+ movs r2, 0
+ bl sub_80EE9C0
+ ldrh r0, [r4]
+ adds r0, 0x1
+ strh r0, [r4]
+ b _080EC25C
+ .align 2, 0
+_080EC248: .4byte 0x00006ddc
+_080EC24C:
+ bl sub_80EEA0C
+ lsls r0, 24
+ cmp r0, 0
+ bne _080EC25C
+ ldr r0, _080EC264
+ bl sub_80EBDBC
+_080EC25C:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EC264: .4byte sub_80EC268
+ thumb_func_end sub_80EC210
+
+ thumb_func_start sub_80EC268
+sub_80EC268: @ 80EC268
+ push {r4-r6,lr}
+ ldr r4, _080EC290
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r6, r4, r0
+ ldrh r0, [r6]
+ cmp r0, 0x3
+ bne _080EC27A
+ b _080EC3BE
+_080EC27A:
+ cmp r0, 0x3
+ bgt _080EC294
+ cmp r0, 0x1
+ bne _080EC284
+ b _080EC3A2
+_080EC284:
+ cmp r0, 0x1
+ ble _080EC28A
+ b _080EC3B4
+_080EC28A:
+ cmp r0, 0
+ beq _080EC2AE
+ b _080EC492
+ .align 2, 0
+_080EC290: .4byte 0x02000000
+_080EC294:
+ cmp r0, 0x6
+ bne _080EC29A
+ b _080EC414
+_080EC29A:
+ cmp r0, 0x6
+ bgt _080EC2A6
+ cmp r0, 0x4
+ bne _080EC2A4
+ b _080EC3DC
+_080EC2A4:
+ b _080EC492
+_080EC2A6:
+ cmp r0, 0xFF
+ bne _080EC2AC
+ b _080EC44C
+_080EC2AC:
+ b _080EC492
+_080EC2AE:
+ bl sub_80EEC10
+ lsls r0, 24
+ cmp r0, 0
+ beq _080EC2D4
+ movs r0, 0x5
+ bl PlaySE
+ ldr r1, _080EC2D0
+ adds r0, r4, r1
+ ldrb r1, [r0]
+ movs r0, 0
+ bl sub_80EF428
+ bl sub_80EED9C
+ b _080EC492
+ .align 2, 0
+_080EC2D0: .4byte 0x00006dad
+_080EC2D4:
+ ldr r0, _080EC310
+ ldrh r1, [r0, 0x2E]
+ movs r2, 0x1
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _080EC394
+ ldr r2, _080EC314
+ adds r0, r4, r2
+ ldrb r1, [r0]
+ adds r2, 0x2F
+ adds r0, r4, r2
+ strb r1, [r0]
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ subs r2, 0x2A
+ adds r1, r4, r2
+ adds r0, r1
+ ldrb r0, [r0]
+ subs r0, 0x1
+ cmp r0, 0x4
+ bls _080EC304
+ b _080EC492
+_080EC304:
+ lsls r0, 2
+ ldr r1, _080EC318
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080EC310: .4byte gMain
+_080EC314: .4byte 0x00006dad
+_080EC318: .4byte _080EC31C
+ .align 2, 0
+_080EC31C:
+ .4byte _080EC330
+ .4byte _080EC344
+ .4byte _080EC380
+ .4byte _080EC36C
+ .4byte _080EC358
+_080EC330:
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, _080EC340
+ bl sub_80EBDBC
+ b _080EC492
+ .align 2, 0
+_080EC340: .4byte sub_80EC4A0
+_080EC344:
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, _080EC354
+ bl sub_80EBDBC
+ b _080EC492
+ .align 2, 0
+_080EC354: .4byte sub_80EC81C
+_080EC358:
+ ldr r0, _080EC368
+ movs r1, 0xC1
+ lsls r1, 2
+ adds r0, r1
+ movs r1, 0x1
+ strh r1, [r0]
+ b _080EC492
+ .align 2, 0
+_080EC368: .4byte 0x02000000
+_080EC36C:
+ ldr r0, _080EC37C
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r0, r2
+ movs r1, 0x2
+ strh r1, [r0]
+ b _080EC492
+ .align 2, 0
+_080EC37C: .4byte 0x02000000
+_080EC380:
+ ldr r0, _080EC390
+ movs r1, 0xC1
+ lsls r1, 2
+ adds r0, r1
+ movs r1, 0x6
+ strh r1, [r0]
+ b _080EC492
+ .align 2, 0
+_080EC390: .4byte 0x02000000
+_080EC394:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ bne _080EC39E
+ b _080EC492
+_080EC39E:
+ strh r2, [r6]
+ b _080EC492
+_080EC3A2:
+ bl sub_80F208C
+ ldr r0, _080EC3B0
+ bl sub_80EBDBC
+ b _080EC492
+ .align 2, 0
+_080EC3B0: .4byte sub_80EE96C
+_080EC3B4:
+ bl sub_80F6208
+ ldrh r0, [r6]
+ adds r0, 0x1
+ strh r0, [r6]
+_080EC3BE:
+ bl sub_80F6250
+ lsls r0, 24
+ cmp r0, 0
+ bne _080EC492
+ ldr r1, _080EC3D8
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r2
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ b _080EC492
+ .align 2, 0
+_080EC3D8: .4byte 0x02000000
+_080EC3DC:
+ bl sub_8055870
+ cmp r0, 0
+ bne _080EC492
+ ldr r1, _080EC400
+ adds r0, r4, r1
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0
+ beq _080EC408
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, _080EC404
+ bl sub_80EBDBC
+ b _080EC492
+ .align 2, 0
+_080EC400: .4byte 0x00008fe8
+_080EC404: .4byte sub_80EDB88
+_080EC408:
+ movs r0, 0x20
+ bl PlaySE
+ movs r0, 0
+ movs r1, 0x5
+ b _080EC442
+_080EC414:
+ bl sub_80F6C20
+ ldr r2, _080EC430
+ adds r0, r4, r2
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _080EC438
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, _080EC434
+ bl sub_80EBDBC
+ b _080EC492
+ .align 2, 0
+_080EC430: .4byte 0x0000d158
+_080EC434: .4byte sub_80EE3D8
+_080EC438:
+ movs r0, 0x20
+ bl PlaySE
+ movs r0, 0
+ movs r1, 0x6
+_080EC442:
+ bl sub_80EF428
+ movs r0, 0xFF
+ strh r0, [r6]
+ b _080EC492
+_080EC44C:
+ bl sub_80EEC10
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0
+ beq _080EC478
+ movs r0, 0x5
+ bl PlaySE
+ ldr r1, _080EC474
+ adds r0, r4, r1
+ ldrb r1, [r0]
+ movs r0, 0
+ bl sub_80EF428
+ movs r0, 0
+ strh r0, [r6]
+ bl sub_80EED9C
+ b _080EC492
+ .align 2, 0
+_080EC474: .4byte 0x00006dad
+_080EC478:
+ ldr r0, _080EC498
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0
+ beq _080EC492
+ ldr r2, _080EC49C
+ adds r0, r4, r2
+ ldrb r1, [r0]
+ movs r0, 0
+ bl sub_80EF428
+ strh r5, [r6]
+_080EC492:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EC498: .4byte gMain
+_080EC49C: .4byte 0x00006dad
+ thumb_func_end sub_80EC268
+
+ thumb_func_start sub_80EC4A0
+sub_80EC4A0: @ 80EC4A0
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r1, _080EC4C0
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r0, r1, r2
+ ldrh r0, [r0]
+ adds r4, r1, 0
+ cmp r0, 0xE
+ bls _080EC4B6
+ b _080EC66A
+_080EC4B6:
+ lsls r0, 2
+ ldr r1, _080EC4C4
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080EC4C0: .4byte 0x02000000
+_080EC4C4: .4byte _080EC4C8
+ .align 2, 0
+_080EC4C8:
+ .4byte _080EC504
+ .4byte _080EC510
+ .4byte _080EC544
+ .4byte _080EC578
+ .4byte _080EC594
+ .4byte _080EC5A8
+ .4byte _080EC5AE
+ .4byte _080EC5C0
+ .4byte _080EC5D0
+ .4byte _080EC5E4
+ .4byte _080EC5F8
+ .4byte _080EC614
+ .4byte _080EC61E
+ .4byte _080EC63E
+ .4byte _080EC658
+_080EC504:
+ bl sub_80F1E84
+ movs r0, 0
+ bl sub_80F2D04
+ b _080EC644
+_080EC510:
+ bl sub_80F1F10
+ lsls r0, 24
+ cmp r0, 0
+ beq _080EC51C
+ b _080EC66A
+_080EC51C:
+ ldr r0, _080EC53C
+ ldrb r1, [r0, 0x15]
+ movs r0, 0x8
+ ands r0, r1
+ movs r1, 0x8
+ cmp r0, 0
+ beq _080EC52C
+ movs r1, 0x7
+_080EC52C:
+ adds r0, r1, 0
+ bl sub_80EEFBC
+ ldr r1, _080EC540
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r2
+ b _080EC64C
+ .align 2, 0
+_080EC53C: .4byte gSaveBlock2
+_080EC540: .4byte 0x02000000
+_080EC544:
+ bl sub_80EEF34
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0
+ beq _080EC552
+ b _080EC66A
+_080EC552:
+ ldr r4, _080EC574
+ movs r1, 0xC2
+ lsls r1, 2
+ adds r0, r4, r1
+ ldr r0, [r0]
+ movs r1, 0x1
+ negs r1, r1
+ str r2, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r4, r2
+ b _080EC64C
+ .align 2, 0
+_080EC574: .4byte 0x02000000
+_080EC578:
+ ldr r0, _080EC590
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080EC66A
+ movs r0, 0
+ bl SetVBlankCallback
+ bl sub_80EED0C
+ b _080EC644
+ .align 2, 0
+_080EC590: .4byte gPaletteFade
+_080EC594:
+ bl sub_80F2620
+ ldr r1, _080EC5A4
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r2
+ b _080EC64C
+ .align 2, 0
+_080EC5A4: .4byte 0x02000000
+_080EC5A8:
+ bl sub_80EF814
+ b _080EC644
+_080EC5AE:
+ bl sub_80EF840
+ ldr r1, _080EC5CC
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r2
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_080EC5C0:
+ bl sub_80EF874
+ lsls r0, 24
+ cmp r0, 0
+ bne _080EC66A
+ b _080EC644
+ .align 2, 0
+_080EC5CC: .4byte 0x02000000
+_080EC5D0:
+ movs r0, 0x4
+ bl sub_80F2C80
+ ldr r1, _080EC5F4
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r2
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_080EC5E4:
+ movs r0, 0x4
+ bl sub_80F2CBC
+ lsls r0, 24
+ cmp r0, 0
+ bne _080EC66A
+ b _080EC644
+ .align 2, 0
+_080EC5F4: .4byte 0x02000000
+_080EC5F8:
+ bl sub_80F2DD8
+ ldr r0, _080EC60C
+ bl SetVBlankCallback
+ ldr r1, _080EC610
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r2
+ b _080EC64C
+ .align 2, 0
+_080EC60C: .4byte sub_80EBD30
+_080EC610: .4byte 0x02000000
+_080EC614:
+ bl sub_8055870
+ cmp r0, 0
+ bne _080EC66A
+ b _080EC644
+_080EC61E:
+ movs r1, 0xC2
+ lsls r1, 2
+ adds r0, r4, r1
+ ldr r0, [r0]
+ movs r1, 0x1
+ negs r1, r1
+ movs r2, 0
+ str r2, [sp]
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r4, r2
+ b _080EC64C
+_080EC63E:
+ movs r0, 0x1
+ bl sub_80EED2C
+_080EC644:
+ ldr r1, _080EC654
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r0
+_080EC64C:
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ b _080EC66A
+ .align 2, 0
+_080EC654: .4byte 0x02000000
+_080EC658:
+ ldr r0, _080EC674
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080EC66A
+ ldr r0, _080EC678
+ bl sub_80EBDBC
+_080EC66A:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EC674: .4byte gPaletteFade
+_080EC678: .4byte sub_80EC67C
+ thumb_func_end sub_80EC4A0
+
+ thumb_func_start sub_80EC67C
+sub_80EC67C: @ 80EC67C
+ push {r4,r5,lr}
+ sub sp, 0x4
+ ldr r1, _080EC69C
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r0, r1, r2
+ ldrh r0, [r0]
+ adds r4, r1, 0
+ cmp r0, 0x5
+ bls _080EC692
+ b _080EC800
+_080EC692:
+ lsls r0, 2
+ ldr r1, _080EC6A0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080EC69C: .4byte 0x02000000
+_080EC6A0: .4byte _080EC6A4
+ .align 2, 0
+_080EC6A4:
+ .4byte _080EC6BC
+ .4byte _080EC718
+ .4byte _080EC746
+ .4byte _080EC77C
+ .4byte _080EC7A0
+ .4byte _080EC7C4
+_080EC6BC:
+ bl sub_80FAB60
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x3
+ beq _080EC6E2
+ cmp r0, 0x3
+ bgt _080EC6D2
+ cmp r0, 0x1
+ beq _080EC6DC
+ b _080EC800
+_080EC6D2:
+ cmp r0, 0x4
+ beq _080EC6E8
+ cmp r0, 0x5
+ beq _080EC700
+ b _080EC800
+_080EC6DC:
+ bl sub_80EED9C
+ b _080EC800
+_080EC6E2:
+ bl sub_80EF9F8
+ b _080EC800
+_080EC6E8:
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, _080EC6FC
+ movs r1, 0xC1
+ lsls r1, 2
+ adds r0, r1
+ movs r1, 0x1
+ strh r1, [r0]
+ b _080EC800
+ .align 2, 0
+_080EC6FC: .4byte 0x02000000
+_080EC700:
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, _080EC714
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r0, r2
+ movs r1, 0x4
+ strh r1, [r0]
+ b _080EC800
+ .align 2, 0
+_080EC714: .4byte 0x02000000
+_080EC718:
+ ldr r1, _080EC730
+ adds r0, r4, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080EC734
+ bl sub_80FAEC4
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r4, r2
+ b _080EC7BC
+ .align 2, 0
+_080EC730: .4byte 0x00006e90
+_080EC734:
+ movs r0, 0x1
+ bl sub_80EFBDC
+ lsls r0, 24
+ cmp r0, 0
+ bne _080EC800
+ bl sub_80FAEC4
+ b _080EC7B6
+_080EC746:
+ bl sub_80FAFC0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080EC800
+ ldr r5, _080EC76C
+ ldr r1, _080EC770
+ adds r0, r5, r1
+ ldrb r4, [r0]
+ cmp r4, 0
+ bne _080EC774
+ bl sub_80EFBB0
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r0, r5, r2
+ strh r4, [r0]
+ b _080EC800
+ .align 2, 0
+_080EC76C: .4byte 0x02000000
+_080EC770: .4byte 0x00006e90
+_080EC774:
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r5, r0
+ b _080EC7BC
+_080EC77C:
+ movs r0, 0
+ bl sub_80EFBDC
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ bne _080EC800
+ bl sub_80EFBB0
+ ldr r0, _080EC79C
+ movs r1, 0xC1
+ lsls r1, 2
+ adds r0, r1
+ strh r4, [r0]
+ b _080EC800
+ .align 2, 0
+_080EC79C: .4byte 0x02000000
+_080EC7A0:
+ movs r2, 0xC2
+ lsls r2, 2
+ adds r0, r4, r2
+ ldr r0, [r0]
+ movs r1, 0x1
+ negs r1, r1
+ movs r2, 0
+ str r2, [sp]
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+_080EC7B6:
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r4, r0
+_080EC7BC:
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ b _080EC800
+_080EC7C4:
+ ldr r0, _080EC808
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080EC800
+ bl sub_80F2DF4
+ movs r0, 0x4
+ bl sub_80F2D04
+ ldr r3, _080EC80C
+ movs r2, 0
+ ldr r0, _080EC810
+ ldr r1, _080EC814
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _080EC7EC
+ movs r2, 0x1
+_080EC7EC:
+ lsls r2, 3
+ ldrb r1, [r3, 0x15]
+ movs r0, 0x9
+ negs r0, r0
+ ands r0, r1
+ orrs r0, r2
+ strb r0, [r3, 0x15]
+ ldr r0, _080EC818
+ bl sub_80EBDBC
+_080EC800:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EC808: .4byte gPaletteFade
+_080EC80C: .4byte gSaveBlock2
+_080EC810: .4byte 0x02000000
+_080EC814: .4byte 0x00006e90
+_080EC818: .4byte sub_80EC00C
+ thumb_func_end sub_80EC67C
+
+ thumb_func_start sub_80EC81C
+sub_80EC81C: @ 80EC81C
+ push {r4,lr}
+ ldr r0, _080EC834
+ movs r1, 0xC1
+ lsls r1, 2
+ adds r4, r0, r1
+ ldrh r0, [r4]
+ cmp r0, 0
+ beq _080EC838
+ cmp r0, 0x1
+ beq _080EC850
+ b _080EC860
+ .align 2, 0
+_080EC834: .4byte 0x02000000
+_080EC838:
+ movs r0, 0
+ bl sub_80F2D04
+ movs r0, 0x1
+ movs r1, 0
+ movs r2, 0x1
+ bl sub_80EE9C0
+ ldrh r0, [r4]
+ adds r0, 0x1
+ strh r0, [r4]
+ b _080EC860
+_080EC850:
+ bl sub_80EEA0C
+ lsls r0, 24
+ cmp r0, 0
+ bne _080EC860
+ ldr r0, _080EC868
+ bl sub_80EBDBC
+_080EC860:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EC868: .4byte sub_80EC86C
+ thumb_func_end sub_80EC81C
+
+ thumb_func_start sub_80EC86C
+sub_80EC86C: @ 80EC86C
+ push {r4-r6,lr}
+ ldr r4, _080EC884
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r5, r4, r0
+ ldrh r0, [r5]
+ cmp r0, 0
+ beq _080EC888
+ cmp r0, 0x1
+ beq _080EC944
+ b _080EC954
+ .align 2, 0
+_080EC884: .4byte 0x02000000
+_080EC888:
+ bl sub_80EEC90
+ lsls r0, 24
+ cmp r0, 0
+ beq _080EC8B0
+ movs r0, 0x5
+ bl PlaySE
+ ldr r1, _080EC8AC
+ adds r0, r4, r1
+ ldrb r1, [r0]
+ movs r0, 0x1
+ bl sub_80EF428
+ bl sub_80EED9C
+ b _080EC954
+ .align 2, 0
+_080EC8AC: .4byte 0x00006dad
+_080EC8B0:
+ ldr r0, _080EC8E4
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080EC918
+ movs r0, 0x5
+ bl PlaySE
+ ldr r2, _080EC8E8
+ adds r0, r4, r2
+ ldrb r1, [r0]
+ adds r2, 0x43
+ adds r0, r4, r2
+ strb r1, [r0]
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0x1
+ beq _080EC900
+ cmp r0, 0x1
+ bgt _080EC8EC
+ cmp r0, 0
+ beq _080EC8F2
+ b _080EC954
+ .align 2, 0
+_080EC8E4: .4byte gMain
+_080EC8E8: .4byte 0x00006dad
+_080EC8EC:
+ cmp r0, 0x2
+ beq _080EC90C
+ b _080EC954
+_080EC8F2:
+ ldr r0, _080EC8FC
+ bl sub_80EBDBC
+ b _080EC954
+ .align 2, 0
+_080EC8FC: .4byte sub_80ED620
+_080EC900:
+ ldr r0, _080EC908
+ bl sub_80EBDBC
+ b _080EC954
+ .align 2, 0
+_080EC908: .4byte sub_80EC960
+_080EC90C:
+ ldr r0, _080EC914
+ bl sub_80EBDBC
+ b _080EC954
+ .align 2, 0
+_080EC914: .4byte sub_80EC210
+_080EC918:
+ movs r6, 0x2
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080EC954
+ movs r0, 0x5
+ bl PlaySE
+ ldr r1, _080EC93C
+ adds r0, r4, r1
+ strb r6, [r0]
+ ldr r2, _080EC940
+ adds r0, r4, r2
+ strb r6, [r0]
+ ldrh r0, [r5]
+ adds r0, 0x1
+ strh r0, [r5]
+ b _080EC954
+ .align 2, 0
+_080EC93C: .4byte 0x00006df0
+_080EC940: .4byte 0x00006dad
+_080EC944:
+ bl sub_80F1E6C
+ lsls r0, 24
+ cmp r0, 0
+ bne _080EC954
+ ldr r0, _080EC95C
+ bl sub_80EBDBC
+_080EC954:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EC95C: .4byte sub_80EC210
+ thumb_func_end sub_80EC86C
+
+ thumb_func_start sub_80EC960
+sub_80EC960: @ 80EC960
+ push {r4,lr}
+ ldr r0, _080EC978
+ movs r1, 0xC1
+ lsls r1, 2
+ adds r4, r0, r1
+ ldrh r0, [r4]
+ cmp r0, 0
+ beq _080EC97C
+ cmp r0, 0x1
+ beq _080EC98E
+ b _080EC99E
+ .align 2, 0
+_080EC978: .4byte 0x02000000
+_080EC97C:
+ movs r0, 0x2
+ movs r1, 0
+ movs r2, 0x5
+ bl sub_80EE9C0
+ ldrh r0, [r4]
+ adds r0, 0x1
+ strh r0, [r4]
+ b _080EC99E
+_080EC98E:
+ bl sub_80EEA0C
+ lsls r0, 24
+ cmp r0, 0
+ bne _080EC99E
+ ldr r0, _080EC9A4
+ bl sub_80EBDBC
+_080EC99E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EC9A4: .4byte sub_80ECC08
+ thumb_func_end sub_80EC960
+
+ thumb_func_start sub_80EC9A8
+sub_80EC9A8: @ 80EC9A8
+ push {r4,r5,lr}
+ ldr r5, _080EC9C0
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r4, r5, r0
+ ldrh r0, [r4]
+ cmp r0, 0
+ beq _080EC9C4
+ cmp r0, 0x1
+ beq _080EC9E4
+ b _080ECA00
+ .align 2, 0
+_080EC9C0: .4byte 0x02000000
+_080EC9C4:
+ movs r0, 0x5
+ bl sub_80F2D04
+ ldr r1, _080EC9E0
+ adds r0, r5, r1
+ ldrb r1, [r0]
+ movs r0, 0x1
+ movs r2, 0xC
+ bl sub_80EE9C0
+ ldrh r0, [r4]
+ adds r0, 0x1
+ strh r0, [r4]
+ b _080ECA00
+ .align 2, 0
+_080EC9E0: .4byte 0x00006df0
+_080EC9E4:
+ bl sub_80EEA0C
+ lsls r0, 24
+ cmp r0, 0
+ bne _080ECA00
+ ldr r0, _080ECA08
+ bl sub_80EBDBC
+ ldr r1, _080ECA0C
+ adds r0, r5, r1
+ ldrb r1, [r0]
+ movs r0, 0x1
+ bl sub_80EF428
+_080ECA00:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080ECA08: .4byte sub_80EC86C
+_080ECA0C: .4byte 0x00006dad
+ thumb_func_end sub_80EC9A8
+
+ thumb_func_start sub_80ECA10
+sub_80ECA10: @ 80ECA10
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r1, _080ECA30
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r0, r1, r2
+ ldrh r0, [r0]
+ adds r4, r1, 0
+ cmp r0, 0xD
+ bls _080ECA26
+ b _080ECBF2
+_080ECA26:
+ lsls r0, 2
+ ldr r1, _080ECA34
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080ECA30: .4byte 0x02000000
+_080ECA34: .4byte _080ECA38
+ .align 2, 0
+_080ECA38:
+ .4byte _080ECA70
+ .4byte _080ECAC4
+ .4byte _080ECAD8
+ .4byte _080ECAF4
+ .4byte _080ECB08
+ .4byte _080ECB24
+ .4byte _080ECB2E
+ .4byte _080ECB58
+ .4byte _080ECB6C
+ .4byte _080ECB72
+ .4byte _080ECB8C
+ .4byte _080ECBA0
+ .4byte _080ECBBC
+ .4byte _080ECBD4
+_080ECA70:
+ bl sub_80EEF78
+ lsls r0, 24
+ cmp r0, 0
+ beq _080ECA7C
+ b _080ECBF2
+_080ECA7C:
+ ldr r0, _080ECAB0
+ bl SetVBlankCallback
+ bl sub_80EED1C
+ ldr r4, _080ECAB4
+ ldr r1, _080ECAB8
+ adds r0, r4, r1
+ ldrb r1, [r0]
+ ldr r2, _080ECABC
+ adds r0, r4, r2
+ strb r1, [r0]
+ ldr r0, _080ECAC0
+ adds r1, r4, r0
+ movs r0, 0x3
+ strb r0, [r1]
+ bl sub_80EEE08
+ movs r1, 0xC1
+ lsls r1, 2
+ adds r4, r1
+ ldrh r0, [r4]
+ adds r0, 0x1
+ strh r0, [r4]
+ b _080ECBF2
+ .align 2, 0
+_080ECAB0: .4byte sub_80EBD80
+_080ECAB4: .4byte 0x02000000
+_080ECAB8: .4byte 0x00006df0
+_080ECABC: .4byte 0x00006dad
+_080ECAC0: .4byte 0x00006dae
+_080ECAC4:
+ movs r0, 0x1
+ bl sub_80EF248
+ ldr r1, _080ECAF0
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r2
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_080ECAD8:
+ movs r0, 0x1
+ bl sub_80EF284
+ lsls r0, 24
+ cmp r0, 0
+ beq _080ECAE6
+ b _080ECBF2
+_080ECAE6:
+ ldr r1, _080ECAF0
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r0
+ b _080ECBC8
+ .align 2, 0
+_080ECAF0: .4byte 0x02000000
+_080ECAF4:
+ movs r0, 0x1
+ bl sub_80F1B8C
+ ldr r1, _080ECB20
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r2
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_080ECB08:
+ movs r0, 0x1
+ bl sub_80F1BC8
+ lsls r0, 24
+ cmp r0, 0
+ bne _080ECBF2
+ ldr r1, _080ECB20
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r0
+ b _080ECBC8
+ .align 2, 0
+_080ECB20: .4byte 0x02000000
+_080ECB24:
+ bl sub_8055870
+ cmp r0, 0
+ bne _080ECBF2
+ b _080ECBC0
+_080ECB2E:
+ movs r1, 0xC2
+ lsls r1, 2
+ adds r0, r4, r1
+ ldr r0, [r0]
+ movs r1, 0x1
+ negs r1, r1
+ movs r2, 0
+ str r2, [sp]
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ ldr r0, _080ECB54
+ bl SetVBlankCallback
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r4, r2
+ b _080ECBC8
+ .align 2, 0
+_080ECB54: .4byte sub_80EBD18
+_080ECB58:
+ movs r0, 0
+ bl sub_80EED2C
+ ldr r1, _080ECB68
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r0
+ b _080ECBC8
+ .align 2, 0
+_080ECB68: .4byte 0x02000000
+_080ECB6C:
+ bl sub_80F2598
+ b _080ECBC0
+_080ECB72:
+ ldr r0, _080ECB88
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080ECBF2
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r4, r0
+ b _080ECBC8
+ .align 2, 0
+_080ECB88: .4byte gPaletteFade
+_080ECB8C:
+ movs r0, 0x1
+ bl sub_80F2C80
+ ldr r1, _080ECBB8
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r2
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_080ECBA0:
+ movs r0, 0x1
+ bl sub_80F2CBC
+ lsls r0, 24
+ cmp r0, 0
+ bne _080ECBF2
+ ldr r1, _080ECBB8
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r0
+ b _080ECBC8
+ .align 2, 0
+_080ECBB8: .4byte 0x02000000
+_080ECBBC:
+ bl sub_80F1DF0
+_080ECBC0:
+ ldr r1, _080ECBD0
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r2
+_080ECBC8:
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ b _080ECBF2
+ .align 2, 0
+_080ECBD0: .4byte 0x02000000
+_080ECBD4:
+ bl sub_80F1E50
+ lsls r0, 24
+ cmp r0, 0
+ bne _080ECBF2
+ ldr r0, _080ECBFC
+ ldr r1, _080ECC00
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x1
+ bl sub_80EF428
+ ldr r0, _080ECC04
+ bl sub_80EBDBC
+_080ECBF2:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080ECBFC: .4byte 0x02000000
+_080ECC00: .4byte 0x00006dad
+_080ECC04: .4byte sub_80EC86C
+ thumb_func_end sub_80ECA10
+
+ thumb_func_start sub_80ECC08
+sub_80ECC08: @ 80ECC08
+ push {r4,r5,lr}
+ ldr r4, _080ECC20
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r5, r4, r0
+ ldrh r0, [r5]
+ cmp r0, 0
+ beq _080ECC24
+ cmp r0, 0x1
+ bne _080ECC1E
+ b _080ECD64
+_080ECC1E:
+ b _080ECD74
+ .align 2, 0
+_080ECC20: .4byte 0x02000000
+_080ECC24:
+ bl sub_80EEC90
+ lsls r0, 24
+ cmp r0, 0
+ beq _080ECC4C
+ movs r0, 0x5
+ bl PlaySE
+ ldr r1, _080ECC48
+ adds r0, r4, r1
+ ldrb r1, [r0]
+ movs r0, 0x2
+ bl sub_80EF428
+ bl sub_80EED9C
+ b _080ECD74
+ .align 2, 0
+_080ECC48: .4byte 0x00006dad
+_080ECC4C:
+ ldr r0, _080ECC78
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _080ECC5A
+ b _080ECD40
+_080ECC5A:
+ movs r0, 0x5
+ bl PlaySE
+ ldr r2, _080ECC7C
+ adds r0, r4, r2
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0x5
+ bhi _080ECD0C
+ lsls r0, 2
+ ldr r1, _080ECC80
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080ECC78: .4byte gMain
+_080ECC7C: .4byte 0x00006dad
+_080ECC80: .4byte _080ECC84
+ .align 2, 0
+_080ECC84:
+ .4byte _080ECC9C
+ .4byte _080ECCB0
+ .4byte _080ECCC4
+ .4byte _080ECCD8
+ .4byte _080ECCEC
+ .4byte _080ECD00
+_080ECC9C:
+ ldr r0, _080ECCA8
+ ldr r3, _080ECCAC
+ adds r0, r3
+ movs r1, 0x16
+ strb r1, [r0]
+ b _080ECD0C
+ .align 2, 0
+_080ECCA8: .4byte 0x02000000
+_080ECCAC: .4byte 0x000087d8
+_080ECCB0:
+ ldr r0, _080ECCBC
+ ldr r1, _080ECCC0
+ adds r0, r1
+ movs r1, 0x17
+ strb r1, [r0]
+ b _080ECD0C
+ .align 2, 0
+_080ECCBC: .4byte 0x02000000
+_080ECCC0: .4byte 0x000087d8
+_080ECCC4:
+ ldr r0, _080ECCD0
+ ldr r2, _080ECCD4
+ adds r0, r2
+ movs r1, 0x18
+ strb r1, [r0]
+ b _080ECD0C
+ .align 2, 0
+_080ECCD0: .4byte 0x02000000
+_080ECCD4: .4byte 0x000087d8
+_080ECCD8:
+ ldr r0, _080ECCE4
+ ldr r3, _080ECCE8
+ adds r0, r3
+ movs r1, 0x21
+ strb r1, [r0]
+ b _080ECD0C
+ .align 2, 0
+_080ECCE4: .4byte 0x02000000
+_080ECCE8: .4byte 0x000087d8
+_080ECCEC:
+ ldr r0, _080ECCF8
+ ldr r1, _080ECCFC
+ adds r0, r1
+ movs r1, 0x2F
+ strb r1, [r0]
+ b _080ECD0C
+ .align 2, 0
+_080ECCF8: .4byte 0x02000000
+_080ECCFC: .4byte 0x000087d8
+_080ECD00:
+ ldr r0, _080ECD08
+ bl sub_80EBDBC
+ b _080ECD74
+ .align 2, 0
+_080ECD08: .4byte sub_80EC9A8
+_080ECD0C:
+ ldr r1, _080ECD2C
+ ldr r2, _080ECD30
+ adds r0, r1, r2
+ ldrb r2, [r0]
+ ldr r3, _080ECD34
+ adds r0, r1, r3
+ strb r2, [r0]
+ ldr r0, _080ECD38
+ adds r1, r0
+ movs r0, 0x1
+ strb r0, [r1]
+ ldr r0, _080ECD3C
+ bl sub_80EBDBC
+ b _080ECD74
+ .align 2, 0
+_080ECD2C: .4byte 0x02000000
+_080ECD30: .4byte 0x00006dad
+_080ECD34: .4byte 0x00006dfc
+_080ECD38: .4byte 0x000076aa
+_080ECD3C: .4byte sub_80ED01C
+_080ECD40:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080ECD74
+ movs r0, 0x5
+ bl PlaySE
+ ldr r2, _080ECD60
+ adds r1, r4, r2
+ movs r0, 0x5
+ strb r0, [r1]
+ ldrh r0, [r5]
+ adds r0, 0x1
+ strh r0, [r5]
+ b _080ECD74
+ .align 2, 0
+_080ECD60: .4byte 0x00006dad
+_080ECD64:
+ bl sub_80F1E6C
+ lsls r0, 24
+ cmp r0, 0
+ bne _080ECD74
+ ldr r0, _080ECD7C
+ bl sub_80EBDBC
+_080ECD74:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080ECD7C: .4byte sub_80EC9A8
+ thumb_func_end sub_80ECC08
+
+ thumb_func_start sub_80ECD80
+sub_80ECD80: @ 80ECD80
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r1, _080ECDA0
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r0, r1, r2
+ ldrh r0, [r0]
+ adds r4, r1, 0
+ cmp r0, 0x14
+ bls _080ECD96
+ b _080ED006
+_080ECD96:
+ lsls r0, 2
+ ldr r1, _080ECDA4
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080ECDA0: .4byte 0x02000000
+_080ECDA4: .4byte _080ECDA8
+ .align 2, 0
+_080ECDA8:
+ .4byte _080ECDFC
+ .4byte _080ECE1A
+ .4byte _080ECE34
+ .4byte _080ECE4C
+ .4byte _080ECE64
+ .4byte _080ECE78
+ .4byte _080ECE80
+ .4byte _080ECEAC
+ .4byte _080ECEC0
+ .4byte _080ECED4
+ .4byte _080ECEE8
+ .4byte _080ECF04
+ .4byte _080ECF10
+ .4byte _080ECF3C
+ .4byte _080ECF44
+ .4byte _080ECF58
+ .4byte _080ECF70
+ .4byte _080ECF84
+ .4byte _080ECFB0
+ .4byte _080ECFC4
+ .4byte _080ECFE8
+_080ECDFC:
+ movs r3, 0xC2
+ lsls r3, 2
+ adds r0, r4, r3
+ ldr r0, [r0]
+ movs r1, 0x1
+ negs r1, r1
+ movs r2, 0
+ str r2, [sp]
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r4, r0
+ b _080ECFDC
+_080ECE1A:
+ ldr r0, _080ECE30
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _080ECE28
+ b _080ED006
+_080ECE28:
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r4, r2
+ b _080ECFDC
+ .align 2, 0
+_080ECE30: .4byte gPaletteFade
+_080ECE34:
+ bl sub_80EEF78
+ lsls r0, 24
+ cmp r0, 0
+ beq _080ECE40
+ b _080ED006
+_080ECE40:
+ ldr r0, _080ECE48
+ bl SetVBlankCallback
+ b _080ECFD4
+ .align 2, 0
+_080ECE48: .4byte sub_80EBD80
+_080ECE4C:
+ bl sub_80EED1C
+ bl sub_80F3130
+ ldr r1, _080ECE60
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r0
+ b _080ECFDC
+ .align 2, 0
+_080ECE60: .4byte 0x02000000
+_080ECE64:
+ movs r0, 0x1
+ bl sub_80F2D6C
+ ldr r1, _080ECE74
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r2
+ b _080ECFDC
+ .align 2, 0
+_080ECE74: .4byte 0x02000000
+_080ECE78:
+ movs r0, 0x5
+ bl sub_80F2D6C
+ b _080ECFD4
+_080ECE80:
+ ldr r1, _080ECEA0
+ adds r0, r4, r1
+ ldrb r1, [r0]
+ ldr r2, _080ECEA4
+ adds r0, r4, r2
+ strb r1, [r0]
+ ldr r3, _080ECEA8
+ adds r1, r4, r3
+ movs r0, 0x6
+ strb r0, [r1]
+ bl sub_80EEE08
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r4, r0
+ b _080ECFDC
+ .align 2, 0
+_080ECEA0: .4byte 0x00006dfc
+_080ECEA4: .4byte 0x00006dad
+_080ECEA8: .4byte 0x00006dae
+_080ECEAC:
+ movs r0, 0x2
+ bl sub_80EF248
+ ldr r1, _080ECED0
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r2
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_080ECEC0:
+ movs r0, 0x2
+ bl sub_80EF284
+ lsls r0, 24
+ cmp r0, 0
+ beq _080ECECE
+ b _080ED006
+_080ECECE:
+ b _080ECFD4
+ .align 2, 0
+_080ECED0: .4byte 0x02000000
+_080ECED4:
+ movs r0, 0x2
+ bl sub_80F1B8C
+ ldr r1, _080ECF00
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r0
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_080ECEE8:
+ movs r0, 0x2
+ bl sub_80F1BC8
+ lsls r0, 24
+ cmp r0, 0
+ beq _080ECEF6
+ b _080ED006
+_080ECEF6:
+ ldr r1, _080ECF00
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r2
+ b _080ECFDC
+ .align 2, 0
+_080ECF00: .4byte 0x02000000
+_080ECF04:
+ bl sub_8055870
+ cmp r0, 0
+ beq _080ECF0E
+ b _080ED006
+_080ECF0E:
+ b _080ECFD4
+_080ECF10:
+ movs r1, 0xC2
+ lsls r1, 2
+ adds r0, r4, r1
+ ldr r0, [r0]
+ movs r1, 0x1
+ negs r1, r1
+ movs r2, 0
+ str r2, [sp]
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ ldr r0, _080ECF38
+ bl SetVBlankCallback
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r4, r2
+ b _080ECFDC
+ .align 2, 0
+_080ECF38: .4byte sub_80EBD18
+_080ECF3C:
+ movs r0, 0
+ bl sub_80EED2C
+ b _080ECFD4
+_080ECF44:
+ bl sub_80F2598
+ ldr r1, _080ECF54
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r0
+ b _080ECFDC
+ .align 2, 0
+_080ECF54: .4byte 0x02000000
+_080ECF58:
+ ldr r0, _080ECF6C
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080ED006
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r4, r2
+ b _080ECFDC
+ .align 2, 0
+_080ECF6C: .4byte gPaletteFade
+_080ECF70:
+ movs r0, 0x1
+ bl sub_80F2C80
+ ldr r1, _080ECFA8
+ movs r3, 0xC1
+ lsls r3, 2
+ adds r1, r3
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_080ECF84:
+ movs r0, 0x1
+ bl sub_80F2CBC
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0
+ bne _080ED006
+ ldr r0, _080ECFA8
+ ldr r3, _080ECFAC
+ adds r1, r0, r3
+ strh r2, [r1]
+ movs r1, 0xC1
+ lsls r1, 2
+ adds r0, r1
+ ldrh r1, [r0]
+ adds r1, 0x1
+ strh r1, [r0]
+ b _080ED006
+ .align 2, 0
+_080ECFA8: .4byte 0x02000000
+_080ECFAC: .4byte 0x00000306
+_080ECFB0:
+ movs r0, 0x5
+ bl sub_80F2C80
+ ldr r1, _080ECFE4
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r2
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_080ECFC4:
+ movs r0, 0x5
+ bl sub_80F2CBC
+ lsls r0, 24
+ cmp r0, 0
+ bne _080ED006
+ bl sub_80F1DF0
+_080ECFD4:
+ ldr r1, _080ECFE4
+ movs r3, 0xC1
+ lsls r3, 2
+ adds r1, r3
+_080ECFDC:
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ b _080ED006
+ .align 2, 0
+_080ECFE4: .4byte 0x02000000
+_080ECFE8:
+ bl sub_80F1E50
+ lsls r0, 24
+ cmp r0, 0
+ bne _080ED006
+ ldr r0, _080ED010
+ ldr r1, _080ED014
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x2
+ bl sub_80EF428
+ ldr r0, _080ED018
+ bl sub_80EBDBC
+_080ED006:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080ED010: .4byte 0x02000000
+_080ED014: .4byte 0x00006dad
+_080ED018: .4byte sub_80ECC08
+ thumb_func_end sub_80ECD80
+
+ thumb_func_start sub_80ED01C
+sub_80ED01C: @ 80ED01C
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r1, _080ED03C
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r0, r1, r2
+ ldrh r0, [r0]
+ adds r4, r1, 0
+ cmp r0, 0x13
+ bls _080ED032
+ b _080ED308
+_080ED032:
+ lsls r0, 2
+ ldr r1, _080ED040
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080ED03C: .4byte 0x02000000
+_080ED040: .4byte _080ED044
+ .align 2, 0
+_080ED044:
+ .4byte _080ED094
+ .4byte _080ED0B4
+ .4byte _080ED0D4
+ .4byte _080ED108
+ .4byte _080ED138
+ .4byte _080ED14C
+ .4byte _080ED15E
+ .4byte _080ED18C
+ .4byte _080ED1AC
+ .4byte _080ED1C4
+ .4byte _080ED1D8
+ .4byte _080ED1F4
+ .4byte _080ED208
+ .4byte _080ED220
+ .4byte _080ED24C
+ .4byte _080ED260
+ .4byte _080ED28C
+ .4byte _080ED2A0
+ .4byte _080ED2CC
+ .4byte _080ED2EA
+_080ED094:
+ bl sub_80F1E84
+ movs r0, 0x1
+ bl sub_80F2D04
+ movs r0, 0x5
+ bl sub_80F2D04
+ ldr r1, _080ED0B0
+ movs r3, 0xC1
+ lsls r3, 2
+ adds r1, r3
+ b _080ED27C
+ .align 2, 0
+_080ED0B0: .4byte 0x02000000
+_080ED0B4:
+ bl sub_80F1F10
+ lsls r0, 24
+ cmp r0, 0
+ beq _080ED0C0
+ b _080ED308
+_080ED0C0:
+ movs r0, 0
+ bl sub_80EEFBC
+ ldr r1, _080ED0D0
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r0
+ b _080ED27C
+ .align 2, 0
+_080ED0D0: .4byte 0x02000000
+_080ED0D4:
+ bl sub_80EEF34
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0
+ beq _080ED0E2
+ b _080ED308
+_080ED0E2:
+ ldr r4, _080ED104
+ movs r1, 0xC2
+ lsls r1, 2
+ adds r0, r4, r1
+ ldr r0, [r0]
+ movs r1, 0x1
+ negs r1, r1
+ str r2, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r4, r2
+ b _080ED27C
+ .align 2, 0
+_080ED104: .4byte 0x02000000
+_080ED108:
+ ldr r0, _080ED130
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _080ED116
+ b _080ED308
+_080ED116:
+ movs r0, 0
+ bl SetVBlankCallback
+ bl sub_80EED0C
+ bl sub_80EF814
+ ldr r1, _080ED134
+ movs r3, 0xC1
+ lsls r3, 2
+ adds r1, r3
+ b _080ED27C
+ .align 2, 0
+_080ED130: .4byte gPaletteFade
+_080ED134: .4byte 0x02000000
+_080ED138:
+ bl sub_80F2620
+ ldr r1, _080ED148
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r0
+ b _080ED27C
+ .align 2, 0
+_080ED148: .4byte 0x02000000
+_080ED14C:
+ bl sub_80F4D44
+ ldr r1, _080ED178
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r2
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_080ED15E:
+ bl sub_80F4D88
+ lsls r0, 24
+ cmp r0, 0
+ bne _080ED17C
+ ldr r1, _080ED178
+ movs r3, 0xC1
+ lsls r3, 2
+ adds r1, r3
+ ldrh r0, [r1]
+ adds r0, 0x2
+ strh r0, [r1]
+ b _080ED308
+ .align 2, 0
+_080ED178: .4byte 0x02000000
+_080ED17C:
+ ldr r1, _080ED188
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r0
+ b _080ED27C
+ .align 2, 0
+_080ED188: .4byte 0x02000000
+_080ED18C:
+ bl sub_8055870
+ cmp r0, 0
+ beq _080ED196
+ b _080ED308
+_080ED196:
+ ldr r1, _080ED1A8
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r2
+ ldrh r0, [r1]
+ subs r0, 0x1
+ strh r0, [r1]
+ b _080ED308
+ .align 2, 0
+_080ED1A8: .4byte 0x02000000
+_080ED1AC:
+ bl sub_8055870
+ cmp r0, 0
+ beq _080ED1B6
+ b _080ED308
+_080ED1B6:
+ ldr r1, _080ED1C0
+ movs r3, 0xC1
+ lsls r3, 2
+ adds r1, r3
+ b _080ED27C
+ .align 2, 0
+_080ED1C0: .4byte 0x02000000
+_080ED1C4:
+ movs r0, 0
+ bl sub_80F0264
+ ldr r1, _080ED1F0
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r0
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_080ED1D8:
+ bl sub_80F02A0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080ED1E4
+ b _080ED308
+_080ED1E4:
+ ldr r1, _080ED1F0
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r2
+ b _080ED27C
+ .align 2, 0
+_080ED1F0: .4byte 0x02000000
+_080ED1F4:
+ movs r0, 0
+ bl sub_80F3008
+ ldr r1, _080ED204
+ movs r3, 0xC1
+ lsls r3, 2
+ adds r1, r3
+ b _080ED27C
+ .align 2, 0
+_080ED204: .4byte 0x02000000
+_080ED208:
+ bl sub_8055870
+ cmp r0, 0
+ beq _080ED212
+ b _080ED308
+_080ED212:
+ ldr r1, _080ED21C
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r0
+ b _080ED27C
+ .align 2, 0
+_080ED21C: .4byte 0x02000000
+_080ED220:
+ movs r1, 0xC2
+ lsls r1, 2
+ adds r0, r4, r1
+ ldr r0, [r0]
+ movs r1, 0x1
+ negs r1, r1
+ movs r2, 0
+ str r2, [sp]
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ ldr r0, _080ED248
+ bl SetVBlankCallback
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r4, r2
+ b _080ED27C
+ .align 2, 0
+_080ED248: .4byte sub_80EBD18
+_080ED24C:
+ movs r0, 0x4
+ bl sub_80EED2C
+ ldr r1, _080ED25C
+ movs r3, 0xC1
+ lsls r3, 2
+ adds r1, r3
+ b _080ED27C
+ .align 2, 0
+_080ED25C: .4byte 0x02000000
+_080ED260:
+ ldr r0, _080ED284
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0
+ bne _080ED308
+ ldr r2, _080ED288
+ adds r0, r4, r2
+ strh r1, [r0]
+ movs r3, 0xC1
+ lsls r3, 2
+ adds r1, r4, r3
+_080ED27C:
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ b _080ED308
+ .align 2, 0
+_080ED284: .4byte gPaletteFade
+_080ED288: .4byte 0x00000306
+_080ED28C:
+ movs r0, 0x1
+ bl sub_80F2C80
+ ldr r1, _080ED2C4
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r0
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_080ED2A0:
+ movs r0, 0x1
+ bl sub_80F2CBC
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0
+ bne _080ED308
+ ldr r0, _080ED2C4
+ ldr r3, _080ED2C8
+ adds r1, r0, r3
+ strh r2, [r1]
+ movs r1, 0xC1
+ lsls r1, 2
+ adds r0, r1
+ ldrh r1, [r0]
+ adds r1, 0x1
+ strh r1, [r0]
+ b _080ED308
+ .align 2, 0
+_080ED2C4: .4byte 0x02000000
+_080ED2C8: .4byte 0x00000306
+_080ED2CC:
+ ldr r4, _080ED310
+ ldr r2, _080ED314
+ adds r0, r4, r2
+ ldrb r0, [r0]
+ adds r0, 0x7
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_80F2C80
+ movs r3, 0xC1
+ lsls r3, 2
+ adds r4, r3
+ ldrh r0, [r4]
+ adds r0, 0x1
+ strh r0, [r4]
+_080ED2EA:
+ ldr r0, _080ED310
+ ldr r1, _080ED314
+ adds r0, r1
+ ldrb r0, [r0]
+ adds r0, 0x7
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_80F2CBC
+ lsls r0, 24
+ cmp r0, 0
+ bne _080ED308
+ ldr r0, _080ED318
+ bl sub_80EBDBC
+_080ED308:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080ED310: .4byte 0x02000000
+_080ED314: .4byte 0x00006dfc
+_080ED318: .4byte sub_80ED31C
+ thumb_func_end sub_80ED01C
+
+ thumb_func_start sub_80ED31C
+sub_80ED31C: @ 80ED31C
+ push {r4,lr}
+ ldr r0, _080ED338
+ movs r1, 0xC1
+ lsls r1, 2
+ adds r4, r0, r1
+ ldrh r0, [r4]
+ cmp r0, 0x1
+ beq _080ED3A8
+ cmp r0, 0x1
+ bgt _080ED33C
+ cmp r0, 0
+ beq _080ED342
+ b _080ED3CA
+ .align 2, 0
+_080ED338: .4byte 0x02000000
+_080ED33C:
+ cmp r0, 0x2
+ beq _080ED3C0
+ b _080ED3CA
+_080ED342:
+ bl sub_80F5DD4
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _080ED374
+ cmp r0, 0x2
+ beq _080ED380
+ ldr r0, _080ED36C
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080ED38C
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, _080ED370
+ bl sub_80EBDBC
+ b _080ED3CA
+ .align 2, 0
+_080ED36C: .4byte gMain
+_080ED370: .4byte sub_80ED4D8
+_080ED374:
+ movs r0, 0x5
+ bl PlaySE
+ bl ShowMapNamePopUpWindow
+ b _080ED3CA
+_080ED380:
+ movs r0, 0x5
+ bl PlaySE
+ ldrh r0, [r4]
+ adds r0, 0x1
+ b _080ED3C8
+_080ED38C:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080ED3CA
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, _080ED3A4
+ bl sub_80EBDBC
+ b _080ED3CA
+ .align 2, 0
+_080ED3A4: .4byte sub_80ECD80
+_080ED3A8:
+ bl sub_80F0718
+ lsls r0, 24
+ cmp r0, 0
+ bne _080ED3CA
+ bl ShowMapNamePopUpWindow
+ bl sub_80F3264
+ ldrh r0, [r4]
+ adds r0, 0x1
+ b _080ED3C8
+_080ED3C0:
+ bl sub_8055870
+ cmp r0, 0
+ bne _080ED3CA
+_080ED3C8:
+ strh r0, [r4]
+_080ED3CA:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80ED31C
+
+ thumb_func_start sub_80ED3D0
+sub_80ED3D0: @ 80ED3D0
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r0, _080ED3EC
+ movs r1, 0xC1
+ lsls r1, 2
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r0, 0x8
+ bhi _080ED4C6
+ lsls r0, 2
+ ldr r1, _080ED3F0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080ED3EC: .4byte 0x02000000
+_080ED3F0: .4byte _080ED3F4
+ .align 2, 0
+_080ED3F4:
+ .4byte _080ED418
+ .4byte _080ED420
+ .4byte _080ED42A
+ .4byte _080ED432
+ .4byte _080ED446
+ .4byte _080ED458
+ .4byte _080ED462
+ .4byte _080ED498
+ .4byte _080ED4B4
+_080ED418:
+ movs r0, 0
+ bl SetVBlankCallback
+ b _080ED49E
+_080ED420:
+ bl sub_80EED0C
+ bl sub_80F6134
+ b _080ED49E
+_080ED42A:
+ movs r0, 0
+ bl sub_80EEFBC
+ b _080ED49E
+_080ED432:
+ movs r0, 0
+ bl sub_80F0264
+ ldr r1, _080ED454
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r0
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_080ED446:
+ bl sub_80F02A0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080ED4C6
+ b _080ED49E
+ .align 2, 0
+_080ED454: .4byte 0x02000000
+_080ED458:
+ bl sub_8055870
+ cmp r0, 0
+ bne _080ED4C6
+ b _080ED49E
+_080ED462:
+ movs r0, 0
+ bl sub_80F3008
+ ldr r4, _080ED490
+ movs r1, 0xC2
+ lsls r1, 2
+ adds r0, r4, r1
+ ldr r0, [r0]
+ movs r1, 0x1
+ negs r1, r1
+ movs r2, 0
+ str r2, [sp]
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ ldr r0, _080ED494
+ bl SetVBlankCallback
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r4, r0
+ b _080ED4A6
+ .align 2, 0
+_080ED490: .4byte 0x02000000
+_080ED494: .4byte sub_80EBD18
+_080ED498:
+ movs r0, 0x4
+ bl sub_80EED2C
+_080ED49E:
+ ldr r1, _080ED4B0
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r0
+_080ED4A6:
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ b _080ED4C6
+ .align 2, 0
+_080ED4B0: .4byte 0x02000000
+_080ED4B4:
+ ldr r0, _080ED4D0
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080ED4C6
+ ldr r0, _080ED4D4
+ bl sub_80EBDBC
+_080ED4C6:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080ED4D0: .4byte gPaletteFade
+_080ED4D4: .4byte sub_80ED31C
+ thumb_func_end sub_80ED3D0
+
+ thumb_func_start sub_80ED4D8
+sub_80ED4D8: @ 80ED4D8
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r1, _080ED4F8
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r0, r1, r2
+ ldrh r0, [r0]
+ adds r4, r1, 0
+ cmp r0, 0x8
+ bls _080ED4EE
+ b _080ED60E
+_080ED4EE:
+ lsls r0, 2
+ ldr r1, _080ED4FC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080ED4F8: .4byte 0x02000000
+_080ED4FC: .4byte _080ED500
+ .align 2, 0
+_080ED500:
+ .4byte _080ED524
+ .4byte _080ED542
+ .4byte _080ED564
+ .4byte _080ED57C
+ .4byte _080ED582
+ .4byte _080ED594
+ .4byte _080ED5A4
+ .4byte _080ED5E0
+ .4byte _080ED5FC
+_080ED524:
+ movs r1, 0xC2
+ lsls r1, 2
+ adds r0, r4, r1
+ ldr r0, [r0]
+ movs r1, 0x1
+ negs r1, r1
+ movs r2, 0
+ str r2, [sp]
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r4, r2
+ b _080ED5EE
+_080ED542:
+ ldr r0, _080ED560
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080ED60E
+ movs r0, 0
+ bl SetVBlankCallback
+ bl sub_80EED0C
+ bl sub_80F3130
+ b _080ED5E6
+ .align 2, 0
+_080ED560: .4byte gPaletteFade
+_080ED564:
+ bl sub_8055870
+ cmp r0, 0
+ bne _080ED60E
+ ldr r1, _080ED578
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r2
+ b _080ED5EE
+ .align 2, 0
+_080ED578: .4byte 0x02000000
+_080ED57C:
+ bl sub_80F4CF0
+ b _080ED5E6
+_080ED582:
+ bl sub_80EFF34
+ ldr r1, _080ED5A0
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r2
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_080ED594:
+ bl sub_80EFF68
+ lsls r0, 24
+ cmp r0, 0
+ bne _080ED60E
+ b _080ED5E6
+ .align 2, 0
+_080ED5A0: .4byte 0x02000000
+_080ED5A4:
+ bl sub_80F35B4
+ movs r0, 0x2
+ bl sub_80EEFBC
+ ldr r4, _080ED5D8
+ movs r1, 0xC2
+ lsls r1, 2
+ adds r0, r4, r1
+ ldr r0, [r0]
+ movs r1, 0x1
+ negs r1, r1
+ movs r2, 0
+ str r2, [sp]
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ ldr r0, _080ED5DC
+ bl SetVBlankCallback
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r4, r2
+ b _080ED5EE
+ .align 2, 0
+_080ED5D8: .4byte 0x02000000
+_080ED5DC: .4byte sub_80EBD4C
+_080ED5E0:
+ movs r0, 0x2
+ bl sub_80EED2C
+_080ED5E6:
+ ldr r1, _080ED5F8
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r0
+_080ED5EE:
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ b _080ED60E
+ .align 2, 0
+_080ED5F8: .4byte 0x02000000
+_080ED5FC:
+ ldr r0, _080ED618
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080ED60E
+ ldr r0, _080ED61C
+ bl sub_80EBDBC
+_080ED60E:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080ED618: .4byte gPaletteFade
+_080ED61C: .4byte sub_80ED858
+ thumb_func_end sub_80ED4D8
+
+ thumb_func_start sub_80ED620
+sub_80ED620: @ 80ED620
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r1, _080ED640
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r0, r1, r2
+ ldrh r0, [r0]
+ adds r4, r1, 0
+ cmp r0, 0x10
+ bls _080ED636
+ b _080ED846
+_080ED636:
+ lsls r0, 2
+ ldr r1, _080ED644
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080ED640: .4byte 0x02000000
+_080ED644: .4byte _080ED648
+ .align 2, 0
+_080ED648:
+ .4byte _080ED68C
+ .4byte _080ED6A4
+ .4byte _080ED6B8
+ .4byte _080ED6EC
+ .4byte _080ED730
+ .4byte _080ED736
+ .4byte _080ED750
+ .4byte _080ED762
+ .4byte _080ED76C
+ .4byte _080ED784
+ .4byte _080ED78A
+ .4byte _080ED7C0
+ .4byte _080ED7D4
+ .4byte _080ED7EC
+ .4byte _080ED800
+ .4byte _080ED820
+ .4byte _080ED834
+_080ED68C:
+ bl sub_80F1E84
+ movs r0, 0x1
+ bl sub_80F2D04
+ ldr r1, _080ED6A0
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r0
+ b _080ED814
+ .align 2, 0
+_080ED6A0: .4byte 0x02000000
+_080ED6A4:
+ bl sub_80F1F10
+ lsls r0, 24
+ cmp r0, 0
+ beq _080ED6B0
+ b _080ED846
+_080ED6B0:
+ movs r0, 0x1
+ bl sub_80EEFBC
+ b _080ED80C
+_080ED6B8:
+ bl sub_80EEF34
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0
+ beq _080ED6C6
+ b _080ED846
+_080ED6C6:
+ ldr r4, _080ED6E8
+ movs r1, 0xC2
+ lsls r1, 2
+ adds r0, r4, r1
+ ldr r0, [r0]
+ movs r1, 0x1
+ negs r1, r1
+ str r2, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r4, r2
+ b _080ED814
+ .align 2, 0
+_080ED6E8: .4byte 0x02000000
+_080ED6EC:
+ ldr r0, _080ED724
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ beq _080ED6FE
+ b _080ED846
+_080ED6FE:
+ movs r0, 0
+ bl SetVBlankCallback
+ bl sub_80EED0C
+ bl sub_80EF814
+ ldr r0, _080ED728
+ ldr r2, _080ED72C
+ adds r1, r0, r2
+ strb r4, [r1]
+ movs r1, 0xC1
+ lsls r1, 2
+ adds r0, r1
+ ldrh r1, [r0]
+ adds r1, 0x1
+ strh r1, [r0]
+ b _080ED846
+ .align 2, 0
+_080ED724: .4byte gPaletteFade
+_080ED728: .4byte 0x02000000
+_080ED72C: .4byte 0x000076aa
+_080ED730:
+ bl sub_80F2620
+ b _080ED80C
+_080ED736:
+ ldr r0, _080ED74C
+ adds r1, r4, r0
+ movs r0, 0x2
+ strb r0, [r1]
+ bl sub_80F4BD0
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r4, r2
+ b _080ED814
+ .align 2, 0
+_080ED74C: .4byte 0x0000d162
+_080ED750:
+ bl sub_80EFF34
+ ldr r1, _080ED768
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r0
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_080ED762:
+ bl sub_80EFF68
+ b _080ED806
+ .align 2, 0
+_080ED768: .4byte 0x02000000
+_080ED76C:
+ bl sub_8055870
+ cmp r0, 0
+ bne _080ED846
+ ldr r1, _080ED780
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r0
+ b _080ED814
+ .align 2, 0
+_080ED780: .4byte 0x02000000
+_080ED784:
+ bl sub_8055870
+ b _080ED808
+_080ED78A:
+ bl sub_80F33A8
+ ldr r4, _080ED7B8
+ movs r1, 0xC2
+ lsls r1, 2
+ adds r0, r4, r1
+ ldr r0, [r0]
+ movs r1, 0x1
+ negs r1, r1
+ movs r2, 0
+ str r2, [sp]
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ ldr r0, _080ED7BC
+ bl SetVBlankCallback
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r4, r2
+ b _080ED814
+ .align 2, 0
+_080ED7B8: .4byte 0x02000000
+_080ED7BC: .4byte sub_80EBD4C
+_080ED7C0:
+ movs r0, 0x2
+ bl sub_80EED2C
+ ldr r1, _080ED7D0
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r0
+ b _080ED814
+ .align 2, 0
+_080ED7D0: .4byte 0x02000000
+_080ED7D4:
+ ldr r0, _080ED7E8
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080ED846
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r4, r2
+ b _080ED814
+ .align 2, 0
+_080ED7E8: .4byte gPaletteFade
+_080ED7EC:
+ movs r0, 0x1
+ bl sub_80F2C80
+ ldr r1, _080ED81C
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r0
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_080ED800:
+ movs r0, 0x1
+ bl sub_80F2CBC
+_080ED806:
+ lsls r0, 24
+_080ED808:
+ cmp r0, 0
+ bne _080ED846
+_080ED80C:
+ ldr r1, _080ED81C
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r2
+_080ED814:
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ b _080ED846
+ .align 2, 0
+_080ED81C: .4byte 0x02000000
+_080ED820:
+ movs r0, 0x6
+ bl sub_80F2C80
+ ldr r1, _080ED850
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r0
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_080ED834:
+ movs r0, 0x6
+ bl sub_80F2CBC
+ lsls r0, 24
+ cmp r0, 0
+ bne _080ED846
+ ldr r0, _080ED854
+ bl sub_80EBDBC
+_080ED846:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080ED850: .4byte 0x02000000
+_080ED854: .4byte sub_80ED858
+ thumb_func_end sub_80ED620
+
+ thumb_func_start sub_80ED858
+sub_80ED858: @ 80ED858
+ push {r4,r5,lr}
+ sub sp, 0x4
+ ldr r1, _080ED878
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r0, r1, r2
+ ldrh r0, [r0]
+ adds r5, r1, 0
+ cmp r0, 0xB
+ bls _080ED86E
+ b _080EDB7A
+_080ED86E:
+ lsls r0, 2
+ ldr r1, _080ED87C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080ED878: .4byte 0x02000000
+_080ED87C: .4byte _080ED880
+ .align 2, 0
+_080ED880:
+ .4byte _080ED8B0
+ .4byte _080ED8CC
+ .4byte _080ED8EC
+ .4byte _080ED904
+ .4byte _080ED91A
+ .4byte _080EDA68
+ .4byte _080EDA8C
+ .4byte _080EDAA4
+ .4byte _080EDAC0
+ .4byte _080EDAE8
+ .4byte _080EDB7A
+ .4byte _080EDB28
+_080ED8B0:
+ bl sub_80F4F78
+ bl sub_80F5B38
+ ldr r0, _080ED8C8
+ movs r4, 0xC1
+ lsls r4, 2
+ adds r0, r4
+ movs r1, 0x1
+ strh r1, [r0]
+ b _080EDB7A
+ .align 2, 0
+_080ED8C8: .4byte 0x02000000
+_080ED8CC:
+ bl sub_80F5B50
+ lsls r0, 24
+ cmp r0, 0
+ beq _080ED8D8
+ b _080EDB7A
+_080ED8D8:
+ ldr r0, _080ED8E8
+ movs r1, 0xC1
+ lsls r1, 2
+ adds r0, r1
+ movs r1, 0x2
+ strh r1, [r0]
+ b _080EDB7A
+ .align 2, 0
+_080ED8E8: .4byte 0x02000000
+_080ED8EC:
+ movs r0, 0x1
+ bl sub_80F0174
+ ldr r0, _080ED900
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r0, r2
+ movs r1, 0x3
+ strh r1, [r0]
+ b _080EDB7A
+ .align 2, 0
+_080ED900: .4byte 0x02000000
+_080ED904:
+ bl sub_80F4FB4
+ lsls r0, 24
+ cmp r0, 0
+ beq _080ED910
+ b _080EDB7A
+_080ED910:
+ bl sub_80F3C94
+ bl sub_80F3D00
+ b _080EDAD4
+_080ED91A:
+ ldr r2, _080ED960
+ ldrh r1, [r2, 0x2C]
+ movs r0, 0x40
+ ands r0, r1
+ adds r3, r2, 0
+ cmp r0, 0
+ beq _080ED970
+ ldr r1, _080ED964
+ adds r0, r5, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080ED970
+ ldr r2, _080ED968
+ adds r0, r5, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080ED948
+ ldr r4, _080ED96C
+ adds r0, r5, r4
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ beq _080ED970
+_080ED948:
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+ bl sub_80F5060
+ bl move_anim_execute
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r5, r2
+ b _080ED9B8
+ .align 2, 0
+_080ED960: .4byte gMain
+_080ED964: .4byte 0x000087cb
+_080ED968: .4byte 0x000076aa
+_080ED96C: .4byte 0x000087dc
+_080ED970:
+ ldrh r1, [r3, 0x2C]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _080ED9CC
+ ldr r4, _080ED9C0
+ adds r0, r5, r4
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080ED9CC
+ ldr r1, _080ED9C4
+ adds r0, r5, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080ED9A2
+ ldr r2, _080ED9C8
+ adds r0, r5, r2
+ subs r4, 0x57
+ adds r1, r5, r4
+ movs r4, 0
+ ldrsh r2, [r0, r4]
+ movs r4, 0
+ ldrsh r0, [r1, r4]
+ cmp r2, r0
+ bge _080ED9CC
+_080ED9A2:
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0
+ bl sub_80F5060
+ bl move_anim_execute
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r5, r0
+_080ED9B8:
+ movs r0, 0x5
+ strh r0, [r1]
+ b _080EDB7A
+ .align 2, 0
+_080ED9C0: .4byte 0x000087cb
+_080ED9C4: .4byte 0x000076aa
+_080ED9C8: .4byte 0x000087dc
+_080ED9CC:
+ ldrh r2, [r3, 0x2E]
+ movs r0, 0x2
+ ands r0, r2
+ cmp r0, 0
+ beq _080ED9F8
+ movs r0, 0x5
+ bl PlaySE
+ bl sub_80F4FDC
+ bl move_anim_execute
+ ldr r0, _080ED9F4
+ movs r1, 0xC1
+ lsls r1, 2
+ adds r0, r1
+ movs r1, 0x9
+ strh r1, [r0]
+ b _080EDB7A
+ .align 2, 0
+_080ED9F4: .4byte 0x02000000
+_080ED9F8:
+ movs r0, 0x1
+ ands r0, r2
+ cmp r0, 0
+ bne _080EDA02
+ b _080EDB7A
+_080EDA02:
+ adds r4, r5, 0
+ ldr r2, _080EDA38
+ adds r0, r4, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080EDA44
+ ldr r1, _080EDA3C
+ adds r0, r4, r1
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ ldr r2, _080EDA40
+ adds r0, r4, r2
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ subs r0, 0x1
+ cmp r1, r0
+ beq _080EDA26
+ b _080EDB7A
+_080EDA26:
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r4, r0
+ movs r0, 0x9
+ strh r0, [r1]
+ b _080EDB7A
+ .align 2, 0
+_080EDA38: .4byte 0x000076aa
+_080EDA3C: .4byte 0x000087dc
+_080EDA40: .4byte 0x000087da
+_080EDA44:
+ ldr r1, _080EDA64
+ adds r0, r5, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080EDA50
+ b _080EDB7A
+_080EDA50:
+ movs r0, 0x5
+ bl PlaySE
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r5, r2
+ movs r0, 0x7
+ strh r0, [r1]
+ b _080EDB7A
+ .align 2, 0
+_080EDA64: .4byte 0x00006dac
+_080EDA68:
+ bl gpu_sync_bg_show
+ lsls r0, 24
+ cmp r0, 0
+ beq _080EDA74
+ b _080EDB7A
+_080EDA74:
+ bl sub_80F3D00
+ ldr r0, _080EDA88
+ movs r4, 0xC1
+ lsls r4, 2
+ adds r0, r4
+ movs r1, 0x6
+ strh r1, [r0]
+ b _080EDB7A
+ .align 2, 0
+_080EDA88: .4byte 0x02000000
+_080EDA8C:
+ bl sub_8055870
+ cmp r0, 0
+ bne _080EDB7A
+ ldr r0, _080EDAA0
+ movs r1, 0xC1
+ lsls r1, 2
+ adds r0, r1
+ b _080EDADC
+ .align 2, 0
+_080EDAA0: .4byte 0x02000000
+_080EDAA4:
+ movs r0, 0x3
+ bl sub_80EEFBC
+ bl sub_80F3668
+ ldr r0, _080EDABC
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r0, r2
+ movs r1, 0x8
+ strh r1, [r0]
+ b _080EDB7A
+ .align 2, 0
+_080EDABC: .4byte 0x02000000
+_080EDAC0:
+ bl sub_80F7500
+ lsls r0, 24
+ cmp r0, 0
+ bne _080EDB7A
+ movs r0, 0x2
+ bl sub_80EEFBC
+ bl sub_80F3698
+_080EDAD4:
+ ldr r0, _080EDAE4
+ movs r4, 0xC1
+ lsls r4, 2
+ adds r0, r4
+_080EDADC:
+ movs r1, 0x4
+ strh r1, [r0]
+ b _080EDB7A
+ .align 2, 0
+_080EDAE4: .4byte 0x02000000
+_080EDAE8:
+ bl sub_80F5038
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ bne _080EDB7A
+ movs r0, 0
+ bl sub_80F0174
+ bl sub_80F2F48
+ ldr r5, _080EDB24
+ movs r1, 0xC2
+ lsls r1, 2
+ adds r0, r5, r1
+ ldr r0, [r0]
+ movs r1, 0x1
+ negs r1, r1
+ str r4, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r5, r2
+ movs r0, 0xB
+ strh r0, [r1]
+ b _080EDB7A
+ .align 2, 0
+_080EDB24: .4byte 0x02000000
+_080EDB28:
+ ldr r0, _080EDB60
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080EDB7A
+ bl sub_80F3CE8
+ bl sub_80F5BDC
+ ldr r0, _080EDB64
+ ldr r4, _080EDB68
+ adds r0, r4
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080EDB70
+ bl sub_80F357C
+ movs r0, 0x1
+ bl sub_80F2D6C
+ movs r0, 0x6
+ bl sub_80F2D6C
+ ldr r0, _080EDB6C
+ bl sub_80EBDBC
+ b _080EDB7A
+ .align 2, 0
+_080EDB60: .4byte gPaletteFade
+_080EDB64: .4byte 0x02000000
+_080EDB68: .4byte 0x000076aa
+_080EDB6C: .4byte sub_80ECA10
+_080EDB70:
+ bl sub_80F3614
+ ldr r0, _080EDB84
+ bl sub_80EBDBC
+_080EDB7A:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EDB84: .4byte sub_80ED3D0
+ thumb_func_end sub_80ED858
+
+ thumb_func_start sub_80EDB88
+sub_80EDB88: @ 80EDB88
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r1, _080EDBA8
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r0, r1, r2
+ ldrh r0, [r0]
+ adds r4, r1, 0
+ cmp r0, 0x11
+ bls _080EDB9E
+ b _080EDDAA
+_080EDB9E:
+ lsls r0, 2
+ ldr r1, _080EDBAC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080EDBA8: .4byte 0x02000000
+_080EDBAC: .4byte _080EDBB0
+ .align 2, 0
+_080EDBB0:
+ .4byte _080EDBF8
+ .4byte _080EDC04
+ .4byte _080EDC24
+ .4byte _080EDC58
+ .4byte _080EDC7C
+ .4byte _080EDC90
+ .4byte _080EDCA2
+ .4byte _080EDCC0
+ .4byte _080EDCDC
+ .4byte _080EDCE6
+ .4byte _080EDCFA
+ .4byte _080EDD0C
+ .4byte _080EDD20
+ .4byte _080EDD34
+ .4byte _080EDD48
+ .4byte _080EDD52
+ .4byte _080EDD7C
+ .4byte _080EDD98
+_080EDBF8:
+ bl sub_80F1E84
+ movs r0, 0
+ bl sub_80F2D04
+ b _080EDD82
+_080EDC04:
+ bl sub_80F1F10
+ lsls r0, 24
+ cmp r0, 0
+ beq _080EDC10
+ b _080EDDAA
+_080EDC10:
+ movs r0, 0x4
+ bl sub_80EEFBC
+ ldr r1, _080EDC20
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r2
+ b _080EDD8A
+ .align 2, 0
+_080EDC20: .4byte 0x02000000
+_080EDC24:
+ bl sub_80EEF34
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0
+ beq _080EDC32
+ b _080EDDAA
+_080EDC32:
+ ldr r4, _080EDC54
+ movs r1, 0xC2
+ lsls r1, 2
+ adds r0, r4, r1
+ ldr r0, [r0]
+ movs r1, 0x1
+ negs r1, r1
+ str r2, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r4, r2
+ b _080EDD8A
+ .align 2, 0
+_080EDC54: .4byte 0x02000000
+_080EDC58:
+ ldr r0, _080EDC78
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _080EDC66
+ b _080EDDAA
+_080EDC66:
+ movs r0, 0
+ bl SetVBlankCallback
+ bl sub_80EED0C
+ bl sub_80EF814
+ b _080EDD82
+ .align 2, 0
+_080EDC78: .4byte gPaletteFade
+_080EDC7C:
+ bl sub_80F2620
+ ldr r1, _080EDC8C
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r2
+ b _080EDD8A
+ .align 2, 0
+_080EDC8C: .4byte 0x02000000
+_080EDC90:
+ bl sub_80F638C
+ ldr r1, _080EDCBC
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r0
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_080EDCA2:
+ bl sub_80F63D0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080EDD82
+ ldr r1, _080EDCBC
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r2
+ ldrh r0, [r1]
+ adds r0, 0x2
+ strh r0, [r1]
+ b _080EDDAA
+ .align 2, 0
+_080EDCBC: .4byte 0x02000000
+_080EDCC0:
+ bl sub_8055870
+ cmp r0, 0
+ bne _080EDDAA
+ ldr r1, _080EDCD8
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r2
+ ldrh r0, [r1]
+ subs r0, 0x1
+ strh r0, [r1]
+ b _080EDDAA
+ .align 2, 0
+_080EDCD8: .4byte 0x02000000
+_080EDCDC:
+ bl sub_8055870
+ cmp r0, 0
+ bne _080EDDAA
+ b _080EDD82
+_080EDCE6:
+ movs r0, 0x1
+ bl sub_80F0264
+ ldr r1, _080EDD08
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r2
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_080EDCFA:
+ bl sub_80F02A0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080EDDAA
+ b _080EDD82
+ .align 2, 0
+_080EDD08: .4byte 0x02000000
+_080EDD0C:
+ movs r0, 0x2
+ bl sub_80F2C80
+ ldr r1, _080EDD30
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r2
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_080EDD20:
+ movs r0, 0x2
+ bl sub_80F2CBC
+ lsls r0, 24
+ cmp r0, 0
+ bne _080EDDAA
+ b _080EDD82
+ .align 2, 0
+_080EDD30: .4byte 0x02000000
+_080EDD34:
+ movs r0, 0x1
+ bl sub_80F3008
+ ldr r1, _080EDD44
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r2
+ b _080EDD8A
+ .align 2, 0
+_080EDD44: .4byte 0x02000000
+_080EDD48:
+ bl sub_8055870
+ cmp r0, 0
+ bne _080EDDAA
+ b _080EDD82
+_080EDD52:
+ movs r1, 0xC2
+ lsls r1, 2
+ adds r0, r4, r1
+ ldr r0, [r0]
+ movs r1, 0x1
+ negs r1, r1
+ movs r2, 0
+ str r2, [sp]
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ ldr r0, _080EDD78
+ bl SetVBlankCallback
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r4, r2
+ b _080EDD8A
+ .align 2, 0
+_080EDD78: .4byte sub_80EBD18
+_080EDD7C:
+ movs r0, 0x4
+ bl sub_80EED2C
+_080EDD82:
+ ldr r1, _080EDD94
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r0
+_080EDD8A:
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ b _080EDDAA
+ .align 2, 0
+_080EDD94: .4byte 0x02000000
+_080EDD98:
+ ldr r0, _080EDDB4
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080EDDAA
+ ldr r0, _080EDDB8
+ bl sub_80EBDBC
+_080EDDAA:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EDDB4: .4byte gPaletteFade
+_080EDDB8: .4byte sub_80EDDBC
+ thumb_func_end sub_80EDB88
+
+ thumb_func_start sub_80EDDBC
+sub_80EDDBC: @ 80EDDBC
+ push {r4,lr}
+ ldr r0, _080EDDD8
+ movs r1, 0xC1
+ lsls r1, 2
+ adds r4, r0, r1
+ ldrh r0, [r4]
+ cmp r0, 0x1
+ beq _080EDE48
+ cmp r0, 0x1
+ bgt _080EDDDC
+ cmp r0, 0
+ beq _080EDDE2
+ b _080EDE6A
+ .align 2, 0
+_080EDDD8: .4byte 0x02000000
+_080EDDDC:
+ cmp r0, 0x2
+ beq _080EDE60
+ b _080EDE6A
+_080EDDE2:
+ bl sub_80F5DD4
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _080EDE14
+ cmp r0, 0x2
+ beq _080EDE20
+ ldr r0, _080EDE0C
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080EDE2C
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, _080EDE10
+ bl sub_80EBDBC
+ b _080EDE6A
+ .align 2, 0
+_080EDE0C: .4byte gMain
+_080EDE10: .4byte sub_80EDEE4
+_080EDE14:
+ movs r0, 0x5
+ bl PlaySE
+ bl ShowMapNamePopUpWindow
+ b _080EDE6A
+_080EDE20:
+ movs r0, 0x5
+ bl PlaySE
+ ldrh r0, [r4]
+ adds r0, 0x1
+ b _080EDE68
+_080EDE2C:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080EDE6A
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, _080EDE44
+ bl sub_80EBDBC
+ b _080EDE6A
+ .align 2, 0
+_080EDE44: .4byte sub_80EDE70
+_080EDE48:
+ bl sub_80F0718
+ lsls r0, 24
+ cmp r0, 0
+ bne _080EDE6A
+ bl ShowMapNamePopUpWindow
+ bl sub_80F3264
+ ldrh r0, [r4]
+ adds r0, 0x1
+ b _080EDE68
+_080EDE60:
+ bl sub_8055870
+ cmp r0, 0
+ bne _080EDE6A
+_080EDE68:
+ strh r0, [r4]
+_080EDE6A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80EDDBC
+
+ thumb_func_start sub_80EDE70
+sub_80EDE70: @ 80EDE70
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r0, _080EDE8C
+ movs r1, 0xC1
+ lsls r1, 2
+ adds r4, r0, r1
+ ldrh r2, [r4]
+ cmp r2, 0x1
+ beq _080EDEAE
+ cmp r2, 0x1
+ bgt _080EDE90
+ cmp r2, 0
+ beq _080EDE96
+ b _080EDED6
+ .align 2, 0
+_080EDE8C: .4byte 0x02000000
+_080EDE90:
+ cmp r2, 0x2
+ beq _080EDED0
+ b _080EDED6
+_080EDE96:
+ movs r1, 0xC2
+ lsls r1, 2
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x1
+ negs r1, r1
+ str r2, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ b _080EDEC4
+_080EDEAE:
+ ldr r0, _080EDECC
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080EDED6
+ bl sub_80F3130
+ movs r0, 0x2
+ bl sub_80F2D6C
+_080EDEC4:
+ ldrh r0, [r4]
+ adds r0, 0x1
+ strh r0, [r4]
+ b _080EDED6
+ .align 2, 0
+_080EDECC: .4byte gPaletteFade
+_080EDED0:
+ ldr r0, _080EDEE0
+ bl sub_80EBDBC
+_080EDED6:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EDEE0: .4byte sub_80EC00C
+ thumb_func_end sub_80EDE70
+
+ thumb_func_start sub_80EDEE4
+sub_80EDEE4: @ 80EDEE4
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r1, _080EDF04
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r0, r1, r2
+ ldrh r0, [r0]
+ adds r4, r1, 0
+ cmp r0, 0xA
+ bls _080EDEFA
+ b _080EE060
+_080EDEFA:
+ lsls r0, 2
+ ldr r1, _080EDF08
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080EDF04: .4byte 0x02000000
+_080EDF08: .4byte _080EDF0C
+ .align 2, 0
+_080EDF0C:
+ .4byte _080EDF38
+ .4byte _080EDF50
+ .4byte _080EDF80
+ .4byte _080EDF98
+ .4byte _080EDFB0
+ .4byte _080EDFC8
+ .4byte _080EDFE0
+ .4byte _080EDFF8
+ .4byte _080EE01C
+ .4byte _080EE030
+ .4byte _080EE050
+_080EDF38:
+ movs r1, 0xC2
+ lsls r1, 2
+ adds r0, r4, r1
+ ldr r0, [r0]
+ movs r1, 0x1
+ negs r1, r1
+ movs r2, 0
+ str r2, [sp]
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ b _080EE03C
+_080EDF50:
+ ldr r0, _080EDF78
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _080EDF5E
+ b _080EE060
+_080EDF5E:
+ movs r0, 0
+ bl SetVBlankCallback
+ bl sub_80EED0C
+ bl sub_80F3130
+ ldr r1, _080EDF7C
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r0
+ b _080EE042
+ .align 2, 0
+_080EDF78: .4byte gPaletteFade
+_080EDF7C: .4byte 0x02000000
+_080EDF80:
+ bl sub_80F66E0
+ bl sub_80EEE08
+ ldr r1, _080EDF94
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r2
+ b _080EE042
+ .align 2, 0
+_080EDF94: .4byte 0x02000000
+_080EDF98:
+ bl sub_80F1080
+ lsls r0, 24
+ cmp r0, 0
+ bne _080EE060
+ ldr r1, _080EDFAC
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r0
+ b _080EE042
+ .align 2, 0
+_080EDFAC: .4byte 0x02000000
+_080EDFB0:
+ movs r0, 0x5
+ bl sub_80EEFBC
+ bl sub_80F38B8
+ ldr r1, _080EDFDC
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r2
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_080EDFC8:
+ bl sub_80F38EC
+ lsls r0, 24
+ cmp r0, 0
+ bne _080EE060
+ ldr r1, _080EDFDC
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r0
+ b _080EE042
+ .align 2, 0
+_080EDFDC: .4byte 0x02000000
+_080EDFE0:
+ bl sub_8055870
+ cmp r0, 0
+ bne _080EE060
+ ldr r1, _080EDFF4
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r2
+ b _080EE042
+ .align 2, 0
+_080EDFF4: .4byte 0x02000000
+_080EDFF8:
+ movs r1, 0xC2
+ lsls r1, 2
+ adds r0, r4, r1
+ ldr r0, [r0]
+ movs r1, 0x1
+ negs r1, r1
+ movs r2, 0
+ str r2, [sp]
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ ldr r0, _080EE018
+ bl SetVBlankCallback
+ b _080EE03C
+ .align 2, 0
+_080EE018: .4byte sub_80EBD18
+_080EE01C:
+ movs r0, 0x3
+ bl sub_80EED2C
+ ldr r1, _080EE02C
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r0
+ b _080EE042
+ .align 2, 0
+_080EE02C: .4byte 0x02000000
+_080EE030:
+ ldr r0, _080EE04C
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080EE060
+_080EE03C:
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r4, r2
+_080EE042:
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ b _080EE060
+ .align 2, 0
+_080EE04C: .4byte gPaletteFade
+_080EE050:
+ bl sub_80F170C
+ lsls r0, 24
+ cmp r0, 0
+ bne _080EE060
+ ldr r0, _080EE068
+ bl sub_80EBDBC
+_080EE060:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EE068: .4byte sub_80EE06C
+ thumb_func_end sub_80EDEE4
+
+ thumb_func_start sub_80EE06C
+sub_80EE06C: @ 80EE06C
+ push {r4,r5,lr}
+ ldr r1, _080EE08C
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r0, r1, r2
+ ldrh r0, [r0]
+ adds r4, r1, 0
+ cmp r0, 0x8
+ bls _080EE080
+ b _080EE288
+_080EE080:
+ lsls r0, 2
+ ldr r1, _080EE090
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080EE08C: .4byte 0x02000000
+_080EE090: .4byte _080EE094
+ .align 2, 0
+_080EE094:
+ .4byte _080EE0B8
+ .4byte _080EE0CC
+ .4byte _080EE180
+ .4byte _080EE19C
+ .4byte _080EE1B8
+ .4byte _080EE1D0
+ .4byte _080EE1F8
+ .4byte _080EE250
+ .4byte _080EE26C
+_080EE0B8:
+ bl sub_80F15A8
+ ldr r1, _080EE0C8
+ movs r5, 0xC1
+ lsls r5, 2
+ adds r1, r5
+ b _080EE1C4
+ .align 2, 0
+_080EE0C8: .4byte 0x02000000
+_080EE0CC:
+ ldr r2, _080EE0FC
+ ldrh r1, [r2, 0x30]
+ movs r0, 0x40
+ ands r0, r1
+ adds r3, r2, 0
+ cmp r0, 0
+ beq _080EE104
+ ldr r1, _080EE100
+ adds r0, r4, r1
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ cmp r0, 0
+ beq _080EE104
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+ negs r0, r0
+ bl sub_80F6A4C
+ movs r5, 0xC1
+ lsls r5, 2
+ adds r1, r4, r5
+ b _080EE1C4
+ .align 2, 0
+_080EE0FC: .4byte gMain
+_080EE100: .4byte 0x000087dc
+_080EE104:
+ ldrh r1, [r3, 0x30]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _080EE140
+ ldr r1, _080EE138
+ adds r0, r4, r1
+ ldr r2, _080EE13C
+ adds r1, r4, r2
+ movs r5, 0
+ ldrsh r2, [r0, r5]
+ movs r5, 0
+ ldrsh r0, [r1, r5]
+ cmp r2, r0
+ bge _080EE140
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+ bl sub_80F6A4C
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r4, r0
+ b _080EE1C4
+ .align 2, 0
+_080EE138: .4byte 0x000087dc
+_080EE13C: .4byte 0x00008774
+_080EE140:
+ ldrh r2, [r3, 0x2E]
+ movs r0, 0x1
+ ands r0, r2
+ cmp r0, 0
+ beq _080EE164
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0xB
+ bl sub_80EEFBC
+ ldr r0, _080EE160
+ movs r1, 0xC1
+ lsls r1, 2
+ adds r0, r1
+ b _080EE262
+ .align 2, 0
+_080EE160: .4byte 0x02000000
+_080EE164:
+ movs r0, 0x2
+ ands r0, r2
+ cmp r0, 0
+ bne _080EE16E
+ b _080EE288
+_080EE16E:
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, _080EE17C
+ bl sub_80EBDBC
+ b _080EE288
+ .align 2, 0
+_080EE17C: .4byte sub_80EE294
+_080EE180:
+ bl sub_80F6AF0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080EE18C
+ b _080EE288
+_080EE18C:
+ ldr r1, _080EE198
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r2
+ b _080EE1C4
+ .align 2, 0
+_080EE198: .4byte 0x02000000
+_080EE19C:
+ bl sub_8055870
+ adds r1, r0, 0
+ cmp r1, 0
+ bne _080EE288
+ ldr r0, _080EE1B4
+ movs r5, 0xC1
+ lsls r5, 2
+ adds r0, r5
+ strh r1, [r0]
+ b _080EE288
+ .align 2, 0
+_080EE1B4: .4byte 0x02000000
+_080EE1B8:
+ bl sub_80F3B00
+ ldr r1, _080EE1CC
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r0
+_080EE1C4:
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ b _080EE288
+ .align 2, 0
+_080EE1CC: .4byte 0x02000000
+_080EE1D0:
+ bl sub_80F3B58
+ lsls r0, 24
+ cmp r0, 0
+ bne _080EE288
+ bl sub_80F1494
+ ldr r1, _080EE1F4
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r2
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ bl sub_80EED9C
+ b _080EE288
+ .align 2, 0
+_080EE1F4: .4byte 0x02000000
+_080EE1F8:
+ bl sub_80F68E8
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ beq _080EE224
+ cmp r0, 0x1
+ bne _080EE224
+ movs r0, 0x5
+ bl PlaySE
+ bl sub_80F3B94
+ ldr r0, _080EE220
+ movs r5, 0xC1
+ lsls r5, 2
+ adds r0, r5
+ movs r1, 0x7
+ strh r1, [r0]
+ b _080EE288
+ .align 2, 0
+_080EE220: .4byte 0x02000000
+_080EE224:
+ ldr r0, _080EE248
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080EE288
+ movs r0, 0x5
+ bl PlaySE
+ bl sub_80F3B94
+ ldr r0, _080EE24C
+ movs r1, 0xC1
+ lsls r1, 2
+ adds r0, r1
+ movs r1, 0x8
+ strh r1, [r0]
+ b _080EE288
+ .align 2, 0
+_080EE248: .4byte gMain
+_080EE24C: .4byte 0x02000000
+_080EE250:
+ bl sub_80F3BD4
+ lsls r0, 24
+ cmp r0, 0
+ bne _080EE288
+ ldr r0, _080EE268
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r0, r2
+_080EE262:
+ movs r1, 0x4
+ strh r1, [r0]
+ b _080EE288
+ .align 2, 0
+_080EE268: .4byte 0x02000000
+_080EE26C:
+ bl sub_80F3BD4
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ bne _080EE288
+ movs r0, 0x5
+ bl sub_80EEFBC
+ ldr r0, _080EE290
+ movs r5, 0xC1
+ lsls r5, 2
+ adds r0, r5
+ strh r4, [r0]
+_080EE288:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EE290: .4byte 0x02000000
+ thumb_func_end sub_80EE06C
+
+ thumb_func_start sub_80EE294
+sub_80EE294: @ 80EE294
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r1, _080EE2B4
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r0, r1, r2
+ ldrh r0, [r0]
+ adds r4, r1, 0
+ cmp r0, 0x8
+ bls _080EE2AA
+ b _080EE3C6
+_080EE2AA:
+ lsls r0, 2
+ ldr r1, _080EE2B8
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080EE2B4: .4byte 0x02000000
+_080EE2B8: .4byte _080EE2BC
+ .align 2, 0
+_080EE2BC:
+ .4byte _080EE2E0
+ .4byte _080EE2FE
+ .4byte _080EE324
+ .4byte _080EE33C
+ .4byte _080EE34C
+ .4byte _080EE370
+ .4byte _080EE37A
+ .4byte _080EE39A
+ .4byte _080EE3B4
+_080EE2E0:
+ movs r1, 0xC2
+ lsls r1, 2
+ adds r0, r4, r1
+ ldr r0, [r0]
+ movs r1, 0x1
+ negs r1, r1
+ movs r2, 0
+ str r2, [sp]
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r4, r2
+ b _080EE3A8
+_080EE2FE:
+ ldr r0, _080EE320
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080EE3C6
+ movs r0, 0
+ bl SetVBlankCallback
+ bl sub_80EED0C
+ bl sub_80F3C2C
+ bl sub_80EEE08
+ b _080EE3A0
+ .align 2, 0
+_080EE320: .4byte gPaletteFade
+_080EE324:
+ bl sub_80F6134
+ movs r0, 0x1
+ bl sub_80F0264
+ ldr r1, _080EE348
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r2
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_080EE33C:
+ bl sub_80F02A0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080EE3C6
+ b _080EE3A0
+ .align 2, 0
+_080EE348: .4byte 0x02000000
+_080EE34C:
+ movs r0, 0x4
+ bl sub_80EEFBC
+ movs r0, 0x1
+ bl sub_80F3008
+ ldr r0, _080EE368
+ bl SetVBlankCallback
+ ldr r1, _080EE36C
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r2
+ b _080EE3A8
+ .align 2, 0
+_080EE368: .4byte sub_80EBD18
+_080EE36C: .4byte 0x02000000
+_080EE370:
+ bl sub_8055870
+ cmp r0, 0
+ bne _080EE3C6
+ b _080EE3A0
+_080EE37A:
+ movs r1, 0xC2
+ lsls r1, 2
+ adds r0, r4, r1
+ ldr r0, [r0]
+ movs r1, 0x1
+ negs r1, r1
+ movs r2, 0
+ str r2, [sp]
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r4, r2
+ b _080EE3A8
+_080EE39A:
+ movs r0, 0x4
+ bl sub_80EED2C
+_080EE3A0:
+ ldr r1, _080EE3B0
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r0
+_080EE3A8:
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ b _080EE3C6
+ .align 2, 0
+_080EE3B0: .4byte 0x02000000
+_080EE3B4:
+ ldr r0, _080EE3D0
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080EE3C6
+ ldr r0, _080EE3D4
+ bl sub_80EBDBC
+_080EE3C6:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EE3D0: .4byte gPaletteFade
+_080EE3D4: .4byte sub_80EDDBC
+ thumb_func_end sub_80EE294
+
+ thumb_func_start sub_80EE3D8
+sub_80EE3D8: @ 80EE3D8
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r0, _080EE3F8
+ movs r1, 0xC1
+ lsls r1, 2
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r0, 0xD
+ bls _080EE3EC
+ b _080EE57A
+_080EE3EC:
+ lsls r0, 2
+ ldr r1, _080EE3FC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080EE3F8: .4byte 0x02000000
+_080EE3FC: .4byte _080EE400
+ .align 2, 0
+_080EE400:
+ .4byte _080EE438
+ .4byte _080EE444
+ .4byte _080EE458
+ .4byte _080EE48C
+ .4byte _080EE4B0
+ .4byte _080EE4B6
+ .4byte _080EE4CA
+ .4byte _080EE4DC
+ .4byte _080EE4F0
+ .4byte _080EE504
+ .4byte _080EE50C
+ .4byte _080EE516
+ .4byte _080EE54C
+ .4byte _080EE568
+_080EE438:
+ bl sub_80F1E84
+ movs r0, 0
+ bl sub_80F2D04
+ b _080EE552
+_080EE444:
+ bl sub_80F1F10
+ lsls r0, 24
+ cmp r0, 0
+ beq _080EE450
+ b _080EE57A
+_080EE450:
+ movs r0, 0x9
+ bl sub_80EEFBC
+ b _080EE552
+_080EE458:
+ bl sub_80EEF34
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0
+ beq _080EE466
+ b _080EE57A
+_080EE466:
+ ldr r4, _080EE488
+ movs r1, 0xC2
+ lsls r1, 2
+ adds r0, r4, r1
+ ldr r0, [r0]
+ movs r1, 0x1
+ negs r1, r1
+ str r2, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r4, r0
+ b _080EE55A
+ .align 2, 0
+_080EE488: .4byte 0x02000000
+_080EE48C:
+ ldr r0, _080EE4AC
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080EE57A
+ movs r0, 0
+ bl SetVBlankCallback
+ bl sub_80EED0C
+ bl sub_80EF814
+ bl sub_80EEE08
+ b _080EE552
+ .align 2, 0
+_080EE4AC: .4byte gPaletteFade
+_080EE4B0:
+ bl sub_80F2620
+ b _080EE552
+_080EE4B6:
+ movs r0, 0x2
+ bl sub_80F0264
+ ldr r1, _080EE4D8
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r0
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_080EE4CA:
+ bl sub_80F02A0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080EE57A
+ b _080EE552
+ .align 2, 0
+_080EE4D8: .4byte 0x02000000
+_080EE4DC:
+ movs r0, 0x3
+ bl sub_80F2C80
+ ldr r1, _080EE500
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r0
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_080EE4F0:
+ movs r0, 0x3
+ bl sub_80F2CBC
+ lsls r0, 24
+ cmp r0, 0
+ bne _080EE57A
+ b _080EE552
+ .align 2, 0
+_080EE500: .4byte 0x02000000
+_080EE504:
+ movs r0, 0x2
+ bl sub_80F3008
+ b _080EE552
+_080EE50C:
+ bl sub_8055870
+ cmp r0, 0
+ bne _080EE57A
+ b _080EE552
+_080EE516:
+ bl sub_80F6F10
+ ldr r4, _080EE544
+ movs r1, 0xC2
+ lsls r1, 2
+ adds r0, r4, r1
+ ldr r0, [r0]
+ movs r1, 0x1
+ negs r1, r1
+ movs r2, 0
+ str r2, [sp]
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ ldr r0, _080EE548
+ bl SetVBlankCallback
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r4, r0
+ b _080EE55A
+ .align 2, 0
+_080EE544: .4byte 0x02000000
+_080EE548: .4byte sub_80EBD68
+_080EE54C:
+ movs r0, 0x5
+ bl sub_80EED2C
+_080EE552:
+ ldr r1, _080EE564
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r0
+_080EE55A:
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ b _080EE57A
+ .align 2, 0
+_080EE564: .4byte 0x02000000
+_080EE568:
+ ldr r0, _080EE584
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080EE57A
+ ldr r0, _080EE588
+ bl sub_80EBDBC
+_080EE57A:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EE584: .4byte gPaletteFade
+_080EE588: .4byte sub_80EE58C
+ thumb_func_end sub_80EE3D8
+
+ thumb_func_start sub_80EE58C
+sub_80EE58C: @ 80EE58C
+ push {r4,r5,lr}
+ ldr r5, _080EE5A8
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r4, r5, r0
+ ldrh r0, [r4]
+ cmp r0, 0x1
+ beq _080EE624
+ cmp r0, 0x1
+ bgt _080EE5AC
+ cmp r0, 0
+ beq _080EE5B2
+ b _080EE652
+ .align 2, 0
+_080EE5A8: .4byte 0x02000000
+_080EE5AC:
+ cmp r0, 0x2
+ beq _080EE648
+ b _080EE652
+_080EE5B2:
+ bl sub_80F5DD4
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _080EE5E4
+ cmp r0, 0x2
+ beq _080EE5FC
+ ldr r0, _080EE5DC
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080EE608
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, _080EE5E0
+ bl sub_80EBDBC
+ b _080EE652
+ .align 2, 0
+_080EE5DC: .4byte gMain
+_080EE5E0: .4byte sub_80EE658
+_080EE5E4:
+ movs r0, 0x5
+ bl PlaySE
+ ldr r1, _080EE5F8
+ adds r0, r5, r1
+ ldrb r0, [r0]
+ bl sub_80F0FFC
+ b _080EE652
+ .align 2, 0
+_080EE5F8: .4byte 0x0000876e
+_080EE5FC:
+ movs r0, 0x5
+ bl PlaySE
+ ldrh r0, [r4]
+ adds r0, 0x1
+ b _080EE650
+_080EE608:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080EE652
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, _080EE620
+ bl sub_80EBDBC
+ b _080EE652
+ .align 2, 0
+_080EE620: .4byte sub_80EE8F4
+_080EE624:
+ bl sub_80F0718
+ lsls r0, 24
+ cmp r0, 0
+ bne _080EE652
+ ldr r1, _080EE644
+ adds r0, r5, r1
+ ldrb r0, [r0]
+ bl sub_80F0FFC
+ bl sub_80F3264
+ ldrh r0, [r4]
+ adds r0, 0x1
+ b _080EE650
+ .align 2, 0
+_080EE644: .4byte 0x0000876e
+_080EE648:
+ bl sub_8055870
+ cmp r0, 0
+ bne _080EE652
+_080EE650:
+ strh r0, [r4]
+_080EE652:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80EE58C
+
+ thumb_func_start sub_80EE658
+sub_80EE658: @ 80EE658
+ push {r4,r5,lr}
+ ldr r1, _080EE678
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r0, r1, r2
+ ldrh r0, [r0]
+ adds r4, r1, 0
+ cmp r0, 0x11
+ bls _080EE66C
+ b _080EE8E8
+_080EE66C:
+ lsls r0, 2
+ ldr r1, _080EE67C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080EE678: .4byte 0x02000000
+_080EE67C: .4byte _080EE680
+ .align 2, 0
+_080EE680:
+ .4byte _080EE6C8
+ .4byte _080EE6DA
+ .4byte _080EE6F4
+ .4byte _080EE708
+ .4byte _080EE71C
+ .4byte _080EE730
+ .4byte _080EE758
+ .4byte _080EE76A
+ .4byte _080EE780
+ .4byte _080EE820
+ .4byte _080EE840
+ .4byte _080EE854
+ .4byte _080EE868
+ .4byte _080EE86E
+ .4byte _080EE880
+ .4byte _080EE898
+ .4byte _080EE8B4
+ .4byte _080EE8D4
+_080EE6C8:
+ movs r0, 0x1
+ bl sub_80F3294
+ movs r0, 0xA
+ bl sub_80EEFBC
+ bl sub_80F0B24
+ b _080EE8BE
+_080EE6DA:
+ bl sub_80F0B44
+ lsls r0, 24
+ cmp r0, 0
+ beq _080EE6E6
+ b _080EE8E8
+_080EE6E6:
+ ldr r1, _080EE6F0
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r0
+ b _080EE8C6
+ .align 2, 0
+_080EE6F0: .4byte 0x02000000
+_080EE6F4:
+ bl sub_80F0F64
+ ldr r1, _080EE704
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r2
+ b _080EE8C6
+ .align 2, 0
+_080EE704: .4byte 0x02000000
+_080EE708:
+ bl sub_80F0FEC
+ lsls r0, 24
+ cmp r0, 0
+ beq _080EE714
+ b _080EE8E8
+_080EE714:
+ movs r0, 0x1
+ bl sub_80F6FB8
+ b _080EE8BE
+_080EE71C:
+ bl sub_80F6DB8
+ ldr r1, _080EE72C
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r0
+ b _080EE8C6
+ .align 2, 0
+_080EE72C: .4byte 0x02000000
+_080EE730:
+ ldr r4, _080EE750
+ adds r0, r4, 0
+ subs r0, 0x1A
+ ldrh r1, [r0]
+ adds r0, r4, 0
+ bl sub_80F700C
+ adds r0, r4, 0
+ bl sub_80F42C4
+ ldr r1, _080EE754
+ adds r4, r1
+ ldrh r0, [r4]
+ adds r0, 0x1
+ strh r0, [r4]
+ b _080EE8E8
+ .align 2, 0
+_080EE750: .4byte 0x02008788
+_080EE754: .4byte 0xffff7b7c
+_080EE758:
+ bl sub_80F0CD8
+ ldr r1, _080EE77C
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r2
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_080EE76A:
+ bl sub_80F6E9C
+ lsls r0, 24
+ cmp r0, 0
+ beq _080EE776
+ b _080EE8E8
+_080EE776:
+ bl sub_80F0D5C
+ b _080EE8B8
+ .align 2, 0
+_080EE77C: .4byte 0x02000000
+_080EE780:
+ ldr r2, _080EE7B0
+ ldrh r1, [r2, 0x2C]
+ movs r0, 0x40
+ ands r0, r1
+ adds r3, r2, 0
+ cmp r0, 0
+ beq _080EE7B8
+ ldr r1, _080EE7B4
+ adds r0, r4, r1
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ cmp r0, 0
+ beq _080EE7B8
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+ negs r0, r0
+ bl sub_80F708C
+ movs r5, 0xC1
+ lsls r5, 2
+ adds r1, r4, r5
+ b _080EE7E8
+ .align 2, 0
+_080EE7B0: .4byte gMain
+_080EE7B4: .4byte 0x000087dc
+_080EE7B8:
+ ldrh r1, [r3, 0x2C]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _080EE7F8
+ ldr r1, _080EE7F0
+ adds r0, r4, r1
+ ldr r2, _080EE7F4
+ adds r1, r4, r2
+ movs r5, 0
+ ldrsh r2, [r0, r5]
+ movs r5, 0
+ ldrsh r0, [r1, r5]
+ cmp r2, r0
+ bge _080EE7F8
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+ bl sub_80F708C
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r4, r0
+_080EE7E8:
+ movs r0, 0x10
+ strh r0, [r1]
+ b _080EE8E8
+ .align 2, 0
+_080EE7F0: .4byte 0x000087dc
+_080EE7F4: .4byte 0x00008774
+_080EE7F8:
+ ldrh r1, [r3, 0x2E]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080EE8E8
+ movs r0, 0x5
+ bl PlaySE
+ bl sub_80F4394
+ bl sub_80F0EC0
+ ldr r1, _080EE81C
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r2
+ b _080EE8C6
+ .align 2, 0
+_080EE81C: .4byte 0x02000000
+_080EE820:
+ bl sub_80F6ED4
+ lsls r0, 24
+ cmp r0, 0
+ bne _080EE8E8
+ bl sub_80F0EF4
+ lsls r0, 24
+ cmp r0, 0
+ bne _080EE8E8
+ movs r0, 0
+ bl sub_80F6FB8
+ bl sub_80F2FB0
+ b _080EE8BE
+_080EE840:
+ bl sub_80F6134
+ ldr r1, _080EE850
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r0
+ b _080EE8C6
+ .align 2, 0
+_080EE850: .4byte 0x02000000
+_080EE854:
+ bl sub_80F0FA0
+ ldr r1, _080EE864
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r2
+ b _080EE8C6
+ .align 2, 0
+_080EE864: .4byte 0x02000000
+_080EE868:
+ bl sub_80F0FEC
+ b _080EE8B8
+_080EE86E:
+ bl sub_80F0C28
+ ldr r1, _080EE87C
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r0
+ b _080EE8C6
+ .align 2, 0
+_080EE87C: .4byte 0x02000000
+_080EE880:
+ bl sub_80F0C48
+ lsls r0, 24
+ cmp r0, 0
+ bne _080EE8E8
+ ldr r1, _080EE894
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r2
+ b _080EE8C6
+ .align 2, 0
+_080EE894: .4byte 0x02000000
+_080EE898:
+ movs r0, 0x9
+ bl sub_80EEFBC
+ movs r0, 0
+ bl sub_80F3294
+ ldr r0, _080EE8B0
+ bl sub_80EBDBC
+ bl sub_80EED9C
+ b _080EE8E8
+ .align 2, 0
+_080EE8B0: .4byte sub_80EE58C
+_080EE8B4:
+ bl sub_80F70FC
+_080EE8B8:
+ lsls r0, 24
+ cmp r0, 0
+ bne _080EE8E8
+_080EE8BE:
+ ldr r1, _080EE8D0
+ movs r5, 0xC1
+ lsls r5, 2
+ adds r1, r5
+_080EE8C6:
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ b _080EE8E8
+ .align 2, 0
+_080EE8D0: .4byte 0x02000000
+_080EE8D4:
+ bl sub_8055870
+ cmp r0, 0
+ bne _080EE8E8
+ ldr r0, _080EE8F0
+ movs r1, 0xC1
+ lsls r1, 2
+ adds r0, r1
+ movs r1, 0x8
+ strh r1, [r0]
+_080EE8E8:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EE8F0: .4byte 0x02000000
+ thumb_func_end sub_80EE658
+
+ thumb_func_start sub_80EE8F4
+sub_80EE8F4: @ 80EE8F4
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r0, _080EE910
+ movs r1, 0xC1
+ lsls r1, 2
+ adds r4, r0, r1
+ ldrh r2, [r4]
+ cmp r2, 0x1
+ beq _080EE932
+ cmp r2, 0x1
+ bgt _080EE914
+ cmp r2, 0
+ beq _080EE91A
+ b _080EE95E
+ .align 2, 0
+_080EE910: .4byte 0x02000000
+_080EE914:
+ cmp r2, 0x2
+ beq _080EE958
+ b _080EE95E
+_080EE91A:
+ movs r1, 0xC2
+ lsls r1, 2
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x1
+ negs r1, r1
+ str r2, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ b _080EE94C
+_080EE932:
+ ldr r0, _080EE954
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080EE95E
+ bl sub_80F3130
+ movs r0, 0x2
+ bl sub_80F2D6C
+ bl sub_80F6FFC
+_080EE94C:
+ ldrh r0, [r4]
+ adds r0, 0x1
+ strh r0, [r4]
+ b _080EE95E
+ .align 2, 0
+_080EE954: .4byte gPaletteFade
+_080EE958:
+ ldr r0, _080EE968
+ bl sub_80EBDBC
+_080EE95E:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EE968: .4byte sub_80EC00C
+ thumb_func_end sub_80EE8F4
+
+ thumb_func_start sub_80EE96C
+sub_80EE96C: @ 80EE96C
+ push {r4,r5,lr}
+ sub sp, 0x4
+ ldr r0, _080EE99C
+ movs r1, 0xC1
+ lsls r1, 2
+ adds r5, r0, r1
+ ldrh r4, [r5]
+ cmp r4, 0
+ bne _080EE9A0
+ movs r0, 0x6F
+ bl PlaySE
+ movs r0, 0x1
+ negs r0, r0
+ str r4, [sp]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldrh r0, [r5]
+ adds r0, 0x1
+ strh r0, [r5]
+ b _080EE9B4
+ .align 2, 0
+_080EE99C: .4byte 0x02000000
+_080EE9A0:
+ ldr r0, _080EE9BC
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080EE9B4
+ bl sub_80F5BDC
+ bl sub_805469C
+_080EE9B4:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EE9BC: .4byte gPaletteFade
+ thumb_func_end sub_80EE96C
+
+ thumb_func_start sub_80EE9C0
+sub_80EE9C0: @ 80EE9C0
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ adds r6, r2, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r6, 24
+ lsrs r6, 24
+ bl sub_80F1E84
+ ldr r1, _080EE9FC
+ ldr r2, _080EEA00
+ adds r0, r1, r2
+ movs r2, 0
+ strb r4, [r0]
+ ldr r3, _080EEA04
+ adds r0, r1, r3
+ strb r5, [r0]
+ adds r3, 0x1
+ adds r0, r1, r3
+ strb r2, [r0]
+ ldr r0, _080EEA08
+ adds r1, r0
+ strb r6, [r1]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EE9FC: .4byte 0x02000000
+_080EEA00: .4byte 0x00006e14
+_080EEA04: .4byte 0x00006e15
+_080EEA08: .4byte 0x00006e17
+ thumb_func_end sub_80EE9C0
+
+ thumb_func_start sub_80EEA0C
+sub_80EEA0C: @ 80EEA0C
+ push {r4,lr}
+ ldr r1, _080EEA28
+ ldr r2, _080EEA2C
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ adds r3, r1, 0
+ cmp r0, 0x8
+ bls _080EEA1E
+ b _080EEBFA
+_080EEA1E:
+ lsls r0, 2
+ ldr r1, _080EEA30
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080EEA28: .4byte 0x02000000
+_080EEA2C: .4byte 0x00006e16
+_080EEA30: .4byte _080EEA34
+ .align 2, 0
+_080EEA34:
+ .4byte _080EEA58
+ .4byte _080EEA98
+ .4byte _080EEAAE
+ .4byte _080EEAD4
+ .4byte _080EEB3E
+ .4byte _080EEB68
+ .4byte _080EEB88
+ .4byte _080EEBAC
+ .4byte _080EEBE4
+_080EEA58:
+ bl sub_80F1F10
+ lsls r0, 24
+ cmp r0, 0
+ beq _080EEA64
+ b _080EEC08
+_080EEA64:
+ ldr r1, _080EEA7C
+ ldr r4, _080EEA80
+ adds r0, r1, r4
+ ldrb r0, [r0]
+ cmp r0, 0xC
+ beq _080EEA88
+ ldr r0, _080EEA84
+ adds r1, r0
+ movs r0, 0x1
+ strb r0, [r1]
+ b _080EEC08
+ .align 2, 0
+_080EEA7C: .4byte 0x02000000
+_080EEA80: .4byte 0x00006e17
+_080EEA84: .4byte 0x00006e16
+_080EEA88:
+ ldr r2, _080EEA94
+ adds r1, r2
+ movs r0, 0x3
+ strb r0, [r1]
+ b _080EEC08
+ .align 2, 0
+_080EEA94: .4byte 0x00006e16
+_080EEA98:
+ ldr r4, _080EEAC8
+ ldr r1, _080EEACC
+ adds r0, r4, r1
+ ldrb r0, [r0]
+ bl sub_80F2C80
+ ldr r2, _080EEAD0
+ adds r4, r2
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+_080EEAAE:
+ ldr r4, _080EEAC8
+ ldr r1, _080EEACC
+ adds r0, r4, r1
+ ldrb r0, [r0]
+ bl sub_80F2CBC
+ lsls r0, 24
+ cmp r0, 0
+ beq _080EEAC2
+ b _080EEC08
+_080EEAC2:
+ ldr r2, _080EEAD0
+ adds r1, r4, r2
+ b _080EEB76
+ .align 2, 0
+_080EEAC8: .4byte 0x02000000
+_080EEACC: .4byte 0x00006e17
+_080EEAD0: .4byte 0x00006e16
+_080EEAD4:
+ adds r2, r3, 0
+ ldr r4, _080EEAF8
+ adds r0, r2, r4
+ ldrb r1, [r0]
+ subs r4, 0x68
+ adds r0, r2, r4
+ strb r1, [r0]
+ ldr r1, _080EEAFC
+ adds r0, r2, r1
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ beq _080EEB14
+ cmp r0, 0x1
+ bgt _080EEB00
+ cmp r0, 0
+ beq _080EEB06
+ b _080EEB28
+ .align 2, 0
+_080EEAF8: .4byte 0x00006e15
+_080EEAFC: .4byte 0x00006e14
+_080EEB00:
+ cmp r0, 0x2
+ beq _080EEB20
+ b _080EEB28
+_080EEB06:
+ ldr r4, _080EEB10
+ adds r1, r2, r4
+ movs r0, 0x5
+ b _080EEB26
+ .align 2, 0
+_080EEB10: .4byte 0x00006dae
+_080EEB14:
+ ldr r0, _080EEB1C
+ adds r1, r2, r0
+ movs r0, 0x3
+ b _080EEB26
+ .align 2, 0
+_080EEB1C: .4byte 0x00006dae
+_080EEB20:
+ ldr r2, _080EEB58
+ adds r1, r3, r2
+ movs r0, 0x6
+_080EEB26:
+ strb r0, [r1]
+_080EEB28:
+ ldr r4, _080EEB5C
+ ldr r1, _080EEB60
+ adds r0, r4, r1
+ ldrb r0, [r0]
+ bl sub_80F1B8C
+ ldr r2, _080EEB64
+ adds r4, r2
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+_080EEB3E:
+ ldr r4, _080EEB5C
+ ldr r1, _080EEB60
+ adds r0, r4, r1
+ ldrb r0, [r0]
+ bl sub_80F1BC8
+ lsls r0, 24
+ cmp r0, 0
+ bne _080EEC08
+ ldr r2, _080EEB64
+ adds r1, r4, r2
+ b _080EEB76
+ .align 2, 0
+_080EEB58: .4byte 0x00006dae
+_080EEB5C: .4byte 0x02000000
+_080EEB60: .4byte 0x00006e14
+_080EEB64: .4byte 0x00006e16
+_080EEB68:
+ bl sub_8055870
+ cmp r0, 0
+ bne _080EEC08
+ ldr r1, _080EEB80
+ ldr r4, _080EEB84
+ adds r1, r4
+_080EEB76:
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _080EEC08
+ .align 2, 0
+_080EEB80: .4byte 0x02000000
+_080EEB84: .4byte 0x00006e16
+_080EEB88:
+ bl sub_80F1DF0
+ ldr r4, _080EEBA0
+ ldr r1, _080EEBA4
+ adds r0, r4, r1
+ ldrb r0, [r0]
+ bl sub_80EF490
+ ldr r2, _080EEBA8
+ adds r4, r2
+ b _080EEBCC
+ .align 2, 0
+_080EEBA0: .4byte 0x02000000
+_080EEBA4: .4byte 0x00006e14
+_080EEBA8: .4byte 0x00006e16
+_080EEBAC:
+ bl sub_80F1E50
+ lsls r0, 24
+ cmp r0, 0
+ bne _080EEC08
+ ldr r4, _080EEBD4
+ ldr r1, _080EEBD8
+ adds r0, r4, r1
+ ldrb r0, [r0]
+ ldr r2, _080EEBDC
+ adds r1, r4, r2
+ ldrb r1, [r1]
+ bl sub_80EF428
+ ldr r0, _080EEBE0
+ adds r4, r0
+_080EEBCC:
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+ b _080EEC08
+ .align 2, 0
+_080EEBD4: .4byte 0x02000000
+_080EEBD8: .4byte 0x00006e14
+_080EEBDC: .4byte 0x00006dad
+_080EEBE0: .4byte 0x00006e16
+_080EEBE4:
+ bl sub_80EF4F8
+ lsls r0, 24
+ cmp r0, 0
+ bne _080EEC08
+ ldr r1, _080EEC00
+ ldr r2, _080EEC04
+ adds r1, r2
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+_080EEBFA:
+ movs r0, 0
+ b _080EEC0A
+ .align 2, 0
+_080EEC00: .4byte 0x02000000
+_080EEC04: .4byte 0x00006e16
+_080EEC08:
+ movs r0, 0x1
+_080EEC0A:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80EEA0C
+
+ thumb_func_start sub_80EEC10
+sub_80EEC10: @ 80EEC10
+ push {r4,lr}
+ ldr r0, _080EEC48
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _080EEC50
+ ldr r1, _080EEC4C
+ adds r3, r1, 0x1
+ adds r2, r1, 0x5
+_080EEC24:
+ ldrb r0, [r1]
+ subs r0, 0x1
+ strb r0, [r1]
+ lsls r0, 24
+ cmp r0, 0
+ bge _080EEC36
+ ldrb r0, [r3]
+ subs r0, 0x1
+ strb r0, [r1]
+_080EEC36:
+ movs r0, 0
+ ldrsb r0, [r1, r0]
+ adds r0, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080EEC24
+ movs r0, 0x1
+ b _080EEC8A
+ .align 2, 0
+_080EEC48: .4byte gMain
+_080EEC4C: .4byte 0x02006dad
+_080EEC50:
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _080EEC88
+ ldr r1, _080EEC84
+ movs r4, 0
+ movs r2, 0x1
+ ldrsb r2, [r1, r2]
+ adds r3, r1, 0x5
+_080EEC62:
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, r2
+ blt _080EEC72
+ strb r4, [r1]
+_080EEC72:
+ movs r0, 0
+ ldrsb r0, [r1, r0]
+ adds r0, r3
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080EEC62
+ movs r0, 0x1
+ b _080EEC8A
+ .align 2, 0
+_080EEC84: .4byte 0x02006dad
+_080EEC88:
+ movs r0, 0
+_080EEC8A:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80EEC10
+
+ thumb_func_start sub_80EEC90
+sub_80EEC90: @ 80EEC90
+ push {r4,lr}
+ ldr r0, _080EECC0
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x40
+ ands r0, r1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0
+ beq _080EECD0
+ ldr r2, _080EECC4
+ ldr r0, _080EECC8
+ adds r1, r2, r0
+ ldrb r0, [r1]
+ subs r0, 0x1
+ strb r0, [r1]
+ lsls r0, 24
+ cmp r0, 0
+ bge _080EECF8
+ ldr r3, _080EECCC
+ adds r0, r2, r3
+ ldrb r0, [r0]
+ subs r0, 0x1
+ strb r0, [r1]
+ b _080EECF8
+ .align 2, 0
+_080EECC0: .4byte gMain
+_080EECC4: .4byte 0x02000000
+_080EECC8: .4byte 0x00006dad
+_080EECCC: .4byte 0x00006dae
+_080EECD0:
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _080EED04
+ ldr r0, _080EECFC
+ ldr r4, _080EED00
+ adds r2, r0, r4
+ ldrb r1, [r2]
+ adds r1, 0x1
+ strb r1, [r2]
+ adds r4, 0x1
+ adds r0, r4
+ lsls r1, 24
+ asrs r1, 24
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r1, r0
+ blt _080EECF8
+ strb r3, [r2]
+_080EECF8:
+ movs r0, 0x1
+ b _080EED06
+ .align 2, 0
+_080EECFC: .4byte 0x02000000
+_080EED00: .4byte 0x00006dad
+_080EED04:
+ movs r0, 0
+_080EED06:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80EEC90
+
+ thumb_func_start sub_80EED0C
+sub_80EED0C: @ 80EED0C
+ movs r1, 0x80
+ lsls r1, 19
+ movs r2, 0x80
+ lsls r2, 2
+ adds r0, r2, 0
+ strh r0, [r1]
+ bx lr
+ thumb_func_end sub_80EED0C
+
+ thumb_func_start sub_80EED1C
+sub_80EED1C: @ 80EED1C
+ movs r1, 0x80
+ lsls r1, 19
+ movs r2, 0x92
+ lsls r2, 5
+ adds r0, r2, 0
+ strh r0, [r1]
+ bx lr
+ thumb_func_end sub_80EED1C
+
+ thumb_func_start sub_80EED2C
+sub_80EED2C: @ 80EED2C
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x5
+ bhi _080EED98
+ lsls r0, 2
+ ldr r1, _080EED40
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080EED40: .4byte _080EED44
+ .align 2, 0
+_080EED44:
+ .4byte _080EED5C
+ .4byte _080EED66
+ .4byte _080EED7E
+ .4byte _080EED74
+ .4byte _080EED74
+ .4byte _080EED8C
+_080EED5C:
+ movs r1, 0x80
+ lsls r1, 19
+ movs r2, 0xFA
+ lsls r2, 5
+ b _080EED94
+_080EED66:
+ movs r1, 0x80
+ lsls r1, 19
+ ldr r2, _080EED70
+ b _080EED94
+ .align 2, 0
+_080EED70: .4byte 0x00001741
+_080EED74:
+ movs r1, 0x80
+ lsls r1, 19
+ movs r2, 0xFA
+ lsls r2, 5
+ b _080EED94
+_080EED7E:
+ movs r1, 0x80
+ lsls r1, 19
+ ldr r2, _080EED88
+ b _080EED94
+ .align 2, 0
+_080EED88: .4byte 0x00007b40
+_080EED8C:
+ movs r1, 0x80
+ lsls r1, 19
+ movs r2, 0xFD
+ lsls r2, 6
+_080EED94:
+ adds r0, r2, 0
+ strh r0, [r1]
+_080EED98:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80EED2C
+
+ thumb_func_start sub_80EED9C
+sub_80EED9C: @ 80EED9C
+ push {lr}
+ ldr r2, _080EEDB8
+ ldr r0, _080EEDBC
+ movs r1, 0xC0
+ lsls r1, 2
+ adds r0, r1
+ ldr r1, [r0]
+ str r1, [r2]
+ ldr r1, _080EEDC0
+ str r1, [r0]
+ bl _call_via_r1
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EEDB8: .4byte gUnknown_03000744
+_080EEDBC: .4byte 0x02000000
+_080EEDC0: .4byte sub_80EEDC4
+ thumb_func_end sub_80EED9C
+
+ thumb_func_start sub_80EEDC4
+sub_80EEDC4: @ 80EEDC4
+ push {lr}
+ bl sub_8055870
+ cmp r0, 0x1
+ beq _080EEDDC
+ ldr r0, _080EEDE0
+ movs r1, 0xC0
+ lsls r1, 2
+ adds r0, r1
+ ldr r1, _080EEDE4
+ ldr r1, [r1]
+ str r1, [r0]
+_080EEDDC:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EEDE0: .4byte 0x02000000
+_080EEDE4: .4byte gUnknown_03000744
+ thumb_func_end sub_80EEDC4
+
+ thumb_func_start sub_80EEDE8
+sub_80EEDE8: @ 80EEDE8
+ ldr r0, _080EEE04
+ movs r1, 0
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x8
+ strh r1, [r0]
+ subs r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x4
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ bx lr
+ .align 2, 0
+_080EEE04: .4byte REG_BG0HOFS
+ thumb_func_end sub_80EEDE8
+
+ thumb_func_start sub_80EEE08
+sub_80EEE08: @ 80EEE08
+ ldr r0, _080EEE18
+ ldr r0, [r0]
+ ldr r1, _080EEE1C
+ adds r0, r1
+ movs r1, 0
+ strh r1, [r0]
+ bx lr
+ .align 2, 0
+_080EEE18: .4byte gUnknown_083DFEC4
+_080EEE1C: .4byte 0x0000d160
+ thumb_func_end sub_80EEE08
+
+ thumb_func_start sub_80EEE20
+sub_80EEE20: @ 80EEE20
+ push {lr}
+ ldr r0, _080EEE48
+ ldr r0, [r0]
+ ldr r1, _080EEE4C
+ adds r2, r0, r1
+ movs r1, 0
+ strh r1, [r2]
+ ldr r1, _080EEE50
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080EEE42
+_080EEE38:
+ bl sub_80EEE54
+ lsls r0, 24
+ cmp r0, 0
+ bne _080EEE38
+_080EEE42:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EEE48: .4byte gUnknown_083DFEC4
+_080EEE4C: .4byte 0x0000d160
+_080EEE50: .4byte 0x00006dac
+ thumb_func_end sub_80EEE20
+
+ thumb_func_start sub_80EEE54
+sub_80EEE54: @ 80EEE54
+ push {lr}
+ ldr r1, _080EEE70
+ ldr r0, [r1]
+ ldr r2, _080EEE74
+ adds r0, r2
+ ldrh r0, [r0]
+ adds r2, r1, 0
+ cmp r0, 0x4
+ bhi _080EEF02
+ lsls r0, 2
+ ldr r1, _080EEE78
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080EEE70: .4byte gUnknown_083DFEC4
+_080EEE74: .4byte 0x0000d160
+_080EEE78: .4byte _080EEE7C
+ .align 2, 0
+_080EEE7C:
+ .4byte _080EEE90
+ .4byte _080EEEA4
+ .4byte _080EEEB8
+ .4byte _080EEEC8
+ .4byte _080EEEDC
+_080EEE90:
+ ldr r0, _080EEE9C
+ ldr r1, _080EEEA0
+ bl LZ77UnCompVram
+ b _080EEF18
+ .align 2, 0
+_080EEE9C: .4byte gPokenavHoennMapMisc_Gfx
+_080EEEA0: .4byte 0x0600c000
+_080EEEA4:
+ ldr r0, _080EEEB0
+ ldr r1, _080EEEB4
+ bl LZ77UnCompVram
+ b _080EEF18
+ .align 2, 0
+_080EEEB0: .4byte gUnknown_08E99FB0
+_080EEEB4: .4byte 0x0600d800
+_080EEEB8:
+ ldr r0, _080EEEC4
+ movs r1, 0x10
+ movs r2, 0x20
+ bl LoadPalette
+ b _080EEF18
+ .align 2, 0
+_080EEEC4: .4byte gPokenavHoennMap1_Pal
+_080EEEC8:
+ movs r0, 0
+ bl sub_80EF58C
+ movs r0, 0x1
+ bl sub_80EF58C
+ movs r0, 0x2
+ bl sub_80EF58C
+ b _080EEF18
+_080EEEDC:
+ ldr r2, [r2]
+ movs r3, 0xC3
+ lsls r3, 2
+ adds r0, r2, r3
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, _080EEF08
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ ldr r1, _080EEF0C
+ ldr r3, _080EEF10
+ adds r0, r3, 0
+ strh r0, [r1]
+ ldr r0, _080EEF14
+ adds r2, r0
+ ldrh r0, [r2]
+ adds r0, 0x1
+ strh r0, [r2]
+_080EEF02:
+ movs r0, 0
+ b _080EEF28
+ .align 2, 0
+_080EEF08: .4byte REG_BG1HOFS
+_080EEF0C: .4byte REG_BG1CNT
+_080EEF10: .4byte 0x00001b0c
+_080EEF14: .4byte 0x0000d160
+_080EEF18:
+ ldr r0, _080EEF2C
+ ldr r1, [r0]
+ ldr r2, _080EEF30
+ adds r1, r2
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ movs r0, 0x1
+_080EEF28:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080EEF2C: .4byte gUnknown_083DFEC4
+_080EEF30: .4byte 0x0000d160
+ thumb_func_end sub_80EEE54
+
+ thumb_func_start sub_80EEF34
+sub_80EEF34: @ 80EEF34
+ push {r4,lr}
+ movs r3, 0x1
+ ldr r0, _080EEF50
+ ldr r0, [r0]
+ movs r1, 0xC3
+ lsls r1, 2
+ adds r2, r0, r1
+ ldrh r1, [r2]
+ movs r4, 0
+ ldrsh r0, [r2, r4]
+ cmp r0, 0x20
+ bne _080EEF54
+ movs r0, 0
+ b _080EEF6E
+ .align 2, 0
+_080EEF50: .4byte gUnknown_083DFEC4
+_080EEF54:
+ adds r0, r1, 0x2
+ strh r0, [r2]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1F
+ ble _080EEF66
+ movs r0, 0x20
+ strh r0, [r2]
+ movs r3, 0
+_080EEF66:
+ ldr r1, _080EEF74
+ ldrh r0, [r2]
+ strh r0, [r1]
+ adds r0, r3, 0
+_080EEF6E:
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080EEF74: .4byte REG_BG1VOFS
+ thumb_func_end sub_80EEF34
+
+ thumb_func_start sub_80EEF78
+sub_80EEF78: @ 80EEF78
+ push {r4,lr}
+ movs r3, 0x1
+ ldr r0, _080EEF94
+ ldr r0, [r0]
+ movs r1, 0xC3
+ lsls r1, 2
+ adds r2, r0, r1
+ ldrh r1, [r2]
+ movs r4, 0
+ ldrsh r0, [r2, r4]
+ cmp r0, 0
+ bne _080EEF98
+ movs r0, 0
+ b _080EEFB0
+ .align 2, 0
+_080EEF94: .4byte gUnknown_083DFEC4
+_080EEF98:
+ subs r0, r1, 0x2
+ strh r0, [r2]
+ lsls r0, 16
+ cmp r0, 0
+ bgt _080EEFA8
+ movs r0, 0
+ strh r0, [r2]
+ movs r3, 0
+_080EEFA8:
+ ldr r1, _080EEFB8
+ ldrh r0, [r2]
+ strh r0, [r1]
+ adds r0, r3, 0
+_080EEFB0:
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080EEFB8: .4byte REG_BG1VOFS
+ thumb_func_end sub_80EEF78
+
+ thumb_func_start sub_80EEFBC
+sub_80EEFBC: @ 80EEFBC
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x10
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _080EEFF4
+ ldr r3, _080EEFF8
+ movs r1, 0
+ str r1, [sp]
+ str r1, [sp, 0x4]
+ movs r1, 0x11
+ str r1, [sp, 0x8]
+ movs r1, 0x2
+ str r1, [sp, 0xC]
+ movs r1, 0
+ movs r2, 0x16
+ bl sub_809D104
+ cmp r4, 0xB
+ bls _080EEFE8
+ b _080EF234
+_080EEFE8:
+ lsls r0, r4, 2
+ ldr r1, _080EEFFC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080EEFF4: .4byte 0x0600d800
+_080EEFF8: .4byte gUnknown_08E9A100
+_080EEFFC: .4byte _080EF000
+ .align 2, 0
+_080EF000:
+ .4byte _080EF030
+ .4byte _080EF234
+ .4byte _080EF08C
+ .4byte _080EF100
+ .4byte _080EF13C
+ .4byte _080EF1D4
+ .4byte _080EF234
+ .4byte _080EF178
+ .4byte _080EF190
+ .4byte _080EF1D4
+ .4byte _080EF218
+ .4byte _080EF06C
+_080EF030:
+ ldr r6, _080EF064
+ ldr r0, _080EF068
+ mov r8, r0
+ movs r0, 0x11
+ str r0, [sp]
+ movs r4, 0
+ str r4, [sp, 0x4]
+ movs r0, 0xA
+ str r0, [sp, 0x8]
+ movs r5, 0x2
+ str r5, [sp, 0xC]
+ adds r0, r6, 0
+ movs r1, 0
+ movs r2, 0x16
+ mov r3, r8
+ bl sub_809D104
+ str r4, [sp]
+ movs r0, 0x6
+ str r0, [sp, 0x4]
+ movs r0, 0x7
+ str r0, [sp, 0x8]
+ str r5, [sp, 0xC]
+ adds r0, r6, 0
+ movs r1, 0xA
+ b _080EF204
+ .align 2, 0
+_080EF064: .4byte 0x0600d800
+_080EF068: .4byte gUnknown_08E9A100
+_080EF06C:
+ ldr r0, _080EF084
+ ldr r3, _080EF088
+ movs r1, 0
+ str r1, [sp]
+ movs r1, 0x6
+ str r1, [sp, 0x4]
+ movs r1, 0x7
+ str r1, [sp, 0x8]
+ movs r1, 0x2
+ str r1, [sp, 0xC]
+ movs r1, 0x8
+ b _080EF0EE
+ .align 2, 0
+_080EF084: .4byte 0x0600d800
+_080EF088: .4byte gUnknown_08E9A100
+_080EF08C:
+ ldr r0, _080EF0C8
+ ldr r0, [r0]
+ ldr r1, _080EF0CC
+ adds r0, r1
+ ldrb r7, [r0]
+ cmp r7, 0
+ bne _080EF0D8
+ ldr r5, _080EF0D0
+ ldr r6, _080EF0D4
+ movs r0, 0xA
+ str r0, [sp]
+ movs r4, 0x2
+ str r4, [sp, 0x4]
+ str r0, [sp, 0x8]
+ str r4, [sp, 0xC]
+ adds r0, r5, 0
+ movs r1, 0
+ movs r2, 0x16
+ adds r3, r6, 0
+ bl sub_809D104
+ str r7, [sp]
+ movs r0, 0x6
+ str r0, [sp, 0x4]
+ movs r0, 0x7
+ str r0, [sp, 0x8]
+ str r4, [sp, 0xC]
+ adds r0, r5, 0
+ movs r1, 0xA
+ b _080EF1C2
+ .align 2, 0
+_080EF0C8: .4byte gUnknown_083DFEC4
+_080EF0CC: .4byte 0x00006dac
+_080EF0D0: .4byte 0x0600d800
+_080EF0D4: .4byte gUnknown_08E9A100
+_080EF0D8:
+ ldr r0, _080EF0F8
+ ldr r3, _080EF0FC
+ movs r1, 0
+ str r1, [sp]
+ movs r1, 0x6
+ str r1, [sp, 0x4]
+ movs r1, 0x7
+ str r1, [sp, 0x8]
+ movs r1, 0x2
+ str r1, [sp, 0xC]
+ movs r1, 0xA
+_080EF0EE:
+ movs r2, 0x16
+ bl sub_809D104
+ b _080EF234
+ .align 2, 0
+_080EF0F8: .4byte 0x0600d800
+_080EF0FC: .4byte gUnknown_08E9A100
+_080EF100:
+ ldr r6, _080EF134
+ ldr r0, _080EF138
+ mov r8, r0
+ movs r5, 0
+ str r5, [sp]
+ movs r0, 0x4
+ str r0, [sp, 0x4]
+ movs r0, 0xA
+ str r0, [sp, 0x8]
+ movs r4, 0x2
+ str r4, [sp, 0xC]
+ adds r0, r6, 0
+ movs r1, 0
+ movs r2, 0x16
+ mov r3, r8
+ bl sub_809D104
+ str r5, [sp]
+ movs r0, 0x6
+ str r0, [sp, 0x4]
+ movs r0, 0x7
+ str r0, [sp, 0x8]
+ str r4, [sp, 0xC]
+ adds r0, r6, 0
+ movs r1, 0xA
+ b _080EF204
+ .align 2, 0
+_080EF134: .4byte 0x0600d800
+_080EF138: .4byte gUnknown_08E9A100
+_080EF13C:
+ ldr r5, _080EF170
+ ldr r6, _080EF174
+ movs r0, 0x14
+ str r0, [sp]
+ movs r4, 0x2
+ str r4, [sp, 0x4]
+ movs r0, 0xA
+ str r0, [sp, 0x8]
+ str r4, [sp, 0xC]
+ adds r0, r5, 0
+ movs r1, 0
+ movs r2, 0x16
+ adds r3, r6, 0
+ bl sub_809D104
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x6
+ str r0, [sp, 0x4]
+ movs r0, 0x7
+ str r0, [sp, 0x8]
+ str r4, [sp, 0xC]
+ adds r0, r5, 0
+ movs r1, 0xA
+ b _080EF1C2
+ .align 2, 0
+_080EF170: .4byte 0x0600d800
+_080EF174: .4byte gUnknown_08E9A100
+_080EF178:
+ ldr r5, _080EF188
+ ldr r6, _080EF18C
+ movs r1, 0xA
+ str r1, [sp]
+ movs r0, 0x4
+ str r0, [sp, 0x4]
+ str r1, [sp, 0x8]
+ b _080EF1A0
+ .align 2, 0
+_080EF188: .4byte 0x0600d800
+_080EF18C: .4byte gUnknown_08E9A100
+_080EF190:
+ ldr r5, _080EF1CC
+ ldr r6, _080EF1D0
+ movs r0, 0x14
+ str r0, [sp]
+ movs r0, 0x4
+ str r0, [sp, 0x4]
+ movs r0, 0xA
+ str r0, [sp, 0x8]
+_080EF1A0:
+ movs r4, 0x2
+ str r4, [sp, 0xC]
+ adds r0, r5, 0
+ movs r1, 0
+ movs r2, 0x16
+ adds r3, r6, 0
+ bl sub_809D104
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x6
+ str r0, [sp, 0x4]
+ movs r0, 0x7
+ str r0, [sp, 0x8]
+ str r4, [sp, 0xC]
+ adds r0, r5, 0
+ movs r1, 0x7
+_080EF1C2:
+ movs r2, 0x16
+ adds r3, r6, 0
+ bl sub_809D104
+ b _080EF234
+ .align 2, 0
+_080EF1CC: .4byte 0x0600d800
+_080EF1D0: .4byte gUnknown_08E9A100
+_080EF1D4:
+ ldr r6, _080EF210
+ ldr r1, _080EF214
+ mov r8, r1
+ movs r5, 0
+ str r5, [sp]
+ movs r4, 0x2
+ str r4, [sp, 0x4]
+ movs r0, 0xA
+ str r0, [sp, 0x8]
+ str r4, [sp, 0xC]
+ adds r0, r6, 0
+ movs r1, 0
+ movs r2, 0x16
+ mov r3, r8
+ bl sub_809D104
+ str r5, [sp]
+ movs r0, 0x6
+ str r0, [sp, 0x4]
+ movs r0, 0x7
+ str r0, [sp, 0x8]
+ str r4, [sp, 0xC]
+ adds r0, r6, 0
+ movs r1, 0x8
+_080EF204:
+ movs r2, 0x16
+ mov r3, r8
+ bl sub_809D104
+ b _080EF234
+ .align 2, 0
+_080EF210: .4byte 0x0600d800
+_080EF214: .4byte gUnknown_08E9A100
+_080EF218:
+ ldr r0, _080EF240
+ ldr r3, _080EF244
+ movs r1, 0
+ str r1, [sp]
+ movs r1, 0x6
+ str r1, [sp, 0x4]
+ movs r1, 0x7
+ str r1, [sp, 0x8]
+ movs r1, 0x2
+ str r1, [sp, 0xC]
+ movs r1, 0x8
+ movs r2, 0x16
+ bl sub_809D104
+_080EF234:
+ add sp, 0x10
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EF240: .4byte 0x0600d800
+_080EF244: .4byte gUnknown_08E9A100
+ thumb_func_end sub_80EEFBC
+
+ thumb_func_start sub_80EF248
+sub_80EF248: @ 80EF248
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _080EF278
+ ldr r0, [r0]
+ ldr r1, _080EF27C
+ adds r2, r0, r1
+ movs r1, 0
+ strh r1, [r2]
+ ldr r1, _080EF280
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080EF270
+_080EF264:
+ adds r0, r4, 0
+ bl sub_80EF284
+ lsls r0, 24
+ cmp r0, 0
+ bne _080EF264
+_080EF270:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EF278: .4byte gUnknown_083DFEC4
+_080EF27C: .4byte 0x0000d160
+_080EF280: .4byte 0x00006dac
+ thumb_func_end sub_80EF248
+
+ thumb_func_start sub_80EF284
+sub_80EF284: @ 80EF284
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r1, _080EF2A8
+ ldr r0, [r1]
+ ldr r3, _080EF2AC
+ adds r0, r3
+ ldrh r0, [r0]
+ adds r3, r1, 0
+ cmp r0, 0xB
+ bls _080EF29C
+ b _080EF3F6
+_080EF29C:
+ lsls r0, 2
+ ldr r1, _080EF2B0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080EF2A8: .4byte gUnknown_083DFEC4
+_080EF2AC: .4byte 0x0000d160
+_080EF2B0: .4byte _080EF2B4
+ .align 2, 0
+_080EF2B4:
+ .4byte _080EF2E4
+ .4byte _080EF2EA
+ .4byte _080EF2F8
+ .4byte _080EF304
+ .4byte _080EF310
+ .4byte _080EF330
+ .4byte _080EF344
+ .4byte _080EF368
+ .4byte _080EF37C
+ .4byte _080EF390
+ .4byte _080EF3A4
+ .4byte _080EF3CC
+_080EF2E4:
+ bl sub_80EEDE8
+ b _080EF40C
+_080EF2EA:
+ ldr r0, _080EF2F4
+ bl SetUpWindowConfig
+ b _080EF40C
+ .align 2, 0
+_080EF2F4: .4byte gWindowConfig_81E7224
+_080EF2F8:
+ ldr r0, _080EF300
+ bl MultistepInitMenuWindowBegin
+ b _080EF40C
+ .align 2, 0
+_080EF300: .4byte gWindowConfig_81E7224
+_080EF304:
+ bl MultistepInitMenuWindowContinue
+ cmp r0, 0
+ beq _080EF30E
+ b _080EF40C
+_080EF30E:
+ b _080EF41A
+_080EF310:
+ ldr r1, _080EF320
+ ldr r2, _080EF324
+ ldr r0, _080EF328
+ str r1, [r0]
+ str r2, [r0, 0x4]
+ ldr r1, _080EF32C
+ b _080EF350
+ .align 2, 0
+_080EF320: .4byte gUnknown_083DFEEC
+_080EF324: .4byte 0x06005000
+_080EF328: .4byte 0x040000d4
+_080EF32C: .4byte 0x80000050
+_080EF330:
+ ldr r0, _080EF33C
+ ldr r1, _080EF340
+ bl LZ77UnCompVram
+ b _080EF40C
+ .align 2, 0
+_080EF33C: .4byte gUnknown_083DFF8C
+_080EF340: .4byte 0x0600f800
+_080EF344:
+ ldr r1, _080EF358
+ ldr r2, _080EF35C
+ ldr r0, _080EF360
+ str r1, [r0]
+ str r2, [r0, 0x4]
+ ldr r1, _080EF364
+_080EF350:
+ str r1, [r0, 0x8]
+ ldr r0, [r0, 0x8]
+ b _080EF40C
+ .align 2, 0
+_080EF358: .4byte gUnknown_083E005C
+_080EF35C: .4byte 0x06008000
+_080EF360: .4byte 0x040000d4
+_080EF364: .4byte 0x80000010
+_080EF368:
+ ldr r0, _080EF374
+ ldr r1, _080EF378
+ bl LZ77UnCompVram
+ b _080EF40C
+ .align 2, 0
+_080EF374: .4byte gUnknown_083E007C
+_080EF378: .4byte 0x0600e000
+_080EF37C:
+ ldr r0, _080EF388
+ ldr r1, _080EF38C
+ bl LZ77UnCompVram
+ b _080EF40C
+ .align 2, 0
+_080EF388: .4byte gPokenavOutlineTilemap
+_080EF38C: .4byte 0x0600e800
+_080EF390:
+ ldr r0, _080EF39C
+ ldr r1, _080EF3A0
+ bl LZ77UnCompVram
+ b _080EF40C
+ .align 2, 0
+_080EF39C: .4byte gPokenavOutlineTiles
+_080EF3A0: .4byte 0x06008020
+_080EF3A4:
+ adds r0, r2, 0
+ bl sub_80EF54C
+ ldr r0, _080EF3C4
+ movs r1, 0xF0
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r0, _080EF3C8
+ movs r1, 0x40
+ movs r2, 0x20
+ bl LoadPalette
+ bl sub_80EF7D4
+ b _080EF40C
+ .align 2, 0
+_080EF3C4: .4byte gUnknown_083DFECC
+_080EF3C8: .4byte gPokenavOutlinePalette
+_080EF3CC:
+ ldr r1, _080EF3FC
+ ldr r2, _080EF400
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x4
+ ldr r2, _080EF404
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ subs r2, 0xFF
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x42
+ movs r0, 0
+ strh r0, [r1]
+ ldr r1, [r3]
+ ldr r3, _080EF408
+ adds r1, r3
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_080EF3F6:
+ movs r0, 0
+ b _080EF41C
+ .align 2, 0
+_080EF3FC: .4byte REG_BG0CNT
+_080EF400: .4byte 0x00001f01
+_080EF404: .4byte 0x00001d0a
+_080EF408: .4byte 0x0000d160
+_080EF40C:
+ ldr r0, _080EF420
+ ldr r1, [r0]
+ ldr r0, _080EF424
+ adds r1, r0
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_080EF41A:
+ movs r0, 0x1
+_080EF41C:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080EF420: .4byte gUnknown_083DFEC4
+_080EF424: .4byte 0x0000d160
+ thumb_func_end sub_80EF284
+
+ thumb_func_start sub_80EF428
+sub_80EF428: @ 80EF428
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r3, r0, 0
+ lsls r1, 24
+ lsrs r2, r1, 24
+ movs r1, 0
+ cmp r0, 0x1
+ beq _080EF454
+ cmp r0, 0x1
+ bgt _080EF444
+ cmp r0, 0
+ beq _080EF44A
+ b _080EF464
+_080EF444:
+ cmp r3, 0x2
+ beq _080EF45C
+ b _080EF464
+_080EF44A:
+ ldr r1, _080EF450
+ b _080EF45E
+ .align 2, 0
+_080EF450: .4byte gUnknown_083E31B0
+_080EF454:
+ ldr r1, _080EF458
+ b _080EF45E
+ .align 2, 0
+_080EF458: .4byte gUnknown_083E31CC
+_080EF45C:
+ ldr r1, _080EF488
+_080EF45E:
+ lsls r0, r2, 2
+ adds r0, r1
+ ldr r1, [r0]
+_080EF464:
+ ldr r0, _080EF48C
+ ldr r4, [r0]
+ movs r0, 0x80
+ lsls r0, 4
+ adds r4, r0
+ adds r0, r4, 0
+ movs r2, 0xC0
+ movs r3, 0x2
+ bl sub_8072C74
+ adds r0, r4, 0
+ movs r1, 0x3
+ movs r2, 0x11
+ bl MenuPrint
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EF488: .4byte gUnknown_083E31D8
+_080EF48C: .4byte gUnknown_083DFEC8
+ thumb_func_end sub_80EF428
+
+ thumb_func_start sub_80EF490
+sub_80EF490: @ 80EF490
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x2
+ bne _080EF49C
+ movs r2, 0x1
+_080EF49C:
+ ldr r0, _080EF4C4
+ ldr r3, [r0]
+ lsls r1, r2, 4
+ subs r1, r2
+ lsls r2, r1, 1
+ ldr r4, _080EF4C8
+ adds r0, r3, r4
+ strh r2, [r0]
+ ldr r2, _080EF4CC
+ adds r0, r3, r2
+ ldrh r2, [r0]
+ lsls r1, 17
+ lsrs r0, r1, 16
+ cmp r2, r0
+ bcs _080EF4D0
+ adds r4, 0x2
+ adds r1, r3, r4
+ movs r0, 0x2
+ b _080EF4EA
+ .align 2, 0
+_080EF4C4: .4byte gUnknown_083DFEC4
+_080EF4C8: .4byte 0x0000ce4e
+_080EF4CC: .4byte 0x0000ce4c
+_080EF4D0:
+ cmp r2, r0
+ bls _080EF4E4
+ ldr r0, _080EF4DC
+ adds r1, r3, r0
+ ldr r0, _080EF4E0
+ b _080EF4EA
+ .align 2, 0
+_080EF4DC: .4byte 0x0000ce50
+_080EF4E0: .4byte 0x0000fffe
+_080EF4E4:
+ ldr r2, _080EF4F4
+ adds r1, r3, r2
+ movs r0, 0
+_080EF4EA:
+ strh r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EF4F4: .4byte 0x0000ce50
+ thumb_func_end sub_80EF490
+
+ thumb_func_start sub_80EF4F8
+sub_80EF4F8: @ 80EF4F8
+ push {r4,lr}
+ ldr r0, _080EF530
+ ldr r1, [r0]
+ ldr r0, _080EF534
+ adds r2, r1, r0
+ ldr r3, _080EF538
+ adds r0, r1, r3
+ ldrh r3, [r2]
+ ldrh r0, [r0]
+ cmp r3, r0
+ beq _080EF544
+ ldr r4, _080EF53C
+ adds r0, r1, r4
+ ldrh r0, [r0]
+ adds r0, r3, r0
+ strh r0, [r2]
+ ldr r3, _080EF540
+ adds r0, r1, r3
+ ldrh r1, [r2]
+ lsls r1, 1
+ adds r0, r1
+ movs r1, 0x31
+ movs r2, 0x4
+ bl LoadPalette
+ movs r0, 0x1
+ b _080EF546
+ .align 2, 0
+_080EF530: .4byte gUnknown_083DFEC4
+_080EF534: .4byte 0x0000ce4c
+_080EF538: .4byte 0x0000ce4e
+_080EF53C: .4byte 0x0000ce50
+_080EF540: .4byte 0x0000ce52
+_080EF544:
+ movs r0, 0
+_080EF546:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80EF4F8
+
+ thumb_func_start sub_80EF54C
+sub_80EF54C: @ 80EF54C
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x2
+ bne _080EF558
+ movs r2, 0x1
+_080EF558:
+ ldr r0, _080EF580
+ ldr r0, [r0]
+ lsls r1, r2, 4
+ subs r1, r2
+ lsls r1, 1
+ ldr r3, _080EF584
+ adds r2, r0, r3
+ strh r1, [r2]
+ ldrh r1, [r2]
+ lsls r1, 1
+ ldr r2, _080EF588
+ adds r1, r2
+ adds r0, r1
+ movs r1, 0x31
+ movs r2, 0x4
+ bl LoadPalette
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EF580: .4byte gUnknown_083DFEC4
+_080EF584: .4byte 0x0000ce4c
+_080EF588: .4byte 0x0000ce52
+ thumb_func_end sub_80EF54C
+
+ thumb_func_start sub_80EF58C
+sub_80EF58C: @ 80EF58C
+ push {lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ adds r1, r0, 0
+ cmp r0, 0x1
+ beq _080EF5D0
+ cmp r0, 0x1
+ bgt _080EF5A4
+ cmp r0, 0
+ beq _080EF5AA
+ b _080EF610
+_080EF5A4:
+ cmp r1, 0x2
+ beq _080EF5F8
+ b _080EF610
+_080EF5AA:
+ movs r1, 0
+ ldr r0, _080EF5C8
+ ldr r0, [r0]
+ ldr r3, _080EF5CC
+ adds r2, r0, r3
+ movs r3, 0
+_080EF5B6:
+ lsls r0, r1, 1
+ adds r0, r2, r0
+ strh r3, [r0]
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0x3D
+ bls _080EF5B6
+ b _080EF610
+ .align 2, 0
+_080EF5C8: .4byte gUnknown_083DFEC4
+_080EF5CC: .4byte 0x0000ce52
+_080EF5D0:
+ ldr r0, _080EF5EC
+ ldr r0, [r0]
+ ldr r1, _080EF5F0
+ adds r2, r0, r1
+ ldr r1, _080EF5F4
+ adds r0, r1, 0x2
+ adds r1, 0x6
+ str r2, [sp]
+ movs r2, 0x10
+ movs r3, 0x2
+ bl sub_80EF624
+ b _080EF610
+ .align 2, 0
+_080EF5EC: .4byte gUnknown_083DFEC4
+_080EF5F0: .4byte 0x0000ce52
+_080EF5F4: .4byte gUnknown_083E003C
+_080EF5F8:
+ ldr r0, _080EF618
+ ldr r0, [r0]
+ ldr r3, _080EF61C
+ adds r2, r0, r3
+ ldr r1, _080EF620
+ adds r0, r1, 0x6
+ adds r1, 0xE
+ str r2, [sp]
+ movs r2, 0x10
+ movs r3, 0x2
+ bl sub_80EF624
+_080EF610:
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EF618: .4byte gUnknown_083DFEC4
+_080EF61C: .4byte 0x0000ce8e
+_080EF620: .4byte gUnknown_083E003C
+ thumb_func_end sub_80EF58C
+
+ thumb_func_start sub_80EF624
+sub_80EF624: @ 80EF624
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x38
+ str r0, [sp]
+ str r1, [sp, 0x4]
+ ldr r4, [sp, 0x58]
+ lsls r2, 24
+ lsrs r2, 24
+ str r2, [sp, 0x8]
+ lsls r3, 24
+ lsrs r3, 24
+ str r3, [sp, 0xC]
+ movs r0, 0
+ str r0, [sp, 0x10]
+ lsls r0, r3, 16
+ ldr r1, [sp, 0x10]
+ cmp r1, r3
+ bcs _080EF72E
+ subs r2, 0x1
+ str r2, [sp, 0x20]
+ str r0, [sp, 0x2C]
+_080EF654:
+ ldr r2, [sp]
+ ldrh r1, [r2]
+ movs r0, 0x1F
+ ands r0, r1
+ lsls r7, r0, 8
+ lsls r1, 16
+ lsrs r0, r1, 21
+ movs r2, 0x1F
+ ands r0, r2
+ lsls r6, r0, 8
+ lsrs r1, 26
+ ands r1, r2
+ lsls r5, r1, 8
+ ldr r0, [sp, 0x4]
+ ldrh r1, [r0]
+ movs r0, 0x1F
+ ands r0, r1
+ lsls r0, 8
+ str r0, [sp, 0x14]
+ lsls r1, 16
+ lsrs r0, r1, 21
+ ands r0, r2
+ lsls r0, 8
+ str r0, [sp, 0x18]
+ lsrs r1, 26
+ ands r1, r2
+ lsls r1, 8
+ str r1, [sp, 0x1C]
+ ldr r1, [sp, 0x14]
+ subs r0, r1, r7
+ ldr r1, [sp, 0x8]
+ bl __divsi3
+ mov r10, r0
+ ldr r2, [sp, 0x18]
+ subs r0, r2, r6
+ ldr r1, [sp, 0x8]
+ bl __divsi3
+ mov r9, r0
+ ldr r1, [sp, 0x1C]
+ subs r0, r1, r5
+ ldr r1, [sp, 0x8]
+ bl __divsi3
+ mov r8, r0
+ adds r3, r4, 0
+ movs r4, 0
+ ldr r2, [sp]
+ adds r2, 0x2
+ str r2, [sp, 0x30]
+ ldr r0, [sp, 0x4]
+ adds r0, 0x2
+ str r0, [sp, 0x34]
+ adds r1, r3, 0x2
+ str r1, [sp, 0x24]
+ ldr r2, [sp, 0x10]
+ adds r2, 0x1
+ str r2, [sp, 0x28]
+ ldr r0, [sp, 0x20]
+ cmp r4, r0
+ bge _080EF700
+ ldr r1, [sp, 0xC]
+ lsls r1, 1
+ mov r12, r1
+_080EF6D6:
+ lsls r0, r7, 8
+ lsrs r2, r0, 16
+ lsls r0, r6, 8
+ lsrs r1, r0, 16
+ lsls r0, r5, 8
+ lsrs r0, 16
+ lsls r0, 10
+ lsls r1, 5
+ orrs r0, r1
+ orrs r2, r0
+ strh r2, [r3]
+ add r3, r12
+ add r7, r10
+ add r6, r9
+ add r5, r8
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ ldr r2, [sp, 0x20]
+ cmp r4, r2
+ blt _080EF6D6
+_080EF700:
+ ldr r4, [sp, 0x14]
+ lsrs r2, r4, 8
+ ldr r1, [sp, 0x1C]
+ lsls r0, r1, 2
+ ldr r4, [sp, 0x18]
+ lsrs r1, r4, 3
+ orrs r0, r1
+ orrs r2, r0
+ strh r2, [r3]
+ ldr r0, [sp, 0x30]
+ str r0, [sp]
+ ldr r1, [sp, 0x34]
+ str r1, [sp, 0x4]
+ ldr r4, [sp, 0x24]
+ ldr r2, [sp, 0x28]
+ lsls r0, r2, 16
+ lsrs r0, 16
+ str r0, [sp, 0x10]
+ ldr r1, [sp, 0x2C]
+ lsrs r0, r1, 16
+ ldr r2, [sp, 0x10]
+ cmp r2, r0
+ bcc _080EF654
+_080EF72E:
+ add sp, 0x38
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80EF624
+
+ thumb_func_start sub_80EF740
+sub_80EF740: @ 80EF740
+ push {lr}
+ ldr r0, _080EF770
+ ldr r3, [r0]
+ ldr r0, _080EF774
+ adds r2, r3, r0
+ ldrh r0, [r2]
+ adds r0, 0x1
+ movs r1, 0x1
+ ands r0, r1
+ strh r0, [r2]
+ cmp r0, 0
+ beq _080EF762
+ ldr r2, _080EF778
+ adds r1, r3, r2
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_080EF762:
+ ldr r0, _080EF77C
+ ldr r2, _080EF778
+ adds r1, r3, r2
+ ldrh r1, [r1]
+ strh r1, [r0]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EF770: .4byte gUnknown_083DFEC4
+_080EF774: .4byte 0x00006da0
+_080EF778: .4byte 0x00006da2
+_080EF77C: .4byte REG_BG3HOFS
+ thumb_func_end sub_80EF740
+
+ thumb_func_start sub_80EF780
+sub_80EF780: @ 80EF780
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080EF7B0
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ movs r2, 0x8
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ beq _080EF7AA
+ ldr r0, _080EF7B4
+ ldr r3, [r0]
+ ldr r0, _080EF7B8
+ adds r2, r3, r0
+ ldrh r0, [r2]
+ movs r1, 0x7
+ ands r1, r0
+ cmp r1, 0
+ beq _080EF7BC
+_080EF7AA:
+ bl sub_80EF740
+ b _080EF7C8
+ .align 2, 0
+_080EF7B0: .4byte gTasks
+_080EF7B4: .4byte gUnknown_083DFEC4
+_080EF7B8: .4byte 0x00006da2
+_080EF7BC:
+ strh r1, [r2]
+ ldr r2, _080EF7CC
+ adds r0, r3, r2
+ strh r1, [r0]
+ ldr r0, _080EF7D0
+ strh r1, [r0]
+_080EF7C8:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EF7CC: .4byte 0x00006da0
+_080EF7D0: .4byte REG_BG3HOFS
+ thumb_func_end sub_80EF780
+
+ thumb_func_start sub_80EF7D4
+sub_80EF7D4: @ 80EF7D4
+ push {r4,lr}
+ ldr r0, _080EF800
+ ldr r4, [r0]
+ ldr r1, _080EF804
+ adds r0, r4, r1
+ movs r1, 0
+ strh r1, [r0]
+ ldr r2, _080EF808
+ adds r0, r4, r2
+ strh r1, [r0]
+ ldr r0, _080EF80C
+ movs r1, 0x50
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _080EF810
+ adds r4, r1
+ strh r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EF800: .4byte gUnknown_083DFEC4
+_080EF804: .4byte 0x00006da2
+_080EF808: .4byte 0x00006da0
+_080EF80C: .4byte sub_80EF780
+_080EF810: .4byte 0x00006da4
+ thumb_func_end sub_80EF7D4
+
+ thumb_func_start sub_80EF814
+sub_80EF814: @ 80EF814
+ push {lr}
+ ldr r0, _080EF834
+ bl FuncIsActiveTask
+ lsls r0, 24
+ cmp r0, 0
+ beq _080EF830
+ ldr r0, _080EF838
+ ldr r0, [r0]
+ ldr r1, _080EF83C
+ adds r0, r1
+ ldrb r0, [r0]
+ bl DestroyTask
+_080EF830:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EF834: .4byte sub_80EF780
+_080EF838: .4byte gUnknown_083DFEC4
+_080EF83C: .4byte 0x00006da4
+ thumb_func_end sub_80EF814
+
+ thumb_func_start sub_80EF840
+sub_80EF840: @ 80EF840
+ push {lr}
+ ldr r0, _080EF868
+ ldr r0, [r0]
+ ldr r1, _080EF86C
+ adds r2, r0, r1
+ movs r1, 0
+ strh r1, [r2]
+ ldr r1, _080EF870
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080EF862
+_080EF858:
+ bl sub_80EF874
+ lsls r0, 24
+ cmp r0, 0
+ bne _080EF858
+_080EF862:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EF868: .4byte gUnknown_083DFEC4
+_080EF86C: .4byte 0x0000d160
+_080EF870: .4byte 0x00006dac
+ thumb_func_end sub_80EF840
+
+ thumb_func_start sub_80EF874
+sub_80EF874: @ 80EF874
+ push {lr}
+ ldr r0, _080EF890
+ ldr r0, [r0]
+ ldr r1, _080EF894
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r0, 0xB
+ bls _080EF886
+ b _080EF9D8
+_080EF886:
+ lsls r0, 2
+ ldr r1, _080EF898
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080EF890: .4byte gUnknown_083DFEC4
+_080EF894: .4byte 0x0000d160
+_080EF898: .4byte _080EF89C
+ .align 2, 0
+_080EF89C:
+ .4byte _080EF8CC
+ .4byte _080EF8D2
+ .4byte _080EF8E0
+ .4byte _080EF8EC
+ .4byte _080EF8F6
+ .4byte _080EF8FC
+ .4byte _080EF920
+ .4byte _080EF92C
+ .4byte _080EF940
+ .4byte _080EF954
+ .4byte _080EF960
+ .4byte _080EF972
+_080EF8CC:
+ bl sub_80EEDE8
+ b _080EF9DC
+_080EF8D2:
+ ldr r0, _080EF8DC
+ bl SetUpWindowConfig
+ b _080EF9DC
+ .align 2, 0
+_080EF8DC: .4byte gWindowConfig_81E7224
+_080EF8E0:
+ ldr r0, _080EF8E8
+ bl MultistepInitMenuWindowBegin
+ b _080EF9DC
+ .align 2, 0
+_080EF8E8: .4byte gWindowConfig_81E7224
+_080EF8EC:
+ bl MultistepInitMenuWindowContinue
+ cmp r0, 0
+ bne _080EF9DC
+ b _080EF9EA
+_080EF8F6:
+ bl MenuZeroFillScreen
+ b _080EF9DC
+_080EF8FC:
+ ldr r0, _080EF914
+ ldr r0, [r0]
+ ldr r2, _080EF918
+ adds r0, r2
+ ldr r1, _080EF91C
+ ldrb r1, [r1, 0x15]
+ lsrs r1, 3
+ movs r2, 0x1
+ ands r1, r2
+ bl sub_80FA904
+ b _080EF9DC
+ .align 2, 0
+_080EF914: .4byte gUnknown_083DFEC4
+_080EF918: .4byte 0x00006e18
+_080EF91C: .4byte gSaveBlock2
+_080EF920:
+ bl sub_80FA940
+ lsls r0, 24
+ cmp r0, 0
+ beq _080EF9DC
+ b _080EF9EA
+_080EF92C:
+ ldr r0, _080EF938
+ ldr r1, _080EF93C
+ bl LZ77UnCompVram
+ b _080EF9DC
+ .align 2, 0
+_080EF938: .4byte gPokenavHoennMapSquares_Gfx
+_080EF93C: .4byte 0x06005000
+_080EF940:
+ ldr r0, _080EF950
+ movs r1, 0x30
+ movs r2, 0x20
+ bl LoadPalette
+ bl sub_80EFC3C
+ b _080EF9DC
+ .align 2, 0
+_080EF950: .4byte gPokenavHoennMapSquares_Pal
+_080EF954:
+ bl sub_80EFC64
+ lsls r0, 24
+ cmp r0, 0
+ beq _080EF9DC
+ b _080EF9EA
+_080EF960:
+ movs r0, 0xD
+ movs r1, 0x3
+ movs r2, 0x1D
+ movs r3, 0x11
+ bl MenuDrawTextWindow
+ bl sub_80EF9F8
+ b _080EF9DC
+_080EF972:
+ ldr r0, _080EF990
+ ldr r1, [r0]
+ ldr r2, _080EF994
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080EF9A0
+ ldr r2, _080EF998
+ adds r0, r1, r2
+ movs r1, 0xA0
+ strh r1, [r0]
+ ldr r0, _080EF99C
+ strh r1, [r0]
+ b _080EF9B0
+ .align 2, 0
+_080EF990: .4byte gUnknown_083DFEC4
+_080EF994: .4byte 0x00006e90
+_080EF998: .4byte 0x00007698
+_080EF99C: .4byte REG_BG0VOFS
+_080EF9A0:
+ ldr r0, _080EF9C8
+ adds r1, r0
+ movs r2, 0
+ movs r0, 0x80
+ lsls r0, 1
+ strh r0, [r1]
+ ldr r0, _080EF9CC
+ strh r2, [r0]
+_080EF9B0:
+ ldr r2, _080EF9D0
+ ldrh r0, [r2]
+ strh r0, [r2]
+ ldrh r0, [r2]
+ movs r1, 0x1
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r1, _080EF9D4
+ movs r0, 0
+ strh r0, [r1]
+ b _080EF9DC
+ .align 2, 0
+_080EF9C8: .4byte 0x00007698
+_080EF9CC: .4byte REG_BG0VOFS
+_080EF9D0: .4byte REG_BG0CNT
+_080EF9D4: .4byte REG_BLDCNT
+_080EF9D8:
+ movs r0, 0
+ b _080EF9EC
+_080EF9DC:
+ ldr r0, _080EF9F0
+ ldr r1, [r0]
+ ldr r2, _080EF9F4
+ adds r1, r2
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_080EF9EA:
+ movs r0, 0x1
+_080EF9EC:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080EF9F0: .4byte gUnknown_083DFEC4
+_080EF9F4: .4byte 0x0000d160
+ thumb_func_end sub_80EF874
+
+ thumb_func_start sub_80EF9F8
+sub_80EF9F8: @ 80EF9F8
+ push {r4-r6,lr}
+ sub sp, 0x14
+ movs r5, 0x4
+ ldr r0, _080EFA18
+ ldr r0, [r0]
+ ldr r1, _080EFA1C
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x4
+ bls _080EFA0E
+ b _080EFB6A
+_080EFA0E:
+ lsls r0, 2
+ ldr r1, _080EFA20
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080EFA18: .4byte gUnknown_083DFEC4
+_080EFA1C: .4byte 0x00006e2e
+_080EFA20: .4byte _080EFA24
+ .align 2, 0
+_080EFA24:
+ .4byte _080EFB6A
+ .4byte _080EFA38
+ .4byte _080EFAC0
+ .4byte _080EFB4C
+ .4byte _080EFA38
+_080EFA38:
+ ldr r0, _080EFA64
+ ldr r0, [r0]
+ ldr r2, _080EFA68
+ adds r0, r2
+ lsls r2, r5, 19
+ lsrs r2, 16
+ movs r1, 0x1
+ str r1, [sp]
+ movs r1, 0x70
+ movs r3, 0x78
+ bl sub_8072A18
+ adds r0, r5, 0x2
+ lsls r0, 16
+ lsrs r5, r0, 16
+ ldr r0, _080EFA6C
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _080EFA70
+ bl sub_80F1A80
+ b _080EFB82
+ .align 2, 0
+_080EFA64: .4byte gUnknown_083DFEC4
+_080EFA68: .4byte 0x00006e18
+_080EFA6C: .4byte gLinkOpen
+_080EFA70:
+ movs r4, 0
+ b _080EFA92
+_080EFA74:
+ lsls r2, r5, 19
+ lsrs r2, 16
+ movs r0, 0x1
+ str r0, [sp]
+ adds r0, r1, 0
+ movs r1, 0x70
+ movs r3, 0x78
+ bl sub_8072A18
+ adds r0, r5, 0x2
+ lsls r0, 16
+ lsrs r5, r0, 16
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+_080EFA92:
+ cmp r4, 0x3
+ bhi _080EFB6A
+ ldr r0, _080EFAB8
+ ldr r1, [r0]
+ ldr r2, _080EFABC
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ adds r2, 0x3
+ adds r1, r2
+ ldrb r1, [r1]
+ lsls r2, r4, 24
+ lsrs r2, 24
+ bl sub_811A8CC
+ adds r1, r0, 0
+ cmp r1, 0
+ bne _080EFA74
+ b _080EFB6A
+ .align 2, 0
+_080EFAB8: .4byte gUnknown_083DFEC4
+_080EFABC: .4byte 0x00006e2c
+_080EFAC0:
+ ldr r0, _080EFB38
+ ldr r4, [r0]
+ ldr r1, _080EFB3C
+ adds r0, r4, r1
+ lsls r2, r5, 19
+ lsrs r2, 16
+ movs r1, 0x1
+ str r1, [sp]
+ movs r1, 0x70
+ movs r3, 0x78
+ bl sub_8072A18
+ adds r0, r5, 0x2
+ lsls r0, 16
+ lsrs r5, r0, 16
+ ldr r2, _080EFB40
+ adds r0, r4, r2
+ ldrh r1, [r0]
+ adds r2, 0x3
+ adds r0, r4, r2
+ ldrb r0, [r0]
+ lsls r0, 2
+ lsls r1, 3
+ adds r0, r1
+ ldr r1, _080EFB44
+ adds r4, r1
+ adds r6, r4, r0
+ ldr r0, [r6]
+ cmp r0, 0
+ beq _080EFB6A
+ lsls r4, r5, 24
+ lsrs r4, 24
+ movs r0, 0xE
+ adds r1, r4, 0
+ movs r2, 0xF
+ movs r3, 0xF
+ bl MenuFillWindowRectWithBlankTile
+ movs r0, 0x1A
+ adds r1, r4, 0
+ movs r2, 0x1C
+ movs r3, 0xF
+ bl MenuFillWindowRectWithBlankTile
+ ldr r0, _080EFB48
+ ldr r3, [r6]
+ movs r1, 0
+ str r1, [sp]
+ str r1, [sp, 0x4]
+ movs r1, 0xA
+ str r1, [sp, 0x8]
+ str r1, [sp, 0xC]
+ str r1, [sp, 0x10]
+ movs r1, 0x10
+ movs r2, 0x6
+ bl sub_8095C8C
+ adds r0, r5, 0
+ adds r0, 0xB
+ b _080EFB66
+ .align 2, 0
+_080EFB38: .4byte gUnknown_083DFEC4
+_080EFB3C: .4byte 0x00006e18
+_080EFB40: .4byte 0x00006e2c
+_080EFB44: .4byte 0x0000cdcc
+_080EFB48: .4byte 0x0600f800
+_080EFB4C:
+ ldr r0, _080EFB98
+ ldr r0, [r0]
+ ldr r2, _080EFB9C
+ adds r0, r2
+ lsls r2, r5, 19
+ lsrs r2, 16
+ movs r1, 0x1
+ str r1, [sp]
+ movs r1, 0x70
+ movs r3, 0x78
+ bl sub_8072A18
+ adds r0, r5, 0x2
+_080EFB66:
+ lsls r0, 16
+ lsrs r5, r0, 16
+_080EFB6A:
+ movs r0, 0
+ cmp r0, 0
+ bne _080EFB82
+ cmp r5, 0xF
+ bhi _080EFB82
+ lsls r1, r5, 24
+ lsrs r1, 24
+ movs r0, 0xE
+ movs r2, 0x1C
+ movs r3, 0xF
+ bl MenuFillWindowRectWithBlankTile
+_080EFB82:
+ ldr r0, _080EFB98
+ ldr r0, [r0]
+ ldr r1, _080EFBA0
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x2
+ bne _080EFBA4
+ bl sub_80EFD74
+ b _080EFBA8
+ .align 2, 0
+_080EFB98: .4byte gUnknown_083DFEC4
+_080EFB9C: .4byte 0x00006e18
+_080EFBA0: .4byte 0x00006e2e
+_080EFBA4:
+ bl sub_80EFDA0
+_080EFBA8:
+ add sp, 0x14
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80EF9F8
+
+ thumb_func_start sub_80EFBB0
+sub_80EFBB0: @ 80EFBB0
+ push {lr}
+ ldr r0, _080EFBC8
+ ldr r0, [r0]
+ ldr r1, _080EFBCC
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080EFBD0
+ movs r0, 0x8
+ bl sub_80EEFBC
+ b _080EFBD6
+ .align 2, 0
+_080EFBC8: .4byte gUnknown_083DFEC4
+_080EFBCC: .4byte 0x00006e90
+_080EFBD0:
+ movs r0, 0x7
+ bl sub_80EEFBC
+_080EFBD6:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80EFBB0
+
+ thumb_func_start sub_80EFBDC
+sub_80EFBDC: @ 80EFBDC
+ push {r4,lr}
+ lsls r0, 24
+ movs r4, 0x1
+ ldr r2, _080EFBFC
+ ldr r1, [r2]
+ ldr r3, _080EFC00
+ adds r1, r3
+ ldrh r3, [r1]
+ cmp r0, 0
+ beq _080EFC08
+ cmp r3, 0xA8
+ bls _080EFC04
+ adds r0, r3, 0
+ subs r0, 0x8
+ b _080EFC10
+ .align 2, 0
+_080EFBFC: .4byte gUnknown_083DFEC4
+_080EFC00: .4byte 0x00007698
+_080EFC04:
+ movs r3, 0xA0
+ b _080EFC1A
+_080EFC08:
+ cmp r3, 0xF7
+ bhi _080EFC16
+ adds r0, r3, 0
+ adds r0, 0x8
+_080EFC10:
+ lsls r0, 16
+ lsrs r3, r0, 16
+ b _080EFC1C
+_080EFC16:
+ movs r3, 0x80
+ lsls r3, 1
+_080EFC1A:
+ movs r4, 0
+_080EFC1C:
+ ldr r0, [r2]
+ ldr r1, _080EFC34
+ adds r0, r1
+ strh r3, [r0]
+ ldr r1, _080EFC38
+ movs r0, 0xFF
+ ands r3, r0
+ strh r3, [r1]
+ adds r0, r4, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080EFC34: .4byte 0x00007698
+_080EFC38: .4byte REG_BG0VOFS
+ thumb_func_end sub_80EFBDC
+
+ thumb_func_start sub_80EFC3C
+sub_80EFC3C: @ 80EFC3C
+ push {lr}
+ ldr r0, _080EFC58
+ ldr r0, [r0]
+ ldr r2, _080EFC5C
+ adds r1, r0, r2
+ movs r2, 0
+ strb r2, [r1]
+ ldr r1, _080EFC60
+ adds r0, r1
+ strb r2, [r0]
+ bl sub_80EFD3C
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EFC58: .4byte gUnknown_083DFEC4
+_080EFC5C: .4byte 0x0000bc9a
+_080EFC60: .4byte 0x0000bc9b
+ thumb_func_end sub_80EFC3C
+
+ thumb_func_start sub_80EFC64
+sub_80EFC64: @ 80EFC64
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x8
+ ldr r4, _080EFCD0
+ ldr r2, [r4]
+ ldr r0, _080EFCD4
+ adds r1, r2, r0
+ ldrb r0, [r1]
+ cmp r0, 0xF
+ bhi _080EFD2C
+ ldrb r1, [r1]
+ mov r8, r1
+ ldr r1, _080EFCD8
+ adds r0, r2, r1
+ ldrb r7, [r0]
+ movs r2, 0
+ ldr r0, _080EFCDC
+ mov r9, r0
+ adds r3, r4, 0
+_080EFC8E:
+ lsls r0, r2, 2
+ mov r4, r8
+ lsls r1, r4, 3
+ adds r6, r0, r1
+ mov r1, r9
+ adds r0, r6, r1
+ ldr r1, [r0]
+ cmp r1, 0
+ beq _080EFCE8
+ movs r0, 0xC8
+ adds r5, r7, 0
+ muls r5, r0
+ ldr r4, _080EFCE0
+ adds r5, r4
+ ldr r4, [r3]
+ adds r5, r4, r5
+ adds r0, r1, 0
+ adds r1, r5, 0
+ str r2, [sp]
+ str r3, [sp, 0x4]
+ bl LZ77UnCompVram
+ ldr r0, _080EFCE4
+ adds r4, r0
+ adds r4, r6
+ str r5, [r4]
+ adds r0, r7, 0x1
+ lsls r0, 16
+ lsrs r7, r0, 16
+ ldr r2, [sp]
+ ldr r3, [sp, 0x4]
+ b _080EFCF2
+ .align 2, 0
+_080EFCD0: .4byte gUnknown_083DFEC4
+_080EFCD4: .4byte 0x0000bc9a
+_080EFCD8: .4byte 0x0000bc9b
+_080EFCDC: .4byte gPokenavCityMaps
+_080EFCE0: .4byte 0x0000bc9c
+_080EFCE4: .4byte 0x0000cdcc
+_080EFCE8:
+ ldr r0, [r3]
+ ldr r4, _080EFD1C
+ adds r0, r4
+ adds r0, r6
+ str r1, [r0]
+_080EFCF2:
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0x1
+ bls _080EFC8E
+ ldr r0, _080EFD20
+ ldr r2, [r0]
+ ldr r0, _080EFD24
+ adds r1, r2, r0
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xF
+ bhi _080EFD2C
+ ldr r1, _080EFD28
+ adds r0, r2, r1
+ strb r7, [r0]
+ movs r0, 0x1
+ b _080EFD2E
+ .align 2, 0
+_080EFD1C: .4byte 0x0000cdcc
+_080EFD20: .4byte gUnknown_083DFEC4
+_080EFD24: .4byte 0x0000bc9a
+_080EFD28: .4byte 0x0000bc9b
+_080EFD2C:
+ movs r0, 0
+_080EFD2E:
+ add sp, 0x8
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80EFC64
+
+ thumb_func_start sub_80EFD3C
+sub_80EFD3C: @ 80EFD3C
+ ldr r0, _080EFD60
+ ldr r1, [r0]
+ ldr r2, _080EFD64
+ adds r0, r1, r2
+ movs r2, 0
+ strb r2, [r0]
+ ldr r0, _080EFD68
+ adds r3, r1, r0
+ movs r0, 0x2F
+ strb r0, [r3]
+ ldr r3, _080EFD6C
+ adds r0, r1, r3
+ strb r2, [r0]
+ ldr r0, _080EFD70
+ adds r1, r0
+ strh r2, [r1]
+ bx lr
+ .align 2, 0
+_080EFD60: .4byte gUnknown_083DFEC4
+_080EFD64: .4byte 0x0000769e
+_080EFD68: .4byte 0x0000769c
+_080EFD6C: .4byte 0x0000769d
+_080EFD70: .4byte 0x0000769a
+ thumb_func_end sub_80EFD3C
+
+ thumb_func_start sub_80EFD74
+sub_80EFD74: @ 80EFD74
+ push {lr}
+ ldr r0, _080EFD94
+ ldr r2, [r0]
+ ldr r0, _080EFD98
+ adds r1, r2, r0
+ movs r0, 0x1
+ strb r0, [r1]
+ ldr r0, _080EFD9C
+ adds r2, r0
+ ldrb r0, [r2]
+ cmp r0, 0x1
+ bne _080EFD90
+ movs r0, 0x2
+ strb r0, [r2]
+_080EFD90:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EFD94: .4byte gUnknown_083DFEC4
+_080EFD98: .4byte 0x0000769e
+_080EFD9C: .4byte 0x0000769d
+ thumb_func_end sub_80EFD74
+
+ thumb_func_start sub_80EFDA0
+sub_80EFDA0: @ 80EFDA0
+ push {r4,lr}
+ sub sp, 0x14
+ ldr r0, _080EFDD4
+ ldr r3, _080EFDD8
+ movs r4, 0
+ str r4, [sp]
+ str r4, [sp, 0x4]
+ movs r2, 0xF
+ str r2, [sp, 0x8]
+ movs r1, 0x1
+ str r1, [sp, 0xC]
+ str r2, [sp, 0x10]
+ movs r1, 0xE
+ movs r2, 0x10
+ bl sub_8095C8C
+ ldr r0, _080EFDDC
+ ldr r0, [r0]
+ ldr r1, _080EFDE0
+ adds r0, r1
+ strb r4, [r0]
+ add sp, 0x14
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EFDD4: .4byte 0x0600f800
+_080EFDD8: .4byte gUnknown_08E9AC2C
+_080EFDDC: .4byte gUnknown_083DFEC4
+_080EFDE0: .4byte 0x0000769e
+ thumb_func_end sub_80EFDA0
+
+ thumb_func_start sub_80EFDE4
+sub_80EFDE4: @ 80EFDE4
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x14
+ ldr r0, _080EFE68
+ ldr r1, [r0]
+ ldr r2, _080EFE6C
+ adds r0, r1, r2
+ ldrb r2, [r0]
+ movs r0, 0x3C
+ subs r0, r2
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0xF
+ bls _080EFE06
+ movs r4, 0xF
+_080EFE06:
+ ldr r3, _080EFE70
+ adds r0, r1, r3
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080EFE58
+ ldr r0, _080EFE74
+ mov r8, r0
+ ldr r3, _080EFE78
+ mov r9, r3
+ str r2, [sp]
+ movs r5, 0
+ str r5, [sp, 0x4]
+ str r4, [sp, 0x8]
+ movs r7, 0x1
+ str r7, [sp, 0xC]
+ movs r6, 0x3C
+ str r6, [sp, 0x10]
+ movs r1, 0xE
+ movs r2, 0x10
+ bl sub_8095C8C
+ cmp r4, 0xE
+ bhi _080EFE58
+ adds r1, r4, 0
+ adds r1, 0xE
+ lsls r1, 16
+ lsrs r1, 16
+ str r5, [sp]
+ str r5, [sp, 0x4]
+ movs r0, 0xF
+ subs r0, r4
+ lsls r0, 16
+ lsrs r0, 16
+ str r0, [sp, 0x8]
+ str r7, [sp, 0xC]
+ str r6, [sp, 0x10]
+ mov r0, r8
+ movs r2, 0x10
+ mov r3, r9
+ bl sub_8095C8C
+_080EFE58:
+ add sp, 0x14
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EFE68: .4byte gUnknown_083DFEC4
+_080EFE6C: .4byte 0x0000769c
+_080EFE70: .4byte 0x0000769e
+_080EFE74: .4byte 0x0600f800
+_080EFE78: .4byte gUnknown_08E9ABB4
+ thumb_func_end sub_80EFDE4
+
+ thumb_func_start sub_80EFE7C
+sub_80EFE7C: @ 80EFE7C
+ push {r4,lr}
+ ldr r0, _080EFE98
+ ldr r2, [r0]
+ ldr r0, _080EFE9C
+ adds r4, r2, r0
+ ldrb r1, [r4]
+ cmp r1, 0x1
+ beq _080EFF08
+ cmp r1, 0x1
+ bgt _080EFEA0
+ cmp r1, 0
+ beq _080EFEA6
+ b _080EFF2E
+ .align 2, 0
+_080EFE98: .4byte gUnknown_083DFEC4
+_080EFE9C: .4byte 0x0000769d
+_080EFEA0:
+ cmp r1, 0x2
+ beq _080EFF24
+ b _080EFF2E
+_080EFEA6:
+ ldr r0, _080EFED4
+ adds r4, r2, r0
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x3B
+ bls _080EFEBA
+ strb r1, [r4]
+_080EFEBA:
+ ldr r1, _080EFED8
+ adds r0, r2, r1
+ ldrb r0, [r0]
+ bl sub_80EFDE4
+ ldrb r0, [r4]
+ cmp r0, 0xF
+ beq _080EFEE4
+ cmp r0, 0xF
+ bgt _080EFEDC
+ cmp r0, 0
+ beq _080EFEE4
+ b _080EFF2E
+ .align 2, 0
+_080EFED4: .4byte 0x0000769c
+_080EFED8: .4byte 0x0000769e
+_080EFEDC:
+ cmp r0, 0x1E
+ beq _080EFEE4
+ cmp r0, 0x2D
+ bne _080EFF2E
+_080EFEE4:
+ ldr r0, _080EFEFC
+ ldr r1, [r0]
+ ldr r0, _080EFF00
+ adds r2, r1, r0
+ movs r3, 0
+ movs r0, 0x1
+ strb r0, [r2]
+ ldr r0, _080EFF04
+ adds r1, r0
+ strh r3, [r1]
+ b _080EFF2E
+ .align 2, 0
+_080EFEFC: .4byte gUnknown_083DFEC4
+_080EFF00: .4byte 0x0000769d
+_080EFF04: .4byte 0x0000769a
+_080EFF08:
+ ldr r0, _080EFF20
+ adds r1, r2, r0
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x78
+ bls _080EFF2E
+ movs r0, 0
+ strh r0, [r1]
+ b _080EFF2C
+ .align 2, 0
+_080EFF20: .4byte 0x0000769a
+_080EFF24:
+ movs r0, 0x1
+ bl sub_80EFDE4
+ movs r0, 0x1
+_080EFF2C:
+ strb r0, [r4]
+_080EFF2E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80EFE7C
+
+ thumb_func_start sub_80EFF34
+sub_80EFF34: @ 80EFF34
+ push {lr}
+ ldr r0, _080EFF5C
+ ldr r0, [r0]
+ ldr r1, _080EFF60
+ adds r2, r0, r1
+ movs r1, 0
+ strh r1, [r2]
+ ldr r1, _080EFF64
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080EFF56
+_080EFF4C:
+ bl sub_80EFF68
+ lsls r0, 24
+ cmp r0, 0
+ bne _080EFF4C
+_080EFF56:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EFF5C: .4byte gUnknown_083DFEC4
+_080EFF60: .4byte 0x0000d160
+_080EFF64: .4byte 0x00006dac
+ thumb_func_end sub_80EFF34
+
+ thumb_func_start sub_80EFF68
+sub_80EFF68: @ 80EFF68
+ push {r4,lr}
+ sub sp, 0x14
+ ldr r0, _080EFF88
+ ldr r0, [r0]
+ ldr r1, _080EFF8C
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r0, 0xD
+ bls _080EFF7C
+ b _080F0150
+_080EFF7C:
+ lsls r0, 2
+ ldr r1, _080EFF90
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080EFF88: .4byte gUnknown_083DFEC4
+_080EFF8C: .4byte 0x0000d160
+_080EFF90: .4byte _080EFF94
+ .align 2, 0
+_080EFF94:
+ .4byte _080EFFCC
+ .4byte _080EFFE8
+ .4byte _080EFFF4
+ .4byte _080F0000
+ .4byte _080F000C
+ .4byte _080F0012
+ .4byte _080F0018
+ .4byte _080F0028
+ .4byte _080F003C
+ .4byte _080F005C
+ .4byte _080F0098
+ .4byte _080F00AC
+ .4byte _080F00F8
+ .4byte _080F0118
+_080EFFCC:
+ bl sub_80EEDE8
+ ldr r0, _080EFFE0
+ ldr r0, [r0]
+ ldr r2, _080EFFE4
+ adds r0, r2
+ movs r1, 0xB
+ strb r1, [r0]
+ b _080F0154
+ .align 2, 0
+_080EFFE0: .4byte gUnknown_083DFEC4
+_080EFFE4: .4byte 0x0000d162
+_080EFFE8:
+ ldr r0, _080EFFF0
+ bl SetUpWindowConfig
+ b _080F0154
+ .align 2, 0
+_080EFFF0: .4byte gWindowConfig_81E7080
+_080EFFF4:
+ ldr r0, _080EFFFC
+ bl MultistepInitMenuWindowBegin
+ b _080F0154
+ .align 2, 0
+_080EFFFC: .4byte gWindowConfig_81E7080
+_080F0000:
+ bl MultistepInitMenuWindowContinue
+ cmp r0, 0
+ beq _080F000A
+ b _080F0154
+_080F000A:
+ b _080F0162
+_080F000C:
+ bl MenuZeroFillScreen
+ b _080F0154
+_080F0012:
+ bl sub_80F1614
+ b _080F0154
+_080F0018:
+ movs r0, 0
+ bl sub_80F162C
+ lsls r0, 24
+ cmp r0, 0
+ bne _080F0026
+ b _080F0154
+_080F0026:
+ b _080F0162
+_080F0028:
+ ldr r0, _080F0034
+ ldr r1, _080F0038
+ bl LZ77UnCompVram
+ b _080F0154
+ .align 2, 0
+_080F0034: .4byte gPokenavConditionView_Gfx
+_080F0038: .4byte 0x06005000
+_080F003C:
+ ldr r0, _080F0050
+ ldr r1, _080F0054
+ bl LZ77UnCompVram
+ ldr r0, _080F0058
+ movs r1, 0x20
+ movs r2, 0x20
+ bl LoadPalette
+ b _080F0154
+ .align 2, 0
+_080F0050: .4byte gUnknown_08E9AC4C
+_080F0054: .4byte 0x0600f000
+_080F0058: .4byte gPokenavConditionMenu2_Pal
+_080F005C:
+ ldr r0, _080F0088
+ ldr r0, [r0]
+ ldr r1, _080F008C
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _080F0154
+ ldr r0, _080F0090
+ ldr r3, _080F0094
+ movs r1, 0
+ str r1, [sp]
+ str r1, [sp, 0x4]
+ movs r2, 0x9
+ str r2, [sp, 0x8]
+ movs r1, 0x4
+ str r1, [sp, 0xC]
+ str r2, [sp, 0x10]
+ movs r1, 0
+ movs r2, 0x5
+ bl sub_8095C8C
+ b _080F0154
+ .align 2, 0
+_080F0088: .4byte gUnknown_083DFEC4
+_080F008C: .4byte 0x000076aa
+_080F0090: .4byte 0x0600f000
+_080F0094: .4byte gUnknown_083E01AC
+_080F0098:
+ ldr r0, _080F00A4
+ ldr r1, _080F00A8
+ bl LZ77UnCompVram
+ b _080F0154
+ .align 2, 0
+_080F00A4: .4byte gUnknown_08E9FEB4
+_080F00A8: .4byte 0x0600b800
+_080F00AC:
+ ldr r0, _080F00EC
+ movs r1, 0x30
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r0, _080F00F0
+ movs r1, 0xB0
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r4, _080F00F4
+ adds r0, r4, 0
+ movs r1, 0xB1
+ movs r2, 0x2
+ bl LoadPalette
+ adds r0, r4, 0
+ adds r0, 0xE
+ movs r1, 0xB5
+ movs r2, 0x2
+ bl LoadPalette
+ adds r4, 0x1C
+ adds r0, r4, 0
+ movs r1, 0xBF
+ movs r2, 0x2
+ bl LoadPalette
+ bl sub_80F01A4
+ b _080F0154
+ .align 2, 0
+_080F00EC: .4byte gUnknown_083E0254
+_080F00F0: .4byte gUnknownPalette_81E6692
+_080F00F4: .4byte gPokenavConditionMenu2_Pal + 0x2
+_080F00F8:
+ ldr r0, _080F0110
+ ldr r0, [r0]
+ ldr r2, _080F0114
+ adds r0, r2
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ lsls r0, 16
+ lsrs r0, 16
+ bl sub_80F01E0
+ b _080F0154
+ .align 2, 0
+_080F0110: .4byte gUnknown_083DFEC4
+_080F0114: .4byte 0x00008fe9
+_080F0118:
+ ldr r1, _080F013C
+ ldr r2, _080F0140
+ adds r0, r2, 0
+ strh r0, [r1]
+ subs r1, 0x2
+ ldr r2, _080F0144
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x44
+ ldr r2, _080F0148
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r2, _080F014C
+ adds r0, r2, 0
+ strh r0, [r1]
+ b _080F0154
+ .align 2, 0
+_080F013C: .4byte REG_BG3CNT
+_080F0140: .4byte 0x00001e03
+_080F0144: .4byte 0x00001702
+_080F0148: .4byte 0x00000844
+_080F014C: .4byte 0x0000040b
+_080F0150:
+ movs r0, 0
+ b _080F0164
+_080F0154:
+ ldr r0, _080F016C
+ ldr r1, [r0]
+ ldr r0, _080F0170
+ adds r1, r0
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_080F0162:
+ movs r0, 0x1
+_080F0164:
+ add sp, 0x14
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080F016C: .4byte gUnknown_083DFEC4
+_080F0170: .4byte 0x0000d160
+ thumb_func_end sub_80EFF68
+
+ thumb_func_start sub_80F0174
+sub_80F0174: @ 80F0174
+ push {lr}
+ lsls r0, 24
+ cmp r0, 0
+ beq _080F018E
+ movs r0, 0x80
+ lsls r0, 19
+ ldrh r1, [r0]
+ movs r3, 0x80
+ lsls r3, 3
+ adds r2, r3, 0
+ orrs r1, r2
+ strh r1, [r0]
+ b _080F019A
+_080F018E:
+ movs r2, 0x80
+ lsls r2, 19
+ ldrh r1, [r2]
+ ldr r0, _080F01A0
+ ands r0, r1
+ strh r0, [r2]
+_080F019A:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F01A0: .4byte 0x0000fbff
+ thumb_func_end sub_80F0174
+
+ thumb_func_start sub_80F01A4
+sub_80F01A4: @ 80F01A4
+ ldr r1, _080F01CC
+ movs r0, 0xF0
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r0, 0x9B
+ strh r0, [r1]
+ ldr r0, _080F01D0
+ ldr r2, _080F01D4
+ adds r1, r2, 0
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ ldr r1, _080F01D8
+ ldr r2, _080F01DC
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r0, 0x1B
+ strh r0, [r1]
+ bx lr
+ .align 2, 0
+_080F01CC: .4byte REG_WIN0H
+_080F01D0: .4byte REG_WIN0V
+_080F01D4: .4byte 0x00003879
+_080F01D8: .4byte REG_WININ
+_080F01DC: .4byte 0x00003f3f
+ thumb_func_end sub_80F01A4
+
+ thumb_func_start sub_80F01E0
+sub_80F01E0: @ 80F01E0
+ push {r4,r5,lr}
+ lsls r0, 16
+ lsrs r4, r0, 16
+ ldr r1, _080F0248
+ lsls r0, r4, 6
+ ldr r2, _080F024C
+ adds r0, r2
+ ldr r5, [r1]
+ adds r0, r5, r0
+ movs r1, 0xD
+ movs r2, 0x1
+ bl MenuPrint
+ ldr r1, _080F0250
+ adds r0, r5, r1
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _080F0242
+ lsls r0, r4, 1
+ adds r0, r4
+ lsls r0, 3
+ ldr r2, _080F0254
+ adds r0, r2
+ adds r0, r5, r0
+ movs r1, 0xD
+ movs r2, 0x3
+ bl MenuPrint
+ ldr r0, _080F0258
+ adds r4, r5, r0
+ ldr r1, _080F025C
+ adds r0, r5, r1
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ lsls r0, 2
+ adds r0, r5, r0
+ ldr r1, _080F0260
+ adds r0, r1
+ ldrh r1, [r0]
+ lsls r1, 18
+ lsrs r1, 23
+ adds r0, r4, 0
+ bl sub_80F443C
+ adds r0, r4, 0
+ movs r1, 0x1
+ movs r2, 0x6
+ bl MenuPrint
+_080F0242:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F0248: .4byte gUnknown_083DFEC4
+_080F024C: .4byte 0x00008829
+_080F0250: .4byte 0x000076aa
+_080F0254: .4byte 0x000088e9
+_080F0258: .4byte 0x00008788
+_080F025C: .4byte 0x000087dc
+_080F0260: .4byte 0x0000893e
+ thumb_func_end sub_80F01E0
+
+ thumb_func_start sub_80F0264
+sub_80F0264: @ 80F0264
+ push {lr}
+ ldr r1, _080F0290
+ ldr r2, [r1]
+ ldr r1, _080F0294
+ adds r3, r2, r1
+ movs r1, 0
+ strh r1, [r3]
+ ldr r3, _080F0298
+ adds r1, r2, r3
+ strb r0, [r1]
+ ldr r0, _080F029C
+ adds r2, r0
+ ldrb r0, [r2]
+ cmp r0, 0
+ bne _080F028C
+_080F0282:
+ bl sub_80F02A0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080F0282
+_080F028C:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F0290: .4byte gUnknown_083DFEC4
+_080F0294: .4byte 0x00000306
+_080F0298: .4byte 0x000087ca
+_080F029C: .4byte 0x00006dac
+ thumb_func_end sub_80F0264
+
+ thumb_func_start sub_80F02A0
+sub_80F02A0: @ 80F02A0
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ sub sp, 0x18
+ ldr r1, _080F02C4
+ ldr r0, [r1]
+ ldr r2, _080F02C8
+ adds r0, r2
+ ldrh r0, [r0]
+ adds r2, r1, 0
+ cmp r0, 0xE
+ bls _080F02BA
+ b _080F05FA
+_080F02BA:
+ lsls r0, 2
+ ldr r1, _080F02CC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080F02C4: .4byte gUnknown_083DFEC4
+_080F02C8: .4byte 0x00000306
+_080F02CC: .4byte _080F02D0
+ .align 2, 0
+_080F02D0:
+ .4byte _080F030C
+ .4byte _080F0344
+ .4byte _080F0350
+ .4byte _080F035C
+ .4byte _080F0368
+ .4byte _080F036E
+ .4byte _080F0380
+ .4byte _080F0394
+ .4byte _080F04BC
+ .4byte _080F053C
+ .4byte _080F0550
+ .4byte _080F0574
+ .4byte _080F057A
+ .4byte _080F0586
+ .4byte _080F05BC
+_080F030C:
+ bl sub_80EEDE8
+ ldr r0, _080F0334
+ ldr r1, [r0]
+ movs r2, 0
+ ldr r3, _080F0338
+ adds r0, r1, r3
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _080F0322
+ movs r2, 0x1
+_080F0322:
+ ldr r3, _080F033C
+ adds r0, r1, r3
+ strb r2, [r0]
+ ldr r0, _080F0340
+ adds r1, r0
+ movs r0, 0xB
+ strb r0, [r1]
+ b _080F0618
+ .align 2, 0
+_080F0334: .4byte gUnknown_083DFEC4
+_080F0338: .4byte 0x000087ca
+_080F033C: .4byte 0x000087c8
+_080F0340: .4byte 0x0000d162
+_080F0344:
+ ldr r0, _080F034C
+ bl SetUpWindowConfig
+ b _080F0618
+ .align 2, 0
+_080F034C: .4byte gWindowConfig_81E70D4
+_080F0350:
+ ldr r0, _080F0358
+ bl MultistepInitMenuWindowBegin
+ b _080F0618
+ .align 2, 0
+_080F0358: .4byte gWindowConfig_81E70D4
+_080F035C:
+ bl MultistepInitMenuWindowContinue
+ cmp r0, 0
+ beq _080F0366
+ b _080F0618
+_080F0366:
+ b _080F0626
+_080F0368:
+ bl MenuZeroFillScreen
+ b _080F0618
+_080F036E:
+ ldr r0, _080F0378
+ ldr r1, _080F037C
+ bl LZ77UnCompVram
+ b _080F0618
+ .align 2, 0
+_080F0378: .4byte gUnknown_08E9FC64
+_080F037C: .4byte 0x0600e800
+_080F0380:
+ ldr r0, _080F038C
+ ldr r1, _080F0390
+ bl LZ77UnCompVram
+ b _080F0618
+ .align 2, 0
+_080F038C: .4byte gPokenavConditionSearch2_Gfx
+_080F0390: .4byte 0x06008000
+_080F0394:
+ ldr r6, _080F03FC
+ adds r0, r6, 0
+ movs r1, 0xB0
+ movs r2, 0x20
+ bl LoadPalette
+ adds r0, r6, 0
+ movs r1, 0xF0
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r0, _080F0400
+ movs r1, 0x40
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r0, _080F0404
+ ldr r0, [r0]
+ ldr r1, _080F0408
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080F0418
+ ldr r4, _080F040C
+ adds r0, r4, 0
+ movs r1, 0x30
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r1, _080F0410
+ ldrh r0, [r4, 0xA]
+ strh r0, [r1]
+ ldr r0, _080F0414
+ movs r1, 0xB0
+ movs r2, 0x20
+ bl LoadPalette
+ adds r0, r6, 0x2
+ movs r1, 0xB1
+ movs r2, 0x2
+ bl LoadPalette
+ adds r0, r6, 0
+ adds r0, 0x10
+ movs r1, 0xB5
+ movs r2, 0x2
+ bl LoadPalette
+ adds r4, 0xA
+ adds r0, r4, 0
+ movs r1, 0xBF
+ b _080F04A8
+ .align 2, 0
+_080F03FC: .4byte gUnknown_083E02B4
+_080F0400: .4byte gUnknown_083E0334
+_080F0404: .4byte gUnknown_083DFEC4
+_080F0408: .4byte 0x000087ca
+_080F040C: .4byte gPokenavConditionSearch2_Pal
+_080F0410: .4byte gPlttBufferUnfaded
+_080F0414: .4byte gUnknownPalette_81E6692
+_080F0418:
+ cmp r0, 0x1
+ bne _080F0464
+ ldr r4, _080F0458
+ adds r0, r4, 0
+ movs r1, 0x30
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r1, _080F045C
+ ldrh r0, [r4, 0xA]
+ strh r0, [r1]
+ ldr r0, _080F0460
+ movs r1, 0xB0
+ movs r2, 0x20
+ bl LoadPalette
+ adds r0, r6, 0x2
+ movs r1, 0xB1
+ movs r2, 0x2
+ bl LoadPalette
+ adds r0, r6, 0
+ adds r0, 0x10
+ movs r1, 0xB5
+ movs r2, 0x2
+ bl LoadPalette
+ adds r4, 0xA
+ adds r0, r4, 0
+ movs r1, 0xBF
+ b _080F04A8
+ .align 2, 0
+_080F0458: .4byte gUnknown_083E0274
+_080F045C: .4byte gPlttBufferUnfaded
+_080F0460: .4byte gUnknownPalette_81E6692
+_080F0464:
+ ldr r4, _080F04B0
+ adds r0, r4, 0
+ movs r1, 0x30
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r1, _080F04B4
+ adds r5, r4, 0
+ adds r5, 0xA
+ ldrh r0, [r4, 0xA]
+ strh r0, [r1]
+ ldr r0, _080F04B8
+ movs r1, 0x50
+ movs r2, 0x20
+ bl LoadPalette
+ adds r0, r6, 0x2
+ movs r1, 0xB1
+ movs r2, 0x2
+ bl LoadPalette
+ adds r0, r6, 0
+ adds r0, 0x10
+ movs r1, 0xB5
+ movs r2, 0x2
+ bl LoadPalette
+ adds r0, r5, 0
+ movs r1, 0xBF
+ movs r2, 0x2
+ bl LoadPalette
+ adds r0, r5, 0
+ movs r1, 0x5F
+_080F04A8:
+ movs r2, 0x2
+ bl LoadPalette
+ b _080F0618
+ .align 2, 0
+_080F04B0: .4byte gUnknown_08E9F9E8
+_080F04B4: .4byte gPlttBufferUnfaded
+_080F04B8: .4byte gUnknown_083E0314
+_080F04BC:
+ ldr r0, _080F04E8
+ ldr r0, [r0]
+ ldr r2, _080F04EC
+ adds r0, r2
+ ldrb r0, [r0]
+ cmp r0, 0x2
+ beq _080F04F8
+ ldr r0, _080F04F0
+ ldr r3, _080F04F4
+ movs r1, 0
+ str r1, [sp]
+ str r1, [sp, 0x4]
+ movs r2, 0x9
+ str r2, [sp, 0x8]
+ movs r1, 0x4
+ str r1, [sp, 0xC]
+ str r2, [sp, 0x10]
+ movs r1, 0
+ movs r2, 0x5
+ bl sub_8095C8C
+ b _080F0618
+ .align 2, 0
+_080F04E8: .4byte gUnknown_083DFEC4
+_080F04EC: .4byte 0x000087ca
+_080F04F0: .4byte 0x0600e800
+_080F04F4: .4byte gUnknown_08E9FD1C
+_080F04F8:
+ ldr r3, _080F0530
+ mov r8, r3
+ ldr r3, _080F0534
+ movs r4, 0
+ str r4, [sp]
+ str r4, [sp, 0x4]
+ movs r5, 0xC
+ str r5, [sp, 0x8]
+ movs r6, 0xA
+ str r6, [sp, 0xC]
+ str r5, [sp, 0x10]
+ mov r0, r8
+ movs r1, 0
+ movs r2, 0x4
+ bl sub_8095C8C
+ ldr r3, _080F0538
+ str r4, [sp]
+ str r4, [sp, 0x4]
+ str r5, [sp, 0x8]
+ str r6, [sp, 0xC]
+ str r5, [sp, 0x10]
+ mov r0, r8
+ movs r1, 0
+ movs r2, 0x8
+ bl sub_8095C8C
+ b _080F0618
+ .align 2, 0
+_080F0530: .4byte 0x0600e800
+_080F0534: .4byte gUnknown_08E9FE54
+_080F0538: .4byte gUnknown_08E9FD64
+_080F053C:
+ ldr r0, _080F0548
+ ldr r1, _080F054C
+ bl LZ77UnCompVram
+ b _080F0618
+ .align 2, 0
+_080F0548: .4byte gUnknown_083E0354
+_080F054C: .4byte 0x06005000
+_080F0550:
+ ldr r2, _080F0568
+ add r1, sp, 0x14
+ movs r0, 0
+ strh r0, [r1]
+ ldr r0, _080F056C
+ str r1, [r0]
+ str r2, [r0, 0x4]
+ ldr r1, _080F0570
+ str r1, [r0, 0x8]
+ ldr r0, [r0, 0x8]
+ b _080F0618
+ .align 2, 0
+_080F0568: .4byte 0x0600f800
+_080F056C: .4byte 0x040000d4
+_080F0570: .4byte 0x81000400
+_080F0574:
+ bl sub_80F0900
+ b _080F0618
+_080F057A:
+ bl sub_80F0944
+ lsls r0, 24
+ cmp r0, 0
+ beq _080F0618
+ b _080F0626
+_080F0586:
+ ldr r0, _080F059C
+ ldr r4, [r0]
+ ldr r1, _080F05A0
+ adds r0, r4, r1
+ ldrb r0, [r0]
+ cmp r0, 0x2
+ beq _080F05A4
+ bl ShowMapNamePopUpWindow
+ b _080F0618
+ .align 2, 0
+_080F059C: .4byte gUnknown_083DFEC4
+_080F05A0: .4byte 0x000087ca
+_080F05A4:
+ movs r0, 0
+ bl sub_80F081C
+ ldr r2, _080F05B8
+ adds r0, r4, r2
+ ldrb r0, [r0]
+ bl sub_80F0FFC
+ b _080F0618
+ .align 2, 0
+_080F05B8: .4byte 0x0000876e
+_080F05BC:
+ ldr r1, _080F0600
+ ldr r3, _080F0604
+ adds r0, r3, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ adds r3, 0xF9
+ adds r0, r3, 0
+ strh r0, [r1]
+ subs r1, 0x6
+ adds r3, 0xFE
+ adds r0, r3, 0
+ strh r0, [r1]
+ adds r1, 0x16
+ movs r0, 0xF8
+ strh r0, [r1]
+ ldr r1, [r2]
+ ldr r0, _080F0608
+ adds r2, r1, r0
+ movs r3, 0
+ movs r0, 0xF8
+ strh r0, [r2]
+ ldr r2, _080F060C
+ adds r0, r1, r2
+ strh r3, [r0]
+ ldr r0, _080F0610
+ strh r3, [r0]
+ ldr r3, _080F0614
+ adds r1, r3
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_080F05FA:
+ movs r0, 0
+ b _080F0628
+ .align 2, 0
+_080F0600: .4byte REG_BG2CNT
+_080F0604: .4byte 0x00001d0a
+_080F0608: .4byte 0x00008776
+_080F060C: .4byte 0x00008778
+_080F0610: .4byte REG_BLDCNT
+_080F0614: .4byte 0x0000d160
+_080F0618:
+ ldr r0, _080F0634
+ ldr r1, [r0]
+ ldr r0, _080F0638
+ adds r1, r0
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_080F0626:
+ movs r0, 0x1
+_080F0628:
+ add sp, 0x18
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080F0634: .4byte gUnknown_083DFEC4
+_080F0638: .4byte 0x00000306
+ thumb_func_end sub_80F02A0
+
+ thumb_func_start sub_80F063C
+sub_80F063C: @ 80F063C
+ push {r4-r7,lr}
+ lsls r0, 16
+ ldr r3, _080F0664
+ ldr r2, [r3]
+ lsrs r5, r0, 16
+ asrs r4, r0, 16
+ lsls r1, r4, 4
+ ldr r6, _080F0668
+ adds r0, r2, r6
+ strh r1, [r0]
+ adds r7, r3, 0
+ cmp r4, 0x1
+ beq _080F065E
+ movs r0, 0x1
+ negs r0, r0
+ cmp r4, r0
+ bne _080F066C
+_080F065E:
+ movs r1, 0x4
+ b _080F066E
+ .align 2, 0
+_080F0664: .4byte gUnknown_083DFEC4
+_080F0668: .4byte 0x0000877c
+_080F066C:
+ movs r1, 0x8
+_080F066E:
+ ldr r3, _080F06C0
+ adds r0, r2, r3
+ strh r1, [r0]
+ lsls r0, r5, 16
+ asrs r3, r0, 16
+ cmp r3, 0
+ bge _080F06CC
+ ldr r4, [r7]
+ ldr r6, _080F06C0
+ adds r1, r4, r6
+ movs r2, 0
+ ldrsh r0, [r1, r2]
+ negs r0, r0
+ strh r0, [r1]
+ subs r6, 0x2
+ adds r1, r4, r6
+ lsls r0, r3, 1
+ ldrh r1, [r1]
+ adds r0, r1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ ldr r1, _080F06C4
+ adds r0, r4, r1
+ ldrh r0, [r0]
+ adds r0, r3, r0
+ lsls r0, 16
+ lsrs r2, r0, 16
+ asrs r0, 16
+ cmp r0, 0
+ bge _080F06B8
+ ldr r2, _080F06C8
+ adds r1, r4, r2
+ adds r0, 0x1
+ ldrh r1, [r1]
+ adds r0, r1
+ lsls r0, 16
+ lsrs r2, r0, 16
+_080F06B8:
+ negs r0, r3
+ lsls r0, 16
+ lsrs r5, r0, 16
+ b _080F06E6
+ .align 2, 0
+_080F06C0: .4byte 0x0000877a
+_080F06C4: .4byte 0x00008770
+_080F06C8: .4byte 0x00008774
+_080F06CC:
+ ldr r1, [r7]
+ ldr r3, _080F070C
+ adds r0, r1, r3
+ ldrh r0, [r0]
+ adds r0, 0x10
+ lsls r0, 16
+ lsrs r6, r0, 16
+ ldr r0, _080F0710
+ adds r1, r0
+ ldrh r0, [r1]
+ adds r0, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+_080F06E6:
+ ldr r0, [r7]
+ ldr r1, _080F0714
+ adds r0, r1
+ lsls r1, r2, 16
+ asrs r1, 16
+ movs r3, 0
+ ldrsh r0, [r0, r3]
+ cmp r1, r0
+ ble _080F06FA
+ movs r2, 0
+_080F06FA:
+ movs r1, 0x1F
+ adds r0, r2, 0
+ ands r1, r6
+ adds r2, r5, 0
+ bl sub_80F0954
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F070C: .4byte 0x00008778
+_080F0710: .4byte 0x00008772
+_080F0714: .4byte 0x00008774
+ thumb_func_end sub_80F063C
+
+ thumb_func_start sub_80F0718
+sub_80F0718: @ 80F0718
+ push {r4,r5,lr}
+ bl sub_80F098C
+ lsls r0, 24
+ cmp r0, 0
+ bne _080F0790
+ ldr r0, _080F073C
+ ldr r4, [r0]
+ ldr r0, _080F0740
+ adds r3, r4, r0
+ ldrh r2, [r3]
+ movs r1, 0
+ ldrsh r0, [r3, r1]
+ cmp r0, 0
+ bne _080F0744
+ movs r0, 0
+ b _080F0792
+ .align 2, 0
+_080F073C: .4byte gUnknown_083DFEC4
+_080F0740: .4byte 0x0000877c
+_080F0744:
+ ldr r0, _080F0780
+ adds r1, r4, r0
+ ldrh r0, [r1]
+ subs r0, r2, r0
+ strh r0, [r3]
+ ldr r0, _080F0784
+ adds r2, r4, r0
+ ldrh r0, [r1]
+ ldrh r1, [r2]
+ adds r0, r1
+ movs r5, 0xFF
+ ands r0, r5
+ strh r0, [r2]
+ ldr r1, _080F0788
+ strh r0, [r1]
+ movs r1, 0
+ ldrsh r0, [r3, r1]
+ cmp r0, 0
+ bne _080F0790
+ movs r1, 0
+ ldrsh r0, [r2, r1]
+ adds r0, 0x8
+ ands r0, r5
+ asrs r1, r0, 3
+ ldr r2, _080F078C
+ adds r0, r4, r2
+ strh r1, [r0]
+ movs r0, 0
+ b _080F0792
+ .align 2, 0
+_080F0780: .4byte 0x0000877a
+_080F0784: .4byte 0x00008776
+_080F0788: .4byte REG_BG3VOFS
+_080F078C: .4byte 0x00008778
+_080F0790:
+ movs r0, 0x1
+_080F0792:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80F0718
+
+ thumb_func_start ShowMapNamePopUpWindow
+ShowMapNamePopUpWindow: @ 80F0798
+ push {lr}
+ ldr r0, _080F07B0
+ ldr r2, [r0]
+ ldr r1, _080F07B4
+ adds r0, r2, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080F07B8
+ cmp r0, 0x1
+ beq _080F07E0
+ b _080F080A
+ .align 2, 0
+_080F07B0: .4byte gUnknown_083DFEC4
+_080F07B4: .4byte 0x000087ca
+_080F07B8:
+ ldr r3, _080F07D8
+ adds r0, r2, r3
+ subs r3, 0x1A
+ adds r1, r2, r3
+ movs r3, 0
+ ldrsh r1, [r1, r3]
+ lsls r1, 2
+ adds r1, r2, r1
+ ldr r2, _080F07DC
+ adds r1, r2
+ ldrh r1, [r1]
+ lsls r1, 18
+ lsrs r1, 23
+ bl sub_80F443C
+ b _080F07F4
+ .align 2, 0
+_080F07D8: .4byte 0x00008788
+_080F07DC: .4byte 0x0000893e
+_080F07E0:
+ ldr r3, _080F0810
+ adds r0, r2, r3
+ subs r3, 0x1A
+ adds r1, r2, r3
+ ldrh r1, [r1]
+ adds r1, 0x1
+ lsls r1, 16
+ lsrs r1, 16
+ bl sub_80F445C
+_080F07F4:
+ ldr r0, _080F0814
+ bl BasicInitMenuWindow
+ ldr r0, _080F0818
+ ldr r0, [r0]
+ ldr r1, _080F0810
+ adds r0, r1
+ movs r1, 0x1
+ movs r2, 0x6
+ bl MenuPrint
+_080F080A:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F0810: .4byte 0x00008788
+_080F0814: .4byte gWindowConfig_81E710C
+_080F0818: .4byte gUnknown_083DFEC4
+ thumb_func_end ShowMapNamePopUpWindow
+
+ thumb_func_start sub_80F081C
+sub_80F081C: @ 80F081C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, _080F0838
+ bl BasicInitMenuWindow
+ cmp r5, 0x4
+ bhi _080F08C6
+ lsls r0, r5, 2
+ ldr r1, _080F083C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080F0838: .4byte gWindowConfig_81E710C
+_080F083C: .4byte _080F0840
+ .align 2, 0
+_080F0840:
+ .4byte _080F0854
+ .4byte _080F0854
+ .4byte _080F0862
+ .4byte _080F088C
+ .4byte _080F089A
+_080F0854:
+ ldr r0, _080F08CC
+ movs r1, 0xA
+ movs r2, 0x9
+ bl sub_8072B4C
+ cmp r5, 0
+ bne _080F08C6
+_080F0862:
+ ldr r0, _080F08D0
+ ldr r0, [r0]
+ ldr r1, _080F08D4
+ adds r4, r0, r1
+ ldr r2, _080F08D8
+ adds r0, r2
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ adds r1, 0x1
+ adds r0, r4, 0
+ movs r2, 0x1
+ movs r3, 0x5
+ bl ConvertIntToDecimalStringN
+ adds r0, r4, 0
+ movs r1, 0xA
+ movs r2, 0xB
+ bl sub_8072B4C
+ cmp r5, 0
+ bne _080F08C6
+_080F088C:
+ ldr r0, _080F08DC
+ movs r1, 0xA
+ movs r2, 0xD
+ bl sub_8072B4C
+ cmp r5, 0
+ bne _080F08C6
+_080F089A:
+ movs r0, 0x9
+ bl sub_8053108
+ adds r1, r0, 0
+ ldr r0, _080F08E0
+ cmp r1, r0
+ bls _080F08AA
+ adds r1, r0, 0
+_080F08AA:
+ ldr r0, _080F08D0
+ ldr r4, [r0]
+ ldr r0, _080F08D4
+ adds r4, r0
+ adds r0, r4, 0
+ movs r2, 0x1
+ movs r3, 0x5
+ bl ConvertIntToDecimalStringN
+ adds r0, r4, 0
+ movs r1, 0xA
+ movs r2, 0xF
+ bl sub_8072B4C
+_080F08C6:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F08CC: .4byte gOtherText_NumberRegistered
+_080F08D0: .4byte gUnknown_083DFEC4
+_080F08D4: .4byte 0x00008788
+_080F08D8: .4byte 0x00008774
+_080F08DC: .4byte gOtherText_NumberBattles
+_080F08E0: .4byte 0x0001869f
+ thumb_func_end sub_80F081C
+
+ thumb_func_start sub_80F08E4
+sub_80F08E4: @ 80F08E4
+ push {lr}
+ ldr r0, _080F08FC
+ bl BasicInitMenuWindow
+ movs r0, 0
+ movs r1, 0x9
+ movs r2, 0xB
+ movs r3, 0x10
+ bl MenuZeroFillWindowRect
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F08FC: .4byte gWindowConfig_81E710C
+ thumb_func_end sub_80F08E4
+
+ thumb_func_start sub_80F0900
+sub_80F0900: @ 80F0900
+ push {r4,r5,lr}
+ ldr r0, _080F093C
+ ldr r0, [r0]
+ ldr r2, _080F0940
+ adds r1, r0, r2
+ subs r2, 0x2
+ adds r5, r0, r2
+ ldrh r0, [r1]
+ ldrh r1, [r5]
+ subs r0, r1
+ adds r0, 0x1
+ lsls r4, r0, 16
+ asrs r0, r4, 16
+ cmp r0, 0x7
+ bgt _080F092A
+ movs r0, 0xC
+ movs r1, 0x1
+ movs r2, 0x1F
+ movs r3, 0xF
+ bl MenuZeroFillWindowRect
+_080F092A:
+ ldrh r0, [r5]
+ lsrs r2, r4, 16
+ movs r1, 0
+ bl sub_80F0954
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F093C: .4byte gUnknown_083DFEC4
+_080F0940: .4byte 0x00008772
+ thumb_func_end sub_80F0900
+
+ thumb_func_start sub_80F0944
+sub_80F0944: @ 80F0944
+ push {lr}
+ bl sub_80F098C
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80F0944
+
+ thumb_func_start sub_80F0954
+sub_80F0954: @ 80F0954
+ push {r4,r5,lr}
+ ldr r3, _080F097C
+ ldr r3, [r3]
+ ldr r5, _080F0980
+ adds r4, r3, r5
+ movs r5, 0
+ strh r0, [r4]
+ ldr r4, _080F0984
+ adds r0, r3, r4
+ strh r1, [r0]
+ ldr r1, _080F0988
+ adds r0, r3, r1
+ strh r2, [r0]
+ adds r4, 0x6
+ adds r3, r4
+ strh r5, [r3]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F097C: .4byte gUnknown_083DFEC4
+_080F0980: .4byte 0x0000877e
+_080F0984: .4byte 0x00008780
+_080F0988: .4byte 0x00008784
+ thumb_func_end sub_80F0954
+
+ thumb_func_start sub_80F098C
+sub_80F098C: @ 80F098C
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ ldr r0, _080F09A4
+ ldr r6, [r0]
+ ldr r0, _080F09A8
+ adds r7, r6, r0
+ ldrh r0, [r7]
+ cmp r0, 0
+ bne _080F09AC
+_080F09A0:
+ movs r0, 0
+ b _080F0A02
+ .align 2, 0
+_080F09A4: .4byte gUnknown_083DFEC4
+_080F09A8: .4byte 0x00008784
+_080F09AC:
+ movs r1, 0
+ mov r8, r1
+ ldr r1, _080F0A0C
+ ldr r2, _080F0A10
+ adds r0, r6, r2
+ ldrb r2, [r0]
+ lsls r2, 2
+ adds r2, r1
+ ldr r0, _080F0A14
+ adds r4, r6, r0
+ ldrh r0, [r4]
+ ldr r1, _080F0A18
+ adds r5, r6, r1
+ ldrh r1, [r5]
+ ldr r2, [r2]
+ bl _call_via_r2
+ ldrh r0, [r7]
+ subs r0, 0x1
+ strh r0, [r7]
+ ldr r2, _080F0A1C
+ adds r1, r2, 0
+ lsls r0, 16
+ cmp r0, 0
+ beq _080F09A0
+ ldrh r0, [r4]
+ adds r0, 0x1
+ strh r0, [r4]
+ ands r0, r1
+ ldr r2, _080F0A20
+ adds r1, r6, r2
+ movs r2, 0
+ ldrsh r1, [r1, r2]
+ cmp r0, r1
+ ble _080F09F6
+ mov r0, r8
+ strh r0, [r4]
+_080F09F6:
+ ldrh r0, [r5]
+ adds r0, 0x2
+ movs r1, 0x1F
+ ands r0, r1
+ strh r0, [r5]
+ movs r0, 0x1
+_080F0A02:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080F0A0C: .4byte gUnknown_083E3270
+_080F0A10: .4byte 0x000087ca
+_080F0A14: .4byte 0x0000877e
+_080F0A18: .4byte 0x00008780
+_080F0A1C: .4byte 0x0000ffff
+_080F0A20: .4byte 0x00008774
+ thumb_func_end sub_80F098C
+
+ thumb_func_start sub_80F0A24
+sub_80F0A24: @ 80F0A24
+ push {r4,r5,lr}
+ lsls r0, 16
+ lsrs r3, r0, 16
+ lsls r1, 16
+ lsrs r5, r1, 16
+ ldr r0, _080F0A64
+ ldr r4, [r0]
+ ldr r1, _080F0A68
+ adds r0, r4, r1
+ ldrb r0, [r0]
+ movs r2, 0x1
+ cmp r0, 0
+ bne _080F0A40
+ movs r2, 0x2
+_080F0A40:
+ ldr r0, _080F0A6C
+ adds r4, r0
+ adds r0, r4, 0
+ adds r1, r3, 0
+ bl sub_80F4428
+ ldr r0, _080F0A70
+ bl BasicInitMenuWindow
+ lsls r2, r5, 24
+ lsrs r2, 24
+ adds r0, r4, 0
+ movs r1, 0xD
+ bl MenuPrint
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F0A64: .4byte gUnknown_083DFEC4
+_080F0A68: .4byte 0x000087c8
+_080F0A6C: .4byte 0x00008788
+_080F0A70: .4byte gWindowConfig_81E70D4
+ thumb_func_end sub_80F0A24
+
+ thumb_func_start sub_80F0A74
+sub_80F0A74: @ 80F0A74
+ push {r4-r7,lr}
+ sub sp, 0x14
+ lsls r0, 16
+ lsrs r6, r0, 16
+ lsls r1, 16
+ lsrs r7, r1, 16
+ ldr r0, _080F0ADC
+ ldr r5, [r0]
+ ldr r0, _080F0AE0
+ adds r4, r5, r0
+ adds r0, r4, 0
+ adds r1, r6, 0
+ bl sub_80F700C
+ movs r0, 0x1F
+ ands r7, r0
+ ldr r0, _080F0AE4
+ bl BasicInitMenuWindow
+ lsls r2, r7, 3
+ adds r0, r4, 0
+ movs r1, 0x61
+ movs r3, 0
+ bl sub_80729D8
+ ldr r1, _080F0AE8
+ adds r0, r5, r1
+ ldrh r0, [r0]
+ cmp r6, r0
+ bcs _080F0AF8
+ lsls r0, r6, 3
+ adds r0, r5, r0
+ ldr r1, _080F0AEC
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080F0AF8
+ ldr r0, _080F0AF0
+ ldr r3, _080F0AF4
+ movs r1, 0
+ str r1, [sp]
+ str r1, [sp, 0x4]
+ movs r2, 0x1
+ str r2, [sp, 0x8]
+ movs r1, 0x2
+ str r1, [sp, 0xC]
+ str r2, [sp, 0x10]
+ movs r1, 0x1D
+ adds r2, r7, 0
+ bl sub_8095C8C
+ b _080F0B14
+ .align 2, 0
+_080F0ADC: .4byte gUnknown_083DFEC4
+_080F0AE0: .4byte 0x00008788
+_080F0AE4: .4byte gWindowConfig_81E70D4
+_080F0AE8: .4byte 0x0000d158
+_080F0AEC: .4byte 0x0000ceed
+_080F0AF0: .4byte 0x0600f000
+_080F0AF4: .4byte gUnknown_083E039C
+_080F0AF8:
+ ldr r0, _080F0B1C
+ ldr r3, _080F0B20
+ movs r1, 0
+ str r1, [sp]
+ str r1, [sp, 0x4]
+ movs r2, 0x1
+ str r2, [sp, 0x8]
+ movs r1, 0x2
+ str r1, [sp, 0xC]
+ str r2, [sp, 0x10]
+ movs r1, 0x1D
+ adds r2, r7, 0
+ bl sub_8095C8C
+_080F0B14:
+ add sp, 0x14
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F0B1C: .4byte 0x0600f000
+_080F0B20: .4byte gUnknown_083E03A0
+ thumb_func_end sub_80F0A74
+
+ thumb_func_start sub_80F0B24
+sub_80F0B24: @ 80F0B24
+ ldr r0, _080F0B38
+ ldr r0, [r0]
+ ldr r2, _080F0B3C
+ adds r1, r0, r2
+ movs r2, 0
+ strh r2, [r1]
+ ldr r1, _080F0B40
+ adds r0, r1
+ strh r2, [r0]
+ bx lr
+ .align 2, 0
+_080F0B38: .4byte gUnknown_083DFEC4
+_080F0B3C: .4byte 0x0000d15c
+_080F0B40: .4byte 0x00000306
+ thumb_func_end sub_80F0B24
+
+ thumb_func_start sub_80F0B44
+sub_80F0B44: @ 80F0B44
+ push {r4-r6,lr}
+ ldr r0, _080F0B58
+ ldr r5, [r0]
+ ldr r0, _080F0B5C
+ adds r6, r5, r0
+ ldrh r0, [r6]
+ cmp r0, 0x8
+ bls _080F0B60
+ movs r0, 0
+ b _080F0C22
+ .align 2, 0
+_080F0B58: .4byte gUnknown_083DFEC4
+_080F0B5C: .4byte 0x0000d15c
+_080F0B60:
+ ldr r0, _080F0BBC
+ adds r1, r5, r0
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x1
+ bls _080F0C20
+ movs r0, 0
+ strh r0, [r1]
+ ldrh r0, [r6]
+ cmp r0, 0x7
+ bhi _080F0BCC
+ ldr r0, _080F0BC0
+ adds r1, r5, r0
+ ldrh r2, [r6]
+ lsls r0, r2, 1
+ ldrh r1, [r1]
+ adds r4, r0, r1
+ movs r0, 0x1F
+ ands r4, r0
+ ldr r1, _080F0BC4
+ adds r0, r5, r1
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r2, r0
+ beq _080F0BAA
+ ldr r0, _080F0BC8
+ bl BasicInitMenuWindow
+ adds r1, r4, 0
+ adds r3, r1, 0x1
+ movs r0, 0xC
+ movs r2, 0x1F
+ bl MenuZeroFillWindowRect
+_080F0BAA:
+ ldrh r0, [r6]
+ cmp r0, 0
+ bne _080F0BB4
+ bl sub_80F08E4
+_080F0BB4:
+ ldrh r0, [r6]
+ adds r0, 0x1
+ strh r0, [r6]
+ b _080F0C20
+ .align 2, 0
+_080F0BBC: .4byte 0x00000306
+_080F0BC0: .4byte 0x00008778
+_080F0BC4: .4byte 0x0000876c
+_080F0BC8: .4byte gWindowConfig_81E70D4
+_080F0BCC:
+ ldr r0, _080F0C10
+ bl BasicInitMenuWindow
+ ldr r1, _080F0C14
+ adds r0, r5, r1
+ ldrh r0, [r0]
+ adds r4, r0, 0
+ adds r4, 0x10
+ movs r0, 0x1F
+ ands r4, r0
+ movs r5, 0
+_080F0BE2:
+ adds r3, r4, 0x1
+ movs r0, 0xC
+ adds r1, r4, 0
+ movs r2, 0x1F
+ bl MenuZeroFillWindowRect
+ adds r4, 0x2
+ movs r0, 0x1F
+ ands r4, r0
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x7
+ bls _080F0BE2
+ ldr r0, _080F0C18
+ ldr r1, [r0]
+ ldr r0, _080F0C1C
+ adds r1, r0
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ movs r0, 0
+ b _080F0C22
+ .align 2, 0
+_080F0C10: .4byte gWindowConfig_81E70D4
+_080F0C14: .4byte 0x00008778
+_080F0C18: .4byte gUnknown_083DFEC4
+_080F0C1C: .4byte 0x0000d15c
+_080F0C20:
+ movs r0, 0x1
+_080F0C22:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80F0B44
+
+ thumb_func_start sub_80F0C28
+sub_80F0C28: @ 80F0C28
+ ldr r0, _080F0C3C
+ ldr r0, [r0]
+ ldr r2, _080F0C40
+ adds r1, r0, r2
+ movs r2, 0
+ strh r2, [r1]
+ ldr r1, _080F0C44
+ adds r0, r1
+ strh r2, [r0]
+ bx lr
+ .align 2, 0
+_080F0C3C: .4byte gUnknown_083DFEC4
+_080F0C40: .4byte 0x0000d15c
+_080F0C44: .4byte 0x00000306
+ thumb_func_end sub_80F0C28
+
+ thumb_func_start sub_80F0C48
+sub_80F0C48: @ 80F0C48
+ push {r4-r6,lr}
+ ldr r0, _080F0C5C
+ ldr r4, [r0]
+ ldr r0, _080F0C60
+ adds r5, r4, r0
+ ldrh r0, [r5]
+ cmp r0, 0x7
+ bls _080F0C64
+ movs r0, 0
+ b _080F0CD2
+ .align 2, 0
+_080F0C5C: .4byte gUnknown_083DFEC4
+_080F0C60: .4byte 0x0000d15c
+_080F0C64:
+ ldr r2, _080F0CBC
+ adds r1, r4, r2
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ ldr r2, _080F0CC0
+ adds r6, r2, 0
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x1
+ bls _080F0CD0
+ movs r0, 0
+ strh r0, [r1]
+ ldr r0, _080F0CC4
+ bl BasicInitMenuWindow
+ ldr r0, _080F0CC8
+ adds r1, r4, r0
+ ldrh r0, [r5]
+ ldrh r1, [r1]
+ adds r0, r1
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r1, _080F0CCC
+ adds r2, r4, r1
+ ldrh r1, [r5]
+ lsls r1, 1
+ ldrh r2, [r2]
+ adds r1, r2
+ lsls r1, 16
+ lsrs r1, 16
+ bl sub_80F0A74
+ ldrh r0, [r5]
+ adds r0, 0x1
+ strh r0, [r5]
+ ands r0, r6
+ cmp r0, 0x7
+ bls _080F0CD0
+ movs r0, 0
+ bl sub_80F081C
+ movs r0, 0
+ b _080F0CD2
+ .align 2, 0
+_080F0CBC: .4byte 0x00000306
+_080F0CC0: .4byte 0x0000ffff
+_080F0CC4: .4byte gWindowConfig_81E70D4
+_080F0CC8: .4byte 0x00008770
+_080F0CCC: .4byte 0x00008778
+_080F0CD0:
+ movs r0, 0x1
+_080F0CD2:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80F0C48
+
+ thumb_func_start sub_80F0CD8
+sub_80F0CD8: @ 80F0CD8
+ push {r4,r5,lr}
+ ldr r4, _080F0D40
+ ldr r1, [r4]
+ ldr r2, _080F0D44
+ adds r0, r1, r2
+ movs r2, 0
+ strh r2, [r0]
+ ldr r3, _080F0D48
+ adds r0, r1, r3
+ strh r2, [r0]
+ ldr r2, _080F0D4C
+ adds r0, r1, r2
+ movs r3, 0
+ ldrsh r0, [r0, r3]
+ lsls r0, 3
+ adds r0, r1, r0
+ ldr r2, _080F0D50
+ adds r0, r2
+ ldrb r0, [r0]
+ ldr r3, _080F0D54
+ adds r1, r3
+ ldr r2, _080F0D58
+ lsls r0, 2
+ adds r0, r2
+ ldr r0, [r0]
+ str r0, [r1]
+ adds r2, r0, 0
+ movs r1, 0
+ adds r5, r4, 0
+ adds r4, r3, 0
+_080F0D14:
+ ldrb r0, [r2]
+ adds r3, r1, 0x1
+ cmp r0, 0xFF
+ beq _080F0D24
+_080F0D1C:
+ adds r2, 0x1
+ ldrb r0, [r2]
+ cmp r0, 0xFF
+ bne _080F0D1C
+_080F0D24:
+ ldr r0, [r5]
+ lsls r1, r3, 2
+ adds r0, r4
+ adds r0, r1
+ adds r2, 0x1
+ str r2, [r0]
+ lsls r0, r3, 16
+ lsrs r1, r0, 16
+ cmp r1, 0x2
+ bls _080F0D14
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F0D40: .4byte gUnknown_083DFEC4
+_080F0D44: .4byte 0x00000306
+_080F0D48: .4byte 0x0000d15c
+_080F0D4C: .4byte 0x0000876e
+_080F0D50: .4byte 0x0000ceec
+_080F0D54: .4byte 0x0000d110
+_080F0D58: .4byte gTrainerEyeDescriptions
+ thumb_func_end sub_80F0CD8
+
+ thumb_func_start sub_80F0D5C
+sub_80F0D5C: @ 80F0D5C
+ push {r4,r5,lr}
+ ldr r0, _080F0D70
+ ldr r4, [r0]
+ ldr r0, _080F0D74
+ adds r5, r4, r0
+ ldrh r0, [r5]
+ cmp r0, 0x7
+ bne _080F0D78
+_080F0D6C:
+ movs r0, 0
+ b _080F0EB0
+ .align 2, 0
+_080F0D70: .4byte gUnknown_083DFEC4
+_080F0D74: .4byte 0x0000d15c
+_080F0D78:
+ ldr r0, _080F0DB8
+ adds r1, r4, r0
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x1
+ bhi _080F0D8C
+ b _080F0EAE
+_080F0D8C:
+ movs r0, 0
+ strh r0, [r1]
+ ldr r0, _080F0DBC
+ bl BasicInitMenuWindow
+ ldr r0, _080F0DC0
+ adds r1, r4, r0
+ ldrh r3, [r5]
+ lsls r0, r3, 1
+ adds r0, 0x2
+ ldrh r1, [r1]
+ adds r5, r0, r1
+ movs r0, 0x1F
+ ands r5, r0
+ cmp r3, 0x6
+ bhi _080F0D6C
+ lsls r0, r3, 2
+ ldr r1, _080F0DC4
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080F0DB8: .4byte 0x00000306
+_080F0DBC: .4byte gWindowConfig_81E70D4
+_080F0DC0: .4byte 0x00008778
+_080F0DC4: .4byte _080F0DC8
+ .align 2, 0
+_080F0DC8:
+ .4byte _080F0DE4
+ .4byte _080F0DF0
+ .4byte _080F0E08
+ .4byte _080F0E14
+ .4byte _080F0E2C
+ .4byte _080F0E38
+ .4byte _080F0E6C
+_080F0DE4:
+ ldr r0, _080F0DEC
+ lsls r2, r5, 3
+ b _080F0E54
+ .align 2, 0
+_080F0DEC: .4byte gOtherText_Strategy
+_080F0DF0:
+ ldr r0, _080F0DFC
+ ldr r0, [r0]
+ ldr r1, _080F0E00
+ adds r4, r0, r1
+ ldr r1, _080F0E04
+ b _080F0E42
+ .align 2, 0
+_080F0DFC: .4byte gUnknown_083DFEC4
+_080F0E00: .4byte 0x00008788
+_080F0E04: .4byte 0x0000d110
+_080F0E08:
+ ldr r0, _080F0E10
+ lsls r2, r5, 3
+ b _080F0E54
+ .align 2, 0
+_080F0E10: .4byte gOtherText_TrainersPokemon
+_080F0E14:
+ ldr r0, _080F0E20
+ ldr r0, [r0]
+ ldr r1, _080F0E24
+ adds r4, r0, r1
+ ldr r1, _080F0E28
+ b _080F0E42
+ .align 2, 0
+_080F0E20: .4byte gUnknown_083DFEC4
+_080F0E24: .4byte 0x00008788
+_080F0E28: .4byte 0x0000d114
+_080F0E2C:
+ ldr r0, _080F0E34
+ lsls r2, r5, 3
+ b _080F0E54
+ .align 2, 0
+_080F0E34: .4byte gOtherText_SelfIntroduction
+_080F0E38:
+ ldr r0, _080F0E60
+ ldr r0, [r0]
+ ldr r1, _080F0E64
+ adds r4, r0, r1
+ ldr r1, _080F0E68
+_080F0E42:
+ adds r0, r1
+ ldr r1, [r0]
+ adds r0, r4, 0
+ movs r2, 0x88
+ movs r3, 0
+ bl sub_8072C74
+ lsls r2, r5, 3
+ adds r0, r4, 0
+_080F0E54:
+ movs r1, 0x61
+ movs r3, 0
+ bl sub_80729D8
+ b _080F0EA0
+ .align 2, 0
+_080F0E60: .4byte gUnknown_083DFEC4
+_080F0E64: .4byte 0x00008788
+_080F0E68: .4byte 0x0000d118
+_080F0E6C:
+ ldr r0, _080F0E94
+ ldr r0, [r0]
+ ldr r1, _080F0E98
+ adds r4, r0, r1
+ ldr r1, _080F0E9C
+ adds r0, r1
+ ldr r1, [r0]
+ adds r0, r4, 0
+ movs r2, 0x88
+ movs r3, 0
+ bl sub_8072C74
+ lsls r2, r5, 3
+ adds r0, r4, 0
+ movs r1, 0x61
+ movs r3, 0
+ bl sub_80729D8
+ b _080F0D6C
+ .align 2, 0
+_080F0E94: .4byte gUnknown_083DFEC4
+_080F0E98: .4byte 0x00008788
+_080F0E9C: .4byte 0x0000d11c
+_080F0EA0:
+ ldr r0, _080F0EB8
+ ldr r1, [r0]
+ ldr r0, _080F0EBC
+ adds r1, r0
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_080F0EAE:
+ movs r0, 0x1
+_080F0EB0:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080F0EB8: .4byte gUnknown_083DFEC4
+_080F0EBC: .4byte 0x0000d15c
+ thumb_func_end sub_80F0D5C
+
+ thumb_func_start sub_80F0EC0
+sub_80F0EC0: @ 80F0EC0
+ push {lr}
+ ldr r0, _080F0EE4
+ ldr r0, [r0]
+ ldr r2, _080F0EE8
+ adds r1, r0, r2
+ movs r2, 0
+ strh r2, [r1]
+ ldr r3, _080F0EEC
+ adds r1, r0, r3
+ strh r2, [r1]
+ ldr r1, _080F0EF0
+ adds r0, r1
+ movs r1, 0
+ movs r2, 0x10
+ bl StringFill
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F0EE4: .4byte gUnknown_083DFEC4
+_080F0EE8: .4byte 0x00000306
+_080F0EEC: .4byte 0x0000d15c
+_080F0EF0: .4byte 0x00008788
+ thumb_func_end sub_80F0EC0
+
+ thumb_func_start sub_80F0EF4
+sub_80F0EF4: @ 80F0EF4
+ push {r4,r5,lr}
+ ldr r0, _080F0F08
+ ldr r2, [r0]
+ ldr r0, _080F0F0C
+ adds r5, r2, r0
+ ldrh r0, [r5]
+ cmp r0, 0x6
+ bls _080F0F10
+ movs r0, 0
+ b _080F0F52
+ .align 2, 0
+_080F0F08: .4byte gUnknown_083DFEC4
+_080F0F0C: .4byte 0x0000d15c
+_080F0F10:
+ ldr r0, _080F0F58
+ adds r1, r2, r0
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x1
+ bls _080F0F50
+ movs r0, 0
+ strh r0, [r1]
+ ldr r1, _080F0F5C
+ adds r0, r2, r1
+ ldrh r4, [r5]
+ lsls r4, 1
+ adds r4, 0x2
+ ldrh r0, [r0]
+ adds r4, r0
+ movs r0, 0x1F
+ ands r4, r0
+ ldr r0, _080F0F60
+ bl BasicInitMenuWindow
+ adds r3, r4, 0x1
+ movs r0, 0xC
+ adds r1, r4, 0
+ movs r2, 0x1F
+ bl MenuZeroFillWindowRect
+ ldrh r0, [r5]
+ adds r0, 0x1
+ strh r0, [r5]
+_080F0F50:
+ movs r0, 0x1
+_080F0F52:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080F0F58: .4byte 0x00000306
+_080F0F5C: .4byte 0x00008778
+_080F0F60: .4byte gWindowConfig_81E70D4
+ thumb_func_end sub_80F0EF4
+
+ thumb_func_start sub_80F0F64
+sub_80F0F64: @ 80F0F64
+ push {r4,lr}
+ ldr r0, _080F0F90
+ ldr r3, [r0]
+ ldr r1, _080F0F94
+ adds r0, r3, r1
+ movs r4, 0
+ ldrsh r2, [r0, r4]
+ lsls r1, r2, 4
+ ldr r4, _080F0F98
+ adds r0, r3, r4
+ strh r1, [r0]
+ movs r1, 0x8
+ cmp r2, 0x1
+ bne _080F0F82
+ movs r1, 0x4
+_080F0F82:
+ ldr r2, _080F0F9C
+ adds r0, r3, r2
+ strh r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F0F90: .4byte gUnknown_083DFEC4
+_080F0F94: .4byte 0x0000876c
+_080F0F98: .4byte 0x0000877c
+_080F0F9C: .4byte 0x0000877a
+ thumb_func_end sub_80F0F64
+
+ thumb_func_start sub_80F0FA0
+sub_80F0FA0: @ 80F0FA0
+ push {r4,lr}
+ ldr r0, _080F0FDC
+ ldr r3, [r0]
+ ldr r1, _080F0FE0
+ adds r0, r3, r1
+ movs r4, 0
+ ldrsh r0, [r0, r4]
+ negs r0, r0
+ lsls r0, 16
+ asrs r0, 16
+ lsls r2, r0, 4
+ ldr r4, _080F0FE4
+ adds r1, r3, r4
+ strh r2, [r1]
+ movs r1, 0x1
+ negs r1, r1
+ movs r4, 0x8
+ negs r4, r4
+ adds r2, r4, 0
+ cmp r0, r1
+ bne _080F0FD0
+ movs r0, 0x4
+ negs r0, r0
+ adds r2, r0, 0
+_080F0FD0:
+ ldr r1, _080F0FE8
+ adds r0, r3, r1
+ strh r2, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F0FDC: .4byte gUnknown_083DFEC4
+_080F0FE0: .4byte 0x0000876c
+_080F0FE4: .4byte 0x0000877c
+_080F0FE8: .4byte 0x0000877a
+ thumb_func_end sub_80F0FA0
+
+ thumb_func_start sub_80F0FEC
+sub_80F0FEC: @ 80F0FEC
+ push {lr}
+ bl sub_80F0718
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80F0FEC
+
+ thumb_func_start sub_80F0FFC
+sub_80F0FFC: @ 80F0FFC
+ push {r4,r5,lr}
+ lsls r0, 24
+ ldr r1, _080F1048
+ ldr r4, [r1]
+ ldr r1, _080F104C
+ adds r5, r4, r1
+ lsrs r0, 21
+ adds r0, r4, r0
+ ldr r1, _080F1050
+ adds r0, r1
+ ldrh r1, [r0]
+ adds r0, r5, 0
+ movs r2, 0
+ bl sub_80FBFB4
+ ldr r0, _080F1054
+ bl BasicInitMenuWindow
+ adds r0, r5, 0
+ bl sub_80F19DC
+ ldr r0, _080F1058
+ adds r4, r0
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r2, 0x58
+ movs r3, 0x2
+ bl sub_8072C74
+ adds r0, r4, 0
+ movs r1, 0
+ movs r2, 0x5
+ bl MenuPrint
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F1048: .4byte gUnknown_083DFEC4
+_080F104C: .4byte 0x00008788
+_080F1050: .4byte 0x0000ceea
+_080F1054: .4byte gWindowConfig_81E710C
+_080F1058: .4byte 0x0000d138
+ thumb_func_end sub_80F0FFC
+
+ thumb_func_start sub_80F105C
+sub_80F105C: @ 80F105C
+ push {lr}
+ ldr r0, _080F1078
+ ldr r1, [r0]
+ ldr r2, _080F107C
+ adds r0, r1, r2
+ ldrh r0, [r0]
+ adds r2, 0xA
+ adds r1, r2
+ ldrh r1, [r1]
+ bl sub_80F0A74
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F1078: .4byte gUnknown_083DFEC4
+_080F107C: .4byte 0x0000876e
+ thumb_func_end sub_80F105C
+
+ thumb_func_start sub_80F1080
+sub_80F1080: @ 80F1080
+ push {r4,lr}
+ ldr r1, _080F10A0
+ ldr r0, [r1]
+ ldr r2, _080F10A4
+ adds r0, r2
+ ldrh r0, [r0]
+ adds r2, r1, 0
+ cmp r0, 0xE
+ bls _080F1094
+ b _080F1204
+_080F1094:
+ lsls r0, 2
+ ldr r1, _080F10A8
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080F10A0: .4byte gUnknown_083DFEC4
+_080F10A4: .4byte 0x0000d160
+_080F10A8: .4byte _080F10AC
+ .align 2, 0
+_080F10AC:
+ .4byte _080F10E8
+ .4byte _080F1104
+ .4byte _080F1110
+ .4byte _080F111C
+ .4byte _080F1128
+ .4byte _080F112E
+ .4byte _080F1134
+ .4byte _080F1142
+ .4byte _080F1160
+ .4byte _080F1166
+ .4byte _080F116C
+ .4byte _080F1180
+ .4byte _080F1194
+ .4byte _080F11DC
+ .4byte _080F11E2
+_080F10E8:
+ bl sub_80EEDE8
+ ldr r0, _080F10FC
+ ldr r0, [r0]
+ ldr r3, _080F1100
+ adds r0, r3
+ movs r1, 0xB
+ strb r1, [r0]
+ b _080F1218
+ .align 2, 0
+_080F10FC: .4byte gUnknown_083DFEC4
+_080F1100: .4byte 0x0000d162
+_080F1104:
+ ldr r0, _080F110C
+ bl SetUpWindowConfig
+ b _080F1218
+ .align 2, 0
+_080F110C: .4byte gWindowConfig_81E70B8
+_080F1110:
+ ldr r0, _080F1118
+ bl MultistepInitMenuWindowBegin
+ b _080F1218
+ .align 2, 0
+_080F1118: .4byte gWindowConfig_81E70B8
+_080F111C:
+ bl MultistepInitMenuWindowContinue
+ cmp r0, 0
+ beq _080F1126
+ b _080F1218
+_080F1126:
+ b _080F1226
+_080F1128:
+ bl MenuZeroFillScreen
+ b _080F1218
+_080F112E:
+ bl sub_80F1614
+ b _080F1218
+_080F1134:
+ movs r0, 0x1
+ bl sub_80F162C
+ lsls r0, 24
+ cmp r0, 0
+ beq _080F1218
+ b _080F1226
+_080F1142:
+ ldr r0, _080F1154
+ ldr r1, _080F1158
+ ldr r1, [r1]
+ ldr r2, _080F115C
+ adds r1, r2
+ bl LZ77UnCompWram
+ b _080F1218
+ .align 2, 0
+_080F1154: .4byte gUnknown_08E9FBA0
+_080F1158: .4byte gUnknown_083DFEC4
+_080F115C: .4byte 0x0000934c
+_080F1160:
+ bl sub_80F1238
+ b _080F1218
+_080F1166:
+ bl sub_80F13FC
+ b _080F1218
+_080F116C:
+ ldr r0, _080F1178
+ ldr r1, _080F117C
+ bl LZ77UnCompVram
+ b _080F1218
+ .align 2, 0
+_080F1178: .4byte gPokenavRibbonView_Gfx
+_080F117C: .4byte 0x06008000
+_080F1180:
+ ldr r0, _080F118C
+ ldr r1, _080F1190
+ bl LZ77UnCompVram
+ b _080F1218
+ .align 2, 0
+_080F118C: .4byte gUnknown_083E040C
+_080F1190: .4byte 0x06008200
+_080F1194:
+ ldr r0, _080F11CC
+ movs r1, 0x20
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r4, _080F11D0
+ adds r0, r4, 0
+ movs r1, 0xF0
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r0, _080F11D4
+ movs r1, 0x30
+ movs r2, 0xA0
+ bl LoadPalette
+ ldr r0, _080F11D8
+ movs r1, 0xB0
+ movs r2, 0x20
+ bl LoadPalette
+ adds r4, 0x1E
+ adds r0, r4, 0
+ movs r1, 0xBF
+ movs r2, 0x2
+ bl LoadPalette
+ b _080F1218
+ .align 2, 0
+_080F11CC: .4byte gPokenavRibbonView_Pal
+_080F11D0: .4byte gUnknown_083E03A8
+_080F11D4: .4byte gUnknown_083E3C60
+_080F11D8: .4byte gUnknownPalette_81E6692
+_080F11DC:
+ bl sub_80F1438
+ b _080F1218
+_080F11E2:
+ ldr r1, _080F1208
+ ldr r3, _080F120C
+ adds r0, r3, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r3, _080F1210
+ adds r0, r3, 0
+ strh r0, [r1]
+ adds r1, 0x42
+ movs r0, 0
+ strh r0, [r1]
+ ldr r1, [r2]
+ ldr r0, _080F1214
+ adds r1, r0
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_080F1204:
+ movs r0, 0
+ b _080F1228
+ .align 2, 0
+_080F1208: .4byte REG_BG2CNT
+_080F120C: .4byte 0x00001e02
+_080F1210: .4byte 0x0000170b
+_080F1214: .4byte 0x0000d160
+_080F1218:
+ ldr r0, _080F1230
+ ldr r1, [r0]
+ ldr r2, _080F1234
+ adds r1, r2
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_080F1226:
+ movs r0, 0x1
+_080F1228:
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080F1230: .4byte gUnknown_083DFEC4
+_080F1234: .4byte 0x0000d160
+ thumb_func_end sub_80F1080
+
+ thumb_func_start sub_80F1238
+sub_80F1238: @ 80F1238
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ movs r6, 0x8B
+ ldr r0, _080F1318
+ ldr r2, [r0]
+ ldr r1, _080F131C
+ adds r0, r2, r1
+ ldr r3, _080F1320
+ adds r1, r2, r3
+ ldrb r0, [r0]
+ ldrb r1, [r1]
+ subs r0, r1
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x4]
+ movs r7, 0
+ mov r5, sp
+ adds r4, r2, 0
+_080F1264:
+ movs r1, 0x80
+ lsls r1, 6
+ adds r0, r1, 0
+ strh r0, [r5]
+ lsls r1, r7, 5
+ adds r1, r6, r1
+ lsls r1, 1
+ ldr r2, _080F1324
+ adds r1, r2
+ adds r1, r4, r1
+ mov r0, sp
+ ldr r2, _080F1328
+ bl CpuSet
+ adds r0, r7, 0x1
+ lsls r0, 16
+ lsrs r7, r0, 16
+ cmp r7, 0x7
+ bls _080F1264
+ ldr r3, [sp, 0x4]
+ lsls r0, r3, 16
+ movs r7, 0
+ mov r9, r0
+ cmp r0, 0
+ beq _080F1342
+ ldr r0, _080F1318
+ ldr r0, [r0]
+ mov r8, r0
+ ldr r1, _080F132C
+ mov r10, r1
+ ldr r5, _080F1324
+ add r5, r8
+_080F12A4:
+ ldr r0, _080F1330
+ add r0, r8
+ adds r0, r7
+ ldrb r1, [r0]
+ lsls r1, 2
+ mov r0, r10
+ adds r0, 0x2
+ adds r0, r1, r0
+ ldrb r2, [r0]
+ adds r2, 0x3
+ lsls r2, 24
+ add r1, r10
+ ldrh r0, [r1]
+ lsls r0, 25
+ movs r3, 0x80
+ lsls r3, 21
+ adds r0, r3
+ lsrs r4, r0, 24
+ lsls r1, r6, 1
+ adds r1, r5, r1
+ lsrs r2, 12
+ adds r0, r2, 0
+ orrs r0, r4
+ strh r0, [r1]
+ adds r1, r6, 0x1
+ lsls r1, 1
+ adds r1, r5, r1
+ movs r3, 0x80
+ lsls r3, 3
+ adds r0, r3, 0
+ adds r3, r2, 0
+ orrs r3, r0
+ adds r0, r3, 0
+ orrs r0, r4
+ strh r0, [r1]
+ adds r0, r6, 0
+ adds r0, 0x20
+ lsls r0, 1
+ adds r0, r5, r0
+ adds r1, r4, 0x1
+ orrs r2, r1
+ strh r2, [r0]
+ adds r0, r6, 0
+ adds r0, 0x21
+ lsls r0, 1
+ adds r0, r5, r0
+ orrs r3, r1
+ strh r3, [r0]
+ adds r4, r7, 0x1
+ adds r0, r4, 0
+ movs r1, 0x9
+ bl __modsi3
+ cmp r0, 0
+ bne _080F1334
+ adds r0, r6, 0
+ adds r0, 0x30
+ b _080F1336
+ .align 2, 0
+_080F1318: .4byte gUnknown_083DFEC4
+_080F131C: .4byte 0x0000bc8e
+_080F1320: .4byte 0x0000bc8f
+_080F1324: .4byte 0x0000934c
+_080F1328: .4byte 0x01000012
+_080F132C: .4byte gUnknown_083E4698
+_080F1330: .4byte 0x0000bc4c
+_080F1334:
+ adds r0, r6, 0x2
+_080F1336:
+ lsls r0, 16
+ lsrs r6, r0, 16
+ lsls r0, r4, 16
+ lsrs r7, r0, 16
+ cmp r0, r9
+ bcc _080F12A4
+_080F1342:
+ ldr r6, _080F13E8
+ movs r7, 0
+ ldr r1, _080F13EC
+ ldr r0, [r1]
+ ldr r2, _080F13F0
+ adds r1, r0, r2
+ ldrb r3, [r1]
+ cmp r7, r3
+ bcs _080F13D8
+ subs r2, 0x43
+ adds r2, r0
+ mov r10, r2
+ ldr r3, _080F13F4
+ mov r8, r3
+ ldr r2, _080F13F8
+ adds r5, r0, r2
+ mov r9, r1
+_080F1364:
+ ldr r3, [sp, 0x4]
+ adds r0, r3, r7
+ add r0, r10
+ ldrb r1, [r0]
+ lsls r1, 2
+ mov r0, r8
+ adds r0, 0x2
+ adds r0, r1, r0
+ ldrb r2, [r0]
+ adds r2, 0x3
+ lsls r2, 24
+ add r1, r8
+ ldrh r0, [r1]
+ lsls r0, 25
+ movs r1, 0x80
+ lsls r1, 21
+ adds r0, r1
+ lsrs r4, r0, 24
+ lsls r1, r6, 1
+ adds r1, r5, r1
+ lsrs r2, 12
+ adds r0, r2, 0
+ orrs r0, r4
+ strh r0, [r1]
+ adds r1, r6, 0x1
+ lsls r1, 1
+ adds r1, r5, r1
+ movs r3, 0x80
+ lsls r3, 3
+ adds r0, r3, 0
+ adds r3, r2, 0
+ orrs r3, r0
+ adds r0, r3, 0
+ orrs r0, r4
+ strh r0, [r1]
+ adds r0, r6, 0
+ adds r0, 0x20
+ lsls r0, 1
+ adds r0, r5, r0
+ adds r1, r4, 0x1
+ orrs r2, r1
+ strh r2, [r0]
+ adds r0, r6, 0
+ adds r0, 0x21
+ lsls r0, 1
+ adds r0, r5, r0
+ orrs r3, r1
+ strh r3, [r0]
+ adds r0, r6, 0x2
+ lsls r0, 16
+ lsrs r6, r0, 16
+ adds r0, r7, 0x1
+ lsls r0, 16
+ lsrs r7, r0, 16
+ mov r0, r9
+ ldrb r0, [r0]
+ cmp r7, r0
+ bcc _080F1364
+_080F13D8:
+ add sp, 0x8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F13E8: .4byte 0x0000014b
+_080F13EC: .4byte gUnknown_083DFEC4
+_080F13F0: .4byte 0x0000bc8f
+_080F13F4: .4byte gUnknown_083E4698
+_080F13F8: .4byte 0x0000934c
+ thumb_func_end sub_80F1238
+
+ thumb_func_start sub_80F13FC
+sub_80F13FC: @ 80F13FC
+ ldr r0, _080F141C
+ ldr r0, [r0]
+ ldr r1, _080F1420
+ adds r0, r1
+ ldr r2, _080F1424
+ ldr r1, _080F1428
+ str r0, [r1]
+ str r2, [r1, 0x4]
+ ldr r0, _080F142C
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ ldr r1, _080F1430
+ ldr r0, _080F1434
+ ldrh r0, [r0]
+ strh r0, [r1]
+ bx lr
+ .align 2, 0
+_080F141C: .4byte gUnknown_083DFEC4
+_080F1420: .4byte 0x0000934c
+_080F1424: .4byte 0x0600b800
+_080F1428: .4byte 0x040000d4
+_080F142C: .4byte 0x84000140
+_080F1430: .4byte gPlttBufferUnfaded
+_080F1434: .4byte gPokenavRibbonView_Pal + 0x1C
+ thumb_func_end sub_80F13FC
+
+ thumb_func_start sub_80F1438
+sub_80F1438: @ 80F1438
+ push {r4,r5,lr}
+ ldr r0, _080F1470
+ ldr r4, [r0]
+ ldr r1, _080F1474
+ adds r0, r4, r1
+ movs r1, 0xD
+ movs r2, 0x1
+ bl MenuPrint
+ ldr r0, _080F1478
+ adds r5, r4, r0
+ ldr r1, _080F147C
+ adds r4, r1
+ ldrh r1, [r4]
+ adds r1, 0x1
+ lsls r1, 16
+ lsrs r1, 16
+ adds r0, r5, 0
+ bl sub_80F445C
+ adds r0, r5, 0
+ movs r1, 0x1
+ movs r2, 0x5
+ bl MenuPrint
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F1470: .4byte gUnknown_083DFEC4
+_080F1474: .4byte 0x00008829
+_080F1478: .4byte 0x00008788
+_080F147C: .4byte 0x0000876e
+ thumb_func_end sub_80F1438
+
+ thumb_func_start sub_80F1480
+sub_80F1480: @ 80F1480
+ push {lr}
+ movs r0, 0xC
+ movs r1, 0xD
+ movs r2, 0x1B
+ movs r3, 0x10
+ bl MenuZeroFillWindowRect
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80F1480
+
+ thumb_func_start sub_80F1494
+sub_80F1494: @ 80F1494
+ push {r4-r7,lr}
+ ldr r0, _080F14D4
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 4
+ adds r6, r0, r1
+ ldr r2, _080F14D8
+ adds r7, r0, r2
+ ldr r0, _080F14DC
+ ldr r3, [r0]
+ ldr r4, _080F14E0
+ adds r1, r3, r4
+ ldrb r0, [r1]
+ cmp r0, 0x2
+ bhi _080F14F0
+ ldr r5, _080F14E4
+ adds r1, r0, 0
+ lsls r0, r1, 3
+ subs r4, 0x1
+ adds r2, r3, r4
+ adds r0, r1
+ ldrb r2, [r2]
+ adds r0, r2
+ strh r0, [r5]
+ ldr r1, _080F14E8
+ adds r0, r3, r1
+ ldrh r2, [r5]
+ adds r0, r2
+ ldrb r0, [r0]
+ strh r0, [r5]
+ ldr r4, _080F14EC
+ b _080F152E
+ .align 2, 0
+_080F14D4: .4byte gUnknown_083DFEC8
+_080F14D8: .4byte 0x00000a98
+_080F14DC: .4byte gUnknown_083DFEC4
+_080F14E0: .4byte 0x0000bc91
+_080F14E4: .4byte gUnknown_020388B4
+_080F14E8: .4byte 0x0000bc4c
+_080F14EC: .4byte gRibbonDescriptions
+_080F14F0:
+ ldr r5, _080F1558
+ ldr r4, _080F155C
+ adds r0, r3, r4
+ ldrb r0, [r0]
+ ldr r2, _080F1560
+ adds r1, r3, r2
+ ldrb r1, [r1]
+ subs r0, r1
+ strh r0, [r5]
+ ldrh r1, [r5]
+ adds r4, 0x2
+ adds r0, r3, r4
+ ldrb r0, [r0]
+ adds r1, r0
+ subs r2, 0x43
+ adds r0, r3, r2
+ adds r0, r1
+ ldrb r0, [r0]
+ strh r0, [r5]
+ ldr r0, _080F1564
+ ldrh r1, [r5]
+ adds r0, r1
+ ldr r4, _080F1568
+ adds r0, r4
+ ldrb r0, [r0]
+ strh r0, [r5]
+ cmp r0, 0
+ beq _080F1570
+ subs r0, 0x1
+ strh r0, [r5]
+ ldr r4, _080F156C
+_080F152E:
+ ldrh r0, [r5]
+ lsls r0, 3
+ adds r0, r4
+ ldr r1, [r0]
+ adds r0, r6, 0
+ movs r2, 0x80
+ movs r3, 0
+ bl sub_8072C74
+ ldrh r0, [r5]
+ lsls r0, 3
+ adds r4, 0x4
+ adds r0, r4
+ ldr r1, [r0]
+ adds r0, r7, 0
+ movs r2, 0x80
+ movs r3, 0
+ bl sub_8072C74
+ b _080F158A
+ .align 2, 0
+_080F1558: .4byte gUnknown_020388B4
+_080F155C: .4byte 0x0000bc8e
+_080F1560: .4byte 0x0000bc8f
+_080F1564: .4byte gSaveBlock1
+_080F1568: .4byte 0x000030f7
+_080F156C: .4byte gGiftRibbonDescriptions
+_080F1570:
+ ldr r4, _080F15A4
+ adds r0, r6, 0
+ adds r1, r4, 0
+ movs r2, 0x80
+ movs r3, 0
+ bl sub_8072C74
+ adds r0, r7, 0
+ adds r1, r4, 0
+ movs r2, 0x80
+ movs r3, 0
+ bl sub_8072C74
+_080F158A:
+ adds r0, r6, 0
+ movs r1, 0xC
+ movs r2, 0xD
+ bl MenuPrint
+ adds r0, r7, 0
+ movs r1, 0xC
+ movs r2, 0xF
+ bl MenuPrint
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F15A4: .4byte gEmptyString_81E72B0
+ thumb_func_end sub_80F1494
+
+ thumb_func_start sub_80F15A8
+sub_80F15A8: @ 80F15A8
+ push {r4,r5,lr}
+ movs r0, 0xC
+ movs r1, 0xD
+ movs r2, 0x1B
+ movs r3, 0x10
+ bl MenuZeroFillWindowRect
+ ldr r0, _080F1600
+ ldr r4, [r0]
+ ldr r0, _080F1604
+ adds r5, r4, r0
+ ldr r1, _080F1608
+ adds r0, r5, 0
+ bl StringCopy
+ adds r2, r0, 0
+ movs r0, 0
+ strb r0, [r2]
+ adds r2, 0x1
+ ldr r1, _080F160C
+ adds r0, r4, r1
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ lsls r0, 2
+ adds r4, r0
+ ldr r0, _080F1610
+ adds r4, r0
+ ldrb r1, [r4]
+ adds r0, r2, 0
+ movs r2, 0
+ movs r3, 0x2
+ bl ConvertIntToDecimalStringN
+ adds r2, r0, 0
+ movs r0, 0xFF
+ strb r0, [r2]
+ adds r0, r5, 0
+ movs r1, 0xC
+ movs r2, 0xD
+ bl MenuPrint
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F1600: .4byte gUnknown_083DFEC4
+_080F1604: .4byte 0x00008788
+_080F1608: .4byte gOtherText_Ribbons
+_080F160C: .4byte 0x000087dc
+_080F1610: .4byte 0x0000893c
+ thumb_func_end sub_80F15A8
+
+ thumb_func_start sub_80F1614
+sub_80F1614: @ 80F1614
+ ldr r0, _080F1624
+ ldr r0, [r0]
+ ldr r1, _080F1628
+ adds r0, r1
+ movs r1, 0
+ strh r1, [r0]
+ bx lr
+ .align 2, 0
+_080F1624: .4byte gUnknown_083DFEC4
+_080F1628: .4byte 0x00008764
+ thumb_func_end sub_80F1614
+
+ thumb_func_start sub_80F162C
+sub_80F162C: @ 80F162C
+ push {lr}
+ lsls r0, 24
+ lsrs r1, r0, 24
+ ldr r0, _080F164C
+ ldr r0, [r0]
+ ldr r2, _080F1650
+ adds r0, r2
+ ldrh r0, [r0]
+ cmp r0, 0x1
+ beq _080F165E
+ cmp r0, 0x1
+ bgt _080F1654
+ cmp r0, 0
+ beq _080F16F0
+ b _080F16D0
+ .align 2, 0
+_080F164C: .4byte gUnknown_083DFEC4
+_080F1650: .4byte 0x00008764
+_080F1654:
+ cmp r0, 0x2
+ beq _080F1670
+ cmp r0, 0x3
+ beq _080F1694
+ b _080F16D0
+_080F165E:
+ ldr r0, _080F1668
+ ldr r1, _080F166C
+ bl LZ77UnCompVram
+ b _080F16F0
+ .align 2, 0
+_080F1668: .4byte gUnknown_08E9FF58
+_080F166C: .4byte 0x0600e800
+_080F1670:
+ ldr r1, _080F1684
+ ldr r2, _080F1688
+ ldr r0, _080F168C
+ str r1, [r0]
+ str r2, [r0, 0x4]
+ ldr r1, _080F1690
+ str r1, [r0, 0x8]
+ ldr r0, [r0, 0x8]
+ b _080F16F0
+ .align 2, 0
+_080F1684: .4byte gPokenavRibbonPokeView_Gfx
+_080F1688: .4byte 0x0600e000
+_080F168C: .4byte 0x040000d4
+_080F1690: .4byte 0x80000070
+_080F1694:
+ cmp r1, 0
+ bne _080F16A8
+ ldr r0, _080F16A4
+ movs r1, 0xD0
+ movs r2, 0x20
+ bl LoadPalette
+ b _080F16B2
+ .align 2, 0
+_080F16A4: .4byte gUnknown_083E0124
+_080F16A8:
+ ldr r0, _080F16D4
+ movs r1, 0xD0
+ movs r2, 0x20
+ bl LoadPalette
+_080F16B2:
+ ldr r0, _080F16D8
+ ldr r1, [r0]
+ ldr r3, _080F16DC
+ adds r2, r1, r3
+ ldr r0, _080F16E0
+ strh r0, [r2]
+ ldr r2, _080F16E4
+ ldr r3, _080F16E8
+ adds r0, r3, 0
+ strh r0, [r2]
+ ldr r0, _080F16EC
+ adds r1, r0
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_080F16D0:
+ movs r0, 0
+ b _080F1700
+ .align 2, 0
+_080F16D4: .4byte gUnknown_083E0144
+_080F16D8: .4byte gUnknown_083DFEC4
+_080F16DC: .4byte 0x00008766
+_080F16E0: .4byte 0x0000ffb0
+_080F16E4: .4byte REG_BG0CNT
+_080F16E8: .4byte 0x00001d0d
+_080F16EC: .4byte 0x00008764
+_080F16F0:
+ ldr r0, _080F1704
+ ldr r1, [r0]
+ ldr r2, _080F1708
+ adds r1, r2
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ movs r0, 0x1
+_080F1700:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080F1704: .4byte gUnknown_083DFEC4
+_080F1708: .4byte 0x00008764
+ thumb_func_end sub_80F162C
+
+ thumb_func_start sub_80F170C
+sub_80F170C: @ 80F170C
+ push {lr}
+ ldr r0, _080F1734
+ ldr r0, [r0]
+ ldr r2, _080F1738
+ adds r1, r0, r2
+ ldrh r0, [r1]
+ adds r0, 0x10
+ strh r0, [r1]
+ lsls r0, 16
+ cmp r0, 0
+ ble _080F1726
+ movs r0, 0
+ strh r0, [r1]
+_080F1726:
+ movs r0, 0
+ ldrsh r1, [r1, r0]
+ negs r0, r1
+ orrs r0, r1
+ lsrs r0, 31
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080F1734: .4byte gUnknown_083DFEC4
+_080F1738: .4byte 0x00008766
+ thumb_func_end sub_80F170C
+
+ thumb_func_start sub_80F173C
+sub_80F173C: @ 80F173C
+ push {lr}
+ ldr r0, _080F176C
+ ldr r0, [r0]
+ ldr r2, _080F1770
+ adds r1, r0, r2
+ ldrh r0, [r1]
+ subs r0, 0x10
+ strh r0, [r1]
+ lsls r0, 16
+ asrs r0, 16
+ movs r2, 0x50
+ negs r2, r2
+ cmp r0, r2
+ bge _080F175C
+ ldr r0, _080F1774
+ strh r0, [r1]
+_080F175C:
+ movs r0, 0
+ ldrsh r1, [r1, r0]
+ eors r1, r2
+ negs r0, r1
+ orrs r0, r1
+ lsrs r0, 31
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080F176C: .4byte gUnknown_083DFEC4
+_080F1770: .4byte 0x00008766
+_080F1774: .4byte 0x0000ffb0
+ thumb_func_end sub_80F173C
+
+ thumb_func_start sub_80F1778
+sub_80F1778: @ 80F1778
+ push {r4,lr}
+ sub sp, 0x14
+ ldr r0, _080F1798
+ ldr r0, [r0]
+ ldr r1, _080F179C
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r0, 0x9
+ bls _080F178C
+ b _080F1910
+_080F178C:
+ lsls r0, 2
+ ldr r1, _080F17A0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080F1798: .4byte gUnknown_083DFEC4
+_080F179C: .4byte 0x0000d160
+_080F17A0: .4byte _080F17A4
+ .align 2, 0
+_080F17A4:
+ .4byte _080F17CC
+ .4byte _080F17E8
+ .4byte _080F17EE
+ .4byte _080F17FE
+ .4byte _080F1810
+ .4byte _080F1830
+ .4byte _080F1858
+ .4byte _080F186C
+ .4byte _080F18B8
+ .4byte _080F18D8
+_080F17CC:
+ bl sub_80EEDE8
+ ldr r0, _080F17E0
+ ldr r0, [r0]
+ ldr r2, _080F17E4
+ adds r0, r2
+ movs r1, 0x2
+ strb r1, [r0]
+ b _080F1914
+ .align 2, 0
+_080F17E0: .4byte gUnknown_083DFEC4
+_080F17E4: .4byte 0x0000d162
+_080F17E8:
+ bl sub_80F1614
+ b _080F1914
+_080F17EE:
+ movs r0, 0
+ bl sub_80F162C
+ lsls r0, 24
+ cmp r0, 0
+ bne _080F17FC
+ b _080F1914
+_080F17FC:
+ b _080F1922
+_080F17FE:
+ ldr r0, _080F1808
+ ldr r1, _080F180C
+ bl LZ77UnCompVram
+ b _080F1914
+ .align 2, 0
+_080F1808: .4byte gPokenavConditionView_Gfx
+_080F180C: .4byte 0x06005000
+_080F1810:
+ ldr r0, _080F1824
+ ldr r1, _080F1828
+ bl LZ77UnCompVram
+ ldr r0, _080F182C
+ movs r1, 0x20
+ movs r2, 0x20
+ bl LoadPalette
+ b _080F1914
+ .align 2, 0
+_080F1824: .4byte gUnknown_08E9AC4C
+_080F1828: .4byte 0x0600f000
+_080F182C: .4byte gPokenavConditionMenu2_Pal
+_080F1830:
+ ldr r0, _080F1850
+ ldr r3, _080F1854
+ movs r1, 0
+ str r1, [sp]
+ str r1, [sp, 0x4]
+ movs r2, 0xC
+ str r2, [sp, 0x8]
+ movs r1, 0x4
+ str r1, [sp, 0xC]
+ str r2, [sp, 0x10]
+ movs r1, 0
+ movs r2, 0xD
+ bl sub_8095C8C
+ b _080F1914
+ .align 2, 0
+_080F1850: .4byte 0x0600f000
+_080F1854: .4byte gUnknown_083E01F4
+_080F1858:
+ ldr r0, _080F1864
+ ldr r1, _080F1868
+ bl LZ77UnCompVram
+ b _080F1914
+ .align 2, 0
+_080F1864: .4byte gUnknown_08E9FEB4
+_080F1868: .4byte 0x0600b800
+_080F186C:
+ ldr r0, _080F18AC
+ movs r1, 0x30
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r0, _080F18B0
+ movs r1, 0xB0
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r4, _080F18B4
+ adds r0, r4, 0
+ movs r1, 0xB1
+ movs r2, 0x2
+ bl LoadPalette
+ adds r0, r4, 0
+ adds r0, 0xE
+ movs r1, 0xB5
+ movs r2, 0x2
+ bl LoadPalette
+ adds r4, 0x1C
+ adds r0, r4, 0
+ movs r1, 0xBF
+ movs r2, 0x2
+ bl LoadPalette
+ bl sub_80F01A4
+ b _080F1914
+ .align 2, 0
+_080F18AC: .4byte gUnknown_083E0254
+_080F18B0: .4byte gUnknownPalette_81E6692
+_080F18B4: .4byte gPokenavConditionMenu2_Pal + 0x2
+_080F18B8:
+ ldr r0, _080F18D0
+ ldr r0, [r0]
+ ldr r1, _080F18D4
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ lsls r0, 16
+ lsrs r0, 16
+ bl sub_80F01E0
+ b _080F1914
+ .align 2, 0
+_080F18D0: .4byte gUnknown_083DFEC4
+_080F18D4: .4byte 0x00008fe9
+_080F18D8:
+ ldr r1, _080F18FC
+ ldr r2, _080F1900
+ adds r0, r2, 0
+ strh r0, [r1]
+ subs r1, 0x2
+ ldr r2, _080F1904
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x44
+ ldr r2, _080F1908
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r2, _080F190C
+ adds r0, r2, 0
+ strh r0, [r1]
+ b _080F1914
+ .align 2, 0
+_080F18FC: .4byte REG_BG3CNT
+_080F1900: .4byte 0x00001e03
+_080F1904: .4byte 0x00001702
+_080F1908: .4byte 0x00000844
+_080F190C: .4byte 0x0000040b
+_080F1910:
+ movs r0, 0
+ b _080F1924
+_080F1914:
+ ldr r0, _080F192C
+ ldr r1, [r0]
+ ldr r0, _080F1930
+ adds r1, r0
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_080F1922:
+ movs r0, 0x1
+_080F1924:
+ add sp, 0x14
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080F192C: .4byte gUnknown_083DFEC4
+_080F1930: .4byte 0x0000d160
+ thumb_func_end sub_80F1778
+
+ thumb_func_start sub_80F1934
+sub_80F1934: @ 80F1934
+ push {r4,r5,lr}
+ ldr r0, _080F1990
+ ldr r1, [r0]
+ ldr r0, _080F1994
+ adds r5, r1, r0
+ ldr r3, _080F1998
+ adds r2, r1, r3
+ movs r3, 0
+ ldrsh r0, [r2, r3]
+ lsls r0, 2
+ adds r1, r0
+ ldr r0, _080F199C
+ adds r1, r0
+ ldrb r0, [r1]
+ lsls r0, 25
+ cmp r0, 0
+ bge _080F19AC
+ ldrb r0, [r2]
+ bl sub_8137124
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x64
+ muls r0, r1
+ ldr r1, _080F19A0
+ adds r0, r1
+ bl GetNature
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r1, _080F19A4
+ adds r0, r5, 0
+ bl StringCopy
+ adds r5, r0, 0
+ ldr r0, _080F19A8
+ lsls r4, 2
+ adds r4, r0
+ ldr r1, [r4]
+ adds r0, r5, 0
+ movs r2, 0x57
+ movs r3, 0
+ bl sub_8072C74
+ b _080F19B8
+ .align 2, 0
+_080F1990: .4byte gUnknown_083DFEC4
+_080F1994: .4byte 0x00008788
+_080F1998: .4byte 0x000087dc
+_080F199C: .4byte 0x0000893f
+_080F19A0: .4byte gPlayerParty
+_080F19A4: .4byte gOtherText_Nature2
+_080F19A8: .4byte gNatureNames
+_080F19AC:
+ ldr r1, _080F19D0
+ adds r0, r5, 0
+ movs r2, 0x57
+ movs r3, 0
+ bl sub_8072C74
+_080F19B8:
+ ldr r0, _080F19D4
+ ldr r0, [r0]
+ ldr r1, _080F19D8
+ adds r0, r1
+ movs r1, 0x1
+ movs r2, 0x70
+ movs r3, 0x1
+ bl sub_80729D8
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F19D0: .4byte gEmptyString_81E72B0
+_080F19D4: .4byte gUnknown_083DFEC4
+_080F19D8: .4byte 0x00008788
+ thumb_func_end sub_80F1934
+
+ thumb_func_start sub_80F19DC
+sub_80F19DC: @ 80F19DC
+ push {lr}
+ adds r1, r0, 0
+ b _080F19E4
+_080F19E2:
+ adds r1, 0x1
+_080F19E4:
+ ldrb r0, [r1]
+ cmp r0, 0xFF
+ beq _080F19F8
+ cmp r0, 0xFC
+ bne _080F19E2
+ ldrb r0, [r1, 0x1]
+ cmp r0, 0
+ bne _080F19E2
+ movs r0, 0xFF
+ strb r0, [r1]
+_080F19F8:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80F19DC
+
+ thumb_func_start sub_80F19FC
+sub_80F19FC: @ 80F19FC
+ push {r4,r5,lr}
+ sub sp, 0x4
+ ldr r5, _080F1A68
+ ldrb r4, [r5]
+ cmp r4, 0x1
+ bne _080F1A60
+ ldr r0, _080F1A6C
+ ldr r1, [r0]
+ ldr r2, _080F1A70
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ adds r2, 0x3
+ adds r1, r2
+ ldrb r1, [r1]
+ ldrb r2, [r5, 0x1]
+ bl sub_811A8CC
+ cmp r0, 0
+ beq _080F1A46
+ ldrb r2, [r5, 0x1]
+ lsls r2, 20
+ movs r1, 0xC0
+ lsls r1, 14
+ adds r2, r1
+ lsrs r2, 16
+ str r4, [sp]
+ movs r1, 0x70
+ movs r3, 0x78
+ bl sub_8072A18
+ ldrb r0, [r5, 0x1]
+ adds r0, 0x1
+ strb r0, [r5, 0x1]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ bne _080F1A60
+_080F1A46:
+ ldrb r1, [r5, 0x1]
+ lsls r1, 25
+ movs r2, 0xC0
+ lsls r2, 19
+ adds r1, r2
+ lsrs r1, 24
+ movs r0, 0xE
+ movs r2, 0x1C
+ movs r3, 0xF
+ bl MenuFillWindowRectWithBlankTile
+ movs r0, 0
+ strb r0, [r5]
+_080F1A60:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F1A68: .4byte gUnknown_020388B0
+_080F1A6C: .4byte gUnknown_083DFEC4
+_080F1A70: .4byte 0x00006e2c
+ thumb_func_end sub_80F19FC
+
+ thumb_func_start sub_80F1A74
+sub_80F1A74: @ 80F1A74
+ ldr r1, _080F1A7C
+ movs r0, 0
+ strb r0, [r1]
+ bx lr
+ .align 2, 0
+_080F1A7C: .4byte gUnknown_020388B0
+ thumb_func_end sub_80F1A74
+
+ thumb_func_start sub_80F1A80
+sub_80F1A80: @ 80F1A80
+ ldr r0, _080F1A8C
+ movs r2, 0
+ movs r1, 0x1
+ strb r1, [r0]
+ strb r2, [r0, 0x1]
+ bx lr
+ .align 2, 0
+_080F1A8C: .4byte gUnknown_020388B0
+ thumb_func_end sub_80F1A80
+
+ thumb_func_start sub_80F1A90
+sub_80F1A90: @ 80F1A90
+ push {lr}
+ ldr r0, _080F1AB8
+ ldr r0, [r0]
+ ldr r1, _080F1ABC
+ adds r2, r0, r1
+ movs r1, 0
+ strh r1, [r2]
+ ldr r1, _080F1AC0
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080F1AB2
+_080F1AA8:
+ bl sub_80F1AC4
+ lsls r0, 24
+ cmp r0, 0
+ bne _080F1AA8
+_080F1AB2:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F1AB8: .4byte gUnknown_083DFEC4
+_080F1ABC: .4byte 0x00000306
+_080F1AC0: .4byte 0x00006dac
+ thumb_func_end sub_80F1A90
+
+ thumb_func_start sub_80F1AC4
+sub_80F1AC4: @ 80F1AC4
+ push {r4,r5,lr}
+ ldr r0, _080F1AE0
+ ldr r1, [r0]
+ ldr r2, _080F1AE4
+ adds r0, r1, r2
+ ldrh r0, [r0]
+ cmp r0, 0x1
+ beq _080F1B34
+ cmp r0, 0x1
+ bgt _080F1AE8
+ cmp r0, 0
+ beq _080F1AF2
+ b _080F1B6C
+ .align 2, 0
+_080F1AE0: .4byte gUnknown_083DFEC4
+_080F1AE4: .4byte 0x00000306
+_080F1AE8:
+ cmp r0, 0x2
+ beq _080F1B40
+ cmp r0, 0x3
+ beq _080F1B54
+ b _080F1B6C
+_080F1AF2:
+ movs r0, 0
+ movs r2, 0xC8
+ lsls r2, 2
+ adds r4, r1, r2
+ movs r5, 0
+_080F1AFC:
+ movs r2, 0
+ adds r1, r0, 0x1
+ lsls r3, r0, 4
+_080F1B02:
+ lsls r0, r2, 2
+ adds r0, r3
+ adds r0, r4, r0
+ str r5, [r0]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0x3
+ bls _080F1B02
+ lsls r0, r1, 16
+ lsrs r0, 16
+ cmp r0, 0x5
+ bls _080F1AFC
+ ldr r0, _080F1B2C
+ ldr r0, [r0]
+ ldr r1, _080F1B30
+ adds r0, r1
+ movs r1, 0
+ strb r1, [r0]
+ b _080F1B6C
+ .align 2, 0
+_080F1B2C: .4byte gUnknown_083DFEC4
+_080F1B30: .4byte 0x00000311
+_080F1B34:
+ ldr r0, _080F1B3C
+ movs r2, 0xE2
+ lsls r2, 2
+ b _080F1B44
+ .align 2, 0
+_080F1B3C: .4byte gPokenavMenuOptions_Gfx
+_080F1B40:
+ ldr r0, _080F1B4C
+ ldr r2, _080F1B50
+_080F1B44:
+ adds r1, r2
+ bl LZ77UnCompWram
+ b _080F1B6C
+ .align 2, 0
+_080F1B4C: .4byte gPokenavConditionMenu_Gfx
+_080F1B50: .4byte 0x00001788
+_080F1B54:
+ ldr r0, _080F1B64
+ ldr r2, _080F1B68
+ adds r1, r2
+ bl LZ77UnCompWram
+ movs r0, 0
+ b _080F1B7C
+ .align 2, 0
+_080F1B64: .4byte gPokenavConditionSearch_Gfx
+_080F1B68: .4byte 0x00002388
+_080F1B6C:
+ ldr r0, _080F1B84
+ ldr r1, [r0]
+ ldr r0, _080F1B88
+ adds r1, r0
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ movs r0, 0x1
+_080F1B7C:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080F1B84: .4byte gUnknown_083DFEC4
+_080F1B88: .4byte 0x00000306
+ thumb_func_end sub_80F1AC4
+
+ thumb_func_start sub_80F1B8C
+sub_80F1B8C: @ 80F1B8C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _080F1BBC
+ ldr r0, [r0]
+ ldr r1, _080F1BC0
+ adds r2, r0, r1
+ movs r1, 0
+ strh r1, [r2]
+ ldr r1, _080F1BC4
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080F1BB4
+_080F1BA8:
+ adds r0, r4, 0
+ bl sub_80F1BC8
+ lsls r0, 24
+ cmp r0, 0
+ bne _080F1BA8
+_080F1BB4:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F1BBC: .4byte gUnknown_083DFEC4
+_080F1BC0: .4byte 0x00000306
+_080F1BC4: .4byte 0x00006dac
+ thumb_func_end sub_80F1B8C
+
+ thumb_func_start sub_80F1BC8
+sub_80F1BC8: @ 80F1BC8
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ ldr r1, _080F1BF4
+ ldr r2, [r1]
+ ldr r3, _080F1BF8
+ adds r0, r2, r3
+ ldrh r0, [r0]
+ adds r3, r1, 0
+ cmp r0, 0x1
+ beq _080F1C0A
+ cmp r0, 0x1
+ bgt _080F1BFC
+ cmp r0, 0
+ beq _080F1C02
+ b _080F1DC4
+ .align 2, 0
+_080F1BF4: .4byte gUnknown_083DFEC4
+_080F1BF8: .4byte 0x00000306
+_080F1BFC:
+ cmp r0, 0x2
+ beq _080F1C12
+ b _080F1DC4
+_080F1C02:
+ mov r0, r9
+ bl sub_80F2458
+ b _080F1DC8
+_080F1C0A:
+ mov r0, r9
+ bl sub_80F2514
+ b _080F1DC8
+_080F1C12:
+ mov r4, r9
+ cmp r4, 0x1
+ beq _080F1C40
+ cmp r4, 0x1
+ bgt _080F1C22
+ cmp r4, 0
+ beq _080F1C2A
+ b _080F1DC4
+_080F1C22:
+ mov r5, r9
+ cmp r5, 0x2
+ beq _080F1C54
+ b _080F1DC4
+_080F1C2A:
+ movs r0, 0x2A
+ str r0, [sp, 0x4]
+ movs r1, 0x14
+ str r1, [sp, 0x8]
+ ldr r4, _080F1C3C
+ adds r1, r2, r4
+ movs r0, 0x5
+ b _080F1C62
+ .align 2, 0
+_080F1C3C: .4byte 0x0000030e
+_080F1C40:
+ movs r5, 0x38
+ str r5, [sp, 0x4]
+ movs r0, 0x14
+ str r0, [sp, 0x8]
+ ldr r4, _080F1C50
+ adds r1, r2, r4
+ movs r0, 0x3
+ b _080F1C62
+ .align 2, 0
+_080F1C50: .4byte 0x0000030e
+_080F1C54:
+ movs r5, 0x28
+ str r5, [sp, 0x4]
+ movs r0, 0x10
+ str r0, [sp, 0x8]
+ ldr r4, _080F1CDC
+ adds r1, r2, r4
+ movs r0, 0x6
+_080F1C62:
+ strb r0, [r1]
+ movs r5, 0
+ str r5, [sp]
+ mov r8, r5
+ adds r1, r3, 0
+ ldr r0, [r1]
+ ldr r2, _080F1CDC
+ adds r0, r2
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r8, r0
+ blt _080F1C7E
+ b _080F1DC8
+_080F1C7E:
+ ldr r4, [sp, 0x8]
+ mov r3, r8
+ muls r3, r4
+ ldr r5, [sp, 0x4]
+ adds r0, r5, r3
+ subs r0, 0x8
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r4, [r1]
+ mov r2, r8
+ lsls r1, r2, 1
+ movs r5, 0xC5
+ lsls r5, 2
+ adds r2, r4, r5
+ adds r2, r1
+ lsls r1, r0, 8
+ adds r0, 0x11
+ orrs r1, r0
+ strh r1, [r2]
+ mov r0, r9
+ cmp r0, 0
+ bne _080F1CF2
+ ldr r1, _080F1CE0
+ adds r0, r4, r1
+ mov r2, r8
+ adds r1, r0, r2
+ ldrb r0, [r1]
+ cmp r0, 0
+ bne _080F1CE8
+ movs r5, 0
+ ldr r0, _080F1CE4
+ ldr r0, [r0]
+ lsls r2, 4
+ movs r3, 0xC8
+ lsls r3, 2
+ adds r1, r0, r3
+ movs r3, 0
+_080F1CC8:
+ lsls r0, r5, 2
+ adds r0, r2
+ adds r0, r1, r0
+ str r3, [r0]
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x3
+ bls _080F1CC8
+ b _080F1D92
+ .align 2, 0
+_080F1CDC: .4byte 0x0000030e
+_080F1CE0: .4byte 0x00006db2
+_080F1CE4: .4byte gUnknown_083DFEC4
+_080F1CE8:
+ ldrb r0, [r1]
+ subs r0, 0x1
+ lsls r0, 18
+ lsrs r0, 16
+ str r0, [sp]
+_080F1CF2:
+ movs r5, 0
+ ldr r4, [sp, 0x4]
+ adds r0, r4, r3
+ lsls r0, 16
+ mov r10, r0
+_080F1CFC:
+ lsls r6, r5, 5
+ movs r0, 0x80
+ lsls r0, 1
+ adds r7, r6, r0
+ lsls r1, r7, 16
+ asrs r1, 16
+ ldr r0, _080F1DB4
+ mov r3, r10
+ asrs r2, r3, 16
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x40
+ beq _080F1DC4
+ ldr r0, _080F1DB8
+ ldr r2, [r0]
+ lsls r1, r5, 2
+ mov r4, r8
+ lsls r0, r4, 4
+ adds r1, r0
+ movs r0, 0xC8
+ lsls r0, 2
+ adds r2, r0
+ adds r4, r2, r1
+ lsls r0, r3, 4
+ adds r0, r3
+ lsls r0, 2
+ ldr r1, _080F1DBC
+ adds r0, r1
+ str r0, [r4]
+ mov r1, r8
+ strh r1, [r0, 0x2E]
+ ldr r0, [r4]
+ strh r5, [r0, 0x30]
+ ldr r1, [r4]
+ adds r0, r6, 0
+ adds r0, 0x98
+ strh r0, [r1, 0x32]
+ ldr r0, [r4]
+ strh r7, [r0, 0x34]
+ ldr r0, [r4]
+ ldr r1, [sp]
+ adds r2, r1, 0x1
+ lsls r2, 16
+ lsrs r2, 16
+ str r2, [sp]
+ lsls r1, 24
+ lsrs r1, 24
+ bl StartSpriteAnim
+ mov r2, r9
+ cmp r2, 0x2
+ beq _080F1D6E
+ cmp r2, 0
+ bne _080F1D88
+_080F1D6E:
+ mov r3, r8
+ cmp r3, 0x2
+ bls _080F1D88
+ movs r0, 0x1
+ 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]
+_080F1D88:
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x3
+ bls _080F1CFC
+_080F1D92:
+ mov r0, r8
+ adds r0, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ ldr r1, _080F1DB8
+ ldr r0, [r1]
+ ldr r4, _080F1DC0
+ adds r0, r4
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r8, r0
+ bge _080F1DB0
+ b _080F1C7E
+_080F1DB0:
+ b _080F1DC8
+ .align 2, 0
+_080F1DB4: .4byte gSpriteTemplate_83E4454
+_080F1DB8: .4byte gUnknown_083DFEC4
+_080F1DBC: .4byte gSprites
+_080F1DC0: .4byte 0x0000030e
+_080F1DC4:
+ movs r0, 0
+ b _080F1DD8
+_080F1DC8:
+ ldr r0, _080F1DE8
+ ldr r1, [r0]
+ ldr r5, _080F1DEC
+ adds r1, r5
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ movs r0, 0x1
+_080F1DD8:
+ add sp, 0xC
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080F1DE8: .4byte gUnknown_083DFEC4
+_080F1DEC: .4byte 0x00000306
+ thumb_func_end sub_80F1BC8
+
+ thumb_func_start sub_80F1DF0
+sub_80F1DF0: @ 80F1DF0
+ push {r4-r6,lr}
+ movs r2, 0
+ ldr r0, _080F1E44
+ ldr r3, [r0]
+ ldr r0, _080F1E48
+ adds r1, r3, r0
+ movs r0, 0
+ ldrsb r0, [r1, r0]
+ cmp r2, r0
+ bge _080F1E38
+ movs r0, 0xC8
+ lsls r0, 2
+ adds r4, r3, r0
+ adds r6, r1, 0
+ ldr r5, _080F1E4C
+_080F1E0E:
+ movs r1, 0
+ adds r3, r2, 0x1
+ lsls r2, 4
+_080F1E14:
+ lsls r0, r1, 2
+ adds r0, r2
+ adds r0, r4, r0
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _080F1E22
+ str r5, [r0, 0x1C]
+_080F1E22:
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0x3
+ bls _080F1E14
+ lsls r0, r3, 16
+ lsrs r2, r0, 16
+ movs r0, 0
+ ldrsb r0, [r6, r0]
+ cmp r2, r0
+ blt _080F1E0E
+_080F1E38:
+ movs r0, 0x6
+ bl PlaySE
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F1E44: .4byte gUnknown_083DFEC4
+_080F1E48: .4byte 0x0000030e
+_080F1E4C: .4byte sub_80F2218
+ thumb_func_end sub_80F1DF0
+
+ thumb_func_start sub_80F1E50
+sub_80F1E50: @ 80F1E50
+ push {lr}
+ bl sub_80F22F8
+ lsls r0, 24
+ cmp r0, 0
+ bne _080F1E60
+ movs r0, 0x1
+ b _080F1E66
+_080F1E60:
+ bl sub_80F2108
+ movs r0, 0
+_080F1E66:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80F1E50
+
+ thumb_func_start sub_80F1E6C
+sub_80F1E6C: @ 80F1E6C
+ push {lr}
+ bl sub_80F22F8
+ movs r1, 0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080F1E7C
+ movs r1, 0x1
+_080F1E7C:
+ adds r0, r1, 0
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80F1E6C
+
+ thumb_func_start sub_80F1E84
+sub_80F1E84: @ 80F1E84
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ ldr r5, _080F1EFC
+ ldr r4, [r5]
+ ldr r1, _080F1F00
+ adds r0, r4, r1
+ movs r1, 0
+ strb r1, [r0]
+ bl sub_80F2148
+ movs r2, 0
+ ldr r3, _080F1F04
+ adds r1, r4, r3
+ movs r0, 0
+ ldrsb r0, [r1, r0]
+ cmp r2, r0
+ bge _080F1EF2
+ ldr r0, _080F1F08
+ adds r7, r4, r0
+ adds r6, r1, 0
+ mov r8, r5
+ ldr r1, _080F1F0C
+ mov r12, r1
+_080F1EB4:
+ movs r0, 0
+ ldrsb r0, [r7, r0]
+ adds r5, r2, 0x1
+ cmp r2, r0
+ beq _080F1EE6
+ movs r1, 0
+ mov r3, r8
+ ldr r0, [r3]
+ lsls r3, r2, 4
+ movs r4, 0xC8
+ lsls r4, 2
+ adds r2, r0, r4
+ mov r4, r12
+_080F1ECE:
+ lsls r0, r1, 2
+ adds r0, r3
+ adds r0, r2, r0
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _080F1EDC
+ str r4, [r0, 0x1C]
+_080F1EDC:
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0x3
+ bls _080F1ECE
+_080F1EE6:
+ lsls r0, r5, 16
+ lsrs r2, r0, 16
+ movs r0, 0
+ ldrsb r0, [r6, r0]
+ cmp r2, r0
+ blt _080F1EB4
+_080F1EF2:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F1EFC: .4byte gUnknown_083DFEC4
+_080F1F00: .4byte 0x0000030f
+_080F1F04: .4byte 0x0000030e
+_080F1F08: .4byte 0x00006dad
+_080F1F0C: .4byte sub_80F2240
+ thumb_func_end sub_80F1E84
+
+ thumb_func_start sub_80F1F10
+sub_80F1F10: @ 80F1F10
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ ldr r0, _080F1F2C
+ ldr r4, [r0]
+ ldr r1, _080F1F30
+ adds r0, r4, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080F1F34
+ cmp r0, 0x1
+ beq _080F1FC0
+ b _080F1FE4
+ .align 2, 0
+_080F1F2C: .4byte gUnknown_083DFEC4
+_080F1F30: .4byte 0x0000030f
+_080F1F34:
+ bl sub_80F2360
+ lsls r0, 24
+ cmp r0, 0
+ beq _080F1FE4
+ movs r6, 0
+ adds r7, r4, 0
+ movs r0, 0xC8
+ lsls r0, 2
+ adds r0, r7
+ mov r8, r0
+_080F1F4A:
+ lsls r5, r6, 2
+ ldr r1, _080F1FAC
+ adds r0, r7, r1
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ lsls r0, 4
+ adds r0, r5, r0
+ add r0, r8
+ ldr r4, [r0]
+ ldrb r0, [r4, 0x1]
+ movs r1, 0x3
+ orrs r0, r1
+ strb r0, [r4, 0x1]
+ ldr r0, _080F1FB0
+ str r0, [r4, 0x10]
+ adds r0, r4, 0
+ bl InitSpriteAffineAnim
+ subs r5, 0x6
+ strh r5, [r4, 0x36]
+ movs r1, 0x36
+ ldrsh r0, [r4, r1]
+ lsrs r1, r0, 31
+ adds r0, r1
+ asrs r0, 1
+ strh r0, [r4, 0x36]
+ movs r1, 0x36
+ ldrsh r0, [r4, r1]
+ lsls r0, 3
+ strh r0, [r4, 0x38]
+ ldr r0, _080F1FB4
+ str r0, [r4, 0x1C]
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ cmp r6, 0x3
+ bls _080F1F4A
+ bl sub_80F2170
+ ldr r0, _080F1FB8
+ ldr r1, [r0]
+ ldr r0, _080F1FBC
+ adds r1, r0
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _080F1FE4
+ .align 2, 0
+_080F1FAC: .4byte 0x00006dad
+_080F1FB0: .4byte gUnknown_083E4450
+_080F1FB4: .4byte sub_80F2240
+_080F1FB8: .4byte gUnknown_083DFEC4
+_080F1FBC: .4byte 0x0000030f
+_080F1FC0:
+ bl sub_80F23C8
+ lsls r0, 24
+ cmp r0, 0
+ beq _080F1FE4
+ bl sub_80F21F8
+ movs r0, 0
+ bl FreeSpriteTilesByTag
+ movs r0, 0
+ bl FreeSpritePaletteByTag
+ movs r0, 0x1
+ bl FreeSpritePaletteByTag
+ movs r0, 0
+ b _080F1FE6
+_080F1FE4:
+ movs r0, 0x1
+_080F1FE6:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80F1F10
+
+ thumb_func_start sub_80F1FF0
+sub_80F1FF0: @ 80F1FF0
+ push {r4,lr}
+ ldr r0, _080F203C
+ ldr r4, [r0]
+ ldr r1, _080F2040
+ adds r0, r4, r1
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _080F2058
+ ldr r2, _080F2044
+ ldr r3, _080F2048
+ adds r0, r4, r3
+ movs r1, 0
+ ldrsb r1, [r0, r1]
+ lsls r1, 1
+ movs r3, 0xC5
+ lsls r3, 2
+ adds r0, r4, r3
+ adds r0, r1
+ ldrh r0, [r0]
+ strh r0, [r2]
+ ldr r3, _080F204C
+ ldr r1, _080F2050
+ ldr r0, _080F2054
+ adds r2, r4, r0
+ ldrh r0, [r2]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ lsls r0, 16
+ asrs r0, 21
+ strh r0, [r3]
+ ldrh r0, [r2]
+ adds r0, 0x3
+ movs r1, 0x7F
+ ands r0, r1
+ strh r0, [r2]
+ b _080F2078
+ .align 2, 0
+_080F203C: .4byte gUnknown_083DFEC4
+_080F2040: .4byte 0x00000311
+_080F2044: .4byte REG_WIN0V
+_080F2048: .4byte 0x00006dad
+_080F204C: .4byte REG_BLDY
+_080F2050: .4byte gSineTable
+_080F2054: .4byte 0x00000312
+_080F2058:
+ cmp r0, 0x2
+ bne _080F2078
+ ldr r2, _080F2080
+ ldr r1, _080F2084
+ ldr r0, _080F2088
+ adds r3, r4, r0
+ ldrh r0, [r3]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ strh r0, [r2]
+ ldrh r0, [r3]
+ cmp r0, 0xE
+ bhi _080F2078
+ adds r0, 0x1
+ strh r0, [r3]
+_080F2078:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F2080: .4byte REG_BLDALPHA
+_080F2084: .4byte gUnknown_083E42F8
+_080F2088: .4byte 0x00000312
+ thumb_func_end sub_80F1FF0
+
+ thumb_func_start sub_80F208C
+sub_80F208C: @ 80F208C
+ push {lr}
+ bl sub_80F2148
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80F208C
+
+ thumb_func_start sub_80F2098
+sub_80F2098: @ 80F2098
+ ldr r1, _080F20DC
+ ldr r2, _080F20E0
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r2, _080F20E4
+ ldr r0, _080F20E8
+ ldr r1, [r0]
+ ldr r3, _080F20EC
+ adds r0, r1, r3
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ lsls r0, 1
+ movs r3, 0xC5
+ lsls r3, 2
+ adds r1, r3
+ adds r1, r0
+ ldrh r0, [r1]
+ strh r0, [r2]
+ ldr r1, _080F20F0
+ movs r0, 0x3F
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r0, 0x1F
+ strh r0, [r1]
+ subs r2, 0x44
+ ldrh r0, [r2]
+ movs r3, 0x80
+ lsls r3, 6
+ adds r1, r3, 0
+ orrs r0, r1
+ strh r0, [r2]
+ bx lr
+ .align 2, 0
+_080F20DC: .4byte REG_WIN0H
+_080F20E0: .4byte 0x000077f0
+_080F20E4: .4byte REG_WIN0V
+_080F20E8: .4byte gUnknown_083DFEC4
+_080F20EC: .4byte 0x00006dad
+_080F20F0: .4byte REG_WININ
+ thumb_func_end sub_80F2098
+
+ thumb_func_start sub_80F20F4
+sub_80F20F4: @ 80F20F4
+ movs r2, 0x80
+ lsls r2, 19
+ ldrh r1, [r2]
+ ldr r0, _080F2104
+ ands r0, r1
+ strh r0, [r2]
+ bx lr
+ .align 2, 0
+_080F2104: .4byte 0x0000dfff
+ thumb_func_end sub_80F20F4
+
+ thumb_func_start sub_80F2108
+sub_80F2108: @ 80F2108
+ push {lr}
+ ldr r0, _080F2134
+ ldr r3, [r0]
+ ldr r0, _080F2138
+ adds r1, r3, r0
+ ldrb r2, [r1]
+ cmp r2, 0
+ bne _080F2130
+ movs r0, 0x1
+ strb r0, [r1]
+ ldr r1, _080F213C
+ adds r0, r3, r1
+ strh r2, [r0]
+ ldr r1, _080F2140
+ movs r0, 0x90
+ strh r0, [r1]
+ ldr r0, _080F2144
+ strh r2, [r0]
+ bl sub_80F2098
+_080F2130:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F2134: .4byte gUnknown_083DFEC4
+_080F2138: .4byte 0x00000311
+_080F213C: .4byte 0x00000312
+_080F2140: .4byte REG_BLDCNT
+_080F2144: .4byte REG_BLDY
+ thumb_func_end sub_80F2108
+
+ thumb_func_start sub_80F2148
+sub_80F2148: @ 80F2148
+ push {lr}
+ ldr r0, _080F2164
+ ldr r0, [r0]
+ ldr r1, _080F2168
+ adds r0, r1
+ movs r1, 0
+ strb r1, [r0]
+ ldr r0, _080F216C
+ strh r1, [r0]
+ bl sub_80F20F4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F2164: .4byte gUnknown_083DFEC4
+_080F2168: .4byte 0x00000311
+_080F216C: .4byte REG_BLDCNT
+ thumb_func_end sub_80F2148
+
+ thumb_func_start sub_80F2170
+sub_80F2170: @ 80F2170
+ push {r4-r7,lr}
+ ldr r7, _080F21E4
+ ldr r4, [r7]
+ ldr r1, _080F21E8
+ adds r0, r4, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080F21DC
+ bl sub_80F20F4
+ movs r3, 0
+ ldr r2, _080F21EC
+ adds r5, r4, r2
+ movs r0, 0xC8
+ lsls r0, 2
+ adds r4, r0
+ movs r1, 0xD
+ negs r1, r1
+ mov r12, r1
+ movs r6, 0x4
+_080F2198:
+ lsls r1, r3, 2
+ movs r0, 0
+ ldrsb r0, [r5, r0]
+ lsls r0, 4
+ adds r1, r0
+ adds r1, r4, r1
+ ldr r2, [r1]
+ ldrb r1, [r2, 0x1]
+ mov r0, r12
+ ands r0, r1
+ orrs r0, r6
+ strb r0, [r2, 0x1]
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0x3
+ bls _080F2198
+ ldr r1, [r7]
+ ldr r0, _080F21E8
+ adds r2, r1, r0
+ movs r3, 0
+ movs r0, 0x2
+ strb r0, [r2]
+ ldr r2, _080F21F0
+ adds r1, r2
+ strh r3, [r1]
+ ldr r1, _080F21F4
+ movs r2, 0xFD
+ lsls r2, 6
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r0, 0x10
+ strh r0, [r1]
+_080F21DC:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F21E4: .4byte gUnknown_083DFEC4
+_080F21E8: .4byte 0x00000311
+_080F21EC: .4byte 0x00006dad
+_080F21F0: .4byte 0x00000312
+_080F21F4: .4byte REG_BLDCNT
+ thumb_func_end sub_80F2170
+
+ thumb_func_start sub_80F21F8
+sub_80F21F8: @ 80F21F8
+ ldr r0, _080F220C
+ ldr r0, [r0]
+ ldr r1, _080F2210
+ adds r0, r1
+ movs r1, 0
+ strb r1, [r0]
+ ldr r0, _080F2214
+ strh r1, [r0]
+ bx lr
+ .align 2, 0
+_080F220C: .4byte gUnknown_083DFEC4
+_080F2210: .4byte 0x00000311
+_080F2214: .4byte REG_BLDCNT
+ thumb_func_end sub_80F21F8
+
+ thumb_func_start sub_80F2218
+sub_80F2218: @ 80F2218
+ push {r4,lr}
+ adds r2, r0, 0
+ ldrh r0, [r2, 0x20]
+ subs r0, 0x8
+ strh r0, [r2, 0x20]
+ lsls r0, 16
+ asrs r0, 16
+ ldrh r3, [r2, 0x32]
+ movs r4, 0x32
+ ldrsh r1, [r2, r4]
+ cmp r0, r1
+ bgt _080F2236
+ strh r3, [r2, 0x20]
+ ldr r0, _080F223C
+ str r0, [r2, 0x1C]
+_080F2236:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F223C: .4byte sub_80F22B0
+ thumb_func_end sub_80F2218
+
+ thumb_func_start sub_80F2240
+sub_80F2240: @ 80F2240
+ push {r4,lr}
+ adds r2, r0, 0
+ ldr r0, _080F2288
+ ldr r0, [r0]
+ ldr r1, _080F228C
+ adds r0, r1
+ movs r3, 0x2E
+ ldrsh r1, [r2, r3]
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r1, r0
+ bne _080F2290
+ ldrh r3, [r2, 0x38]
+ movs r4, 0x38
+ ldrsh r0, [r2, r4]
+ cmp r0, 0
+ beq _080F2270
+ ldrh r0, [r2, 0x36]
+ ldrh r4, [r2, 0x20]
+ adds r1, r0, r4
+ strh r1, [r2, 0x20]
+ subs r0, r3, r0
+ strh r0, [r2, 0x38]
+_080F2270:
+ adds r0, r2, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _080F22A8
+ adds r0, r2, 0
+ bl sub_80F240C
+ b _080F22A8
+ .align 2, 0
+_080F2288: .4byte gUnknown_083DFEC4
+_080F228C: .4byte 0x00006dad
+_080F2290:
+ ldrh r0, [r2, 0x20]
+ adds r0, 0x8
+ strh r0, [r2, 0x20]
+ lsls r0, 16
+ asrs r0, 16
+ movs r3, 0x34
+ ldrsh r1, [r2, r3]
+ cmp r0, r1
+ blt _080F22A8
+ adds r0, r2, 0
+ bl sub_80F240C
+_080F22A8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80F2240
+
+ thumb_func_start sub_80F22B0
+sub_80F22B0: @ 80F22B0
+ push {lr}
+ adds r2, r0, 0
+ ldr r0, _080F22DC
+ ldr r0, [r0]
+ ldr r1, _080F22E0
+ adds r0, r1
+ movs r3, 0x2E
+ ldrsh r1, [r2, r3]
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r1, r0
+ bne _080F22E4
+ ldrh r3, [r2, 0x24]
+ movs r0, 0x24
+ ldrsh r1, [r2, r0]
+ movs r0, 0x10
+ negs r0, r0
+ cmp r1, r0
+ ble _080F22F2
+ subs r0, r3, 0x4
+ b _080F22F0
+ .align 2, 0
+_080F22DC: .4byte gUnknown_083DFEC4
+_080F22E0: .4byte 0x00006dad
+_080F22E4:
+ ldrh r1, [r2, 0x24]
+ movs r3, 0x24
+ ldrsh r0, [r2, r3]
+ cmp r0, 0
+ bge _080F22F2
+ adds r0, r1, 0x4
+_080F22F0:
+ strh r0, [r2, 0x24]
+_080F22F2:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80F22B0
+
+ thumb_func_start sub_80F22F8
+sub_80F22F8: @ 80F22F8
+ push {r4-r7,lr}
+ movs r3, 0
+ ldr r0, _080F233C
+ ldr r1, [r0]
+ ldr r2, _080F2340
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r3, r0
+ bge _080F2358
+ movs r7, 0xC8
+ lsls r7, 2
+ adds r4, r1, r7
+ movs r5, 0x10
+ negs r5, r5
+ adds r6, r0, 0
+_080F231A:
+ movs r1, 0
+ lsls r2, r3, 4
+_080F231E:
+ lsls r0, r1, 2
+ adds r0, r2
+ adds r0, r4, r0
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _080F2358
+ movs r7, 0x24
+ ldrsh r0, [r0, r7]
+ cmp r0, 0
+ beq _080F2344
+ cmp r0, r5
+ beq _080F2344
+ movs r0, 0
+ b _080F235A
+ .align 2, 0
+_080F233C: .4byte gUnknown_083DFEC4
+_080F2340: .4byte 0x00006dae
+_080F2344:
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0x3
+ bls _080F231E
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, r6
+ blt _080F231A
+_080F2358:
+ movs r0, 0x1
+_080F235A:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80F22F8
+
+ thumb_func_start sub_80F2360
+sub_80F2360: @ 80F2360
+ push {r4-r7,lr}
+ movs r4, 0
+ ldr r0, _080F23A0
+ ldr r2, [r0]
+ ldr r1, _080F23A4
+ adds r0, r2, r1
+ movs r1, 0
+ ldrsb r1, [r0, r1]
+ cmp r4, r1
+ bge _080F23C0
+ ldr r3, _080F23A8
+ adds r0, r2, r3
+ movs r6, 0
+ ldrsb r6, [r0, r6]
+ adds r5, r1, 0
+_080F237E:
+ cmp r4, r6
+ beq _080F23B6
+ movs r1, 0
+ ldr r0, _080F23A0
+ ldr r0, [r0]
+ lsls r3, r4, 4
+ movs r7, 0xC8
+ lsls r7, 2
+ adds r2, r0, r7
+_080F2390:
+ lsls r0, r1, 2
+ adds r0, r3
+ adds r0, r2, r0
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _080F23AC
+ movs r0, 0
+ b _080F23C2
+ .align 2, 0
+_080F23A0: .4byte gUnknown_083DFEC4
+_080F23A4: .4byte 0x0000030e
+_080F23A8: .4byte 0x00006dad
+_080F23AC:
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0x3
+ bls _080F2390
+_080F23B6:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, r5
+ blt _080F237E
+_080F23C0:
+ movs r0, 0x1
+_080F23C2:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80F2360
+
+ thumb_func_start sub_80F23C8
+sub_80F23C8: @ 80F23C8
+ push {lr}
+ movs r2, 0
+ ldr r0, _080F23F4
+ ldr r1, [r0]
+ ldr r3, _080F23F8
+ adds r0, r1, r3
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ lsls r3, r0, 4
+ movs r0, 0xC8
+ lsls r0, 2
+ adds r1, r0
+_080F23E2:
+ lsls r0, r2, 2
+ adds r0, r3
+ adds r0, r1, r0
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _080F23FC
+ movs r0, 0
+ b _080F2408
+ .align 2, 0
+_080F23F4: .4byte gUnknown_083DFEC4
+_080F23F8: .4byte 0x00006dad
+_080F23FC:
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0x3
+ bls _080F23E2
+ movs r0, 0x1
+_080F2408:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80F23C8
+
+ thumb_func_start sub_80F240C
+sub_80F240C: @ 80F240C
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _080F2454
+ ldr r2, [r0]
+ movs r0, 0x30
+ ldrsh r1, [r4, r0]
+ lsls r1, 2
+ movs r3, 0x2E
+ ldrsh r0, [r4, r3]
+ lsls r0, 4
+ adds r1, r0
+ movs r0, 0xC8
+ lsls r0, 2
+ adds r2, r0
+ adds r2, r1
+ movs r0, 0
+ str r0, [r2]
+ adds r0, r4, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _080F2446
+ ldrb r0, [r4, 0x3]
+ lsls r0, 26
+ lsrs r0, 27
+ bl FreeOamMatrix
+_080F2446:
+ adds r0, r4, 0
+ bl DestroySprite
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F2454: .4byte gUnknown_083DFEC4
+ thumb_func_end sub_80F240C
+
+ thumb_func_start sub_80F2458
+sub_80F2458: @ 80F2458
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x1
+ beq _080F24A0
+ cmp r4, 0x1
+ bgt _080F246C
+ cmp r4, 0
+ beq _080F2472
+ b _080F2502
+_080F246C:
+ cmp r4, 0x2
+ beq _080F24D0
+ b _080F2502
+_080F2472:
+ ldr r2, _080F2498
+ ldr r3, [r2]
+ movs r0, 0xE0
+ lsls r0, 2
+ adds r1, r3, r0
+ movs r5, 0xE2
+ lsls r5, 2
+ adds r0, r3, r5
+ str r0, [r1]
+ movs r0, 0xE1
+ lsls r0, 2
+ adds r1, r3, r0
+ movs r0, 0xA0
+ lsls r0, 5
+ strh r0, [r1]
+ ldr r1, _080F249C
+ adds r0, r3, r1
+ strh r4, [r0]
+ b _080F24F6
+ .align 2, 0
+_080F2498: .4byte gUnknown_083DFEC4
+_080F249C: .4byte 0x00000386
+_080F24A0:
+ ldr r4, _080F24C4
+ ldr r1, [r4]
+ movs r3, 0xE0
+ lsls r3, 2
+ adds r2, r1, r3
+ ldr r5, _080F24C8
+ adds r0, r1, r5
+ str r0, [r2]
+ movs r0, 0xE1
+ lsls r0, 2
+ adds r2, r1, r0
+ movs r3, 0
+ movs r0, 0xC0
+ lsls r0, 4
+ strh r0, [r2]
+ ldr r5, _080F24CC
+ adds r1, r5
+ b _080F24F2
+ .align 2, 0
+_080F24C4: .4byte gUnknown_083DFEC4
+_080F24C8: .4byte 0x00001788
+_080F24CC: .4byte 0x00000386
+_080F24D0:
+ ldr r4, _080F2508
+ ldr r1, [r4]
+ movs r0, 0xE0
+ lsls r0, 2
+ adds r2, r1, r0
+ ldr r3, _080F250C
+ adds r0, r1, r3
+ str r0, [r2]
+ movs r5, 0xE1
+ lsls r5, 2
+ adds r2, r1, r5
+ movs r3, 0
+ movs r0, 0xC0
+ lsls r0, 5
+ strh r0, [r2]
+ ldr r0, _080F2510
+ adds r1, r0
+_080F24F2:
+ strh r3, [r1]
+ adds r2, r4, 0
+_080F24F6:
+ ldr r0, [r2]
+ movs r1, 0xE0
+ lsls r1, 2
+ adds r0, r1
+ bl LoadSpriteSheet
+_080F2502:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F2508: .4byte gUnknown_083DFEC4
+_080F250C: .4byte 0x00002388
+_080F2510: .4byte 0x00000386
+ thumb_func_end sub_80F2458
+
+ thumb_func_start sub_80F2514
+sub_80F2514: @ 80F2514
+ push {r4,lr}
+ sub sp, 0x8
+ lsls r0, 24
+ lsrs r0, 24
+ adds r1, r0, 0
+ cmp r0, 0x1
+ beq _080F2558
+ cmp r0, 0x1
+ bgt _080F252C
+ cmp r0, 0
+ beq _080F2532
+ b _080F2586
+_080F252C:
+ cmp r1, 0x2
+ beq _080F2568
+ b _080F2586
+_080F2532:
+ ldr r0, _080F254C
+ str r0, [sp]
+ ldr r1, _080F2550
+ mov r4, sp
+ ldr r0, [sp, 0x4]
+ ands r0, r1
+ str r0, [sp, 0x4]
+ mov r0, sp
+ bl LoadSpritePalette
+ ldr r0, _080F2554
+ b _080F257A
+ .align 2, 0
+_080F254C: .4byte gPokenavMenuOptions1_Pal
+_080F2550: .4byte 0xffff0000
+_080F2554: .4byte gPokenavMenuOptions2_Pal
+_080F2558:
+ ldr r0, _080F2564
+ str r0, [sp]
+ mov r1, sp
+ movs r0, 0
+ strh r0, [r1, 0x4]
+ b _080F2580
+ .align 2, 0
+_080F2564: .4byte gPokenavConditionMenu_Pal
+_080F2568:
+ ldr r0, _080F2590
+ str r0, [sp]
+ mov r4, sp
+ movs r0, 0
+ strh r0, [r4, 0x4]
+ mov r0, sp
+ bl LoadSpritePalette
+ ldr r0, _080F2594
+_080F257A:
+ str r0, [sp]
+ movs r0, 0x1
+ strh r0, [r4, 0x4]
+_080F2580:
+ mov r0, sp
+ bl LoadSpritePalette
+_080F2586:
+ add sp, 0x8
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F2590: .4byte gPokenavCondition6_Pal
+_080F2594: .4byte gPokenavCondition7_Pal
+ thumb_func_end sub_80F2514
+
+ thumb_func_start sub_80F2598
+sub_80F2598: @ 80F2598
+ push {r4,lr}
+ ldr r0, _080F25F0
+ ldr r0, [r0]
+ ldr r1, _080F25F4
+ adds r4, r0, r1
+ movs r0, 0
+ str r0, [r4]
+ ldr r1, _080F25F8
+ movs r0, 0x4
+ ldrsb r0, [r1, r0]
+ lsls r0, 16
+ lsrs r0, 16
+ ldrb r1, [r1, 0x5]
+ lsls r1, 24
+ asrs r1, 24
+ lsls r1, 16
+ lsrs r1, 16
+ bl sub_8082C0C
+ cmp r0, 0x1
+ bne _080F2618
+ ldr r0, _080F25FC
+ bl LoadSpriteSheet
+ ldr r0, _080F2600
+ bl LoadSpritePalette
+ ldr r0, _080F2604
+ movs r1, 0xC
+ movs r2, 0x60
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x40
+ beq _080F260C
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080F2608
+ adds r0, r1
+ str r0, [r4]
+ b _080F2618
+ .align 2, 0
+_080F25F0: .4byte gUnknown_083DFEC4
+_080F25F4: .4byte 0x00006d9c
+_080F25F8: .4byte gSaveBlock1
+_080F25FC: .4byte gSpriteSheet_PokenavBlueLight
+_080F2600: .4byte gSpritePalette_PokenavBlueLight
+_080F2604: .4byte gSpriteTemplate_83E4484
+_080F2608: .4byte gSprites
+_080F260C:
+ movs r0, 0x19
+ bl FreeSpriteTilesByTag
+ movs r0, 0x11
+ bl FreeSpritePaletteByTag
+_080F2618:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80F2598
+
+ thumb_func_start sub_80F2620
+sub_80F2620: @ 80F2620
+ push {r4,lr}
+ ldr r0, _080F264C
+ ldr r0, [r0]
+ ldr r1, _080F2650
+ adds r4, r0, r1
+ ldr r0, [r4]
+ cmp r0, 0
+ beq _080F2644
+ bl DestroySprite
+ movs r0, 0x19
+ bl FreeSpriteTilesByTag
+ movs r0, 0x11
+ bl FreeSpritePaletteByTag
+ movs r0, 0
+ str r0, [r4]
+_080F2644:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F264C: .4byte gUnknown_083DFEC4
+_080F2650: .4byte 0x00006d9c
+ thumb_func_end sub_80F2620
+
+ thumb_func_start sub_80F2654
+sub_80F2654: @ 80F2654
+ 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, 0x6
+ ble _080F2682
+ movs r0, 0
+ strh r0, [r3, 0x2E]
+ adds r3, 0x3E
+ ldrb r2, [r3]
+ lsrs r1, r2, 2
+ movs r0, 0x1
+ eors r1, r0
+ ands r1, r0
+ lsls r1, 2
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+_080F2682:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80F2654
+
+ thumb_func_start sub_80F2688
+sub_80F2688: @ 80F2688
+ push {lr}
+ ldr r0, _080F26B0
+ ldr r0, [r0]
+ ldr r1, _080F26B4
+ adds r2, r0, r1
+ movs r1, 0
+ strh r1, [r2]
+ ldr r1, _080F26B8
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080F26AA
+_080F26A0:
+ bl sub_80F26BC
+ lsls r0, 24
+ cmp r0, 0
+ bne _080F26A0
+_080F26AA:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F26B0: .4byte gUnknown_083DFEC4
+_080F26B4: .4byte 0x00000306
+_080F26B8: .4byte 0x00006dac
+ thumb_func_end sub_80F2688
+
+ thumb_func_start sub_80F26BC
+sub_80F26BC: @ 80F26BC
+ push {lr}
+ ldr r0, _080F26D8
+ ldr r0, [r0]
+ ldr r1, _080F26DC
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r0, 0x7
+ bls _080F26CE
+ b _080F27BC
+_080F26CE:
+ lsls r0, 2
+ ldr r1, _080F26E0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080F26D8: .4byte gUnknown_083DFEC4
+_080F26DC: .4byte 0x00000306
+_080F26E0: .4byte _080F26E4
+ .align 2, 0
+_080F26E4:
+ .4byte _080F2704
+ .4byte _080F271C
+ .4byte _080F2734
+ .4byte _080F274C
+ .4byte _080F2764
+ .4byte _080F277C
+ .4byte _080F2794
+ .4byte _080F27B0
+_080F2704:
+ ldr r0, _080F2710
+ ldr r1, _080F2714
+ ldr r1, [r1]
+ ldr r2, _080F2718
+ b _080F279C
+ .align 2, 0
+_080F2710: .4byte gPokenavMainMenu_Gfx
+_080F2714: .4byte gUnknown_083DFEC4
+_080F2718: .4byte 0x00003b98
+_080F271C:
+ ldr r0, _080F2728
+ ldr r1, _080F272C
+ ldr r1, [r1]
+ ldr r2, _080F2730
+ b _080F279C
+ .align 2, 0
+_080F2728: .4byte gPokenavConditionMenuHeader_Gfx
+_080F272C: .4byte gUnknown_083DFEC4
+_080F2730: .4byte 0x00004198
+_080F2734:
+ ldr r0, _080F2740
+ ldr r1, _080F2744
+ ldr r1, [r1]
+ ldr r2, _080F2748
+ b _080F279C
+ .align 2, 0
+_080F2740: .4byte gPokenavRibbonsHeader_Gfx
+_080F2744: .4byte gUnknown_083DFEC4
+_080F2748: .4byte 0x00004d98
+_080F274C:
+ ldr r0, _080F2758
+ ldr r1, _080F275C
+ ldr r1, [r1]
+ ldr r2, _080F2760
+ b _080F279C
+ .align 2, 0
+_080F2758: .4byte gPokenavHoennMapHeader_Gfx
+_080F275C: .4byte gUnknown_083DFEC4
+_080F2760: .4byte 0x00005398
+_080F2764:
+ ldr r0, _080F2770
+ ldr r1, _080F2774
+ ldr r1, [r1]
+ ldr r2, _080F2778
+ b _080F279C
+ .align 2, 0
+_080F2770: .4byte gPokenavConditionMenuOptions_Gfx
+_080F2774: .4byte gUnknown_083DFEC4
+_080F2778: .4byte 0x00005f98
+_080F277C:
+ ldr r0, _080F2788
+ ldr r1, _080F278C
+ ldr r1, [r1]
+ ldr r2, _080F2790
+ b _080F279C
+ .align 2, 0
+_080F2788: .4byte gPokenavConditionMenuOptions2_Gfx
+_080F278C: .4byte gUnknown_083DFEC4
+_080F2790: .4byte 0x00006798
+_080F2794:
+ ldr r0, _080F27A4
+ ldr r1, _080F27A8
+ ldr r1, [r1]
+ ldr r2, _080F27AC
+_080F279C:
+ adds r1, r2
+ bl LZ77UnCompWram
+ b _080F27C0
+ .align 2, 0
+_080F27A4: .4byte gPokenavTrainersEyesHeader_Gfx
+_080F27A8: .4byte gUnknown_083DFEC4
+_080F27AC: .4byte 0x00004798
+_080F27B0:
+ ldr r0, _080F27B8
+ bl LoadSpritePalettes
+ b _080F27C0
+ .align 2, 0
+_080F27B8: .4byte gUnknown_083E449C
+_080F27BC:
+ movs r0, 0
+ b _080F27D0
+_080F27C0:
+ ldr r0, _080F27D4
+ ldr r1, [r0]
+ ldr r0, _080F27D8
+ adds r1, r0
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ movs r0, 0x1
+_080F27D0:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080F27D4: .4byte gUnknown_083DFEC4
+_080F27D8: .4byte 0x00000306
+ thumb_func_end sub_80F26BC
+
+ thumb_func_start sub_80F27DC
+sub_80F27DC: @ 80F27DC
+ push {lr}
+ sub sp, 0x8
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xB
+ bls _080F27EA
+ b _080F29A0
+_080F27EA:
+ lsls r0, 2
+ ldr r1, _080F27F4
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080F27F4: .4byte _080F27F8
+ .align 2, 0
+_080F27F8:
+ .4byte _080F2828
+ .4byte _080F2858
+ .4byte _080F28B8
+ .4byte _080F2888
+ .4byte _080F28E8
+ .4byte _080F2918
+ .4byte _080F2928
+ .4byte _080F2978
+ .4byte _080F2938
+ .4byte _080F2948
+ .4byte _080F2968
+ .4byte _080F2958
+_080F2828:
+ ldr r0, _080F2848
+ ldr r0, [r0]
+ ldr r1, _080F284C
+ adds r0, r1
+ str r0, [sp]
+ ldr r1, _080F2850
+ ldr r0, [sp, 0x4]
+ ands r0, r1
+ movs r1, 0xC0
+ lsls r1, 3
+ orrs r0, r1
+ ldr r1, _080F2854
+ ands r0, r1
+ adds r1, 0x1
+ b _080F2996
+ .align 2, 0
+_080F2848: .4byte gUnknown_083DFEC4
+_080F284C: .4byte 0x00003b98
+_080F2850: .4byte 0xffff0000
+_080F2854: .4byte 0x0000ffff
+_080F2858:
+ ldr r0, _080F2878
+ ldr r0, [r0]
+ ldr r1, _080F287C
+ adds r0, r1
+ str r0, [sp]
+ ldr r1, _080F2880
+ ldr r0, [sp, 0x4]
+ ands r0, r1
+ movs r1, 0xC0
+ lsls r1, 3
+ orrs r0, r1
+ ldr r1, _080F2884
+ ands r0, r1
+ adds r1, 0x1
+ b _080F2996
+ .align 2, 0
+_080F2878: .4byte gUnknown_083DFEC4
+_080F287C: .4byte 0x00004198
+_080F2880: .4byte 0xffff0000
+_080F2884: .4byte 0x0000ffff
+_080F2888:
+ ldr r0, _080F28A8
+ ldr r0, [r0]
+ ldr r1, _080F28AC
+ adds r0, r1
+ str r0, [sp]
+ ldr r1, _080F28B0
+ ldr r0, [sp, 0x4]
+ ands r0, r1
+ movs r1, 0xC0
+ lsls r1, 3
+ orrs r0, r1
+ ldr r1, _080F28B4
+ ands r0, r1
+ adds r1, 0x1
+ b _080F2996
+ .align 2, 0
+_080F28A8: .4byte gUnknown_083DFEC4
+_080F28AC: .4byte 0x00004798
+_080F28B0: .4byte 0xffff0000
+_080F28B4: .4byte 0x0000ffff
+_080F28B8:
+ ldr r0, _080F28D8
+ ldr r0, [r0]
+ ldr r1, _080F28DC
+ adds r0, r1
+ str r0, [sp]
+ ldr r1, _080F28E0
+ ldr r0, [sp, 0x4]
+ ands r0, r1
+ movs r1, 0xC0
+ lsls r1, 3
+ orrs r0, r1
+ ldr r1, _080F28E4
+ ands r0, r1
+ adds r1, 0x1
+ b _080F2996
+ .align 2, 0
+_080F28D8: .4byte gUnknown_083DFEC4
+_080F28DC: .4byte 0x00004d98
+_080F28E0: .4byte 0xffff0000
+_080F28E4: .4byte 0x0000ffff
+_080F28E8:
+ ldr r0, _080F2908
+ ldr r0, [r0]
+ ldr r1, _080F290C
+ adds r0, r1
+ str r0, [sp]
+ ldr r1, _080F2910
+ ldr r0, [sp, 0x4]
+ ands r0, r1
+ movs r1, 0xC0
+ lsls r1, 4
+ orrs r0, r1
+ ldr r1, _080F2914
+ ands r0, r1
+ adds r1, 0x1
+ b _080F2996
+ .align 2, 0
+_080F2908: .4byte gUnknown_083DFEC4
+_080F290C: .4byte 0x00005398
+_080F2910: .4byte 0xffff0000
+_080F2914: .4byte 0x0000ffff
+_080F2918:
+ ldr r0, _080F2920
+ ldr r0, [r0]
+ ldr r1, _080F2924
+ b _080F297E
+ .align 2, 0
+_080F2920: .4byte gUnknown_083DFEC4
+_080F2924: .4byte 0x00005f98
+_080F2928:
+ ldr r0, _080F2930
+ ldr r0, [r0]
+ ldr r1, _080F2934
+ b _080F297E
+ .align 2, 0
+_080F2930: .4byte gUnknown_083DFEC4
+_080F2934: .4byte 0x00006198
+_080F2938:
+ ldr r0, _080F2940
+ ldr r0, [r0]
+ ldr r1, _080F2944
+ b _080F297E
+ .align 2, 0
+_080F2940: .4byte gUnknown_083DFEC4
+_080F2944: .4byte 0x00006398
+_080F2948:
+ ldr r0, _080F2950
+ ldr r0, [r0]
+ ldr r1, _080F2954
+ b _080F297E
+ .align 2, 0
+_080F2950: .4byte gUnknown_083DFEC4
+_080F2954: .4byte 0x00006598
+_080F2958:
+ ldr r0, _080F2960
+ ldr r0, [r0]
+ ldr r1, _080F2964
+ b _080F297E
+ .align 2, 0
+_080F2960: .4byte gUnknown_083DFEC4
+_080F2964: .4byte 0x00006998
+_080F2968:
+ ldr r0, _080F2970
+ ldr r0, [r0]
+ ldr r1, _080F2974
+ b _080F297E
+ .align 2, 0
+_080F2970: .4byte gUnknown_083DFEC4
+_080F2974: .4byte 0x00006798
+_080F2978:
+ ldr r0, _080F29A8
+ ldr r0, [r0]
+ ldr r1, _080F29AC
+_080F297E:
+ adds r0, r1
+ str r0, [sp]
+ ldr r1, _080F29B0
+ ldr r0, [sp, 0x4]
+ ands r0, r1
+ movs r1, 0x80
+ lsls r1, 2
+ orrs r0, r1
+ ldr r1, _080F29B4
+ ands r0, r1
+ movs r1, 0x80
+ lsls r1, 10
+_080F2996:
+ orrs r0, r1
+ str r0, [sp, 0x4]
+ mov r0, sp
+ bl LoadSpriteSheet
+_080F29A0:
+ add sp, 0x8
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F29A8: .4byte gUnknown_083DFEC4
+_080F29AC: .4byte 0x00006b98
+_080F29B0: .4byte 0xffff0000
+_080F29B4: .4byte 0x0000ffff
+ thumb_func_end sub_80F27DC
+
+ thumb_func_start sub_80F29B8
+sub_80F29B8: @ 80F29B8
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x14
+ lsls r0, 24
+ lsrs r7, r0, 24
+ movs r0, 0
+ mov r8, r0
+ cmp r7, 0xB
+ bls _080F29D2
+ b _080F2BA6
+_080F29D2:
+ lsls r0, r7, 2
+ ldr r1, _080F29DC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080F29DC: .4byte _080F29E0
+ .align 2, 0
+_080F29E0:
+ .4byte _080F2A10
+ .4byte _080F2A10
+ .4byte _080F2A10
+ .4byte _080F2A10
+ .4byte _080F2A58
+ .4byte _080F2A94
+ .4byte _080F2A94
+ .4byte _080F2A98
+ .4byte _080F2A94
+ .4byte _080F2A94
+ .4byte _080F2A98
+ .4byte _080F2A98
+_080F2A10:
+ ldr r3, _080F2A44
+ ldr r0, _080F2A48
+ ldr r2, [r0]
+ movs r1, 0xC3
+ lsls r1, 2
+ adds r0, r2, r1
+ ldrh r1, [r0]
+ movs r0, 0x31
+ subs r0, r1
+ lsls r0, 16
+ lsrs r0, 16
+ movs r4, 0x8
+ str r4, [sp]
+ movs r1, 0x20
+ str r1, [sp, 0x4]
+ movs r1, 0x40
+ ldr r4, _080F2A4C
+ adds r4, r2
+ mov r9, r4
+ ldr r2, _080F2A50
+ mov r8, r2
+ cmp r7, 0x3
+ beq _080F2AC8
+ ldr r4, _080F2A54
+ mov r8, r4
+ b _080F2AC8
+ .align 2, 0
+_080F2A44: .4byte 0x0000ffa0
+_080F2A48: .4byte gUnknown_083DFEC4
+_080F2A4C: .4byte 0x00003b88
+_080F2A50: .4byte gSpriteTemplate_83E44F8
+_080F2A54: .4byte gSpriteTemplate_83E44E0
+_080F2A58:
+ movs r3, 0x88
+ lsls r3, 1
+ ldr r0, _080F2A84
+ ldr r2, [r0]
+ movs r1, 0xC3
+ lsls r1, 2
+ adds r0, r2, r1
+ ldrh r1, [r0]
+ movs r0, 0x31
+ subs r0, r1
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r4, _080F2A88
+ str r4, [sp]
+ movs r1, 0x98
+ str r1, [sp, 0x4]
+ movs r1, 0x40
+ ldr r4, _080F2A8C
+ mov r8, r4
+ ldr r4, _080F2A90
+ b _080F2AC4
+ .align 2, 0
+_080F2A84: .4byte gUnknown_083DFEC4
+_080F2A88: .4byte 0x0000fff8
+_080F2A8C: .4byte gSpriteTemplate_83E44E0
+_080F2A90: .4byte 0x00003b88
+_080F2A94:
+ ldr r0, _080F2B40
+ mov r8, r0
+_080F2A98:
+ mov r1, r8
+ cmp r1, 0
+ bne _080F2AA2
+ ldr r2, _080F2B44
+ mov r8, r2
+_080F2AA2:
+ ldr r3, _080F2B48
+ ldr r0, _080F2B4C
+ ldr r2, [r0]
+ movs r4, 0xC3
+ lsls r4, 2
+ adds r0, r2, r4
+ ldrh r1, [r0]
+ movs r0, 0x44
+ subs r0, r1
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x8
+ str r1, [sp]
+ movs r4, 0x10
+ str r4, [sp, 0x4]
+ movs r1, 0x20
+ ldr r4, _080F2B50
+_080F2AC4:
+ adds r4, r2
+ mov r9, r4
+_080F2AC8:
+ movs r6, 0
+ lsls r1, 16
+ str r1, [sp, 0x10]
+ lsls r3, 16
+ str r3, [sp, 0x8]
+ lsls r0, 16
+ str r0, [sp, 0xC]
+ ldr r0, _080F2B54
+ mov r10, r0
+_080F2ADA:
+ ldr r1, [sp, 0x10]
+ asrs r0, r1, 16
+ adds r5, r6, 0
+ muls r5, r0
+ ldr r2, [sp, 0x8]
+ asrs r1, r2, 16
+ adds r1, r5
+ lsls r1, 16
+ asrs r1, 16
+ mov r0, r8
+ ldr r3, [sp, 0xC]
+ asrs r2, r3, 16
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x40
+ beq _080F2B9C
+ lsls r0, r4, 4
+ adds r1, r0, r4
+ lsls r1, 2
+ mov r2, r10
+ adds r3, r1, r2
+ mov r1, sp
+ ldrh r1, [r1]
+ strh r1, [r3, 0x2E]
+ ldr r2, [sp, 0x4]
+ adds r1, r2, r5
+ strh r1, [r3, 0x30]
+ strh r6, [r3, 0x32]
+ strh r7, [r3, 0x34]
+ adds r5, r0, 0
+ cmp r7, 0x4
+ bne _080F2B5C
+ cmp r6, 0x1
+ bne _080F2B5C
+ ldr r0, _080F2B4C
+ ldr r0, [r0]
+ ldr r1, _080F2B58
+ adds r0, r1
+ ldrb r0, [r0]
+ movs r1, 0x2
+ cmp r0, 0
+ bne _080F2B36
+ movs r1, 0x1
+_080F2B36:
+ adds r0, r3, 0
+ bl StartSpriteAnim
+ b _080F2B6A
+ .align 2, 0
+_080F2B40: .4byte gSpriteTemplate_83E4530
+_080F2B44: .4byte gSpriteTemplate_83E4548
+_080F2B48: .4byte 0x0000ffa0
+_080F2B4C: .4byte gUnknown_083DFEC4
+_080F2B50: .4byte 0x00003b90
+_080F2B54: .4byte gSprites
+_080F2B58: .4byte 0x00006e90
+_080F2B5C:
+ adds r0, r5, r4
+ lsls r0, 2
+ add r0, r10
+ lsls r1, r6, 24
+ lsrs r1, 24
+ bl StartSpriteAnim
+_080F2B6A:
+ ldr r2, _080F2BB8
+ mov r12, r2
+ cmp r7, 0x3
+ bhi _080F2B90
+ cmp r6, 0x1
+ bne _080F2B90
+ adds r2, r5, r4
+ lsls r2, 2
+ add r2, r10
+ ldrb r3, [r2, 0x1]
+ movs r1, 0x3F
+ adds r0, r1, 0
+ ands r0, r3
+ strb r0, [r2, 0x1]
+ ldrb r0, [r2, 0x3]
+ ands r1, r0
+ movs r0, 0x80
+ orrs r1, r0
+ strb r1, [r2, 0x3]
+_080F2B90:
+ lsls r1, r6, 2
+ add r1, r9
+ adds r0, r5, r4
+ lsls r0, 2
+ add r0, r12
+ str r0, [r1]
+_080F2B9C:
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ cmp r6, 0x1
+ bls _080F2ADA
+_080F2BA6:
+ add sp, 0x14
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F2BB8: .4byte gSprites
+ thumb_func_end sub_80F29B8
+
+ thumb_func_start sub_80F2BBC
+sub_80F2BBC: @ 80F2BBC
+ push {r4,lr}
+ adds r2, r0, 0
+ ldrh r0, [r2, 0x20]
+ ldrh r1, [r2, 0x2E]
+ adds r3, r0, r1
+ strh r3, [r2, 0x20]
+ lsls r0, 16
+ asrs r4, r0, 16
+ movs r0, 0x30
+ ldrsh r1, [r2, r0]
+ cmp r4, r1
+ bgt _080F2BE0
+ lsls r0, r3, 16
+ asrs r0, 16
+ cmp r0, r1
+ bge _080F2BE8
+ cmp r4, r1
+ blt _080F2C08
+_080F2BE0:
+ lsls r0, r3, 16
+ asrs r0, 16
+ cmp r0, r1
+ bgt _080F2C08
+_080F2BE8:
+ ldrh r0, [r2, 0x30]
+ strh r0, [r2, 0x20]
+ movs r1, 0x34
+ ldrsh r0, [r2, r1]
+ cmp r0, 0x4
+ bne _080F2C04
+ movs r1, 0x32
+ ldrsh r0, [r2, r1]
+ cmp r0, 0x1
+ bne _080F2C04
+ ldr r0, _080F2C00
+ b _080F2C06
+ .align 2, 0
+_080F2C00: .4byte sub_80F2C58
+_080F2C04:
+ ldr r0, _080F2C10
+_080F2C06:
+ str r0, [r2, 0x1C]
+_080F2C08:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F2C10: .4byte SpriteCallbackDummy
+ thumb_func_end sub_80F2BBC
+
+ thumb_func_start sub_80F2C14
+sub_80F2C14: @ 80F2C14
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x20]
+ ldrh r1, [r4, 0x2E]
+ subs r0, r1
+ strh r0, [r4, 0x20]
+ adds r0, 0x20
+ lsls r0, 16
+ movs r1, 0x98
+ lsls r1, 17
+ cmp r0, r1
+ bls _080F2C50
+ movs r1, 0x32
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ bne _080F2C4A
+ movs r1, 0x34
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x4
+ bgt _080F2C44
+ movs r0, 0x1
+ bl FreeSpriteTilesByTag
+ b _080F2C4A
+_080F2C44:
+ movs r0, 0x2
+ bl FreeSpriteTilesByTag
+_080F2C4A:
+ adds r0, r4, 0
+ bl DestroySprite
+_080F2C50:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80F2C14
+
+ thumb_func_start sub_80F2C58
+sub_80F2C58: @ 80F2C58
+ push {lr}
+ adds r2, r0, 0
+ ldr r0, _080F2C78
+ ldr r0, [r0]
+ ldr r1, _080F2C7C
+ adds r0, r1
+ ldrb r0, [r0]
+ movs r1, 0x2
+ cmp r0, 0
+ bne _080F2C6E
+ movs r1, 0x1
+_080F2C6E:
+ adds r0, r2, 0
+ bl StartSpriteAnim
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F2C78: .4byte gUnknown_083DFEC4
+_080F2C7C: .4byte 0x00006e90
+ thumb_func_end sub_80F2C58
+
+ thumb_func_start sub_80F2C80
+sub_80F2C80: @ 80F2C80
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _080F2CB0
+ ldr r0, [r0]
+ ldr r1, _080F2CB4
+ adds r2, r0, r1
+ movs r1, 0
+ strh r1, [r2]
+ ldr r1, _080F2CB8
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080F2CA8
+_080F2C9C:
+ adds r0, r4, 0
+ bl sub_80F2CBC
+ lsls r0, 24
+ cmp r0, 0
+ bne _080F2C9C
+_080F2CA8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F2CB0: .4byte gUnknown_083DFEC4
+_080F2CB4: .4byte 0x00000306
+_080F2CB8: .4byte 0x00006dac
+ thumb_func_end sub_80F2C80
+
+ thumb_func_start sub_80F2CBC
+sub_80F2CBC: @ 80F2CBC
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r1, r0, 24
+ ldr r0, _080F2CD8
+ ldr r0, [r0]
+ ldr r2, _080F2CDC
+ adds r4, r0, r2
+ ldrh r0, [r4]
+ cmp r0, 0
+ beq _080F2CE0
+ cmp r0, 0x1
+ beq _080F2CF0
+ b _080F2CFC
+ .align 2, 0
+_080F2CD8: .4byte gUnknown_083DFEC4
+_080F2CDC: .4byte 0x00000306
+_080F2CE0:
+ adds r0, r1, 0
+ bl sub_80F27DC
+ ldrh r0, [r4]
+ adds r0, 0x1
+ strh r0, [r4]
+ movs r0, 0x1
+ b _080F2CFE
+_080F2CF0:
+ adds r0, r1, 0
+ bl sub_80F29B8
+ ldrh r0, [r4]
+ adds r0, 0x1
+ strh r0, [r4]
+_080F2CFC:
+ movs r0, 0
+_080F2CFE:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80F2CBC
+
+ thumb_func_start sub_80F2D04
+sub_80F2D04: @ 80F2D04
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ bhi _080F2D3C
+ movs r1, 0
+ ldr r0, _080F2D30
+ ldr r0, [r0]
+ ldr r3, _080F2D34
+ adds r2, r0, r3
+ ldr r3, _080F2D38
+_080F2D1A:
+ lsls r0, r1, 2
+ adds r0, r2, r0
+ ldr r0, [r0]
+ str r3, [r0, 0x1C]
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0x1
+ bls _080F2D1A
+ b _080F2D5A
+ .align 2, 0
+_080F2D30: .4byte gUnknown_083DFEC4
+_080F2D34: .4byte 0x00003b88
+_080F2D38: .4byte sub_80F2C14
+_080F2D3C:
+ movs r1, 0
+ ldr r0, _080F2D60
+ ldr r0, [r0]
+ ldr r3, _080F2D64
+ adds r2, r0, r3
+ ldr r3, _080F2D68
+_080F2D48:
+ lsls r0, r1, 2
+ adds r0, r2, r0
+ ldr r0, [r0]
+ str r3, [r0, 0x1C]
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0x1
+ bls _080F2D48
+_080F2D5A:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F2D60: .4byte gUnknown_083DFEC4
+_080F2D64: .4byte 0x00003b90
+_080F2D68: .4byte sub_80F2C14
+ thumb_func_end sub_80F2D04
+
+ thumb_func_start sub_80F2D6C
+sub_80F2D6C: @ 80F2D6C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ bhi _080F2DA4
+ movs r0, 0x1
+ bl FreeSpriteTilesByTag
+ movs r4, 0
+ ldr r0, _080F2D9C
+ ldr r0, [r0]
+ ldr r1, _080F2DA0
+ adds r5, r0, r1
+_080F2D86:
+ lsls r0, r4, 2
+ adds r0, r5, r0
+ ldr r0, [r0]
+ bl DestroySprite
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x1
+ bls _080F2D86
+ b _080F2DC8
+ .align 2, 0
+_080F2D9C: .4byte gUnknown_083DFEC4
+_080F2DA0: .4byte 0x00003b88
+_080F2DA4:
+ movs r0, 0x2
+ bl FreeSpriteTilesByTag
+ movs r4, 0
+ ldr r0, _080F2DD0
+ ldr r0, [r0]
+ ldr r1, _080F2DD4
+ adds r5, r0, r1
+_080F2DB4:
+ lsls r0, r4, 2
+ adds r0, r5, r0
+ ldr r0, [r0]
+ bl DestroySprite
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x1
+ bls _080F2DB4
+_080F2DC8:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F2DD0: .4byte gUnknown_083DFEC4
+_080F2DD4: .4byte 0x00003b90
+ thumb_func_end sub_80F2D6C
+
+ thumb_func_start sub_80F2DD8
+sub_80F2DD8: @ 80F2DD8
+ push {lr}
+ movs r0, 0x7
+ movs r1, 0x7
+ bl sub_80FBB3C
+ movs r0, 0x8
+ movs r1, 0x8
+ bl sub_80FBCF0
+ bl sub_80FBF94
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80F2DD8
+
+ thumb_func_start sub_80F2DF4
+sub_80F2DF4: @ 80F2DF4
+ push {lr}
+ bl sub_80FAB10
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80F2DF4
+
+ thumb_func_start sub_80F2E00
+sub_80F2E00: @ 80F2E00
+ ldr r1, _080F2E10
+ ldr r1, [r1]
+ ldr r2, _080F2E14
+ adds r1, r2
+ ldrh r1, [r1]
+ adds r1, 0x26
+ strh r1, [r0, 0x20]
+ bx lr
+ .align 2, 0
+_080F2E10: .4byte gUnknown_083DFEC4
+_080F2E14: .4byte 0x00008766
+ thumb_func_end sub_80F2E00
+
+ thumb_func_start sub_80F2E18
+sub_80F2E18: @ 80F2E18
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x28
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldr r0, _080F2EA8
+ ldr r4, [r0]
+ ldr r0, _080F2EAC
+ adds r7, r4, r0
+ ldr r1, [r7]
+ mov r8, r1
+ cmp r1, 0
+ bne _080F2EFC
+ ldr r0, _080F2EB0
+ ldr r1, [r0, 0x4]
+ ldr r0, [r0]
+ str r0, [sp, 0x20]
+ str r1, [sp, 0x24]
+ mov r1, sp
+ ldr r0, _080F2EB4
+ ldm r0!, {r2,r5,r6}
+ stm r1!, {r2,r5,r6}
+ ldm r0!, {r2,r5,r6}
+ stm r1!, {r2,r5,r6}
+ ldr r0, _080F2EB8
+ ldr r1, [r0, 0x4]
+ ldr r0, [r0]
+ str r0, [sp, 0x18]
+ str r1, [sp, 0x1C]
+ lsls r0, r3, 13
+ ldr r1, _080F2EBC
+ adds r0, r1
+ adds r0, r4, r0
+ str r0, [sp, 0x20]
+ lsls r0, r3, 7
+ adds r0, r4, r0
+ str r0, [sp, 0x18]
+ add r0, sp, 0x18
+ bl LoadSpritePalette
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080F2EC0
+ adds r5, r4, r2
+ strh r0, [r5]
+ add r0, sp, 0x20
+ bl LoadSpriteSheet
+ ldr r1, _080F2EC4
+ adds r6, r4, r1
+ strh r0, [r6]
+ mov r0, sp
+ movs r1, 0x26
+ movs r2, 0x68
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x40
+ bne _080F2EC8
+ movs r0, 0x6
+ bl FreeSpriteTilesByTag
+ movs r0, 0x6
+ bl FreeSpritePaletteByTag
+ mov r2, r8
+ str r2, [r7]
+ b _080F2F26
+ .align 2, 0
+_080F2EA8: .4byte gUnknown_083DFEC4
+_080F2EAC: .4byte 0x00008768
+_080F2EB0: .4byte gUnknown_083E4568
+_080F2EB4: .4byte gSpriteTemplate_83E4570
+_080F2EB8: .4byte gUnknown_083E4588
+_080F2EBC: .4byte 0x0000d1e4
+_080F2EC0: .4byte 0x0000d1dc
+_080F2EC4: .4byte 0x0000d1de
+_080F2EC8:
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080F2EF0
+ adds r0, r1
+ str r0, [r7]
+ ldr r0, _080F2EF4
+ adds r1, r4, r0
+ ldrh r0, [r6]
+ lsls r0, 5
+ ldr r2, _080F2EF8
+ adds r0, r2
+ str r0, [r1]
+ ldrh r0, [r5]
+ lsls r0, 4
+ movs r6, 0x80
+ lsls r6, 1
+ adds r0, r6
+ strh r0, [r5]
+ b _080F2F26
+ .align 2, 0
+_080F2EF0: .4byte gSprites
+_080F2EF4: .4byte 0x0000d1e0
+_080F2EF8: .4byte 0x06010000
+_080F2EFC:
+ lsls r0, r3, 13
+ ldr r1, _080F2F34
+ adds r0, r1
+ adds r0, r4, r0
+ ldr r2, _080F2F38
+ adds r1, r4, r2
+ ldr r2, [r1]
+ ldr r1, _080F2F3C
+ str r0, [r1]
+ str r2, [r1, 0x4]
+ ldr r0, _080F2F40
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ lsls r0, r3, 7
+ adds r0, r4, r0
+ ldr r5, _080F2F44
+ adds r1, r4, r5
+ ldrh r1, [r1]
+ movs r2, 0x20
+ bl LoadPalette
+_080F2F26:
+ add sp, 0x28
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F2F34: .4byte 0x0000d1e4
+_080F2F38: .4byte 0x0000d1e0
+_080F2F3C: .4byte 0x040000d4
+_080F2F40: .4byte 0x80000400
+_080F2F44: .4byte 0x0000d1dc
+ thumb_func_end sub_80F2E18
+
+ thumb_func_start sub_80F2F48
+sub_80F2F48: @ 80F2F48
+ push {r4,lr}
+ ldr r0, _080F2F74
+ ldr r0, [r0]
+ ldr r1, _080F2F78
+ adds r4, r0, r1
+ ldr r0, [r4]
+ cmp r0, 0
+ beq _080F2F6C
+ bl DestroySprite
+ movs r0, 0x6
+ bl FreeSpriteTilesByTag
+ movs r0, 0x6
+ bl FreeSpritePaletteByTag
+ movs r0, 0
+ str r0, [r4]
+_080F2F6C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F2F74: .4byte gUnknown_083DFEC4
+_080F2F78: .4byte 0x00008768
+ thumb_func_end sub_80F2F48
+
+ thumb_func_start sub_80F2F7C
+sub_80F2F7C: @ 80F2F7C
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_80F2E18
+ ldr r0, _080F2FA0
+ ldr r0, [r0]
+ ldr r1, _080F2FA4
+ adds r2, r0, r1
+ ldr r1, _080F2FA8
+ adds r0, r1
+ ldr r1, [r0]
+ str r1, [r2]
+ ldr r0, _080F2FAC
+ str r0, [r1, 0x1C]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F2FA0: .4byte gUnknown_083DFEC4
+_080F2FA4: .4byte 0x0000ced0
+_080F2FA8: .4byte 0x00008768
+_080F2FAC: .4byte sub_80F2FEC
+ thumb_func_end sub_80F2F7C
+
+ thumb_func_start sub_80F2FB0
+sub_80F2FB0: @ 80F2FB0
+ push {r4,r5,lr}
+ ldr r0, _080F2FE0
+ ldr r5, [r0]
+ ldr r0, _080F2FE4
+ adds r4, r5, r0
+ ldr r0, [r4]
+ cmp r0, 0
+ beq _080F2FDA
+ bl DestroySprite
+ movs r0, 0x6
+ bl FreeSpriteTilesByTag
+ movs r0, 0x6
+ bl FreeSpritePaletteByTag
+ movs r1, 0
+ str r1, [r4]
+ ldr r2, _080F2FE8
+ adds r0, r5, r2
+ str r1, [r0]
+_080F2FDA:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F2FE0: .4byte gUnknown_083DFEC4
+_080F2FE4: .4byte 0x0000ced0
+_080F2FE8: .4byte 0x00008768
+ thumb_func_end sub_80F2FB0
+
+ thumb_func_start sub_80F2FEC
+sub_80F2FEC: @ 80F2FEC
+ ldr r1, _080F3000
+ ldr r1, [r1]
+ ldr r2, _080F3004
+ adds r1, r2
+ ldrh r1, [r1]
+ adds r1, 0x28
+ strh r1, [r0, 0x20]
+ movs r1, 0x68
+ strh r1, [r0, 0x22]
+ bx lr
+ .align 2, 0
+_080F3000: .4byte gUnknown_083DFEC4
+_080F3004: .4byte 0x0000d15a
+ thumb_func_end sub_80F2FEC
+
+ thumb_func_start sub_80F3008
+sub_80F3008: @ 80F3008
+ push {r4,r5,lr}
+ sub sp, 0x20
+ lsls r0, 24
+ lsrs r2, r0, 24
+ mov r1, sp
+ ldr r0, _080F3060
+ ldm r0!, {r3-r5}
+ stm r1!, {r3-r5}
+ ldm r0!, {r3-r5}
+ stm r1!, {r3-r5}
+ ldr r0, _080F3064
+ ldr r1, [r0, 0x4]
+ ldr r0, [r0]
+ str r0, [sp, 0x18]
+ str r1, [sp, 0x1C]
+ cmp r2, 0x2
+ bgt _080F3032
+ cmp r2, 0x1
+ blt _080F3032
+ ldr r0, _080F3068
+ str r0, [sp, 0x18]
+_080F3032:
+ mov r0, sp
+ bl LoadSpriteSheets
+ add r0, sp, 0x18
+ bl LoadSpritePalette
+ ldr r0, _080F306C
+ movs r1, 0x5F
+ movs r2, 0
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x40
+ bne _080F3078
+ ldr r0, _080F3070
+ ldr r0, [r0]
+ ldr r1, _080F3074
+ adds r0, r1
+ movs r1, 0
+ str r1, [r0]
+ b _080F3120
+ .align 2, 0
+_080F3060: .4byte gUnknown_083E4590
+_080F3064: .4byte gUnknown_083E45A8
+_080F3068: .4byte gUnknown_08E9F988
+_080F306C: .4byte gSpriteTemplate_83E45B8
+_080F3070: .4byte gUnknown_083DFEC4
+_080F3074: .4byte 0x000087cc
+_080F3078:
+ ldr r0, _080F30F4
+ ldr r2, [r0]
+ ldr r3, _080F30F8
+ adds r2, r3
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080F30FC
+ adds r0, r1
+ str r0, [r2]
+ movs r4, 0
+ movs r5, 0
+_080F3090:
+ lsls r2, r4, 7
+ adds r2, 0x8
+ lsls r2, 16
+ asrs r2, 16
+ ldr r0, _080F3100
+ movs r1, 0xA8
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x40
+ beq _080F3108
+ ldr r0, _080F30F4
+ ldr r2, [r0]
+ lsls r0, r4, 2
+ ldr r3, _080F3104
+ adds r2, r3
+ adds r2, r0
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080F30FC
+ adds r3, r0, r1
+ str r3, [r2]
+ adds r2, r3, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ strh r5, [r3, 0x2E]
+ strh r5, [r3, 0x30]
+ movs r0, 0x1
+ cmp r4, 0
+ bne _080F30DE
+ movs r1, 0x1
+ negs r1, r1
+ adds r0, r1, 0
+_080F30DE:
+ strh r0, [r3, 0x32]
+ strh r4, [r3, 0x34]
+ movs r0, 0x1
+ strh r0, [r3, 0x36]
+ lsls r1, r4, 24
+ lsrs r1, 24
+ adds r0, r3, 0
+ bl StartSpriteAnim
+ b _080F3116
+ .align 2, 0
+_080F30F4: .4byte gUnknown_083DFEC4
+_080F30F8: .4byte 0x000087cc
+_080F30FC: .4byte gSprites
+_080F3100: .4byte gSpriteTemplate_83E45F0
+_080F3104: .4byte 0x000087d0
+_080F3108:
+ ldr r0, _080F3128
+ ldr r0, [r0]
+ lsls r1, r4, 2
+ ldr r2, _080F312C
+ adds r0, r2
+ adds r0, r1
+ str r5, [r0]
+_080F3116:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x1
+ bls _080F3090
+_080F3120:
+ add sp, 0x20
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F3128: .4byte gUnknown_083DFEC4
+_080F312C: .4byte 0x000087d0
+ thumb_func_end sub_80F3008
+
+ thumb_func_start sub_80F3130
+sub_80F3130: @ 80F3130
+ push {r4-r6,lr}
+ ldr r0, _080F3184
+ ldr r6, [r0]
+ ldr r0, _080F3188
+ adds r4, r6, r0
+ ldr r0, [r4]
+ cmp r0, 0
+ beq _080F3154
+ bl DestroySprite
+ movs r0, 0x9
+ bl FreeSpriteTilesByTag
+ movs r0, 0x9
+ bl FreeSpritePaletteByTag
+ movs r0, 0
+ str r0, [r4]
+_080F3154:
+ movs r5, 0
+ ldr r0, _080F318C
+ adds r6, r0
+_080F315A:
+ lsls r0, r5, 2
+ adds r4, r6, r0
+ ldr r0, [r4]
+ cmp r0, 0
+ beq _080F316C
+ bl DestroySprite
+ movs r0, 0
+ str r0, [r4]
+_080F316C:
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x1
+ bls _080F315A
+ movs r0, 0xA
+ bl FreeSpriteTilesByTag
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F3184: .4byte gUnknown_083DFEC4
+_080F3188: .4byte 0x000087cc
+_080F318C: .4byte 0x000087d0
+ thumb_func_end sub_80F3130
+
+ thumb_func_start sub_80F3190
+sub_80F3190: @ 80F3190
+ ldr r1, _080F31A4
+ ldr r1, [r1]
+ ldr r2, _080F31A8
+ adds r1, r2
+ movs r2, 0
+ ldrsh r1, [r1, r2]
+ lsls r1, 4
+ adds r1, 0x10
+ strh r1, [r0, 0x22]
+ bx lr
+ .align 2, 0
+_080F31A4: .4byte gUnknown_083DFEC4
+_080F31A8: .4byte 0x0000876c
+ thumb_func_end sub_80F3190
+
+ thumb_func_start sub_80F31AC
+sub_80F31AC: @ 80F31AC
+ push {r4,r5,lr}
+ adds r3, r0, 0
+ ldr r0, _080F31E8
+ ldr r1, [r0]
+ ldr r2, _080F31EC
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080F325C
+ movs r4, 0x36
+ ldrsh r0, [r3, r4]
+ cmp r0, 0
+ beq _080F3226
+ movs r5, 0x34
+ ldrsh r0, [r3, r5]
+ cmp r0, 0
+ bne _080F31F4
+ movs r2, 0
+ ldr r4, _080F31F0
+ adds r0, r1, r4
+ movs r5, 0
+ ldrsh r0, [r0, r5]
+ cmp r0, 0
+ bne _080F31DE
+ movs r2, 0x1
+_080F31DE:
+ movs r0, 0x3E
+ adds r0, r3
+ mov r12, r0
+ lsls r2, 2
+ b _080F3214
+ .align 2, 0
+_080F31E8: .4byte gUnknown_083DFEC4
+_080F31EC: .4byte 0x000087c9
+_080F31F0: .4byte 0x00008770
+_080F31F4:
+ movs r4, 0
+ ldr r2, _080F3250
+ adds r0, r1, r2
+ ldr r5, _080F3254
+ adds r1, r5
+ movs r5, 0
+ ldrsh r2, [r0, r5]
+ movs r5, 0
+ ldrsh r0, [r1, r5]
+ cmp r2, r0
+ bne _080F320C
+ movs r4, 0x1
+_080F320C:
+ movs r0, 0x3E
+ adds r0, r3
+ mov r12, r0
+ lsls r2, r4, 2
+_080F3214:
+ ldrb r1, [r0]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ orrs r0, r2
+ mov r1, r12
+ strb r0, [r1]
+ movs r0, 0
+ strh r0, [r3, 0x36]
+_080F3226:
+ ldrh r0, [r3, 0x2E]
+ adds r0, 0x1
+ movs r1, 0
+ strh r0, [r3, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ ble _080F325C
+ strh r1, [r3, 0x2E]
+ ldrh r0, [r3, 0x30]
+ adds r0, 0x1
+ strh r0, [r3, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ bgt _080F3258
+ ldrh r0, [r3, 0x32]
+ ldrh r2, [r3, 0x26]
+ adds r0, r2
+ strh r0, [r3, 0x26]
+ b _080F325C
+ .align 2, 0
+_080F3250: .4byte 0x00008772
+_080F3254: .4byte 0x00008774
+_080F3258:
+ strh r1, [r3, 0x30]
+ strh r1, [r3, 0x26]
+_080F325C:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80F31AC
+
+ thumb_func_start sub_80F3264
+sub_80F3264: @ 80F3264
+ push {lr}
+ movs r1, 0
+ ldr r0, _080F328C
+ ldr r0, [r0]
+ ldr r3, _080F3290
+ adds r2, r0, r3
+ movs r3, 0x1
+_080F3272:
+ lsls r0, r1, 2
+ adds r0, r2, r0
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _080F327E
+ strh r3, [r0, 0x36]
+_080F327E:
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0x1
+ bls _080F3272
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F328C: .4byte gUnknown_083DFEC4
+_080F3290: .4byte 0x000087d0
+ thumb_func_end sub_80F3264
+
+ thumb_func_start sub_80F3294
+sub_80F3294: @ 80F3294
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r0, _080F32F4
+ ldr r4, [r0]
+ ldr r1, _080F32F8
+ adds r0, r4, r1
+ ldr r2, [r0]
+ adds r2, 0x3E
+ movs r0, 0x1
+ adds r1, r6, 0
+ ands r1, r0
+ lsls r1, 2
+ ldrb r3, [r2]
+ movs r5, 0x5
+ negs r5, r5
+ adds r0, r5, 0
+ ands r0, r3
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r2, _080F32FC
+ adds r0, r4, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080F331A
+ cmp r6, 0x1
+ bne _080F3308
+ ldr r1, _080F3300
+ adds r0, r4, r1
+ ldr r1, [r0]
+ adds r1, 0x3E
+ ldrb r2, [r1]
+ adds r0, r5, 0
+ ands r0, r2
+ movs r3, 0x4
+ orrs r0, r3
+ strb r0, [r1]
+ ldr r2, _080F3304
+ adds r0, r4, r2
+ ldr r1, [r0]
+ adds r1, 0x3E
+ ldrb r2, [r1]
+ adds r0, r5, 0
+ ands r0, r2
+ orrs r0, r3
+ strb r0, [r1]
+ b _080F331A
+ .align 2, 0
+_080F32F4: .4byte gUnknown_083DFEC4
+_080F32F8: .4byte 0x000087cc
+_080F32FC: .4byte 0x000087c9
+_080F3300: .4byte 0x000087d0
+_080F3304: .4byte 0x000087d4
+_080F3308:
+ ldr r1, _080F3320
+ adds r0, r4, r1
+ ldr r0, [r0]
+ movs r1, 0x1
+ strh r1, [r0, 0x36]
+ ldr r2, _080F3324
+ adds r0, r4, r2
+ ldr r0, [r0]
+ strh r1, [r0, 0x36]
+_080F331A:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F3320: .4byte 0x000087d0
+_080F3324: .4byte 0x000087d4
+ thumb_func_end sub_80F3294
+
+ thumb_func_start sub_80F3328
+sub_80F3328: @ 80F3328
+ push {lr}
+ adds r2, r0, 0
+ ldr r0, _080F334C
+ ldr r0, [r0]
+ ldr r1, _080F3350
+ adds r0, r1
+ movs r3, 0x2E
+ ldrsh r1, [r2, r3]
+ movs r3, 0
+ ldrsh r0, [r0, r3]
+ cmp r1, r0
+ bne _080F3354
+ adds r0, r2, 0
+ movs r1, 0
+ bl StartSpriteAnim
+ b _080F335C
+ .align 2, 0
+_080F334C: .4byte gUnknown_083DFEC4
+_080F3350: .4byte 0x000087dc
+_080F3354:
+ adds r0, r2, 0
+ movs r1, 0x1
+ bl StartSpriteAnim
+_080F335C:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80F3328
+
+ thumb_func_start sub_80F3360
+sub_80F3360: @ 80F3360
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _080F3384
+ ldr r0, [r0]
+ ldr r2, _080F3388
+ adds r1, r0, r2
+ movs r2, 0
+ ldrsh r1, [r1, r2]
+ ldr r2, _080F338C
+ adds r0, r2
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ subs r0, 0x1
+ cmp r1, r0
+ bne _080F3390
+ movs r0, 0x4
+ b _080F3392
+ .align 2, 0
+_080F3384: .4byte gUnknown_083DFEC4
+_080F3388: .4byte 0x000087dc
+_080F338C: .4byte 0x000087da
+_080F3390:
+ movs r0, 0x5
+_080F3392:
+ bl IndexOfSpritePaletteTag
+ lsls r0, 4
+ ldrb r2, [r4, 0x5]
+ movs r1, 0xF
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r4, 0x5]
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80F3360
+
+ thumb_func_start sub_80F33A8
+sub_80F33A8: @ 80F33A8
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x50
+ mov r1, sp
+ ldr r0, _080F3440
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ ldm r0!, {r2,r5,r6}
+ stm r1!, {r2,r5,r6}
+ ldm r0!, {r3,r4}
+ stm r1!, {r3,r4}
+ add r4, sp, 0x20
+ adds r1, r4, 0
+ ldr r0, _080F3444
+ ldm r0!, {r2,r5,r6}
+ stm r1!, {r2,r5,r6}
+ ldm r0!, {r3,r5,r6}
+ stm r1!, {r3,r5,r6}
+ add r5, sp, 0x38
+ adds r1, r5, 0
+ ldr r0, _080F3448
+ ldm r0!, {r2,r3,r6}
+ stm r1!, {r2,r3,r6}
+ ldm r0!, {r2,r3,r6}
+ stm r1!, {r2,r3,r6}
+ mov r0, sp
+ bl LoadSpriteSheets
+ adds r0, r4, 0
+ bl LoadSpritePalettes
+ movs r6, 0
+ ldr r2, _080F344C
+ ldr r1, [r2]
+ ldr r3, _080F3450
+ adds r0, r1, r3
+ movs r4, 0
+ ldrsh r0, [r0, r4]
+ subs r0, 0x1
+ adds r7, r5, 0
+ cmp r6, r0
+ bge _080F347A
+ adds r5, r2, 0
+ adds r0, r3, 0
+ adds r0, r1
+ mov r8, r0
+_080F3406:
+ lsls r4, r6, 2
+ adds r2, r4, r6
+ 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 _080F345C
+ ldr r0, [r5]
+ ldr r2, _080F3454
+ adds r0, r2
+ adds r0, r4
+ lsls r1, r3, 4
+ adds r1, r3
+ lsls r1, 2
+ ldr r2, _080F3458
+ adds r1, r2
+ str r1, [r0]
+ strh r6, [r1, 0x2E]
+ b _080F3468
+ .align 2, 0
+_080F3440: .4byte gUnknown_083E4628
+_080F3444: .4byte gUnknown_083E4648
+_080F3448: .4byte gSpriteTemplate_83E4660
+_080F344C: .4byte gUnknown_083DFEC4
+_080F3450: .4byte 0x000087da
+_080F3454: .4byte 0x000087e4
+_080F3458: .4byte gSprites
+_080F345C:
+ ldr r0, [r5]
+ ldr r3, _080F34C8
+ adds r0, r3
+ adds r0, r4
+ movs r1, 0
+ str r1, [r0]
+_080F3468:
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ mov r4, r8
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ subs r0, 0x1
+ cmp r6, r0
+ blt _080F3406
+_080F347A:
+ movs r0, 0x4
+ strh r0, [r7]
+ ldr r0, _080F34CC
+ str r0, [r7, 0x14]
+ cmp r6, 0x5
+ bhi _080F34EE
+ ldr r5, _080F34D0
+_080F3488:
+ lsls r4, r6, 2
+ adds r2, r4, r6
+ 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 _080F34D8
+ ldr r2, [r5]
+ ldr r0, _080F34C8
+ adds r2, r0
+ adds r2, r4
+ lsls r1, r3, 4
+ adds r1, r3
+ lsls r1, 2
+ ldr r0, _080F34D4
+ adds r1, r0
+ str r1, [r2]
+ ldrb r2, [r1, 0x3]
+ movs r0, 0x3F
+ ands r0, r2
+ strb r0, [r1, 0x3]
+ b _080F34E4
+ .align 2, 0
+_080F34C8: .4byte 0x000087e4
+_080F34CC: .4byte SpriteCallbackDummy
+_080F34D0: .4byte gUnknown_083DFEC4
+_080F34D4: .4byte gSprites
+_080F34D8:
+ ldr r0, [r5]
+ ldr r1, _080F3548
+ adds r0, r1
+ adds r0, r4
+ movs r1, 0
+ str r1, [r0]
+_080F34E4:
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ cmp r6, 0x5
+ bls _080F3488
+_080F34EE:
+ movs r0, 0x5
+ strh r0, [r7]
+ ldr r0, _080F354C
+ str r0, [r7, 0x14]
+ lsls r5, r6, 2
+ adds r2, r5, r6
+ lsls r2, 18
+ movs r3, 0x80
+ lsls r3, 12
+ adds r2, r3
+ 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 _080F3558
+ ldr r0, _080F3550
+ ldr r4, [r0]
+ ldr r6, _080F3548
+ adds r4, r6
+ adds r4, r5
+ lsls r1, r3, 4
+ adds r1, r3
+ lsls r1, 2
+ ldr r0, _080F3554
+ adds r1, r0
+ str r1, [r4]
+ ldrb r3, [r1, 0x1]
+ movs r2, 0x3F
+ adds r0, r2, 0
+ ands r0, r3
+ movs r3, 0x40
+ orrs r0, r3
+ strb r0, [r1, 0x1]
+ ldr r1, [r4]
+ ldrb r0, [r1, 0x3]
+ ands r2, r0
+ movs r0, 0x80
+ orrs r2, r0
+ strb r2, [r1, 0x3]
+ b _080F3566
+ .align 2, 0
+_080F3548: .4byte 0x000087e4
+_080F354C: .4byte sub_80F3360
+_080F3550: .4byte gUnknown_083DFEC4
+_080F3554: .4byte gSprites
+_080F3558:
+ ldr r0, _080F3574
+ ldr r0, [r0]
+ ldr r1, _080F3578
+ adds r0, r1
+ adds r0, r5
+ movs r1, 0
+ str r1, [r0]
+_080F3566:
+ add sp, 0x50
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F3574: .4byte gUnknown_083DFEC4
+_080F3578: .4byte 0x000087e4
+ thumb_func_end sub_80F33A8
+
+ thumb_func_start sub_80F357C
+sub_80F357C: @ 80F357C
+ push {r4-r6,lr}
+ movs r5, 0
+ ldr r0, _080F35AC
+ ldr r0, [r0]
+ ldr r1, _080F35B0
+ adds r6, r0, r1
+_080F3588:
+ lsls r0, r5, 2
+ adds r4, r6, r0
+ ldr r0, [r4]
+ cmp r0, 0
+ beq _080F359A
+ bl DestroySprite
+ movs r0, 0
+ str r0, [r4]
+_080F359A:
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x6
+ bls _080F3588
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F35AC: .4byte gUnknown_083DFEC4
+_080F35B0: .4byte 0x000087e4
+ thumb_func_end sub_80F357C
+
+ thumb_func_start sub_80F35B4
+sub_80F35B4: @ 80F35B4
+ push {r4,lr}
+ ldr r0, _080F35FC
+ ldr r4, [r0]
+ ldr r1, _080F3600
+ adds r0, r4, r1
+ movs r1, 0x1C
+ strh r1, [r0]
+ ldr r1, _080F3604
+ adds r2, r4, r1
+ movs r1, 0x13
+ strh r1, [r2]
+ bl sub_80F727C
+ bl sub_80F7404
+ ldr r2, _080F3608
+ movs r0, 0x1B
+ movs r1, 0x15
+ bl sub_80F7920
+ 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, _080F360C
+ str r1, [r0, 0x1C]
+ ldr r1, _080F3610
+ adds r4, r1
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F35FC: .4byte gUnknown_083DFEC4
+_080F3600: .4byte 0x000076b0
+_080F3604: .4byte 0x000076b2
+_080F3608: .4byte gUnknown_083E4678
+_080F360C: .4byte sub_80F363C
+_080F3610: .4byte 0x000076ac
+ thumb_func_end sub_80F35B4
+
+ thumb_func_start sub_80F3614
+sub_80F3614: @ 80F3614
+ push {lr}
+ ldr r0, _080F3634
+ ldr r0, [r0]
+ ldr r1, _080F3638
+ adds r0, r1
+ ldr r0, [r0]
+ bl DestroySprite
+ movs r0, 0x1B
+ bl FreeSpriteTilesByTag
+ movs r0, 0x15
+ bl FreeSpritePaletteByTag
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F3634: .4byte gUnknown_083DFEC4
+_080F3638: .4byte 0x000076ac
+ thumb_func_end sub_80F3614
+
+ thumb_func_start sub_80F363C
+sub_80F363C: @ 80F363C
+ push {lr}
+ ldr r1, _080F365C
+ ldr r1, [r1]
+ ldr r3, _080F3660
+ adds r2, r1, r3
+ ldrb r2, [r2]
+ lsls r2, 24
+ asrs r2, 24
+ ldr r3, _080F3664
+ adds r1, r3
+ adds r1, r2
+ ldrb r1, [r1]
+ bl StartSpriteAnim
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F365C: .4byte gUnknown_083DFEC4
+_080F3660: .4byte 0x00008fe9
+_080F3664: .4byte 0x00008934
+ thumb_func_end sub_80F363C
+
+ thumb_func_start sub_80F3668
+sub_80F3668: @ 80F3668
+ push {lr}
+ ldr r0, _080F368C
+ ldr r0, [r0]
+ ldr r2, _080F3690
+ adds r1, r0, r2
+ ldrb r1, [r1]
+ lsls r1, 24
+ asrs r1, 24
+ ldr r2, _080F3694
+ adds r0, r2
+ adds r0, r1
+ ldrb r0, [r0]
+ movs r1, 0xB0
+ movs r2, 0x20
+ bl sub_80F7418
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F368C: .4byte gUnknown_083DFEC4
+_080F3690: .4byte 0x00008fe9
+_080F3694: .4byte 0x00008934
+ thumb_func_end sub_80F3668
+
+ thumb_func_start sub_80F3698
+sub_80F3698: @ 80F3698
+ push {r4,lr}
+ ldr r0, _080F36DC
+ ldr r3, [r0]
+ ldr r1, _080F36E0
+ adds r0, r3, r1
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ lsls r1, 2
+ ldr r4, _080F36E4
+ adds r1, r4
+ adds r1, r3, r1
+ ldr r2, _080F36E8
+ adds r0, r3, r2
+ movs r2, 0
+ ldrsb r2, [r0, r2]
+ subs r4, 0x8
+ adds r0, r3, r4
+ adds r0, r2
+ ldr r2, _080F36EC
+ adds r3, r2
+ ldrb r2, [r3]
+ strb r2, [r0]
+ ldrb r0, [r1, 0x1]
+ ldr r1, [r1]
+ lsls r1, 11
+ lsrs r1, 27
+ ldrb r2, [r3]
+ bl sub_80F4548
+ bl sub_80F7470
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F36DC: .4byte gUnknown_083DFEC4
+_080F36E0: .4byte 0x000087dc
+_080F36E4: .4byte 0x0000893c
+_080F36E8: .4byte 0x00008fe9
+_080F36EC: .4byte 0x000076b4
+ thumb_func_end sub_80F3698
+
+ thumb_func_start sub_80F36F0
+sub_80F36F0: @ 80F36F0
+ push {lr}
+ ldr r0, _080F3718
+ ldr r0, [r0]
+ ldr r1, _080F371C
+ adds r2, r0, r1
+ movs r1, 0
+ strh r1, [r2]
+ ldr r1, _080F3720
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080F3712
+_080F3708:
+ bl sub_80F3724
+ lsls r0, 24
+ cmp r0, 0
+ bne _080F3708
+_080F3712:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F3718: .4byte gUnknown_083DFEC4
+_080F371C: .4byte 0x00000306
+_080F3720: .4byte 0x00006dac
+ thumb_func_end sub_80F36F0
+
+ thumb_func_start sub_80F3724
+sub_80F3724: @ 80F3724
+ push {r4,lr}
+ ldr r0, _080F3740
+ ldr r1, [r0]
+ ldr r0, _080F3744
+ adds r4, r1, r0
+ ldrh r0, [r4]
+ cmp r0, 0x1
+ beq _080F3764
+ cmp r0, 0x1
+ bgt _080F3748
+ cmp r0, 0
+ beq _080F374E
+ b _080F377A
+ .align 2, 0
+_080F3740: .4byte gUnknown_083DFEC4
+_080F3744: .4byte 0x00000306
+_080F3748:
+ cmp r0, 0x2
+ beq _080F376E
+ b _080F377A
+_080F374E:
+ ldr r0, _080F375C
+ ldr r2, _080F3760
+ adds r1, r2
+ bl LZ77UnCompWram
+ b _080F377E
+ .align 2, 0
+_080F375C: .4byte gUnknown_083E3D00
+_080F3760: .4byte 0x0000984c
+_080F3764:
+ bl sub_80F379C
+ ldrh r0, [r4]
+ adds r0, 0x1
+ strh r0, [r4]
+_080F376E:
+ bl sub_80F37D0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080F377E
+ b _080F378C
+_080F377A:
+ movs r0, 0
+ b _080F378E
+_080F377E:
+ ldr r0, _080F3794
+ ldr r1, [r0]
+ ldr r0, _080F3798
+ adds r1, r0
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_080F378C:
+ movs r0, 0x1
+_080F378E:
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080F3794: .4byte gUnknown_083DFEC4
+_080F3798: .4byte 0x00000306
+ thumb_func_end sub_80F3724
+
+ thumb_func_start sub_80F379C
+sub_80F379C: @ 80F379C
+ push {lr}
+ ldr r0, _080F37C4
+ ldr r0, [r0]
+ ldr r1, _080F37C8
+ adds r2, r0, r1
+ movs r1, 0
+ strb r1, [r2]
+ ldr r1, _080F37CC
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080F37BE
+_080F37B4:
+ bl sub_80F37D0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080F37B4
+_080F37BE:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F37C4: .4byte gUnknown_083DFEC4
+_080F37C8: .4byte 0x0000bc93
+_080F37CC: .4byte 0x00006dac
+ thumb_func_end sub_80F379C
+
+ thumb_func_start sub_80F37D0
+sub_80F37D0: @ 80F37D0
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ ldr r0, _080F3898
+ ldr r1, [r0]
+ ldr r2, _080F389C
+ adds r1, r2
+ ldrb r1, [r1]
+ adds r2, r0, 0
+ cmp r1, 0xB
+ bhi _080F38A8
+ movs r3, 0
+ mov r8, r3
+ movs r7, 0xF
+ mov r9, r7
+_080F37F0:
+ ldr r2, [r2]
+ ldr r1, _080F389C
+ adds r0, r2, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 8
+ ldr r3, _080F38A0
+ adds r0, r3
+ adds r4, r2, r0
+ lsls r1, 9
+ ldr r7, _080F38A4
+ adds r1, r7
+ adds r5, r2, r1
+ movs r6, 0
+_080F380A:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r2, 0x10
+ bl CpuFastSet
+ adds r5, 0x40
+ adds r4, 0x20
+ movs r1, 0
+ adds r6, 0x1
+ mov r12, r6
+_080F381E:
+ movs r0, 0
+ adds r6, r1, 0x1
+_080F3822:
+ adds r4, 0x4
+ movs r2, 0
+ adds r3, r0, 0x1
+_080F3828:
+ subs r4, 0x1
+ ldrb r0, [r4]
+ lsls r1, r0, 4
+ lsrs r0, 4
+ mov r7, r9
+ ands r0, r7
+ orrs r1, r0
+ strb r1, [r5]
+ adds r5, 0x1
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x3
+ bls _080F3828
+ adds r4, 0x4
+ lsls r0, r3, 24
+ lsrs r0, 24
+ cmp r0, 0x7
+ bls _080F3822
+ subs r4, 0x40
+ lsls r0, r6, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x1
+ bls _080F381E
+ adds r4, 0x60
+ mov r1, r12
+ lsls r0, r1, 24
+ lsrs r6, r0, 24
+ cmp r6, 0x3
+ bls _080F380A
+ ldr r2, _080F3898
+ ldr r3, [r2]
+ ldr r7, _080F389C
+ adds r1, r3, r7
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xB
+ bhi _080F38A8
+ mov r0, r8
+ adds r0, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ cmp r0, 0x1
+ bls _080F37F0
+ adds r1, r7, 0
+ adds r0, r3, r1
+ ldrb r0, [r0]
+ cmp r0, 0xB
+ bhi _080F38A8
+ movs r0, 0x1
+ b _080F38AA
+ .align 2, 0
+_080F3898: .4byte gUnknown_083DFEC4
+_080F389C: .4byte 0x0000bc93
+_080F38A0: .4byte 0x0000984c
+_080F38A4: .4byte 0x0000a44c
+_080F38A8:
+ movs r0, 0
+_080F38AA:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80F37D0
+
+ thumb_func_start sub_80F38B8
+sub_80F38B8: @ 80F38B8
+ push {lr}
+ ldr r0, _080F38E0
+ ldr r0, [r0]
+ ldr r1, _080F38E4
+ adds r2, r0, r1
+ movs r1, 0
+ strh r1, [r2]
+ ldr r1, _080F38E8
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080F38DA
+_080F38D0:
+ bl sub_80F38EC
+ lsls r0, 24
+ cmp r0, 0
+ bne _080F38D0
+_080F38DA:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F38E0: .4byte gUnknown_083DFEC4
+_080F38E4: .4byte 0x00000306
+_080F38E8: .4byte 0x00006dac
+ thumb_func_end sub_80F38B8
+
+ thumb_func_start sub_80F38EC
+sub_80F38EC: @ 80F38EC
+ push {r4,lr}
+ ldr r0, _080F3908
+ ldr r2, [r0]
+ ldr r0, _080F390C
+ adds r4, r2, r0
+ ldrh r1, [r4]
+ cmp r1, 0x1
+ beq _080F3930
+ cmp r1, 0x1
+ bgt _080F3910
+ cmp r1, 0
+ beq _080F391A
+ b _080F394E
+ .align 2, 0
+_080F3908: .4byte gUnknown_083DFEC4
+_080F390C: .4byte 0x00000306
+_080F3910:
+ cmp r1, 0x2
+ beq _080F3938
+ cmp r1, 0x3
+ beq _080F3942
+ b _080F394E
+_080F391A:
+ ldr r3, _080F3928
+ adds r0, r2, r3
+ str r1, [r0]
+ ldr r3, _080F392C
+ adds r0, r2, r3
+ strb r1, [r0]
+ b _080F3952
+ .align 2, 0
+_080F3928: .4byte 0x00009348
+_080F392C: .4byte 0x0000bc92
+_080F3930:
+ movs r0, 0
+ bl sub_80F2E18
+ b _080F3952
+_080F3938:
+ bl sub_80F3970
+ ldrh r0, [r4]
+ adds r0, 0x1
+ strh r0, [r4]
+_080F3942:
+ bl sub_80F39A4
+ lsls r0, 24
+ cmp r0, 0
+ beq _080F3952
+ b _080F3960
+_080F394E:
+ movs r0, 0
+ b _080F3962
+_080F3952:
+ ldr r0, _080F3968
+ ldr r1, [r0]
+ ldr r0, _080F396C
+ adds r1, r0
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_080F3960:
+ movs r0, 0x1
+_080F3962:
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080F3968: .4byte gUnknown_083DFEC4
+_080F396C: .4byte 0x00000306
+ thumb_func_end sub_80F38EC
+
+ thumb_func_start sub_80F3970
+sub_80F3970: @ 80F3970
+ push {lr}
+ ldr r0, _080F3998
+ ldr r0, [r0]
+ ldr r1, _080F399C
+ adds r2, r0, r1
+ movs r1, 0
+ strb r1, [r2]
+ ldr r1, _080F39A0
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080F3992
+_080F3988:
+ bl sub_80F39A4
+ lsls r0, 24
+ cmp r0, 0
+ bne _080F3988
+_080F3992:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F3998: .4byte gUnknown_083DFEC4
+_080F399C: .4byte 0x0000bc93
+_080F39A0: .4byte 0x00006dac
+ thumb_func_end sub_80F3970
+
+ thumb_func_start sub_80F39A4
+sub_80F39A4: @ 80F39A4
+ push {r4,r5,lr}
+ sub sp, 0x10
+ ldr r0, _080F3A18
+ ldr r1, [r0]
+ ldr r0, _080F3A1C
+ adds r4, r1, r0
+ ldrb r0, [r4]
+ cmp r0, 0xB
+ bhi _080F3A30
+ ldrb r0, [r4]
+ lsls r0, 9
+ ldr r2, _080F3A20
+ adds r0, r2
+ adds r0, r1, r0
+ str r0, [sp]
+ ldr r5, _080F3A24
+ ldr r2, [sp, 0x4]
+ ands r2, r5
+ movs r0, 0x80
+ lsls r0, 2
+ orrs r2, r0
+ str r2, [sp, 0x4]
+ ldrb r1, [r4]
+ adds r1, 0xB
+ lsls r1, 16
+ ldr r0, _080F3A28
+ ands r0, r2
+ orrs r0, r1
+ str r0, [sp, 0x4]
+ mov r0, sp
+ bl LoadSpriteSheet
+ ldrb r0, [r4]
+ cmp r0, 0x4
+ bhi _080F3A04
+ lsls r0, 5
+ ldr r1, _080F3A2C
+ adds r0, r1
+ str r0, [sp, 0x8]
+ ldrb r2, [r4]
+ adds r2, 0xA
+ add r0, sp, 0x8
+ ldr r1, [r0, 0x4]
+ ands r1, r5
+ orrs r1, r2
+ str r1, [r0, 0x4]
+ bl LoadSpritePalette
+_080F3A04:
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xB
+ bhi _080F3A30
+ movs r0, 0x1
+ b _080F3A32
+ .align 2, 0
+_080F3A18: .4byte gUnknown_083DFEC4
+_080F3A1C: .4byte 0x0000bc93
+_080F3A20: .4byte 0x0000a44c
+_080F3A24: .4byte 0xffff0000
+_080F3A28: .4byte 0x0000ffff
+_080F3A2C: .4byte gUnknown_083E3C60
+_080F3A30:
+ movs r0, 0
+_080F3A32:
+ add sp, 0x10
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80F39A4
+
+ thumb_func_start sub_80F3A3C
+sub_80F3A3C: @ 80F3A3C
+ push {r4-r7,lr}
+ sub sp, 0x18
+ lsls r0, 16
+ lsrs r5, r0, 16
+ lsls r1, 16
+ lsrs r4, r1, 16
+ cmp r4, 0x2
+ bhi _080F3A60
+ lsls r0, r4, 3
+ adds r0, r4
+ adds r0, r5, r0
+ lsls r0, 16
+ lsrs r1, r0, 16
+ ldr r2, _080F3A5C
+ b _080F3A78
+ .align 2, 0
+_080F3A5C: .4byte gUnknown_083DFEC4
+_080F3A60:
+ ldr r2, _080F3AD0
+ ldr r1, [r2]
+ ldr r3, _080F3AD4
+ adds r0, r1, r3
+ ldrb r0, [r0]
+ ldr r6, _080F3AD8
+ adds r1, r6
+ ldrb r1, [r1]
+ subs r0, r1
+ adds r0, r5, r0
+ lsls r0, 16
+ lsrs r1, r0, 16
+_080F3A78:
+ ldr r0, [r2]
+ ldr r7, _080F3ADC
+ adds r0, r7
+ adds r0, r1
+ ldrb r2, [r0]
+ mov r1, sp
+ ldr r0, _080F3AE0
+ ldm r0!, {r3,r6,r7}
+ stm r1!, {r3,r6,r7}
+ ldm r0!, {r3,r6,r7}
+ stm r1!, {r3,r6,r7}
+ mov r3, sp
+ ldr r1, _080F3AE4
+ lsls r2, 2
+ adds r0, r2, r1
+ ldrh r0, [r0]
+ adds r0, 0xB
+ strh r0, [r3]
+ adds r1, 0x2
+ adds r2, r1
+ ldrh r0, [r2]
+ adds r0, 0xA
+ strh r0, [r3, 0x2]
+ lsls r1, r5, 20
+ movs r0, 0xC0
+ lsls r0, 15
+ adds r1, r0
+ asrs r1, 16
+ lsls r2, r4, 20
+ movs r3, 0xA0
+ lsls r3, 14
+ adds r2, r3
+ asrs r2, 16
+ mov r0, sp
+ movs r3, 0x2
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x40
+ bne _080F3AE8
+ movs r0, 0
+ b _080F3AF2
+ .align 2, 0
+_080F3AD0: .4byte gUnknown_083DFEC4
+_080F3AD4: .4byte 0x0000bc8e
+_080F3AD8: .4byte 0x0000bc8f
+_080F3ADC: .4byte 0x0000bc4c
+_080F3AE0: .4byte gSpriteTemplate_83E476C
+_080F3AE4: .4byte gUnknown_083E4698
+_080F3AE8:
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080F3AFC
+ adds r0, r1
+_080F3AF2:
+ add sp, 0x18
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080F3AFC: .4byte gSprites
+ thumb_func_end sub_80F3A3C
+
+ thumb_func_start sub_80F3B00
+sub_80F3B00: @ 80F3B00
+ push {r4,lr}
+ ldr r0, _080F3B34
+ ldr r4, [r0]
+ ldr r1, _080F3B38
+ adds r0, r4, r1
+ ldrb r0, [r0]
+ ldr r2, _080F3B3C
+ adds r1, r4, r2
+ ldrb r1, [r1]
+ bl sub_80F3A3C
+ adds r2, r0, 0
+ ldr r1, _080F3B40
+ adds r0, r4, r1
+ str r2, [r0]
+ cmp r2, 0
+ beq _080F3B48
+ adds r0, r2, 0
+ movs r1, 0x1
+ bl StartSpriteAffineAnim
+ ldr r2, _080F3B44
+ adds r1, r4, r2
+ movs r0, 0x1
+ strb r0, [r1]
+ b _080F3B4E
+ .align 2, 0
+_080F3B34: .4byte gUnknown_083DFEC4
+_080F3B38: .4byte 0x0000bc90
+_080F3B3C: .4byte 0x0000bc91
+_080F3B40: .4byte 0x00009348
+_080F3B44: .4byte 0x0000bc92
+_080F3B48:
+ ldr r1, _080F3B54
+ adds r0, r4, r1
+ strb r2, [r0]
+_080F3B4E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F3B54: .4byte 0x0000bc92
+ thumb_func_end sub_80F3B00
+
+ thumb_func_start sub_80F3B58
+sub_80F3B58: @ 80F3B58
+ push {lr}
+ ldr r0, _080F3B6C
+ ldr r1, [r0]
+ ldr r0, _080F3B70
+ adds r2, r1, r0
+ ldrb r0, [r2]
+ cmp r0, 0
+ bne _080F3B74
+ movs r0, 0
+ b _080F3B8A
+ .align 2, 0
+_080F3B6C: .4byte gUnknown_083DFEC4
+_080F3B70: .4byte 0x0000bc92
+_080F3B74:
+ ldr r3, _080F3B90
+ adds r0, r1, r3
+ ldr r0, [r0]
+ adds r0, 0x3F
+ ldrb r0, [r0]
+ lsrs r0, 5
+ movs r1, 0x1
+ eors r0, r1
+ ands r0, r1
+ strb r0, [r2]
+ ldrb r0, [r2]
+_080F3B8A:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080F3B90: .4byte 0x00009348
+ thumb_func_end sub_80F3B58
+
+ thumb_func_start sub_80F3B94
+sub_80F3B94: @ 80F3B94
+ push {r4,lr}
+ ldr r0, _080F3BB8
+ ldr r4, [r0]
+ ldr r1, _080F3BBC
+ adds r0, r4, r1
+ ldr r2, [r0]
+ cmp r2, 0
+ beq _080F3BC4
+ adds r0, r2, 0
+ movs r1, 0x2
+ bl StartSpriteAffineAnim
+ ldr r0, _080F3BC0
+ adds r1, r4, r0
+ movs r0, 0x1
+ strb r0, [r1]
+ b _080F3BCA
+ .align 2, 0
+_080F3BB8: .4byte gUnknown_083DFEC4
+_080F3BBC: .4byte 0x00009348
+_080F3BC0: .4byte 0x0000bc92
+_080F3BC4:
+ ldr r1, _080F3BD0
+ adds r0, r4, r1
+ strb r2, [r0]
+_080F3BCA:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F3BD0: .4byte 0x0000bc92
+ thumb_func_end sub_80F3B94
+
+ thumb_func_start sub_80F3BD4
+sub_80F3BD4: @ 80F3BD4
+ push {r4-r6,lr}
+ ldr r0, _080F3C18
+ ldr r1, [r0]
+ ldr r0, _080F3C1C
+ adds r5, r1, r0
+ ldrb r0, [r5]
+ cmp r0, 0
+ beq _080F3C24
+ ldr r0, _080F3C20
+ adds r4, r1, r0
+ ldr r0, [r4]
+ adds r0, 0x3F
+ ldrb r0, [r0]
+ lsrs r0, 5
+ movs r1, 0x1
+ eors r0, r1
+ ands r0, r1
+ strb r0, [r5]
+ adds r6, r0, 0
+ cmp r6, 0
+ bne _080F3C12
+ ldr r0, [r4]
+ ldrb r0, [r0, 0x3]
+ lsls r0, 26
+ lsrs r0, 27
+ bl FreeOamMatrix
+ ldr r0, [r4]
+ bl DestroySprite
+ str r6, [r4]
+_080F3C12:
+ ldrb r0, [r5]
+ b _080F3C26
+ .align 2, 0
+_080F3C18: .4byte gUnknown_083DFEC4
+_080F3C1C: .4byte 0x0000bc92
+_080F3C20: .4byte 0x00009348
+_080F3C24:
+ movs r0, 0
+_080F3C26:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80F3BD4
+
+ thumb_func_start sub_80F3C2C
+sub_80F3C2C: @ 80F3C2C
+ push {r4,lr}
+ ldr r0, _080F3C8C
+ ldr r0, [r0]
+ ldr r1, _080F3C90
+ adds r4, r0, r1
+ ldr r0, [r4]
+ cmp r0, 0
+ beq _080F3C50
+ ldrb r0, [r0, 0x3]
+ lsls r0, 26
+ lsrs r0, 27
+ bl FreeOamMatrix
+ ldr r0, [r4]
+ bl DestroySprite
+ movs r0, 0
+ str r0, [r4]
+_080F3C50:
+ movs r4, 0
+_080F3C52:
+ adds r0, r4, 0
+ adds r0, 0xB
+ lsls r0, 16
+ lsrs r0, 16
+ bl FreeSpriteTilesByTag
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0xB
+ bls _080F3C52
+ movs r4, 0
+_080F3C6A:
+ adds r0, r4, 0
+ adds r0, 0xA
+ lsls r0, 16
+ lsrs r0, 16
+ bl FreeSpritePaletteByTag
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x4
+ bls _080F3C6A
+ bl sub_80F2F48
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F3C8C: .4byte gUnknown_083DFEC4
+_080F3C90: .4byte 0x00009348
+ thumb_func_end sub_80F3C2C
+
+ thumb_func_start sub_80F3C94
+sub_80F3C94: @ 80F3C94
+ push {lr}
+ sub sp, 0x10
+ ldr r0, _080F3CDC
+ ldr r1, [r0, 0x4]
+ ldr r0, [r0]
+ str r0, [sp]
+ str r1, [sp, 0x4]
+ ldr r0, _080F3CE0
+ ldr r1, [r0, 0x4]
+ ldr r0, [r0]
+ str r0, [sp, 0x8]
+ str r1, [sp, 0xC]
+ mov r0, sp
+ bl LoadSpriteSheet
+ add r0, sp, 0x8
+ bl LoadSpritePalette
+ movs r1, 0
+ ldr r0, _080F3CE4
+ ldr r0, [r0]
+ movs r3, 0x88
+ lsls r3, 8
+ adds r2, r0, r3
+ movs r3, 0
+_080F3CC6:
+ lsls r0, r1, 2
+ adds r0, r2, r0
+ str r3, [r0]
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0x9
+ bls _080F3CC6
+ add sp, 0x10
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F3CDC: .4byte gUnknown_083E4784
+_080F3CE0: .4byte gUnknown_083E478C
+_080F3CE4: .4byte gUnknown_083DFEC4
+ thumb_func_end sub_80F3C94
+
+ thumb_func_start sub_80F3CE8
+sub_80F3CE8: @ 80F3CE8
+ push {lr}
+ bl move_anim_execute
+ movs r0, 0x17
+ bl FreeSpriteTilesByTag
+ movs r0, 0xF
+ bl FreeSpritePaletteByTag
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80F3CE8
+
+ thumb_func_start sub_80F3D00
+sub_80F3D00: @ 80F3D00
+ push {r4,r5,lr}
+ ldr r0, _080F3D34
+ ldr r2, [r0]
+ ldr r1, _080F3D38
+ adds r0, r2, r1
+ movs r3, 0
+ ldrsh r0, [r0, r3]
+ lsls r0, 2
+ ldr r1, _080F3D3C
+ adds r0, r1
+ adds r0, r2, r0
+ ldrb r1, [r0, 0x3]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _080F3D94
+ ldr r3, _080F3D40
+ adds r0, r2, r3
+ movs r1, 0
+ ldrsb r1, [r0, r1]
+ ldr r3, _080F3D44
+ adds r0, r2, r3
+ adds r0, r1
+ ldrb r5, [r0]
+ movs r4, 0
+ b _080F3D86
+ .align 2, 0
+_080F3D34: .4byte gUnknown_083DFEC4
+_080F3D38: .4byte 0x000087dc
+_080F3D3C: .4byte 0x0000893c
+_080F3D40: .4byte 0x00008fe9
+_080F3D44: .4byte 0x00008931
+_080F3D48:
+ ldr r0, _080F3D9C
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x40
+ beq _080F3D8C
+ ldr r0, _080F3DA0
+ ldr r2, [r0]
+ lsls r0, r4, 2
+ movs r3, 0x88
+ lsls r3, 8
+ adds r2, r3
+ adds r2, r0
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080F3DA4
+ adds r0, r1
+ str r0, [r2]
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+_080F3D86:
+ adds r0, r5, 0x1
+ cmp r4, r0
+ blt _080F3D48
+_080F3D8C:
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl sub_80F3F20
+_080F3D94:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F3D9C: .4byte gSpriteTemplate_83E4800
+_080F3DA0: .4byte gUnknown_083DFEC4
+_080F3DA4: .4byte gSprites
+ thumb_func_end sub_80F3D00
+
+ thumb_func_start move_anim_execute
+move_anim_execute: @ 80F3DA8
+ push {r4-r6,lr}
+ movs r5, 0
+ ldr r0, _080F3DD8
+ ldr r0, [r0]
+ movs r1, 0x88
+ lsls r1, 8
+ adds r6, r0, r1
+_080F3DB6:
+ lsls r0, r5, 2
+ adds r4, r6, r0
+ ldr r0, [r4]
+ cmp r0, 0
+ beq _080F3DD2
+ bl DestroySprite
+ movs r0, 0
+ str r0, [r4]
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x9
+ bls _080F3DB6
+_080F3DD2:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F3DD8: .4byte gUnknown_083DFEC4
+ thumb_func_end move_anim_execute
+
+ thumb_func_start sub_80F3DDC
+sub_80F3DDC: @ 80F3DDC
+ 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 _080F3DFE
+ movs r0, 0
+ strh r0, [r1, 0x30]
+ ldrh r0, [r1, 0x32]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0
+ bl sub_80F3F20
+_080F3DFE:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80F3DDC
+
+ thumb_func_start sub_80F3E04
+sub_80F3E04: @ 80F3E04
+ push {lr}
+ adds r2, r0, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080F3E1C
+ movs r0, 0
+ strh r0, [r2, 0x30]
+ ldr r0, _080F3E20
+ str r0, [r2, 0x1C]
+_080F3E1C:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F3E20: .4byte sub_80F3DDC
+ thumb_func_end sub_80F3E04
+
+ thumb_func_start sub_80F3E24
+sub_80F3E24: @ 80F3E24
+ push {r4,r5,lr}
+ adds r3, r0, 0
+ ldr r0, _080F3E64
+ ldr r0, [r0]
+ ldr r1, _080F3E68
+ adds r4, r0, r1
+ ldr r0, [r4]
+ cmp r0, 0
+ beq _080F3E70
+ ldrh r1, [r0, 0x24]
+ ldrh r0, [r0, 0x20]
+ adds r1, r0
+ ldr r2, _080F3E6C
+ movs r5, 0x2E
+ ldrsh r0, [r3, r5]
+ lsls r0, 2
+ adds r0, r2
+ ldrh r0, [r0]
+ adds r0, r1
+ strh r0, [r3, 0x20]
+ ldr r0, [r4]
+ ldrh r1, [r0, 0x26]
+ ldrh r0, [r0, 0x22]
+ adds r1, r0
+ movs r4, 0x2E
+ ldrsh r0, [r3, r4]
+ lsls r0, 2
+ adds r2, 0x2
+ adds r0, r2
+ ldrh r0, [r0]
+ adds r0, r1
+ b _080F3E8E
+ .align 2, 0
+_080F3E64: .4byte gUnknown_083DFEC4
+_080F3E68: .4byte 0x00008768
+_080F3E6C: .4byte gUnknown_083E4794
+_080F3E70:
+ ldr r1, _080F3E98
+ movs r5, 0x2E
+ ldrsh r0, [r3, r5]
+ lsls r0, 2
+ adds r0, r1
+ ldrh r0, [r0]
+ adds r0, 0x28
+ strh r0, [r3, 0x20]
+ movs r2, 0x2E
+ ldrsh r0, [r3, r2]
+ lsls r0, 2
+ adds r1, 0x2
+ adds r0, r1
+ ldrh r0, [r0]
+ adds r0, 0x68
+_080F3E8E:
+ strh r0, [r3, 0x22]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F3E98: .4byte gUnknown_083E4794
+ thumb_func_end sub_80F3E24
+
+ thumb_func_start sub_80F3E9C
+sub_80F3E9C: @ 80F3E9C
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r1, [r4, 0x30]
+ movs r2, 0x30
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ beq _080F3ECA
+ subs r0, r1, 0x1
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ cmp r0, 0
+ bne _080F3F14
+ 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]
+_080F3ECA:
+ adds r0, r4, 0
+ bl sub_80F3E24
+ adds r0, r4, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080F3F14
+ 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 _080F3F10
+ cmp r1, 0x9
+ bne _080F3F08
+ bl sub_80F3FAC
+ ldr r0, _080F3F04
+ b _080F3F12
+ .align 2, 0
+_080F3F04: .4byte sub_80F3E04
+_080F3F08:
+ ldr r0, _080F3F0C
+ b _080F3F12
+ .align 2, 0
+_080F3F0C: .4byte sub_80F3DDC
+_080F3F10:
+ ldr r0, _080F3F1C
+_080F3F12:
+ str r0, [r4, 0x1C]
+_080F3F14:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F3F1C: .4byte SpriteCallbackDummy
+ thumb_func_end sub_80F3E9C
+
+ thumb_func_start sub_80F3F20
+sub_80F3F20: @ 80F3F20
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ mov r8, r1
+ movs r5, 0
+ ldr r0, _080F3F6C
+ ldr r0, [r0]
+ movs r1, 0x88
+ lsls r1, 8
+ adds r7, r0, r1
+_080F3F3C:
+ lsls r0, r5, 2
+ adds r4, r7, r0
+ ldr r0, [r4]
+ cmp r0, 0
+ beq _080F3F92
+ 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]
+ mov r3, r8
+ cmp r3, 0
+ beq _080F3F62
+ cmp r6, 0x9
+ beq _080F3F74
+_080F3F62:
+ ldr r1, [r4]
+ ldr r0, _080F3F70
+ str r0, [r1, 0x1C]
+ b _080F3F92
+ .align 2, 0
+_080F3F6C: .4byte gUnknown_083DFEC4
+_080F3F70: .4byte sub_80F3E9C
+_080F3F74:
+ ldr r0, [r4]
+ bl sub_80F3E24
+ bl sub_80F3FAC
+ ldr r2, [r4]
+ ldr r0, _080F3FA8
+ 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]
+_080F3F92:
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x9
+ bls _080F3F3C
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F3FA8: .4byte sub_80F3E04
+ thumb_func_end sub_80F3F20
+
+ thumb_func_start sub_80F3FAC
+sub_80F3FAC: @ 80F3FAC
+ push {r4-r7,lr}
+ movs r5, 0
+ ldr r0, _080F3FEC
+ ldr r0, [r0]
+ movs r1, 0x88
+ lsls r1, 8
+ adds r6, r0, r1
+ movs r0, 0x5
+ negs r0, r0
+ adds r7, r0, 0
+_080F3FC0:
+ lsls r0, r5, 2
+ adds r4, r6, r0
+ ldr r0, [r4]
+ cmp r0, 0
+ beq _080F3FDA
+ movs r1, 0
+ bl SeekSpriteAnim
+ ldr r1, [r4]
+ adds r1, 0x3E
+ ldrb r0, [r1]
+ ands r0, r7
+ strb r0, [r1]
+_080F3FDA:
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x9
+ bls _080F3FC0
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F3FEC: .4byte gUnknown_083DFEC4
+ thumb_func_end sub_80F3FAC
+
+ thumb_func_start sub_80F3FF0
+sub_80F3FF0: @ 80F3FF0
+ push {lr}
+ ldr r0, _080F4018
+ ldr r0, [r0]
+ ldr r1, _080F401C
+ adds r2, r0, r1
+ movs r1, 0
+ strh r1, [r2]
+ ldr r1, _080F4020
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080F4012
+_080F4008:
+ bl sub_80F4024
+ lsls r0, 24
+ cmp r0, 0
+ bne _080F4008
+_080F4012:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F4018: .4byte gUnknown_083DFEC4
+_080F401C: .4byte 0x00000306
+_080F4020: .4byte 0x00006dac
+ thumb_func_end sub_80F3FF0
+
+ thumb_func_start sub_80F4024
+sub_80F4024: @ 80F4024
+ push {r4,lr}
+ sub sp, 0x10
+ ldr r0, _080F4040
+ ldr r4, [r0]
+ ldr r1, _080F4044
+ adds r0, r4, r1
+ ldrh r0, [r0]
+ cmp r0, 0x1
+ beq _080F4068
+ cmp r0, 0x1
+ bgt _080F4048
+ cmp r0, 0
+ beq _080F4052
+ b _080F4106
+ .align 2, 0
+_080F4040: .4byte gUnknown_083DFEC4
+_080F4044: .4byte 0x00000306
+_080F4048:
+ cmp r0, 0x2
+ beq _080F4084
+ cmp r0, 0x3
+ beq _080F40B8
+ b _080F4106
+_080F4052:
+ ldr r0, _080F4060
+ ldr r2, _080F4064
+ adds r1, r4, r2
+ bl LZ77UnCompWram
+ b _080F4118
+ .align 2, 0
+_080F4060: .4byte gUnknown_083E329C
+_080F4064: .4byte 0x000131e4
+_080F4068:
+ ldr r1, _080F407C
+ adds r0, r4, r1
+ str r0, [sp]
+ ldr r0, _080F4080
+ str r0, [sp, 0x4]
+ mov r0, sp
+ bl LoadSpriteSheet
+ b _080F4118
+ .align 2, 0
+_080F407C: .4byte 0x000131e4
+_080F4080: .4byte 0x00181000
+_080F4084:
+ ldr r0, _080F40B4
+ ldr r1, [r0, 0x4]
+ ldr r0, [r0]
+ str r0, [sp, 0x8]
+ str r1, [sp, 0xC]
+ add r0, sp, 0x8
+ bl LoadSpritePalette
+ movs r0, 0x10
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0xC2
+ lsls r1, 2
+ adds r2, r4, r1
+ adds r0, 0x10
+ movs r1, 0x1
+ lsls r1, r0
+ movs r0, 0x3
+ negs r0, r0
+ bics r0, r1
+ str r0, [r2]
+ b _080F4118
+ .align 2, 0
+_080F40B4: .4byte gUnknown_083E4818
+_080F40B8:
+ ldr r0, _080F40E4
+ movs r1, 0xDA
+ movs r2, 0xE
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x40
+ beq _080F40F0
+ ldr r0, _080F40E8
+ adds r2, r4, r0
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080F40EC
+ adds r0, r1
+ str r0, [r2]
+ movs r1, 0
+ strh r1, [r0, 0x2E]
+ b _080F40F8
+ .align 2, 0
+_080F40E4: .4byte gSpriteTemplate_83E4850
+_080F40E8: .4byte 0x00006d98
+_080F40EC: .4byte gSprites
+_080F40F0:
+ ldr r2, _080F410C
+ adds r1, r4, r2
+ movs r0, 0
+ str r0, [r1]
+_080F40F8:
+ ldr r0, _080F4110
+ ldr r1, [r0]
+ ldr r0, _080F4114
+ adds r1, r0
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_080F4106:
+ movs r0, 0
+ b _080F4128
+ .align 2, 0
+_080F410C: .4byte 0x00006d98
+_080F4110: .4byte gUnknown_083DFEC4
+_080F4114: .4byte 0x00000306
+_080F4118:
+ ldr r0, _080F4130
+ ldr r1, [r0]
+ ldr r2, _080F4134
+ adds r1, r2
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ movs r0, 0x1
+_080F4128:
+ add sp, 0x10
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080F4130: .4byte gUnknown_083DFEC4
+_080F4134: .4byte 0x00000306
+ thumb_func_end sub_80F4024
+
+ thumb_func_start sub_80F4138
+sub_80F4138: @ 80F4138
+ push {lr}
+ adds r2, r0, 0
+ ldr r0, _080F4170
+ ldr r0, [r0]
+ movs r1, 0xC3
+ lsls r1, 2
+ adds r0, r1
+ ldrh r0, [r0]
+ negs r0, r0
+ strh r0, [r2, 0x26]
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x20
+ negs r1, r1
+ cmp r0, r1
+ bgt _080F4174
+ movs r1, 0x2E
+ ldrsh r0, [r2, r1]
+ cmp r0, 0
+ bne _080F418E
+ adds r3, r2, 0
+ adds r3, 0x3E
+ ldrb r0, [r3]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r3]
+ movs r0, 0x1
+ b _080F418C
+ .align 2, 0
+_080F4170: .4byte gUnknown_083DFEC4
+_080F4174:
+ movs r1, 0x2E
+ ldrsh r0, [r2, r1]
+ cmp r0, 0x1
+ bne _080F418E
+ adds r3, r2, 0
+ adds r3, 0x3E
+ ldrb r0, [r3]
+ movs r1, 0x5
+ negs r1, r1
+ ands r1, r0
+ strb r1, [r3]
+ movs r0, 0
+_080F418C:
+ strh r0, [r2, 0x2E]
+_080F418E:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80F4138
+
+ thumb_func_start sub_80F4194
+sub_80F4194: @ 80F4194
+ push {r4-r7,lr}
+ sub sp, 0x4
+ adds r7, r0, 0
+ adds r2, r1, 0
+ ldr r0, _080F42A4
+ ldr r6, [r0]
+ mov r0, sp
+ ldr r1, _080F42A8
+ adds r5, r1, 0
+ strh r5, [r0]
+ ldr r4, _080F42AC
+ str r0, [r4]
+ str r6, [r4, 0x4]
+ ldr r3, _080F42B0
+ str r3, [r4, 0x8]
+ ldr r0, [r4, 0x8]
+ movs r0, 0x80
+ lsls r0, 3
+ adds r1, r6, r0
+ mov r0, sp
+ strh r5, [r0]
+ str r0, [r4]
+ str r1, [r4, 0x4]
+ str r3, [r4, 0x8]
+ ldr r0, [r4, 0x8]
+ ldr r0, _080F42B4
+ adds r1, r6, 0
+ bl sub_8004E3C
+ movs r3, 0x88
+ lsls r3, 2
+ adds r1, r6, r3
+ mov r0, sp
+ movs r3, 0
+ strh r3, [r0]
+ str r0, [r4]
+ str r1, [r4, 0x4]
+ ldr r2, _080F42B8
+ str r2, [r4, 0x8]
+ ldr r0, [r4, 0x8]
+ movs r0, 0xC4
+ lsls r0, 3
+ adds r1, r6, r0
+ mov r0, sp
+ strh r3, [r0]
+ str r0, [r4]
+ str r1, [r4, 0x4]
+ str r2, [r4, 0x8]
+ ldr r0, [r4, 0x8]
+ movs r1, 0x80
+ lsls r1, 2
+ adds r2, r6, r1
+ ldr r0, [r2]
+ ldr r1, _080F42BC
+ ands r0, r1
+ str r0, [r2]
+ ldr r0, [r2, 0x4]
+ ands r0, r1
+ str r0, [r2, 0x4]
+ ldr r0, [r2, 0x8]
+ ands r0, r1
+ str r0, [r2, 0x8]
+ ldr r0, [r2, 0xC]
+ ands r0, r1
+ str r0, [r2, 0xC]
+ ldr r0, [r2, 0x10]
+ ands r0, r1
+ str r0, [r2, 0x10]
+ ldr r0, [r2, 0x14]
+ ands r0, r1
+ str r0, [r2, 0x14]
+ ldr r0, [r2, 0x18]
+ ands r0, r1
+ str r0, [r2, 0x18]
+ ldr r0, [r2, 0x1C]
+ ands r0, r1
+ str r0, [r2, 0x1C]
+ movs r3, 0xC0
+ lsls r3, 3
+ adds r2, r6, r3
+ ldr r0, [r2]
+ ands r0, r1
+ str r0, [r2]
+ ldr r0, [r2, 0x4]
+ ands r0, r1
+ str r0, [r2, 0x4]
+ ldr r0, [r2, 0x8]
+ ands r0, r1
+ str r0, [r2, 0x8]
+ ldr r0, [r2, 0xC]
+ ands r0, r1
+ str r0, [r2, 0xC]
+ ldr r0, [r2, 0x10]
+ ands r0, r1
+ str r0, [r2, 0x10]
+ ldr r0, [r2, 0x14]
+ ands r0, r1
+ str r0, [r2, 0x14]
+ ldr r0, [r2, 0x18]
+ ands r0, r1
+ str r0, [r2, 0x18]
+ ldr r0, [r2, 0x1C]
+ ands r0, r1
+ str r0, [r2, 0x1C]
+ movs r1, 0
+ ldr r2, _080F42C0
+_080F4268:
+ lsls r0, r1, 7
+ adds r0, r6, r0
+ str r0, [r4]
+ lsls r0, r1, 8
+ adds r0, r7, r0
+ str r0, [r4, 0x4]
+ str r2, [r4, 0x8]
+ ldr r0, [r4, 0x8]
+ lsls r0, r1, 7
+ movs r3, 0x80
+ lsls r3, 3
+ adds r0, r3
+ adds r0, r6, r0
+ str r0, [r4]
+ lsls r0, r1, 3
+ adds r0, 0x4
+ lsls r0, 5
+ adds r0, r7, r0
+ str r0, [r4, 0x4]
+ str r2, [r4, 0x8]
+ ldr r0, [r4, 0x8]
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x4
+ bls _080F4268
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F42A4: .4byte gUnknown_083DFEC8
+_080F42A8: .4byte 0x00001111
+_080F42AC: .4byte 0x040000d4
+_080F42B0: .4byte 0x81000140
+_080F42B4: .4byte gWindowConfig_81E70F0
+_080F42B8: .4byte 0x81000030
+_080F42BC: .4byte 0x0fffffff
+_080F42C0: .4byte 0x80000040
+ thumb_func_end sub_80F4194
+
+ thumb_func_start sub_80F42C4
+sub_80F42C4: @ 80F42C4
+ push {r4-r7,lr}
+ sub sp, 0x8
+ adds r1, r0, 0
+ ldr r0, _080F433C
+ ldr r0, [r0]
+ ldr r2, _080F4340
+ adds r0, r2
+ str r0, [sp]
+ ldr r2, _080F4344
+ str r2, [sp, 0x4]
+ bl sub_80F4194
+ mov r0, sp
+ bl LoadSpriteSheet
+ ldr r0, _080F4348
+ bl LoadSpritePalette
+ movs r5, 0
+ movs r4, 0
+ ldr r6, _080F434C
+_080F42EE:
+ lsls r1, r4, 21
+ movs r7, 0xE2
+ lsls r7, 15
+ adds r1, r7
+ asrs r1, 16
+ ldr r0, _080F4350
+ movs r2, 0x10
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x40
+ beq _080F4360
+ lsls r3, r0, 4
+ adds r3, r0
+ lsls r3, 2
+ adds r3, r6
+ ldrh r2, [r3, 0x4]
+ lsls r0, r2, 22
+ lsrs r0, 22
+ adds r0, r5, r0
+ ldr r7, _080F4354
+ adds r1, r7, 0
+ ands r0, r1
+ ldr r7, _080F4358
+ adds r1, r7, 0
+ ands r2, r1
+ orrs r2, r0
+ strh r2, [r3, 0x4]
+ ldr r0, _080F433C
+ ldr r0, [r0]
+ lsls r1, r4, 2
+ ldr r2, _080F435C
+ adds r0, r2
+ adds r0, r1
+ str r3, [r0]
+ b _080F4370
+ .align 2, 0
+_080F433C: .4byte gUnknown_083DFEC4
+_080F4340: .4byte 0x0000d1e4
+_080F4344: .4byte 0x001a0500
+_080F4348: .4byte gUnknown_083E4868
+_080F434C: .4byte gSprites
+_080F4350: .4byte gSpriteTemplate_83E4878
+_080F4354: .4byte 0x000003ff
+_080F4358: .4byte 0xfffffc00
+_080F435C: .4byte 0x0000ced4
+_080F4360:
+ ldr r0, _080F438C
+ ldr r1, [r0]
+ lsls r0, r4, 2
+ ldr r7, _080F4390
+ adds r1, r7
+ adds r1, r0
+ movs r0, 0
+ str r0, [r1]
+_080F4370:
+ adds r0, r5, 0
+ adds r0, 0x8
+ lsls r0, 16
+ lsrs r5, r0, 16
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x4
+ bls _080F42EE
+ add sp, 0x8
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F438C: .4byte gUnknown_083DFEC4
+_080F4390: .4byte 0x0000ced4
+ thumb_func_end sub_80F42C4
+
+ thumb_func_start sub_80F4394
+sub_80F4394: @ 80F4394
+ push {r4,r5,lr}
+ movs r4, 0
+ ldr r0, _080F43CC
+ ldr r0, [r0]
+ ldr r1, _080F43D0
+ adds r5, r0, r1
+_080F43A0:
+ lsls r0, r4, 2
+ adds r0, r5, r0
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _080F43AE
+ bl DestroySprite
+_080F43AE:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x4
+ bls _080F43A0
+ movs r0, 0x1A
+ bl FreeSpriteTilesByTag
+ movs r0, 0x12
+ bl FreeSpritePaletteByTag
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F43CC: .4byte gUnknown_083DFEC4
+_080F43D0: .4byte 0x0000ced4
+ thumb_func_end sub_80F4394
+
+ thumb_func_start sub_80F43D4
+sub_80F43D4: @ 80F43D4
+ push {r4,lr}
+ adds r1, r0, 0
+ ldr r0, _080F4410
+ ldr r0, [r0]
+ ldr r2, _080F4414
+ adds r4, r0, r2
+ adds r0, r4, 0
+ bl sub_80F4194
+ movs r0, 0x1A
+ bl GetSpriteTileStartByTag
+ lsls r0, 16
+ lsrs r1, r0, 16
+ ldr r0, _080F4418
+ cmp r1, r0
+ beq _080F4408
+ lsls r0, r1, 5
+ ldr r1, _080F441C
+ adds r0, r1
+ ldr r1, _080F4420
+ str r4, [r1]
+ str r0, [r1, 0x4]
+ ldr r0, _080F4424
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+_080F4408:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F4410: .4byte gUnknown_083DFEC4
+_080F4414: .4byte 0x0000d1e4
+_080F4418: .4byte 0x0000ffff
+_080F441C: .4byte 0x06010000
+_080F4420: .4byte 0x040000d4
+_080F4424: .4byte 0x84000140
+ thumb_func_end sub_80F43D4
+
+ thumb_func_start sub_80F4428
+sub_80F4428: @ 80F4428
+ push {lr}
+ lsls r1, 16
+ lsrs r1, 16
+ lsls r2, 24
+ lsrs r2, 24
+ bl sub_80F6514
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80F4428
+
+ thumb_func_start sub_80F443C
+sub_80F443C: @ 80F443C
+ push {r4,lr}
+ lsls r4, r1, 16
+ lsrs r4, 16
+ ldr r1, _080F4458
+ bl StringCopy
+ adds r1, r4, 0
+ movs r2, 0x38
+ movs r3, 0x1
+ bl sub_8072C14
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080F4458: .4byte gOtherText_Number
+ thumb_func_end sub_80F443C
+
+ thumb_func_start sub_80F445C
+sub_80F445C: @ 80F445C
+ push {r4,lr}
+ lsls r1, 16
+ lsrs r1, 16
+ movs r2, 0x17
+ movs r3, 0x1
+ bl sub_8072C14
+ adds r4, r0, 0
+ movs r3, 0xFC
+ strb r3, [r4]
+ movs r2, 0x11
+ strb r2, [r4, 0x1]
+ movs r1, 0x1
+ strb r1, [r4, 0x2]
+ adds r4, 0x3
+ movs r0, 0xBA
+ strb r0, [r4]
+ adds r4, 0x1
+ strb r3, [r4]
+ strb r2, [r4, 0x1]
+ strb r1, [r4, 0x2]
+ adds r4, 0x3
+ ldr r0, _080F44A8
+ ldr r0, [r0]
+ ldr r1, _080F44AC
+ adds r0, r1
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ adds r1, 0x1
+ adds r0, r4, 0
+ movs r2, 0x32
+ movs r3, 0x1
+ bl sub_8072C14
+ adds r4, r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080F44A8: .4byte gUnknown_083DFEC4
+_080F44AC: .4byte 0x00008774
+ thumb_func_end sub_80F445C
+
+ thumb_func_start sub_80F44B0
+sub_80F44B0: @ 80F44B0
+ push {r4,lr}
+ adds r4, r2, 0
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r1, 16
+ lsrs r2, r1, 16
+ cmp r0, 0xE
+ bne _080F44F4
+ cmp r4, 0x2
+ beq _080F44C8
+ cmp r4, 0x7
+ bne _080F44E0
+_080F44C8:
+ movs r0, 0x64
+ muls r0, r2
+ ldr r1, _080F44DC
+ adds r0, r1
+ adds r1, r4, 0
+ adds r2, r3, 0
+ bl GetMonData
+ b _080F453C
+ .align 2, 0
+_080F44DC: .4byte gPlayerParty
+_080F44E0:
+ movs r0, 0x64
+ muls r0, r2
+ ldr r1, _080F44F0
+ adds r0, r1
+ adds r1, r4, 0
+ bl GetMonData
+ b _080F453C
+ .align 2, 0
+_080F44F0: .4byte gPlayerParty
+_080F44F4:
+ cmp r4, 0x2
+ beq _080F44FC
+ cmp r4, 0x7
+ bne _080F4520
+_080F44FC:
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 5
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 4
+ ldr r2, _080F451C
+ adds r1, r2
+ adds r0, r1
+ adds r1, r4, 0
+ adds r2, r3, 0
+ bl GetBoxMonData
+ b _080F453C
+ .align 2, 0
+_080F451C: .4byte gUnknown_020300A4
+_080F4520:
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 5
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 4
+ ldr r2, _080F4544
+ adds r1, r2
+ adds r0, r1
+ adds r1, r4, 0
+ bl GetBoxMonData
+_080F453C:
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080F4544: .4byte gUnknown_020300A4
+ thumb_func_end sub_80F44B0
+
+ thumb_func_start sub_80F4548
+sub_80F4548: @ 80F4548
+ push {r4,lr}
+ sub sp, 0x4
+ lsls r0, 16
+ lsrs r3, r0, 16
+ lsls r1, 16
+ lsrs r4, r1, 16
+ mov r0, sp
+ strb r2, [r0]
+ cmp r3, 0xE
+ bne _080F4574
+ movs r0, 0x64
+ muls r0, r4
+ ldr r1, _080F4570
+ adds r0, r1
+ movs r1, 0x8
+ mov r2, sp
+ bl SetMonData
+ b _080F4592
+ .align 2, 0
+_080F4570: .4byte gPlayerParty
+_080F4574:
+ lsls r1, r3, 2
+ adds r1, r3
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 5
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 4
+ ldr r2, _080F459C
+ adds r1, r2
+ adds r0, r1
+ movs r1, 0x8
+ mov r2, sp
+ bl SetBoxMonData
+_080F4592:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F459C: .4byte gUnknown_020300A4
+ thumb_func_end sub_80F4548
+
+ thumb_func_start sub_80F45A0
+sub_80F45A0: @ 80F45A0
+ push {r4-r7,lr}
+ lsls r1, 24
+ lsrs r6, r1, 24
+ ldr r1, _080F45F0
+ ldr r5, [r1]
+ lsls r1, r0, 16
+ asrs r0, r1, 14
+ adds r4, r5, r0
+ ldr r2, _080F45F4
+ adds r0, r4, r2
+ ldrb r0, [r0]
+ lsls r0, 25
+ lsrs r7, r0, 31
+ cmp r7, 0
+ beq _080F4644
+ lsls r0, r6, 6
+ ldr r2, _080F45F8
+ adds r0, r2
+ adds r0, r5, r0
+ lsrs r1, 16
+ movs r2, 0
+ bl sub_80F4428
+ ldr r1, _080F45FC
+ adds r0, r4, r1
+ ldrb r2, [r0]
+ cmp r2, 0xE
+ bne _080F4608
+ lsls r0, r6, 1
+ adds r0, r6
+ lsls r0, 3
+ ldr r2, _080F4600
+ adds r0, r2
+ adds r0, r5, r0
+ ldr r1, _080F4604
+ movs r2, 0x40
+ movs r3, 0
+ bl sub_8072C74
+ b _080F4624
+ .align 2, 0
+_080F45F0: .4byte gUnknown_083DFEC4
+_080F45F4: .4byte 0x0000893f
+_080F45F8: .4byte 0x00008829
+_080F45FC: .4byte 0x0000893d
+_080F4600: .4byte 0x000088e9
+_080F4604: .4byte gOtherText_InParty
+_080F4608:
+ lsls r0, r6, 1
+ adds r0, r6
+ lsls r0, 3
+ ldr r1, _080F4634
+ adds r0, r1
+ adds r0, r5, r0
+ lsls r1, r2, 3
+ adds r1, r2
+ ldr r2, _080F4638
+ adds r1, r2
+ movs r2, 0x40
+ movs r3, 0
+ bl sub_8072C74
+_080F4624:
+ ldr r0, _080F463C
+ ldr r0, [r0]
+ ldr r2, _080F4640
+ adds r0, r2
+ adds r0, r6
+ movs r1, 0x1
+ strb r1, [r0]
+ b _080F4676
+ .align 2, 0
+_080F4634: .4byte 0x000088e9
+_080F4638: .4byte gUnknown_020383E4
+_080F463C: .4byte gUnknown_083DFEC4
+_080F4640: .4byte 0x00008937
+_080F4644:
+ lsls r0, r6, 6
+ ldr r1, _080F467C
+ adds r0, r1
+ adds r0, r5, r0
+ ldr r4, _080F4680
+ adds r1, r4, 0
+ movs r2, 0x68
+ movs r3, 0
+ bl sub_8072C74
+ lsls r0, r6, 1
+ adds r0, r6
+ lsls r0, 3
+ ldr r2, _080F4684
+ adds r0, r2
+ adds r0, r5, r0
+ adds r1, r4, 0
+ movs r2, 0x40
+ movs r3, 0
+ bl sub_8072C74
+ ldr r1, _080F4688
+ adds r0, r5, r1
+ adds r0, r6
+ strb r7, [r0]
+_080F4676:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F467C: .4byte 0x00008829
+_080F4680: .4byte gEmptyString_81E72B0
+_080F4684: .4byte 0x000088e9
+_080F4688: .4byte 0x00008937
+ thumb_func_end sub_80F45A0
+
+ thumb_func_start sub_80F468C
+sub_80F468C: @ 80F468C
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ lsls r1, 24
+ lsrs r1, 24
+ mov r9, r1
+ ldr r1, _080F475C
+ ldr r7, [r1]
+ lsls r0, 16
+ asrs r0, 14
+ adds r1, r7, r0
+ ldr r2, _080F4760
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ lsls r0, 25
+ cmp r0, 0
+ blt _080F46B2
+ b _080F47C4
+_080F46B2:
+ ldr r3, _080F4764
+ adds r0, r1, r3
+ ldrb r5, [r0]
+ subs r2, 0x1
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ lsls r0, 27
+ lsrs r6, r0, 27
+ adds r0, r5, 0
+ adds r1, r6, 0
+ movs r2, 0x16
+ movs r3, 0
+ bl sub_80F44B0
+ mov r3, r9
+ lsls r3, 2
+ mov r8, r3
+ mov r4, r8
+ add r4, r9
+ ldr r2, _080F4768
+ adds r1, r7, r2
+ adds r1, r4
+ strb r0, [r1]
+ adds r0, r5, 0
+ adds r1, r6, 0
+ movs r2, 0x2F
+ movs r3, 0
+ bl sub_80F44B0
+ ldr r3, _080F476C
+ adds r1, r7, r3
+ adds r1, r4
+ strb r0, [r1]
+ adds r0, r5, 0
+ adds r1, r6, 0
+ movs r2, 0x21
+ movs r3, 0
+ bl sub_80F44B0
+ ldr r2, _080F4770
+ adds r1, r7, r2
+ adds r1, r4
+ strb r0, [r1]
+ adds r0, r5, 0
+ adds r1, r6, 0
+ movs r2, 0x18
+ movs r3, 0
+ bl sub_80F44B0
+ ldr r3, _080F4774
+ adds r1, r7, r3
+ adds r1, r4
+ strb r0, [r1]
+ adds r0, r5, 0
+ adds r1, r6, 0
+ movs r2, 0x17
+ movs r3, 0
+ bl sub_80F44B0
+ ldr r2, _080F4778
+ adds r1, r7, r2
+ adds r1, r4
+ strb r0, [r1]
+ ldr r3, _080F477C
+ adds r0, r7, r3
+ mov r7, r9
+ adds r4, r0, r7
+ adds r0, r5, 0
+ adds r1, r6, 0
+ movs r2, 0x30
+ movs r3, 0
+ bl sub_80F44B0
+ cmp r0, 0xFF
+ beq _080F4780
+ adds r0, r5, 0
+ adds r1, r6, 0
+ movs r2, 0x30
+ movs r3, 0
+ bl sub_80F44B0
+ movs r1, 0x1D
+ bl __udivsi3
+ b _080F4782
+ .align 2, 0
+_080F475C: .4byte gUnknown_083DFEC4
+_080F4760: .4byte 0x0000893f
+_080F4764: .4byte 0x0000893d
+_080F4768: .4byte 0x00008ff0
+_080F476C: .4byte 0x00008ff1
+_080F4770: .4byte 0x00008ff2
+_080F4774: .4byte 0x00008ff3
+_080F4778: .4byte 0x00008ff4
+_080F477C: .4byte 0x00008931
+_080F4780:
+ movs r0, 0x9
+_080F4782:
+ strb r0, [r4]
+ adds r0, r5, 0
+ adds r1, r6, 0
+ movs r2, 0x8
+ movs r3, 0
+ bl sub_80F44B0
+ ldr r1, _080F47B4
+ ldr r1, [r1]
+ ldr r3, _080F47B8
+ adds r2, r1, r3
+ add r2, r9
+ strb r0, [r2]
+ mov r2, r8
+ add r2, r9
+ ldr r7, _080F47BC
+ adds r0, r2, r7
+ adds r0, r1, r0
+ lsls r2, 2
+ ldr r3, _080F47C0
+ adds r2, r3
+ adds r1, r2
+ bl sub_80F55AC
+ b _080F480A
+ .align 2, 0
+_080F47B4: .4byte gUnknown_083DFEC4
+_080F47B8: .4byte 0x00008934
+_080F47BC: .4byte 0x00008ff0
+_080F47C0: .4byte 0x00009004
+_080F47C4:
+ movs r3, 0
+ mov r0, r9
+ lsls r0, 2
+ mov r8, r0
+ adds r4, r7, 0
+ mov r2, r8
+ add r2, r9
+ ldr r1, _080F4818
+ adds r6, r4, r1
+ lsls r5, r2, 2
+ mov r9, r3
+ ldr r7, _080F481C
+ mov r8, r7
+ movs r0, 0x9B
+ mov r12, r0
+_080F47E2:
+ adds r0, r3, r2
+ adds r0, r6, r0
+ mov r1, r9
+ strb r1, [r0]
+ lsls r0, r3, 2
+ adds r0, r5
+ adds r0, r4, r0
+ mov r7, r8
+ adds r1, r0, r7
+ mov r7, r12
+ strh r7, [r1]
+ ldr r1, _080F4820
+ adds r0, r1
+ movs r1, 0x5B
+ strh r1, [r0]
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0x4
+ bls _080F47E2
+_080F480A:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F4818: .4byte 0x00008ff0
+_080F481C: .4byte 0x00009004
+_080F4820: .4byte 0x00009006
+ thumb_func_end sub_80F468C
+
+ thumb_func_start sub_80F4824
+sub_80F4824: @ 80F4824
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0xC
+ lsls r1, 24
+ lsrs r1, 24
+ mov r9, r1
+ ldr r1, _080F48E0
+ ldr r7, [r1]
+ lsls r0, 16
+ asrs r0, 14
+ adds r1, r7, r0
+ ldr r2, _080F48E4
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ lsls r0, 25
+ cmp r0, 0
+ bge _080F48D0
+ ldr r6, _080F48E8
+ adds r0, r1, r6
+ ldrb r6, [r0]
+ subs r2, 0x1
+ adds r0, r1, r2
+ ldrb r4, [r0]
+ lsls r4, 27
+ lsrs r4, 27
+ adds r0, r6, 0
+ adds r1, r4, 0
+ movs r2, 0x41
+ movs r3, 0
+ bl sub_80F44B0
+ adds r5, r0, 0
+ lsls r5, 16
+ lsrs r5, 16
+ adds r0, r6, 0
+ adds r1, r4, 0
+ movs r2, 0x1
+ movs r3, 0
+ bl sub_80F44B0
+ mov r8, r0
+ adds r0, r6, 0
+ adds r1, r4, 0
+ movs r2, 0
+ movs r3, 0
+ bl sub_80F44B0
+ adds r4, r0, 0
+ lsls r0, r5, 3
+ ldr r1, _080F48EC
+ adds r0, r1
+ ldr r2, _080F48F0
+ lsls r1, r5, 2
+ adds r1, r2
+ ldrb r1, [r1]
+ ldr r6, _080F48F4
+ adds r3, r7, r6
+ mov r6, r9
+ lsls r2, r6, 13
+ ldr r6, _080F48F8
+ adds r2, r6
+ adds r2, r7, r2
+ str r2, [sp]
+ str r5, [sp, 0x4]
+ str r4, [sp, 0x8]
+ movs r2, 0x1
+ bl sub_800D334
+ adds r0, r5, 0
+ mov r1, r8
+ adds r2, r4, 0
+ bl species_and_otid_get_pal
+ mov r2, r9
+ lsls r1, r2, 7
+ adds r1, r7, r1
+ bl LZ77UnCompWram
+ mov r6, r9
+ lsls r1, r6, 1
+ ldr r2, _080F48FC
+ adds r0, r7, r2
+ adds r0, r1
+ strh r5, [r0]
+_080F48D0:
+ add sp, 0xC
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F48E0: .4byte gUnknown_083DFEC4
+_080F48E4: .4byte 0x0000893f
+_080F48E8: .4byte 0x0000893d
+_080F48EC: .4byte gMonFrontPicTable
+_080F48F0: .4byte gMonFrontPicCoords
+_080F48F4: .4byte 0x000131e4
+_080F48F8: .4byte 0x0000d1e4
+_080F48FC: .4byte 0x0000d1d6
+ thumb_func_end sub_80F4824
+
+ thumb_func_start sub_80F4900
+sub_80F4900: @ 80F4900
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r4, 16
+ asrs r4, 16
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_80F45A0
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_80F468C
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_80F4824
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80F4900
+
+ thumb_func_start sub_80F492C
+sub_80F492C: @ 80F492C
+ ldr r0, _080F493C
+ ldr r0, [r0]
+ ldr r1, _080F4940
+ adds r0, r1
+ movs r1, 0
+ strh r1, [r0]
+ bx lr
+ .align 2, 0
+_080F493C: .4byte gUnknown_083DFEC4
+_080F4940: .4byte 0x00008fe4
+ thumb_func_end sub_80F492C
+
+ thumb_func_start sub_80F4944
+sub_80F4944: @ 80F4944
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ mov r12, r0
+ movs r2, 0
+ ldr r1, _080F4978
+ ldr r5, [r1]
+ ldr r3, _080F497C
+ adds r0, r5, r3
+ ldrh r4, [r0]
+ lsrs r3, r4, 1
+ mov r8, r1
+ cmp r4, r3
+ beq _080F499C
+ adds r6, r5, 0
+ mov r0, r12
+ ldrb r5, [r0]
+ ldr r7, _080F4980
+_080F4968:
+ lsls r0, r3, 2
+ adds r0, r6, r0
+ adds r0, r7
+ ldrb r0, [r0]
+ cmp r5, r0
+ bls _080F4984
+ adds r4, r3, 0
+ b _080F498A
+ .align 2, 0
+_080F4978: .4byte gUnknown_083DFEC4
+_080F497C: .4byte 0x00008fe4
+_080F4980: .4byte 0x0000893c
+_080F4984:
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+_080F498A:
+ subs r0, r4, r2
+ lsrs r1, r0, 31
+ adds r0, r1
+ asrs r0, 1
+ adds r0, r2, r0
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r4, r3
+ bne _080F4968
+_080F499C:
+ mov r1, r8
+ ldr r2, [r1]
+ ldr r1, _080F49EC
+ adds r0, r2, r1
+ ldrh r4, [r0]
+ lsls r6, r3, 2
+ cmp r4, r3
+ bls _080F49C6
+ ldr r0, _080F49F0
+ adds r5, r2, r0
+_080F49B0:
+ lsls r2, r4, 2
+ adds r2, r5, r2
+ subs r1, r4, 0x1
+ lsls r0, r1, 2
+ adds r0, r5, r0
+ ldr r0, [r0]
+ str r0, [r2]
+ lsls r1, 16
+ lsrs r4, r1, 16
+ cmp r4, r3
+ bhi _080F49B0
+_080F49C6:
+ mov r1, r8
+ ldr r2, [r1]
+ ldr r3, _080F49F0
+ adds r0, r2, r3
+ adds r0, r6
+ mov r3, r12
+ ldr r1, [r3]
+ str r1, [r0]
+ ldr r0, _080F49EC
+ adds r2, r0
+ ldrh r0, [r2]
+ adds r0, 0x1
+ strh r0, [r2]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F49EC: .4byte 0x00008fe4
+_080F49F0: .4byte 0x0000893c
+ thumb_func_end sub_80F4944
+
+ thumb_func_start sub_80F49F4
+sub_80F49F4: @ 80F49F4
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ ldr r3, _080F4A64
+ ldr r4, [r3]
+ ldr r7, _080F4A68
+ adds r2, r4, r7
+ ldrh r1, [r2]
+ ldr r0, _080F4A6C
+ mov r12, r0
+ ands r0, r1
+ movs r1, 0x20
+ orrs r0, r1
+ strh r0, [r2]
+ movs r5, 0x1
+ ldr r1, _080F4A70
+ adds r0, r4, r1
+ ldrh r3, [r0]
+ cmp r5, r3
+ bcs _080F4A9E
+ adds r6, r4, 0
+ ldr r1, _080F4A74
+ mov r8, r1
+ ldr r3, _080F4A78
+ mov r10, r3
+ mov r9, r0
+_080F4A2C:
+ lsls r0, r5, 2
+ adds r3, r6, r0
+ mov r0, r8
+ adds r2, r3, r0
+ subs r0, r5, 0x1
+ lsls r0, 2
+ adds r4, r6, r0
+ mov r0, r8
+ adds r1, r4, r0
+ ldrb r0, [r2]
+ ldrb r1, [r1]
+ cmp r0, r1
+ bne _080F4A7C
+ adds r0, r4, r7
+ ldrh r0, [r0]
+ lsls r0, 18
+ lsrs r0, 23
+ adds r3, r7
+ ldr r1, _080F4A78
+ ands r1, r0
+ lsls r1, 5
+ ldrh r2, [r3]
+ mov r0, r12
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r3]
+ adds r4, r5, 0x1
+ b _080F4A92
+ .align 2, 0
+_080F4A64: .4byte gUnknown_083DFEC4
+_080F4A68: .4byte 0x0000893e
+_080F4A6C: .4byte 0xffffc01f
+_080F4A70: .4byte 0x00008fe4
+_080F4A74: .4byte 0x0000893c
+_080F4A78: .4byte 0x000001ff
+_080F4A7C:
+ adds r4, r5, 0x1
+ adds r3, r7
+ adds r1, r4, 0
+ mov r0, r10
+ ands r1, r0
+ lsls r1, 5
+ ldrh r2, [r3]
+ mov r0, r12
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r3]
+_080F4A92:
+ lsls r0, r4, 16
+ lsrs r5, r0, 16
+ mov r1, r9
+ ldrh r1, [r1]
+ cmp r5, r1
+ bcc _080F4A2C
+_080F4A9E:
+ ldr r3, _080F4AC4
+ ldr r2, [r3]
+ ldr r1, _080F4AC8
+ adds r0, r2, r1
+ movs r1, 0
+ strh r1, [r0]
+ ldr r3, _080F4ACC
+ adds r0, r2, r3
+ strh r1, [r0]
+ subs r3, 0x2
+ adds r0, r2, r3
+ strh r1, [r0]
+ ldr r1, _080F4AD0
+ adds r0, r2, r1
+ ldrh r0, [r0]
+ cmp r0, 0x8
+ bhi _080F4AD4
+ subs r1, r0, 0x1
+ b _080F4AD6
+ .align 2, 0
+_080F4AC4: .4byte gUnknown_083DFEC4
+_080F4AC8: .4byte 0x0000876c
+_080F4ACC: .4byte 0x00008770
+_080F4AD0: .4byte 0x00008fe4
+_080F4AD4:
+ movs r1, 0x7
+_080F4AD6:
+ ldr r3, _080F4B10
+ adds r0, r2, r3
+ strh r1, [r0]
+ ldr r0, _080F4B14
+ ldr r2, [r0]
+ ldr r1, _080F4B18
+ adds r0, r2, r1
+ ldrh r0, [r0]
+ subs r0, 0x1
+ adds r3, 0x2
+ adds r1, r2, r3
+ strh r0, [r1]
+ movs r1, 0
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x7
+ ble _080F4AFA
+ movs r1, 0x1
+_080F4AFA:
+ ldr r3, _080F4B1C
+ adds r0, r2, r3
+ strb r1, [r0]
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F4B10: .4byte 0x00008772
+_080F4B14: .4byte gUnknown_083DFEC4
+_080F4B18: .4byte 0x00008fe4
+_080F4B1C: .4byte 0x000087c9
+ thumb_func_end sub_80F49F4
+
+ thumb_func_start sub_80F4B20
+sub_80F4B20: @ 80F4B20
+ push {r4-r6,lr}
+ ldr r0, _080F4B5C
+ ldr r4, [r0]
+ ldr r0, _080F4B60
+ adds r5, r4, r0
+ movs r1, 0
+ ldrsh r0, [r5, r1]
+ movs r1, 0
+ bl sub_80F4900
+ movs r0, 0
+ bl sub_80F2E18
+ ldr r0, _080F4B64
+ adds r2, r4, r0
+ movs r1, 0
+ ldrsh r0, [r2, r1]
+ cmp r0, 0x1
+ bne _080F4B6C
+ ldr r2, _080F4B68
+ 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]
+ b _080F4BBE
+ .align 2, 0
+_080F4B5C: .4byte gUnknown_083DFEC4
+_080F4B60: .4byte 0x000087dc
+_080F4B64: .4byte 0x000087da
+_080F4B68: .4byte 0x00008fe9
+_080F4B6C:
+ ldr r0, _080F4BC4
+ adds r1, r4, r0
+ movs r0, 0
+ strb r0, [r1]
+ ldr r0, _080F4BC8
+ adds r1, r4, r0
+ movs r0, 0x1
+ strb r0, [r1]
+ ldr r0, _080F4BCC
+ adds r1, r4, r0
+ movs r0, 0x2
+ strb r0, [r1]
+ ldrh r3, [r5]
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ asrs r0, 16
+ ldrh r6, [r2]
+ movs r4, 0
+ ldrsh r1, [r2, r4]
+ cmp r0, r1
+ blt _080F4B9A
+ movs r5, 0
+_080F4B9A:
+ subs r0, r3, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r0, 0
+ bge _080F4BAA
+ subs r0, r6, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+_080F4BAA:
+ lsls r0, r5, 16
+ asrs r0, 16
+ movs r1, 0x1
+ bl sub_80F4900
+ lsls r0, r4, 16
+ asrs r0, 16
+ movs r1, 0x2
+ bl sub_80F4900
+_080F4BBE:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F4BC4: .4byte 0x00008fe9
+_080F4BC8: .4byte 0x00008fea
+_080F4BCC: .4byte 0x00008feb
+ thumb_func_end sub_80F4B20
+
+ thumb_func_start sub_80F4BD0
+sub_80F4BD0: @ 80F4BD0
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ movs r6, 0
+ movs r7, 0
+ ldr r0, _080F4CC4
+ ldr r2, [r0]
+ ldr r3, _080F4CC8
+ adds r1, r2, r3
+ mov r9, r0
+ ldrb r1, [r1]
+ cmp r7, r1
+ bcs _080F4C66
+ mov r10, r9
+ adds r4, r3, 0
+ adds r4, r2
+ mov r8, r4
+_080F4BF6:
+ movs r0, 0x64
+ muls r0, r6
+ ldr r1, _080F4CCC
+ adds r0, r1
+ movs r1, 0x2D
+ bl GetMonData
+ cmp r0, 0
+ bne _080F4C58
+ mov r0, r10
+ ldr r3, [r0]
+ lsls r0, r7, 2
+ adds r3, r0
+ ldr r2, _080F4CD0
+ adds r1, r3, r2
+ movs r0, 0xE
+ strb r0, [r1]
+ ldr r4, _080F4CD4
+ adds r5, r3, r4
+ movs r0, 0x1F
+ adds r2, r6, 0
+ ands r2, r0
+ ldrb r0, [r5]
+ movs r4, 0x20
+ negs r4, r4
+ adds r1, r4, 0
+ ands r0, r1
+ orrs r0, r2
+ strb r0, [r5]
+ adds r4, r7, 0x1
+ ldr r7, _080F4CD8
+ adds r0, r7, 0
+ adds r2, r4, 0
+ ands r2, r0
+ lsls r2, 5
+ ldrh r0, [r5]
+ ldr r7, _080F4CDC
+ adds r1, r7, 0
+ ands r0, r1
+ orrs r0, r2
+ strh r0, [r5]
+ ldr r0, _080F4CE0
+ adds r3, r0
+ ldrb r0, [r3]
+ movs r1, 0x40
+ orrs r0, r1
+ strb r0, [r3]
+ lsls r4, 16
+ lsrs r7, r4, 16
+_080F4C58:
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ mov r1, r8
+ ldrb r1, [r1]
+ cmp r6, r1
+ bcc _080F4BF6
+_080F4C66:
+ mov r2, r9
+ ldr r4, [r2]
+ lsls r1, r7, 2
+ adds r1, r4, r1
+ ldr r3, _080F4CD0
+ adds r0, r1, r3
+ movs r5, 0
+ strb r5, [r0]
+ ldr r0, _080F4CD4
+ adds r2, r1, r0
+ ldrb r3, [r2]
+ movs r0, 0x20
+ negs r0, r0
+ ands r0, r3
+ strb r0, [r2]
+ ldrh r3, [r2]
+ ldr r0, _080F4CDC
+ ands r0, r3
+ strh r0, [r2]
+ ldr r2, _080F4CE0
+ adds r1, r2
+ ldrb r2, [r1]
+ movs r0, 0x41
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1]
+ ldr r3, _080F4CE4
+ adds r0, r4, r3
+ strh r5, [r0]
+ adds r1, r7, 0x1
+ ldr r7, _080F4CE8
+ adds r0, r4, r7
+ strh r1, [r0]
+ bl sub_80F4B20
+ ldr r0, _080F4CEC
+ adds r4, r0
+ movs r0, 0x1
+ strb r0, [r4]
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F4CC4: .4byte gUnknown_083DFEC4
+_080F4CC8: .4byte 0x00008828
+_080F4CCC: .4byte gPlayerParty
+_080F4CD0: .4byte 0x0000893d
+_080F4CD4: .4byte 0x0000893e
+_080F4CD8: .4byte 0x000001ff
+_080F4CDC: .4byte 0xffffc01f
+_080F4CE0: .4byte 0x0000893f
+_080F4CE4: .4byte 0x000087dc
+_080F4CE8: .4byte 0x000087da
+_080F4CEC: .4byte 0x000087cb
+ thumb_func_end sub_80F4BD0
+
+ thumb_func_start sub_80F4CF0
+sub_80F4CF0: @ 80F4CF0
+ push {r4,lr}
+ ldr r0, _080F4D1C
+ ldr r4, [r0]
+ ldr r1, _080F4D20
+ adds r0, r4, r1
+ ldrh r1, [r0]
+ ldr r2, _080F4D24
+ adds r0, r4, r2
+ strh r1, [r0]
+ bl sub_80F4B20
+ ldr r1, _080F4D28
+ adds r0, r4, r1
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ cmp r0, 0
+ bne _080F4D30
+ ldr r0, _080F4D2C
+ adds r1, r4, r0
+ movs r0, 0
+ b _080F4D36
+ .align 2, 0
+_080F4D1C: .4byte gUnknown_083DFEC4
+_080F4D20: .4byte 0x0000876e
+_080F4D24: .4byte 0x000087dc
+_080F4D28: .4byte 0x00008774
+_080F4D2C: .4byte 0x000087cb
+_080F4D30:
+ ldr r2, _080F4D40
+ adds r1, r4, r2
+ movs r0, 0x1
+_080F4D36:
+ strb r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F4D40: .4byte 0x000087cb
+ thumb_func_end sub_80F4CF0
+
+ thumb_func_start sub_80F4D44
+sub_80F4D44: @ 80F4D44
+ push {r4,lr}
+ ldr r0, _080F4D78
+ ldr r4, [r0]
+ ldr r1, _080F4D7C
+ adds r0, r4, r1
+ movs r1, 0
+ strb r1, [r0]
+ ldr r2, _080F4D80
+ adds r0, r4, r2
+ strb r1, [r0]
+ bl sub_80F492C
+ ldr r0, _080F4D84
+ adds r4, r0
+ ldrb r0, [r4]
+ cmp r0, 0
+ bne _080F4D70
+_080F4D66:
+ bl sub_80F4D88
+ lsls r0, 24
+ cmp r0, 0
+ bne _080F4D66
+_080F4D70:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F4D78: .4byte gUnknown_083DFEC4
+_080F4D7C: .4byte 0x00008fe6
+_080F4D80: .4byte 0x00008fe7
+_080F4D84: .4byte 0x00006dac
+ thumb_func_end sub_80F4D44
+
+ thumb_func_start sub_80F4D88
+sub_80F4D88: @ 80F4D88
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ ldr r6, _080F4E98
+ ldr r4, [r6]
+ ldr r1, _080F4E9C
+ adds r0, r4, r1
+ ldrb r3, [r0]
+ cmp r3, 0xE
+ bne _080F4DA4
+ b _080F4EB8
+_080F4DA4:
+ cmp r3, 0xF
+ bne _080F4DAA
+ b _080F4F60
+_080F4DAA:
+ movs r1, 0x80
+ lsls r1, 23
+ ldr r0, [sp]
+ orrs r0, r1
+ str r0, [sp]
+ movs r7, 0
+ mov r10, r6
+ ldr r2, _080F4E9C
+ adds r6, r4, r2
+ ldr r3, _080F4EA0
+ adds r5, r4, r3
+ ldr r0, _080F4EA4
+ adds r0, r4
+ mov r9, r0
+ ldr r1, _080F4EA8
+ mov r8, r1
+_080F4DCA:
+ ldrb r0, [r6]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 5
+ ldrb r2, [r5]
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 4
+ add r1, r8
+ adds r0, r1
+ movs r1, 0xB
+ bl GetBoxMonData
+ cmp r0, 0
+ beq _080F4E60
+ ldrb r0, [r6]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 5
+ ldrb r2, [r5]
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 4
+ add r1, r8
+ adds r0, r1
+ movs r1, 0x2D
+ bl GetBoxMonData
+ cmp r0, 0
+ bne _080F4E60
+ ldrb r1, [r6]
+ lsls r1, 8
+ ldr r2, _080F4EAC
+ ldr r0, [sp]
+ ands r0, r2
+ orrs r0, r1
+ str r0, [sp]
+ ldrb r2, [r5]
+ movs r1, 0x1F
+ ands r2, r1
+ lsls r2, 16
+ ldr r1, _080F4EB0
+ ands r0, r1
+ orrs r0, r2
+ str r0, [sp]
+ ldrb r0, [r6]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 5
+ ldrb r2, [r5]
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 4
+ add r1, r8
+ adds r0, r1
+ mov r2, r9
+ ldrb r1, [r2]
+ bl GetBoxMonData
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080F4EB4
+ ldr r1, [sp]
+ ands r1, r2
+ orrs r1, r0
+ str r1, [sp]
+ mov r0, sp
+ bl sub_80F4944
+_080F4E60:
+ mov r3, r10
+ ldr r1, [r3]
+ ldr r0, _080F4EA0
+ adds r2, r1, r0
+ ldrb r0, [r2]
+ adds r0, 0x1
+ movs r4, 0
+ strb r0, [r2]
+ movs r3, 0xFF
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1E
+ bne _080F4E8C
+ strb r4, [r2]
+ ldr r2, _080F4E9C
+ adds r1, r2
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ ands r0, r3
+ cmp r0, 0xE
+ beq _080F4F64
+_080F4E8C:
+ adds r0, r7, 0x1
+ lsls r0, 16
+ lsrs r7, r0, 16
+ cmp r7, 0xE
+ bls _080F4DCA
+ b _080F4F64
+ .align 2, 0
+_080F4E98: .4byte gUnknown_083DFEC4
+_080F4E9C: .4byte 0x00008fe6
+_080F4EA0: .4byte 0x00008fe7
+_080F4EA4: .4byte 0x000087d8
+_080F4EA8: .4byte gUnknown_020300A4
+_080F4EAC: .4byte 0xffff00ff
+_080F4EB0: .4byte 0xffe0ffff
+_080F4EB4: .4byte 0xffffff00
+_080F4EB8:
+ mov r2, sp
+ ldrb r0, [r2, 0x3]
+ movs r1, 0x40
+ orrs r0, r1
+ strb r0, [r2, 0x3]
+ strb r3, [r2, 0x1]
+ movs r7, 0
+ ldr r3, _080F4F44
+ adds r0, r4, r3
+ ldrb r0, [r0]
+ cmp r7, r0
+ bcs _080F4F24
+ mov r5, sp
+ mov r8, r6
+ adds r6, r4, r3
+_080F4ED6:
+ movs r0, 0x64
+ adds r1, r7, 0
+ muls r1, r0
+ ldr r0, _080F4F48
+ adds r4, r1, r0
+ adds r0, r4, 0
+ movs r1, 0x2D
+ bl GetMonData
+ cmp r0, 0
+ bne _080F4F18
+ movs r0, 0x1F
+ adds r2, r7, 0
+ ands r2, r0
+ ldrb r0, [r5, 0x2]
+ movs r3, 0x20
+ negs r3, r3
+ adds r1, r3, 0
+ ands r0, r1
+ orrs r0, r2
+ strb r0, [r5, 0x2]
+ mov r1, r8
+ ldr r0, [r1]
+ ldr r2, _080F4F4C
+ adds r0, r2
+ ldrb r1, [r0]
+ adds r0, r4, 0
+ bl GetMonData
+ strb r0, [r5]
+ mov r0, sp
+ bl sub_80F4944
+_080F4F18:
+ adds r0, r7, 0x1
+ lsls r0, 16
+ lsrs r7, r0, 16
+ ldrb r3, [r6]
+ cmp r7, r3
+ bcc _080F4ED6
+_080F4F24:
+ bl sub_80F49F4
+ ldr r0, _080F4F50
+ ldr r1, [r0]
+ ldr r2, _080F4F54
+ adds r0, r1, r2
+ ldrh r2, [r0]
+ ldr r3, _080F4F58
+ adds r0, r1, r3
+ strh r2, [r0]
+ ldr r0, _080F4F5C
+ adds r1, r0
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _080F4F64
+ .align 2, 0
+_080F4F44: .4byte 0x00008828
+_080F4F48: .4byte gPlayerParty
+_080F4F4C: .4byte 0x000087d8
+_080F4F50: .4byte gUnknown_083DFEC4
+_080F4F54: .4byte 0x00008fe4
+_080F4F58: .4byte 0x000087da
+_080F4F5C: .4byte 0x00008fe6
+_080F4F60:
+ movs r0, 0
+ b _080F4F66
+_080F4F64:
+ movs r0, 0x1
+_080F4F66:
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80F4D88
+
+ thumb_func_start sub_80F4F78
+sub_80F4F78: @ 80F4F78
+ push {lr}
+ ldr r0, _080F4FA4
+ ldr r1, [r0]
+ ldr r2, _080F4FA8
+ adds r0, r1, r2
+ ldr r3, _080F4FAC
+ adds r2, r1, r3
+ movs r3, 0
+ ldrsb r3, [r2, r3]
+ lsls r2, r3, 2
+ adds r2, r3
+ lsls r2, 2
+ ldr r3, _080F4FB0
+ adds r2, r3
+ adds r1, r2
+ bl sub_80F53EC
+ bl sub_80F5504
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F4FA4: .4byte gUnknown_083DFEC4
+_080F4FA8: .4byte 0x00009040
+_080F4FAC: .4byte 0x00008fe9
+_080F4FB0: .4byte 0x00009004
+ thumb_func_end sub_80F4F78
+
+ thumb_func_start sub_80F4FB4
+sub_80F4FB4: @ 80F4FB4
+ push {r4,lr}
+ bl sub_80F5504
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl sub_80F170C
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0
+ cmp r4, 0
+ bne _080F4FD2
+ cmp r0, 0
+ beq _080F4FD4
+_080F4FD2:
+ movs r1, 0x1
+_080F4FD4:
+ adds r0, r1, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80F4FB4
+
+ thumb_func_start sub_80F4FDC
+sub_80F4FDC: @ 80F4FDC
+ push {lr}
+ ldr r0, _080F5020
+ ldr r2, [r0]
+ ldr r1, _080F5024
+ adds r0, r2, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080F4FFE
+ ldr r3, _080F5028
+ adds r0, r2, r3
+ movs r3, 0
+ ldrsh r1, [r0, r3]
+ ldr r3, _080F502C
+ adds r0, r2, r3
+ ldrb r0, [r0]
+ cmp r1, r0
+ beq _080F501A
+_080F4FFE:
+ ldr r1, _080F5030
+ adds r0, r2, r1
+ movs r1, 0
+ ldrsb r1, [r0, r1]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ ldr r3, _080F5034
+ adds r0, r3
+ adds r0, r2, r0
+ adds r3, 0x3C
+ adds r1, r2, r3
+ bl sub_80F53EC
+_080F501A:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F5020: .4byte gUnknown_083DFEC4
+_080F5024: .4byte 0x000076aa
+_080F5028: .4byte 0x000087dc
+_080F502C: .4byte 0x00008828
+_080F5030: .4byte 0x00008fe9
+_080F5034: .4byte 0x00009004
+ thumb_func_end sub_80F4FDC
+
+ thumb_func_start sub_80F5038
+sub_80F5038: @ 80F5038
+ push {r4,lr}
+ bl sub_80F5504
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl sub_80F173C
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0
+ cmp r4, 0
+ bne _080F5056
+ cmp r0, 0
+ beq _080F5058
+_080F5056:
+ movs r1, 0x1
+_080F5058:
+ adds r0, r1, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80F5038
+
+ thumb_func_start sub_80F5060
+sub_80F5060: @ 80F5060
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r7, r0, 24
+ cmp r7, 0
+ beq _080F507C
+ ldr r0, _080F5074
+ ldr r0, [r0]
+ ldr r1, _080F5078
+ adds r0, r1
+ b _080F5084
+ .align 2, 0
+_080F5074: .4byte gUnknown_083DFEC4
+_080F5078: .4byte 0x00008feb
+_080F507C:
+ ldr r0, _080F50FC
+ ldr r0, [r0]
+ ldr r2, _080F5100
+ adds r0, r2
+_080F5084:
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ lsls r0, 16
+ lsrs r6, r0, 16
+ ldr r0, _080F50FC
+ ldr r4, [r0]
+ ldr r3, _080F5104
+ adds r5, r4, r3
+ movs r1, 0
+ ldrsb r1, [r5, r1]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ ldr r2, _080F5108
+ adds r0, r2
+ adds r0, r4, r0
+ lsls r1, r6, 2
+ adds r1, r6
+ lsls r1, 2
+ adds r1, r2
+ adds r1, r4, r1
+ bl sub_80F53EC
+ ldr r0, _080F510C
+ adds r3, r4, r0
+ movs r1, 0
+ ldrsh r0, [r3, r1]
+ lsls r0, 2
+ adds r0, r4, r0
+ ldr r2, _080F5110
+ adds r0, r2
+ ldrb r0, [r0]
+ lsls r0, 25
+ lsrs r0, 31
+ mov r12, r0
+ cmp r7, 0
+ beq _080F5158
+ ldr r7, _080F5100
+ adds r1, r4, r7
+ ldrb r0, [r1]
+ adds r7, 0x1
+ adds r2, r4, r7
+ strb r0, [r2]
+ ldrb r0, [r5]
+ strb r0, [r1]
+ strb r6, [r5]
+ ldrb r1, [r2]
+ ldr r2, _080F5114
+ adds r0, r4, r2
+ strb r1, [r0]
+ adds r5, r4, 0
+ ldrh r1, [r3]
+ movs r7, 0
+ ldrsh r0, [r3, r7]
+ cmp r0, 0
+ beq _080F5118
+ subs r2, r1, 0x1
+ b _080F5120
+ .align 2, 0
+_080F50FC: .4byte gUnknown_083DFEC4
+_080F5100: .4byte 0x00008fea
+_080F5104: .4byte 0x00008fe9
+_080F5108: .4byte 0x00009004
+_080F510C: .4byte 0x000087dc
+_080F5110: .4byte 0x0000893f
+_080F5114: .4byte 0x00008fec
+_080F5118:
+ ldr r1, _080F513C
+ adds r0, r4, r1
+ ldrh r0, [r0]
+ subs r2, r0, 0x1
+_080F5120:
+ ldr r1, _080F5140
+ adds r0, r5, r1
+ strh r2, [r0]
+ ldr r2, _080F5144
+ ldr r3, [r2]
+ adds r1, r3, r1
+ ldrh r4, [r1]
+ movs r5, 0
+ ldrsh r0, [r1, r5]
+ cmp r0, 0
+ beq _080F5148
+ subs r1, r4, 0x1
+ b _080F51CE
+ .align 2, 0
+_080F513C: .4byte 0x000087da
+_080F5140: .4byte 0x000087dc
+_080F5144: .4byte gUnknown_083DFEC4
+_080F5148:
+ ldr r7, _080F5154
+ adds r0, r3, r7
+ ldrh r0, [r0]
+ subs r1, r0, 0x1
+ b _080F51CE
+ .align 2, 0
+_080F5154: .4byte 0x000087da
+_080F5158:
+ ldr r7, _080F518C
+ adds r1, r4, r7
+ ldrb r0, [r1]
+ subs r7, 0x1
+ adds r2, r4, r7
+ strb r0, [r2]
+ ldrb r0, [r5]
+ strb r0, [r1]
+ strb r6, [r5]
+ ldrb r1, [r2]
+ ldr r2, _080F5190
+ adds r0, r4, r2
+ strb r1, [r0]
+ adds r2, r4, 0
+ movs r4, 0
+ ldrsh r1, [r3, r4]
+ ldr r5, _080F5194
+ adds r0, r2, r5
+ movs r7, 0
+ ldrsh r0, [r0, r7]
+ subs r0, 0x1
+ cmp r1, r0
+ bge _080F5198
+ ldrh r0, [r3]
+ adds r3, r0, 0x1
+ b _080F519A
+ .align 2, 0
+_080F518C: .4byte 0x00008feb
+_080F5190: .4byte 0x00008fec
+_080F5194: .4byte 0x000087da
+_080F5198:
+ movs r3, 0
+_080F519A:
+ ldr r1, _080F51C0
+ adds r0, r2, r1
+ strh r3, [r0]
+ ldr r2, _080F51C4
+ ldr r3, [r2]
+ adds r4, r3, r1
+ movs r0, 0
+ ldrsh r1, [r4, r0]
+ ldr r5, _080F51C8
+ adds r0, r3, r5
+ movs r7, 0
+ ldrsh r0, [r0, r7]
+ subs r0, 0x1
+ cmp r1, r0
+ bge _080F51CC
+ ldrh r0, [r4]
+ adds r1, r0, 0x1
+ b _080F51CE
+ .align 2, 0
+_080F51C0: .4byte 0x000087dc
+_080F51C4: .4byte gUnknown_083DFEC4
+_080F51C8: .4byte 0x000087da
+_080F51CC:
+ movs r1, 0
+_080F51CE:
+ ldr r4, _080F51FC
+ adds r0, r3, r4
+ strh r1, [r0]
+ ldr r1, [r2]
+ ldr r5, _080F5200
+ adds r0, r1, r5
+ movs r7, 0
+ ldrsh r0, [r0, r7]
+ lsls r0, 2
+ adds r0, r1, r0
+ ldr r3, _080F5204
+ adds r0, r3
+ ldrb r0, [r0]
+ lsls r0, 25
+ lsrs r0, 31
+ mov r4, r12
+ cmp r4, 0
+ bne _080F520C
+ adds r5, 0x4
+ adds r1, r5
+ ldr r0, _080F5208
+ b _080F5226
+ .align 2, 0
+_080F51FC: .4byte 0x00008fee
+_080F5200: .4byte 0x000087dc
+_080F5204: .4byte 0x0000893f
+_080F5208: .4byte sub_80F5264
+_080F520C:
+ cmp r0, 0
+ bne _080F5220
+ ldr r7, _080F5218
+ adds r1, r7
+ ldr r0, _080F521C
+ b _080F5226
+ .align 2, 0
+_080F5218: .4byte 0x000087e0
+_080F521C: .4byte sub_80F52F8
+_080F5220:
+ ldr r0, _080F5238
+ adds r1, r0
+ ldr r0, _080F523C
+_080F5226:
+ str r0, [r1]
+ ldr r0, [r2]
+ ldr r1, _080F5240
+ adds r0, r1
+ movs r1, 0
+ strb r1, [r0]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F5238: .4byte 0x000087e0
+_080F523C: .4byte sub_80F5364
+_080F5240: .4byte 0x000087de
+ thumb_func_end sub_80F5060
+
+ thumb_func_start gpu_sync_bg_show
+gpu_sync_bg_show: @ 80F5244
+ push {lr}
+ ldr r0, _080F525C
+ ldr r0, [r0]
+ ldr r1, _080F5260
+ adds r0, r1
+ ldr r0, [r0]
+ bl _call_via_r0
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080F525C: .4byte gUnknown_083DFEC4
+_080F5260: .4byte 0x000087e0
+ thumb_func_end gpu_sync_bg_show
+
+ thumb_func_start sub_80F5264
+sub_80F5264: @ 80F5264
+ push {r4,r5,lr}
+ ldr r0, _080F5280
+ ldr r0, [r0]
+ ldr r1, _080F5284
+ adds r5, r0, r1
+ ldrb r1, [r5]
+ cmp r1, 0x1
+ beq _080F52AA
+ cmp r1, 0x1
+ bgt _080F5288
+ cmp r1, 0
+ beq _080F528E
+ b _080F52F0
+ .align 2, 0
+_080F5280: .4byte gUnknown_083DFEC4
+_080F5284: .4byte 0x000087de
+_080F5288:
+ cmp r1, 0x2
+ beq _080F52EC
+ b _080F52F0
+_080F528E:
+ ldr r2, _080F52D8
+ adds r4, r0, r2
+ ldrb r0, [r4]
+ bl sub_80F2E18
+ movs r0, 0
+ ldrsb r0, [r4, r0]
+ lsls r0, 16
+ lsrs r0, 16
+ bl sub_80F01E0
+ ldrb r0, [r5]
+ adds r0, 0x1
+ strb r0, [r5]
+_080F52AA:
+ bl sub_80F4FB4
+ lsls r0, 24
+ cmp r0, 0
+ bne _080F52F0
+ ldr r0, _080F52DC
+ ldr r4, [r0]
+ ldr r1, _080F52E0
+ adds r0, r4, r1
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ ldr r2, _080F52E4
+ adds r1, r4, r2
+ ldrb r1, [r1]
+ bl sub_80F4900
+ ldr r0, _080F52E8
+ adds r4, r0
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+ b _080F52F0
+ .align 2, 0
+_080F52D8: .4byte 0x00008fe9
+_080F52DC: .4byte gUnknown_083DFEC4
+_080F52E0: .4byte 0x00008fee
+_080F52E4: .4byte 0x00008fec
+_080F52E8: .4byte 0x000087de
+_080F52EC:
+ movs r0, 0
+ b _080F52F2
+_080F52F0:
+ movs r0, 0x1
+_080F52F2:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80F5264
+
+ thumb_func_start sub_80F52F8
+sub_80F52F8: @ 80F52F8
+ push {r4,r5,lr}
+ ldr r0, _080F5310
+ ldr r4, [r0]
+ ldr r0, _080F5314
+ adds r5, r4, r0
+ ldrb r0, [r5]
+ cmp r0, 0
+ beq _080F5318
+ cmp r0, 0x1
+ beq _080F5358
+ b _080F535C
+ .align 2, 0
+_080F5310: .4byte gUnknown_083DFEC4
+_080F5314: .4byte 0x000087de
+_080F5318:
+ bl sub_80F5038
+ lsls r0, 24
+ cmp r0, 0
+ bne _080F535C
+ ldr r1, _080F5350
+ adds r0, r4, r1
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ lsls r0, 16
+ lsrs r0, 16
+ bl sub_80F01E0
+ ldr r2, _080F5354
+ adds r0, r4, r2
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ subs r2, 0x2
+ adds r1, r4, r2
+ ldrb r1, [r1]
+ bl sub_80F4900
+ ldrb r0, [r5]
+ adds r0, 0x1
+ strb r0, [r5]
+ b _080F535C
+ .align 2, 0
+_080F5350: .4byte 0x00008fe9
+_080F5354: .4byte 0x00008fee
+_080F5358:
+ movs r0, 0
+ b _080F535E
+_080F535C:
+ movs r0, 0x1
+_080F535E:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80F52F8
+
+ thumb_func_start sub_80F5364
+sub_80F5364: @ 80F5364
+ push {r4,r5,lr}
+ ldr r0, _080F5380
+ ldr r4, [r0]
+ ldr r0, _080F5384
+ adds r5, r4, r0
+ ldrb r0, [r5]
+ cmp r0, 0x1
+ beq _080F53B8
+ cmp r0, 0x1
+ bgt _080F5388
+ cmp r0, 0
+ beq _080F538E
+ b _080F53E4
+ .align 2, 0
+_080F5380: .4byte gUnknown_083DFEC4
+_080F5384: .4byte 0x000087de
+_080F5388:
+ cmp r0, 0x2
+ beq _080F53CA
+ b _080F53E4
+_080F538E:
+ bl sub_80F5504
+ bl sub_80F173C
+ lsls r0, 24
+ cmp r0, 0
+ bne _080F53E4
+ ldr r1, _080F53B4
+ adds r4, r1
+ ldrb r0, [r4]
+ bl sub_80F2E18
+ movs r0, 0
+ ldrsb r0, [r4, r0]
+ lsls r0, 16
+ lsrs r0, 16
+ bl sub_80F01E0
+ b _080F53C2
+ .align 2, 0
+_080F53B4: .4byte 0x00008fe9
+_080F53B8:
+ bl sub_80F4FB4
+ lsls r0, 24
+ cmp r0, 0
+ bne _080F53E4
+_080F53C2:
+ ldrb r0, [r5]
+ adds r0, 0x1
+ strb r0, [r5]
+ b _080F53E4
+_080F53CA:
+ ldr r2, _080F53E0
+ adds r0, r4, r2
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ subs r2, 0x2
+ adds r1, r4, r2
+ ldrb r1, [r1]
+ bl sub_80F4900
+ movs r0, 0
+ b _080F53E6
+ .align 2, 0
+_080F53E0: .4byte 0x00008fee
+_080F53E4:
+ movs r0, 0x1
+_080F53E6:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80F5364
+
+ thumb_func_start sub_80F53EC
+sub_80F53EC: @ 80F53EC
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0xC
+ str r0, [sp]
+ mov r9, r1
+ movs r7, 0
+ ldr r0, _080F54F4
+ ldr r0, [r0]
+ str r0, [sp, 0x4]
+_080F5404:
+ 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 r8, r4
+_080F5428:
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r0, 2
+ add r0, r8
+ ldr r7, [sp, 0x4]
+ adds r0, r7, r0
+ asrs r2, r5, 8
+ asrs r1, r5, 7
+ movs r7, 0x1
+ ands r1, r7
+ adds r2, r1
+ ldr r1, _080F54F8
+ adds r0, r1
+ strh r2, [r0]
+ adds r5, r6
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0x8
+ bls _080F5428
+ ldr r2, _080F54F4
+ ldr r1, [r2]
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r0, 2
+ adds r0, r4, r0
+ adds r1, r0
+ mov r3, r9
+ adds r2, r4, r3
+ ldrh r0, [r2]
+ ldr r7, _080F54F8
+ adds r1, r7
+ strh r0, [r1]
+ ldr r1, [sp]
+ adds r0, r4, r1
+ 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
+ ldr r0, _080F54F4
+ ldr r0, [r0]
+ mov r12, r0
+ str r4, [sp, 0x8]
+ movs r2, 0x1
+ mov r8, r2
+_080F548E:
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r0, 2
+ ldr r7, [sp, 0x8]
+ adds r0, r7, r0
+ add r0, r12
+ asrs r2, r5, 8
+ asrs r1, r5, 7
+ mov r7, r8
+ ands r1, r7
+ adds r2, r1
+ ldr r1, _080F54FC
+ adds r0, r1
+ strh r2, [r0]
+ adds r5, r6
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0x8
+ bls _080F548E
+ ldr r7, _080F54F4
+ ldr r2, [r7]
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r0, 2
+ adds r0, r4, r0
+ adds r0, r2, r0
+ mov r3, r9
+ adds r1, r4, r3
+ ldrh r1, [r1, 0x2]
+ ldr r7, _080F54FC
+ adds r0, r7
+ strh r1, [r0]
+ mov r1, r10
+ lsls r0, r1, 16
+ lsrs r7, r0, 16
+ cmp r7, 0x4
+ bls _080F5404
+ ldr r3, _080F5500
+ adds r1, r2, r3
+ movs r0, 0
+ strh r0, [r1]
+ add sp, 0xC
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F54F4: .4byte gUnknown_083DFEC4
+_080F54F8: .4byte 0x00009054
+_080F54FC: .4byte 0x00009056
+_080F5500: .4byte 0x00009342
+ thumb_func_end sub_80F53EC
+
+ thumb_func_start sub_80F5504
+sub_80F5504: @ 80F5504
+ push {r4,lr}
+ ldr r0, _080F551C
+ ldr r2, [r0]
+ ldr r0, _080F5520
+ adds r4, r2, r0
+ ldrh r0, [r4]
+ adds r1, r0, 0
+ cmp r1, 0x9
+ bls _080F5524
+ movs r0, 0
+ b _080F5544
+ .align 2, 0
+_080F551C: .4byte gUnknown_083DFEC4
+_080F5520: .4byte 0x00009342
+_080F5524:
+ adds r0, 0x1
+ strh r0, [r4]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080F554C
+ adds r0, r1
+ adds r0, r2, r0
+ bl sub_80F556C
+ ldrh r1, [r4]
+ movs r0, 0xA
+ eors r1, r0
+ negs r0, r1
+ orrs r0, r1
+ lsrs r0, 31
+_080F5544:
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080F554C: .4byte 0x00009054
+ thumb_func_end sub_80F5504
+
+ thumb_func_start sub_80F5550
+sub_80F5550: @ 80F5550
+ push {lr}
+ bl sub_80F53EC
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80F5550
+
+ thumb_func_start sub_80F555C
+sub_80F555C: @ 80F555C
+ push {lr}
+ bl sub_80F5504
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80F555C
+
+ thumb_func_start sub_80F556C
+sub_80F556C: @ 80F556C
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r2, 0
+ ldr r5, _080F55A0
+ ldr r0, [r5]
+ ldr r1, _080F55A4
+ adds r3, r0, r1
+_080F557A:
+ lsls r0, r2, 2
+ adds r1, r3, r0
+ adds r0, r4
+ ldr r0, [r0]
+ str r0, [r1]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0x4
+ bls _080F557A
+ ldr r0, [r5]
+ ldr r1, _080F55A8
+ adds r0, r1
+ movs r1, 0x1
+ strb r1, [r0]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F55A0: .4byte gUnknown_083DFEC4
+_080F55A4: .4byte 0x0000911c
+_080F55A8: .4byte 0x00009344
+ thumb_func_end sub_80F556C
+
+ thumb_func_start sub_80F55AC
+sub_80F55AC: @ 80F55AC
+ 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, _080F5674
+ 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, _080F5678
+ mov r10, r3
+_080F55DE:
+ 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 _080F55FC
+ movs r0, 0x4
+ mov r12, r0
+_080F55FC:
+ mov r1, r12
+ lsls r0, r1, 24
+ asrs r4, r0, 24
+ cmp r4, 0x2
+ bne _080F560C
+ adds r0, r7, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+_080F560C:
+ ldrb r0, [r6]
+ ldr r2, _080F5674
+ 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 _080F5658
+ cmp r2, 0x20
+ bne _080F5652
+ cmp r4, 0x2
+ beq _080F5658
+_080F5652:
+ adds r0, r5, 0
+ adds r0, 0x9C
+ strh r0, [r3]
+_080F5658:
+ mov r0, r9
+ adds r0, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+ mov r9, r0
+ cmp r0, 0x4
+ bls _080F55DE
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F5674: .4byte gUnknown_083E4890
+_080F5678: .4byte gSineTable
+ thumb_func_end sub_80F55AC
+
+ thumb_func_start sub_80F567C
+sub_80F567C: @ 80F567C
+ push {lr}
+ bl sub_80F55AC
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80F567C
+
+ thumb_func_start sub_80F5688
+sub_80F5688: @ 80F5688
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x14
+ adds r6, r0, 0
+ adds r5, r1, 0
+ str r2, [sp]
+ ldr r7, [sp, 0x34]
+ lsls r3, 24
+ lsrs r3, 24
+ mov r9, r3
+ movs r0, 0
+ str r0, [sp, 0x8]
+ ldrh r0, [r5, 0x2]
+ ldrh r1, [r2, 0x2]
+ cmp r0, r1
+ bcs _080F56D0
+ adds r2, r0, 0
+ str r2, [sp, 0x4]
+ ldr r3, [sp]
+ ldrh r0, [r3, 0x2]
+ ldrh r1, [r5]
+ lsls r4, r1, 10
+ ldrh r2, [r3]
+ mov r10, r2
+ ldr r3, [sp, 0x4]
+ subs r0, r3
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ cmp r0, 0
+ beq _080F56FC
+ subs r0, r2, r1
+ b _080F56F2
+_080F56D0:
+ ldrh r0, [r5, 0x2]
+ ldr r1, [sp]
+ ldrh r1, [r1, 0x2]
+ str r1, [sp, 0x4]
+ ldr r2, [sp]
+ ldrh r1, [r2]
+ lsls r4, r1, 10
+ ldrh r3, [r5]
+ mov r10, r3
+ ldr r2, [sp, 0x4]
+ subs r0, r2
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ cmp r0, 0
+ beq _080F56FC
+ subs r0, r3, r1
+_080F56F2:
+ lsls r0, 10
+ mov r1, r8
+ bl __divsi3
+ str r0, [sp, 0x8]
+_080F56FC:
+ mov r0, r8
+ adds r0, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ cmp r7, 0
+ bne _080F5746
+ ldr r0, [sp, 0x4]
+ subs r0, 0x38
+ lsls r0, 2
+ adds r6, r0
+ movs r5, 0
+ mov r3, r9
+ lsls r3, 1
+ mov r12, r3
+ mov r0, r10
+ add r0, r9
+ str r0, [sp, 0xC]
+ cmp r7, r8
+ bcs _080F57D4
+ movs r7, 0x1
+_080F5726:
+ 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, 0x8]
+ adds r4, r1
+ adds r6, 0x4
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, r8
+ bcc _080F5726
+ b _080F57D4
+_080F5746:
+ ldr r2, [sp, 0x8]
+ cmp r2, 0
+ ble _080F57E4
+ ldr r0, [sp, 0x4]
+ subs r0, 0x38
+ lsls r0, 2
+ adds r7, r0
+ movs r5, 0
+ mov r3, r9
+ lsls r3, 1
+ mov r12, r3
+ mov r0, r10
+ add r0, r9
+ str r0, [sp, 0xC]
+ cmp r5, r8
+ bcs _080F5798
+ ldr r0, _080F57D8
+ cmp r4, r0
+ bgt _080F5798
+ mov r1, r12
+ str r1, [sp, 0x10]
+ mov r10, r0
+_080F5772:
+ ldr r3, [sp, 0x10]
+ 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, 0x8]
+ adds r4, r0
+ adds r7, 0x4
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, r8
+ bcs _080F5798
+ cmp r4, r10
+ ble _080F5772
+_080F5798:
+ ldr r1, _080F57DC
+ ldr r0, [r1]
+ ldr r2, [sp, 0x4]
+ adds r1, r2, r5
+ ldr r3, _080F57E0
+ adds r0, r3
+ strh r1, [r0]
+ ldrh r0, [r0]
+ subs r0, 0x38
+ lsls r0, 2
+ adds r6, r0
+ cmp r5, r8
+ bcs _080F57D4
+ mov r3, r12
+ movs r7, 0x1
+_080F57B6:
+ 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, 0x8]
+ adds r4, r0
+ adds r6, 0x4
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, r8
+ bcc _080F57B6
+_080F57D4:
+ subs r0, r6, 0x4
+ b _080F58C4
+ .align 2, 0
+_080F57D8: .4byte 0x00026bff
+_080F57DC: .4byte gUnknown_083DFEC4
+_080F57E0: .4byte 0x00009340
+_080F57E4:
+ ldr r1, [sp, 0x8]
+ cmp r1, 0
+ bge _080F5890
+ ldr r0, [sp, 0x4]
+ subs r0, 0x38
+ lsls r0, 2
+ adds r6, r0
+ movs r5, 0
+ mov r2, r9
+ lsls r2, 1
+ mov r12, r2
+ mov r3, r10
+ add r3, r9
+ str r3, [sp, 0xC]
+ cmp r5, r8
+ bcs _080F5842
+ 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 _080F5838
+_080F5816:
+ ldr r0, [sp, 0x8]
+ adds r4, r0
+ adds r6, 0x4
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, r8
+ bcs _080F5842
+ 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]
+_080F5838:
+ ldr r0, _080F5884
+ cmp r4, r0
+ bgt _080F5816
+ movs r0, 0x9B
+ strh r0, [r3]
+_080F5842:
+ ldr r2, _080F5888
+ ldr r0, [r2]
+ ldr r3, [sp, 0x4]
+ adds r1, r3, r5
+ ldr r2, _080F588C
+ adds r0, r2
+ strh r1, [r0]
+ ldrh r0, [r0]
+ subs r0, 0x38
+ lsls r0, 2
+ adds r7, r0
+ cmp r5, r8
+ bcs _080F587E
+ mov r3, r12
+ movs r6, 0x1
+_080F5860:
+ 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, 0x8]
+ adds r4, r0
+ adds r7, 0x4
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, r8
+ bcc _080F5860
+_080F587E:
+ subs r0, r7, 0x4
+ b _080F58C4
+ .align 2, 0
+_080F5884: .4byte 0x00026bff
+_080F5888: .4byte gUnknown_083DFEC4
+_080F588C: .4byte 0x00009340
+_080F5890:
+ ldr r0, _080F58BC
+ ldr r0, [r0]
+ ldr r1, _080F58C0
+ adds r0, r1
+ mov r2, sp
+ ldrh r2, [r2, 0x4]
+ strh r2, [r0]
+ ldr r0, [sp, 0x4]
+ subs r0, 0x38
+ lsls r0, 2
+ adds r6, r0
+ adds r7, r0
+ ldrh r0, [r5]
+ adds r0, 0x1
+ strh r0, [r6, 0x2]
+ ldr r3, [sp]
+ ldrh r0, [r3]
+ strh r0, [r7]
+ movs r0, 0x9B
+ strh r0, [r7, 0x2]
+ b _080F58CC
+ .align 2, 0
+_080F58BC: .4byte gUnknown_083DFEC4
+_080F58C0: .4byte 0x00009340
+_080F58C4:
+ add r0, r12
+ mov r1, sp
+ ldrh r1, [r1, 0xC]
+ strh r1, [r0]
+_080F58CC:
+ add sp, 0x14
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80F5688
+
+ thumb_func_start sub_80F58DC
+sub_80F58DC: @ 80F58DC
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ adds r5, r0, 0
+ ldrh r0, [r5, 0x2]
+ ldrh r1, [r5, 0x6]
+ cmp r0, r1
+ bcs _080F5914
+ adds r4, r0, 0
+ mov r8, r4
+ ldr r0, _080F590C
+ ldr r0, [r0]
+ ldr r1, _080F5910
+ adds r0, r1
+ adds r4, r5, 0x4
+ movs r1, 0
+ str r1, [sp]
+ adds r1, r5, 0
+ adds r2, r4, 0
+ movs r3, 0x1
+ bl sub_80F5688
+ b _080F5930
+ .align 2, 0
+_080F590C: .4byte gUnknown_083DFEC4
+_080F5910: .4byte 0x00009130
+_080F5914:
+ ldrh r4, [r5, 0x6]
+ mov r8, r4
+ ldr r0, _080F5A08
+ ldr r0, [r0]
+ ldr r1, _080F5A0C
+ adds r0, r1
+ adds r4, r5, 0x4
+ movs r1, 0
+ str r1, [sp]
+ adds r1, r4, 0
+ adds r2, r5, 0
+ movs r3, 0
+ bl sub_80F5688
+_080F5930:
+ adds r1, r4, 0
+ ldr r0, _080F5A08
+ ldr r6, [r0]
+ ldr r0, _080F5A0C
+ adds r4, r6, r0
+ adds r7, r5, 0
+ adds r7, 0x8
+ movs r0, 0
+ str r0, [sp]
+ adds r0, r4, 0
+ adds r2, r7, 0
+ movs r3, 0x1
+ bl sub_80F5688
+ movs r3, 0
+ ldrh r0, [r5, 0xA]
+ ldrh r1, [r5, 0xE]
+ cmp r0, r1
+ bhi _080F5958
+ movs r3, 0x1
+_080F5958:
+ adds r2, r5, 0
+ adds r2, 0xC
+ ldr r1, _080F5A10
+ adds r0, r6, r1
+ str r0, [sp]
+ adds r0, r4, 0
+ adds r1, r7, 0
+ bl sub_80F5688
+ movs r2, 0x38
+ cmp r2, r8
+ bcs _080F5990
+ adds r7, r4, 0
+ movs r3, 0
+ ldr r0, _080F5A14
+ adds r4, r6, r0
+_080F5978:
+ adds r0, r2, 0
+ subs r0, 0x38
+ lsls r0, 2
+ adds r1, r7, r0
+ strh r3, [r1]
+ adds r0, r4, r0
+ strh r3, [r0]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, r8
+ bcc _080F5978
+_080F5990:
+ ldrh r2, [r5, 0x2]
+ ldr r0, _080F5A08
+ ldr r3, [r0]
+ ldr r4, _080F5A18
+ adds r1, r3, r4
+ adds r6, r0, 0
+ ldrh r0, [r1]
+ cmp r2, r0
+ bhi _080F59BE
+ ldr r4, _080F5A0C
+ adds r3, r4
+ movs r4, 0x9B
+_080F59A8:
+ adds r0, r2, 0
+ subs r0, 0x38
+ lsls r0, 2
+ adds r0, r3, r0
+ strh r4, [r0]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ ldrh r0, [r1]
+ cmp r2, r0
+ bls _080F59A8
+_080F59BE:
+ ldr r4, [r6]
+ ldr r1, _080F5A18
+ adds r0, r4, r1
+ ldrh r0, [r0]
+ ldrh r1, [r5, 0xA]
+ cmp r0, r1
+ bcs _080F59CE
+ adds r0, r1, 0
+_080F59CE:
+ adds r0, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0x79
+ bhi _080F59FA
+ ldr r0, _080F5A0C
+ adds r5, r4, r0
+ movs r3, 0
+ ldr r1, _080F5A14
+ adds r4, r1
+_080F59E2:
+ adds r0, r2, 0
+ subs r0, 0x38
+ lsls r0, 2
+ adds r1, r5, r0
+ strh r3, [r1]
+ adds r0, r4, r0
+ strh r3, [r0]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0x79
+ bls _080F59E2
+_080F59FA:
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F5A08: .4byte gUnknown_083DFEC4
+_080F5A0C: .4byte 0x00009130
+_080F5A10: .4byte 0x00009238
+_080F5A14: .4byte 0x00009132
+_080F5A18: .4byte 0x00009340
+ thumb_func_end sub_80F58DC
+
+ thumb_func_start sub_80F5A1C
+sub_80F5A1C: @ 80F5A1C
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ adds r5, r0, 0
+ ldrh r0, [r5, 0x2]
+ ldrh r1, [r5, 0x12]
+ cmp r0, r1
+ bcs _080F5A54
+ adds r7, r0, 0
+ ldr r0, _080F5A4C
+ ldr r0, [r0]
+ ldr r2, _080F5A50
+ adds r0, r2
+ adds r4, r5, 0
+ adds r4, 0x10
+ movs r1, 0
+ str r1, [sp]
+ adds r1, r5, 0
+ adds r2, r4, 0
+ movs r3, 0
+ bl sub_80F5688
+ b _080F5A70
+ .align 2, 0
+_080F5A4C: .4byte gUnknown_083DFEC4
+_080F5A50: .4byte 0x00009238
+_080F5A54:
+ ldrh r7, [r5, 0x12]
+ ldr r0, _080F5B28
+ ldr r0, [r0]
+ ldr r4, _080F5B2C
+ adds r0, r4
+ adds r4, r5, 0
+ adds r4, 0x10
+ movs r1, 0
+ str r1, [sp]
+ adds r1, r4, 0
+ adds r2, r5, 0
+ movs r3, 0x1
+ bl sub_80F5688
+_080F5A70:
+ adds r1, r4, 0
+ ldr r0, _080F5B28
+ ldr r0, [r0]
+ mov r8, r0
+ ldr r4, _080F5B2C
+ add r4, r8
+ adds r2, r5, 0
+ adds r2, 0xC
+ movs r0, 0
+ str r0, [sp]
+ adds r0, r4, 0
+ movs r3, 0
+ bl sub_80F5688
+ movs r2, 0x38
+ cmp r2, r7
+ bcs _080F5AB2
+ adds r6, r4, 0
+ movs r3, 0
+ ldr r4, _080F5B30
+ add r4, r8
+_080F5A9A:
+ adds r0, r2, 0
+ subs r0, 0x38
+ lsls r0, 2
+ adds r1, r6, r0
+ strh r3, [r1]
+ adds r0, r4, r0
+ strh r3, [r0]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, r7
+ bcc _080F5A9A
+_080F5AB2:
+ ldrh r2, [r5, 0x2]
+ ldr r0, _080F5B28
+ ldr r3, [r0]
+ ldr r4, _080F5B34
+ adds r1, r3, r4
+ adds r6, r0, 0
+ ldrh r0, [r1]
+ cmp r2, r0
+ bhi _080F5AE0
+ ldr r4, _080F5B30
+ adds r3, r4
+ movs r4, 0x9B
+_080F5ACA:
+ adds r0, r2, 0
+ subs r0, 0x38
+ lsls r0, 2
+ adds r0, r3, r0
+ strh r4, [r0]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ ldrh r0, [r1]
+ cmp r2, r0
+ bls _080F5ACA
+_080F5AE0:
+ ldrh r0, [r5, 0xE]
+ adds r1, r0, 0x1
+ ldr r3, [r6]
+ ldr r2, _080F5B34
+ adds r0, r3, r2
+ ldrh r0, [r0]
+ cmp r0, r1
+ bge _080F5AF2
+ adds r0, r1, 0
+_080F5AF2:
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0x79
+ bhi _080F5B1C
+ ldr r4, _080F5B2C
+ adds r5, r3, r4
+ movs r4, 0
+ ldr r0, _080F5B30
+ adds r3, r0
+_080F5B04:
+ adds r0, r2, 0
+ subs r0, 0x38
+ lsls r0, 2
+ adds r1, r5, r0
+ strh r4, [r1]
+ adds r0, r3, r0
+ strh r4, [r0]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0x79
+ bls _080F5B04
+_080F5B1C:
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F5B28: .4byte gUnknown_083DFEC4
+_080F5B2C: .4byte 0x00009238
+_080F5B30: .4byte 0x0000923a
+_080F5B34: .4byte 0x00009340
+ thumb_func_end sub_80F5A1C
+
+ thumb_func_start sub_80F5B38
+sub_80F5B38: @ 80F5B38
+ ldr r0, _080F5B48
+ ldr r0, [r0]
+ ldr r1, _080F5B4C
+ adds r0, r1
+ movs r1, 0
+ strb r1, [r0]
+ bx lr
+ .align 2, 0
+_080F5B48: .4byte gUnknown_083DFEC4
+_080F5B4C: .4byte 0x00009345
+ thumb_func_end sub_80F5B38
+
+ thumb_func_start sub_80F5B50
+sub_80F5B50: @ 80F5B50
+ push {r4,r5,lr}
+ sub sp, 0xC
+ ldr r0, _080F5B68
+ ldr r0, [r0]
+ ldr r1, _080F5B6C
+ adds r4, r0, r1
+ ldrb r0, [r4]
+ cmp r0, 0
+ beq _080F5B70
+ cmp r0, 0x1
+ beq _080F5BB4
+ b _080F5BCC
+ .align 2, 0
+_080F5B68: .4byte gUnknown_083DFEC4
+_080F5B6C: .4byte 0x00009345
+_080F5B70:
+ bl dp12_8087EA4
+ ldr r0, _080F5BA8
+ movs r2, 0xEF
+ movs r3, 0xF4
+ lsls r3, 3
+ adds r1, r0, r3
+ adds r0, 0x20
+ movs r3, 0xF
+_080F5B82:
+ strh r2, [r0]
+ strh r2, [r0, 0x2]
+ strh r2, [r1]
+ strh r2, [r1, 0x2]
+ adds r1, 0x4
+ adds r0, 0x4
+ subs r3, 0x1
+ cmp r3, 0
+ bge _080F5B82
+ ldr r0, _080F5BAC
+ ldr r1, [r0]
+ ldr r5, _080F5BB0
+ adds r1, r5
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ movs r0, 0x1
+ b _080F5BCE
+ .align 2, 0
+_080F5BA8: .4byte gUnknown_03004DE0
+_080F5BAC: .4byte gUnknown_083DFEC4
+_080F5BB0: .4byte 0x00009345
+_080F5BB4:
+ mov r0, sp
+ ldr r1, _080F5BD8
+ ldm r1!, {r2,r3,r5}
+ stm r0!, {r2,r3,r5}
+ ldr r0, [sp]
+ ldr r1, [sp, 0x4]
+ ldr r2, [sp, 0x8]
+ bl sub_80895F8
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+_080F5BCC:
+ movs r0, 0
+_080F5BCE:
+ add sp, 0xC
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080F5BD8: .4byte gUnknown_083E4990
+ thumb_func_end sub_80F5B50
+
+ thumb_func_start sub_80F5BDC
+sub_80F5BDC: @ 80F5BDC
+ push {lr}
+ ldr r1, _080F5BEC
+ movs r0, 0x3
+ strb r0, [r1, 0x15]
+ bl sub_8089668
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F5BEC: .4byte gUnknown_03004DC0
+ thumb_func_end sub_80F5BDC
+
+ thumb_func_start sub_80F5BF0
+sub_80F5BF0: @ 80F5BF0
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0xC
+ ldr r0, _080F5CB8
+ ldr r5, [r0]
+ ldr r1, _080F5CBC
+ adds r0, r5, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080F5CA6
+ ldr r0, _080F5CC0
+ adds r4, r5, r0
+ adds r0, r4, 0
+ bl sub_80F58DC
+ adds r0, r4, 0
+ bl sub_80F5A1C
+ movs r6, 0
+ ldr r1, _080F5CC4
+ mov r12, r1
+ movs r0, 0xF0
+ lsls r0, 3
+ add r0, r12
+ mov r9, r0
+ adds r7, r5, 0
+ ldr r1, _080F5CC8
+ mov r8, r1
+ ldr r5, _080F5CCC
+ adds r5, r7, r5
+ str r5, [sp]
+ ldr r0, _080F5CD0
+ adds r0, r7, r0
+ str r0, [sp, 0x4]
+ ldr r1, _080F5CD4
+ adds r1, r7
+ mov r10, r1
+_080F5C40:
+ adds r2, r6, 0
+ adds r2, 0x37
+ lsls r3, r2, 2
+ mov r5, r9
+ adds r5, r3, r5
+ str r5, [sp, 0x8]
+ add r3, r12
+ lsls r4, r6, 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, 0x8]
+ strh r0, [r5]
+ lsls r2, 1
+ adds r2, 0x1
+ lsls r2, 1
+ mov r0, r9
+ adds r3, r2, r0
+ add r2, r12
+ mov r1, r10
+ adds r0, r1, r4
+ ldrh r1, [r0]
+ lsls r1, 8
+ ldr r5, _080F5CD8
+ adds r0, r7, r5
+ adds r0, r4
+ ldrh r0, [r0]
+ orrs r1, r0
+ strh r1, [r2]
+ mov r0, r8
+ ands r1, r0
+ strh r1, [r3]
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ ldr r0, _080F5CB8
+ cmp r6, 0x41
+ bls _080F5C40
+ ldr r0, [r0]
+ ldr r1, _080F5CBC
+ adds r0, r1
+ movs r1, 0
+ strb r1, [r0]
+_080F5CA6:
+ add sp, 0xC
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F5CB8: .4byte gUnknown_083DFEC4
+_080F5CBC: .4byte 0x00009344
+_080F5CC0: .4byte 0x0000911c
+_080F5CC4: .4byte gUnknown_03004DE0
+_080F5CC8: .4byte 0x0000ffff
+_080F5CCC: .4byte 0x00009130
+_080F5CD0: .4byte 0x00009132
+_080F5CD4: .4byte 0x00009238
+_080F5CD8: .4byte 0x0000923a
+ thumb_func_end sub_80F5BF0
+
+ thumb_func_start sub_80F5CDC
+sub_80F5CDC: @ 80F5CDC
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, _080F5DB0
+ ldr r6, [r0]
+ ldr r1, _080F5DB4
+ adds r0, r6, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080F5DA0
+ ldr r0, _080F5DB8
+ adds r4, r6, r0
+ adds r0, r4, 0
+ bl sub_80F58DC
+ adds r0, r4, 0
+ bl sub_80F5A1C
+ movs r0, 0x37
+ subs r0, r5
+ lsls r0, 17
+ lsrs r5, r0, 16
+ movs r7, 0
+ ldr r1, _080F5DBC
+ mov r12, r1
+ movs r4, 0xF0
+ lsls r4, 3
+ add r4, r12
+ mov r9, r4
+ ldr r0, _080F5DC0
+ mov r8, r0
+ ldr r1, _080F5DC4
+ adds r1, r6, r1
+ str r1, [sp]
+ ldr r4, _080F5DC8
+ adds r4, r6, r4
+ str r4, [sp, 0x4]
+ ldr r0, _080F5DCC
+ adds r0, r6
+ mov r10, r0
+_080F5D36:
+ lsls r2, r5, 1
+ mov r1, r9
+ adds r1, r2, r1
+ str r1, [sp, 0x8]
+ add r2, r12
+ lsls r3, r7, 2
+ ldr r4, [sp]
+ adds r0, r4, r3
+ ldrh r0, [r0]
+ lsls r0, 8
+ ldr r4, [sp, 0x4]
+ adds r1, r4, r3
+ ldrh r1, [r1]
+ orrs r0, r1
+ strh r0, [r2]
+ mov r1, r8
+ ands r0, r1
+ ldr r4, [sp, 0x8]
+ strh r0, [r4]
+ adds r2, r5, 0x1
+ lsls r2, 1
+ mov r0, r9
+ adds r0, r2, r0
+ str r0, [sp, 0x8]
+ add r2, r12
+ mov r1, r10
+ adds r0, r1, r3
+ ldrh r1, [r0]
+ lsls r1, 8
+ ldr r4, _080F5DD0
+ adds r0, r6, r4
+ adds r0, r3
+ ldrh r0, [r0]
+ orrs r1, r0
+ strh r1, [r2]
+ mov r0, r8
+ ands r1, r0
+ ldr r4, [sp, 0x8]
+ strh r1, [r4]
+ adds r0, r5, 0x2
+ lsls r0, 16
+ lsrs r5, r0, 16
+ adds r0, r7, 0x1
+ lsls r0, 16
+ lsrs r7, r0, 16
+ ldr r0, _080F5DB0
+ cmp r7, 0x41
+ bls _080F5D36
+ ldr r0, [r0]
+ ldr r1, _080F5DB4
+ adds r0, r1
+ movs r1, 0
+ strb r1, [r0]
+_080F5DA0:
+ add sp, 0xC
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F5DB0: .4byte gUnknown_083DFEC4
+_080F5DB4: .4byte 0x00009344
+_080F5DB8: .4byte 0x0000911c
+_080F5DBC: .4byte gUnknown_03004DE0
+_080F5DC0: .4byte 0x0000ffff
+_080F5DC4: .4byte 0x00009130
+_080F5DC8: .4byte 0x00009132
+_080F5DCC: .4byte 0x00009238
+_080F5DD0: .4byte 0x0000923a
+ thumb_func_end sub_80F5CDC
+
+ thumb_func_start sub_80F5DD4
+sub_80F5DD4: @ 80F5DD4
+ push {lr}
+ ldr r0, _080F5DE8
+ ldrh r1, [r0, 0x30]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _080F5DEC
+ bl sub_80F5E20
+ b _080F5E18
+ .align 2, 0
+_080F5DE8: .4byte gMain
+_080F5DEC:
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _080F5DFA
+ bl sub_80F5EE4
+ b _080F5E18
+_080F5DFA:
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _080F5E08
+ bl sub_80F5FB4
+ b _080F5E18
+_080F5E08:
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ bne _080F5E14
+ movs r0, 0
+ b _080F5E1C
+_080F5E14:
+ bl sub_80F6010
+_080F5E18:
+ lsls r0, 24
+ lsrs r0, 24
+_080F5E1C:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80F5DD4
+
+ thumb_func_start sub_80F5E20
+sub_80F5E20: @ 80F5E20
+ push {r4,r5,lr}
+ ldr r0, _080F5E38
+ ldr r2, [r0]
+ ldr r3, _080F5E3C
+ adds r1, r2, r3
+ movs r5, 0
+ ldrsh r1, [r1, r5]
+ adds r4, r0, 0
+ cmp r1, 0
+ bne _080F5E40
+ movs r0, 0
+ b _080F5EC8
+ .align 2, 0
+_080F5E38: .4byte gUnknown_083DFEC4
+_080F5E3C: .4byte 0x0000876e
+_080F5E40:
+ ldr r1, _080F5E6C
+ adds r0, r2, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080F5E74
+ ldr r3, _080F5E70
+ adds r0, r2, r3
+ movs r5, 0
+ ldrsh r0, [r0, r5]
+ cmp r0, 0
+ bne _080F5E74
+ movs r4, 0x1
+ negs r4, r4
+ adds r0, r4, 0
+ bl sub_80F063C
+ adds r0, r4, 0
+ bl sub_80F6074
+ movs r0, 0x2
+ b _080F5EC8
+ .align 2, 0
+_080F5E6C: .4byte 0x000087c9
+_080F5E70: .4byte 0x0000876c
+_080F5E74:
+ ldr r1, [r4]
+ ldr r0, _080F5ED0
+ adds r2, r1, r0
+ ldrh r0, [r2]
+ subs r3, r0, 0x1
+ strh r3, [r2]
+ ldr r5, _080F5ED4
+ adds r0, r1, r5
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080F5E98
+ lsls r0, r3, 16
+ cmp r0, 0
+ bge _080F5E98
+ ldr r3, _080F5ED8
+ adds r0, r1, r3
+ ldrh r0, [r0]
+ strh r0, [r2]
+_080F5E98:
+ ldr r0, [r4]
+ ldr r5, _080F5EDC
+ adds r2, r0, r5
+ ldr r3, _080F5ED0
+ adds r1, r0, r3
+ ldrh r1, [r1]
+ ldrh r2, [r2]
+ adds r2, r1, r2
+ subs r5, 0x2
+ adds r4, r0, r5
+ strh r2, [r4]
+ ldr r1, _080F5EE0
+ adds r0, r1
+ lsls r1, r2, 16
+ asrs r1, 16
+ ldrh r3, [r0]
+ movs r5, 0
+ ldrsh r0, [r0, r5]
+ cmp r1, r0
+ ble _080F5EC6
+ subs r0, r2, 0x1
+ subs r0, r3
+ strh r0, [r4]
+_080F5EC6:
+ movs r0, 0x1
+_080F5EC8:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080F5ED0: .4byte 0x0000876c
+_080F5ED4: .4byte 0x000087c9
+_080F5ED8: .4byte 0x00008772
+_080F5EDC: .4byte 0x00008770
+_080F5EE0: .4byte 0x00008774
+ thumb_func_end sub_80F5E20
+
+ thumb_func_start sub_80F5EE4
+sub_80F5EE4: @ 80F5EE4
+ push {r4-r6,lr}
+ ldr r3, _080F5F04
+ ldr r4, [r3]
+ ldr r1, _080F5F08
+ adds r0, r4, r1
+ ldr r2, _080F5F0C
+ adds r1, r4, r2
+ movs r5, 0
+ ldrsh r2, [r0, r5]
+ movs r6, 0
+ ldrsh r0, [r1, r6]
+ adds r5, r3, 0
+ cmp r2, r0
+ bne _080F5F10
+ movs r0, 0
+ b _080F5F98
+ .align 2, 0
+_080F5F04: .4byte gUnknown_083DFEC4
+_080F5F08: .4byte 0x0000876e
+_080F5F0C: .4byte 0x00008774
+_080F5F10:
+ ldr r1, _080F5F38
+ adds r0, r4, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080F5F40
+ ldr r2, _080F5F3C
+ adds r0, r4, r2
+ movs r3, 0
+ ldrsh r0, [r0, r3]
+ cmp r0, 0x7
+ bne _080F5F40
+ movs r0, 0x1
+ bl sub_80F063C
+ movs r0, 0x1
+ bl sub_80F6074
+ movs r0, 0x2
+ b _080F5F98
+ .align 2, 0
+_080F5F38: .4byte 0x000087c9
+_080F5F3C: .4byte 0x0000876c
+_080F5F40:
+ ldr r2, [r5]
+ ldr r6, _080F5FA0
+ adds r4, r2, r6
+ ldrh r0, [r4]
+ adds r1, r0, 0x1
+ strh r1, [r4]
+ ldr r3, _080F5FA4
+ adds r0, r2, r3
+ ldrb r3, [r0]
+ cmp r3, 0
+ bne _080F5F68
+ adds r6, 0x6
+ adds r0, r2, r6
+ lsls r1, 16
+ asrs r1, 16
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ cmp r1, r0
+ ble _080F5F68
+ strh r3, [r4]
+_080F5F68:
+ ldr r0, [r5]
+ ldr r3, _080F5FA8
+ adds r2, r0, r3
+ ldr r5, _080F5FA0
+ adds r1, r0, r5
+ ldrh r1, [r1]
+ ldrh r2, [r2]
+ adds r2, r1, r2
+ ldr r6, _080F5FAC
+ adds r4, r0, r6
+ strh r2, [r4]
+ ldr r1, _080F5FB0
+ adds r0, r1
+ lsls r1, r2, 16
+ asrs r1, 16
+ ldrh r3, [r0]
+ movs r5, 0
+ ldrsh r0, [r0, r5]
+ cmp r1, r0
+ ble _080F5F96
+ subs r0, r2, 0x1
+ subs r0, r3
+ strh r0, [r4]
+_080F5F96:
+ movs r0, 0x1
+_080F5F98:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080F5FA0: .4byte 0x0000876c
+_080F5FA4: .4byte 0x000087c9
+_080F5FA8: .4byte 0x00008770
+_080F5FAC: .4byte 0x0000876e
+_080F5FB0: .4byte 0x00008774
+ thumb_func_end sub_80F5EE4
+
+ thumb_func_start sub_80F5FB4
+sub_80F5FB4: @ 80F5FB4
+ push {r4,lr}
+ ldr r0, _080F5FD8
+ ldr r1, [r0]
+ ldr r2, _080F5FDC
+ adds r0, r1, r2
+ ldrh r3, [r0]
+ movs r4, 0
+ ldrsh r2, [r0, r4]
+ cmp r2, 0
+ beq _080F5FD2
+ ldr r4, _080F5FE0
+ adds r0, r1, r4
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080F5FE4
+_080F5FD2:
+ movs r0, 0
+ b _080F6004
+ .align 2, 0
+_080F5FD8: .4byte gUnknown_083DFEC4
+_080F5FDC: .4byte 0x00008770
+_080F5FE0: .4byte 0x000087c9
+_080F5FE4:
+ cmp r2, 0x7
+ bgt _080F5FF0
+ negs r0, r3
+ lsls r0, 16
+ lsrs r0, 16
+ b _080F5FF2
+_080F5FF0:
+ ldr r0, _080F600C
+_080F5FF2:
+ lsls r4, r0, 16
+ asrs r4, 16
+ adds r0, r4, 0
+ bl sub_80F063C
+ adds r0, r4, 0
+ bl sub_80F6074
+ movs r0, 0x2
+_080F6004:
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080F600C: .4byte 0x0000fff8
+ thumb_func_end sub_80F5FB4
+
+ thumb_func_start sub_80F6010
+sub_80F6010: @ 80F6010
+ push {r4-r6,lr}
+ ldr r0, _080F603C
+ ldr r3, [r0]
+ ldr r1, _080F6040
+ adds r0, r3, r1
+ ldr r2, _080F6044
+ adds r1, r3, r2
+ ldrh r5, [r0]
+ movs r4, 0
+ ldrsh r2, [r0, r4]
+ ldrh r4, [r1]
+ movs r6, 0
+ ldrsh r0, [r1, r6]
+ cmp r2, r0
+ beq _080F6038
+ ldr r1, _080F6048
+ adds r0, r3, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080F604C
+_080F6038:
+ movs r0, 0
+ b _080F606C
+ .align 2, 0
+_080F603C: .4byte gUnknown_083DFEC4
+_080F6040: .4byte 0x00008772
+_080F6044: .4byte 0x00008774
+_080F6048: .4byte 0x000087c9
+_080F604C:
+ subs r0, r4, r5
+ lsls r0, 16
+ lsrs r4, r0, 16
+ asrs r0, 16
+ cmp r0, 0x8
+ ble _080F605A
+ movs r4, 0x8
+_080F605A:
+ lsls r4, 16
+ asrs r4, 16
+ adds r0, r4, 0
+ bl sub_80F063C
+ adds r0, r4, 0
+ bl sub_80F6074
+ movs r0, 0x2
+_080F606C:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80F6010
+
+ thumb_func_start sub_80F6074
+sub_80F6074: @ 80F6074
+ push {r4-r7,lr}
+ ldr r1, _080F6120
+ ldr r6, [r1]
+ ldr r1, _080F6124
+ adds r3, r6, r1
+ ldrh r1, [r3]
+ lsls r0, 16
+ asrs r7, r0, 16
+ adds r2, r7, r1
+ strh r2, [r3]
+ ldr r5, _080F6128
+ adds r4, r6, r5
+ lsls r0, r2, 16
+ asrs r0, 16
+ ldrh r1, [r4]
+ mov r12, r1
+ movs r5, 0
+ ldrsh r1, [r4, r5]
+ cmp r0, r1
+ ble _080F60A4
+ subs r0, r2, 0x1
+ mov r1, r12
+ subs r0, r1
+ strh r0, [r3]
+_080F60A4:
+ ldrh r1, [r3]
+ movs r2, 0
+ ldrsh r0, [r3, r2]
+ cmp r0, 0
+ bge _080F60B6
+ adds r0, r1, 0x1
+ ldrh r5, [r4]
+ adds r0, r5
+ strh r0, [r3]
+_080F60B6:
+ ldr r0, _080F612C
+ adds r3, r6, r0
+ ldrh r0, [r3]
+ adds r2, r7, r0
+ strh r2, [r3]
+ lsls r0, r2, 16
+ asrs r0, 16
+ ldrh r1, [r4]
+ mov r12, r1
+ movs r5, 0
+ ldrsh r1, [r4, r5]
+ cmp r0, r1
+ ble _080F60D8
+ subs r0, r2, 0x1
+ mov r1, r12
+ subs r0, r1
+ strh r0, [r3]
+_080F60D8:
+ ldrh r1, [r3]
+ movs r2, 0
+ ldrsh r0, [r3, r2]
+ cmp r0, 0
+ bge _080F60EA
+ adds r0, r1, 0x1
+ ldrh r5, [r4]
+ adds r0, r5
+ strh r0, [r3]
+_080F60EA:
+ ldr r0, _080F6130
+ adds r3, r6, r0
+ ldrh r0, [r3]
+ adds r2, r7, r0
+ strh r2, [r3]
+ lsls r0, r2, 16
+ asrs r0, 16
+ ldrh r5, [r4]
+ movs r6, 0
+ ldrsh r1, [r4, r6]
+ cmp r0, r1
+ ble _080F6108
+ subs r0, r2, 0x1
+ subs r0, r5
+ strh r0, [r3]
+_080F6108:
+ ldrh r1, [r3]
+ movs r2, 0
+ ldrsh r0, [r3, r2]
+ cmp r0, 0
+ bge _080F611A
+ adds r0, r1, 0x1
+ ldrh r4, [r4]
+ adds r0, r4
+ strh r0, [r3]
+_080F611A:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F6120: .4byte gUnknown_083DFEC4
+_080F6124: .4byte 0x00008770
+_080F6128: .4byte 0x00008774
+_080F612C: .4byte 0x00008772
+_080F6130: .4byte 0x0000876e
+ thumb_func_end sub_80F6074
+
+ thumb_func_start sub_80F6134
+sub_80F6134: @ 80F6134
+ push {r4-r6,lr}
+ ldr r0, _080F6194
+ ldr r3, [r0]
+ ldr r1, _080F6198
+ adds r0, r3, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080F61E0
+ ldr r2, _080F619C
+ adds r5, r3, r2
+ movs r4, 0
+ ldrsh r1, [r5, r4]
+ ldr r6, _080F61A0
+ adds r4, r3, r6
+ movs r2, 0
+ ldrsh r0, [r4, r2]
+ subs r0, 0x7
+ cmp r1, r0
+ bge _080F61AC
+ subs r6, 0x8
+ adds r1, r3, r6
+ movs r0, 0
+ strh r0, [r1]
+ ldrh r0, [r5]
+ ldr r1, _080F61A4
+ adds r2, r3, r1
+ strh r0, [r2]
+ ldrh r1, [r5]
+ ldr r5, _080F61A8
+ adds r0, r3, r5
+ strh r1, [r0]
+ ldrh r5, [r2]
+ adds r0, r5, 0x7
+ adds r6, 0x6
+ adds r2, r3, r6
+ strh r0, [r2]
+ lsls r0, 16
+ asrs r0, 16
+ ldrh r3, [r4]
+ movs r6, 0
+ ldrsh r1, [r4, r6]
+ cmp r0, r1
+ ble _080F61F4
+ adds r0, r5, 0x6
+ subs r0, r3
+ strh r0, [r2]
+ b _080F61F4
+ .align 2, 0
+_080F6194: .4byte gUnknown_083DFEC4
+_080F6198: .4byte 0x000087c9
+_080F619C: .4byte 0x000087dc
+_080F61A0: .4byte 0x00008774
+_080F61A4: .4byte 0x00008770
+_080F61A8: .4byte 0x0000876e
+_080F61AC:
+ ldrh r0, [r4]
+ subs r0, 0x7
+ ldr r2, _080F61D4
+ adds r1, r3, r2
+ strh r0, [r1]
+ ldrh r1, [r4]
+ ldr r6, _080F61D8
+ adds r0, r3, r6
+ strh r1, [r0]
+ ldrh r1, [r5]
+ subs r2, 0x2
+ adds r0, r3, r2
+ strh r1, [r0]
+ ldrh r0, [r4]
+ subs r0, r1
+ movs r1, 0x7
+ subs r1, r0
+ ldr r4, _080F61DC
+ adds r0, r3, r4
+ b _080F61F2
+ .align 2, 0
+_080F61D4: .4byte 0x00008770
+_080F61D8: .4byte 0x00008772
+_080F61DC: .4byte 0x0000876c
+_080F61E0:
+ ldr r5, _080F61FC
+ adds r2, r3, r5
+ ldrh r1, [r2]
+ ldr r6, _080F6200
+ adds r0, r3, r6
+ strh r1, [r0]
+ ldrh r1, [r2]
+ ldr r2, _080F6204
+ adds r0, r3, r2
+_080F61F2:
+ strh r1, [r0]
+_080F61F4:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F61FC: .4byte 0x000087dc
+_080F6200: .4byte 0x0000876c
+_080F6204: .4byte 0x0000876e
+ thumb_func_end sub_80F6134
+
+ thumb_func_start sub_80F6208
+sub_80F6208: @ 80F6208
+ push {lr}
+ ldr r0, _080F623C
+ ldr r1, [r0]
+ ldr r2, _080F6240
+ adds r0, r1, r2
+ movs r2, 0
+ strb r2, [r0]
+ ldr r3, _080F6244
+ adds r0, r1, r3
+ strb r2, [r0]
+ ldr r0, _080F6248
+ adds r2, r1, r0
+ movs r0, 0xFF
+ strb r0, [r2]
+ ldr r2, _080F624C
+ adds r1, r2
+ ldrb r0, [r1]
+ cmp r0, 0
+ bne _080F6238
+_080F622E:
+ bl sub_80F6250
+ lsls r0, 24
+ cmp r0, 0
+ bne _080F622E
+_080F6238:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F623C: .4byte gUnknown_083DFEC4
+_080F6240: .4byte 0x00008fe6
+_080F6244: .4byte 0x00008fe7
+_080F6248: .4byte 0x00008fe8
+_080F624C: .4byte 0x00006dac
+ thumb_func_end sub_80F6208
+
+ thumb_func_start sub_80F6250
+sub_80F6250: @ 80F6250
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ ldr r0, _080F6270
+ ldr r2, [r0]
+ ldr r0, _080F6274
+ adds r3, r2, r0
+ movs r1, 0
+ ldrsb r1, [r3, r1]
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ beq _080F6278
+_080F626C:
+ movs r0, 0
+ b _080F637E
+ .align 2, 0
+_080F6270: .4byte gUnknown_083DFEC4
+_080F6274: .4byte 0x00008fe8
+_080F6278:
+ ldr r1, _080F630C
+ adds r0, r2, r1
+ ldrb r0, [r0]
+ cmp r0, 0x7
+ beq _080F631C
+ cmp r0, 0x8
+ beq _080F626C
+ movs r6, 0
+ adds r7, r2, 0
+ adds r5, r7, r1
+ ldr r0, _080F6310
+ adds r4, r7, r0
+ ldr r1, _080F6314
+ mov r8, r1
+ ldr r0, _080F6318
+ add r0, r8
+ mov r9, r0
+_080F629A:
+ ldrb r0, [r5]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 5
+ ldrb r2, [r4]
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 4
+ add r1, r8
+ adds r0, r1
+ movs r1, 0x51
+ bl GetBoxMonData
+ cmp r0, 0
+ bne _080F636C
+ ldrb r0, [r5]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 5
+ ldrb r2, [r4]
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 4
+ add r1, r9
+ adds r0, r1
+ movs r1, 0x51
+ bl GetBoxMonData
+ adds r1, r0, 0
+ cmp r1, 0
+ bne _080F636C
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+ movs r2, 0xFF
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1D
+ bls _080F62FE
+ strb r1, [r4]
+ ldrb r0, [r5]
+ adds r0, 0x1
+ strb r0, [r5]
+ ands r0, r2
+ cmp r0, 0x6
+ bhi _080F637C
+_080F62FE:
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ cmp r6, 0x9
+ bls _080F629A
+ b _080F637C
+ .align 2, 0
+_080F630C: .4byte 0x00008fe6
+_080F6310: .4byte 0x00008fe7
+_080F6314: .4byte gUnknown_020300A4
+_080F6318: .4byte 0x000041a0
+_080F631C:
+ movs r0, 0
+ strb r0, [r3]
+ movs r6, 0
+ b _080F632A
+_080F6324:
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+_080F632A:
+ cmp r6, 0x5
+ bhi _080F634C
+ movs r0, 0x64
+ muls r0, r6
+ ldr r1, _080F635C
+ adds r0, r1
+ movs r1, 0x51
+ bl GetMonData
+ cmp r0, 0
+ beq _080F6324
+ ldr r0, _080F6360
+ ldr r0, [r0]
+ ldr r1, _080F6364
+ adds r0, r1
+ movs r1, 0x1
+ strb r1, [r0]
+_080F634C:
+ ldr r0, _080F6360
+ ldr r1, [r0]
+ ldr r0, _080F6368
+ adds r1, r0
+ ldrb r0, [r1]
+ adds r0, 0x1
+ b _080F6372
+ .align 2, 0
+_080F635C: .4byte gPlayerParty
+_080F6360: .4byte gUnknown_083DFEC4
+_080F6364: .4byte 0x00008fe8
+_080F6368: .4byte 0x00008fe6
+_080F636C:
+ ldr r0, _080F6378
+ adds r1, r7, r0
+ movs r0, 0x1
+_080F6372:
+ strb r0, [r1]
+ b _080F626C
+ .align 2, 0
+_080F6378: .4byte 0x00008fe8
+_080F637C:
+ movs r0, 0x1
+_080F637E:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80F6250
+
+ thumb_func_start sub_80F638C
+sub_80F638C: @ 80F638C
+ push {r4,lr}
+ ldr r0, _080F63C0
+ ldr r4, [r0]
+ ldr r1, _080F63C4
+ adds r0, r4, r1
+ movs r1, 0
+ strb r1, [r0]
+ ldr r2, _080F63C8
+ adds r0, r4, r2
+ strb r1, [r0]
+ bl sub_80F492C
+ ldr r0, _080F63CC
+ adds r4, r0
+ ldrb r0, [r4]
+ cmp r0, 0
+ bne _080F63B8
+_080F63AE:
+ bl sub_80F63D0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080F63AE
+_080F63B8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F63C0: .4byte gUnknown_083DFEC4
+_080F63C4: .4byte 0x00008fe6
+_080F63C8: .4byte 0x00008fe7
+_080F63CC: .4byte 0x00006dac
+ thumb_func_end sub_80F638C
+
+ thumb_func_start sub_80F63D0
+sub_80F63D0: @ 80F63D0
+ push {r4-r6,lr}
+ sub sp, 0x4
+ ldr r0, _080F647C
+ ldr r2, [r0]
+ ldr r1, _080F6480
+ adds r0, r2, r1
+ ldrb r3, [r0]
+ cmp r3, 0xE
+ beq _080F6498
+ cmp r3, 0xF
+ bne _080F63E8
+ b _080F64F6
+_080F63E8:
+ movs r1, 0x80
+ lsls r1, 23
+ ldr r0, [sp]
+ orrs r0, r1
+ str r0, [sp]
+ movs r6, 0
+ ldr r0, _080F6480
+ adds r5, r2, r0
+ ldr r1, _080F6484
+ adds r4, r2, r1
+_080F63FC:
+ ldrb r0, [r5]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 5
+ ldrb r2, [r4]
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 4
+ ldr r2, _080F6488
+ adds r1, r2
+ adds r0, r1
+ movs r1, 0x51
+ bl GetBoxMonData
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0
+ beq _080F644E
+ ldrb r1, [r5]
+ lsls r1, 8
+ ldr r2, _080F648C
+ ldr r0, [sp]
+ ands r0, r2
+ orrs r0, r1
+ str r0, [sp]
+ ldrb r2, [r4]
+ movs r1, 0x1F
+ ands r2, r1
+ lsls r2, 16
+ ldr r1, _080F6490
+ ands r0, r1
+ orrs r0, r2
+ ldr r1, _080F6494
+ ands r0, r1
+ orrs r0, r3
+ str r0, [sp]
+ mov r0, sp
+ bl sub_80F4944
+_080F644E:
+ ldrb r0, [r4]
+ adds r0, 0x1
+ movs r2, 0
+ strb r0, [r4]
+ movs r1, 0xFF
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1E
+ bne _080F646E
+ strb r2, [r4]
+ ldrb r0, [r5]
+ adds r0, 0x1
+ strb r0, [r5]
+ ands r0, r1
+ cmp r0, 0xE
+ beq _080F6508
+_080F646E:
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ cmp r6, 0xE
+ bls _080F63FC
+ b _080F6508
+ .align 2, 0
+_080F647C: .4byte gUnknown_083DFEC4
+_080F6480: .4byte 0x00008fe6
+_080F6484: .4byte 0x00008fe7
+_080F6488: .4byte gUnknown_020300A4
+_080F648C: .4byte 0xffff00ff
+_080F6490: .4byte 0xffe0ffff
+_080F6494: .4byte 0xffffff00
+_080F6498:
+ mov r0, sp
+ ldrb r1, [r0, 0x3]
+ movs r2, 0x40
+ orrs r1, r2
+ strb r1, [r0, 0x3]
+ strb r3, [r0, 0x1]
+ movs r6, 0
+ mov r4, sp
+_080F64A8:
+ movs r0, 0x64
+ muls r0, r6
+ ldr r1, _080F64FC
+ adds r0, r1
+ movs r1, 0x51
+ bl GetMonData
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0
+ beq _080F64DA
+ movs r0, 0x1F
+ adds r2, r6, 0
+ ands r2, r0
+ ldrb r0, [r4, 0x2]
+ movs r5, 0x20
+ negs r5, r5
+ adds r1, r5, 0
+ ands r0, r1
+ orrs r0, r2
+ strb r0, [r4, 0x2]
+ strb r3, [r4]
+ mov r0, sp
+ bl sub_80F4944
+_080F64DA:
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ cmp r6, 0x5
+ bls _080F64A8
+ bl sub_80F49F4
+ ldr r0, _080F6500
+ ldr r1, [r0]
+ ldr r0, _080F6504
+ adds r1, r0
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+_080F64F6:
+ movs r0, 0
+ b _080F650A
+ .align 2, 0
+_080F64FC: .4byte gPlayerParty
+_080F6500: .4byte gUnknown_083DFEC4
+_080F6504: .4byte 0x00008fe6
+_080F6508:
+ movs r0, 0x1
+_080F650A:
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80F63D0
+
+ thumb_func_start sub_80F6514
+sub_80F6514: @ 80F6514
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0xC
+ mov r10, r0
+ lsls r1, 16
+ lsrs r1, 16
+ str r1, [sp]
+ lsls r2, 24
+ lsrs r2, 24
+ str r2, [sp, 0x4]
+ mov r5, r10
+ ldr r0, _080F65A4
+ ldr r0, [r0]
+ lsls r1, 2
+ adds r0, r1
+ ldr r2, _080F65A8
+ adds r1, r0, r2
+ ldrb r6, [r1]
+ mov r8, r6
+ ldr r1, _080F65AC
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 27
+ lsrs r4, r0, 27
+ adds r7, r4, 0
+ adds r0, r6, 0
+ adds r1, r4, 0
+ movs r2, 0x2D
+ movs r3, 0
+ bl sub_80F44B0
+ cmp r0, 0
+ beq _080F655E
+ b _080F66CA
+_080F655E:
+ adds r0, r6, 0
+ adds r1, r4, 0
+ movs r2, 0x2
+ adds r3, r5, 0
+ bl sub_80F44B0
+ adds r0, r5, 0
+ bl StringGetEnd10
+ adds r0, r6, 0
+ adds r1, r4, 0
+ movs r2, 0xB
+ movs r3, 0
+ bl sub_80F44B0
+ lsls r0, 16
+ lsrs r0, 16
+ mov r9, r0
+ cmp r6, 0xE
+ bne _080F65B4
+ movs r0, 0x64
+ muls r4, r0
+ ldr r0, _080F65B0
+ adds r4, r0
+ adds r0, r4, 0
+ movs r1, 0x38
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ str r0, [sp, 0x8]
+ adds r0, r4, 0
+ bl GetMonGender
+ b _080F65EA
+ .align 2, 0
+_080F65A4: .4byte gUnknown_083DFEC4
+_080F65A8: .4byte 0x0000893d
+_080F65AC: .4byte 0x0000893e
+_080F65B0: .4byte gPlayerParty
+_080F65B4:
+ mov r2, r8
+ lsls r1, r2, 2
+ add r1, r8
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 5
+ lsls r1, r7, 2
+ adds r1, r7
+ lsls r1, 4
+ ldr r2, _080F6620
+ adds r1, r2
+ adds r0, r1
+ bl GetLevelFromBoxMonExp
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x8]
+ mov r0, r8
+ adds r1, r7, 0
+ movs r2, 0
+ movs r3, 0
+ bl sub_80F44B0
+ adds r1, r0, 0
+ mov r0, r9
+ bl GetGenderFromSpeciesAndPersonality
+_080F65EA:
+ lsls r0, 24
+ lsrs r4, r0, 24
+ mov r0, r9
+ mov r1, r10
+ bl sub_8040D8C
+ cmp r0, 0
+ beq _080F65FC
+ movs r4, 0xFF
+_080F65FC:
+ adds r0, r5, 0
+ bl StringLength
+ lsls r0, 16
+ lsrs r0, 16
+ adds r5, r0
+ movs r1, 0xFC
+ strb r1, [r5]
+ movs r0, 0x13
+ strb r0, [r5, 0x1]
+ movs r0, 0x3F
+ strb r0, [r5, 0x2]
+ adds r5, 0x3
+ cmp r4, 0
+ beq _080F6624
+ cmp r4, 0xFE
+ beq _080F663C
+ b _080F6656
+ .align 2, 0
+_080F6620: .4byte gUnknown_020300A4
+_080F6624:
+ strb r1, [r5]
+ movs r0, 0x1
+ strb r0, [r5, 0x1]
+ movs r0, 0xC
+ strb r0, [r5, 0x2]
+ strb r1, [r5, 0x3]
+ movs r0, 0x3
+ strb r0, [r5, 0x4]
+ movs r0, 0xD
+ strb r0, [r5, 0x5]
+ movs r0, 0xB5
+ b _080F6652
+_080F663C:
+ strb r1, [r5]
+ movs r0, 0x1
+ strb r0, [r5, 0x1]
+ movs r0, 0xA
+ strb r0, [r5, 0x2]
+ strb r1, [r5, 0x3]
+ movs r0, 0x3
+ strb r0, [r5, 0x4]
+ movs r0, 0xB
+ strb r0, [r5, 0x5]
+ movs r0, 0xB6
+_080F6652:
+ strb r0, [r5, 0x6]
+ adds r5, 0x7
+_080F6656:
+ movs r4, 0xFC
+ strb r4, [r5]
+ movs r1, 0x1
+ strb r1, [r5, 0x1]
+ strb r1, [r5, 0x2]
+ strb r4, [r5, 0x3]
+ movs r0, 0x3
+ strb r0, [r5, 0x4]
+ movs r0, 0x5
+ strb r0, [r5, 0x5]
+ adds r5, 0x6
+ strb r4, [r5]
+ movs r6, 0x13
+ strb r6, [r5, 0x1]
+ movs r0, 0x46
+ strb r0, [r5, 0x2]
+ adds r5, 0x3
+ movs r0, 0xBA
+ strb r0, [r5]
+ strb r4, [r5, 0x1]
+ movs r0, 0x11
+ strb r0, [r5, 0x2]
+ strb r1, [r5, 0x3]
+ movs r0, 0x34
+ strb r0, [r5, 0x4]
+ adds r5, 0x5
+ adds r0, r5, 0
+ ldr r1, [sp, 0x8]
+ bl ConvertIntToDecimalString
+ adds r5, r0, 0
+ ldr r0, [sp, 0x4]
+ cmp r0, 0x1
+ bne _080F66C0
+ ldr r0, _080F66B8
+ ldr r0, [r0]
+ ldr r2, [sp]
+ lsls r1, r2, 2
+ adds r0, r1
+ ldr r1, _080F66BC
+ adds r0, r1
+ ldrb r1, [r0]
+ adds r0, r5, 0
+ movs r2, 0x80
+ movs r3, 0x1
+ bl sub_8072C14
+ adds r5, r0, 0
+ b _080F66CE
+ .align 2, 0
+_080F66B8: .4byte gUnknown_083DFEC4
+_080F66BC: .4byte 0x0000893c
+_080F66C0:
+ strb r4, [r5]
+ strb r6, [r5, 0x1]
+ movs r0, 0x67
+ strb r0, [r5, 0x2]
+ adds r5, 0x3
+_080F66CA:
+ movs r0, 0xFF
+ strb r0, [r5]
+_080F66CE:
+ adds r0, r5, 0
+ add sp, 0xC
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80F6514
+
+ thumb_func_start sub_80F66E0
+sub_80F66E0: @ 80F66E0
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ ldr r0, _080F676C
+ mov r8, r0
+ ldr r4, [r0]
+ ldr r1, _080F6770
+ adds r0, r4, r1
+ ldr r2, _080F6774
+ adds r5, r4, r2
+ ldrh r1, [r5]
+ movs r2, 0
+ bl sub_80F6514
+ movs r3, 0
+ ldrsh r0, [r5, r3]
+ movs r1, 0
+ bl sub_80F4824
+ ldrh r1, [r5]
+ ldr r6, _080F6778
+ adds r0, r4, r6
+ movs r6, 0
+ strh r1, [r0]
+ ldr r1, _080F677C
+ adds r0, r4, r1
+ strb r6, [r0]
+ movs r2, 0
+ mov r9, r2
+ movs r3, 0
+ ldrsh r1, [r5, r3]
+ lsls r1, 2
+ adds r1, r4, r1
+ ldr r5, _080F6780
+ adds r0, r1, r5
+ ldrb r0, [r0]
+ ldr r2, _080F6784
+ adds r1, r2
+ ldrb r1, [r1]
+ lsls r1, 27
+ lsrs r1, 27
+ movs r2, 0x52
+ movs r3, 0
+ bl sub_80F44B0
+ adds r7, r0, 0
+ ldr r3, _080F6788
+ adds r4, r3
+ strb r6, [r4]
+ movs r5, 0
+ mov r12, r5
+ mov r10, r8
+_080F674E:
+ ldr r1, _080F678C
+ mov r6, r12
+ lsls r0, r6, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r0, 0x36
+ bgt _080F6790
+ cmp r0, 0x32
+ blt _080F6790
+ movs r0, 0x7
+ adds r2, r7, 0
+ ands r2, r0
+ lsrs r7, 3
+ movs r0, 0x4
+ b _080F679A
+ .align 2, 0
+_080F676C: .4byte gUnknown_083DFEC4
+_080F6770: .4byte 0x00008829
+_080F6774: .4byte 0x0000876e
+_080F6778: .4byte 0x000087dc
+_080F677C: .4byte 0x0000bc8e
+_080F6780: .4byte 0x0000893d
+_080F6784: .4byte 0x0000893e
+_080F6788: .4byte 0x0000bc8f
+_080F678C: .4byte gUnknown_083E499C
+_080F6790:
+ movs r0, 0x1
+ adds r2, r7, 0
+ ands r2, r0
+ lsrs r7, 1
+ movs r0, 0x1
+_080F679A:
+ movs r4, 0
+ adds r1, r2, 0
+ add r0, r9
+ mov r8, r0
+ cmp r4, r1
+ bcs _080F67D4
+ mov r3, r10
+ ldr r0, [r3]
+ ldr r5, _080F6828
+ adds r3, r0, r5
+ ldr r6, _080F682C
+ adds r6, r0, r6
+ str r6, [sp]
+ adds r5, r1, 0
+_080F67B6:
+ ldrb r0, [r3]
+ adds r1, r0, 0x1
+ strb r1, [r3]
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, [sp]
+ adds r0, r1, r0
+ mov r6, r9
+ adds r1, r6, r4
+ strb r1, [r0]
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, r5
+ bcc _080F67B6
+_080F67D4:
+ cmp r2, 0
+ beq _080F67EC
+ mov r0, r9
+ cmp r0, 0x18
+ bls _080F67EC
+ mov r2, r10
+ ldr r1, [r2]
+ ldr r3, _080F6830
+ adds r1, r3
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+_080F67EC:
+ mov r5, r8
+ lsls r0, r5, 24
+ lsrs r0, 24
+ mov r9, r0
+ mov r0, r12
+ adds r0, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+ mov r12, r0
+ cmp r0, 0x10
+ bls _080F674E
+ ldr r6, _080F6834
+ ldr r2, [r6]
+ ldr r1, _080F6828
+ adds r0, r2, r1
+ ldr r3, _080F6830
+ adds r1, r2, r3
+ ldrb r0, [r0]
+ ldrb r1, [r1]
+ cmp r0, r1
+ beq _080F6840
+ ldr r5, _080F6838
+ adds r0, r2, r5
+ movs r1, 0
+ strb r1, [r0]
+ ldr r6, _080F683C
+ adds r0, r2, r6
+ strb r1, [r0]
+ b _080F6850
+ .align 2, 0
+_080F6828: .4byte 0x0000bc8e
+_080F682C: .4byte 0x0000bc4c
+_080F6830: .4byte 0x0000bc8f
+_080F6834: .4byte gUnknown_083DFEC4
+_080F6838: .4byte 0x0000bc90
+_080F683C: .4byte 0x0000bc91
+_080F6840:
+ ldr r0, _080F6888
+ adds r1, r2, r0
+ movs r0, 0
+ strb r0, [r1]
+ ldr r3, _080F688C
+ adds r1, r2, r3
+ movs r0, 0x3
+ strb r0, [r1]
+_080F6850:
+ ldr r5, _080F6890
+ ldr r1, [r5]
+ ldr r6, _080F6894
+ adds r0, r1, r6
+ ldr r2, _080F6898
+ adds r1, r2
+ ldrb r0, [r0]
+ ldrb r1, [r1]
+ subs r0, r1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ movs r3, 0
+ mov r12, r3
+ adds r3, r5, 0
+ ldr r1, _080F689C
+ movs r4, 0x9
+_080F6870:
+ cmp r2, 0x8
+ bls _080F68A0
+ ldr r0, [r3]
+ adds r0, r1
+ add r0, r12
+ strb r4, [r0]
+ adds r0, r2, 0
+ subs r0, 0x9
+ lsls r0, 24
+ lsrs r2, r0, 24
+ b _080F68AA
+ .align 2, 0
+_080F6888: .4byte 0x0000bc90
+_080F688C: .4byte 0x0000bc91
+_080F6890: .4byte gUnknown_083DFEC4
+_080F6894: .4byte 0x0000bc8e
+_080F6898: .4byte 0x0000bc8f
+_080F689C: .4byte 0x0000bc96
+_080F68A0:
+ ldr r0, [r3]
+ adds r0, r1
+ add r0, r12
+ strb r2, [r0]
+ movs r2, 0
+_080F68AA:
+ mov r0, r12
+ adds r0, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+ mov r12, r0
+ cmp r0, 0x2
+ bls _080F6870
+ ldr r5, _080F68DC
+ ldr r0, [r5]
+ ldr r6, _080F68E0
+ adds r1, r0, r6
+ add r1, r12
+ ldr r2, _080F68E4
+ adds r0, r2
+ ldrb r0, [r0]
+ strb r0, [r1]
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F68DC: .4byte gUnknown_083DFEC4
+_080F68E0: .4byte 0x0000bc96
+_080F68E4: .4byte 0x0000bc8f
+ thumb_func_end sub_80F66E0
+
+ thumb_func_start sub_80F68E8
+sub_80F68E8: @ 80F68E8
+ push {r4-r7,lr}
+ ldr r3, _080F6918
+ ldr r0, [r3]
+ ldr r2, _080F691C
+ adds r1, r0, r2
+ ldrb r5, [r1]
+ ldr r6, _080F6920
+ adds r0, r6
+ ldrb r4, [r0]
+ movs r0, 0x1
+ mov r12, r0
+ ldr r2, _080F6924
+ ldrh r1, [r2, 0x30]
+ movs r0, 0x40
+ ands r0, r1
+ adds r6, r3, 0
+ adds r7, r2, 0
+ cmp r0, 0
+ beq _080F692E
+ lsls r0, r4, 24
+ cmp r0, 0
+ ble _080F692E
+ b _080F69BC
+ .align 2, 0
+_080F6918: .4byte gUnknown_083DFEC4
+_080F691C: .4byte 0x0000bc90
+_080F6920: .4byte 0x0000bc91
+_080F6924: .4byte gMain
+_080F6928:
+ ldr r1, _080F69B0
+ adds r0, r2, r1
+ ldrb r4, [r0]
+_080F692E:
+ ldrh r1, [r7, 0x30]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _080F6978
+ lsls r0, r4, 24
+ asrs r0, 24
+ cmp r0, 0x2
+ bgt _080F6978
+ ldr r3, _080F69B4
+ ldr r2, _080F69B8
+_080F6944:
+ lsls r0, r4, 24
+ asrs r0, 24
+ cmp r0, 0x2
+ bgt _080F6960
+ adds r0, 0x1
+ lsls r0, 24
+ ldr r1, [r3]
+ lsrs r4, r0, 24
+ asrs r0, 24
+ adds r1, r2
+ adds r1, r0
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _080F6944
+_080F6960:
+ ldr r2, [r6]
+ lsls r0, r4, 24
+ asrs r0, 24
+ ldr r3, _080F69B8
+ adds r1, r2, r3
+ adds r1, r0
+ ldrb r0, [r1]
+ cmp r0, 0
+ bne _080F69EC
+ ldr r1, _080F69B0
+ adds r0, r2, r1
+ ldrb r4, [r0]
+_080F6978:
+ ldrh r2, [r7, 0x30]
+ movs r0, 0x20
+ ands r0, r2
+ cmp r0, 0
+ beq _080F698A
+ lsls r0, r5, 24
+ asrs r0, 24
+ cmp r0, 0
+ bgt _080F6A3C
+_080F698A:
+ movs r0, 0x10
+ ands r0, r2
+ cmp r0, 0
+ beq _080F69AA
+ lsls r0, r5, 24
+ asrs r2, r0, 24
+ ldr r1, [r6]
+ lsls r0, r4, 24
+ asrs r0, 24
+ ldr r3, _080F69B8
+ adds r1, r3
+ adds r1, r0
+ ldrb r0, [r1]
+ subs r0, 0x1
+ cmp r2, r0
+ blt _080F6A38
+_080F69AA:
+ movs r0, 0
+ mov r12, r0
+ b _080F69FC
+ .align 2, 0
+_080F69B0: .4byte 0x0000bc91
+_080F69B4: .4byte gUnknown_083DFEC4
+_080F69B8: .4byte 0x0000bc96
+_080F69BC:
+ lsls r0, r4, 24
+ asrs r0, 24
+ cmp r0, 0
+ ble _080F69DA
+ subs r0, 0x1
+ lsls r0, 24
+ ldr r1, [r6]
+ lsrs r4, r0, 24
+ asrs r0, 24
+ ldr r2, _080F6A2C
+ adds r1, r2
+ adds r1, r0
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _080F69BC
+_080F69DA:
+ ldr r2, [r6]
+ lsls r0, r4, 24
+ asrs r0, 24
+ ldr r3, _080F6A2C
+ adds r1, r2, r3
+ adds r1, r0
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _080F6928
+_080F69EC:
+ lsls r0, r5, 24
+ asrs r0, 24
+ ldrb r1, [r1]
+ cmp r0, r1
+ blt _080F69FC
+ subs r0, r1, 0x1
+_080F69F8:
+ lsls r0, 24
+ lsrs r5, r0, 24
+_080F69FC:
+ mov r0, r12
+ cmp r0, 0
+ beq _080F6A44
+ lsls r0, r5, 24
+ asrs r0, 24
+ ldr r3, [r6]
+ ldr r1, _080F6A30
+ adds r2, r3, r1
+ ldrb r6, [r2]
+ cmp r0, r6
+ bne _080F6A20
+ lsls r0, r4, 24
+ asrs r0, 24
+ ldr r6, _080F6A34
+ adds r1, r3, r6
+ ldrb r1, [r1]
+ cmp r0, r1
+ beq _080F6A40
+_080F6A20:
+ strb r5, [r2]
+ ldr r1, _080F6A34
+ adds r0, r3, r1
+ strb r4, [r0]
+ b _080F6A44
+ .align 2, 0
+_080F6A2C: .4byte 0x0000bc96
+_080F6A30: .4byte 0x0000bc90
+_080F6A34: .4byte 0x0000bc91
+_080F6A38:
+ adds r0, r2, 0x1
+ b _080F69F8
+_080F6A3C:
+ subs r0, 0x1
+ b _080F69F8
+_080F6A40:
+ movs r2, 0
+ mov r12, r2
+_080F6A44:
+ mov r0, r12
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80F68E8
+
+ thumb_func_start sub_80F6A4C
+sub_80F6A4C: @ 80F6A4C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r4, r0, 0
+ ldr r0, _080F6AC4
+ ldr r3, [r0]
+ ldr r0, _080F6AC8
+ adds r2, r3, r0
+ lsls r0, r4, 24
+ asrs r0, 24
+ ldrh r1, [r2]
+ adds r0, r1
+ strh r0, [r2]
+ lsls r0, 16
+ cmp r0, 0
+ bge _080F6A74
+ ldr r5, _080F6ACC
+ adds r0, r3, r5
+ ldrh r0, [r0]
+ strh r0, [r2]
+_080F6A74:
+ ldr r1, _080F6ACC
+ adds r0, r3, r1
+ movs r5, 0
+ ldrsh r1, [r2, r5]
+ movs r5, 0
+ ldrsh r0, [r0, r5]
+ cmp r1, r0
+ ble _080F6A88
+ movs r0, 0
+ strh r0, [r2]
+_080F6A88:
+ ldr r1, _080F6AD0
+ adds r0, r3, r1
+ strb r4, [r0]
+ ldrh r1, [r2]
+ ldr r2, _080F6AD4
+ adds r0, r3, r2
+ strh r1, [r0]
+ ldr r1, _080F6AD8
+ ldr r5, _080F6ADC
+ adds r0, r5, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r2, _080F6AE0
+ adds r0, r2, 0
+ strh r0, [r1]
+ subs r1, 0xA
+ ldr r5, _080F6AE4
+ adds r0, r5, 0
+ strh r0, [r1]
+ adds r1, 0x4
+ ldr r2, _080F6AE8
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r5, _080F6AEC
+ adds r1, r3, r5
+ movs r0, 0
+ strb r0, [r1]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F6AC4: .4byte gUnknown_083DFEC4
+_080F6AC8: .4byte 0x0000876e
+_080F6ACC: .4byte 0x00008774
+_080F6AD0: .4byte 0x0000bc94
+_080F6AD4: .4byte 0x000087dc
+_080F6AD8: .4byte REG_WININ
+_080F6ADC: .4byte 0x00003f37
+_080F6AE0: .4byte 0x00003f3f
+_080F6AE4: .4byte 0x000058f0
+_080F6AE8: .4byte 0x00002060
+_080F6AEC: .4byte 0x000087de
+ thumb_func_end sub_80F6A4C
+
+ thumb_func_start sub_80F6AF0
+sub_80F6AF0: @ 80F6AF0
+ push {r4,lr}
+ ldr r1, _080F6B10
+ ldr r0, [r1]
+ ldr r2, _080F6B14
+ adds r0, r2
+ ldrb r0, [r0]
+ adds r4, r1, 0
+ cmp r0, 0x6
+ bls _080F6B04
+ b _080F6C08
+_080F6B04:
+ lsls r0, 2
+ ldr r1, _080F6B18
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080F6B10: .4byte gUnknown_083DFEC4
+_080F6B14: .4byte 0x000087de
+_080F6B18: .4byte _080F6B1C
+ .align 2, 0
+_080F6B1C:
+ .4byte _080F6B38
+ .4byte _080F6B54
+ .4byte _080F6B6E
+ .4byte _080F6B84
+ .4byte _080F6B9C
+ .4byte _080F6BC0
+ .4byte _080F6BE0
+_080F6B38:
+ bl sub_80F173C
+ lsls r0, 24
+ cmp r0, 0
+ bne _080F6C18
+ ldr r0, _080F6B4C
+ ldr r1, [r0]
+ ldr r3, _080F6B50
+ adds r1, r3
+ b _080F6BCE
+ .align 2, 0
+_080F6B4C: .4byte gUnknown_083DFEC4
+_080F6B50: .4byte 0x000087de
+_080F6B54:
+ movs r2, 0x80
+ lsls r2, 19
+ ldrh r0, [r2]
+ movs r3, 0x80
+ lsls r3, 6
+ adds r1, r3, 0
+ orrs r0, r1
+ strh r0, [r2]
+ bl sub_80F1480
+ bl sub_80F66E0
+ b _080F6BC6
+_080F6B6E:
+ bl sub_80F1238
+ ldr r0, _080F6B7C
+ ldr r1, [r0]
+ ldr r2, _080F6B80
+ adds r1, r2
+ b _080F6BCE
+ .align 2, 0
+_080F6B7C: .4byte gUnknown_083DFEC4
+_080F6B80: .4byte 0x000087de
+_080F6B84:
+ bl sub_80F13FC
+ ldr r0, _080F6B94
+ ldr r1, [r0]
+ ldr r3, _080F6B98
+ adds r1, r3
+ b _080F6BCE
+ .align 2, 0
+_080F6B94: .4byte gUnknown_083DFEC4
+_080F6B98: .4byte 0x000087de
+_080F6B9C:
+ ldr r4, [r4]
+ ldr r1, _080F6BB8
+ adds r0, r4, r1
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ movs r1, 0
+ bl sub_80F4824
+ ldr r3, _080F6BBC
+ adds r4, r3
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+ b _080F6C18
+ .align 2, 0
+_080F6BB8: .4byte 0x0000876e
+_080F6BBC: .4byte 0x000087de
+_080F6BC0:
+ movs r0, 0
+ bl sub_80F2E18
+_080F6BC6:
+ ldr r0, _080F6BD8
+ ldr r1, [r0]
+ ldr r0, _080F6BDC
+ adds r1, r0
+_080F6BCE:
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _080F6C18
+ .align 2, 0
+_080F6BD8: .4byte gUnknown_083DFEC4
+_080F6BDC: .4byte 0x000087de
+_080F6BE0:
+ bl sub_80F170C
+ lsls r0, 24
+ cmp r0, 0
+ bne _080F6C18
+ bl sub_80F1438
+ movs r2, 0x80
+ lsls r2, 19
+ ldrh r1, [r2]
+ ldr r0, _080F6C0C
+ ands r0, r1
+ strh r0, [r2]
+ ldr r0, _080F6C10
+ ldr r1, [r0]
+ ldr r2, _080F6C14
+ adds r1, r2
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+_080F6C08:
+ movs r0, 0
+ b _080F6C1A
+ .align 2, 0
+_080F6C0C: .4byte 0x0000dfff
+_080F6C10: .4byte gUnknown_083DFEC4
+_080F6C14: .4byte 0x000087de
+_080F6C18:
+ movs r0, 0x1
+_080F6C1A:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80F6AF0
+
+ thumb_func_start sub_80F6C20
+sub_80F6C20: @ 80F6C20
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ ldr r0, _080F6D44
+ ldr r0, [r0]
+ ldr r1, _080F6D48
+ adds r0, r1
+ movs r1, 0
+ strh r1, [r0]
+ mov r8, r1
+ ldr r2, _080F6D4C
+ mov r9, r2
+_080F6C3A:
+ ldr r1, _080F6D50
+ mov r4, r8
+ lsls r0, r4, 4
+ adds r6, r0, r1
+ ldrh r7, [r6]
+ adds r0, r7, 0
+ bl trainer_flag_check
+ lsls r0, 24
+ cmp r0, 0
+ beq _080F6CA0
+ ldr r0, _080F6D44
+ ldr r4, [r0]
+ ldr r0, _080F6D48
+ adds r5, r4, r0
+ ldrh r0, [r5]
+ lsls r0, 3
+ adds r0, r4, r0
+ ldr r1, _080F6D54
+ adds r0, r1
+ strh r7, [r0]
+ ldrh r0, [r5]
+ lsls r0, 3
+ adds r0, r4, r0
+ ldr r2, _080F6D58
+ adds r0, r2
+ mov r1, r8
+ strb r1, [r0]
+ ldrh r0, [r5]
+ lsls r0, 3
+ adds r0, r4, r0
+ mov r1, r8
+ add r1, r9
+ ldrb r1, [r1]
+ adds r2, 0x1
+ adds r0, r2
+ strb r1, [r0]
+ ldrh r0, [r6, 0xA]
+ ldrh r1, [r6, 0xC]
+ bl get_mapheader_by_bank_and_number
+ ldrh r1, [r5]
+ lsls r1, 3
+ adds r4, r1
+ ldrb r0, [r0, 0x14]
+ ldr r1, _080F6D5C
+ adds r4, r1
+ strh r0, [r4]
+ ldrh r0, [r5]
+ adds r0, 0x1
+ strh r0, [r5]
+_080F6CA0:
+ mov r0, r8
+ adds r0, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ cmp r0, 0x37
+ bls _080F6C3A
+ movs r2, 0
+ mov r8, r2
+ movs r6, 0
+_080F6CB4:
+ ldr r1, _080F6D60
+ mov r4, r8
+ lsls r0, r4, 2
+ adds r5, r0, r1
+ ldrh r4, [r5]
+ adds r0, r4, 0
+ bl trainer_flag_check
+ lsls r0, 24
+ cmp r0, 0
+ beq _080F6D0E
+ ldr r0, _080F6D44
+ ldr r2, [r0]
+ ldr r0, _080F6D48
+ adds r3, r2, r0
+ ldrh r0, [r3]
+ lsls r0, 3
+ adds r0, r2, r0
+ ldr r1, _080F6D54
+ adds r0, r1
+ strh r4, [r0]
+ ldrh r0, [r3]
+ lsls r0, 3
+ adds r0, r2, r0
+ ldrh r1, [r5, 0x2]
+ ldr r4, _080F6D5C
+ adds r0, r4
+ strh r1, [r0]
+ ldrh r0, [r3]
+ lsls r0, 3
+ adds r0, r2, r0
+ ldr r1, _080F6D64
+ adds r0, r1
+ strb r6, [r0]
+ ldrh r0, [r3]
+ lsls r0, 3
+ adds r2, r0
+ mov r0, r8
+ adds r0, 0x38
+ adds r4, 0x2
+ adds r2, r4
+ strb r0, [r2]
+ ldrh r0, [r3]
+ adds r0, 0x1
+ strh r0, [r3]
+_080F6D0E:
+ mov r0, r8
+ adds r0, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ cmp r0, 0xC
+ bls _080F6CB4
+ ldr r3, _080F6D44
+ ldr r2, [r3]
+ ldr r1, _080F6D68
+ adds r0, r2, r1
+ movs r1, 0
+ strh r1, [r0]
+ ldr r4, _080F6D6C
+ adds r0, r2, r4
+ strh r1, [r0]
+ subs r4, 0x2
+ adds r0, r2, r4
+ strh r1, [r0]
+ ldr r1, _080F6D48
+ adds r0, r2, r1
+ ldrh r0, [r0]
+ cmp r0, 0x8
+ bhi _080F6D70
+ subs r4, r0, 0x1
+ b _080F6D72
+ .align 2, 0
+_080F6D44: .4byte gUnknown_083DFEC4
+_080F6D48: .4byte 0x0000d158
+_080F6D4C: .4byte gSaveBlock1 + 0x97A
+_080F6D50: .4byte gTrainerEyeTrainers
+_080F6D54: .4byte 0x0000cee8
+_080F6D58: .4byte 0x0000ceec
+_080F6D5C: .4byte 0x0000ceea
+_080F6D60: .4byte gUnknown_083E49C0
+_080F6D64: .4byte 0x0000ceed
+_080F6D68: .4byte 0x0000876c
+_080F6D6C: .4byte 0x00008770
+_080F6D70:
+ movs r4, 0x7
+_080F6D72:
+ ldr r1, _080F6DA8
+ adds r0, r2, r1
+ strh r4, [r0]
+ ldr r3, [r3]
+ ldr r2, _080F6DAC
+ adds r0, r3, r2
+ ldrh r0, [r0]
+ subs r0, 0x1
+ ldr r4, _080F6DB0
+ adds r1, r3, r4
+ strh r0, [r1]
+ movs r1, 0
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x7
+ ble _080F6D94
+ movs r1, 0x1
+_080F6D94:
+ ldr r2, _080F6DB4
+ adds r0, r3, r2
+ strb r1, [r0]
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F6DA8: .4byte 0x00008772
+_080F6DAC: .4byte 0x0000d158
+_080F6DB0: .4byte 0x00008774
+_080F6DB4: .4byte 0x000087c9
+ thumb_func_end sub_80F6C20
+
+ thumb_func_start sub_80F6DB8
+sub_80F6DB8: @ 80F6DB8
+ push {r4,lr}
+ movs r1, 0
+ ldr r0, _080F6DEC
+ ldr r4, [r0]
+ ldr r2, _080F6DF0
+ adds r0, r4, r2
+ strb r1, [r0]
+ movs r0, 0
+ bl sub_80F6E04
+ ldr r0, _080F6DF4
+ adds r1, r4, r0
+ ldr r0, _080F6DF8
+ strh r0, [r1]
+ movs r0, 0
+ bl sub_80F2F7C
+ ldr r1, _080F6DFC
+ adds r0, r4, r1
+ ldrh r0, [r0]
+ ldr r2, _080F6E00
+ adds r4, r2
+ strh r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F6DEC: .4byte gUnknown_083DFEC4
+_080F6DF0: .4byte 0x00008fe9
+_080F6DF4: .4byte 0x0000d15a
+_080F6DF8: .4byte 0x0000ffb8
+_080F6DFC: .4byte 0x0000876e
+_080F6E00: .4byte 0x000087dc
+ thumb_func_end sub_80F6DB8
+
+ thumb_func_start sub_80F6E04
+sub_80F6E04: @ 80F6E04
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x8
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _080F6E78
+ ldr r5, [r0]
+ ldr r1, _080F6E7C
+ adds r0, r5, r1
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ lsls r0, 3
+ adds r0, r5, r0
+ ldr r7, _080F6E80
+ adds r0, r7
+ ldrh r1, [r0]
+ ldr r2, _080F6E84
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldrb r6, [r0, 0x3]
+ lsls r0, r6, 3
+ mov r8, r0
+ ldr r0, _080F6E88
+ add r0, r8
+ ldr r2, _080F6E8C
+ lsls r1, r6, 2
+ adds r1, r2
+ ldrb r1, [r1]
+ ldr r2, _080F6E90
+ adds r3, r5, r2
+ lsls r2, r4, 13
+ ldr r7, _080F6E94
+ adds r2, r7
+ adds r2, r5, r2
+ str r2, [sp]
+ str r6, [sp, 0x4]
+ movs r2, 0x1
+ bl DecompressPicFromTable_2
+ ldr r0, _080F6E98
+ add r8, r0
+ mov r1, r8
+ ldr r0, [r1]
+ lsls r4, 7
+ adds r5, r4
+ adds r1, r5, 0
+ bl LZ77UnCompWram
+ add sp, 0x8
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F6E78: .4byte gUnknown_083DFEC4
+_080F6E7C: .4byte 0x0000876e
+_080F6E80: .4byte 0x0000cee8
+_080F6E84: .4byte gTrainers
+_080F6E88: .4byte gTrainerFrontPicTable
+_080F6E8C: .4byte gTrainerFrontPicCoords
+_080F6E90: .4byte 0x000131e4
+_080F6E94: .4byte 0x0000d1e4
+_080F6E98: .4byte gTrainerFrontPicPaletteTable
+ thumb_func_end sub_80F6E04
+
+ thumb_func_start sub_80F6E9C
+sub_80F6E9C: @ 80F6E9C
+ push {lr}
+ ldr r0, _080F6EB4
+ ldr r0, [r0]
+ ldr r2, _080F6EB8
+ adds r1, r0, r2
+ ldrh r2, [r1]
+ movs r3, 0
+ ldrsh r0, [r1, r3]
+ cmp r0, 0
+ bne _080F6EBC
+ movs r0, 0
+ b _080F6ED0
+ .align 2, 0
+_080F6EB4: .4byte gUnknown_083DFEC4
+_080F6EB8: .4byte 0x0000d15a
+_080F6EBC:
+ adds r0, r2, 0
+ adds r0, 0x8
+ strh r0, [r1]
+ lsls r0, 16
+ cmp r0, 0
+ bge _080F6ECC
+ movs r0, 0x1
+ b _080F6ED0
+_080F6ECC:
+ movs r0, 0
+ strh r0, [r1]
+_080F6ED0:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80F6E9C
+
+ thumb_func_start sub_80F6ED4
+sub_80F6ED4: @ 80F6ED4
+ push {lr}
+ ldr r0, _080F6F00
+ ldr r0, [r0]
+ ldr r2, _080F6F04
+ adds r1, r0, r2
+ ldrh r3, [r1]
+ movs r2, 0
+ ldrsh r0, [r1, r2]
+ movs r2, 0x48
+ negs r2, r2
+ cmp r0, r2
+ beq _080F6F0A
+ adds r0, r3, 0
+ subs r0, 0x8
+ strh r0, [r1]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, r2
+ ble _080F6F08
+ movs r0, 0x1
+ b _080F6F0C
+ .align 2, 0
+_080F6F00: .4byte gUnknown_083DFEC4
+_080F6F04: .4byte 0x0000d15a
+_080F6F08:
+ strh r2, [r1]
+_080F6F0A:
+ movs r0, 0
+_080F6F0C:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80F6ED4
+
+ thumb_func_start sub_80F6F10
+sub_80F6F10: @ 80F6F10
+ push {lr}
+ ldr r0, _080F6F48
+ ldr r0, [r0]
+ ldr r2, _080F6F4C
+ adds r1, r0, r2
+ movs r2, 0
+ strb r2, [r1]
+ ldr r1, _080F6F50
+ adds r0, r1
+ strb r2, [r0]
+ ldr r1, _080F6F54
+ movs r0, 0xC8
+ strh r0, [r1]
+ ldr r0, _080F6F58
+ strh r2, [r0]
+ subs r1, 0x8
+ ldr r2, _080F6F5C
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r2, _080F6F60
+ adds r0, r2, 0
+ strh r0, [r1]
+ movs r0, 0
+ bl sub_80F6FB8
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F6F48: .4byte gUnknown_083DFEC4
+_080F6F4C: .4byte 0x0000d15e
+_080F6F50: .4byte 0x0000d15f
+_080F6F54: .4byte REG_BLDCNT
+_080F6F58: .4byte REG_BLDY
+_080F6F5C: .4byte 0x00003f3f
+_080F6F60: .4byte 0x00001f1f
+ thumb_func_end sub_80F6F10
+
+ thumb_func_start sub_80F6F64
+sub_80F6F64: @ 80F6F64
+ push {lr}
+ ldr r0, _080F6F9C
+ ldr r1, [r0]
+ ldr r0, _080F6FA0
+ adds r2, r1, r0
+ ldrb r0, [r2]
+ adds r0, 0x1
+ strb r0, [r2]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x8
+ bls _080F6FB0
+ movs r0, 0
+ strb r0, [r2]
+ ldr r0, _080F6FA4
+ adds r1, r0
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ movs r1, 0x1
+ ands r1, r0
+ cmp r1, 0
+ beq _080F6FAC
+ ldr r1, _080F6FA8
+ movs r0, 0x6
+ strh r0, [r1]
+ b _080F6FB0
+ .align 2, 0
+_080F6F9C: .4byte gUnknown_083DFEC4
+_080F6FA0: .4byte 0x0000d15e
+_080F6FA4: .4byte 0x0000d15f
+_080F6FA8: .4byte REG_BLDY
+_080F6FAC:
+ ldr r0, _080F6FB4
+ strh r1, [r0]
+_080F6FB0:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F6FB4: .4byte REG_BLDY
+ thumb_func_end sub_80F6F64
+
+ thumb_func_start sub_80F6FB8
+sub_80F6FB8: @ 80F6FB8
+ push {lr}
+ lsls r0, 24
+ cmp r0, 0
+ bne _080F6FDC
+ ldr r1, _080F6FD0
+ ldr r2, _080F6FD4
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x4
+ ldr r2, _080F6FD8
+ b _080F6FE8
+ .align 2, 0
+_080F6FD0: .4byte REG_WIN0H
+_080F6FD4: .4byte 0x0000e8f0
+_080F6FD8: .4byte 0x00000888
+_080F6FDC:
+ ldr r1, _080F6FF0
+ ldr r2, _080F6FF4
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x4
+ ldr r2, _080F6FF8
+_080F6FE8:
+ adds r0, r2, 0
+ strh r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F6FF0: .4byte REG_WIN0H
+_080F6FF4: .4byte 0x0000e8f0
+_080F6FF8: .4byte 0x00000818
+ thumb_func_end sub_80F6FB8
+
+ thumb_func_start sub_80F6FFC
+sub_80F6FFC: @ 80F6FFC
+ ldr r0, _080F7008
+ movs r1, 0
+ strh r1, [r0]
+ adds r0, 0x4
+ strh r1, [r0]
+ bx lr
+ .align 2, 0
+_080F7008: .4byte REG_BLDCNT
+ thumb_func_end sub_80F6FFC
+
+ thumb_func_start sub_80F700C
+sub_80F700C: @ 80F700C
+ push {r4,r5,lr}
+ lsls r1, 16
+ lsrs r1, 16
+ ldr r2, _080F7078
+ ldr r4, [r2]
+ lsls r2, r1, 3
+ adds r2, r4, r2
+ ldr r3, _080F707C
+ adds r2, r3
+ ldrh r3, [r2]
+ lsls r2, r3, 2
+ adds r2, r3
+ lsls r2, 3
+ ldr r3, _080F7080
+ adds r5, r2, r3
+ adds r3, r0, 0
+ ldr r0, _080F7084
+ adds r4, r0
+ ldrh r4, [r4]
+ cmp r1, r4
+ bcs _080F7060
+ ldrb r1, [r5, 0x1]
+ movs r0, 0xD
+ muls r1, r0
+ ldr r0, _080F7088
+ adds r1, r0
+ adds r0, r3, 0
+ bl StringCopy
+ adds r3, r0, 0
+ movs r0, 0xFC
+ strb r0, [r3]
+ movs r0, 0x13
+ strb r0, [r3, 0x1]
+ movs r0, 0x4B
+ strb r0, [r3, 0x2]
+ adds r3, 0x3
+ adds r1, r5, 0x4
+ adds r0, r3, 0
+ bl StringCopy
+ adds r3, r0, 0
+_080F7060:
+ movs r0, 0xFC
+ strb r0, [r3]
+ movs r0, 0x13
+ strb r0, [r3, 0x1]
+ movs r0, 0x80
+ strb r0, [r3, 0x2]
+ movs r0, 0xFF
+ strb r0, [r3, 0x3]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F7078: .4byte gUnknown_083DFEC4
+_080F707C: .4byte 0x0000cee8
+_080F7080: .4byte gTrainers
+_080F7084: .4byte 0x0000d158
+_080F7088: .4byte gTrainerClassNames
+ thumb_func_end sub_80F700C
+
+ thumb_func_start sub_80F708C
+sub_80F708C: @ 80F708C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r4, r0, 0
+ ldr r0, _080F70E4
+ ldr r3, [r0]
+ ldr r0, _080F70E8
+ adds r2, r3, r0
+ lsls r0, r4, 24
+ asrs r0, 24
+ ldrh r1, [r2]
+ adds r0, r1
+ strh r0, [r2]
+ lsls r0, 16
+ cmp r0, 0
+ bge _080F70B4
+ ldr r5, _080F70EC
+ adds r0, r3, r5
+ ldrh r0, [r0]
+ strh r0, [r2]
+_080F70B4:
+ ldr r1, _080F70EC
+ adds r0, r3, r1
+ movs r5, 0
+ ldrsh r1, [r2, r5]
+ movs r5, 0
+ ldrsh r0, [r0, r5]
+ cmp r1, r0
+ ble _080F70C8
+ movs r0, 0
+ strh r0, [r2]
+_080F70C8:
+ ldr r1, _080F70F0
+ adds r0, r3, r1
+ strb r4, [r0]
+ ldrh r1, [r2]
+ ldr r2, _080F70F4
+ adds r0, r3, r2
+ strh r1, [r0]
+ ldr r5, _080F70F8
+ adds r1, r3, r5
+ movs r0, 0
+ strb r0, [r1]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F70E4: .4byte gUnknown_083DFEC4
+_080F70E8: .4byte 0x0000876e
+_080F70EC: .4byte 0x00008774
+_080F70F0: .4byte 0x0000bc94
+_080F70F4: .4byte 0x000087dc
+_080F70F8: .4byte 0x000087de
+ thumb_func_end sub_80F708C
+
+ thumb_func_start sub_80F70FC
+sub_80F70FC: @ 80F70FC
+ push {r4-r6,lr}
+ ldr r1, _080F711C
+ ldr r0, [r1]
+ ldr r2, _080F7120
+ adds r0, r2
+ ldrb r0, [r0]
+ adds r4, r1, 0
+ cmp r0, 0x6
+ bls _080F7110
+ b _080F7218
+_080F7110:
+ lsls r0, 2
+ ldr r1, _080F7124
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080F711C: .4byte gUnknown_083DFEC4
+_080F7120: .4byte 0x000087de
+_080F7124: .4byte _080F7128
+ .align 2, 0
+_080F7128:
+ .4byte _080F7144
+ .4byte _080F714A
+ .4byte _080F7164
+ .4byte _080F716C
+ .4byte _080F71A0
+ .4byte _080F71BA
+ .4byte _080F71EA
+_080F7144:
+ bl sub_80F6ED4
+ b _080F71F8
+_080F714A:
+ movs r0, 0
+ bl sub_80F6E04
+ ldr r0, _080F715C
+ ldr r1, [r0]
+ ldr r2, _080F7160
+ adds r1, r2
+ b _080F7206
+ .align 2, 0
+_080F715C: .4byte gUnknown_083DFEC4
+_080F7160: .4byte 0x000087de
+_080F7164:
+ movs r0, 0
+ bl sub_80F2F7C
+ b _080F71FE
+_080F716C:
+ ldr r4, [r4]
+ ldr r2, _080F7194
+ adds r5, r4, r2
+ ldr r0, _080F7198
+ adds r6, r4, r0
+ ldrh r1, [r6]
+ adds r0, r5, 0
+ bl sub_80F700C
+ adds r0, r5, 0
+ bl sub_80F43D4
+ bl sub_80F105C
+ ldrb r0, [r6]
+ bl sub_80F0FFC
+ ldr r2, _080F719C
+ adds r4, r2
+ b _080F71CC
+ .align 2, 0
+_080F7194: .4byte 0x00008788
+_080F7198: .4byte 0x0000876e
+_080F719C: .4byte 0x000087de
+_080F71A0:
+ bl sub_80F0CD8
+ ldr r0, _080F71D4
+ ldr r1, [r0]
+ ldr r0, _080F71D8
+ adds r2, r1, r0
+ movs r0, 0
+ strb r0, [r2]
+ ldr r2, _080F71DC
+ adds r1, r2
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+_080F71BA:
+ ldr r0, _080F71D4
+ ldr r1, [r0]
+ ldr r0, _080F71D8
+ adds r4, r1, r0
+ ldrb r0, [r4]
+ cmp r0, 0x1
+ bhi _080F71E0
+ bl sub_80F0D5C
+_080F71CC:
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+ b _080F721C
+ .align 2, 0
+_080F71D4: .4byte gUnknown_083DFEC4
+_080F71D8: .4byte 0x0000bc95
+_080F71DC: .4byte 0x000087de
+_080F71E0:
+ ldr r2, _080F7210
+ adds r1, r2
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+_080F71EA:
+ bl sub_80F6E9C
+ lsls r0, 24
+ cmp r0, 0
+ bne _080F721C
+ bl sub_80F0D5C
+_080F71F8:
+ lsls r0, 24
+ cmp r0, 0
+ bne _080F721C
+_080F71FE:
+ ldr r0, _080F7214
+ ldr r1, [r0]
+ ldr r0, _080F7210
+ adds r1, r0
+_080F7206:
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _080F721C
+ .align 2, 0
+_080F7210: .4byte 0x000087de
+_080F7214: .4byte gUnknown_083DFEC4
+_080F7218:
+ movs r0, 0
+ b _080F721E
+_080F721C:
+ movs r0, 0x1
+_080F721E:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80F70FC
+
+ thumb_func_start sub_80F7224
+sub_80F7224: @ 80F7224
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x64
+ muls r0, r1
+ ldr r1, _080F7260
+ adds r0, r1
+ movs r1, 0x30
+ bl GetMonData
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r0, _080F7264
+ ldr r0, [r0]
+ ldr r3, _080F7268
+ adds r1, r0, r3
+ ldrb r1, [r1]
+ lsls r1, 24
+ asrs r1, 24
+ ldr r3, _080F726C
+ adds r0, r3
+ adds r4, r0, r1
+ cmp r2, 0xFF
+ beq _080F7270
+ adds r0, r2, 0
+ movs r1, 0x1D
+ bl __udivsi3
+ b _080F7272
+ .align 2, 0
+_080F7260: .4byte gPlayerParty
+_080F7264: .4byte gUnknown_083DFEC4
+_080F7268: .4byte 0x00008fe9
+_080F726C: .4byte 0x00008931
+_080F7270:
+ movs r0, 0x9
+_080F7272:
+ strb r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80F7224
+
+ thumb_func_start sub_80F727C
+sub_80F727C: @ 80F727C
+ ldr r1, _080F7288
+ str r0, [r1]
+ movs r1, 0
+ strb r1, [r0, 0xB]
+ bx lr
+ .align 2, 0
+_080F7288: .4byte gUnknown_020388B8
+ thumb_func_end sub_80F727C
+
+ thumb_func_start sub_80F728C
+sub_80F728C: @ 80F728C
+ push {lr}
+ sub sp, 0x4
+ ldr r0, _080F72C4
+ ldrb r0, [r0, 0x14]
+ lsrs r0, 3
+ bl GetTextWindowFrameGraphics
+ ldr r3, _080F72C8
+ ldr r2, [r3]
+ ldr r1, [r0]
+ str r1, [r2, 0x28]
+ ldr r0, [r0, 0x4]
+ str r0, [r2, 0x2C]
+ ldr r0, _080F72CC
+ adds r2, r0
+ movs r1, 0
+ strb r1, [r2]
+ mov r0, sp
+ strh r1, [r0]
+ ldr r1, [r3]
+ adds r1, 0x30
+ ldr r2, _080F72D0
+ bl CpuSet
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F72C4: .4byte gSaveBlock2
+_080F72C8: .4byte gUnknown_020388B8
+_080F72CC: .4byte 0x000010b0
+_080F72D0: .4byte 0x01000800
+ thumb_func_end sub_80F728C
+
+ thumb_func_start sub_80F72D4
+sub_80F72D4: @ 80F72D4
+ push {r4-r7,lr}
+ ldr r0, _080F72F4
+ ldr r1, [r0]
+ ldr r2, _080F72F8
+ adds r0, r1, r2
+ ldrb r2, [r0]
+ lsls r0, r2, 8
+ adds r0, 0x30
+ adds r5, r1, r0
+ cmp r2, 0xD
+ beq _080F73A4
+ cmp r2, 0xD
+ bgt _080F72FC
+ cmp r2, 0
+ beq _080F7302
+ b _080F734C
+ .align 2, 0
+_080F72F4: .4byte gUnknown_020388B8
+_080F72F8: .4byte 0x000010b0
+_080F72FC:
+ cmp r2, 0xE
+ beq _080F73F0
+ b _080F734C
+_080F7302:
+ ldr r0, [r1, 0x28]
+ adds r1, r5, 0
+ movs r2, 0x8
+ bl CpuFastSet
+ movs r4, 0
+ adds r7, r5, 0
+ adds r7, 0xE0
+_080F7312:
+ ldr r6, _080F7344
+ ldr r0, [r6]
+ ldr r0, [r0, 0x28]
+ adds r0, 0x20
+ adds r4, 0x1
+ lsls r1, r4, 5
+ adds r1, r5, r1
+ movs r2, 0x8
+ bl CpuFastSet
+ lsls r4, 16
+ lsrs r4, 16
+ cmp r4, 0x5
+ bls _080F7312
+ ldr r0, [r6]
+ ldr r0, [r0, 0x28]
+ adds r0, 0x40
+ adds r1, r7, 0
+ movs r2, 0x8
+ bl CpuFastSet
+ ldr r1, [r6]
+ ldr r0, _080F7348
+ adds r1, r0
+ b _080F7392
+ .align 2, 0
+_080F7344: .4byte gUnknown_020388B8
+_080F7348: .4byte 0x000010b0
+_080F734C:
+ ldr r0, _080F739C
+ ldr r0, [r0]
+ ldr r0, [r0, 0x28]
+ adds r0, 0x60
+ adds r1, r5, 0
+ movs r2, 0x8
+ bl CpuFastSet
+ movs r4, 0
+ adds r7, r5, 0
+ adds r7, 0xE0
+_080F7362:
+ ldr r6, _080F739C
+ ldr r0, [r6]
+ ldr r0, [r0, 0x28]
+ adds r0, 0x80
+ adds r4, 0x1
+ lsls r1, r4, 5
+ adds r1, r5, r1
+ movs r2, 0x8
+ bl CpuFastSet
+ lsls r4, 16
+ lsrs r4, 16
+ cmp r4, 0x5
+ bls _080F7362
+ ldr r0, [r6]
+ ldr r0, [r0, 0x28]
+ adds r0, 0xA0
+ adds r1, r7, 0
+ movs r2, 0x8
+ bl CpuFastSet
+ ldr r1, [r6]
+ ldr r2, _080F73A0
+ adds r1, r2
+_080F7392:
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _080F73FC
+ .align 2, 0
+_080F739C: .4byte gUnknown_020388B8
+_080F73A0: .4byte 0x000010b0
+_080F73A4:
+ ldr r0, [r1, 0x28]
+ adds r0, 0xC0
+ adds r1, r5, 0
+ movs r2, 0x8
+ bl CpuFastSet
+ movs r4, 0
+ adds r7, r5, 0
+ adds r7, 0xE0
+_080F73B6:
+ ldr r6, _080F73F4
+ ldr r0, [r6]
+ ldr r0, [r0, 0x28]
+ adds r0, 0xE0
+ adds r4, 0x1
+ lsls r1, r4, 5
+ adds r1, r5, r1
+ movs r2, 0x8
+ bl CpuFastSet
+ lsls r4, 16
+ lsrs r4, 16
+ cmp r4, 0x5
+ bls _080F73B6
+ ldr r0, [r6]
+ ldr r0, [r0, 0x28]
+ movs r1, 0x80
+ lsls r1, 1
+ adds r0, r1
+ adds r1, r7, 0
+ movs r2, 0x8
+ bl CpuFastSet
+ ldr r1, [r6]
+ ldr r2, _080F73F8
+ adds r1, r2
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+_080F73F0:
+ movs r0, 0
+ b _080F73FE
+ .align 2, 0
+_080F73F4: .4byte gUnknown_020388B8
+_080F73F8: .4byte 0x000010b0
+_080F73FC:
+ movs r0, 0x1
+_080F73FE:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80F72D4
+
+ thumb_func_start sub_80F7404
+sub_80F7404: @ 80F7404
+ push {lr}
+ bl sub_80F728C
+_080F740A:
+ bl sub_80F72D4
+ lsls r0, 24
+ cmp r0, 0
+ bne _080F740A
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80F7404
+
+ thumb_func_start sub_80F7418
+sub_80F7418: @ 80F7418
+ push {r4-r6,lr}
+ lsls r1, 16
+ lsrs r5, r1, 16
+ lsls r2, 16
+ lsrs r6, r2, 16
+ ldr r2, _080F746C
+ ldr r3, [r2]
+ movs r1, 0
+ strb r1, [r3, 0x5]
+ ldr r1, [r2]
+ strb r0, [r1, 0x4]
+ movs r3, 0
+ adds r4, r2, 0
+ movs r2, 0x1
+_080F7434:
+ ldr r0, [r4]
+ adds r1, r0, 0x6
+ adds r1, r3
+ ldrb r0, [r0, 0x4]
+ asrs r0, r3
+ ands r0, r2
+ strb r0, [r1]
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0x3
+ bls _080F7434
+ bl sub_814A7FC
+ lsls r0, r5, 16
+ asrs r0, 16
+ lsls r1, r6, 16
+ asrs r1, 16
+ ldr r2, _080F746C
+ ldr r3, [r2]
+ ldrh r2, [r3]
+ ldrh r3, [r3, 0x2]
+ bl sub_80F761C
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F746C: .4byte gUnknown_020388B8
+ thumb_func_end sub_80F7418
+
+ thumb_func_start sub_80F7470
+sub_80F7470: @ 80F7470
+ push {r4,r5,lr}
+ movs r4, 0
+ ldr r5, _080F74FC
+_080F7476:
+ ldr r0, [r5]
+ ldrh r0, [r0]
+ adds r0, r4, r0
+ lsls r0, 16
+ lsrs r0, 16
+ bl FreeSpriteTilesByTag
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x2
+ bls _080F7476
+ ldr r4, _080F74FC
+ ldr r0, [r4]
+ ldrh r0, [r0, 0x2]
+ bl FreeSpritePaletteByTag
+ ldr r0, [r4]
+ ldrh r0, [r0, 0x2]
+ adds r0, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+ bl FreeSpritePaletteByTag
+ movs r4, 0
+_080F74A8:
+ ldr r0, _080F74FC
+ ldr r0, [r0]
+ lsls r1, r4, 2
+ adds r0, 0xC
+ adds r0, r1
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _080F74F6
+ bl DestroySprite
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x1
+ bls _080F74A8
+ movs r4, 0
+_080F74C8:
+ ldr r5, _080F74FC
+ ldr r0, [r5]
+ lsls r1, r4, 2
+ adds r0, 0x14
+ adds r0, r1
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _080F74F6
+ bl DestroySprite
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x3
+ bls _080F74C8
+ bl sub_814A7FC
+ ldr r0, [r5]
+ ldr r0, [r0, 0x24]
+ cmp r0, 0
+ beq _080F74F6
+ bl DestroySprite
+_080F74F6:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F74FC: .4byte gUnknown_020388B8
+ thumb_func_end sub_80F7470
+
+ thumb_func_start sub_80F7500
+sub_80F7500: @ 80F7500
+ push {r4,r5,lr}
+ sub sp, 0x30
+ ldr r4, _080F7580
+ ldr r2, [r4]
+ adds r0, r2, 0
+ adds r0, 0x30
+ str r0, [sp, 0x18]
+ add r1, sp, 0x1C
+ movs r5, 0
+ movs r0, 0x80
+ lsls r0, 5
+ strh r0, [r1]
+ ldrh r1, [r2]
+ mov r0, sp
+ adds r0, 0x1E
+ strh r1, [r0]
+ add r1, sp, 0x20
+ ldr r0, _080F7584
+ str r0, [sp, 0x20]
+ movs r0, 0xA4
+ lsls r0, 3
+ strh r0, [r1, 0x4]
+ ldrh r0, [r2]
+ adds r0, 0x1
+ strh r0, [r1, 0x6]
+ add r0, sp, 0x28
+ movs r1, 0
+ movs r2, 0x8
+ bl memset
+ add r1, sp, 0x18
+ mov r0, sp
+ movs r2, 0x18
+ bl memcpy
+ ldr r0, [r4]
+ ldrb r0, [r0, 0xB]
+ cmp r0, 0
+ beq _080F7558
+ mov r0, sp
+ bl LoadTilesForSpriteSheets
+ ldr r0, [r4]
+ strb r5, [r0, 0xB]
+_080F7558:
+ ldr r0, _080F7588
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _080F758C
+ movs r0, 0x5
+ bl PlaySE
+ ldr r1, [r4]
+ ldrb r0, [r1, 0x5]
+ subs r0, 0x1
+ strb r0, [r1, 0x5]
+ lsls r0, 24
+ cmp r0, 0
+ bge _080F75FE
+ ldr r1, [r4]
+ movs r0, 0x5
+ strb r0, [r1, 0x5]
+ b _080F75FE
+ .align 2, 0
+_080F7580: .4byte gUnknown_020388B8
+_080F7584: .4byte gPokenavConditionMenuMisc_Gfx
+_080F7588: .4byte gMain
+_080F758C:
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _080F75B0
+ movs r0, 0x5
+ bl PlaySE
+ ldr r1, [r4]
+ ldrb r0, [r1, 0x5]
+ adds r0, 0x1
+ strb r0, [r1, 0x5]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0x5
+ ble _080F75FE
+ ldr r0, [r4]
+ strb r5, [r0, 0x5]
+ b _080F75FE
+_080F75B0:
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080F7602
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, [r4]
+ movs r1, 0x5
+ ldrsb r1, [r0, r1]
+ cmp r1, 0x4
+ beq _080F75DC
+ cmp r1, 0x5
+ beq _080F7610
+ adds r0, 0x6
+ adds r1, r0, r1
+ movs r2, 0
+ ldrb r0, [r1]
+ cmp r0, 0
+ bne _080F75FC
+ movs r2, 0x1
+ b _080F75FC
+_080F75DC:
+ strb r5, [r0, 0x4]
+ movs r3, 0
+_080F75E0:
+ ldr r2, [r4]
+ adds r0, r2, 0x6
+ adds r0, r3
+ ldrb r0, [r0]
+ lsls r0, r3
+ ldrb r1, [r2, 0x4]
+ orrs r0, r1
+ strb r0, [r2, 0x4]
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0x3
+ bls _080F75E0
+ b _080F7610
+_080F75FC:
+ strb r2, [r1]
+_080F75FE:
+ movs r0, 0x1
+ b _080F7612
+_080F7602:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080F75FE
+ movs r0, 0x5
+ bl PlaySE
+_080F7610:
+ movs r0, 0
+_080F7612:
+ add sp, 0x30
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80F7500
+
+ thumb_func_start sub_80F761C
+sub_80F761C: @ 80F761C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x5C
+ adds r5, r2, 0
+ lsls r0, 16
+ lsrs r0, 16
+ str r0, [sp, 0x4C]
+ lsls r1, 16
+ lsrs r1, 16
+ str r1, [sp, 0x50]
+ lsls r5, 16
+ lsrs r5, 16
+ lsls r3, 16
+ lsrs r3, 16
+ str r3, [sp, 0x54]
+ ldr r0, _080F7820
+ mov r8, r0
+ ldr r0, [r0]
+ adds r0, 0x30
+ str r0, [sp, 0x1C]
+ add r1, sp, 0x20
+ movs r2, 0
+ mov r9, r2
+ movs r0, 0x80
+ lsls r0, 5
+ strh r0, [r1]
+ mov r0, sp
+ adds r0, 0x22
+ strh r5, [r0]
+ add r1, sp, 0x24
+ ldr r0, _080F7824
+ str r0, [sp, 0x24]
+ movs r0, 0xA4
+ lsls r0, 3
+ strh r0, [r1, 0x4]
+ adds r0, r5, 0x1
+ strh r0, [r1, 0x6]
+ add r0, sp, 0x2C
+ movs r1, 0
+ movs r2, 0x8
+ bl memset
+ add r6, sp, 0x1C
+ add r0, sp, 0x4
+ adds r1, r6, 0
+ movs r2, 0x18
+ bl memcpy
+ mov r3, r8
+ ldr r0, [r3]
+ ldr r0, [r0, 0x2C]
+ str r0, [sp, 0x34]
+ add r0, sp, 0x38
+ add r1, sp, 0x54
+ ldrh r1, [r1]
+ strh r1, [r0]
+ add r1, sp, 0x3C
+ ldr r0, _080F7828
+ str r0, [sp, 0x3C]
+ ldr r0, [sp, 0x54]
+ adds r0, 0x1
+ strh r0, [r1, 0x4]
+ add r0, sp, 0x44
+ movs r1, 0
+ movs r2, 0x8
+ bl memset
+ add r4, sp, 0x34
+ adds r0, r6, 0
+ adds r1, r4, 0
+ movs r2, 0x18
+ bl memcpy
+ strh r5, [r4]
+ add r2, sp, 0x54
+ ldrh r2, [r2]
+ strh r2, [r4, 0x2]
+ ldr r0, _080F782C
+ str r0, [r4, 0x4]
+ ldr r0, _080F7830
+ str r0, [r4, 0x8]
+ mov r3, r9
+ str r3, [r4, 0xC]
+ ldr r0, _080F7834
+ str r0, [r4, 0x10]
+ ldr r0, _080F7838
+ str r0, [r4, 0x14]
+ mov r0, r8
+ ldr r1, [r0]
+ movs r0, 0x1
+ strb r0, [r1, 0xB]
+ add r0, sp, 0x4
+ bl AllocTilesForSpriteSheets
+ adds r0, r6, 0
+ bl LoadSpritePalettes
+ movs r5, 0
+ ldr r1, [sp, 0x4C]
+ lsls r0, r1, 16
+ movs r2, 0x80
+ lsls r2, 14
+ adds r2, r0
+ mov r8, r2
+ str r0, [sp, 0x58]
+ ldr r3, [sp, 0x50]
+ lsls r0, r3, 16
+ movs r1, 0x80
+ lsls r1, 14
+ adds r7, r0, r1
+ mov r9, r0
+_080F7700:
+ adds r0, r4, 0
+ mov r2, r8
+ asrs r1, r2, 16
+ asrs r2, r7, 16
+ movs r3, 0x2
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x40
+ bne _080F7718
+ b _080F7850
+_080F7718:
+ ldr r6, _080F7820
+ ldr r2, [r6]
+ lsls r0, r5, 2
+ adds r2, 0xC
+ adds r2, r0
+ lsls r0, r3, 4
+ adds r0, r3
+ lsls r0, 2
+ ldr r1, _080F783C
+ adds r0, r1
+ str r0, [r2]
+ lsls r1, r5, 24
+ lsrs r1, 24
+ bl StartSpriteAnim
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x1
+ bls _080F7700
+ ldr r0, [r6]
+ ldr r1, [r0, 0x10]
+ mov r3, r9
+ asrs r0, r3, 16
+ adds r0, 0x60
+ strh r0, [r1, 0x22]
+ ldrh r0, [r4]
+ adds r0, 0x1
+ strh r0, [r4]
+ ldrh r0, [r4, 0x2]
+ adds r0, 0x1
+ strh r0, [r4, 0x2]
+ ldr r0, _080F7840
+ str r0, [r4, 0x8]
+ ldr r0, _080F7844
+ str r0, [r4, 0x14]
+ ldr r0, _080F7848
+ str r0, [r4, 0x4]
+ movs r5, 0
+ ldr r0, [sp, 0x58]
+ movs r1, 0x80
+ lsls r1, 14
+ adds r0, r1
+ mov r10, r0
+_080F7770:
+ lsls r2, r5, 4
+ adds r2, 0x10
+ mov r3, r9
+ asrs r3, 16
+ mov r8, r3
+ add r2, r8
+ lsls r2, 16
+ asrs r2, 16
+ adds r0, r4, 0
+ mov r3, r10
+ asrs r1, r3, 16
+ movs r3, 0x1
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x40
+ beq _080F7860
+ ldr r6, _080F7820
+ ldr r1, [r6]
+ lsls r0, r5, 2
+ adds r1, 0x14
+ adds r1, r0
+ lsls r0, r3, 4
+ adds r0, r3
+ lsls r0, 2
+ ldr r7, _080F783C
+ adds r0, r7
+ str r0, [r1]
+ strh r5, [r0, 0x2E]
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x3
+ bls _080F7770
+ ldr r0, _080F784C
+ str r0, [r4, 0x14]
+ adds r0, r4, 0
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x1
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x40
+ beq _080F7874
+ ldr r1, [r6]
+ lsls r0, r3, 4
+ adds r0, r3
+ lsls r0, 2
+ adds r0, r7
+ str r0, [r1, 0x24]
+ ldrb r2, [r0, 0x1]
+ movs r1, 0x3F
+ ands r1, r2
+ movs r2, 0x40
+ orrs r1, r2
+ strb r1, [r0, 0x1]
+ ldr r0, [r6]
+ ldr r2, [r0, 0x24]
+ ldrb r0, [r2, 0x3]
+ movs r1, 0xC0
+ orrs r0, r1
+ strb r0, [r2, 0x3]
+ ldr r0, [r6]
+ ldr r0, [r0, 0x24]
+ movs r1, 0x9
+ bl StartSpriteAnim
+ ldr r1, [r6]
+ ldr r2, [r1, 0x24]
+ ldr r3, [sp, 0x58]
+ asrs r0, r3, 16
+ adds r0, 0x20
+ strh r0, [r2, 0x20]
+ ldr r2, [r1, 0x24]
+ mov r0, r8
+ adds r0, 0x50
+ strh r0, [r2, 0x22]
+ ldr r0, [r1, 0x24]
+ movs r1, 0x1
+ movs r2, 0x2
+ movs r3, 0
+ bl CalcCenterToCornerVec
+ b _080F787A
+ .align 2, 0
+_080F7820: .4byte gUnknown_020388B8
+_080F7824: .4byte gPokenavConditionMenuMisc_Gfx
+_080F7828: .4byte gUnknown_08E966B8
+_080F782C: .4byte gUnknown_083E5214
+_080F7830: .4byte gSpriteAnimTable_83E52AC
+_080F7834: .4byte gDummySpriteAffineAnimTable
+_080F7838: .4byte nullsub_65
+_080F783C: .4byte gSprites
+_080F7840: .4byte gSpriteAnimTable_83E5274
+_080F7844: .4byte sub_80F78CC
+_080F7848: .4byte gUnknown_083E521C
+_080F784C: .4byte SpriteCallbackDummy
+_080F7850:
+ ldr r0, _080F785C
+ ldr r0, [r0]
+ lsls r1, r5, 2
+ adds r0, 0xC
+ b _080F7868
+ .align 2, 0
+_080F785C: .4byte gUnknown_020388B8
+_080F7860:
+ ldr r0, _080F7870
+ ldr r0, [r0]
+ lsls r1, r5, 2
+ adds r0, 0x14
+_080F7868:
+ adds r0, r1
+ movs r1, 0
+ str r1, [r0]
+ b _080F78B0
+ .align 2, 0
+_080F7870: .4byte gUnknown_020388B8
+_080F7874:
+ ldr r1, [r6]
+ movs r0, 0
+ str r0, [r1, 0x24]
+_080F787A:
+ ldr r4, _080F78C0
+ ldr r1, [r4]
+ ldr r0, [sp, 0x50]
+ adds r0, 0x8
+ strb r0, [r1, 0xA]
+ ldr r1, [sp, 0x54]
+ adds r1, 0x1
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0x30
+ str r0, [sp]
+ movs r0, 0
+ movs r2, 0xF
+ movs r3, 0
+ bl sub_814A5C0
+ ldr r0, [sp, 0x4C]
+ adds r0, 0x8
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, [r4]
+ ldrb r1, [r1, 0xA]
+ bl sub_814A880
+ ldr r0, _080F78C4
+ bl sub_814AABC
+_080F78B0:
+ add sp, 0x5C
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F78C0: .4byte gUnknown_020388B8
+_080F78C4: .4byte sub_80F7908
+ thumb_func_end sub_80F761C
+
+ thumb_func_start nullsub_65
+nullsub_65: @ 80F78C8
+ bx lr
+ thumb_func_end nullsub_65
+
+ thumb_func_start sub_80F78CC
+sub_80F78CC: @ 80F78CC
+ push {lr}
+ adds r2, r0, 0
+ ldr r0, _080F78F4
+ ldr r0, [r0]
+ movs r3, 0x2E
+ ldrsh r1, [r2, r3]
+ adds r0, 0x6
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080F78F8
+ lsls r1, 1
+ adds r1, 0x1
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r2, 0
+ bl StartSpriteAnim
+ b _080F7902
+ .align 2, 0
+_080F78F4: .4byte gUnknown_020388B8
+_080F78F8:
+ lsls r1, 25
+ lsrs r1, 24
+ adds r0, r2, 0
+ bl StartSpriteAnim
+_080F7902:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80F78CC
+
+ thumb_func_start sub_80F7908
+sub_80F7908: @ 80F7908
+ ldr r1, _080F791C
+ ldr r2, [r1]
+ movs r1, 0x5
+ ldrsb r1, [r2, r1]
+ lsls r1, 4
+ ldrb r2, [r2, 0xA]
+ adds r1, r2
+ strh r1, [r0, 0x22]
+ bx lr
+ .align 2, 0
+_080F791C: .4byte gUnknown_020388B8
+ thumb_func_end sub_80F7908
+
+ thumb_func_start sub_80F7920
+sub_80F7920: @ 80F7920
+ push {lr}
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r1, 16
+ lsrs r1, 16
+ cmp r2, 0
+ bne _080F7930
+ ldr r2, _080F793C
+_080F7930:
+ movs r3, 0x10
+ bl sub_80F7960
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080F793C: .4byte gUnknown_083E49F4
+ thumb_func_end sub_80F7920
+
+ thumb_func_start sub_80F7940
+sub_80F7940: @ 80F7940
+ push {lr}
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r1, 16
+ lsrs r1, 16
+ cmp r2, 0
+ bne _080F7950
+ ldr r2, _080F795C
+_080F7950:
+ movs r3, 0x1
+ bl sub_80F7960
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080F795C: .4byte gUnknown_083E49F4
+ thumb_func_end sub_80F7940
+
+ thumb_func_start sub_80F7960
+sub_80F7960: @ 80F7960
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ sub sp, 0x28
+ lsls r0, 16
+ lsls r1, 16
+ lsrs r1, 16
+ ldr r4, _080F79DC
+ str r4, [sp, 0x18]
+ movs r4, 0x80
+ add r5, sp, 0x18
+ lsrs r6, r0, 16
+ orrs r0, r4
+ str r0, [r5, 0x4]
+ str r2, [sp, 0x20]
+ ldr r0, _080F79E0
+ mov r8, r0
+ add r4, sp, 0x20
+ ldr r0, [r4, 0x4]
+ mov r2, r8
+ ands r0, r2
+ orrs r0, r1
+ str r0, [r4, 0x4]
+ mov r0, sp
+ movs r2, 0
+ strh r6, [r0]
+ strh r1, [r0, 0x2]
+ ldr r0, _080F79E4
+ str r0, [sp, 0x4]
+ ldr r0, _080F79E8
+ str r0, [sp, 0x8]
+ str r2, [sp, 0xC]
+ ldr r0, _080F79EC
+ str r0, [sp, 0x10]
+ ldr r0, _080F79F0
+ str r0, [sp, 0x14]
+ lsls r3, 23
+ lsrs r3, 16
+ ldr r0, [r5, 0x4]
+ mov r1, r8
+ ands r0, r1
+ orrs r0, r3
+ str r0, [r5, 0x4]
+ adds r0, r5, 0
+ bl LoadSpriteSheet
+ adds r0, r4, 0
+ bl LoadSpritePalette
+ mov r0, sp
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x40
+ bne _080F79F4
+ movs r0, 0
+ b _080F79FE
+ .align 2, 0
+_080F79DC: .4byte gUnknown_083E4A14
+_080F79E0: .4byte 0xffff0000
+_080F79E4: .4byte gUnknown_083E52B4
+_080F79E8: .4byte gSpriteAnimTable_83E533C
+_080F79EC: .4byte gDummySpriteAffineAnimTable
+_080F79F0: .4byte nullsub_65
+_080F79F4:
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080F7A0C
+ adds r0, r1
+_080F79FE:
+ add sp, 0x28
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080F7A0C: .4byte gSprites
+ thumb_func_end sub_80F7960
+
+ thumb_func_start sub_80F7A10
+sub_80F7A10: @ 80F7A10
+ lsls r0, 24
+ lsrs r0, 17
+ ldr r2, _080F7A28
+ adds r0, r2
+ ldr r2, _080F7A2C
+ str r0, [r2]
+ str r1, [r2, 0x4]
+ ldr r0, _080F7A30
+ str r0, [r2, 0x8]
+ ldr r0, [r2, 0x8]
+ bx lr
+ .align 2, 0
+_080F7A28: .4byte gUnknown_083E4A14
+_080F7A2C: .4byte 0x040000d4
+_080F7A30: .4byte 0x80000040
+ thumb_func_end sub_80F7A10
+
+ thumb_func_start sub_80F7A34
+sub_80F7A34: @ 80F7A34
+ push {r4,lr}
+ ldr r0, _080F7A64
+ movs r1, 0
+ strb r1, [r0]
+ adds r2, r0, 0
+ adds r2, 0x29
+ strb r1, [r2]
+ movs r2, 0
+ adds r4, r0, 0x2
+ ldr r3, _080F7A68
+_080F7A48:
+ lsls r0, r2, 1
+ adds r1, r4, r0
+ adds r0, r3
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0x5
+ bls _080F7A48
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F7A64: .4byte gSaveBlock1 + 0x2D94
+_080F7A68: .4byte gUnknown_083E537C
+ thumb_func_end sub_80F7A34
+
+ thumb_func_start sub_80F7A6C
+sub_80F7A6C: @ 80F7A6C
+ ldr r0, _080F7A78
+ movs r2, 0
+ movs r1, 0x1
+ strb r1, [r0]
+ strb r2, [r0, 0x1]
+ bx lr
+ .align 2, 0
+_080F7A78: .4byte gSaveBlock1 + 0x2D94
+ thumb_func_end sub_80F7A6C
+
+ thumb_func_start sub_80F7A7C
+sub_80F7A7C: @ 80F7A7C
+ push {lr}
+ bl sub_80F83F8
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80F7A7C
+
+ thumb_func_start sub_80F7A88
+sub_80F7A88: @ 80F7A88
+ ldr r0, _080F7A94
+ movs r2, 0
+ movs r1, 0x4
+ strb r1, [r0]
+ strb r2, [r0, 0x1]
+ bx lr
+ .align 2, 0
+_080F7A94: .4byte gSaveBlock1 + 0x2D94
+ thumb_func_end sub_80F7A88
+
+ thumb_func_start sub_80F7A98
+sub_80F7A98: @ 80F7A98
+ push {lr}
+ bl sub_81099CC
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80F7A98
+
+ thumb_func_start sub_80F7AA4
+sub_80F7AA4: @ 80F7AA4
+ push {lr}
+ ldr r0, _080F7AC8
+ ldrb r1, [r0, 0xB]
+ lsls r1, 8
+ ldrb r0, [r0, 0xA]
+ orrs r0, r1
+ movs r1, 0xA
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r0, 17
+ cmp r0, 0x4
+ bhi _080F7B00
+ lsls r0, 2
+ ldr r1, _080F7ACC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080F7AC8: .4byte gSaveBlock2
+_080F7ACC: .4byte _080F7AD0
+ .align 2, 0
+_080F7AD0:
+ .4byte _080F7AE4
+ .4byte _080F7AEA
+ .4byte _080F7AF0
+ .4byte _080F7AF6
+ .4byte _080F7AFC
+_080F7AE4:
+ bl sub_80F7A34
+ b _080F7B00
+_080F7AEA:
+ bl sub_80F7A6C
+ b _080F7B00
+_080F7AF0:
+ bl sub_80F7A98
+ b _080F7B00
+_080F7AF6:
+ bl sub_80F7A7C
+ b _080F7B00
+_080F7AFC:
+ bl sub_80F7A88
+_080F7B00:
+ bl sub_80F83D0
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80F7AA4
+
+ thumb_func_start GetCurrentMauvilleOldMan
+GetCurrentMauvilleOldMan: @ 80F7B08
+ ldr r0, _080F7B10
+ ldrb r0, [r0]
+ bx lr
+ .align 2, 0
+_080F7B10: .4byte gSaveBlock1 + 0x2D94
+ thumb_func_end GetCurrentMauvilleOldMan
+
+ thumb_func_start sub_80F7B14
+sub_80F7B14: @ 80F7B14
+ push {r4,lr}
+ ldr r4, _080F7B28
+ bl GetCurrentMauvilleOldMan
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F7B28: .4byte gScriptResult
+ thumb_func_end sub_80F7B14
+
+ thumb_func_start sub_80F7B2C
+sub_80F7B2C: @ 80F7B2C
+ ldr r0, _080F7B38
+ ldr r1, _080F7B3C
+ adds r1, 0x29
+ ldrb r1, [r1]
+ strh r1, [r0]
+ bx lr
+ .align 2, 0
+_080F7B38: .4byte gScriptResult
+_080F7B3C: .4byte gSaveBlock1 + 0x2D94
+ thumb_func_end sub_80F7B2C
+
+ thumb_func_start sub_80F7B40
+sub_80F7B40: @ 80F7B40
+ push {r4,r5,lr}
+ ldr r5, _080F7B98
+ adds r0, r5, 0
+ adds r0, 0x1A
+ ldr r4, _080F7B9C
+ adds r1, r4, 0
+ bl StringCopy
+ movs r2, 0
+ adds r3, r5, 0
+ adds r3, 0x25
+ adds r4, 0xA
+_080F7B58:
+ adds r1, r3, r2
+ adds r0, r2, r4
+ ldrb r0, [r0]
+ strb r0, [r1]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0x3
+ bls _080F7B58
+ movs r2, 0
+ movs r0, 0x29
+ adds r0, r5
+ mov r12, r0
+ adds r4, r5, 0x2
+ adds r3, r5, 0
+ adds r3, 0xE
+_080F7B78:
+ lsls r0, r2, 1
+ adds r1, r4, r0
+ adds r0, r3, r0
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0x5
+ bls _080F7B78
+ movs r0, 0x1
+ mov r1, r12
+ strb r0, [r1]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F7B98: .4byte gSaveBlock1 + 0x2D94
+_080F7B9C: .4byte gSaveBlock2
+ thumb_func_end sub_80F7B40
+
+ thumb_func_start sub_80F7BA0
+sub_80F7BA0: @ 80F7BA0
+ push {r4-r7,lr}
+ ldr r1, _080F7C48
+ ldr r0, _080F7C4C
+ ldrh r0, [r0]
+ adds r5, r1, 0
+ adds r5, 0xE
+ cmp r0, 0
+ bne _080F7BB2
+ adds r5, r1, 0x2
+_080F7BB2:
+ ldr r2, _080F7C50
+ adds r4, r2, 0
+ movs r6, 0
+_080F7BB8:
+ ldrh r1, [r5]
+ adds r5, 0x2
+ adds r0, r2, 0
+ bl sub_80EB3FC
+ adds r2, r0, 0
+ adds r7, r6, 0x1
+ cmp r2, r4
+ beq _080F7BDA
+ movs r1, 0x37
+_080F7BCC:
+ ldrb r0, [r4]
+ cmp r0, 0
+ bne _080F7BD4
+ strb r1, [r4]
+_080F7BD4:
+ adds r4, 0x1
+ cmp r2, r4
+ bne _080F7BCC
+_080F7BDA:
+ adds r4, 0x1
+ movs r0, 0
+ strb r0, [r2]
+ adds r2, 0x1
+ ldrh r1, [r5]
+ adds r5, 0x2
+ adds r0, r2, 0
+ bl sub_80EB3FC
+ adds r2, r0, 0
+ cmp r2, r4
+ beq _080F7C02
+ movs r1, 0x37
+_080F7BF4:
+ ldrb r0, [r4]
+ cmp r0, 0
+ bne _080F7BFC
+ strb r1, [r4]
+_080F7BFC:
+ adds r4, 0x1
+ cmp r2, r4
+ bne _080F7BF4
+_080F7C02:
+ adds r4, 0x1
+ movs r0, 0xFE
+ strb r0, [r2]
+ adds r2, 0x1
+ ldrh r1, [r5]
+ adds r5, 0x2
+ adds r0, r2, 0
+ bl sub_80EB3FC
+ adds r2, r0, 0
+ cmp r2, r4
+ beq _080F7C2A
+ movs r1, 0x37
+_080F7C1C:
+ ldrb r0, [r4]
+ cmp r0, 0
+ bne _080F7C24
+ strb r1, [r4]
+_080F7C24:
+ adds r4, 0x1
+ cmp r2, r4
+ bne _080F7C1C
+_080F7C2A:
+ cmp r6, 0
+ bne _080F7C3A
+ movs r0, 0xFC
+ strb r0, [r2]
+ adds r2, 0x1
+ movs r0, 0xF
+ strb r0, [r2]
+ adds r2, 0x1
+_080F7C3A:
+ lsls r0, r7, 16
+ lsrs r6, r0, 16
+ cmp r6, 0x1
+ bls _080F7BB8
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F7C48: .4byte gSaveBlock1 + 0x2D94
+_080F7C4C: .4byte gUnknown_0202E8CC
+_080F7C50: .4byte gStringVar4
+ thumb_func_end sub_80F7BA0
+
+ thumb_func_start sub_80F7C54
+sub_80F7C54: @ 80F7C54
+ push {lr}
+ ldr r0, _080F7C6C
+ ldrb r0, [r0]
+ bl sub_80F7F80
+ bl MenuDisplayMessageBox
+ bl ScriptContext1_Stop
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F7C6C: .4byte gUnknown_0202E8CC
+ thumb_func_end sub_80F7C54
+
+ thumb_func_start sub_80F7C70
+sub_80F7C70: @ 80F7C70
+ ldr r0, _080F7C7C
+ ldr r1, _080F7C80
+ ldrb r1, [r1, 0x1]
+ strh r1, [r0]
+ bx lr
+ .align 2, 0
+_080F7C7C: .4byte gScriptResult
+_080F7C80: .4byte gSaveBlock1 + 0x2D94
+ thumb_func_end sub_80F7C70
+
+ thumb_func_start sub_80F7C84
+sub_80F7C84: @ 80F7C84
+ ldr r1, _080F7C8C
+ movs r0, 0x1
+ strb r0, [r1, 0x1]
+ bx lr
+ .align 2, 0
+_080F7C8C: .4byte gSaveBlock1 + 0x2D94
+ thumb_func_end sub_80F7C84
+
+ thumb_func_start sub_80F7C90
+sub_80F7C90: @ 80F7C90
+ push {lr}
+ bl sub_80EB8EC
+ lsls r0, 16
+ lsrs r1, r0, 16
+ ldr r0, _080F7CA8
+ cmp r1, r0
+ bne _080F7CB0
+ ldr r1, _080F7CAC
+ movs r0, 0
+ b _080F7CBA
+ .align 2, 0
+_080F7CA8: .4byte 0x0000ffff
+_080F7CAC: .4byte gScriptResult
+_080F7CB0:
+ ldr r0, _080F7CC0
+ bl sub_80EB3FC
+ ldr r1, _080F7CC4
+ movs r0, 0x1
+_080F7CBA:
+ strh r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F7CC0: .4byte gStringVar1
+_080F7CC4: .4byte gScriptResult
+ thumb_func_end sub_80F7C90
+
+ thumb_func_start sub_80F7CC8
+sub_80F7CC8: @ 80F7CC8
+ push {lr}
+ ldr r2, _080F7CDC
+ ldrb r0, [r2, 0x1]
+ cmp r0, 0xA
+ bne _080F7CE4
+ ldr r1, _080F7CE0
+ movs r0, 0
+ strh r0, [r1]
+ strb r0, [r2, 0x1]
+ b _080F7CEA
+ .align 2, 0
+_080F7CDC: .4byte gSaveBlock1 + 0x2D94
+_080F7CE0: .4byte gScriptResult
+_080F7CE4:
+ ldr r1, _080F7CF0
+ movs r0, 0x1
+ strh r0, [r1]
+_080F7CEA:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F7CF0: .4byte gScriptResult
+ thumb_func_end sub_80F7CC8
+
+ thumb_func_start sub_80F7CF4
+sub_80F7CF4: @ 80F7CF4
+ push {r4-r6,lr}
+ ldr r5, _080F7D50
+ ldrb r0, [r5, 0x1]
+ cmp r0, 0
+ bne _080F7D02
+ bl sub_80F7DC0
+_080F7D02:
+ ldrb r0, [r5, 0x1]
+ lsls r0, 1
+ adds r6, r5, 0x4
+ adds r0, r6
+ ldrh r1, [r0]
+ ldr r0, _080F7D54
+ cmp r1, r0
+ beq _080F7D68
+ bl Random
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ movs r0, 0x7
+ ands r4, r0
+ ldr r0, _080F7D58
+ ldrb r1, [r5, 0x1]
+ lsls r1, 1
+ adds r1, r6
+ ldrh r1, [r1]
+ bl sub_80EB3FC
+ adds r2, r0, 0
+ ldr r1, _080F7D5C
+ bl StringCopy
+ adds r2, r0, 0
+ ldr r0, _080F7D60
+ lsls r4, 2
+ adds r4, r0
+ ldr r1, [r4]
+ adds r0, r2, 0
+ bl StringCopy
+ adds r2, r0, 0
+ ldr r1, _080F7D64
+ bl StringCopy
+ b _080F7D88
+ .align 2, 0
+_080F7D50: .4byte gSaveBlock1 + 0x2D94
+_080F7D54: .4byte 0x0000ffff
+_080F7D58: .4byte gStringVar4
+_080F7D5C: .4byte gOtherText_Is
+_080F7D60: .4byte gUnknown_083E5388
+_080F7D64: .4byte gOtherText_DontYouAgree
+_080F7D68:
+ ldr r0, _080F7DA0
+ ldr r3, _080F7DA4
+ ldrb r1, [r5, 0x2]
+ adds r2, r1, 0x1
+ strb r2, [r5, 0x2]
+ lsls r1, 24
+ lsrs r1, 24
+ adds r2, r5, 0
+ adds r2, 0x18
+ adds r1, r2
+ ldrb r1, [r1]
+ lsls r1, 2
+ adds r1, r3
+ ldr r1, [r1]
+ bl StringCopy
+_080F7D88:
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0xA
+ bl __umodsi3
+ lsls r0, 16
+ cmp r0, 0
+ bne _080F7DA8
+ movs r0, 0xA
+ b _080F7DAC
+ .align 2, 0
+_080F7DA0: .4byte gStringVar4
+_080F7DA4: .4byte gUnknown_083E53A8
+_080F7DA8:
+ ldrb r0, [r5, 0x1]
+ adds r0, 0x1
+_080F7DAC:
+ strb r0, [r5, 0x1]
+ ldr r1, _080F7DBC
+ movs r0, 0x1
+ strh r0, [r1]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F7DBC: .4byte gScriptResult
+ thumb_func_end sub_80F7CF4
+
+ thumb_func_start sub_80F7DC0
+sub_80F7DC0: @ 80F7DC0
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x18
+ ldr r1, _080F7E84
+ mov r0, sp
+ movs r2, 0x18
+ bl memcpy
+ movs r5, 0
+ movs r0, 0x2
+ add r0, sp
+ mov r8, r0
+ ldr r1, _080F7E88
+ adds r1, 0x18
+ adds r3, r1, 0
+_080F7DE4:
+ adds r0, r3, r5
+ strb r5, [r0]
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x7
+ bls _080F7DE4
+ movs r5, 0
+ ldr r2, _080F7E88
+ adds r2, 0x4
+ mov r9, r2
+ adds r6, r1, 0
+_080F7DFC:
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ adds r4, r5, 0x1
+ adds r1, r4, 0
+ bl __modsi3
+ lsls r0, 16
+ lsrs r1, r0, 16
+ adds r2, r6, r5
+ ldrb r7, [r2]
+ adds r1, r6, r1
+ ldrb r0, [r1]
+ strb r0, [r2]
+ strb r7, [r1]
+ lsls r4, 16
+ lsrs r5, r4, 16
+ cmp r5, 0x7
+ bls _080F7DFC
+ movs r3, 0
+ mov r10, r3
+ movs r5, 0
+_080F7E2A:
+ lsls r4, r5, 2
+ mov r1, sp
+ adds r0, r1, r4
+ ldrb r0, [r0]
+ bl sub_80EAE88
+ add r4, r8
+ strh r0, [r4]
+ add r0, r10
+ lsls r0, 16
+ lsrs r0, 16
+ mov r10, r0
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x5
+ bls _080F7E2A
+ movs r0, 0
+ ldr r2, _080F7E88
+ strb r0, [r2, 0x2]
+ movs r7, 0
+ movs r5, 0
+_080F7E56:
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0xA
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0x2
+ bhi _080F7E90
+ cmp r7, 0x7
+ bhi _080F7E90
+ lsls r0, r5, 1
+ add r0, r9
+ ldr r1, _080F7E8C
+ strh r1, [r0]
+ adds r0, r7, 0x1
+ lsls r0, 16
+ lsrs r7, r0, 16
+ adds r4, r5, 0x1
+ b _080F7EE2
+ .align 2, 0
+_080F7E84: .4byte gUnknown_083E53C8
+_080F7E88: .4byte gSaveBlock1 + 0x2D94
+_080F7E8C: .4byte 0x0000ffff
+_080F7E90:
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ mov r1, r10
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r2, r0, 16
+ movs r1, 0
+ adds r4, r5, 0x1
+ lsls r6, r5, 1
+ cmp r5, 0x5
+ bhi _080F7ECC
+ mov r3, r8
+ ldrh r0, [r3]
+ b _080F7EC2
+_080F7EB2:
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r5, 0x5
+ bhi _080F7ECC
+ lsls r0, r1, 2
+ adds r0, r3, r0
+ ldrh r0, [r0]
+_080F7EC2:
+ subs r0, r2, r0
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r0, 0
+ bgt _080F7EB2
+_080F7ECC:
+ cmp r1, 0x6
+ bne _080F7ED2
+ movs r1, 0
+_080F7ED2:
+ lsls r0, r1, 2
+ add r0, sp
+ ldrh r0, [r0]
+ bl sub_80EB784
+ mov r2, r9
+ adds r1, r2, r6
+ strh r0, [r1]
+_080F7EE2:
+ lsls r0, r4, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x9
+ bls _080F7E56
+ 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_80F7DC0
+
+ thumb_func_start sub_80F7EFC
+sub_80F7EFC: @ 80F7EFC
+ ldr r0, _080F7F08
+ adds r0, 0x29
+ movs r1, 0
+ strb r1, [r0]
+ bx lr
+ .align 2, 0
+_080F7F08: .4byte gSaveBlock1 + 0x2D94
+ thumb_func_end sub_80F7EFC
+
+ thumb_func_start sub_80F7F0C
+sub_80F7F0C: @ 80F7F0C
+ ldr r1, _080F7F14
+ movs r0, 0
+ strb r0, [r1, 0x1]
+ bx lr
+ .align 2, 0
+_080F7F14: .4byte gSaveBlock1 + 0x2D94
+ thumb_func_end sub_80F7F0C
+
+ thumb_func_start sub_80F7F18
+sub_80F7F18: @ 80F7F18
+ push {lr}
+ bl sub_8109A20
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80F7F18
+
+ thumb_func_start sub_80F7F24
+sub_80F7F24: @ 80F7F24
+ push {lr}
+ bl sub_80F8428
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80F7F24
+
+ thumb_func_start sub_80F7F30
+sub_80F7F30: @ 80F7F30
+ push {lr}
+ bl GetCurrentMauvilleOldMan
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ bhi _080F7F76
+ lsls r0, 2
+ ldr r1, _080F7F48
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080F7F48: .4byte _080F7F4C
+ .align 2, 0
+_080F7F4C:
+ .4byte _080F7F60
+ .4byte _080F7F66
+ .4byte _080F7F72
+ .4byte _080F7F6C
+ .4byte _080F7F76
+_080F7F60:
+ bl sub_80F7EFC
+ b _080F7F76
+_080F7F66:
+ bl sub_80F7F0C
+ b _080F7F76
+_080F7F6C:
+ bl sub_80F7F24
+ b _080F7F76
+_080F7F72:
+ bl sub_80F7F18
+_080F7F76:
+ bl sub_80F83D0
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80F7F30
+
+ thumb_func_start sub_80F7F80
+sub_80F7F80: @ 80F7F80
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _080F7FA8
+ movs r1, 0x50
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080F7FAC
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ strh r4, [r1, 0x12]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F7FA8: .4byte sub_80F8184
+_080F7FAC: .4byte gTasks
+ thumb_func_end sub_80F7F80
+
+ thumb_func_start sub_80F7FB0
+sub_80F7FB0: @ 80F7FB0
+ push {r4-r7,lr}
+ adds r6, r1, 0
+ movs r1, 0x8
+ ldrsh r0, [r0, r1]
+ cmp r0, 0x5
+ bls _080F7FBE
+ b _080F817A
+_080F7FBE:
+ lsls r0, 2
+ ldr r1, _080F7FC8
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080F7FC8: .4byte _080F7FCC
+ .align 2, 0
+_080F7FCC:
+ .4byte _080F7FE4
+ .4byte _080F817A
+ .4byte _080F8040
+ .4byte _080F8074
+ .4byte _080F8074
+ .4byte _080F817A
+_080F7FE4:
+ ldr r2, _080F8034
+ ldr r0, _080F8038
+ ldrh r0, [r0]
+ adds r1, r2, 0
+ adds r1, 0xE
+ cmp r0, 0
+ bne _080F7FF4
+ adds r1, r2, 0x2
+_080F7FF4:
+ adds r2, r1, 0
+ adds r1, r6, 0
+ adds r1, 0xC
+ movs r3, 0x5
+_080F7FFC:
+ ldrh r0, [r2]
+ strh r0, [r1]
+ adds r2, 0x2
+ adds r1, 0x2
+ subs r3, 0x1
+ cmp r3, 0
+ bge _080F7FFC
+ ldr r2, _080F803C
+ adds r4, r2, 0
+ movs r2, 0
+ adds r1, r6, 0
+ adds r1, 0x18
+ movs r3, 0x5
+_080F8016:
+ ldrh r0, [r1]
+ orrs r0, r4
+ strh r0, [r1]
+ strh r2, [r1, 0x2]
+ strh r2, [r1, 0x4]
+ strh r2, [r1, 0x6]
+ adds r1, 0x8
+ subs r3, 0x1
+ cmp r3, 0
+ bge _080F8016
+ movs r0, 0
+ strb r0, [r6]
+ strb r0, [r6, 0x1]
+ strh r0, [r6, 0x4]
+ b _080F817A
+ .align 2, 0
+_080F8034: .4byte gSaveBlock1 + 0x2D94
+_080F8038: .4byte gUnknown_0202E8CC
+_080F803C: .4byte 0x0000ffff
+_080F8040:
+ ldrb r1, [r6]
+ lsls r1, 1
+ adds r0, r6, 0
+ adds r0, 0xC
+ adds r0, r1
+ ldrh r4, [r0]
+ lsrs r0, r4, 9
+ ldr r1, _080F8070
+ ands r1, r4
+ bl sub_814A2D0
+ adds r1, r0, 0
+ movs r0, 0
+ strh r0, [r6, 0x4]
+ movs r2, 0x3
+ ands r2, r4
+ lsrs r4, 3
+ movs r0, 0x1
+ ands r4, r0
+ adds r2, r4
+ adds r0, r6, 0
+ bl sub_814A2EC
+ b _080F817A
+ .align 2, 0
+_080F8070: .4byte 0x000001ff
+_080F8074:
+ ldrb r1, [r6, 0x1]
+ lsls r0, r1, 3
+ adds r0, 0x18
+ adds r7, r6, r0
+ ldrb r0, [r6, 0x3]
+ cmp r0, 0x1
+ beq _080F8124
+ cmp r0, 0x1
+ bgt _080F808C
+ cmp r0, 0
+ beq _080F8092
+ b _080F817A
+_080F808C:
+ cmp r0, 0xFE
+ beq _080F8170
+ b _080F817A
+_080F8092:
+ ldrb r0, [r6, 0x2]
+ cmp r0, 0
+ bne _080F80D0
+ cmp r1, 0x6
+ beq _080F80A2
+ ldrh r0, [r7]
+ cmp r0, 0xFF
+ bne _080F80A6
+_080F80A2:
+ movs r0, 0xFE
+ b _080F8178
+_080F80A6:
+ ldrh r0, [r7, 0x2]
+ strb r0, [r6, 0x2]
+ ldrh r0, [r7]
+ cmp r0, 0x32
+ bhi _080F80CA
+ movs r1, 0x3
+ bl __udivsi3
+ adds r1, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ lsls r0, r1, 1
+ adds r0, r1
+ adds r0, 0xF9
+ lsls r0, 16
+ lsrs r0, 16
+ bl m4aSongNumStart
+_080F80CA:
+ movs r0, 0x1
+ strb r0, [r6, 0x3]
+ b _080F8114
+_080F80D0:
+ ldrh r1, [r6, 0xA]
+ movs r2, 0xA
+ ldrsh r0, [r6, r2]
+ cmp r0, 0xA
+ ble _080F80E0
+ ldrh r0, [r6, 0x6]
+ subs r0, 0x2
+ strh r0, [r6, 0x6]
+_080F80E0:
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080F80EE
+ ldrh r0, [r6, 0x8]
+ adds r0, 0x40
+ b _080F80F2
+_080F80EE:
+ ldrh r0, [r6, 0x8]
+ subs r0, 0x40
+_080F80F2:
+ strh r0, [r6, 0x8]
+ ldr r4, _080F811C
+ ldr r5, _080F8120
+ ldrh r2, [r6, 0x6]
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl m4aMPlayVolumeControl
+ movs r0, 0x8
+ ldrsh r2, [r6, r0]
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl m4aMPlayPitchControl
+ ldrh r0, [r6, 0xA]
+ adds r0, 0x1
+ strh r0, [r6, 0xA]
+_080F8114:
+ ldrb r0, [r6, 0x2]
+ subs r0, 0x1
+ strb r0, [r6, 0x2]
+ b _080F817A
+ .align 2, 0
+_080F811C: .4byte gMPlay_SE2
+_080F8120: .4byte 0x0000ffff
+_080F8124:
+ adds r0, r1, 0x1
+ movs r1, 0
+ strb r0, [r6, 0x1]
+ strb r1, [r6, 0x3]
+ ldrh r0, [r7]
+ cmp r0, 0x32
+ bhi _080F817A
+ ldrh r0, [r7, 0x6]
+ lsls r0, 4
+ movs r1, 0x80
+ lsls r1, 1
+ adds r0, r1
+ strh r0, [r6, 0x6]
+ ldr r4, _080F8168
+ ldr r5, _080F816C
+ ldrh r2, [r6, 0x6]
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl m4aMPlayVolumeControl
+ movs r2, 0x80
+ lsls r2, 2
+ adds r0, r2, 0
+ ldrh r7, [r7, 0x4]
+ adds r0, r7
+ strh r0, [r6, 0x8]
+ movs r0, 0x8
+ ldrsh r2, [r6, r0]
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl m4aMPlayPitchControl
+ b _080F817A
+ .align 2, 0
+_080F8168: .4byte gMPlay_SE2
+_080F816C: .4byte 0x0000ffff
+_080F8170:
+ ldr r0, _080F8180
+ bl m4aMPlayStop
+ movs r0, 0xFF
+_080F8178:
+ strb r0, [r6, 0x3]
+_080F817A:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F8180: .4byte gMPlay_SE2
+ thumb_func_end sub_80F7FB0
+
+ thumb_func_start sub_80F8184
+sub_80F8184: @ 80F8184
+ push {r4-r7,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ ldr r1, _080F81B4
+ adds r5, r0, r1
+ ldr r1, _080F81B8
+ adds r0, r5, 0
+ bl sub_80F7FB0
+ movs r1, 0x8
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x5
+ bls _080F81A8
+ b _080F83C8
+_080F81A8:
+ lsls r0, 2
+ ldr r1, _080F81BC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080F81B4: .4byte gTasks
+_080F81B8: .4byte gUnknown_03005DA0
+_080F81BC: .4byte _080F81C0
+ .align 2, 0
+_080F81C0:
+ .4byte _080F81D8
+ .4byte _080F8218
+ .4byte _080F8228
+ .4byte _080F82D8
+ .4byte _080F83B8
+ .4byte _080F82C6
+_080F81D8:
+ bl sub_80F7BA0
+ ldr r4, _080F820C
+ ldr r0, [r4]
+ ldr r1, _080F8210
+ bl InitWindowFromConfig
+ ldr r0, [r4]
+ ldr r1, _080F8214
+ movs r2, 0xF
+ str r2, [sp]
+ movs r2, 0x2
+ movs r3, 0x4
+ bl sub_8002EB0
+ movs r0, 0
+ strh r0, [r5, 0xA]
+ strh r0, [r5, 0xC]
+ strh r0, [r5, 0xE]
+ strh r0, [r5, 0x10]
+ movs r0, 0x4
+ bl FadeOutBGMTemporarily
+ movs r0, 0x1
+ b _080F83C6
+ .align 2, 0
+_080F820C: .4byte gMenuWindowPtr
+_080F8210: .4byte gWindowConfig_81E6CE4
+_080F8214: .4byte gStringVar4
+_080F8218:
+ bl IsBGMPausedOrStopped
+ lsls r0, 24
+ cmp r0, 0
+ bne _080F8224
+ b _080F83C8
+_080F8224:
+ movs r0, 0x2
+ b _080F83C6
+_080F8228:
+ ldr r4, _080F8240
+ movs r2, 0xE
+ ldrsh r1, [r5, r2]
+ ldr r0, _080F8244
+ adds r1, r0
+ movs r3, 0
+ ldrb r0, [r1]
+ ldr r7, _080F8248
+ ldrh r2, [r5, 0x12]
+ ldr r6, _080F824C
+ b _080F825A
+ .align 2, 0
+_080F8240: .4byte gSaveBlock1 + 0x2D94
+_080F8244: .4byte gStringVar4
+_080F8248: .4byte gUnknown_03005DA0
+_080F824C: .4byte gUnknown_020388BC
+_080F8250:
+ adds r1, 0x1
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ ldrb r0, [r1]
+_080F825A:
+ cmp r0, 0
+ beq _080F826A
+ cmp r0, 0xFE
+ beq _080F826A
+ cmp r0, 0xFC
+ beq _080F826A
+ cmp r0, 0xFF
+ bne _080F8250
+_080F826A:
+ cmp r2, 0
+ bne _080F8278
+ movs r0, 0x10
+ ldrsh r1, [r5, r0]
+ lsls r1, 1
+ adds r0, r4, 0x2
+ b _080F8282
+_080F8278:
+ movs r2, 0x10
+ ldrsh r1, [r5, r2]
+ lsls r1, 1
+ adds r0, r4, 0
+ adds r0, 0xE
+_080F8282:
+ adds r0, r1
+ ldrh r0, [r0]
+ movs r1, 0x3
+ ands r1, r0
+ lsrs r0, 3
+ movs r2, 0x1
+ ands r0, r2
+ adds r1, r0
+ strh r1, [r6]
+ movs r1, 0x4
+ ldrsh r0, [r7, r1]
+ adds r1, r3, 0
+ bl __divsi3
+ movs r1, 0
+ strh r0, [r7, 0x4]
+ lsls r0, 16
+ cmp r0, 0
+ bgt _080F82AC
+ movs r0, 0x1
+ strh r0, [r7, 0x4]
+_080F82AC:
+ ldrh r0, [r5, 0x10]
+ adds r0, 0x1
+ strh r0, [r5, 0x10]
+ movs r2, 0xC
+ ldrsh r0, [r5, r2]
+ cmp r0, 0
+ bne _080F82BE
+ movs r0, 0x3
+ b _080F82C0
+_080F82BE:
+ movs r0, 0x5
+_080F82C0:
+ strh r0, [r5, 0x8]
+ strh r1, [r5, 0xA]
+ b _080F83C8
+_080F82C6:
+ ldrh r1, [r5, 0xC]
+ movs r2, 0xC
+ ldrsh r0, [r5, r2]
+ cmp r0, 0
+ bne _080F82D2
+ b _080F83C4
+_080F82D2:
+ subs r0, r1, 0x1
+ strh r0, [r5, 0xC]
+ b _080F83C8
+_080F82D8:
+ ldr r1, _080F8304
+ movs r2, 0xE
+ ldrsh r0, [r5, r2]
+ adds r0, r1
+ ldrb r4, [r0]
+ cmp r4, 0xFF
+ bne _080F830C
+ movs r0, 0xC8
+ lsls r0, 1
+ movs r1, 0x6
+ bl FadeInNewBGM
+ ldr r0, _080F8308
+ movs r1, 0x2
+ bl m4aMPlayFadeOutTemporarily
+ bl EnableBothScriptContexts
+ adds r0, r6, 0
+ bl DestroyTask
+ b _080F83C8
+ .align 2, 0
+_080F8304: .4byte gStringVar4
+_080F8308: .4byte gMPlay_SE2
+_080F830C:
+ cmp r4, 0
+ bne _080F832C
+ ldr r0, _080F8328
+ ldr r0, [r0]
+ bl sub_8003418
+ ldrh r0, [r5, 0xE]
+ adds r0, 0x1
+ strh r0, [r5, 0xE]
+ movs r0, 0x2
+ strh r0, [r5, 0x8]
+ strh r4, [r5, 0xC]
+ b _080F83C8
+ .align 2, 0
+_080F8328: .4byte gMenuWindowPtr
+_080F832C:
+ cmp r4, 0xFE
+ bne _080F8340
+ ldrh r0, [r5, 0xE]
+ adds r0, 0x1
+ movs r1, 0
+ strh r0, [r5, 0xE]
+ movs r0, 0x2
+ strh r0, [r5, 0x8]
+ strh r1, [r5, 0xC]
+ b _080F83C8
+_080F8340:
+ cmp r4, 0xFC
+ bne _080F8354
+ ldrh r0, [r5, 0xE]
+ adds r0, 0x2
+ strh r0, [r5, 0xE]
+ movs r0, 0x2
+ strh r0, [r5, 0x8]
+ movs r0, 0x8
+ strh r0, [r5, 0xC]
+ b _080F83C8
+_080F8354:
+ cmp r4, 0x37
+ bne _080F8374
+ movs r4, 0
+ strb r4, [r0]
+ ldr r0, _080F8370
+ ldr r0, [r0]
+ bl sub_8003418
+ ldrh r0, [r5, 0xE]
+ adds r0, 0x1
+ strh r0, [r5, 0xE]
+ strh r4, [r5, 0xC]
+ b _080F83C8
+ .align 2, 0
+_080F8370: .4byte gMenuWindowPtr
+_080F8374:
+ movs r1, 0xA
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x1
+ beq _080F8394
+ cmp r0, 0x1
+ bgt _080F8386
+ cmp r0, 0
+ beq _080F838C
+ b _080F83C8
+_080F8386:
+ cmp r0, 0x2
+ beq _080F83A0
+ b _080F83C8
+_080F838C:
+ ldr r0, _080F839C
+ ldr r0, [r0]
+ bl sub_8003418
+_080F8394:
+ ldrh r0, [r5, 0xA]
+ adds r0, 0x1
+ strh r0, [r5, 0xA]
+ b _080F83C8
+ .align 2, 0
+_080F839C: .4byte gMenuWindowPtr
+_080F83A0:
+ ldrh r0, [r5, 0xE]
+ adds r0, 0x1
+ movs r1, 0
+ strh r0, [r5, 0xE]
+ strh r1, [r5, 0xA]
+ ldr r0, _080F83B4
+ ldrh r0, [r0, 0x4]
+ strh r0, [r5, 0xC]
+ movs r0, 0x4
+ b _080F83C6
+ .align 2, 0
+_080F83B4: .4byte gUnknown_03005DA0
+_080F83B8:
+ ldrh r0, [r5, 0xC]
+ subs r0, 0x1
+ strh r0, [r5, 0xC]
+ lsls r0, 16
+ cmp r0, 0
+ bne _080F83C8
+_080F83C4:
+ movs r0, 0x3
+_080F83C6:
+ strh r0, [r5, 0x8]
+_080F83C8:
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80F8184
+
+ thumb_func_start sub_80F83D0
+sub_80F83D0: @ 80F83D0
+ push {r4,lr}
+ ldr r4, _080F83F4
+ bl GetCurrentMauvilleOldMan
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 8
+ movs r0, 0x8A
+ lsls r0, 15
+ adds r1, r0
+ lsrs r1, 16
+ adds r0, r4, 0
+ bl VarSet
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F83F4: .4byte 0x00004010
+ thumb_func_end sub_80F83D0
+
+ thumb_func_start sub_80F83F8
+sub_80F83F8: @ 80F83F8
+ push {r4,lr}
+ ldr r0, _080F8424
+ movs r2, 0
+ movs r1, 0x3
+ strb r1, [r0]
+ strb r2, [r0, 0x1]
+ movs r4, 0
+ movs r3, 0xFF
+ adds r1, r0, 0x4
+ movs r2, 0x3
+_080F840C:
+ strb r4, [r1]
+ ldrb r0, [r1, 0x4]
+ orrs r0, r3
+ strb r0, [r1, 0x4]
+ adds r1, 0x1
+ subs r2, 0x1
+ cmp r2, 0
+ bge _080F840C
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F8424: .4byte gSaveBlock1 + 0x2D94
+ thumb_func_end sub_80F83F8
+
+ thumb_func_start sub_80F8428
+sub_80F8428: @ 80F8428
+ ldr r0, _080F8434
+ movs r2, 0
+ movs r1, 0x3
+ strb r1, [r0]
+ strb r2, [r0, 0x1]
+ bx lr
+ .align 2, 0
+_080F8434: .4byte gSaveBlock1 + 0x2D94
+ thumb_func_end sub_80F8428
+
+ thumb_func_start sub_80F8438
+sub_80F8438: @ 80F8438
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x32
+ bne _080F8444
+ movs r0, 0
+_080F8444:
+ bl sub_8053108
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80F8438
+
+ thumb_func_start sub_80F844C
+sub_80F844C: @ 80F844C
+ push {lr}
+ adds r3, r0, 0
+ movs r2, 0
+ ldr r1, _080F8460
+_080F8454:
+ ldrb r0, [r1]
+ cmp r0, r3
+ bne _080F8464
+ adds r0, r1, 0
+ b _080F846E
+ .align 2, 0
+_080F8460: .4byte gUnknown_083E53E0
+_080F8464:
+ adds r1, 0x10
+ adds r2, 0x1
+ cmp r2, 0x23
+ ble _080F8454
+ ldr r0, _080F8474
+_080F846E:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080F8474: .4byte gUnknown_083E5610
+ thumb_func_end sub_80F844C
+
+ thumb_func_start sub_80F8478
+sub_80F8478: @ 80F8478
+ push {lr}
+ bl sub_80F844C
+ ldr r0, [r0, 0x4]
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80F8478
+
+ thumb_func_start sub_80F8484
+sub_80F8484: @ 80F8484
+ push {lr}
+ bl sub_80F844C
+ ldr r0, [r0, 0xC]
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80F8484
+
+ thumb_func_start sub_80F8490
+sub_80F8490: @ 80F8490
+ push {lr}
+ bl sub_80F844C
+ ldr r0, [r0, 0x8]
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80F8490
+
+ thumb_func_start sub_80F849C
+sub_80F849C: @ 80F849C
+ push {lr}
+ movs r1, 0
+ ldr r2, _080F84C4
+ ldrb r0, [r2, 0x4]
+ cmp r0, 0
+ beq _080F84BC
+ adds r2, 0x4
+_080F84AA:
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x3
+ bhi _080F84BC
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080F84AA
+_080F84BC:
+ adds r0, r1, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080F84C4: .4byte gSaveBlock1 + 0x2D94
+ thumb_func_end sub_80F849C
+
+ thumb_func_start sub_80F84C8
+sub_80F84C8: @ 80F84C8
+ lsls r0, 2
+ ldr r1, _080F84E8
+ adds r0, r1
+ ldrb r2, [r0]
+ ldrb r1, [r0, 0x1]
+ lsls r1, 8
+ orrs r2, r1
+ ldrb r1, [r0, 0x2]
+ lsls r1, 16
+ orrs r2, r1
+ ldrb r0, [r0, 0x3]
+ lsls r0, 24
+ orrs r2, r0
+ adds r0, r2, 0
+ bx lr
+ .align 2, 0
+_080F84E8: .4byte gSaveBlock1 + 0x2DB8
+ thumb_func_end sub_80F84C8
+
+ thumb_func_start sub_80F84EC
+sub_80F84EC: @ 80F84EC
+ lsls r0, 2
+ ldr r2, _080F8504
+ adds r0, r2
+ strb r1, [r0]
+ lsrs r2, r1, 8
+ strb r2, [r0, 0x1]
+ lsrs r2, r1, 16
+ strb r2, [r0, 0x2]
+ lsrs r1, 24
+ strb r1, [r0, 0x3]
+ bx lr
+ .align 2, 0
+_080F8504: .4byte gSaveBlock1 + 0x2DB8
+ thumb_func_end sub_80F84EC
+
+ thumb_func_start sub_80F8508
+sub_80F8508: @ 80F8508
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r0, _080F8528
+ adds r0, 0x4
+ adds r0, r5, r0
+ ldrb r0, [r0]
+ bl sub_80F8438
+ adds r4, r0, 0
+ adds r0, r5, 0
+ bl sub_80F84C8
+ cmp r4, r0
+ bhi _080F852C
+ movs r0, 0
+ b _080F852E
+ .align 2, 0
+_080F8528: .4byte gSaveBlock1 + 0x2D94
+_080F852C:
+ movs r0, 0x1
+_080F852E:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80F8508
+
+ thumb_func_start sub_80F8534
+sub_80F8534: @ 80F8534
+ push {r4,r5,lr}
+ adds r5, r1, 0
+ lsls r4, r0, 3
+ subs r4, r0
+ ldr r0, _080F855C
+ adds r4, r0
+ adds r0, r5, 0
+ movs r1, 0xFF
+ movs r2, 0x8
+ bl memset
+ adds r0, r5, 0
+ adds r1, r4, 0
+ movs r2, 0x7
+ bl memcpy
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F855C: .4byte gSaveBlock1 + 0x2D9C
+ thumb_func_end sub_80F8534
+
+ thumb_func_start sub_80F8560
+sub_80F8560: @ 80F8560
+ push {r4-r6,lr}
+ adds r6, r1, 0
+ lsls r5, r0, 3
+ subs r5, r0
+ ldr r0, _080F8594
+ adds r5, r0
+ adds r0, r6, 0
+ bl StringLength
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r5, 0
+ movs r1, 0xFF
+ movs r2, 0x7
+ bl memset
+ adds r0, r5, 0
+ adds r1, r6, 0
+ adds r2, r4, 0
+ bl StringCopyN
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F8594: .4byte gSaveBlock1 + 0x2D9C
+ thumb_func_end sub_80F8560
+
+ thumb_func_start sub_80F8598
+sub_80F8598: @ 80F8598
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ adds r6, r1, 0
+ ldr r0, _080F85EC
+ adds r0, 0x4
+ adds r0, r5, r0
+ strb r6, [r0]
+ ldr r1, _080F85F0
+ adds r0, r5, 0
+ bl sub_80F8560
+ lsls r4, r6, 24
+ lsrs r4, 24
+ adds r0, r4, 0
+ bl sub_80F8438
+ adds r1, r0, 0
+ adds r0, r5, 0
+ bl sub_80F84EC
+ ldr r5, _080F85F4
+ adds r0, r4, 0
+ bl sub_80F8438
+ adds r1, r0, 0
+ adds r0, r5, 0
+ movs r2, 0
+ movs r3, 0xA
+ bl ConvertIntToDecimalStringN
+ ldr r4, _080F85F8
+ adds r0, r6, 0
+ bl sub_80F8490
+ adds r1, r0, 0
+ adds r0, r4, 0
+ bl StringCopy
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F85EC: .4byte gSaveBlock1 + 0x2D94
+_080F85F0: .4byte gSaveBlock2
+_080F85F4: .4byte gStringVar1
+_080F85F8: .4byte gStringVar2
+ thumb_func_end sub_80F8598
+
+ thumb_func_start sub_80F85FC
+sub_80F85FC: @ 80F85FC
+ push {r4-r7,lr}
+ adds r7, r0, 0
+ adds r6, r1, 0
+ movs r5, 0
+ cmp r5, r6
+ bge _080F8612
+_080F8608:
+ adds r0, r7, r5
+ strb r5, [r0]
+ adds r5, 0x1
+ cmp r5, r6
+ blt _080F8608
+_080F8612:
+ cmp r6, 0
+ ble _080F8648
+ adds r5, r6, 0
+_080F8618:
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ adds r1, r6, 0
+ bl __modsi3
+ adds r4, r0, 0
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ adds r1, r6, 0
+ bl __modsi3
+ adds r4, r7, r4
+ ldrb r2, [r4]
+ adds r0, r7, r0
+ ldrb r1, [r0]
+ strb r1, [r4]
+ strb r2, [r0]
+ subs r5, 0x1
+ cmp r5, 0
+ bne _080F8618
+_080F8648:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80F85FC
+
+ thumb_func_start sub_80F8650
+sub_80F8650: @ 80F8650
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ mov r7, sp
+ mov r10, sp
+ ldr r0, _080F86D4
+ ldr r0, [r0]
+ lsls r0, 3
+ lsrs r0, 3
+ adds r0, 0x3
+ lsrs r0, 2
+ lsls r0, 2
+ mov r1, sp
+ subs r1, r0
+ mov sp, r1
+ mov r8, sp
+ mov r0, sp
+ movs r1, 0x24
+ bl sub_80F85FC
+ movs r5, 0
+ ldr r0, _080F86D8
+ mov r9, r0
+ ldr r3, _080F86DC
+_080F8686:
+ mov r1, r8
+ adds r0, r1, r5
+ ldrb r0, [r0]
+ lsls r0, 4
+ add r0, r9
+ ldrb r4, [r0]
+ ldrb r6, [r0, 0x1]
+ movs r1, 0
+ ldrb r0, [r3, 0x4]
+ cmp r0, r4
+ beq _080F86AC
+ ldr r2, _080F86E0
+_080F869E:
+ adds r1, 0x1
+ cmp r1, 0x3
+ bgt _080F86AC
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, r4
+ bne _080F869E
+_080F86AC:
+ cmp r1, 0x4
+ bne _080F86E4
+ adds r0, r4, 0
+ str r3, [r7]
+ bl sub_80F8438
+ ldr r3, [r7]
+ cmp r0, r6
+ bcc _080F86E4
+ movs r0, 0x1
+ strb r0, [r3, 0x1]
+ bl sub_80F849C
+ lsls r0, 24
+ lsrs r0, 24
+ adds r1, r4, 0
+ bl sub_80F8598
+ movs r0, 0x1
+ b _080F86EC
+ .align 2, 0
+_080F86D4: .4byte gUnknown_083E5620
+_080F86D8: .4byte gUnknown_083E53E0
+_080F86DC: .4byte gSaveBlock1 + 0x2D94
+_080F86E0: .4byte gSaveBlock1 + 0x2D98
+_080F86E4:
+ adds r5, 0x1
+ cmp r5, 0x23
+ ble _080F8686
+ movs r0, 0
+_080F86EC:
+ mov sp, r10
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80F8650
+
+ thumb_func_start sub_80F8700
+sub_80F8700: @ 80F8700
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ ldr r0, _080F8748
+ adds r0, 0x4
+ adds r0, r5, r0
+ ldrb r6, [r0]
+ ldr r4, _080F874C
+ adds r0, r5, 0
+ bl sub_80F84C8
+ adds r1, r0, 0
+ adds r0, r4, 0
+ movs r2, 0
+ movs r3, 0xA
+ bl ConvertIntToDecimalStringN
+ ldr r4, _080F8750
+ adds r0, r6, 0
+ bl sub_80F8490
+ adds r1, r0, 0
+ adds r0, r4, 0
+ bl StringCopy
+ ldr r1, _080F8754
+ adds r0, r5, 0
+ bl sub_80F8534
+ adds r0, r6, 0
+ bl sub_80F8484
+ bl ShowFieldMessage
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F8748: .4byte gSaveBlock1 + 0x2D94
+_080F874C: .4byte gStringVar1
+_080F8750: .4byte gStringVar2
+_080F8754: .4byte gStringVar3
+ thumb_func_end sub_80F8700
+
+ thumb_func_start sub_80F8758
+sub_80F8758: @ 80F8758
+ push {r4-r6,lr}
+ bl sub_80F849C
+ adds r3, r0, 0
+ lsls r3, 25
+ movs r0, 0x80
+ lsls r0, 19
+ adds r3, r0
+ lsrs r3, 24
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x19
+ bl MenuDrawTextWindow
+ movs r4, 0
+ ldr r1, _080F87BC
+ ldrb r0, [r1, 0x4]
+ cmp r0, 0
+ beq _080F87A4
+ adds r6, r1, 0x4
+ movs r5, 0x80
+ lsls r5, 18
+_080F8784:
+ bl sub_80F8478
+ lsrs r2, r5, 24
+ movs r1, 0x1
+ bl MenuPrint
+ movs r1, 0x80
+ lsls r1, 18
+ adds r5, r1
+ adds r4, 0x1
+ cmp r4, 0x3
+ bgt _080F87A4
+ adds r0, r4, r6
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080F8784
+_080F87A4:
+ ldr r0, _080F87C0
+ lsls r2, r4, 25
+ movs r1, 0x80
+ lsls r1, 18
+ adds r2, r1
+ lsrs r2, 24
+ movs r1, 0x1
+ bl MenuPrint
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F87BC: .4byte gSaveBlock1 + 0x2D94
+_080F87C0: .4byte gPCText_Cancel
+ thumb_func_end sub_80F8758
+
+ thumb_func_start sub_80F87C4
+sub_80F87C4: @ 80F87C4
+ push {r4-r6,lr}
+ sub sp, 0x8
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ ldr r1, _080F87E4
+ adds r4, r0, r1
+ movs r0, 0x8
+ ldrsh r5, [r4, r0]
+ cmp r5, 0
+ beq _080F87E8
+ cmp r5, 0x1
+ beq _080F8810
+ b _080F8862
+ .align 2, 0
+_080F87E4: .4byte gTasks
+_080F87E8:
+ bl sub_80F8758
+ bl sub_80F849C
+ adds r3, r0, 0
+ adds r3, 0x1
+ lsls r3, 24
+ lsrs r3, 24
+ str r5, [sp]
+ movs r0, 0x18
+ str r0, [sp, 0x4]
+ movs r0, 0
+ movs r1, 0x1
+ movs r2, 0x2
+ bl InitMenu
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _080F8862
+_080F8810:
+ bl ProcessMenuInput
+ lsls r0, 24
+ asrs r4, r0, 24
+ movs r0, 0x2
+ negs r0, r0
+ cmp r4, r0
+ beq _080F8862
+ adds r0, 0x1
+ cmp r4, r0
+ beq _080F8832
+ bl sub_80F849C
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r4, r0
+ bne _080F8840
+_080F8832:
+ ldr r1, _080F883C
+ movs r0, 0
+ strh r0, [r1]
+ b _080F8848
+ .align 2, 0
+_080F883C: .4byte gScriptResult
+_080F8840:
+ ldr r0, _080F886C
+ strh r5, [r0]
+ ldr r0, _080F8870
+ strb r4, [r0]
+_080F8848:
+ bl sub_8072DEC
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x19
+ movs r3, 0xC
+ bl MenuZeroFillWindowRect
+ adds r0, r6, 0
+ bl DestroyTask
+ bl EnableBothScriptContexts
+_080F8862:
+ add sp, 0x8
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F886C: .4byte gScriptResult
+_080F8870: .4byte gUnknown_03000748
+ thumb_func_end sub_80F87C4
+
+ thumb_func_start sub_80F8874
+sub_80F8874: @ 80F8874
+ push {lr}
+ ldr r0, _080F8884
+ movs r1, 0x50
+ bl CreateTask
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F8884: .4byte sub_80F87C4
+ thumb_func_end sub_80F8874
+
+ thumb_func_start sub_80F8888
+sub_80F8888: @ 80F8888
+ push {lr}
+ ldr r0, _080F8898
+ ldrb r0, [r0]
+ bl sub_80F8700
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F8898: .4byte gUnknown_03000748
+ thumb_func_end sub_80F8888
+
+ thumb_func_start sub_80F889C
+sub_80F889C: @ 80F889C
+ push {lr}
+ bl sub_80F849C
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80F889C
+
+ thumb_func_start sub_80F88AC
+sub_80F88AC: @ 80F88AC
+ push {r4,r5,lr}
+ ldr r1, _080F88C8
+ ldr r5, _080F88CC
+ ldrb r0, [r5]
+ adds r1, 0x4
+ adds r1, r0, r1
+ ldrb r4, [r1]
+ bl sub_80F8508
+ cmp r0, 0x1
+ beq _080F88D0
+ movs r0, 0
+ b _080F88DA
+ .align 2, 0
+_080F88C8: .4byte gSaveBlock1 + 0x2D94
+_080F88CC: .4byte gUnknown_03000748
+_080F88D0:
+ ldrb r0, [r5]
+ adds r1, r4, 0
+ bl sub_80F8598
+ movs r0, 0x1
+_080F88DA:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80F88AC
+
+ thumb_func_start sub_80F88E0
+sub_80F88E0: @ 80F88E0
+ push {lr}
+ ldr r0, _080F88F0
+ ldrb r0, [r0, 0x1]
+ cmp r0, 0
+ beq _080F88F4
+ movs r0, 0x1
+ b _080F88F6
+ .align 2, 0
+_080F88F0: .4byte gSaveBlock1 + 0x2D94
+_080F88F4:
+ movs r0, 0
+_080F88F6:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80F88E0
+
+ thumb_func_start sub_80F88FC
+sub_80F88FC: @ 80F88FC
+ push {lr}
+ bl sub_80F8650
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80F88FC
+
+ thumb_func_start sub_80F890C
+sub_80F890C: @ 80F890C
+ push {r4-r6,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ adds r6, r1, 0
+ lsls r2, 24
+ lsrs r5, r2, 24
+ ldr r2, _080F8958
+ adds r1, r2, 0
+ adds r1, 0xFF
+ movs r0, 0x2
+ strb r0, [r1]
+ adds r0, 0xFE
+ adds r1, r2, r0
+ movs r0, 0x1
+ strb r0, [r1]
+ movs r0, 0x82
+ lsls r0, 1
+ adds r1, r2, r0
+ ldr r0, _080F895C
+ str r0, [r1]
+ movs r0, 0x84
+ lsls r0, 1
+ adds r1, r2, r0
+ ldr r0, _080F8960
+ str r0, [r1]
+ ldrh r1, [r4, 0x20]
+ adds r0, r1, 0
+ subs r0, 0x79
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0xB
+ bhi _080F8964
+ subs r1, 0x79
+ adds r0, r2, 0
+ adds r0, 0xFA
+ strb r1, [r0]
+ b _080F896E
+ .align 2, 0
+_080F8958: .4byte 0x02000000
+_080F895C: .4byte sub_80EB3FC
+_080F8960: .4byte ConvertEasyChatWordsToString
+_080F8964:
+ adds r1, r2, 0
+ adds r1, 0xFA
+ movs r0, 0
+ strb r0, [r1]
+ movs r5, 0
+_080F896E:
+ ldr r1, _080F8994
+ movs r2, 0x80
+ lsls r2, 1
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080F8980
+ cmp r0, 0x1
+ beq _080F899C
+_080F8980:
+ movs r0, 0x86
+ lsls r0, 1
+ adds r2, r1, r0
+ adds r0, r1, 0
+ adds r0, 0xFA
+ ldrb r0, [r0]
+ lsls r0, 3
+ ldr r1, _080F8998
+ b _080F89AC
+ .align 2, 0
+_080F8994: .4byte 0x02000000
+_080F8998: .4byte gUnknown_083E5730
+_080F899C:
+ movs r0, 0x86
+ lsls r0, 1
+ adds r2, r1, r0
+ adds r0, r1, 0
+ adds r0, 0xFA
+ ldrb r0, [r0]
+ lsls r0, 3
+ ldr r1, _080F89DC
+_080F89AC:
+ adds r0, r1
+ str r0, [r2]
+ ldrh r0, [r4, 0x1E]
+ mov r1, sp
+ bl sub_80A2D64
+ lsls r0, 16
+ ldr r1, _080F89E0
+ adds r0, r1
+ movs r1, 0xCD
+ lsls r1, 17
+ cmp r0, r1
+ bhi _080F89F8
+ ldr r0, _080F89E4
+ adds r1, r0, 0
+ adds r1, 0xFA
+ ldrb r2, [r1]
+ adds r1, r0, 0
+ cmp r2, 0x6
+ beq _080F89E8
+ cmp r2, 0x9
+ beq _080F89F0
+ b _080F89FA
+ .align 2, 0
+_080F89DC: .4byte gUnknown_083E57A4
+_080F89E0: .4byte 0xffff0000
+_080F89E4: .4byte 0x02000000
+_080F89E8:
+ adds r2, r1, 0
+ adds r2, 0xFB
+ movs r0, 0x1
+ b _080F8A00
+_080F89F0:
+ adds r2, r1, 0
+ adds r2, 0xFB
+ movs r0, 0x2
+ b _080F8A00
+_080F89F8:
+ ldr r1, _080F8A20
+_080F89FA:
+ adds r2, r1, 0
+ adds r2, 0xFB
+ movs r0, 0
+_080F8A00:
+ strb r0, [r2]
+ adds r0, r1, 0
+ adds r0, 0xF4
+ str r4, [r0]
+ subs r0, 0x8
+ str r6, [r0]
+ adds r0, 0xC
+ strb r5, [r0]
+ ldr r0, _080F8A24
+ bl SetMainCallback2
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F8A20: .4byte 0x02000000
+_080F8A24: .4byte sub_80F8D50
+ thumb_func_end sub_80F890C
+
+ thumb_func_start sub_80F8A28
+sub_80F8A28: @ 80F8A28
+ push {r4,r5,lr}
+ sub sp, 0x8
+ ldr r0, _080F8A44
+ ldr r1, _080F8A48
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x12
+ bls _080F8A3A
+ b _080F8D3C
+_080F8A3A:
+ lsls r0, 2
+ ldr r1, _080F8A4C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080F8A44: .4byte gMain
+_080F8A48: .4byte 0x0000043c
+_080F8A4C: .4byte _080F8A50
+ .align 2, 0
+_080F8A50:
+ .4byte _080F8A9C
+ .4byte _080F8AB0
+ .4byte _080F8AC8
+ .4byte _080F8ACE
+ .4byte _080F8AD4
+ .4byte _080F8ADA
+ .4byte _080F8B10
+ .4byte _080F8B1C
+ .4byte _080F8B28
+ .4byte _080F8B34
+ .4byte _080F8B3A
+ .4byte _080F8B54
+ .4byte _080F8B78
+ .4byte _080F8BA0
+ .4byte _080F8C14
+ .4byte _080F8C2C
+ .4byte _080F8C58
+ .4byte _080F8CBC
+ .4byte _080F8CC6
+_080F8A9C:
+ movs r0, 0
+ bl SetVBlankCallback
+ bl remove_some_task
+ movs r1, 0x80
+ lsls r1, 19
+ movs r0, 0
+ strh r0, [r1]
+ b _080F8D30
+_080F8AB0:
+ add r1, sp, 0x4
+ movs r0, 0
+ strh r0, [r1]
+ movs r1, 0xE0
+ lsls r1, 19
+ ldr r2, _080F8AC4
+ add r0, sp, 0x4
+ bl CpuSet
+ b _080F8D30
+ .align 2, 0
+_080F8AC4: .4byte 0x01000200
+_080F8AC8:
+ bl ResetPaletteFade
+ b _080F8D30
+_080F8ACE:
+ bl ResetTasks
+ b _080F8D30
+_080F8AD4:
+ bl ResetSpriteData
+ b _080F8D30
+_080F8ADA:
+ bl FreeAllSpritePalettes
+ ldr r0, _080F8B0C
+ movs r1, 0
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x4
+ strh r1, [r0]
+ subs r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x4
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x32
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ b _080F8D30
+ .align 2, 0
+_080F8B0C: .4byte REG_BG0HOFS
+_080F8B10:
+ ldr r0, _080F8B18
+ bl SetUpWindowConfig
+ b _080F8D30
+ .align 2, 0
+_080F8B18: .4byte gWindowConfig_81E6DFC
+_080F8B1C:
+ ldr r0, _080F8B24
+ bl MultistepInitMenuWindowBegin
+ b _080F8D30
+ .align 2, 0
+_080F8B24: .4byte gWindowConfig_81E6DFC
+_080F8B28:
+ bl MultistepInitMenuWindowContinue
+ cmp r0, 0
+ beq _080F8B32
+ b _080F8D30
+_080F8B32:
+ b _080F8D3C
+_080F8B34:
+ bl MenuZeroFillScreen
+ b _080F8D30
+_080F8B3A:
+ mov r0, sp
+ adds r0, 0x6
+ movs r1, 0x1
+ strh r1, [r0]
+ ldr r1, _080F8B4C
+ ldr r2, _080F8B50
+ bl CpuSet
+ b _080F8D30
+ .align 2, 0
+_080F8B4C: .4byte 0x06004800
+_080F8B50: .4byte 0x01000400
+_080F8B54:
+ ldr r2, _080F8B70
+ ldr r0, _080F8B74
+ adds r0, 0xFA
+ ldrb r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldr r0, [r0]
+ movs r1, 0
+ movs r2, 0x20
+ bl LoadPalette
+ b _080F8D30
+ .align 2, 0
+_080F8B70: .4byte gMailGraphicsTable
+_080F8B74: .4byte 0x02000000
+_080F8B78:
+ ldr r2, _080F8B94
+ ldr r0, _080F8B98
+ adds r0, 0xFA
+ ldrb r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r2, 0x8
+ adds r0, r2
+ ldr r0, [r0]
+ ldr r1, _080F8B9C
+ bl LZ77UnCompVram
+ b _080F8D30
+ .align 2, 0
+_080F8B94: .4byte gMailGraphicsTable
+_080F8B98: .4byte 0x02000000
+_080F8B9C: .4byte 0x06004000
+_080F8BA0:
+ ldr r5, _080F8C00
+ ldr r4, _080F8C04
+ adds r4, 0xFA
+ ldrb r1, [r4]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r5, 0x4
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0xC0
+ lsls r1, 19
+ bl LZ77UnCompVram
+ ldr r3, _080F8C08
+ ldrb r1, [r4]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldrh r0, [r0, 0x10]
+ movs r2, 0xF1
+ lsls r2, 1
+ adds r1, r3, r2
+ strh r0, [r1]
+ ldrb r1, [r4]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldrh r1, [r0, 0x12]
+ adds r2, 0xE
+ adds r0, r3, r2
+ strh r1, [r0]
+ ldr r1, _080F8C0C
+ ldr r2, _080F8C10
+ ldrb r0, [r2, 0x8]
+ lsls r0, 2
+ adds r0, r1
+ ldrh r0, [r0]
+ strh r0, [r3, 0x14]
+ ldrb r0, [r2, 0x8]
+ lsls r0, 2
+ adds r1, 0x2
+ adds r0, r1
+ ldrh r0, [r0]
+ strh r0, [r3, 0x16]
+ b _080F8D30
+ .align 2, 0
+_080F8C00: .4byte gMailGraphicsTable
+_080F8C04: .4byte 0x02000000
+_080F8C08: .4byte gPlttBufferUnfaded
+_080F8C0C: .4byte gUnknown_083E562C
+_080F8C10: .4byte gSaveBlock2
+_080F8C14:
+ ldr r0, _080F8C28
+ adds r0, 0xF8
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080F8C20
+ b _080F8D30
+_080F8C20:
+ bl sub_80F8DA0
+ b _080F8D30
+ .align 2, 0
+_080F8C28: .4byte 0x02000000
+_080F8C2C:
+ ldr r0, _080F8C4C
+ adds r0, 0xF8
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080F8C3A
+ bl sub_80F8E80
+_080F8C3A:
+ ldr r0, _080F8C50
+ bl SetVBlankCallback
+ ldr r2, _080F8C54
+ ldrb r0, [r2, 0x8]
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r2, 0x8]
+ b _080F8D30
+ .align 2, 0
+_080F8C4C: .4byte 0x02000000
+_080F8C50: .4byte sub_80F8F18
+_080F8C54: .4byte gPaletteFade
+_080F8C58:
+ ldr r5, _080F8C7C
+ adds r0, r5, 0
+ adds r0, 0xF4
+ ldr r0, [r0]
+ ldrh r0, [r0, 0x1E]
+ bl sub_809D4A8
+ lsls r0, 16
+ lsrs r4, r0, 16
+ adds r0, r5, 0
+ adds r0, 0xFB
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ beq _080F8C80
+ cmp r0, 0x2
+ beq _080F8C98
+ b _080F8D30
+ .align 2, 0
+_080F8C7C: .4byte 0x02000000
+_080F8C80:
+ adds r0, r4, 0
+ bl sub_809D580
+ ldr r1, _080F8C94
+ movs r0, 0
+ str r0, [sp]
+ adds r0, r4, 0
+ movs r2, 0x60
+ b _080F8CA8
+ .align 2, 0
+_080F8C94: .4byte SpriteCallbackDummy
+_080F8C98:
+ adds r0, r4, 0
+ bl sub_809D580
+ ldr r1, _080F8CB8
+ movs r0, 0
+ str r0, [sp]
+ adds r0, r4, 0
+ movs r2, 0x28
+_080F8CA8:
+ movs r3, 0x80
+ bl sub_809D3A4
+ adds r1, r5, 0
+ adds r1, 0xFC
+ strb r0, [r1]
+ b _080F8D30
+ .align 2, 0
+_080F8CB8: .4byte SpriteCallbackDummy
+_080F8CBC:
+ bl sub_8055870
+ cmp r0, 0x1
+ bne _080F8D30
+ b _080F8D3C
+_080F8CC6:
+ ldr r1, _080F8D14
+ ldr r2, _080F8D18
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r2, _080F8D1C
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r2, _080F8D20
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x44
+ movs r0, 0
+ strh r0, [r1]
+ subs r1, 0x50
+ movs r2, 0xBA
+ lsls r2, 5
+ adds r0, r2, 0
+ strh r0, [r1]
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ ldr r2, _080F8D24
+ ldrb r1, [r2, 0x8]
+ movs r0, 0x7F
+ ands r0, r1
+ strb r0, [r2, 0x8]
+ ldr r0, _080F8D28
+ adds r0, 0xF0
+ ldr r1, _080F8D2C
+ str r1, [r0]
+ movs r0, 0x1
+ b _080F8D3E
+ .align 2, 0
+_080F8D14: .4byte REG_BG0CNT
+_080F8D18: .4byte 0x00009f08
+_080F8D1C: .4byte 0x00000801
+_080F8D20: .4byte 0x00000902
+_080F8D24: .4byte gPaletteFade
+_080F8D28: .4byte 0x02000000
+_080F8D2C: .4byte sub_80F8F58
+_080F8D30:
+ ldr r1, _080F8D48
+ ldr r0, _080F8D4C
+ adds r1, r0
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+_080F8D3C:
+ movs r0, 0
+_080F8D3E:
+ add sp, 0x8
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080F8D48: .4byte gMain
+_080F8D4C: .4byte 0x0000043c
+ thumb_func_end sub_80F8A28
+
+ thumb_func_start sub_80F8D50
+sub_80F8D50: @ 80F8D50
+ push {lr}
+_080F8D52:
+ bl sub_80F8A28
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080F8D6C
+ ldr r0, _080F8D68
+ bl SetMainCallback2
+ b _080F8D78
+ .align 2, 0
+_080F8D68: .4byte sub_80F8F2C
+_080F8D6C:
+ bl sub_80F9344
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080F8D52
+_080F8D78:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80F8D50
+
+ thumb_func_start sub_80F8D7C
+sub_80F8D7C: @ 80F8D7C
+ push {r4,lr}
+ adds r4, r0, 0
+ bl StringCopy
+ adds r0, r4, 0
+ bl sub_814A568
+ adds r0, r4, 0
+ bl StringLength
+ lsls r0, 16
+ lsrs r0, 16
+ adds r4, r0
+ adds r0, r4, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80F8D7C
+
+ thumb_func_start sub_80F8DA0
+sub_80F8DA0: @ 80F8DA0
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ movs r6, 0
+ movs r5, 0
+ ldr r2, _080F8E3C
+ movs r0, 0x86
+ lsls r0, 1
+ adds r1, r2, r0
+ ldr r0, [r1]
+ ldrb r0, [r0]
+ cmp r5, r0
+ bcs _080F8E04
+ mov r8, r2
+ adds r7, r1, 0
+_080F8DBE:
+ lsls r0, r5, 3
+ subs r0, r5
+ lsls r0, 2
+ subs r0, r5
+ add r0, r8
+ mov r1, r8
+ adds r1, 0xF4
+ lsls r2, r6, 1
+ ldr r1, [r1]
+ adds r1, r2
+ ldr r2, [r7]
+ ldr r2, [r2, 0x4]
+ lsls r4, r5, 2
+ adds r2, r4, r2
+ ldr r2, [r2]
+ lsls r2, 28
+ lsrs r2, 30
+ movs r3, 0x1
+ bl ConvertEasyChatWordsToString
+ ldr r1, [r7]
+ ldr r0, [r1, 0x4]
+ adds r4, r0
+ ldr r0, [r4]
+ lsls r0, 28
+ lsrs r0, 30
+ adds r0, r6, r0
+ lsls r0, 24
+ lsrs r6, r0, 24
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ ldrb r1, [r1]
+ cmp r5, r1
+ bcc _080F8DBE
+_080F8E04:
+ ldr r2, _080F8E40
+ adds r4, r2, 0
+ subs r4, 0xD8
+ adds r0, r2, 0
+ adds r0, 0x28
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080F8E48
+ ldr r1, [r2, 0x1C]
+ adds r1, 0x12
+ adds r0, r2, 0
+ bl sub_80F8D7C
+ adds r2, r0, 0
+ ldr r1, _080F8E44
+ bl StringCopy
+ ldr r0, _080F8E40
+ bl StringLength
+ movs r2, 0x86
+ lsls r2, 1
+ adds r1, r4, r2
+ ldr r1, [r1]
+ ldrb r1, [r1, 0x2]
+ subs r1, r0
+ b _080F8E6A
+ .align 2, 0
+_080F8E3C: .4byte 0x02000000
+_080F8E40: .4byte 0x020000d8
+_080F8E44: .4byte gOtherText_From
+_080F8E48:
+ ldr r1, _080F8E7C
+ adds r0, r2, 0
+ bl StringCopy
+ adds r2, r0, 0
+ adds r0, r4, 0
+ adds r0, 0xF4
+ ldr r1, [r0]
+ adds r1, 0x12
+ adds r0, r2, 0
+ bl sub_80F8D7C
+ movs r1, 0x86
+ lsls r1, 1
+ adds r0, r4, r1
+ ldr r0, [r0]
+ ldrb r1, [r0, 0x2]
+_080F8E6A:
+ adds r0, r4, 0
+ adds r0, 0xF9
+ strb r1, [r0]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F8E7C: .4byte gOtherText_From
+ thumb_func_end sub_80F8DA0
+
+ thumb_func_start sub_80F8E80
+sub_80F8E80: @ 80F8E80
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ movs r6, 0
+ movs r4, 0
+ ldr r1, _080F8F10
+ movs r0, 0x86
+ lsls r0, 1
+ adds r2, r1, r0
+ ldr r0, [r2]
+ ldrb r0, [r0]
+ cmp r4, r0
+ bcs _080F8EF6
+ mov r8, r1
+ adds r7, r2, 0
+_080F8E9E:
+ lsls r0, r4, 3
+ subs r0, r4
+ lsls r0, 2
+ subs r0, r4
+ mov r1, r8
+ adds r5, r0, r1
+ ldrb r0, [r5]
+ cmp r0, 0xFF
+ beq _080F8EE8
+ cmp r0, 0
+ beq _080F8EE8
+ ldr r2, [r7]
+ ldr r1, [r2, 0x4]
+ lsls r0, r4, 2
+ adds r0, r1
+ ldr r0, [r0]
+ lsls r3, r0, 24
+ lsrs r3, 28
+ lsls r0, 30
+ lsrs r0, 30
+ adds r0, r6, r0
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldrb r2, [r2, 0x3]
+ lsrs r1, r2, 4
+ adds r1, r3
+ lsls r2, 28
+ lsrs r2, 28
+ adds r2, r6, r2
+ lsls r2, 24
+ lsrs r2, 24
+ adds r0, r5, 0
+ bl MenuPrint
+ adds r0, r6, 0x2
+ lsls r0, 24
+ lsrs r6, r0, 24
+_080F8EE8:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ ldr r0, [r7]
+ ldrb r0, [r0]
+ cmp r4, r0
+ bcc _080F8E9E
+_080F8EF6:
+ ldr r0, _080F8F14
+ adds r1, r0, 0
+ adds r1, 0x21
+ ldrb r1, [r1]
+ ldr r2, [r0, 0x34]
+ ldrb r2, [r2, 0x1]
+ bl MenuPrint
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F8F10: .4byte 0x02000000
+_080F8F14: .4byte 0x020000d8
+ thumb_func_end sub_80F8E80
+
+ thumb_func_start sub_80F8F18
+sub_80F8F18: @ 80F8F18
+ push {lr}
+ bl LoadOam
+ bl ProcessSpriteCopyRequests
+ bl TransferPlttBuffer
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80F8F18
+
+ thumb_func_start sub_80F8F2C
+sub_80F8F2C: @ 80F8F2C
+ push {r4,lr}
+ ldr r4, _080F8F54
+ adds r0, r4, 0
+ adds r0, 0xFB
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080F8F42
+ bl AnimateSprites
+ bl BuildOamBuffer
+_080F8F42:
+ adds r0, r4, 0
+ adds r0, 0xF0
+ ldr r0, [r0]
+ bl _call_via_r0
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F8F54: .4byte 0x02000000
+ thumb_func_end sub_80F8F2C
+
+ thumb_func_start sub_80F8F58
+sub_80F8F58: @ 80F8F58
+ push {lr}
+ bl UpdatePaletteFade
+ lsls r0, 24
+ cmp r0, 0
+ bne _080F8F6C
+ ldr r0, _080F8F70
+ adds r0, 0xF0
+ ldr r1, _080F8F74
+ str r1, [r0]
+_080F8F6C:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F8F70: .4byte 0x02000000
+_080F8F74: .4byte sub_80F8F78
+ thumb_func_end sub_80F8F58
+
+ thumb_func_start sub_80F8F78
+sub_80F8F78: @ 80F8F78
+ push {lr}
+ sub sp, 0x4
+ ldr r0, _080F8FA8
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0
+ beq _080F8FA0
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r0, _080F8FAC
+ adds r0, 0xF0
+ ldr r1, _080F8FB0
+ str r1, [r0]
+_080F8FA0:
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F8FA8: .4byte gMain
+_080F8FAC: .4byte 0x02000000
+_080F8FB0: .4byte sub_80F8FB4
+ thumb_func_end sub_80F8F78
+
+ thumb_func_start sub_80F8FB4
+sub_80F8FB4: @ 80F8FB4
+ push {r4,lr}
+ bl UpdatePaletteFade
+ lsls r0, 24
+ cmp r0, 0
+ bne _080F9012
+ ldr r4, _080F9018
+ adds r0, r4, 0
+ adds r0, 0xEC
+ ldr r0, [r0]
+ bl SetMainCallback2
+ adds r0, r4, 0
+ adds r0, 0xFB
+ ldrb r0, [r0]
+ cmp r0, 0x2
+ bgt _080F9002
+ cmp r0, 0x1
+ blt _080F9002
+ adds r0, r4, 0
+ adds r0, 0xF4
+ ldr r0, [r0]
+ ldrh r0, [r0, 0x1E]
+ bl sub_809D4A8
+ lsls r0, 16
+ lsrs r0, 16
+ bl sub_809D608
+ adds r0, r4, 0
+ adds r0, 0xFC
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080F901C
+ adds r0, r1
+ bl sub_809D510
+_080F9002:
+ ldr r0, _080F9018
+ movs r2, 0x88
+ lsls r2, 1
+ movs r1, 0
+ bl memset
+ bl ResetPaletteFade
+_080F9012:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F9018: .4byte 0x02000000
+_080F901C: .4byte gSprites
+ thumb_func_end sub_80F8FB4
+
+ thumb_func_start sub_80F9020
+sub_80F9020: @ 80F9020
+ push {r4,r5,lr}
+ ldr r4, _080F9054
+ movs r5, 0x80
+ lsls r5, 4
+ adds r0, r4, 0
+ movs r1, 0
+ adds r2, r5, 0
+ bl memset
+ adds r0, r4, r5
+ movs r1, 0
+ adds r2, r5, 0
+ bl memset
+ movs r0, 0x80
+ lsls r0, 5
+ adds r4, r0
+ adds r0, r4, 0
+ movs r1, 0
+ adds r2, r5, 0
+ bl memset
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F9054: .4byte gBG1TilemapBuffer
+ thumb_func_end sub_80F9020
+
+ thumb_func_start sav2_get_text_speed
+sav2_get_text_speed: @ 80F9058
+ push {r4,r5,lr}
+ sub sp, 0x8
+ adds r5, r0, 0
+ lsls r1, 16
+ lsrs r4, r1, 16
+ bl MenuDisplayMessageBox
+ cmp r4, 0
+ beq _080F907C
+ ldr r0, _080F908C
+ movs r1, 0x4
+ str r1, [sp]
+ str r4, [sp, 0x4]
+ movs r1, 0x2
+ movs r2, 0xF
+ movs r3, 0x1A
+ bl sub_80A3FA0
+_080F907C:
+ adds r0, r5, 0
+ bl sub_8072044
+ add sp, 0x8
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F908C: .4byte gBG1TilemapBuffer
+ thumb_func_end sav2_get_text_speed
+
+ thumb_func_start sub_80F9090
+sub_80F9090: @ 80F9090
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl MenuUpdateWindowText
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080F90AC
+ ldr r0, _080F90B4
+ ldr r1, [r0]
+ adds r0, r4, 0
+ bl _call_via_r1
+_080F90AC:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F90B4: .4byte gUnknown_0300074C
+ thumb_func_end sub_80F9090
+
+ thumb_func_start DisplayItemMessageOnField
+DisplayItemMessageOnField: @ 80F90B8
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ adds r0, r1, 0
+ adds r5, r2, 0
+ adds r1, r3, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r1, 16
+ lsrs r1, 16
+ bl sav2_get_text_speed
+ ldr r0, _080F90E8
+ str r5, [r0]
+ ldr r1, _080F90EC
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080F90F0
+ str r1, [r0]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F90E8: .4byte gUnknown_0300074C
+_080F90EC: .4byte gTasks
+_080F90F0: .4byte sub_80F9090
+ thumb_func_end DisplayItemMessageOnField
+
+ thumb_func_start Task_CallYesOrNoCallback
+Task_CallYesOrNoCallback: @ 80F90F4
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl ProcessMenuInputNoWrap_
+ lsls r0, 24
+ asrs r1, r0, 24
+ cmp r1, 0
+ beq _080F911A
+ cmp r1, 0
+ bgt _080F9114
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ beq _080F9130
+ b _080F9140
+_080F9114:
+ cmp r1, 0x1
+ beq _080F9130
+ b _080F9140
+_080F911A:
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, _080F912C
+ ldr r1, [r0]
+ adds r0, r4, 0
+ bl _call_via_r1
+ b _080F9140
+ .align 2, 0
+_080F912C: .4byte gUnknown_020388C4
+_080F9130:
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, _080F9148
+ ldr r1, [r0, 0x4]
+ adds r0, r4, 0
+ bl _call_via_r1
+_080F9140:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F9148: .4byte gUnknown_020388C4
+ thumb_func_end Task_CallYesOrNoCallback
+
+ thumb_func_start sub_80F914C
+sub_80F914C: @ 80F914C
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r3, _080F916C
+ ldr r2, [r1, 0x4]
+ ldr r1, [r1]
+ str r1, [r3]
+ str r2, [r3, 0x4]
+ ldr r2, _080F9170
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldr r0, _080F9174
+ str r0, [r1]
+ bx lr
+ .align 2, 0
+_080F916C: .4byte gUnknown_020388C4
+_080F9170: .4byte gTasks
+_080F9174: .4byte Task_CallYesOrNoCallback
+ thumb_func_end sub_80F914C
+
+ thumb_func_start brm_trade_1
+brm_trade_1: @ 80F9178
+ push {r4-r7,lr}
+ sub sp, 0x4
+ adds r5, r0, 0
+ lsls r1, 24
+ lsrs r4, r1, 24
+ lsls r2, 24
+ lsrs r7, r2, 24
+ lsls r3, 24
+ lsrs r6, r3, 24
+ ldr r1, _080F91C0
+ mov r0, sp
+ movs r2, 0x4
+ bl memcpy
+ cmp r4, 0xFF
+ beq _080F91CC
+ mov r0, sp
+ strb r4, [r0, 0x2]
+ ldr r4, _080F91C4
+ adds r0, r4, 0
+ mov r1, sp
+ bl StringCopy
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl StringAppend
+ mov r1, sp
+ ldr r0, _080F91C8
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x6]
+ strb r0, [r1, 0x2]
+ adds r0, r4, 0
+ bl StringAppend
+ b _080F91D4
+ .align 2, 0
+_080F91C0: .4byte gUnknown_083E5A18
+_080F91C4: .4byte gStringVar4
+_080F91C8: .4byte gMenuWindowPtr
+_080F91CC:
+ ldr r0, _080F91E8
+ adds r1, r5, 0
+ bl StringCopy
+_080F91D4:
+ ldr r0, _080F91E8
+ adds r1, r7, 0
+ adds r2, r6, 0
+ bl MenuPrint
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F91E8: .4byte gStringVar4
+ thumb_func_end brm_trade_1
+
+ thumb_func_start unref_sub_80F91EC
+unref_sub_80F91EC: @ 80F91EC
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ mov r12, r0
+ adds r4, r2, 0
+ adds r2, r3, 0
+ ldr r0, [sp, 0x18]
+ ldr r3, [sp, 0x1C]
+ lsls r1, 24
+ lsrs r1, 24
+ mov r8, r1
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r2, 24
+ lsrs r2, 24
+ lsls r0, 24
+ lsrs r7, r0, 24
+ lsls r3, 24
+ lsrs r5, r3, 24
+ ldr r6, _080F9234
+ adds r0, r6, 0
+ mov r1, r12
+ adds r3, r4, 0
+ bl ConvertIntToDecimalStringN
+ mov r0, r8
+ cmp r0, 0xFF
+ beq _080F9238
+ adds r0, r6, 0
+ mov r1, r8
+ adds r2, r7, 0
+ adds r3, r5, 0
+ bl brm_trade_1
+ b _080F9242
+ .align 2, 0
+_080F9234: .4byte gStringVar1
+_080F9238:
+ adds r0, r6, 0
+ adds r1, r7, 0
+ adds r2, r5, 0
+ bl MenuPrint
+_080F9242:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end unref_sub_80F91EC
+
+ thumb_func_start unref_sub_80F924C
+unref_sub_80F924C: @ 80F924C
+ push {r4-r6,lr}
+ sub sp, 0x4
+ adds r5, r0, 0
+ adds r6, r1, 0
+ adds r4, r2, 0
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r6, 24
+ lsrs r6, 24
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r1, _080F9280
+ mov r0, sp
+ movs r2, 0x2
+ bl memcpy
+ mov r0, sp
+ adds r1, r4, 0
+ adds r2, r5, 0
+ adds r3, r6, 0
+ bl brm_trade_1
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F9280: .4byte gUnknown_083E5A1C
+ thumb_func_end unref_sub_80F924C
+
+ thumb_func_start sub_80F9284
+sub_80F9284: @ 80F9284
+ push {lr}
+ ldr r0, _080F92A0
+ ldrb r0, [r0, 0x13]
+ cmp r0, 0x1
+ bne _080F92B6
+ ldr r0, _080F92A4
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x80
+ lsls r0, 2
+ ands r0, r1
+ cmp r0, 0
+ beq _080F92A8
+ movs r0, 0x1
+ b _080F92B8
+ .align 2, 0
+_080F92A0: .4byte gSaveBlock2
+_080F92A4: .4byte gMain
+_080F92A8:
+ movs r0, 0x80
+ lsls r0, 1
+ ands r0, r1
+ cmp r0, 0
+ beq _080F92B6
+ movs r0, 0x2
+ b _080F92B8
+_080F92B6:
+ movs r0, 0
+_080F92B8:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80F9284
+
+ thumb_func_start sub_80F92BC
+sub_80F92BC: @ 80F92BC
+ push {lr}
+ ldr r0, _080F92D8
+ ldrb r0, [r0, 0x13]
+ cmp r0, 0x1
+ bne _080F92EE
+ ldr r0, _080F92DC
+ ldrh r1, [r0, 0x30]
+ movs r0, 0x80
+ lsls r0, 2
+ ands r0, r1
+ cmp r0, 0
+ beq _080F92E0
+ movs r0, 0x1
+ b _080F92F0
+ .align 2, 0
+_080F92D8: .4byte gSaveBlock2
+_080F92DC: .4byte gMain
+_080F92E0:
+ movs r0, 0x80
+ lsls r0, 1
+ ands r0, r1
+ cmp r0, 0
+ beq _080F92EE
+ movs r0, 0x2
+ b _080F92F0
+_080F92EE:
+ movs r0, 0
+_080F92F0:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80F92BC
+
+ thumb_func_start sub_80F92F4
+sub_80F92F4: @ 80F92F4
+ push {lr}
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0xAF
+ bne _080F9314
+ ldr r0, _080F930C
+ ldrh r1, [r0, 0x4]
+ ldr r0, _080F9310
+ cmp r1, r0
+ bne _080F9314
+ movs r0, 0
+ b _080F9316
+ .align 2, 0
+_080F930C: .4byte gSaveBlock1
+_080F9310: .4byte 0x00001919
+_080F9314:
+ movs r0, 0x1
+_080F9316:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80F92F4
+
+ thumb_func_start sub_80F931C
+sub_80F931C: @ 80F931C
+ push {r4,lr}
+ lsls r0, 16
+ lsrs r4, r0, 16
+ bl is_c1_link_related_active
+ cmp r0, 0x1
+ bne _080F933C
+ adds r0, r4, 0
+ bl itemid_is_mail
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080F933C
+ movs r0, 0
+ b _080F933E
+_080F933C:
+ movs r0, 0x1
+_080F933E:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80F931C
+
+ thumb_func_start sub_80F9344
+sub_80F9344: @ 80F9344
+ push {lr}
+ bl is_c1_link_related_active
+ cmp r0, 0x1
+ beq _080F9356
+ ldr r0, _080F935C
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _080F9360
+_080F9356:
+ movs r0, 0x1
+ b _080F9362
+ .align 2, 0
+_080F935C: .4byte gReceivedRemoteLinkPlayers
+_080F9360:
+ movs r0, 0
+_080F9362:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80F9344
+
+ thumb_func_start sub_80F9368
+sub_80F9368: @ 80F9368
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x8
+ movs r0, 0x80
+ lsls r0, 19
+ movs r1, 0
+ strh r1, [r0]
+ adds r0, 0xE
+ strh r1, [r0]
+ subs r0, 0x2
+ strh r1, [r0]
+ subs r0, 0x2
+ strh r1, [r0]
+ subs r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x14
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ subs r0, 0x6
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ subs r0, 0x6
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ subs r0, 0x6
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ movs r3, 0xC0
+ lsls r3, 19
+ movs r4, 0xC0
+ lsls r4, 9
+ add r0, sp, 0x4
+ mov r8, r0
+ mov r2, sp
+ movs r6, 0
+ ldr r1, _080F9430
+ movs r5, 0x80
+ lsls r5, 5
+ ldr r7, _080F9434
+ movs r0, 0x81
+ lsls r0, 24
+ mov r12, r0
+_080F93C6:
+ strh r6, [r2]
+ mov r0, sp
+ str r0, [r1]
+ str r3, [r1, 0x4]
+ str r7, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ adds r3, r5
+ subs r4, r5
+ cmp r4, r5
+ bhi _080F93C6
+ strh r6, [r2]
+ mov r2, sp
+ str r2, [r1]
+ str r3, [r1, 0x4]
+ lsrs r0, r4, 1
+ mov r2, r12
+ orrs r0, r2
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ movs r0, 0xE0
+ lsls r0, 19
+ movs r3, 0x80
+ lsls r3, 3
+ movs r4, 0
+ str r4, [sp, 0x4]
+ ldr r2, _080F9430
+ mov r1, r8
+ str r1, [r2]
+ str r0, [r2, 0x4]
+ lsrs r0, r3, 2
+ movs r1, 0x85
+ lsls r1, 24
+ orrs r0, r1
+ str r0, [r2, 0x8]
+ ldr r0, [r2, 0x8]
+ movs r1, 0xA0
+ lsls r1, 19
+ mov r0, sp
+ strh r4, [r0]
+ str r0, [r2]
+ str r1, [r2, 0x4]
+ lsrs r3, 1
+ movs r0, 0x81
+ lsls r0, 24
+ orrs r3, r0
+ str r3, [r2, 0x8]
+ ldr r0, [r2, 0x8]
+ add sp, 0x8
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F9430: .4byte 0x040000d4
+_080F9434: .4byte 0x81000800
+ thumb_func_end sub_80F9368
+
+ thumb_func_start sub_80F9438
+sub_80F9438: @ 80F9438
+ push {lr}
+ movs r0, 0
+ bl SetVBlankCallback
+ movs r0, 0
+ bl SetHBlankCallback
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80F9438
+
+ thumb_func_start sub_80F944C
+sub_80F944C: @ 80F944C
+ push {r4,lr}
+ movs r2, 0
+ ldr r4, _080F9478
+ movs r3, 0xFF
+_080F9454:
+ 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, 0x3
+ bls _080F9454
+ movs r0, 0x6
+ bl FreeSpritePaletteByTag
+ ldr r0, _080F947C
+ bl LoadSpritePalette
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F9478: .4byte gUnknown_020388C0
+_080F947C: .4byte gUnknown_083E5968
+ thumb_func_end sub_80F944C
+
+ thumb_func_start sub_80F9480
+sub_80F9480: @ 80F9480
+ push {r4,lr}
+ adds r3, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ movs r2, 0
+ cmp r2, r1
+ bcs _080F949E
+ movs r4, 0xFF
+_080F9490:
+ adds r0, r3, r2
+ strb r4, [r0]
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, r1
+ bcc _080F9490
+_080F949E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80F9480
+
+ thumb_func_start sub_80F94A4
+sub_80F94A4: @ 80F94A4
+ push {r4,r5,lr}
+ adds r5, r1, 0
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r2, 16
+ lsrs r1, r2, 16
+ lsls r3, 16
+ lsrs r2, r3, 16
+ cmp r4, 0x5
+ bhi _080F94E8
+ ldrb r0, [r5]
+ cmp r0, 0xFF
+ bne _080F94D0
+ ldr r0, _080F94F0
+ lsls r1, 16
+ asrs r1, 16
+ lsls r2, 16
+ asrs r2, 16
+ movs r3, 0
+ bl CreateSprite
+ strb r0, [r5]
+_080F94D0:
+ subs r0, r4, 0x4
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldrb r1, [r5]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080F94F4
+ adds r0, r1
+ adds r1, r4, 0
+ bl StartSpriteAnim
+_080F94E8:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F94F0: .4byte gSpriteTemplate_83E5A00
+_080F94F4: .4byte gSprites
+ thumb_func_end sub_80F94A4
+
+ thumb_func_start sub_80F94F8
+sub_80F94F8: @ 80F94F8
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrb r0, [r4]
+ cmp r0, 0xFF
+ beq _080F9516
+ adds r1, r0, 0
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080F951C
+ adds r0, r1
+ bl DestroySprite
+ movs r0, 0xFF
+ strb r0, [r4]
+_080F9516:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F951C: .4byte gSprites
+ thumb_func_end sub_80F94F8
+
+ thumb_func_start sub_80F9520
+sub_80F9520: @ 80F9520
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ movs r4, 0
+_080F9526:
+ adds r0, r5, r4
+ bl sub_80F94F8
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x7
+ bls _080F9526
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80F9520
+
+ thumb_func_start sub_80F953C
+sub_80F953C: @ 80F953C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r1, 16
+ lsrs r3, r1, 16
+ lsls r2, 16
+ lsrs r2, 16
+ cmp r4, 0x3
+ bls _080F9550
+ b _080F9790
+_080F9550:
+ cmp r4, 0x1
+ beq _080F95F6
+ cmp r4, 0x1
+ bgt _080F9564
+ cmp r4, 0
+ beq _080F9578
+ ldr r5, _080F9560
+ b _080F977A
+ .align 2, 0
+_080F9560: .4byte gUnknown_020388C0
+_080F9564:
+ cmp r4, 0x2
+ bne _080F956A
+ b _080F967C
+_080F956A:
+ cmp r4, 0x3
+ bne _080F9570
+ b _080F96F8
+_080F9570:
+ ldr r5, _080F9574
+ b _080F977A
+ .align 2, 0
+_080F9574: .4byte gUnknown_020388C0
+_080F9578:
+ ldr r0, _080F95D8
+ ldrb r1, [r0]
+ adds r5, r0, 0
+ cmp r1, 0xFF
+ beq _080F9584
+ b _080F977A
+_080F9584:
+ ldr r0, _080F95DC
+ lsls r1, r3, 16
+ asrs r1, 16
+ lsls r2, 16
+ asrs r2, 16
+ movs r3, 0
+ bl CreateSprite
+ strb r0, [r5]
+ ldr r3, _080F95E0
+ ldrb r1, [r5]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ ldr r1, _080F95E4
+ strh r1, [r0, 0x32]
+ ldrb r0, [r5, 0x1]
+ cmp r0, 0xFF
+ beq _080F95E8
+ ldrb r0, [r5]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r3
+ ldrb r2, [r5, 0x1]
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r3
+ movs r2, 0x26
+ ldrsh r0, [r0, r2]
+ negs r0, r0
+ strh r0, [r1, 0x26]
+ ldrb r0, [r5]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r3
+ ldrb r2, [r5, 0x1]
+ b _080F9650
+ .align 2, 0
+_080F95D8: .4byte gUnknown_020388C0
+_080F95DC: .4byte gSpriteTemplate_83E59D0
+_080F95E0: .4byte gSprites
+_080F95E4: .4byte 0x0000ffff
+_080F95E8:
+ ldrb r1, [r5]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ strh r4, [r0, 0x34]
+ b _080F977A
+_080F95F6:
+ ldr r0, _080F9660
+ ldrb r1, [r0, 0x1]
+ adds r5, r0, 0
+ cmp r1, 0xFF
+ beq _080F9602
+ b _080F977A
+_080F9602:
+ ldr r0, _080F9664
+ lsls r1, r3, 16
+ asrs r1, 16
+ lsls r2, 16
+ asrs r2, 16
+ movs r3, 0
+ bl CreateSprite
+ strb r0, [r5, 0x1]
+ ldr r3, _080F9668
+ ldrb r1, [r5, 0x1]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ strh r4, [r0, 0x32]
+ ldrb r0, [r5]
+ cmp r0, 0xFF
+ beq _080F966C
+ ldrb r0, [r5, 0x1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r3
+ ldrb r2, [r5]
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r3
+ movs r2, 0x26
+ ldrsh r0, [r0, r2]
+ negs r0, r0
+ strh r0, [r1, 0x26]
+ ldrb r0, [r5, 0x1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r3
+ ldrb r2, [r5]
+_080F9650:
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r3
+ ldrh r0, [r0, 0x34]
+ strh r0, [r1, 0x34]
+ b _080F977A
+ .align 2, 0
+_080F9660: .4byte gUnknown_020388C0
+_080F9664: .4byte gSpriteTemplate_83E59D0
+_080F9668: .4byte gSprites
+_080F966C:
+ ldrb r0, [r5, 0x1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r3
+ movs r0, 0
+ strh r0, [r1, 0x34]
+ b _080F977A
+_080F967C:
+ ldr r0, _080F96E4
+ ldrb r1, [r0, 0x2]
+ adds r5, r0, 0
+ cmp r1, 0xFF
+ bne _080F977A
+ ldr r0, _080F96E8
+ lsls r1, r3, 16
+ asrs r1, 16
+ lsls r2, 16
+ asrs r2, 16
+ movs r3, 0
+ bl CreateSprite
+ strb r0, [r5, 0x2]
+ ldr r3, _080F96EC
+ ldrb r1, [r5, 0x2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ ldr r1, _080F96F0
+ strh r1, [r0, 0x2E]
+ ldrb r0, [r5, 0x3]
+ cmp r0, 0xFF
+ beq _080F96F4
+ ldrb r0, [r5, 0x2]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r3
+ ldrb r2, [r5, 0x3]
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r3
+ movs r2, 0x24
+ ldrsh r0, [r0, r2]
+ negs r0, r0
+ strh r0, [r1, 0x24]
+ ldrb r0, [r5, 0x2]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r3
+ ldrb r2, [r5, 0x3]
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r3
+ ldrh r0, [r0, 0x30]
+ b _080F9778
+ .align 2, 0
+_080F96E4: .4byte gUnknown_020388C0
+_080F96E8: .4byte gSpriteTemplate_83E59E8
+_080F96EC: .4byte gSprites
+_080F96F0: .4byte 0x0000ffff
+_080F96F4:
+ ldrb r0, [r5, 0x2]
+ b _080F976E
+_080F96F8:
+ ldr r0, _080F9760
+ ldrb r1, [r0, 0x3]
+ adds r5, r0, 0
+ cmp r1, 0xFF
+ bne _080F977A
+ ldr r0, _080F9764
+ lsls r1, r3, 16
+ asrs r1, 16
+ lsls r2, 16
+ asrs r2, 16
+ movs r3, 0
+ bl CreateSprite
+ strb r0, [r5, 0x3]
+ ldr r3, _080F9768
+ ldrb r1, [r5, 0x3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ movs r1, 0x1
+ strh r1, [r0, 0x2E]
+ ldrb r0, [r5, 0x2]
+ cmp r0, 0xFF
+ beq _080F976C
+ ldrb r0, [r5, 0x3]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r3
+ ldrb r2, [r5, 0x2]
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r3
+ movs r2, 0x24
+ ldrsh r0, [r0, r2]
+ negs r0, r0
+ strh r0, [r1, 0x24]
+ ldrb r0, [r5, 0x3]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r3
+ ldrb r2, [r5, 0x2]
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r3
+ ldrh r0, [r0, 0x30]
+ b _080F9778
+ .align 2, 0
+_080F9760: .4byte gUnknown_020388C0
+_080F9764: .4byte gSpriteTemplate_83E59E8
+_080F9768: .4byte gSprites
+_080F976C:
+ ldrb r0, [r5, 0x3]
+_080F976E:
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r3
+ movs r0, 0
+_080F9778:
+ strh r0, [r1, 0x30]
+_080F977A:
+ adds r0, r4, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080F9798
+ adds r0, r1
+ movs r1, 0x1
+ ands r1, r4
+ bl StartSpriteAnim
+_080F9790:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F9798: .4byte gSprites
+ thumb_func_end sub_80F953C
+
+ thumb_func_start sub_80F979C
+sub_80F979C: @ 80F979C
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r1, 24
+ lsrs r3, r1, 24
+ cmp r2, 0x3
+ bhi _080F97D4
+ ldr r0, _080F97D8
+ adds r1, r2, r0
+ ldrb r0, [r1]
+ cmp r0, 0xFF
+ beq _080F97D4
+ ldr r2, _080F97DC
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ adds r1, 0x3E
+ movs r0, 0x1
+ adds r2, r3, 0
+ ands r2, r0
+ lsls r2, 2
+ ldrb r3, [r1]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r3
+ orrs r0, r2
+ strb r0, [r1]
+_080F97D4:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F97D8: .4byte gUnknown_020388C0
+_080F97DC: .4byte gSprites
+ thumb_func_end sub_80F979C
+
+ thumb_func_start SetBgTilemapBuffer
+SetBgTilemapBuffer: @ 80F97E0
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x3
+ bhi _080F9808
+ ldr r0, _080F9810
+ adds r4, r1, r0
+ ldrb r0, [r4]
+ cmp r0, 0xFF
+ beq _080F9808
+ adds r1, r0, 0
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080F9814
+ adds r0, r1
+ bl DestroySprite
+ movs r0, 0xFF
+ strb r0, [r4]
+_080F9808:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F9810: .4byte gUnknown_020388C0
+_080F9814: .4byte gSprites
+ thumb_func_end SetBgTilemapBuffer
+
+ thumb_func_start InitMenuInUpperLeftCornerPlaySoundWhenAPressed
+InitMenuInUpperLeftCornerPlaySoundWhenAPressed: @ 80F9818
+ push {lr}
+ ldr r0, _080F9824
+ bl LoadSpritePalette
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F9824: .4byte gUnknown_083E5968
+ thumb_func_end InitMenuInUpperLeftCornerPlaySoundWhenAPressed
+
+ thumb_func_start BuyMenuFreeMemory
+BuyMenuFreeMemory: @ 80F9828
+ push {lr}
+ movs r0, 0x6
+ bl FreeSpritePaletteByTag
+ pop {r0}
+ bx r0
+ thumb_func_end BuyMenuFreeMemory
+
+ thumb_func_start sub_80F9834
+sub_80F9834: @ 80F9834
+ push {lr}
+ adds r2, r0, 0
+ movs r1, 0x30
+ ldrsh r0, [r2, r1]
+ cmp r0, 0
+ bne _080F9848
+ ldrh r0, [r2, 0x2E]
+ ldrh r1, [r2, 0x24]
+ adds r0, r1
+ strh r0, [r2, 0x24]
+_080F9848:
+ movs r1, 0x34
+ ldrsh r0, [r2, r1]
+ cmp r0, 0
+ bne _080F9858
+ ldrh r0, [r2, 0x32]
+ ldrh r1, [r2, 0x26]
+ adds r0, r1
+ strh r0, [r2, 0x26]
+_080F9858:
+ ldrh r1, [r2, 0x30]
+ adds r1, 0x1
+ movs r3, 0
+ strh r1, [r2, 0x30]
+ ldrh r0, [r2, 0x34]
+ adds r0, 0x1
+ strh r0, [r2, 0x34]
+ lsls r1, 16
+ asrs r1, 16
+ cmp r1, 0x2
+ ble _080F9870
+ strh r3, [r2, 0x30]
+_080F9870:
+ movs r1, 0x34
+ ldrsh r0, [r2, r1]
+ cmp r0, 0x2
+ ble _080F987A
+ strh r3, [r2, 0x34]
+_080F987A:
+ movs r0, 0x24
+ ldrsh r1, [r2, r0]
+ cmp r1, 0x8
+ beq _080F988A
+ movs r0, 0x8
+ negs r0, r0
+ cmp r1, r0
+ bne _080F988C
+_080F988A:
+ strh r3, [r2, 0x24]
+_080F988C:
+ movs r0, 0x26
+ ldrsh r1, [r2, r0]
+ cmp r1, 0x8
+ beq _080F989C
+ movs r0, 0x8
+ negs r0, r0
+ cmp r1, r0
+ bne _080F98A0
+_080F989C:
+ movs r0, 0
+ strh r0, [r2, 0x26]
+_080F98A0:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80F9834
+
+ thumb_func_start sub_80F98A4
+sub_80F98A4: @ 80F98A4
+ push {lr}
+ lsls r0, 24
+ lsrs r1, r0, 24
+ ldr r0, _080F98D0
+ adds r3, r1, r0
+ ldrb r0, [r3]
+ cmp r0, 0xFF
+ beq _080F98CA
+ cmp r1, 0x3
+ bhi _080F98CA
+ ldr r2, _080F98D4
+ adds r1, r0, 0
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r2, 0x1C
+ adds r0, r2
+ ldr r1, _080F98D8
+ str r1, [r0]
+_080F98CA:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F98D0: .4byte gUnknown_020388C0
+_080F98D4: .4byte gSprites
+_080F98D8: .4byte SpriteCallbackDummy
+ thumb_func_end sub_80F98A4
+
+ thumb_func_start sub_80F98DC
+sub_80F98DC: @ 80F98DC
+ push {lr}
+ lsls r0, 24
+ lsrs r1, r0, 24
+ ldr r0, _080F9908
+ adds r3, r1, r0
+ ldrb r0, [r3]
+ cmp r0, 0xFF
+ beq _080F9902
+ cmp r1, 0x3
+ bhi _080F9902
+ ldr r2, _080F990C
+ adds r1, r0, 0
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r2, 0x1C
+ adds r0, r2
+ ldr r1, _080F9910
+ str r1, [r0]
+_080F9902:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F9908: .4byte gUnknown_020388C0
+_080F990C: .4byte gSprites
+_080F9910: .4byte sub_80F9834
+ thumb_func_end sub_80F98DC
+
+ thumb_func_start sub_80F9914
+sub_80F9914: @ 80F9914
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r1, r0, 24
+ ldr r0, _080F9964
+ adds r4, r1, r0
+ ldrb r0, [r4]
+ cmp r0, 0xFF
+ beq _080F995C
+ cmp r1, 0x3
+ bhi _080F995C
+ ldr r3, _080F9968
+ adds r1, r0, 0
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ movs r2, 0
+ strh r2, [r0, 0x24]
+ ldrb r1, [r4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ strh r2, [r0, 0x26]
+ ldrb r1, [r4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ strh r2, [r0, 0x30]
+ ldrb r1, [r4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ strh r2, [r0, 0x34]
+_080F995C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F9964: .4byte gUnknown_020388C0
+_080F9968: .4byte gSprites
+ thumb_func_end sub_80F9914
+
+ thumb_func_start sub_80F996C
+sub_80F996C: @ 80F996C
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r4, 0
+ bl sub_80F98A4
+ adds r0, r4, 0
+ bl sub_80F9914
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80F996C
+
+ thumb_func_start sub_80F9988
+sub_80F9988: @ 80F9988
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r1, 24
+ lsrs r3, r1, 24
+ ldr r0, _080F99C4
+ adds r1, r2, r0
+ ldrb r0, [r1]
+ cmp r0, 0xFF
+ beq _080F99BE
+ cmp r2, 0x3
+ bhi _080F99BE
+ ldr r2, _080F99C8
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ movs r0, 0x3
+ adds r2, r3, 0
+ ands r2, r0
+ lsls r2, 2
+ ldrb r3, [r1, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r3
+ orrs r0, r2
+ strb r0, [r1, 0x5]
+_080F99BE:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F99C4: .4byte gUnknown_020388C0
+_080F99C8: .4byte gSprites
+ thumb_func_end sub_80F9988
+
+ thumb_func_start sub_80F99CC
+sub_80F99CC: @ 80F99CC
+ push {lr}
+ sub sp, 0x4
+ bl ScriptContext2_Enable
+ ldr r0, _080F9A04
+ movs r1, 0xA
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080F9A08
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ movs r2, 0
+ movs r0, 0x2
+ strh r0, [r1, 0x8]
+ subs r0, 0x3
+ str r2, [sp]
+ movs r1, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F9A04: .4byte sub_80F9A8C
+_080F9A08: .4byte gTasks
+ thumb_func_end sub_80F99CC
+
+ thumb_func_start sub_80F9A0C
+sub_80F9A0C: @ 80F9A0C
+ push {lr}
+ sub sp, 0x4
+ bl ScriptContext2_Enable
+ ldr r0, _080F9A44
+ movs r1, 0xA
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080F9A48
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ movs r2, 0
+ movs r0, 0x3
+ strh r0, [r1, 0x8]
+ subs r0, 0x4
+ str r2, [sp]
+ movs r1, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F9A44: .4byte sub_80F9A8C
+_080F9A48: .4byte gTasks
+ thumb_func_end sub_80F9A0C
+
+ thumb_func_start sub_80F9A4C
+sub_80F9A4C: @ 80F9A4C
+ push {lr}
+ sub sp, 0x4
+ bl ScriptContext2_Enable
+ ldr r0, _080F9A84
+ movs r1, 0xA
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080F9A88
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ movs r2, 0
+ movs r0, 0x7
+ strh r0, [r1, 0x8]
+ subs r0, 0x8
+ str r2, [sp]
+ movs r1, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F9A84: .4byte sub_80F9A8C
+_080F9A88: .4byte gTasks
+ thumb_func_end sub_80F9A4C
+
+ thumb_func_start sub_80F9A8C
+sub_80F9A8C: @ 80F9A8C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r2, _080F9AC4
+ ldrb r1, [r2, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080F9ABE
+ ldrb r0, [r2, 0x8]
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r2, 0x8]
+ ldr r1, _080F9AC8
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldrb r0, [r0, 0x8]
+ movs r1, 0
+ bl sub_806AFAC
+ adds r0, r4, 0
+ bl DestroyTask
+_080F9ABE:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F9AC4: .4byte gPaletteFade
+_080F9AC8: .4byte gTasks
+ thumb_func_end sub_80F9A8C
+
+ thumb_func_start sub_80F9ACC
+sub_80F9ACC: @ 80F9ACC
+ push {r4,r5,lr}
+ ldr r1, _080F9AEC
+ movs r2, 0x99
+ lsls r2, 2
+ adds r0, r1, r2
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ adds r4, r1, 0
+ cmp r0, 0x7
+ bls _080F9AE2
+ b _080F9BF6
+_080F9AE2:
+ lsls r0, 2
+ ldr r1, _080F9AF0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080F9AEC: .4byte 0x0201b000
+_080F9AF0: .4byte _080F9AF4
+ .align 2, 0
+_080F9AF4:
+ .4byte _080F9B14
+ .4byte _080F9B54
+ .4byte _080F9B5A
+ .4byte _080F9B6E
+ .4byte _080F9B98
+ .4byte _080F9B9E
+ .4byte _080F9BB0
+ .4byte _080F9BC8
+_080F9B14:
+ ldr r0, _080F9B3C
+ adds r5, r4, r0
+ movs r1, 0
+ ldrsh r3, [r5, r1]
+ ldr r0, _080F9B40
+ ldrb r0, [r0]
+ cmp r3, r0
+ bge _080F9B48
+ movs r2, 0x98
+ lsls r2, 2
+ adds r0, r4, r2
+ ldrb r0, [r0]
+ ldrb r1, [r5]
+ movs r2, 0x64
+ muls r2, r3
+ ldr r3, _080F9B44
+ adds r2, r3
+ bl sub_806D90C
+ b _080F9BF0
+ .align 2, 0
+_080F9B3C: .4byte 0x00000266
+_080F9B40: .4byte gPlayerPartyCount
+_080F9B44: .4byte gPlayerParty
+_080F9B48:
+ movs r0, 0
+ strh r0, [r5]
+ movs r0, 0x99
+ lsls r0, 2
+ adds r1, r4, r0
+ b _080F9BBC
+_080F9B54:
+ bl sub_806DA98
+ b _080F9BB4
+_080F9B5A:
+ movs r1, 0x98
+ lsls r1, 2
+ adds r0, r4, r1
+ ldrb r0, [r0]
+ bl sub_806DC34
+ movs r2, 0x99
+ lsls r2, 2
+ adds r1, r4, r2
+ b _080F9BBC
+_080F9B6E:
+ movs r1, 0x98
+ lsls r1, 2
+ adds r0, r4, r1
+ ldrb r0, [r0]
+ ldr r2, _080F9B94
+ adds r5, r4, r2
+ ldrb r1, [r5]
+ bl sub_806BD58
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080F9BF0
+ movs r0, 0
+ strh r0, [r5]
+ movs r0, 0x99
+ lsls r0, 2
+ adds r1, r4, r0
+ b _080F9BBC
+ .align 2, 0
+_080F9B94: .4byte 0x00000266
+_080F9B98:
+ bl sub_806E334
+ b _080F9BB4
+_080F9B9E:
+ bl sub_806E0C4
+ ldr r1, _080F9BAC
+ movs r0, 0x99
+ lsls r0, 2
+ adds r1, r0
+ b _080F9BBC
+ .align 2, 0
+_080F9BAC: .4byte 0x0201b000
+_080F9BB0:
+ bl sub_80F9C00
+_080F9BB4:
+ ldr r1, _080F9BC4
+ movs r2, 0x99
+ lsls r2, 2
+ adds r1, r2
+_080F9BBC:
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ b _080F9BF6
+ .align 2, 0
+_080F9BC4: .4byte 0x0201b000
+_080F9BC8:
+ ldr r0, _080F9BEC
+ adds r5, r4, r0
+ ldrb r0, [r5]
+ bl sub_806B58C
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080F9BF0
+ movs r1, 0
+ strh r1, [r5]
+ movs r2, 0x99
+ lsls r2, 2
+ adds r0, r4, r2
+ strh r1, [r0]
+ movs r0, 0x1
+ b _080F9BF8
+ .align 2, 0
+_080F9BEC: .4byte 0x00000266
+_080F9BF0:
+ ldrh r0, [r5]
+ adds r0, 0x1
+ strh r0, [r5]
+_080F9BF6:
+ movs r0, 0
+_080F9BF8:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80F9ACC
+
+ thumb_func_start sub_80F9C00
+sub_80F9C00: @ 80F9C00
+ push {r4,lr}
+ movs r4, 0
+ b _080F9C58
+_080F9C06:
+ movs r0, 0x64
+ muls r0, r4
+ ldr r1, _080F9C24
+ adds r0, r1
+ bl sub_80AE47C
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ bhi _080F9C52
+ lsls r0, 2
+ ldr r1, _080F9C28
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080F9C24: .4byte gPlayerParty
+_080F9C28: .4byte _080F9C2C
+ .align 2, 0
+_080F9C2C:
+ .4byte _080F9C40
+ .4byte _080F9C4A
+ .4byte _080F9C4A
+ .4byte _080F9C40
+ .4byte _080F9C40
+_080F9C40:
+ adds r0, r4, 0
+ movs r1, 0x7E
+ bl sub_806BC3C
+ b _080F9C52
+_080F9C4A:
+ adds r0, r4, 0
+ movs r1, 0x70
+ bl sub_806BC3C
+_080F9C52:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+_080F9C58:
+ ldr r0, _080F9C68
+ ldrb r0, [r0]
+ cmp r4, r0
+ bcc _080F9C06
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F9C68: .4byte gPlayerPartyCount
+ thumb_func_end sub_80F9C00
+
+ thumb_func_start sub_80F9C6C
+sub_80F9C6C: @ 80F9C6C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _080F9C94
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080F9CD8
+ adds r0, r4, 0
+ bl sub_806BD80
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x1
+ beq _080F9C98
+ cmp r0, 0x2
+ beq _080F9CC0
+ b _080F9CD8
+ .align 2, 0
+_080F9C94: .4byte gPaletteFade
+_080F9C98:
+ movs r0, 0x5
+ bl PlaySE
+ adds r0, r4, 0
+ bl sub_806CA38
+ ldr r1, _080F9CB8
+ strb r0, [r1]
+ ldr r2, _080F9CBC
+ ldrb r0, [r1]
+ strh r0, [r2]
+ adds r0, r4, 0
+ bl sub_8123138
+ b _080F9CD8
+ .align 2, 0
+_080F9CB8: .4byte gUnknown_02038694
+_080F9CBC: .4byte gUnknown_0202E8CC
+_080F9CC0:
+ movs r0, 0x5
+ bl PlaySE
+ ldr r1, _080F9CE0
+ movs r0, 0xFF
+ strb r0, [r1]
+ ldr r1, _080F9CE4
+ movs r0, 0xFF
+ strh r0, [r1]
+ adds r0, r4, 0
+ bl sub_8123138
+_080F9CD8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F9CE0: .4byte gUnknown_02038694
+_080F9CE4: .4byte gUnknown_0202E8CC
+ thumb_func_end sub_80F9C6C
+
+ thumb_func_start sub_80F9CE8
+sub_80F9CE8: @ 80F9CE8
+ push {r4,r5,lr}
+ ldr r1, _080F9D08
+ movs r2, 0x99
+ lsls r2, 2
+ adds r0, r1, r2
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ adds r4, r1, 0
+ cmp r0, 0x7
+ bls _080F9CFE
+ b _080F9E12
+_080F9CFE:
+ lsls r0, 2
+ ldr r1, _080F9D0C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080F9D08: .4byte 0x0201b000
+_080F9D0C: .4byte _080F9D10
+ .align 2, 0
+_080F9D10:
+ .4byte _080F9D30
+ .4byte _080F9D70
+ .4byte _080F9D76
+ .4byte _080F9D8A
+ .4byte _080F9DB4
+ .4byte _080F9DBA
+ .4byte _080F9DCC
+ .4byte _080F9DE4
+_080F9D30:
+ ldr r0, _080F9D58
+ adds r5, r4, r0
+ movs r1, 0
+ ldrsh r3, [r5, r1]
+ ldr r0, _080F9D5C
+ ldrb r0, [r0]
+ cmp r3, r0
+ bge _080F9D64
+ movs r2, 0x98
+ lsls r2, 2
+ adds r0, r4, r2
+ ldrb r0, [r0]
+ ldrb r1, [r5]
+ movs r2, 0x64
+ muls r2, r3
+ ldr r3, _080F9D60
+ adds r2, r3
+ bl sub_806D90C
+ b _080F9E0C
+ .align 2, 0
+_080F9D58: .4byte 0x00000266
+_080F9D5C: .4byte gPlayerPartyCount
+_080F9D60: .4byte gPlayerParty
+_080F9D64:
+ movs r0, 0
+ strh r0, [r5]
+ movs r0, 0x99
+ lsls r0, 2
+ adds r1, r4, r0
+ b _080F9DD8
+_080F9D70:
+ bl sub_806DA98
+ b _080F9DD0
+_080F9D76:
+ movs r1, 0x98
+ lsls r1, 2
+ adds r0, r4, r1
+ ldrb r0, [r0]
+ bl sub_806DC34
+ movs r2, 0x99
+ lsls r2, 2
+ adds r1, r4, r2
+ b _080F9DD8
+_080F9D8A:
+ movs r1, 0x98
+ lsls r1, 2
+ adds r0, r4, r1
+ ldrb r0, [r0]
+ ldr r2, _080F9DB0
+ adds r5, r4, r2
+ ldrb r1, [r5]
+ bl sub_806BD58
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080F9E0C
+ movs r0, 0
+ strh r0, [r5]
+ movs r0, 0x99
+ lsls r0, 2
+ adds r1, r4, r0
+ b _080F9DD8
+ .align 2, 0
+_080F9DB0: .4byte 0x00000266
+_080F9DB4:
+ bl sub_806E334
+ b _080F9DD0
+_080F9DBA:
+ bl sub_806E0C4
+ ldr r1, _080F9DC8
+ movs r0, 0x99
+ lsls r0, 2
+ adds r1, r0
+ b _080F9DD8
+ .align 2, 0
+_080F9DC8: .4byte 0x0201b000
+_080F9DCC:
+ bl sub_80F9E1C
+_080F9DD0:
+ ldr r1, _080F9DE0
+ movs r2, 0x99
+ lsls r2, 2
+ adds r1, r2
+_080F9DD8:
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ b _080F9E12
+ .align 2, 0
+_080F9DE0: .4byte 0x0201b000
+_080F9DE4:
+ ldr r0, _080F9E08
+ adds r5, r4, r0
+ ldrb r0, [r5]
+ bl sub_806B58C
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080F9E0C
+ movs r1, 0
+ strh r1, [r5]
+ movs r2, 0x99
+ lsls r2, 2
+ adds r0, r4, r2
+ strh r1, [r0]
+ movs r0, 0x1
+ b _080F9E14
+ .align 2, 0
+_080F9E08: .4byte 0x00000266
+_080F9E0C:
+ ldrh r0, [r5]
+ adds r0, 0x1
+ strh r0, [r5]
+_080F9E12:
+ movs r0, 0
+_080F9E14:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80F9CE8
+
+ thumb_func_start sub_80F9E1C
+sub_80F9E1C: @ 80F9E1C
+ push {r4,lr}
+ movs r4, 0
+ b _080F9E52
+_080F9E22:
+ movs r0, 0x64
+ muls r0, r4
+ ldr r1, _080F9E40
+ adds r0, r1
+ bl sub_8040574
+ lsls r0, 24
+ cmp r0, 0
+ bne _080F9E44
+ adds r0, r4, 0
+ movs r1, 0x9A
+ bl sub_806BC3C
+ b _080F9E4C
+ .align 2, 0
+_080F9E40: .4byte gPlayerParty
+_080F9E44:
+ adds r0, r4, 0
+ movs r1, 0x8C
+ bl sub_806BC3C
+_080F9E4C:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+_080F9E52:
+ ldr r0, _080F9E60
+ ldrb r0, [r0]
+ cmp r4, r0
+ bcc _080F9E22
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F9E60: .4byte gPlayerPartyCount
+ thumb_func_end sub_80F9E1C
+
+ thumb_func_start sub_80F9E64
+sub_80F9E64: @ 80F9E64
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r0, _080F9E8C
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080F9EE2
+ adds r0, r6, 0
+ bl sub_806BD80
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x1
+ beq _080F9E90
+ cmp r0, 0x2
+ beq _080F9ED0
+ b _080F9EE2
+ .align 2, 0
+_080F9E8C: .4byte gPaletteFade
+_080F9E90:
+ movs r0, 0x5
+ bl PlaySE
+ ldr r4, _080F9EC4
+ adds r0, r6, 0
+ bl sub_806CA38
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4]
+ ldr r5, _080F9EC8
+ ldrh r1, [r4]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _080F9ECC
+ adds r0, r1
+ bl sub_8040574
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5]
+ adds r0, r6, 0
+ bl sub_8123138
+ b _080F9EE2
+ .align 2, 0
+_080F9EC4: .4byte gUnknown_0202E8CC
+_080F9EC8: .4byte gUnknown_0202E8CE
+_080F9ECC: .4byte gPlayerParty
+_080F9ED0:
+ movs r0, 0x5
+ bl PlaySE
+ ldr r1, _080F9EE8
+ movs r0, 0xFF
+ strh r0, [r1]
+ adds r0, r6, 0
+ bl sub_8123138
+_080F9EE2:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F9EE8: .4byte gUnknown_0202E8CC
+ thumb_func_end sub_80F9E64
+
+ thumb_func_start sub_80F9EEC
+sub_80F9EEC: @ 80F9EEC
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r0, _080F9F20
+ ldr r1, _080F9F24
+ ldrb r1, [r1]
+ ldr r2, _080F9F28
+ ldrb r2, [r2]
+ subs r2, 0x1
+ lsls r2, 24
+ lsrs r2, 24
+ ldr r3, _080F9F2C
+ movs r4, 0
+ str r4, [sp]
+ bl sub_809D9F0
+ ldr r1, _080F9F30
+ movs r0, 0x3
+ strb r0, [r1, 0x8]
+ ldr r1, _080F9F34
+ ldr r0, _080F9F38
+ str r0, [r1]
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F9F20: .4byte gPlayerParty
+_080F9F24: .4byte gUnknown_0202E8CC
+_080F9F28: .4byte gPlayerPartyCount
+_080F9F2C: .4byte c2_exit_to_overworld_2_switch
+_080F9F30: .4byte 0x02018000
+_080F9F34: .4byte gUnknown_0300485C
+_080F9F38: .4byte sub_8080990
+ thumb_func_end sub_80F9EEC
+
+ thumb_func_start sub_80F9F3C
+sub_80F9F3C: @ 80F9F3C
+ push {r4,r5,lr}
+ ldr r1, _080F9F78
+ movs r0, 0
+ strh r0, [r1]
+ movs r4, 0
+ adds r5, r1, 0
+_080F9F48:
+ ldr r0, _080F9F7C
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _080F9F80
+ adds r0, r1
+ adds r1, r4, 0
+ adds r1, 0xD
+ bl GetMonData
+ cmp r0, 0
+ beq _080F9F66
+ ldrh r0, [r5]
+ adds r0, 0x1
+ strh r0, [r5]
+_080F9F66:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x3
+ bls _080F9F48
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F9F78: .4byte gScriptResult
+_080F9F7C: .4byte gUnknown_0202E8CC
+_080F9F80: .4byte gPlayerParty
+ thumb_func_end sub_80F9F3C
+
+ thumb_func_start sub_80F9F84
+sub_80F9F84: @ 80F9F84
+ push {r4,r5,lr}
+ ldr r0, _080F9FC4
+ ldrh r1, [r0]
+ movs r0, 0x64
+ adds r5, r1, 0
+ muls r5, r0
+ ldr r0, _080F9FC8
+ adds r5, r0
+ ldr r0, _080F9FCC
+ ldrh r1, [r0]
+ adds r1, 0xD
+ adds r0, r5, 0
+ bl GetMonData
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ ldr r1, _080F9FD0
+ adds r0, r5, 0
+ bl GetMonNickname
+ ldr r0, _080F9FD4
+ movs r1, 0xD
+ muls r1, r4
+ ldr r2, _080F9FD8
+ adds r1, r2
+ bl StringCopy
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F9FC4: .4byte gUnknown_0202E8CC
+_080F9FC8: .4byte gPlayerParty
+_080F9FCC: .4byte gUnknown_0202E8CE
+_080F9FD0: .4byte gStringVar1
+_080F9FD4: .4byte gStringVar2
+_080F9FD8: .4byte gMoveNames
+ thumb_func_end sub_80F9F84
+
+ thumb_func_start sub_80F9FDC
+sub_80F9FDC: @ 80F9FDC
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x20
+ mov r8, r0
+ adds r5, r1, 0
+ adds r4, r2, 0
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r5, 0
+ adds r0, 0xD
+ str r0, [sp, 0x8]
+ mov r0, r8
+ ldr r1, [sp, 0x8]
+ bl GetMonData
+ mov r1, sp
+ adds r1, 0x2
+ str r1, [sp, 0x14]
+ strh r0, [r1]
+ adds r3, r4, 0
+ adds r3, 0xD
+ str r3, [sp, 0xC]
+ mov r0, r8
+ adds r1, r3, 0
+ bl GetMonData
+ mov r1, sp
+ strh r0, [r1]
+ adds r7, r5, 0
+ adds r7, 0x11
+ str r7, [sp, 0x10]
+ mov r0, r8
+ adds r1, r7, 0
+ bl GetMonData
+ mov r1, sp
+ adds r1, 0x5
+ str r1, [sp, 0x18]
+ strb r0, [r1]
+ adds r3, r4, 0
+ adds r3, 0x11
+ str r3, [sp, 0x1C]
+ mov r0, r8
+ adds r1, r3, 0
+ bl GetMonData
+ add r7, sp, 0x4
+ mov r10, r7
+ strb r0, [r7]
+ mov r0, r8
+ movs r1, 0x15
+ bl GetMonData
+ mov r6, sp
+ adds r6, 0x6
+ strb r0, [r6]
+ ldr r1, _080FA0D8
+ adds r0, r5, r1
+ ldrb r0, [r0]
+ mov r9, r0
+ ldrb r0, [r6]
+ adds r2, r0, 0
+ mov r3, r9
+ ands r2, r3
+ lsls r5, 1
+ asrs r2, r5
+ lsls r2, 24
+ lsrs r2, 24
+ adds r1, r4, r1
+ ldrb r3, [r1]
+ adds r1, r0, 0
+ ands r1, r3
+ lsls r4, 1
+ asrs r1, r4
+ lsls r1, 24
+ lsrs r1, 24
+ mov r7, r9
+ bics r0, r7
+ strb r0, [r6]
+ ldrb r0, [r6]
+ bics r0, r3
+ strb r0, [r6]
+ lsls r2, r4
+ lsls r1, r5
+ adds r2, r1
+ ldrb r0, [r6]
+ orrs r0, r2
+ strb r0, [r6]
+ mov r0, r8
+ ldr r1, [sp, 0x8]
+ mov r2, sp
+ bl SetMonData
+ mov r0, r8
+ ldr r1, [sp, 0xC]
+ ldr r2, [sp, 0x14]
+ bl SetMonData
+ mov r0, r8
+ ldr r1, [sp, 0x10]
+ mov r2, r10
+ bl SetMonData
+ mov r0, r8
+ ldr r1, [sp, 0x1C]
+ ldr r2, [sp, 0x18]
+ bl SetMonData
+ mov r0, r8
+ movs r1, 0x15
+ adds r2, r6, 0
+ bl SetMonData
+ add sp, 0x20
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FA0D8: .4byte gUnknown_08208238
+ thumb_func_end sub_80F9FDC
+
+ thumb_func_start sub_80FA0DC
+sub_80FA0DC: @ 80FA0DC
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ ldr r0, _080FA13C
+ mov r8, r0
+ ldrh r0, [r0]
+ movs r6, 0x64
+ muls r0, r6
+ ldr r5, _080FA140
+ adds r0, r5
+ ldr r4, _080FA144
+ ldrb r2, [r4]
+ movs r1, 0
+ bl SetMonMoveSlot
+ mov r1, r8
+ ldrh r0, [r1]
+ muls r0, r6
+ adds r0, r5
+ ldrb r1, [r4]
+ bl RemoveMonPPBonus
+ ldrh r4, [r4]
+ cmp r4, 0x2
+ bhi _080FA130
+_080FA10E:
+ ldr r0, _080FA13C
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _080FA140
+ adds r0, r1
+ lsls r1, r4, 24
+ lsrs r1, 24
+ adds r4, 0x1
+ lsls r2, r4, 24
+ lsrs r2, 24
+ bl sub_80F9FDC
+ lsls r4, 16
+ lsrs r4, 16
+ cmp r4, 0x2
+ bls _080FA10E
+_080FA130:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FA13C: .4byte gUnknown_0202E8CC
+_080FA140: .4byte gPlayerParty
+_080FA144: .4byte gUnknown_0202E8CE
+ thumb_func_end sub_80FA0DC
+
+ thumb_func_start sub_80FA148
+sub_80FA148: @ 80FA148
+ push {r4,lr}
+ ldr r0, _080FA170
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _080FA174
+ adds r0, r1
+ ldr r4, _080FA178
+ movs r1, 0
+ strh r1, [r4]
+ movs r1, 0x2D
+ bl GetMonData
+ cmp r0, 0
+ beq _080FA16A
+ movs r0, 0x1
+ strh r0, [r4]
+_080FA16A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FA170: .4byte gUnknown_0202E8CC
+_080FA174: .4byte gPlayerParty
+_080FA178: .4byte gScriptResult
+ thumb_func_end sub_80FA148
+
+ thumb_func_start sub_80FA17C
+sub_80FA17C: @ 80FA17C
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ movs r6, 0
+ ldr r7, _080FA1B4
+ ldr r0, _080FA1B8
+ adds r0, r7
+ mov r9, r0
+ movs r1, 0x1
+ mov r8, r1
+_080FA192:
+ movs r0, 0xA
+ bl sub_80EB72C
+ lsls r4, r6, 3
+ adds r5, r4, r7
+ ldr r2, _080FA1BC
+ adds r1, r5, r2
+ strh r0, [r1]
+ bl Random
+ mov r1, r8
+ ands r1, r0
+ cmp r1, 0
+ beq _080FA1C0
+ movs r0, 0xC
+ b _080FA1C2
+ .align 2, 0
+_080FA1B4: .4byte gSaveBlock1
+_080FA1B8: .4byte 0x00002dd4
+_080FA1BC: .4byte 0x00002dd8
+_080FA1C0:
+ movs r0, 0xD
+_080FA1C2:
+ bl sub_80EB72C
+ ldr r2, _080FA214
+ adds r1, r5, r2
+ strh r0, [r1]
+ bl Random
+ adds r3, r4, r7
+ mov r2, r8
+ ands r2, r0
+ ldr r5, _080FA218
+ adds r3, r5
+ lsls r2, 6
+ ldrb r0, [r3]
+ movs r5, 0x41
+ negs r5, r5
+ adds r1, r5, 0
+ ands r0, r1
+ orrs r0, r2
+ strb r0, [r3]
+ mov r1, r9
+ adds r0, r4, r1
+ bl sub_80FA740
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ cmp r6, 0x4
+ bls _080FA192
+ ldr r0, _080FA21C
+ movs r1, 0x5
+ movs r2, 0
+ bl sub_80FA46C
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FA214: .4byte 0x00002dda
+_080FA218: .4byte 0x00002dd5
+_080FA21C: .4byte gSaveBlock1 + 0x2DD4
+ thumb_func_end sub_80FA17C
+
+ thumb_func_start sub_80FA220
+sub_80FA220: @ 80FA220
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0
+ bne _080FA236
+ b _080FA34E
+_080FA236:
+ lsls r0, r1, 2
+ adds r0, r1
+ str r0, [sp]
+ movs r0, 0
+ mov r10, r0
+ movs r1, 0x7F
+ mov r9, r1
+ movs r2, 0x80
+ negs r2, r2
+ mov r8, r2
+_080FA24A:
+ ldr r2, [sp]
+ mov r4, r10
+ lsls r0, r4, 3
+ ldr r1, _080FA28C
+ adds r5, r0, r1
+ ldrb r6, [r5, 0x1]
+ movs r0, 0x40
+ ands r0, r6
+ cmp r0, 0
+ bne _080FA2A0
+ ldrb r4, [r5]
+ lsls r3, r4, 25
+ lsrs r1, r3, 25
+ lsls r0, r2, 16
+ lsrs r0, 16
+ cmp r1, r0
+ bcc _080FA290
+ adds r0, r1, 0
+ subs r0, r2
+ mov r2, r9
+ ands r0, r2
+ mov r1, r8
+ ands r1, r4
+ orrs r1, r0
+ strb r1, [r5]
+ movs r0, 0x7F
+ ands r1, r0
+ cmp r1, 0
+ bne _080FA336
+ movs r0, 0x40
+ orrs r0, r6
+ b _080FA334
+ .align 2, 0
+_080FA28C: .4byte gSaveBlock1 + 0x2DD4
+_080FA290:
+ lsrs r0, r3, 25
+ subs r2, r0
+ mov r0, r8
+ ands r0, r4
+ strb r0, [r5]
+ movs r0, 0x40
+ orrs r0, r6
+ strb r0, [r5, 0x1]
+_080FA2A0:
+ ldrb r7, [r5]
+ lsls r0, r7, 25
+ lsrs r0, 25
+ adds r4, r0, r2
+ ldrh r0, [r5]
+ lsls r6, r0, 18
+ lsls r0, r4, 16
+ lsrs r0, 16
+ lsrs r1, r6, 25
+ cmp r0, r1
+ bls _080FA310
+ adds r0, r4, 0
+ bl __umodsi3
+ adds r3, r0, 0
+ lsrs r1, r6, 25
+ adds r0, r4, 0
+ str r3, [sp, 0x4]
+ bl __udivsi3
+ adds r4, r0, 0
+ movs r0, 0x1
+ eors r4, r0
+ ands r4, r0
+ lsls r2, r4, 6
+ ldrb r0, [r5, 0x1]
+ movs r4, 0x41
+ negs r4, r4
+ adds r1, r4, 0
+ ands r0, r1
+ orrs r0, r2
+ strb r0, [r5, 0x1]
+ movs r1, 0x40
+ ands r0, r1
+ ldr r3, [sp, 0x4]
+ cmp r0, 0
+ beq _080FA2FA
+ adds r1, r3, 0
+ mov r0, r9
+ ands r1, r0
+ mov r0, r8
+ ands r0, r7
+ orrs r0, r1
+ strb r0, [r5]
+ b _080FA336
+_080FA2FA:
+ ldrh r0, [r5]
+ lsls r0, 18
+ lsrs r0, 25
+ subs r0, r3
+ mov r1, r9
+ ands r0, r1
+ mov r1, r8
+ ands r1, r7
+ orrs r1, r0
+ strb r1, [r5]
+ b _080FA336
+_080FA310:
+ mov r2, r9
+ ands r4, r2
+ mov r0, r8
+ ands r0, r7
+ orrs r0, r4
+ strb r0, [r5]
+ lsls r0, 25
+ ldrh r1, [r5]
+ lsls r1, 18
+ lsrs r0, 25
+ lsrs r1, 25
+ cmp r0, r1
+ bne _080FA336
+ ldrb r0, [r5, 0x1]
+ movs r4, 0x41
+ negs r4, r4
+ adds r1, r4, 0
+ ands r0, r1
+_080FA334:
+ strb r0, [r5, 0x1]
+_080FA336:
+ mov r0, r10
+ adds r0, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+ mov r10, r0
+ cmp r0, 0x4
+ bls _080FA24A
+ ldr r0, _080FA360
+ movs r1, 0x5
+ movs r2, 0
+ bl sub_80FA46C
+_080FA34E:
+ add sp, 0x8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FA360: .4byte gSaveBlock1 + 0x2DD4
+ thumb_func_end sub_80FA220
+
+ thumb_func_start sub_80FA364
+sub_80FA364: @ 80FA364
+ push {r4-r7,lr}
+ sub sp, 0x8
+ adds r4, r0, 0
+ movs r0, 0
+ movs r1, 0
+ str r0, [sp]
+ str r1, [sp, 0x4]
+ adds r0, r4, 0
+ bl sub_80FA7C8
+ lsls r0, 24
+ cmp r0, 0
+ bne _080FA462
+ ldr r5, _080FA3B4
+ adds r0, r5, 0
+ bl FlagGet
+ lsls r0, 24
+ cmp r0, 0
+ bne _080FA3C8
+ adds r0, r5, 0
+ bl FlagSet
+ ldr r0, _080FA3B8
+ bl FlagGet
+ lsls r0, 24
+ cmp r0, 0
+ bne _080FA3C8
+ ldr r1, _080FA3BC
+ ldrh r2, [r4]
+ ldr r3, _080FA3C0
+ adds r0, r1, r3
+ strh r2, [r0]
+ ldrh r0, [r4, 0x2]
+ ldr r2, _080FA3C4
+ adds r1, r2
+ strh r0, [r1]
+ movs r0, 0x1
+ b _080FA464
+ .align 2, 0
+_080FA3B4: .4byte 0x00000833
+_080FA3B8: .4byte 0x00000834
+_080FA3BC: .4byte gSaveBlock1
+_080FA3C0: .4byte 0x00002dd8
+_080FA3C4: .4byte 0x00002dda
+_080FA3C8:
+ ldrh r1, [r4, 0x2]
+ lsls r1, 16
+ ldrh r0, [r4]
+ orrs r0, r1
+ str r0, [sp, 0x4]
+ movs r1, 0x80
+ lsls r1, 7
+ ldr r0, [sp]
+ orrs r0, r1
+ str r0, [sp]
+ mov r0, sp
+ bl sub_80FA740
+ movs r6, 0
+_080FA3E4:
+ lsls r4, r6, 3
+ ldr r5, _080FA444
+ adds r1, r4, r5
+ mov r0, sp
+ movs r2, 0
+ bl atk90_changetypestoenemyattacktype
+ lsls r0, 24
+ adds r7, r4, 0
+ cmp r0, 0
+ beq _080FA450
+ movs r3, 0x4
+ ldr r0, _080FA448
+ adds r0, r5
+ mov r12, r0
+ cmp r3, r6
+ bls _080FA428
+ mov r5, r12
+ ldr r4, _080FA44C
+_080FA40A:
+ lsls r2, r3, 3
+ adds r2, r5
+ adds r2, r4
+ subs r3, 0x1
+ lsls r0, r3, 3
+ adds r0, r5
+ adds r0, r4
+ ldr r1, [r0, 0x4]
+ ldr r0, [r0]
+ str r0, [r2]
+ str r1, [r2, 0x4]
+ lsls r3, 16
+ lsrs r3, 16
+ cmp r3, r6
+ bhi _080FA40A
+_080FA428:
+ mov r3, r12
+ adds r2, r7, r3
+ ldr r0, _080FA44C
+ adds r2, r0
+ ldr r0, [sp]
+ ldr r1, [sp, 0x4]
+ str r0, [r2]
+ str r1, [r2, 0x4]
+ movs r0, 0
+ cmp r6, 0
+ bne _080FA464
+ movs r0, 0x1
+ b _080FA464
+ .align 2, 0
+_080FA444: .4byte gSaveBlock1 + 0x2DD4
+_080FA448: .4byte 0xffffd22c
+_080FA44C: .4byte 0x00002dd4
+_080FA450:
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ cmp r6, 0x4
+ bls _080FA3E4
+ ldr r0, [sp]
+ ldr r1, [sp, 0x4]
+ str r0, [r5, 0x20]
+ str r1, [r5, 0x24]
+_080FA462:
+ movs r0, 0
+_080FA464:
+ add sp, 0x8
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80FA364
+
+ thumb_func_start sub_80FA46C
+sub_80FA46C: @ 80FA46C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ mov r9, r0
+ lsls r1, 16
+ lsrs r7, r1, 16
+ lsls r2, 24
+ lsrs r2, 24
+ mov r10, r2
+ movs r2, 0
+ cmp r2, r7
+ bcs _080FA4D4
+_080FA488:
+ adds r1, r2, 0x1
+ lsls r0, r1, 16
+ lsrs r5, r0, 16
+ mov r8, r1
+ cmp r5, r7
+ bcs _080FA4CA
+ lsls r0, r2, 3
+ mov r1, r9
+ adds r6, r1, r0
+_080FA49A:
+ lsls r0, r5, 3
+ mov r1, r9
+ adds r4, r1, r0
+ adds r0, r4, 0
+ adds r1, r6, 0
+ mov r2, r10
+ bl atk90_changetypestoenemyattacktype
+ lsls r0, 24
+ cmp r0, 0
+ beq _080FA4C0
+ ldr r2, [r4]
+ ldr r3, [r4, 0x4]
+ ldr r0, [r6]
+ ldr r1, [r6, 0x4]
+ str r0, [r4]
+ str r1, [r4, 0x4]
+ str r2, [r6]
+ str r3, [r6, 0x4]
+_080FA4C0:
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, r7
+ bcc _080FA49A
+_080FA4CA:
+ mov r1, r8
+ lsls r0, r1, 16
+ lsrs r2, r0, 16
+ cmp r2, r7
+ bcc _080FA488
+_080FA4D4:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80FA46C
+
+ thumb_func_start sub_80FA4E4
+sub_80FA4E4: @ 80FA4E4
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ adds r6, r0, 0
+ adds r5, r1, 0
+ bl GetLinkPlayerCount
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ movs r4, 0
+ cmp r4, r8
+ bcs _080FA520
+_080FA500:
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ ldr r1, _080FA554
+ adds r0, r1
+ adds r1, r4, 0
+ muls r1, r5
+ adds r1, r6, r1
+ movs r2, 0x28
+ bl memcpy
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, r8
+ bcc _080FA500
+_080FA520:
+ ldr r5, _080FA554
+ movs r0, 0x80
+ lsls r0, 1
+ adds r3, r5, r0
+ movs r7, 0
+ movs r4, 0
+ cmp r4, r8
+ bcs _080FA588
+_080FA530:
+ movs r6, 0
+_080FA532:
+ adds r0, r5, 0
+ adds r1, r7, 0
+ str r3, [sp]
+ bl sub_80FA828
+ lsls r0, 16
+ asrs r0, 16
+ ldr r3, [sp]
+ cmp r0, 0
+ bge _080FA558
+ ldr r0, [r5]
+ ldr r1, [r5, 0x4]
+ stm r3!, {r0,r1}
+ adds r0, r7, 0x1
+ lsls r0, 16
+ lsrs r7, r0, 16
+ b _080FA572
+ .align 2, 0
+_080FA554: .4byte 0x02007800
+_080FA558:
+ lsls r1, r0, 3
+ ldr r0, _080FA5B4
+ adds r2, r1, r0
+ ldrb r1, [r2]
+ lsls r1, 25
+ ldrb r0, [r5]
+ lsls r0, 25
+ cmp r1, r0
+ bcs _080FA572
+ ldr r0, [r5]
+ ldr r1, [r5, 0x4]
+ str r0, [r2]
+ str r1, [r2, 0x4]
+_080FA572:
+ adds r5, 0x8
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ cmp r6, 0x4
+ bls _080FA532
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, r8
+ bcc _080FA530
+_080FA588:
+ ldr r4, _080FA5B4
+ adds r0, r4, 0
+ adds r1, r7, 0
+ movs r2, 0x2
+ bl sub_80FA46C
+ adds r5, r4, 0
+ ldr r3, _080FA5B8
+ movs r4, 0
+_080FA59A:
+ ldm r5!, {r0,r1}
+ stm r3!, {r0,r1}
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x4
+ bls _080FA59A
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FA5B4: .4byte 0x02007900
+_080FA5B8: .4byte gSaveBlock1 + 0x2DD4
+ thumb_func_end sub_80FA4E4
+
+ thumb_func_start sub_80FA5BC
+sub_80FA5BC: @ 80FA5BC
+ push {lr}
+ ldr r0, _080FA5D8
+ ldrh r1, [r0]
+ lsls r1, 3
+ ldr r0, _080FA5DC
+ adds r1, r0
+ ldr r0, _080FA5E0
+ adds r1, 0x4
+ movs r2, 0x2
+ movs r3, 0x1
+ bl ConvertEasyChatWordsToString
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FA5D8: .4byte gUnknown_0202E8CC
+_080FA5DC: .4byte gSaveBlock1 + 0x2DD4
+_080FA5E0: .4byte gStringVar1
+ thumb_func_end sub_80FA5BC
+
+ thumb_func_start sub_80FA5E4
+sub_80FA5E4: @ 80FA5E4
+ push {r4,lr}
+ movs r4, 0
+ ldr r3, _080FA630
+ ldr r1, _080FA634
+ adds r0, r3, r1
+ ldrb r1, [r0]
+ lsls r1, 25
+ lsrs r1, 25
+ ldr r2, _080FA638
+ adds r0, r3, r2
+ ldrb r0, [r0]
+ lsls r0, 25
+ lsrs r0, 25
+ subs r1, r0
+ cmp r1, 0x1
+ bgt _080FA626
+ ldr r1, _080FA63C
+ adds r0, r3, r1
+ ldrb r1, [r0]
+ movs r2, 0x40
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _080FA626
+ ldr r1, _080FA640
+ adds r0, r3, r1
+ ldrb r1, [r0]
+ adds r0, r2, 0
+ ands r0, r1
+ lsls r0, 24
+ lsrs r0, 24
+ negs r0, r0
+ lsrs r4, r0, 31
+_080FA626:
+ ldr r0, _080FA644
+ strh r4, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FA630: .4byte gSaveBlock1
+_080FA634: .4byte 0x00002dd4
+_080FA638: .4byte 0x00002ddc
+_080FA63C: .4byte 0x00002dd5
+_080FA640: .4byte 0x00002ddd
+_080FA644: .4byte gScriptResult
+ thumb_func_end sub_80FA5E4
+
+ thumb_func_start sub_80FA648
+sub_80FA648: @ 80FA648
+ ldr r2, _080FA664
+ ldr r0, _080FA668
+ ldr r3, _080FA66C
+ adds r1, r0, r3
+ adds r3, 0x2
+ adds r0, r3
+ ldrh r0, [r0]
+ ldrh r1, [r1]
+ adds r0, r1
+ movs r1, 0x7
+ ands r0, r1
+ strh r0, [r2]
+ bx lr
+ .align 2, 0
+_080FA664: .4byte gScriptResult
+_080FA668: .4byte gSaveBlock1
+_080FA66C: .4byte 0x00002dd8
+ thumb_func_end sub_80FA648
+
+ thumb_func_start atk90_changetypestoenemyattacktype
+atk90_changetypestoenemyattacktype: @ 80FA670
+ push {r4,r5,lr}
+ adds r3, r0, 0
+ adds r5, r1, 0
+ lsls r2, 24
+ lsrs r2, 24
+ adds r0, r2, 0
+ cmp r2, 0x1
+ beq _080FA6B6
+ cmp r2, 0x1
+ bgt _080FA68A
+ cmp r2, 0
+ beq _080FA690
+ b _080FA732
+_080FA68A:
+ cmp r0, 0x2
+ beq _080FA6E2
+ b _080FA732
+_080FA690:
+ ldrb r0, [r3]
+ lsls r1, r0, 25
+ ldrb r0, [r5]
+ lsls r0, 25
+ cmp r1, r0
+ bhi _080FA72E
+ cmp r1, r0
+ bcc _080FA6DE
+ ldrh r0, [r3]
+ lsls r3, r0, 18
+ ldrh r0, [r5]
+ lsls r2, r0, 18
+ lsrs r1, r3, 25
+ lsrs r0, r2, 25
+ cmp r1, r0
+ bhi _080FA72E
+ lsrs r1, r3, 25
+ lsrs r0, r2, 25
+ b _080FA6DA
+_080FA6B6:
+ ldrh r0, [r3]
+ lsls r4, r0, 18
+ ldrh r0, [r5]
+ lsls r2, r0, 18
+ lsrs r1, r4, 25
+ lsrs r0, r2, 25
+ cmp r1, r0
+ bhi _080FA72E
+ lsrs r1, r4, 25
+ lsrs r0, r2, 25
+ cmp r1, r0
+ bcc _080FA6DE
+ ldrb r0, [r3]
+ lsls r1, r0, 25
+ ldrb r0, [r5]
+ lsls r0, 25
+ cmp r1, r0
+ bhi _080FA72E
+_080FA6DA:
+ cmp r1, r0
+ bcs _080FA732
+_080FA6DE:
+ movs r0, 0
+ b _080FA73A
+_080FA6E2:
+ ldrb r0, [r3]
+ lsls r1, r0, 25
+ ldrb r0, [r5]
+ lsls r0, 25
+ cmp r1, r0
+ bhi _080FA72E
+ cmp r1, r0
+ bcc _080FA6DE
+ ldrh r0, [r3]
+ lsls r4, r0, 18
+ ldrh r0, [r5]
+ lsls r2, r0, 18
+ lsrs r1, r4, 25
+ lsrs r0, r2, 25
+ cmp r1, r0
+ bhi _080FA72E
+ lsrs r1, r4, 25
+ lsrs r0, r2, 25
+ cmp r1, r0
+ bcc _080FA6DE
+ ldrh r1, [r3, 0x2]
+ ldrh r0, [r5, 0x2]
+ cmp r1, r0
+ bhi _080FA72E
+ cmp r1, r0
+ bcc _080FA6DE
+ ldrh r1, [r3, 0x4]
+ ldrh r0, [r5, 0x4]
+ cmp r1, r0
+ bhi _080FA72E
+ cmp r1, r0
+ bcc _080FA6DE
+ ldrh r1, [r3, 0x6]
+ ldrh r0, [r5, 0x6]
+ cmp r1, r0
+ bhi _080FA72E
+ cmp r1, r0
+ bcc _080FA6DE
+_080FA72E:
+ movs r0, 0x1
+ b _080FA73A
+_080FA732:
+ bl Random
+ movs r1, 0x1
+ ands r0, r1
+_080FA73A:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end atk90_changetypestoenemyattacktype
+
+ thumb_func_start sub_80FA740
+sub_80FA740: @ 80FA740
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x62
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x32
+ bls _080FA782
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x62
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x50
+ bls _080FA782
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x62
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r4, r0, 16
+_080FA782:
+ adds r1, r4, 0
+ adds r1, 0x1E
+ movs r0, 0x7F
+ ands r1, r0
+ lsls r1, 7
+ ldrh r2, [r5]
+ ldr r0, _080FA7C4
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r5]
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ adds r1, r4, 0x1
+ bl __modsi3
+ adds r0, 0x1E
+ movs r1, 0x7F
+ ands r0, r1
+ ldrb r2, [r5]
+ movs r1, 0x80
+ negs r1, r1
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r5]
+ bl Random
+ strh r0, [r5, 0x2]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FA7C4: .4byte 0xffffc07f
+ thumb_func_end sub_80FA740
+
+ thumb_func_start sub_80FA7C8
+sub_80FA7C8: @ 80FA7C8
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ movs r4, 0
+_080FA7CE:
+ lsls r1, r4, 3
+ ldr r0, _080FA7E4
+ adds r1, r0
+ adds r0, r5, 0
+ bl sub_80FA7FC
+ lsls r0, 24
+ cmp r0, 0
+ beq _080FA7E8
+ movs r0, 0x1
+ b _080FA7F4
+ .align 2, 0
+_080FA7E4: .4byte gSaveBlock1 + 0x2DD8
+_080FA7E8:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x4
+ bls _080FA7CE
+ movs r0, 0
+_080FA7F4:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80FA7C8
+
+ thumb_func_start sub_80FA7FC
+sub_80FA7FC: @ 80FA7FC
+ push {r4,lr}
+ adds r3, r0, 0
+ adds r2, r1, 0
+ movs r4, 0
+_080FA804:
+ ldrh r1, [r3]
+ ldrh r0, [r2]
+ adds r2, 0x2
+ adds r3, 0x2
+ cmp r1, r0
+ beq _080FA814
+ movs r0, 0
+ b _080FA820
+_080FA814:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x1
+ bls _080FA804
+ movs r0, 0x1
+_080FA820:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80FA7FC
+
+ thumb_func_start sub_80FA828
+sub_80FA828: @ 80FA828
+ push {r4-r7,lr}
+ adds r7, r0, 0
+ lsls r1, 16
+ lsrs r5, r1, 16
+ ldr r6, _080FA84C
+ movs r4, 0
+ cmp r4, r5
+ bge _080FA862
+_080FA838:
+ adds r1, r6, 0x4
+ adds r0, r7, 0x4
+ bl sub_80FA7FC
+ lsls r0, 24
+ cmp r0, 0
+ beq _080FA850
+ lsls r0, r4, 16
+ asrs r0, 16
+ b _080FA866
+ .align 2, 0
+_080FA84C: .4byte 0x02007900
+_080FA850:
+ adds r6, 0x8
+ lsls r0, r4, 16
+ movs r1, 0x80
+ lsls r1, 9
+ adds r0, r1
+ lsrs r4, r0, 16
+ asrs r0, 16
+ cmp r0, r5
+ blt _080FA838
+_080FA862:
+ movs r0, 0x1
+ negs r0, r0
+_080FA866:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80FA828
+
+ thumb_func_start sub_80FA86C
+sub_80FA86C: @ 80FA86C
+ push {r4,lr}
+ lsls r0, 16
+ lsrs r4, r0, 16
+ lsls r1, 16
+ lsrs r1, 16
+ movs r3, 0
+ ldr r2, _080FA890
+_080FA87A:
+ movs r0, 0
+ ldrsb r0, [r2, r0]
+ cmp r0, r4
+ bne _080FA894
+ movs r0, 0x1
+ ldrsb r0, [r2, r0]
+ cmp r0, r1
+ bne _080FA894
+ adds r0, r3, 0x1
+ b _080FA89E
+ .align 2, 0
+_080FA890: .4byte gUnknown_083E5A20
+_080FA894:
+ adds r2, 0x8
+ adds r3, 0x1
+ cmp r3, 0x15
+ bls _080FA87A
+ movs r0, 0
+_080FA89E:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80FA86C
+
+ thumb_func_start unref_sub_80FA8A4
+unref_sub_80FA8A4: @ 80FA8A4
+ push {lr}
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r1, 16
+ lsrs r1, 16
+ bl sub_80FA86C
+ cmp r0, 0
+ beq _080FA8C4
+ lsls r0, 3
+ ldr r1, _080FA8C0
+ adds r0, r1
+ b _080FA8C6
+ .align 2, 0
+_080FA8C0: .4byte gUnknown_083E5A18
+_080FA8C4:
+ movs r0, 0
+_080FA8C6:
+ pop {r1}
+ bx r1
+ thumb_func_end unref_sub_80FA8A4
+
+ thumb_func_start sub_80FA8CC
+sub_80FA8CC: @ 80FA8CC
+ push {lr}
+ cmp r0, 0
+ beq _080FA8E4
+ cmp r0, 0x16
+ bhi _080FA8E4
+ lsls r0, 3
+ ldr r1, _080FA8E0
+ adds r0, r1
+ b _080FA8E6
+ .align 2, 0
+_080FA8E0: .4byte gUnknown_083E5A18
+_080FA8E4:
+ movs r0, 0
+_080FA8E6:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80FA8CC
+
+ thumb_func_start sub_80FA8EC
+sub_80FA8EC: @ 80FA8EC
+ push {lr}
+ lsls r1, 24
+ lsrs r1, 24
+ bl sub_80FA904
+_080FA8F6:
+ bl sub_80FA940
+ lsls r0, 24
+ cmp r0, 0
+ bne _080FA8F6
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80FA8EC
+
+ thumb_func_start sub_80FA904
+sub_80FA904: @ 80FA904
+ push {r4,lr}
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r3, _080FA928
+ str r0, [r3]
+ movs r2, 0x79
+ adds r2, r0
+ mov r12, r2
+ movs r2, 0
+ mov r4, r12
+ strb r2, [r4]
+ adds r0, 0x78
+ strb r1, [r0]
+ ldr r3, [r3]
+ cmp r1, 0
+ bne _080FA930
+ ldr r0, _080FA92C
+ b _080FA932
+ .align 2, 0
+_080FA928: .4byte gUnknown_020388CC
+_080FA92C: .4byte sub_80FAB78
+_080FA930:
+ ldr r0, _080FA93C
+_080FA932:
+ str r0, [r3, 0x18]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FA93C: .4byte sub_80FAD04
+ thumb_func_end sub_80FA904
+
+ thumb_func_start sub_80FA940
+sub_80FA940: @ 80FA940
+ push {r4,r5,lr}
+ sub sp, 0xC
+ ldr r0, _080FA95C
+ ldr r0, [r0]
+ adds r0, 0x79
+ ldrb r0, [r0]
+ cmp r0, 0x7
+ bls _080FA952
+ b _080FAAE2
+_080FA952:
+ lsls r0, 2
+ ldr r1, _080FA960
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080FA95C: .4byte gUnknown_020388CC
+_080FA960: .4byte _080FA964
+ .align 2, 0
+_080FA964:
+ .4byte _080FA984
+ .4byte _080FA998
+ .4byte _080FA9AC
+ .4byte _080FA9BC
+ .4byte _080FA9D8
+ .4byte _080FA9F4
+ .4byte _080FAA38
+ .4byte _080FAAB4
+_080FA984:
+ ldr r0, _080FA990
+ ldr r1, _080FA994
+ bl LZ77UnCompVram
+ b _080FAAF4
+ .align 2, 0
+_080FA990: .4byte gUnknown_083E5DA0
+_080FA994: .4byte 0x06008000
+_080FA998:
+ ldr r0, _080FA9A4
+ ldr r1, _080FA9A8
+ bl LZ77UnCompVram
+ b _080FAAF4
+ .align 2, 0
+_080FA9A4: .4byte gUnknown_083E6B04
+_080FA9A8: .4byte 0x0600e000
+_080FA9AC:
+ ldr r0, _080FA9B8
+ movs r1, 0x70
+ movs r2, 0x60
+ bl LoadPalette
+ b _080FAAF4
+ .align 2, 0
+_080FA9B8: .4byte gUnknown_083E5D60
+_080FA9BC:
+ ldr r0, _080FA9D0
+ ldr r1, _080FA9D4
+ ldr r1, [r1]
+ movs r2, 0xC0
+ lsls r2, 1
+ adds r1, r2
+ bl LZ77UnCompWram
+ b _080FAAF4
+ .align 2, 0
+_080FA9D0: .4byte gUnknown_083E5AF0
+_080FA9D4: .4byte gUnknown_020388CC
+_080FA9D8:
+ ldr r0, _080FA9EC
+ ldr r1, _080FA9F0
+ ldr r1, [r1]
+ movs r3, 0xA0
+ lsls r3, 2
+ adds r1, r3
+ bl LZ77UnCompWram
+ b _080FAAF4
+ .align 2, 0
+_080FA9EC: .4byte gUnknown_083E5B34
+_080FA9F0: .4byte gUnknown_020388CC
+_080FA9F4:
+ bl sub_80FB32C
+ ldr r4, _080FAA34
+ ldr r2, [r4]
+ adds r0, r2, 0
+ adds r0, 0x54
+ ldrh r1, [r0]
+ adds r0, 0x20
+ strh r1, [r0]
+ subs r0, 0x1E
+ ldrh r0, [r0]
+ adds r1, r2, 0
+ adds r1, 0x76
+ strh r0, [r1]
+ ldrh r0, [r2, 0x14]
+ bl sub_80FB758
+ ldr r1, [r4]
+ strb r0, [r1, 0x16]
+ ldr r0, [r4]
+ ldrh r0, [r0, 0x14]
+ bl sub_80FB9C0
+ adds r1, r0, 0
+ ldr r0, [r4]
+ strh r1, [r0, 0x14]
+ ldrh r1, [r0, 0x14]
+ movs r2, 0x10
+ bl sub_80FBFB4
+ b _080FAAF4
+ .align 2, 0
+_080FAA34: .4byte gUnknown_020388CC
+_080FAA38:
+ ldr r0, _080FAA60
+ ldr r4, [r0]
+ adds r0, r4, 0
+ adds r0, 0x78
+ ldrb r1, [r0]
+ cmp r1, 0
+ bne _080FAA64
+ movs r0, 0x80
+ lsls r0, 1
+ str r0, [sp]
+ str r0, [sp, 0x4]
+ str r1, [sp, 0x8]
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl sub_80FB170
+ b _080FAAF4
+ .align 2, 0
+_080FAA60: .4byte gUnknown_020388CC
+_080FAA64:
+ adds r1, r4, 0
+ adds r1, 0x54
+ ldrh r0, [r1]
+ lsls r0, 3
+ subs r0, 0x34
+ adds r2, r4, 0
+ adds r2, 0x5C
+ movs r3, 0
+ strh r0, [r2]
+ movs r5, 0x56
+ adds r5, r4
+ mov r12, r5
+ ldrh r0, [r5]
+ lsls r0, 3
+ subs r0, 0x44
+ adds r5, r4, 0
+ adds r5, 0x5E
+ strh r0, [r5]
+ ldrh r1, [r1]
+ adds r0, r4, 0
+ adds r0, 0x64
+ strh r1, [r0]
+ mov r0, r12
+ ldrh r1, [r0]
+ adds r0, r4, 0
+ adds r0, 0x66
+ strh r1, [r0]
+ movs r1, 0
+ ldrsh r0, [r2, r1]
+ movs r2, 0
+ ldrsh r1, [r5, r2]
+ movs r2, 0x80
+ str r2, [sp]
+ str r2, [sp, 0x4]
+ str r3, [sp, 0x8]
+ movs r2, 0x38
+ movs r3, 0x48
+ bl sub_80FB170
+ b _080FAAF4
+_080FAAB4:
+ bl sub_80FBA18
+ bl sub_80FB260
+ ldr r2, _080FAAE8
+ ldr r0, [r2]
+ movs r1, 0
+ str r1, [r0, 0x1C]
+ str r1, [r0, 0x20]
+ adds r0, 0x7A
+ strb r1, [r0]
+ ldr r0, [r2]
+ adds r0, 0x7E
+ strb r1, [r0]
+ ldr r1, _080FAAEC
+ ldr r3, _080FAAF0
+ adds r0, r3, 0
+ strh r0, [r1]
+ ldr r1, [r2]
+ adds r1, 0x79
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+_080FAAE2:
+ movs r0, 0
+ b _080FAB02
+ .align 2, 0
+_080FAAE8: .4byte gUnknown_020388CC
+_080FAAEC: .4byte REG_BG2CNT
+_080FAAF0: .4byte 0x0000bc8a
+_080FAAF4:
+ ldr r0, _080FAB0C
+ ldr r1, [r0]
+ adds r1, 0x79
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ movs r0, 0x1
+_080FAB02:
+ add sp, 0xC
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080FAB0C: .4byte gUnknown_020388CC
+ thumb_func_end sub_80FA940
+
+ thumb_func_start sub_80FAB10
+sub_80FAB10: @ 80FAB10
+ push {r4,lr}
+ ldr r4, _080FAB5C
+ ldr r0, [r4]
+ ldr r0, [r0, 0x1C]
+ cmp r0, 0
+ beq _080FAB34
+ bl DestroySprite
+ ldr r0, [r4]
+ adds r0, 0x58
+ ldrh r0, [r0]
+ bl FreeSpriteTilesByTag
+ ldr r0, [r4]
+ adds r0, 0x5A
+ ldrh r0, [r0]
+ bl FreeSpritePaletteByTag
+_080FAB34:
+ ldr r0, [r4]
+ ldr r0, [r0, 0x20]
+ cmp r0, 0
+ beq _080FAB54
+ bl DestroySprite
+ ldr r0, [r4]
+ adds r0, 0x70
+ ldrh r0, [r0]
+ bl FreeSpriteTilesByTag
+ ldr r0, [r4]
+ adds r0, 0x72
+ ldrh r0, [r0]
+ bl FreeSpritePaletteByTag
+_080FAB54:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FAB5C: .4byte gUnknown_020388CC
+ thumb_func_end sub_80FAB10
+
+ thumb_func_start sub_80FAB60
+sub_80FAB60: @ 80FAB60
+ push {lr}
+ ldr r0, _080FAB74
+ ldr r0, [r0]
+ ldr r0, [r0, 0x18]
+ bl _call_via_r0
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080FAB74: .4byte gUnknown_020388CC
+ thumb_func_end sub_80FAB60
+
+ thumb_func_start sub_80FAB78
+sub_80FAB78: @ 80FAB78
+ push {r4,lr}
+ movs r4, 0
+ ldr r2, _080FAC14
+ ldr r0, [r2]
+ adds r0, 0x7B
+ strb r4, [r0]
+ ldr r0, [r2]
+ adds r0, 0x7C
+ strb r4, [r0]
+ ldr r3, _080FAC18
+ ldrh r1, [r3, 0x2C]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _080FABAA
+ ldr r1, [r2]
+ adds r0, r1, 0
+ adds r0, 0x56
+ ldrh r0, [r0]
+ cmp r0, 0x2
+ bls _080FABAA
+ adds r1, 0x7C
+ movs r0, 0xFF
+ strb r0, [r1]
+ movs r4, 0x1
+_080FABAA:
+ ldrh r1, [r3, 0x2C]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _080FABC8
+ ldr r1, [r2]
+ adds r0, r1, 0
+ adds r0, 0x56
+ ldrh r0, [r0]
+ cmp r0, 0xF
+ bhi _080FABC8
+ adds r1, 0x7C
+ movs r0, 0x1
+ strb r0, [r1]
+ movs r4, 0x1
+_080FABC8:
+ ldrh r1, [r3, 0x2C]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _080FABE6
+ ldr r1, [r2]
+ adds r0, r1, 0
+ adds r0, 0x54
+ ldrh r0, [r0]
+ cmp r0, 0x1
+ bls _080FABE6
+ adds r1, 0x7B
+ movs r0, 0xFF
+ strb r0, [r1]
+ movs r4, 0x1
+_080FABE6:
+ ldrh r1, [r3, 0x2C]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080FAC04
+ ldr r1, [r2]
+ adds r0, r1, 0
+ adds r0, 0x54
+ ldrh r0, [r0]
+ cmp r0, 0x1B
+ bhi _080FAC04
+ adds r1, 0x7B
+ movs r0, 0x1
+ strb r0, [r1]
+ movs r4, 0x1
+_080FAC04:
+ ldrh r3, [r3, 0x2E]
+ movs r0, 0x1
+ ands r0, r3
+ cmp r0, 0
+ beq _080FAC1C
+ movs r4, 0x4
+ b _080FAC26
+ .align 2, 0
+_080FAC14: .4byte gUnknown_020388CC
+_080FAC18: .4byte gMain
+_080FAC1C:
+ movs r0, 0x2
+ ands r0, r3
+ cmp r0, 0
+ beq _080FAC26
+ movs r4, 0x5
+_080FAC26:
+ cmp r4, 0x1
+ bne _080FAC38
+ ldr r0, [r2]
+ adds r0, 0x7A
+ movs r1, 0x4
+ strb r1, [r0]
+ ldr r1, [r2]
+ ldr r0, _080FAC40
+ str r0, [r1, 0x18]
+_080FAC38:
+ adds r0, r4, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080FAC40: .4byte _swiopen
+ thumb_func_end sub_80FAB78
+
+ thumb_func_start _swiopen
+_swiopen: @ 80FAC44
+ push {r4,r5,lr}
+ ldr r5, _080FAC5C
+ ldr r1, [r5]
+ adds r0, r1, 0
+ adds r0, 0x7A
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0
+ beq _080FAC60
+ movs r0, 0x2
+ b _080FACFA
+ .align 2, 0
+_080FAC5C: .4byte gUnknown_020388CC
+_080FAC60:
+ adds r0, r1, 0
+ adds r0, 0x7B
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0
+ ble _080FAC76
+ adds r1, 0x54
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_080FAC76:
+ ldr r1, [r5]
+ adds r0, r1, 0
+ adds r0, 0x7B
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0
+ bge _080FAC8E
+ adds r1, 0x54
+ ldrh r0, [r1]
+ subs r0, 0x1
+ strh r0, [r1]
+_080FAC8E:
+ ldr r1, [r5]
+ adds r0, r1, 0
+ adds r0, 0x7C
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0
+ ble _080FACA6
+ adds r1, 0x56
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_080FACA6:
+ ldr r1, [r5]
+ adds r0, r1, 0
+ adds r0, 0x7C
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0
+ bge _080FACBE
+ adds r1, 0x56
+ ldrh r0, [r1]
+ subs r0, 0x1
+ strh r0, [r1]
+_080FACBE:
+ ldr r1, [r5]
+ adds r0, r1, 0
+ adds r0, 0x54
+ ldrh r0, [r0]
+ adds r1, 0x56
+ ldrh r1, [r1]
+ bl sub_80FB2EC
+ lsls r0, 16
+ lsrs r4, r0, 16
+ adds r0, r4, 0
+ bl sub_80FB758
+ ldr r1, [r5]
+ strb r0, [r1, 0x16]
+ ldr r0, [r5]
+ ldrh r1, [r0, 0x14]
+ cmp r4, r1
+ beq _080FACEE
+ strh r4, [r0, 0x14]
+ ldrh r1, [r0, 0x14]
+ movs r2, 0x10
+ bl sub_80FBFB4
+_080FACEE:
+ bl sub_80FBA18
+ ldr r1, [r5]
+ ldr r0, _080FAD00
+ str r0, [r1, 0x18]
+ movs r0, 0x3
+_080FACFA:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080FAD00: .4byte sub_80FAB78
+ thumb_func_end _swiopen
+
+ thumb_func_start sub_80FAD04
+sub_80FAD04: @ 80FAD04
+ push {r4-r6,lr}
+ movs r4, 0
+ ldr r3, _080FADD4
+ ldr r0, [r3]
+ mov r12, r0
+ adds r0, 0x6A
+ strh r4, [r0]
+ mov r5, r12
+ adds r5, 0x68
+ strh r4, [r5]
+ ldr r2, _080FADD8
+ ldrh r1, [r2, 0x2C]
+ movs r0, 0x40
+ ands r0, r1
+ adds r6, r3, 0
+ adds r3, r2, 0
+ cmp r0, 0
+ beq _080FAD3E
+ mov r0, r12
+ adds r0, 0x5E
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ movs r0, 0x34
+ negs r0, r0
+ cmp r1, r0
+ ble _080FAD3E
+ ldr r0, _080FADDC
+ strh r0, [r5]
+ movs r4, 0x1
+_080FAD3E:
+ ldrh r1, [r3, 0x2C]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _080FAD5E
+ ldr r1, [r6]
+ adds r0, r1, 0
+ adds r0, 0x5E
+ movs r5, 0
+ ldrsh r0, [r0, r5]
+ cmp r0, 0x3B
+ bgt _080FAD5E
+ adds r1, 0x68
+ movs r0, 0x1
+ strh r0, [r1]
+ movs r4, 0x1
+_080FAD5E:
+ ldrh r1, [r3, 0x2C]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _080FAD84
+ ldr r2, [r6]
+ adds r0, r2, 0
+ adds r0, 0x5C
+ movs r5, 0
+ ldrsh r1, [r0, r5]
+ movs r0, 0x2C
+ negs r0, r0
+ cmp r1, r0
+ ble _080FAD84
+ adds r1, r2, 0
+ adds r1, 0x6A
+ ldr r0, _080FADDC
+ strh r0, [r1]
+ movs r4, 0x1
+_080FAD84:
+ ldrh r1, [r3, 0x2C]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080FADA4
+ ldr r1, [r6]
+ adds r0, r1, 0
+ adds r0, 0x5C
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ cmp r0, 0xAB
+ bgt _080FADA4
+ adds r1, 0x6A
+ movs r0, 0x1
+ strh r0, [r1]
+ movs r4, 0x1
+_080FADA4:
+ ldrh r2, [r3, 0x2E]
+ movs r0, 0x1
+ ands r0, r2
+ cmp r0, 0
+ beq _080FADB0
+ movs r4, 0x4
+_080FADB0:
+ movs r0, 0x2
+ ands r0, r2
+ cmp r0, 0
+ beq _080FADBA
+ movs r4, 0x5
+_080FADBA:
+ cmp r4, 0x1
+ bne _080FADCA
+ ldr r0, [r6]
+ ldr r1, _080FADE0
+ str r1, [r0, 0x18]
+ adds r0, 0x6C
+ movs r1, 0
+ strh r1, [r0]
+_080FADCA:
+ adds r0, r4, 0
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080FADD4: .4byte gUnknown_020388CC
+_080FADD8: .4byte gMain
+_080FADDC: .4byte 0x0000ffff
+_080FADE0: .4byte sub_80FADE4
+ thumb_func_end sub_80FAD04
+
+ thumb_func_start sub_80FADE4
+sub_80FADE4: @ 80FADE4
+ push {r4,r5,lr}
+ ldr r5, _080FAEB4
+ ldr r2, [r5]
+ adds r3, r2, 0
+ adds r3, 0x5E
+ adds r0, r2, 0
+ adds r0, 0x68
+ ldrh r0, [r0]
+ ldrh r1, [r3]
+ adds r0, r1
+ strh r0, [r3]
+ adds r1, r2, 0
+ adds r1, 0x5C
+ adds r0, r2, 0
+ adds r0, 0x6A
+ ldrh r0, [r0]
+ ldrh r2, [r1]
+ adds r0, r2
+ strh r0, [r1]
+ movs r4, 0
+ ldrsh r0, [r1, r4]
+ movs r2, 0
+ ldrsh r1, [r3, r2]
+ bl sub_80FB238
+ ldr r2, [r5]
+ adds r1, r2, 0
+ adds r1, 0x6C
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x8
+ bne _080FAEBC
+ adds r0, r2, 0
+ adds r0, 0x5C
+ movs r3, 0
+ ldrsh r1, [r0, r3]
+ adds r0, r1, 0
+ adds r0, 0x2C
+ cmp r0, 0
+ bge _080FAE3C
+ adds r0, 0x7
+_080FAE3C:
+ asrs r0, 3
+ adds r0, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ adds r0, r2, 0
+ adds r0, 0x5E
+ movs r4, 0
+ ldrsh r1, [r0, r4]
+ adds r0, r1, 0
+ adds r0, 0x34
+ cmp r0, 0
+ bge _080FAE56
+ adds r0, 0x7
+_080FAE56:
+ asrs r0, 3
+ adds r0, 0x2
+ lsls r0, 16
+ lsrs r1, r0, 16
+ adds r4, r2, 0
+ adds r4, 0x64
+ adds r0, r2, 0
+ adds r0, 0x66
+ ldrh r2, [r4]
+ cmp r3, r2
+ bne _080FAE72
+ ldrh r2, [r0]
+ cmp r1, r2
+ beq _080FAEA0
+_080FAE72:
+ strh r3, [r4]
+ strh r1, [r0]
+ adds r0, r3, 0
+ bl sub_80FB2EC
+ lsls r0, 16
+ lsrs r4, r0, 16
+ adds r0, r4, 0
+ bl sub_80FB758
+ ldr r1, [r5]
+ strb r0, [r1, 0x16]
+ ldr r0, [r5]
+ ldrh r3, [r0, 0x14]
+ cmp r4, r3
+ beq _080FAE9C
+ strh r4, [r0, 0x14]
+ ldrh r1, [r0, 0x14]
+ movs r2, 0x10
+ bl sub_80FBFB4
+_080FAE9C:
+ bl sub_80FBA18
+_080FAEA0:
+ ldr r0, _080FAEB4
+ ldr r2, [r0]
+ adds r1, r2, 0
+ adds r1, 0x6C
+ movs r0, 0
+ strh r0, [r1]
+ ldr r0, _080FAEB8
+ str r0, [r2, 0x18]
+ movs r0, 0x3
+ b _080FAEBE
+ .align 2, 0
+_080FAEB4: .4byte gUnknown_020388CC
+_080FAEB8: .4byte sub_80FAD04
+_080FAEBC:
+ movs r0, 0x2
+_080FAEBE:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80FADE4
+
+ thumb_func_start sub_80FAEC4
+sub_80FAEC4: @ 80FAEC4
+ push {r4-r6,lr}
+ ldr r1, _080FAF40
+ ldr r2, [r1]
+ adds r0, r2, 0
+ adds r0, 0x78
+ ldrb r3, [r0]
+ adds r5, r1, 0
+ cmp r3, 0
+ bne _080FAF48
+ subs r0, 0x1A
+ strh r3, [r0]
+ subs r0, 0x2
+ strh r3, [r0]
+ str r3, [r2, 0x40]
+ str r3, [r2, 0x3C]
+ adds r4, r2, 0
+ adds r4, 0x54
+ ldrh r0, [r4]
+ lsls r0, 3
+ subs r0, 0x34
+ adds r1, r2, 0
+ adds r1, 0x60
+ strh r0, [r1]
+ movs r0, 0x56
+ adds r0, r2
+ mov r12, r0
+ ldrh r0, [r0]
+ lsls r0, 3
+ subs r0, 0x44
+ adds r3, r2, 0
+ adds r3, 0x62
+ strh r0, [r3]
+ movs r6, 0
+ ldrsh r0, [r1, r6]
+ lsls r0, 8
+ cmp r0, 0
+ bge _080FAF10
+ adds r0, 0xF
+_080FAF10:
+ asrs r0, 4
+ str r0, [r2, 0x44]
+ movs r1, 0
+ ldrsh r0, [r3, r1]
+ lsls r0, 8
+ cmp r0, 0
+ bge _080FAF20
+ adds r0, 0xF
+_080FAF20:
+ asrs r0, 4
+ str r0, [r2, 0x48]
+ ldrh r1, [r4]
+ adds r0, r2, 0
+ adds r0, 0x64
+ strh r1, [r0]
+ mov r3, r12
+ ldrh r0, [r3]
+ adds r1, r2, 0
+ adds r1, 0x66
+ strh r0, [r1]
+ movs r0, 0x80
+ lsls r0, 9
+ str r0, [r2, 0x4C]
+ ldr r0, _080FAF44
+ b _080FAFA6
+ .align 2, 0
+_080FAF40: .4byte gUnknown_020388CC
+_080FAF44: .4byte 0xfffff800
+_080FAF48:
+ adds r0, r2, 0
+ adds r0, 0x5C
+ movs r6, 0
+ ldrsh r0, [r0, r6]
+ lsls r0, 8
+ str r0, [r2, 0x3C]
+ adds r0, r2, 0
+ adds r0, 0x5E
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ lsls r0, 8
+ str r0, [r2, 0x40]
+ adds r0, r2, 0
+ adds r0, 0x60
+ movs r1, 0
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ ldr r0, [r2, 0x3C]
+ cmp r0, 0
+ bge _080FAF74
+ adds r0, 0xF
+_080FAF74:
+ asrs r0, 4
+ negs r0, r0
+ str r0, [r2, 0x44]
+ ldr r0, [r2, 0x40]
+ cmp r0, 0
+ bge _080FAF82
+ adds r0, 0xF
+_080FAF82:
+ asrs r0, 4
+ negs r0, r0
+ str r0, [r2, 0x48]
+ adds r0, r2, 0
+ adds r0, 0x64
+ ldrh r1, [r0]
+ subs r0, 0x10
+ strh r1, [r0]
+ adds r0, 0x12
+ ldrh r0, [r0]
+ adds r1, r2, 0
+ adds r1, 0x56
+ strh r0, [r1]
+ movs r0, 0x80
+ lsls r0, 8
+ str r0, [r2, 0x4C]
+ movs r0, 0x80
+ lsls r0, 4
+_080FAFA6:
+ str r0, [r2, 0x50]
+ ldr r0, [r5]
+ adds r0, 0x6E
+ movs r1, 0
+ strh r1, [r0]
+ bl sub_80FBCA0
+ bl sub_80FBDF8
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80FAEC4
+
+ thumb_func_start sub_80FAFC0
+sub_80FAFC0: @ 80FAFC0
+ push {r4-r6,lr}
+ sub sp, 0xC
+ ldr r0, _080FAFD8
+ ldr r3, [r0]
+ adds r2, r3, 0
+ adds r2, 0x6E
+ ldrh r1, [r2]
+ adds r5, r0, 0
+ cmp r1, 0xF
+ bls _080FAFDC
+ movs r0, 0
+ b _080FB164
+ .align 2, 0
+_080FAFD8: .4byte gUnknown_020388CC
+_080FAFDC:
+ adds r0, r1, 0x1
+ movs r1, 0
+ strh r0, [r2]
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x10
+ bne _080FB050
+ str r1, [r3, 0x44]
+ str r1, [r3, 0x48]
+ adds r0, r3, 0
+ adds r0, 0x60
+ ldrh r1, [r0]
+ subs r0, 0x4
+ strh r1, [r0]
+ adds r0, 0x6
+ ldrh r0, [r0]
+ adds r1, r3, 0
+ adds r1, 0x5E
+ strh r0, [r1]
+ adds r1, 0x1A
+ ldrb r0, [r1]
+ movs r2, 0x80
+ lsls r2, 9
+ cmp r0, 0
+ bne _080FB012
+ movs r2, 0x80
+ lsls r2, 8
+_080FB012:
+ str r2, [r3, 0x4C]
+ movs r2, 0
+ ldrb r0, [r1]
+ cmp r0, 0
+ bne _080FB01E
+ movs r2, 0x1
+_080FB01E:
+ strb r2, [r1]
+ ldr r1, [r5]
+ adds r0, r1, 0
+ adds r0, 0x78
+ ldrb r0, [r0]
+ ldr r2, _080FB048
+ cmp r0, 0
+ bne _080FB030
+ ldr r2, _080FB04C
+_080FB030:
+ str r2, [r1, 0x18]
+ adds r0, r1, 0
+ adds r0, 0x58
+ ldrh r0, [r0]
+ adds r1, 0x5A
+ ldrh r1, [r1]
+ bl sub_80FBB3C
+ bl sub_80FBE24
+ movs r4, 0
+ b _080FB132
+ .align 2, 0
+_080FB048: .4byte sub_80FAD04
+_080FB04C: .4byte sub_80FAB78
+_080FB050:
+ ldr r2, [r3, 0x3C]
+ ldr r0, [r3, 0x44]
+ adds r2, r0
+ str r2, [r3, 0x3C]
+ ldr r0, [r3, 0x40]
+ ldr r1, [r3, 0x48]
+ adds r0, r1
+ str r0, [r3, 0x40]
+ asrs r2, 8
+ adds r4, r3, 0
+ adds r4, 0x5C
+ strh r2, [r4]
+ ldr r0, [r3, 0x40]
+ asrs r0, 8
+ adds r1, r3, 0
+ adds r1, 0x5E
+ strh r0, [r1]
+ ldr r0, [r3, 0x4C]
+ ldr r1, [r3, 0x50]
+ adds r0, r1
+ str r0, [r3, 0x4C]
+ ldr r2, [r3, 0x44]
+ cmp r2, 0
+ bge _080FB090
+ adds r0, r3, 0
+ adds r0, 0x60
+ movs r6, 0
+ ldrsh r1, [r4, r6]
+ movs r6, 0
+ ldrsh r0, [r0, r6]
+ cmp r1, r0
+ blt _080FB0A4
+_080FB090:
+ cmp r2, 0
+ ble _080FB0B4
+ adds r0, r3, 0
+ adds r0, 0x60
+ movs r2, 0
+ ldrsh r1, [r4, r2]
+ movs r6, 0
+ ldrsh r0, [r0, r6]
+ cmp r1, r0
+ ble _080FB0B4
+_080FB0A4:
+ ldr r3, [r5]
+ adds r0, r3, 0
+ adds r0, 0x60
+ ldrh r2, [r0]
+ subs r0, 0x4
+ movs r1, 0
+ strh r2, [r0]
+ str r1, [r3, 0x44]
+_080FB0B4:
+ ldr r2, [r5]
+ ldr r4, [r2, 0x48]
+ cmp r4, 0
+ bge _080FB0D0
+ adds r0, r2, 0
+ adds r0, 0x5E
+ adds r3, r2, 0
+ adds r3, 0x62
+ movs r6, 0
+ ldrsh r1, [r0, r6]
+ movs r6, 0
+ ldrsh r0, [r3, r6]
+ cmp r1, r0
+ blt _080FB0E8
+_080FB0D0:
+ cmp r4, 0
+ ble _080FB0FA
+ adds r1, r2, 0
+ adds r1, 0x5E
+ adds r0, r2, 0
+ adds r0, 0x62
+ movs r2, 0
+ ldrsh r1, [r1, r2]
+ movs r6, 0
+ ldrsh r0, [r0, r6]
+ cmp r1, r0
+ ble _080FB0FA
+_080FB0E8:
+ ldr r2, [r5]
+ adds r0, r2, 0
+ adds r0, 0x62
+ ldrh r1, [r0]
+ adds r3, r2, 0
+ adds r3, 0x5E
+ movs r0, 0
+ strh r1, [r3]
+ str r0, [r2, 0x48]
+_080FB0FA:
+ ldr r0, _080FB118
+ ldr r2, [r0]
+ adds r0, r2, 0
+ adds r0, 0x78
+ ldrb r3, [r0]
+ cmp r3, 0
+ bne _080FB120
+ ldr r1, [r2, 0x4C]
+ ldr r0, _080FB11C
+ cmp r1, r0
+ bgt _080FB130
+ adds r0, 0x1
+ str r0, [r2, 0x4C]
+ str r3, [r2, 0x50]
+ b _080FB130
+ .align 2, 0
+_080FB118: .4byte gUnknown_020388CC
+_080FB11C: .4byte 0x00007fff
+_080FB120:
+ ldr r0, [r2, 0x4C]
+ movs r1, 0x80
+ lsls r1, 9
+ cmp r0, r1
+ ble _080FB130
+ str r1, [r2, 0x4C]
+ movs r0, 0
+ str r0, [r2, 0x50]
+_080FB130:
+ movs r4, 0x1
+_080FB132:
+ ldr r0, _080FB16C
+ ldr r3, [r0]
+ adds r0, r3, 0
+ adds r0, 0x5C
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ adds r1, r3, 0
+ adds r1, 0x5E
+ movs r2, 0
+ ldrsh r1, [r1, r2]
+ ldr r2, [r3, 0x4C]
+ lsls r2, 8
+ lsrs r2, 16
+ str r2, [sp]
+ ldr r2, [r3, 0x4C]
+ lsls r2, 8
+ lsrs r2, 16
+ str r2, [sp, 0x4]
+ movs r2, 0
+ str r2, [sp, 0x8]
+ movs r2, 0x38
+ movs r3, 0x48
+ bl sub_80FB170
+ adds r0, r4, 0
+_080FB164:
+ add sp, 0xC
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080FB16C: .4byte gUnknown_020388CC
+ thumb_func_end sub_80FAFC0
+
+ thumb_func_start sub_80FB170
+sub_80FB170: @ 80FB170
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ ldr r4, [sp, 0x24]
+ ldr r7, [sp, 0x28]
+ ldr r5, [sp, 0x2C]
+ lsls r4, 16
+ lsrs r4, 16
+ mov r8, r4
+ lsls r7, 16
+ adds r4, r7, 0
+ lsrs r4, 16
+ mov r9, r4
+ lsls r5, 24
+ lsrs r5, 24
+ ldr r4, _080FB230
+ ldr r6, [r4]
+ ldr r7, _080FB234
+ mov r12, r7
+ adds r4, r5, 0
+ adds r4, 0x40
+ lsls r4, 1
+ add r4, r12
+ movs r7, 0
+ ldrsh r4, [r4, r7]
+ str r4, [sp]
+ mov r7, r8
+ muls r7, r4
+ adds r4, r7, 0
+ asrs r4, 8
+ mov r10, r4
+ str r4, [r6, 0x2C]
+ lsls r5, 1
+ add r5, r12
+ movs r7, 0
+ ldrsh r5, [r5, r7]
+ negs r4, r5
+ mov r7, r8
+ muls r7, r4
+ adds r4, r7, 0
+ asrs r4, 8
+ mov r12, r4
+ str r4, [r6, 0x30]
+ mov r7, r9
+ muls r7, r5
+ adds r5, r7, 0
+ asrs r5, 8
+ str r5, [r6, 0x34]
+ ldr r7, [sp]
+ mov r4, r9
+ muls r4, r7
+ asrs r4, 8
+ mov r8, r4
+ str r4, [r6, 0x38]
+ lsls r0, 16
+ asrs r0, 8
+ lsls r2, 16
+ asrs r2, 16
+ lsls r4, r2, 8
+ adds r0, r4
+ lsls r3, 16
+ asrs r3, 16
+ adds r4, r3, 0
+ muls r4, r5
+ mov r5, r10
+ muls r5, r2
+ adds r4, r5
+ subs r0, r4
+ str r0, [r6, 0x24]
+ lsls r1, 16
+ asrs r1, 8
+ lsls r0, r3, 8
+ adds r1, r0
+ mov r0, r8
+ muls r0, r3
+ mov r3, r12
+ muls r3, r2
+ adds r2, r3, 0
+ adds r0, r2
+ subs r1, r0
+ str r1, [r6, 0x28]
+ adds r6, 0x7D
+ movs r0, 0x1
+ strb r0, [r6]
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FB230: .4byte gUnknown_020388CC
+_080FB234: .4byte gSineTable
+ thumb_func_end sub_80FB170
+
+ thumb_func_start sub_80FB238
+sub_80FB238: @ 80FB238
+ ldr r2, _080FB25C
+ ldr r2, [r2]
+ lsls r0, 16
+ asrs r0, 8
+ movs r3, 0xE0
+ lsls r3, 5
+ adds r0, r3
+ str r0, [r2, 0x24]
+ lsls r1, 16
+ asrs r1, 8
+ movs r0, 0x90
+ lsls r0, 6
+ adds r1, r0
+ str r1, [r2, 0x28]
+ adds r2, 0x7D
+ movs r0, 0x1
+ strb r0, [r2]
+ bx lr
+ .align 2, 0
+_080FB25C: .4byte gUnknown_020388CC
+ thumb_func_end sub_80FB238
+
+ thumb_func_start sub_80FB260
+sub_80FB260: @ 80FB260
+ push {lr}
+ ldr r0, _080FB29C
+ ldr r2, [r0]
+ adds r3, r2, 0
+ adds r3, 0x7D
+ ldrb r0, [r3]
+ cmp r0, 0
+ beq _080FB298
+ ldr r1, _080FB2A0
+ ldr r0, [r2, 0x2C]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r0, [r2, 0x34]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r0, [r2, 0x30]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r0, [r2, 0x38]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r0, [r2, 0x24]
+ str r0, [r1]
+ adds r1, 0x4
+ ldr r0, [r2, 0x28]
+ str r0, [r1]
+ movs r0, 0
+ strb r0, [r3]
+_080FB298:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FB29C: .4byte gUnknown_020388CC
+_080FB2A0: .4byte REG_BG2PA
+ thumb_func_end sub_80FB260
+
+ thumb_func_start sub_80FB2A4
+sub_80FB2A4: @ 80FB2A4
+ push {r4,r5,lr}
+ sub sp, 0xC
+ lsls r0, 16
+ asrs r4, r0, 16
+ lsls r1, 16
+ asrs r5, r1, 16
+ movs r0, 0x80
+ lsls r0, 1
+ str r0, [sp]
+ str r0, [sp, 0x4]
+ movs r0, 0
+ str r0, [sp, 0x8]
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r2, 0x38
+ movs r3, 0x48
+ bl sub_80FB170
+ bl sub_80FB260
+ ldr r0, _080FB2E8
+ ldr r2, [r0]
+ ldr r1, [r2, 0x20]
+ cmp r1, 0
+ beq _080FB2E0
+ negs r0, r4
+ strh r0, [r1, 0x24]
+ ldr r1, [r2, 0x20]
+ negs r0, r5
+ strh r0, [r1, 0x26]
+_080FB2E0:
+ add sp, 0xC
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FB2E8: .4byte gUnknown_020388CC
+ thumb_func_end sub_80FB2A4
+
+ thumb_func_start sub_80FB2EC
+sub_80FB2EC: @ 80FB2EC
+ push {lr}
+ lsls r0, 16
+ lsrs r3, r0, 16
+ lsls r1, 16
+ ldr r0, _080FB30C
+ adds r1, r0
+ lsrs r2, r1, 16
+ cmp r2, 0xE
+ bhi _080FB306
+ cmp r3, 0
+ beq _080FB306
+ cmp r3, 0x1C
+ bls _080FB310
+_080FB306:
+ movs r0, 0x58
+ b _080FB324
+ .align 2, 0
+_080FB30C: .4byte 0xfffe0000
+_080FB310:
+ subs r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ ldr r1, _080FB328
+ lsls r0, r2, 3
+ subs r0, r2
+ lsls r0, 2
+ adds r0, r3, r0
+ adds r0, r1
+ ldrb r0, [r0]
+_080FB324:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080FB328: .4byte gRegionMapSections
+ thumb_func_end sub_80FB2EC
+
+ thumb_func_start sub_80FB32C
+sub_80FB32C: @ 80FB32C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ ldr r0, _080FB358
+ movs r1, 0x4
+ ldrsb r1, [r0, r1]
+ adds r2, r0, 0
+ cmp r1, 0x19
+ bne _080FB35C
+ ldrb r0, [r2, 0x5]
+ subs r0, 0x29
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x2
+ bhi _080FB35C
+ bl sub_80FB600
+ b _080FB5E8
+ .align 2, 0
+_080FB358: .4byte gSaveBlock1
+_080FB35C:
+ movs r0, 0x4
+ ldrsb r0, [r2, r0]
+ movs r1, 0x5
+ ldrsb r1, [r2, r1]
+ bl get_map_light_level_by_bank_and_number
+ lsls r0, 24
+ lsrs r0, 24
+ subs r0, 0x1
+ cmp r0, 0x8
+ bhi _080FB3A4
+ lsls r0, 2
+ ldr r1, _080FB37C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080FB37C: .4byte _080FB380
+ .align 2, 0
+_080FB380:
+ .4byte _080FB3A4
+ .4byte _080FB3A4
+ .4byte _080FB3A4
+ .4byte _080FB3E0
+ .4byte _080FB3A4
+ .4byte _080FB3A4
+ .4byte _080FB3E0
+ .4byte _080FB464
+ .4byte _080FB428
+_080FB3A4:
+ ldr r4, _080FB3D4
+ ldr r0, [r4]
+ ldr r3, _080FB3D8
+ ldrb r1, [r3, 0x14]
+ movs r2, 0
+ strh r1, [r0, 0x14]
+ adds r0, 0x7F
+ strb r2, [r0]
+ ldr r0, [r3]
+ ldrh r2, [r0]
+ ldrh r0, [r0, 0x4]
+ mov r8, r0
+ ldr r0, _080FB3DC
+ ldrh r6, [r0]
+ ldrh r3, [r0, 0x2]
+ ldr r1, [r4]
+ ldrh r0, [r1, 0x14]
+ cmp r0, 0x45
+ beq _080FB3CC
+ b _080FB4CC
+_080FB3CC:
+ adds r1, 0x7F
+ movs r0, 0x1
+ strb r0, [r1]
+ b _080FB4CC
+ .align 2, 0
+_080FB3D4: .4byte gUnknown_020388CC
+_080FB3D8: .4byte gMapHeader
+_080FB3DC: .4byte gSaveBlock1
+_080FB3E0:
+ ldr r4, _080FB420
+ adds r0, r4, 0
+ adds r0, 0x24
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ lsls r0, 16
+ lsrs r0, 16
+ adds r1, r4, 0
+ adds r1, 0x25
+ ldrb r1, [r1]
+ lsls r1, 24
+ asrs r1, 24
+ lsls r1, 16
+ lsrs r1, 16
+ bl get_mapheader_by_bank_and_number
+ adds r2, r0, 0
+ ldr r0, _080FB424
+ ldr r0, [r0]
+ ldrb r1, [r2, 0x14]
+ strh r1, [r0, 0x14]
+ adds r0, 0x7F
+ movs r1, 0x1
+ strb r1, [r0]
+ ldr r0, [r2]
+ ldrh r2, [r0]
+ ldrh r0, [r0, 0x4]
+ mov r8, r0
+ ldrh r6, [r4, 0x28]
+ ldrh r3, [r4, 0x2A]
+ b _080FB4CC
+ .align 2, 0
+_080FB420: .4byte gSaveBlock1
+_080FB424: .4byte gUnknown_020388CC
+_080FB428:
+ ldr r4, _080FB45C
+ movs r0, 0x14
+ ldrsb r0, [r4, r0]
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x15
+ ldrsb r1, [r4, r1]
+ lsls r1, 16
+ lsrs r1, 16
+ bl get_mapheader_by_bank_and_number
+ adds r2, r0, 0
+ ldr r0, _080FB460
+ ldr r0, [r0]
+ ldrb r1, [r2, 0x14]
+ strh r1, [r0, 0x14]
+ adds r0, 0x7F
+ movs r1, 0x1
+ strb r1, [r0]
+ ldr r0, [r2]
+ ldrh r2, [r0]
+ ldrh r0, [r0, 0x4]
+ mov r8, r0
+ ldrh r6, [r4, 0x18]
+ ldrh r3, [r4, 0x1A]
+ b _080FB4CC
+ .align 2, 0
+_080FB45C: .4byte gSaveBlock1
+_080FB460: .4byte gUnknown_020388CC
+_080FB464:
+ ldr r5, _080FB48C
+ ldr r0, [r5]
+ ldr r1, _080FB490
+ ldrb r1, [r1, 0x14]
+ strh r1, [r0, 0x14]
+ cmp r1, 0x57
+ beq _080FB498
+ ldr r4, _080FB494
+ movs r0, 0
+ ldrsb r0, [r4, r0]
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x1
+ ldrsb r1, [r4, r1]
+ lsls r1, 16
+ lsrs r1, 16
+ bl get_mapheader_by_bank_and_number
+ adds r2, r0, 0
+ b _080FB4B6
+ .align 2, 0
+_080FB48C: .4byte gUnknown_020388CC
+_080FB490: .4byte gMapHeader
+_080FB494: .4byte gSaveBlock1 + 0x24
+_080FB498:
+ ldr r4, _080FB548
+ movs r0, 0
+ ldrsb r0, [r4, r0]
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x1
+ ldrsb r1, [r4, r1]
+ lsls r1, 16
+ lsrs r1, 16
+ bl get_mapheader_by_bank_and_number
+ adds r2, r0, 0
+ ldr r1, [r5]
+ ldrb r0, [r2, 0x14]
+ strh r0, [r1, 0x14]
+_080FB4B6:
+ ldr r0, _080FB54C
+ ldr r0, [r0]
+ adds r0, 0x7F
+ movs r1, 0
+ strb r1, [r0]
+ ldr r0, [r2]
+ ldrh r2, [r0]
+ ldrh r0, [r0, 0x4]
+ mov r8, r0
+ ldrh r6, [r4, 0x4]
+ ldrh r3, [r4, 0x6]
+_080FB4CC:
+ mov r9, r6
+ ldr r4, _080FB54C
+ ldr r0, [r4]
+ ldrh r5, [r0, 0x14]
+ lsls r0, r5, 3
+ ldr r1, _080FB550
+ adds r0, r1
+ mov r10, r0
+ ldrb r7, [r0, 0x2]
+ adds r0, r2, 0
+ adds r1, r7, 0
+ str r3, [sp]
+ bl __divsi3
+ lsls r0, 16
+ lsrs r1, r0, 16
+ ldr r3, [sp]
+ cmp r1, 0
+ bne _080FB4F4
+ movs r1, 0x1
+_080FB4F4:
+ adds r0, r6, 0
+ str r3, [sp]
+ bl __udivsi3
+ lsls r0, 16
+ lsrs r6, r0, 16
+ ldr r3, [sp]
+ cmp r6, r7
+ bcc _080FB50C
+ subs r0, r7, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+_080FB50C:
+ mov r2, r10
+ ldrb r4, [r2, 0x3]
+ mov r0, r8
+ adds r1, r4, 0
+ str r3, [sp]
+ bl __divsi3
+ lsls r0, 16
+ lsrs r1, r0, 16
+ ldr r3, [sp]
+ cmp r1, 0
+ bne _080FB526
+ movs r1, 0x1
+_080FB526:
+ adds r0, r3, 0
+ bl __udivsi3
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, r4
+ bcc _080FB53A
+ subs r0, r4, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+_080FB53A:
+ cmp r5, 0x24
+ beq _080FB59C
+ cmp r5, 0x24
+ bgt _080FB554
+ cmp r5, 0x1D
+ beq _080FB55E
+ b _080FB5BE
+ .align 2, 0
+_080FB548: .4byte gSaveBlock1 + 0x14
+_080FB54C: .4byte gUnknown_020388CC
+_080FB550: .4byte gRegionMapLocations
+_080FB554:
+ cmp r5, 0x29
+ beq _080FB566
+ cmp r5, 0x33
+ beq _080FB566
+ b _080FB5BE
+_080FB55E:
+ cmp r3, 0
+ beq _080FB5BE
+ movs r6, 0
+ b _080FB5BE
+_080FB566:
+ movs r6, 0
+ ldr r1, _080FB598
+ movs r2, 0
+ ldrsh r0, [r1, r2]
+ cmp r0, 0x20
+ ble _080FB574
+ movs r6, 0x1
+_080FB574:
+ cmp r0, 0x33
+ ble _080FB57E
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+_080FB57E:
+ movs r3, 0
+ movs r2, 0x2
+ ldrsh r0, [r1, r2]
+ cmp r0, 0x25
+ ble _080FB58A
+ movs r3, 0x1
+_080FB58A:
+ cmp r0, 0x38
+ ble _080FB5BE
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ b _080FB5BE
+ .align 2, 0
+_080FB598: .4byte gSaveBlock1
+_080FB59C:
+ movs r6, 0
+ mov r0, r9
+ cmp r0, 0xE
+ bls _080FB5A6
+ movs r6, 0x1
+_080FB5A6:
+ mov r1, r9
+ cmp r1, 0x1C
+ bls _080FB5B2
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+_080FB5B2:
+ mov r2, r9
+ cmp r2, 0x36
+ bls _080FB5BE
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+_080FB5BE:
+ ldr r0, _080FB5F8
+ ldr r2, [r0]
+ ldrh r0, [r2, 0x14]
+ lsls r0, 3
+ ldr r1, _080FB5FC
+ adds r0, r1
+ ldrb r0, [r0]
+ adds r0, r6, r0
+ adds r0, 0x1
+ adds r1, r2, 0
+ adds r1, 0x54
+ strh r0, [r1]
+ ldrh r0, [r2, 0x14]
+ lsls r0, 3
+ ldr r1, _080FB5FC
+ adds r0, r1
+ ldrb r0, [r0, 0x1]
+ adds r0, r3, r0
+ adds r0, 0x2
+ adds r2, 0x56
+ strh r0, [r2]
+_080FB5E8:
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FB5F8: .4byte gUnknown_020388CC
+_080FB5FC: .4byte gRegionMapLocations
+ thumb_func_end sub_80FB32C
+
+ thumb_func_start sub_80FB600
+sub_80FB600: @ 80FB600
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ movs r7, 0
+ movs r0, 0
+ mov r8, r0
+ mov r4, sp
+ adds r4, 0x1
+ mov r5, sp
+ adds r5, 0x2
+ add r6, sp, 0x4
+ mov r0, sp
+ adds r1, r4, 0
+ adds r2, r5, 0
+ adds r3, r6, 0
+ bl sub_810D9EC
+ lsls r0, 24
+ lsrs r0, 24
+ mov r10, r5
+ cmp r0, 0x4
+ bhi _080FB694
+ lsls r0, 2
+ ldr r1, _080FB63C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080FB63C: .4byte _080FB640
+ .align 2, 0
+_080FB640:
+ .4byte _080FB694
+ .4byte _080FB654
+ .4byte _080FB664
+ .4byte _080FB674
+ .4byte _080FB684
+_080FB654:
+ ldr r2, _080FB660
+ ldr r1, [r2]
+ movs r0, 0x8
+ strh r0, [r1, 0x14]
+ b _080FB710
+ .align 2, 0
+_080FB660: .4byte gUnknown_020388CC
+_080FB664:
+ ldr r2, _080FB670
+ ldr r1, [r2]
+ movs r0, 0xC
+ strh r0, [r1, 0x14]
+ b _080FB710
+ .align 2, 0
+_080FB670: .4byte gUnknown_020388CC
+_080FB674:
+ ldr r2, _080FB680
+ ldr r1, [r2]
+ movs r0, 0x27
+ strh r0, [r1, 0x14]
+ b _080FB710
+ .align 2, 0
+_080FB680: .4byte gUnknown_020388CC
+_080FB684:
+ ldr r2, _080FB690
+ ldr r1, [r2]
+ movs r0, 0x2E
+ strh r0, [r1, 0x14]
+ b _080FB710
+ .align 2, 0
+_080FB690: .4byte gUnknown_020388CC
+_080FB694:
+ mov r0, sp
+ ldrb r0, [r0]
+ ldrb r1, [r4]
+ bl get_mapheader_by_bank_and_number
+ ldr r1, _080FB750
+ mov r9, r1
+ ldr r2, [r1]
+ ldrb r1, [r0, 0x14]
+ strh r1, [r2, 0x14]
+ ldr r6, [r0]
+ ldr r1, _080FB754
+ ldrh r0, [r2, 0x14]
+ lsls r0, 3
+ adds r5, r0, r1
+ ldrb r4, [r5, 0x2]
+ ldr r0, [r6]
+ adds r1, r4, 0
+ bl __divsi3
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0
+ bne _080FB6C6
+ movs r1, 0x1
+_080FB6C6:
+ mov r2, r10
+ movs r3, 0
+ ldrsh r0, [r2, r3]
+ bl __divsi3
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ cmp r8, r4
+ bcc _080FB6E2
+ subs r0, r4, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+_080FB6E2:
+ ldrb r4, [r5, 0x3]
+ ldr r0, [r6, 0x4]
+ adds r1, r4, 0
+ bl __divsi3
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0
+ bne _080FB6F6
+ movs r1, 0x1
+_080FB6F6:
+ mov r2, sp
+ movs r3, 0x4
+ ldrsh r0, [r2, r3]
+ bl __divsi3
+ lsls r0, 16
+ lsrs r7, r0, 16
+ mov r2, r9
+ cmp r7, r4
+ bcc _080FB710
+ subs r0, r4, 0x1
+ lsls r0, 16
+ lsrs r7, r0, 16
+_080FB710:
+ ldr r0, [r2]
+ adds r0, 0x7F
+ movs r1, 0
+ strb r1, [r0]
+ ldr r2, [r2]
+ ldr r3, _080FB754
+ ldrh r0, [r2, 0x14]
+ lsls r0, 3
+ adds r0, r3
+ ldrb r0, [r0]
+ add r0, r8
+ adds r0, 0x1
+ adds r1, r2, 0
+ adds r1, 0x54
+ strh r0, [r1]
+ ldrh r0, [r2, 0x14]
+ lsls r0, 3
+ adds r0, r3
+ ldrb r0, [r0, 0x1]
+ adds r0, r7, r0
+ adds r0, 0x2
+ adds r2, 0x56
+ strh r0, [r2]
+ add sp, 0x8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FB750: .4byte gUnknown_020388CC
+_080FB754: .4byte gRegionMapLocations
+ thumb_func_end sub_80FB600
+
+ thumb_func_start sub_80FB758
+sub_80FB758: @ 80FB758
+ push {lr}
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x58
+ bls _080FB764
+ b _080FB9A0
+_080FB764:
+ lsls r0, 2
+ ldr r1, _080FB770
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080FB770: .4byte _080FB774
+ .align 2, 0
+_080FB774:
+ .4byte _080FB8DC
+ .4byte _080FB8E4
+ .4byte _080FB8EA
+ .4byte _080FB8F4
+ .4byte _080FB8FC
+ .4byte _080FB904
+ .4byte _080FB90C
+ .4byte _080FB914
+ .4byte _080FB91C
+ .4byte _080FB924
+ .4byte _080FB92C
+ .4byte _080FB934
+ .4byte _080FB93C
+ .4byte _080FB944
+ .4byte _080FB94C
+ .4byte _080FB954
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB96C
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB988
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB8D8
+_080FB8D8:
+ movs r0, 0
+ b _080FB9A2
+_080FB8DC:
+ ldr r0, _080FB8E0
+ b _080FB956
+ .align 2, 0
+_080FB8E0: .4byte 0x0000080f
+_080FB8E4:
+ movs r0, 0x81
+ lsls r0, 4
+ b _080FB956
+_080FB8EA:
+ ldr r0, _080FB8F0
+ b _080FB956
+ .align 2, 0
+_080FB8F0: .4byte 0x00000811
+_080FB8F4:
+ ldr r0, _080FB8F8
+ b _080FB956
+ .align 2, 0
+_080FB8F8: .4byte 0x00000812
+_080FB8FC:
+ ldr r0, _080FB900
+ b _080FB956
+ .align 2, 0
+_080FB900: .4byte 0x00000813
+_080FB904:
+ ldr r0, _080FB908
+ b _080FB956
+ .align 2, 0
+_080FB908: .4byte 0x00000814
+_080FB90C:
+ ldr r0, _080FB910
+ b _080FB956
+ .align 2, 0
+_080FB910: .4byte 0x00000815
+_080FB914:
+ ldr r0, _080FB918
+ b _080FB956
+ .align 2, 0
+_080FB918: .4byte 0x00000816
+_080FB91C:
+ ldr r0, _080FB920
+ b _080FB956
+ .align 2, 0
+_080FB920: .4byte 0x00000817
+_080FB924:
+ ldr r0, _080FB928
+ b _080FB956
+ .align 2, 0
+_080FB928: .4byte 0x00000818
+_080FB92C:
+ ldr r0, _080FB930
+ b _080FB956
+ .align 2, 0
+_080FB930: .4byte 0x00000819
+_080FB934:
+ ldr r0, _080FB938
+ b _080FB956
+ .align 2, 0
+_080FB938: .4byte 0x0000081a
+_080FB93C:
+ ldr r0, _080FB940
+ b _080FB956
+ .align 2, 0
+_080FB940: .4byte 0x0000081b
+_080FB944:
+ ldr r0, _080FB948
+ b _080FB956
+ .align 2, 0
+_080FB948: .4byte 0x0000081c
+_080FB94C:
+ ldr r0, _080FB950
+ b _080FB956
+ .align 2, 0
+_080FB950: .4byte 0x0000081d
+_080FB954:
+ ldr r0, _080FB968
+_080FB956:
+ bl FlagGet
+ lsls r0, 24
+ movs r1, 0x3
+ cmp r0, 0
+ beq _080FB964
+ movs r1, 0x2
+_080FB964:
+ adds r0, r1, 0
+ b _080FB9A2
+ .align 2, 0
+_080FB968: .4byte 0x0000081e
+_080FB96C:
+ ldr r0, _080FB984
+ bl FlagGet
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ negs r0, r1
+ orrs r0, r1
+ asrs r0, 31
+ movs r1, 0x4
+ ands r0, r1
+ b _080FB9A2
+ .align 2, 0
+_080FB984: .4byte 0x00000848
+_080FB988:
+ ldr r0, _080FB99C
+ bl FlagGet
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ negs r0, r1
+ orrs r0, r1
+ lsrs r0, 31
+ b _080FB9A2
+ .align 2, 0
+_080FB99C: .4byte 0x00000849
+_080FB9A0:
+ movs r0, 0x1
+_080FB9A2:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80FB758
+
+ thumb_func_start sub_80FB9A8
+sub_80FB9A8: @ 80FB9A8
+ push {lr}
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r1, 16
+ lsrs r1, 16
+ bl sub_80FB2EC
+ lsls r0, 16
+ lsrs r0, 16
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80FB9A8
+
+ thumb_func_start sub_80FB9C0
+sub_80FB9C0: @ 80FB9C0
+ push {r4-r6,lr}
+ lsls r0, 16
+ lsrs r3, r0, 16
+ movs r2, 0
+ ldr r0, _080FB9E8
+ ldrh r1, [r0]
+ adds r4, r0, 0
+ cmp r1, 0x58
+ beq _080FB9FC
+ adds r5, r4, 0
+ adds r6, r4, 0x2
+_080FB9D6:
+ lsls r1, r2, 2
+ adds r0, r1, r5
+ ldrh r0, [r0]
+ cmp r0, r3
+ bne _080FB9EC
+ adds r0, r1, r6
+ ldrh r0, [r0]
+ b _080FB9FE
+ .align 2, 0
+_080FB9E8: .4byte gUnknown_083E7684
+_080FB9EC:
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ lsls r0, r2, 2
+ adds r0, r4
+ ldrh r0, [r0]
+ cmp r0, 0x58
+ bne _080FB9D6
+_080FB9FC:
+ adds r0, r3, 0
+_080FB9FE:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80FB9C0
+
+ thumb_func_start sub_80FBA04
+sub_80FBA04: @ 80FBA04
+ push {lr}
+ lsls r0, 16
+ lsrs r0, 16
+ bl sub_80FB9C0
+ lsls r0, 16
+ lsrs r0, 16
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80FBA04
+
+ thumb_func_start sub_80FBA18
+sub_80FBA18: @ 80FBA18
+ push {r4-r6,lr}
+ ldr r0, _080FBA2C
+ ldr r1, [r0]
+ ldrh r0, [r1, 0x14]
+ cmp r0, 0x58
+ bne _080FBA30
+ movs r0, 0
+ strb r0, [r1, 0x17]
+ b _080FBA96
+ .align 2, 0
+_080FBA2C: .4byte gUnknown_020388CC
+_080FBA30:
+ adds r0, r1, 0
+ adds r0, 0x78
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080FBA40
+ adds r0, r1, 0
+ adds r0, 0x54
+ b _080FBA44
+_080FBA40:
+ adds r0, r1, 0
+ adds r0, 0x64
+_080FBA44:
+ ldrh r4, [r0]
+ adds r0, 0x2
+ ldrh r5, [r0]
+ movs r6, 0
+ b _080FBA70
+_080FBA4E:
+ subs r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_80FB2EC
+ ldr r1, _080FBA8C
+ ldr r1, [r1]
+ lsls r0, 16
+ lsrs r0, 16
+ ldrh r1, [r1, 0x14]
+ cmp r0, r1
+ bne _080FBA70
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+_080FBA70:
+ cmp r4, 0x1
+ bhi _080FBA4E
+ adds r0, r5, 0
+ bl sub_80FBAA0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080FBA90
+ subs r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ movs r4, 0x1D
+ b _080FBA70
+ .align 2, 0
+_080FBA8C: .4byte gUnknown_020388CC
+_080FBA90:
+ ldr r0, _080FBA9C
+ ldr r0, [r0]
+ strb r6, [r0, 0x17]
+_080FBA96:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FBA9C: .4byte gUnknown_020388CC
+ thumb_func_end sub_80FBA18
+
+ thumb_func_start sub_80FBAA0
+sub_80FBAA0: @ 80FBAA0
+ push {r4,r5,lr}
+ lsls r0, 16
+ ldr r1, _080FBAB4
+ adds r0, r1
+ lsrs r5, r0, 16
+ ldr r0, _080FBAB8
+ cmp r5, r0
+ bne _080FBAC0
+ b _080FBAE2
+ .align 2, 0
+_080FBAB4: .4byte 0xffff0000
+_080FBAB8: .4byte 0x0000ffff
+_080FBABC:
+ movs r0, 0x1
+ b _080FBAE4
+_080FBAC0:
+ movs r4, 0x1
+_080FBAC2:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_80FB2EC
+ ldr r1, _080FBAEC
+ ldr r1, [r1]
+ lsls r0, 16
+ lsrs r0, 16
+ ldrh r1, [r1, 0x14]
+ cmp r0, r1
+ beq _080FBABC
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x1C
+ bls _080FBAC2
+_080FBAE2:
+ movs r0, 0
+_080FBAE4:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080FBAEC: .4byte gUnknown_020388CC
+ thumb_func_end sub_80FBAA0
+
+ thumb_func_start sub_80FBAF0
+sub_80FBAF0: @ 80FBAF0
+ push {r4,lr}
+ adds r2, r0, 0
+ ldr r0, _080FBB34
+ ldr r1, [r0]
+ adds r3, r1, 0
+ adds r3, 0x7A
+ movs r0, 0
+ ldrsb r0, [r3, r0]
+ cmp r0, 0
+ beq _080FBB2E
+ adds r0, r1, 0
+ adds r0, 0x7B
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ lsls r0, 1
+ ldrh r4, [r2, 0x20]
+ adds r0, r4
+ strh r0, [r2, 0x20]
+ adds r0, r1, 0
+ adds r0, 0x7C
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ lsls r0, 1
+ ldrh r1, [r2, 0x22]
+ adds r0, r1
+ strh r0, [r2, 0x22]
+ ldrb r0, [r3]
+ subs r0, 0x1
+ strb r0, [r3]
+_080FBB2E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FBB34: .4byte gUnknown_020388CC
+ thumb_func_end sub_80FBAF0
+
+ thumb_func_start nullsub_66
+nullsub_66: @ 80FBB38
+ bx lr
+ thumb_func_end nullsub_66
+
+ thumb_func_start sub_80FBB3C
+sub_80FBB3C: @ 80FBB3C
+ push {r4-r7,lr}
+ sub sp, 0x28
+ lsls r0, 16
+ lsls r1, 16
+ lsrs r6, r1, 16
+ ldr r1, _080FBBAC
+ ldr r2, [r1, 0x4]
+ ldr r1, [r1]
+ str r1, [sp, 0x20]
+ str r2, [sp, 0x24]
+ mov r2, sp
+ ldr r1, _080FBBB0
+ ldm r1!, {r3-r5}
+ stm r2!, {r3-r5}
+ ldm r1!, {r3-r5}
+ stm r2!, {r3-r5}
+ lsrs r3, r0, 16
+ add r2, sp, 0x18
+ ldrh r1, [r2, 0x4]
+ orrs r1, r0
+ str r1, [r2, 0x4]
+ mov r0, sp
+ strh r3, [r0]
+ ldr r0, _080FBBB4
+ ldr r4, [r0]
+ adds r0, r4, 0
+ adds r0, 0x58
+ strh r3, [r0]
+ ldr r5, _080FBBB8
+ add r1, sp, 0x20
+ ldr r0, [r1, 0x4]
+ ands r0, r5
+ orrs r0, r6
+ str r0, [r1, 0x4]
+ mov r0, sp
+ strh r6, [r0, 0x2]
+ adds r3, r4, 0
+ adds r0, r3, 0
+ adds r0, 0x5A
+ strh r6, [r0]
+ adds r0, 0x1E
+ ldrb r0, [r0]
+ adds r7, r1, 0
+ cmp r0, 0
+ bne _080FBBC0
+ movs r1, 0xC0
+ lsls r1, 1
+ adds r0, r3, r1
+ str r0, [sp, 0x18]
+ ldr r0, [r2, 0x4]
+ ands r0, r5
+ subs r1, 0x80
+ orrs r0, r1
+ str r0, [r2, 0x4]
+ ldr r0, _080FBBBC
+ b _080FBBD6
+ .align 2, 0
+_080FBBAC: .4byte gUnknown_083E76E8
+_080FBBB0: .4byte gSpriteTemplate_83E76F0
+_080FBBB4: .4byte gUnknown_020388CC
+_080FBBB8: .4byte 0xffff0000
+_080FBBBC: .4byte sub_80FBAF0
+_080FBBC0:
+ movs r3, 0xA0
+ lsls r3, 2
+ adds r0, r4, r3
+ str r0, [sp, 0x18]
+ ldr r0, [r2, 0x4]
+ ands r0, r5
+ movs r1, 0xC0
+ lsls r1, 3
+ orrs r0, r1
+ str r0, [r2, 0x4]
+ ldr r0, _080FBC38
+_080FBBD6:
+ str r0, [sp, 0x14]
+ adds r0, r2, 0
+ bl LoadSpriteSheet
+ adds r0, r7, 0
+ bl LoadSpritePalette
+ mov r0, sp
+ movs r1, 0x38
+ movs r2, 0x48
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x40
+ beq _080FBC90
+ ldr r4, _080FBC3C
+ ldr r2, [r4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080FBC40
+ adds r3, r0, r1
+ str r3, [r2, 0x1C]
+ adds r2, 0x78
+ ldrb r0, [r2]
+ cmp r0, 0x1
+ bne _080FBC44
+ ldrb r1, [r3, 0x3]
+ movs r0, 0x3F
+ ands r0, r1
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r3, 0x3]
+ ldr r2, [r4]
+ ldr r1, [r2, 0x1C]
+ ldrh r0, [r1, 0x20]
+ subs r0, 0x8
+ strh r0, [r1, 0x20]
+ ldr r1, [r2, 0x1C]
+ ldrh r0, [r1, 0x22]
+ subs r0, 0x8
+ strh r0, [r1, 0x22]
+ ldr r0, [r2, 0x1C]
+ movs r1, 0x1
+ bl StartSpriteAnim
+ b _080FBC6C
+ .align 2, 0
+_080FBC38: .4byte nullsub_66
+_080FBC3C: .4byte gUnknown_020388CC
+_080FBC40: .4byte gSprites
+_080FBC44:
+ ldrb r1, [r3, 0x3]
+ movs r0, 0x3F
+ ands r0, r1
+ movs r1, 0x40
+ orrs r0, r1
+ strb r0, [r3, 0x3]
+ ldr r1, [r4]
+ ldr r2, [r1, 0x1C]
+ adds r0, r1, 0
+ adds r0, 0x54
+ ldrh r0, [r0]
+ lsls r0, 3
+ adds r0, 0x4
+ strh r0, [r2, 0x20]
+ ldr r2, [r1, 0x1C]
+ adds r1, 0x56
+ ldrh r0, [r1]
+ lsls r0, 3
+ adds r0, 0x4
+ strh r0, [r2, 0x22]
+_080FBC6C:
+ ldr r4, _080FBC98
+ ldr r0, [r4]
+ ldr r1, [r0, 0x1C]
+ movs r0, 0x2
+ strh r0, [r1, 0x30]
+ adds r0, r6, 0
+ bl IndexOfSpritePaletteTag
+ ldr r1, [r4]
+ ldr r2, [r1, 0x1C]
+ lsls r0, 24
+ lsrs r0, 20
+ ldr r4, _080FBC9C
+ adds r0, r4
+ strh r0, [r2, 0x32]
+ ldr r1, [r1, 0x1C]
+ movs r0, 0x1
+ strh r0, [r1, 0x34]
+_080FBC90:
+ add sp, 0x28
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FBC98: .4byte gUnknown_020388CC
+_080FBC9C: .4byte 0x00000101
+ thumb_func_end sub_80FBB3C
+
+ thumb_func_start sub_80FBCA0
+sub_80FBCA0: @ 80FBCA0
+ push {r4,lr}
+ ldr r4, _080FBCCC
+ ldr r0, [r4]
+ ldr r0, [r0, 0x1C]
+ cmp r0, 0
+ beq _080FBCC4
+ bl DestroySprite
+ ldr r0, [r4]
+ adds r0, 0x58
+ ldrh r0, [r0]
+ bl FreeSpriteTilesByTag
+ ldr r0, [r4]
+ adds r0, 0x5A
+ ldrh r0, [r0]
+ bl FreeSpritePaletteByTag
+_080FBCC4:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FBCCC: .4byte gUnknown_020388CC
+ thumb_func_end sub_80FBCA0
+
+ thumb_func_start unref_sub_80FBCD0
+unref_sub_80FBCD0: @ 80FBCD0
+ ldr r0, _080FBCDC
+ ldr r0, [r0]
+ ldr r1, [r0, 0x1C]
+ movs r0, 0x1
+ strh r0, [r1, 0x34]
+ bx lr
+ .align 2, 0
+_080FBCDC: .4byte gUnknown_020388CC
+ thumb_func_end unref_sub_80FBCD0
+
+ thumb_func_start unref_sub_80FBCE0
+unref_sub_80FBCE0: @ 80FBCE0
+ ldr r0, _080FBCEC
+ ldr r0, [r0]
+ ldr r1, [r0, 0x1C]
+ movs r0, 0
+ strh r0, [r1, 0x34]
+ bx lr
+ .align 2, 0
+_080FBCEC: .4byte gUnknown_020388CC
+ thumb_func_end unref_sub_80FBCE0
+
+ thumb_func_start sub_80FBCF0
+sub_80FBCF0: @ 80FBCF0
+ push {r4,r5,lr}
+ sub sp, 0x28
+ lsls r0, 16
+ lsls r1, 16
+ lsrs r1, 16
+ ldr r2, _080FBD98
+ str r2, [sp, 0x18]
+ movs r2, 0x80
+ add r5, sp, 0x18
+ lsrs r3, r0, 16
+ orrs r0, r2
+ str r0, [r5, 0x4]
+ ldr r0, _080FBD9C
+ str r0, [sp, 0x20]
+ ldr r2, _080FBDA0
+ add r4, sp, 0x20
+ ldr r0, [r4, 0x4]
+ ands r0, r2
+ orrs r0, r1
+ str r0, [r4, 0x4]
+ mov r0, sp
+ movs r2, 0
+ strh r3, [r0]
+ strh r1, [r0, 0x2]
+ ldr r0, _080FBDA4
+ str r0, [sp, 0x4]
+ ldr r0, _080FBDA8
+ str r0, [sp, 0x8]
+ str r2, [sp, 0xC]
+ ldr r0, _080FBDAC
+ str r0, [sp, 0x10]
+ ldr r0, _080FBDB0
+ str r0, [sp, 0x14]
+ ldr r0, _080FBDB4
+ ldrb r0, [r0, 0x8]
+ cmp r0, 0x1
+ bne _080FBD42
+ ldr r0, _080FBDB8
+ str r0, [sp, 0x18]
+ ldr r0, _080FBDBC
+ str r0, [sp, 0x20]
+_080FBD42:
+ adds r0, r5, 0
+ bl LoadSpriteSheet
+ adds r0, r4, 0
+ bl LoadSpritePalette
+ mov r0, sp
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x1
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _080FBDC0
+ ldr r2, [r1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ ldr r0, _080FBDC4
+ adds r1, r0
+ str r1, [r2, 0x20]
+ adds r0, r2, 0
+ adds r0, 0x78
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080FBDCC
+ adds r0, r2, 0
+ adds r0, 0x74
+ ldrh r0, [r0]
+ lsls r0, 3
+ adds r0, 0x4
+ strh r0, [r1, 0x20]
+ ldr r1, [r2, 0x20]
+ adds r0, r2, 0
+ adds r0, 0x76
+ ldrh r0, [r0]
+ lsls r0, 3
+ adds r0, 0x4
+ strh r0, [r1, 0x22]
+ ldr r1, [r2, 0x20]
+ ldr r0, _080FBDC8
+ b _080FBDEA
+ .align 2, 0
+_080FBD98: .4byte gUnknown_083E5C40
+_080FBD9C: .4byte gUnknown_083E5C20
+_080FBDA0: .4byte 0xffff0000
+_080FBDA4: .4byte gUnknown_083E7708
+_080FBDA8: .4byte gUnknown_083E7718
+_080FBDAC: .4byte gDummySpriteAffineAnimTable
+_080FBDB0: .4byte SpriteCallbackDummy
+_080FBDB4: .4byte gSaveBlock2
+_080FBDB8: .4byte gUnknown_083E5CE0
+_080FBDBC: .4byte gUnknown_083E5CC0
+_080FBDC0: .4byte gUnknown_020388CC
+_080FBDC4: .4byte gSprites
+_080FBDC8: .4byte sub_80FBF34
+_080FBDCC:
+ adds r0, r2, 0
+ adds r0, 0x74
+ ldrh r0, [r0]
+ lsls r0, 4
+ subs r0, 0x30
+ strh r0, [r1, 0x20]
+ ldr r1, [r2, 0x20]
+ adds r0, r2, 0
+ adds r0, 0x76
+ ldrh r0, [r0]
+ lsls r0, 4
+ subs r0, 0x42
+ strh r0, [r1, 0x22]
+ ldr r1, [r2, 0x20]
+ ldr r0, _080FBDF4
+_080FBDEA:
+ str r0, [r1, 0x1C]
+ add sp, 0x28
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FBDF4: .4byte sub_80FBEA4
+ thumb_func_end sub_80FBCF0
+
+ thumb_func_start sub_80FBDF8
+sub_80FBDF8: @ 80FBDF8
+ push {lr}
+ ldr r3, _080FBE1C
+ ldr r0, [r3]
+ ldr r2, [r0, 0x20]
+ cmp r2, 0
+ beq _080FBE16
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r0, [r3]
+ ldr r1, [r0, 0x20]
+ ldr r0, _080FBE20
+ str r0, [r1, 0x1C]
+_080FBE16:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FBE1C: .4byte gUnknown_020388CC
+_080FBE20: .4byte SpriteCallbackDummy
+ thumb_func_end sub_80FBDF8
+
+ thumb_func_start sub_80FBE24
+sub_80FBE24: @ 80FBE24
+ push {lr}
+ ldr r0, _080FBE5C
+ ldr r3, [r0]
+ ldr r1, [r3, 0x20]
+ cmp r1, 0
+ beq _080FBE9A
+ adds r0, r3, 0
+ adds r0, 0x78
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _080FBE64
+ adds r0, r3, 0
+ adds r0, 0x74
+ ldrh r0, [r0]
+ lsls r0, 4
+ subs r0, 0x30
+ strh r0, [r1, 0x20]
+ ldr r1, [r3, 0x20]
+ adds r0, r3, 0
+ adds r0, 0x76
+ ldrh r0, [r0]
+ lsls r0, 4
+ subs r0, 0x42
+ strh r0, [r1, 0x22]
+ ldr r1, [r3, 0x20]
+ ldr r0, _080FBE60
+ b _080FBE8C
+ .align 2, 0
+_080FBE5C: .4byte gUnknown_020388CC
+_080FBE60: .4byte sub_80FBEA4
+_080FBE64:
+ adds r0, r3, 0
+ adds r0, 0x74
+ ldrh r0, [r0]
+ lsls r0, 3
+ adds r0, 0x4
+ movs r2, 0
+ strh r0, [r1, 0x20]
+ ldr r1, [r3, 0x20]
+ adds r0, r3, 0
+ adds r0, 0x76
+ ldrh r0, [r0]
+ lsls r0, 3
+ adds r0, 0x4
+ strh r0, [r1, 0x22]
+ ldr r0, [r3, 0x20]
+ strh r2, [r0, 0x24]
+ ldr r0, [r3, 0x20]
+ strh r2, [r0, 0x26]
+ ldr r1, [r3, 0x20]
+ ldr r0, _080FBEA0
+_080FBE8C:
+ str r0, [r1, 0x1C]
+ adds r1, 0x3E
+ ldrb r2, [r1]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1]
+_080FBE9A:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FBEA0: .4byte sub_80FBF34
+ thumb_func_end sub_80FBE24
+
+ thumb_func_start sub_80FBEA4
+sub_80FBEA4: @ 80FBEA4
+ push {r4,lr}
+ adds r3, r0, 0
+ ldr r0, _080FBF08
+ ldr r1, [r0]
+ adds r0, r1, 0
+ adds r0, 0x5C
+ movs r4, 0
+ ldrsh r2, [r0, r4]
+ lsls r2, 1
+ negs r2, r2
+ strh r2, [r3, 0x24]
+ adds r1, 0x5E
+ movs r4, 0
+ ldrsh r0, [r1, r4]
+ lsls r0, 1
+ negs r0, r0
+ strh r0, [r3, 0x26]
+ ldrh r1, [r3, 0x22]
+ adds r1, r0
+ adds r0, r3, 0
+ adds r0, 0x29
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ adds r0, r1
+ strh r0, [r3, 0x2E]
+ ldrh r1, [r3, 0x20]
+ adds r1, r2
+ adds r2, r3, 0
+ adds r2, 0x28
+ ldrb r2, [r2]
+ lsls r2, 24
+ asrs r2, 24
+ adds r2, r1
+ strh r2, [r3, 0x30]
+ adds r0, 0x8
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0xB0
+ bhi _080FBF04
+ lsls r0, r2, 16
+ asrs r2, r0, 16
+ movs r0, 0x8
+ negs r0, r0
+ cmp r2, r0
+ blt _080FBF04
+ cmp r2, 0xF8
+ ble _080FBF0C
+_080FBF04:
+ movs r0, 0
+ b _080FBF0E
+ .align 2, 0
+_080FBF08: .4byte gUnknown_020388CC
+_080FBF0C:
+ movs r0, 0x1
+_080FBF0E:
+ strh r0, [r3, 0x32]
+ movs r1, 0x32
+ ldrsh r0, [r3, r1]
+ cmp r0, 0x1
+ bne _080FBF20
+ adds r0, r3, 0
+ bl sub_80FBF40
+ b _080FBF2C
+_080FBF20:
+ adds r0, r3, 0
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+_080FBF2C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80FBEA4
+
+ thumb_func_start sub_80FBF34
+sub_80FBF34: @ 80FBF34
+ push {lr}
+ bl sub_80FBF40
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80FBF34
+
+ thumb_func_start sub_80FBF40
+sub_80FBF40: @ 80FBF40
+ push {lr}
+ adds r2, r0, 0
+ ldr r0, _080FBF80
+ ldr r0, [r0]
+ adds r0, 0x7E
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080FBF84
+ ldrh r0, [r2, 0x3C]
+ adds r0, 0x1
+ strh r0, [r2, 0x3C]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x10
+ ble _080FBF90
+ movs r0, 0
+ strh r0, [r2, 0x3C]
+ adds r3, r2, 0
+ adds r3, 0x3E
+ ldrb r2, [r3]
+ lsrs r1, r2, 2
+ movs r0, 0x1
+ eors r1, r0
+ ands r1, r0
+ lsls r1, 2
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+ b _080FBF90
+ .align 2, 0
+_080FBF80: .4byte gUnknown_020388CC
+_080FBF84:
+ adds r2, 0x3E
+ ldrb r1, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+_080FBF90:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80FBF40
+
+ thumb_func_start sub_80FBF94
+sub_80FBF94: @ 80FBF94
+ push {lr}
+ ldr r0, _080FBFB0
+ ldr r1, [r0]
+ adds r0, r1, 0
+ adds r0, 0x7F
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080FBFAA
+ adds r1, 0x7E
+ movs r0, 0x1
+ strb r0, [r1]
+_080FBFAA:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FBFB0: .4byte gUnknown_020388CC
+ thumb_func_end sub_80FBF94
+
+ thumb_func_start sub_80FBFB4
+sub_80FBFB4: @ 80FBFB4
+ push {lr}
+ adds r3, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ lsls r2, 16
+ lsrs r2, 16
+ cmp r1, 0x56
+ bne _080FBFCA
+ bl GetSecretBaseMapName
+ b _080FBFF2
+_080FBFCA:
+ cmp r1, 0x57
+ bhi _080FBFE4
+ ldr r0, _080FBFE0
+ lsls r1, 3
+ adds r0, 0x4
+ adds r1, r0
+ ldr r1, [r1]
+ adds r0, r3, 0
+ bl StringCopy
+ b _080FBFF2
+ .align 2, 0
+_080FBFE0: .4byte gRegionMapLocations
+_080FBFE4:
+ cmp r2, 0
+ bne _080FBFEA
+ movs r2, 0x12
+_080FBFEA:
+ adds r0, r3, 0
+ movs r1, 0
+ bl StringFill
+_080FBFF2:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80FBFB4
+
+ thumb_func_start sub_80FBFF8
+sub_80FBFF8: @ 80FBFF8
+ push {lr}
+ lsls r1, 16
+ lsrs r1, 16
+ cmp r1, 0x56
+ beq _080FC014
+ cmp r1, 0x57
+ bne _080FC020
+ ldr r1, _080FC010
+ bl StringCopy
+ b _080FC026
+ .align 2, 0
+_080FC010: .4byte gOtherText_Ferry
+_080FC014:
+ ldr r1, _080FC01C
+ bl StringCopy
+ b _080FC026
+ .align 2, 0
+_080FC01C: .4byte gOtherText_SecretBase
+_080FC020:
+ movs r2, 0
+ bl sub_80FBFB4
+_080FC026:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80FBFF8
+
+ thumb_func_start sub_80FC02C
+sub_80FC02C: @ 80FC02C
+ push {lr}
+ lsls r1, 16
+ lsrs r1, 16
+ cmp r1, 0x42
+ beq _080FC03C
+ bl sub_80FBFF8
+ b _080FC042
+_080FC03C:
+ ldr r1, _080FC048
+ bl StringCopy
+_080FC042:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080FC048: .4byte gOtherText_Hideout
+ thumb_func_end sub_80FC02C
+
+ thumb_func_start sub_80FC04C
+sub_80FC04C: @ 80FC04C
+ push {r4,r5,lr}
+ ldr r5, [sp, 0xC]
+ lsls r0, 16
+ ldr r4, _080FC070
+ lsrs r0, 13
+ adds r0, r4
+ ldrb r4, [r0]
+ strh r4, [r1]
+ ldrb r1, [r0, 0x1]
+ strh r1, [r2]
+ ldrb r1, [r0, 0x2]
+ strh r1, [r3]
+ ldrb r0, [r0, 0x3]
+ strh r0, [r5]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FC070: .4byte gRegionMapLocations
+ thumb_func_end sub_80FC04C
+
+ thumb_func_start sub_80FC074
+sub_80FC074: @ 80FC074
+ push {r4,lr}
+ ldr r0, _080FC090
+ ldr r1, _080FC094
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x9
+ bls _080FC084
+ b _080FC1F2
+_080FC084:
+ lsls r0, 2
+ ldr r1, _080FC098
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080FC090: .4byte gMain
+_080FC094: .4byte 0x0000043c
+_080FC098: .4byte _080FC09C
+ .align 2, 0
+_080FC09C:
+ .4byte _080FC0C4
+ .4byte _080FC104
+ .4byte _080FC110
+ .4byte _080FC120
+ .4byte _080FC15C
+ .4byte _080FC170
+ .4byte _080FC184
+ .4byte _080FC1A4
+ .4byte _080FC1AA
+ .4byte _080FC1C4
+_080FC0C4:
+ movs r0, 0
+ bl SetVBlankCallback
+ movs r0, 0x80
+ lsls r0, 19
+ movs r1, 0
+ strh r1, [r0]
+ adds r0, 0x10
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x4
+ strh r1, [r0]
+ subs r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x4
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ bl ResetPaletteFade
+ bl ResetSpriteData
+ bl FreeSpriteTileRanges
+ bl FreeAllSpritePalettes
+ b _080FC1E6
+_080FC104:
+ ldr r0, _080FC10C
+ bl SetUpWindowConfig
+ b _080FC1E6
+ .align 2, 0
+_080FC10C: .4byte gWindowConfig_81E7224
+_080FC110:
+ ldr r0, _080FC11C
+ bl InitMenuWindow
+ bl MenuZeroFillScreen
+ b _080FC1E6
+ .align 2, 0
+_080FC11C: .4byte gWindowConfig_81E7224
+_080FC120:
+ ldr r4, _080FC158
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_80FA8EC
+ movs r0, 0
+ movs r1, 0
+ bl sub_80FBB3C
+ movs r0, 0x1
+ movs r1, 0x1
+ bl sub_80FBCF0
+ adds r1, r4, 0
+ subs r1, 0x8
+ ldrh r0, [r1, 0x1C]
+ strh r0, [r1, 0x6]
+ movs r2, 0xA4
+ lsls r2, 4
+ adds r4, r2
+ adds r0, r4, 0
+ movs r1, 0
+ movs r2, 0xC
+ bl StringFill
+ bl sub_80FC254
+ b _080FC1E6
+ .align 2, 0
+_080FC158: .4byte 0x02000008
+_080FC15C:
+ ldr r0, _080FC168
+ ldr r1, _080FC16C
+ bl LZ77UnCompVram
+ b _080FC1E6
+ .align 2, 0
+_080FC168: .4byte gUnknown_083E773C
+_080FC16C: .4byte 0x0600c000
+_080FC170:
+ ldr r0, _080FC17C
+ ldr r1, _080FC180
+ bl LZ77UnCompVram
+ b _080FC1E6
+ .align 2, 0
+_080FC17C: .4byte gUnknown_083E7774
+_080FC180: .4byte 0x0600f000
+_080FC184:
+ ldr r0, _080FC19C
+ movs r1, 0x10
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r0, _080FC1A0
+ movs r1, 0x1
+ movs r2, 0x90
+ movs r3, 0x1
+ bl sub_80729D8
+ b _080FC1E6
+ .align 2, 0
+_080FC19C: .4byte gUnknown_083E771C
+_080FC1A0: .4byte gOtherText_FlyToWhere
+_080FC1A4:
+ bl sub_80FC31C
+ b _080FC1E6
+_080FC1AA:
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0x10
+ movs r2, 0
+ bl BlendPalettes
+ ldr r0, _080FC1C0
+ bl SetVBlankCallback
+ b _080FC1E6
+ .align 2, 0
+_080FC1C0: .4byte sub_80FC214
+_080FC1C4:
+ ldr r1, _080FC1F8
+ movs r0, 0
+ strh r0, [r1]
+ subs r1, 0x46
+ ldr r2, _080FC1FC
+ adds r0, r2, 0
+ strh r0, [r1]
+ subs r1, 0xA
+ ldr r2, _080FC200
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r0, _080FC204
+ bl sub_80FC244
+ ldr r0, _080FC208
+ bl SetMainCallback2
+_080FC1E6:
+ ldr r1, _080FC20C
+ ldr r0, _080FC210
+ adds r1, r0
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+_080FC1F2:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FC1F8: .4byte REG_BLDCNT
+_080FC1FC: .4byte 0x00001e0d
+_080FC200: .4byte 0x00001741
+_080FC204: .4byte sub_80FC5B4
+_080FC208: .4byte sub_80FC228
+_080FC20C: .4byte gMain
+_080FC210: .4byte 0x0000043c
+ thumb_func_end sub_80FC074
+
+ thumb_func_start sub_80FC214
+sub_80FC214: @ 80FC214
+ push {lr}
+ bl LoadOam
+ bl ProcessSpriteCopyRequests
+ bl TransferPlttBuffer
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80FC214
+
+ thumb_func_start sub_80FC228
+sub_80FC228: @ 80FC228
+ push {lr}
+ ldr r0, _080FC240
+ ldr r0, [r0]
+ bl _call_via_r0
+ bl AnimateSprites
+ bl BuildOamBuffer
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FC240: .4byte 0x02000000
+ thumb_func_end sub_80FC228
+
+ thumb_func_start sub_80FC244
+sub_80FC244: @ 80FC244
+ ldr r1, _080FC250
+ str r0, [r1]
+ movs r0, 0
+ strh r0, [r1, 0x4]
+ bx lr
+ .align 2, 0
+_080FC250: .4byte 0x02000000
+ thumb_func_end sub_80FC244
+
+ thumb_func_start sub_80FC254
+sub_80FC254: @ 80FC254
+ push {r4,r5,lr}
+ ldr r4, _080FC2AC
+ ldrb r0, [r4, 0x1E]
+ cmp r0, 0x2
+ beq _080FC262
+ cmp r0, 0x4
+ bne _080FC2EC
+_080FC262:
+ movs r1, 0
+ ldr r2, _080FC2B0
+ adds r5, r4, 0
+_080FC268:
+ lsls r0, r1, 3
+ adds r4, r0, r2
+ ldrh r0, [r5, 0x1C]
+ ldrh r3, [r4, 0x4]
+ cmp r0, r3
+ bne _080FC2B4
+ ldrh r0, [r4, 0x6]
+ bl FlagGet
+ lsls r0, 24
+ cmp r0, 0
+ beq _080FC2BE
+ movs r0, 0x10
+ movs r1, 0xE
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuDrawTextWindow
+ adds r0, r5, 0
+ adds r0, 0x8
+ movs r1, 0x11
+ movs r2, 0xF
+ bl MenuPrint
+ ldrb r0, [r5, 0x1F]
+ ldr r1, [r4]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x1D
+ movs r2, 0x11
+ bl sub_8072B4C
+ b _080FC310
+ .align 2, 0
+_080FC2AC: .4byte 0x02000000
+_080FC2B0: .4byte gUnknown_083E79C0
+_080FC2B4:
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0
+ beq _080FC268
+_080FC2BE:
+ movs r0, 0
+ cmp r0, 0
+ bne _080FC310
+ movs r0, 0x10
+ movs r1, 0x10
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuDrawTextWindow
+ ldr r0, _080FC2E8
+ movs r1, 0x11
+ movs r2, 0x11
+ bl MenuPrint
+ movs r0, 0x10
+ movs r1, 0xE
+ movs r2, 0x1D
+ movs r3, 0xF
+ bl MenuZeroFillWindowRect
+ b _080FC310
+ .align 2, 0
+_080FC2E8: .4byte 0x02000008
+_080FC2EC:
+ movs r0, 0x10
+ movs r1, 0x10
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuDrawTextWindow
+ ldr r1, _080FC318
+ adds r0, r4, r1
+ movs r1, 0x11
+ movs r2, 0x11
+ bl MenuPrint
+ movs r0, 0x10
+ movs r1, 0xE
+ movs r2, 0x1D
+ movs r3, 0xF
+ bl MenuZeroFillWindowRect
+_080FC310:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FC318: .4byte 0x00000a48
+ thumb_func_end sub_80FC254
+
+ thumb_func_start sub_80FC31C
+sub_80FC31C: @ 80FC31C
+ push {r4,lr}
+ sub sp, 0x8
+ ldr r0, _080FC360
+ ldr r4, _080FC364
+ adds r1, r4, 0
+ bl LZ77UnCompWram
+ str r4, [sp]
+ ldr r1, _080FC368
+ ldr r0, [sp, 0x4]
+ ands r0, r1
+ movs r1, 0xE0
+ lsls r1, 1
+ orrs r0, r1
+ ldr r1, _080FC36C
+ ands r0, r1
+ movs r1, 0x80
+ lsls r1, 10
+ orrs r0, r1
+ str r0, [sp, 0x4]
+ mov r0, sp
+ bl LoadSpriteSheet
+ ldr r0, _080FC370
+ bl LoadSpritePalette
+ bl sub_80FC374
+ bl sub_80FC484
+ add sp, 0x8
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FC360: .4byte gUnknown_083E784C
+_080FC364: .4byte 0x02000888
+_080FC368: .4byte 0xffff0000
+_080FC36C: .4byte 0x0000ffff
+_080FC370: .4byte gUnknown_083E79CC
+ thumb_func_end sub_80FC31C
+
+ thumb_func_start sub_80FC374
+sub_80FC374: @ 80FC374
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x1C
+ ldr r0, _080FC3D4
+ str r0, [sp, 0xC]
+ movs r1, 0
+ mov r9, r1
+ mov r2, sp
+ adds r2, 0x6
+ str r2, [sp, 0x14]
+ mov r3, sp
+ adds r3, 0xA
+ str r3, [sp, 0x18]
+ mov r0, sp
+ adds r0, 0x8
+ str r0, [sp, 0x10]
+ add r1, sp, 0x4
+ mov r10, r1
+_080FC39E:
+ ldr r2, [sp, 0x18]
+ str r2, [sp]
+ mov r0, r9
+ add r1, sp, 0x4
+ mov r2, sp
+ adds r2, 0x6
+ ldr r3, [sp, 0x10]
+ bl sub_80FC04C
+ mov r3, r10
+ ldrh r0, [r3]
+ adds r0, 0x1
+ lsls r0, 3
+ adds r0, 0x4
+ strh r0, [r3]
+ mov r1, sp
+ ldrh r0, [r1, 0x6]
+ adds r0, 0x2
+ lsls r0, 3
+ adds r0, 0x4
+ strh r0, [r1, 0x6]
+ ldr r2, [sp, 0x10]
+ ldrh r0, [r2]
+ cmp r0, 0x2
+ bne _080FC3D8
+ movs r7, 0x1
+ b _080FC3E4
+ .align 2, 0
+_080FC3D4: .4byte 0x0000080f
+_080FC3D8:
+ ldr r3, [sp, 0x18]
+ ldrh r0, [r3]
+ movs r7, 0
+ cmp r0, 0x2
+ bne _080FC3E4
+ movs r7, 0x2
+_080FC3E4:
+ mov r0, r10
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ ldr r3, [sp, 0x14]
+ movs r0, 0
+ ldrsh r2, [r3, r0]
+ ldr r0, _080FC430
+ movs r3, 0xA
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x40
+ beq _080FC458
+ ldr r1, _080FC434
+ mov r8, r1
+ lsls r4, r5, 4
+ adds r0, r4, r5
+ lsls r6, r0, 2
+ adds r2, r6, r1
+ lsls r3, r7, 6
+ ldrb r1, [r2, 0x1]
+ movs r0, 0x3F
+ ands r0, r1
+ orrs r0, r3
+ strb r0, [r2, 0x1]
+ ldr r0, [sp, 0xC]
+ bl FlagGet
+ lsls r0, 24
+ cmp r0, 0
+ beq _080FC43C
+ mov r0, r8
+ adds r0, 0x1C
+ adds r0, r6, r0
+ ldr r1, _080FC438
+ str r1, [r0]
+ b _080FC442
+ .align 2, 0
+_080FC430: .4byte gSpriteTemplate_83E7A38
+_080FC434: .4byte gSprites
+_080FC438: .4byte sub_80FC55C
+_080FC43C:
+ adds r0, r7, 0x3
+ lsls r0, 16
+ lsrs r7, r0, 16
+_080FC442:
+ adds r4, r5
+ lsls r4, 2
+ ldr r0, _080FC480
+ adds r4, r0
+ lsls r1, r7, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl StartSpriteAnim
+ mov r2, r9
+ strh r2, [r4, 0x2E]
+_080FC458:
+ ldr r0, [sp, 0xC]
+ adds r0, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+ str r0, [sp, 0xC]
+ mov r0, r9
+ adds r0, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+ mov r9, r0
+ cmp r0, 0xF
+ bls _080FC39E
+ add sp, 0x1C
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FC480: .4byte gSprites
+ thumb_func_end sub_80FC374
+
+ thumb_func_start sub_80FC484
+sub_80FC484: @ 80FC484
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0xC
+ movs r0, 0
+ mov r8, r0
+ ldr r6, _080FC54C
+ ldrh r0, [r6, 0x2]
+ cmp r0, 0x58
+ beq _080FC53C
+ mov r5, sp
+ adds r5, 0x6
+ add r7, sp, 0x4
+ ldr r1, _080FC550
+ mov r9, r1
+ movs r0, 0x1C
+ add r0, r9
+ mov r10, r0
+_080FC4AC:
+ mov r1, r8
+ lsls r4, r1, 2
+ adds r0, r4, r6
+ ldrh r0, [r0]
+ bl FlagGet
+ lsls r0, 24
+ cmp r0, 0
+ beq _080FC524
+ adds r0, r6, 0x2
+ adds r0, r4, r0
+ ldrh r6, [r0]
+ mov r0, sp
+ adds r0, 0xA
+ str r0, [sp]
+ adds r0, r6, 0
+ add r1, sp, 0x4
+ adds r2, r5, 0
+ add r3, sp, 0x8
+ bl sub_80FC04C
+ ldrh r0, [r7]
+ adds r0, 0x1
+ lsls r0, 3
+ strh r0, [r7]
+ ldrh r0, [r5]
+ adds r0, 0x2
+ lsls r0, 3
+ strh r0, [r5]
+ movs r0, 0
+ ldrsh r1, [r7, r0]
+ movs r0, 0
+ ldrsh r2, [r5, r0]
+ ldr r0, _080FC554
+ movs r3, 0xA
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x40
+ beq _080FC524
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ mov r1, r9
+ adds r4, r2, r1
+ ldrb r1, [r4, 0x3]
+ movs r0, 0x3F
+ ands r0, r1
+ movs r1, 0x40
+ orrs r0, r1
+ strb r0, [r4, 0x3]
+ add r2, r10
+ ldr r0, _080FC558
+ str r0, [r2]
+ adds r0, r4, 0
+ movs r1, 0x6
+ bl StartSpriteAnim
+ strh r6, [r4, 0x2E]
+_080FC524:
+ mov r0, r8
+ adds r0, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ ldr r6, _080FC54C
+ lsls r0, 2
+ adds r1, r6, 0x2
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r0, 0x58
+ bne _080FC4AC
+_080FC53C:
+ add sp, 0xC
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FC54C: .4byte gUnknown_083E79D4
+_080FC550: .4byte gSprites
+_080FC554: .4byte gSpriteTemplate_83E7A38
+_080FC558: .4byte sub_80FC55C
+ thumb_func_end sub_80FC484
+
+ thumb_func_start sub_80FC55C
+sub_80FC55C: @ 80FC55C
+ push {lr}
+ adds r2, r0, 0
+ ldr r0, _080FC59C
+ ldrh r1, [r0, 0x1C]
+ movs r3, 0x2E
+ ldrsh r0, [r2, r3]
+ cmp r1, r0
+ bne _080FC5A0
+ ldrh r0, [r2, 0x30]
+ adds r0, 0x1
+ strh r0, [r2, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x10
+ ble _080FC5AE
+ movs r0, 0
+ strh r0, [r2, 0x30]
+ adds r3, r2, 0
+ adds r3, 0x3E
+ ldrb r2, [r3]
+ lsrs r1, r2, 2
+ movs r0, 0x1
+ eors r1, r0
+ ands r1, r0
+ lsls r1, 2
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+ b _080FC5AE
+ .align 2, 0
+_080FC59C: .4byte 0x02000000
+_080FC5A0:
+ movs r0, 0x10
+ strh r0, [r2, 0x30]
+ adds r2, 0x3E
+ ldrb r1, [r2]
+ subs r0, 0x15
+ ands r0, r1
+ strb r0, [r2]
+_080FC5AE:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80FC55C
+
+ thumb_func_start sub_80FC5B4
+sub_80FC5B4: @ 80FC5B4
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r4, _080FC5C8
+ ldrh r1, [r4, 0x4]
+ cmp r1, 0
+ beq _080FC5CC
+ cmp r1, 0x1
+ beq _080FC5E4
+ b _080FC5F4
+ .align 2, 0
+_080FC5C8: .4byte 0x02000000
+_080FC5CC:
+ movs r0, 0x1
+ negs r0, r0
+ str r1, [sp]
+ movs r1, 0
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ ldrh r0, [r4, 0x4]
+ adds r0, 0x1
+ strh r0, [r4, 0x4]
+ b _080FC5F4
+_080FC5E4:
+ bl UpdatePaletteFade
+ lsls r0, 24
+ cmp r0, 0
+ bne _080FC5F4
+ ldr r0, _080FC5FC
+ bl sub_80FC244
+_080FC5F4:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FC5FC: .4byte sub_80FC600
+ thumb_func_end sub_80FC5B4
+
+ thumb_func_start sub_80FC600
+sub_80FC600: @ 80FC600
+ push {r4,lr}
+ ldr r0, _080FC620
+ ldrh r0, [r0, 0x4]
+ cmp r0, 0
+ bne _080FC68A
+ bl sub_80FAB60
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x5
+ bhi _080FC68A
+ lsls r0, 2
+ ldr r1, _080FC624
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080FC620: .4byte 0x02000000
+_080FC624: .4byte _080FC628
+ .align 2, 0
+_080FC628:
+ .4byte _080FC68A
+ .4byte _080FC68A
+ .4byte _080FC68A
+ .4byte _080FC640
+ .4byte _080FC646
+ .4byte _080FC674
+_080FC640:
+ bl sub_80FC254
+ b _080FC68A
+_080FC646:
+ ldr r4, _080FC668
+ ldrb r0, [r4, 0x1E]
+ cmp r0, 0x2
+ beq _080FC652
+ cmp r0, 0x4
+ bne _080FC68A
+_080FC652:
+ movs r0, 0x5
+ bl m4aSongNumStart
+ ldr r1, _080FC66C
+ adds r0, r4, r1
+ movs r1, 0x1
+ strb r1, [r0]
+ ldr r0, _080FC670
+ bl sub_80FC244
+ b _080FC68A
+ .align 2, 0
+_080FC668: .4byte 0x02000000
+_080FC66C: .4byte 0x00000a6e
+_080FC670: .4byte sub_80FC69C
+_080FC674:
+ movs r0, 0x5
+ bl m4aSongNumStart
+ ldr r0, _080FC690
+ ldr r1, _080FC694
+ adds r0, r1
+ movs r1, 0
+ strb r1, [r0]
+ ldr r0, _080FC698
+ bl sub_80FC244
+_080FC68A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FC690: .4byte 0x02000000
+_080FC694: .4byte 0x00000a6e
+_080FC698: .4byte sub_80FC69C
+ thumb_func_end sub_80FC600
+
+ thumb_func_start sub_80FC69C
+sub_80FC69C: @ 80FC69C
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r4, _080FC6B0
+ ldrh r1, [r4, 0x4]
+ cmp r1, 0
+ beq _080FC6B4
+ cmp r1, 0x1
+ beq _080FC6CC
+ b _080FC792
+ .align 2, 0
+_080FC6B0: .4byte 0x02000000
+_080FC6B4:
+ movs r0, 0x1
+ negs r0, r0
+ str r1, [sp]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldrh r0, [r4, 0x4]
+ adds r0, 0x1
+ strh r0, [r4, 0x4]
+ b _080FC792
+_080FC6CC:
+ bl UpdatePaletteFade
+ lsls r0, 24
+ cmp r0, 0
+ bne _080FC792
+ bl sub_80FAB10
+ ldr r1, _080FC6F4
+ adds r0, r4, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080FC78C
+ ldrh r0, [r4, 0x1C]
+ cmp r0, 0xF
+ beq _080FC724
+ cmp r0, 0xF
+ bgt _080FC6F8
+ cmp r0, 0
+ beq _080FC710
+ b _080FC748
+ .align 2, 0
+_080FC6F4: .4byte 0x00000a6e
+_080FC6F8:
+ cmp r0, 0x3A
+ beq _080FC708
+ cmp r0, 0x49
+ bne _080FC748
+ movs r0, 0x16
+ bl sub_8053538
+ b _080FC786
+_080FC708:
+ movs r0, 0x15
+ bl sub_8053538
+ b _080FC786
+_080FC710:
+ ldr r0, _080FC720
+ ldrb r0, [r0, 0x8]
+ movs r1, 0xD
+ cmp r0, 0
+ bne _080FC73A
+ movs r1, 0xC
+ b _080FC73A
+ .align 2, 0
+_080FC720: .4byte gSaveBlock2
+_080FC724:
+ ldr r0, _080FC744
+ bl FlagGet
+ lsls r0, 24
+ movs r1, 0xB
+ cmp r0, 0
+ beq _080FC73A
+ ldrb r0, [r4, 0x1F]
+ cmp r0, 0
+ bne _080FC73A
+ movs r1, 0x14
+_080FC73A:
+ adds r0, r1, 0
+ bl sub_8053538
+ b _080FC786
+ .align 2, 0
+_080FC744: .4byte 0x00000854
+_080FC748:
+ ldr r3, _080FC764
+ ldr r0, _080FC768
+ ldrh r1, [r0, 0x1C]
+ lsls r0, r1, 1
+ adds r2, r0, r1
+ adds r0, r3, 0x2
+ adds r1, r2, r0
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _080FC76C
+ bl sub_8053538
+ b _080FC786
+ .align 2, 0
+_080FC764: .4byte gUnknown_083E7920
+_080FC768: .4byte 0x02000000
+_080FC76C:
+ adds r0, r2, r3
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ adds r1, r3, 0x1
+ adds r1, r2, r1
+ ldrb r1, [r1]
+ lsls r1, 24
+ asrs r1, 24
+ movs r2, 0x1
+ negs r2, r2
+ bl warp1_set_2
+_080FC786:
+ bl sub_80865BC
+ b _080FC792
+_080FC78C:
+ ldr r0, _080FC79C
+ bl SetMainCallback2
+_080FC792:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FC79C: .4byte sub_808AD58
+ thumb_func_end sub_80FC69C
+
+ thumb_func_start sub_80FC7A0
+sub_80FC7A0: @ 80FC7A0
+ push {lr}
+ ldr r2, _080FC7E8
+ ldr r1, [r0, 0x4]
+ str r1, [r2]
+ ldr r2, _080FC7EC
+ ldrb r1, [r0, 0x1F]
+ strb r1, [r2]
+ ldr r2, _080FC7F0
+ ldrb r1, [r0, 0x19]
+ strb r1, [r2]
+ ldr r2, _080FC7F4
+ ldrb r1, [r0, 0x1A]
+ strb r1, [r2]
+ ldr r2, _080FC7F8
+ ldrb r1, [r0, 0x1B]
+ strb r1, [r2]
+ ldr r2, _080FC7FC
+ ldrb r1, [r0, 0x1C]
+ strb r1, [r2]
+ ldr r2, _080FC800
+ ldrb r1, [r0, 0x1D]
+ strb r1, [r2]
+ ldr r2, _080FC804
+ ldrb r1, [r0, 0x1E]
+ strb r1, [r2]
+ ldrb r0, [r0]
+ subs r0, 0x2
+ cmp r0, 0x22
+ bls _080FC7DC
+ b _080FC928
+_080FC7DC:
+ lsls r0, 2
+ ldr r1, _080FC808
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080FC7E8: .4byte gUnknown_03005DEC
+_080FC7EC: .4byte gUnknown_03005E00
+_080FC7F0: .4byte gUnknown_03005DE8
+_080FC7F4: .4byte gUnknown_03005DFC
+_080FC7F8: .4byte gUnknown_03005DF8
+_080FC7FC: .4byte gUnknown_03005DF0
+_080FC800: .4byte gUnknown_03005E04
+_080FC804: .4byte gUnknown_03005DF4
+_080FC808: .4byte _080FC80C
+ .align 2, 0
+_080FC80C:
+ .4byte _080FC898
+ .4byte _080FC928
+ .4byte _080FC928
+ .4byte _080FC928
+ .4byte _080FC8F8
+ .4byte _080FC928
+ .4byte _080FC89E
+ .4byte _080FC8A4
+ .4byte _080FC8B8
+ .4byte _080FC8CA
+ .4byte _080FC928
+ .4byte _080FC8E0
+ .4byte _080FC928
+ .4byte _080FC928
+ .4byte _080FC928
+ .4byte _080FC928
+ .4byte _080FC928
+ .4byte _080FC928
+ .4byte _080FC928
+ .4byte _080FC928
+ .4byte _080FC928
+ .4byte _080FC928
+ .4byte _080FC928
+ .4byte _080FC928
+ .4byte _080FC928
+ .4byte _080FC928
+ .4byte _080FC928
+ .4byte _080FC928
+ .4byte _080FC8E6
+ .4byte _080FC8C4
+ .4byte _080FC8EC
+ .4byte _080FC8F2
+ .4byte _080FC928
+ .4byte _080FC928
+ .4byte _080FC904
+_080FC898:
+ bl sub_80FCAA4
+ b _080FC928
+_080FC89E:
+ bl sub_80FCB5C
+ b _080FC928
+_080FC8A4:
+ bl sub_80FCD54
+ ldr r0, _080FC8B4
+ ldrb r0, [r0]
+ bl sub_80FCC18
+ b _080FC928
+ .align 2, 0
+_080FC8B4: .4byte gUnknown_03005E00
+_080FC8B8:
+ bl sub_80FCD54
+ bl sub_80FCEA4
+ bl sub_80FCCBC
+_080FC8C4:
+ bl sub_80FCEA4
+ b _080FC928
+_080FC8CA:
+ bl sub_80FCD54
+ bl sub_80FD06C
+ bl sub_80FD06C
+ bl sub_80FD114
+ bl sub_80FCCBC
+ b _080FC928
+_080FC8E0:
+ bl sub_80FCF3C
+ b _080FC928
+_080FC8E6:
+ bl sub_80FCD54
+ b _080FC928
+_080FC8EC:
+ bl sub_80FD06C
+ b _080FC928
+_080FC8F2:
+ bl sub_80FD114
+ b _080FC928
+_080FC8F8:
+ bl sub_80FCAC4
+ movs r0, 0x3
+ bl sub_80FC92C
+ b _080FC928
+_080FC904:
+ bl sub_80FCD54
+ bl sub_80FD06C
+ bl sub_80FD114
+ bl sub_80FCCBC
+ bl sub_80FCB5C
+ bl sub_80FCB5C
+ movs r0, 0x2
+ bl sub_80FC92C
+ movs r0, 0x4
+ bl sub_80FC9E4
+_080FC928:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80FC7A0
+
+ thumb_func_start sub_80FC92C
+sub_80FC92C: @ 80FC92C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ lsls r0, 24
+ lsrs r7, r0, 24
+ movs r2, 0
+ ldr r0, _080FC9CC
+ mov r8, r0
+ ldrb r0, [r0]
+ cmp r2, r0
+ bcs _080FC9BE
+ ldr r1, _080FC9D0
+ mov r12, r1
+ ldr r3, _080FC9D4
+ mov r10, r3
+ ldr r0, _080FC9D8
+ mov r9, r0
+_080FC952:
+ ldr r1, _080FC9DC
+ ldrb r0, [r1]
+ adds r0, r2
+ mov r3, r10
+ ldrb r1, [r3]
+ muls r0, r1
+ lsls r0, 1
+ ldr r3, _080FC9E0
+ ldr r1, [r3]
+ adds r1, r0
+ mov r3, r9
+ ldrb r0, [r3]
+ lsls r0, 1
+ adds r3, r1, r0
+ movs r4, 0
+ adds r5, r2, 0x1
+ mov r0, r12
+ ldrb r0, [r0]
+ cmp r4, r0
+ bcs _080FC9B2
+ movs r6, 0x80
+ lsls r6, 8
+_080FC97E:
+ ldrh r1, [r3]
+ adds r0, r6, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _080FC9A2
+ movs r0, 0x1F
+ ands r0, r1
+ adds r0, r7
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x1F
+ bls _080FC998
+ movs r2, 0x1F
+_080FC998:
+ lsls r0, r2, 10
+ lsls r1, r2, 5
+ orrs r0, r1
+ orrs r0, r2
+ strh r0, [r3]
+_080FC9A2:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r3, 0x2
+ mov r1, r12
+ ldrb r1, [r1]
+ cmp r4, r1
+ bcc _080FC97E
+_080FC9B2:
+ lsls r0, r5, 24
+ lsrs r2, r0, 24
+ mov r3, r8
+ ldrb r3, [r3]
+ cmp r2, r3
+ bcc _080FC952
+_080FC9BE:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FC9CC: .4byte gUnknown_03005DF0
+_080FC9D0: .4byte gUnknown_03005DF8
+_080FC9D4: .4byte gUnknown_03005E04
+_080FC9D8: .4byte gUnknown_03005DE8
+_080FC9DC: .4byte gUnknown_03005DFC
+_080FC9E0: .4byte gUnknown_03005DEC
+ thumb_func_end sub_80FC92C
+
+ thumb_func_start sub_80FC9E4
+sub_80FC9E4: @ 80FC9E4
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ movs r2, 0
+ ldr r0, _080FCA8C
+ ldrb r0, [r0]
+ cmp r2, r0
+ bcs _080FCA7C
+ ldr r1, _080FCA90
+ mov r10, r1
+_080FCA02:
+ ldr r3, _080FCA94
+ ldrb r0, [r3]
+ adds r0, r2
+ ldr r3, _080FCA98
+ ldrb r1, [r3]
+ muls r0, r1
+ lsls r0, 1
+ ldr r3, _080FCA9C
+ ldr r1, [r3]
+ adds r1, r0
+ ldr r3, _080FCAA0
+ ldrb r0, [r3]
+ lsls r0, 1
+ adds r3, r1, r0
+ movs r5, 0
+ adds r7, r2, 0x1
+ mov r0, r10
+ ldrb r0, [r0]
+ cmp r5, r0
+ bcs _080FCA70
+ movs r1, 0x80
+ lsls r1, 8
+ mov r9, r1
+ movs r0, 0x1F
+ mov r12, r0
+ mov r1, r8
+ subs r6, r0, r1
+_080FCA38:
+ ldrh r1, [r3]
+ mov r0, r9
+ ands r0, r1
+ cmp r0, 0
+ bne _080FCA60
+ movs r4, 0x1F
+ mov r2, r12
+ ands r2, r1
+ cmp r2, r6
+ ble _080FCA56
+ mov r1, r8
+ lsrs r0, r1, 1
+ subs r0, r4, r0
+ lsls r0, 24
+ lsrs r2, r0, 24
+_080FCA56:
+ lsls r0, r2, 10
+ lsls r1, r2, 5
+ orrs r0, r1
+ orrs r0, r2
+ strh r0, [r3]
+_080FCA60:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r3, 0x2
+ mov r0, r10
+ ldrb r0, [r0]
+ cmp r5, r0
+ bcc _080FCA38
+_080FCA70:
+ lsls r0, r7, 24
+ lsrs r2, r0, 24
+ ldr r1, _080FCA8C
+ ldrb r1, [r1]
+ cmp r2, r1
+ bcc _080FCA02
+_080FCA7C:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FCA8C: .4byte gUnknown_03005DF0
+_080FCA90: .4byte gUnknown_03005DF8
+_080FCA94: .4byte gUnknown_03005DFC
+_080FCA98: .4byte gUnknown_03005E04
+_080FCA9C: .4byte gUnknown_03005DEC
+_080FCAA0: .4byte gUnknown_03005DE8
+ thumb_func_end sub_80FC9E4
+
+ thumb_func_start sub_80FCAA4
+sub_80FCAA4: @ 80FCAA4
+ push {r4,r5,lr}
+ movs r4, 0
+ ldr r5, _080FCAC0
+_080FCAAA:
+ lsls r0, r4, 16
+ lsrs r0, 16
+ bl sub_80FD1C8
+ adds r4, 0x1
+ cmp r4, r5
+ bls _080FCAAA
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FCAC0: .4byte 0x00000c7f
+ thumb_func_end sub_80FCAA4
+
+ thumb_func_start sub_80FCAC4
+sub_80FCAC4: @ 80FCAC4
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ movs r2, 0
+ ldr r0, _080FCB44
+ ldrb r0, [r0]
+ cmp r2, r0
+ bcs _080FCB36
+ ldr r0, _080FCB48
+ mov r8, r0
+ ldr r3, _080FCB4C
+_080FCADC:
+ ldr r0, _080FCB50
+ ldrb r1, [r0]
+ adds r1, r2
+ ldr r0, _080FCB54
+ ldrb r0, [r0]
+ muls r0, r1
+ lsls r0, 1
+ mov r4, r8
+ ldr r1, [r4]
+ adds r1, r0
+ ldr r0, _080FCB58
+ ldrb r0, [r0]
+ lsls r0, 1
+ adds r4, r1, r0
+ movs r5, 0
+ adds r6, r2, 0x1
+ ldrb r0, [r3]
+ cmp r5, r0
+ bcs _080FCB2A
+ movs r0, 0x80
+ lsls r0, 8
+ adds r7, r0, 0
+_080FCB08:
+ ldrh r0, [r4]
+ ands r0, r7
+ cmp r0, 0
+ bne _080FCB1C
+ adds r0, r4, 0
+ str r3, [sp]
+ bl sub_80FD39C
+ strh r0, [r4]
+ ldr r3, [sp]
+_080FCB1C:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r4, 0x2
+ ldrb r0, [r3]
+ cmp r5, r0
+ bcc _080FCB08
+_080FCB2A:
+ lsls r0, r6, 24
+ lsrs r2, r0, 24
+ ldr r0, _080FCB44
+ ldrb r0, [r0]
+ cmp r2, r0
+ bcc _080FCADC
+_080FCB36:
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FCB44: .4byte gUnknown_03005DF0
+_080FCB48: .4byte gUnknown_03005DEC
+_080FCB4C: .4byte gUnknown_03005DF8
+_080FCB50: .4byte gUnknown_03005DFC
+_080FCB54: .4byte gUnknown_03005E04
+_080FCB58: .4byte gUnknown_03005DE8
+ thumb_func_end sub_80FCAC4
+
+ thumb_func_start sub_80FCB5C
+sub_80FCB5C: @ 80FCB5C
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x8
+ movs r2, 0
+ ldr r0, _080FCC00
+ ldrb r0, [r0]
+ cmp r2, r0
+ bcs _080FCBF2
+ ldr r0, _080FCC04
+ mov r8, r0
+ ldr r3, _080FCC08
+_080FCB74:
+ ldr r0, _080FCC0C
+ ldrb r1, [r0]
+ ldrb r0, [r3]
+ muls r0, r1
+ lsls r0, 1
+ mov r4, r8
+ ldr r1, [r4]
+ adds r1, r0
+ ldr r0, _080FCC10
+ ldrb r0, [r0]
+ adds r0, r2
+ lsls r0, 1
+ adds r4, r1, r0
+ ldrh r1, [r4]
+ mov r0, sp
+ strh r1, [r0]
+ movs r5, 0x1
+ ldrb r0, [r3]
+ lsls r0, 1
+ adds r4, r0
+ ldr r0, _080FCC14
+ ldrb r0, [r0]
+ subs r0, 0x1
+ adds r7, r2, 0x1
+ cmp r5, r0
+ bge _080FCBE6
+ ldr r6, _080FCC08
+_080FCBAA:
+ ldrh r0, [r4]
+ movs r2, 0x80
+ lsls r2, 8
+ adds r1, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _080FCBD0
+ ldrb r2, [r6]
+ lsls r2, 1
+ adds r2, r4, r2
+ mov r0, sp
+ adds r1, r4, 0
+ str r3, [sp, 0x4]
+ bl sub_80FD68C
+ strh r0, [r4]
+ mov r1, sp
+ strh r0, [r1]
+ ldr r3, [sp, 0x4]
+_080FCBD0:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldrb r0, [r6]
+ lsls r0, 1
+ adds r4, r0
+ ldr r0, _080FCC14
+ ldrb r0, [r0]
+ subs r0, 0x1
+ cmp r5, r0
+ blt _080FCBAA
+_080FCBE6:
+ lsls r0, r7, 24
+ lsrs r2, r0, 24
+ ldr r0, _080FCC00
+ ldrb r0, [r0]
+ cmp r2, r0
+ bcc _080FCB74
+_080FCBF2:
+ add sp, 0x8
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FCC00: .4byte gUnknown_03005DF8
+_080FCC04: .4byte gUnknown_03005DEC
+_080FCC08: .4byte gUnknown_03005E04
+_080FCC0C: .4byte gUnknown_03005DFC
+_080FCC10: .4byte gUnknown_03005DE8
+_080FCC14: .4byte gUnknown_03005DF0
+ thumb_func_end sub_80FCB5C
+
+ thumb_func_start sub_80FCC18
+sub_80FCC18: @ 80FCC18
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ movs r2, 0
+ ldr r0, _080FCCA4
+ ldrb r0, [r0]
+ cmp r2, r0
+ bcs _080FCC94
+ ldr r0, _080FCCA8
+ mov r9, r0
+ ldr r3, _080FCCAC
+_080FCC38:
+ ldr r0, _080FCCB0
+ ldrb r1, [r0]
+ adds r1, r2
+ ldr r0, _080FCCB4
+ ldrb r0, [r0]
+ muls r0, r1
+ lsls r0, 1
+ mov r4, r9
+ ldr r1, [r4]
+ adds r1, r0
+ ldr r0, _080FCCB8
+ ldrb r0, [r0]
+ lsls r0, 1
+ adds r4, r1, r0
+ movs r5, 0
+ adds r6, r2, 0x1
+ ldrb r0, [r3]
+ cmp r5, r0
+ bcs _080FCC88
+ movs r0, 0x80
+ lsls r0, 8
+ adds r7, r0, 0
+_080FCC64:
+ ldrh r0, [r4]
+ ands r0, r7
+ cmp r0, 0
+ bne _080FCC7A
+ adds r0, r4, 0
+ mov r1, r8
+ str r3, [sp]
+ bl sub_80FD3D0
+ strh r0, [r4]
+ ldr r3, [sp]
+_080FCC7A:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r4, 0x2
+ ldrb r0, [r3]
+ cmp r5, r0
+ bcc _080FCC64
+_080FCC88:
+ lsls r0, r6, 24
+ lsrs r2, r0, 24
+ ldr r0, _080FCCA4
+ ldrb r0, [r0]
+ cmp r2, r0
+ bcc _080FCC38
+_080FCC94:
+ add sp, 0x4
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FCCA4: .4byte gUnknown_03005DF0
+_080FCCA8: .4byte gUnknown_03005DEC
+_080FCCAC: .4byte gUnknown_03005DF8
+_080FCCB0: .4byte gUnknown_03005DFC
+_080FCCB4: .4byte gUnknown_03005E04
+_080FCCB8: .4byte gUnknown_03005DE8
+ thumb_func_end sub_80FCC18
+
+ thumb_func_start sub_80FCCBC
+sub_80FCCBC: @ 80FCCBC
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ movs r2, 0
+ ldr r0, _080FCD3C
+ ldrb r0, [r0]
+ cmp r2, r0
+ bcs _080FCD2E
+ ldr r0, _080FCD40
+ mov r8, r0
+ ldr r3, _080FCD44
+_080FCCD4:
+ ldr r0, _080FCD48
+ ldrb r1, [r0]
+ adds r1, r2
+ ldr r0, _080FCD4C
+ ldrb r0, [r0]
+ muls r0, r1
+ lsls r0, 1
+ mov r4, r8
+ ldr r1, [r4]
+ adds r1, r0
+ ldr r0, _080FCD50
+ ldrb r0, [r0]
+ lsls r0, 1
+ adds r4, r1, r0
+ movs r5, 0
+ adds r6, r2, 0x1
+ ldrb r0, [r3]
+ cmp r5, r0
+ bcs _080FCD22
+ movs r0, 0x80
+ lsls r0, 8
+ adds r7, r0, 0
+_080FCD00:
+ ldrh r0, [r4]
+ ands r0, r7
+ cmp r0, 0
+ bne _080FCD14
+ adds r0, r4, 0
+ str r3, [sp]
+ bl sub_80FD4DC
+ strh r0, [r4]
+ ldr r3, [sp]
+_080FCD14:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r4, 0x2
+ ldrb r0, [r3]
+ cmp r5, r0
+ bcc _080FCD00
+_080FCD22:
+ lsls r0, r6, 24
+ lsrs r2, r0, 24
+ ldr r0, _080FCD3C
+ ldrb r0, [r0]
+ cmp r2, r0
+ bcc _080FCCD4
+_080FCD2E:
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FCD3C: .4byte gUnknown_03005DF0
+_080FCD40: .4byte gUnknown_03005DEC
+_080FCD44: .4byte gUnknown_03005DF8
+_080FCD48: .4byte gUnknown_03005DFC
+_080FCD4C: .4byte gUnknown_03005E04
+_080FCD50: .4byte gUnknown_03005DE8
+ thumb_func_end sub_80FCCBC
+
+ thumb_func_start sub_80FCD54
+sub_80FCD54: @ 80FCD54
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ movs r7, 0
+ ldr r0, _080FCE8C
+ ldrb r0, [r0]
+ cmp r7, r0
+ bcs _080FCDE0
+ ldr r0, _080FCE90
+ mov r8, r0
+_080FCD6A:
+ ldr r0, _080FCE94
+ ldrb r1, [r0]
+ adds r1, r7
+ ldr r0, _080FCE98
+ ldrb r0, [r0]
+ muls r0, r1
+ lsls r0, 1
+ mov r2, r8
+ ldr r1, [r2]
+ adds r1, r0
+ ldr r0, _080FCE9C
+ ldrb r0, [r0]
+ lsls r0, 1
+ adds r5, r1, r0
+ adds r4, r5, 0x2
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_80FD50C
+ strh r0, [r5]
+ movs r6, 0x1
+ adds r5, r4, 0
+ ldr r0, _080FCEA0
+ ldrb r0, [r0]
+ subs r0, 0x1
+ adds r7, 0x1
+ cmp r6, r0
+ bge _080FCDCA
+_080FCDA2:
+ adds r4, r5, 0x2
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_80FD50C
+ strh r0, [r5]
+ subs r1, r5, 0x2
+ adds r0, r5, 0
+ bl sub_80FD50C
+ strh r0, [r5]
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ adds r5, r4, 0
+ ldr r0, _080FCEA0
+ ldrb r0, [r0]
+ subs r0, 0x1
+ cmp r6, r0
+ blt _080FCDA2
+_080FCDCA:
+ subs r1, r5, 0x2
+ adds r0, r5, 0
+ bl sub_80FD50C
+ strh r0, [r5]
+ lsls r0, r7, 24
+ lsrs r7, r0, 24
+ ldr r0, _080FCE8C
+ ldrb r0, [r0]
+ cmp r7, r0
+ bcc _080FCD6A
+_080FCDE0:
+ movs r6, 0
+ ldr r0, _080FCEA0
+ ldrb r0, [r0]
+ cmp r6, r0
+ bcs _080FCE80
+ ldr r3, _080FCE90
+ mov r9, r3
+ ldr r0, _080FCE98
+ mov r8, r0
+_080FCDF2:
+ ldr r0, _080FCE94
+ ldrb r0, [r0]
+ mov r2, r8
+ ldrb r1, [r2]
+ muls r0, r1
+ lsls r0, 1
+ mov r3, r9
+ ldr r2, [r3]
+ adds r2, r0
+ ldr r0, _080FCE9C
+ ldrb r0, [r0]
+ adds r0, r6
+ lsls r0, 1
+ adds r5, r2, r0
+ lsls r1, 1
+ adds r1, r5, r1
+ adds r0, r5, 0
+ bl sub_80FD50C
+ strh r0, [r5]
+ movs r7, 0x1
+ mov r1, r8
+ ldrb r0, [r1]
+ lsls r0, 1
+ adds r5, r0
+ ldr r0, _080FCE8C
+ ldrb r0, [r0]
+ subs r0, 0x1
+ adds r6, 0x1
+ cmp r7, r0
+ bge _080FCE64
+ ldr r4, _080FCE98
+_080FCE32:
+ ldrb r1, [r4]
+ lsls r1, 1
+ adds r1, r5, r1
+ adds r0, r5, 0
+ bl sub_80FD50C
+ strh r0, [r5]
+ ldrb r1, [r4]
+ lsls r1, 1
+ subs r1, r5, r1
+ adds r0, r5, 0
+ bl sub_80FD50C
+ strh r0, [r5]
+ adds r0, r7, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldrb r0, [r4]
+ lsls r0, 1
+ adds r5, r0
+ ldr r0, _080FCE8C
+ ldrb r0, [r0]
+ subs r0, 0x1
+ cmp r7, r0
+ blt _080FCE32
+_080FCE64:
+ mov r2, r8
+ ldrb r1, [r2]
+ lsls r1, 1
+ subs r1, r5, r1
+ adds r0, r5, 0
+ bl sub_80FD50C
+ strh r0, [r5]
+ lsls r0, r6, 24
+ lsrs r6, r0, 24
+ ldr r0, _080FCEA0
+ ldrb r0, [r0]
+ cmp r6, r0
+ bcc _080FCDF2
+_080FCE80:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FCE8C: .4byte gUnknown_03005DF0
+_080FCE90: .4byte gUnknown_03005DEC
+_080FCE94: .4byte gUnknown_03005DFC
+_080FCE98: .4byte gUnknown_03005E04
+_080FCE9C: .4byte gUnknown_03005DE8
+_080FCEA0: .4byte gUnknown_03005DF8
+ thumb_func_end sub_80FCD54
+
+ thumb_func_start sub_80FCEA4
+sub_80FCEA4: @ 80FCEA4
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ movs r2, 0
+ ldr r0, _080FCF24
+ ldrb r0, [r0]
+ cmp r2, r0
+ bcs _080FCF16
+ ldr r0, _080FCF28
+ mov r8, r0
+ ldr r3, _080FCF2C
+_080FCEBC:
+ ldr r0, _080FCF30
+ ldrb r1, [r0]
+ adds r1, r2
+ ldr r0, _080FCF34
+ ldrb r0, [r0]
+ muls r0, r1
+ lsls r0, 1
+ mov r4, r8
+ ldr r1, [r4]
+ adds r1, r0
+ ldr r0, _080FCF38
+ ldrb r0, [r0]
+ lsls r0, 1
+ adds r4, r1, r0
+ movs r5, 0
+ adds r6, r2, 0x1
+ ldrb r0, [r3]
+ cmp r5, r0
+ bcs _080FCF0A
+ movs r0, 0x80
+ lsls r0, 8
+ adds r7, r0, 0
+_080FCEE8:
+ ldrh r0, [r4]
+ ands r0, r7
+ cmp r0, 0
+ bne _080FCEFC
+ adds r0, r4, 0
+ str r3, [sp]
+ bl sub_80FD53C
+ strh r0, [r4]
+ ldr r3, [sp]
+_080FCEFC:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r4, 0x2
+ ldrb r0, [r3]
+ cmp r5, r0
+ bcc _080FCEE8
+_080FCF0A:
+ lsls r0, r6, 24
+ lsrs r2, r0, 24
+ ldr r0, _080FCF24
+ ldrb r0, [r0]
+ cmp r2, r0
+ bcc _080FCEBC
+_080FCF16:
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FCF24: .4byte gUnknown_03005DF0
+_080FCF28: .4byte gUnknown_03005DEC
+_080FCF2C: .4byte gUnknown_03005DF8
+_080FCF30: .4byte gUnknown_03005DFC
+_080FCF34: .4byte gUnknown_03005E04
+_080FCF38: .4byte gUnknown_03005DE8
+ thumb_func_end sub_80FCEA4
+
+ thumb_func_start sub_80FCF3C
+sub_80FCF3C: @ 80FCF3C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ ldr r0, _080FD068
+ ldr r4, [r0]
+ movs r6, 0
+ movs r0, 0x80
+ lsls r0, 8
+ adds r5, r0, 0
+_080FCF54:
+ movs r7, 0
+_080FCF56:
+ ldrh r0, [r4]
+ ands r0, r5
+ cmp r0, 0
+ bne _080FCF66
+ adds r0, r4, 0
+ bl sub_80FD53C
+ strh r0, [r4]
+_080FCF66:
+ adds r0, r7, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+ adds r4, 0x2
+ cmp r7, 0x3F
+ bls _080FCF56
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, 0x3F
+ bls _080FCF54
+ movs r7, 0
+ ldr r1, _080FD068
+ mov r10, r1
+ mov r3, sp
+ movs r2, 0x80
+ lsls r2, 8
+ mov r9, r2
+_080FCF8A:
+ lsls r0, r7, 1
+ mov r2, r10
+ ldr r1, [r2]
+ adds r4, r1, r0
+ ldrh r1, [r4]
+ strh r1, [r3]
+ mov r1, r9
+ strh r1, [r4]
+ movs r6, 0x1
+ adds r4, 0x80
+ adds r5, r0, 0
+_080FCFA0:
+ ldrh r0, [r4]
+ movs r2, 0x80
+ lsls r2, 8
+ ands r0, r2
+ cmp r0, 0
+ bne _080FCFC0
+ adds r2, r4, 0
+ adds r2, 0x80
+ mov r0, sp
+ adds r1, r4, 0
+ str r3, [sp, 0x4]
+ bl sub_80FD7AC
+ strh r0, [r4]
+ ldr r3, [sp, 0x4]
+ strh r0, [r3]
+_080FCFC0:
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ adds r4, 0x80
+ cmp r6, 0x3E
+ bls _080FCFA0
+ mov r0, r9
+ strh r0, [r4]
+ mov r1, r10
+ ldr r0, [r1]
+ adds r4, r0, r5
+ ldrh r0, [r4]
+ strh r0, [r3]
+ mov r2, r9
+ strh r2, [r4]
+ movs r6, 0x1
+ adds r4, 0x80
+ movs r0, 0x80
+ lsls r0, 8
+ mov r8, r0
+_080FCFE8:
+ ldrh r0, [r4]
+ mov r1, r8
+ ands r0, r1
+ adds r5, r4, 0
+ adds r5, 0x80
+ cmp r0, 0
+ bne _080FD008
+ mov r0, sp
+ adds r1, r4, 0
+ adds r2, r5, 0
+ str r3, [sp, 0x4]
+ bl sub_80FD7AC
+ strh r0, [r4]
+ ldr r3, [sp, 0x4]
+ strh r0, [r3]
+_080FD008:
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ adds r4, r5, 0
+ cmp r6, 0x3E
+ bls _080FCFE8
+ mov r2, r9
+ strh r2, [r4]
+ adds r0, r7, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+ cmp r7, 0x3F
+ bls _080FCF8A
+ ldr r0, _080FD068
+ ldr r4, [r0]
+ movs r6, 0
+ movs r0, 0x80
+ lsls r0, 8
+ mov r8, r0
+_080FD02E:
+ movs r7, 0
+ adds r5, r6, 0x1
+_080FD032:
+ ldrh r0, [r4]
+ mov r1, r8
+ ands r0, r1
+ cmp r0, 0
+ bne _080FD044
+ adds r0, r4, 0
+ bl sub_80FD53C
+ strh r0, [r4]
+_080FD044:
+ adds r0, r7, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+ adds r4, 0x2
+ cmp r7, 0x3F
+ bls _080FD032
+ lsls r0, r5, 24
+ lsrs r6, r0, 24
+ cmp r6, 0x3F
+ bls _080FD02E
+ add sp, 0x8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FD068: .4byte gUnknown_03005DEC
+ thumb_func_end sub_80FCF3C
+
+ thumb_func_start sub_80FD06C
+sub_80FD06C: @ 80FD06C
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ movs r2, 0
+ ldr r0, _080FD0FC
+ ldrb r0, [r0]
+ cmp r2, r0
+ bcs _080FD0EE
+ ldr r0, _080FD100
+ mov r8, r0
+_080FD082:
+ ldr r0, _080FD104
+ ldrb r1, [r0]
+ adds r1, r2
+ ldr r0, _080FD108
+ ldrb r0, [r0]
+ muls r0, r1
+ lsls r0, 1
+ mov r3, r8
+ ldr r1, [r3]
+ adds r1, r0
+ ldr r0, _080FD10C
+ ldrb r0, [r0]
+ lsls r0, 1
+ adds r4, r1, r0
+ ldrh r1, [r4]
+ mov r0, sp
+ strh r1, [r0]
+ movs r5, 0x1
+ adds r4, 0x2
+ ldr r0, _080FD110
+ ldrb r0, [r0]
+ subs r0, 0x1
+ adds r6, r2, 0x1
+ cmp r5, r0
+ bge _080FD0E2
+ movs r0, 0x80
+ lsls r0, 8
+ adds r7, r0, 0
+_080FD0BA:
+ ldrh r0, [r4]
+ ands r0, r7
+ cmp r0, 0
+ bne _080FD0D0
+ mov r0, sp
+ adds r1, r4, 0
+ bl sub_80FD568
+ strh r0, [r4]
+ mov r1, sp
+ strh r0, [r1]
+_080FD0D0:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r4, 0x2
+ ldr r0, _080FD110
+ ldrb r0, [r0]
+ subs r0, 0x1
+ cmp r5, r0
+ blt _080FD0BA
+_080FD0E2:
+ lsls r0, r6, 24
+ lsrs r2, r0, 24
+ ldr r0, _080FD0FC
+ ldrb r0, [r0]
+ cmp r2, r0
+ bcc _080FD082
+_080FD0EE:
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FD0FC: .4byte gUnknown_03005DF0
+_080FD100: .4byte gUnknown_03005DEC
+_080FD104: .4byte gUnknown_03005DFC
+_080FD108: .4byte gUnknown_03005E04
+_080FD10C: .4byte gUnknown_03005DE8
+_080FD110: .4byte gUnknown_03005DF8
+ thumb_func_end sub_80FD06C
+
+ thumb_func_start sub_80FD114
+sub_80FD114: @ 80FD114
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x8
+ movs r2, 0
+ ldr r0, _080FD1B0
+ ldrb r0, [r0]
+ cmp r2, r0
+ bcs _080FD1A2
+ ldr r0, _080FD1B4
+ mov r8, r0
+ ldr r7, _080FD1B8
+_080FD12C:
+ ldr r0, _080FD1BC
+ ldrb r1, [r0]
+ ldrb r0, [r7]
+ muls r0, r1
+ lsls r0, 1
+ mov r3, r8
+ ldr r1, [r3]
+ adds r1, r0
+ ldr r0, _080FD1C0
+ ldrb r0, [r0]
+ adds r0, r2
+ lsls r0, 1
+ adds r4, r1, r0
+ ldrh r1, [r4]
+ mov r0, sp
+ strh r1, [r0]
+ movs r5, 0x1
+ ldrb r0, [r7]
+ lsls r0, 1
+ adds r4, r0
+ ldr r0, _080FD1C4
+ ldrb r0, [r0]
+ subs r0, 0x1
+ adds r6, r2, 0x1
+ cmp r5, r0
+ bge _080FD196
+ movs r0, 0x80
+ lsls r0, 8
+ adds r2, r0, 0
+_080FD166:
+ ldrh r0, [r4]
+ ands r0, r2
+ cmp r0, 0
+ bne _080FD180
+ mov r0, sp
+ adds r1, r4, 0
+ str r2, [sp, 0x4]
+ bl sub_80FD568
+ strh r0, [r4]
+ mov r1, sp
+ strh r0, [r1]
+ ldr r2, [sp, 0x4]
+_080FD180:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldrb r0, [r7]
+ lsls r0, 1
+ adds r4, r0
+ ldr r0, _080FD1C4
+ ldrb r0, [r0]
+ subs r0, 0x1
+ cmp r5, r0
+ blt _080FD166
+_080FD196:
+ lsls r0, r6, 24
+ lsrs r2, r0, 24
+ ldr r0, _080FD1B0
+ ldrb r0, [r0]
+ cmp r2, r0
+ bcc _080FD12C
+_080FD1A2:
+ add sp, 0x8
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FD1B0: .4byte gUnknown_03005DF8
+_080FD1B4: .4byte gUnknown_03005DEC
+_080FD1B8: .4byte gUnknown_03005E04
+_080FD1BC: .4byte gUnknown_03005DFC
+_080FD1C0: .4byte gUnknown_03005DE8
+_080FD1C4: .4byte gUnknown_03005DF0
+ thumb_func_end sub_80FD114
+
+ thumb_func_start sub_80FD1C8
+sub_80FD1C8: @ 80FD1C8
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x20
+ lsls r0, 16
+ lsrs r0, 16
+ mov r10, r0
+ mov r2, sp
+ ldr r3, _080FD234
+ lsls r1, r0, 1
+ add r1, r10
+ adds r0, r1, r3
+ ldrb r0, [r0]
+ strb r0, [r2]
+ adds r0, r3, 0x1
+ adds r0, r1, r0
+ ldrb r0, [r0]
+ strb r0, [r2, 0x1]
+ mov r5, sp
+ adds r0, r3, 0x2
+ adds r1, r0
+ ldrb r4, [r1]
+ lsls r2, r4, 24
+ lsrs r1, r2, 27
+ movs r0, 0x7
+ ands r1, r0
+ strh r1, [r5, 0x2]
+ lsrs r2, 25
+ mov r9, r2
+ movs r0, 0x3
+ ands r2, r0
+ mov r9, r2
+ movs r5, 0x1
+ ands r5, r4
+ movs r4, 0x1
+ mov r8, r4
+ cmp r8, r1
+ bcs _080FD27A
+ mov r3, sp
+_080FD21A:
+ cmp r5, 0
+ bne _080FD238
+ mov r0, r8
+ lsls r2, r0, 2
+ mov r4, sp
+ adds r1, r4, r2
+ ldrb r0, [r3]
+ mov r4, r8
+ subs r0, r4
+ strb r0, [r1]
+ ldrb r0, [r3, 0x1]
+ add r0, r8
+ b _080FD24A
+ .align 2, 0
+_080FD234: .4byte gUnknown_083E7A50
+_080FD238:
+ mov r0, r8
+ lsls r2, r0, 2
+ mov r4, sp
+ adds r1, r4, r2
+ ldrb r0, [r3]
+ adds r0, 0x1
+ strb r0, [r1]
+ ldrb r0, [r3, 0x1]
+ subs r0, 0x1
+_080FD24A:
+ strb r0, [r1, 0x1]
+ add r2, sp
+ ldrb r0, [r2]
+ cmp r0, 0x3F
+ bhi _080FD25A
+ ldrb r0, [r2, 0x1]
+ cmp r0, 0x3F
+ bls _080FD262
+_080FD25A:
+ mov r0, r8
+ subs r0, 0x1
+ strh r0, [r3, 0x2]
+ b _080FD27A
+_080FD262:
+ ldrh r0, [r3, 0x2]
+ mov r1, r8
+ subs r0, r1
+ strh r0, [r2, 0x2]
+ mov r0, r8
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ ldrh r0, [r3, 0x2]
+ cmp r8, r0
+ bcc _080FD21A
+_080FD27A:
+ movs r2, 0
+ mov r8, r2
+ mov r0, sp
+ ldrh r0, [r0, 0x2]
+ cmp r8, r0
+ bcc _080FD288
+ b _080FD38A
+_080FD288:
+ movs r3, 0x1F
+_080FD28A:
+ ldr r1, _080FD2E8
+ mov r4, r8
+ lsls r0, r4, 2
+ mov r2, sp
+ adds r6, r2, r0
+ ldrb r0, [r6, 0x1]
+ lsls r0, 7
+ ldr r1, [r1]
+ adds r1, r0
+ ldrb r0, [r6]
+ lsls r0, 1
+ adds r2, r1, r0
+ ldrh r1, [r2]
+ movs r4, 0x80
+ lsls r4, 8
+ adds r0, r4, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _080FD376
+ movs r7, 0x1F
+ ands r7, r1
+ lsls r0, r1, 16
+ lsrs r5, r0, 21
+ ands r5, r3
+ lsrs r4, r0, 26
+ ands r4, r3
+ mov r0, r9
+ cmp r0, 0
+ blt _080FD36C
+ cmp r0, 0x1
+ ble _080FD2EC
+ cmp r0, 0x3
+ bgt _080FD36C
+ ldrh r0, [r6, 0x2]
+ adds r1, r7, r0
+ lsls r1, 16
+ lsrs r7, r1, 16
+ adds r1, r5, r0
+ lsls r1, 16
+ lsrs r5, r1, 16
+ adds r0, r4, r0
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r7, 0x1F
+ bls _080FD360
+ movs r7, 0x1F
+ b _080FD360
+ .align 2, 0
+_080FD2E8: .4byte gUnknown_03005DEC
+_080FD2EC:
+ mov r1, r10
+ lsls r0, r1, 1
+ add r0, r10
+ ldr r1, _080FD320
+ adds r1, 0x2
+ adds r0, r1
+ ldrb r0, [r0]
+ lsrs r0, 3
+ movs r1, 0x7
+ ands r0, r1
+ movs r1, 0x3
+ str r2, [sp, 0x18]
+ str r3, [sp, 0x1C]
+ bl __umodsi3
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, [sp, 0x18]
+ ldr r3, [sp, 0x1C]
+ cmp r0, 0x1
+ beq _080FD33C
+ cmp r0, 0x1
+ bgt _080FD324
+ cmp r0, 0
+ beq _080FD32A
+ b _080FD36C
+ .align 2, 0
+_080FD320: .4byte gUnknown_083E7A50
+_080FD324:
+ cmp r0, 0x2
+ beq _080FD34E
+ b _080FD36C
+_080FD32A:
+ ldrh r0, [r6, 0x2]
+ cmp r7, r0
+ bcc _080FD338
+ subs r0, r7, r0
+ lsls r0, 16
+ lsrs r7, r0, 16
+ b _080FD36C
+_080FD338:
+ movs r7, 0
+ b _080FD36C
+_080FD33C:
+ ldrh r0, [r6, 0x2]
+ cmp r5, r0
+ bcc _080FD34A
+ subs r0, r5, r0
+ lsls r0, 16
+ lsrs r5, r0, 16
+ b _080FD36C
+_080FD34A:
+ movs r5, 0
+ b _080FD36C
+_080FD34E:
+ ldrh r0, [r6, 0x2]
+ cmp r4, r0
+ bcc _080FD35C
+ subs r0, r4, r0
+ lsls r0, 16
+ lsrs r4, r0, 16
+ b _080FD36C
+_080FD35C:
+ movs r4, 0
+ b _080FD36C
+_080FD360:
+ cmp r5, 0x1F
+ bls _080FD366
+ movs r5, 0x1F
+_080FD366:
+ cmp r4, 0x1F
+ bls _080FD36C
+ movs r4, 0x1F
+_080FD36C:
+ lsls r0, r4, 10
+ lsls r1, r5, 5
+ orrs r0, r1
+ orrs r7, r0
+ strh r7, [r2]
+_080FD376:
+ mov r0, r8
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ mov r0, sp
+ ldrh r0, [r0, 0x2]
+ cmp r8, r0
+ bcs _080FD38A
+ b _080FD28A
+_080FD38A:
+ add sp, 0x20
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80FD1C8
+
+ thumb_func_start sub_80FD39C
+sub_80FD39C: @ 80FD39C
+ push {lr}
+ ldrh r1, [r0]
+ movs r3, 0x1F
+ movs r0, 0x1F
+ ands r0, r1
+ lsls r1, 16
+ lsrs r2, r1, 21
+ ands r2, r3
+ lsrs r1, 26
+ ands r1, r3
+ adds r0, r2
+ adds r0, r1
+ movs r1, 0x3
+ bl __divsi3
+ adds r1, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ lsls r0, r1, 10
+ lsls r2, r1, 5
+ orrs r0, r2
+ orrs r0, r1
+ lsls r0, 16
+ lsrs r0, 16
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80FD39C
+
+ thumb_func_start sub_80FD3D0
+sub_80FD3D0: @ 80FD3D0
+ push {r4,lr}
+ lsls r1, 24
+ lsrs r4, r1, 24
+ ldrh r0, [r0]
+ movs r2, 0x1F
+ movs r1, 0x1F
+ ands r1, r0
+ lsls r0, 16
+ lsrs r3, r0, 21
+ ands r3, r2
+ lsrs r0, 26
+ ands r0, r2
+ cmp r1, 0x10
+ bhi _080FD400
+ cmp r3, 0x10
+ bhi _080FD400
+ cmp r0, 0x10
+ bhi _080FD400
+ adds r0, r4, 0
+ bl sub_80FD40C
+ lsls r0, 16
+ lsrs r0, 16
+ b _080FD402
+_080FD400:
+ ldr r0, _080FD408
+_080FD402:
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080FD408: .4byte 0x00007fff
+ thumb_func_end sub_80FD3D0
+
+ thumb_func_start sub_80FD40C
+sub_80FD40C: @ 80FD40C
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0
+ mov r8, r0
+ movs r6, 0
+ movs r7, 0
+ adds r0, r4, 0
+ movs r1, 0x6
+ bl __udivsi3
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x3
+ bl __umodsi3
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r0, r4, 0
+ movs r1, 0x6
+ bl __umodsi3
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x5
+ bhi _080FD4C4
+ lsls r0, 2
+ ldr r1, _080FD450
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080FD450: .4byte _080FD454
+ .align 2, 0
+_080FD454:
+ .4byte _080FD46C
+ .4byte _080FD47C
+ .4byte _080FD48C
+ .4byte _080FD49A
+ .4byte _080FD4A8
+ .4byte _080FD4B6
+_080FD46C:
+ movs r0, 0x15
+ subs r0, r5
+ lsls r0, 16
+ lsrs r6, r0, 16
+ adds r7, r6, 0
+ movs r1, 0
+ mov r8, r1
+ b _080FD4C4
+_080FD47C:
+ movs r7, 0
+ movs r0, 0x15
+ subs r0, r5
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ mov r6, r8
+ b _080FD4C4
+_080FD48C:
+ movs r0, 0x15
+ subs r0, r5
+ lsls r0, 16
+ lsrs r7, r0, 16
+ movs r6, 0
+ mov r8, r7
+ b _080FD4C4
+_080FD49A:
+ movs r7, 0
+ movs r6, 0
+ movs r0, 0x17
+ subs r0, r5
+ lsls r0, 16
+ lsrs r0, 16
+ b _080FD4C2
+_080FD4A8:
+ movs r0, 0x17
+ subs r0, r5
+ lsls r0, 16
+ lsrs r7, r0, 16
+ movs r6, 0
+ mov r8, r6
+ b _080FD4C4
+_080FD4B6:
+ movs r7, 0
+ movs r0, 0x17
+ subs r0, r5
+ lsls r0, 16
+ lsrs r6, r0, 16
+ movs r0, 0
+_080FD4C2:
+ mov r8, r0
+_080FD4C4:
+ lsls r0, r7, 10
+ lsls r1, r6, 5
+ orrs r0, r1
+ mov r1, r8
+ orrs r1, r0
+ lsls r0, r1, 16
+ lsrs r0, 16
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80FD40C
+
+ thumb_func_start sub_80FD4DC
+sub_80FD4DC: @ 80FD4DC
+ push {lr}
+ ldrh r0, [r0]
+ movs r2, 0x1F
+ movs r1, 0x1F
+ ands r1, r0
+ lsls r0, 16
+ lsrs r3, r0, 21
+ ands r3, r2
+ lsrs r0, 26
+ ands r0, r2
+ cmp r1, 0x10
+ bhi _080FD500
+ cmp r3, 0x10
+ bhi _080FD500
+ cmp r0, 0x10
+ bhi _080FD500
+ movs r0, 0
+ b _080FD502
+_080FD500:
+ ldr r0, _080FD508
+_080FD502:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080FD508: .4byte 0x00007fff
+ thumb_func_end sub_80FD4DC
+
+ thumb_func_start sub_80FD50C
+sub_80FD50C: @ 80FD50C
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r3, [r4]
+ cmp r3, 0
+ beq _080FD534
+ movs r2, 0x80
+ lsls r2, 8
+ adds r0, r2, 0
+ ands r0, r3
+ cmp r0, 0
+ beq _080FD526
+ adds r0, r2, 0
+ b _080FD536
+_080FD526:
+ ldrh r1, [r1]
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _080FD534
+ ldrh r0, [r4]
+ b _080FD536
+_080FD534:
+ movs r0, 0
+_080FD536:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80FD50C
+
+ thumb_func_start sub_80FD53C
+sub_80FD53C: @ 80FD53C
+ push {r4,lr}
+ ldrh r1, [r0]
+ movs r0, 0x1F
+ movs r3, 0x1F
+ ands r3, r1
+ lsls r1, 16
+ lsrs r2, r1, 21
+ lsrs r1, 26
+ subs r3, r0, r3
+ adds r4, r0, 0
+ bics r4, r2
+ adds r2, r4, 0
+ bics r0, r1
+ lsls r0, 10
+ lsls r2, 5
+ orrs r0, r2
+ orrs r0, r3
+ lsls r0, 16
+ lsrs r0, 16
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80FD53C
+
+ thumb_func_start sub_80FD568
+sub_80FD568: @ 80FD568
+ push {r4-r7,lr}
+ sub sp, 0x14
+ adds r7, r1, 0
+ ldrh r4, [r0]
+ ldrh r5, [r7]
+ lsls r6, r4, 16
+ lsls r0, r5, 16
+ mov r12, r0
+ cmp r4, r5
+ beq _080FD5DA
+ mov r2, sp
+ movs r3, 0x1F
+ movs r1, 0x1F
+ adds r0, r1, 0
+ ands r0, r4
+ strh r0, [r2]
+ lsrs r0, r6, 21
+ ands r0, r3
+ strh r0, [r2, 0x2]
+ lsrs r0, r6, 26
+ ands r0, r3
+ strh r0, [r2, 0x4]
+ mov r0, sp
+ ands r1, r5
+ strh r1, [r0, 0x6]
+ mov r1, sp
+ mov r2, r12
+ lsrs r0, r2, 21
+ ands r0, r3
+ strh r0, [r1, 0x8]
+ lsrs r0, r2, 26
+ ands r0, r3
+ strh r0, [r1, 0xA]
+ mov r0, sp
+ ldrh r0, [r0]
+ cmp r0, 0x19
+ bls _080FD5C2
+ mov r0, sp
+ ldrh r0, [r0, 0x2]
+ cmp r0, 0x19
+ bls _080FD5C2
+ mov r0, sp
+ ldrh r0, [r0, 0x4]
+ cmp r0, 0x19
+ bhi _080FD5DA
+_080FD5C2:
+ mov r0, sp
+ ldrh r0, [r0, 0x6]
+ cmp r0, 0x19
+ bls _080FD5DE
+ mov r0, sp
+ ldrh r0, [r0, 0x8]
+ cmp r0, 0x19
+ bls _080FD5DE
+ mov r0, sp
+ ldrh r0, [r0, 0xA]
+ cmp r0, 0x19
+ bls _080FD5DE
+_080FD5DA:
+ ldrh r0, [r7]
+ b _080FD684
+_080FD5DE:
+ movs r4, 0
+ add r6, sp, 0xC
+ mov r7, sp
+ adds r7, 0x6
+ adds r5, r6, 0
+_080FD5E8:
+ lsls r2, r4, 1
+ mov r1, sp
+ adds r0, r1, r2
+ adds r1, r7, r2
+ ldrh r3, [r0]
+ ldrh r0, [r1]
+ cmp r3, r0
+ bls _080FD5FE
+ adds r1, r5, r2
+ subs r0, r3, r0
+ b _080FD602
+_080FD5FE:
+ adds r1, r5, r2
+ subs r0, r3
+_080FD602:
+ strh r0, [r1]
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x2
+ bls _080FD5E8
+ adds r1, r6, 0
+ ldrh r0, [r1, 0x2]
+ ldrh r3, [r1]
+ cmp r3, r0
+ bcc _080FD628
+ ldrh r2, [r1, 0x4]
+ cmp r3, r2
+ bcc _080FD622
+ adds r2, r3, 0
+ b _080FD63C
+_080FD622:
+ cmp r0, r2
+ bcs _080FD62E
+ b _080FD636
+_080FD628:
+ ldrh r2, [r1, 0x4]
+ cmp r0, r2
+ bcc _080FD632
+_080FD62E:
+ ldrh r2, [r1, 0x2]
+ b _080FD63C
+_080FD632:
+ cmp r2, r3
+ bcc _080FD63A
+_080FD636:
+ ldrh r2, [r1, 0x4]
+ b _080FD63C
+_080FD63A:
+ ldrh r2, [r6]
+_080FD63C:
+ mov r0, sp
+ ldrh r1, [r0, 0x6]
+ lsrs r0, r2, 1
+ movs r6, 0x1F
+ subs r6, r0
+ adds r0, r1, 0
+ muls r0, r6
+ movs r1, 0x1F
+ bl __divsi3
+ adds r5, r0, 0
+ lsls r5, 16
+ lsrs r5, 16
+ mov r0, sp
+ ldrh r0, [r0, 0x8]
+ muls r0, r6
+ movs r1, 0x1F
+ bl __divsi3
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ mov r0, sp
+ ldrh r0, [r0, 0xA]
+ muls r0, r6
+ movs r1, 0x1F
+ bl __divsi3
+ lsls r0, 16
+ lsrs r0, 6
+ lsls r4, 5
+ orrs r0, r4
+ orrs r5, r0
+ lsls r5, 16
+ lsrs r5, 16
+ adds r0, r5, 0
+_080FD684:
+ add sp, 0x14
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80FD568
+
+ thumb_func_start sub_80FD68C
+sub_80FD68C: @ 80FD68C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ adds r3, r0, 0
+ mov r10, r1
+ str r2, [sp]
+ ldrh r1, [r3]
+ mov r0, r10
+ ldrh r0, [r0]
+ cmp r1, r0
+ bne _080FD6B4
+ ldrh r0, [r2]
+ cmp r0, r1
+ bne _080FD6B4
+ mov r1, r10
+ ldrh r0, [r1]
+ b _080FD79C
+_080FD6B4:
+ mov r2, r10
+ ldrh r0, [r2]
+ movs r1, 0x1F
+ mov r9, r1
+ movs r4, 0x1F
+ adds r5, r4, 0
+ ands r5, r0
+ lsls r0, 16
+ lsrs r2, r0, 21
+ mov r1, r9
+ ands r1, r2
+ mov r8, r1
+ lsrs r0, 26
+ mov r2, r9
+ ands r2, r0
+ str r2, [sp, 0x4]
+ ldrh r2, [r3]
+ adds r0, r4, 0
+ ands r0, r2
+ lsls r2, 16
+ lsrs r1, r2, 21
+ mov r3, r9
+ ands r1, r3
+ adds r0, r1
+ lsrs r2, 26
+ ands r2, r3
+ adds r0, r2
+ movs r1, 0x3
+ bl __divsi3
+ lsls r0, 16
+ lsrs r7, r0, 16
+ mov r1, r8
+ adds r0, r5, r1
+ ldr r2, [sp, 0x4]
+ adds r0, r2
+ movs r1, 0x3
+ bl __divsi3
+ lsls r0, 16
+ lsrs r6, r0, 16
+ ldr r3, [sp]
+ ldrh r1, [r3]
+ ands r4, r1
+ lsls r1, 16
+ lsrs r0, r1, 21
+ mov r2, r9
+ ands r0, r2
+ adds r4, r0
+ lsrs r1, 26
+ ands r1, r2
+ adds r4, r1
+ adds r0, r4, 0
+ movs r1, 0x3
+ bl __divsi3
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r7, r6
+ bne _080FD736
+ cmp r1, r6
+ bne _080FD736
+ mov r3, r10
+ ldrh r0, [r3]
+ b _080FD79C
+_080FD736:
+ cmp r7, r6
+ bls _080FD73E
+ subs r0, r7, r6
+ b _080FD740
+_080FD73E:
+ subs r0, r6, r7
+_080FD740:
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r1, r6
+ bls _080FD74C
+ subs r0, r1, r6
+ b _080FD74E
+_080FD74C:
+ subs r0, r6, r1
+_080FD74E:
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r2, r0
+ bcc _080FD758
+ adds r0, r2, 0
+_080FD758:
+ lsrs r0, 1
+ movs r4, 0x1F
+ subs r4, r0
+ lsls r4, 16
+ lsrs r4, 16
+ adds r0, r5, 0
+ muls r0, r4
+ movs r1, 0x1F
+ bl __divsi3
+ lsls r0, 16
+ lsrs r5, r0, 16
+ mov r0, r8
+ muls r0, r4
+ movs r1, 0x1F
+ bl __divsi3
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ ldr r1, [sp, 0x4]
+ adds r0, r1, 0
+ muls r0, r4
+ movs r1, 0x1F
+ bl __divsi3
+ lsls r0, 16
+ lsrs r0, 6
+ mov r2, r8
+ lsls r1, r2, 5
+ orrs r0, r1
+ orrs r5, r0
+ lsls r0, r5, 16
+ lsrs r0, 16
+_080FD79C:
+ add sp, 0x8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80FD68C
+
+ thumb_func_start sub_80FD7AC
+sub_80FD7AC: @ 80FD7AC
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ adds r3, r0, 0
+ mov r10, r1
+ str r2, [sp]
+ ldrh r1, [r3]
+ mov r0, r10
+ ldrh r0, [r0]
+ cmp r1, r0
+ bne _080FD7D4
+ ldrh r0, [r2]
+ cmp r0, r1
+ bne _080FD7D4
+ mov r1, r10
+ ldrh r0, [r1]
+ b _080FD8BA
+_080FD7D4:
+ mov r2, r10
+ ldrh r0, [r2]
+ movs r1, 0x1F
+ mov r9, r1
+ movs r4, 0x1F
+ adds r5, r4, 0
+ ands r5, r0
+ lsls r0, 16
+ lsrs r2, r0, 21
+ mov r1, r9
+ ands r1, r2
+ mov r8, r1
+ lsrs r0, 26
+ mov r2, r9
+ ands r2, r0
+ str r2, [sp, 0x4]
+ ldrh r2, [r3]
+ adds r0, r4, 0
+ ands r0, r2
+ lsls r2, 16
+ lsrs r1, r2, 21
+ mov r3, r9
+ ands r1, r3
+ adds r0, r1
+ lsrs r2, 26
+ ands r2, r3
+ adds r0, r2
+ movs r1, 0x3
+ bl __divsi3
+ lsls r0, 16
+ lsrs r7, r0, 16
+ mov r1, r8
+ adds r0, r5, r1
+ ldr r2, [sp, 0x4]
+ adds r0, r2
+ movs r1, 0x3
+ bl __divsi3
+ lsls r0, 16
+ lsrs r6, r0, 16
+ ldr r3, [sp]
+ ldrh r1, [r3]
+ ands r4, r1
+ lsls r1, 16
+ lsrs r0, r1, 21
+ mov r2, r9
+ ands r0, r2
+ adds r4, r0
+ lsrs r1, 26
+ ands r1, r2
+ adds r4, r1
+ adds r0, r4, 0
+ movs r1, 0x3
+ bl __divsi3
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r7, r6
+ bne _080FD856
+ cmp r1, r6
+ bne _080FD856
+ mov r3, r10
+ ldrh r0, [r3]
+ b _080FD8BA
+_080FD856:
+ cmp r7, r6
+ bls _080FD85E
+ subs r0, r7, r6
+ b _080FD860
+_080FD85E:
+ subs r0, r6, r7
+_080FD860:
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r1, r6
+ bls _080FD86C
+ subs r0, r1, r6
+ b _080FD86E
+_080FD86C:
+ subs r0, r6, r1
+_080FD86E:
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r2, r0
+ bcc _080FD878
+ adds r0, r2, 0
+_080FD878:
+ movs r4, 0x1F
+ subs r4, r0
+ lsls r4, 16
+ lsrs r4, 16
+ adds r0, r5, 0
+ muls r0, r4
+ movs r1, 0x1F
+ bl __divsi3
+ lsls r0, 16
+ lsrs r5, r0, 16
+ mov r0, r8
+ muls r0, r4
+ movs r1, 0x1F
+ bl __divsi3
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ ldr r1, [sp, 0x4]
+ adds r0, r1, 0
+ muls r0, r4
+ movs r1, 0x1F
+ bl __divsi3
+ lsls r0, 16
+ lsrs r0, 6
+ mov r2, r8
+ lsls r1, r2, 5
+ orrs r0, r1
+ orrs r5, r0
+ lsls r0, r5, 16
+ lsrs r0, 16
+_080FD8BA:
+ add sp, 0x8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80FD7AC
+
+ thumb_func_start sub_80FD8CC
+sub_80FD8CC: @ 80FD8CC
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0xC
+ ldrb r1, [r0, 0x1D]
+ lsrs r5, r1, 3
+ ldrb r1, [r0, 0x1E]
+ lsrs r1, 3
+ str r1, [sp, 0x8]
+ ldr r1, [r0, 0x4]
+ str r1, [sp]
+ ldr r2, [r0, 0x10]
+ str r2, [sp, 0x4]
+ ldrh r0, [r0, 0x16]
+ cmp r0, 0x2
+ bne _080FD97C
+ movs r1, 0
+ ldr r0, [sp, 0x8]
+ cmp r1, r0
+ bcc _080FD8FA
+ b _080FDA08
+_080FD8FA:
+ movs r0, 0
+ adds r2, r1, 0x1
+ mov r10, r2
+ cmp r0, r5
+ bcs _080FD96E
+ adds r2, r1, 0
+ muls r2, r5
+ mov r9, r2
+ lsls r1, 3
+ mov r8, r1
+_080FD90E:
+ movs r4, 0
+ lsls r6, r0, 4
+ adds r7, r0, 0x1
+ add r0, r9
+ lsls r0, 6
+ ldr r1, [sp, 0x4]
+ adds r1, r0
+ mov r12, r1
+_080FD91E:
+ lsls r0, r4, 3
+ mov r2, r12
+ adds r3, r2, r0
+ mov r1, r8
+ adds r0, r1, r4
+ lsls r0, 3
+ muls r0, r5
+ lsls r0, 1
+ ldr r2, [sp]
+ adds r0, r2, r0
+ adds r2, r0, r6
+ ldrh r0, [r2, 0x2]
+ lsls r0, 8
+ ldrh r1, [r2]
+ orrs r0, r1
+ strh r0, [r3]
+ ldrh r0, [r2, 0x6]
+ lsls r0, 8
+ ldrh r1, [r2, 0x4]
+ orrs r0, r1
+ strh r0, [r3, 0x2]
+ ldrh r0, [r2, 0xA]
+ lsls r0, 8
+ ldrh r1, [r2, 0x8]
+ orrs r0, r1
+ strh r0, [r3, 0x4]
+ ldrh r0, [r2, 0xE]
+ lsls r0, 8
+ ldrh r1, [r2, 0xC]
+ orrs r0, r1
+ strh r0, [r3, 0x6]
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x7
+ bls _080FD91E
+ lsls r0, r7, 16
+ lsrs r0, 16
+ cmp r0, r5
+ bcc _080FD90E
+_080FD96E:
+ mov r1, r10
+ lsls r0, r1, 16
+ lsrs r1, r0, 16
+ ldr r2, [sp, 0x8]
+ cmp r1, r2
+ bcc _080FD8FA
+ b _080FDA08
+_080FD97C:
+ movs r1, 0
+ ldr r0, [sp, 0x8]
+ cmp r1, r0
+ bcs _080FDA08
+_080FD984:
+ movs r0, 0
+ adds r2, r1, 0x1
+ mov r10, r2
+ cmp r0, r5
+ bcs _080FD9FC
+ adds r2, r1, 0
+ muls r2, r5
+ mov r9, r2
+ lsls r1, 3
+ mov r8, r1
+_080FD998:
+ movs r4, 0
+ lsls r6, r0, 4
+ adds r7, r0, 0x1
+ add r0, r9
+ lsls r0, 5
+ ldr r1, [sp, 0x4]
+ adds r1, r0
+ mov r12, r1
+_080FD9A8:
+ lsls r0, r4, 2
+ mov r2, r12
+ adds r3, r2, r0
+ mov r1, r8
+ adds r0, r1, r4
+ lsls r0, 3
+ muls r0, r5
+ lsls r0, 1
+ ldr r2, [sp]
+ adds r0, r2, r0
+ adds r2, r0, r6
+ ldrh r1, [r2, 0x2]
+ lsls r1, 4
+ ldrh r0, [r2]
+ orrs r1, r0
+ ldrh r0, [r2, 0x4]
+ lsls r0, 8
+ orrs r1, r0
+ ldrh r0, [r2, 0x6]
+ lsls r0, 12
+ orrs r1, r0
+ strh r1, [r3]
+ ldrh r1, [r2, 0xA]
+ lsls r1, 4
+ ldrh r0, [r2, 0x8]
+ orrs r1, r0
+ ldrh r0, [r2, 0xC]
+ lsls r0, 8
+ orrs r1, r0
+ ldrh r0, [r2, 0xE]
+ lsls r0, 12
+ orrs r1, r0
+ strh r1, [r3, 0x2]
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x7
+ bls _080FD9A8
+ lsls r0, r7, 16
+ lsrs r0, 16
+ cmp r0, r5
+ bcc _080FD998
+_080FD9FC:
+ mov r1, r10
+ lsls r0, r1, 16
+ lsrs r1, r0, 16
+ ldr r2, [sp, 0x8]
+ cmp r1, r2
+ bcc _080FD984
+_080FDA08:
+ 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_80FD8CC
+
+ thumb_func_start sub_80FDA18
+sub_80FDA18: @ 80FDA18
+ push {lr}
+ ldr r2, _080FDA68
+ ldrb r1, [r0, 0x18]
+ lsls r1, 4
+ strh r1, [r2]
+ ldr r3, _080FDA6C
+ ldrh r2, [r2]
+ lsls r2, 1
+ ldr r1, [r0, 0x8]
+ adds r1, r2
+ str r1, [r3]
+ ldr r2, _080FDA70
+ ldr r1, [r0, 0x4]
+ str r1, [r2]
+ ldr r2, _080FDA74
+ ldrb r1, [r0, 0x19]
+ strb r1, [r2]
+ ldr r2, _080FDA78
+ ldrb r1, [r0, 0x1A]
+ strb r1, [r2]
+ ldr r2, _080FDA7C
+ ldrb r1, [r0, 0x1B]
+ strb r1, [r2]
+ ldr r2, _080FDA80
+ ldrb r1, [r0, 0x1C]
+ strb r1, [r2]
+ ldr r2, _080FDA84
+ ldrb r1, [r0, 0x1D]
+ strb r1, [r2]
+ ldr r2, _080FDA88
+ ldrb r1, [r0, 0x1E]
+ strb r1, [r2]
+ ldrh r0, [r0, 0x14]
+ cmp r0, 0x5
+ bhi _080FDADE
+ lsls r0, 2
+ ldr r1, _080FDA8C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080FDA68: .4byte gUnknown_03005E0C
+_080FDA6C: .4byte gUnknown_03005E08
+_080FDA70: .4byte gUnknown_03005DEC
+_080FDA74: .4byte gUnknown_03005DE8
+_080FDA78: .4byte gUnknown_03005DFC
+_080FDA7C: .4byte gUnknown_03005DF8
+_080FDA80: .4byte gUnknown_03005DF0
+_080FDA84: .4byte gUnknown_03005E04
+_080FDA88: .4byte gUnknown_03005DF4
+_080FDA8C: .4byte _080FDA90
+ .align 2, 0
+_080FDA90:
+ .4byte _080FDAA8
+ .4byte _080FDAB0
+ .4byte _080FDAB8
+ .4byte _080FDAC2
+ .4byte _080FDACC
+ .4byte _080FDAD6
+_080FDAA8:
+ movs r0, 0
+ bl sub_80FDC18
+ b _080FDADE
+_080FDAB0:
+ movs r0, 0x1
+ bl sub_80FDC18
+ b _080FDADE
+_080FDAB8:
+ bl sub_80FDAE4
+ bl sub_80FDF88
+ b _080FDADE
+_080FDAC2:
+ bl sub_80FDBE4
+ bl sub_80FDED8
+ b _080FDADE
+_080FDACC:
+ bl sub_80FDBA8
+ bl sub_80FDE28
+ b _080FDADE
+_080FDAD6:
+ bl sub_80FDB8C
+ bl sub_80FDD70
+_080FDADE:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80FDA18
+
+ thumb_func_start sub_80FDAE4
+sub_80FDAE4: @ 80FDAE4
+ ldr r2, _080FDB4C
+ ldr r1, [r2]
+ movs r0, 0
+ strh r0, [r1]
+ ldr r0, [r2]
+ ldr r2, _080FDB50
+ adds r1, r2, 0
+ strh r1, [r0, 0x2]
+ ldr r2, _080FDB54
+ adds r1, r2, 0
+ strh r1, [r0, 0x4]
+ ldr r2, _080FDB58
+ adds r1, r2, 0
+ strh r1, [r0, 0x6]
+ ldr r2, _080FDB5C
+ adds r1, r2, 0
+ strh r1, [r0, 0x8]
+ ldr r2, _080FDB60
+ adds r1, r2, 0
+ strh r1, [r0, 0xA]
+ ldr r2, _080FDB64
+ adds r1, r2, 0
+ strh r1, [r0, 0xC]
+ ldr r2, _080FDB68
+ adds r1, r2, 0
+ strh r1, [r0, 0xE]
+ ldr r2, _080FDB6C
+ adds r1, r2, 0
+ strh r1, [r0, 0x10]
+ ldr r2, _080FDB70
+ adds r1, r2, 0
+ strh r1, [r0, 0x12]
+ ldr r2, _080FDB74
+ adds r1, r2, 0
+ strh r1, [r0, 0x14]
+ ldr r2, _080FDB78
+ adds r1, r2, 0
+ strh r1, [r0, 0x16]
+ ldr r2, _080FDB7C
+ adds r1, r2, 0
+ strh r1, [r0, 0x18]
+ ldr r2, _080FDB80
+ adds r1, r2, 0
+ strh r1, [r0, 0x1A]
+ ldr r2, _080FDB84
+ adds r1, r2, 0
+ strh r1, [r0, 0x1C]
+ ldr r2, _080FDB88
+ adds r1, r2, 0
+ strh r1, [r0, 0x1E]
+ bx lr
+ .align 2, 0
+_080FDB4C: .4byte gUnknown_03005E08
+_080FDB50: .4byte 0x000018c6
+_080FDB54: .4byte 0x000077bd
+_080FDB58: .4byte 0x00002d6b
+_080FDB5C: .4byte 0x000018dd
+_080FDB60: .4byte 0x00001ba6
+_080FDB64: .4byte 0x000074c6
+_080FDB68: .4byte 0x00001bbd
+_080FDB6C: .4byte 0x000074dd
+_080FDB70: .4byte 0x000077a6
+_080FDB74: .4byte 0x0000197d
+_080FDB78: .4byte 0x00001bab
+_080FDB7C: .4byte 0x00007566
+_080FDB80: .4byte 0x00002cdd
+_080FDB84: .4byte 0x00002fa6
+_080FDB88: .4byte 0x000074cb
+ thumb_func_end sub_80FDAE4
+
+ thumb_func_start sub_80FDB8C
+sub_80FDB8C: @ 80FDB8C
+ ldr r2, _080FDBA0
+ ldr r0, [r2]
+ movs r1, 0
+ strh r1, [r0]
+ ldr r2, [r2]
+ strh r1, [r2, 0x2]
+ ldr r1, _080FDBA4
+ adds r0, r1, 0
+ strh r0, [r2, 0x4]
+ bx lr
+ .align 2, 0
+_080FDBA0: .4byte gUnknown_03005E08
+_080FDBA4: .4byte 0x00007fff
+ thumb_func_end sub_80FDB8C
+
+ thumb_func_start sub_80FDBA8
+sub_80FDBA8: @ 80FDBA8
+ push {r4,r5,lr}
+ ldr r1, _080FDBE0
+ ldr r0, [r1]
+ movs r2, 0
+ strh r2, [r0]
+ ldr r0, [r1]
+ strh r2, [r0, 0x2]
+ movs r4, 0
+ adds r5, r1, 0
+_080FDBBA:
+ ldr r0, [r5]
+ lsls r2, r4, 1
+ adds r2, r0
+ adds r0, r4, 0x2
+ lsls r3, r0, 1
+ lsls r1, r0, 11
+ lsls r0, 6
+ orrs r1, r0
+ orrs r1, r3
+ strh r1, [r2, 0x4]
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0xD
+ bls _080FDBBA
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FDBE0: .4byte gUnknown_03005E08
+ thumb_func_end sub_80FDBA8
+
+ thumb_func_start sub_80FDBE4
+sub_80FDBE4: @ 80FDBE4
+ push {r4,lr}
+ ldr r2, _080FDC14
+ ldr r1, [r2]
+ movs r0, 0
+ strh r0, [r1]
+ movs r3, 0
+ adds r4, r2, 0
+_080FDBF2:
+ ldr r0, [r4]
+ lsls r2, r3, 1
+ adds r2, r0
+ lsls r0, r3, 10
+ lsls r1, r3, 5
+ orrs r0, r1
+ orrs r0, r3
+ strh r0, [r2, 0x2]
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x1F
+ bls _080FDBF2
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FDC14: .4byte gUnknown_03005E08
+ thumb_func_end sub_80FDBE4
+
+ thumb_func_start sub_80FDC18
+sub_80FDC18: @ 80FDC18
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ lsls r0, 24
+ movs r1, 0xDF
+ mov r9, r1
+ cmp r0, 0
+ bne _080FDC30
+ movs r2, 0xFF
+ mov r9, r2
+_080FDC30:
+ movs r6, 0
+ ldr r3, _080FDCB4
+ mov r12, r3
+ mov r0, r9
+ lsls r4, r0, 1
+ ldr r5, _080FDCB8
+ cmp r6, r9
+ bcs _080FDC54
+ movs r2, 0
+_080FDC42:
+ ldr r0, [r3]
+ lsls r1, r6, 1
+ adds r1, r0
+ strh r2, [r1]
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, r9
+ bcc _080FDC42
+_080FDC54:
+ mov r1, r12
+ ldr r0, [r1]
+ adds r0, r4, r0
+ ldr r2, _080FDCBC
+ adds r1, r2, 0
+ strh r1, [r0]
+ movs r3, 0
+ ldrb r5, [r5]
+ cmp r3, r5
+ bcs _080FDD58
+_080FDC68:
+ ldr r2, _080FDCC0
+ ldr r0, _080FDCC4
+ ldrb r1, [r0]
+ adds r1, r3
+ ldr r0, _080FDCC8
+ ldrb r0, [r0]
+ muls r0, r1
+ lsls r0, 1
+ ldr r1, [r2]
+ adds r1, r0
+ ldr r0, _080FDCCC
+ ldrb r0, [r0]
+ lsls r0, 1
+ adds r4, r1, r0
+ movs r6, 0
+ ldr r0, _080FDCD0
+ adds r2, r0, 0
+ adds r3, 0x1
+ mov r10, r3
+ ldrb r3, [r2]
+ cmp r6, r3
+ bcs _080FDD4A
+ ldr r0, _080FDCD4
+ mov r8, r0
+_080FDC98:
+ ldrh r0, [r4]
+ movs r3, 0x80
+ lsls r3, 8
+ adds r1, r3, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _080FDCD8
+ mov r1, r8
+ ldrh r0, [r1]
+ strh r0, [r4]
+ adds r6, 0x1
+ adds r7, r4, 0x2
+ b _080FDD3E
+ .align 2, 0
+_080FDCB4: .4byte gUnknown_03005E08
+_080FDCB8: .4byte gUnknown_03005DF0
+_080FDCBC: .4byte 0x00003def
+_080FDCC0: .4byte gUnknown_03005DEC
+_080FDCC4: .4byte gUnknown_03005DFC
+_080FDCC8: .4byte gUnknown_03005E04
+_080FDCCC: .4byte gUnknown_03005DE8
+_080FDCD0: .4byte gUnknown_03005DF8
+_080FDCD4: .4byte gUnknown_03005E0C
+_080FDCD8:
+ adds r0, r4, 0
+ bl sub_80FE038
+ lsls r0, 16
+ lsrs r5, r0, 16
+ movs r3, 0x1
+ adds r6, 0x1
+ adds r7, r4, 0x2
+ cmp r3, r9
+ bcs _080FDD34
+ ldr r0, _080FDD04
+ ldr r2, [r0]
+ ldrh r1, [r2, 0x2]
+ mov r12, r0
+ cmp r1, 0
+ bne _080FDD08
+ strh r5, [r2, 0x2]
+ mov r2, r8
+ ldrh r0, [r2]
+ adds r0, 0x1
+ b _080FDD32
+ .align 2, 0
+_080FDD04: .4byte gUnknown_03005E08
+_080FDD08:
+ mov r2, r12
+ ldr r1, [r2]
+ lsls r0, r3, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r0, r5
+ beq _080FDD2C
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, r9
+ bcs _080FDD34
+ lsls r0, r3, 1
+ adds r1, r0, r1
+ ldrh r0, [r1]
+ cmp r0, 0
+ bne _080FDD08
+ strh r5, [r1]
+_080FDD2C:
+ mov r1, r8
+ ldrh r0, [r1]
+ adds r0, r3
+_080FDD32:
+ strh r0, [r4]
+_080FDD34:
+ ldr r2, _080FDD68
+ cmp r3, r9
+ bne _080FDD3E
+ mov r3, r9
+ strh r3, [r4]
+_080FDD3E:
+ lsls r0, r6, 24
+ lsrs r6, r0, 24
+ adds r4, r7, 0
+ ldrb r0, [r2]
+ cmp r6, r0
+ bcc _080FDC98
+_080FDD4A:
+ mov r1, r10
+ lsls r0, r1, 24
+ lsrs r3, r0, 24
+ ldr r0, _080FDD6C
+ ldrb r0, [r0]
+ cmp r3, r0
+ bcc _080FDC68
+_080FDD58:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FDD68: .4byte gUnknown_03005DF8
+_080FDD6C: .4byte gUnknown_03005DF0
+ thumb_func_end sub_80FDC18
+
+ thumb_func_start sub_80FDD70
+sub_80FDD70: @ 80FDD70
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ movs r2, 0
+ ldr r0, _080FDDC4
+ ldrb r0, [r0]
+ cmp r2, r0
+ bcs _080FDE14
+ ldr r0, _080FDDC8
+ mov r8, r0
+_080FDD84:
+ ldr r0, _080FDDCC
+ ldrb r1, [r0]
+ adds r1, r2
+ ldr r0, _080FDDD0
+ ldrb r0, [r0]
+ muls r0, r1
+ lsls r0, 1
+ mov r3, r8
+ ldr r1, [r3]
+ adds r1, r0
+ ldr r0, _080FDDD4
+ ldrb r0, [r0]
+ lsls r0, 1
+ adds r4, r1, r0
+ movs r6, 0
+ ldr r0, _080FDDD8
+ adds r3, r0, 0
+ adds r7, r2, 0x1
+ ldrb r0, [r3]
+ cmp r6, r0
+ bcs _080FDE08
+ ldr r5, _080FDDDC
+_080FDDB0:
+ ldrh r0, [r4]
+ movs r2, 0x80
+ lsls r2, 8
+ adds r1, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _080FDDE0
+ ldrh r0, [r5]
+ strh r0, [r4]
+ b _080FDDFA
+ .align 2, 0
+_080FDDC4: .4byte gUnknown_03005DF0
+_080FDDC8: .4byte gUnknown_03005DEC
+_080FDDCC: .4byte gUnknown_03005DFC
+_080FDDD0: .4byte gUnknown_03005E04
+_080FDDD4: .4byte gUnknown_03005DE8
+_080FDDD8: .4byte gUnknown_03005DF8
+_080FDDDC: .4byte gUnknown_03005E0C
+_080FDDE0:
+ adds r0, r4, 0
+ bl sub_80FD4DC
+ lsls r0, 16
+ cmp r0, 0
+ bne _080FDDF2
+ ldrh r0, [r5]
+ adds r0, 0x1
+ b _080FDDF6
+_080FDDF2:
+ ldrh r0, [r5]
+ adds r0, 0x2
+_080FDDF6:
+ strh r0, [r4]
+ ldr r3, _080FDE20
+_080FDDFA:
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ adds r4, 0x2
+ ldrb r0, [r3]
+ cmp r6, r0
+ bcc _080FDDB0
+_080FDE08:
+ lsls r0, r7, 24
+ lsrs r2, r0, 24
+ ldr r0, _080FDE24
+ ldrb r0, [r0]
+ cmp r2, r0
+ bcc _080FDD84
+_080FDE14:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FDE20: .4byte gUnknown_03005DF8
+_080FDE24: .4byte gUnknown_03005DF0
+ thumb_func_end sub_80FDD70
+
+ thumb_func_start sub_80FDE28
+sub_80FDE28: @ 80FDE28
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ movs r2, 0
+ ldr r0, _080FDE7C
+ ldrb r0, [r0]
+ cmp r2, r0
+ bcs _080FDEC4
+ ldr r0, _080FDE80
+ mov r8, r0
+_080FDE3E:
+ ldr r0, _080FDE84
+ ldrb r1, [r0]
+ adds r1, r2
+ ldr r0, _080FDE88
+ ldrb r0, [r0]
+ muls r0, r1
+ lsls r0, 1
+ mov r3, r8
+ ldr r1, [r3]
+ adds r1, r0
+ ldr r0, _080FDE8C
+ ldrb r0, [r0]
+ lsls r0, 1
+ adds r4, r1, r0
+ movs r5, 0
+ ldr r0, _080FDE90
+ adds r7, r2, 0x1
+ ldrb r0, [r0]
+ cmp r5, r0
+ bcs _080FDEB8
+ ldr r6, _080FDE94
+ movs r0, 0x80
+ lsls r0, 8
+ adds r2, r0, 0
+_080FDE6E:
+ ldrh r0, [r4]
+ ands r0, r2
+ cmp r0, 0
+ beq _080FDE98
+ ldrh r0, [r6]
+ strh r0, [r4]
+ b _080FDEA8
+ .align 2, 0
+_080FDE7C: .4byte gUnknown_03005DF0
+_080FDE80: .4byte gUnknown_03005DEC
+_080FDE84: .4byte gUnknown_03005DFC
+_080FDE88: .4byte gUnknown_03005E04
+_080FDE8C: .4byte gUnknown_03005DE8
+_080FDE90: .4byte gUnknown_03005DF8
+_080FDE94: .4byte gUnknown_03005E0C
+_080FDE98:
+ adds r0, r4, 0
+ str r2, [sp]
+ bl sub_80FE17C
+ ldrh r1, [r6]
+ adds r0, r1
+ strh r0, [r4]
+ ldr r2, [sp]
+_080FDEA8:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r4, 0x2
+ ldr r0, _080FDED0
+ ldrb r0, [r0]
+ cmp r5, r0
+ bcc _080FDE6E
+_080FDEB8:
+ lsls r0, r7, 24
+ lsrs r2, r0, 24
+ ldr r0, _080FDED4
+ ldrb r0, [r0]
+ cmp r2, r0
+ bcc _080FDE3E
+_080FDEC4:
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FDED0: .4byte gUnknown_03005DF8
+_080FDED4: .4byte gUnknown_03005DF0
+ thumb_func_end sub_80FDE28
+
+ thumb_func_start sub_80FDED8
+sub_80FDED8: @ 80FDED8
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ movs r2, 0
+ ldr r0, _080FDF2C
+ ldrb r0, [r0]
+ cmp r2, r0
+ bcs _080FDF74
+ ldr r0, _080FDF30
+ mov r8, r0
+_080FDEEE:
+ ldr r0, _080FDF34
+ ldrb r1, [r0]
+ adds r1, r2
+ ldr r0, _080FDF38
+ ldrb r0, [r0]
+ muls r0, r1
+ lsls r0, 1
+ mov r3, r8
+ ldr r1, [r3]
+ adds r1, r0
+ ldr r0, _080FDF3C
+ ldrb r0, [r0]
+ lsls r0, 1
+ adds r4, r1, r0
+ movs r5, 0
+ ldr r0, _080FDF40
+ adds r7, r2, 0x1
+ ldrb r0, [r0]
+ cmp r5, r0
+ bcs _080FDF68
+ ldr r6, _080FDF44
+ movs r0, 0x80
+ lsls r0, 8
+ adds r2, r0, 0
+_080FDF1E:
+ ldrh r0, [r4]
+ ands r0, r2
+ cmp r0, 0
+ beq _080FDF48
+ ldrh r0, [r6]
+ strh r0, [r4]
+ b _080FDF58
+ .align 2, 0
+_080FDF2C: .4byte gUnknown_03005DF0
+_080FDF30: .4byte gUnknown_03005DEC
+_080FDF34: .4byte gUnknown_03005DFC
+_080FDF38: .4byte gUnknown_03005E04
+_080FDF3C: .4byte gUnknown_03005DE8
+_080FDF40: .4byte gUnknown_03005DF8
+_080FDF44: .4byte gUnknown_03005E0C
+_080FDF48:
+ adds r0, r4, 0
+ str r2, [sp]
+ bl sub_80FE1B0
+ ldrh r1, [r6]
+ adds r0, r1
+ strh r0, [r4]
+ ldr r2, [sp]
+_080FDF58:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r4, 0x2
+ ldr r0, _080FDF80
+ ldrb r0, [r0]
+ cmp r5, r0
+ bcc _080FDF1E
+_080FDF68:
+ lsls r0, r7, 24
+ lsrs r2, r0, 24
+ ldr r0, _080FDF84
+ ldrb r0, [r0]
+ cmp r2, r0
+ bcc _080FDEEE
+_080FDF74:
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FDF80: .4byte gUnknown_03005DF8
+_080FDF84: .4byte gUnknown_03005DF0
+ thumb_func_end sub_80FDED8
+
+ thumb_func_start sub_80FDF88
+sub_80FDF88: @ 80FDF88
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ movs r2, 0
+ ldr r0, _080FDFDC
+ ldrb r0, [r0]
+ cmp r2, r0
+ bcs _080FE024
+ ldr r0, _080FDFE0
+ mov r8, r0
+_080FDF9E:
+ ldr r0, _080FDFE4
+ ldrb r1, [r0]
+ adds r1, r2
+ ldr r0, _080FDFE8
+ ldrb r0, [r0]
+ muls r0, r1
+ lsls r0, 1
+ mov r3, r8
+ ldr r1, [r3]
+ adds r1, r0
+ ldr r0, _080FDFEC
+ ldrb r0, [r0]
+ lsls r0, 1
+ adds r4, r1, r0
+ movs r5, 0
+ ldr r0, _080FDFF0
+ adds r7, r2, 0x1
+ ldrb r0, [r0]
+ cmp r5, r0
+ bcs _080FE018
+ ldr r6, _080FDFF4
+ movs r0, 0x80
+ lsls r0, 8
+ adds r2, r0, 0
+_080FDFCE:
+ ldrh r0, [r4]
+ ands r0, r2
+ cmp r0, 0
+ beq _080FDFF8
+ ldrh r0, [r6]
+ strh r0, [r4]
+ b _080FE008
+ .align 2, 0
+_080FDFDC: .4byte gUnknown_03005DF0
+_080FDFE0: .4byte gUnknown_03005DEC
+_080FDFE4: .4byte gUnknown_03005DFC
+_080FDFE8: .4byte gUnknown_03005E04
+_080FDFEC: .4byte gUnknown_03005DE8
+_080FDFF0: .4byte gUnknown_03005DF8
+_080FDFF4: .4byte gUnknown_03005E0C
+_080FDFF8:
+ adds r0, r4, 0
+ str r2, [sp]
+ bl sub_80FE0AC
+ ldrh r1, [r6]
+ adds r0, r1
+ strh r0, [r4]
+ ldr r2, [sp]
+_080FE008:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r4, 0x2
+ ldr r0, _080FE030
+ ldrb r0, [r0]
+ cmp r5, r0
+ bcc _080FDFCE
+_080FE018:
+ lsls r0, r7, 24
+ lsrs r2, r0, 24
+ ldr r0, _080FE034
+ ldrb r0, [r0]
+ cmp r2, r0
+ bcc _080FDF9E
+_080FE024:
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FE030: .4byte gUnknown_03005DF8
+_080FE034: .4byte gUnknown_03005DF0
+ thumb_func_end sub_80FDF88
+
+ thumb_func_start sub_80FE038
+sub_80FE038: @ 80FE038
+ push {r4,lr}
+ ldrh r0, [r0]
+ movs r1, 0x1F
+ movs r4, 0x1F
+ ands r4, r0
+ lsls r0, 16
+ lsrs r3, r0, 21
+ ands r3, r1
+ lsrs r2, r0, 26
+ ands r2, r1
+ movs r1, 0x3
+ adds r0, r4, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _080FE05C
+ movs r0, 0x1C
+ ands r0, r4
+ adds r4, r0, 0x4
+_080FE05C:
+ adds r0, r3, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _080FE06A
+ movs r0, 0x1C
+ ands r0, r3
+ adds r3, r0, 0x4
+_080FE06A:
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _080FE078
+ movs r0, 0x1C
+ ands r0, r2
+ adds r2, r0, 0x4
+_080FE078:
+ cmp r4, 0x5
+ bhi _080FE07E
+ movs r4, 0x6
+_080FE07E:
+ cmp r4, 0x1E
+ bls _080FE084
+ movs r4, 0x1E
+_080FE084:
+ cmp r3, 0x5
+ bhi _080FE08A
+ movs r3, 0x6
+_080FE08A:
+ cmp r3, 0x1E
+ bls _080FE090
+ movs r3, 0x1E
+_080FE090:
+ cmp r2, 0x5
+ bhi _080FE096
+ movs r2, 0x6
+_080FE096:
+ cmp r2, 0x1E
+ bls _080FE09C
+ movs r2, 0x1E
+_080FE09C:
+ lsls r0, r2, 10
+ lsls r1, r3, 5
+ orrs r0, r1
+ orrs r4, r0
+ adds r0, r4, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80FE038
+
+ thumb_func_start sub_80FE0AC
+sub_80FE0AC: @ 80FE0AC
+ push {lr}
+ ldrh r0, [r0]
+ movs r1, 0x1F
+ movs r3, 0x1F
+ ands r3, r0
+ lsls r0, 16
+ lsrs r2, r0, 21
+ ands r2, r1
+ lsrs r0, 26
+ ands r0, r1
+ cmp r3, 0xB
+ bhi _080FE0D0
+ cmp r2, 0xA
+ bhi _080FE0D0
+ cmp r0, 0xA
+ bhi _080FE0D0
+ movs r0, 0x1
+ b _080FE176
+_080FE0D0:
+ cmp r3, 0x13
+ bls _080FE0F4
+ cmp r2, 0x13
+ bls _080FE0DC
+ cmp r0, 0x13
+ bhi _080FE100
+_080FE0DC:
+ cmp r3, 0x13
+ bls _080FE0F4
+ cmp r2, 0x13
+ bls _080FE0EA
+ cmp r0, 0xE
+ bhi _080FE100
+ b _080FE138
+_080FE0EA:
+ cmp r0, 0x13
+ bls _080FE0F4
+ cmp r2, 0xE
+ bhi _080FE100
+ b _080FE114
+_080FE0F4:
+ cmp r2, 0x13
+ bls _080FE104
+ cmp r0, 0x13
+ bls _080FE104
+ cmp r3, 0xE
+ bls _080FE15C
+_080FE100:
+ movs r0, 0x2
+ b _080FE176
+_080FE104:
+ cmp r3, 0x13
+ bls _080FE128
+ cmp r2, 0xB
+ bls _080FE11C
+ cmp r0, 0xB
+ bls _080FE118
+ cmp r2, r0
+ bcs _080FE138
+_080FE114:
+ movs r0, 0x8
+ b _080FE176
+_080FE118:
+ movs r0, 0xA
+ b _080FE176
+_080FE11C:
+ cmp r0, 0xB
+ bls _080FE124
+ movs r0, 0xD
+ b _080FE176
+_080FE124:
+ movs r0, 0x4
+ b _080FE176
+_080FE128:
+ cmp r2, 0x13
+ bls _080FE14C
+ cmp r3, 0xB
+ bls _080FE140
+ cmp r0, 0xB
+ bls _080FE13C
+ cmp r3, r0
+ bcc _080FE15C
+_080FE138:
+ movs r0, 0x7
+ b _080FE176
+_080FE13C:
+ movs r0, 0xB
+ b _080FE176
+_080FE140:
+ cmp r0, 0xB
+ bls _080FE148
+ movs r0, 0xE
+ b _080FE176
+_080FE148:
+ movs r0, 0x5
+ b _080FE176
+_080FE14C:
+ cmp r0, 0x13
+ bls _080FE174
+ cmp r3, 0xB
+ bls _080FE160
+ cmp r2, 0xB
+ bls _080FE168
+ cmp r3, r2
+ bcs _080FE114
+_080FE15C:
+ movs r0, 0x9
+ b _080FE176
+_080FE160:
+ cmp r2, 0xB
+ bls _080FE168
+ movs r0, 0xC
+ b _080FE176
+_080FE168:
+ cmp r0, 0xB
+ bls _080FE170
+ movs r0, 0xF
+ b _080FE176
+_080FE170:
+ movs r0, 0x6
+ b _080FE176
+_080FE174:
+ movs r0, 0x3
+_080FE176:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80FE0AC
+
+ thumb_func_start sub_80FE17C
+sub_80FE17C: @ 80FE17C
+ push {lr}
+ ldrh r1, [r0]
+ movs r3, 0x1F
+ movs r0, 0x1F
+ ands r0, r1
+ lsls r1, 16
+ lsrs r2, r1, 21
+ ands r2, r3
+ lsrs r1, 26
+ ands r1, r3
+ adds r0, r2
+ adds r0, r1
+ movs r1, 0x3
+ bl __divsi3
+ movs r1, 0x1E
+ ands r0, r1
+ lsls r0, 16
+ cmp r0, 0
+ beq _080FE1A8
+ lsrs r0, 17
+ b _080FE1AA
+_080FE1A8:
+ movs r0, 0x1
+_080FE1AA:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80FE17C
+
+ thumb_func_start sub_80FE1B0
+sub_80FE1B0: @ 80FE1B0
+ push {lr}
+ ldrh r1, [r0]
+ movs r3, 0x1F
+ movs r0, 0x1F
+ ands r0, r1
+ lsls r1, 16
+ lsrs r2, r1, 21
+ ands r2, r3
+ lsrs r1, 26
+ ands r1, r3
+ adds r0, r2
+ adds r0, r1
+ movs r1, 0x3
+ bl __divsi3
+ lsls r0, 16
+ movs r1, 0x80
+ lsls r1, 9
+ adds r0, r1
+ lsrs r0, 16
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80FE1B0
+
+ thumb_func_start sub_80FE1DC
+sub_80FE1DC: @ 80FE1DC
+ push {lr}
+ sub sp, 0x8
+ bl sub_80FE2B4
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0xA
+ movs r3, 0x9
+ bl MenuDrawTextWindow
+ ldr r3, _080FE218
+ movs r0, 0x1
+ movs r1, 0x1
+ movs r2, 0x4
+ bl PrintMenuItems
+ ldr r0, _080FE21C
+ ldrb r0, [r0]
+ str r0, [sp]
+ movs r0, 0x9
+ str r0, [sp, 0x4]
+ movs r0, 0
+ movs r1, 0x1
+ movs r2, 0x1
+ movs r3, 0x4
+ bl InitMenu
+ add sp, 0x8
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FE218: .4byte gUnknown_083EC604
+_080FE21C: .4byte gUnknown_020388D4
+ thumb_func_end sub_80FE1DC
+
+ thumb_func_start sub_80FE220
+sub_80FE220: @ 80FE220
+ push {lr}
+ ldr r1, _080FE238
+ movs r0, 0
+ strb r0, [r1]
+ bl ScriptContext2_Enable
+ bl sub_80FE1DC
+ bl sub_80FE394
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FE238: .4byte gUnknown_020388D4
+ thumb_func_end sub_80FE220
+
+ thumb_func_start sub_80FE23C
+sub_80FE23C: @ 80FE23C
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl sub_80FE220
+ ldr r1, _080FE25C
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080FE260
+ str r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FE25C: .4byte gTasks
+_080FE260: .4byte sub_80FE2EC
+ thumb_func_end sub_80FE23C
+
+ thumb_func_start sub_80FE264
+sub_80FE264: @ 80FE264
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_80FE23C
+ ldr r1, _080FE284
+ ldr r0, _080FE288
+ str r0, [r1]
+ adds r0, 0x10
+ str r0, [r1, 0x4]
+ movs r2, 0
+ movs r0, 0x10
+ strb r0, [r1, 0x8]
+ strb r2, [r1, 0x9]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FE284: .4byte 0x0201f000
+_080FE288: .4byte gSaveBlock1 + 0x1A1A
+ thumb_func_end sub_80FE264
+
+ thumb_func_start sub_80FE28C
+sub_80FE28C: @ 80FE28C
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_80FE23C
+ ldr r1, _080FE2AC
+ ldr r0, _080FE2B0
+ str r0, [r1]
+ adds r0, 0xC
+ str r0, [r1, 0x4]
+ movs r0, 0xC
+ strb r0, [r1, 0x8]
+ movs r0, 0x1
+ strb r0, [r1, 0x9]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FE2AC: .4byte 0x0201f000
+_080FE2B0: .4byte gSaveBlock1 + 0x2688
+ thumb_func_end sub_80FE28C
+
+ thumb_func_start sub_80FE2B4
+sub_80FE2B4: @ 80FE2B4
+ push {lr}
+ sub sp, 0x8
+ ldr r1, _080FE2E8
+ mov r0, sp
+ movs r2, 0x6
+ bl memcpy
+ add r0, sp, 0x4
+ movs r1, 0xDF
+ movs r2, 0x2
+ bl LoadPalette
+ mov r0, sp
+ adds r0, 0x2
+ movs r1, 0xD1
+ movs r2, 0x2
+ bl LoadPalette
+ mov r0, sp
+ movs r1, 0xD8
+ movs r2, 0x2
+ bl LoadPalette
+ add sp, 0x8
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FE2E8: .4byte gUnknown_083EC654
+ thumb_func_end sub_80FE2B4
+
+ thumb_func_start sub_80FE2EC
+sub_80FE2EC: @ 80FE2EC
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ adds r7, r6, 0
+ ldr r0, _080FE368
+ ldrb r1, [r0, 0x7]
+ movs r5, 0x80
+ adds r0, r5, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _080FE38C
+ ldr r4, _080FE36C
+ ldrh r1, [r4, 0x2E]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _080FE324
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+ negs r0, r0
+ bl MoveMenuCursor
+ ldr r1, _080FE370
+ strb r0, [r1]
+ bl sub_80FE394
+_080FE324:
+ ldrh r1, [r4, 0x2E]
+ adds r0, r5, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _080FE342
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+ bl MoveMenuCursor
+ ldr r1, _080FE370
+ strb r0, [r1]
+ bl sub_80FE394
+_080FE342:
+ ldrh r1, [r4, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080FE378
+ movs r0, 0x5
+ bl PlaySE
+ ldr r1, _080FE374
+ ldr r0, _080FE370
+ ldrb r0, [r0]
+ lsls r0, 3
+ adds r1, 0x4
+ adds r0, r1
+ ldr r1, [r0]
+ adds r0, r6, 0
+ bl _call_via_r1
+ b _080FE38C
+ .align 2, 0
+_080FE368: .4byte gPaletteFade
+_080FE36C: .4byte gMain
+_080FE370: .4byte gUnknown_020388D4
+_080FE374: .4byte gUnknown_083EC604
+_080FE378:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080FE38C
+ movs r0, 0x5
+ bl PlaySE
+ adds r0, r7, 0
+ bl gpu_pal_decompress_alloc_tag_and_upload
+_080FE38C:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80FE2EC
+
+ thumb_func_start sub_80FE394
+sub_80FE394: @ 80FE394
+ push {lr}
+ movs r0, 0x2
+ movs r1, 0xF
+ movs r2, 0x1B
+ movs r3, 0x12
+ bl MenuFillWindowRectWithBlankTile
+ ldr r1, _080FE3BC
+ ldr r0, _080FE3C0
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x2
+ movs r2, 0xF
+ bl MenuPrint
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FE3BC: .4byte gUnknown_083EC624
+_080FE3C0: .4byte gUnknown_020388D4
+ thumb_func_end sub_80FE394
+
+ thumb_func_start gpu_pal_decompress_alloc_tag_and_upload
+gpu_pal_decompress_alloc_tag_and_upload: @ 80FE3C4
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_8072DEC
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0xA
+ movs r3, 0x9
+ bl MenuZeroFillWindowRect
+ movs r0, 0x2
+ movs r1, 0xF
+ movs r2, 0x1B
+ movs r3, 0x12
+ bl MenuFillWindowRectWithBlankTile
+ movs r0, 0x6
+ bl FreeSpritePaletteByTag
+ ldr r0, _080FE404
+ ldrb r0, [r0, 0x9]
+ cmp r0, 0
+ bne _080FE40C
+ ldr r0, _080FE408
+ bl ScriptContext1_SetupScript
+ adds r0, r4, 0
+ bl DestroyTask
+ b _080FE412
+ .align 2, 0
+_080FE404: .4byte 0x0201f000
+_080FE408: .4byte gUnknown_0815F399
+_080FE40C:
+ adds r0, r4, 0
+ bl sub_8139E24
+_080FE412:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end gpu_pal_decompress_alloc_tag_and_upload
+
+ thumb_func_start sub_80FE418
+sub_80FE418: @ 80FE418
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_80FE5AC
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80FE418
+
+ thumb_func_start sub_80FE428
+sub_80FE428: @ 80FE428
+ push {r4,lr}
+ sub sp, 0x8
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _080FE464
+ ldrb r0, [r0]
+ str r0, [sp]
+ movs r0, 0x9
+ str r0, [sp, 0x4]
+ movs r0, 0
+ movs r1, 0x1
+ movs r2, 0x1
+ movs r3, 0x4
+ bl InitMenu
+ bl sub_80FE394
+ ldr r1, _080FE468
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080FE46C
+ str r1, [r0]
+ add sp, 0x8
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FE464: .4byte gUnknown_020388D4
+_080FE468: .4byte gTasks
+_080FE46C: .4byte sub_80FE2EC
+ thumb_func_end sub_80FE428
+
+ thumb_func_start sub_80FE470
+sub_80FE470: @ 80FE470
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ adds r4, r0, 0
+ mov r8, r1
+ mov r9, r2
+ adds r5, r3, 0
+ lsls r4, 24
+ lsrs r4, 24
+ mov r0, r8
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ mov r0, r9
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ lsls r5, 24
+ lsrs r5, 24
+ bl sub_8072CBC
+ adds r6, r0, 0
+ lsls r6, 24
+ lsrs r6, 24
+ ldr r7, _080FE51C
+ movs r0, 0xFC
+ strb r0, [r7]
+ movs r0, 0x5
+ mov r10, r0
+ strb r0, [r7, 0x1]
+ strb r5, [r7, 0x2]
+ adds r7, 0x3
+ ldr r1, _080FE520
+ lsls r0, r4, 2
+ adds r0, r1
+ ldr r1, [r0]
+ adds r0, r7, 0
+ bl StringCopy
+ adds r7, r0, 0
+ adds r0, r4, 0
+ bl sub_8134194
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r7, 0
+ movs r2, 0x56
+ movs r3, 0x1
+ bl sub_8072C14
+ adds r7, r0, 0
+ movs r0, 0xBA
+ strb r0, [r7]
+ adds r7, 0x1
+ ldr r0, _080FE524
+ lsls r4, 3
+ adds r4, r0
+ ldrb r1, [r4, 0x4]
+ adds r0, r7, 0
+ movs r2, 0x68
+ movs r3, 0x1
+ bl sub_8072C14
+ adds r7, r0, 0
+ movs r0, 0xFC
+ strb r0, [r7]
+ mov r0, r10
+ strb r0, [r7, 0x1]
+ strb r6, [r7, 0x2]
+ movs r0, 0xFF
+ strb r0, [r7, 0x3]
+ ldr r0, _080FE51C
+ mov r1, r8
+ mov r2, r9
+ bl MenuPrint
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FE51C: .4byte gStringVar4
+_080FE520: .4byte gUnknown_083EC5E4
+_080FE524: .4byte gUnknown_08402E40
+ thumb_func_end sub_80FE470
+
+ thumb_func_start sub_80FE528
+sub_80FE528: @ 80FE528
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0xE
+ movs r3, 0x13
+ bl MenuDrawTextWindow
+ movs r5, 0
+ ldr r1, _080FE574
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r4, r0, r1
+_080FE548:
+ ldr r0, _080FE578
+ ldrb r0, [r0, 0x9]
+ cmp r0, 0x1
+ bne _080FE57C
+ movs r1, 0x1E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080FE57C
+ cmp r5, 0x6
+ beq _080FE57C
+ cmp r5, 0x7
+ beq _080FE57C
+ lsls r2, r5, 1
+ adds r2, 0x1
+ lsls r2, 24
+ lsrs r2, 24
+ adds r0, r5, 0
+ movs r1, 0x1
+ movs r3, 0xD
+ bl sub_80FE470
+ b _080FE58E
+ .align 2, 0
+_080FE574: .4byte gTasks
+_080FE578: .4byte 0x0201f000
+_080FE57C:
+ lsls r2, r5, 1
+ adds r2, 0x1
+ lsls r2, 24
+ lsrs r2, 24
+ adds r0, r5, 0
+ movs r1, 0x1
+ movs r3, 0xFF
+ bl sub_80FE470
+_080FE58E:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x7
+ bls _080FE548
+ ldr r0, _080FE5A8
+ movs r1, 0x1
+ movs r2, 0x11
+ bl MenuPrint
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FE5A8: .4byte gUnknownText_Exit
+ thumb_func_end sub_80FE528
+
+ thumb_func_start sub_80FE5AC
+sub_80FE5AC: @ 80FE5AC
+ push {r4,lr}
+ sub sp, 0x8
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl sub_8072DEC
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ adds r0, r4, 0
+ bl sub_80FE528
+ ldr r0, _080FE5F8
+ ldrb r0, [r0]
+ str r0, [sp]
+ movs r0, 0xD
+ str r0, [sp, 0x4]
+ movs r0, 0
+ movs r1, 0x1
+ movs r2, 0x1
+ movs r3, 0x9
+ bl InitMenu
+ ldr r1, _080FE5FC
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080FE600
+ str r1, [r0]
+ add sp, 0x8
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FE5F8: .4byte gUnknown_020388F6
+_080FE5FC: .4byte gTasks
+_080FE600: .4byte sub_80FE604
+ thumb_func_end sub_80FE5AC
+
+ thumb_func_start sub_80FE604
+sub_80FE604: @ 80FE604
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r4, r5, 0
+ ldr r0, _080FE638
+ ldrb r1, [r0, 0x7]
+ movs r3, 0x80
+ adds r0, r3, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _080FE61C
+ b _080FE720
+_080FE61C:
+ ldr r2, _080FE63C
+ ldrh r1, [r2, 0x30]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _080FE640
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+ negs r0, r0
+ bl MoveMenuCursor
+ b _080FE720
+ .align 2, 0
+_080FE638: .4byte gPaletteFade
+_080FE63C: .4byte gMain
+_080FE640:
+ adds r0, r3, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _080FE656
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+ bl MoveMenuCursor
+ b _080FE720
+_080FE656:
+ ldrh r1, [r2, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080FE70C
+ movs r0, 0x5
+ bl PlaySE
+ bl GetMenuCursorPos
+ ldr r4, _080FE6C0
+ strb r0, [r4]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x8
+ beq _080FE704
+ ldrb r0, [r4]
+ bl sub_8134194
+ ldr r1, _080FE6C4
+ strb r0, [r1]
+ lsls r0, 24
+ cmp r0, 0
+ beq _080FE6DC
+ ldrb r0, [r4]
+ bl sub_8134104
+ ldr r2, _080FE6C8
+ ldr r1, _080FE6CC
+ ldrb r0, [r4]
+ lsls r0, 3
+ adds r0, r1
+ ldr r0, [r0]
+ str r0, [r2]
+ adds r0, r5, 0
+ bl sub_80FEF50
+ bl sub_80F944C
+ ldr r0, _080FE6D0
+ movs r1, 0x8
+ bl sub_80F9480
+ bl InitMenuInUpperLeftCornerPlaySoundWhenAPressed
+ ldr r1, _080FE6D4
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080FE6D8
+ str r1, [r0]
+ b _080FE720
+ .align 2, 0
+_080FE6C0: .4byte gUnknown_020388F6
+_080FE6C4: .4byte gUnknown_020388D5
+_080FE6C8: .4byte gUnknown_020388D0
+_080FE6CC: .4byte gUnknown_08402E40
+_080FE6D0: .4byte gUnknown_020388F7
+_080FE6D4: .4byte gTasks
+_080FE6D8: .4byte sub_80FE868
+_080FE6DC:
+ bl sub_8072DEC
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0xE
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ ldr r1, _080FE6FC
+ ldr r2, _080FE700
+ adds r0, r5, 0
+ movs r3, 0
+ bl DisplayItemMessageOnField
+ b _080FE720
+ .align 2, 0
+_080FE6FC: .4byte gSecretBaseText_NoDecors
+_080FE700: .4byte sub_80FE418
+_080FE704:
+ adds r0, r5, 0
+ bl sub_80FE728
+ b _080FE720
+_080FE70C:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080FE720
+ movs r0, 0x5
+ bl PlaySE
+ adds r0, r4, 0
+ bl sub_80FE728
+_080FE720:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80FE604
+
+ thumb_func_start sub_80FE728
+sub_80FE728: @ 80FE728
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r1, _080FE748
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0x1E
+ ldrsh r0, [r0, r1]
+ cmp r0, 0x3
+ beq _080FE74C
+ adds r0, r2, 0
+ bl sub_80FE758
+ b _080FE752
+ .align 2, 0
+_080FE748: .4byte gTasks
+_080FE74C:
+ adds r0, r2, 0
+ bl sub_8109DAC
+_080FE752:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80FE728
+
+ thumb_func_start sub_80FE758
+sub_80FE758: @ 80FE758
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_8072DEC
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0xE
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ ldr r1, _080FE794
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r5, r0, r1
+ movs r1, 0x1E
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x2
+ beq _080FE79C
+ bl sub_80FE1DC
+ bl MenuDisplayMessageBox
+ bl sub_80FE394
+ ldr r0, _080FE798
+ str r0, [r5]
+ b _080FE7A2
+ .align 2, 0
+_080FE794: .4byte gTasks
+_080FE798: .4byte sub_80FE2EC
+_080FE79C:
+ adds r0, r4, 0
+ bl sub_80B3068
+_080FE7A2:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80FE758
+
+ thumb_func_start sub_80FE7A8
+sub_80FE7A8: @ 80FE7A8
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080FE7CC
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ movs r3, 0
+ movs r2, 0x3
+ strh r2, [r1, 0x1E]
+ ldr r1, _080FE7D0
+ strb r3, [r1]
+ bl sub_80FE5AC
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FE7CC: .4byte gTasks
+_080FE7D0: .4byte gUnknown_020388F6
+ thumb_func_end sub_80FE7A8
+
+ thumb_func_start sub_80FE7D4
+sub_80FE7D4: @ 80FE7D4
+ push {lr}
+ lsls r1, 24
+ ldr r2, _080FE7E8
+ lsrs r1, 22
+ adds r1, r2
+ ldr r1, [r1]
+ bl StringCopy
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FE7E8: .4byte gUnknown_083EC5E4
+ thumb_func_end sub_80FE7D4
+
+ thumb_func_start sub_80FE7EC
+sub_80FE7EC: @ 80FE7EC
+ push {r4,lr}
+ sub sp, 0x8
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl sub_8072DEC
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ adds r0, r4, 0
+ bl sub_80FEC94
+ ldr r0, _080FE858
+ ldrb r0, [r0]
+ bl sub_80FECB8
+ movs r0, 0xF
+ movs r1, 0xC
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuDrawTextWindow
+ ldr r4, _080FE85C
+ ldr r0, _080FE860
+ ldrb r0, [r0]
+ ldrb r1, [r4]
+ adds r0, r1
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_80FECE0
+ ldr r0, _080FE864
+ ldrb r3, [r0]
+ adds r3, 0x1
+ lsls r3, 24
+ lsrs r3, 24
+ ldrb r0, [r4]
+ str r0, [sp]
+ movs r0, 0xD
+ str r0, [sp, 0x4]
+ movs r0, 0
+ movs r1, 0x1
+ movs r2, 0x2
+ bl InitMenu
+ add sp, 0x8
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FE858: .4byte gUnknown_020388F6
+_080FE85C: .4byte gUnknown_020388F2
+_080FE860: .4byte gUnknown_020388F4
+_080FE864: .4byte gUnknown_020388F3
+ thumb_func_end sub_80FE7EC
+
+ thumb_func_start sub_80FE868
+sub_80FE868: @ 80FE868
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r4, 0
+ bl sub_80FE7EC
+ ldr r1, _080FE88C
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080FE890
+ str r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FE88C: .4byte gTasks
+_080FE890: .4byte sub_80FE948
+ thumb_func_end sub_80FE868
+
+ thumb_func_start sub_80FE894
+sub_80FE894: @ 80FE894
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ lsls r1, 24
+ lsrs r5, r1, 24
+ lsls r2, 24
+ lsrs r7, r2, 24
+ movs r0, 0
+ mov r10, r0
+ ldr r6, _080FE920
+ ldrb r1, [r6]
+ ldr r4, _080FE924
+ ldrb r0, [r4]
+ adds r1, r0
+ ldr r2, _080FE928
+ mov r9, r2
+ ldrb r0, [r2]
+ cmp r1, r0
+ bne _080FE8C8
+ movs r1, 0x1
+ mov r10, r1
+_080FE8C8:
+ movs r0, 0x5
+ bl PlaySE
+ lsls r0, r5, 24
+ asrs r0, 24
+ cmp r0, 0
+ beq _080FE8DC
+ bl MoveMenuCursor
+ strb r0, [r6]
+_080FE8DC:
+ cmp r7, 0
+ beq _080FE8EE
+ ldrb r0, [r4]
+ adds r0, r7
+ strb r0, [r4]
+ mov r0, r8
+ movs r1, 0x1
+ bl sub_80FEABC
+_080FE8EE:
+ ldrb r0, [r6]
+ ldrb r1, [r4]
+ adds r0, r1
+ mov r2, r9
+ ldrb r2, [r2]
+ cmp r0, r2
+ beq _080FE92C
+ mov r0, r10
+ cmp r0, 0
+ beq _080FE90E
+ movs r0, 0xF
+ movs r1, 0xC
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuDrawTextWindow
+_080FE90E:
+ ldrb r0, [r4]
+ ldrb r6, [r6]
+ adds r0, r6
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_80FECE0
+ b _080FE938
+ .align 2, 0
+_080FE920: .4byte gUnknown_020388F2
+_080FE924: .4byte gUnknown_020388F4
+_080FE928: .4byte gUnknown_020388D5
+_080FE92C:
+ movs r0, 0xF
+ movs r1, 0xC
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+_080FE938:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80FE894
+
+ thumb_func_start sub_80FE948
+sub_80FE948: @ 80FE948
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _080FE980
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _080FE95C
+ b _080FEAAC
+_080FE95C:
+ ldr r0, _080FE984
+ ldrh r1, [r0, 0x30]
+ movs r0, 0xF0
+ ands r0, r1
+ cmp r0, 0x40
+ bne _080FE9A0
+ ldr r0, _080FE988
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080FE98C
+ movs r1, 0x1
+ negs r1, r1
+ adds r0, r4, 0
+ movs r2, 0
+ bl sub_80FE894
+ b _080FE9A0
+ .align 2, 0
+_080FE980: .4byte gPaletteFade
+_080FE984: .4byte gMain
+_080FE988: .4byte gUnknown_020388F2
+_080FE98C:
+ ldr r0, _080FE9C4
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080FE9A0
+ movs r2, 0x1
+ negs r2, r2
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_80FE894
+_080FE9A0:
+ ldr r0, _080FE9C8
+ ldrh r1, [r0, 0x30]
+ movs r0, 0xF0
+ ands r0, r1
+ cmp r0, 0x80
+ bne _080FE9EE
+ ldr r2, _080FE9CC
+ ldr r1, _080FE9D0
+ ldrb r0, [r2]
+ ldrb r1, [r1]
+ cmp r0, r1
+ beq _080FE9D4
+ adds r0, r4, 0
+ movs r1, 0x1
+ movs r2, 0
+ bl sub_80FE894
+ b _080FE9EE
+ .align 2, 0
+_080FE9C4: .4byte gUnknown_020388F4
+_080FE9C8: .4byte gMain
+_080FE9CC: .4byte gUnknown_020388F2
+_080FE9D0: .4byte gUnknown_020388F3
+_080FE9D4:
+ ldr r0, _080FEA38
+ ldrb r0, [r0]
+ ldrb r1, [r2]
+ adds r0, r1
+ ldr r1, _080FEA3C
+ ldrb r1, [r1]
+ cmp r0, r1
+ beq _080FE9EE
+ adds r0, r4, 0
+ movs r1, 0
+ movs r2, 0x1
+ bl sub_80FE894
+_080FE9EE:
+ ldr r0, _080FEA40
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080FEA7C
+ bl sub_8072DEC
+ movs r0, 0x5
+ bl PlaySE
+ ldr r2, _080FEA44
+ ldr r1, _080FEA48
+ ldr r0, _080FEA38
+ ldrb r0, [r0]
+ ldrb r1, [r1]
+ adds r0, r1
+ strb r0, [r2]
+ ldr r1, _080FEA3C
+ lsls r0, 24
+ lsrs r0, 24
+ ldrb r1, [r1]
+ cmp r0, r1
+ bne _080FEA54
+ ldr r1, _080FEA4C
+ ldr r2, _080FEA50
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r2
+ movs r2, 0x1E
+ ldrsh r0, [r0, r2]
+ lsls r0, 3
+ adds r1, 0x4
+ adds r0, r1
+ b _080FEA68
+ .align 2, 0
+_080FEA38: .4byte gUnknown_020388F4
+_080FEA3C: .4byte gUnknown_020388D5
+_080FEA40: .4byte gMain
+_080FEA44: .4byte gUnknown_020388F5
+_080FEA48: .4byte gUnknown_020388F2
+_080FEA4C: .4byte gUnknown_083EC634
+_080FEA50: .4byte gTasks
+_080FEA54:
+ ldr r2, _080FEA74
+ ldr r1, _080FEA78
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0x1E
+ ldrsh r0, [r0, r1]
+ lsls r0, 3
+ adds r0, r2
+_080FEA68:
+ ldr r1, [r0]
+ adds r0, r4, 0
+ bl _call_via_r1
+ b _080FEAAC
+ .align 2, 0
+_080FEA74: .4byte gUnknown_083EC634
+_080FEA78: .4byte gTasks
+_080FEA7C:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080FEAAC
+ bl sub_8072DEC
+ movs r0, 0x5
+ bl PlaySE
+ ldr r1, _080FEAB4
+ ldr r2, _080FEAB8
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r2
+ movs r2, 0x1E
+ ldrsh r0, [r0, r2]
+ lsls r0, 3
+ adds r1, 0x4
+ adds r0, r1
+ ldr r1, [r0]
+ adds r0, r4, 0
+ bl _call_via_r1
+_080FEAAC:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FEAB4: .4byte gUnknown_083EC634
+_080FEAB8: .4byte gTasks
+ thumb_func_end sub_80FE948
+
+ thumb_func_start sub_80FEABC
+sub_80FEABC: @ 80FEABC
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ ldr r4, _080FEB58
+ ldrb r0, [r4]
+ cmp r0, 0
+ bne _080FEADE
+ movs r0, 0
+ bl SetBgTilemapBuffer
+ ldrb r0, [r4]
+ cmp r0, 0
+ beq _080FEAE8
+_080FEADE:
+ movs r0, 0
+ movs r1, 0x3C
+ movs r2, 0x8
+ bl sub_80F953C
+_080FEAE8:
+ ldr r5, _080FEB58
+ ldrb r0, [r5]
+ adds r0, 0x7
+ ldr r4, _080FEB5C
+ ldrb r1, [r4]
+ cmp r0, r1
+ bne _080FEAFC
+ movs r0, 0x1
+ bl SetBgTilemapBuffer
+_080FEAFC:
+ ldrb r0, [r5]
+ adds r0, 0x7
+ ldrb r4, [r4]
+ cmp r0, r4
+ bge _080FEB10
+ movs r0, 0x1
+ movs r1, 0x3C
+ movs r2, 0x98
+ bl sub_80F953C
+_080FEB10:
+ ldrb r4, [r5]
+ adds r0, r4, 0
+ adds r0, 0x8
+ cmp r4, r0
+ blt _080FEB1C
+ b _080FEC7E
+_080FEB1C:
+ adds r7, r5, 0
+_080FEB1E:
+ ldrb r1, [r7]
+ subs r1, r4, r1
+ lsls r0, r1, 25
+ movs r2, 0x80
+ lsls r2, 18
+ adds r0, r2
+ lsrs r6, r0, 24
+ ldr r0, _080FEB60
+ adds r1, r0
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _080FEB3C
+ adds r0, r1, 0
+ bl sub_80F94F8
+_080FEB3C:
+ ldr r0, _080FEB5C
+ ldrb r0, [r0]
+ cmp r4, r0
+ bne _080FEB68
+ lsls r2, r6, 3
+ movs r0, 0x1
+ str r0, [sp]
+ ldr r0, _080FEB64
+ movs r1, 0x8
+ movs r3, 0x68
+ bl sub_8072A18
+ b _080FEC7E
+ .align 2, 0
+_080FEB58: .4byte gUnknown_020388F4
+_080FEB5C: .4byte gUnknown_020388D5
+_080FEB60: .4byte gUnknown_020388F7
+_080FEB64: .4byte gUnknownText_Exit
+_080FEB68:
+ ldr r0, _080FEBC0
+ ldr r1, [r0]
+ adds r2, r1, r4
+ ldrb r1, [r2]
+ mov r12, r0
+ adds r5, r4, 0x1
+ cmp r1, 0
+ bne _080FEB7A
+ b _080FEC70
+_080FEB7A:
+ ldr r0, _080FEBC4
+ ldrb r5, [r0, 0x9]
+ cmp r5, 0x1
+ bne _080FEBDC
+ ldr r0, _080FEBC8
+ ldrb r0, [r0]
+ cmp r0, 0x6
+ beq _080FEBDC
+ cmp r0, 0x7
+ beq _080FEBDC
+ ldr r0, _080FEBCC
+ mov r3, r8
+ lsls r1, r3, 2
+ add r1, r8
+ lsls r1, 3
+ adds r1, r0
+ movs r3, 0x1E
+ ldrsh r0, [r1, r3]
+ cmp r0, 0
+ bne _080FEBDC
+ ldrb r1, [r2]
+ lsls r1, 5
+ ldr r0, _080FEBD0
+ adds r1, r0
+ ldr r0, _080FEBD4
+ bl StringCopy
+ lsls r2, r6, 3
+ str r5, [sp]
+ ldr r0, _080FEBD8
+ movs r1, 0x8
+ movs r3, 0x68
+ bl sub_8072A18
+ b _080FEBF8
+ .align 2, 0
+_080FEBC0: .4byte gUnknown_020388D0
+_080FEBC4: .4byte 0x0201f000
+_080FEBC8: .4byte gUnknown_020388F6
+_080FEBCC: .4byte gTasks
+_080FEBD0: .4byte gDecorations + 0x1
+_080FEBD4: .4byte gStringVar1
+_080FEBD8: .4byte gUnknown_083EC65A
+_080FEBDC:
+ mov r1, r12
+ ldr r0, [r1]
+ adds r0, r4
+ ldrb r0, [r0]
+ lsls r0, 5
+ ldr r1, _080FEC00
+ adds r0, r1
+ lsls r2, r6, 3
+ movs r1, 0x1
+ str r1, [sp]
+ movs r1, 0x8
+ movs r3, 0x68
+ bl sub_8072A18
+_080FEBF8:
+ movs r1, 0
+ adds r5, r4, 0x1
+ b _080FEC0A
+ .align 2, 0
+_080FEC00: .4byte gDecorations + 0x1
+_080FEC04:
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+_080FEC0A:
+ cmp r1, 0xF
+ bhi _080FEC34
+ ldr r0, _080FEC38
+ adds r0, r1, r0
+ ldrb r0, [r0]
+ subs r0, 0x1
+ cmp r0, r4
+ bne _080FEC04
+ ldrb r3, [r7]
+ subs r3, r4, r3
+ ldr r1, _080FEC3C
+ adds r1, r3, r1
+ lsls r3, 20
+ movs r2, 0xC0
+ lsls r2, 13
+ adds r3, r2
+ asrs r3, 16
+ movs r0, 0x4
+ movs r2, 0x6C
+ bl sub_80F94A4
+_080FEC34:
+ movs r1, 0
+ b _080FEC46
+ .align 2, 0
+_080FEC38: .4byte gUnknown_020388D6
+_080FEC3C: .4byte gUnknown_020388F7
+_080FEC40:
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+_080FEC46:
+ cmp r1, 0xB
+ bhi _080FEC70
+ ldr r0, _080FEC8C
+ adds r0, r1, r0
+ ldrb r0, [r0]
+ subs r0, 0x1
+ cmp r0, r4
+ bne _080FEC40
+ ldrb r3, [r7]
+ subs r3, r4, r3
+ ldr r1, _080FEC90
+ adds r1, r3, r1
+ lsls r3, 20
+ movs r0, 0xC0
+ lsls r0, 13
+ adds r3, r0
+ asrs r3, 16
+ movs r0, 0x5
+ movs r2, 0x6C
+ bl sub_80F94A4
+_080FEC70:
+ lsls r0, r5, 16
+ lsrs r4, r0, 16
+ ldrb r0, [r7]
+ adds r0, 0x8
+ cmp r4, r0
+ bge _080FEC7E
+ b _080FEB1E
+_080FEC7E:
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FEC8C: .4byte gUnknown_020388E6
+_080FEC90: .4byte gUnknown_020388F7
+ thumb_func_end sub_80FEABC
+
+ thumb_func_start sub_80FEC94
+sub_80FEC94: @ 80FEC94
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0xE
+ movs r3, 0x13
+ bl MenuDrawTextWindow
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_80FEABC
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80FEC94
+
+ thumb_func_start sub_80FECB8
+sub_80FECB8: @ 80FECB8
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0xF
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0x3
+ bl MenuDrawTextWindow
+ adds r0, r4, 0
+ movs r1, 0x10
+ movs r2, 0x1
+ movs r3, 0xFF
+ bl sub_80FE470
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80FECB8
+
+ thumb_func_start sub_80FECE0
+sub_80FECE0: @ 80FECE0
+ push {lr}
+ sub sp, 0x8
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080FED14
+ ldr r1, _080FED18
+ ldr r1, [r1]
+ adds r1, r0
+ ldrb r0, [r1]
+ lsls r0, 5
+ adds r2, 0x18
+ adds r0, r2
+ ldr r0, [r0]
+ movs r1, 0x30
+ str r1, [sp]
+ movs r1, 0x1
+ str r1, [sp, 0x4]
+ movs r1, 0x80
+ movs r2, 0x68
+ movs r3, 0x68
+ bl sub_8072AB0
+ add sp, 0x8
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FED14: .4byte gDecorations
+_080FED18: .4byte gUnknown_020388D0
+ thumb_func_end sub_80FECE0
+
+ thumb_func_start sub_80FED1C
+sub_80FED1C: @ 80FED1C
+ push {lr}
+ movs r0, 0xF
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0x3
+ bl MenuZeroFillWindowRect
+ movs r0, 0xF
+ movs r1, 0xC
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80FED1C
+
+ thumb_func_start sub_80FED3C
+sub_80FED3C: @ 80FED3C
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl InitMenuInUpperLeftCornerPlaySoundWhenAPressed
+ ldr r1, _080FED5C
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080FED60
+ str r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FED5C: .4byte gTasks
+_080FED60: .4byte sub_80FE868
+ thumb_func_end sub_80FED3C
+
+ thumb_func_start sub_80FED64
+sub_80FED64: @ 80FED64
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ movs r1, 0
+ ldr r3, _080FED7C
+_080FED6E:
+ adds r0, r1, r3
+ ldrb r0, [r0]
+ cmp r0, r2
+ bne _080FED80
+ movs r0, 0x1
+ b _080FED8C
+ .align 2, 0
+_080FED7C: .4byte gUnknown_020388D6
+_080FED80:
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0xF
+ bls _080FED6E
+ movs r0, 0
+_080FED8C:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80FED64
+
+ thumb_func_start sub_80FED90
+sub_80FED90: @ 80FED90
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ movs r6, 0
+ movs r3, 0
+ ldr r4, _080FEE30
+ movs r1, 0
+ ldr r2, _080FEE34
+_080FEDA4:
+ adds r0, r3, r4
+ strb r1, [r0]
+ cmp r3, 0xB
+ bhi _080FEDB0
+ adds r0, r3, r2
+ strb r1, [r0]
+_080FEDB0:
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0xF
+ bls _080FEDA4
+ movs r3, 0
+ ldr r0, _080FEE38
+ mov r10, r0
+ ldr r1, _080FEE3C
+ mov r9, r1
+ ldr r2, _080FEE40
+ mov r8, r2
+_080FEDC8:
+ mov r1, r10
+ adds r0, r3, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080FEE5A
+ movs r1, 0
+ mov r2, r8
+ ldrb r0, [r2]
+ lsls r0, 3
+ add r0, r9
+ ldrb r0, [r0, 0x4]
+ cmp r1, r0
+ bcs _080FEE5A
+ ldr r0, _080FEE38
+ adds r0, r3
+ mov r12, r0
+ ldr r7, _080FEE30
+_080FEDEA:
+ ldr r0, _080FEE44
+ ldr r0, [r0]
+ adds r0, r1
+ ldrb r0, [r0]
+ adds r4, r1, 0x1
+ mov r1, r12
+ ldrb r1, [r1]
+ cmp r0, r1
+ bne _080FEE48
+ movs r1, 0
+ cmp r1, r6
+ bcs _080FEE1E
+ ldrb r0, [r7]
+ cmp r0, r4
+ beq _080FEE1E
+ ldr r5, _080FEE30
+ adds r2, r4, 0
+_080FEE0C:
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, r6
+ bcs _080FEE1E
+ adds r0, r1, r5
+ ldrb r0, [r0]
+ cmp r0, r2
+ bne _080FEE0C
+_080FEE1E:
+ cmp r1, r6
+ bne _080FEE48
+ adds r0, r6, r7
+ strb r4, [r0]
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ b _080FEE5A
+ .align 2, 0
+_080FEE30: .4byte gUnknown_020388D6
+_080FEE34: .4byte gUnknown_020388E6
+_080FEE38: .4byte gSaveBlock1 + 0x1A1A
+_080FEE3C: .4byte gUnknown_08402E40
+_080FEE40: .4byte gUnknown_020388F6
+_080FEE44: .4byte gUnknown_020388D0
+_080FEE48:
+ lsls r0, r4, 16
+ lsrs r1, r0, 16
+ mov r2, r8
+ ldrb r0, [r2]
+ lsls r0, 3
+ add r0, r9
+ ldrb r0, [r0, 0x4]
+ cmp r1, r0
+ bcc _080FEDEA
+_080FEE5A:
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0xF
+ bls _080FEDC8
+ movs r6, 0
+ movs r3, 0
+ ldr r0, _080FEEE4
+ mov r8, r0
+_080FEE6C:
+ ldr r0, _080FEEE8
+ ldr r1, _080FEEEC
+ adds r0, r1
+ adds r2, r3, r0
+ ldrb r0, [r2]
+ adds r7, r3, 0x1
+ cmp r0, 0
+ beq _080FEF0E
+ movs r1, 0
+ ldr r0, _080FEEF0
+ ldrb r0, [r0]
+ lsls r0, 3
+ add r0, r8
+ ldrb r0, [r0, 0x4]
+ cmp r1, r0
+ bcs _080FEF0E
+ adds r5, r2, 0
+_080FEE8E:
+ ldr r0, _080FEEF4
+ ldr r0, [r0]
+ adds r0, r1
+ ldrb r0, [r0]
+ adds r4, r1, 0x1
+ ldrb r2, [r5]
+ cmp r0, r2
+ bne _080FEEFC
+ lsls r0, r4, 24
+ lsrs r0, 24
+ bl sub_80FED64
+ lsls r0, 24
+ cmp r0, 0
+ bne _080FEEFC
+ movs r1, 0
+ cmp r1, r6
+ bcs _080FEED0
+ ldr r2, _080FEEF8
+ ldrb r0, [r2]
+ cmp r0, r4
+ beq _080FEED0
+ adds r3, r2, 0
+ adds r2, r4, 0
+_080FEEBE:
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, r6
+ bcs _080FEED0
+ adds r0, r1, r3
+ ldrb r0, [r0]
+ cmp r0, r2
+ bne _080FEEBE
+_080FEED0:
+ cmp r1, r6
+ bne _080FEEFC
+ ldr r0, _080FEEF8
+ adds r0, r6, r0
+ strb r4, [r0]
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ b _080FEF0E
+ .align 2, 0
+_080FEEE4: .4byte gUnknown_08402E40
+_080FEEE8: .4byte gSaveBlock1
+_080FEEEC: .4byte 0x00002688
+_080FEEF0: .4byte gUnknown_020388F6
+_080FEEF4: .4byte gUnknown_020388D0
+_080FEEF8: .4byte gUnknown_020388E6
+_080FEEFC:
+ lsls r0, r4, 16
+ lsrs r1, r0, 16
+ ldr r0, _080FEF24
+ ldrb r0, [r0]
+ lsls r0, 3
+ add r0, r8
+ ldrb r0, [r0, 0x4]
+ cmp r1, r0
+ bcc _080FEE8E
+_080FEF0E:
+ lsls r0, r7, 16
+ lsrs r3, r0, 16
+ cmp r3, 0xB
+ bls _080FEE6C
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FEF24: .4byte gUnknown_020388F6
+ thumb_func_end sub_80FED90
+
+ thumb_func_start sub_80FEF28
+sub_80FEF28: @ 80FEF28
+ push {lr}
+ ldr r0, _080FEF38
+ ldrb r1, [r0]
+ cmp r1, 0x7
+ bhi _080FEF40
+ ldr r0, _080FEF3C
+ strb r1, [r0]
+ b _080FEF46
+ .align 2, 0
+_080FEF38: .4byte gUnknown_020388D5
+_080FEF3C: .4byte gUnknown_020388F3
+_080FEF40:
+ ldr r1, _080FEF4C
+ movs r0, 0x7
+ strb r0, [r1]
+_080FEF46:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FEF4C: .4byte gUnknown_020388F3
+ thumb_func_end sub_80FEF28
+
+ thumb_func_start sub_80FEF50
+sub_80FEF50: @ 80FEF50
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_80FED90
+ bl sub_80FEF28
+ ldr r0, _080FEF6C
+ movs r1, 0
+ strb r1, [r0]
+ ldr r0, _080FEF70
+ strb r1, [r0]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FEF6C: .4byte gUnknown_020388F2
+_080FEF70: .4byte gUnknown_020388F4
+ thumb_func_end sub_80FEF50
+
+ thumb_func_start sub_80FEF74
+sub_80FEF74: @ 80FEF74
+ push {lr}
+ ldr r0, _080FEFA0
+ movs r1, 0x8
+ bl sub_80F9520
+ movs r0, 0
+ bl SetBgTilemapBuffer
+ movs r0, 0x1
+ bl SetBgTilemapBuffer
+ bl sub_8072DEC
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0xE
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FEFA0: .4byte gUnknown_020388F7
+ thumb_func_end sub_80FEF74
+
+ thumb_func_start sub_80FEFA4
+sub_80FEFA4: @ 80FEFA4
+ push {r4,lr}
+ movs r2, 0
+ ldr r0, _080FEFD0
+ ldrb r0, [r0]
+ ldr r1, _080FEFD4
+ ldrb r1, [r1]
+ adds r0, r1
+ adds r1, r0, 0x1
+ ldr r4, _080FEFD8
+ ldr r3, _080FEFDC
+_080FEFB8:
+ adds r0, r2, r4
+ ldrb r0, [r0]
+ cmp r0, r1
+ beq _080FEFCC
+ cmp r2, 0xB
+ bhi _080FEFE0
+ adds r0, r2, r3
+ ldrb r0, [r0]
+ cmp r0, r1
+ bne _080FEFE0
+_080FEFCC:
+ movs r0, 0
+ b _080FEFEC
+ .align 2, 0
+_080FEFD0: .4byte gUnknown_020388F4
+_080FEFD4: .4byte gUnknown_020388F2
+_080FEFD8: .4byte gUnknown_020388D6
+_080FEFDC: .4byte gUnknown_020388E6
+_080FEFE0:
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0xF
+ bls _080FEFB8
+ movs r0, 0x1
+_080FEFEC:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80FEFA4
+
+ thumb_func_start sub_80FEFF4
+sub_80FEFF4: @ 80FEFF4
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _080FF028
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _080FF00E
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080FF020
+_080FF00E:
+ bl InitMenuInUpperLeftCornerPlaySoundWhenAPressed
+ ldr r0, _080FF02C
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _080FF030
+ str r0, [r1]
+_080FF020:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FF028: .4byte gMain
+_080FF02C: .4byte gTasks
+_080FF030: .4byte sub_80FE868
+ thumb_func_end sub_80FEFF4
+
+ thumb_func_start sub_80FF034
+sub_80FF034: @ 80FF034
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl sub_8072DEC
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0xE
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ adds r0, r4, 0
+ bl sub_80FE5AC
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80FF034
+
+ thumb_func_start sub_80FF058
+sub_80FF058: @ 80FF058
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _080FF08C
+ movs r1, 0x8
+ bl sub_80F9520
+ movs r0, 0
+ bl SetBgTilemapBuffer
+ movs r0, 0x1
+ bl SetBgTilemapBuffer
+ bl BuyMenuFreeMemory
+ ldr r1, _080FF090
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080FF094
+ str r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FF08C: .4byte gUnknown_020388F7
+_080FF090: .4byte gTasks
+_080FF094: .4byte sub_80FF034
+ thumb_func_end sub_80FF058
+
+ thumb_func_start sub_80FF098
+sub_80FF098: @ 80FF098
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r1, _080FF0D4
+ ldrb r0, [r1]
+ subs r0, 0x1
+ strb r0, [r1]
+ ldr r3, _080FF0D8
+ ldrb r2, [r3]
+ adds r0, r2, 0x7
+ ldrb r1, [r1]
+ cmp r0, r1
+ ble _080FF0BA
+ cmp r2, 0
+ beq _080FF0BA
+ subs r0, r2, 0x1
+ strb r0, [r3]
+_080FF0BA:
+ ldr r0, _080FF0DC
+ ldrb r0, [r0]
+ bl sub_8134104
+ adds r0, r4, 0
+ bl sub_80FED90
+ bl sub_80FEF28
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FF0D4: .4byte gUnknown_020388D5
+_080FF0D8: .4byte gUnknown_020388F4
+_080FF0DC: .4byte gUnknown_020388F6
+ thumb_func_end sub_80FF098
+
+ thumb_func_start sub_80FF0E0
+sub_80FF0E0: @ 80FF0E0
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r3, _080FF10C
+ lsls r2, r0, 2
+ adds r2, r0
+ lsls r2, 3
+ adds r4, r2, r3
+ ldr r1, _080FF110
+ ldrh r0, [r1]
+ strh r0, [r4, 0xE]
+ ldrh r0, [r1, 0x2]
+ strh r0, [r4, 0x10]
+ adds r3, 0x8
+ adds r2, r3
+ adds r1, r2, 0x2
+ adds r0, r2, 0
+ bl PlayerGetDestCoords
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FF10C: .4byte gTasks
+_080FF110: .4byte gSaveBlock1
+ thumb_func_end sub_80FF0E0
+
+ thumb_func_start sub_80FF114
+sub_80FF114: @ 80FF114
+ push {r4,r5,lr}
+ sub sp, 0x4
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ bl DrawWholeMapView
+ ldr r1, _080FF158
+ movs r0, 0x4
+ ldrsb r0, [r1, r0]
+ ldrb r1, [r1, 0x5]
+ lsls r1, 24
+ asrs r1, 24
+ movs r2, 0x1
+ negs r2, r2
+ ldr r3, _080FF15C
+ lsls r4, r5, 2
+ adds r4, r5
+ lsls r4, 3
+ adds r4, r3
+ movs r3, 0xE
+ ldrsb r3, [r4, r3]
+ ldrb r4, [r4, 0x10]
+ lsls r4, 24
+ asrs r4, 24
+ str r4, [sp]
+ bl warp1_set
+ bl warp_in
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FF158: .4byte gSaveBlock1
+_080FF15C: .4byte gTasks
+ thumb_func_end sub_80FF114
+
+ thumb_func_start sub_80FF160
+sub_80FF160: @ 80FF160
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_81341D4
+ lsls r0, 24
+ cmp r0, 0
+ bne _080FF188
+ ldr r1, _080FF180
+ ldr r2, _080FF184
+ adds r0, r4, 0
+ movs r3, 0
+ bl DisplayItemMessageOnField
+ b _080FF1A2
+ .align 2, 0
+_080FF180: .4byte gSecretBaseText_NoDecors
+_080FF184: .4byte sub_80FE428
+_080FF188:
+ ldr r1, _080FF1A8
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ movs r2, 0
+ movs r1, 0
+ strh r1, [r0, 0x1E]
+ ldr r0, _080FF1AC
+ strb r2, [r0]
+ adds r0, r4, 0
+ bl sub_80FE5AC
+_080FF1A2:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FF1A8: .4byte gTasks
+_080FF1AC: .4byte gUnknown_020388F6
+ thumb_func_end sub_80FF160
+
+ thumb_func_start sub_80FF1B0
+sub_80FF1B0: @ 80FF1B0
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r0, _080FF1D0
+ cmp r2, 0x22
+ beq _080FF1D8
+ cmp r2, 0x26
+ bne _080FF1E2
+ ldr r0, _080FF1D4
+ adds r0, r1, r0
+ ldrb r0, [r0]
+ lsls r0, 28
+ lsrs r0, 16
+ b _080FF1E2
+ .align 2, 0
+_080FF1D0: .4byte 0x0000ffff
+_080FF1D4: .4byte gUnknown_083EC97C
+_080FF1D8:
+ ldr r0, _080FF1E8
+ adds r0, r1, r0
+ ldrb r0, [r0]
+ lsls r0, 28
+ lsrs r0, 16
+_080FF1E2:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080FF1E8: .4byte gUnknown_083EC984
+ thumb_func_end sub_80FF1B0
+
+ thumb_func_start sub_80FF1EC
+sub_80FF1EC: @ 80FF1EC
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x34
+ ldr r4, [sp, 0x54]
+ lsls r0, 16
+ lsrs r0, 16
+ str r0, [sp]
+ lsls r1, 16
+ lsrs r1, 16
+ str r1, [sp, 0x4]
+ lsls r2, 24
+ lsrs r2, 24
+ str r2, [sp, 0x8]
+ lsls r3, 24
+ lsrs r3, 24
+ str r3, [sp, 0xC]
+ lsls r4, 16
+ lsrs r4, 16
+ str r4, [sp, 0x10]
+ movs r2, 0
+ lsls r0, r3, 16
+ cmp r2, r3
+ bcc _080FF222
+ b _080FF384
+_080FF222:
+ ldr r1, [sp, 0x8]
+ str r1, [sp, 0x28]
+ str r0, [sp, 0x2C]
+_080FF228:
+ ldr r3, [sp, 0x4]
+ ldr r4, [sp, 0xC]
+ subs r1, r3, r4
+ lsls r0, r2, 16
+ asrs r0, 16
+ adds r0, 0x1
+ adds r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ str r1, [sp, 0x14]
+ movs r0, 0
+ mov r10, r0
+ adds r1, r2, 0x1
+ str r1, [sp, 0x30]
+ ldr r3, [sp, 0x28]
+ cmp r10, r3
+ bcc _080FF24C
+ b _080FF374
+_080FF24C:
+ ldr r4, [sp, 0x10]
+ lsls r4, 5
+ str r4, [sp, 0x18]
+ ldr r0, _080FF2B4
+ adds r0, r4, r0
+ str r0, [sp, 0x1C]
+ ldr r0, _080FF2B8
+ adds r0, r4, r0
+ str r0, [sp, 0x24]
+ ldr r3, [sp, 0x8]
+ adds r1, r2, 0
+ muls r1, r3
+ str r1, [sp, 0x20]
+_080FF266:
+ ldr r0, [sp]
+ add r0, r10
+ lsls r0, 16
+ lsrs r5, r0, 16
+ ldr r1, [sp, 0x20]
+ add r1, r10
+ ldr r4, [sp, 0x1C]
+ ldr r0, [r4]
+ lsls r1, 1
+ adds r1, r0
+ movs r2, 0x80
+ lsls r2, 2
+ adds r0, r2, 0
+ ldrh r1, [r1]
+ adds r0, r1
+ lsls r0, 16
+ lsrs r0, 16
+ bl GetBehaviorByMetatileId
+ lsls r4, r0, 16
+ lsls r0, r4, 8
+ lsrs r0, 24
+ bl sub_8057288
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _080FF2AC
+ ldr r3, [sp, 0x24]
+ ldrb r0, [r3, 0x11]
+ cmp r0, 0x1
+ beq _080FF2BC
+ lsrs r0, r4, 28
+ cmp r0, 0
+ beq _080FF2BC
+_080FF2AC:
+ movs r4, 0xC0
+ lsls r4, 4
+ mov r8, r4
+ b _080FF2C0
+ .align 2, 0
+_080FF2B4: .4byte gDecorations + 0x1C
+_080FF2B8: .4byte gDecorations
+_080FF2BC:
+ movs r0, 0
+ mov r8, r0
+_080FF2C0:
+ ldr r1, [sp, 0x24]
+ ldrb r0, [r1, 0x11]
+ lsls r7, r5, 16
+ ldr r2, [sp, 0x14]
+ lsls r2, 16
+ mov r9, r2
+ cmp r0, 0x3
+ beq _080FF2EA
+ asrs r0, r7, 16
+ asrs r1, r2, 16
+ bl MapGridGetMetatileBehaviorAt
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_80572B0
+ lsls r0, 24
+ lsrs r0, 24
+ movs r6, 0x1
+ cmp r0, 0x1
+ beq _080FF2EC
+_080FF2EA:
+ movs r6, 0
+_080FF2EC:
+ ldr r3, [sp, 0x18]
+ ldr r4, _080FF334
+ adds r0, r3, r4
+ ldrb r0, [r0]
+ ldr r4, [sp, 0x20]
+ add r4, r10
+ lsls r1, r4, 24
+ lsrs r1, 24
+ bl sub_80FF1B0
+ lsls r0, 16
+ lsrs r5, r0, 16
+ ldr r0, _080FF338
+ cmp r5, r0
+ beq _080FF33C
+ asrs r0, r7, 16
+ mov r2, r9
+ asrs r1, r2, 16
+ ldr r3, [sp, 0x1C]
+ ldr r2, [r3]
+ lsls r3, r4, 1
+ adds r3, r2
+ movs r4, 0x80
+ lsls r4, 2
+ adds r2, r4, 0
+ orrs r6, r2
+ ldrh r3, [r3]
+ adds r2, r6, r3
+ mov r3, r8
+ orrs r3, r2
+ orrs r3, r5
+ lsls r2, r3, 16
+ lsrs r2, 16
+ bl MapGridSetMetatileEntryAt
+ b _080FF362
+ .align 2, 0
+_080FF334: .4byte gDecorations
+_080FF338: .4byte 0x0000ffff
+_080FF33C:
+ asrs r0, r7, 16
+ mov r2, r9
+ asrs r1, r2, 16
+ ldr r3, [sp, 0x1C]
+ ldr r2, [r3]
+ lsls r3, r4, 1
+ adds r3, r2
+ movs r4, 0x80
+ lsls r4, 2
+ adds r2, r4, 0
+ orrs r6, r2
+ ldrh r3, [r3]
+ adds r2, r6, r3
+ mov r3, r8
+ orrs r3, r2
+ lsls r2, r3, 16
+ lsrs r2, 16
+ bl MapGridSetMetatileIdAt
+_080FF362:
+ mov r0, r10
+ adds r0, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+ mov r10, r0
+ ldr r4, [sp, 0x28]
+ cmp r10, r4
+ bcs _080FF374
+ b _080FF266
+_080FF374:
+ ldr r1, [sp, 0x30]
+ lsls r0, r1, 16
+ lsrs r2, r0, 16
+ ldr r3, [sp, 0x2C]
+ lsrs r0, r3, 16
+ cmp r2, r0
+ bcs _080FF384
+ b _080FF228
+_080FF384:
+ add sp, 0x34
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80FF1EC
+
+ thumb_func_start sub_80FF394
+sub_80FF394: @ 80FF394
+ push {r4,lr}
+ sub sp, 0x4
+ lsls r0, 16
+ lsrs r3, r0, 16
+ lsls r1, 16
+ lsrs r4, r1, 16
+ lsls r2, 16
+ lsrs r2, 16
+ ldr r1, _080FF3BC
+ lsls r0, r2, 5
+ adds r0, r1
+ ldrb r0, [r0, 0x12]
+ cmp r0, 0x9
+ bhi _080FF46C
+ lsls r0, 2
+ ldr r1, _080FF3C0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080FF3BC: .4byte gDecorations
+_080FF3C0: .4byte _080FF3C4
+ .align 2, 0
+_080FF3C4:
+ .4byte _080FF3EC
+ .4byte _080FF3F6
+ .4byte _080FF400
+ .4byte _080FF410
+ .4byte _080FF41A
+ .4byte _080FF424
+ .4byte _080FF434
+ .4byte _080FF43E
+ .4byte _080FF44E
+ .4byte _080FF45E
+_080FF3EC:
+ str r2, [sp]
+ adds r0, r3, 0
+ adds r1, r4, 0
+ movs r2, 0x1
+ b _080FF408
+_080FF3F6:
+ str r2, [sp]
+ adds r0, r3, 0
+ adds r1, r4, 0
+ movs r2, 0x2
+ b _080FF408
+_080FF400:
+ str r2, [sp]
+ adds r0, r3, 0
+ adds r1, r4, 0
+ movs r2, 0x3
+_080FF408:
+ movs r3, 0x1
+ bl sub_80FF1EC
+ b _080FF46C
+_080FF410:
+ str r2, [sp]
+ adds r0, r3, 0
+ adds r1, r4, 0
+ movs r2, 0x4
+ b _080FF42C
+_080FF41A:
+ str r2, [sp]
+ adds r0, r3, 0
+ adds r1, r4, 0
+ movs r2, 0x2
+ b _080FF42C
+_080FF424:
+ str r2, [sp]
+ adds r0, r3, 0
+ adds r1, r4, 0
+ movs r2, 0x1
+_080FF42C:
+ movs r3, 0x2
+ bl sub_80FF1EC
+ b _080FF46C
+_080FF434:
+ str r2, [sp]
+ adds r0, r3, 0
+ adds r1, r4, 0
+ movs r2, 0x1
+ b _080FF456
+_080FF43E:
+ str r2, [sp]
+ adds r0, r3, 0
+ adds r1, r4, 0
+ movs r2, 0x2
+ movs r3, 0x4
+ bl sub_80FF1EC
+ b _080FF46C
+_080FF44E:
+ str r2, [sp]
+ adds r0, r3, 0
+ adds r1, r4, 0
+ movs r2, 0x3
+_080FF456:
+ movs r3, 0x3
+ bl sub_80FF1EC
+ b _080FF46C
+_080FF45E:
+ str r2, [sp]
+ adds r0, r3, 0
+ adds r1, r4, 0
+ movs r2, 0x3
+ movs r3, 0x2
+ bl sub_80FF1EC
+_080FF46C:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80FF394
+
+ thumb_func_start sub_80FF474
+sub_80FF474: @ 80FF474
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ movs r6, 0
+ ldr r0, _080FF54C
+ mov r8, r0
+ ldr r1, _080FF550
+ mov r9, r1
+ ldr r2, _080FF554
+ mov r10, r2
+ ldr r7, _080FF558
+_080FF490:
+ adds r5, r6, 0
+ adds r5, 0xAE
+ adds r4, r5, 0
+ adds r0, r4, 0
+ bl FlagGet
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080FF570
+ adds r0, r4, 0
+ bl FlagReset
+ movs r2, 0
+ mov r4, r8
+ ldr r0, [r4, 0x4]
+ ldrb r6, [r0]
+ cmp r2, r6
+ bcs _080FF4E0
+ ldr r0, [r0, 0x4]
+ ldrh r0, [r0, 0x14]
+ cmp r0, r5
+ beq _080FF4E0
+ ldr r0, _080FF54C
+ ldr r3, [r0, 0x4]
+ ldrb r6, [r3]
+ adds r4, r5, 0
+_080FF4C6:
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, r6
+ bcs _080FF4E0
+ ldr r0, [r3, 0x4]
+ lsls r1, r2, 1
+ adds r1, r2
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x14]
+ cmp r0, r4
+ bne _080FF4C6
+_080FF4E0:
+ mov r1, r8
+ ldr r0, [r1, 0x4]
+ ldr r1, [r0, 0x4]
+ lsls r4, r2, 1
+ adds r4, r2
+ lsls r4, 3
+ adds r1, r4, r1
+ ldr r2, _080FF55C
+ adds r0, r2, 0
+ ldrb r1, [r1, 0x1]
+ adds r0, r1
+ ldr r1, _080FF560
+ ldr r1, [r1]
+ ldr r1, [r1, 0x1C]
+ ldrh r1, [r1]
+ bl VarSet
+ mov r5, r8
+ ldr r0, [r5, 0x4]
+ ldr r0, [r0, 0x4]
+ adds r4, r0
+ ldrb r0, [r4]
+ mov r6, r9
+ strh r0, [r6]
+ ldr r1, _080FF564
+ ldrh r1, [r1]
+ mov r2, r10
+ strh r1, [r2]
+ ldr r1, _080FF568
+ ldrh r1, [r1]
+ ldr r4, _080FF56C
+ strh r1, [r4]
+ ldrb r1, [r7, 0x5]
+ ldrb r2, [r7, 0x4]
+ bl show_sprite
+ ldrb r0, [r6]
+ ldrb r1, [r7, 0x5]
+ ldrb r2, [r7, 0x4]
+ mov r5, r10
+ movs r6, 0
+ ldrsh r3, [r5, r6]
+ movs r5, 0
+ ldrsh r4, [r4, r5]
+ str r4, [sp]
+ bl sub_805C0F8
+ mov r6, r9
+ ldrb r0, [r6]
+ ldrb r1, [r7, 0x5]
+ ldrb r2, [r7, 0x4]
+ bl sub_805C78C
+ b _080FF57A
+ .align 2, 0
+_080FF54C: .4byte gMapHeader
+_080FF550: .4byte gUnknown_0202E8CE
+_080FF554: .4byte gUnknown_0202E8D0
+_080FF558: .4byte gSaveBlock1
+_080FF55C: .4byte 0x00003f20
+_080FF560: .4byte gUnknown_02038900
+_080FF564: .4byte gUnknown_020391A4
+_080FF568: .4byte gUnknown_020391A6
+_080FF56C: .4byte gUnknown_0202E8D2
+_080FF570:
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, 0xD
+ bls _080FF490
+_080FF57A:
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80FF474
+
+ thumb_func_start sub_80FF58C
+sub_80FF58C: @ 80FF58C
+ push {lr}
+ movs r1, 0
+ ldr r0, _080FF5A8
+ ldrb r2, [r0, 0x8]
+ cmp r1, r2
+ bcs _080FF5B6
+ ldr r3, [r0]
+_080FF59A:
+ adds r0, r3, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080FF5AC
+ movs r0, 0x1
+ b _080FF5B8
+ .align 2, 0
+_080FF5A8: .4byte 0x0201f000
+_080FF5AC:
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, r2
+ bcc _080FF59A
+_080FF5B6:
+ movs r0, 0
+_080FF5B8:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80FF58C
+
+ thumb_func_start sub_80FF5BC
+sub_80FF5BC: @ 80FF5BC
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, _080FF5E4
+ ldrb r0, [r0, 0x9]
+ cmp r0, 0x1
+ bne _080FF5F0
+ ldr r0, _080FF5E8
+ ldrb r0, [r0]
+ cmp r0, 0x6
+ beq _080FF5F0
+ cmp r0, 0x7
+ beq _080FF5F0
+ bl sub_80FEF74
+ bl sub_80FED1C
+ ldr r1, _080FF5EC
+ b _080FF66E
+ .align 2, 0
+_080FF5E4: .4byte 0x0201f000
+_080FF5E8: .4byte gUnknown_020388F6
+_080FF5EC: .4byte gSecretBaseText_DecorCantPlace
+_080FF5F0:
+ bl sub_80FEFA4
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080FF688
+ bl sub_80FF58C
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080FF62C
+ movs r0, 0x1
+ movs r1, 0
+ bl fade_screen
+ ldr r1, _080FF624
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0
+ strh r1, [r0, 0xC]
+ ldr r1, _080FF628
+ str r1, [r0]
+ b _080FF69C
+ .align 2, 0
+_080FF624: .4byte gTasks
+_080FF628: .4byte sub_80FF6AC
+_080FF62C:
+ bl sub_80FEF74
+ bl sub_80FED1C
+ ldr r0, _080FF654
+ ldr r4, _080FF658
+ ldrb r1, [r4, 0x8]
+ movs r2, 0x1
+ movs r3, 0x2
+ bl ConvertIntToDecimalStringN
+ ldrb r0, [r4, 0x9]
+ cmp r0, 0
+ bne _080FF664
+ ldr r0, _080FF65C
+ ldr r1, _080FF660
+ bl StringExpandPlaceholders
+ b _080FF66C
+ .align 2, 0
+_080FF654: .4byte gStringVar1
+_080FF658: .4byte 0x0201f000
+_080FF65C: .4byte gStringVar4
+_080FF660: .4byte gSecretBaseText_NoMoreDecor
+_080FF664:
+ ldr r0, _080FF67C
+ ldr r1, _080FF680
+ bl StringExpandPlaceholders
+_080FF66C:
+ ldr r1, _080FF67C
+_080FF66E:
+ ldr r2, _080FF684
+ adds r0, r5, 0
+ movs r3, 0
+ bl DisplayItemMessageOnField
+ b _080FF69C
+ .align 2, 0
+_080FF67C: .4byte gStringVar4
+_080FF680: .4byte gSecretBaseText_NoMoreDecor2
+_080FF684: .4byte sub_80FEFF4
+_080FF688:
+ bl sub_80FEF74
+ bl sub_80FED1C
+ ldr r1, _080FF6A4
+ ldr r2, _080FF6A8
+ adds r0, r5, 0
+ movs r3, 0
+ bl DisplayItemMessageOnField
+_080FF69C:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FF6A4: .4byte gSecretBaseText_InUseAlready
+_080FF6A8: .4byte sub_80FEFF4
+ thumb_func_end sub_80FF5BC
+
+ thumb_func_start sub_80FF6AC
+sub_80FF6AC: @ 80FF6AC
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r1, _080FF6D0
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r7, r0, r1
+ movs r1, 0xC
+ ldrsh r0, [r7, r1]
+ cmp r0, 0x1
+ beq _080FF714
+ cmp r0, 0x1
+ bgt _080FF6D4
+ cmp r0, 0
+ beq _080FF6DA
+ b _080FF77A
+ .align 2, 0
+_080FF6D0: .4byte gTasks
+_080FF6D4:
+ cmp r0, 0x2
+ beq _080FF764
+ b _080FF77A
+_080FF6DA:
+ ldr r0, _080FF70C
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080FF77A
+ adds r0, r6, 0
+ bl sub_80FF0E0
+ movs r0, 0
+ bl SetBgTilemapBuffer
+ movs r0, 0x1
+ bl SetBgTilemapBuffer
+ ldr r0, _080FF710
+ movs r1, 0x8
+ bl sub_80F9520
+ bl BuyMenuFreeMemory
+ movs r0, 0x1
+ strh r0, [r7, 0xC]
+ b _080FF77A
+ .align 2, 0
+_080FF70C: .4byte gPaletteFade
+_080FF710: .4byte gUnknown_020388F7
+_080FF714:
+ ldr r4, _080FF754
+ ldrb r0, [r4, 0x8]
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r4, 0x8]
+ ldr r5, _080FF758
+ ldr r0, _080FF75C
+ ldrb r1, [r0]
+ ldr r0, _080FF760
+ ldr r0, [r0]
+ adds r0, r1
+ ldrb r1, [r0]
+ adds r0, r5, 0
+ bl AddDecorationIconObjectFromFieldObject
+ adds r0, r6, 0
+ bl sub_80FF960
+ adds r0, r6, 0
+ adds r1, r5, 0
+ bl SetUpPlacingDecorationPlayerAvatar
+ bl pal_fill_black
+ ldrb r1, [r4, 0x8]
+ movs r0, 0x7F
+ ands r0, r1
+ strb r0, [r4, 0x8]
+ movs r0, 0x2
+ strh r0, [r7, 0xC]
+ b _080FF77A
+ .align 2, 0
+_080FF754: .4byte gPaletteFade
+_080FF758: .4byte gUnknown_02038900
+_080FF75C: .4byte gUnknown_020388F5
+_080FF760: .4byte gUnknown_020388D0
+_080FF764:
+ bl sub_807D770
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080FF77A
+ movs r0, 0
+ strh r0, [r7, 0x20]
+ adds r0, r6, 0
+ bl sub_810065C
+_080FF77A:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80FF6AC
+
+ thumb_func_start AddDecorationIconObjectFromFieldObject
+AddDecorationIconObjectFromFieldObject: @ 80FF780
+ push {r4-r6,lr}
+ sub sp, 0x4
+ adds r5, r0, 0
+ lsls r4, r1, 24
+ lsrs r4, 24
+ bl sub_80FEF74
+ bl sub_80FED1C
+ adds r0, r5, 0
+ bl sub_81006D0
+ lsls r4, 5
+ ldr r0, _080FF810
+ adds r4, r0
+ str r4, [r5]
+ ldrb r0, [r4, 0x11]
+ cmp r0, 0x4
+ beq _080FF834
+ adds r0, r5, 0
+ bl sub_81008BC
+ ldr r0, [r5]
+ ldrb r0, [r0, 0x12]
+ bl sub_8100930
+ adds r0, r5, 0
+ bl sub_8100874
+ ldr r1, _080FF814
+ adds r0, r5, r1
+ ldr r1, _080FF818
+ ldr r1, [r1]
+ ldr r2, [r1, 0x14]
+ ldr r1, [r5]
+ ldr r1, [r1, 0x1C]
+ ldrh r1, [r1]
+ ldr r2, [r2, 0xC]
+ lsls r1, 4
+ adds r1, r2
+ ldrh r1, [r1, 0xE]
+ lsrs r1, 12
+ bl sub_810070C
+ ldr r0, _080FF81C
+ bl LoadSpritePalette
+ ldr r3, _080FF820
+ ldr r2, _080FF824
+ ldr r4, _080FF828
+ ldr r1, [r4, 0x4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r0, [r0, 0x2E]
+ strb r0, [r3]
+ ldr r0, _080FF82C
+ ldr r3, _080FF830
+ ldr r1, [r5]
+ ldrb r2, [r1, 0x12]
+ lsls r2, 2
+ adds r2, r3
+ ldrb r1, [r2, 0x2]
+ ldrb r2, [r2, 0x3]
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [r4, 0x4]
+ b _080FF87E
+ .align 2, 0
+_080FF810: .4byte gDecorations
+_080FF814: .4byte 0x00000884
+_080FF818: .4byte gMapHeader
+_080FF81C: .4byte gUnknown_083EC954
+_080FF820: .4byte gUnknown_020391A8
+_080FF824: .4byte gSprites
+_080FF828: .4byte gUnknown_03004880
+_080FF82C: .4byte gSpriteTemplate_83EC93C
+_080FF830: .4byte gUnknown_083EC900
+_080FF834:
+ ldr r2, _080FF888
+ ldr r6, _080FF88C
+ ldr r5, _080FF890
+ ldr r1, [r5, 0x4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ ldrh r0, [r0, 0x2E]
+ strb r0, [r2]
+ ldr r0, [r4, 0x1C]
+ ldrh r0, [r0]
+ ldr r1, _080FF894
+ ldr r2, _080FF898
+ ldrb r3, [r4, 0x12]
+ lsls r3, 2
+ adds r3, r2
+ ldrb r2, [r3, 0x2]
+ ldrb r3, [r3, 0x3]
+ movs r4, 0x1
+ str r4, [sp]
+ bl AddPseudoFieldObject
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [r5, 0x4]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r6
+ ldrb r2, [r1, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ movs r2, 0x4
+ orrs r0, r2
+ strb r0, [r1, 0x5]
+_080FF87E:
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FF888: .4byte gUnknown_020391A8
+_080FF88C: .4byte gSprites
+_080FF890: .4byte gUnknown_03004880
+_080FF894: .4byte sub_81009A8
+_080FF898: .4byte gUnknown_083EC900
+ thumb_func_end AddDecorationIconObjectFromFieldObject
+
+ thumb_func_start SetUpPlacingDecorationPlayerAvatar
+SetUpPlacingDecorationPlayerAvatar: @ 80FF89C
+ push {r4,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r3, _080FF8F0
+ lsls r2, r0, 2
+ adds r2, r0
+ lsls r2, 3
+ adds r2, r3
+ ldrb r2, [r2, 0x12]
+ ldr r3, _080FF8F4
+ ldr r0, [r1]
+ ldrb r4, [r0, 0x12]
+ lsls r1, r4, 2
+ adds r1, r3
+ lsls r0, r2, 4
+ ldrb r1, [r1, 0x2]
+ adds r0, r1
+ subs r2, 0x1
+ lsls r2, 3
+ subs r0, r2
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r4, 0x2
+ beq _080FF8D6
+ cmp r4, 0x8
+ beq _080FF8D6
+ cmp r4, 0x9
+ bne _080FF8DE
+_080FF8D6:
+ adds r0, r2, 0
+ subs r0, 0x8
+ lsls r0, 24
+ lsrs r2, r0, 24
+_080FF8DE:
+ ldr r0, _080FF8F8
+ ldrb r0, [r0, 0x8]
+ cmp r0, 0
+ bne _080FF900
+ ldr r1, _080FF8FC
+ str r0, [sp]
+ movs r0, 0xC1
+ b _080FF908
+ .align 2, 0
+_080FF8F0: .4byte gTasks
+_080FF8F4: .4byte gUnknown_083EC900
+_080FF8F8: .4byte gSaveBlock2
+_080FF8FC: .4byte SpriteCallbackDummy
+_080FF900:
+ ldr r1, _080FF94C
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0xC2
+_080FF908:
+ movs r3, 0x48
+ bl AddPseudoFieldObject
+ ldr r1, _080FF950
+ strb r0, [r1]
+ ldr r3, _080FF954
+ ldr r0, _080FF950
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ ldrb r2, [r0, 0x5]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r2
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0, 0x5]
+ ldr r4, _080FF958
+ ldrb r1, [r4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ bl DestroySprite
+ ldr r0, _080FF95C
+ ldr r0, [r0, 0x4]
+ strb r0, [r4]
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FF94C: .4byte SpriteCallbackDummy
+_080FF950: .4byte gUnknown_020391A9
+_080FF954: .4byte gSprites
+_080FF958: .4byte gUnknown_020391A8
+_080FF95C: .4byte gUnknown_03004880
+ thumb_func_end SetUpPlacingDecorationPlayerAvatar
+
+ thumb_func_start sub_80FF960
+sub_80FF960: @ 80FF960
+ push {lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldr r2, _080FF98C
+ ldr r0, _080FF990
+ ldrb r1, [r0]
+ ldr r0, _080FF994
+ ldr r0, [r0]
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 5
+ adds r0, r2
+ ldrb r0, [r0, 0x12]
+ cmp r0, 0x9
+ bls _080FF980
+ b _080FFAA6
+_080FF980:
+ lsls r0, 2
+ ldr r1, _080FF998
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080FF98C: .4byte gDecorations
+_080FF990: .4byte gUnknown_020388F5
+_080FF994: .4byte gUnknown_020388D0
+_080FF998: .4byte _080FF99C
+ .align 2, 0
+_080FF99C:
+ .4byte _080FF9C4
+ .4byte _080FF9D8
+ .4byte _080FF9F0
+ .4byte _080FFA08
+ .4byte _080FFA1C
+ .4byte _080FFA30
+ .4byte _080FFA44
+ .4byte _080FFA64
+ .4byte _080FFA7C
+ .4byte _080FFA94
+_080FF9C4:
+ ldr r0, _080FF9D4
+ lsls r1, r3, 2
+ adds r1, r3
+ lsls r1, 3
+ adds r1, r0
+ movs r0, 0x1
+ b _080FFA88
+ .align 2, 0
+_080FF9D4: .4byte gTasks
+_080FF9D8:
+ ldr r1, _080FF9EC
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0x2
+ strh r1, [r0, 0x12]
+ movs r1, 0x1
+ b _080FFAA4
+ .align 2, 0
+_080FF9EC: .4byte gTasks
+_080FF9F0:
+ ldr r1, _080FFA04
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0x3
+ strh r1, [r0, 0x12]
+ movs r1, 0x1
+ b _080FFAA4
+ .align 2, 0
+_080FFA04: .4byte gTasks
+_080FFA08:
+ ldr r1, _080FFA18
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0x4
+ b _080FFAA0
+ .align 2, 0
+_080FFA18: .4byte gTasks
+_080FFA1C:
+ ldr r0, _080FFA2C
+ lsls r1, r3, 2
+ adds r1, r3
+ lsls r1, 3
+ adds r1, r0
+ movs r0, 0x2
+ b _080FFA88
+ .align 2, 0
+_080FFA2C: .4byte gTasks
+_080FFA30:
+ ldr r1, _080FFA40
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0x1
+ b _080FFAA0
+ .align 2, 0
+_080FFA40: .4byte gTasks
+_080FFA44:
+ ldr r0, _080FFA60
+ lsls r1, r3, 2
+ adds r1, r3
+ lsls r1, 3
+ adds r1, r0
+ movs r0, 0x1
+ strh r0, [r1, 0x12]
+ movs r0, 0x3
+ strh r0, [r1, 0x14]
+ ldrh r0, [r1, 0xA]
+ adds r0, 0x1
+ strh r0, [r1, 0xA]
+ b _080FFAA6
+ .align 2, 0
+_080FFA60: .4byte gTasks
+_080FFA64:
+ ldr r1, _080FFA78
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0x2
+ strh r1, [r0, 0x12]
+ movs r1, 0x4
+ b _080FFAA4
+ .align 2, 0
+_080FFA78: .4byte gTasks
+_080FFA7C:
+ ldr r0, _080FFA90
+ lsls r1, r3, 2
+ adds r1, r3
+ lsls r1, 3
+ adds r1, r0
+ movs r0, 0x3
+_080FFA88:
+ strh r0, [r1, 0x12]
+ strh r0, [r1, 0x14]
+ b _080FFAA6
+ .align 2, 0
+_080FFA90: .4byte gTasks
+_080FFA94:
+ ldr r1, _080FFAAC
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0x3
+_080FFAA0:
+ strh r1, [r0, 0x12]
+ movs r1, 0x2
+_080FFAA4:
+ strh r1, [r0, 0x14]
+_080FFAA6:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FFAAC: .4byte gTasks
+ thumb_func_end sub_80FF960
+
+ thumb_func_start sub_80FFAB0
+sub_80FFAB0: @ 80FFAB0
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r1, _080FFAF8
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0
+ strh r1, [r0, 0x1C]
+ ldr r3, _080FFAFC
+ ldr r0, _080FFB00
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ movs r2, 0x1
+ strh r2, [r0, 0x3C]
+ ldr r0, _080FFB04
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ strh r2, [r0, 0x3C]
+ bl sub_810045C
+ adds r0, r4, 0
+ bl sub_8100038
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FFAF8: .4byte gTasks
+_080FFAFC: .4byte gSprites
+_080FFB00: .4byte gUnknown_020391A8
+_080FFB04: .4byte gUnknown_020391A9
+ thumb_func_end sub_80FFAB0
+
+ thumb_func_start sub_80FFB08
+sub_80FFB08: @ 80FFB08
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r1, _080FFB54
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0
+ strh r1, [r0, 0x1C]
+ ldr r3, _080FFB58
+ ldr r0, _080FFB5C
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ movs r2, 0x1
+ strh r2, [r0, 0x3C]
+ ldr r0, _080FFB60
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ strh r2, [r0, 0x3C]
+ bl sub_810045C
+ ldr r1, _080FFB64
+ ldr r2, _080FFB68
+ adds r0, r4, 0
+ movs r3, 0
+ bl DisplayItemMessageOnField
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FFB54: .4byte gTasks
+_080FFB58: .4byte gSprites
+_080FFB5C: .4byte gUnknown_020391A8
+_080FFB60: .4byte gUnknown_020391A9
+_080FFB64: .4byte gSecretBaseText_CancelDecorating
+_080FFB68: .4byte sub_8100248
+ thumb_func_end sub_80FFB08
+
+ thumb_func_start sub_80FFB6C
+sub_80FFB6C: @ 80FFB6C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 16
+ lsrs r4, r1, 16
+ bl sub_8057274
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080FFB86
+ cmp r4, 0
+ beq _080FFB8A
+_080FFB86:
+ movs r0, 0
+ b _080FFB8C
+_080FFB8A:
+ movs r0, 0x1
+_080FFB8C:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80FFB6C
+
+ thumb_func_start sub_80FFB94
+sub_80FFB94: @ 80FFB94
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r2, 16
+ lsrs r4, r2, 16
+ lsls r3, 16
+ lsrs r5, r3, 16
+ lsls r1, 16
+ asrs r1, 16
+ ldr r3, _080FFBD0
+ lsls r2, r0, 2
+ adds r2, r0
+ lsls r2, 3
+ adds r2, r3
+ movs r3, 0xE
+ ldrsh r0, [r2, r3]
+ adds r0, 0x7
+ cmp r1, r0
+ bne _080FFBD4
+ lsls r1, r4, 16
+ asrs r1, 16
+ movs r3, 0x10
+ ldrsh r0, [r2, r3]
+ adds r0, 0x7
+ cmp r1, r0
+ bne _080FFBD4
+ cmp r5, 0
+ beq _080FFBD4
+ movs r0, 0
+ b _080FFBD6
+ .align 2, 0
+_080FFBD0: .4byte gTasks
+_080FFBD4:
+ movs r0, 0x1
+_080FFBD6:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80FFB94
+
+ thumb_func_start sub_80FFBDC
+sub_80FFBDC: @ 80FFBDC
+ push {r4-r6,lr}
+ adds r5, r1, 0
+ lsls r0, 16
+ lsrs r6, r0, 16
+ lsls r0, r6, 24
+ lsrs r4, r0, 24
+ adds r0, r4, 0
+ bl sub_8057274
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _080FFC1C
+ ldrb r0, [r5]
+ cmp r0, 0x21
+ bne _080FFC0A
+ adds r0, r4, 0
+ bl sub_8057300
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _080FFC18
+_080FFC0A:
+ lsls r0, r6, 24
+ lsrs r0, 24
+ bl sub_805729C
+ lsls r0, 24
+ cmp r0, 0
+ beq _080FFC1C
+_080FFC18:
+ movs r0, 0x1
+ b _080FFC1E
+_080FFC1C:
+ movs r0, 0
+_080FFC1E:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80FFBDC
+
+ thumb_func_start sub_80FFC24
+sub_80FFC24: @ 80FFC24
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x24
+ str r1, [sp]
+ lsls r0, 24
+ lsrs r0, 24
+ mov r10, r0
+ ldr r1, _080FFC60
+ lsls r0, 2
+ add r0, r10
+ lsls r0, 3
+ adds r0, r1
+ ldrb r2, [r0, 0x14]
+ str r2, [sp, 0x4]
+ ldrb r0, [r0, 0x12]
+ str r0, [sp, 0x8]
+ ldr r3, [sp]
+ ldrb r0, [r3, 0x11]
+ adds r2, r1, 0
+ cmp r0, 0x4
+ bls _080FFC56
+ b _08100024
+_080FFC56:
+ lsls r0, 2
+ ldr r1, _080FFC64
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080FFC60: .4byte gTasks
+_080FFC64: .4byte _080FFC68
+ .align 2, 0
+_080FFC68:
+ .4byte _080FFC7C
+ .4byte _080FFC7C
+ .4byte _080FFD68
+ .4byte _080FFF1C
+ .4byte _080FFFA0
+_080FFC7C:
+ movs r6, 0
+ ldr r0, [sp, 0x4]
+ cmp r6, r0
+ bcc _080FFC86
+ b _08100024
+_080FFC86:
+ mov r1, r10
+ lsls r1, 2
+ str r1, [sp, 0x1C]
+_080FFC8C:
+ mov r2, r10
+ lsls r0, r2, 2
+ add r0, r10
+ lsls r0, 3
+ ldr r3, _080FFD64
+ adds r0, r3
+ ldrh r0, [r0, 0xA]
+ subs r0, r6
+ lsls r0, 16
+ lsrs r0, 16
+ mov r9, r0
+ movs r7, 0
+ adds r6, 0x1
+ str r6, [sp, 0x14]
+ ldr r0, [sp, 0x8]
+ cmp r7, r0
+ bcs _080FFD56
+ mov r1, r9
+ lsls r1, 16
+ str r1, [sp, 0xC]
+ asrs r1, 16
+ mov r9, r1
+_080FFCB8:
+ ldr r0, [sp, 0x1C]
+ add r0, r10
+ lsls r0, 3
+ ldr r2, _080FFD64
+ adds r0, r2
+ ldrh r0, [r0, 0x8]
+ adds r0, r7
+ lsls r0, 16
+ mov r8, r0
+ asrs r6, r0, 16
+ adds r0, r6, 0
+ mov r1, r9
+ bl MapGridGetMetatileBehaviorAt
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r3, [sp, 0x4]
+ ldr r1, [sp, 0x14]
+ subs r0, r3, r1
+ ldr r2, [sp, 0x8]
+ adds r1, r0, 0
+ muls r1, r2
+ adds r1, r7
+ ldr r3, [sp]
+ ldr r0, [r3, 0x1C]
+ lsls r1, 1
+ adds r1, r0
+ movs r2, 0x80
+ lsls r2, 2
+ adds r0, r2, 0
+ ldrh r1, [r1]
+ adds r0, r1
+ lsls r0, 16
+ lsrs r0, 16
+ bl GetBehaviorByMetatileId
+ movs r3, 0xF0
+ lsls r3, 8
+ adds r1, r3, 0
+ adds r5, r1, 0
+ ands r5, r0
+ adds r0, r4, 0
+ ldr r1, [sp]
+ bl sub_80FFBDC
+ lsls r0, 24
+ cmp r0, 0
+ bne _080FFD1A
+ b _080FFFF4
+_080FFD1A:
+ mov r0, r10
+ adds r1, r6, 0
+ mov r2, r9
+ adds r3, r5, 0
+ bl sub_80FFB94
+ lsls r0, 24
+ cmp r0, 0
+ bne _080FFD2E
+ b _080FFFF4
+_080FFD2E:
+ mov r1, r8
+ lsrs r0, r1, 16
+ ldr r2, [sp, 0xC]
+ lsrs r1, r2, 16
+ movs r2, 0
+ bl GetFieldObjectIdByXYZ
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ beq _080FFD4A
+ cmp r4, 0x10
+ beq _080FFD4A
+ b _080FFFF4
+_080FFD4A:
+ adds r0, r7, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r3, [sp, 0x8]
+ cmp r7, r3
+ bcc _080FFCB8
+_080FFD56:
+ ldr r1, [sp, 0x14]
+ lsls r0, r1, 24
+ lsrs r6, r0, 24
+ ldr r2, [sp, 0x4]
+ cmp r6, r2
+ bcc _080FFC8C
+ b _08100024
+ .align 2, 0
+_080FFD64: .4byte gTasks
+_080FFD68:
+ movs r6, 0
+ mov r3, r10
+ lsls r3, 2
+ str r3, [sp, 0x1C]
+ ldr r0, [sp, 0x4]
+ subs r0, 0x1
+ str r0, [sp, 0x18]
+ cmp r6, r0
+ bge _080FFE54
+ adds r0, r3, 0
+ add r0, r10
+ lsls r0, 3
+ str r0, [sp, 0x10]
+_080FFD82:
+ ldr r1, [sp, 0x10]
+ adds r0, r1, r2
+ ldrh r0, [r0, 0xA]
+ subs r0, r6
+ lsls r0, 16
+ lsrs r0, 16
+ mov r9, r0
+ movs r7, 0
+ adds r6, 0x1
+ str r6, [sp, 0x14]
+ ldr r3, [sp, 0x8]
+ cmp r7, r3
+ bcs _080FFE48
+ lsls r0, 16
+ str r0, [sp, 0x20]
+_080FFDA0:
+ ldr r1, [sp, 0x10]
+ adds r0, r1, r2
+ ldrh r0, [r0, 0x8]
+ adds r0, r7
+ lsls r0, 16
+ mov r8, r0
+ asrs r6, r0, 16
+ mov r2, r9
+ lsls r1, r2, 16
+ adds r0, r6, 0
+ asrs r1, 16
+ bl MapGridGetMetatileBehaviorAt
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r3, [sp, 0x4]
+ ldr r1, [sp, 0x14]
+ subs r0, r3, r1
+ ldr r2, [sp, 0x8]
+ adds r1, r0, 0
+ muls r1, r2
+ adds r1, r7
+ ldr r3, [sp]
+ ldr r0, [r3, 0x1C]
+ lsls r1, 1
+ adds r1, r0
+ movs r2, 0x80
+ lsls r2, 2
+ adds r0, r2, 0
+ ldrh r1, [r1]
+ adds r0, r1
+ lsls r0, 16
+ lsrs r0, 16
+ bl GetBehaviorByMetatileId
+ movs r3, 0xF0
+ lsls r3, 8
+ adds r1, r3, 0
+ adds r5, r1, 0
+ ands r5, r0
+ adds r0, r4, 0
+ bl sub_805729C
+ lsls r0, 24
+ cmp r0, 0
+ bne _080FFE0C
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_80FFB6C
+ lsls r0, 24
+ cmp r0, 0
+ bne _080FFE0C
+ b _080FFFF4
+_080FFE0C:
+ mov r0, r10
+ adds r1, r6, 0
+ ldr r3, [sp, 0x20]
+ asrs r2, r3, 16
+ adds r3, r5, 0
+ bl sub_80FFB94
+ lsls r0, 24
+ cmp r0, 0
+ bne _080FFE22
+ b _080FFFF4
+_080FFE22:
+ mov r1, r8
+ lsrs r0, r1, 16
+ ldr r2, [sp, 0x20]
+ lsrs r1, r2, 16
+ movs r2, 0
+ bl GetFieldObjectIdByXYZ
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x10
+ beq _080FFE3A
+ b _080FFFF4
+_080FFE3A:
+ adds r0, r7, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r2, _080FFF18
+ ldr r3, [sp, 0x8]
+ cmp r7, r3
+ bcc _080FFDA0
+_080FFE48:
+ ldr r1, [sp, 0x14]
+ lsls r0, r1, 24
+ lsrs r6, r0, 24
+ ldr r3, [sp, 0x18]
+ cmp r6, r3
+ blt _080FFD82
+_080FFE54:
+ ldr r0, [sp, 0x1C]
+ add r0, r10
+ lsls r0, 3
+ adds r0, r2
+ ldrh r0, [r0, 0xA]
+ ldr r1, [sp, 0x4]
+ subs r0, r1
+ adds r0, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+ mov r9, r0
+ movs r7, 0
+ ldr r3, [sp, 0x8]
+ cmp r7, r3
+ bcc _080FFE74
+ b _08100024
+_080FFE74:
+ lsls r0, 16
+ str r0, [sp, 0x20]
+_080FFE78:
+ ldr r0, [sp, 0x1C]
+ add r0, r10
+ lsls r0, 3
+ ldr r1, _080FFF18
+ adds r0, r1
+ ldrh r0, [r0, 0x8]
+ adds r0, r7
+ lsls r0, 16
+ mov r8, r0
+ asrs r6, r0, 16
+ mov r2, r9
+ lsls r1, r2, 16
+ adds r0, r6, 0
+ asrs r1, 16
+ bl MapGridGetMetatileBehaviorAt
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r3, [sp]
+ ldr r0, [r3, 0x1C]
+ lsls r1, r7, 1
+ adds r1, r0
+ movs r2, 0x80
+ lsls r2, 2
+ adds r0, r2, 0
+ ldrh r1, [r1]
+ adds r0, r1
+ lsls r0, 16
+ lsrs r0, 16
+ bl GetBehaviorByMetatileId
+ movs r3, 0xF0
+ lsls r3, 8
+ adds r1, r3, 0
+ adds r5, r1, 0
+ ands r5, r0
+ adds r0, r4, 0
+ bl sub_805729C
+ lsls r0, 24
+ cmp r0, 0
+ bne _080FFEDA
+ adds r0, r4, 0
+ bl sub_80572B0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080FFEDA
+ b _080FFFF4
+_080FFEDA:
+ mov r0, r10
+ adds r1, r6, 0
+ ldr r3, [sp, 0x20]
+ asrs r2, r3, 16
+ adds r3, r5, 0
+ bl sub_80FFB94
+ lsls r0, 24
+ cmp r0, 0
+ bne _080FFEF0
+ b _080FFFF4
+_080FFEF0:
+ mov r1, r8
+ lsrs r0, r1, 16
+ ldr r2, [sp, 0x20]
+ lsrs r1, r2, 16
+ movs r2, 0
+ bl GetFieldObjectIdByXYZ
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ beq _080FFF0A
+ cmp r4, 0x10
+ bne _080FFFF4
+_080FFF0A:
+ adds r0, r7, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r3, [sp, 0x8]
+ cmp r7, r3
+ bcc _080FFE78
+ b _08100024
+ .align 2, 0
+_080FFF18: .4byte gTasks
+_080FFF1C:
+ movs r6, 0
+ ldr r0, [sp, 0x4]
+ cmp r6, r0
+ bcc _080FFF26
+ b _08100024
+_080FFF26:
+ mov r1, r10
+ lsls r0, r1, 2
+ add r0, r10
+ lsls r1, r0, 3
+ ldr r2, _080FFF9C
+ adds r0, r1, r2
+ ldrh r0, [r0, 0xA]
+ subs r0, r6
+ lsls r0, 16
+ lsrs r0, 16
+ mov r9, r0
+ movs r7, 0
+ ldr r3, [sp, 0x8]
+ cmp r7, r3
+ bcs _080FFF8C
+ adds r0, r2, 0
+ adds r1, r0
+ mov r8, r1
+ mov r1, r9
+ lsls r0, r1, 16
+ asrs r5, r0, 16
+_080FFF50:
+ mov r2, r8
+ ldrh r0, [r2, 0x8]
+ adds r0, r7
+ lsls r0, 16
+ asrs r4, r0, 16
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl MapGridGetMetatileBehaviorAt
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_80572B0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080FFFF4
+ adds r0, r4, 0
+ adds r1, r5, 0x1
+ bl MapGridGetMetatileIdAt
+ movs r1, 0xA3
+ lsls r1, 2
+ cmp r0, r1
+ beq _080FFFF4
+ adds r0, r7, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r3, [sp, 0x8]
+ cmp r7, r3
+ bcc _080FFF50
+_080FFF8C:
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r0, [sp, 0x4]
+ cmp r6, r0
+ bcc _080FFF26
+ b _08100024
+ .align 2, 0
+_080FFF9C: .4byte gTasks
+_080FFFA0:
+ mov r3, r10
+ lsls r1, r3, 2
+ adds r0, r1, r3
+ lsls r0, 3
+ adds r0, r2
+ ldrh r0, [r0, 0xA]
+ mov r9, r0
+ movs r7, 0
+ str r1, [sp, 0x1C]
+ ldr r0, [sp, 0x8]
+ cmp r7, r0
+ bcs _08100024
+ adds r6, r2, 0
+ mov r1, r9
+ lsls r1, 16
+ str r1, [sp, 0x20]
+_080FFFC0:
+ ldr r0, [sp, 0x1C]
+ add r0, r10
+ lsls r0, 3
+ adds r0, r6
+ ldrh r0, [r0, 0x8]
+ adds r0, r7
+ lsls r0, 16
+ lsrs r5, r0, 16
+ asrs r0, 16
+ mov r2, r9
+ lsls r1, r2, 16
+ asrs r1, 16
+ bl MapGridGetMetatileBehaviorAt
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r3, [sp]
+ ldrb r0, [r3, 0x12]
+ cmp r0, 0x5
+ bne _080FFFF8
+_080FFFE8:
+ adds r0, r4, 0
+ bl sub_80572EC
+ lsls r0, 24
+ cmp r0, 0
+ bne _08100004
+_080FFFF4:
+ movs r0, 0
+ b _08100026
+_080FFFF8:
+ adds r0, r4, 0
+ bl sub_80572D8
+ lsls r0, 24
+ cmp r0, 0
+ beq _080FFFE8
+_08100004:
+ adds r0, r5, 0
+ ldr r2, [sp, 0x20]
+ lsrs r1, r2, 16
+ movs r2, 0
+ bl GetFieldObjectIdByXYZ
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x10
+ bne _080FFFF4
+ adds r0, r7, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r3, [sp, 0x8]
+ cmp r7, r3
+ bcc _080FFFC0
+_08100024:
+ movs r0, 0x1
+_08100026:
+ add sp, 0x24
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80FFC24
+
+ thumb_func_start sub_8100038
+sub_8100038: @ 8100038
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _0810006C
+ ldrb r1, [r0]
+ ldr r0, _08100070
+ ldr r0, [r0]
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r1, 5
+ ldr r0, _08100074
+ adds r1, r0
+ adds r0, r4, 0
+ bl sub_80FFC24
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08100080
+ ldr r1, _08100078
+ ldr r2, _0810007C
+ adds r0, r4, 0
+ movs r3, 0
+ bl DisplayItemMessageOnField
+ b _08100092
+ .align 2, 0
+_0810006C: .4byte gUnknown_020388F5
+_08100070: .4byte gUnknown_020388D0
+_08100074: .4byte gDecorations
+_08100078: .4byte gSecretBaseText_PlaceItHere
+_0810007C: .4byte sub_81000A0
+_08100080:
+ movs r0, 0x20
+ bl PlaySE
+ ldr r1, _08100098
+ ldr r2, _0810009C
+ adds r0, r4, 0
+ movs r3, 0
+ bl DisplayItemMessageOnField
+_08100092:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08100098: .4byte gSecretBaseText_CantBePlacedHere
+_0810009C: .4byte sub_81006A8
+ thumb_func_end sub_8100038
+
+ thumb_func_start sub_81000A0
+sub_81000A0: @ 81000A0
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x14
+ movs r1, 0x8
+ movs r2, 0x1
+ bl DisplayYesNoMenu
+ ldr r1, _081000C0
+ adds r0, r4, 0
+ bl sub_80F914C
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081000C0: .4byte gUnknown_083EC95C
+ thumb_func_end sub_81000A0
+
+ thumb_func_start sub_81000C4
+sub_81000C4: @ 81000C4
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ adds r0, r4, 0
+ bl sub_8100174
+ ldr r2, _0810010C
+ ldr r0, _08100110
+ ldrb r1, [r0]
+ ldr r0, _08100114
+ ldr r0, [r0]
+ adds r0, r1
+ ldrb r3, [r0]
+ lsls r0, r3, 5
+ adds r0, r2
+ ldrb r0, [r0, 0x11]
+ cmp r0, 0x4
+ beq _0810011C
+ ldr r0, _08100118
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x8]
+ ldrh r1, [r1, 0xA]
+ adds r2, r3, 0
+ bl sub_80FF394
+ b _0810013C
+ .align 2, 0
+_0810010C: .4byte gDecorations
+_08100110: .4byte gUnknown_020388F5
+_08100114: .4byte gUnknown_020388D0
+_08100118: .4byte gTasks
+_0810011C:
+ ldr r2, _0810015C
+ ldr r0, _08100160
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x8]
+ subs r0, 0x7
+ strh r0, [r2]
+ ldr r2, _08100164
+ ldrh r0, [r1, 0xA]
+ subs r0, 0x7
+ strh r0, [r2]
+ ldr r0, _08100168
+ bl ScriptContext1_SetupScript
+_0810013C:
+ ldr r2, _0810016C
+ ldr r0, _08100170
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r0, 0x22]
+ adds r1, 0x2
+ strh r1, [r0, 0x22]
+ adds r0, r4, 0
+ bl sub_810028C
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810015C: .4byte gUnknown_020391A4
+_08100160: .4byte gTasks
+_08100164: .4byte gUnknown_020391A6
+_08100168: .4byte gUnknown_081A2F7B
+_0810016C: .4byte gSprites
+_08100170: .4byte gUnknown_020391A8
+ thumb_func_end sub_81000C4
+
+ thumb_func_start sub_8100174
+sub_8100174: @ 8100174
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r3, 0
+ ldr r0, _081001B0
+ ldrb r1, [r0, 0x8]
+ adds r5, r0, 0
+ cmp r3, r1
+ bcs _0810019A
+ ldr r4, [r5]
+_08100188:
+ adds r2, r4, r3
+ ldrb r0, [r2]
+ cmp r0, 0
+ beq _081001B8
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, r1
+ bcc _08100188
+_0810019A:
+ ldrb r0, [r5, 0x9]
+ cmp r0, 0
+ bne _08100204
+ movs r3, 0
+ ldr r0, _081001B4
+ ldrb r1, [r0]
+ adds r2, r0, 0
+ cmp r1, 0
+ bne _081001F0
+ b _08100210
+ .align 2, 0
+_081001B0: .4byte 0x0201f000
+_081001B4: .4byte gUnknown_020388D6
+_081001B8:
+ ldr r0, _081001E4
+ ldrb r1, [r0]
+ ldr r0, _081001E8
+ ldr r0, [r0]
+ adds r0, r1
+ ldrb r0, [r0]
+ strb r0, [r2]
+ ldr r2, [r5, 0x4]
+ adds r2, r3
+ ldr r0, _081001EC
+ lsls r1, r6, 2
+ adds r1, r6
+ lsls r1, 3
+ adds r1, r0
+ ldrb r0, [r1, 0x8]
+ subs r0, 0x7
+ lsls r0, 4
+ ldrb r1, [r1, 0xA]
+ subs r1, 0x7
+ adds r0, r1
+ strb r0, [r2]
+ b _0810019A
+ .align 2, 0
+_081001E4: .4byte gUnknown_020388F5
+_081001E8: .4byte gUnknown_020388D0
+_081001EC: .4byte gTasks
+_081001F0:
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0xF
+ bhi _0810023E
+ adds r1, r3, r2
+ ldrb r0, [r1]
+ cmp r0, 0
+ bne _081001F0
+ b _08100236
+_08100204:
+ movs r3, 0
+ ldr r0, _0810021C
+ ldrb r1, [r0]
+ adds r2, r0, 0
+ cmp r1, 0
+ bne _08100224
+_08100210:
+ ldr r0, _08100220
+ ldrb r0, [r0]
+ adds r0, 0x1
+ strb r0, [r2]
+ b _0810023E
+ .align 2, 0
+_0810021C: .4byte gUnknown_020388E6
+_08100220: .4byte gUnknown_020388F5
+_08100224:
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0xB
+ bhi _0810023E
+ adds r1, r3, r2
+ ldrb r0, [r1]
+ cmp r0, 0
+ bne _08100224
+_08100236:
+ ldr r0, _08100244
+ ldrb r0, [r0]
+ adds r0, 0x1
+ strb r0, [r1]
+_0810023E:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08100244: .4byte gUnknown_020388F5
+ thumb_func_end sub_8100174
+
+ thumb_func_start sub_8100248
+sub_8100248: @ 8100248
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x14
+ movs r1, 0x8
+ movs r2, 0x1
+ bl DisplayYesNoMenu
+ ldr r1, _08100268
+ adds r0, r4, 0
+ bl sub_80F914C
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08100268: .4byte gUnknown_083EC964
+ thumb_func_end sub_8100248
+
+ thumb_func_start sub_810026C
+sub_810026C: @ 810026C
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ adds r0, r4, 0
+ bl sub_810028C
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_810026C
+
+ thumb_func_start sub_810028C
+sub_810028C: @ 810028C
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x1
+ movs r1, 0
+ bl fade_screen
+ ldr r1, _081002B4
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0
+ strh r1, [r0, 0xC]
+ ldr r1, _081002B8
+ str r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081002B4: .4byte gTasks
+_081002B8: .4byte c1_overworld_prev_quest
+ thumb_func_end sub_810028C
+
+ thumb_func_start c1_overworld_prev_quest
+c1_overworld_prev_quest: @ 81002BC
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r1, _081002DC
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r5, r0, r1
+ movs r1, 0xC
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ beq _081002E0
+ cmp r0, 0x1
+ beq _08100300
+ b _0810031C
+ .align 2, 0
+_081002DC: .4byte gTasks
+_081002E0:
+ bl ScriptContext2_Enable
+ ldr r0, _081002FC
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0810031C
+ adds r0, r4, 0
+ bl sub_80FF114
+ movs r0, 0x1
+ strh r0, [r5, 0xC]
+ b _0810031C
+ .align 2, 0
+_081002FC: .4byte gPaletteFade
+_08100300:
+ bl sub_81016F4
+ ldr r0, _08100324
+ bl FreeSpritePaletteByTag
+ ldr r1, _08100328
+ ldr r0, _0810032C
+ str r0, [r1]
+ ldr r0, _08100330
+ bl SetMainCallback2
+ adds r0, r4, 0
+ bl DestroyTask
+_0810031C:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08100324: .4byte 0x00000bb8
+_08100328: .4byte gUnknown_0300485C
+_0810032C: .4byte sub_8100364
+_08100330: .4byte c2_exit_to_overworld_2_switch
+ thumb_func_end c1_overworld_prev_quest
+
+ thumb_func_start sub_8100334
+sub_8100334: @ 8100334
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_807D770
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08100354
+ ldr r0, _0810035C
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _08100360
+ str r0, [r1]
+_08100354:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810035C: .4byte gTasks
+_08100360: .4byte sub_80FE948
+ thumb_func_end sub_8100334
+
+ thumb_func_start sub_8100364
+sub_8100364: @ 8100364
+ push {lr}
+ bl ScriptContext2_Enable
+ bl InitMenuInUpperLeftCornerPlaySoundWhenAPressed
+ bl pal_fill_black
+ ldr r0, _08100388
+ movs r1, 0x8
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_80FE7EC
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08100388: .4byte sub_8100334
+ thumb_func_end sub_8100364
+
+ thumb_func_start sub_810038C
+sub_810038C: @ 810038C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _081003BC
+ adds r2, r1, r0
+ ldr r0, _081003C0
+ ldrb r1, [r0]
+ adds r3, r0, 0
+ cmp r1, 0x1
+ bne _081003C4
+ movs r1, 0x2
+ ldrsh r0, [r2, r1]
+ movs r4, 0xC
+ ldrsh r1, [r2, r4]
+ subs r0, r1
+ subs r0, 0x6
+ cmp r0, 0
+ bge _081003C4
+ ldrh r0, [r2, 0x2]
+ adds r0, 0x1
+ b _081003DE
+ .align 2, 0
+_081003BC: .4byte gUnknown_03004B28
+_081003C0: .4byte gUnknown_020391AA
+_081003C4:
+ ldrb r0, [r3]
+ cmp r0, 0x2
+ bne _081003E8
+ movs r0, 0x2
+ ldrsh r1, [r2, r0]
+ subs r1, 0x7
+ ldr r0, _081003E4
+ ldr r0, [r0]
+ ldr r0, [r0, 0x4]
+ cmp r1, r0
+ blt _081003E8
+ ldrh r0, [r2, 0x2]
+ subs r0, 0x1
+_081003DE:
+ strh r0, [r2, 0x2]
+ movs r0, 0
+ b _0810042A
+ .align 2, 0
+_081003E4: .4byte gMapHeader
+_081003E8:
+ ldrb r0, [r3]
+ cmp r0, 0x3
+ bne _081003FE
+ movs r1, 0
+ ldrsh r0, [r2, r1]
+ subs r0, 0x7
+ cmp r0, 0
+ bge _081003FE
+ ldrh r0, [r2]
+ adds r0, 0x1
+ b _0810041E
+_081003FE:
+ ldrb r0, [r3]
+ cmp r0, 0x4
+ bne _08100428
+ movs r3, 0
+ ldrsh r1, [r2, r3]
+ movs r4, 0xA
+ ldrsh r0, [r2, r4]
+ adds r1, r0
+ subs r1, 0x8
+ ldr r0, _08100424
+ ldr r0, [r0]
+ ldr r0, [r0]
+ cmp r1, r0
+ blt _08100428
+ ldrh r0, [r2]
+ subs r0, 0x1
+_0810041E:
+ strh r0, [r2]
+ movs r0, 0
+ b _0810042A
+ .align 2, 0
+_08100424: .4byte gMapHeader
+_08100428:
+ movs r0, 0x1
+_0810042A:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_810038C
+
+ thumb_func_start sub_8100430
+sub_8100430: @ 8100430
+ push {lr}
+ ldr r0, _08100450
+ ldrh r0, [r0, 0x2C]
+ movs r1, 0xF0
+ ands r1, r0
+ cmp r1, 0x40
+ beq _08100454
+ cmp r1, 0x80
+ beq _08100454
+ cmp r1, 0x20
+ beq _08100454
+ cmp r1, 0x10
+ beq _08100454
+ movs r0, 0
+ b _08100456
+ .align 2, 0
+_08100450: .4byte gMain
+_08100454:
+ movs r0, 0x1
+_08100456:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8100430
+
+ thumb_func_start sub_810045C
+sub_810045C: @ 810045C
+ push {r4,lr}
+ ldr r1, _08100488
+ movs r0, 0
+ strb r0, [r1]
+ ldr r4, _0810048C
+ ldr r3, _08100490
+ ldrb r1, [r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ movs r2, 0
+ strh r2, [r0, 0x32]
+ ldrb r1, [r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ strh r2, [r0, 0x34]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08100488: .4byte gUnknown_020391AA
+_0810048C: .4byte gSprites
+_08100490: .4byte gUnknown_020391A8
+ thumb_func_end sub_810045C
+
+ thumb_func_start sub_8100494
+sub_8100494: @ 8100494
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r5, _081004D0
+ ldr r3, _081004D4
+ ldrb r1, [r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ movs r1, 0x36
+ ldrsh r6, [r0, r1]
+ cmp r6, 0
+ beq _081004B2
+ b _081005DE
+_081004B2:
+ ldr r1, _081004D8
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r2, r0, r1
+ movs r1, 0x1C
+ ldrsh r0, [r2, r1]
+ cmp r0, 0x1
+ bne _081004E0
+ ldr r0, _081004DC
+ movs r3, 0x20
+ ldrsh r1, [r2, r3]
+ lsls r1, 3
+ b _081004EE
+ .align 2, 0
+_081004D0: .4byte gSprites
+_081004D4: .4byte gUnknown_020391A8
+_081004D8: .4byte gTasks
+_081004DC: .4byte gUnknown_083EC96C
+_081004E0:
+ cmp r0, 0x2
+ bne _08100500
+ ldr r0, _081004FC
+ movs r3, 0x20
+ ldrsh r1, [r2, r3]
+ lsls r1, 3
+ adds r0, 0x4
+_081004EE:
+ adds r1, r0
+ ldr r1, [r1]
+ adds r0, r4, 0
+ bl _call_via_r1
+ b _0810063C
+ .align 2, 0
+_081004FC: .4byte gUnknown_083EC96C
+_08100500:
+ ldr r7, _08100644
+ ldrh r1, [r7, 0x2C]
+ movs r0, 0xF0
+ mov r12, r0
+ ands r0, r1
+ cmp r0, 0x40
+ bne _08100534
+ ldr r1, _08100648
+ movs r0, 0x1
+ strb r0, [r1]
+ ldrb r1, [r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ strh r6, [r0, 0x32]
+ ldrb r1, [r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldr r1, _0810064C
+ strh r1, [r0, 0x34]
+ ldrh r0, [r2, 0xA]
+ subs r0, 0x1
+ strh r0, [r2, 0xA]
+_08100534:
+ ldrh r1, [r7, 0x2C]
+ mov r0, r12
+ ands r0, r1
+ cmp r0, 0x80
+ bne _08100564
+ ldr r1, _08100648
+ movs r0, 0x2
+ strb r0, [r1]
+ ldrb r1, [r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ strh r6, [r0, 0x32]
+ ldrb r1, [r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ movs r1, 0x2
+ strh r1, [r0, 0x34]
+ ldrh r0, [r2, 0xA]
+ adds r0, 0x1
+ strh r0, [r2, 0xA]
+_08100564:
+ ldrh r1, [r7, 0x2C]
+ mov r0, r12
+ ands r0, r1
+ cmp r0, 0x20
+ bne _08100594
+ ldr r1, _08100648
+ movs r0, 0x3
+ strb r0, [r1]
+ ldrb r1, [r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldr r1, _0810064C
+ strh r1, [r0, 0x32]
+ ldrb r1, [r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ strh r6, [r0, 0x34]
+ ldrh r0, [r2, 0x8]
+ subs r0, 0x1
+ strh r0, [r2, 0x8]
+_08100594:
+ ldrh r1, [r7, 0x2C]
+ mov r0, r12
+ ands r0, r1
+ cmp r0, 0x10
+ bne _081005C4
+ ldr r1, _08100648
+ movs r0, 0x4
+ strb r0, [r1]
+ ldrb r1, [r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ movs r1, 0x2
+ strh r1, [r0, 0x32]
+ ldrb r1, [r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ strh r6, [r0, 0x34]
+ ldrh r0, [r2, 0x8]
+ adds r0, 0x1
+ strh r0, [r2, 0x8]
+_081005C4:
+ bl sub_8100430
+ lsls r0, 24
+ cmp r0, 0
+ beq _081005DA
+ adds r0, r4, 0
+ bl sub_810038C
+ lsls r0, 24
+ cmp r0, 0
+ bne _081005DE
+_081005DA:
+ bl sub_810045C
+_081005DE:
+ ldr r0, _08100648
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0810060C
+ ldr r3, _08100650
+ ldr r2, _08100654
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ ldrh r1, [r0, 0x36]
+ adds r1, 0x1
+ strh r1, [r0, 0x36]
+ ldrb r0, [r2]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r3
+ ldrh r2, [r1, 0x36]
+ movs r0, 0x7
+ ands r0, r2
+ strh r0, [r1, 0x36]
+_0810060C:
+ ldr r0, _08100658
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r2, r1, r0
+ movs r1, 0x1C
+ ldrsh r0, [r2, r1]
+ cmp r0, 0
+ bne _0810063C
+ ldr r4, _08100644
+ ldrh r1, [r4, 0x2E]
+ movs r3, 0x1
+ adds r0, r3, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _0810062E
+ strh r3, [r2, 0x1C]
+_0810062E:
+ ldrh r1, [r4, 0x2E]
+ movs r3, 0x2
+ adds r0, r3, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _0810063C
+ strh r3, [r2, 0x1C]
+_0810063C:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08100644: .4byte gMain
+_08100648: .4byte gUnknown_020391AA
+_0810064C: .4byte 0x0000fffe
+_08100650: .4byte gSprites
+_08100654: .4byte gUnknown_020391A8
+_08100658: .4byte gTasks
+ thumb_func_end sub_8100494
+
+ thumb_func_start sub_810065C
+sub_810065C: @ 810065C
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ ldr r2, _08100698
+ ldr r0, _0810069C
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ movs r2, 0
+ strh r2, [r0, 0x3C]
+ ldr r1, _081006A0
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ strh r2, [r0, 0x1C]
+ ldr r1, _081006A4
+ str r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08100698: .4byte gSprites
+_0810069C: .4byte gUnknown_020391A8
+_081006A0: .4byte gTasks
+_081006A4: .4byte sub_8100494
+ thumb_func_end sub_810065C
+
+ thumb_func_start sub_81006A8
+sub_81006A8: @ 81006A8
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r0, _081006CC
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _081006C2
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _081006C8
+_081006C2:
+ adds r0, r2, 0
+ bl sub_810065C
+_081006C8:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081006CC: .4byte gMain
+ thumb_func_end sub_81006A8
+
+ thumb_func_start sub_81006D0
+sub_81006D0: @ 81006D0
+ push {r4,r5,lr}
+ adds r3, r0, 0
+ movs r1, 0
+ adds r2, r3, 0
+ adds r2, 0x84
+ movs r5, 0
+ ldr r4, _08100708
+_081006DE:
+ adds r0, r2, r1
+ strb r5, [r0]
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, r4
+ bls _081006DE
+ movs r1, 0
+ adds r2, r3, 0x4
+ movs r3, 0
+_081006F2:
+ lsls r0, r1, 1
+ adds r0, r2, r0
+ strh r3, [r0]
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0x3F
+ bls _081006F2
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08100708: .4byte 0x000007ff
+ thumb_func_end sub_81006D0
+
+ thumb_func_start sub_810070C
+sub_810070C: @ 810070C
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ lsls r1, 16
+ movs r2, 0
+ ldr r0, _0810073C
+ ldr r0, [r0]
+ ldr r0, [r0, 0x10]
+ lsrs r4, r1, 12
+ ldr r3, [r0, 0x8]
+_0810071E:
+ lsls r1, r2, 1
+ adds r1, r5
+ adds r0, r4, r2
+ lsls r0, 1
+ adds r0, r3
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0xF
+ bls _0810071E
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810073C: .4byte gMapHeader
+ thumb_func_end sub_810070C
+
+ thumb_func_start sub_8100740
+sub_8100740: @ 8100740
+ push {r4-r7,lr}
+ sub sp, 0x20
+ adds r7, r0, 0
+ lsls r1, 16
+ lsrs r2, r1, 16
+ lsrs r3, r1, 26
+ cmp r2, 0
+ beq _08100754
+ ldr r0, _08100784
+ ands r2, r0
+_08100754:
+ movs r5, 0
+ ldr r0, _08100788
+ ldr r6, [r0]
+ lsls r4, r2, 5
+_0810075C:
+ mov r0, sp
+ adds r2, r0, r5
+ ldr r0, [r6, 0x10]
+ ldr r0, [r0, 0x4]
+ adds r1, r4, r5
+ adds r0, r1
+ ldrb r0, [r0]
+ strb r0, [r2]
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x1F
+ bls _0810075C
+ cmp r3, 0x1
+ beq _081007AE
+ cmp r3, 0x1
+ bgt _0810078C
+ cmp r3, 0
+ beq _08100796
+ b _0810086A
+ .align 2, 0
+_08100784: .4byte 0x000003ff
+_08100788: .4byte gMapHeader
+_0810078C:
+ cmp r3, 0x2
+ beq _0810080E
+ cmp r3, 0x3
+ beq _08100846
+ b _0810086A
+_08100796:
+ movs r5, 0
+_08100798:
+ adds r1, r7, r5
+ mov r2, sp
+ adds r0, r2, r5
+ ldrb r0, [r0]
+ strb r0, [r1]
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x1F
+ bls _08100798
+ b _0810086A
+_081007AE:
+ movs r5, 0
+ movs r6, 0xF
+_081007B2:
+ lsls r4, r5, 2
+ adds r4, r7
+ adds r5, 0x1
+ lsls r3, r5, 2
+ subs r0, r3, 0x1
+ add r0, sp
+ ldrb r2, [r0]
+ lsrs r1, r2, 4
+ adds r0, r6, 0
+ ands r0, r2
+ lsls r0, 4
+ adds r1, r0
+ strb r1, [r4]
+ subs r0, r3, 0x2
+ add r0, sp
+ ldrb r2, [r0]
+ lsrs r1, r2, 4
+ adds r0, r6, 0
+ ands r0, r2
+ lsls r0, 4
+ adds r1, r0
+ strb r1, [r4, 0x1]
+ subs r0, r3, 0x3
+ add r0, sp
+ ldrb r2, [r0]
+ lsrs r1, r2, 4
+ adds r0, r6, 0
+ ands r0, r2
+ lsls r0, 4
+ adds r1, r0
+ strb r1, [r4, 0x2]
+ subs r3, 0x4
+ mov r1, sp
+ adds r0, r1, r3
+ ldrb r2, [r0]
+ lsrs r1, r2, 4
+ adds r0, r6, 0
+ ands r0, r2
+ lsls r0, 4
+ adds r1, r0
+ strb r1, [r4, 0x3]
+ lsls r5, 16
+ lsrs r5, 16
+ cmp r5, 0x7
+ bls _081007B2
+ b _0810086A
+_0810080E:
+ movs r5, 0
+ movs r3, 0x7
+_08100812:
+ lsls r2, r5, 2
+ adds r2, r7
+ subs r1, r3, r5
+ lsls r1, 2
+ mov r4, sp
+ adds r0, r4, r1
+ ldrb r0, [r0]
+ strb r0, [r2]
+ adds r0, r1, 0x1
+ add r0, sp
+ ldrb r0, [r0]
+ strb r0, [r2, 0x1]
+ adds r0, r1, 0x2
+ add r0, sp
+ ldrb r0, [r0]
+ strb r0, [r2, 0x2]
+ adds r1, 0x3
+ adds r0, r4, r1
+ ldrb r0, [r0]
+ strb r0, [r2, 0x3]
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x7
+ bls _08100812
+ b _0810086A
+_08100846:
+ movs r5, 0
+ movs r4, 0x1F
+ movs r6, 0xF
+_0810084C:
+ adds r3, r7, r5
+ subs r0, r4, r5
+ add r0, sp
+ ldrb r2, [r0]
+ lsrs r1, r2, 4
+ adds r0, r6, 0
+ ands r0, r2
+ lsls r0, 4
+ adds r1, r0
+ strb r1, [r3]
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x1F
+ bls _0810084C
+_0810086A:
+ add sp, 0x20
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8100740
+
+ thumb_func_start sub_8100874
+sub_8100874: @ 8100874
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ movs r4, 0
+_0810087A:
+ lsls r0, r4, 5
+ adds r0, 0x84
+ adds r0, r5, r0
+ lsls r2, r4, 1
+ adds r1, r5, 0x4
+ adds r1, r2
+ ldrh r1, [r1]
+ bl sub_8100740
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x3F
+ bls _0810087A
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8100874
+
+ thumb_func_start sub_810089C
+sub_810089C: @ 810089C
+ lsls r0, 16
+ ldr r1, _081008B4
+ ldr r1, [r1]
+ ldr r1, [r1, 0x14]
+ ldr r1, [r1, 0xC]
+ lsrs r0, 15
+ adds r0, r1
+ ldrh r1, [r0]
+ ldr r0, _081008B8
+ ands r0, r1
+ bx lr
+ .align 2, 0
+_081008B4: .4byte gMapHeader
+_081008B8: .4byte 0x00000fff
+ thumb_func_end sub_810089C
+
+ thumb_func_start sub_81008BC
+sub_81008BC: @ 81008BC
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ mov r8, r0
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x12]
+ movs r6, 0
+ ldr r1, _0810092C
+ lsls r5, r0, 4
+ adds r0, r5, r1
+ ldrb r0, [r0, 0xC]
+ cmp r6, r0
+ bcs _08100920
+ adds r7, r1, 0
+_081008D8:
+ mov r4, r8
+ ldm r4!, {r1}
+ adds r0, r7, 0x4
+ adds r0, r5, r0
+ ldr r0, [r0]
+ adds r0, r6
+ ldrb r0, [r0]
+ ldr r1, [r1, 0x1C]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ adds r1, r7, 0
+ adds r1, 0x8
+ adds r1, r5, r1
+ ldr r1, [r1]
+ adds r1, r6
+ lsls r0, 3
+ ldrb r1, [r1]
+ adds r0, r1
+ lsls r0, 16
+ lsrs r0, 16
+ bl sub_810089C
+ adds r2, r5, r7
+ ldr r1, [r2]
+ adds r1, r6
+ ldrb r1, [r1]
+ lsls r1, 1
+ adds r4, r1
+ strh r0, [r4]
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldrb r2, [r2, 0xC]
+ cmp r6, r2
+ bcc _081008D8
+_08100920:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810092C: .4byte gUnknown_083EC860
+ thumb_func_end sub_81008BC
+
+ thumb_func_start sub_8100930
+sub_8100930: @ 8100930
+ push {r4,r5,lr}
+ lsls r0, 24
+ ldr r3, _08100998
+ movs r1, 0
+ strb r1, [r3]
+ ldrb r2, [r3, 0x1]
+ subs r1, 0x4
+ ands r1, r2
+ movs r4, 0xD
+ negs r4, r4
+ ands r1, r4
+ movs r2, 0x11
+ negs r2, r2
+ ands r1, r2
+ subs r2, 0x10
+ ands r1, r2
+ strb r1, [r3, 0x1]
+ ldr r1, _0810099C
+ lsrs r0, 22
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r5, 0x3F
+ lsls r1, 6
+ strb r1, [r3, 0x1]
+ ldrh r2, [r3, 0x2]
+ ldr r1, _081009A0
+ ands r1, r2
+ strh r1, [r3, 0x2]
+ ldrb r2, [r3, 0x3]
+ movs r1, 0x3F
+ negs r1, r1
+ ands r1, r2
+ strb r1, [r3, 0x3]
+ ldrb r0, [r0, 0x1]
+ lsls r0, 6
+ ands r5, r1
+ orrs r5, r0
+ strb r5, [r3, 0x3]
+ ldrh r1, [r3, 0x4]
+ ldr r0, _081009A4
+ ands r0, r1
+ strh r0, [r3, 0x4]
+ ldrb r0, [r3, 0x5]
+ ands r4, r0
+ movs r0, 0x4
+ orrs r4, r0
+ movs r0, 0xF
+ ands r4, r0
+ strb r4, [r3, 0x5]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08100998: .4byte gUnknown_020391AC
+_0810099C: .4byte gUnknown_083EC900
+_081009A0: .4byte 0xfffffe00
+_081009A4: .4byte 0xfffffc00
+ thumb_func_end sub_8100930
+
+ thumb_func_start sub_81009A8
+sub_81009A8: @ 81009A8
+ movs r1, 0
+ strh r1, [r0, 0x32]
+ strh r1, [r0, 0x34]
+ strh r1, [r0, 0x36]
+ strh r1, [r0, 0x38]
+ strh r1, [r0, 0x3A]
+ strh r1, [r0, 0x3C]
+ ldr r1, _081009BC
+ str r1, [r0, 0x1C]
+ bx lr
+ .align 2, 0
+_081009BC: .4byte sub_81009C0
+ thumb_func_end sub_81009A8
+
+ thumb_func_start sub_81009C0
+sub_81009C0: @ 81009C0
+ push {lr}
+ adds r2, r0, 0
+ movs r1, 0x3C
+ ldrsh r0, [r2, r1]
+ cmp r0, 0
+ bne _081009FA
+ movs r1, 0x3A
+ ldrsh r0, [r2, r1]
+ cmp r0, 0xE
+ bgt _081009E2
+ adds r3, r2, 0
+ adds r3, 0x3E
+ ldrb r1, [r3]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ b _081009EC
+_081009E2:
+ adds r3, r2, 0
+ adds r3, 0x3E
+ ldrb r0, [r3]
+ movs r1, 0x4
+ orrs r0, r1
+_081009EC:
+ strb r0, [r3]
+ ldrh r0, [r2, 0x3A]
+ adds r0, 0x1
+ movs r1, 0x1F
+ ands r0, r1
+ strh r0, [r2, 0x3A]
+ b _08100A06
+_081009FA:
+ adds r2, 0x3E
+ ldrb r1, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+_08100A06:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81009C0
+
+ thumb_func_start sub_8100A0C
+sub_8100A0C: @ 8100A0C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r0, r4, 0
+ bl sub_8100D38
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08100A44
+ movs r0, 0x1
+ movs r1, 0
+ bl fade_screen
+ ldr r1, _08100A3C
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0
+ strh r1, [r0, 0xC]
+ ldr r1, _08100A40
+ str r1, [r0]
+ b _08100A50
+ .align 2, 0
+_08100A3C: .4byte gTasks
+_08100A40: .4byte sub_8100E70
+_08100A44:
+ ldr r1, _08100A58
+ ldr r2, _08100A5C
+ adds r0, r4, 0
+ movs r3, 0
+ bl DisplayItemMessageOnField
+_08100A50:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08100A58: .4byte gSecretBaseText_NoDecorInUse
+_08100A5C: .4byte sub_80FE428
+ thumb_func_end sub_8100A0C
+
+ thumb_func_start sub_8100A60
+sub_8100A60: @ 8100A60
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r3, _08100A78
+ ldr r1, [r3]
+ adds r1, r0
+ movs r2, 0
+ strb r2, [r1]
+ ldr r1, [r3, 0x4]
+ adds r1, r0
+ strb r2, [r1]
+ bx lr
+ .align 2, 0
+_08100A78: .4byte 0x0201f000
+ thumb_func_end sub_8100A60
+
+ thumb_func_start sub_8100A7C
+sub_8100A7C: @ 8100A7C
+ push {r4-r6,lr}
+ ldr r6, _08100A9C
+ movs r0, 0
+ strh r0, [r6]
+ ldr r2, _08100AA0
+ strh r0, [r2]
+ ldr r4, _08100AA4
+ ldr r1, _08100AA8
+ ldrh r0, [r4]
+ ldrb r1, [r1]
+ cmp r0, r1
+ bne _08100AB8
+ movs r0, 0x1
+ strh r0, [r2]
+ b _08100B0A
+ .align 2, 0
+_08100A9C: .4byte gUnknown_0202E8CE
+_08100AA0: .4byte gScriptResult
+_08100AA4: .4byte gUnknown_0202E8CC
+_08100AA8: .4byte gUnknown_02039234
+_08100AAC:
+ ldr r1, _08100AB4
+ ldrb r0, [r2]
+ strh r0, [r1]
+ b _08100B0A
+ .align 2, 0
+_08100AB4: .4byte gUnknown_0202E8D0
+_08100AB8:
+ ldr r3, _08100B10
+ ldr r2, _08100B14
+ ldr r1, _08100B18
+ ldrh r0, [r4]
+ lsls r0, 3
+ adds r4, r0, r1
+ ldrb r1, [r4]
+ ldr r0, [r2]
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 5
+ adds r0, r3
+ ldrb r0, [r0, 0x11]
+ cmp r0, 0x4
+ bne _08100B0A
+ ldrh r0, [r4, 0x4]
+ strh r0, [r6]
+ ldrb r0, [r4]
+ bl sub_8100A60
+ movs r1, 0
+ ldr r0, _08100B1C
+ ldr r0, [r0, 0x4]
+ ldrb r2, [r0]
+ cmp r1, r2
+ bcs _08100B0A
+ ldr r5, [r0, 0x4]
+ ldrh r4, [r6]
+ adds r3, r2, 0
+_08100AF2:
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 3
+ adds r2, r0, r5
+ ldrh r0, [r2, 0x14]
+ cmp r0, r4
+ beq _08100AAC
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, r3
+ bcc _08100AF2
+_08100B0A:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08100B10: .4byte gDecorations
+_08100B14: .4byte 0x0201f000
+_08100B18: .4byte gUnknown_020391B4
+_08100B1C: .4byte gMapHeader
+ thumb_func_end sub_8100A7C
+
+ thumb_func_start sub_8100B20
+sub_8100B20: @ 8100B20
+ push {r4-r6,lr}
+ movs r2, 0
+ ldr r0, _08100B4C
+ ldr r0, [r0, 0x4]
+ ldrb r1, [r0]
+ cmp r2, r1
+ bcs _08100B64
+ adds r3, r0, 0
+ ldr r5, [r3, 0x4]
+ ldr r0, _08100B50
+ ldrh r4, [r0]
+ ldr r6, _08100B54
+_08100B38:
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 3
+ adds r1, r0, r5
+ ldrh r0, [r1, 0x14]
+ cmp r0, r4
+ bne _08100B58
+ ldrb r0, [r1]
+ strh r0, [r6]
+ b _08100B64
+ .align 2, 0
+_08100B4C: .4byte gMapHeader
+_08100B50: .4byte gUnknown_0202E8CC
+_08100B54: .4byte gUnknown_0202E8CE
+_08100B58:
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldrb r0, [r3]
+ cmp r2, r0
+ bcc _08100B38
+_08100B64:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8100B20
+
+ thumb_func_start sub_8100B6C
+sub_8100B6C: @ 8100B6C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0xC
+ movs r7, 0
+ b _08100C64
+_08100B7C:
+ lsls r3, r7, 3
+ ldr r0, _08100BE0
+ adds r4, r3, r0
+ ldrb r1, [r4]
+ ldr r2, _08100BE4
+ ldr r0, [r2]
+ adds r0, r1
+ ldrb r6, [r0]
+ lsls r0, r6, 5
+ ldr r5, _08100BE8
+ adds r0, r5
+ ldrb r2, [r0, 0x11]
+ ldr r5, _08100BE4
+ ldr r0, [r5, 0x4]
+ adds r0, r1
+ ldrb r0, [r0]
+ lsrs r1, r0, 4
+ mov r9, r1
+ movs r5, 0xF
+ mov r10, r5
+ mov r1, r10
+ ands r1, r0
+ mov r10, r1
+ adds r5, r3, 0
+ adds r3, r7, 0x1
+ str r3, [sp]
+ cmp r2, 0x4
+ beq _08100C5E
+ cmp r6, 0x29
+ bne _08100BD0
+ mov r0, r9
+ adds r0, 0x7
+ adds r1, 0x7
+ bl MapGridGetMetatileIdAt
+ movs r1, 0xA3
+ lsls r1, 2
+ cmp r0, r1
+ bne _08100BD0
+ ldrb r0, [r4, 0x2]
+ adds r0, 0x1
+ strb r0, [r4, 0x2]
+_08100BD0:
+ movs r6, 0
+ ldr r1, _08100BE0
+ adds r2, r5, 0
+ adds r0, r5, r1
+ adds r3, r7, 0x1
+ str r3, [sp]
+ b _08100C4E
+ .align 2, 0
+_08100BE0: .4byte gUnknown_020391B4
+_08100BE4: .4byte 0x0201f000
+_08100BE8: .4byte gDecorations
+_08100BEC:
+ movs r4, 0
+ adds r0, r2, r1
+ adds r7, r6, 0x1
+ str r7, [sp, 0x4]
+ ldrb r0, [r0, 0x1]
+ cmp r4, r0
+ bcs _08100C42
+ ldr r0, _08100C7C
+ adds r0, r5
+ mov r8, r0
+ subs r1, r6, 0x7
+ str r1, [sp, 0x8]
+_08100C04:
+ adds r0, r4, 0x7
+ add r0, r9
+ ldr r1, _08100C80
+ ldr r3, [r1]
+ mov r7, r10
+ subs r2, r7, r6
+ ldr r1, [r3]
+ muls r2, r1
+ mov r7, r9
+ adds r1, r7, r4
+ adds r1, r2
+ ldr r2, [r3, 0xC]
+ lsls r1, 1
+ adds r1, r2
+ ldrh r1, [r1]
+ movs r3, 0xC0
+ lsls r3, 6
+ adds r2, r3, 0
+ orrs r2, r1
+ mov r7, r10
+ ldr r3, [sp, 0x8]
+ subs r1, r7, r3
+ bl MapGridSetMetatileEntryAt
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ mov r7, r8
+ ldrb r7, [r7, 0x1]
+ cmp r4, r7
+ bcc _08100C04
+_08100C42:
+ ldr r1, [sp, 0x4]
+ lsls r0, r1, 24
+ lsrs r6, r0, 24
+ ldr r1, _08100C7C
+ adds r2, r5, 0
+ adds r0, r5, r1
+_08100C4E:
+ ldrb r0, [r0, 0x2]
+ cmp r6, r0
+ bcc _08100BEC
+ ldr r2, _08100C7C
+ adds r0, r5, r2
+ ldrb r0, [r0]
+ bl sub_8100A60
+_08100C5E:
+ ldr r3, [sp]
+ lsls r0, r3, 24
+ lsrs r7, r0, 24
+_08100C64:
+ ldr r0, _08100C84
+ ldrb r0, [r0]
+ cmp r7, r0
+ bcc _08100B7C
+ add sp, 0xC
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08100C7C: .4byte gUnknown_020391B4
+_08100C80: .4byte gMapHeader
+_08100C84: .4byte gUnknown_02039234
+ thumb_func_end sub_8100B6C
+
+ thumb_func_start sub_8100C88
+sub_8100C88: @ 8100C88
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r1, _08100CAC
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r5, r0, r1
+ movs r1, 0xC
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x1
+ beq _08100CC4
+ cmp r0, 0x1
+ bgt _08100CB0
+ cmp r0, 0
+ beq _08100CBA
+ b _08100D24
+ .align 2, 0
+_08100CAC: .4byte gTasks
+_08100CB0:
+ cmp r0, 0x2
+ beq _08100CF4
+ cmp r0, 0x3
+ beq _08100D08
+ b _08100D24
+_08100CBA:
+ bl sub_8100B6C
+ movs r0, 0x1
+ strh r0, [r5, 0xC]
+ b _08100D24
+_08100CC4:
+ ldr r0, _08100CEC
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _08100D24
+ bl DrawWholeMapView
+ ldr r0, _08100CF0
+ bl ScriptContext1_SetupScript
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ movs r0, 0x2
+ strh r0, [r5, 0xC]
+ b _08100D24
+ .align 2, 0
+_08100CEC: .4byte gPaletteFade
+_08100CF0: .4byte gUnknown_081A2F8A
+_08100CF4:
+ bl ScriptContext2_Enable
+ adds r0, r4, 0
+ bl sub_80FED90
+ bl pal_fill_black
+ movs r0, 0x3
+ strh r0, [r5, 0xC]
+ b _08100D24
+_08100D08:
+ bl sub_807D770
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08100D24
+ ldr r0, _08100D2C
+ strh r0, [r5, 0x22]
+ ldr r1, _08100D30
+ ldr r2, _08100D34
+ adds r0, r4, 0
+ movs r3, 0
+ bl DisplayItemMessageOnField
+_08100D24:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08100D2C: .4byte 0x0000ffff
+_08100D30: .4byte gSecretBaseText_DecorReturned
+_08100D34: .4byte sub_81010F0
+ thumb_func_end sub_8100C88
+
+ thumb_func_start sub_8100D38
+sub_8100D38: @ 8100D38
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ movs r2, 0
+ ldr r0, _08100D68
+ adds r4, r0, 0
+ ldrb r0, [r4, 0x8]
+ cmp r2, r0
+ bcs _08100D7C
+ adds r5, r4, 0
+ ldr r1, _08100D6C
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r0, 3
+ adds r1, r0, r1
+_08100D56:
+ ldr r0, [r5]
+ adds r0, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08100D70
+ strh r2, [r1, 0x22]
+ movs r0, 0x1
+ b _08100D7E
+ .align 2, 0
+_08100D68: .4byte 0x0201f000
+_08100D6C: .4byte gTasks
+_08100D70:
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ ldrb r0, [r4, 0x8]
+ cmp r2, r0
+ bcc _08100D56
+_08100D7C:
+ movs r0, 0
+_08100D7E:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8100D38
+
+ thumb_func_start SetUpPuttingAwayDecorationPlayerAvatar
+SetUpPuttingAwayDecorationPlayerAvatar: @ 8100D84
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ sub sp, 0x4
+ bl player_get_direction_lower_nybble
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ ldr r3, _08100DD8
+ ldr r2, _08100DDC
+ ldr r4, _08100DE0
+ ldr r1, [r4, 0x4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r0, [r0, 0x2E]
+ strb r0, [r3]
+ bl sub_81016C8
+ ldr r0, _08100DE4
+ movs r1, 0x78
+ movs r2, 0x50
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [r4, 0x4]
+ ldr r0, _08100DE8
+ ldrb r0, [r0, 0x8]
+ cmp r0, 0
+ bne _08100DF0
+ ldr r1, _08100DEC
+ str r0, [sp]
+ movs r0, 0xC1
+ b _08100DF8
+ .align 2, 0
+_08100DD8: .4byte gUnknown_020391A8
+_08100DDC: .4byte gSprites
+_08100DE0: .4byte gUnknown_03004880
+_08100DE4: .4byte gSpriteTemplate_83ECA88
+_08100DE8: .4byte gSaveBlock2
+_08100DEC: .4byte SpriteCallbackDummy
+_08100DF0:
+ ldr r1, _08100E5C
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0xC2
+_08100DF8:
+ movs r2, 0x88
+ movs r3, 0x48
+ bl AddPseudoFieldObject
+ ldr r1, _08100E60
+ strb r0, [r1]
+ ldr r6, _08100E64
+ ldr r0, _08100E60
+ ldrb r0, [r0]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r6
+ ldrb r2, [r1, 0x5]
+ movs r4, 0xD
+ negs r4, r4
+ adds r0, r4, 0
+ ands r0, r2
+ movs r2, 0x4
+ mov r8, r2
+ mov r2, r8
+ orrs r0, r2
+ strb r0, [r1, 0x5]
+ ldr r5, _08100E68
+ ldrb r1, [r5]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ bl DestroySprite
+ ldr r0, _08100E6C
+ ldr r0, [r0, 0x4]
+ strb r0, [r5]
+ ldrb r1, [r5]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ ldrb r1, [r0, 0x5]
+ ands r4, r1
+ mov r1, r8
+ orrs r4, r1
+ strb r4, [r0, 0x5]
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08100E5C: .4byte SpriteCallbackDummy
+_08100E60: .4byte gUnknown_020391A9
+_08100E64: .4byte gSprites
+_08100E68: .4byte gUnknown_020391A8
+_08100E6C: .4byte gUnknown_03004880
+ thumb_func_end SetUpPuttingAwayDecorationPlayerAvatar
+
+ thumb_func_start sub_8100E70
+sub_8100E70: @ 8100E70
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, _08100E94
+ adds r4, r0, r1
+ movs r1, 0x4
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ beq _08100EC4
+ cmp r0, 0x1
+ bgt _08100E98
+ cmp r0, 0
+ beq _08100E9E
+ b _08100EE6
+ .align 2, 0
+_08100E94: .4byte gUnknown_03004B28
+_08100E98:
+ cmp r0, 0x2
+ beq _08100ED2
+ b _08100EE6
+_08100E9E:
+ ldr r0, _08100EC0
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _08100EE6
+ adds r0, r5, 0
+ bl sub_80FF0E0
+ movs r0, 0x1
+ strh r0, [r4, 0x4]
+ strh r0, [r4, 0xC]
+ strh r0, [r4, 0xA]
+ bl sub_8072DEC
+ b _08100EE6
+ .align 2, 0
+_08100EC0: .4byte gPaletteFade
+_08100EC4:
+ bl SetUpPuttingAwayDecorationPlayerAvatar
+ bl pal_fill_black
+ movs r0, 0x2
+ strh r0, [r4, 0x4]
+ b _08100EE6
+_08100ED2:
+ bl sub_807D770
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08100EE6
+ strh r0, [r4, 0x18]
+ adds r0, r5, 0
+ bl sub_8100EEC
+_08100EE6:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8100E70
+
+ thumb_func_start sub_8100EEC
+sub_8100EEC: @ 8100EEC
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ ldr r4, _08100F70
+ ldr r3, _08100F74
+ ldrb r1, [r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ movs r6, 0
+ strh r6, [r0, 0x3C]
+ ldrb r1, [r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ adds r0, 0x3E
+ ldrb r2, [r0]
+ movs r1, 0x5
+ negs r1, r1
+ ands r1, r2
+ strb r1, [r0]
+ ldrb r1, [r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r4, 0
+ adds r1, 0x1C
+ adds r0, r1
+ ldr r1, _08100F78
+ str r1, [r0]
+ ldr r2, _08100F7C
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ movs r1, 0x88
+ strh r1, [r0, 0x20]
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ movs r1, 0x48
+ strh r1, [r0, 0x22]
+ ldr r1, _08100F80
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ strh r6, [r0, 0x1C]
+ ldr r1, _08100F84
+ str r1, [r0]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08100F70: .4byte gSprites
+_08100F74: .4byte gUnknown_020391A8
+_08100F78: .4byte sub_8101698
+_08100F7C: .4byte gUnknown_020391A9
+_08100F80: .4byte gTasks
+_08100F84: .4byte sub_8100494
+ thumb_func_end sub_8100EEC
+
+ thumb_func_start sub_8100F88
+sub_8100F88: @ 8100F88
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r1, _08100FB0
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0
+ strh r1, [r0, 0x1C]
+ bl sub_810045C
+ adds r0, r4, 0
+ bl sub_8101024
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08100FB0: .4byte gTasks
+ thumb_func_end sub_8100F88
+
+ thumb_func_start sub_8100FB4
+sub_8100FB4: @ 8100FB4
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r1, _0810100C
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0
+ strh r1, [r0, 0x1C]
+ bl sub_810045C
+ ldr r3, _08101010
+ ldr r5, _08101014
+ ldrb r1, [r5]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ adds r0, 0x3E
+ ldrb r2, [r0]
+ movs r1, 0x5
+ negs r1, r1
+ ands r1, r2
+ strb r1, [r0]
+ ldrb r1, [r5]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r3, 0x1C
+ adds r0, r3
+ ldr r1, _08101018
+ str r1, [r0]
+ ldr r1, _0810101C
+ ldr r2, _08101020
+ adds r0, r4, 0
+ movs r3, 0
+ bl DisplayItemMessageOnField
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810100C: .4byte gTasks
+_08101010: .4byte gSprites
+_08101014: .4byte gUnknown_020391A8
+_08101018: .4byte SpriteCallbackDummy
+_0810101C: .4byte gSecretBaseText_StopPuttingAwayDecor
+_08101020: .4byte sub_810156C
+ thumb_func_end sub_8100FB4
+
+ thumb_func_start sub_8101024
+sub_8101024: @ 8101024
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r0, r5, 0
+ bl sub_8101460
+ ldr r0, _08101040
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0810104C
+ ldr r1, _08101044
+ ldr r2, _08101048
+ b _081010B0
+ .align 2, 0
+_08101040: .4byte gUnknown_02039234
+_08101044: .4byte gSecretBaseText_ReturnDecor
+_08101048: .4byte sub_8101518
+_0810104C:
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ ldr r0, _081010BC
+ adds r1, r0
+ movs r2, 0
+ ldrsh r0, [r1, r2]
+ movs r2, 0x2
+ ldrsh r1, [r1, r2]
+ bl MapGridGetMetatileBehaviorAt
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r0, r4, 0
+ bl sub_8057238
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _08101082
+ adds r0, r4, 0
+ bl sub_805738C
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _081010D4
+_08101082:
+ ldr r3, _081010C0
+ ldr r4, _081010C4
+ ldrb r1, [r4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ adds r0, 0x3E
+ ldrb r2, [r0]
+ movs r1, 0x5
+ negs r1, r1
+ ands r1, r2
+ strb r1, [r0]
+ ldrb r1, [r4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r3, 0x1C
+ adds r0, r3
+ ldr r1, _081010C8
+ str r1, [r0]
+ ldr r1, _081010CC
+ ldr r2, _081010D0
+_081010B0:
+ adds r0, r5, 0
+ movs r3, 0
+ bl DisplayItemMessageOnField
+ b _081010E0
+ .align 2, 0
+_081010BC: .4byte gUnknown_03004B28
+_081010C0: .4byte gSprites
+_081010C4: .4byte gUnknown_020391A8
+_081010C8: .4byte SpriteCallbackDummy
+_081010CC: .4byte gSecretBaseText_StopPuttingAwayDecor
+_081010D0: .4byte sub_810156C
+_081010D4:
+ ldr r1, _081010E8
+ ldr r2, _081010EC
+ adds r0, r5, 0
+ movs r3, 0
+ bl DisplayItemMessageOnField
+_081010E0:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081010E8: .4byte gSecretBaseText_NoDecor
+_081010EC: .4byte sub_81010F0
+ thumb_func_end sub_8101024
+
+ thumb_func_start sub_81010F0
+sub_81010F0: @ 81010F0
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r0, _08101114
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _0810110A
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _08101110
+_0810110A:
+ adds r0, r2, 0
+ bl sub_8100EEC
+_08101110:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08101114: .4byte gMain
+ thumb_func_end sub_81010F0
+
+ thumb_func_start sub_8101118
+sub_8101118: @ 8101118
+ push {lr}
+ adds r2, r1, 0
+ lsls r0, 24
+ ldr r1, _08101130
+ lsrs r0, 19
+ adds r0, r1
+ ldrb r1, [r0, 0x12]
+ cmp r1, 0
+ bne _08101134
+ movs r0, 0x1
+ strb r0, [r2, 0x1]
+ b _08101192
+ .align 2, 0
+_08101130: .4byte gDecorations
+_08101134:
+ cmp r1, 0x1
+ bne _08101140
+ movs r0, 0x2
+ strb r0, [r2, 0x1]
+ strb r1, [r2, 0x2]
+ b _08101194
+_08101140:
+ cmp r1, 0x2
+ bne _0810114C
+ movs r0, 0x3
+ strb r0, [r2, 0x1]
+ movs r0, 0x1
+ b _08101192
+_0810114C:
+ cmp r1, 0x3
+ bne _08101154
+ movs r0, 0x4
+ b _0810118E
+_08101154:
+ cmp r1, 0x4
+ bne _0810115E
+ movs r0, 0x2
+ strb r0, [r2, 0x1]
+ b _08101192
+_0810115E:
+ cmp r1, 0x5
+ bne _08101166
+ movs r0, 0x1
+ b _0810118E
+_08101166:
+ cmp r1, 0x6
+ bne _08101172
+ movs r0, 0x1
+ strb r0, [r2, 0x1]
+ movs r0, 0x3
+ b _08101192
+_08101172:
+ cmp r1, 0x7
+ bne _0810117E
+ movs r0, 0x2
+ strb r0, [r2, 0x1]
+ movs r0, 0x4
+ b _08101192
+_0810117E:
+ cmp r1, 0x8
+ bne _08101188
+ movs r0, 0x3
+ strb r0, [r2, 0x1]
+ b _08101192
+_08101188:
+ cmp r1, 0x9
+ bne _08101194
+ movs r0, 0x3
+_0810118E:
+ strb r0, [r2, 0x1]
+ movs r0, 0x2
+_08101192:
+ strb r0, [r2, 0x2]
+_08101194:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8101118
+
+ thumb_func_start sub_8101198
+sub_8101198: @ 8101198
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsls r1, 24
+ ldr r5, _081011F0
+ ldr r6, _081011F4
+ ldrb r3, [r6]
+ lsls r2, r3, 4
+ adds r2, r3
+ lsls r2, 2
+ adds r2, r5
+ adds r2, 0x3E
+ ldrb r3, [r2]
+ movs r4, 0x4
+ orrs r3, r4
+ strb r3, [r2]
+ ldrb r3, [r6]
+ lsls r2, r3, 4
+ adds r2, r3
+ lsls r2, 2
+ adds r3, r5, 0
+ adds r3, 0x1C
+ adds r2, r3
+ ldr r3, _081011F8
+ str r3, [r2]
+ ldr r4, _081011FC
+ ldrb r3, [r4]
+ lsls r2, r3, 4
+ adds r2, r3
+ lsls r2, 2
+ adds r2, r5
+ lsrs r0, 20
+ adds r0, 0x88
+ strh r0, [r2, 0x20]
+ ldrb r2, [r4]
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r5
+ lsrs r1, 20
+ adds r1, 0x48
+ strh r1, [r0, 0x22]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081011F0: .4byte gSprites
+_081011F4: .4byte gUnknown_020391A8
+_081011F8: .4byte SpriteCallbackDummy
+_081011FC: .4byte gUnknown_020391A9
+ thumb_func_end sub_8101198
+
+ thumb_func_start sub_8101200
+sub_8101200: @ 8101200
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r6, r2, 0
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r3, _0810128C
+ lsls r2, r0, 2
+ adds r2, r0
+ lsls r2, 3
+ adds r2, r3
+ ldrb r0, [r2, 0x8]
+ subs r0, 0x7
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldrb r0, [r2, 0xA]
+ subs r0, 0x7
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ ldr r2, _08101290
+ ldr r0, [r2, 0x4]
+ adds r0, r1
+ ldrb r0, [r0]
+ lsrs r4, r0, 4
+ movs r5, 0xF
+ ands r5, r0
+ ldr r0, [r2]
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x29
+ bne _0810125A
+ adds r0, r4, 0x7
+ adds r1, r5, 0x7
+ bl MapGridGetMetatileIdAt
+ movs r1, 0xA3
+ lsls r1, 2
+ cmp r0, r1
+ bne _0810125A
+ ldrb r0, [r6, 0x2]
+ subs r0, 0x1
+ strb r0, [r6, 0x2]
+_0810125A:
+ cmp r7, r4
+ bcc _08101294
+ ldrb r1, [r6, 0x1]
+ adds r0, r4, r1
+ cmp r7, r0
+ bge _08101294
+ ldrb r0, [r6, 0x2]
+ subs r0, r5, r0
+ cmp r8, r0
+ ble _08101294
+ cmp r8, r5
+ bhi _08101294
+ subs r0, r7, r4
+ adds r0, 0x1
+ subs r0, r1, r0
+ lsls r0, 24
+ lsrs r0, 24
+ mov r2, r8
+ subs r1, r5, r2
+ lsls r1, 24
+ lsrs r1, 24
+ bl sub_8101198
+ movs r0, 0x1
+ b _08101296
+ .align 2, 0
+_0810128C: .4byte gTasks
+_08101290: .4byte 0x0201f000
+_08101294:
+ movs r0, 0
+_08101296:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8101200
+
+ thumb_func_start sub_81012A0
+sub_81012A0: @ 81012A0
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ ldr r2, _0810130C
+ ldr r3, _08101310
+ ldr r0, _08101314
+ ldrb r0, [r0]
+ lsls r0, 3
+ adds r0, r3
+ ldrb r1, [r0]
+ ldr r0, [r2, 0x4]
+ adds r0, r1
+ ldrb r0, [r0]
+ lsrs r7, r0, 4
+ movs r6, 0xF
+ ands r6, r0
+ movs r5, 0
+ ldr r0, _08101318
+ mov r8, r0
+ mov r9, r3
+_081012CA:
+ lsls r0, r5, 1
+ adds r0, r5
+ lsls r0, 3
+ mov r2, r8
+ adds r1, r0, r2
+ ldr r2, _0810131C
+ adds r0, r1, r2
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ cmp r0, r7
+ bne _08101328
+ ldr r2, _08101320
+ adds r0, r1, r2
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ cmp r0, r6
+ bne _08101328
+ ldr r0, _08101324
+ adds r4, r1, r0
+ ldrh r0, [r4]
+ bl FlagGet
+ lsls r0, 24
+ cmp r0, 0
+ bne _08101328
+ ldr r0, _08101314
+ ldrb r0, [r0]
+ lsls r0, 3
+ add r0, r9
+ ldrh r1, [r4]
+ strh r1, [r0, 0x4]
+ b _08101332
+ .align 2, 0
+_0810130C: .4byte 0x0201f000
+_08101310: .4byte gUnknown_020391B4
+_08101314: .4byte gUnknown_02039234
+_08101318: .4byte gSaveBlock1
+_0810131C: .4byte 0x00000c24
+_08101320: .4byte 0x00000c26
+_08101324: .4byte 0x00000c34
+_08101328:
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x3F
+ bls _081012CA
+_08101332:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81012A0
+
+ thumb_func_start sub_8101340
+sub_8101340: @ 8101340
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r7, r0, 24
+ movs r6, 0
+ b _081013A2
+_0810134A:
+ ldr r0, [r0]
+ adds r1, r0, r6
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _0810139C
+ ldr r0, _08101390
+ ldrb r2, [r1]
+ lsls r1, r2, 5
+ adds r1, r0
+ ldrb r0, [r1, 0x11]
+ cmp r0, 0x4
+ bne _0810139C
+ ldr r5, _08101394
+ adds r0, r2, 0
+ adds r1, r5, 0
+ bl sub_8101118
+ lsls r1, r6, 24
+ lsrs r1, 24
+ adds r0, r7, 0
+ adds r2, r5, 0
+ bl sub_8101200
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x1
+ bne _0810139C
+ strb r6, [r5]
+ bl sub_81012A0
+ ldr r0, _08101398
+ strb r4, [r0]
+ movs r0, 0x1
+ b _081013AC
+ .align 2, 0
+_08101390: .4byte gDecorations
+_08101394: .4byte gUnknown_020391B4
+_08101398: .4byte gUnknown_02039234
+_0810139C:
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+_081013A2:
+ ldr r0, _081013B4
+ ldrb r1, [r0, 0x8]
+ cmp r6, r1
+ bcc _0810134A
+ movs r0, 0
+_081013AC:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_081013B4: .4byte 0x0201f000
+ thumb_func_end sub_8101340
+
+ thumb_func_start sub_81013B8
+sub_81013B8: @ 81013B8
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp]
+ lsls r1, 24
+ lsrs r1, 24
+ mov r10, r1
+ lsls r2, 24
+ lsrs r2, 24
+ mov r9, r2
+ lsls r3, 24
+ lsrs r3, 24
+ mov r8, r3
+ movs r4, 0
+ ldr r7, _08101450
+ ldrb r0, [r7, 0x8]
+ cmp r4, r0
+ bcs _0810143E
+ adds r6, r7, 0
+ ldr r5, _08101454
+_081013EA:
+ ldr r0, [r6]
+ adds r0, r4
+ ldrb r1, [r0]
+ ldr r0, [r6, 0x4]
+ adds r0, r4
+ ldrb r0, [r0]
+ lsrs r3, r0, 4
+ movs r2, 0xF
+ ands r2, r0
+ cmp r1, 0
+ beq _08101432
+ ldr r0, _08101458
+ lsls r1, 5
+ adds r1, r0
+ ldrb r0, [r1, 0x11]
+ cmp r0, 0x4
+ bne _08101432
+ ldr r0, [sp]
+ cmp r0, r3
+ bhi _08101432
+ cmp r10, r2
+ bhi _08101432
+ cmp r9, r3
+ bcc _08101432
+ cmp r8, r2
+ bcc _08101432
+ ldr r0, _0810145C
+ ldrb r1, [r5]
+ lsls r1, 3
+ adds r1, r0
+ strb r4, [r1]
+ bl sub_81012A0
+ ldrb r0, [r5]
+ adds r0, 0x1
+ strb r0, [r5]
+_08101432:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldrb r0, [r7, 0x8]
+ cmp r4, r0
+ bcc _081013EA
+_0810143E:
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08101450: .4byte 0x0201f000
+_08101454: .4byte gUnknown_02039234
+_08101458: .4byte gDecorations
+_0810145C: .4byte gUnknown_020391B4
+ thumb_func_end sub_81013B8
+
+ thumb_func_start sub_8101460
+sub_8101460: @ 8101460
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r4, _081014B8
+ movs r0, 0
+ strb r0, [r4]
+ adds r0, r6, 0
+ bl sub_8101340
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _08101504
+ movs r5, 0
+ ldr r0, _081014BC
+ ldrb r1, [r0, 0x8]
+ cmp r5, r1
+ bcs _081014D2
+ adds r7, r4, 0
+_08101486:
+ ldr r0, [r0]
+ adds r0, r5
+ ldrb r1, [r0]
+ cmp r1, 0
+ beq _081014C4
+ ldr r4, _081014C0
+ adds r0, r1, 0
+ adds r1, r4, 0
+ bl sub_8101118
+ adds r0, r6, 0
+ adds r1, r5, 0
+ adds r2, r4, 0
+ bl sub_8101200
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _081014C4
+ strb r5, [r4]
+ ldrb r0, [r7]
+ adds r0, 0x1
+ strb r0, [r7]
+ b _081014D2
+ .align 2, 0
+_081014B8: .4byte gUnknown_02039234
+_081014BC: .4byte 0x0201f000
+_081014C0: .4byte gUnknown_020391B4
+_081014C4:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, _0810150C
+ ldrb r1, [r0, 0x8]
+ cmp r5, r1
+ bcc _08101486
+_081014D2:
+ ldr r0, _08101510
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08101504
+ ldr r0, _0810150C
+ ldr r2, _08101514
+ ldrb r1, [r2]
+ ldr r0, [r0, 0x4]
+ adds r0, r1
+ ldrb r1, [r0]
+ lsrs r0, r1, 4
+ movs r3, 0xF
+ ands r3, r1
+ ldrb r1, [r2, 0x2]
+ subs r1, r3, r1
+ adds r1, 0x1
+ lsls r1, 24
+ lsrs r1, 24
+ ldrb r2, [r2, 0x1]
+ adds r2, r0
+ subs r2, 0x1
+ lsls r2, 24
+ lsrs r2, 24
+ bl sub_81013B8
+_08101504:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810150C: .4byte 0x0201f000
+_08101510: .4byte gUnknown_02039234
+_08101514: .4byte gUnknown_020391B4
+ thumb_func_end sub_8101460
+
+ thumb_func_start sub_8101518
+sub_8101518: @ 8101518
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x14
+ movs r1, 0x8
+ movs r2, 0x1
+ bl DisplayYesNoMenu
+ ldr r1, _08101538
+ adds r0, r4, 0
+ bl sub_80F914C
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08101538: .4byte gUnknown_083EC9CC
+ thumb_func_end sub_8101518
+
+ thumb_func_start sub_810153C
+sub_810153C: @ 810153C
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x1
+ movs r1, 0
+ bl fade_screen
+ ldr r1, _08101564
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0
+ strh r1, [r0, 0xC]
+ ldr r1, _08101568
+ str r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08101564: .4byte gTasks
+_08101568: .4byte sub_8100C88
+ thumb_func_end sub_810153C
+
+ thumb_func_start sub_810156C
+sub_810156C: @ 810156C
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x14
+ movs r1, 0x8
+ movs r2, 0x1
+ bl DisplayYesNoMenu
+ ldr r1, _0810158C
+ adds r0, r4, 0
+ bl sub_80F914C
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810158C: .4byte gUnknown_083EC9D4
+ thumb_func_end sub_810156C
+
+ thumb_func_start sub_8101590
+sub_8101590: @ 8101590
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ adds r0, r4, 0
+ bl sub_81015B0
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8101590
+
+ thumb_func_start sub_81015B0
+sub_81015B0: @ 81015B0
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x1
+ movs r1, 0
+ bl fade_screen
+ ldr r1, _081015D8
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0
+ strh r1, [r0, 0xC]
+ ldr r1, _081015DC
+ str r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081015D8: .4byte gTasks
+_081015DC: .4byte sub_81015E0
+ thumb_func_end sub_81015B0
+
+ thumb_func_start sub_81015E0
+sub_81015E0: @ 81015E0
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r1, _08101600
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r5, r0, r1
+ movs r1, 0xC
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ beq _08101604
+ cmp r0, 0x1
+ beq _08101620
+ b _08101636
+ .align 2, 0
+_08101600: .4byte gTasks
+_08101604:
+ ldr r0, _0810161C
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _08101636
+ adds r0, r4, 0
+ bl sub_80FF114
+ movs r0, 0x1
+ strh r0, [r5, 0xC]
+ b _08101636
+ .align 2, 0
+_0810161C: .4byte gPaletteFade
+_08101620:
+ bl sub_81016F4
+ ldr r0, _0810163C
+ ldr r1, _08101640
+ str r1, [r0]
+ ldr r0, _08101644
+ bl SetMainCallback2
+ adds r0, r4, 0
+ bl DestroyTask
+_08101636:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810163C: .4byte gUnknown_0300485C
+_08101640: .4byte sub_8101678
+_08101644: .4byte c2_exit_to_overworld_2_switch
+ thumb_func_end sub_81015E0
+
+ thumb_func_start sub_8101648
+sub_8101648: @ 8101648
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_807D770
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08101668
+ ldr r0, _08101670
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _08101674
+ str r0, [r1]
+_08101668:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08101670: .4byte gTasks
+_08101674: .4byte sub_80FE2EC
+ thumb_func_end sub_8101648
+
+ thumb_func_start sub_8101678
+sub_8101678: @ 8101678
+ push {lr}
+ bl pal_fill_black
+ bl MenuDisplayMessageBox
+ bl sub_80FE220
+ ldr r0, _08101694
+ movs r1, 0x8
+ bl CreateTask
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08101694: .4byte sub_8101648
+ thumb_func_end sub_8101678
+
+ thumb_func_start sub_8101698
+sub_8101698: @ 8101698
+ push {lr}
+ adds r2, r0, 0
+ ldrh r0, [r2, 0x2E]
+ adds r0, 0x1
+ movs r1, 0x1F
+ ands r0, r1
+ strh r0, [r2, 0x2E]
+ cmp r0, 0xF
+ ble _081016B8
+ adds r0, r2, 0
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+ b _081016C4
+_081016B8:
+ adds r2, 0x3E
+ ldrb r1, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+_081016C4:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8101698
+
+ thumb_func_start sub_81016C8
+sub_81016C8: @ 81016C8
+ push {lr}
+ ldr r0, _081016DC
+ ldrb r0, [r0, 0x8]
+ cmp r0, 0
+ bne _081016E4
+ ldr r0, _081016E0
+ bl LoadSpritePalette
+ b _081016EA
+ .align 2, 0
+_081016DC: .4byte gSaveBlock2
+_081016E0: .4byte gUnknown_083ECA5C
+_081016E4:
+ ldr r0, _081016F0
+ bl LoadSpritePalette
+_081016EA:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081016F0: .4byte gUnknown_083ECA64
+ thumb_func_end sub_81016C8
+
+ thumb_func_start sub_81016F4
+sub_81016F4: @ 81016F4
+ push {lr}
+ movs r0, 0x8
+ bl FreeSpritePaletteByTag
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81016F4
+
+ thumb_func_start sub_8101700
+sub_8101700: @ 8101700
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_81341D4
+ lsls r0, 24
+ cmp r0, 0
+ bne _08101728
+ ldr r1, _08101720
+ ldr r2, _08101724
+ adds r0, r4, 0
+ movs r3, 0
+ bl DisplayItemMessageOnField
+ b _08101742
+ .align 2, 0
+_08101720: .4byte gSecretBaseText_NoDecors
+_08101724: .4byte sub_80FE428
+_08101728:
+ ldr r1, _08101748
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ movs r2, 0
+ movs r1, 0x1
+ strh r1, [r0, 0x1E]
+ ldr r0, _0810174C
+ strb r2, [r0]
+ adds r0, r4, 0
+ bl sub_80FE5AC
+_08101742:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08101748: .4byte gTasks
+_0810174C: .4byte gUnknown_020388F6
+ thumb_func_end sub_8101700
+
+ thumb_func_start unref_sub_8101750
+unref_sub_8101750: @ 8101750
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_81341D4
+ lsls r0, 24
+ cmp r0, 0
+ bne _08101778
+ ldr r1, _08101770
+ ldr r2, _08101774
+ adds r0, r4, 0
+ movs r3, 0
+ bl DisplayItemMessageOnField
+ b _08101792
+ .align 2, 0
+_08101770: .4byte gSecretBaseText_NoDecors
+_08101774: .4byte sub_80FE428
+_08101778:
+ ldr r1, _08101798
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ movs r2, 0
+ movs r1, 0x2
+ strh r1, [r0, 0x1E]
+ ldr r0, _0810179C
+ strb r2, [r0]
+ adds r0, r4, 0
+ bl sub_80FE5AC
+_08101792:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08101798: .4byte gTasks
+_0810179C: .4byte gUnknown_020388F6
+ thumb_func_end unref_sub_8101750
+
+ thumb_func_start sub_81017A0
+sub_81017A0: @ 81017A0
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ bl sub_80FEF74
+ bl sub_80FED1C
+ bl sub_80FEFA4
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08101808
+ ldr r0, _081017EC
+ ldr r1, _081017F0
+ ldrb r2, [r1]
+ ldr r1, _081017F4
+ ldr r1, [r1]
+ adds r1, r2
+ ldrb r1, [r1]
+ lsls r1, 5
+ ldr r2, _081017F8
+ adds r1, r2
+ bl StringCopy
+ ldr r4, _081017FC
+ ldr r1, _08101800
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ ldr r2, _08101804
+ adds r0, r5, 0
+ adds r1, r4, 0
+ movs r3, 0
+ bl DisplayItemMessageOnField
+ b _08101814
+ .align 2, 0
+_081017EC: .4byte gStringVar1
+_081017F0: .4byte gUnknown_020388F5
+_081017F4: .4byte gUnknown_020388D0
+_081017F8: .4byte gDecorations + 0x1
+_081017FC: .4byte gStringVar4
+_08101800: .4byte gSecretBaseText_WillBeDiscarded
+_08101804: .4byte sub_8101824
+_08101808:
+ ldr r1, _0810181C
+ ldr r2, _08101820
+ adds r0, r5, 0
+ movs r3, 0
+ bl DisplayItemMessageOnField
+_08101814:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810181C: .4byte gSecretBaseText_DecorInUse
+_08101820: .4byte sub_80FEFF4
+ thumb_func_end sub_81017A0
+
+ thumb_func_start sub_8101824
+sub_8101824: @ 8101824
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x14
+ movs r1, 0x8
+ movs r2, 0x1
+ bl DisplayYesNoMenu
+ ldr r1, _08101844
+ adds r0, r4, 0
+ bl sub_80F914C
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08101844: .4byte gUnknown_083ECAA0
+ thumb_func_end sub_8101824
+
+ thumb_func_start sub_8101848
+sub_8101848: @ 8101848
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x14
+ movs r1, 0x8
+ movs r2, 0x1A
+ movs r3, 0xE
+ bl MenuZeroFillWindowRect
+ ldr r6, _08101890
+ ldrb r1, [r6]
+ ldr r5, _08101894
+ ldr r0, [r5]
+ adds r0, r1
+ ldrb r0, [r0]
+ bl sub_8109A30
+ ldrb r1, [r6]
+ ldr r0, [r5]
+ adds r0, r1
+ movs r1, 0
+ strb r1, [r0]
+ adds r0, r4, 0
+ bl sub_80FF098
+ ldr r1, _08101898
+ ldr r2, _0810189C
+ adds r0, r4, 0
+ movs r3, 0
+ bl DisplayItemMessageOnField
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08101890: .4byte gUnknown_020388F5
+_08101894: .4byte gUnknown_020388D0
+_08101898: .4byte gSecretBaseText_DecorThrownAway
+_0810189C: .4byte sub_80FEFF4
+ thumb_func_end sub_8101848
+
+ thumb_func_start sub_81018A0
+sub_81018A0: @ 81018A0
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_81019B0
+ ldr r0, _081018B4
+ bl SetMainCallback2
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081018B4: .4byte sub_81018B8
+ thumb_func_end sub_81018A0
+
+ thumb_func_start sub_81018B8
+sub_81018B8: @ 81018B8
+ push {lr}
+ ldr r0, _081018D0
+ ldr r1, _081018D4
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x6
+ bhi _0810194A
+ lsls r0, 2
+ ldr r1, _081018D8
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_081018D0: .4byte gMain
+_081018D4: .4byte 0x0000043c
+_081018D8: .4byte _081018DC
+ .align 2, 0
+_081018DC:
+ .4byte _081018F8
+ .4byte _08101902
+ .4byte _08101908
+ .4byte _08101912
+ .4byte _08101918
+ .4byte _0810191E
+ .4byte _08101938
+_081018F8:
+ bl sub_8101A28
+ bl sub_8101BA4
+ b _08101922
+_08101902:
+ bl sub_8101A8C
+ b _08101922
+_08101908:
+ bl sub_8101AE0
+ bl sub_8101B04
+ b _08101922
+_08101912:
+ bl sub_8101C84
+ b _08101922
+_08101918:
+ bl sub_8101CA0
+ b _08101922
+_0810191E:
+ bl sub_8101CC0
+_08101922:
+ ldr r1, _08101930
+ ldr r0, _08101934
+ adds r1, r0
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _0810194A
+ .align 2, 0
+_08101930: .4byte gMain
+_08101934: .4byte 0x0000043c
+_08101938:
+ bl sub_8101CD4
+ bl sub_8101CEC
+ bl sub_8101A44
+ ldr r0, _08101950
+ bl SetMainCallback2
+_0810194A:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08101950: .4byte sub_8101954
+ thumb_func_end sub_81018B8
+
+ thumb_func_start sub_8101954
+sub_8101954: @ 8101954
+ push {lr}
+ bl RunTasks
+ bl AnimateSprites
+ bl BuildOamBuffer
+ bl UpdatePaletteFade
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8101954
+
+ thumb_func_start sub_810196C
+sub_810196C: @ 810196C
+ push {lr}
+ bl LoadOam
+ bl ProcessSpriteCopyRequests
+ bl TransferPlttBuffer
+ ldr r1, _081019A8
+ ldr r2, _081019AC
+ adds r0, r2, 0
+ adds r0, 0x58
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, 0x4
+ adds r0, r2, 0
+ adds r0, 0x5A
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, 0x4
+ adds r0, r2, 0
+ adds r0, 0x5C
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, 0x2
+ adds r0, r2, 0
+ adds r0, 0x5E
+ ldrh r0, [r0]
+ strh r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081019A8: .4byte REG_WIN0H
+_081019AC: .4byte 0x02000000
+ thumb_func_end sub_810196C
+
+ thumb_func_start sub_81019B0
+sub_81019B0: @ 81019B0
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _081019E4
+ movs r1, 0xFF
+ bl CreateTask
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ ldr r1, _081019E8
+ adds r0, r1
+ strh r4, [r0, 0x8]
+ adds r0, 0xA
+ adds r1, r5, 0
+ bl StoreWordInTwoHalfwords
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081019E4: .4byte nullsub_67
+_081019E8: .4byte gTasks
+ thumb_func_end sub_81019B0
+
+ thumb_func_start sub_81019EC
+sub_81019EC: @ 81019EC
+ push {lr}
+ ldr r0, _08101A18
+ bl FindTaskIdByFunc
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r2, r0, 2
+ adds r2, r0
+ lsls r2, 3
+ ldr r0, _08101A1C
+ adds r2, r0
+ ldr r1, _08101A20
+ ldrh r0, [r2, 0x8]
+ strb r0, [r1, 0x1]
+ adds r2, 0xA
+ adds r1, 0x64
+ adds r0, r2, 0
+ bl LoadWordFromTwoHalfwords
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08101A18: .4byte nullsub_67
+_08101A1C: .4byte gTasks
+_08101A20: .4byte 0x02000000
+ thumb_func_end sub_81019EC
+
+ thumb_func_start nullsub_67
+nullsub_67: @ 8101A24
+ bx lr
+ thumb_func_end nullsub_67
+
+ thumb_func_start sub_8101A28
+sub_8101A28: @ 8101A28
+ push {lr}
+ movs r0, 0
+ bl SetVBlankCallback
+ movs r0, 0
+ bl SetHBlankCallback
+ movs r1, 0x80
+ lsls r1, 19
+ movs r0, 0
+ strh r0, [r1]
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8101A28
+
+ thumb_func_start sub_8101A44
+sub_8101A44: @ 8101A44
+ push {r4,lr}
+ ldr r0, _08101A7C
+ bl SetVBlankCallback
+ ldr r3, _08101A80
+ ldrh r2, [r3]
+ movs r0, 0
+ strh r0, [r3]
+ ldr r4, _08101A84
+ ldrh r0, [r4]
+ movs r1, 0x1
+ orrs r0, r1
+ strh r0, [r4]
+ strh r2, [r3]
+ ldr r2, _08101A88
+ ldrh r0, [r2]
+ movs r1, 0x8
+ orrs r0, r1
+ strh r0, [r2]
+ movs r1, 0x80
+ lsls r1, 19
+ movs r2, 0xFD
+ lsls r2, 6
+ adds r0, r2, 0
+ strh r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08101A7C: .4byte sub_810196C
+_08101A80: .4byte 0x04000208
+_08101A84: .4byte 0x04000200
+_08101A88: .4byte REG_DISPSTAT
+ thumb_func_end sub_8101A44
+
+ thumb_func_start sub_8101A8C
+sub_8101A8C: @ 8101A8C
+ push {r4-r7,lr}
+ sub sp, 0x4
+ movs r2, 0xC0
+ lsls r2, 19
+ movs r3, 0x80
+ lsls r3, 9
+ mov r4, sp
+ movs r6, 0
+ ldr r1, _08101AD8
+ movs r5, 0x80
+ lsls r5, 5
+ ldr r7, _08101ADC
+ movs r0, 0x81
+ lsls r0, 24
+ mov r12, r0
+_08101AAA:
+ strh r6, [r4]
+ mov r0, sp
+ str r0, [r1]
+ str r2, [r1, 0x4]
+ str r7, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ adds r2, r5
+ subs r3, r5
+ cmp r3, r5
+ bhi _08101AAA
+ strh r6, [r4]
+ mov r0, sp
+ str r0, [r1]
+ str r2, [r1, 0x4]
+ lsrs r0, r3, 1
+ mov r2, r12
+ orrs r0, r2
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08101AD8: .4byte 0x040000d4
+_08101ADC: .4byte 0x81000800
+ thumb_func_end sub_8101A8C
+
+ thumb_func_start sub_8101AE0
+sub_8101AE0: @ 8101AE0
+ sub sp, 0x4
+ movs r2, 0xE0
+ lsls r2, 19
+ mov r1, sp
+ movs r0, 0
+ strh r0, [r1]
+ ldr r0, _08101AFC
+ str r1, [r0]
+ str r2, [r0, 0x4]
+ ldr r1, _08101B00
+ str r1, [r0, 0x8]
+ ldr r0, [r0, 0x8]
+ add sp, 0x4
+ bx lr
+ .align 2, 0
+_08101AFC: .4byte 0x040000d4
+_08101B00: .4byte 0x81000200
+ thumb_func_end sub_8101AE0
+
+ thumb_func_start sub_8101B04
+sub_8101B04: @ 8101B04
+ push {r4,r5,lr}
+ ldr r5, _08101B70
+ movs r1, 0
+ strh r1, [r5]
+ ldr r2, _08101B74
+ strh r1, [r2]
+ ldr r3, _08101B78
+ strh r1, [r3]
+ ldr r4, _08101B7C
+ strh r1, [r4]
+ ldr r0, _08101B80
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ ldr r1, _08101B84
+ adds r0, r1, 0
+ strh r0, [r5]
+ ldr r1, _08101B88
+ adds r0, r1, 0
+ strh r0, [r2]
+ ldr r2, _08101B8C
+ adds r0, r2, 0
+ strh r0, [r3]
+ ldr r1, _08101B90
+ adds r0, r1, 0
+ strh r0, [r4]
+ ldr r0, _08101B94
+ movs r1, 0x3F
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ ldr r1, _08101B98
+ ldr r2, _08101B9C
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r2, _08101BA0
+ adds r0, r2, 0
+ strh r0, [r1]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08101B70: .4byte REG_BG0CNT
+_08101B74: .4byte REG_BG1CNT
+_08101B78: .4byte REG_BG2CNT
+_08101B7C: .4byte REG_BG3CNT
+_08101B80: .4byte REG_BG0HOFS
+_08101B84: .4byte 0x00001f08
+_08101B88: .4byte 0x00001c01
+_08101B8C: .4byte 0x00001d02
+_08101B90: .4byte 0x00001e02
+_08101B94: .4byte REG_WININ
+_08101B98: .4byte REG_BLDCNT
+_08101B9C: .4byte 0x00001048
+_08101BA0: .4byte 0x00000809
+ thumb_func_end sub_8101B04
+
+ thumb_func_start sub_8101BA4
+sub_8101BA4: @ 8101BA4
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ bl sub_81019EC
+ ldr r5, _08101C74
+ movs r4, 0
+ strb r4, [r5]
+ strb r4, [r5, 0x2]
+ bl Random
+ movs r1, 0x1
+ ands r1, r0
+ strb r1, [r5, 0x3]
+ strb r4, [r5, 0x4]
+ movs r0, 0
+ strh r4, [r5, 0x8]
+ strb r0, [r5, 0xA]
+ strb r0, [r5, 0xB]
+ ldr r0, _08101C78
+ ldr r1, _08101C7C
+ adds r0, r1
+ ldrh r0, [r0]
+ strh r0, [r5, 0xC]
+ strh r4, [r5, 0xE]
+ strh r4, [r5, 0x10]
+ strh r4, [r5, 0x12]
+ strh r4, [r5, 0x18]
+ movs r0, 0x8
+ strh r0, [r5, 0x1A]
+ adds r1, r5, 0
+ adds r1, 0x58
+ movs r0, 0xF0
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r0, 0xA0
+ strh r0, [r1]
+ adds r0, r5, 0
+ adds r0, 0x5C
+ movs r1, 0x3F
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ bl GetCurrentMapMusic
+ adds r1, r5, 0
+ adds r1, 0x60
+ strh r0, [r1]
+ movs r7, 0
+ adds r6, r5, 0
+ ldr r2, _08101C80
+ mov r9, r2
+ movs r0, 0x1C
+ adds r0, r6
+ mov r8, r0
+_08101C14:
+ lsls r5, r7, 1
+ adds r0, r6, 0
+ adds r0, 0x22
+ adds r0, r5, r0
+ movs r1, 0
+ strh r1, [r0]
+ adds r4, r6, 0
+ adds r4, 0x28
+ adds r4, r5, r4
+ ldrb r0, [r6, 0x3]
+ lsls r0, 1
+ lsls r1, r7, 2
+ adds r0, r1
+ add r0, r9
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ movs r1, 0x15
+ bl __modsi3
+ strh r0, [r4]
+ add r5, r8
+ movs r2, 0
+ ldrsh r0, [r4, r2]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 3
+ movs r2, 0xFC
+ lsls r2, 1
+ adds r0, r2, 0
+ subs r0, r1
+ strh r0, [r5]
+ movs r1, 0
+ ldrsh r0, [r5, r1]
+ adds r1, r2, 0
+ bl __modsi3
+ strh r0, [r5]
+ adds r0, r7, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+ cmp r7, 0x2
+ bls _08101C14
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08101C74: .4byte 0x02000000
+_08101C78: .4byte gSaveBlock1
+_08101C7C: .4byte 0x00000494
+_08101C80: .4byte gUnknown_083ECCF8
+ thumb_func_end sub_8101BA4
+
+ thumb_func_start sub_8101C84
+sub_8101C84: @ 8101C84
+ push {r4,lr}
+ ldr r4, _08101C9C
+ adds r0, r4, 0
+ bl SetUpWindowConfig
+ adds r0, r4, 0
+ bl InitMenuWindow
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08101C9C: .4byte gWindowConfig_81E7128
+ thumb_func_end sub_8101C84
+
+ thumb_func_start sub_8101CA0
+sub_8101CA0: @ 8101CA0
+ push {lr}
+ bl ResetPaletteFade
+ bl ResetSpriteData
+ ldr r1, _08101CBC
+ movs r0, 0x80
+ strb r0, [r1]
+ bl FreeAllSpritePalettes
+ bl ResetTasks
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08101CBC: .4byte gOamLimit
+ thumb_func_end sub_8101CA0
+
+ thumb_func_start sub_8101CC0
+sub_8101CC0: @ 8101CC0
+ push {lr}
+ bl sub_8106448
+ bl sub_81064B8
+ bl sub_81063C0
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8101CC0
+
+ thumb_func_start sub_8101CD4
+sub_8101CD4: @ 8101CD4
+ push {lr}
+ bl sub_8104EA8
+ bl sub_8104F8C
+ bl sub_8103DC8
+ bl sub_81050C4
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8101CD4
+
+ thumb_func_start sub_8101CEC
+sub_8101CEC: @ 8101CEC
+ push {lr}
+ bl sub_8104048
+ bl sub_8102DA8
+ bl sub_8104C5C
+ bl sub_8101D04
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8101CEC
+
+ thumb_func_start sub_8101D04
+sub_8101D04: @ 8101D04
+ push {r4,lr}
+ ldr r4, _08101D20
+ adds r0, r4, 0
+ movs r1, 0
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ bl _call_via_r4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08101D20: .4byte sub_8101D24
+ thumb_func_end sub_8101D04
+
+ thumb_func_start sub_8101D24
+sub_8101D24: @ 8101D24
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r7, _08101D50
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r4, r1, 3
+ ldr r6, _08101D54
+ ldr r5, _08101D58
+_08101D36:
+ ldrb r0, [r6]
+ lsls r0, 2
+ adds r0, r7
+ ldr r1, [r0]
+ adds r0, r4, r5
+ bl _call_via_r1
+ lsls r0, 24
+ cmp r0, 0
+ bne _08101D36
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08101D50: .4byte gUnknown_083ECAAC
+_08101D54: .4byte 0x02000000
+_08101D58: .4byte gTasks
+ thumb_func_end sub_8101D24
+
+ thumb_func_start sub_8101D5C
+sub_8101D5C: @ 8101D5C
+ push {r4,lr}
+ sub sp, 0x4
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ ldr r4, _08101D88
+ ldrb r0, [r4, 0x2]
+ bl sub_810423C
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+ movs r0, 0
+ add sp, 0x4
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08101D88: .4byte 0x02000000
+ thumb_func_end sub_8101D5C
+
+ thumb_func_start sub_8101D8C
+sub_8101D8C: @ 8101D8C
+ push {lr}
+ ldr r0, _08101DA8
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _08101DA2
+ ldr r1, _08101DAC
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+_08101DA2:
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08101DA8: .4byte gPaletteFade
+_08101DAC: .4byte 0x02000000
+ thumb_func_end sub_8101D8C
+
+ thumb_func_start sub_8101DB0
+sub_8101DB0: @ 8101DB0
+ push {lr}
+ ldr r2, _08101DD8
+ movs r0, 0
+ strh r0, [r2, 0xE]
+ strh r0, [r2, 0x12]
+ strh r0, [r2, 0x18]
+ ldrb r1, [r2, 0x4]
+ movs r0, 0xC0
+ ands r0, r1
+ strb r0, [r2, 0x4]
+ movs r0, 0x4
+ strb r0, [r2]
+ movs r1, 0xC
+ ldrsh r0, [r2, r1]
+ cmp r0, 0
+ bgt _08101DDC
+ movs r0, 0x19
+ strb r0, [r2]
+ b _08101DEC
+ .align 2, 0
+_08101DD8: .4byte 0x02000000
+_08101DDC:
+ ldrb r0, [r2, 0xA]
+ cmp r0, 0
+ beq _08101DEC
+ movs r0, 0x3
+ strb r0, [r2]
+ movs r0, 0x4
+ bl sub_8104CAC
+_08101DEC:
+ movs r0, 0x1
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8101DB0
+
+ thumb_func_start sub_8101DF4
+sub_8101DF4: @ 8101DF4
+ push {lr}
+ bl sub_8104E18
+ lsls r0, 24
+ cmp r0, 0
+ beq _08101E06
+ ldr r1, _08101E0C
+ movs r0, 0x4
+ strb r0, [r1]
+_08101E06:
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08101E0C: .4byte 0x02000000
+ thumb_func_end sub_8101DF4
+
+ thumb_func_start sub_8101E10
+sub_8101E10: @ 8101E10
+ push {lr}
+ movs r0, 0
+ bl sub_8104CAC
+ ldr r2, _08101E34
+ movs r0, 0x5
+ strb r0, [r2]
+ movs r0, 0xC
+ ldrsh r1, [r2, r0]
+ ldr r0, _08101E38
+ cmp r1, r0
+ ble _08101E2C
+ movs r0, 0x17
+ strb r0, [r2]
+_08101E2C:
+ movs r0, 0x1
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08101E34: .4byte 0x02000000
+_08101E38: .4byte 0x0000270e
+ thumb_func_end sub_8101E10
+
+ thumb_func_start sub_8101E3C
+sub_8101E3C: @ 8101E3C
+ push {r4,lr}
+ ldr r0, _08101E58
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _08101E60
+ movs r0, 0
+ bl sub_8104AB8
+ ldr r1, _08101E5C
+ movs r0, 0x8
+ strb r0, [r1]
+ b _08101F1A
+ .align 2, 0
+_08101E58: .4byte gMain
+_08101E5C: .4byte 0x02000000
+_08101E60:
+ movs r0, 0x80
+ lsls r0, 1
+ ands r0, r1
+ cmp r0, 0
+ beq _08101EC2
+ ldr r2, _08101EB8
+ movs r1, 0xC
+ ldrsh r0, [r2, r1]
+ subs r0, 0x3
+ movs r3, 0x12
+ ldrsh r1, [r2, r3]
+ adds r0, r1
+ cmp r0, 0
+ blt _08101EBC
+ ldrh r4, [r2, 0x12]
+ adds r0, r1, 0
+ cmp r0, 0x2
+ bgt _08101E9C
+_08101E84:
+ lsls r0, r4, 24
+ lsrs r0, 24
+ bl sub_8103D50
+ lsls r0, r4, 16
+ movs r2, 0x80
+ lsls r2, 9
+ adds r0, r2
+ lsrs r4, r0, 16
+ asrs r0, 16
+ cmp r0, 0x2
+ ble _08101E84
+_08101E9C:
+ ldr r1, _08101EB8
+ ldrh r0, [r1, 0xC]
+ subs r0, 0x3
+ ldrh r3, [r1, 0x12]
+ adds r0, r3
+ strh r0, [r1, 0xC]
+ movs r0, 0x3
+ strh r0, [r1, 0x12]
+ movs r0, 0x9
+ strb r0, [r1]
+ movs r0, 0x5F
+ bl PlaySE
+ b _08101F1A
+ .align 2, 0
+_08101EB8: .4byte 0x02000000
+_08101EBC:
+ movs r0, 0x6
+ strb r0, [r2]
+ b _08101F1A
+_08101EC2:
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _08101EEC
+ ldr r4, _08101F24
+ movs r1, 0xC
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _08101EEC
+ movs r0, 0x5F
+ bl PlaySE
+ ldrb r0, [r4, 0x12]
+ bl sub_8103D50
+ ldrh r0, [r4, 0xC]
+ subs r0, 0x1
+ strh r0, [r4, 0xC]
+ ldrh r0, [r4, 0x12]
+ adds r0, 0x1
+ strh r0, [r4, 0x12]
+_08101EEC:
+ ldr r0, _08101F24
+ movs r2, 0x12
+ ldrsh r1, [r0, r2]
+ ldr r2, _08101F28
+ adds r3, r0, 0
+ cmp r1, 0x2
+ bgt _08101F08
+ cmp r1, 0
+ beq _08101F0C
+ ldrh r1, [r2, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08101F0C
+_08101F08:
+ movs r0, 0x9
+ strb r0, [r3]
+_08101F0C:
+ ldrh r1, [r2, 0x2E]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _08101F1A
+ movs r0, 0x15
+ strb r0, [r3]
+_08101F1A:
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08101F24: .4byte 0x02000000
+_08101F28: .4byte gMain
+ thumb_func_end sub_8101E3C
+
+ thumb_func_start sub_8101F2C
+sub_8101F2C: @ 8101F2C
+ push {r4,lr}
+ adds r4, r0, 0
+ bl MenuDisplayMessageBox
+ adds r0, r4, 0
+ movs r1, 0x2
+ movs r2, 0xF
+ bl MenuPrint
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8101F2C
+
+ thumb_func_start sub_8101F44
+sub_8101F44: @ 8101F44
+ push {lr}
+ ldr r0, _08101F58
+ bl sub_8101F2C
+ ldr r1, _08101F5C
+ movs r0, 0x7
+ strb r0, [r1]
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08101F58: .4byte gOtherText_DontHaveThreeCoins
+_08101F5C: .4byte 0x02000000
+ thumb_func_end sub_8101F44
+
+ thumb_func_start sub_8101F60
+sub_8101F60: @ 8101F60
+ push {lr}
+ ldr r0, _08101F80
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0
+ beq _08101F78
+ bl MenuZeroFillScreen
+ ldr r1, _08101F84
+ movs r0, 0x5
+ strb r0, [r1]
+_08101F78:
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08101F80: .4byte gMain
+_08101F84: .4byte 0x02000000
+ thumb_func_end sub_8101F60
+
+ thumb_func_start sub_8101F88
+sub_8101F88: @ 8101F88
+ push {lr}
+ bl sub_8104AEC
+ lsls r0, 24
+ cmp r0, 0
+ beq _08101F9A
+ ldr r1, _08101FA0
+ movs r0, 0x5
+ strb r0, [r1]
+_08101F9A:
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08101FA0: .4byte 0x02000000
+ thumb_func_end sub_8101F88
+
+ thumb_func_start sub_8101FA4
+sub_8101FA4: @ 8101FA4
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_8102484
+ bl sub_8104DA4
+ movs r0, 0
+ bl sub_8102DEC
+ movs r0, 0x1
+ bl sub_8102DEC
+ movs r0, 0x2
+ bl sub_8102DEC
+ movs r0, 0
+ strh r0, [r4, 0x8]
+ ldr r4, _08101FDC
+ ldrb r1, [r4, 0x4]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _08101FE0
+ bl sub_810430C
+ movs r0, 0xA
+ b _08101FE8
+ .align 2, 0
+_08101FDC: .4byte 0x02000000
+_08101FE0:
+ movs r0, 0x1
+ bl sub_8104CAC
+ movs r0, 0xB
+_08101FE8:
+ strb r0, [r4]
+ ldr r4, _08102004
+ movs r0, 0x8
+ strh r0, [r4, 0x1A]
+ ldrb r0, [r4, 0xA]
+ cmp r0, 0
+ beq _08101FFC
+ bl dp15_jump_random_unknown
+ strh r0, [r4, 0x1A]
+_08101FFC:
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08102004: .4byte 0x02000000
+ thumb_func_end sub_8101FA4
+
+ thumb_func_start sub_8102008
+sub_8102008: @ 8102008
+ push {lr}
+ bl sub_810432C
+ lsls r0, 24
+ cmp r0, 0
+ beq _08102028
+ movs r0, 0x1
+ bl sub_8104CAC
+ ldr r1, _08102030
+ ldrb r2, [r1, 0x4]
+ movs r0, 0xDF
+ ands r0, r2
+ strb r0, [r1, 0x4]
+ movs r0, 0xB
+ strb r0, [r1]
+_08102028:
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08102030: .4byte 0x02000000
+ thumb_func_end sub_8102008
+
+ thumb_func_start sub_8102034
+sub_8102034: @ 8102034
+ push {lr}
+ ldrh r1, [r0, 0x8]
+ adds r1, 0x1
+ strh r1, [r0, 0x8]
+ lsls r1, 16
+ asrs r1, 16
+ cmp r1, 0x1D
+ ble _0810204E
+ bl sub_81024F0
+ ldr r1, _08102054
+ movs r0, 0xC
+ strb r0, [r1]
+_0810204E:
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08102054: .4byte 0x02000000
+ thumb_func_end sub_8102034
+
+ thumb_func_start sub_8102058
+sub_8102058: @ 8102058
+ push {r4,lr}
+ ldr r0, _08102088
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0810207E
+ movs r0, 0x18
+ bl PlaySE
+ ldr r4, _0810208C
+ ldrb r0, [r4, 0x18]
+ bl sub_8102E1C
+ ldrb r0, [r4, 0x18]
+ bl sub_8103C14
+ movs r0, 0xD
+ strb r0, [r4]
+_0810207E:
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08102088: .4byte gMain
+_0810208C: .4byte 0x02000000
+ thumb_func_end sub_8102058
+
+ thumb_func_start sub_8102090
+sub_8102090: @ 8102090
+ push {r4,lr}
+ ldr r4, _081020BC
+ ldrb r0, [r4, 0x18]
+ bl sub_8102E40
+ lsls r0, 24
+ cmp r0, 0
+ bne _081020C0
+ ldrh r0, [r4, 0x18]
+ adds r0, 0x1
+ strh r0, [r4, 0x18]
+ movs r1, 0xC
+ strb r1, [r4]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x2
+ ble _081020B6
+ movs r0, 0xE
+ strb r0, [r4]
+_081020B6:
+ movs r0, 0x1
+ b _081020C2
+ .align 2, 0
+_081020BC: .4byte 0x02000000
+_081020C0:
+ movs r0, 0
+_081020C2:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8102090
+
+ thumb_func_start sub_81020C8
+sub_81020C8: @ 81020C8
+ push {r4,lr}
+ ldr r4, _08102128
+ ldrb r1, [r4, 0x4]
+ movs r0, 0xC0
+ ands r0, r1
+ strb r0, [r4, 0x4]
+ bl sub_81027A0
+ ldrb r0, [r4, 0xA]
+ cmp r0, 0
+ beq _081020E8
+ subs r0, 0x1
+ strb r0, [r4, 0xA]
+ ldrb r0, [r4, 0xB]
+ adds r0, 0x1
+ strb r0, [r4, 0xB]
+_081020E8:
+ ldrh r0, [r4, 0x8]
+ cmp r0, 0
+ beq _081021B4
+ movs r0, 0xF
+ strb r0, [r4]
+ bl sub_8102A24
+ bl sub_8103F70
+ ldrh r0, [r4, 0x10]
+ ldrh r1, [r4, 0xE]
+ subs r0, r1
+ strh r0, [r4, 0x10]
+ lsls r0, 16
+ cmp r0, 0
+ bge _0810210C
+ movs r0, 0
+ strh r0, [r4, 0x10]
+_0810210C:
+ ldrh r1, [r4, 0x8]
+ movs r0, 0xC0
+ lsls r0, 1
+ ands r0, r1
+ cmp r0, 0
+ beq _08102130
+ ldr r0, _0810212C
+ bl PlayFanfare
+ movs r0, 0x6
+ bl sub_8104CAC
+ b _0810215A
+ .align 2, 0
+_08102128: .4byte 0x02000000
+_0810212C: .4byte 0x00000185
+_08102130:
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _0810214C
+ ldr r0, _08102148
+ bl PlayFanfare
+ movs r0, 0x5
+ bl sub_8104CAC
+ b _0810215A
+ .align 2, 0
+_08102148: .4byte 0x00000185
+_0810214C:
+ movs r0, 0xC3
+ lsls r0, 1
+ bl PlayFanfare
+ movs r0, 0x2
+ bl sub_8104CAC
+_0810215A:
+ ldr r1, _081021B0
+ ldrh r3, [r1, 0x8]
+ movs r0, 0xE0
+ lsls r0, 1
+ ands r0, r3
+ adds r2, r1, 0
+ cmp r0, 0
+ beq _08102192
+ ldrb r1, [r2, 0x4]
+ movs r0, 0x3F
+ ands r0, r1
+ movs r1, 0
+ strb r0, [r2, 0x4]
+ movs r0, 0xC0
+ lsls r0, 1
+ ands r0, r3
+ cmp r0, 0
+ beq _08102192
+ strb r1, [r2, 0xA]
+ strb r1, [r2, 0xB]
+ strb r1, [r2, 0x3]
+ movs r0, 0x80
+ lsls r0, 1
+ ands r0, r3
+ cmp r0, 0
+ beq _08102192
+ movs r0, 0x1
+ strb r0, [r2, 0x3]
+_08102192:
+ ldrh r1, [r2, 0x8]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _081021D2
+ ldrb r0, [r2, 0x2]
+ cmp r0, 0xF
+ bhi _081021D2
+ adds r0, 0x1
+ strb r0, [r2, 0x2]
+ ldrb r0, [r2, 0x2]
+ bl sub_8104064
+ b _081021D2
+ .align 2, 0
+_081021B0: .4byte 0x02000000
+_081021B4:
+ movs r0, 0x3
+ bl sub_8104CAC
+ movs r0, 0x14
+ strb r0, [r4]
+ ldrh r0, [r4, 0x12]
+ ldrh r1, [r4, 0x10]
+ adds r0, r1
+ strh r0, [r4, 0x10]
+ lsls r0, 16
+ asrs r0, 16
+ ldr r1, _081021DC
+ cmp r0, r1
+ ble _081021D2
+ strh r1, [r4, 0x10]
+_081021D2:
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_081021DC: .4byte 0x0000270f
+ thumb_func_end sub_81020C8
+
+ thumb_func_start sub_81021E0
+sub_81021E0: @ 81021E0
+ push {lr}
+ bl sub_8102A44
+ lsls r0, 24
+ cmp r0, 0
+ beq _081021F2
+ ldr r1, _081021F8
+ movs r0, 0x10
+ strb r0, [r1]
+_081021F2:
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_081021F8: .4byte 0x02000000
+ thumb_func_end sub_81021E0
+
+ thumb_func_start sub_81021FC
+sub_81021FC: @ 81021FC
+ push {r4,lr}
+ bl sub_8103FA0
+ lsls r0, 24
+ cmp r0, 0
+ beq _08102256
+ ldr r4, _08102260
+ movs r0, 0x13
+ strb r0, [r4]
+ ldrh r1, [r4, 0x8]
+ movs r0, 0xC0
+ lsls r0, 1
+ ands r0, r1
+ cmp r0, 0
+ beq _08102220
+ movs r0, 0x1C
+ bl sav12_xor_increment
+_08102220:
+ ldrh r1, [r4, 0x8]
+ movs r0, 0x4
+ ands r0, r1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0
+ beq _08102236
+ movs r0, 0
+ strh r0, [r4, 0x18]
+ movs r0, 0x9
+ strb r0, [r4]
+_08102236:
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _08102242
+ movs r0, 0x11
+ strb r0, [r4]
+_08102242:
+ ldrb r0, [r4, 0xA]
+ cmp r0, 0
+ beq _08102256
+ cmp r2, 0
+ beq _08102256
+ movs r0, 0x4
+ bl sub_8104CAC
+ movs r0, 0x12
+ strb r0, [r4]
+_08102256:
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08102260: .4byte 0x02000000
+ thumb_func_end sub_81021FC
+
+ thumb_func_start sub_8102264
+sub_8102264: @ 8102264
+ push {r4,lr}
+ bl sub_81040C8
+ lsls r0, 24
+ cmp r0, 0
+ bne _08102294
+ ldr r4, _0810229C
+ movs r0, 0x13
+ strb r0, [r4]
+ ldrh r1, [r4, 0x8]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _08102294
+ movs r0, 0x9
+ strb r0, [r4]
+ ldrb r0, [r4, 0xA]
+ cmp r0, 0
+ beq _08102294
+ movs r0, 0x4
+ bl sub_8104CAC
+ movs r0, 0x12
+ strb r0, [r4]
+_08102294:
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0810229C: .4byte 0x02000000
+ thumb_func_end sub_8102264
+
+ thumb_func_start sub_81022A0
+sub_81022A0: @ 81022A0
+ push {lr}
+ bl sub_8104E18
+ lsls r0, 24
+ cmp r0, 0
+ beq _081022C0
+ ldr r2, _081022C8
+ movs r0, 0x13
+ strb r0, [r2]
+ ldrh r1, [r2, 0x8]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _081022C0
+ movs r0, 0x9
+ strb r0, [r2]
+_081022C0:
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_081022C8: .4byte 0x02000000
+ thumb_func_end sub_81022A0
+
+ thumb_func_start sub_81022CC
+sub_81022CC: @ 81022CC
+ push {lr}
+ movs r0, 0
+ bl sub_8103D8C
+ movs r0, 0x1
+ bl sub_8103D8C
+ movs r0, 0x2
+ bl sub_8103D8C
+ ldr r1, _081022EC
+ movs r0, 0x2
+ strb r0, [r1]
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_081022EC: .4byte 0x02000000
+ thumb_func_end sub_81022CC
+
+ thumb_func_start sub_81022F0
+sub_81022F0: @ 81022F0
+ push {lr}
+ adds r1, r0, 0
+ ldrh r0, [r1, 0xA]
+ adds r0, 0x1
+ strh r0, [r1, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x40
+ ble _0810230C
+ movs r0, 0
+ strh r0, [r1, 0xA]
+ ldr r1, _08102314
+ movs r0, 0x13
+ strb r0, [r1]
+_0810230C:
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08102314: .4byte 0x02000000
+ thumb_func_end sub_81022F0
+
+ thumb_func_start sub_8102318
+sub_8102318: @ 8102318
+ push {lr}
+ ldr r0, _0810233C
+ bl sub_8101F2C
+ movs r0, 0x15
+ movs r1, 0x7
+ movs r2, 0x1
+ bl DisplayYesNoMenu
+ bl sub_814AB84
+ ldr r1, _08102340
+ movs r0, 0x16
+ strb r0, [r1]
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0810233C: .4byte gOtherText_QuitGamePrompt
+_08102340: .4byte 0x02000000
+ thumb_func_end sub_8102318
+
+ thumb_func_start sub_8102344
+sub_8102344: @ 8102344
+ push {lr}
+ bl ProcessMenuInputNoWrap_
+ lsls r0, 24
+ asrs r1, r0, 24
+ cmp r1, 0
+ bne _0810237C
+ bl MenuZeroFillScreen
+ movs r0, 0
+ bl sub_8103D8C
+ movs r0, 0x1
+ bl sub_8103D8C
+ movs r0, 0x2
+ bl sub_8103D8C
+ ldr r0, _08102378
+ ldrh r1, [r0, 0x12]
+ ldrh r2, [r0, 0xC]
+ adds r1, r2
+ strh r1, [r0, 0xC]
+ movs r1, 0x1B
+ strb r1, [r0]
+ b _08102392
+ .align 2, 0
+_08102378: .4byte 0x02000000
+_0810237C:
+ cmp r1, 0x1
+ beq _08102388
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ bne _08102392
+_08102388:
+ bl MenuZeroFillScreen
+ ldr r1, _08102398
+ movs r0, 0x5
+ strb r0, [r1]
+_08102392:
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08102398: .4byte 0x02000000
+ thumb_func_end sub_8102344
+
+ thumb_func_start sub_810239C
+sub_810239C: @ 810239C
+ push {lr}
+ ldr r0, _081023B0
+ bl sub_8101F2C
+ ldr r1, _081023B4
+ movs r0, 0x18
+ strb r0, [r1]
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_081023B0: .4byte gOtherText_MaxCoins
+_081023B4: .4byte 0x02000000
+ thumb_func_end sub_810239C
+
+ thumb_func_start sub_81023B8
+sub_81023B8: @ 81023B8
+ push {lr}
+ ldr r0, _081023D8
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0
+ beq _081023D0
+ bl MenuZeroFillScreen
+ ldr r1, _081023DC
+ movs r0, 0x5
+ strb r0, [r1]
+_081023D0:
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_081023D8: .4byte gMain
+_081023DC: .4byte 0x02000000
+ thumb_func_end sub_81023B8
+
+ thumb_func_start sub_81023E0
+sub_81023E0: @ 81023E0
+ push {lr}
+ ldr r0, _081023F4
+ bl sub_8101F2C
+ ldr r1, _081023F8
+ movs r0, 0x1A
+ strb r0, [r1]
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_081023F4: .4byte gOtherText_OutOfCoins
+_081023F8: .4byte 0x02000000
+ thumb_func_end sub_81023E0
+
+ thumb_func_start sub_81023FC
+sub_81023FC: @ 81023FC
+ push {lr}
+ ldr r0, _0810241C
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0
+ beq _08102414
+ bl MenuZeroFillScreen
+ ldr r1, _08102420
+ movs r0, 0x1B
+ strb r0, [r1]
+_08102414:
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0810241C: .4byte gMain
+_08102420: .4byte 0x02000000
+ thumb_func_end sub_81023FC
+
+ thumb_func_start sub_8102424
+sub_8102424: @ 8102424
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r0, _08102454
+ ldr r4, _08102458
+ ldrh r1, [r4, 0xC]
+ ldr r2, _0810245C
+ adds r0, r2
+ movs r2, 0
+ strh r1, [r0]
+ movs r0, 0x1
+ negs r0, r0
+ str r2, [sp]
+ movs r1, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+ movs r0, 0
+ add sp, 0x4
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08102454: .4byte gSaveBlock1
+_08102458: .4byte 0x02000000
+_0810245C: .4byte 0x00000494
+ thumb_func_end sub_8102424
+
+ thumb_func_start sub_8102460
+sub_8102460: @ 8102460
+ push {lr}
+ ldr r0, _0810247C
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _08102476
+ ldr r0, _08102480
+ ldr r0, [r0, 0x64]
+ bl SetMainCallback2
+_08102476:
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0810247C: .4byte gPaletteFade
+_08102480: .4byte 0x02000000
+ thumb_func_end sub_8102460
+
+ thumb_func_start sub_8102484
+sub_8102484: @ 8102484
+ push {r4,lr}
+ ldr r4, _081024E4
+ ldrb r0, [r4, 0xA]
+ cmp r0, 0
+ bne _081024DC
+ ldrb r1, [r4, 0x4]
+ movs r0, 0xC0
+ ands r0, r1
+ cmp r0, 0
+ bne _081024DC
+ bl sub_8102540
+ lsls r0, 24
+ cmp r0, 0
+ beq _081024C0
+ bl sub_8102578
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x3
+ beq _081024C0
+ ldr r1, _081024E8
+ lsls r0, r3, 1
+ adds r0, r1
+ ldrb r1, [r0]
+ ldrb r0, [r4, 0x4]
+ orrs r0, r1
+ strb r0, [r4, 0x4]
+ cmp r3, 0x1
+ bne _081024DC
+_081024C0:
+ bl sub_81025BC
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x5
+ beq _081024DC
+ ldr r2, _081024E4
+ ldr r1, _081024EC
+ lsls r0, r3, 1
+ adds r0, r1
+ ldrb r1, [r0]
+ ldrb r0, [r2, 0x4]
+ orrs r0, r1
+ strb r0, [r2, 0x4]
+_081024DC:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081024E4: .4byte 0x02000000
+_081024E8: .4byte gUnknown_083ECE42
+_081024EC: .4byte gUnknown_083ECE48
+ thumb_func_end sub_8102484
+
+ thumb_func_start sub_81024F0
+sub_81024F0: @ 81024F0
+ push {lr}
+ ldr r1, _08102508
+ movs r0, 0
+ strb r0, [r1, 0x6]
+ ldrb r0, [r1, 0x4]
+ cmp r0, 0
+ beq _08102502
+ movs r0, 0x1
+ strb r0, [r1, 0x6]
+_08102502:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08102508: .4byte 0x02000000
+ thumb_func_end sub_81024F0
+
+ thumb_func_start sub_810250C
+sub_810250C: @ 810250C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r1, r0, 24
+ movs r2, 0
+ movs r3, 0x1
+ ldr r4, _08102528
+_08102518:
+ adds r0, r1, 0
+ ands r0, r3
+ cmp r0, 0
+ beq _0810252C
+ adds r0, r2, r4
+ ldrb r0, [r0]
+ b _0810253A
+ .align 2, 0
+_08102528: .4byte gUnknown_083ECE3A
+_0810252C:
+ lsrs r1, 1
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x7
+ bls _08102518
+ movs r0, 0
+_0810253A:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_810250C
+
+ thumb_func_start sub_8102540
+sub_8102540: @ 8102540
+ push {r4,lr}
+ bl Random
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r4, _08102568
+ ldr r1, _0810256C
+ movs r3, 0x12
+ ldrsh r2, [r1, r3]
+ ldrb r3, [r1, 0x1]
+ lsls r1, r3, 1
+ adds r1, r3
+ subs r1, 0x1
+ adds r2, r1
+ adds r2, r4
+ ldrb r1, [r2]
+ cmp r1, r0
+ bhi _08102570
+ movs r0, 0
+ b _08102572
+ .align 2, 0
+_08102568: .4byte gUnknown_083ECD04
+_0810256C: .4byte 0x02000000
+_08102570:
+ movs r0, 0x1
+_08102572:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8102540
+
+ thumb_func_start sub_8102578
+sub_8102578: @ 8102578
+ push {r4-r6,lr}
+ movs r5, 0
+ ldr r6, _081025B4
+_0810257E:
+ bl Random
+ movs r2, 0xFF
+ ldr r3, _081025B8
+ lsls r1, r5, 16
+ asrs r4, r1, 16
+ lsls r1, r4, 1
+ adds r1, r4
+ lsls r1, 1
+ ldrb r3, [r3, 0x1]
+ adds r1, r3
+ adds r1, r6
+ ldrb r1, [r1]
+ ands r2, r0
+ cmp r1, r2
+ bgt _081025AA
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ asrs r0, 16
+ cmp r0, 0x2
+ ble _0810257E
+_081025AA:
+ lsls r0, r5, 24
+ lsrs r0, 24
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_081025B4: .4byte gUnknown_083ECD16
+_081025B8: .4byte 0x02000000
+ thumb_func_end sub_8102578
+
+ thumb_func_start sub_81025BC
+sub_81025BC: @ 81025BC
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ movs r6, 0
+ ldr r0, _08102600
+ mov r8, r0
+ ldr r5, _08102604
+ movs r7, 0x80
+ lsls r7, 17
+_081025CE:
+ bl Random
+ movs r4, 0xFF
+ ands r4, r0
+ lsls r2, r6, 16
+ asrs r1, r2, 16
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 1
+ ldrb r3, [r5, 0x1]
+ adds r0, r3
+ add r0, r8
+ ldrb r3, [r0]
+ cmp r1, 0
+ bne _08102608
+ ldrb r0, [r5, 0x3]
+ cmp r0, 0x1
+ bne _08102608
+ adds r3, 0xA
+ asrs r0, r7, 16
+ cmp r3, r0
+ ble _08102622
+ adds r3, r0, 0
+ b _08102622
+ .align 2, 0
+_08102600: .4byte gUnknown_083ECD28
+_08102604: .4byte 0x02000000
+_08102608:
+ asrs r0, r2, 16
+ cmp r0, 0x4
+ bne _08102622
+ ldrb r0, [r5, 0x3]
+ cmp r0, 0x1
+ bne _08102622
+ lsls r0, r3, 16
+ ldr r1, _08102648
+ adds r0, r1
+ lsrs r3, r0, 16
+ cmp r0, 0
+ bge _08102622
+ movs r3, 0
+_08102622:
+ lsls r0, r3, 16
+ asrs r0, 16
+ cmp r0, r4
+ bgt _08102638
+ movs r3, 0x80
+ lsls r3, 9
+ adds r0, r2, r3
+ lsrs r6, r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ ble _081025CE
+_08102638:
+ lsls r0, r6, 24
+ lsrs r0, 24
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08102648: .4byte 0xfff60000
+ thumb_func_end sub_81025BC
+
+ thumb_func_start sub_810264C
+sub_810264C: @ 810264C
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r3, _08102660
+ ldrb r0, [r3, 0x3]
+ cmp r0, 0
+ beq _08102668
+ ldr r0, _08102664
+ b _0810266A
+ .align 2, 0
+_08102660: .4byte 0x02000000
+_08102664: .4byte gUnknown_083ECDAC
+_08102668:
+ ldr r0, _0810267C
+_0810266A:
+ lsls r1, r2, 4
+ adds r1, r2
+ ldrb r3, [r3, 0x2]
+ adds r1, r3
+ adds r1, r0
+ ldrb r0, [r1]
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0810267C: .4byte gUnknown_083ECD46
+ thumb_func_end sub_810264C
+
+ thumb_func_start sub_8102680
+sub_8102680: @ 8102680
+ push {r4-r6,lr}
+ ldr r1, _081026A4
+ movs r0, 0
+ strb r0, [r1, 0x5]
+ bl Random
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r0, 0
+ bl sub_810264C
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r4, r0
+ bcc _081026D2
+ movs r6, 0x5
+ b _081026AE
+ .align 2, 0
+_081026A4: .4byte 0x02000000
+_081026A8:
+ subs r0, r5, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+_081026AE:
+ lsls r0, r6, 16
+ asrs r5, r0, 16
+ cmp r5, 0
+ ble _081026CE
+ bl Random
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r0, r6, 24
+ lsrs r0, 24
+ bl sub_810264C
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r4, r0
+ bcs _081026A8
+_081026CE:
+ ldr r0, _081026D8
+ strb r6, [r0, 0x5]
+_081026D2:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081026D8: .4byte 0x02000000
+ thumb_func_end sub_8102680
+
+ thumb_func_start sub_81026DC
+sub_81026DC: @ 81026DC
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ bl Random
+ movs r1, 0xFF
+ ands r1, r0
+ ldr r0, _081026FC
+ lsls r4, 1
+ adds r4, r0
+ ldrh r4, [r4]
+ cmp r1, r4
+ bcc _08102700
+ movs r0, 0
+ b _08102702
+ .align 2, 0
+_081026FC: .4byte gUnknown_083ECE12
+_08102700:
+ movs r0, 0x1
+_08102702:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81026DC
+
+ thumb_func_start dp15_jump_random_unknown
+dp15_jump_random_unknown: @ 8102708
+ push {r4,r5,lr}
+ movs r4, 0
+ ldr r0, _0810271C
+ movs r2, 0x10
+ ldrsh r1, [r0, r2]
+ ldr r0, _08102720
+ cmp r1, r0
+ ble _08102724
+ movs r4, 0x4
+ b _0810273A
+ .align 2, 0
+_0810271C: .4byte 0x02000000
+_08102720: .4byte 0x0000012b
+_08102724:
+ cmp r1, 0xF9
+ ble _0810272C
+ movs r4, 0x3
+ b _0810273A
+_0810272C:
+ cmp r1, 0xC7
+ ble _08102734
+ movs r4, 0x2
+ b _0810273A
+_08102734:
+ cmp r1, 0x95
+ ble _0810273A
+ movs r4, 0x1
+_0810273A:
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x64
+ bl __umodsi3
+ lsls r0, 24
+ lsrs r1, r0, 24
+ ldr r5, _0810275C
+ lsls r4, 2
+ adds r0, r4, r5
+ ldrb r0, [r0]
+ cmp r1, r0
+ bcs _08102760
+ movs r0, 0x4
+ b _0810279A
+ .align 2, 0
+_0810275C: .4byte gUnknown_083ECE1C
+_08102760:
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x64
+ bl __umodsi3
+ lsls r0, 24
+ adds r2, r5, 0x2
+ adds r2, r4, r2
+ ldr r3, _08102790
+ ldr r1, _08102794
+ ldrb r1, [r1, 0xB]
+ lsls r1, 1
+ adds r1, r3
+ ldrb r1, [r1]
+ ldrb r2, [r2]
+ adds r1, r2
+ lsls r1, 24
+ cmp r0, r1
+ bcc _08102798
+ movs r0, 0x8
+ b _0810279A
+ .align 2, 0
+_08102790: .4byte gUnknown_083ECE30
+_08102794: .4byte 0x02000000
+_08102798:
+ movs r0, 0x2
+_0810279A:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end dp15_jump_random_unknown
+
+ thumb_func_start sub_81027A0
+sub_81027A0: @ 81027A0
+ push {r4,lr}
+ ldr r4, _081027CC
+ movs r0, 0
+ strh r0, [r4, 0x8]
+ bl sub_81027D0
+ movs r1, 0x12
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ ble _081027B8
+ bl sub_8102840
+_081027B8:
+ movs r1, 0x12
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x2
+ ble _081027C4
+ bl sub_810290C
+_081027C4:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081027CC: .4byte 0x02000000
+ thumb_func_end sub_81027A0
+
+ thumb_func_start sub_81027D0
+sub_81027D0: @ 81027D0
+ push {r4,r5,lr}
+ movs r0, 0
+ movs r1, 0x2
+ bl sub_8102BA4
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ movs r0, 0x1
+ movs r1, 0x2
+ bl sub_8102BA4
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x2
+ movs r1, 0x2
+ bl sub_8102BA4
+ adds r2, r0, 0
+ lsls r2, 24
+ lsrs r2, 24
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_81029D4
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x9
+ beq _0810282E
+ ldr r2, _08102834
+ ldr r0, _08102838
+ lsls r1, 1
+ adds r0, r1, r0
+ ldrh r0, [r0]
+ ldrh r3, [r2, 0xE]
+ adds r0, r3
+ strh r0, [r2, 0xE]
+ ldr r0, _0810283C
+ adds r1, r0
+ ldrh r0, [r2, 0x8]
+ ldrh r1, [r1]
+ orrs r0, r1
+ strh r0, [r2, 0x8]
+ movs r0, 0
+ bl sub_8103E04
+_0810282E:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08102834: .4byte 0x02000000
+_08102838: .4byte gUnknown_083ECE6C
+_0810283C: .4byte gUnknown_083ECE5A
+ thumb_func_end sub_81027D0
+
+ thumb_func_start sub_8102840
+sub_8102840: @ 8102840
+ push {r4,r5,lr}
+ movs r0, 0
+ movs r1, 0x1
+ bl sub_8102BA4
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r0, 0x1
+ movs r1, 0x1
+ bl sub_8102BA4
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r0, 0x2
+ movs r1, 0x1
+ bl sub_8102BA4
+ lsls r0, 24
+ lsrs r2, r0, 24
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_81029D4
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x9
+ beq _0810289E
+ cmp r1, 0
+ bne _0810287C
+ movs r1, 0x1
+_0810287C:
+ ldr r2, _08102900
+ ldr r0, _08102904
+ lsls r1, 1
+ adds r0, r1, r0
+ ldrh r0, [r0]
+ ldrh r3, [r2, 0xE]
+ adds r0, r3
+ strh r0, [r2, 0xE]
+ ldr r0, _08102908
+ adds r1, r0
+ ldrh r0, [r2, 0x8]
+ ldrh r1, [r1]
+ orrs r0, r1
+ strh r0, [r2, 0x8]
+ movs r0, 0x1
+ bl sub_8103E04
+_0810289E:
+ movs r0, 0
+ movs r1, 0x3
+ bl sub_8102BA4
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r0, 0x1
+ movs r1, 0x3
+ bl sub_8102BA4
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r0, 0x2
+ movs r1, 0x3
+ bl sub_8102BA4
+ lsls r0, 24
+ lsrs r2, r0, 24
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_81029D4
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x9
+ beq _081028FA
+ cmp r1, 0
+ bne _081028D8
+ movs r1, 0x1
+_081028D8:
+ ldr r2, _08102900
+ ldr r0, _08102904
+ lsls r1, 1
+ adds r0, r1, r0
+ ldrh r0, [r0]
+ ldrh r3, [r2, 0xE]
+ adds r0, r3
+ strh r0, [r2, 0xE]
+ ldr r0, _08102908
+ adds r1, r0
+ ldrh r0, [r2, 0x8]
+ ldrh r1, [r1]
+ orrs r0, r1
+ strh r0, [r2, 0x8]
+ movs r0, 0x2
+ bl sub_8103E04
+_081028FA:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08102900: .4byte 0x02000000
+_08102904: .4byte gUnknown_083ECE6C
+_08102908: .4byte gUnknown_083ECE5A
+ thumb_func_end sub_8102840
+
+ thumb_func_start sub_810290C
+sub_810290C: @ 810290C
+ push {r4,r5,lr}
+ movs r0, 0
+ movs r1, 0x1
+ bl sub_8102BA4
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r0, 0x1
+ movs r1, 0x2
+ bl sub_8102BA4
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r0, 0x2
+ movs r1, 0x3
+ bl sub_8102BA4
+ lsls r0, 24
+ lsrs r2, r0, 24
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_81029D4
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x9
+ beq _08102968
+ cmp r1, 0
+ beq _08102962
+ ldr r2, _081029C8
+ ldr r0, _081029CC
+ lsls r1, 1
+ adds r0, r1, r0
+ ldrh r0, [r0]
+ ldrh r3, [r2, 0xE]
+ adds r0, r3
+ strh r0, [r2, 0xE]
+ ldr r0, _081029D0
+ adds r1, r0
+ ldrh r0, [r2, 0x8]
+ ldrh r1, [r1]
+ orrs r0, r1
+ strh r0, [r2, 0x8]
+_08102962:
+ movs r0, 0x3
+ bl sub_8103E04
+_08102968:
+ movs r0, 0
+ movs r1, 0x3
+ bl sub_8102BA4
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r0, 0x1
+ movs r1, 0x2
+ bl sub_8102BA4
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r0, 0x2
+ movs r1, 0x1
+ bl sub_8102BA4
+ lsls r0, 24
+ lsrs r2, r0, 24
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_81029D4
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x9
+ beq _081029C2
+ cmp r1, 0
+ beq _081029BC
+ ldr r2, _081029C8
+ ldr r0, _081029CC
+ lsls r1, 1
+ adds r0, r1, r0
+ ldrh r0, [r0]
+ ldrh r3, [r2, 0xE]
+ adds r0, r3
+ strh r0, [r2, 0xE]
+ ldr r0, _081029D0
+ adds r1, r0
+ ldrh r0, [r2, 0x8]
+ ldrh r1, [r1]
+ orrs r0, r1
+ strh r0, [r2, 0x8]
+_081029BC:
+ movs r0, 0x4
+ bl sub_8103E04
+_081029C2:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081029C8: .4byte 0x02000000
+_081029CC: .4byte gUnknown_083ECE6C
+_081029D0: .4byte gUnknown_083ECE5A
+ thumb_func_end sub_810290C
+
+ thumb_func_start sub_81029D4
+sub_81029D4: @ 81029D4
+ push {lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r2, 24
+ lsrs r2, 24
+ cmp r3, r1
+ bne _081029F8
+ cmp r3, r2
+ bne _081029F8
+ ldr r0, _081029F4
+ adds r0, r3, r0
+ ldrb r0, [r0]
+ b _08102A1E
+ .align 2, 0
+_081029F4: .4byte gUnknown_083ECE52
+_081029F8:
+ cmp r3, 0
+ bne _08102A04
+ cmp r1, 0
+ bne _08102A04
+ cmp r2, 0x1
+ beq _08102A10
+_08102A04:
+ cmp r3, 0x1
+ bne _08102A14
+ cmp r1, 0x1
+ bne _08102A14
+ cmp r2, 0
+ bne _08102A14
+_08102A10:
+ movs r0, 0x6
+ b _08102A1E
+_08102A14:
+ cmp r3, 0x4
+ beq _08102A1C
+ movs r0, 0x9
+ b _08102A1E
+_08102A1C:
+ movs r0, 0
+_08102A1E:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81029D4
+
+ thumb_func_start sub_8102A24
+sub_8102A24: @ 8102A24
+ push {r4,lr}
+ ldr r4, _08102A40
+ adds r0, r4, 0
+ movs r1, 0x4
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ bl _call_via_r4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08102A40: .4byte sub_8102A64
+ thumb_func_end sub_8102A24
+
+ thumb_func_start sub_8102A44
+sub_8102A44: @ 8102A44
+ push {lr}
+ ldr r0, _08102A58
+ bl FindTaskIdByFunc
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xFF
+ beq _08102A5C
+ movs r0, 0
+ b _08102A5E
+ .align 2, 0
+_08102A58: .4byte sub_8102A64
+_08102A5C:
+ movs r0, 0x1
+_08102A5E:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8102A44
+
+ thumb_func_start sub_8102A64
+sub_8102A64: @ 8102A64
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r5, _08102A94
+ ldr r2, _08102A98
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r4, r1, r2
+_08102A76:
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ lsls r0, 2
+ adds r0, r5
+ ldr r1, [r0]
+ adds r0, r4, 0
+ bl _call_via_r1
+ lsls r0, 24
+ cmp r0, 0
+ bne _08102A76
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08102A94: .4byte gUnknown_083ECB20
+_08102A98: .4byte gTasks
+ thumb_func_end sub_8102A64
+
+ thumb_func_start sub_8102A9C
+sub_8102A9C: @ 8102A9C
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_8103E38
+ lsls r0, 24
+ cmp r0, 0
+ beq _08102AC8
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ ldr r0, _08102AC4
+ movs r1, 0xE
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _08102AC8
+ movs r0, 0x2
+ strh r0, [r4, 0x8]
+ movs r0, 0x1
+ b _08102ACA
+ .align 2, 0
+_08102AC4: .4byte 0x02000000
+_08102AC8:
+ movs r0, 0
+_08102ACA:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8102A9C
+
+ thumb_func_start sub_8102AD0
+sub_8102AD0: @ 8102AD0
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0xA]
+ subs r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ bne _08102B22
+ bl IsFanfareTaskInactive
+ lsls r0, 24
+ cmp r0, 0
+ beq _08102AF6
+ movs r0, 0x15
+ bl PlaySE
+_08102AF6:
+ ldr r2, _08102B70
+ ldrh r0, [r2, 0xE]
+ subs r0, 0x1
+ strh r0, [r2, 0xE]
+ ldrh r3, [r2, 0xC]
+ movs r0, 0xC
+ ldrsh r1, [r2, r0]
+ ldr r0, _08102B74
+ cmp r1, r0
+ bgt _08102B0E
+ adds r0, r3, 0x1
+ strh r0, [r2, 0xC]
+_08102B0E:
+ movs r0, 0x8
+ strh r0, [r4, 0xA]
+ ldr r0, _08102B78
+ ldrh r1, [r0, 0x2C]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08102B22
+ movs r0, 0x4
+ strh r0, [r4, 0xA]
+_08102B22:
+ bl IsFanfareTaskInactive
+ lsls r0, 24
+ cmp r0, 0
+ beq _08102B58
+ ldr r0, _08102B78
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ beq _08102B58
+ movs r0, 0x15
+ bl PlaySE
+ ldr r1, _08102B70
+ ldrh r0, [r1, 0xE]
+ ldrh r2, [r1, 0xC]
+ adds r0, r2
+ strh r0, [r1, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ ldr r2, _08102B7C
+ cmp r0, r2
+ ble _08102B54
+ strh r2, [r1, 0xC]
+_08102B54:
+ movs r0, 0
+ strh r0, [r1, 0xE]
+_08102B58:
+ ldr r0, _08102B70
+ movs r1, 0xE
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _08102B68
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+_08102B68:
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08102B70: .4byte 0x02000000
+_08102B74: .4byte 0x0000270e
+_08102B78: .4byte gMain
+_08102B7C: .4byte 0x0000270f
+ thumb_func_end sub_8102AD0
+
+ thumb_func_start sub_8102B80
+sub_8102B80: @ 8102B80
+ push {lr}
+ bl sub_8103E7C
+ lsls r0, 24
+ cmp r0, 0
+ beq _08102B9A
+ ldr r0, _08102BA0
+ bl FindTaskIdByFunc
+ lsls r0, 24
+ lsrs r0, 24
+ bl DestroyTask
+_08102B9A:
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08102BA0: .4byte sub_8102A64
+ thumb_func_end sub_8102B80
+
+ thumb_func_start sub_8102BA4
+sub_8102BA4: @ 8102BA4
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r4, r0, 0
+ ldr r0, _08102BF0
+ lsls r2, r4, 1
+ adds r0, 0x28
+ adds r2, r0
+ movs r3, 0
+ ldrsh r0, [r2, r3]
+ lsls r1, 16
+ asrs r1, 16
+ adds r0, r1
+ movs r1, 0x15
+ bl __modsi3
+ lsls r0, 16
+ lsrs r1, r0, 16
+ asrs r0, 16
+ cmp r0, 0
+ bge _08102BD4
+ adds r0, 0x15
+ lsls r0, 16
+ lsrs r1, r0, 16
+_08102BD4:
+ ldr r2, _08102BF4
+ lsls r1, 16
+ asrs r1, 16
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 2
+ adds r0, r4
+ adds r1, r0
+ adds r1, r2
+ ldrb r0, [r1]
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08102BF0: .4byte 0x02000000
+_08102BF4: .4byte gUnknown_083ECCB2
+ thumb_func_end sub_8102BA4
+
+ thumb_func_start sub_8102BF8
+sub_8102BF8: @ 8102BF8
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r5, r0, 0
+ lsls r1, 16
+ lsrs r4, r1, 16
+ movs r6, 0
+ ldr r0, _08102C40
+ lsls r1, r5, 1
+ adds r0, 0x1C
+ adds r1, r0
+ movs r2, 0
+ ldrsh r0, [r1, r2]
+ movs r1, 0x18
+ bl __modsi3
+ lsls r0, 16
+ cmp r0, 0
+ beq _08102C20
+ ldr r6, _08102C44
+_08102C20:
+ lsls r1, r4, 16
+ asrs r1, 16
+ lsls r0, r6, 16
+ asrs r0, 16
+ adds r1, r0
+ lsls r1, 16
+ asrs r1, 16
+ adds r0, r5, 0
+ bl sub_8102BA4
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08102C40: .4byte 0x02000000
+_08102C44: .4byte 0x0000ffff
+ thumb_func_end sub_8102BF8
+
+ thumb_func_start sub_8102C48
+sub_8102C48: @ 8102C48
+ push {lr}
+ ldr r1, _08102C7C
+ movs r2, 0x16
+ ldrsh r1, [r1, r2]
+ lsls r0, 16
+ asrs r0, 16
+ adds r1, r0
+ adds r0, r1, 0
+ movs r1, 0x6
+ bl __modsi3
+ lsls r0, 16
+ lsrs r1, r0, 16
+ asrs r0, 16
+ cmp r0, 0
+ bge _08102C6E
+ adds r0, 0x6
+ lsls r0, 16
+ lsrs r1, r0, 16
+_08102C6E:
+ ldr r0, _08102C80
+ lsls r1, 16
+ asrs r1, 16
+ adds r1, r0
+ ldrb r0, [r1]
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08102C7C: .4byte 0x02000000
+_08102C80: .4byte gUnknown_083ECCF1
+ thumb_func_end sub_8102C48
+
+ thumb_func_start sub_8102C84
+sub_8102C84: @ 8102C84
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ lsls r5, 24
+ ldr r6, _08102CC8
+ lsrs r5, 23
+ adds r4, r6, 0
+ adds r4, 0x1C
+ adds r4, r5, r4
+ lsls r1, 16
+ asrs r1, 16
+ ldrh r0, [r4]
+ adds r1, r0
+ strh r1, [r4]
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ movs r1, 0xFC
+ lsls r1, 1
+ bl __modsi3
+ strh r0, [r4]
+ adds r6, 0x28
+ adds r5, r6
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ movs r1, 0x18
+ bl __divsi3
+ movs r1, 0x15
+ subs r1, r0
+ strh r1, [r5]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08102CC8: .4byte 0x02000000
+ thumb_func_end sub_8102C84
+
+ thumb_func_start sub_8102CCC
+sub_8102CCC: @ 8102CCC
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r6, r0, 0
+ lsls r1, 16
+ lsrs r4, r1, 16
+ ldr r0, _08102D24
+ lsls r1, r6, 1
+ adds r0, 0x1C
+ adds r5, r1, r0
+ movs r1, 0
+ ldrsh r0, [r5, r1]
+ movs r1, 0x18
+ bl __modsi3
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r2, r0, 16
+ asrs r1, r2, 16
+ cmp r1, 0
+ beq _08102D18
+ lsls r0, r4, 16
+ asrs r0, 16
+ cmp r1, r0
+ bge _08102D00
+ lsrs r4, r2, 16
+_08102D00:
+ lsls r1, r4, 16
+ asrs r1, 16
+ adds r0, r6, 0
+ bl sub_8102C84
+ movs r1, 0
+ ldrsh r0, [r5, r1]
+ movs r1, 0x18
+ bl __modsi3
+ lsls r0, 16
+ lsrs r0, 16
+_08102D18:
+ lsls r0, 16
+ asrs r0, 16
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08102D24: .4byte 0x02000000
+ thumb_func_end sub_8102CCC
+
+ thumb_func_start sub_8102D28
+sub_8102D28: @ 8102D28
+ push {r4,lr}
+ ldr r4, _08102D58
+ lsls r0, 16
+ asrs r0, 16
+ ldrh r1, [r4, 0x14]
+ adds r0, r1
+ strh r0, [r4, 0x14]
+ movs r1, 0x14
+ ldrsh r0, [r4, r1]
+ movs r1, 0x78
+ bl __modsi3
+ strh r0, [r4, 0x14]
+ movs r1, 0x14
+ ldrsh r0, [r4, r1]
+ movs r1, 0x14
+ bl __divsi3
+ movs r1, 0x6
+ subs r1, r0
+ strh r1, [r4, 0x16]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08102D58: .4byte 0x02000000
+ thumb_func_end sub_8102D28
+
+ thumb_func_start sub_8102D5C
+sub_8102D5C: @ 8102D5C
+ push {r4,r5,lr}
+ lsls r0, 16
+ lsrs r4, r0, 16
+ ldr r5, _08102DA4
+ movs r1, 0x14
+ ldrsh r0, [r5, r1]
+ movs r1, 0x14
+ bl __modsi3
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r2, r0, 16
+ asrs r1, r2, 16
+ cmp r1, 0
+ beq _08102D9A
+ lsls r0, r4, 16
+ asrs r0, 16
+ cmp r1, r0
+ bge _08102D84
+ lsrs r4, r2, 16
+_08102D84:
+ lsls r0, r4, 16
+ asrs r0, 16
+ bl sub_8102D28
+ movs r1, 0x14
+ ldrsh r0, [r5, r1]
+ movs r1, 0x14
+ bl __modsi3
+ lsls r0, 16
+ lsrs r0, 16
+_08102D9A:
+ lsls r0, 16
+ asrs r0, 16
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08102DA4: .4byte 0x02000000
+ thumb_func_end sub_8102D5C
+
+ thumb_func_start sub_8102DA8
+sub_8102DA8: @ 8102DA8
+ push {r4-r7,lr}
+ movs r4, 0
+ ldr r5, _08102DE0
+ ldr r7, _08102DE4
+ ldr r6, _08102DE8
+_08102DB2:
+ adds r0, r5, 0
+ movs r1, 0x2
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r7
+ strh r4, [r1, 0x26]
+ adds r1, r4, r6
+ strb r0, [r1]
+ bl _call_via_r5
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x2
+ bls _08102DB2
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08102DE0: .4byte sub_8102E68
+_08102DE4: .4byte gTasks
+_08102DE8: .4byte 0x0200003a
+ thumb_func_end sub_8102DA8
+
+ thumb_func_start sub_8102DEC
+sub_8102DEC: @ 8102DEC
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r3, _08102E14
+ ldr r1, _08102E18
+ adds r1, 0x3A
+ adds r0, r1
+ ldrb r2, [r0]
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 3
+ adds r1, r3
+ movs r2, 0x1
+ strh r2, [r1, 0x8]
+ ldrb r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r3
+ strh r2, [r0, 0x24]
+ bx lr
+ .align 2, 0
+_08102E14: .4byte gTasks
+_08102E18: .4byte 0x02000000
+ thumb_func_end sub_8102DEC
+
+ thumb_func_start sub_8102E1C
+sub_8102E1C: @ 8102E1C
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _08102E38
+ ldr r1, _08102E3C
+ adds r1, 0x3A
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ movs r1, 0x2
+ strh r1, [r0, 0x8]
+ bx lr
+ .align 2, 0
+_08102E38: .4byte gTasks
+_08102E3C: .4byte 0x02000000
+ thumb_func_end sub_8102E1C
+
+ thumb_func_start sub_8102E40
+sub_8102E40: @ 8102E40
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _08102E60
+ ldr r1, _08102E64
+ adds r1, 0x3A
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldrh r0, [r0, 0x24]
+ lsls r0, 24
+ lsrs r0, 24
+ bx lr
+ .align 2, 0
+_08102E60: .4byte gTasks
+_08102E64: .4byte 0x02000000
+ thumb_func_end sub_8102E40
+
+ thumb_func_start sub_8102E68
+sub_8102E68: @ 8102E68
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r5, _08102E98
+ ldr r2, _08102E9C
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r4, r1, r2
+_08102E7A:
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ lsls r0, 2
+ adds r0, r5
+ ldr r1, [r0]
+ adds r0, r4, 0
+ bl _call_via_r1
+ lsls r0, 24
+ cmp r0, 0
+ bne _08102E7A
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08102E98: .4byte gUnknown_083ECB2C
+_08102E9C: .4byte gTasks
+ thumb_func_end sub_8102E68
+
+ thumb_func_start sub_8102EA0
+sub_8102EA0: @ 8102EA0
+ movs r0, 0
+ bx lr
+ thumb_func_end sub_8102EA0
+
+ thumb_func_start sub_8102EA4
+sub_8102EA4: @ 8102EA4
+ push {lr}
+ ldrh r0, [r0, 0x26]
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _08102EBC
+ movs r2, 0x1A
+ ldrsh r1, [r1, r2]
+ bl sub_8102C84
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08102EBC: .4byte 0x02000000
+ thumb_func_end sub_8102EA4
+
+ thumb_func_start sub_8102EC0
+sub_8102EC0: @ 8102EC0
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ movs r2, 0
+ strh r0, [r4, 0x8]
+ ldr r3, _08102F40
+ movs r1, 0x26
+ ldrsh r0, [r4, r1]
+ lsls r0, 1
+ adds r1, r3, 0
+ adds r1, 0x34
+ adds r0, r1
+ strh r2, [r0]
+ movs r1, 0x26
+ ldrsh r0, [r4, r1]
+ lsls r0, 1
+ adds r1, r3, 0
+ adds r1, 0x2E
+ adds r0, r1
+ strh r2, [r0]
+ ldrb r0, [r3, 0xA]
+ cmp r0, 0
+ bne _08102F28
+ ldrb r0, [r3, 0x4]
+ cmp r0, 0
+ beq _08102F12
+ ldrb r0, [r3, 0x6]
+ cmp r0, 0
+ beq _08102F12
+ ldr r1, _08102F44
+ movs r2, 0x26
+ ldrsh r0, [r4, r2]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ bl _call_via_r0
+ lsls r0, 24
+ cmp r0, 0
+ bne _08102F28
+_08102F12:
+ ldr r1, _08102F40
+ movs r0, 0
+ strb r0, [r1, 0x6]
+ ldr r1, _08102F48
+ movs r2, 0x26
+ ldrsh r0, [r4, r2]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ bl _call_via_r0
+_08102F28:
+ ldr r0, _08102F40
+ movs r2, 0x26
+ ldrsh r1, [r4, r2]
+ lsls r1, 1
+ adds r0, 0x2E
+ adds r1, r0
+ ldrh r0, [r1]
+ strh r0, [r4, 0xA]
+ movs r0, 0x1
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08102F40: .4byte 0x02000000
+_08102F44: .4byte gUnknown_083ECB40
+_08102F48: .4byte gUnknown_083ECB4C
+ thumb_func_end sub_8102EC0
+
+ thumb_func_start sub_8102F4C
+sub_8102F4C: @ 8102F4C
+ push {r4-r7,lr}
+ sub sp, 0xC
+ adds r4, r0, 0
+ ldr r1, _08102F8C
+ mov r0, sp
+ movs r2, 0xA
+ bl memcpy
+ ldr r5, _08102F90
+ movs r1, 0x26
+ ldrsh r0, [r4, r1]
+ lsls r6, r0, 1
+ adds r7, r5, 0
+ adds r7, 0x1C
+ adds r0, r6, r7
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ movs r1, 0x18
+ bl __modsi3
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r0, 0
+ beq _08102F94
+ ldrh r0, [r4, 0x26]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r6, 0x1A
+ ldrsh r1, [r5, r6]
+ bl sub_8102CCC
+ b _08102FC8
+ .align 2, 0
+_08102F8C: .4byte gUnknown_083ECB58
+_08102F90: .4byte 0x02000000
+_08102F94:
+ adds r0, r5, 0
+ adds r0, 0x2E
+ adds r1, r6, r0
+ ldrh r3, [r1]
+ movs r6, 0
+ ldrsh r0, [r1, r6]
+ cmp r0, 0
+ beq _08102FCC
+ subs r0, r3, 0x1
+ strh r0, [r1]
+ ldrh r0, [r4, 0x26]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r2, 0x1A
+ ldrsh r1, [r5, r2]
+ bl sub_8102C84
+ movs r6, 0x26
+ ldrsh r0, [r4, r6]
+ lsls r0, 1
+ adds r0, r7
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ movs r1, 0x18
+ bl __modsi3
+_08102FC8:
+ lsls r0, 16
+ lsrs r2, r0, 16
+_08102FCC:
+ cmp r2, 0
+ bne _08102FF8
+ ldr r1, _08103004
+ movs r2, 0x26
+ ldrsh r0, [r4, r2]
+ lsls r0, 1
+ adds r1, 0x2E
+ adds r0, r1
+ movs r6, 0
+ ldrsh r1, [r0, r6]
+ cmp r1, 0
+ bne _08102FF8
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ movs r2, 0xA
+ ldrsh r0, [r4, r2]
+ lsls r0, 1
+ add r0, sp
+ ldrh r0, [r0]
+ strh r0, [r4, 0xA]
+ strh r1, [r4, 0xC]
+_08102FF8:
+ movs r0, 0
+ add sp, 0xC
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08103004: .4byte 0x02000000
+ thumb_func_end sub_8102F4C
+
+ thumb_func_start sub_8103008
+sub_8103008: @ 8103008
+ push {r4,lr}
+ adds r2, r0, 0
+ ldr r1, _08103058
+ movs r3, 0x26
+ ldrsh r0, [r2, r3]
+ lsls r0, 1
+ adds r4, r1, 0
+ adds r4, 0x22
+ adds r0, r4
+ ldrh r1, [r2, 0xA]
+ strh r1, [r0]
+ ldrh r0, [r2, 0xA]
+ negs r3, r0
+ strh r3, [r2, 0xA]
+ ldrh r0, [r2, 0xC]
+ adds r0, 0x1
+ strh r0, [r2, 0xC]
+ movs r1, 0x3
+ ands r0, r1
+ cmp r0, 0
+ bne _08103038
+ lsls r0, r3, 16
+ asrs r0, 17
+ strh r0, [r2, 0xA]
+_08103038:
+ movs r0, 0xA
+ ldrsh r3, [r2, r0]
+ cmp r3, 0
+ bne _0810304E
+ strh r3, [r2, 0x8]
+ strh r3, [r2, 0x24]
+ movs r1, 0x26
+ ldrsh r0, [r2, r1]
+ lsls r0, 1
+ adds r0, r4
+ strh r3, [r0]
+_0810304E:
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08103058: .4byte 0x02000000
+ thumb_func_end sub_8103008
+
+ thumb_func_start sub_810305C
+sub_810305C: @ 810305C
+ push {r4,r5,lr}
+ ldr r4, _0810309C
+ ldrb r0, [r4, 0x4]
+ bl sub_810250C
+ lsls r0, 24
+ lsrs r3, r0, 24
+ adds r5, r3, 0
+ ldrb r1, [r4, 0x4]
+ movs r0, 0xC0
+ ands r0, r1
+ cmp r0, 0
+ beq _0810307A
+ movs r5, 0
+ movs r3, 0x1
+_0810307A:
+ ldr r1, _081030A0
+ movs r2, 0x12
+ ldrsh r0, [r4, r2]
+ subs r0, 0x1
+ lsls r0, 2
+ adds r0, r1
+ ldr r2, [r0]
+ adds r0, r5, 0
+ adds r1, r3, 0
+ bl _call_via_r2
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0810309C: .4byte 0x02000000
+_081030A0: .4byte gUnknown_083ECB64
+ thumb_func_end sub_810305C
+
+ thumb_func_start sub_81030A4
+sub_81030A4: @ 81030A4
+ push {r4,r5,lr}
+ adds r3, r0, 0
+ adds r4, r1, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r2, 24
+ lsrs r5, r2, 24
+ lsls r3, 16
+ asrs r3, 16
+ movs r0, 0
+ adds r1, r3, 0
+ bl sub_8102BF8
+ lsls r0, 24
+ lsrs r0, 24
+ adds r1, r0, 0
+ cmp r0, r4
+ beq _081030CC
+ cmp r0, r5
+ bne _081030D8
+_081030CC:
+ ldr r0, _081030D4
+ strb r1, [r0, 0x7]
+ movs r0, 0x1
+ b _081030DA
+ .align 2, 0
+_081030D4: .4byte 0x02000000
+_081030D8:
+ movs r0, 0
+_081030DA:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81030A4
+
+ thumb_func_start sub_81030E0
+sub_81030E0: @ 81030E0
+ push {r4,lr}
+ movs r1, 0x1
+ lsls r0, 16
+ asrs r4, r0, 16
+ subs r1, r4
+ lsls r1, 16
+ asrs r1, 16
+ movs r0, 0
+ bl sub_8102BF8
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ beq _08103128
+ movs r1, 0x2
+ subs r1, r4
+ lsls r1, 16
+ asrs r1, 16
+ movs r0, 0
+ bl sub_8102BF8
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ beq _08103128
+ movs r1, 0x3
+ subs r1, r4
+ lsls r1, 16
+ asrs r1, 16
+ movs r0, 0
+ bl sub_8102BF8
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ bne _0810312C
+_08103128:
+ movs r0, 0x1
+ b _0810312E
+_0810312C:
+ movs r0, 0
+_0810312E:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81030E0
+
+ thumb_func_start sub_8103134
+sub_8103134: @ 8103134
+ push {lr}
+ ldr r0, _08103148
+ ldrb r1, [r0, 0x4]
+ movs r0, 0xC2
+ ands r0, r1
+ cmp r0, 0
+ bne _0810314C
+ movs r0, 0
+ b _0810314E
+ .align 2, 0
+_08103148: .4byte 0x02000000
+_0810314C:
+ movs r0, 0x1
+_0810314E:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8103134
+
+ thumb_func_start sub_8103154
+sub_8103154: @ 8103154
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ lsls r1, 24
+ lsrs r7, r1, 24
+ movs r5, 0
+ movs r0, 0x2
+ mov r9, r0
+ ldr r6, _08103194
+_0810316E:
+ lsls r0, r5, 16
+ asrs r4, r0, 16
+ mov r1, r9
+ subs r0, r1, r4
+ lsls r0, 16
+ asrs r0, 16
+ mov r1, r8
+ adds r2, r7, 0
+ bl sub_81030A4
+ lsls r0, 24
+ cmp r0, 0
+ beq _08103198
+ movs r0, 0x2
+ strh r0, [r6, 0x34]
+ strh r5, [r6, 0x2E]
+ movs r0, 0x1
+ b _081031A6
+ .align 2, 0
+_08103194: .4byte 0x02000000
+_08103198:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ ble _0810316E
+ movs r0, 0
+_081031A6:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8103154
+
+ thumb_func_start sub_81031B4
+sub_81031B4: @ 81031B4
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ lsls r0, 24
+ lsrs r0, 24
+ mov r10, r0
+ lsls r1, 24
+ lsrs r1, 24
+ mov r9, r1
+ bl sub_8103134
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, 0
+ bne _081031E2
+ movs r0, 0
+ bl sub_81030E0
+ lsls r0, 24
+ cmp r0, 0
+ bne _0810321E
+_081031E2:
+ movs r0, 0x1
+ mov r8, r0
+ ldr r5, _0810320C
+ movs r7, 0
+_081031EA:
+ mov r1, r8
+ lsls r0, r1, 16
+ asrs r4, r0, 16
+ adds r0, r4, 0
+ mov r1, r10
+ mov r2, r9
+ bl sub_81030A4
+ lsls r0, 24
+ cmp r0, 0
+ beq _08103210
+ mov r0, r8
+ strh r0, [r5, 0x34]
+ strh r7, [r5, 0x2E]
+ movs r0, 0x1
+ b _081032B2
+ .align 2, 0
+_0810320C: .4byte 0x02000000
+_08103210:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ mov r8, r1
+ asrs r0, 16
+ cmp r0, 0x3
+ ble _081031EA
+_0810321E:
+ movs r0, 0x1
+ mov r8, r0
+ adds r7, r6, 0
+ ldr r6, _0810326C
+_08103226:
+ mov r1, r8
+ lsls r5, r1, 16
+ cmp r7, 0
+ bne _0810323A
+ asrs r0, r5, 16
+ bl sub_81030E0
+ lsls r0, 24
+ cmp r0, 0
+ bne _081032A0
+_0810323A:
+ movs r0, 0x1
+ asrs r4, r5, 16
+ subs r0, r4
+ lsls r0, 16
+ asrs r0, 16
+ mov r1, r10
+ mov r2, r9
+ bl sub_81030A4
+ lsls r0, 24
+ cmp r0, 0
+ beq _081032A0
+ cmp r4, 0x1
+ bne _08103270
+ cmp r7, 0
+ bne _08103266
+ movs r0, 0x3
+ bl sub_81030E0
+ lsls r0, 24
+ cmp r0, 0
+ bne _08103270
+_08103266:
+ movs r0, 0x3
+ strh r0, [r6, 0x34]
+ b _0810329A
+ .align 2, 0
+_0810326C: .4byte 0x02000000
+_08103270:
+ asrs r0, r5, 16
+ cmp r0, 0x3
+ bgt _08103294
+ adds r4, r0, 0x1
+ cmp r7, 0
+ bne _0810328A
+ lsls r0, r4, 16
+ asrs r0, 16
+ bl sub_81030E0
+ lsls r0, 24
+ cmp r0, 0
+ bne _08103294
+_0810328A:
+ movs r0, 0x2
+ strh r0, [r6, 0x34]
+ strh r4, [r6, 0x2E]
+ movs r0, 0x1
+ b _081032B2
+_08103294:
+ movs r0, 0x1
+ strh r0, [r6, 0x34]
+ mov r0, r8
+_0810329A:
+ strh r0, [r6, 0x2E]
+ movs r0, 0x1
+ b _081032B2
+_081032A0:
+ movs r1, 0x80
+ lsls r1, 9
+ adds r0, r5, r1
+ lsrs r1, r0, 16
+ mov r8, r1
+ asrs r0, 16
+ cmp r0, 0x4
+ ble _08103226
+ movs r0, 0
+_081032B2:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81031B4
+
+ thumb_func_start sub_81032C0
+sub_81032C0: @ 81032C0
+ push {lr}
+ ldr r1, _081032E0
+ ldr r0, _081032E4
+ movs r2, 0x12
+ ldrsh r0, [r0, r2]
+ subs r0, 0x1
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ bl _call_via_r0
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ .align 2, 0
+_081032E0: .4byte gUnknown_083ECB70
+_081032E4: .4byte 0x02000000
+ thumb_func_end sub_81032C0
+
+ thumb_func_start sub_81032E8
+sub_81032E8: @ 81032E8
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ ldr r0, _08103320
+ movs r6, 0
+ ldrh r1, [r0, 0x34]
+ mov r8, r1
+ movs r1, 0x34
+ ldrsh r7, [r0, r1]
+ adds r5, r0, 0
+_081032FC:
+ lsls r0, r6, 16
+ asrs r4, r0, 16
+ subs r1, r7, r4
+ lsls r1, 16
+ asrs r1, 16
+ movs r0, 0x1
+ bl sub_8102BF8
+ lsls r0, 24
+ lsrs r0, 24
+ ldrb r1, [r5, 0x7]
+ cmp r0, r1
+ bne _08103324
+ mov r0, r8
+ strh r0, [r5, 0x36]
+ strh r6, [r5, 0x30]
+ movs r0, 0x1
+ b _08103332
+ .align 2, 0
+_08103320: .4byte 0x02000000
+_08103324:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ ble _081032FC
+ movs r0, 0
+_08103332:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81032E8
+
+ thumb_func_start sub_810333C
+sub_810333C: @ 810333C
+ push {r4-r7,lr}
+ bl sub_81032E8
+ lsls r0, 24
+ cmp r0, 0
+ beq _0810339A
+ ldr r1, _0810338C
+ movs r2, 0x34
+ ldrsh r0, [r1, r2]
+ cmp r0, 0x2
+ beq _08103396
+ movs r2, 0x30
+ ldrsh r0, [r1, r2]
+ cmp r0, 0x1
+ ble _08103396
+ cmp r0, 0x4
+ beq _08103396
+ movs r5, 0
+ movs r7, 0x2
+ adds r6, r1, 0
+_08103364:
+ lsls r0, r5, 16
+ asrs r4, r0, 16
+ subs r1, r7, r4
+ lsls r1, 16
+ asrs r1, 16
+ movs r0, 0x1
+ bl sub_8102BF8
+ lsls r0, 24
+ lsrs r0, 24
+ ldrb r1, [r6, 0x7]
+ cmp r0, r1
+ beq _08103390
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ ble _08103364
+ b _08103396
+ .align 2, 0
+_0810338C: .4byte 0x02000000
+_08103390:
+ movs r0, 0x2
+ strh r0, [r6, 0x36]
+ strh r5, [r6, 0x30]
+_08103396:
+ movs r0, 0x1
+ b _081033D2
+_0810339A:
+ ldr r1, _081033D8
+ movs r2, 0x34
+ ldrsh r0, [r1, r2]
+ cmp r0, 0x2
+ beq _081033D0
+ movs r5, 0
+ movs r7, 0x2
+ adds r6, r1, 0
+_081033AA:
+ lsls r0, r5, 16
+ asrs r4, r0, 16
+ subs r1, r7, r4
+ lsls r1, 16
+ asrs r1, 16
+ movs r0, 0x1
+ bl sub_8102BF8
+ lsls r0, 24
+ lsrs r0, 24
+ ldrb r1, [r6, 0x7]
+ cmp r0, r1
+ beq _08103390
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ ble _081033AA
+_081033D0:
+ movs r0, 0
+_081033D2:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_081033D8: .4byte 0x02000000
+ thumb_func_end sub_810333C
+
+ thumb_func_start sub_81033DC
+sub_81033DC: @ 81033DC
+ push {r4,lr}
+ ldr r0, _08103414
+ ldrb r3, [r0, 0x7]
+ adds r4, r3, 0
+ ldrb r2, [r0, 0x4]
+ movs r1, 0x40
+ ands r1, r2
+ cmp r1, 0
+ beq _081033F6
+ movs r3, 0
+ cmp r4, 0
+ bne _081033F6
+ movs r3, 0x1
+_081033F6:
+ ldr r1, _08103418
+ movs r2, 0x12
+ ldrsh r0, [r0, r2]
+ subs r0, 0x1
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, [r0]
+ adds r0, r3, 0
+ bl _call_via_r1
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08103414: .4byte 0x02000000
+_08103418: .4byte gUnknown_083ECB7C
+ thumb_func_end sub_81033DC
+
+ thumb_func_start sub_810341C
+sub_810341C: @ 810341C
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ ldr r0, _0810345C
+ movs r5, 0
+ ldrh r1, [r0, 0x36]
+ mov r8, r1
+ movs r1, 0x36
+ ldrsh r7, [r0, r1]
+ adds r6, r0, 0
+_08103438:
+ lsls r0, r5, 16
+ asrs r4, r0, 16
+ subs r1, r7, r4
+ lsls r1, 16
+ asrs r1, 16
+ movs r0, 0x2
+ bl sub_8102BF8
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, r9
+ bne _08103460
+ mov r0, r8
+ strh r0, [r6, 0x38]
+ strh r5, [r6, 0x32]
+ movs r0, 0x1
+ b _0810346E
+ .align 2, 0
+_0810345C: .4byte 0x02000000
+_08103460:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ ble _08103438
+ movs r0, 0
+_0810346E:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_810341C
+
+ thumb_func_start sub_810347C
+sub_810347C: @ 810347C
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r0, _081034A0
+ movs r2, 0x34
+ ldrsh r1, [r0, r2]
+ movs r2, 0x36
+ ldrsh r0, [r0, r2]
+ cmp r1, r0
+ bne _081034B4
+ adds r0, r6, 0
+ bl sub_810341C
+ lsls r0, 24
+ lsrs r0, 24
+ b _081034EA
+ .align 2, 0
+_081034A0: .4byte 0x02000000
+_081034A4:
+ ldr r0, _081034B0
+ strh r5, [r0, 0x32]
+ mov r1, r8
+ strh r1, [r0, 0x38]
+ movs r0, 0x1
+ b _081034EA
+ .align 2, 0
+_081034B0: .4byte 0x02000000
+_081034B4:
+ movs r2, 0x1
+ mov r8, r2
+ cmp r1, 0x1
+ bne _081034C0
+ movs r0, 0x3
+ mov r8, r0
+_081034C0:
+ movs r5, 0
+ mov r7, r8
+_081034C4:
+ lsls r0, r5, 16
+ asrs r4, r0, 16
+ subs r1, r7, r4
+ lsls r1, 16
+ asrs r1, 16
+ movs r0, 0x2
+ bl sub_8102BF8
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, r6
+ beq _081034A4
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ ble _081034C4
+ movs r0, 0
+_081034EA:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_810347C
+
+ thumb_func_start sub_81034F4
+sub_81034F4: @ 81034F4
+ push {r4,r5,lr}
+ movs r5, 0
+ b _08103500
+_081034FA:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+_08103500:
+ lsls r0, r5, 16
+ asrs r4, r0, 16
+ adds r0, r4, 0
+ bl sub_81030E0
+ lsls r0, 24
+ cmp r0, 0
+ bne _081034FA
+ ldr r0, _0810351C
+ strh r5, [r0, 0x2E]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810351C: .4byte 0x02000000
+ thumb_func_end sub_81034F4
+
+ thumb_func_start sub_8103520
+sub_8103520: @ 8103520
+ push {lr}
+ adds r1, r0, 0
+ ldrb r0, [r1]
+ cmp r0, 0
+ bne _0810352E
+ movs r0, 0x1
+ b _08103538
+_0810352E:
+ cmp r0, 0x1
+ beq _08103536
+ movs r0, 0
+ b _0810353C
+_08103536:
+ movs r0, 0
+_08103538:
+ strb r0, [r1]
+ movs r0, 0x1
+_0810353C:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8103520
+
+ thumb_func_start sub_8103540
+sub_8103540: @ 8103540
+ push {lr}
+ ldr r1, _0810355C
+ ldr r0, _08103560
+ movs r2, 0x12
+ ldrsh r0, [r0, r2]
+ subs r0, 0x1
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ bl _call_via_r0
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810355C: .4byte gUnknown_083ECB88
+_08103560: .4byte 0x02000000
+ thumb_func_end sub_8103540
+
+ thumb_func_start sub_8103564
+sub_8103564: @ 8103564
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ ldr r4, _081035D0
+ movs r1, 0x34
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _081035E0
+ ldrb r1, [r4, 0x4]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _081035E0
+ ldrh r0, [r4, 0x2E]
+ movs r1, 0x2
+ subs r1, r0
+ lsls r1, 16
+ asrs r1, 16
+ movs r0, 0
+ bl sub_8102BF8
+ mov r1, sp
+ strb r0, [r1]
+ mov r0, sp
+ bl sub_8103520
+ lsls r0, 24
+ cmp r0, 0
+ beq _081035E0
+ movs r5, 0
+ mov r7, sp
+ movs r0, 0x2
+ mov r8, r0
+ adds r6, r4, 0
+_081035AA:
+ lsls r0, r5, 16
+ asrs r4, r0, 16
+ mov r0, r8
+ subs r1, r0, r4
+ lsls r1, 16
+ asrs r1, 16
+ movs r0, 0x1
+ bl sub_8102BF8
+ ldrb r1, [r7]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r1, r0
+ bne _081035D4
+ movs r0, 0x2
+ strh r0, [r6, 0x36]
+ strh r5, [r6, 0x30]
+ b _081035E0
+ .align 2, 0
+_081035D0: .4byte 0x02000000
+_081035D4:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ ble _081035AA
+_081035E0:
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8103564
+
+ thumb_func_start j5_08111E84
+j5_08111E84: @ 81035EC
+ push {r4-r7,lr}
+ sub sp, 0x4
+ ldr r4, _08103650
+ ldrh r2, [r4, 0x34]
+ movs r1, 0x34
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _08103660
+ ldrb r1, [r4, 0x4]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _08103660
+ ldrh r1, [r4, 0x2E]
+ subs r1, r2, r1
+ lsls r1, 16
+ asrs r1, 16
+ movs r0, 0
+ bl sub_8102BF8
+ mov r1, sp
+ strb r0, [r1]
+ mov r0, sp
+ bl sub_8103520
+ lsls r0, 24
+ cmp r0, 0
+ beq _08103660
+ movs r6, 0
+ mov r7, sp
+ adds r5, r4, 0
+_0810362A:
+ ldrh r1, [r5, 0x34]
+ lsls r0, r6, 16
+ asrs r4, r0, 16
+ subs r1, r4
+ lsls r1, 16
+ asrs r1, 16
+ movs r0, 0x1
+ bl sub_8102BF8
+ ldrb r1, [r7]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r1, r0
+ bne _08103654
+ ldrh r0, [r5, 0x34]
+ strh r0, [r5, 0x36]
+ strh r6, [r5, 0x30]
+ b _08103660
+ .align 2, 0
+_08103650: .4byte 0x02000000
+_08103654:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ ble _0810362A
+_08103660:
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end j5_08111E84
+
+ thumb_func_start sub_8103668
+sub_8103668: @ 8103668
+ push {r4-r7,lr}
+ sub sp, 0x4
+ ldr r4, _0810368C
+ ldrh r3, [r4, 0x34]
+ movs r0, 0x34
+ ldrsh r2, [r4, r0]
+ cmp r2, 0
+ beq _0810375A
+ ldrb r1, [r4, 0x4]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _0810375A
+ cmp r2, 0x2
+ bne _081036AE
+ bl j5_08111E84
+ b _0810375A
+ .align 2, 0
+_0810368C: .4byte 0x02000000
+_08103690:
+ ldr r0, _0810369C
+ movs r1, 0
+ strh r6, [r0, 0x36]
+ strh r1, [r0, 0x30]
+ b _0810375A
+ .align 2, 0
+_0810369C: .4byte 0x02000000
+_081036A0:
+ movs r0, 0x2
+ strh r0, [r5, 0x36]
+ adds r0, r4, 0x1
+ strh r0, [r5, 0x30]
+ b _0810375A
+_081036AA:
+ movs r0, 0x3
+ b _08103736
+_081036AE:
+ ldrh r1, [r4, 0x2E]
+ subs r1, r3, r1
+ lsls r1, 16
+ asrs r1, 16
+ movs r0, 0
+ bl sub_8102BF8
+ mov r1, sp
+ strb r0, [r1]
+ mov r0, sp
+ bl sub_8103520
+ lsls r0, 24
+ cmp r0, 0
+ beq _0810375A
+ movs r6, 0x2
+ movs r1, 0x34
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x3
+ bne _081036D8
+ movs r6, 0x3
+_081036D8:
+ movs r5, 0
+ mov r7, sp
+_081036DC:
+ lsls r0, r6, 16
+ asrs r4, r0, 16
+ movs r0, 0x1
+ adds r1, r4, 0
+ bl sub_8102BF8
+ ldrb r1, [r7]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r1, r0
+ beq _08103690
+ lsls r1, r5, 16
+ movs r0, 0x80
+ lsls r0, 9
+ adds r1, r0
+ subs r0, r4, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ lsrs r5, r1, 16
+ asrs r1, 16
+ cmp r1, 0x1
+ ble _081036DC
+ movs r6, 0x1
+ mov r7, sp
+ ldr r5, _0810373C
+_0810370E:
+ ldrh r1, [r5, 0x34]
+ lsls r0, r6, 16
+ asrs r4, r0, 16
+ subs r1, r4
+ lsls r1, 16
+ asrs r1, 16
+ movs r0, 0x1
+ bl sub_8102BF8
+ ldrb r1, [r7]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r1, r0
+ bne _0810374E
+ movs r1, 0x34
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x1
+ bne _08103740
+ cmp r4, 0x2
+ ble _081036A0
+_08103736:
+ strh r0, [r5, 0x36]
+ strh r6, [r5, 0x30]
+ b _0810375A
+ .align 2, 0
+_0810373C: .4byte 0x02000000
+_08103740:
+ cmp r4, 0x2
+ ble _081036AA
+ movs r0, 0x2
+ strh r0, [r5, 0x36]
+ subs r0, r4, 0x1
+ strh r0, [r5, 0x30]
+ b _0810375A
+_0810374E:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ ble _0810370E
+_0810375A:
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8103668
+
+ thumb_func_start sub_8103764
+sub_8103764: @ 8103764
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ adds r2, r1, 0
+ cmp r0, 0
+ bne _08103778
+ cmp r1, 0x1
+ beq _08103780
+_08103778:
+ cmp r0, 0x1
+ bne _08103784
+ cmp r2, 0
+ bne _08103784
+_08103780:
+ movs r0, 0x1
+ b _08103786
+_08103784:
+ movs r0, 0
+_08103786:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8103764
+
+ thumb_func_start sub_810378C
+sub_810378C: @ 810378C
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r2, 24
+ lsrs r2, 24
+ cmp r0, 0
+ bne _081037A6
+ cmp r1, 0x1
+ bne _081037A6
+ cmp r2, 0
+ beq _081037B2
+_081037A6:
+ cmp r0, 0x1
+ bne _081037B6
+ cmp r1, 0
+ bne _081037B6
+ cmp r2, 0x1
+ bne _081037B6
+_081037B2:
+ movs r0, 0x1
+ b _081037B8
+_081037B6:
+ movs r0, 0
+_081037B8:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_810378C
+
+ thumb_func_start sub_81037BC
+sub_81037BC: @ 81037BC
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r2, 24
+ lsrs r2, 24
+ cmp r0, 0
+ bne _081037D6
+ cmp r1, 0x1
+ bne _081037D6
+ cmp r2, 0
+ beq _08103802
+_081037D6:
+ cmp r0, 0x1
+ bne _081037E2
+ cmp r1, 0
+ bne _081037E2
+ cmp r2, 0x1
+ beq _08103802
+_081037E2:
+ cmp r0, 0
+ bne _081037EE
+ cmp r1, 0
+ bne _081037EE
+ cmp r2, 0x1
+ beq _08103802
+_081037EE:
+ cmp r0, 0x1
+ bne _081037FA
+ cmp r1, 0x1
+ bne _081037FA
+ cmp r2, 0
+ beq _08103802
+_081037FA:
+ cmp r0, r1
+ bne _08103806
+ cmp r0, r2
+ bne _08103806
+_08103802:
+ movs r0, 0
+ b _08103808
+_08103806:
+ movs r0, 0x1
+_08103808:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81037BC
+
+ thumb_func_start sub_810380C
+sub_810380C: @ 810380C
+ push {lr}
+ ldr r1, _08103828
+ ldr r0, _0810382C
+ movs r2, 0x12
+ ldrsh r0, [r0, r2]
+ subs r0, 0x1
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ bl _call_via_r0
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08103828: .4byte gUnknown_083ECB94
+_0810382C: .4byte 0x02000000
+ thumb_func_end sub_810380C
+
+ thumb_func_start sub_8103830
+sub_8103830: @ 8103830
+ push {r4-r7,lr}
+ movs r6, 0
+ ldr r7, _08103868
+ ldrh r1, [r7, 0x2E]
+ movs r4, 0x2
+ subs r1, r4, r1
+ lsls r1, 16
+ asrs r1, 16
+ movs r0, 0
+ bl sub_8102BF8
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldrh r0, [r7, 0x30]
+ subs r4, r0
+ lsls r4, 16
+ asrs r4, 16
+ movs r0, 0x1
+ adds r1, r4, 0
+ bl sub_8102BF8
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r5, r1
+ bne _081038A0
+ movs r4, 0x2
+ b _08103876
+ .align 2, 0
+_08103868: .4byte 0x02000000
+_0810386C:
+ lsls r0, r6, 16
+ movs r1, 0x80
+ lsls r1, 9
+ adds r0, r1
+ lsrs r6, r0, 16
+_08103876:
+ lsls r1, r6, 16
+ asrs r1, 16
+ subs r1, r4, r1
+ lsls r1, 16
+ asrs r1, 16
+ movs r0, 0x2
+ bl sub_8102BF8
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r5, r0
+ beq _0810386C
+ cmp r5, 0
+ bne _08103896
+ cmp r0, 0x1
+ beq _0810386C
+_08103896:
+ cmp r5, 0x1
+ bne _08103900
+ cmp r0, 0
+ beq _0810386C
+ b _08103900
+_081038A0:
+ adds r0, r5, 0
+ bl sub_8103764
+ lsls r0, 24
+ cmp r0, 0
+ beq _08103900
+ ldrb r1, [r7, 0x4]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _081038DC
+ movs r7, 0x2
+_081038B8:
+ lsls r0, r6, 16
+ asrs r4, r0, 16
+ subs r1, r7, r4
+ lsls r1, 16
+ asrs r1, 16
+ movs r0, 0x2
+ bl sub_8102BF8
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r5, r0
+ beq _08103900
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ ble _081038B8
+_081038DC:
+ movs r6, 0
+ movs r7, 0x2
+ b _081038E8
+_081038E2:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+_081038E8:
+ lsls r0, r6, 16
+ asrs r4, r0, 16
+ subs r1, r7, r4
+ lsls r1, 16
+ asrs r1, 16
+ movs r0, 0x2
+ bl sub_8102BF8
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r5, r0
+ beq _081038E2
+_08103900:
+ ldr r0, _0810390C
+ strh r6, [r0, 0x32]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810390C: .4byte 0x02000000
+ thumb_func_end sub_8103830
+
+ thumb_func_start sub_8103910
+sub_8103910: @ 8103910
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ movs r0, 0
+ str r0, [sp]
+ ldr r4, _08103978
+ movs r2, 0x36
+ ldrsh r1, [r4, r2]
+ cmp r1, 0
+ beq _081039A6
+ ldrh r2, [r4, 0x34]
+ movs r3, 0x34
+ ldrsh r0, [r4, r3]
+ cmp r0, r1
+ bne _081039A6
+ ldrb r1, [r4, 0x4]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _081039A6
+ ldrh r1, [r4, 0x2E]
+ subs r1, r2, r1
+ lsls r1, 16
+ asrs r1, 16
+ movs r0, 0
+ bl sub_8102BF8
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldrh r1, [r4, 0x36]
+ ldrh r0, [r4, 0x30]
+ subs r1, r0
+ lsls r1, 16
+ asrs r1, 16
+ movs r0, 0x1
+ bl sub_8102BF8
+ lsls r0, 24
+ lsrs r6, r0, 24
+ adds r0, r7, 0
+ adds r1, r6, 0
+ bl sub_8103764
+ lsls r0, 24
+ cmp r0, 0
+ beq _081039A6
+ movs r5, 0
+ b _08103982
+ .align 2, 0
+_08103978: .4byte 0x02000000
+_0810397C:
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+_08103982:
+ lsls r6, r5, 16
+ asrs r5, r6, 16
+ cmp r5, 0x4
+ bgt _081039A6
+ ldr r0, _08103A34
+ ldrh r1, [r0, 0x36]
+ subs r1, r5
+ lsls r1, 16
+ asrs r1, 16
+ movs r0, 0x2
+ bl sub_8102BF8
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r7, r4
+ bne _0810397C
+ lsrs r6, 16
+ str r6, [sp]
+_081039A6:
+ ldr r0, _08103A34
+ mov r9, r0
+_081039AA:
+ movs r5, 0x1
+ movs r1, 0
+ mov r8, r1
+ ldr r2, [sp]
+ lsls r2, 16
+ mov r10, r2
+_081039B6:
+ mov r3, r9
+ ldrh r1, [r3, 0x2E]
+ lsls r5, 16
+ asrs r4, r5, 16
+ subs r1, r4, r1
+ lsls r1, 16
+ asrs r1, 16
+ movs r0, 0
+ bl sub_8102BF8
+ lsls r0, 24
+ lsrs r7, r0, 24
+ mov r0, r9
+ ldrh r1, [r0, 0x30]
+ subs r1, r4, r1
+ lsls r1, 16
+ asrs r1, 16
+ movs r0, 0x1
+ bl sub_8102BF8
+ lsls r0, 24
+ lsrs r6, r0, 24
+ mov r1, r10
+ asrs r0, r1, 16
+ subs r4, r0
+ lsls r4, 16
+ asrs r4, 16
+ movs r0, 0x2
+ adds r1, r4, 0
+ bl sub_8102BF8
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r0, r7, 0
+ adds r1, r6, 0
+ adds r2, r4, 0
+ bl sub_81037BC
+ lsls r0, 24
+ cmp r0, 0
+ bne _08103A38
+ adds r0, r7, 0
+ adds r1, r6, 0
+ adds r2, r4, 0
+ bl sub_810378C
+ lsls r0, 24
+ cmp r0, 0
+ beq _08103A24
+ mov r2, r9
+ ldrb r1, [r2, 0x4]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _08103A38
+_08103A24:
+ mov r3, r8
+ lsls r0, r3, 16
+ movs r1, 0x80
+ lsls r1, 9
+ adds r0, r1
+ lsrs r0, 16
+ mov r8, r0
+ b _08103A46
+ .align 2, 0
+_08103A34: .4byte 0x02000000
+_08103A38:
+ movs r2, 0x80
+ lsls r2, 9
+ adds r0, r5, r2
+ lsrs r5, r0, 16
+ asrs r0, 16
+ cmp r0, 0x3
+ ble _081039B6
+_08103A46:
+ mov r3, r8
+ cmp r3, 0
+ beq _08103A5C
+ ldr r1, [sp]
+ lsls r0, r1, 16
+ movs r2, 0x80
+ lsls r2, 9
+ adds r0, r2
+ lsrs r0, 16
+ str r0, [sp]
+ b _081039AA
+_08103A5C:
+ ldr r0, _08103A74
+ mov r3, sp
+ ldrh r3, [r3]
+ strh r3, [r0, 0x32]
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08103A74: .4byte 0x02000000
+ thumb_func_end sub_8103910
+
+ thumb_func_start sub_8103A78
+sub_8103A78: @ 8103A78
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ bl sub_8103910
+ ldr r4, _08103B10
+ movs r0, 0x36
+ ldrsh r1, [r4, r0]
+ cmp r1, 0
+ beq _08103B20
+ ldrh r2, [r4, 0x34]
+ movs r3, 0x34
+ ldrsh r0, [r4, r3]
+ cmp r0, r1
+ beq _08103B20
+ ldrb r1, [r4, 0x4]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _08103B20
+ ldrh r1, [r4, 0x2E]
+ subs r1, r2, r1
+ lsls r1, 16
+ asrs r1, 16
+ movs r0, 0
+ bl sub_8102BF8
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldrh r1, [r4, 0x36]
+ ldrh r0, [r4, 0x30]
+ subs r1, r0
+ lsls r1, 16
+ asrs r1, 16
+ movs r0, 0x1
+ bl sub_8102BF8
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r0, r6, 0
+ adds r1, r5, 0
+ bl sub_8103764
+ lsls r0, 24
+ cmp r0, 0
+ beq _08103B20
+ movs r1, 0x1
+ movs r2, 0x34
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x1
+ bne _08103AE0
+ movs r1, 0x3
+_08103AE0:
+ movs r3, 0
+ lsls r1, 16
+ mov r8, r1
+ adds r7, r4, 0
+_08103AE8:
+ ldrh r2, [r7, 0x32]
+ lsls r0, r3, 16
+ asrs r5, r0, 16
+ adds r2, r5, r2
+ mov r3, r8
+ asrs r1, r3, 16
+ subs r1, r2
+ lsls r1, 16
+ asrs r1, 16
+ movs r0, 0x2
+ bl sub_8102BF8
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r6, r4
+ bne _08103B14
+ ldrh r0, [r7, 0x32]
+ adds r0, r5, r0
+ strh r0, [r7, 0x32]
+ b _08103B20
+ .align 2, 0
+_08103B10: .4byte 0x02000000
+_08103B14:
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ ble _08103AE8
+_08103B20:
+ ldr r7, _08103B90
+_08103B22:
+ ldrh r0, [r7, 0x2E]
+ movs r1, 0x1
+ subs r1, r0
+ lsls r1, 16
+ asrs r1, 16
+ movs r0, 0
+ bl sub_8102BF8
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldrh r0, [r7, 0x30]
+ movs r1, 0x2
+ subs r1, r0
+ lsls r1, 16
+ asrs r1, 16
+ movs r0, 0x1
+ bl sub_8102BF8
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldrh r0, [r7, 0x32]
+ movs r1, 0x3
+ subs r1, r0
+ lsls r1, 16
+ asrs r1, 16
+ movs r0, 0x2
+ bl sub_8102BF8
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r0, r6, 0
+ adds r1, r5, 0
+ adds r2, r4, 0
+ bl sub_81037BC
+ lsls r0, 24
+ cmp r0, 0
+ bne _08103B94
+ adds r0, r6, 0
+ adds r1, r5, 0
+ adds r2, r4, 0
+ bl sub_810378C
+ lsls r0, 24
+ cmp r0, 0
+ beq _08103B88
+ ldrb r1, [r7, 0x4]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _08103B94
+_08103B88:
+ ldrh r0, [r7, 0x32]
+ adds r0, 0x1
+ strh r0, [r7, 0x32]
+ b _08103B22
+ .align 2, 0
+_08103B90: .4byte 0x02000000
+_08103B94:
+ ldr r7, _08103C04
+_08103B96:
+ ldrh r0, [r7, 0x2E]
+ movs r1, 0x3
+ subs r1, r0
+ lsls r1, 16
+ asrs r1, 16
+ movs r0, 0
+ bl sub_8102BF8
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldrh r0, [r7, 0x30]
+ movs r1, 0x2
+ subs r1, r0
+ lsls r1, 16
+ asrs r1, 16
+ movs r0, 0x1
+ bl sub_8102BF8
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldrh r0, [r7, 0x32]
+ movs r1, 0x1
+ subs r1, r0
+ lsls r1, 16
+ asrs r1, 16
+ movs r0, 0x2
+ bl sub_8102BF8
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r0, r6, 0
+ adds r1, r5, 0
+ adds r2, r4, 0
+ bl sub_81037BC
+ lsls r0, 24
+ cmp r0, 0
+ bne _08103C08
+ adds r0, r6, 0
+ adds r1, r5, 0
+ adds r2, r4, 0
+ bl sub_810378C
+ lsls r0, 24
+ cmp r0, 0
+ beq _08103BFC
+ ldrb r1, [r7, 0x4]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _08103C08
+_08103BFC:
+ ldrh r0, [r7, 0x32]
+ adds r0, 0x1
+ strh r0, [r7, 0x32]
+ b _08103B96
+ .align 2, 0
+_08103C04: .4byte 0x02000000
+_08103C08:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8103A78
+
+ thumb_func_start sub_8103C14
+sub_8103C14: @ 8103C14
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r5, _08103C40
+ adds r0, r5, 0
+ movs r1, 0x5
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _08103C44
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ strh r4, [r1, 0x26]
+ bl _call_via_r5
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08103C40: .4byte sub_8103C48
+_08103C44: .4byte gTasks
+ thumb_func_end sub_8103C14
+
+ thumb_func_start sub_8103C48
+sub_8103C48: @ 8103C48
+ push {r4,lr}
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r3, _08103C70
+ ldr r2, _08103C74
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ movs r4, 0x8
+ ldrsh r2, [r0, r4]
+ lsls r2, 2
+ adds r2, r3
+ ldr r2, [r2]
+ bl _call_via_r2
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08103C70: .4byte gUnknown_083ECBA0
+_08103C74: .4byte gTasks
+ thumb_func_end sub_8103C48
+
+ thumb_func_start sub_8103C78
+sub_8103C78: @ 8103C78
+ push {r4,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ ldr r1, _08103CA8
+ movs r2, 0x26
+ ldrsh r0, [r4, r2]
+ lsls r0, 1
+ adds r0, r1
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ movs r1, 0x73
+ str r1, [sp]
+ movs r1, 0x62
+ movs r2, 0x63
+ movs r3, 0x72
+ bl sub_81065A8
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08103CA8: .4byte gUnknown_083ECBAC
+ thumb_func_end sub_8103C78
+
+ thumb_func_start sub_8103CAC
+sub_8103CAC: @ 8103CAC
+ push {lr}
+ adds r1, r0, 0
+ ldrh r0, [r1, 0xA]
+ adds r0, 0x1
+ strh r0, [r1, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xB
+ ble _08103CC4
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+_08103CC4:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8103CAC
+
+ thumb_func_start sub_8103CC8
+sub_8103CC8: @ 8103CC8
+ push {r4,lr}
+ sub sp, 0x4
+ lsls r4, r1, 24
+ lsrs r4, 24
+ ldr r1, _08103CFC
+ movs r2, 0x26
+ ldrsh r0, [r0, r2]
+ lsls r0, 1
+ adds r0, r1
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ movs r1, 0x53
+ str r1, [sp]
+ movs r1, 0x42
+ movs r2, 0x43
+ movs r3, 0x52
+ bl sub_81065A8
+ adds r0, r4, 0
+ bl DestroyTask
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08103CFC: .4byte gUnknown_083ECBAC
+ thumb_func_end sub_8103CC8
+
+ thumb_func_start sub_8103D00
+sub_8103D00: @ 8103D00
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _08103D20
+ lsls r1, r0, 2
+ adds r1, r2
+ ldr r2, [r1]
+ ldr r1, _08103D24
+ adds r0, r1
+ ldrb r1, [r0]
+ adds r0, r2, 0
+ movs r2, 0x2
+ bl LoadPalette
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08103D20: .4byte gUnknown_083EDD08
+_08103D24: .4byte gUnknown_083EDD30
+ thumb_func_end sub_8103D00
+
+ thumb_func_start sub_8103D28
+sub_8103D28: @ 8103D28
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _08103D48
+ lsls r1, r0, 2
+ adds r1, r2
+ ldr r2, [r1]
+ ldr r1, _08103D4C
+ adds r0, r1
+ ldrb r1, [r0]
+ adds r0, r2, 0
+ movs r2, 0x2
+ bl LoadPalette
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08103D48: .4byte gUnknown_083EDD1C
+_08103D4C: .4byte gUnknown_083EDD30
+ thumb_func_end sub_8103D28
+
+ thumb_func_start sub_8103D50
+sub_8103D50: @ 8103D50
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r1, r0, 24
+ movs r4, 0
+ ldr r0, _08103D84
+ adds r0, r1, r0
+ ldrb r0, [r0]
+ cmp r4, r0
+ bcs _08103D7C
+ ldr r7, _08103D88
+ adds r6, r0, 0
+ lsls r5, r1, 1
+_08103D68:
+ adds r0, r4, r5
+ adds r0, r7
+ ldrb r0, [r0]
+ bl sub_8103D00
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, r6
+ bcc _08103D68
+_08103D7C:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08103D84: .4byte gUnknown_083EDD3B
+_08103D88: .4byte gUnknown_083EDD35
+ thumb_func_end sub_8103D50
+
+ thumb_func_start sub_8103D8C
+sub_8103D8C: @ 8103D8C
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r1, r0, 24
+ movs r4, 0
+ ldr r0, _08103DC0
+ adds r0, r1, r0
+ ldrb r0, [r0]
+ cmp r4, r0
+ bcs _08103DB8
+ ldr r7, _08103DC4
+ adds r6, r0, 0
+ lsls r5, r1, 1
+_08103DA4:
+ adds r0, r4, r5
+ adds r0, r7
+ ldrb r0, [r0]
+ bl sub_8103D28
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, r6
+ bcc _08103DA4
+_08103DB8:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08103DC0: .4byte gUnknown_083EDD3B
+_08103DC4: .4byte gUnknown_083EDD35
+ thumb_func_end sub_8103D8C
+
+ thumb_func_start sub_8103DC8
+sub_8103DC8: @ 8103DC8
+ push {r4-r6,lr}
+ movs r4, 0
+ ldr r6, _08103DF8
+ ldr r5, _08103DFC
+_08103DD0:
+ ldr r0, _08103E00
+ bl CreateInvisibleSprite
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r6
+ strh r4, [r1, 0x2E]
+ adds r1, r4, r5
+ strb r0, [r1]
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x4
+ bls _08103DD0
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08103DF8: .4byte gSprites
+_08103DFC: .4byte 0x02000044
+_08103E00: .4byte sub_8103EE4
+ thumb_func_end sub_8103DC8
+
+ thumb_func_start sub_8103E04
+sub_8103E04: @ 8103E04
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _08103E30
+ adds r1, 0x44
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _08103E34
+ adds r0, r1
+ movs r2, 0
+ movs r1, 0x1
+ strh r1, [r0, 0x30]
+ movs r1, 0x4
+ strh r1, [r0, 0x32]
+ strh r2, [r0, 0x34]
+ strh r2, [r0, 0x36]
+ movs r1, 0x2
+ strh r1, [r0, 0x38]
+ strh r2, [r0, 0x3C]
+ bx lr
+ .align 2, 0
+_08103E30: .4byte 0x02000000
+_08103E34: .4byte gSprites
+ thumb_func_end sub_8103E04
+
+ thumb_func_start sub_8103E38
+sub_8103E38: @ 8103E38
+ push {r4,r5,lr}
+ movs r2, 0
+ ldr r4, _08103E60
+ ldr r3, _08103E64
+_08103E40:
+ adds r0, r2, r4
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r0, r3
+ movs r5, 0x30
+ ldrsh r0, [r1, r5]
+ cmp r0, 0
+ beq _08103E68
+ movs r5, 0x32
+ ldrsh r0, [r1, r5]
+ cmp r0, 0
+ beq _08103E68
+ movs r0, 0
+ b _08103E74
+ .align 2, 0
+_08103E60: .4byte 0x02000044
+_08103E64: .4byte gSprites
+_08103E68:
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x4
+ bls _08103E40
+ movs r0, 0x1
+_08103E74:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8103E38
+
+ thumb_func_start sub_8103E7C
+sub_8103E7C: @ 8103E7C
+ push {r4,r5,lr}
+ movs r4, 0
+ ldr r5, _08103E94
+_08103E82:
+ adds r0, r4, r5
+ ldrb r0, [r0]
+ bl sub_8103EAC
+ lsls r0, 24
+ cmp r0, 0
+ bne _08103E98
+ movs r0, 0
+ b _08103EA4
+ .align 2, 0
+_08103E94: .4byte 0x02000044
+_08103E98:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x4
+ bls _08103E82
+ movs r0, 0x1
+_08103EA4:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8103E7C
+
+ thumb_func_start sub_8103EAC
+sub_8103EAC: @ 8103EAC
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ ldr r0, _08103EC8
+ adds r1, r0
+ movs r2, 0x30
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ bne _08103ECC
+ movs r0, 0x1
+ b _08103EDE
+ .align 2, 0
+_08103EC8: .4byte gSprites
+_08103ECC:
+ ldrh r2, [r1, 0x3C]
+ movs r3, 0x3C
+ ldrsh r0, [r1, r3]
+ cmp r0, 0
+ beq _08103EDA
+ movs r0, 0
+ strh r0, [r1, 0x30]
+_08103EDA:
+ lsls r0, r2, 24
+ lsrs r0, 24
+_08103EDE:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8103EAC
+
+ thumb_func_start sub_8103EE4
+sub_8103EE4: @ 8103EE4
+ push {r4-r7,lr}
+ adds r2, r0, 0
+ movs r1, 0x30
+ ldrsh r0, [r2, r1]
+ cmp r0, 0
+ beq _08103F66
+ ldrh r0, [r2, 0x34]
+ subs r0, 0x1
+ strh r0, [r2, 0x34]
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ bne _08103F4E
+ movs r0, 0
+ strh r0, [r2, 0x3C]
+ movs r6, 0x1
+ strh r6, [r2, 0x34]
+ ldrh r1, [r2, 0x38]
+ ldrh r3, [r2, 0x36]
+ adds r0, r1, r3
+ strh r0, [r2, 0x36]
+ movs r4, 0x4
+ ldrh r5, [r2, 0x32]
+ movs r7, 0x32
+ ldrsh r3, [r2, r7]
+ cmp r3, 0
+ beq _08103F20
+ movs r4, 0x8
+_08103F20:
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0
+ bgt _08103F38
+ strh r6, [r2, 0x3C]
+ negs r0, r1
+ strh r0, [r2, 0x38]
+ cmp r3, 0
+ beq _08103F4E
+ subs r0, r5, 0x1
+ strh r0, [r2, 0x32]
+ b _08103F40
+_08103F38:
+ cmp r0, r4
+ blt _08103F40
+ negs r0, r1
+ strh r0, [r2, 0x38]
+_08103F40:
+ movs r1, 0x32
+ ldrsh r0, [r2, r1]
+ cmp r0, 0
+ beq _08103F4E
+ ldrh r0, [r2, 0x34]
+ lsls r0, 1
+ strh r0, [r2, 0x34]
+_08103F4E:
+ ldr r1, _08103F6C
+ movs r3, 0x2E
+ ldrsh r0, [r2, r3]
+ adds r0, r1
+ ldrb r0, [r0]
+ ldrh r3, [r2, 0x36]
+ lsls r3, 24
+ lsrs r3, 24
+ adds r1, r3, 0
+ adds r2, r3, 0
+ bl sub_8085D08
+_08103F66:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08103F6C: .4byte gUnknown_083EDD30
+ thumb_func_end sub_8103EE4
+
+ thumb_func_start sub_8103F70
+sub_8103F70: @ 8103F70
+ push {r4,lr}
+ ldr r4, _08103F98
+ adds r0, r4, 0
+ movs r1, 0x6
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _08103F9C
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ movs r2, 0x1
+ strh r2, [r1, 0xE]
+ bl _call_via_r4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08103F98: .4byte sub_8103FE8
+_08103F9C: .4byte gTasks
+ thumb_func_end sub_8103F70
+
+ thumb_func_start sub_8103FA0
+sub_8103FA0: @ 8103FA0
+ push {lr}
+ ldr r0, _08103FC4
+ bl FindTaskIdByFunc
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r1, _08103FC8
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0xC
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ beq _08103FCC
+ movs r0, 0
+ b _08103FE0
+ .align 2, 0
+_08103FC4: .4byte sub_8103FE8
+_08103FC8: .4byte gTasks
+_08103FCC:
+ adds r0, r2, 0
+ bl DestroyTask
+ ldr r0, _08103FE4
+ ldr r0, [r0]
+ movs r1, 0x10
+ movs r2, 0x20
+ bl LoadPalette
+ movs r0, 0x1
+_08103FE0:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08103FE4: .4byte gUnknown_083EDDAC
+ thumb_func_end sub_8103FA0
+
+ thumb_func_start sub_8103FE8
+sub_8103FE8: @ 8103FE8
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _08104040
+ adds r2, r1, r0
+ ldrh r0, [r2, 0xA]
+ subs r0, 0x1
+ strh r0, [r2, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ bne _08104026
+ movs r0, 0x4
+ strh r0, [r2, 0xA]
+ ldrh r1, [r2, 0xE]
+ ldrh r3, [r2, 0xC]
+ adds r0, r1, r3
+ strh r0, [r2, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0
+ beq _08104022
+ cmp r0, 0x2
+ bne _08104026
+_08104022:
+ negs r0, r1
+ strh r0, [r2, 0xE]
+_08104026:
+ ldr r0, _08104044
+ movs r3, 0xC
+ ldrsh r1, [r2, r3]
+ lsls r1, 2
+ adds r1, r0
+ ldr r0, [r1]
+ movs r1, 0x10
+ movs r2, 0x20
+ bl LoadPalette
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08104040: .4byte gTasks
+_08104044: .4byte gUnknown_083EDDA0
+ thumb_func_end sub_8103FE8
+
+ thumb_func_start sub_8104048
+sub_8104048: @ 8104048
+ push {lr}
+ ldr r0, _0810405C
+ movs r1, 0x8
+ bl CreateTask
+ ldr r1, _08104060
+ adds r1, 0x3E
+ strb r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810405C: .4byte sub_81040E8
+_08104060: .4byte 0x02000000
+ thumb_func_end sub_8104048
+
+ thumb_func_start sub_8104064
+sub_8104064: @ 8104064
+ push {r4,lr}
+ ldr r0, _08104090
+ adds r0, 0x3E
+ ldrb r0, [r0]
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ ldr r0, _08104094
+ adds r4, r0
+ adds r0, r4, 0
+ bl sub_810421C
+ movs r1, 0x1
+ strh r1, [r4, 0x8]
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ strh r1, [r4, 0x26]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08104090: .4byte 0x02000000
+_08104094: .4byte gTasks
+ thumb_func_end sub_8104064
+
+ thumb_func_start sub_8104098
+sub_8104098: @ 8104098
+ push {r4,lr}
+ ldr r0, _081040C0
+ adds r0, 0x3E
+ ldrb r0, [r0]
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ ldr r0, _081040C4
+ adds r4, r0
+ adds r0, r4, 0
+ bl sub_810421C
+ movs r0, 0x3
+ strh r0, [r4, 0x8]
+ movs r0, 0x1
+ strh r0, [r4, 0x26]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081040C0: .4byte 0x02000000
+_081040C4: .4byte gTasks
+ thumb_func_end sub_8104098
+
+ thumb_func_start sub_81040C8
+sub_81040C8: @ 81040C8
+ ldr r2, _081040E0
+ ldr r0, _081040E4
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldrh r0, [r0, 0x26]
+ lsls r0, 24
+ lsrs r0, 24
+ bx lr
+ .align 2, 0
+_081040E0: .4byte gTasks
+_081040E4: .4byte 0x02000000
+ thumb_func_end sub_81040C8
+
+ thumb_func_start sub_81040E8
+sub_81040E8: @ 81040E8
+ push {lr}
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r3, _08104110
+ ldr r2, _08104114
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ movs r2, 0x8
+ ldrsh r1, [r0, r2]
+ lsls r1, 2
+ adds r1, r3
+ ldr r1, [r1]
+ bl _call_via_r1
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08104110: .4byte gUnknown_083ECBB4
+_08104114: .4byte gTasks
+ thumb_func_end sub_81040E8
+
+ thumb_func_start nullsub_68
+nullsub_68: @ 8104118
+ bx lr
+ thumb_func_end nullsub_68
+
+ thumb_func_start sub_810411C
+sub_810411C: @ 810411C
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0xA]
+ lsls r0, 19
+ movs r1, 0xA0
+ lsls r1, 13
+ adds r0, r1
+ asrs r0, 16
+ movs r1, 0x14
+ bl sub_8105B1C
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0xC]
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_810411C
+
+ thumb_func_start sub_8104144
+sub_8104144: @ 8104144
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r2, _08104174
+ movs r0, 0xC
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0x3C
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ beq _0810419E
+ ldrh r1, [r4, 0xA]
+ adds r0, r1, 0x2
+ lsls r0, 16
+ lsrs r2, r0, 16
+ movs r0, 0
+ lsls r1, 16
+ asrs r1, 16
+ cmp r1, 0x1
+ bne _08104178
+ movs r0, 0x1
+ b _0810417E
+ .align 2, 0
+_08104174: .4byte gSprites
+_08104178:
+ cmp r1, 0x10
+ bne _0810417E
+ movs r0, 0x2
+_0810417E:
+ lsls r1, r2, 16
+ asrs r1, 15
+ ldr r2, _081041A4
+ adds r1, r2
+ adds r1, 0x80
+ ldr r2, _081041A8
+ lsls r0, 2
+ adds r0, r2
+ ldrh r0, [r0]
+ strh r0, [r1]
+ ldrb r0, [r4, 0xC]
+ bl sub_8105B88
+ movs r0, 0
+ strh r0, [r4, 0x8]
+ strh r0, [r4, 0x26]
+_0810419E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081041A4: .4byte 0x0600e800
+_081041A8: .4byte gUnknown_083ECBC4
+ thumb_func_end sub_8104144
+
+ thumb_func_start sub_81041AC
+sub_81041AC: @ 81041AC
+ push {r4,lr}
+ adds r3, r0, 0
+ ldrh r1, [r3, 0xA]
+ adds r0, r1, 0x2
+ lsls r0, 16
+ lsrs r4, r0, 16
+ movs r2, 0
+ lsls r1, 16
+ asrs r1, 16
+ cmp r1, 0x1
+ bne _081041C6
+ movs r2, 0x1
+ b _081041CC
+_081041C6:
+ cmp r1, 0x10
+ bne _081041CC
+ movs r2, 0x2
+_081041CC:
+ movs r1, 0xC
+ ldrsh r0, [r3, r1]
+ cmp r0, 0
+ bne _081041F0
+ lsls r0, r4, 16
+ asrs r0, 15
+ ldr r1, _08104214
+ adds r0, r1
+ adds r0, 0x80
+ ldr r1, _08104218
+ lsls r2, 2
+ adds r1, 0x2
+ adds r2, r1
+ ldrh r1, [r2]
+ strh r1, [r0]
+ ldrh r0, [r3, 0xA]
+ subs r0, 0x1
+ strh r0, [r3, 0xA]
+_081041F0:
+ ldrh r0, [r3, 0xC]
+ adds r0, 0x1
+ strh r0, [r3, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x13
+ ble _08104202
+ movs r0, 0
+ strh r0, [r3, 0xC]
+_08104202:
+ movs r1, 0xA
+ ldrsh r0, [r3, r1]
+ cmp r0, 0
+ bne _0810420E
+ strh r0, [r3, 0x8]
+ strh r0, [r3, 0x26]
+_0810420E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08104214: .4byte 0x0600e800
+_08104218: .4byte gUnknown_083ECBC4
+ thumb_func_end sub_81041AC
+
+ thumb_func_start sub_810421C
+sub_810421C: @ 810421C
+ push {lr}
+ movs r1, 0x2
+ adds r2, r0, 0
+ adds r2, 0x8
+ movs r3, 0
+_08104226:
+ lsls r0, r1, 1
+ adds r0, r2, r0
+ strh r3, [r0]
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0xF
+ bls _08104226
+ pop {r0}
+ bx r0
+ thumb_func_end sub_810421C
+
+ thumb_func_start sub_810423C
+sub_810423C: @ 810423C
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r2, 0x3
+ ldr r6, _08104268
+ movs r4, 0
+ ldr r0, _0810426C
+ mov r8, r0
+ ldr r1, _08104270
+ mov r12, r1
+ cmp r4, r5
+ bge _081042A6
+ ldr r7, _08104274
+_0810425A:
+ movs r3, 0
+ lsls r0, r4, 16
+ asrs r0, 16
+ cmp r0, 0
+ bne _08104278
+ movs r3, 0x1
+ b _0810427E
+ .align 2, 0
+_08104268: .4byte 0x0600e800
+_0810426C: .4byte gTasks
+_08104270: .4byte 0x02000000
+_08104274: .4byte gUnknown_083ECBC4
+_08104278:
+ cmp r0, 0xF
+ bne _0810427E
+ movs r3, 0x2
+_0810427E:
+ lsls r2, 16
+ asrs r2, 16
+ lsls r1, r2, 1
+ adds r1, r6
+ adds r1, 0x80
+ lsls r0, r3, 2
+ adds r0, r7
+ ldrh r0, [r0]
+ strh r0, [r1]
+ lsls r0, r4, 16
+ movs r1, 0x80
+ lsls r1, 9
+ adds r0, r1
+ adds r2, 0x1
+ lsls r2, 16
+ lsrs r2, 16
+ lsrs r4, r0, 16
+ asrs r0, 16
+ cmp r0, r5
+ blt _0810425A
+_081042A6:
+ lsls r1, r4, 16
+ asrs r0, r1, 16
+ cmp r0, 0xF
+ bgt _081042F0
+ ldr r7, _081042BC
+_081042B0:
+ movs r3, 0
+ asrs r0, r1, 16
+ cmp r0, 0
+ bne _081042C0
+ movs r3, 0x1
+ b _081042C6
+ .align 2, 0
+_081042BC: .4byte gUnknown_083ECBC4 + 0x2
+_081042C0:
+ cmp r0, 0xF
+ bne _081042C6
+ movs r3, 0x2
+_081042C6:
+ lsls r2, 16
+ asrs r2, 16
+ lsls r1, r2, 1
+ adds r1, r6
+ adds r1, 0x80
+ lsls r0, r3, 2
+ adds r0, r7
+ ldrh r0, [r0]
+ strh r0, [r1]
+ lsls r0, r4, 16
+ movs r1, 0x80
+ lsls r1, 9
+ adds r0, r1
+ lsrs r4, r0, 16
+ adds r2, 0x1
+ lsls r2, 16
+ lsrs r2, 16
+ lsls r1, r4, 16
+ asrs r0, r1, 16
+ cmp r0, 0xF
+ ble _081042B0
+_081042F0:
+ mov r0, r12
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ add r0, r8
+ strh r5, [r0, 0xA]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_810423C
+
+ thumb_func_start sub_810430C
+sub_810430C: @ 810430C
+ push {r4,lr}
+ ldr r4, _08104328
+ adds r0, r4, 0
+ movs r1, 0x7
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ bl _call_via_r4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08104328: .4byte sub_810434C
+ thumb_func_end sub_810430C
+
+ thumb_func_start sub_810432C
+sub_810432C: @ 810432C
+ push {lr}
+ ldr r0, _08104340
+ bl FindTaskIdByFunc
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xFF
+ beq _08104344
+ movs r0, 0
+ b _08104346
+ .align 2, 0
+_08104340: .4byte sub_810434C
+_08104344:
+ movs r0, 0x1
+_08104346:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_810432C
+
+ thumb_func_start sub_810434C
+sub_810434C: @ 810434C
+ push {lr}
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r3, _08104374
+ ldr r2, _08104378
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ movs r2, 0x8
+ ldrsh r1, [r0, r2]
+ lsls r1, 2
+ adds r1, r3
+ ldr r1, [r1]
+ bl _call_via_r1
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08104374: .4byte gUnknown_083ECBD0
+_08104378: .4byte gTasks
+ thumb_func_end sub_810434C
+
+ thumb_func_start sub_810437C
+sub_810437C: @ 810437C
+ push {lr}
+ ldr r1, _081043DC
+ movs r2, 0
+ strb r2, [r1, 0xA]
+ strh r2, [r1, 0x14]
+ strh r2, [r1, 0x16]
+ ldrh r1, [r0, 0x8]
+ adds r1, 0x1
+ strh r1, [r0, 0x8]
+ strh r2, [r0, 0xA]
+ movs r1, 0x1E
+ strh r1, [r0, 0xC]
+ movs r1, 0xA0
+ lsls r1, 3
+ strh r1, [r0, 0x10]
+ ldr r0, _081043E0
+ strh r2, [r0]
+ ldr r0, _081043E4
+ strh r2, [r0]
+ ldr r0, _081043E8
+ strh r2, [r0]
+ adds r0, 0x2
+ strh r2, [r0]
+ movs r0, 0x1E
+ movs r1, 0
+ bl sub_8104A40
+ bl sub_81051C0
+ bl sub_8105100
+ bl sub_81052EC
+ bl sub_81053A0
+ bl sub_810545C
+ bl sub_8102680
+ bl StopMapMusic
+ movs r0, 0xC4
+ lsls r0, 1
+ bl PlayNewMapMusic
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081043DC: .4byte 0x02000000
+_081043E0: .4byte gSpriteCoordOffsetX
+_081043E4: .4byte gSpriteCoordOffsetY
+_081043E8: .4byte REG_BG1HOFS
+ thumb_func_end sub_810437C
+
+ thumb_func_start sub_81043EC
+sub_81043EC: @ 81043EC
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r1, _0810445C
+ ldrh r0, [r1]
+ subs r0, 0x8
+ strh r0, [r1]
+ ldrh r2, [r4, 0xA]
+ adds r2, 0x8
+ strh r2, [r4, 0xA]
+ movs r1, 0xA
+ ldrsh r0, [r4, r1]
+ adds r0, 0xF0
+ movs r1, 0xFF
+ ands r0, r1
+ lsrs r3, r0, 3
+ ldr r1, _08104460
+ ldr r0, _08104464
+ ands r2, r0
+ strh r2, [r1]
+ adds r2, r3, 0
+ movs r1, 0xC
+ ldrsh r0, [r4, r1]
+ cmp r2, r0
+ beq _08104438
+ movs r1, 0xE
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x12
+ bgt _08104438
+ strh r3, [r4, 0xC]
+ ldrh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 19
+ strh r0, [r4, 0xE]
+ movs r0, 0xE
+ ldrsh r1, [r4, r0]
+ adds r0, r2, 0
+ bl sub_8104A40
+_08104438:
+ movs r1, 0xA
+ ldrsh r0, [r4, r1]
+ cmp r0, 0xC7
+ ble _0810444A
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ movs r1, 0
+ strh r0, [r4, 0x8]
+ strh r1, [r4, 0xE]
+_0810444A:
+ ldrh r0, [r4, 0x10]
+ lsls r0, 16
+ asrs r0, 24
+ bl sub_8102D28
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810445C: .4byte gSpriteCoordOffsetX
+_08104460: .4byte REG_BG1HOFS
+_08104464: .4byte 0x000001ff
+ thumb_func_end sub_81043EC
+
+ thumb_func_start sub_8104468
+sub_8104468: @ 8104468
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x10]
+ lsls r0, 16
+ asrs r0, 24
+ bl sub_8102D28
+ ldrh r0, [r4, 0x12]
+ adds r0, 0x1
+ strh r0, [r4, 0x12]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3B
+ ble _08104492
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ bl sub_8105578
+ bl sub_81056F0
+_08104492:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8104468
+
+ thumb_func_start sub_8104498
+sub_8104498: @ 8104498
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x14
+ adds r7, r0, 0
+ ldr r1, _08104534
+ mov r0, sp
+ movs r2, 0x4
+ bl memcpy
+ add r0, sp, 0x4
+ mov r8, r0
+ ldr r1, _08104538
+ movs r2, 0x8
+ bl memcpy
+ add r6, sp, 0xC
+ ldr r1, _0810453C
+ adds r0, r6, 0
+ movs r2, 0x8
+ bl memcpy
+ ldrh r0, [r7, 0x10]
+ lsls r0, 16
+ asrs r0, 24
+ bl sub_8102D28
+ ldrh r0, [r7, 0x10]
+ subs r0, 0x4
+ strh r0, [r7, 0x10]
+ lsls r0, 16
+ asrs r0, 24
+ movs r5, 0x4
+ subs r5, r0
+ lsls r4, r5, 1
+ add r8, r4
+ mov r1, r8
+ movs r2, 0
+ ldrsh r0, [r1, r2]
+ bl sub_8105688
+ adds r6, r4
+ movs r1, 0
+ ldrsh r0, [r6, r1]
+ bl sub_81057E8
+ ldr r0, _08104540
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _08104544
+ adds r0, r1
+ mov r2, sp
+ adds r1, r2, r5
+ ldrb r1, [r1]
+ bl StartSpriteAnimIfDifferent
+ movs r1, 0x10
+ ldrsh r0, [r7, r1]
+ movs r1, 0x80
+ lsls r1, 1
+ cmp r0, r1
+ bgt _08104526
+ ldrh r0, [r7, 0x8]
+ adds r0, 0x1
+ strh r0, [r7, 0x8]
+ strh r1, [r7, 0x10]
+ movs r0, 0
+ strh r0, [r7, 0x12]
+_08104526:
+ add sp, 0x14
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08104534: .4byte gUnknown_083ECC1C
+_08104538: .4byte gUnknown_083ECC20
+_0810453C: .4byte gUnknown_083ECC28
+_08104540: .4byte 0x02000000
+_08104544: .4byte gSprites
+ thumb_func_end sub_8104498
+
+ thumb_func_start sub_8104548
+sub_8104548: @ 8104548
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x10]
+ lsls r0, 16
+ asrs r0, 24
+ bl sub_8102D28
+ ldrh r0, [r4, 0x12]
+ adds r0, 0x1
+ strh r0, [r4, 0x12]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4F
+ ble _0810458A
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ movs r0, 0
+ strh r0, [r4, 0x12]
+ movs r0, 0x2
+ bl sub_81057E8
+ ldr r0, _08104590
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _08104594
+ adds r0, r1
+ movs r1, 0x3
+ bl StartSpriteAnimIfDifferent
+_0810458A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08104590: .4byte 0x02000000
+_08104594: .4byte gSprites
+ thumb_func_end sub_8104548
+
+ thumb_func_start sub_8104598
+sub_8104598: @ 8104598
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x10]
+ lsls r0, 16
+ asrs r0, 24
+ bl sub_8102D28
+ ldrb r0, [r4, 0x10]
+ adds r0, 0x80
+ strh r0, [r4, 0x10]
+ ldrh r0, [r4, 0x12]
+ adds r0, 0x1
+ strh r0, [r4, 0x12]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4F
+ ble _081045C4
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ movs r0, 0
+ strh r0, [r4, 0x12]
+_081045C4:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8104598
+
+ thumb_func_start sub_81045CC
+sub_81045CC: @ 81045CC
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x10]
+ lsls r0, 16
+ asrs r0, 24
+ bl sub_8102D28
+ ldrb r0, [r4, 0x10]
+ adds r0, 0x40
+ strh r0, [r4, 0x10]
+ ldrh r0, [r4, 0x12]
+ adds r0, 0x1
+ strh r0, [r4, 0x12]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x27
+ ble _08104634
+ movs r0, 0
+ strh r0, [r4, 0x12]
+ ldr r1, _0810460C
+ ldrb r0, [r1, 0x5]
+ cmp r0, 0
+ beq _08104610
+ ldrb r1, [r1, 0xA]
+ movs r2, 0x14
+ ldrsh r0, [r4, r2]
+ cmp r1, r0
+ bgt _0810462E
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ b _0810462C
+ .align 2, 0
+_0810460C: .4byte 0x02000000
+_08104610:
+ movs r1, 0x14
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x3
+ ble _0810461E
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ b _0810462C
+_0810461E:
+ ldrh r0, [r4, 0x14]
+ bl sub_81026DC
+ lsls r0, 24
+ cmp r0, 0
+ beq _0810462E
+ movs r0, 0xE
+_0810462C:
+ strh r0, [r4, 0x8]
+_0810462E:
+ ldrh r0, [r4, 0x14]
+ adds r0, 0x1
+ strh r0, [r4, 0x14]
+_08104634:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81045CC
+
+ thumb_func_start sub_810463C
+sub_810463C: @ 810463C
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ ldr r6, _08104660
+ movs r1, 0x14
+ ldrsh r0, [r6, r1]
+ movs r1, 0x14
+ bl __modsi3
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r0, 0
+ beq _08104664
+ ldrh r0, [r4, 0x10]
+ lsls r0, 16
+ asrs r0, 24
+ bl sub_8102D5C
+ b _08104688
+ .align 2, 0
+_08104660: .4byte 0x02000000
+_08104664:
+ movs r0, 0x1
+ bl sub_8102C48
+ lsls r0, 24
+ lsrs r0, 24
+ ldrb r1, [r6, 0x5]
+ cmp r0, r1
+ beq _08104692
+ ldrh r0, [r4, 0x10]
+ lsls r0, 16
+ asrs r0, 24
+ bl sub_8102D28
+ movs r1, 0x14
+ ldrsh r0, [r6, r1]
+ movs r1, 0x14
+ bl __modsi3
+_08104688:
+ lsls r0, 16
+ lsrs r5, r0, 16
+ ldrb r0, [r4, 0x10]
+ adds r0, 0x40
+ strh r0, [r4, 0x10]
+_08104692:
+ lsls r0, r5, 16
+ asrs r5, r0, 16
+ cmp r5, 0
+ bne _081046B4
+ movs r0, 0x1
+ bl sub_8102C48
+ ldr r1, _081046BC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrb r1, [r1, 0x5]
+ cmp r0, r1
+ bne _081046B4
+ strh r5, [r4, 0x10]
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+_081046B4:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081046BC: .4byte 0x02000000
+ thumb_func_end sub_810463C
+
+ thumb_func_start sub_81046C0
+sub_81046C0: @ 81046C0
+ push {r4-r7,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x10]
+ adds r0, 0x1
+ movs r7, 0
+ strh r0, [r4, 0x10]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3B
+ ble _08104758
+ bl StopMapMusic
+ bl sub_81056C0
+ bl sub_8105804
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ ldr r5, _08104710
+ ldrb r0, [r5, 0x5]
+ cmp r0, 0
+ bne _0810471C
+ movs r0, 0xA0
+ strh r0, [r4, 0x10]
+ adds r0, r5, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _08104714
+ adds r0, r1
+ movs r1, 0x5
+ bl StartSpriteAnimIfDifferent
+ ldr r0, _08104718
+ bl PlayFanfare
+ b _08104758
+ .align 2, 0
+_08104710: .4byte 0x02000000
+_08104714: .4byte gSprites
+_08104718: .4byte 0x00000187
+_0810471C:
+ movs r0, 0xC0
+ strh r0, [r4, 0x10]
+ adds r6, r5, 0
+ adds r6, 0x3F
+ ldrb r1, [r6]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r4, _08104760
+ adds r0, r4
+ movs r1, 0x4
+ bl StartSpriteAnimIfDifferent
+ ldrb r1, [r6]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ adds r0, 0x2B
+ strb r7, [r0]
+ ldrb r0, [r5, 0x2]
+ cmp r0, 0
+ beq _08104750
+ bl sub_8104098
+ strb r7, [r5, 0x2]
+_08104750:
+ movs r0, 0xC3
+ lsls r0, 1
+ bl PlayFanfare
+_08104758:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08104760: .4byte gSprites
+ thumb_func_end sub_81046C0
+
+ thumb_func_start sub_8104764
+sub_8104764: @ 8104764
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r1, [r4, 0x10]
+ movs r2, 0x10
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ beq _0810477C
+ subs r0, r1, 0x1
+ strh r0, [r4, 0x10]
+ lsls r0, 16
+ cmp r0, 0
+ bne _0810478C
+_0810477C:
+ bl sub_81040C8
+ lsls r0, 24
+ cmp r0, 0
+ bne _0810478C
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+_0810478C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8104764
+
+ thumb_func_start sub_8104794
+sub_8104794: @ 8104794
+ push {r4,lr}
+ adds r3, r0, 0
+ ldr r1, _081047D4
+ ldrh r0, [r1]
+ subs r0, 0x8
+ strh r0, [r1]
+ ldrh r2, [r3, 0xA]
+ adds r2, 0x8
+ strh r2, [r3, 0xA]
+ ldrh r0, [r3, 0xE]
+ adds r0, 0x8
+ strh r0, [r3, 0xE]
+ movs r1, 0xA
+ ldrsh r0, [r3, r1]
+ subs r0, 0x8
+ movs r1, 0xFF
+ ands r0, r1
+ lsrs r4, r0, 3
+ ldr r1, _081047D8
+ ldr r0, _081047DC
+ ands r2, r0
+ strh r2, [r1]
+ ldrh r0, [r3, 0xE]
+ lsls r0, 16
+ asrs r0, 19
+ cmp r0, 0x19
+ bgt _081047E0
+ adds r0, r4, 0
+ bl sub_8104A88
+ b _081047E6
+ .align 2, 0
+_081047D4: .4byte gSpriteCoordOffsetX
+_081047D8: .4byte REG_BG1HOFS
+_081047DC: .4byte 0x000001ff
+_081047E0:
+ ldrh r0, [r3, 0x8]
+ adds r0, 0x1
+ strh r0, [r3, 0x8]
+_081047E6:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8104794
+
+ thumb_func_start sub_81047EC
+sub_81047EC: @ 81047EC
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ ldr r4, _08104834
+ movs r6, 0
+ strb r6, [r4, 0xB]
+ ldrb r0, [r4, 0x5]
+ strb r0, [r4, 0xA]
+ ldr r0, _08104838
+ strh r6, [r0]
+ ldr r0, _0810483C
+ strh r6, [r0]
+ movs r0, 0x8
+ strh r0, [r4, 0x1A]
+ bl sub_810514C
+ bl sub_81054B8
+ bl sub_8105524
+ adds r0, r4, 0
+ adds r0, 0x60
+ ldrh r0, [r0]
+ bl PlayNewMapMusic
+ ldrb r0, [r4, 0xA]
+ cmp r0, 0
+ bne _08104844
+ ldr r0, _08104840
+ bl FindTaskIdByFunc
+ lsls r0, 24
+ lsrs r0, 24
+ bl DestroyTask
+ b _0810485A
+ .align 2, 0
+_08104834: .4byte 0x02000000
+_08104838: .4byte gSpriteCoordOffsetX
+_0810483C: .4byte REG_BG1HOFS
+_08104840: .4byte sub_810434C
+_08104844:
+ movs r0, 0x4
+ bl sub_8104CAC
+ bl dp15_jump_random_unknown
+ strh r0, [r5, 0xA]
+ strh r6, [r5, 0xC]
+ strh r6, [r5, 0xE]
+ ldrh r0, [r5, 0x8]
+ adds r0, 0x1
+ strh r0, [r5, 0x8]
+_0810485A:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81047EC
+
+ thumb_func_start sub_8104860
+sub_8104860: @ 8104860
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ ldr r5, _0810487C
+ ldrh r0, [r5, 0x1A]
+ lsls r6, r0, 16
+ asrs r1, r6, 16
+ movs r2, 0xA
+ ldrsh r0, [r4, r2]
+ cmp r1, r0
+ bne _08104880
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _081048A2
+ .align 2, 0
+_0810487C: .4byte 0x02000000
+_08104880:
+ movs r1, 0x1C
+ ldrsh r0, [r5, r1]
+ movs r1, 0x18
+ bl __modsi3
+ lsls r0, 16
+ cmp r0, 0
+ bne _081048A2
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x1
+ strh r0, [r4, 0xC]
+ movs r1, 0x7
+ ands r0, r1
+ cmp r0, 0
+ bne _081048A2
+ asrs r0, r6, 17
+ strh r0, [r5, 0x1A]
+_081048A2:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8104860
+
+ thumb_func_start sub_81048A8
+sub_81048A8: @ 81048A8
+ push {lr}
+ bl sub_8104E18
+ lsls r0, 24
+ cmp r0, 0
+ beq _081048C2
+ ldr r0, _081048C8
+ bl FindTaskIdByFunc
+ lsls r0, 24
+ lsrs r0, 24
+ bl DestroyTask
+_081048C2:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081048C8: .4byte sub_810434C
+ thumb_func_end sub_81048A8
+
+ thumb_func_start sub_81048CC
+sub_81048CC: @ 81048CC
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ bl sub_81054B8
+ bl sub_81056C0
+ bl sub_8105804
+ bl sub_8105854
+ ldr r5, _08104934
+ ldr r3, _08104938
+ adds r0, r3, 0
+ adds r0, 0x4E
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+ adds r3, 0x3F
+ ldrb r1, [r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ movs r1, 0x5
+ bl StartSpriteAnimIfDifferent
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ movs r1, 0
+ strh r0, [r4, 0x8]
+ movs r0, 0x4
+ strh r0, [r4, 0x10]
+ strh r1, [r4, 0x12]
+ bl StopMapMusic
+ ldr r0, _0810493C
+ bl PlayFanfare
+ movs r0, 0xB2
+ bl PlaySE
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08104934: .4byte gSprites
+_08104938: .4byte 0x02000000
+_0810493C: .4byte 0x00000187
+ thumb_func_end sub_81048CC
+
+ thumb_func_start sub_8104940
+sub_8104940: @ 8104940
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldr r0, _081049B8
+ ldrh r1, [r4, 0x10]
+ strh r1, [r0]
+ ldr r0, _081049BC
+ strh r1, [r0]
+ ldrh r1, [r4, 0x12]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0810495E
+ ldrh r0, [r4, 0x10]
+ negs r0, r0
+ strh r0, [r4, 0x10]
+_0810495E:
+ ldrh r0, [r4, 0x12]
+ adds r0, 0x1
+ strh r0, [r4, 0x12]
+ movs r1, 0x1F
+ ands r0, r1
+ cmp r0, 0
+ bne _08104974
+ ldrh r0, [r4, 0x10]
+ lsls r0, 16
+ asrs r0, 17
+ strh r0, [r4, 0x10]
+_08104974:
+ movs r0, 0x10
+ ldrsh r5, [r4, r0]
+ cmp r5, 0
+ bne _081049B0
+ bl sub_81058A0
+ bl sub_81058C4
+ bl sub_8105284
+ bl sub_81059E8
+ ldr r2, _081049C0
+ ldr r0, _081049C4
+ adds r0, 0x4E
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ adds r0, 0x3E
+ ldrb r2, [r0]
+ movs r1, 0x5
+ negs r1, r1
+ ands r1, r2
+ strb r1, [r0]
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ strh r5, [r4, 0x12]
+_081049B0:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081049B8: .4byte gSpriteCoordOffsetY
+_081049BC: .4byte REG_BG1VOFS
+_081049C0: .4byte gSprites
+_081049C4: .4byte 0x02000000
+ thumb_func_end sub_8104940
+
+ thumb_func_start sub_81049C8
+sub_81049C8: @ 81049C8
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _081049F0
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, _081049F4
+ strh r1, [r0]
+ bl sub_8105ACC
+ lsls r0, 24
+ cmp r0, 0
+ beq _081049EA
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ bl sub_8105AEC
+_081049EA:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081049F0: .4byte gSpriteCoordOffsetY
+_081049F4: .4byte REG_BG1VOFS
+ thumb_func_end sub_81049C8
+
+ thumb_func_start sub_81049F8
+sub_81049F8: @ 81049F8
+ push {lr}
+ ldr r0, _08104A30
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, _08104A34
+ strh r1, [r0]
+ ldr r0, _08104A38
+ adds r0, 0x60
+ ldrh r0, [r0]
+ bl PlayNewMapMusic
+ bl sub_810514C
+ bl sub_8105554
+ bl sub_8105524
+ bl sub_81059B8
+ ldr r0, _08104A3C
+ bl FindTaskIdByFunc
+ lsls r0, 24
+ lsrs r0, 24
+ bl DestroyTask
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08104A30: .4byte gSpriteCoordOffsetX
+_08104A34: .4byte REG_BG1HOFS
+_08104A38: .4byte 0x02000000
+_08104A3C: .4byte sub_810434C
+ thumb_func_end sub_81049F8
+
+ thumb_func_start sub_8104A40
+sub_8104A40: @ 8104A40
+ push {r4-r7,lr}
+ movs r3, 0x4
+ ldr r7, _08104A80
+ lsls r1, 16
+ asrs r5, r1, 16
+ lsls r0, 16
+ asrs r4, r0, 16
+ ldr r6, _08104A84
+_08104A50:
+ lsls r2, r3, 16
+ asrs r2, 16
+ subs r1, r2, 0x4
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5, r0
+ lsls r0, 1
+ adds r0, r7
+ ldrh r1, [r0]
+ lsls r0, r2, 5
+ adds r0, r4
+ lsls r0, 1
+ adds r0, r6
+ strh r1, [r0]
+ adds r2, 0x1
+ lsls r2, 16
+ lsrs r3, r2, 16
+ asrs r2, 16
+ cmp r2, 0xE
+ ble _08104A50
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08104A80: .4byte gReelTimeWindowTilemap
+_08104A84: .4byte 0x0600e000
+ thumb_func_end sub_8104A40
+
+ thumb_func_start sub_8104A88
+sub_8104A88: @ 8104A88
+ push {r4,r5,lr}
+ movs r2, 0x4
+ lsls r0, 16
+ asrs r3, r0, 16
+ ldr r5, _08104AB4
+ movs r4, 0
+_08104A94:
+ lsls r1, r2, 16
+ asrs r1, 16
+ lsls r0, r1, 5
+ adds r0, r3
+ lsls r0, 1
+ adds r0, r5
+ strh r4, [r0]
+ adds r1, 0x1
+ lsls r1, 16
+ lsrs r2, r1, 16
+ asrs r1, 16
+ cmp r1, 0xE
+ ble _08104A94
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08104AB4: .4byte 0x0600e000
+ thumb_func_end sub_8104A88
+
+ thumb_func_start sub_8104AB8
+sub_8104AB8: @ 8104AB8
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r5, _08104AE4
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _08104AE8
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ strh r4, [r1, 0xA]
+ bl _call_via_r5
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08104AE4: .4byte sub_8104B0C
+_08104AE8: .4byte gTasks
+ thumb_func_end sub_8104AB8
+
+ thumb_func_start sub_8104AEC
+sub_8104AEC: @ 8104AEC
+ push {lr}
+ ldr r0, _08104B00
+ bl FindTaskIdByFunc
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xFF
+ beq _08104B04
+ movs r0, 0
+ b _08104B06
+ .align 2, 0
+_08104B00: .4byte sub_8104B0C
+_08104B04:
+ movs r0, 0x1
+_08104B06:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8104AEC
+
+ thumb_func_start sub_8104B0C
+sub_8104B0C: @ 8104B0C
+ push {lr}
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r3, _08104B34
+ ldr r2, _08104B38
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ movs r2, 0x8
+ ldrsh r1, [r0, r2]
+ lsls r1, 2
+ adds r1, r3
+ ldr r1, [r1]
+ bl _call_via_r1
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08104B34: .4byte gUnknown_083ECC30
+_08104B38: .4byte gTasks
+ thumb_func_end sub_8104B0C
+
+ thumb_func_start sub_8104B3C
+sub_8104B3C: @ 8104B3C
+ push {r4,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8104B3C
+
+ thumb_func_start sub_8104B60
+sub_8104B60: @ 8104B60
+ push {lr}
+ adds r2, r0, 0
+ ldr r0, _08104B7C
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _08104B76
+ ldrh r0, [r2, 0x8]
+ adds r0, 0x1
+ strh r0, [r2, 0x8]
+_08104B76:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08104B7C: .4byte gPaletteFade
+ thumb_func_end sub_8104B60
+
+ thumb_func_start sub_8104B80
+sub_8104B80: @ 8104B80
+ push {r4,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ bl sub_8104DA4
+ bl sub_81065DC
+ ldr r0, _08104BC0
+ bl BasicInitMenuWindow
+ ldr r0, _08104BC4
+ movs r1, 0xA
+ movs r2, 0x20
+ movs r3, 0x1
+ bl sub_80729D8
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08104BC0: .4byte gWindowConfig_81E7144
+_08104BC4: .4byte gOtherText_ReelTime
+ thumb_func_end sub_8104B80
+
+ thumb_func_start sub_8104BC8
+sub_8104BC8: @ 8104BC8
+ push {r4,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ ldr r0, _08104BF8
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x6
+ ands r0, r1
+ cmp r0, 0
+ beq _08104BF0
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+_08104BF0:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08104BF8: .4byte gMain
+ thumb_func_end sub_8104BC8
+
+ thumb_func_start sub_8104BFC
+sub_8104BFC: @ 8104BFC
+ push {r4,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ bl MenuZeroFillScreen
+ ldr r0, _08104C3C
+ bl BasicInitMenuWindow
+ bl sub_81064B8
+ ldrb r0, [r4, 0xA]
+ bl sub_8104CAC
+ ldr r0, _08104C40
+ ldrb r0, [r0, 0x2]
+ bl sub_810423C
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08104C3C: .4byte gWindowConfig_81E7128
+_08104C40: .4byte 0x02000000
+ thumb_func_end sub_8104BFC
+
+ thumb_func_start sub_8104C44
+sub_8104C44: @ 8104C44
+ push {lr}
+ ldr r0, _08104C58
+ bl FindTaskIdByFunc
+ lsls r0, 24
+ lsrs r0, 24
+ bl DestroyTask
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08104C58: .4byte sub_8104B0C
+ thumb_func_end sub_8104C44
+
+ thumb_func_start sub_8104C5C
+sub_8104C5C: @ 8104C5C
+ push {lr}
+ ldr r0, _08104C9C
+ movs r1, 0x3
+ bl CreateTask
+ lsls r0, 24
+ lsrs r1, r0, 24
+ ldr r0, _08104CA0
+ adds r0, 0x3D
+ strb r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ ldr r1, _08104CA4
+ adds r0, r1
+ ldr r1, _08104CA8
+ strh r1, [r0, 0xA]
+ movs r1, 0x4
+ adds r2, r0, 0
+ adds r2, 0x8
+ movs r3, 0x40
+_08104C86:
+ lsls r0, r1, 1
+ adds r0, r2, r0
+ strh r3, [r0]
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0xF
+ bls _08104C86
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08104C9C: .4byte sub_8104E74
+_08104CA0: .4byte 0x02000000
+_08104CA4: .4byte gTasks
+_08104CA8: .4byte 0x0000ffff
+ thumb_func_end sub_8104C5C
+
+ thumb_func_start sub_8104CAC
+sub_8104CAC: @ 8104CAC
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl sub_8104DA4
+ ldr r0, _08104D24
+ adds r0, 0x3D
+ ldrb r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ ldr r1, _08104D28
+ adds r7, r0, r1
+ strh r4, [r7, 0xA]
+ movs r6, 0
+ ldr r1, _08104D2C
+ lsls r5, r4, 2
+ adds r0, r5, r1
+ ldr r0, [r0]
+ ldrb r0, [r0]
+ cmp r0, 0xFF
+ beq _08104D18
+ mov r8, r1
+_08104CE0:
+ mov r0, r8
+ adds r4, r5, r0
+ ldr r0, [r4]
+ lsls r2, r6, 2
+ adds r2, r0
+ ldrb r0, [r2]
+ ldrb r1, [r2, 0x1]
+ movs r3, 0x2
+ ldrsh r2, [r2, r3]
+ bl sub_8105BB4
+ lsls r0, 24
+ lsrs r0, 24
+ adds r2, r6, 0x4
+ lsls r2, 1
+ adds r1, r7, 0
+ adds r1, 0x8
+ adds r1, r2
+ strh r0, [r1]
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r1, [r4]
+ lsls r0, r6, 2
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0xFF
+ bne _08104CE0
+_08104D18:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08104D24: .4byte 0x02000000
+_08104D28: .4byte gTasks
+_08104D2C: .4byte gUnknown_083ED048
+ thumb_func_end sub_8104CAC
+
+ thumb_func_start sub_8104D30
+sub_8104D30: @ 8104D30
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ mov r8, r1
+ ldr r4, [sp, 0x1C]
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r0, _08104D84
+ adds r0, 0x3D
+ ldrb r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ ldr r1, _08104D88
+ adds r0, r1
+ mov r12, r0
+ movs r5, 0x4
+ lsls r4, 16
+ asrs r6, r4, 16
+ lsls r2, 16
+ lsls r3, 16
+_08104D5C:
+ lsls r0, r5, 1
+ mov r1, r12
+ adds r1, 0x8
+ adds r4, r1, r0
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x40
+ bne _08104D8C
+ str r6, [sp]
+ adds r0, r7, 0
+ mov r1, r8
+ asrs r2, 16
+ asrs r3, 16
+ bl sub_8105BF8
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4]
+ b _08104D96
+ .align 2, 0
+_08104D84: .4byte 0x02000000
+_08104D88: .4byte gTasks
+_08104D8C:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0xF
+ bls _08104D5C
+_08104D96:
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8104D30
+
+ thumb_func_start sub_8104DA4
+sub_8104DA4: @ 8104DA4
+ push {r4-r6,lr}
+ ldr r0, _08104E04
+ adds r0, 0x3D
+ ldrb r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ ldr r1, _08104E08
+ adds r4, r0, r1
+ ldrh r1, [r4, 0xA]
+ ldr r0, _08104E0C
+ cmp r1, r0
+ beq _08104DCE
+ ldr r0, _08104E10
+ movs r2, 0xA
+ ldrsh r1, [r4, r2]
+ lsls r1, 2
+ adds r1, r0
+ ldr r0, [r1]
+ bl _call_via_r0
+_08104DCE:
+ movs r5, 0x4
+ adds r6, r4, 0
+ adds r6, 0x8
+_08104DD4:
+ lsls r0, r5, 1
+ adds r4, r6, r0
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x40
+ beq _08104DF4
+ adds r1, r0, 0
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _08104E14
+ adds r0, r1
+ bl DestroySprite
+ movs r0, 0x40
+ strh r0, [r4]
+_08104DF4:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0xF
+ bls _08104DD4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08104E04: .4byte 0x02000000
+_08104E08: .4byte gTasks
+_08104E0C: .4byte 0x0000ffff
+_08104E10: .4byte gUnknown_083ED064
+_08104E14: .4byte gSprites
+ thumb_func_end sub_8104DA4
+
+ thumb_func_start sub_8104E18
+sub_8104E18: @ 8104E18
+ push {r4,r5,lr}
+ ldr r0, _08104E54
+ adds r0, 0x3D
+ ldrb r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ ldr r1, _08104E58
+ adds r0, r1
+ movs r2, 0x4
+ adds r3, r0, 0
+ adds r3, 0x8
+ ldr r4, _08104E5C
+_08104E32:
+ lsls r0, r2, 1
+ adds r1, r3, r0
+ movs r5, 0
+ ldrsh r0, [r1, r5]
+ cmp r0, 0x40
+ beq _08104E60
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ movs r5, 0x3C
+ ldrsh r0, [r1, r5]
+ cmp r0, 0
+ beq _08104E60
+ movs r0, 0
+ b _08104E6C
+ .align 2, 0
+_08104E54: .4byte 0x02000000
+_08104E58: .4byte gTasks
+_08104E5C: .4byte gSprites
+_08104E60:
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0xF
+ bls _08104E32
+ movs r0, 0x1
+_08104E6C:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8104E18
+
+ thumb_func_start sub_8104E74
+sub_8104E74: @ 8104E74
+ push {lr}
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r3, _08104E9C
+ ldr r2, _08104EA0
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ movs r2, 0x8
+ ldrsh r1, [r0, r2]
+ lsls r1, 2
+ adds r1, r3
+ ldr r1, [r1]
+ bl _call_via_r1
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08104E9C: .4byte gUnknown_083ECC54
+_08104EA0: .4byte gTasks
+ thumb_func_end sub_8104E74
+
+ thumb_func_start nullsub_69
+nullsub_69: @ 8104EA4
+ bx lr
+ thumb_func_end nullsub_69
+
+ thumb_func_start sub_8104EA8
+sub_8104EA8: @ 8104EA8
+ push {r4-r7,lr}
+ movs r6, 0
+ movs r0, 0x30
+_08104EAE:
+ movs r4, 0
+ lsls r5, r0, 16
+ lsls r7, r6, 16
+_08104EB4:
+ ldr r0, _08104F0C
+ asrs r1, r5, 16
+ movs r2, 0
+ movs r3, 0xE
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ ldr r0, _08104F10
+ adds r1, r0
+ ldrb r0, [r1, 0x5]
+ movs r2, 0xC
+ orrs r0, r2
+ strb r0, [r1, 0x5]
+ strh r6, [r1, 0x2E]
+ strh r4, [r1, 0x30]
+ ldr r0, _08104F14
+ strh r0, [r1, 0x34]
+ lsls r0, r4, 16
+ movs r1, 0xC0
+ lsls r1, 13
+ adds r0, r1
+ lsrs r4, r0, 16
+ asrs r0, 16
+ cmp r0, 0x77
+ ble _08104EB4
+ movs r2, 0x80
+ lsls r2, 9
+ adds r1, r7, r2
+ movs r2, 0xA0
+ lsls r2, 14
+ adds r0, r5, r2
+ lsrs r0, 16
+ lsrs r6, r1, 16
+ asrs r1, 16
+ cmp r1, 0x2
+ ble _08104EAE
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08104F0C: .4byte gSpriteTemplate_83ED414
+_08104F10: .4byte gSprites
+_08104F14: .4byte 0x0000ffff
+ thumb_func_end sub_8104EA8
+
+ thumb_func_start sub_8104F18
+sub_8104F18: @ 8104F18
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r4, _08104F88
+ movs r0, 0x2E
+ ldrsh r1, [r5, r0]
+ lsls r1, 1
+ adds r0, r4, 0
+ adds r0, 0x1C
+ adds r1, r0
+ ldrh r0, [r5, 0x30]
+ ldrh r1, [r1]
+ adds r0, r1
+ strh r0, [r5, 0x32]
+ movs r1, 0x32
+ ldrsh r0, [r5, r1]
+ movs r1, 0x78
+ bl __modsi3
+ strh r0, [r5, 0x32]
+ movs r2, 0x2E
+ ldrsh r1, [r5, r2]
+ lsls r1, 1
+ adds r4, 0x22
+ adds r1, r4
+ ldrh r1, [r1]
+ adds r1, 0x1C
+ adds r0, r1
+ strh r0, [r5, 0x22]
+ ldrh r4, [r5, 0x2E]
+ lsls r4, 24
+ lsrs r4, 24
+ movs r1, 0x32
+ ldrsh r0, [r5, r1]
+ movs r1, 0x18
+ bl __divsi3
+ adds r1, r0, 0
+ lsls r1, 16
+ asrs r1, 16
+ adds r0, r4, 0
+ bl sub_8102BA4
+ lsls r0, 24
+ lsrs r0, 24
+ bl GetSpriteTileStartByTag
+ adds r1, r5, 0
+ adds r1, 0x40
+ strh r0, [r1]
+ adds r0, r5, 0
+ bl SetSpriteSheetFrameTileNum
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08104F88: .4byte 0x02000000
+ thumb_func_end sub_8104F18
+
+ thumb_func_start sub_8104F8C
+sub_8104F8C: @ 8104F8C
+ push {r4-r6,lr}
+ movs r4, 0xCB
+ movs r5, 0x1
+ ldr r6, _08104FF0
+_08104F94:
+ lsls r4, 16
+ asrs r4, 16
+ lsls r5, 16
+ asrs r5, 16
+ adds r0, r4, 0
+ movs r1, 0x17
+ movs r2, 0
+ adds r3, r5, 0
+ bl sub_8104FF4
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 17
+ subs r4, 0x7
+ lsls r4, 16
+ lsrs r4, 16
+ lsrs r5, r0, 16
+ asrs r0, 16
+ cmp r0, r6
+ ble _08104F94
+ movs r4, 0xEB
+ movs r5, 0x1
+ ldr r6, _08104FF0
+_08104FC2:
+ lsls r4, 16
+ asrs r4, 16
+ lsls r5, 16
+ asrs r5, 16
+ adds r0, r4, 0
+ movs r1, 0x17
+ movs r2, 0x1
+ adds r3, r5, 0
+ bl sub_8104FF4
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 17
+ subs r4, 0x7
+ lsls r4, 16
+ lsrs r4, 16
+ lsrs r5, r0, 16
+ asrs r0, 16
+ cmp r0, r6
+ ble _08104FC2
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08104FF0: .4byte 0x0000270f
+ thumb_func_end sub_8104F8C
+
+ thumb_func_start sub_8104FF4
+sub_8104FF4: @ 8104FF4
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ adds r5, r0, 0
+ adds r6, r1, 0
+ mov r8, r2
+ adds r4, r3, 0
+ mov r0, r8
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ lsls r4, 16
+ lsrs r4, 16
+ ldr r0, _08105060
+ lsls r5, 16
+ asrs r5, 16
+ lsls r6, 16
+ asrs r6, 16
+ adds r1, r5, 0
+ adds r2, r6, 0
+ movs r3, 0xD
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ ldr r0, _08105064
+ adds r2, r0
+ ldrb r1, [r2, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x8
+ orrs r0, r1
+ strb r0, [r2, 0x5]
+ mov r0, r8
+ strh r0, [r2, 0x2E]
+ strh r4, [r2, 0x30]
+ lsls r4, 16
+ asrs r4, 16
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 1
+ strh r0, [r2, 0x32]
+ ldr r0, _08105068
+ strh r0, [r2, 0x34]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08105060: .4byte gSpriteTemplate_83ED42C
+_08105064: .4byte gSprites
+_08105068: .4byte 0x0000ffff
+ thumb_func_end sub_8104FF4
+
+ thumb_func_start sub_810506C
+sub_810506C: @ 810506C
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r1, _081050C0
+ ldrh r2, [r1, 0xC]
+ movs r3, 0x2E
+ ldrsh r0, [r4, r3]
+ cmp r0, 0
+ beq _0810507E
+ ldrh r2, [r1, 0xE]
+_0810507E:
+ movs r1, 0x34
+ ldrsh r0, [r4, r1]
+ cmp r0, r2
+ beq _081050B8
+ strh r2, [r4, 0x34]
+ ldrh r1, [r4, 0x32]
+ adds r0, r2, 0
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r2, r0, 16
+ ldrh r1, [r4, 0x30]
+ adds r0, r2, 0
+ bl __udivsi3
+ lsls r0, 16
+ movs r3, 0xE0
+ lsls r3, 11
+ adds r0, r3
+ lsrs r2, r0, 16
+ adds r0, r2, 0
+ bl GetSpriteTileStartByTag
+ adds r1, r4, 0
+ adds r1, 0x40
+ strh r0, [r1]
+ adds r0, r4, 0
+ bl SetSpriteSheetFrameTileNum
+_081050B8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081050C0: .4byte 0x02000000
+ thumb_func_end sub_810506C
+
+ thumb_func_start sub_81050C4
+sub_81050C4: @ 81050C4
+ push {lr}
+ ldr r0, _081050F4
+ movs r1, 0x58
+ movs r2, 0x48
+ movs r3, 0xF
+ bl CreateSprite
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r2, _081050F8
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r1, [r0, 0x5]
+ movs r2, 0xC
+ orrs r1, r2
+ strb r1, [r0, 0x5]
+ ldr r1, _081050FC
+ bl SetSubspriteTables
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081050F4: .4byte gSpriteTemplate_83ED444
+_081050F8: .4byte gSprites
+_081050FC: .4byte gUnknown_083ED704
+ thumb_func_end sub_81050C4
+
+ thumb_func_start sub_8105100
+sub_8105100: @ 8105100
+ push {lr}
+ ldr r0, _08105140
+ movs r1, 0x8C
+ lsls r1, 1
+ movs r2, 0x50
+ movs r3, 0x1
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _08105144
+ 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
+ movs r3, 0x4
+ orrs r1, r3
+ strb r1, [r2, 0x5]
+ adds r2, 0x3E
+ ldrb r1, [r2]
+ movs r3, 0x2
+ orrs r1, r3
+ strb r1, [r2]
+ ldr r1, _08105148
+ adds r1, 0x3F
+ strb r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08105140: .4byte gSpriteTemplate_83ED45C
+_08105144: .4byte gSprites
+_08105148: .4byte 0x02000000
+ thumb_func_end sub_8105100
+
+ thumb_func_start sub_810514C
+sub_810514C: @ 810514C
+ push {lr}
+ ldr r0, _08105168
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _0810516C
+ adds r0, r1
+ bl DestroySprite
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08105168: .4byte 0x02000000
+_0810516C: .4byte gSprites
+ thumb_func_end sub_810514C
+
+ thumb_func_start sub_8105170
+sub_8105170: @ 8105170
+ push {lr}
+ adds r2, r0, 0
+ movs r0, 0
+ strh r0, [r2, 0x24]
+ strh r0, [r2, 0x26]
+ adds r0, r2, 0
+ adds r0, 0x2A
+ ldrb r0, [r0]
+ cmp r0, 0x4
+ bne _081051B6
+ movs r0, 0x8
+ strh r0, [r2, 0x24]
+ strh r0, [r2, 0x26]
+ adds r0, r2, 0
+ adds r0, 0x2B
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _081051A4
+ adds r0, r2, 0
+ adds r0, 0x2C
+ ldrb r1, [r0]
+ movs r0, 0x3F
+ ands r0, r1
+ cmp r0, 0
+ bne _081051B2
+ b _081051B6
+_081051A4:
+ adds r0, r2, 0
+ adds r0, 0x2C
+ ldrb r1, [r0]
+ movs r0, 0x3F
+ ands r0, r1
+ cmp r0, 0
+ bne _081051B6
+_081051B2:
+ ldr r0, _081051BC
+ strh r0, [r2, 0x26]
+_081051B6:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081051BC: .4byte 0x0000fff8
+ thumb_func_end sub_8105170
+
+ thumb_func_start sub_81051C0
+sub_81051C0: @ 81051C0
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ ldr r0, _0810526C
+ movs r7, 0xB8
+ lsls r7, 1
+ adds r1, r7, 0
+ movs r2, 0x34
+ movs r3, 0x7
+ bl CreateSprite
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r0, r4, 4
+ adds r0, r4
+ lsls r0, 2
+ ldr r1, _08105270
+ mov r10, r1
+ adds r2, r0, r1
+ ldrb r1, [r2, 0x5]
+ movs r5, 0xD
+ negs r5, r5
+ adds r0, r5, 0
+ ands r0, r1
+ movs r3, 0x4
+ mov r9, r3
+ mov r1, r9
+ orrs r0, r1
+ strb r0, [r2, 0x5]
+ adds r1, r2, 0
+ adds r1, 0x3E
+ ldrb r0, [r1]
+ movs r3, 0x2
+ mov r8, r3
+ mov r3, r8
+ orrs r0, r3
+ strb r0, [r1]
+ ldr r1, _08105274
+ adds r0, r2, 0
+ bl SetSubspriteTables
+ ldr r6, _08105278
+ adds r0, r6, 0
+ adds r0, 0x49
+ strb r4, [r0]
+ ldr r0, _0810527C
+ adds r1, r7, 0
+ movs r2, 0x54
+ movs r3, 0x7
+ bl CreateSprite
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r0, r4, 4
+ adds r0, r4
+ lsls r0, 2
+ mov r1, r10
+ adds r2, r0, r1
+ ldrb r0, [r2, 0x5]
+ ands r5, r0
+ mov r3, r9
+ orrs r5, r3
+ strb r5, [r2, 0x5]
+ adds r1, r2, 0
+ adds r1, 0x3E
+ ldrb r0, [r1]
+ mov r3, r8
+ orrs r0, r3
+ strb r0, [r1]
+ ldr r1, _08105280
+ adds r0, r2, 0
+ bl SetSubspriteTables
+ adds r6, 0x4A
+ strb r4, [r6]
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810526C: .4byte gSpriteTemplate_83ED474
+_08105270: .4byte gSprites
+_08105274: .4byte gUnknown_083ED73C
+_08105278: .4byte 0x02000000
+_0810527C: .4byte gSpriteTemplate_83ED48C
+_08105280: .4byte gUnknown_083ED75C
+ thumb_func_end sub_81051C0
+
+ thumb_func_start sub_8105284
+sub_8105284: @ 8105284
+ push {r4,lr}
+ ldr r0, _081052D8
+ ldr r1, _081052DC
+ ldrh r2, [r1]
+ movs r1, 0xA8
+ subs r1, r2
+ lsls r1, 16
+ asrs r1, 16
+ movs r2, 0x50
+ movs r3, 0x7
+ bl CreateSprite
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r0, r4, 4
+ adds r0, r4
+ lsls r0, 2
+ ldr r1, _081052E0
+ adds r0, r1
+ ldrb r2, [r0, 0x5]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r2
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0, 0x5]
+ adds r3, r0, 0
+ adds r3, 0x3E
+ ldrb r1, [r3]
+ movs r2, 0x2
+ orrs r1, r2
+ strb r1, [r3]
+ ldr r1, _081052E4
+ bl SetSubspriteTables
+ ldr r0, _081052E8
+ adds r0, 0x42
+ strb r4, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081052D8: .4byte gSpriteTemplate_83ED4A4
+_081052DC: .4byte gSpriteCoordOffsetX
+_081052E0: .4byte gSprites
+_081052E4: .4byte gUnknown_083ED78C
+_081052E8: .4byte 0x02000000
+ thumb_func_end sub_8105284
+
+ thumb_func_start sub_81052EC
+sub_81052EC: @ 81052EC
+ push {r4-r7,lr}
+ movs r4, 0
+ movs r5, 0
+ ldr r6, _08105350
+_081052F4:
+ ldr r0, _08105354
+ movs r1, 0xB8
+ lsls r1, 1
+ movs r2, 0
+ movs r3, 0xA
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r3, r0, 4
+ adds r3, r0
+ lsls r3, 2
+ ldr r1, _08105358
+ adds r3, r1
+ ldrb r2, [r3, 0x5]
+ movs r7, 0xD
+ negs r7, r7
+ adds r1, r7, 0
+ ands r2, r1
+ movs r1, 0x4
+ orrs r2, r1
+ strb r2, [r3, 0x5]
+ movs r1, 0x3E
+ adds r1, r3
+ mov r12, r1
+ ldrb r1, [r1]
+ movs r2, 0x2
+ orrs r1, r2
+ mov r2, r12
+ strb r1, [r2]
+ strh r5, [r3, 0x3C]
+ adds r1, r4, r6
+ strb r0, [r1]
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r0, r5, 16
+ movs r7, 0xA0
+ lsls r7, 13
+ adds r0, r7
+ lsrs r5, r0, 16
+ cmp r4, 0x2
+ bls _081052F4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08105350: .4byte 0x0200004b
+_08105354: .4byte gSpriteTemplate_83ED4BC
+_08105358: .4byte gSprites
+ thumb_func_end sub_81052EC
+
+ thumb_func_start sub_810535C
+sub_810535C: @ 810535C
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r1, _0810539C
+ ldrh r0, [r4, 0x3C]
+ ldrh r1, [r1, 0x14]
+ adds r0, r1
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x28
+ bl __modsi3
+ lsls r0, 16
+ asrs r0, 16
+ adds r1, r0, 0
+ adds r1, 0x3B
+ strh r1, [r4, 0x22]
+ movs r1, 0x14
+ bl __divsi3
+ lsls r0, 16
+ asrs r0, 16
+ bl sub_8102C48
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl StartSpriteAnimIfDifferent
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810539C: .4byte 0x02000000
+ thumb_func_end sub_810535C
+
+ thumb_func_start sub_81053A0
+sub_81053A0: @ 81053A0
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ movs r1, 0xB8
+ lsls r1, 1
+ ldr r0, _0810544C
+ movs r2, 0x64
+ movs r3, 0x9
+ bl CreateSprite
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r0, r4, 4
+ adds r0, r4
+ lsls r0, 2
+ ldr r7, _08105450
+ adds r2, r0, r7
+ adds r1, r2, 0
+ adds r1, 0x3E
+ ldrb r0, [r1]
+ movs r3, 0x2
+ mov r10, r3
+ mov r3, r10
+ orrs r0, r3
+ strb r0, [r1]
+ ldrb r1, [r2, 0x5]
+ movs r5, 0xD
+ negs r5, r5
+ adds r0, r5, 0
+ ands r0, r1
+ movs r1, 0x4
+ mov r8, r1
+ mov r3, r8
+ orrs r0, r3
+ strb r0, [r2, 0x5]
+ ldr r0, _08105454
+ mov r9, r0
+ adds r0, r2, 0
+ mov r1, r9
+ bl SetSubspriteTables
+ ldr r6, _08105458
+ adds r0, r6, 0
+ adds r0, 0x4E
+ strb r4, [r0]
+ movs r1, 0x90
+ lsls r1, 1
+ ldr r0, _0810544C
+ movs r2, 0x68
+ movs r3, 0x4
+ bl CreateSprite
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r0, r4, 4
+ adds r0, r4
+ lsls r0, 2
+ adds r2, r0, r7
+ adds r1, r2, 0
+ adds r1, 0x3E
+ ldrb r0, [r1]
+ mov r3, r10
+ orrs r0, r3
+ strb r0, [r1]
+ ldrb r0, [r2, 0x5]
+ ands r5, r0
+ mov r0, r8
+ orrs r5, r0
+ strb r5, [r2, 0x5]
+ adds r0, r2, 0
+ mov r1, r9
+ bl SetSubspriteTables
+ adds r6, 0x4F
+ strb r4, [r6]
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810544C: .4byte gSpriteTemplate_83ED4D4
+_08105450: .4byte gSprites
+_08105454: .4byte gUnknown_083ED7B4
+_08105458: .4byte 0x02000000
+ thumb_func_end sub_81053A0
+
+ thumb_func_start sub_810545C
+sub_810545C: @ 810545C
+ push {r4,lr}
+ ldr r0, _081054A8
+ movs r1, 0xB8
+ lsls r1, 1
+ movs r2, 0x4C
+ movs r3, 0xB
+ bl CreateSprite
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r0, r4, 4
+ adds r0, r4
+ lsls r0, 2
+ ldr r1, _081054AC
+ adds r0, r1
+ adds r3, r0, 0
+ adds r3, 0x3E
+ ldrb r1, [r3]
+ movs r2, 0x2
+ orrs r1, r2
+ strb r1, [r3]
+ ldrb r2, [r0, 0x5]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r2
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0, 0x5]
+ ldr r1, _081054B0
+ bl SetSubspriteTables
+ ldr r0, _081054B4
+ adds r0, 0x40
+ strb r4, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081054A8: .4byte gSpriteTemplate_83ED4EC
+_081054AC: .4byte gSprites
+_081054B0: .4byte gUnknown_083ED7D4
+_081054B4: .4byte 0x02000000
+ thumb_func_end sub_810545C
+
+ thumb_func_start sub_81054B8
+sub_81054B8: @ 81054B8
+ push {r4,r5,lr}
+ ldr r4, _08105518
+ adds r0, r4, 0
+ adds r0, 0x40
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _0810551C
+ adds r0, r1
+ bl DestroySprite
+ movs r5, 0
+ adds r4, 0x49
+_081054D4:
+ adds r0, r5, r4
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _0810551C
+ adds r0, r1
+ bl DestroySprite
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x1
+ bls _081054D4
+ movs r5, 0
+ ldr r4, _08105520
+_081054F4:
+ adds r0, r5, r4
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _0810551C
+ adds r0, r1
+ bl DestroySprite
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x2
+ bls _081054F4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08105518: .4byte 0x02000000
+_0810551C: .4byte gSprites
+_08105520: .4byte 0x0200004b
+ thumb_func_end sub_81054B8
+
+ thumb_func_start sub_8105524
+sub_8105524: @ 8105524
+ push {r4,r5,lr}
+ movs r4, 0
+ ldr r5, _0810554C
+_0810552A:
+ adds r0, r4, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _08105550
+ adds r0, r1
+ bl DestroySprite
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x1
+ bls _0810552A
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810554C: .4byte 0x0200004e
+_08105550: .4byte gSprites
+ thumb_func_end sub_8105524
+
+ thumb_func_start sub_8105554
+sub_8105554: @ 8105554
+ push {lr}
+ ldr r0, _08105570
+ adds r0, 0x42
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _08105574
+ adds r0, r1
+ bl DestroySprite
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08105570: .4byte 0x02000000
+_08105574: .4byte gSprites
+ thumb_func_end sub_8105554
+
+ thumb_func_start sub_8105578
+sub_8105578: @ 8105578
+ push {r4-r6,lr}
+ mov r6, r10
+ mov r5, r9
+ mov r4, r8
+ push {r4-r6}
+ ldr r0, _0810561C
+ mov r10, r0
+ movs r1, 0x98
+ movs r2, 0x20
+ movs r3, 0x5
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ ldr r2, _08105620
+ mov r9, r2
+ adds r3, r1, r2
+ ldrb r2, [r3, 0x5]
+ movs r4, 0xD
+ negs r4, r4
+ adds r1, r4, 0
+ ands r1, r2
+ movs r2, 0x4
+ mov r8, r2
+ mov r2, r8
+ orrs r1, r2
+ strb r1, [r3, 0x5]
+ adds r5, r3, 0
+ adds r5, 0x3F
+ ldrb r1, [r5]
+ movs r2, 0x1
+ orrs r1, r2
+ strb r1, [r5]
+ ldr r5, _08105624
+ adds r1, r5, 0
+ adds r1, 0x50
+ strb r0, [r1]
+ movs r0, 0x8
+ strh r0, [r3, 0x2E]
+ ldr r0, _08105628
+ strh r0, [r3, 0x30]
+ movs r0, 0x1
+ negs r0, r0
+ strh r0, [r3, 0x32]
+ movs r6, 0x20
+ strh r6, [r3, 0x3C]
+ mov r0, r10
+ movs r1, 0xB8
+ movs r2, 0x20
+ movs r3, 0x5
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ mov r2, r9
+ adds r3, r1, r2
+ ldrb r1, [r3, 0x5]
+ ands r4, r1
+ mov r1, r8
+ orrs r4, r1
+ strb r4, [r3, 0x5]
+ adds r5, 0x51
+ strb r0, [r5]
+ movs r0, 0x1
+ strh r0, [r3, 0x30]
+ subs r0, 0x2
+ strh r0, [r3, 0x32]
+ strh r6, [r3, 0x3C]
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810561C: .4byte gSpriteTemplate_83ED504
+_08105620: .4byte gSprites
+_08105624: .4byte 0x02000000
+_08105628: .4byte 0x0000ffff
+ thumb_func_end sub_8105578
+
+ thumb_func_start sub_810562C
+sub_810562C: @ 810562C
+ push {r4,lr}
+ adds r2, r0, 0
+ ldrh r0, [r2, 0x2E]
+ movs r1, 0x2E
+ ldrsh r4, [r2, r1]
+ cmp r4, 0
+ beq _08105650
+ subs r0, 0x1
+ movs r1, 0
+ strh r0, [r2, 0x2E]
+ strh r1, [r2, 0x24]
+ strh r1, [r2, 0x26]
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ b _08105682
+_08105650:
+ adds r3, r2, 0
+ adds r3, 0x3E
+ ldrb r1, [r3]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r3]
+ ldrh r0, [r2, 0x30]
+ ldrh r1, [r2, 0x24]
+ adds r0, r1
+ strh r0, [r2, 0x24]
+ ldrh r0, [r2, 0x32]
+ ldrh r1, [r2, 0x26]
+ adds r0, r1
+ strh r0, [r2, 0x26]
+ ldrh r0, [r2, 0x34]
+ adds r0, 0x1
+ strh r0, [r2, 0x34]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x7
+ ble _08105682
+ ldrh r0, [r2, 0x3C]
+ strh r0, [r2, 0x2E]
+ strh r4, [r2, 0x34]
+_08105682:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_810562C
+
+ thumb_func_start sub_8105688
+sub_8105688: @ 8105688
+ push {r4,lr}
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r4, _081056B8
+ ldr r3, _081056BC
+ adds r1, r3, 0
+ adds r1, 0x50
+ ldrb r2, [r1]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r4
+ strh r0, [r1, 0x3C]
+ adds r3, 0x51
+ ldrb r2, [r3]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r4
+ strh r0, [r1, 0x3C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081056B8: .4byte gSprites
+_081056BC: .4byte 0x02000000
+ thumb_func_end sub_8105688
+
+ thumb_func_start sub_81056C0
+sub_81056C0: @ 81056C0
+ push {r4,r5,lr}
+ movs r4, 0
+ ldr r5, _081056E8
+_081056C6:
+ adds r0, r4, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _081056EC
+ adds r0, r1
+ bl DestroySprite
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x1
+ bls _081056C6
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081056E8: .4byte 0x02000050
+_081056EC: .4byte gSprites
+ thumb_func_end sub_81056C0
+
+ thumb_func_start sub_81056F0
+sub_81056F0: @ 81056F0
+ push {r4-r6,lr}
+ mov r6, r9
+ mov r5, r8
+ push {r5,r6}
+ ldr r0, _08105778
+ mov r8, r0
+ movs r1, 0x48
+ movs r2, 0x50
+ movs r3, 0x3
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _0810577C
+ mov r9, r1
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ add r2, r9
+ ldrb r3, [r2, 0x5]
+ movs r4, 0xD
+ negs r4, r4
+ adds r1, r4, 0
+ ands r1, r3
+ movs r6, 0x4
+ orrs r1, r6
+ strb r1, [r2, 0x5]
+ movs r3, 0
+ movs r1, 0x1
+ strh r1, [r2, 0x2E]
+ strh r3, [r2, 0x38]
+ movs r1, 0x10
+ strh r1, [r2, 0x3A]
+ movs r1, 0x8
+ strh r1, [r2, 0x3C]
+ ldr r5, _08105780
+ adds r1, r5, 0
+ adds r1, 0x52
+ strb r0, [r1]
+ mov r0, r8
+ movs r1, 0x68
+ movs r2, 0x50
+ movs r3, 0x3
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ add r1, r9
+ ldrb r2, [r1, 0x5]
+ ands r4, r2
+ orrs r4, r6
+ strb r4, [r1, 0x5]
+ adds r1, 0x3F
+ ldrb r2, [r1]
+ movs r3, 0x1
+ orrs r2, r3
+ strb r2, [r1]
+ adds r5, 0x53
+ strb r0, [r5]
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08105778: .4byte gSpriteTemplate_83ED51C
+_0810577C: .4byte gSprites
+_08105780: .4byte 0x02000000
+ thumb_func_end sub_81056F0
+
+ thumb_func_start sub_8105784
+sub_8105784: @ 8105784
+ push {r4,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ ldr r1, _081057E0
+ mov r0, sp
+ movs r2, 0x2
+ bl memcpy
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _081057D6
+ ldrh r0, [r4, 0x3A]
+ subs r0, 0x1
+ strh r0, [r4, 0x3A]
+ lsls r0, 16
+ cmp r0, 0
+ bgt _081057D6
+ movs r0, 0x7
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r0, 4
+ ldr r2, _081057E4
+ adds r0, r2
+ lsrs r0, 16
+ movs r2, 0x38
+ ldrsh r1, [r4, r2]
+ add r1, sp
+ ldrb r3, [r1]
+ adds r1, r3, 0
+ adds r2, r3, 0
+ bl sub_8085C7C
+ ldrh r0, [r4, 0x38]
+ adds r0, 0x1
+ movs r1, 0x1
+ ands r0, r1
+ strh r0, [r4, 0x38]
+ ldrh r0, [r4, 0x3C]
+ strh r0, [r4, 0x3A]
+_081057D6:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081057E0: .4byte gUnknown_083ECC58
+_081057E4: .4byte 0x01030000
+ thumb_func_end sub_8105784
+
+ thumb_func_start sub_81057E8
+sub_81057E8: @ 81057E8
+ ldr r3, _081057FC
+ ldr r1, _08105800
+ adds r1, 0x52
+ ldrb r2, [r1]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r3
+ strh r0, [r1, 0x3C]
+ bx lr
+ .align 2, 0
+_081057FC: .4byte gSprites
+_08105800: .4byte 0x02000000
+ thumb_func_end sub_81057E8
+
+ thumb_func_start sub_8105804
+sub_8105804: @ 8105804
+ push {r4,r5,lr}
+ movs r0, 0x7
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r0, 4
+ ldr r1, _08105848
+ adds r0, r1
+ lsrs r0, 16
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl sub_8085C7C
+ movs r4, 0
+ ldr r5, _0810584C
+_08105824:
+ adds r0, r4, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _08105850
+ adds r0, r1
+ bl DestroySprite
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x1
+ bls _08105824
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08105848: .4byte 0x01030000
+_0810584C: .4byte 0x02000052
+_08105850: .4byte gSprites
+ thumb_func_end sub_8105804
+
+ thumb_func_start sub_8105854
+sub_8105854: @ 8105854
+ push {lr}
+ ldr r0, _08105888
+ movs r1, 0xA8
+ movs r2, 0x50
+ movs r3, 0x6
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0810588C
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ ldrb r3, [r1, 0x5]
+ movs r2, 0xD
+ negs r2, r2
+ ands r2, r3
+ movs r3, 0x4
+ orrs r2, r3
+ strb r2, [r1, 0x5]
+ ldr r1, _08105890
+ adds r1, 0x41
+ strb r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08105888: .4byte gSpriteTemplate_83ED534
+_0810588C: .4byte gSprites
+_08105890: .4byte 0x02000000
+ thumb_func_end sub_8105854
+
+ thumb_func_start sub_8105894
+sub_8105894: @ 8105894
+ ldr r1, _0810589C
+ ldrh r1, [r1]
+ strh r1, [r0, 0x26]
+ bx lr
+ .align 2, 0
+_0810589C: .4byte gSpriteCoordOffsetY
+ thumb_func_end sub_8105894
+
+ thumb_func_start sub_81058A0
+sub_81058A0: @ 81058A0
+ push {lr}
+ ldr r0, _081058BC
+ adds r0, 0x41
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _081058C0
+ adds r0, r1
+ bl DestroySprite
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081058BC: .4byte 0x02000000
+_081058C0: .4byte gSprites
+ thumb_func_end sub_81058A0
+
+ thumb_func_start sub_81058C4
+sub_81058C4: @ 81058C4
+ push {r4-r6,lr}
+ sub sp, 0x8
+ ldr r1, _08105938
+ mov r0, sp
+ movs r2, 0x8
+ bl memcpy
+ movs r4, 0
+ ldr r5, _0810593C
+_081058D6:
+ ldr r0, _08105940
+ ldrh r0, [r0]
+ movs r1, 0x50
+ subs r1, r0
+ lsls r1, 16
+ asrs r1, 16
+ ldr r0, _08105944
+ movs r2, 0x44
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r3, r0, 4
+ adds r3, r0
+ lsls r3, 2
+ ldr r1, _08105948
+ adds r3, r1
+ ldrb r2, [r3, 0x5]
+ movs r6, 0xD
+ negs r6, r6
+ adds r1, r6, 0
+ ands r2, r1
+ movs r1, 0x4
+ orrs r2, r1
+ strb r2, [r3, 0x5]
+ movs r1, 0x3E
+ adds r1, r3
+ mov r12, r1
+ ldrb r1, [r1]
+ movs r2, 0x2
+ orrs r1, r2
+ mov r2, r12
+ strb r1, [r2]
+ lsls r1, r4, 1
+ add r1, sp
+ ldrh r1, [r1]
+ strh r1, [r3, 0x2E]
+ adds r1, r4, r5
+ strb r0, [r1]
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x3
+ bls _081058D6
+ add sp, 0x8
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08105938: .4byte gUnknown_083ECC5A
+_0810593C: .4byte 0x02000054
+_08105940: .4byte gSpriteCoordOffsetX
+_08105944: .4byte gSpriteTemplate_83ED54C
+_08105948: .4byte gSprites
+ thumb_func_end sub_81058C4
+
+ thumb_func_start sub_810594C
+sub_810594C: @ 810594C
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldrh r0, [r5, 0x2E]
+ subs r0, 0x2
+ movs r4, 0
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r5, 0x2E]
+ movs r1, 0x2E
+ ldrsh r0, [r5, r1]
+ movs r1, 0x14
+ bl Cos
+ strh r0, [r5, 0x24]
+ movs r2, 0x2E
+ ldrsh r0, [r5, r2]
+ movs r1, 0x6
+ bl Sin
+ strh r0, [r5, 0x26]
+ adds r1, r5, 0
+ adds r1, 0x43
+ strb r4, [r1]
+ movs r2, 0x2E
+ ldrsh r0, [r5, r2]
+ cmp r0, 0x7F
+ ble _08105986
+ movs r0, 0x2
+ strb r0, [r1]
+_08105986:
+ ldrh r0, [r5, 0x30]
+ adds r0, 0x1
+ strh r0, [r5, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xF
+ ble _081059B0
+ adds r3, r5, 0
+ adds r3, 0x3F
+ ldrb r2, [r3]
+ lsls r0, r2, 31
+ lsrs r0, 31
+ movs r1, 0x1
+ eors r1, r0
+ movs r0, 0x2
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+ movs r0, 0
+ strh r0, [r5, 0x30]
+_081059B0:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_810594C
+
+ thumb_func_start sub_81059B8
+sub_81059B8: @ 81059B8
+ push {r4,r5,lr}
+ movs r4, 0
+ ldr r5, _081059E0
+_081059BE:
+ adds r0, r4, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _081059E4
+ adds r0, r1
+ bl DestroySprite
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x3
+ bls _081059BE
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081059E0: .4byte 0x02000054
+_081059E4: .4byte gSprites
+ thumb_func_end sub_81059B8
+
+ thumb_func_start sub_81059E8
+sub_81059E8: @ 81059E8
+ push {r4,lr}
+ ldr r0, _08105A2C
+ movs r1, 0xA8
+ movs r2, 0x3C
+ movs r3, 0x8
+ bl CreateSprite
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r0, r4, 4
+ adds r0, r4
+ lsls r0, 2
+ ldr r1, _08105A30
+ adds r0, r1
+ ldrb r2, [r0, 0x5]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r2
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0, 0x5]
+ ldrb r1, [r0, 0x1]
+ movs r2, 0x3
+ orrs r1, r2
+ strb r1, [r0, 0x1]
+ bl InitSpriteAffineAnim
+ ldr r0, _08105A34
+ adds r0, 0x43
+ strb r4, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08105A2C: .4byte gSpriteTemplate_83ED564
+_08105A30: .4byte gSprites
+_08105A34: .4byte 0x02000000
+ thumb_func_end sub_81059E8
+
+ thumb_func_start sub_8105A38
+sub_8105A38: @ 8105A38
+ push {lr}
+ adds r3, r0, 0
+ ldrh r2, [r3, 0x2E]
+ movs r1, 0x2E
+ ldrsh r0, [r3, r1]
+ cmp r0, 0
+ bne _08105A5A
+ adds r0, r3, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _08105AB4
+ adds r0, r2, 0x1
+ strh r0, [r3, 0x2E]
+ b _08105AB4
+_08105A5A:
+ cmp r0, 0x1
+ bne _08105A96
+ movs r0, 0x3E
+ adds r0, r3
+ mov r12, r0
+ ldrb r2, [r0]
+ 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
+ mov r1, r12
+ strb r0, [r1]
+ ldrh r0, [r3, 0x32]
+ adds r0, 0x1
+ strh r0, [r3, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x17
+ ble _08105AB4
+ ldrh r0, [r3, 0x2E]
+ adds r0, 0x1
+ strh r0, [r3, 0x2E]
+ movs r0, 0
+ strh r0, [r3, 0x32]
+ b _08105AB4
+_08105A96:
+ adds r2, r3, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ ldrh r0, [r3, 0x32]
+ adds r0, 0x1
+ strh r0, [r3, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xF
+ ble _08105AB4
+ movs r0, 0x1
+ strh r0, [r3, 0x3C]
+_08105AB4:
+ ldrh r0, [r3, 0x30]
+ movs r1, 0xFF
+ ands r1, r0
+ adds r1, 0x10
+ strh r1, [r3, 0x30]
+ lsrs r1, 8
+ ldrh r0, [r3, 0x26]
+ subs r0, r1
+ strh r0, [r3, 0x26]
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8105A38
+
+ thumb_func_start sub_8105ACC
+sub_8105ACC: @ 8105ACC
+ ldr r2, _08105AE4
+ ldr r0, _08105AE8
+ adds r0, 0x43
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r0, [r0, 0x3C]
+ lsls r0, 24
+ lsrs r0, 24
+ bx lr
+ .align 2, 0
+_08105AE4: .4byte gSprites
+_08105AE8: .4byte 0x02000000
+ thumb_func_end sub_8105ACC
+
+ thumb_func_start sub_8105AEC
+sub_8105AEC: @ 8105AEC
+ push {r4,lr}
+ ldr r0, _08105B14
+ adds r0, 0x43
+ ldrb r0, [r0]
+ lsls r4, r0, 4
+ adds r4, r0
+ lsls r4, 2
+ ldr r0, _08105B18
+ adds r4, r0
+ ldrb r0, [r4, 0x3]
+ lsls r0, 26
+ lsrs r0, 27
+ bl FreeOamMatrix
+ adds r0, r4, 0
+ bl DestroySprite
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08105B14: .4byte 0x02000000
+_08105B18: .4byte gSprites
+ thumb_func_end sub_8105AEC
+
+ thumb_func_start sub_8105B1C
+sub_8105B1C: @ 8105B1C
+ push {r4,lr}
+ adds r3, r0, 0
+ adds r2, r1, 0
+ ldr r0, _08105B68
+ lsls r3, 16
+ asrs r3, 16
+ lsls r2, 16
+ asrs r2, 16
+ adds r1, r3, 0
+ movs r3, 0xC
+ bl CreateSprite
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r0, r4, 4
+ adds r0, r4
+ lsls r0, 2
+ ldr r1, _08105B6C
+ adds r0, r1
+ ldrb r2, [r0, 0x5]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r2
+ movs r2, 0x8
+ orrs r1, r2
+ strb r1, [r0, 0x5]
+ ldrb r1, [r0, 0x1]
+ movs r2, 0x3
+ orrs r1, r2
+ strb r1, [r0, 0x1]
+ bl InitSpriteAffineAnim
+ adds r0, r4, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08105B68: .4byte gSpriteTemplate_83ED6CC
+_08105B6C: .4byte gSprites
+ thumb_func_end sub_8105B1C
+
+ thumb_func_start sub_8105B70
+sub_8105B70: @ 8105B70
+ push {lr}
+ adds r2, r0, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _08105B84
+ movs r0, 0x1
+ strh r0, [r2, 0x3C]
+_08105B84:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8105B70
+
+ thumb_func_start sub_8105B88
+sub_8105B88: @ 8105B88
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r0, 4
+ adds r4, r0
+ lsls r4, 2
+ ldr r0, _08105BB0
+ adds r4, r0
+ ldrb r0, [r4, 0x3]
+ lsls r0, 26
+ lsrs r0, 27
+ bl FreeOamMatrix
+ adds r0, r4, 0
+ bl DestroySprite
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08105BB0: .4byte gSprites
+ thumb_func_end sub_8105B88
+
+ thumb_func_start sub_8105BB4
+sub_8105BB4: @ 8105BB4
+ push {r4-r6,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ ldr r3, _08105BF0
+ lsrs r1, 22
+ adds r3, r1, r3
+ ldr r5, [r3]
+ ldr r3, _08105BF4
+ adds r4, r1, r3
+ movs r6, 0
+ ldrsh r4, [r4, r6]
+ adds r3, 0x2
+ adds r1, r3
+ movs r6, 0
+ ldrsh r3, [r1, r6]
+ lsls r2, 16
+ asrs r2, 16
+ str r2, [sp]
+ adds r1, r5, 0
+ adds r2, r4, 0
+ bl sub_8105BF8
+ lsls r0, 24
+ lsrs r0, 24
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08105BF0: .4byte gUnknown_083ECF0C
+_08105BF4: .4byte gUnknown_083ECE7E
+ thumb_func_end sub_8105BB4
+
+ thumb_func_start sub_8105BF8
+sub_8105BF8: @ 8105BF8
+ push {r4-r7,lr}
+ adds r4, r0, 0
+ adds r6, r1, 0
+ adds r1, r2, 0
+ adds r2, r3, 0
+ ldr r5, [sp, 0x14]
+ lsls r4, 24
+ lsls r5, 16
+ lsrs r5, 16
+ ldr r0, _08105C58
+ lsrs r4, 22
+ adds r0, r4, r0
+ ldr r0, [r0]
+ lsls r1, 16
+ asrs r1, 16
+ lsls r2, 16
+ asrs r2, 16
+ movs r3, 0x10
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ adds r7, r0, 0
+ lsls r0, r7, 4
+ adds r0, r7
+ lsls r0, 2
+ ldr r1, _08105C5C
+ adds r2, r0, r1
+ ldrb r0, [r2, 0x5]
+ movs r1, 0xC
+ orrs r0, r1
+ strb r0, [r2, 0x5]
+ str r6, [r2, 0x1C]
+ strh r5, [r2, 0x3A]
+ movs r0, 0x1
+ strh r0, [r2, 0x3C]
+ ldr r0, _08105C60
+ adds r4, r0
+ ldr r1, [r4]
+ cmp r1, 0
+ beq _08105C50
+ adds r0, r2, 0
+ bl SetSubspriteTables
+_08105C50:
+ adds r0, r7, 0
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08105C58: .4byte gUnknown_083EDB5C
+_08105C5C: .4byte gSprites
+_08105C60: .4byte gUnknown_083EDBC4
+ thumb_func_end sub_8105BF8
+
+ thumb_func_start sub_8105C64
+sub_8105C64: @ 8105C64
+ movs r1, 0
+ strh r1, [r0, 0x3C]
+ bx lr
+ thumb_func_end sub_8105C64
+
+ thumb_func_start sub_8105C6C
+sub_8105C6C: @ 8105C6C
+ push {r4,r5,lr}
+ sub sp, 0x10
+ adds r4, r0, 0
+ ldr r1, _08105CE8
+ mov r0, sp
+ movs r2, 0x8
+ bl memcpy
+ add r5, sp, 0x8
+ ldr r1, _08105CEC
+ adds r0, r5, 0
+ movs r2, 0x8
+ bl memcpy
+ ldrh r0, [r4, 0x30]
+ adds r1, r0, 0x1
+ strh r1, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xF
+ ble _08105CB2
+ adds r3, r4, 0
+ adds r3, 0x42
+ ldrb r2, [r3]
+ lsls r0, r2, 26
+ lsrs r0, 26
+ movs r1, 0x1
+ eors r1, r0
+ movs r0, 0x40
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+ movs r0, 0
+ strh r0, [r4, 0x30]
+_08105CB2:
+ movs r0, 0
+ strh r0, [r4, 0x24]
+ strh r0, [r4, 0x26]
+ adds r0, r4, 0
+ adds r0, 0x42
+ ldrb r1, [r0]
+ movs r0, 0x3F
+ ands r0, r1
+ cmp r0, 0
+ beq _08105CDE
+ movs r1, 0x3A
+ ldrsh r0, [r4, r1]
+ lsls r0, 1
+ add r0, sp
+ ldrh r0, [r0]
+ strh r0, [r4, 0x24]
+ movs r1, 0x3A
+ ldrsh r0, [r4, r1]
+ lsls r0, 1
+ adds r0, r5, r0
+ ldrh r0, [r0]
+ strh r0, [r4, 0x26]
+_08105CDE:
+ add sp, 0x10
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08105CE8: .4byte gUnknown_083ECC62
+_08105CEC: .4byte gUnknown_083ECC6A
+ thumb_func_end sub_8105C6C
+
+ thumb_func_start sub_8105CF0
+sub_8105CF0: @ 8105CF0
+ push {lr}
+ adds r3, r0, 0
+ adds r3, 0x3F
+ ldrb r1, [r3]
+ movs r2, 0x1
+ orrs r1, r2
+ strb r1, [r3]
+ bl sub_8105C6C
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8105CF0
+
+ thumb_func_start sub_8105D08
+sub_8105D08: @ 8105D08
+ push {lr}
+ adds r3, r0, 0
+ adds r3, 0x3F
+ ldrb r1, [r3]
+ movs r2, 0x2
+ orrs r1, r2
+ strb r1, [r3]
+ bl sub_8105C6C
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8105D08
+
+ thumb_func_start sub_8105D20
+sub_8105D20: @ 8105D20
+ push {lr}
+ adds r3, r0, 0
+ adds r3, 0x3F
+ ldrb r1, [r3]
+ movs r2, 0x1
+ orrs r1, r2
+ movs r2, 0x2
+ orrs r1, r2
+ strb r1, [r3]
+ bl sub_8105C6C
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8105D20
+
+ thumb_func_start sub_8105D3C
+sub_8105D3C: @ 8105D3C
+ push {lr}
+ adds r2, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r2, r1]
+ cmp r0, 0x1
+ beq _08105D70
+ cmp r0, 0x1
+ bgt _08105D52
+ cmp r0, 0
+ beq _08105D5C
+ b _08105DA0
+_08105D52:
+ cmp r0, 0x2
+ beq _08105D80
+ cmp r0, 0x3
+ beq _08105D9C
+ b _08105DA0
+_08105D5C:
+ ldrh r0, [r2, 0x20]
+ adds r0, 0x4
+ strh r0, [r2, 0x20]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xCF
+ ble _08105DA0
+ movs r0, 0xD0
+ strh r0, [r2, 0x20]
+ b _08105D8E
+_08105D70:
+ ldrh r0, [r2, 0x30]
+ adds r0, 0x1
+ strh r0, [r2, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x5A
+ ble _08105DA0
+ b _08105D8E
+_08105D80:
+ ldrh r0, [r2, 0x20]
+ adds r0, 0x4
+ strh r0, [r2, 0x20]
+ lsls r0, 16
+ ldr r1, _08105D98
+ cmp r0, r1
+ ble _08105DA0
+_08105D8E:
+ ldrh r0, [r2, 0x2E]
+ adds r0, 0x1
+ strh r0, [r2, 0x2E]
+ b _08105DA0
+ .align 2, 0
+_08105D98: .4byte 0x010f0000
+_08105D9C:
+ movs r0, 0
+ strh r0, [r2, 0x3C]
+_08105DA0:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8105D3C
+
+ thumb_func_start sub_8105DA4
+sub_8105DA4: @ 8105DA4
+ push {lr}
+ adds r1, r0, 0
+ movs r2, 0x2E
+ ldrsh r0, [r1, r2]
+ cmp r0, 0x1
+ beq _08105DD8
+ cmp r0, 0x1
+ bgt _08105DBA
+ cmp r0, 0
+ beq _08105DC4
+ b _08105E02
+_08105DBA:
+ cmp r0, 0x2
+ beq _08105DE8
+ cmp r0, 0x3
+ beq _08105DFE
+ b _08105E02
+_08105DC4:
+ ldrh r0, [r1, 0x20]
+ subs r0, 0x4
+ strh r0, [r1, 0x20]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xD0
+ bgt _08105E02
+ movs r0, 0xD0
+ strh r0, [r1, 0x20]
+ b _08105DF6
+_08105DD8:
+ ldrh r0, [r1, 0x30]
+ adds r0, 0x1
+ strh r0, [r1, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x5A
+ ble _08105E02
+ b _08105DF6
+_08105DE8:
+ ldrh r0, [r1, 0x20]
+ subs r0, 0x4
+ strh r0, [r1, 0x20]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x90
+ bgt _08105E02
+_08105DF6:
+ ldrh r0, [r1, 0x2E]
+ adds r0, 0x1
+ strh r0, [r1, 0x2E]
+ b _08105E02
+_08105DFE:
+ movs r0, 0
+ strh r0, [r1, 0x3C]
+_08105E02:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8105DA4
+
+ thumb_func_start sub_8105E08
+sub_8105E08: @ 8105E08
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x5
+ bhi _08105EAE
+ lsls r0, 2
+ ldr r1, _08105E20
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08105E20: .4byte _08105E24
+ .align 2, 0
+_08105E24:
+ .4byte _08105E3C
+ .4byte _08105E52
+ .4byte _08105E70
+ .4byte _08105E84
+ .4byte _08105E94
+ .4byte _08105EAA
+_08105E3C:
+ ldr r0, _08105E6C
+ ldrb r1, [r0, 0xA]
+ subs r1, 0x1
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl StartSpriteAnim
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+_08105E52:
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3
+ ble _08105EAE
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ movs r0, 0
+ strh r0, [r4, 0x30]
+ b _08105EAE
+ .align 2, 0
+_08105E6C: .4byte 0x02000000
+_08105E70:
+ ldrh r0, [r4, 0x20]
+ adds r0, 0x4
+ strh r0, [r4, 0x20]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xCF
+ ble _08105EAE
+ movs r0, 0xD0
+ strh r0, [r4, 0x20]
+ b _08105EA2
+_08105E84:
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x5A
+ ble _08105EAE
+ b _08105EA2
+_08105E94:
+ ldrh r0, [r4, 0x20]
+ adds r0, 0x4
+ strh r0, [r4, 0x20]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xF7
+ ble _08105EAE
+_08105EA2:
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ b _08105EAE
+_08105EAA:
+ movs r0, 0
+ strh r0, [r4, 0x3C]
+_08105EAE:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8105E08
+
+ thumb_func_start sub_8105EB4
+sub_8105EB4: @ 8105EB4
+ push {lr}
+ adds r3, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r3, r1]
+ cmp r0, 0x1
+ beq _08105EE2
+ cmp r0, 0x1
+ bgt _08105ECA
+ cmp r0, 0
+ beq _08105ED0
+ b _08105F50
+_08105ECA:
+ cmp r0, 0x2
+ beq _08105F00
+ b _08105F50
+_08105ED0:
+ adds r2, r3, 0
+ adds r2, 0x2C
+ ldrb r0, [r2]
+ movs r1, 0x40
+ orrs r0, r1
+ strb r0, [r2]
+ ldrh r0, [r3, 0x2E]
+ adds r0, 0x1
+ strh r0, [r3, 0x2E]
+_08105EE2:
+ ldrh r0, [r3, 0x22]
+ adds r0, 0x8
+ strh r0, [r3, 0x22]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x6F
+ ble _08105F50
+ movs r0, 0x70
+ strh r0, [r3, 0x22]
+ movs r0, 0x10
+ strh r0, [r3, 0x30]
+ ldrh r0, [r3, 0x2E]
+ adds r0, 0x1
+ strh r0, [r3, 0x2E]
+ b _08105F50
+_08105F00:
+ movs r0, 0x32
+ ldrsh r2, [r3, r0]
+ cmp r2, 0
+ bne _08105F46
+ ldrh r0, [r3, 0x22]
+ ldrh r1, [r3, 0x30]
+ subs r0, r1
+ strh r0, [r3, 0x22]
+ negs r1, r1
+ strh r1, [r3, 0x30]
+ ldrh r0, [r3, 0x34]
+ adds r0, 0x1
+ strh r0, [r3, 0x34]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _08105F46
+ lsls r0, r1, 16
+ asrs r0, 18
+ strh r0, [r3, 0x30]
+ strh r2, [r3, 0x34]
+ adds r1, r0, 0
+ cmp r1, 0
+ bne _08105F46
+ ldrh r0, [r3, 0x2E]
+ adds r0, 0x1
+ strh r0, [r3, 0x2E]
+ strh r1, [r3, 0x3C]
+ adds r2, r3, 0
+ adds r2, 0x2C
+ ldrb r1, [r2]
+ movs r0, 0x41
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+_08105F46:
+ ldrh r0, [r3, 0x32]
+ adds r0, 0x1
+ movs r1, 0x7
+ ands r0, r1
+ strh r0, [r3, 0x32]
+_08105F50:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8105EB4
+
+ thumb_func_start sub_8105F54
+sub_8105F54: @ 8105F54
+ push {lr}
+ adds r1, r0, 0
+ movs r2, 0x2E
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ beq _08105F66
+ cmp r0, 0x1
+ beq _08105F7C
+ b _08105F98
+_08105F66:
+ ldrh r0, [r1, 0x30]
+ adds r0, 0x1
+ strh r0, [r1, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x8
+ ble _08105F98
+ ldrh r0, [r1, 0x2E]
+ adds r0, 0x1
+ strh r0, [r1, 0x2E]
+ b _08105F98
+_08105F7C:
+ ldrh r0, [r1, 0x22]
+ adds r0, 0x2
+ strh r0, [r1, 0x22]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x2F
+ ble _08105F98
+ movs r0, 0x30
+ strh r0, [r1, 0x22]
+ ldrh r0, [r1, 0x2E]
+ adds r0, 0x1
+ strh r0, [r1, 0x2E]
+ movs r0, 0
+ strh r0, [r1, 0x3C]
+_08105F98:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8105F54
+
+ thumb_func_start sub_8105F9C
+sub_8105F9C: @ 8105F9C
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _08105FAE
+ cmp r0, 0x1
+ beq _08106000
+ b _0810604E
+_08105FAE:
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x20
+ ble _0810604E
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ movs r0, 0x5
+ strh r0, [r4, 0x30]
+ ldrb r0, [r4, 0x1]
+ movs r1, 0x10
+ orrs r0, r1
+ strb r0, [r4, 0x1]
+ ldrb r1, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl StartSpriteAnim
+ ldr r2, _08105FFC
+ ldrh r1, [r4, 0x30]
+ lsls r0, r1, 4
+ orrs r0, r1
+ lsls r0, 8
+ strh r0, [r2]
+ b _0810604E
+ .align 2, 0
+_08105FFC: .4byte REG_MOSAIC
+_08106000:
+ ldrh r1, [r4, 0x32]
+ lsls r1, 16
+ asrs r1, 24
+ ldrh r0, [r4, 0x30]
+ subs r0, r1
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ cmp r0, 0
+ bge _08106016
+ movs r0, 0
+ strh r0, [r4, 0x30]
+_08106016:
+ ldr r2, _08106054
+ ldrh r1, [r4, 0x30]
+ lsls r0, r1, 4
+ orrs r0, r1
+ lsls r0, 8
+ strh r0, [r2]
+ ldrh r1, [r4, 0x32]
+ movs r0, 0xFF
+ ands r0, r1
+ adds r0, 0x80
+ strh r0, [r4, 0x32]
+ movs r0, 0x30
+ ldrsh r1, [r4, r0]
+ cmp r1, 0
+ bne _0810604E
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ strh r1, [r4, 0x3C]
+ ldrb r1, [r4, 0x1]
+ movs r0, 0x11
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r4, 0x1]
+ adds r0, r4, 0
+ movs r1, 0
+ bl StartSpriteAnim
+_0810604E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08106054: .4byte REG_MOSAIC
+ thumb_func_end sub_8105F9C
+
+ thumb_func_start sub_8106058
+sub_8106058: @ 8106058
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ movs r1, 0x30
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x2
+ bgt _081060A8
+ ldr r1, _081060A4
+ lsls r0, 2
+ adds r0, r1
+ ldr r4, [r0]
+ movs r0, 0x6
+ 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
+ ldrh r0, [r5, 0x32]
+ adds r0, 0x1
+ strh r0, [r5, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3
+ ble _081060E4
+ ldrh r0, [r5, 0x30]
+ adds r0, 0x1
+ strh r0, [r5, 0x30]
+ movs r0, 0
+ strh r0, [r5, 0x32]
+ b _081060E4
+ .align 2, 0
+_081060A4: .4byte gUnknown_083EDE10
+_081060A8:
+ ldr r1, _081060F8
+ movs r2, 0x30
+ ldrsh r0, [r5, r2]
+ lsls r0, 2
+ adds r0, r1
+ ldr r4, [r0]
+ movs r0, 0x6
+ 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
+ ldrh r0, [r5, 0x32]
+ adds r0, 0x1
+ movs r1, 0
+ strh r0, [r5, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x18
+ ble _081060E4
+ strh r1, [r5, 0x30]
+ strh r1, [r5, 0x32]
+_081060E4:
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl StartSpriteAnimIfDifferent
+ movs r0, 0
+ strh r0, [r5, 0x3C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081060F8: .4byte gUnknown_083EDE10
+ thumb_func_end sub_8106058
+
+ thumb_func_start sub_81060FC
+sub_81060FC: @ 81060FC
+ push {r4-r6,lr}
+ sub sp, 0x30
+ adds r4, r0, 0
+ ldr r1, _08106138
+ mov r0, sp
+ movs r2, 0x10
+ bl memcpy
+ add r6, sp, 0x10
+ ldr r1, _0810613C
+ adds r0, r6, 0
+ movs r2, 0x10
+ bl memcpy
+ add r5, sp, 0x20
+ ldr r1, _08106140
+ adds r0, r5, 0
+ movs r2, 0x10
+ bl memcpy
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ beq _08106174
+ cmp r0, 0x1
+ bgt _08106144
+ cmp r0, 0
+ beq _0810614A
+ b _081061C0
+ .align 2, 0
+_08106138: .4byte gUnknown_083ECC72
+_0810613C: .4byte gUnknown_083ECC82
+_08106140: .4byte gUnknown_083ECC92
+_08106144:
+ cmp r0, 0x2
+ beq _08106188
+ b _081061C0
+_0810614A:
+ movs r2, 0x3A
+ ldrsh r0, [r4, r2]
+ lsls r0, 1
+ add r0, sp
+ ldrh r0, [r0]
+ strh r0, [r4, 0x24]
+ movs r1, 0x3A
+ ldrsh r0, [r4, r1]
+ lsls r0, 1
+ adds r0, r6, r0
+ ldrh r0, [r0]
+ strh r0, [r4, 0x26]
+ movs r2, 0x3A
+ ldrsh r0, [r4, r2]
+ lsls r0, 1
+ adds r0, r5, r0
+ ldrh r0, [r0]
+ strh r0, [r4, 0x30]
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+_08106174:
+ ldrh r0, [r4, 0x30]
+ subs r0, 0x1
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ bne _081061C0
+ b _081061BA
+_08106188:
+ ldrh r0, [r4, 0x24]
+ movs r2, 0x24
+ ldrsh r1, [r4, r2]
+ cmp r1, 0
+ ble _08106196
+ subs r0, 0x4
+ b _0810619C
+_08106196:
+ cmp r1, 0
+ bge _0810619E
+ adds r0, 0x4
+_0810619C:
+ strh r0, [r4, 0x24]
+_0810619E:
+ ldrh r0, [r4, 0x26]
+ movs r2, 0x26
+ ldrsh r1, [r4, r2]
+ cmp r1, 0
+ ble _081061AC
+ subs r0, 0x4
+ b _081061B2
+_081061AC:
+ cmp r1, 0
+ bge _081061B4
+ adds r0, 0x4
+_081061B2:
+ strh r0, [r4, 0x26]
+_081061B4:
+ ldr r0, [r4, 0x24]
+ cmp r0, 0
+ bne _081061C0
+_081061BA:
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+_081061C0:
+ add sp, 0x30
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81060FC
+
+ thumb_func_start sub_81061C8
+sub_81061C8: @ 81061C8
+ push {r4,lr}
+ sub sp, 0x10
+ adds r4, r0, 0
+ ldr r1, _0810622C
+ mov r0, sp
+ movs r2, 0x10
+ bl memcpy
+ ldrh r1, [r4, 0x2E]
+ movs r2, 0x2E
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ bne _081061EA
+ adds r0, r1, 0x1
+ strh r0, [r4, 0x2E]
+ movs r0, 0xC
+ strh r0, [r4, 0x30]
+_081061EA:
+ movs r1, 0x3A
+ ldrsh r0, [r4, r1]
+ lsls r0, 1
+ add r0, sp
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ movs r2, 0x30
+ ldrsh r1, [r4, r2]
+ bl Cos
+ strh r0, [r4, 0x24]
+ movs r1, 0x3A
+ ldrsh r0, [r4, r1]
+ lsls r0, 1
+ add r0, sp
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ movs r2, 0x30
+ ldrsh r1, [r4, r2]
+ bl Sin
+ strh r0, [r4, 0x26]
+ ldrh r1, [r4, 0x30]
+ movs r2, 0x30
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ beq _08106224
+ subs r0, r1, 0x1
+ strh r0, [r4, 0x30]
+_08106224:
+ add sp, 0x10
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810622C: .4byte gUnknown_083ECCA2
+ thumb_func_end sub_81061C8
+
+ thumb_func_start sub_8106230
+sub_8106230: @ 8106230
+ push {r4-r6,lr}
+ sub sp, 0x4
+ adds r5, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x1
+ beq _0810627A
+ cmp r0, 0x1
+ bgt _08106248
+ cmp r0, 0
+ beq _08106252
+ b _0810634A
+_08106248:
+ cmp r0, 0x2
+ beq _081062C4
+ cmp r0, 0x3
+ beq _081062FC
+ b _0810634A
+_08106252:
+ ldr r2, _081062BC
+ adds r1, r2, 0
+ adds r1, 0x5C
+ movs r0, 0x2F
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r0, 0x3F
+ strh r0, [r1]
+ subs r1, 0x4
+ ldr r0, _081062C0
+ strh r0, [r1]
+ adds r2, r5, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ ldrh r0, [r5, 0x2E]
+ adds r0, 0x1
+ strh r0, [r5, 0x2E]
+_0810627A:
+ ldrh r0, [r5, 0x30]
+ adds r2, r0, 0x2
+ strh r2, [r5, 0x30]
+ adds r0, 0xB2
+ strh r0, [r5, 0x32]
+ movs r1, 0xF0
+ subs r1, r2
+ strh r1, [r5, 0x34]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xD0
+ ble _08106296
+ movs r0, 0xD0
+ strh r0, [r5, 0x32]
+_08106296:
+ movs r1, 0x34
+ ldrsh r0, [r5, r1]
+ cmp r0, 0xCF
+ bgt _081062A2
+ movs r0, 0xD0
+ strh r0, [r5, 0x34]
+_081062A2:
+ ldr r2, _081062BC
+ ldrh r0, [r5, 0x32]
+ lsls r0, 8
+ ldrh r1, [r5, 0x34]
+ orrs r0, r1
+ adds r1, r2, 0
+ adds r1, 0x58
+ strh r0, [r1]
+ movs r1, 0x30
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x33
+ ble _0810634A
+ b _0810633C
+ .align 2, 0
+_081062BC: .4byte 0x02000000
+_081062C0: .4byte 0x00002088
+_081062C4:
+ ldr r6, _08106354
+ movs r1, 0x12
+ ldrsh r0, [r6, r1]
+ cmp r0, 0
+ beq _0810634A
+ ldr r1, _08106358
+ movs r4, 0
+ str r4, [sp]
+ movs r0, 0x5
+ movs r2, 0xD0
+ movs r3, 0x74
+ bl sub_8104D30
+ adds r1, r6, 0
+ adds r1, 0x58
+ ldr r0, _0810635C
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r0, 0xD1
+ lsls r0, 7
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r0, 0x2F
+ strh r0, [r1]
+ ldrh r0, [r5, 0x2E]
+ adds r0, 0x1
+ strh r0, [r5, 0x2E]
+ strh r4, [r5, 0x30]
+_081062FC:
+ ldrh r0, [r5, 0x30]
+ adds r2, r0, 0x2
+ strh r2, [r5, 0x30]
+ adds r0, 0xC2
+ strh r0, [r5, 0x32]
+ movs r1, 0xE0
+ subs r1, r2
+ strh r1, [r5, 0x34]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xD0
+ ble _08106318
+ movs r0, 0xD0
+ strh r0, [r5, 0x32]
+_08106318:
+ movs r1, 0x34
+ ldrsh r0, [r5, r1]
+ cmp r0, 0xCF
+ bgt _08106324
+ movs r0, 0xD0
+ strh r0, [r5, 0x34]
+_08106324:
+ ldr r2, _08106354
+ ldrh r0, [r5, 0x32]
+ lsls r0, 8
+ ldrh r1, [r5, 0x34]
+ orrs r0, r1
+ adds r1, r2, 0
+ adds r1, 0x58
+ strh r0, [r1]
+ movs r1, 0x30
+ ldrsh r0, [r5, r1]
+ cmp r0, 0xF
+ ble _0810634A
+_0810633C:
+ ldrh r0, [r5, 0x2E]
+ adds r0, 0x1
+ strh r0, [r5, 0x2E]
+ adds r1, r2, 0
+ adds r1, 0x5C
+ movs r0, 0x3F
+ strh r0, [r1]
+_0810634A:
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08106354: .4byte 0x02000000
+_08106358: .4byte SpriteCallbackDummy
+_0810635C: .4byte 0x0000c0e0
+ thumb_func_end sub_8106230
+
+ thumb_func_start nullsub_70
+nullsub_70: @ 8106360
+ bx lr
+ thumb_func_end nullsub_70
+
+ thumb_func_start sub_8106364
+sub_8106364: @ 8106364
+ ldr r1, _0810636C
+ movs r0, 0
+ strh r0, [r1]
+ bx lr
+ .align 2, 0
+_0810636C: .4byte REG_MOSAIC
+ thumb_func_end sub_8106364
+
+ thumb_func_start sub_8106370
+sub_8106370: @ 8106370
+ push {r4,lr}
+ ldr r0, _08106398
+ ldr r4, [r0]
+ movs r0, 0x6
+ 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
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08106398: .4byte gUnknown_083EDE20
+ thumb_func_end sub_8106370
+
+ thumb_func_start sub_810639C
+sub_810639C: @ 810639C
+ ldr r2, _081063BC
+ adds r1, r2, 0
+ adds r1, 0x58
+ movs r0, 0xF0
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r0, 0xA0
+ strh r0, [r1]
+ adds r0, r2, 0
+ adds r0, 0x5C
+ movs r1, 0x3F
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ bx lr
+ .align 2, 0
+_081063BC: .4byte 0x02000000
+ thumb_func_end sub_810639C
+
+ thumb_func_start sub_81063C0
+sub_81063C0: @ 81063C0
+ push {r4,lr}
+ bl sub_8106404
+ ldr r0, _081063F0
+ ldr r4, _081063F4
+ adds r1, r4, 0
+ bl sub_800D238
+ ldr r0, _081063F8
+ movs r1, 0xC8
+ lsls r1, 6
+ adds r4, r1
+ adds r1, r4, 0
+ bl sub_800D238
+ ldr r0, _081063FC
+ bl LoadSpriteSheets
+ ldr r0, _08106400
+ bl LoadSpritePalettes
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081063F0: .4byte gSlotMachineReelTimeLights_Gfx
+_081063F4: .4byte 0x02010000
+_081063F8: .4byte gUnknown_083EDE8C
+_081063FC: .4byte gUnknown_083EDC2C
+_08106400: .4byte gSlotMachineSpritePalettes
+ thumb_func_end sub_81063C0
+
+ thumb_func_start sub_8106404
+sub_8106404: @ 8106404
+ push {r4,r5,lr}
+ ldr r3, _0810643C
+ movs r2, 0
+ ldr r5, _08106440
+ ldr r0, _08106444
+ ldr r4, [r0]
+_08106410:
+ movs r1, 0
+ adds r2, 0x1
+_08106414:
+ adds r0, r4, r1
+ ldrb r0, [r0]
+ strb r0, [r3]
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ adds r3, 0x1
+ cmp r1, 0x1F
+ bls _08106414
+ lsls r0, r2, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x3F
+ bls _08106410
+ adds r0, r5, 0
+ bl LoadSpriteSheet
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810643C: .4byte 0x02010000
+_08106440: .4byte gUnknown_083EDCDC
+_08106444: .4byte gUnknown_083EDCE4
+ thumb_func_end sub_8106404
+
+ thumb_func_start sub_8106448
+sub_8106448: @ 8106448
+ push {r4-r7,lr}
+ ldr r0, _081064A0
+ ldr r4, _081064A4
+ adds r1, r4, 0
+ bl sub_800D238
+ movs r3, 0xC0
+ lsls r3, 19
+ movs r5, 0xE9
+ lsls r5, 5
+ ldr r1, _081064A8
+ ldr r6, _081064AC
+ movs r2, 0x80
+ lsls r2, 5
+ movs r7, 0x80
+ lsls r7, 24
+_08106468:
+ str r4, [r1]
+ str r3, [r1, 0x4]
+ str r6, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ adds r4, r2
+ adds r3, r2
+ subs r5, r2
+ cmp r5, r2
+ bhi _08106468
+ str r4, [r1]
+ str r3, [r1, 0x4]
+ lsrs r0, r5, 1
+ orrs r0, r7
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ ldr r0, _081064B0
+ movs r1, 0
+ movs r2, 0xA0
+ bl LoadPalette
+ ldr r0, _081064B4
+ movs r1, 0xD0
+ movs r2, 0x20
+ bl LoadPalette
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081064A0: .4byte gSlotMachine_Gfx
+_081064A4: .4byte 0x02010000
+_081064A8: .4byte 0x040000d4
+_081064AC: .4byte 0x80000800
+_081064B0: .4byte gUnknown_08E95A18
+_081064B4: .4byte gUnknown_083EDE24
+ thumb_func_end sub_8106448
+
+ thumb_func_start sub_81064B8
+sub_81064B8: @ 81064B8
+ push {lr}
+ ldr r0, _081064D0
+ ldr r1, _081064D4
+ movs r2, 0xA0
+ lsls r2, 2
+ bl CpuSet
+ bl sub_81064D8
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081064D0: .4byte gUnknown_08E95AB8
+_081064D4: .4byte 0x0600e800
+ thumb_func_end sub_81064B8
+
+ thumb_func_start sub_81064D8
+sub_81064D8: @ 81064D8
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ ldr r6, _0810658C
+ movs r3, 0x4
+ movs r0, 0xC0
+ lsls r0, 1
+ mov r12, r0
+ movs r1, 0xC0
+ lsls r1, 2
+ mov r9, r1
+ movs r2, 0xA0
+ lsls r2, 1
+ mov r8, r2
+_081064F6:
+ movs r0, 0
+ lsls r4, r3, 16
+ asrs r5, r4, 16
+_081064FC:
+ lsls r2, r0, 16
+ asrs r2, 16
+ adds r1, r5, r2
+ lsls r1, 1
+ adds r1, r6
+ mov r7, r8
+ adds r3, r1, r7
+ ldr r7, _08106590
+ adds r0, r7, 0
+ strh r0, [r3]
+ movs r0, 0xD0
+ lsls r0, 2
+ adds r3, r1, r0
+ ldr r7, _08106594
+ adds r0, r7, 0
+ strh r0, [r3]
+ mov r0, r12
+ adds r3, r1, r0
+ ldr r7, _08106598
+ adds r0, r7, 0
+ strh r0, [r3]
+ add r1, r9
+ ldr r3, _0810659C
+ adds r0, r3, 0
+ strh r0, [r1]
+ adds r2, 0x1
+ lsls r2, 16
+ lsrs r0, r2, 16
+ asrs r2, 16
+ cmp r2, 0x3
+ ble _081064FC
+ asrs r3, r4, 16
+ lsls r1, r3, 1
+ adds r1, r6
+ mov r5, r12
+ adds r2, r1, r5
+ adds r7, 0x5D
+ adds r0, r7, 0
+ strh r0, [r2]
+ add r1, r9
+ ldr r2, _081065A0
+ adds r0, r2, 0
+ strh r0, [r1]
+ movs r0, 0x7
+ ldr r5, _081065A4
+ adds r2, r5, 0
+_08106558:
+ lsls r1, r0, 16
+ asrs r1, 16
+ lsls r0, r1, 5
+ adds r0, r3
+ lsls r0, 1
+ adds r0, r6
+ strh r2, [r0]
+ adds r1, 0x1
+ lsls r1, 16
+ lsrs r0, r1, 16
+ asrs r1, 16
+ cmp r1, 0xB
+ ble _08106558
+ movs r7, 0xA0
+ lsls r7, 11
+ adds r0, r4, r7
+ lsrs r3, r0, 16
+ asrs r0, 16
+ cmp r0, 0x11
+ ble _081064F6
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810658C: .4byte 0x0600f000
+_08106590: .4byte 0x00002051
+_08106594: .4byte 0x00002851
+_08106598: .4byte 0x00002061
+_0810659C: .4byte 0x00002861
+_081065A0: .4byte 0x000028be
+_081065A4: .4byte 0x000020bf
+ thumb_func_end sub_81064D8
+
+ thumb_func_start sub_81065A8
+sub_81065A8: @ 81065A8
+ push {r4-r6,lr}
+ ldr r5, [sp, 0x10]
+ lsls r0, 16
+ asrs r0, 15
+ ldr r6, _081065D0
+ adds r4, r0, r6
+ strh r1, [r4]
+ ldr r4, _081065D4
+ adds r1, r0, r4
+ strh r2, [r1]
+ adds r6, 0x40
+ adds r1, r0, r6
+ strh r3, [r1]
+ ldr r1, _081065D8
+ adds r0, r1
+ strh r5, [r0]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081065D0: .4byte 0x0600ebc0
+_081065D4: .4byte 0x0600ebc2
+_081065D8: .4byte 0x0600ec02
+ thumb_func_end sub_81065A8
+
+ thumb_func_start sub_81065DC
+sub_81065DC: @ 81065DC
+ push {r4,r5,lr}
+ ldr r0, _08106624
+ ldr r1, _08106628
+ movs r2, 0xA0
+ lsls r2, 2
+ bl CpuSet
+ ldr r5, _0810662C
+ movs r1, 0
+ movs r4, 0
+_081065F0:
+ movs r0, 0
+ lsls r3, r1, 16
+ asrs r2, r3, 11
+_081065F6:
+ lsls r1, r0, 16
+ asrs r1, 16
+ adds r0, r2, r1
+ lsls r0, 1
+ adds r0, r5
+ strh r4, [r0]
+ adds r1, 0x1
+ lsls r1, 16
+ lsrs r0, r1, 16
+ asrs r1, 16
+ cmp r1, 0x1D
+ ble _081065F6
+ movs r1, 0x80
+ lsls r1, 9
+ adds r0, r3, r1
+ lsrs r1, r0, 16
+ asrs r0, 16
+ cmp r0, 0x13
+ ble _081065F0
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08106624: .4byte gUnknown_08E95FB8
+_08106628: .4byte 0x0600e800
+_0810662C: .4byte 0x0600f000
+ thumb_func_end sub_81065DC
+
+ thumb_func_start sub_8106630
+sub_8106630: @ 8106630
+ push {r4-r7,lr}
+ ldr r2, _0810665C
+ subs r4, r2, 0x2
+ subs r5, r2, 0x1
+ ldr r3, _08106660
+ subs r0, 0x1
+ lsls r1, r0, 5
+ adds r1, r3
+ ldr r3, _08106664
+ adds r1, r3
+ ldm r1!, {r3,r6,r7}
+ stm r2!, {r3,r6,r7}
+ ldm r1!, {r3,r6,r7}
+ stm r2!, {r3,r6,r7}
+ ldm r1!, {r6,r7}
+ stm r2!, {r6,r7}
+ strb r0, [r4]
+ movs r0, 0
+ strb r0, [r5]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810665C: .4byte 0x02015de0
+_08106660: .4byte gSaveBlock1
+_08106664: .4byte 0x00002dfc
+ thumb_func_end sub_8106630
+
+ thumb_func_start sub_8106668
+sub_8106668: @ 8106668
+ push {lr}
+ bl sub_8106674
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8106668
+
+ thumb_func_start sub_8106674
+sub_8106674: @ 8106674
+ push {r4-r7,lr}
+ sub sp, 0x4
+ ldr r1, _08106694
+ ldr r2, _08106698
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ adds r4, r1, 0
+ cmp r0, 0x4
+ bls _08106688
+ b _081067E0
+_08106688:
+ lsls r0, 2
+ ldr r1, _0810669C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08106694: .4byte gMain
+_08106698: .4byte 0x0000043c
+_0810669C: .4byte _081066A0
+ .align 2, 0
+_081066A0:
+ .4byte _081066B4
+ .4byte _081066D8
+ .4byte _08106734
+ .4byte _0810675C
+ .4byte _0810678C
+_081066B4:
+ bl remove_some_task
+ movs r0, 0
+ bl SetVBlankCallback
+ ldr r1, _081066D0
+ ldr r0, _081066D4
+ str r0, [r1]
+ movs r0, 0x1
+ bl sub_8106A10
+ bl sub_81069CC
+ b _0810676E
+ .align 2, 0
+_081066D0: .4byte gUnknown_03005E8C
+_081066D4: .4byte 0x02015de0
+_081066D8:
+ bl ResetPaletteFade
+ movs r2, 0xC0
+ lsls r2, 19
+ movs r3, 0xC0
+ lsls r3, 9
+ movs r5, 0
+ ldr r1, _08106724
+ movs r4, 0x80
+ lsls r4, 5
+ ldr r6, _08106728
+ movs r7, 0x85
+ lsls r7, 24
+_081066F2:
+ str r5, [sp]
+ mov r0, sp
+ str r0, [r1]
+ str r2, [r1, 0x4]
+ str r6, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ adds r2, r4
+ subs r3, r4
+ cmp r3, r4
+ bhi _081066F2
+ str r5, [sp]
+ mov r0, sp
+ str r0, [r1]
+ str r2, [r1, 0x4]
+ lsrs r0, r3, 2
+ orrs r0, r7
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ bl ResetSpriteData
+ ldr r1, _0810672C
+ ldr r2, _08106730
+ adds r1, r2
+ b _08106774
+ .align 2, 0
+_08106724: .4byte 0x040000d4
+_08106728: .4byte 0x85000400
+_0810672C: .4byte gMain
+_08106730: .4byte 0x0000043c
+_08106734:
+ ldrh r0, [r4, 0x20]
+ bl SeedRng
+ bl InitKeys
+ ldr r0, _08106750
+ ldr r1, _08106754
+ adds r0, r1
+ ldrb r0, [r0]
+ bl sub_81068FC
+ ldr r2, _08106758
+ adds r1, r4, r2
+ b _08106774
+ .align 2, 0
+_08106750: .4byte 0x02000000
+_08106754: .4byte 0x00015ddf
+_08106758: .4byte 0x0000043c
+_0810675C:
+ ldr r1, _0810677C
+ ldr r2, _08106780
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ adds r2, 0x1
+ adds r1, r2
+ ldrb r1, [r1]
+ bl sub_8107090
+_0810676E:
+ ldr r1, _08106784
+ ldr r0, _08106788
+ adds r1, r0
+_08106774:
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _081067E0
+ .align 2, 0
+_0810677C: .4byte 0x02000000
+_08106780: .4byte 0x00015dde
+_08106784: .4byte gMain
+_08106788: .4byte 0x0000043c
+_0810678C:
+ ldr r1, _081067E8
+ ldr r2, _081067EC
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ adds r2, 0x1
+ adds r1, r2
+ ldrb r1, [r1]
+ bl sub_8106918
+ ldr r0, _081067F0
+ movs r1, 0
+ movs r2, 0x2
+ bl LoadPalette
+ movs r1, 0xA0
+ lsls r1, 19
+ movs r4, 0
+ str r4, [sp]
+ ldr r0, _081067F4
+ mov r2, sp
+ str r2, [r0]
+ str r1, [r0, 0x4]
+ ldr r1, _081067F8
+ str r1, [r0, 0x8]
+ ldr r0, [r0, 0x8]
+ movs r0, 0x2
+ bl BeginFastPaletteFade
+ ldr r0, _081067FC
+ bl SetVBlankCallback
+ ldr r0, _08106800
+ strb r4, [r0]
+ movs r1, 0x80
+ lsls r1, 19
+ movs r2, 0x9A
+ lsls r2, 5
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r0, _08106804
+ bl SetMainCallback2
+_081067E0:
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081067E8: .4byte 0x02000000
+_081067EC: .4byte 0x00015dde
+_081067F0: .4byte gUnknown_083F6140
+_081067F4: .4byte 0x040000d4
+_081067F8: .4byte 0x85000100
+_081067FC: .4byte sub_8106AAC
+_08106800: .4byte gUnknown_03000750
+_08106804: .4byte sub_8106808
+ thumb_func_end sub_8106674
+
+ thumb_func_start sub_8106808
+sub_8106808: @ 8106808
+ push {lr}
+ bl sub_810682C
+ bl UpdatePaletteFade
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8106808
+
+ thumb_func_start sub_8106818
+sub_8106818: @ 8106818
+ push {lr}
+ ldr r0, _08106828
+ ldr r0, [r0, 0x8]
+ bl SetMainCallback2
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08106828: .4byte gMain
+ thumb_func_end sub_8106818
+
+ thumb_func_start sub_810682C
+sub_810682C: @ 810682C
+ push {lr}
+ sub sp, 0x4
+ ldr r3, _08106844
+ ldrb r1, [r3]
+ cmp r1, 0x1
+ beq _08106880
+ cmp r1, 0x1
+ bgt _08106848
+ cmp r1, 0
+ beq _0810684E
+ b _081068E6
+ .align 2, 0
+_08106844: .4byte gUnknown_03000750
+_08106848:
+ cmp r1, 0x2
+ beq _081068C0
+ b _081068E6
+_0810684E:
+ ldr r0, _08106874
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0810685E
+ movs r0, 0x1
+ strb r0, [r3]
+_0810685E:
+ ldr r0, _08106878
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _081068E6
+ ldr r1, _0810687C
+ ldrh r0, [r1]
+ cmp r0, 0
+ beq _081068E6
+ subs r0, 0x1
+ b _081068E4
+ .align 2, 0
+_08106874: .4byte gPaletteFade
+_08106878: .4byte gUnknown_03000756
+_0810687C: .4byte gUnknown_03000754
+_08106880:
+ ldr r0, _081068B4
+ ldrh r2, [r0, 0x2E]
+ ands r1, r2
+ cmp r1, 0
+ bne _08106892
+ movs r0, 0x2
+ ands r0, r2
+ cmp r0, 0
+ beq _081068A4
+_08106892:
+ movs r0, 0x2
+ strb r0, [r3]
+ subs r0, 0x3
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+_081068A4:
+ ldr r0, _081068B8
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _081068E6
+ ldr r1, _081068BC
+ movs r0, 0
+ b _081068E4
+ .align 2, 0
+_081068B4: .4byte gMain
+_081068B8: .4byte gUnknown_03000756
+_081068BC: .4byte gUnknown_03000754
+_081068C0:
+ ldr r0, _081068EC
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _081068D2
+ ldr r0, _081068F0
+ bl SetMainCallback2
+_081068D2:
+ ldr r0, _081068F4
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _081068E6
+ ldr r1, _081068F8
+ ldrh r0, [r1]
+ cmp r0, 0x1D
+ bhi _081068E6
+ adds r0, 0x1
+_081068E4:
+ strh r0, [r1]
+_081068E6:
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081068EC: .4byte gPaletteFade
+_081068F0: .4byte sub_8106818
+_081068F4: .4byte gUnknown_03000756
+_081068F8: .4byte gUnknown_03000754
+ thumb_func_end sub_810682C
+
+ thumb_func_start sub_81068FC
+sub_81068FC: @ 81068FC
+ push {r4,lr}
+ ldr r4, _08106914
+ adds r0, r4, 0
+ bl InitMenuWindow
+ adds r0, r4, 0
+ bl SetUpWindowConfig
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08106914: .4byte gWindowConfig_81E7160
+ thumb_func_end sub_81068FC
+
+ thumb_func_start sub_8106918
+sub_8106918: @ 8106918
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ cmp r1, 0x1
+ beq _081069BE
+ ldr r2, _08106974
+ ldr r6, _08106978
+ ldr r0, [r6]
+ ldrb r0, [r0, 0xA]
+ cmp r3, 0x7
+ bhi _08106988
+ ldr r1, _0810697C
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, [r0]
+ adds r0, r2, 0
+ bl StringCopy
+ adds r2, r0, 0
+ ldr r1, _08106980
+ bl StringCopy
+ adds r2, r0, 0
+ ldr r1, [r6]
+ adds r1, 0x16
+ bl StringCopy
+ adds r2, r0, 0
+ movs r0, 0xFC
+ strb r0, [r2]
+ movs r0, 0x16
+ strb r0, [r2, 0x1]
+ adds r2, 0x2
+ ldr r1, _08106984
+ adds r0, r2, 0
+ bl StringCopy
+ adds r2, r0, 0
+ ldr r1, [r6]
+ adds r1, 0xB
+ bl StringCopy10
+ movs r1, 0x6
+ b _081069AE
+ .align 2, 0
+_08106974: .4byte gUnknown_03005E40
+_08106978: .4byte gUnknown_03005E8C
+_0810697C: .4byte gUnknown_083F60AC
+_08106980: .4byte gContestText_ContestWinner
+_08106984: .4byte gOtherText_Unknown1
+_08106988:
+ ldr r4, _081069C4
+ lsls r5, r0, 3
+ adds r0, r5, r4
+ ldr r1, [r0]
+ adds r0, r2, 0
+ bl StringCopy
+ adds r2, r0, 0
+ ldr r1, [r6]
+ adds r1, 0xB
+ bl StringCopy10
+ adds r2, r0, 0
+ adds r4, 0x4
+ adds r5, r4
+ ldr r1, [r5]
+ bl StringCopy
+ movs r1, 0x3
+_081069AE:
+ movs r2, 0xE
+ ldr r0, _081069C8
+ lsls r1, 3
+ adds r1, 0x1
+ lsls r2, 3
+ movs r3, 0x1
+ bl sub_80729D8
+_081069BE:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081069C4: .4byte gUnknown_083F60C0
+_081069C8: .4byte gUnknown_03005E40
+ thumb_func_end sub_8106918
+
+ thumb_func_start sub_81069CC
+sub_81069CC: @ 81069CC
+ movs r0, 0x80
+ lsls r0, 19
+ movs r3, 0
+ strh r3, [r0]
+ ldr r2, _081069FC
+ ldrh r0, [r2]
+ movs r1, 0x1
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r1, _08106A00
+ ldr r2, _08106A04
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r2, _08106A08
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r0, _08106A0C
+ strh r3, [r0]
+ adds r0, 0x2
+ strh r3, [r0]
+ adds r0, 0x2
+ strh r3, [r0]
+ bx lr
+ .align 2, 0
+_081069FC: .4byte 0x04000200
+_08106A00: .4byte REG_BG0CNT
+_08106A04: .4byte 0x00000c42
+_08106A08: .4byte 0x00000a45
+_08106A0C: .4byte REG_BLDCNT
+ thumb_func_end sub_81069CC
+
+ thumb_func_start sub_8106A10
+sub_8106A10: @ 8106A10
+ push {lr}
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0
+ bne _08106A34
+ ldr r0, _08106A28
+ strb r1, [r0]
+ ldr r0, _08106A2C
+ strh r1, [r0]
+ ldr r0, _08106A30
+ strh r1, [r0]
+ b _08106A46
+ .align 2, 0
+_08106A28: .4byte gUnknown_03000756
+_08106A2C: .4byte gUnknown_03000752
+_08106A30: .4byte gUnknown_03000754
+_08106A34:
+ ldr r1, _08106A4C
+ movs r0, 0x1
+ strb r0, [r1]
+ ldr r1, _08106A50
+ movs r0, 0xF
+ strh r0, [r1]
+ ldr r1, _08106A54
+ movs r0, 0x1E
+ strh r0, [r1]
+_08106A46:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08106A4C: .4byte gUnknown_03000756
+_08106A50: .4byte gUnknown_03000752
+_08106A54: .4byte gUnknown_03000754
+ thumb_func_end sub_8106A10
+
+ thumb_func_start sub_8106A58
+sub_8106A58: @ 8106A58
+ push {lr}
+ ldr r0, _08106A68
+ ldrb r1, [r0]
+ cmp r1, 0
+ bne _08106A70
+ ldr r0, _08106A6C
+ strh r1, [r0]
+ b _08106A92
+ .align 2, 0
+_08106A68: .4byte gUnknown_03000756
+_08106A6C: .4byte REG_MOSAIC
+_08106A70:
+ ldr r1, _08106A98
+ ldr r2, _08106A9C
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r2, _08106AA0
+ ldr r0, _08106AA4
+ ldrh r1, [r0]
+ lsrs r1, 1
+ strh r1, [r2]
+ ldr r3, _08106AA8
+ lsls r0, r1, 12
+ lsls r2, r1, 8
+ orrs r0, r2
+ lsls r2, r1, 4
+ orrs r0, r2
+ orrs r0, r1
+ strh r0, [r3]
+_08106A92:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08106A98: .4byte REG_BG1CNT
+_08106A9C: .4byte 0x00000a45
+_08106AA0: .4byte gUnknown_03000752
+_08106AA4: .4byte gUnknown_03000754
+_08106AA8: .4byte REG_MOSAIC
+ thumb_func_end sub_8106A58
+
+ thumb_func_start sub_8106AAC
+sub_8106AAC: @ 8106AAC
+ push {lr}
+ bl sub_8106A58
+ bl LoadOam
+ bl ProcessSpriteCopyRequests
+ bl TransferPlttBuffer
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8106AAC
+
+ thumb_func_start sub_8106AC4
+sub_8106AC4: @ 8106AC4
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0xC
+ adds r4, r1, 0
+ lsls r0, 16
+ lsrs r6, r0, 16
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r7, _08106B28
+ ldr r0, [r7]
+ ldr r1, [r0, 0x4]
+ ldr r2, [r0]
+ adds r0, r6, 0
+ bl species_and_otid_get_pal
+ ldr r1, _08106B2C
+ mov r8, r1
+ ldr r1, [r1]
+ bl LZDecompressVram
+ cmp r4, 0
+ bne _08106B40
+ lsls r0, r6, 3
+ ldr r1, _08106B30
+ adds r0, r1
+ ldr r1, _08106B34
+ lsls r2, r6, 2
+ adds r2, r1
+ ldrb r1, [r2]
+ ldrb r2, [r2, 0x1]
+ movs r3, 0x80
+ lsls r3, 18
+ ldr r4, _08106B38
+ ldr r5, [r4, 0x4]
+ str r5, [sp]
+ str r6, [sp, 0x4]
+ ldr r4, [r7]
+ ldr r4, [r4]
+ str r4, [sp, 0x8]
+ bl sub_800D334
+ mov r2, r8
+ ldr r1, [r2]
+ ldr r0, _08106B3C
+ ldr r2, [r0]
+ adds r0, r5, 0
+ bl sub_8106B90
+ b _08106B74
+ .align 2, 0
+_08106B28: .4byte gUnknown_03005E8C
+_08106B2C: .4byte gUnknown_03005E90
+_08106B30: .4byte gMonFrontPicTable
+_08106B34: .4byte gMonFrontPicCoords
+_08106B38: .4byte gUnknown_081FAF4C
+_08106B3C: .4byte gUnknown_03005E10
+_08106B40:
+ lsls r0, r6, 3
+ ldr r1, _08106B80
+ adds r0, r1
+ ldr r1, _08106B84
+ lsls r2, r6, 2
+ adds r2, r1
+ ldrb r1, [r2]
+ ldrb r2, [r2, 0x1]
+ movs r3, 0x80
+ lsls r3, 18
+ ldr r4, _08106B88
+ ldr r5, [r4]
+ str r5, [sp]
+ str r6, [sp, 0x4]
+ ldr r4, [r7]
+ ldr r4, [r4]
+ str r4, [sp, 0x8]
+ bl sub_800D334
+ mov r0, r8
+ ldr r1, [r0]
+ ldr r0, _08106B8C
+ ldr r2, [r0]
+ adds r0, r5, 0
+ bl sub_8106B90
+_08106B74:
+ add sp, 0xC
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08106B80: .4byte gMonBackPicTable
+_08106B84: .4byte gMonBackPicCoords
+_08106B88: .4byte gUnknown_081FAF4C
+_08106B8C: .4byte gUnknown_03005E10
+ thumb_func_end sub_8106AC4
+
+ thumb_func_start sub_8106B90
+sub_8106B90: @ 8106B90
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0xC
+ mov r10, r0
+ mov r9, r1
+ str r2, [sp]
+ movs r0, 0
+_08106BA4:
+ movs r3, 0
+ adds r1, r0, 0x1
+ str r1, [sp, 0x4]
+ lsls r0, 3
+ str r0, [sp, 0x8]
+_08106BAE:
+ movs r1, 0
+ adds r2, r3, 0x1
+ mov r8, r2
+ ldr r7, [sp, 0x8]
+ adds r0, r7, r3
+ lsls r0, 5
+ mov r12, r0
+ lsls r4, r3, 3
+_08106BBE:
+ movs r3, 0
+ lsls r0, r1, 2
+ adds r6, r1, 0x1
+ mov r2, r12
+ adds r5, r2, r0
+ ldr r7, [sp, 0x8]
+ adds r0, r7, r1
+ lsls r0, 7
+ ldr r1, [sp]
+ adds r2, r0, r1
+_08106BD2:
+ lsrs r0, r3, 1
+ adds r0, r5, r0
+ add r0, r10
+ ldrb r1, [r0]
+ movs r0, 0x1
+ ands r0, r3
+ cmp r0, 0
+ beq _08106BE6
+ lsrs r1, 4
+ b _08106BEA
+_08106BE6:
+ movs r0, 0xF
+ ands r1, r0
+_08106BEA:
+ cmp r1, 0
+ bne _08106BFC
+ adds r0, r4, r3
+ lsls r0, 1
+ adds r0, r2
+ movs r7, 0x80
+ lsls r7, 8
+ adds r1, r7, 0
+ b _08106C08
+_08106BFC:
+ adds r0, r4, r3
+ lsls r0, 1
+ adds r0, r2
+ lsls r1, 1
+ add r1, r9
+ ldrh r1, [r1]
+_08106C08:
+ strh r1, [r0]
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0x7
+ bls _08106BD2
+ lsls r0, r6, 16
+ lsrs r1, r0, 16
+ cmp r1, 0x7
+ bls _08106BBE
+ mov r1, r8
+ lsls r0, r1, 16
+ lsrs r3, r0, 16
+ cmp r3, 0x7
+ bls _08106BAE
+ ldr r2, [sp, 0x4]
+ lsls r0, r2, 16
+ lsrs r0, 16
+ cmp r0, 0x7
+ bls _08106BA4
+ 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_8106B90
+
+ thumb_func_start sub_8106C40
+sub_8106C40: @ 8106C40
+ push {r4-r7,lr}
+ adds r4, r1, 0
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _08106C7C
+ movs r2, 0x80
+ lsls r2, 1
+ movs r1, 0
+ bl LoadPalette
+ cmp r4, 0x1
+ beq _08106C5E
+ b _08106DB4
+_08106C5E:
+ ldr r0, _08106C80
+ ldr r0, [r0]
+ ldrb r0, [r0, 0xA]
+ movs r1, 0x3
+ bl __udivsi3
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ bhi _08106D1C
+ lsls r0, 2
+ ldr r1, _08106C84
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08106C7C: .4byte gPictureFramePalettes
+_08106C80: .4byte gUnknown_03005E8C
+_08106C84: .4byte _08106C88
+ .align 2, 0
+_08106C88:
+ .4byte _08106C9C
+ .4byte _08106CB4
+ .4byte _08106CCC
+ .4byte _08106CE4
+ .4byte _08106D08
+_08106C9C:
+ ldr r0, _08106CAC
+ movs r1, 0xC0
+ lsls r1, 19
+ bl RLUnCompVram
+ ldr r0, _08106CB0
+ b _08106CF0
+ .align 2, 0
+_08106CAC: .4byte gPictureFrameTiles_0
+_08106CB0: .4byte gPictureFrameTilemap_0
+_08106CB4:
+ ldr r0, _08106CC4
+ movs r1, 0xC0
+ lsls r1, 19
+ bl RLUnCompVram
+ ldr r0, _08106CC8
+ b _08106CF0
+ .align 2, 0
+_08106CC4: .4byte gPictureFrameTiles_1
+_08106CC8: .4byte gPictureFrameTilemap_1
+_08106CCC:
+ ldr r0, _08106CDC
+ movs r1, 0xC0
+ lsls r1, 19
+ bl RLUnCompVram
+ ldr r0, _08106CE0
+ b _08106CF0
+ .align 2, 0
+_08106CDC: .4byte gPictureFrameTiles_2
+_08106CE0: .4byte gPictureFrameTilemap_2
+_08106CE4:
+ ldr r0, _08106CFC
+ movs r1, 0xC0
+ lsls r1, 19
+ bl RLUnCompVram
+ ldr r0, _08106D00
+_08106CF0:
+ ldr r1, _08106D04
+ ldr r1, [r1]
+ bl RLUnCompWram
+ b _08106D1C
+ .align 2, 0
+_08106CFC: .4byte gPictureFrameTiles_3
+_08106D00: .4byte gPictureFrameTilemap_3
+_08106D04: .4byte gUnknown_03005E10
+_08106D08:
+ ldr r0, _08106D98
+ movs r1, 0xC0
+ lsls r1, 19
+ bl RLUnCompVram
+ ldr r0, _08106D9C
+ ldr r1, _08106DA0
+ ldr r1, [r1]
+ bl RLUnCompWram
+_08106D1C:
+ movs r1, 0
+ ldr r5, _08106DA4
+ ldr r0, _08106DA8
+ adds r4, r0, 0
+_08106D24:
+ movs r3, 0
+ lsls r2, r1, 5
+_08106D28:
+ adds r0, r2, r3
+ lsls r0, 1
+ adds r0, r5
+ strh r4, [r0]
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x1F
+ bls _08106D28
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x13
+ bls _08106D24
+ movs r1, 0
+ ldr r0, _08106DAC
+ mov r12, r0
+ ldr r7, _08106DA0
+_08106D4C:
+ movs r3, 0
+ adds r6, r1, 0x1
+ lsls r5, r1, 5
+ lsls r4, r1, 6
+_08106D54:
+ adds r2, r5, r3
+ lsls r2, 1
+ add r2, r12
+ ldr r0, [r7]
+ adds r0, r4, r0
+ lsls r1, r3, 1
+ adds r0, r1
+ adds r0, 0x8C
+ ldrh r0, [r0]
+ strh r0, [r2]
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x11
+ bls _08106D54
+ lsls r0, r6, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x9
+ bls _08106D4C
+ movs r3, 0
+ ldr r4, _08106DB0
+ ldr r2, _08106DA0
+_08106D80:
+ lsls r1, r3, 1
+ adds r1, r4
+ ldr r0, [r2]
+ adds r0, 0x8E
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0xF
+ bls _08106D80
+ b _08106E86
+ .align 2, 0
+_08106D98: .4byte gPictureFrameTiles_4
+_08106D9C: .4byte gPictureFrameTilemap_4
+_08106DA0: .4byte gUnknown_03005E10
+_08106DA4: .4byte 0x06006000
+_08106DA8: .4byte 0x00001015
+_08106DAC: .4byte 0x0600608c
+_08106DB0: .4byte 0x0600608e
+_08106DB4:
+ cmp r5, 0x7
+ bhi _08106DD0
+ ldr r0, _08106DC8
+ movs r1, 0xC0
+ lsls r1, 19
+ bl RLUnCompVram
+ ldr r0, _08106DCC
+ b _08106E60
+ .align 2, 0
+_08106DC8: .4byte gPictureFrameTiles_5
+_08106DCC: .4byte gPictureFrameTilemap_5
+_08106DD0:
+ ldr r0, _08106DF0
+ ldr r0, [r0]
+ ldrb r0, [r0, 0xA]
+ movs r1, 0x3
+ bl __udivsi3
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ bhi _08106E86
+ lsls r0, 2
+ ldr r1, _08106DF4
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08106DF0: .4byte gUnknown_03005E8C
+_08106DF4: .4byte _08106DF8
+ .align 2, 0
+_08106DF8:
+ .4byte _08106E0C
+ .4byte _08106E24
+ .4byte _08106E3C
+ .4byte _08106E54
+ .4byte _08106E74
+_08106E0C:
+ ldr r0, _08106E1C
+ movs r1, 0xC0
+ lsls r1, 19
+ bl RLUnCompVram
+ ldr r0, _08106E20
+ b _08106E60
+ .align 2, 0
+_08106E1C: .4byte gPictureFrameTiles_0
+_08106E20: .4byte gPictureFrameTilemap_0
+_08106E24:
+ ldr r0, _08106E34
+ movs r1, 0xC0
+ lsls r1, 19
+ bl RLUnCompVram
+ ldr r0, _08106E38
+ b _08106E60
+ .align 2, 0
+_08106E34: .4byte gPictureFrameTiles_1
+_08106E38: .4byte gPictureFrameTilemap_1
+_08106E3C:
+ ldr r0, _08106E4C
+ movs r1, 0xC0
+ lsls r1, 19
+ bl RLUnCompVram
+ ldr r0, _08106E50
+ b _08106E60
+ .align 2, 0
+_08106E4C: .4byte gPictureFrameTiles_2
+_08106E50: .4byte gPictureFrameTilemap_2
+_08106E54:
+ ldr r0, _08106E68
+ movs r1, 0xC0
+ lsls r1, 19
+ bl RLUnCompVram
+ ldr r0, _08106E6C
+_08106E60:
+ ldr r1, _08106E70
+ bl RLUnCompVram
+ b _08106E86
+ .align 2, 0
+_08106E68: .4byte gPictureFrameTiles_3
+_08106E6C: .4byte gPictureFrameTilemap_3
+_08106E70: .4byte 0x06006000
+_08106E74:
+ ldr r0, _08106E8C
+ movs r1, 0xC0
+ lsls r1, 19
+ bl RLUnCompVram
+ ldr r0, _08106E90
+ ldr r1, _08106E94
+ bl RLUnCompVram
+_08106E86:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08106E8C: .4byte gPictureFrameTiles_4
+_08106E90: .4byte gPictureFrameTilemap_4
+_08106E94: .4byte 0x06006000
+ thumb_func_end sub_8106C40
+
+ thumb_func_start sub_8106E98
+sub_8106E98: @ 8106E98
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r4, _08106ED0
+ ldr r1, _08106ED4
+ ldr r2, [r1, 0x4]
+ ldr r1, [r1]
+ str r1, [r4, 0x3C]
+ str r2, [r4, 0x40]
+ adds r3, r4, 0
+ adds r3, 0x40
+ ldrh r2, [r3]
+ ldr r1, _08106ED8
+ ands r1, r2
+ strh r1, [r3]
+ ldrh r1, [r4, 0x3E]
+ ldr r0, _08106EDC
+ ands r0, r1
+ movs r1, 0x58
+ orrs r0, r1
+ strh r0, [r4, 0x3E]
+ adds r1, r4, 0
+ adds r1, 0x3C
+ movs r0, 0x18
+ strb r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08106ED0: .4byte gMain
+_08106ED4: .4byte gOamData_83F6138
+_08106ED8: .4byte 0xfffffc00
+_08106EDC: .4byte 0xfffffe00
+ thumb_func_end sub_8106E98
+
+ thumb_func_start sub_8106EE0
+sub_8106EE0: @ 8106EE0
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x7
+ bhi _08106EF8
+ ldr r0, _08106EF4
+ ldr r0, [r0]
+ ldrb r0, [r0, 0xA]
+ b _08106F08
+ .align 2, 0
+_08106EF4: .4byte gUnknown_03005E8C
+_08106EF8:
+ ldr r0, _08106F18
+ ldr r0, [r0]
+ ldrb r0, [r0, 0xA]
+ movs r1, 0x3
+ bl __udivsi3
+ lsls r0, 24
+ lsrs r0, 24
+_08106F08:
+ cmp r0, 0x4
+ bhi _08106F46
+ lsls r0, 2
+ ldr r1, _08106F1C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08106F18: .4byte gUnknown_03005E8C
+_08106F1C: .4byte _08106F20
+ .align 2, 0
+_08106F20:
+ .4byte _08106F34
+ .4byte _08106F38
+ .4byte _08106F3C
+ .4byte _08106F40
+ .4byte _08106F44
+_08106F34:
+ movs r0, 0x9
+ b _08106F46
+_08106F38:
+ movs r0, 0xD
+ b _08106F46
+_08106F3C:
+ movs r0, 0x2
+ b _08106F46
+_08106F40:
+ movs r0, 0x24
+ b _08106F46
+_08106F44:
+ movs r0, 0x6
+_08106F46:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8106EE0
+
+ thumb_func_start sub_8106F4C
+sub_8106F4C: @ 8106F4C
+ ldr r0, _08106F5C
+ ldr r1, _08106F60
+ str r1, [r0]
+ ldr r0, _08106F64
+ ldr r2, _08106F68
+ adds r1, r2
+ str r1, [r0]
+ bx lr
+ .align 2, 0
+_08106F5C: .4byte gUnknown_03005E90
+_08106F60: .4byte 0x02017e00
+_08106F64: .4byte gUnknown_03005E10
+_08106F68: .4byte 0xffffe000
+ thumb_func_end sub_8106F4C
+
+ thumb_func_start sub_8106F6C
+sub_8106F6C: @ 8106F6C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldr r1, _08106FAC
+ ldr r0, _08106FB0
+ ldr r0, [r0]
+ str r0, [r1, 0x4]
+ ldr r0, _08106FB4
+ ldr r0, [r0]
+ str r0, [r1, 0x8]
+ movs r2, 0
+ strb r2, [r1, 0x18]
+ ldr r0, _08106FB8
+ ldr r0, [r0]
+ ldrb r0, [r0]
+ strb r0, [r1, 0x1F]
+ strb r2, [r1, 0x19]
+ strb r2, [r1, 0x1A]
+ movs r0, 0x40
+ strb r0, [r1, 0x1B]
+ strb r0, [r1, 0x1C]
+ strb r0, [r1, 0x1D]
+ strb r0, [r1, 0x1E]
+ subs r0, r3, 0x2
+ adds r4, r1, 0
+ cmp r0, 0x22
+ bhi _08107050
+ lsls r0, 2
+ ldr r1, _08106FBC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08106FAC: .4byte gUnknown_03005E20
+_08106FB0: .4byte gUnknown_03005E10
+_08106FB4: .4byte gUnknown_03005E90
+_08106FB8: .4byte gUnknown_03005E8C
+_08106FBC: .4byte _08106FC0
+ .align 2, 0
+_08106FC0:
+ .4byte _08107050
+ .4byte _08107050
+ .4byte _08107050
+ .4byte _08107050
+ .4byte _0810704C
+ .4byte _08107050
+ .4byte _08107050
+ .4byte _08107050
+ .4byte _08107050
+ .4byte _08107050
+ .4byte _08107050
+ .4byte _08107050
+ .4byte _08107050
+ .4byte _08107050
+ .4byte _08107050
+ .4byte _08107050
+ .4byte _08107050
+ .4byte _08107050
+ .4byte _08107050
+ .4byte _08107050
+ .4byte _08107050
+ .4byte _08107050
+ .4byte _08107050
+ .4byte _08107050
+ .4byte _08107050
+ .4byte _08107050
+ .4byte _08107050
+ .4byte _08107050
+ .4byte _08107050
+ .4byte _08107050
+ .4byte _08107050
+ .4byte _08107050
+ .4byte _08107050
+ .4byte _08107050
+ .4byte _0810704C
+_0810704C:
+ movs r0, 0x3
+ b _08107052
+_08107050:
+ movs r0, 0x1
+_08107052:
+ strh r0, [r4, 0x14]
+ movs r0, 0x2
+ strh r0, [r4, 0x16]
+ strb r3, [r4]
+ ldr r0, _08107088
+ str r0, [r4, 0x10]
+ adds r0, r4, 0
+ bl sub_80FC7A0
+ adds r0, r4, 0
+ bl sub_80FDA18
+ adds r0, r4, 0
+ bl sub_80FD8CC
+ ldr r0, _0810708C
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 1
+ movs r2, 0x80
+ lsls r2, 2
+ bl LoadPalette
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08107088: .4byte 0x06010000
+_0810708C: .4byte gUnknown_03005E90
+ thumb_func_end sub_8106F6C
+
+ thumb_func_start sub_8107090
+sub_8107090: @ 8107090
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r5, 24
+ lsrs r5, 24
+ bl sub_8106F4C
+ ldr r0, _081070D0
+ ldr r0, [r0]
+ ldrh r0, [r0, 0x8]
+ movs r1, 0
+ bl sub_8106AC4
+ adds r0, r4, 0
+ bl sub_8106EE0
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8106F6C
+ adds r0, r4, 0
+ bl sub_8106E98
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_8106C40
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081070D0: .4byte gUnknown_03005E8C
+ thumb_func_end sub_8107090
+
+ thumb_func_start sub_81070D4
+sub_81070D4: @ 81070D4
+ push {r4-r7,lr}
+ ldr r2, _08107144
+ movs r3, 0
+ ldr r4, _08107148
+ movs r1, 0
+_081070DE:
+ adds r0, r2, r3
+ strb r1, [r0]
+ adds r3, 0x1
+ cmp r3, 0x2F
+ bls _081070DE
+ ldrh r2, [r4]
+ movs r0, 0x8
+ ands r0, r2
+ cmp r0, 0
+ beq _08107138
+ ldr r5, _0810714C
+ ldrh r1, [r5]
+ movs r0, 0x80
+ lsls r0, 3
+ cmp r1, r0
+ beq _08107138
+ ldr r0, _08107150
+ ands r0, r2
+ cmp r0, 0
+ bne _08107138
+ movs r3, 0
+ ldr r7, _08107154
+ ldr r4, _08107158
+ adds r6, r4, 0
+ subs r6, 0x8
+_08107110:
+ lsls r2, r3, 1
+ ldrh r1, [r5]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r2, r0
+ adds r2, r7
+ ldrh r2, [r2]
+ cmp r2, 0
+ beq _08107132
+ ldrb r0, [r4]
+ lsls r0, 1
+ adds r0, r6
+ strh r2, [r0]
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+_08107132:
+ adds r3, 0x1
+ cmp r3, 0x3
+ ble _08107110
+_08107138:
+ bl sub_810715C
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08107144: .4byte 0x02016a00
+_08107148: .4byte gUnknown_020239F8
+_0810714C: .4byte word_202FF5E
+_08107150: .4byte 0x00000982
+_08107154: .4byte gTrainers + 0x10
+_08107158: .4byte 0x02016a2c
+ thumb_func_end sub_81070D4
+
+ thumb_func_start sub_810715C
+sub_810715C: @ 810715C
+ push {r4-r7,lr}
+ ldr r2, _08107204
+ movs r4, 0
+ ldr r3, _08107208
+ movs r1, 0
+_08107166:
+ adds r0, r2, r4
+ strb r1, [r0]
+ adds r4, 0x1
+ cmp r4, 0x1B
+ bls _08107166
+ ldr r0, _08107204
+ movs r1, 0x64
+ movs r4, 0x3
+ adds r0, 0x7
+_08107178:
+ strb r1, [r0]
+ subs r0, 0x1
+ subs r4, 0x1
+ cmp r4, 0
+ bge _08107178
+ ldrb r0, [r3]
+ movs r1, 0
+ movs r2, 0xFF
+ bl sub_8015A98
+ lsls r0, 24
+ lsrs r7, r0, 24
+ movs r4, 0
+ ldr r0, _08107204
+ adds r5, r0, 0x4
+ ldr r6, _0810720C
+_08107198:
+ ldr r0, [r6]
+ ands r0, r7
+ cmp r0, 0
+ beq _081071A4
+ movs r0, 0
+ strb r0, [r5]
+_081071A4:
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0xF
+ ands r0, r1
+ movs r1, 0x64
+ subs r1, r0
+ strb r1, [r5, 0x14]
+ adds r5, 0x1
+ adds r6, 0x4
+ adds r4, 0x1
+ cmp r4, 0x3
+ ble _08107198
+ ldr r0, _08107210
+ adds r0, 0x20
+ movs r1, 0
+ strb r1, [r0]
+ ldr r1, _08107214
+ ldr r0, _08107208
+ ldrb r2, [r0]
+ strb r2, [r1]
+ ldr r0, _08107218
+ ldrh r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08107224
+ ldr r4, _0810721C
+ bl Random
+ movs r5, 0x2
+ ands r0, r5
+ strb r0, [r4]
+ ldr r0, _08107220
+ ldrb r1, [r0]
+ ldr r2, _0810720C
+ ldrb r3, [r4]
+ lsls r0, r3, 2
+ adds r0, r2
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ beq _0810722C
+ eors r3, r5
+ strb r3, [r4]
+ b _0810722C
+ .align 2, 0
+_08107204: .4byte 0x02016800
+_08107208: .4byte gUnknown_02024A60
+_0810720C: .4byte gBitTable
+_08107210: .4byte 0x02016c00
+_08107214: .4byte gUnknown_02024C07
+_08107218: .4byte gUnknown_020239F8
+_0810721C: .4byte gUnknown_02024C08
+_08107220: .4byte gUnknown_02024C0C
+_08107224:
+ ldr r0, _08107244
+ movs r1, 0x1
+ eors r1, r2
+ strb r1, [r0]
+_0810722C:
+ ldr r0, _08107248
+ ldrh r1, [r0]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _08107250
+ ldr r1, _0810724C
+ movs r0, 0x80
+ lsls r0, 23
+ str r0, [r1, 0xC]
+ b _08107296
+ .align 2, 0
+_08107244: .4byte gUnknown_02024C08
+_08107248: .4byte gUnknown_020239F8
+_0810724C: .4byte 0x02016800
+_08107250:
+ movs r0, 0x80
+ lsls r0, 3
+ ands r0, r1
+ cmp r0, 0
+ beq _08107268
+ ldr r1, _08107264
+ movs r0, 0x80
+ lsls r0, 22
+ str r0, [r1, 0xC]
+ b _08107296
+ .align 2, 0
+_08107264: .4byte 0x02016800
+_08107268:
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _08107280
+ ldr r1, _0810727C
+ movs r0, 0x80
+ lsls r0, 24
+ str r0, [r1, 0xC]
+ b _08107296
+ .align 2, 0
+_0810727C: .4byte 0x02016800
+_08107280:
+ ldr r3, _0810729C
+ ldr r2, _081072A0
+ ldr r0, _081072A4
+ ldrh r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r2, 0x1C
+ adds r0, r2
+ ldr r0, [r0]
+ str r0, [r3, 0xC]
+_08107296:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810729C: .4byte 0x02016800
+_081072A0: .4byte gTrainers
+_081072A4: .4byte word_202FF5E
+ thumb_func_end sub_810715C
+
+ thumb_func_start sub_81072A8
+sub_81072A8: @ 81072A8
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x8
+ bl sub_810745C
+ ldr r1, _081072F4
+ ldr r0, [r1, 0xC]
+ cmp r0, 0
+ beq _081072E2
+ adds r4, r1, 0
+ movs r5, 0
+_081072C0:
+ ldr r0, [r4, 0xC]
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _081072D0
+ strb r5, [r4]
+ bl sub_8107374
+_081072D0:
+ ldr r1, [r4, 0xC]
+ lsrs r1, 1
+ str r1, [r4, 0xC]
+ ldrb r0, [r4, 0x11]
+ adds r0, 0x1
+ strb r0, [r4, 0x11]
+ strb r5, [r4, 0x1]
+ cmp r1, 0
+ bne _081072C0
+_081072E2:
+ ldr r7, _081072F4
+ ldrb r1, [r7, 0x10]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _081072F8
+ movs r0, 0x4
+ b _08107368
+ .align 2, 0
+_081072F4: .4byte 0x02016800
+_081072F8:
+ movs r0, 0x4
+ ands r0, r1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0
+ beq _08107308
+ movs r0, 0x5
+ b _08107368
+_08107308:
+ movs r5, 0x1
+ mov r0, sp
+ ldrb r1, [r7, 0x4]
+ strb r1, [r0]
+ add r0, sp, 0x4
+ strb r2, [r0]
+ movs r3, 0x1
+ mov r8, r0
+ mov r4, sp
+ mov r6, r8
+ adds r2, r7, 0x5
+_0810731E:
+ ldrb r1, [r4]
+ movs r0, 0
+ ldrsb r0, [r2, r0]
+ cmp r1, r0
+ bge _08107330
+ movs r5, 0x1
+ ldrb r0, [r2]
+ strb r0, [r4]
+ strb r3, [r6]
+_08107330:
+ ldrb r1, [r4]
+ movs r0, 0
+ ldrsb r0, [r2, r0]
+ cmp r1, r0
+ bne _0810734E
+ mov r0, sp
+ adds r1, r0, r5
+ ldrb r0, [r2]
+ strb r0, [r1]
+ adds r1, r5, 0
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r1, r6, r1
+ strb r3, [r1]
+_0810734E:
+ adds r2, 0x1
+ adds r3, 0x1
+ cmp r3, 0x3
+ ble _0810731E
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ adds r1, r5, 0
+ bl __modsi3
+ add r0, r8
+ ldrb r0, [r0]
+_08107368:
+ add sp, 0x8
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81072A8
+
+ thumb_func_start sub_8107374
+sub_8107374: @ 8107374
+ push {r4-r7,lr}
+ ldr r1, _081073D0
+ ldrb r0, [r1]
+ adds r6, r1, 0
+ cmp r0, 0x2
+ beq _08107456
+ adds r4, r1, 0
+ ldr r7, _081073D4
+_08107384:
+ ldrb r0, [r4]
+ cmp r0, 0x1
+ beq _081073E4
+ cmp r0, 0x1
+ bgt _0810744E
+ cmp r0, 0
+ bne _0810744E
+ ldr r1, _081073D8
+ ldrb r0, [r4, 0x11]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ str r0, [r7]
+ ldr r5, _081073DC
+ ldrb r3, [r4, 0x1]
+ ldr r0, _081073E0
+ ldrb r1, [r0]
+ movs r0, 0x58
+ adds r2, r1, 0
+ muls r2, r0
+ adds r0, r3, r2
+ adds r1, r5, 0
+ adds r1, 0x24
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _081073C6
+ lsls r0, r3, 1
+ adds r0, r2
+ adds r1, r5, 0
+ adds r1, 0xC
+ adds r0, r1
+ ldrh r0, [r0]
+_081073C6:
+ strh r0, [r4, 0x2]
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+ b _0810744E
+ .align 2, 0
+_081073D0: .4byte 0x02016800
+_081073D4: .4byte gUnknown_02039238
+_081073D8: .4byte BattleAIs
+_081073DC: .4byte gBattleMons
+_081073E0: .4byte gUnknown_02024C07
+_081073E4:
+ ldrh r1, [r1, 0x2]
+ cmp r1, 0
+ beq _08107400
+ ldr r1, _081073FC
+ ldr r0, [r7]
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ bl _call_via_r0
+ b _08107410
+ .align 2, 0
+_081073FC: .4byte gUnknown_083F6144
+_08107400:
+ adds r0, r4, 0x4
+ ldrb r2, [r4, 0x1]
+ adds r0, r2
+ strb r1, [r0]
+ ldrb r1, [r4, 0x10]
+ movs r0, 0x1
+ orrs r0, r1
+ strb r0, [r4, 0x10]
+_08107410:
+ ldr r1, _0810743C
+ ldrb r2, [r1, 0x10]
+ movs r0, 0x1
+ ands r0, r2
+ adds r6, r1, 0
+ cmp r0, 0
+ beq _0810744E
+ ldrb r0, [r6, 0x1]
+ adds r0, 0x1
+ strb r0, [r6, 0x1]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x3
+ bhi _08107440
+ movs r0, 0x8
+ ands r0, r2
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ bne _08107440
+ strb r0, [r6]
+ b _08107446
+ .align 2, 0
+_0810743C: .4byte 0x02016800
+_08107440:
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+_08107446:
+ ldrb r1, [r4, 0x10]
+ movs r0, 0xFE
+ ands r0, r1
+ strb r0, [r4, 0x10]
+_0810744E:
+ adds r1, r6, 0
+ ldrb r0, [r1]
+ cmp r0, 0x2
+ bne _08107384
+_08107456:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8107374
+
+ thumb_func_start sub_810745C
+sub_810745C: @ 810745C
+ push {r4-r6,lr}
+ movs r2, 0
+ ldr r3, _08107488
+ ldr r5, _0810748C
+ ldr r6, _08107490
+ adds r4, r3, 0
+_08107468:
+ lsls r0, r2, 1
+ ldrb r1, [r4]
+ lsrs r1, 1
+ lsls r1, 4
+ adds r0, r1
+ adds r1, r0, r5
+ ldrh r0, [r1]
+ cmp r0, 0
+ bne _08107494
+ ldrb r0, [r3]
+ lsls r0, 1
+ adds r0, r6
+ ldrh r0, [r0]
+ strh r0, [r1]
+ b _0810749A
+ .align 2, 0
+_08107488: .4byte gUnknown_02024C08
+_0810748C: .4byte 0x02016a00
+_08107490: .4byte gUnknown_02024C34
+_08107494:
+ adds r2, 0x1
+ cmp r2, 0x7
+ ble _08107468
+_0810749A:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_810745C
+
+ thumb_func_start unref_sub_81074A0
+unref_sub_81074A0: @ 81074A0
+ push {lr}
+ lsls r0, 24
+ ldr r1, _081074C0
+ lsrs r0, 25
+ movs r2, 0x7
+ lsls r0, 4
+ adds r0, r1
+ adds r0, 0xE
+ movs r1, 0
+_081074B2:
+ strh r1, [r0]
+ subs r0, 0x2
+ subs r2, 0x1
+ cmp r2, 0
+ bge _081074B2
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081074C0: .4byte 0x02016a00
+ thumb_func_end unref_sub_81074A0
+
+ thumb_func_start sub_81074C4
+sub_81074C4: @ 81074C4
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r1, 24
+ lsrs r5, r1, 24
+ adds r0, r4, 0
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _081074EC
+ adds r0, r4, 0
+ bl battle_get_per_side_status
+ ldr r2, _081074F4
+ movs r1, 0x1
+ ands r1, r0
+ adds r2, 0x20
+ adds r1, r2
+ strb r5, [r1]
+_081074EC:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081074F4: .4byte 0x02016a00
+ thumb_func_end sub_81074C4
+
+ thumb_func_start sub_81074F8
+sub_81074F8: @ 81074F8
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r1, 24
+ lsrs r5, r1, 24
+ adds r0, r4, 0
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _08107520
+ adds r0, r4, 0
+ bl battle_get_per_side_status
+ ldr r2, _08107528
+ movs r1, 0x1
+ ands r1, r0
+ adds r2, 0x22
+ adds r1, r2
+ strb r5, [r1]
+_08107520:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08107528: .4byte 0x02016a00
+ thumb_func_end sub_81074F8
+
+ thumb_func_start sub_810752C
+sub_810752C: @ 810752C
+ push {lr}
+ bl Random
+ lsls r0, 16
+ movs r1, 0xFF
+ lsls r1, 16
+ ldr r3, _08107560
+ ldr r2, [r3]
+ ands r1, r0
+ lsrs r1, 16
+ ldrb r0, [r2, 0x1]
+ cmp r1, r0
+ bcs _08107564
+ ldrb r1, [r2, 0x2]
+ ldrb r0, [r2, 0x3]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x5]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _08107568
+ .align 2, 0
+_08107560: .4byte gUnknown_02039238
+_08107564:
+ adds r0, r2, 0x6
+ str r0, [r3]
+_08107568:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_810752C
+
+ thumb_func_start sub_810756C
+sub_810756C: @ 810756C
+ push {lr}
+ bl Random
+ lsls r0, 16
+ movs r1, 0xFF
+ lsls r1, 16
+ ldr r3, _081075A0
+ ldr r2, [r3]
+ ands r1, r0
+ lsrs r1, 16
+ ldrb r0, [r2, 0x1]
+ cmp r1, r0
+ bls _081075A4
+ ldrb r1, [r2, 0x2]
+ ldrb r0, [r2, 0x3]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x5]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _081075A8
+ .align 2, 0
+_081075A0: .4byte gUnknown_02039238
+_081075A4:
+ adds r0, r2, 0x6
+ str r0, [r3]
+_081075A8:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_810756C
+
+ thumb_func_start sub_81075AC
+sub_81075AC: @ 81075AC
+ push {lr}
+ bl Random
+ lsls r0, 16
+ movs r1, 0xFF
+ lsls r1, 16
+ ldr r3, _081075E0
+ ldr r2, [r3]
+ ands r1, r0
+ lsrs r1, 16
+ ldrb r0, [r2, 0x1]
+ cmp r1, r0
+ bne _081075E4
+ ldrb r1, [r2, 0x2]
+ ldrb r0, [r2, 0x3]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x5]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _081075E8
+ .align 2, 0
+_081075E0: .4byte gUnknown_02039238
+_081075E4:
+ adds r0, r2, 0x6
+ str r0, [r3]
+_081075E8:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81075AC
+
+ thumb_func_start sub_81075EC
+sub_81075EC: @ 81075EC
+ push {lr}
+ bl Random
+ lsls r0, 16
+ movs r1, 0xFF
+ lsls r1, 16
+ ldr r3, _08107620
+ ldr r2, [r3]
+ ands r1, r0
+ lsrs r1, 16
+ ldrb r0, [r2, 0x1]
+ cmp r1, r0
+ beq _08107624
+ ldrb r1, [r2, 0x2]
+ ldrb r0, [r2, 0x3]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x5]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _08107628
+ .align 2, 0
+_08107620: .4byte gUnknown_02039238
+_08107624:
+ adds r0, r2, 0x6
+ str r0, [r3]
+_08107628:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81075EC
+
+ thumb_func_start sub_810762C
+sub_810762C: @ 810762C
+ push {r4,r5,lr}
+ ldr r2, _08107660
+ ldrb r1, [r2, 0x1]
+ adds r3, r2, 0x4
+ adds r1, r3
+ ldr r4, _08107664
+ ldr r0, [r4]
+ ldrb r0, [r0, 0x1]
+ ldrb r5, [r1]
+ adds r0, r5
+ strb r0, [r1]
+ ldrb r0, [r2, 0x1]
+ adds r1, r0, r3
+ movs r0, 0
+ ldrsb r0, [r1, r0]
+ cmp r0, 0
+ bge _08107652
+ movs r0, 0
+ strb r0, [r1]
+_08107652:
+ ldr r0, [r4]
+ adds r0, 0x2
+ str r0, [r4]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08107660: .4byte 0x02016800
+_08107664: .4byte gUnknown_02039238
+ thumb_func_end sub_810762C
+
+ thumb_func_start sub_8107668
+sub_8107668: @ 8107668
+ push {r4,lr}
+ ldr r0, _0810767C
+ ldr r1, [r0]
+ ldrb r1, [r1, 0x1]
+ adds r4, r0, 0
+ cmp r1, 0x1
+ bne _08107684
+ ldr r0, _08107680
+ b _08107686
+ .align 2, 0
+_0810767C: .4byte gUnknown_02039238
+_08107680: .4byte gUnknown_02024C07
+_08107684:
+ ldr r0, _081076BC
+_08107686:
+ ldrb r1, [r0]
+ ldr r2, _081076C0
+ movs r0, 0x58
+ muls r1, r0
+ adds r1, r2
+ ldrh r2, [r1, 0x28]
+ movs r0, 0x64
+ muls r0, r2
+ ldrh r1, [r1, 0x2C]
+ bl __divsi3
+ ldr r2, [r4]
+ ldrb r1, [r2, 0x2]
+ cmp r0, r1
+ bcs _081076C4
+ ldrb r1, [r2, 0x3]
+ ldrb r0, [r2, 0x4]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x5]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x6]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r4]
+ b _081076C8
+ .align 2, 0
+_081076BC: .4byte gUnknown_02024C08
+_081076C0: .4byte gBattleMons
+_081076C4:
+ adds r0, r2, 0x7
+ str r0, [r4]
+_081076C8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8107668
+
+ thumb_func_start sub_81076D0
+sub_81076D0: @ 81076D0
+ push {r4,lr}
+ ldr r0, _081076E4
+ ldr r1, [r0]
+ ldrb r1, [r1, 0x1]
+ adds r4, r0, 0
+ cmp r1, 0x1
+ bne _081076EC
+ ldr r0, _081076E8
+ b _081076EE
+ .align 2, 0
+_081076E4: .4byte gUnknown_02039238
+_081076E8: .4byte gUnknown_02024C07
+_081076EC:
+ ldr r0, _08107724
+_081076EE:
+ ldrb r1, [r0]
+ ldr r2, _08107728
+ movs r0, 0x58
+ muls r1, r0
+ adds r1, r2
+ ldrh r2, [r1, 0x28]
+ movs r0, 0x64
+ muls r0, r2
+ ldrh r1, [r1, 0x2C]
+ bl __divsi3
+ ldr r2, [r4]
+ ldrb r1, [r2, 0x2]
+ cmp r0, r1
+ bls _0810772C
+ ldrb r1, [r2, 0x3]
+ ldrb r0, [r2, 0x4]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x5]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x6]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r4]
+ b _08107730
+ .align 2, 0
+_08107724: .4byte gUnknown_02024C08
+_08107728: .4byte gBattleMons
+_0810772C:
+ adds r0, r2, 0x7
+ str r0, [r4]
+_08107730:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81076D0
+
+ thumb_func_start sub_8107738
+sub_8107738: @ 8107738
+ push {r4,lr}
+ ldr r0, _0810774C
+ ldr r1, [r0]
+ ldrb r1, [r1, 0x1]
+ adds r4, r0, 0
+ cmp r1, 0x1
+ bne _08107754
+ ldr r0, _08107750
+ b _08107756
+ .align 2, 0
+_0810774C: .4byte gUnknown_02039238
+_08107750: .4byte gUnknown_02024C07
+_08107754:
+ ldr r0, _0810778C
+_08107756:
+ ldrb r1, [r0]
+ ldr r2, _08107790
+ movs r0, 0x58
+ muls r1, r0
+ adds r1, r2
+ ldrh r2, [r1, 0x28]
+ movs r0, 0x64
+ muls r0, r2
+ ldrh r1, [r1, 0x2C]
+ bl __divsi3
+ ldr r2, [r4]
+ ldrb r1, [r2, 0x2]
+ cmp r0, r1
+ bne _08107794
+ ldrb r1, [r2, 0x3]
+ ldrb r0, [r2, 0x4]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x5]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x6]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r4]
+ b _08107798
+ .align 2, 0
+_0810778C: .4byte gUnknown_02024C08
+_08107790: .4byte gBattleMons
+_08107794:
+ adds r0, r2, 0x7
+ str r0, [r4]
+_08107798:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8107738
+
+ thumb_func_start sub_81077A0
+sub_81077A0: @ 81077A0
+ push {r4,lr}
+ ldr r0, _081077B4
+ ldr r1, [r0]
+ ldrb r1, [r1, 0x1]
+ adds r4, r0, 0
+ cmp r1, 0x1
+ bne _081077BC
+ ldr r0, _081077B8
+ b _081077BE
+ .align 2, 0
+_081077B4: .4byte gUnknown_02039238
+_081077B8: .4byte gUnknown_02024C07
+_081077BC:
+ ldr r0, _081077F4
+_081077BE:
+ ldrb r1, [r0]
+ ldr r2, _081077F8
+ movs r0, 0x58
+ muls r1, r0
+ adds r1, r2
+ ldrh r2, [r1, 0x28]
+ movs r0, 0x64
+ muls r0, r2
+ ldrh r1, [r1, 0x2C]
+ bl __divsi3
+ ldr r2, [r4]
+ ldrb r1, [r2, 0x2]
+ cmp r0, r1
+ beq _081077FC
+ ldrb r1, [r2, 0x3]
+ ldrb r0, [r2, 0x4]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x5]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x6]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r4]
+ b _08107800
+ .align 2, 0
+_081077F4: .4byte gUnknown_02024C08
+_081077F8: .4byte gBattleMons
+_081077FC:
+ adds r0, r2, 0x7
+ str r0, [r4]
+_08107800:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81077A0
+
+ thumb_func_start sub_8107808
+sub_8107808: @ 8107808
+ push {r4,r5,lr}
+ ldr r0, _0810781C
+ ldr r1, [r0]
+ ldrb r1, [r1, 0x1]
+ adds r5, r0, 0
+ cmp r1, 0x1
+ bne _08107824
+ ldr r0, _08107820
+ b _08107826
+ .align 2, 0
+_0810781C: .4byte gUnknown_02039238
+_08107820: .4byte gUnknown_02024C07
+_08107824:
+ ldr r0, _08107868
+_08107826:
+ ldrb r4, [r0]
+ ldr r3, [r5]
+ ldrb r2, [r3, 0x2]
+ ldrb r0, [r3, 0x3]
+ lsls r0, 8
+ orrs r2, r0
+ ldrb r0, [r3, 0x4]
+ lsls r0, 16
+ orrs r2, r0
+ ldrb r0, [r3, 0x5]
+ lsls r0, 24
+ orrs r2, r0
+ ldr r1, _0810786C
+ movs r0, 0x58
+ muls r0, r4
+ adds r1, 0x4C
+ adds r0, r1
+ ldr r0, [r0]
+ ands r0, r2
+ cmp r0, 0
+ beq _08107870
+ ldrb r1, [r3, 0x6]
+ ldrb r0, [r3, 0x7]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r3, 0x8]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r3, 0x9]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r5]
+ b _08107876
+ .align 2, 0
+_08107868: .4byte gUnknown_02024C08
+_0810786C: .4byte gBattleMons
+_08107870:
+ adds r0, r3, 0
+ adds r0, 0xA
+ str r0, [r5]
+_08107876:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8107808
+
+ thumb_func_start sub_810787C
+sub_810787C: @ 810787C
+ push {r4,r5,lr}
+ ldr r0, _08107890
+ ldr r1, [r0]
+ ldrb r1, [r1, 0x1]
+ adds r5, r0, 0
+ cmp r1, 0x1
+ bne _08107898
+ ldr r0, _08107894
+ b _0810789A
+ .align 2, 0
+_08107890: .4byte gUnknown_02039238
+_08107894: .4byte gUnknown_02024C07
+_08107898:
+ ldr r0, _081078DC
+_0810789A:
+ ldrb r4, [r0]
+ ldr r3, [r5]
+ ldrb r2, [r3, 0x2]
+ ldrb r0, [r3, 0x3]
+ lsls r0, 8
+ orrs r2, r0
+ ldrb r0, [r3, 0x4]
+ lsls r0, 16
+ orrs r2, r0
+ ldrb r0, [r3, 0x5]
+ lsls r0, 24
+ orrs r2, r0
+ ldr r1, _081078E0
+ movs r0, 0x58
+ muls r0, r4
+ adds r1, 0x4C
+ adds r0, r1
+ ldr r0, [r0]
+ ands r0, r2
+ cmp r0, 0
+ bne _081078E4
+ ldrb r1, [r3, 0x6]
+ ldrb r0, [r3, 0x7]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r3, 0x8]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r3, 0x9]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r5]
+ b _081078EA
+ .align 2, 0
+_081078DC: .4byte gUnknown_02024C08
+_081078E0: .4byte gBattleMons
+_081078E4:
+ adds r0, r3, 0
+ adds r0, 0xA
+ str r0, [r5]
+_081078EA:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_810787C
+
+ thumb_func_start sub_81078F0
+sub_81078F0: @ 81078F0
+ push {r4,r5,lr}
+ ldr r0, _08107904
+ ldr r1, [r0]
+ ldrb r1, [r1, 0x1]
+ adds r5, r0, 0
+ cmp r1, 0x1
+ bne _0810790C
+ ldr r0, _08107908
+ b _0810790E
+ .align 2, 0
+_08107904: .4byte gUnknown_02039238
+_08107908: .4byte gUnknown_02024C07
+_0810790C:
+ ldr r0, _08107950
+_0810790E:
+ ldrb r4, [r0]
+ ldr r3, [r5]
+ ldrb r2, [r3, 0x2]
+ ldrb r0, [r3, 0x3]
+ lsls r0, 8
+ orrs r2, r0
+ ldrb r0, [r3, 0x4]
+ lsls r0, 16
+ orrs r2, r0
+ ldrb r0, [r3, 0x5]
+ lsls r0, 24
+ orrs r2, r0
+ ldr r1, _08107954
+ movs r0, 0x58
+ muls r0, r4
+ adds r1, 0x50
+ adds r0, r1
+ ldr r0, [r0]
+ ands r0, r2
+ cmp r0, 0
+ beq _08107958
+ ldrb r1, [r3, 0x6]
+ ldrb r0, [r3, 0x7]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r3, 0x8]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r3, 0x9]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r5]
+ b _0810795E
+ .align 2, 0
+_08107950: .4byte gUnknown_02024C08
+_08107954: .4byte gBattleMons
+_08107958:
+ adds r0, r3, 0
+ adds r0, 0xA
+ str r0, [r5]
+_0810795E:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81078F0
+
+ thumb_func_start sub_8107964
+sub_8107964: @ 8107964
+ push {r4,r5,lr}
+ ldr r0, _08107978
+ ldr r1, [r0]
+ ldrb r1, [r1, 0x1]
+ adds r5, r0, 0
+ cmp r1, 0x1
+ bne _08107980
+ ldr r0, _0810797C
+ b _08107982
+ .align 2, 0
+_08107978: .4byte gUnknown_02039238
+_0810797C: .4byte gUnknown_02024C07
+_08107980:
+ ldr r0, _081079C4
+_08107982:
+ ldrb r4, [r0]
+ ldr r3, [r5]
+ ldrb r2, [r3, 0x2]
+ ldrb r0, [r3, 0x3]
+ lsls r0, 8
+ orrs r2, r0
+ ldrb r0, [r3, 0x4]
+ lsls r0, 16
+ orrs r2, r0
+ ldrb r0, [r3, 0x5]
+ lsls r0, 24
+ orrs r2, r0
+ ldr r1, _081079C8
+ movs r0, 0x58
+ muls r0, r4
+ adds r1, 0x50
+ adds r0, r1
+ ldr r0, [r0]
+ ands r0, r2
+ cmp r0, 0
+ bne _081079CC
+ ldrb r1, [r3, 0x6]
+ ldrb r0, [r3, 0x7]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r3, 0x8]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r3, 0x9]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r5]
+ b _081079D2
+ .align 2, 0
+_081079C4: .4byte gUnknown_02024C08
+_081079C8: .4byte gBattleMons
+_081079CC:
+ adds r0, r3, 0
+ adds r0, 0xA
+ str r0, [r5]
+_081079D2:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8107964
+
+ thumb_func_start sub_81079D8
+sub_81079D8: @ 81079D8
+ push {r4,r5,lr}
+ ldr r0, _081079EC
+ ldr r1, [r0]
+ ldrb r1, [r1, 0x1]
+ adds r5, r0, 0
+ cmp r1, 0x1
+ bne _081079F4
+ ldr r0, _081079F0
+ b _081079F6
+ .align 2, 0
+_081079EC: .4byte gUnknown_02039238
+_081079F0: .4byte gUnknown_02024C07
+_081079F4:
+ ldr r0, _08107A34
+_081079F6:
+ ldrb r4, [r0]
+ ldr r3, [r5]
+ ldrb r1, [r3, 0x2]
+ ldrb r0, [r3, 0x3]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r3, 0x4]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r3, 0x5]
+ lsls r0, 24
+ orrs r1, r0
+ ldr r2, _08107A38
+ lsls r0, r4, 2
+ adds r0, r2
+ ldr r0, [r0]
+ ands r0, r1
+ cmp r0, 0
+ beq _08107A3C
+ ldrb r1, [r3, 0x6]
+ ldrb r0, [r3, 0x7]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r3, 0x8]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r3, 0x9]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r5]
+ b _08107A42
+ .align 2, 0
+_08107A34: .4byte gUnknown_02024C08
+_08107A38: .4byte gUnknown_02024C98
+_08107A3C:
+ adds r0, r3, 0
+ adds r0, 0xA
+ str r0, [r5]
+_08107A42:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81079D8
+
+ thumb_func_start sub_8107A48
+sub_8107A48: @ 8107A48
+ push {r4,r5,lr}
+ ldr r0, _08107A5C
+ ldr r1, [r0]
+ ldrb r1, [r1, 0x1]
+ adds r5, r0, 0
+ cmp r1, 0x1
+ bne _08107A64
+ ldr r0, _08107A60
+ b _08107A66
+ .align 2, 0
+_08107A5C: .4byte gUnknown_02039238
+_08107A60: .4byte gUnknown_02024C07
+_08107A64:
+ ldr r0, _08107AA4
+_08107A66:
+ ldrb r4, [r0]
+ ldr r3, [r5]
+ ldrb r1, [r3, 0x2]
+ ldrb r0, [r3, 0x3]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r3, 0x4]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r3, 0x5]
+ lsls r0, 24
+ orrs r1, r0
+ ldr r2, _08107AA8
+ lsls r0, r4, 2
+ adds r0, r2
+ ldr r0, [r0]
+ ands r0, r1
+ cmp r0, 0
+ bne _08107AAC
+ ldrb r1, [r3, 0x6]
+ ldrb r0, [r3, 0x7]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r3, 0x8]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r3, 0x9]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r5]
+ b _08107AB2
+ .align 2, 0
+_08107AA4: .4byte gUnknown_02024C08
+_08107AA8: .4byte gUnknown_02024C98
+_08107AAC:
+ adds r0, r3, 0
+ adds r0, 0xA
+ str r0, [r5]
+_08107AB2:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8107A48
+
+ thumb_func_start sub_8107AB8
+sub_8107AB8: @ 8107AB8
+ push {r4,lr}
+ ldr r0, _08107AC8
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x1]
+ cmp r0, 0x1
+ bne _08107AD0
+ ldr r0, _08107ACC
+ b _08107AD2
+ .align 2, 0
+_08107AC8: .4byte gUnknown_02039238
+_08107ACC: .4byte gUnknown_02024C07
+_08107AD0:
+ ldr r0, _08107B1C
+_08107AD2:
+ ldrb r0, [r0]
+ bl battle_get_per_side_status
+ movs r2, 0x1
+ ands r2, r0
+ ldr r4, _08107B20
+ ldr r3, [r4]
+ ldrb r1, [r3, 0x2]
+ ldrb r0, [r3, 0x3]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r3, 0x4]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r3, 0x5]
+ lsls r0, 24
+ orrs r1, r0
+ ldr r0, _08107B24
+ lsls r2, 1
+ adds r2, r0
+ ldrh r0, [r2]
+ ands r0, r1
+ cmp r0, 0
+ beq _08107B28
+ ldrb r1, [r3, 0x6]
+ ldrb r0, [r3, 0x7]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r3, 0x8]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r3, 0x9]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r4]
+ b _08107B2E
+ .align 2, 0
+_08107B1C: .4byte gUnknown_02024C08
+_08107B20: .4byte gUnknown_02039238
+_08107B24: .4byte gUnknown_02024C7A
+_08107B28:
+ adds r0, r3, 0
+ adds r0, 0xA
+ str r0, [r4]
+_08107B2E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8107AB8
+
+ thumb_func_start sub_8107B34
+sub_8107B34: @ 8107B34
+ push {r4,lr}
+ ldr r0, _08107B44
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x1]
+ cmp r0, 0x1
+ bne _08107B4C
+ ldr r0, _08107B48
+ b _08107B4E
+ .align 2, 0
+_08107B44: .4byte gUnknown_02039238
+_08107B48: .4byte gUnknown_02024C07
+_08107B4C:
+ ldr r0, _08107B98
+_08107B4E:
+ ldrb r0, [r0]
+ bl battle_get_per_side_status
+ movs r2, 0x1
+ ands r2, r0
+ ldr r4, _08107B9C
+ ldr r3, [r4]
+ ldrb r1, [r3, 0x2]
+ ldrb r0, [r3, 0x3]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r3, 0x4]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r3, 0x5]
+ lsls r0, 24
+ orrs r1, r0
+ ldr r0, _08107BA0
+ lsls r2, 1
+ adds r2, r0
+ ldrh r0, [r2]
+ ands r0, r1
+ cmp r0, 0
+ bne _08107BA4
+ ldrb r1, [r3, 0x6]
+ ldrb r0, [r3, 0x7]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r3, 0x8]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r3, 0x9]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r4]
+ b _08107BAA
+ .align 2, 0
+_08107B98: .4byte gUnknown_02024C08
+_08107B9C: .4byte gUnknown_02039238
+_08107BA0: .4byte gUnknown_02024C7A
+_08107BA4:
+ adds r0, r3, 0
+ adds r0, 0xA
+ str r0, [r4]
+_08107BAA:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8107B34
+
+ thumb_func_start sub_8107BB0
+sub_8107BB0: @ 8107BB0
+ push {lr}
+ ldr r0, _08107BD8
+ ldr r3, _08107BDC
+ ldr r2, [r3]
+ ldr r0, [r0, 0x8]
+ ldrb r1, [r2, 0x1]
+ cmp r0, r1
+ bcs _08107BE0
+ ldrb r1, [r2, 0x2]
+ ldrb r0, [r2, 0x3]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x5]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _08107BE4
+ .align 2, 0
+_08107BD8: .4byte 0x02016800
+_08107BDC: .4byte gUnknown_02039238
+_08107BE0:
+ adds r0, r2, 0x6
+ str r0, [r3]
+_08107BE4:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8107BB0
+
+ thumb_func_start sub_8107BE8
+sub_8107BE8: @ 8107BE8
+ push {lr}
+ ldr r0, _08107C10
+ ldr r3, _08107C14
+ ldr r2, [r3]
+ ldr r0, [r0, 0x8]
+ ldrb r1, [r2, 0x1]
+ cmp r0, r1
+ bls _08107C18
+ ldrb r1, [r2, 0x2]
+ ldrb r0, [r2, 0x3]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x5]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _08107C1C
+ .align 2, 0
+_08107C10: .4byte 0x02016800
+_08107C14: .4byte gUnknown_02039238
+_08107C18:
+ adds r0, r2, 0x6
+ str r0, [r3]
+_08107C1C:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8107BE8
+
+ thumb_func_start sub_8107C20
+sub_8107C20: @ 8107C20
+ push {lr}
+ ldr r0, _08107C48
+ ldr r3, _08107C4C
+ ldr r2, [r3]
+ ldr r0, [r0, 0x8]
+ ldrb r1, [r2, 0x1]
+ cmp r0, r1
+ bne _08107C50
+ ldrb r1, [r2, 0x2]
+ ldrb r0, [r2, 0x3]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x5]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _08107C54
+ .align 2, 0
+_08107C48: .4byte 0x02016800
+_08107C4C: .4byte gUnknown_02039238
+_08107C50:
+ adds r0, r2, 0x6
+ str r0, [r3]
+_08107C54:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8107C20
+
+ thumb_func_start sub_8107C58
+sub_8107C58: @ 8107C58
+ push {lr}
+ ldr r0, _08107C80
+ ldr r3, _08107C84
+ ldr r2, [r3]
+ ldr r0, [r0, 0x8]
+ ldrb r1, [r2, 0x1]
+ cmp r0, r1
+ beq _08107C88
+ ldrb r1, [r2, 0x2]
+ ldrb r0, [r2, 0x3]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x5]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _08107C8C
+ .align 2, 0
+_08107C80: .4byte 0x02016800
+_08107C84: .4byte gUnknown_02039238
+_08107C88:
+ adds r0, r2, 0x6
+ str r0, [r3]
+_08107C8C:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8107C58
+
+ thumb_func_start sub_8107C90
+sub_8107C90: @ 8107C90
+ push {lr}
+ ldr r3, _08107CCC
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ ldr r0, _08107CD0
+ ldr r0, [r0, 0x8]
+ ldrb r1, [r1]
+ cmp r0, r1
+ bcs _08107CD4
+ ldrb r1, [r2, 0x5]
+ ldrb r0, [r2, 0x6]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x7]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x8]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _08107CDA
+ .align 2, 0
+_08107CCC: .4byte gUnknown_02039238
+_08107CD0: .4byte 0x02016800
+_08107CD4:
+ adds r0, r2, 0
+ adds r0, 0x9
+ str r0, [r3]
+_08107CDA:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8107C90
+
+ thumb_func_start sub_8107CE0
+sub_8107CE0: @ 8107CE0
+ push {lr}
+ ldr r3, _08107D1C
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ ldr r0, _08107D20
+ ldr r0, [r0, 0x8]
+ ldrb r1, [r1]
+ cmp r0, r1
+ bls _08107D24
+ ldrb r1, [r2, 0x5]
+ ldrb r0, [r2, 0x6]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x7]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x8]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _08107D2A
+ .align 2, 0
+_08107D1C: .4byte gUnknown_02039238
+_08107D20: .4byte 0x02016800
+_08107D24:
+ adds r0, r2, 0
+ adds r0, 0x9
+ str r0, [r3]
+_08107D2A:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8107CE0
+
+ thumb_func_start sub_8107D30
+sub_8107D30: @ 8107D30
+ push {lr}
+ ldr r3, _08107D6C
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ ldr r0, _08107D70
+ ldr r0, [r0, 0x8]
+ ldrb r1, [r1]
+ cmp r0, r1
+ bne _08107D74
+ ldrb r1, [r2, 0x5]
+ ldrb r0, [r2, 0x6]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x7]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x8]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _08107D7A
+ .align 2, 0
+_08107D6C: .4byte gUnknown_02039238
+_08107D70: .4byte 0x02016800
+_08107D74:
+ adds r0, r2, 0
+ adds r0, 0x9
+ str r0, [r3]
+_08107D7A:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8107D30
+
+ thumb_func_start sub_8107D80
+sub_8107D80: @ 8107D80
+ push {lr}
+ ldr r3, _08107DBC
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ ldr r0, _08107DC0
+ ldr r0, [r0, 0x8]
+ ldrb r1, [r1]
+ cmp r0, r1
+ beq _08107DC4
+ ldrb r1, [r2, 0x5]
+ ldrb r0, [r2, 0x6]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x7]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x8]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _08107DCA
+ .align 2, 0
+_08107DBC: .4byte gUnknown_02039238
+_08107DC0: .4byte 0x02016800
+_08107DC4:
+ adds r0, r2, 0
+ adds r0, 0x9
+ str r0, [r3]
+_08107DCA:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8107D80
+
+ thumb_func_start sub_8107DD0
+sub_8107DD0: @ 8107DD0
+ push {lr}
+ ldr r3, _08107E00
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldr r0, _08107E04
+ ldrh r0, [r0, 0x2]
+ cmp r0, r1
+ bne _08107E08
+ ldrb r1, [r2, 0x3]
+ ldrb r0, [r2, 0x4]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x5]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x6]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _08107E0C
+ .align 2, 0
+_08107E00: .4byte gUnknown_02039238
+_08107E04: .4byte 0x02016800
+_08107E08:
+ adds r0, r2, 0x7
+ str r0, [r3]
+_08107E0C:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8107DD0
+
+ thumb_func_start sub_8107E10
+sub_8107E10: @ 8107E10
+ push {lr}
+ ldr r3, _08107E40
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldr r0, _08107E44
+ ldrh r0, [r0, 0x2]
+ cmp r0, r1
+ beq _08107E48
+ ldrb r1, [r2, 0x3]
+ ldrb r0, [r2, 0x4]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x5]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x6]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _08107E4C
+ .align 2, 0
+_08107E40: .4byte gUnknown_02039238
+_08107E44: .4byte 0x02016800
+_08107E48:
+ adds r0, r2, 0x7
+ str r0, [r3]
+_08107E4C:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8107E10
+
+ thumb_func_start sub_8107E50
+sub_8107E50: @ 8107E50
+ push {r4,lr}
+ ldr r2, _08107E98
+ ldr r1, [r2]
+ ldrb r3, [r1, 0x1]
+ ldrb r0, [r1, 0x2]
+ lsls r0, 8
+ orrs r3, r0
+ ldrb r0, [r1, 0x3]
+ lsls r0, 16
+ orrs r3, r0
+ ldrb r0, [r1, 0x4]
+ lsls r0, 24
+ orrs r3, r0
+ ldrb r0, [r3]
+ cmp r0, 0xFF
+ beq _08107EA8
+ ldr r0, _08107E9C
+ ldr r1, [r0, 0x8]
+ adds r4, r2, 0
+_08107E76:
+ ldrb r0, [r3]
+ cmp r1, r0
+ bne _08107EA0
+ ldr r2, [r4]
+ ldrb r1, [r2, 0x5]
+ ldrb r0, [r2, 0x6]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x7]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x8]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r4]
+ b _08107EAE
+ .align 2, 0
+_08107E98: .4byte gUnknown_02039238
+_08107E9C: .4byte 0x02016800
+_08107EA0:
+ adds r3, 0x1
+ ldrb r0, [r3]
+ cmp r0, 0xFF
+ bne _08107E76
+_08107EA8:
+ ldr r0, [r2]
+ adds r0, 0x9
+ str r0, [r2]
+_08107EAE:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8107E50
+
+ thumb_func_start sub_8107EB4
+sub_8107EB4: @ 8107EB4
+ push {r4,lr}
+ ldr r2, _08107EEC
+ ldr r1, [r2]
+ ldrb r3, [r1, 0x1]
+ ldrb r0, [r1, 0x2]
+ lsls r0, 8
+ orrs r3, r0
+ ldrb r0, [r1, 0x3]
+ lsls r0, 16
+ orrs r3, r0
+ ldrb r0, [r1, 0x4]
+ lsls r0, 24
+ orrs r3, r0
+ ldrb r0, [r3]
+ adds r4, r2, 0
+ cmp r0, 0xFF
+ beq _08107EFC
+ ldr r0, _08107EF0
+ ldr r2, [r0, 0x8]
+ adds r1, r4, 0
+_08107EDC:
+ ldrb r0, [r3]
+ cmp r2, r0
+ bne _08107EF4
+ ldr r0, [r1]
+ adds r0, 0x9
+ str r0, [r1]
+ b _08107F14
+ .align 2, 0
+_08107EEC: .4byte gUnknown_02039238
+_08107EF0: .4byte 0x02016800
+_08107EF4:
+ adds r3, 0x1
+ ldrb r0, [r3]
+ cmp r0, 0xFF
+ bne _08107EDC
+_08107EFC:
+ ldr r2, [r4]
+ ldrb r1, [r2, 0x5]
+ ldrb r0, [r2, 0x6]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x7]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x8]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r4]
+_08107F14:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8107EB4
+
+ thumb_func_start sub_8107F1C
+sub_8107F1C: @ 8107F1C
+ push {r4,r5,lr}
+ ldr r2, _08107F64
+ ldr r1, [r2]
+ ldrb r3, [r1, 0x1]
+ ldrb r0, [r1, 0x2]
+ lsls r0, 8
+ orrs r3, r0
+ ldrb r0, [r1, 0x3]
+ lsls r0, 16
+ orrs r3, r0
+ ldrb r0, [r1, 0x4]
+ lsls r0, 24
+ orrs r3, r0
+ ldrh r0, [r3]
+ ldr r5, _08107F68
+ cmp r0, r5
+ beq _08107F78
+ ldr r0, _08107F6C
+ ldr r1, [r0, 0x8]
+ adds r4, r2, 0
+_08107F44:
+ ldrh r0, [r3]
+ cmp r1, r0
+ bne _08107F70
+ ldr r2, [r4]
+ ldrb r1, [r2, 0x5]
+ ldrb r0, [r2, 0x6]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x7]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x8]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r4]
+ b _08107F7E
+ .align 2, 0
+_08107F64: .4byte gUnknown_02039238
+_08107F68: .4byte 0x0000ffff
+_08107F6C: .4byte 0x02016800
+_08107F70:
+ adds r3, 0x2
+ ldrh r0, [r3]
+ cmp r0, r5
+ bne _08107F44
+_08107F78:
+ ldr r0, [r2]
+ adds r0, 0x9
+ str r0, [r2]
+_08107F7E:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8107F1C
+
+ thumb_func_start sub_8107F84
+sub_8107F84: @ 8107F84
+ push {r4,r5,lr}
+ ldr r2, _08107FBC
+ ldr r1, [r2]
+ ldrb r3, [r1, 0x1]
+ ldrb r0, [r1, 0x2]
+ lsls r0, 8
+ orrs r3, r0
+ ldrb r0, [r1, 0x3]
+ lsls r0, 16
+ orrs r3, r0
+ ldrb r0, [r1, 0x4]
+ lsls r0, 24
+ orrs r3, r0
+ ldrh r0, [r3]
+ ldr r4, _08107FC0
+ adds r5, r2, 0
+ cmp r0, r4
+ beq _08107FD0
+ ldr r0, _08107FC4
+ ldr r2, [r0, 0x8]
+ adds r1, r5, 0
+_08107FAE:
+ ldrh r0, [r3]
+ cmp r2, r0
+ bne _08107FC8
+ ldr r0, [r1]
+ adds r0, 0x9
+ str r0, [r1]
+ b _08107FE8
+ .align 2, 0
+_08107FBC: .4byte gUnknown_02039238
+_08107FC0: .4byte 0x0000ffff
+_08107FC4: .4byte 0x02016800
+_08107FC8:
+ adds r3, 0x2
+ ldrh r0, [r3]
+ cmp r0, r4
+ bne _08107FAE
+_08107FD0:
+ ldr r2, [r5]
+ ldrb r1, [r2, 0x5]
+ ldrb r0, [r2, 0x6]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x7]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x8]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r5]
+_08107FE8:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8107F84
+
+ thumb_func_start sub_8107FF0
+sub_8107FF0: @ 8107FF0
+ push {r4,r5,lr}
+ movs r3, 0
+ ldr r4, _08108030
+ ldr r1, _08108034
+ ldr r0, _08108038
+ ldrb r2, [r0]
+ ldr r5, _0810803C
+ movs r0, 0x58
+ muls r0, r2
+ adds r1, 0xC
+ adds r2, r0, r1
+_08108006:
+ ldrh r0, [r2]
+ cmp r0, 0
+ beq _0810801A
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r5
+ ldrb r0, [r1, 0x1]
+ cmp r0, 0
+ bne _08108022
+_0810801A:
+ adds r2, 0x2
+ adds r3, 0x1
+ cmp r3, 0x3
+ ble _08108006
+_08108022:
+ cmp r3, 0x4
+ bne _08108040
+ ldr r0, [r4]
+ adds r0, 0x5
+ str r0, [r4]
+ b _08108058
+ .align 2, 0
+_08108030: .4byte gUnknown_02039238
+_08108034: .4byte gBattleMons
+_08108038: .4byte gUnknown_02024C07
+_0810803C: .4byte gBattleMoves
+_08108040:
+ ldr r2, [r4]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r4]
+_08108058:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8107FF0
+
+ thumb_func_start sub_8108060
+sub_8108060: @ 8108060
+ push {r4,r5,lr}
+ movs r3, 0
+ ldr r4, _081080A0
+ ldr r1, _081080A4
+ ldr r0, _081080A8
+ ldrb r2, [r0]
+ ldr r5, _081080AC
+ movs r0, 0x58
+ muls r0, r2
+ adds r1, 0xC
+ adds r2, r0, r1
+_08108076:
+ ldrh r0, [r2]
+ cmp r0, 0
+ beq _0810808A
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r5
+ ldrb r0, [r1, 0x1]
+ cmp r0, 0
+ bne _08108092
+_0810808A:
+ adds r2, 0x2
+ adds r3, 0x1
+ cmp r3, 0x3
+ ble _08108076
+_08108092:
+ cmp r3, 0x4
+ beq _081080B0
+ ldr r0, [r4]
+ adds r0, 0x5
+ str r0, [r4]
+ b _081080C8
+ .align 2, 0
+_081080A0: .4byte gUnknown_02039238
+_081080A4: .4byte gBattleMons
+_081080A8: .4byte gUnknown_02024C07
+_081080AC: .4byte gBattleMoves
+_081080B0:
+ ldr r2, [r4]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r4]
+_081080C8:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8108060
+
+ thumb_func_start sub_81080D0
+sub_81080D0: @ 81080D0
+ ldr r1, _081080E4
+ ldr r0, _081080E8
+ ldrb r0, [r0, 0x13]
+ str r0, [r1, 0x8]
+ ldr r1, _081080EC
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ bx lr
+ .align 2, 0
+_081080E4: .4byte 0x02016800
+_081080E8: .4byte gUnknown_030042E0
+_081080EC: .4byte gUnknown_02039238
+ thumb_func_end sub_81080D0
+
+ thumb_func_start sub_81080F0
+sub_81080F0: @ 81080F0
+ push {r4,lr}
+ ldr r1, _08108108
+ ldr r0, [r1]
+ ldrb r0, [r0, 0x1]
+ adds r4, r1, 0
+ cmp r0, 0x4
+ bhi _081081B6
+ lsls r0, 2
+ ldr r1, _0810810C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08108108: .4byte gUnknown_02039238
+_0810810C: .4byte _08108110
+ .align 2, 0
+_08108110:
+ .4byte _08108144
+ .4byte _08108124
+ .4byte _08108184
+ .4byte _08108164
+ .4byte _081081A4
+_08108124:
+ ldr r3, _08108138
+ ldr r2, _0810813C
+ ldr r0, _08108140
+ ldrb r1, [r0]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r2
+ adds r0, 0x21
+ ldrb r0, [r0]
+ b _081081B4
+ .align 2, 0
+_08108138: .4byte 0x02016800
+_0810813C: .4byte gBattleMons
+_08108140: .4byte gUnknown_02024C07
+_08108144:
+ ldr r3, _08108158
+ ldr r2, _0810815C
+ ldr r0, _08108160
+ ldrb r1, [r0]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r2
+ adds r0, 0x21
+ ldrb r0, [r0]
+ b _081081B4
+ .align 2, 0
+_08108158: .4byte 0x02016800
+_0810815C: .4byte gBattleMons
+_08108160: .4byte gUnknown_02024C08
+_08108164:
+ ldr r3, _08108178
+ ldr r2, _0810817C
+ ldr r0, _08108180
+ ldrb r1, [r0]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r2
+ adds r0, 0x22
+ ldrb r0, [r0]
+ b _081081B4
+ .align 2, 0
+_08108178: .4byte 0x02016800
+_0810817C: .4byte gBattleMons
+_08108180: .4byte gUnknown_02024C07
+_08108184:
+ ldr r3, _08108198
+ ldr r2, _0810819C
+ ldr r0, _081081A0
+ ldrb r1, [r0]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r2
+ adds r0, 0x22
+ ldrb r0, [r0]
+ b _081081B4
+ .align 2, 0
+_08108198: .4byte 0x02016800
+_0810819C: .4byte gBattleMons
+_081081A0: .4byte gUnknown_02024C08
+_081081A4:
+ ldr r3, _081081C4
+ ldr r2, _081081C8
+ ldrh r1, [r3, 0x2]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0, 0x2]
+_081081B4:
+ str r0, [r3, 0x8]
+_081081B6:
+ ldr r0, [r4]
+ adds r0, 0x2
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081081C4: .4byte 0x02016800
+_081081C8: .4byte gBattleMoves
+ thumb_func_end sub_81080F0
+
+ thumb_func_start sub_81081CC
+sub_81081CC: @ 81081CC
+ ldr r3, _081081E8
+ ldr r2, _081081EC
+ ldrh r1, [r3, 0x2]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0, 0x1]
+ str r0, [r3, 0x8]
+ ldr r1, _081081F0
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ bx lr
+ .align 2, 0
+_081081E8: .4byte 0x02016800
+_081081EC: .4byte gBattleMoves
+_081081F0: .4byte gUnknown_02039238
+ thumb_func_end sub_81081CC
+
+ thumb_func_start sub_81081F4
+sub_81081F4: @ 81081F4
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x14
+ movs r3, 0
+ ldr r0, _08108328
+ ldrh r1, [r0]
+ ldr r4, _0810832C
+ ldr r6, _08108330
+ ldr r5, _08108334
+ cmp r1, r4
+ beq _0810822E
+ ldrh r1, [r5, 0x2]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ ldrb r2, [r0]
+ ldr r1, _08108328
+_0810821E:
+ ldrh r0, [r1]
+ cmp r2, r0
+ beq _0810822E
+ adds r1, 0x2
+ adds r3, 0x1
+ ldrh r0, [r1]
+ cmp r0, r4
+ bne _0810821E
+_0810822E:
+ ldrh r0, [r5, 0x2]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r6
+ ldrb r0, [r1, 0x1]
+ cmp r0, 0x1
+ bhi _08108240
+ b _081083B2
+_08108240:
+ lsls r0, r3, 1
+ ldr r1, _08108328
+ adds r0, r1
+ ldrh r3, [r0]
+ ldr r0, _0810832C
+ cmp r3, r0
+ beq _08108250
+ b _081083B2
+_08108250:
+ ldr r0, _08108338
+ movs r1, 0
+ strh r1, [r0]
+ ldr r2, _0810833C
+ adds r0, r5, r2
+ strb r1, [r0]
+ adds r2, 0x3
+ adds r0, r5, r2
+ movs r2, 0x1
+ strb r2, [r0]
+ ldr r0, _08108340
+ strb r1, [r0]
+ ldr r0, _08108344
+ strb r2, [r0]
+ movs r6, 0
+ mov r9, r3
+ ldr r0, _08108328
+ ldrh r0, [r0]
+ str r0, [sp, 0x10]
+_08108276:
+ movs r3, 0
+ ldr r5, _08108348
+ lsls r4, r6, 1
+ ldr r7, _0810834C
+ lsls r1, r6, 2
+ mov r8, r1
+ adds r2, r6, 0x1
+ mov r10, r2
+ ldr r0, [sp, 0x10]
+ cmp r0, r9
+ beq _081082BA
+ ldr r2, _08108330
+ ldrb r1, [r7]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r4, r0
+ adds r1, r5, 0
+ adds r1, 0xC
+ adds r0, r1
+ ldrh r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r2, [r0]
+ ldr r1, _08108328
+_081082AA:
+ ldrh r0, [r1]
+ cmp r2, r0
+ beq _081082BA
+ adds r1, 0x2
+ adds r3, 0x1
+ ldrh r0, [r1]
+ cmp r0, r9
+ bne _081082AA
+_081082BA:
+ ldrb r1, [r7]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r4, r0
+ adds r1, r5, 0
+ adds r1, 0xC
+ adds r1, r0, r1
+ ldrh r0, [r1]
+ cmp r0, 0
+ beq _0810835C
+ lsls r0, r3, 1
+ ldr r2, _08108328
+ adds r0, r2
+ ldrh r0, [r0]
+ cmp r0, r9
+ bne _0810835C
+ ldr r0, _08108330
+ ldrh r2, [r1]
+ lsls r1, r2, 1
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r0
+ ldrb r0, [r1, 0x1]
+ cmp r0, 0x1
+ bls _0810835C
+ ldr r5, _08108350
+ strh r2, [r5]
+ ldrb r0, [r7]
+ ldr r4, _08108354
+ ldrb r1, [r4]
+ bl sub_801CAF8
+ ldrh r0, [r5]
+ ldrb r1, [r7]
+ ldrb r2, [r4]
+ bl move_effectiveness_something
+ mov r4, sp
+ add r4, r8
+ ldr r2, _08108358
+ ldr r0, _08108334
+ adds r0, 0x18
+ adds r0, r6, r0
+ ldrb r1, [r0]
+ ldr r0, [r2]
+ muls r0, r1
+ movs r1, 0x64
+ bl __divsi3
+ str r0, [r4]
+ cmp r0, 0
+ bne _08108364
+ movs r0, 0x1
+ str r0, [r4]
+ b _08108364
+ .align 2, 0
+_08108328: .4byte gUnknown_083F62BC
+_0810832C: .4byte 0x0000ffff
+_08108330: .4byte gBattleMoves
+_08108334: .4byte 0x02016800
+_08108338: .4byte gUnknown_02024DEC
+_0810833C: .4byte 0xfffff81c
+_08108340: .4byte gUnknown_02024C68
+_08108344: .4byte gCritMultiplier
+_08108348: .4byte gBattleMons
+_0810834C: .4byte gUnknown_02024C07
+_08108350: .4byte gUnknown_02024BE6
+_08108354: .4byte gUnknown_02024C08
+_08108358: .4byte gUnknown_02024BEC
+_0810835C:
+ mov r1, sp
+ add r1, r8
+ movs r0, 0
+ str r0, [r1]
+_08108364:
+ mov r6, r10
+ cmp r6, 0x3
+ ble _08108276
+ movs r6, 0
+ ldr r1, _081083A4
+ ldrb r0, [r1, 0x1]
+ lsls r0, 2
+ add r0, sp
+ ldr r2, [sp]
+ ldr r0, [r0]
+ adds r5, r1, 0
+ ldr r4, _081083A8
+ cmp r2, r0
+ bgt _0810839A
+ adds r3, r5, 0
+ mov r2, sp
+_08108384:
+ adds r2, 0x4
+ adds r6, 0x1
+ cmp r6, 0x3
+ bgt _0810839A
+ ldrb r0, [r3, 0x1]
+ lsls r0, 2
+ add r0, sp
+ ldr r1, [r2]
+ ldr r0, [r0]
+ cmp r1, r0
+ ble _08108384
+_0810839A:
+ cmp r6, 0x4
+ bne _081083AC
+ movs r0, 0x2
+ str r0, [r5, 0x8]
+ b _081083B8
+ .align 2, 0
+_081083A4: .4byte 0x02016800
+_081083A8: .4byte gUnknown_02039238
+_081083AC:
+ movs r0, 0x1
+ str r0, [r5, 0x8]
+ b _081083B8
+_081083B2:
+ movs r0, 0
+ str r0, [r5, 0x8]
+ ldr r4, _081083D0
+_081083B8:
+ ldr r0, [r4]
+ adds r0, 0x1
+ str r0, [r4]
+ add sp, 0x14
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081083D0: .4byte gUnknown_02039238
+ thumb_func_end sub_81081F4
+
+ thumb_func_start sub_81083D4
+sub_81083D4: @ 81083D4
+ push {lr}
+ ldr r0, _081083EC
+ ldr r1, [r0]
+ ldrb r1, [r1, 0x1]
+ adds r3, r0, 0
+ cmp r1, 0x1
+ bne _081083FC
+ ldr r2, _081083F0
+ ldr r1, _081083F4
+ ldr r0, _081083F8
+ b _08108402
+ .align 2, 0
+_081083EC: .4byte gUnknown_02039238
+_081083F0: .4byte 0x02016800
+_081083F4: .4byte gUnknown_02024C34
+_081083F8: .4byte gUnknown_02024C07
+_081083FC:
+ ldr r2, _08108418
+ ldr r1, _0810841C
+ ldr r0, _08108420
+_08108402:
+ ldrb r0, [r0]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ str r0, [r2, 0x8]
+ ldr r0, [r3]
+ adds r0, 0x2
+ str r0, [r3]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08108418: .4byte 0x02016800
+_0810841C: .4byte gUnknown_02024C34
+_08108420: .4byte gUnknown_02024C08
+ thumb_func_end sub_81083D4
+
+ thumb_func_start sub_8108424
+sub_8108424: @ 8108424
+ push {lr}
+ ldr r3, _0810844C
+ ldr r2, [r3]
+ ldrb r0, [r2, 0x1]
+ ldr r1, _08108450
+ ldr r1, [r1, 0x8]
+ cmp r0, r1
+ bne _08108454
+ ldrb r1, [r2, 0x2]
+ ldrb r0, [r2, 0x3]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x5]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _08108458
+ .align 2, 0
+_0810844C: .4byte gUnknown_02039238
+_08108450: .4byte 0x02016800
+_08108454:
+ adds r0, r2, 0x6
+ str r0, [r3]
+_08108458:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8108424
+
+ thumb_func_start sub_810845C
+sub_810845C: @ 810845C
+ push {lr}
+ ldr r3, _08108484
+ ldr r2, [r3]
+ ldrb r0, [r2, 0x1]
+ ldr r1, _08108488
+ ldr r1, [r1, 0x8]
+ cmp r0, r1
+ beq _0810848C
+ ldrb r1, [r2, 0x2]
+ ldrb r0, [r2, 0x3]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x5]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _08108490
+ .align 2, 0
+_08108484: .4byte gUnknown_02039238
+_08108488: .4byte 0x02016800
+_0810848C:
+ adds r0, r2, 0x6
+ str r0, [r3]
+_08108490:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_810845C
+
+ thumb_func_start tai28_unk
+tai28_unk: @ 8108494
+ push {lr}
+ ldr r0, _081084CC
+ ldrb r0, [r0]
+ ldr r1, _081084D0
+ ldrb r1, [r1]
+ movs r2, 0x1
+ bl b_first_side
+ ldr r3, _081084D4
+ ldr r2, [r3]
+ lsls r0, 24
+ lsrs r0, 24
+ ldrb r1, [r2, 0x1]
+ cmp r0, r1
+ bne _081084D8
+ ldrb r1, [r2, 0x2]
+ ldrb r0, [r2, 0x3]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x5]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _081084DC
+ .align 2, 0
+_081084CC: .4byte gUnknown_02024C07
+_081084D0: .4byte gUnknown_02024C08
+_081084D4: .4byte gUnknown_02039238
+_081084D8:
+ adds r0, r2, 0x6
+ str r0, [r3]
+_081084DC:
+ pop {r0}
+ bx r0
+ thumb_func_end tai28_unk
+
+ thumb_func_start tai29_unk
+tai29_unk: @ 81084E0
+ push {lr}
+ ldr r0, _08108518
+ ldrb r0, [r0]
+ ldr r1, _0810851C
+ ldrb r1, [r1]
+ movs r2, 0x1
+ bl b_first_side
+ ldr r3, _08108520
+ ldr r2, [r3]
+ lsls r0, 24
+ lsrs r0, 24
+ ldrb r1, [r2, 0x1]
+ cmp r0, r1
+ beq _08108524
+ ldrb r1, [r2, 0x2]
+ ldrb r0, [r2, 0x3]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x5]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _08108528
+ .align 2, 0
+_08108518: .4byte gUnknown_02024C07
+_0810851C: .4byte gUnknown_02024C08
+_08108520: .4byte gUnknown_02039238
+_08108524:
+ adds r0, r2, 0x6
+ str r0, [r3]
+_08108528:
+ pop {r0}
+ bx r0
+ thumb_func_end tai29_unk
+
+ thumb_func_start nullsub_25
+nullsub_25: @ 810852C
+ bx lr
+ thumb_func_end nullsub_25
+
+ thumb_func_start nullsub_26
+nullsub_26: @ 8108530
+ bx lr
+ thumb_func_end nullsub_26
+
+ thumb_func_start tai2C_unk
+tai2C_unk: @ 8108534
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ ldr r1, _08108550
+ movs r0, 0
+ str r0, [r1, 0x8]
+ ldr r0, _08108554
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x1]
+ cmp r0, 0x1
+ bne _0810855C
+ ldr r0, _08108558
+ b _0810855E
+ .align 2, 0
+_08108550: .4byte 0x02016800
+_08108554: .4byte gUnknown_02039238
+_08108558: .4byte gUnknown_02024C07
+_0810855C:
+ ldr r0, _081085A8
+_0810855E:
+ ldrb r5, [r0]
+ adds r0, r5, 0
+ bl battle_side_get_owner
+ lsls r0, 24
+ ldr r1, _081085AC
+ mov r9, r1
+ cmp r0, 0
+ bne _08108574
+ ldr r0, _081085B0
+ mov r9, r0
+_08108574:
+ ldr r0, _081085B4
+ ldrh r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _081085BC
+ ldr r4, _081085B8
+ lsls r0, r5, 1
+ adds r0, r4
+ ldrb r0, [r0]
+ mov r8, r0
+ adds r0, r5, 0
+ bl battle_get_per_side_status
+ movs r1, 0x2
+ eors r0, r1
+ lsls r0, 24
+ lsrs r0, 24
+ bl battle_get_side_with_given_state
+ lsls r0, 24
+ lsrs r0, 23
+ adds r0, r4
+ ldrb r6, [r0]
+ b _081085C6
+ .align 2, 0
+_081085A8: .4byte gUnknown_02024C08
+_081085AC: .4byte gEnemyParty
+_081085B0: .4byte gPlayerParty
+_081085B4: .4byte gUnknown_020239F8
+_081085B8: .4byte gUnknown_02024A6A
+_081085BC:
+ ldr r1, _08108624
+ lsls r0, r5, 1
+ adds r0, r1
+ ldrb r6, [r0]
+ mov r8, r6
+_081085C6:
+ movs r5, 0
+ ldr r7, _08108628
+_081085CA:
+ cmp r5, r8
+ beq _08108608
+ cmp r5, r6
+ beq _08108608
+ movs r0, 0x64
+ muls r0, r5
+ mov r1, r9
+ adds r4, r1, r0
+ adds r0, r4, 0
+ movs r1, 0x39
+ bl GetMonData
+ cmp r0, 0
+ beq _08108608
+ adds r0, r4, 0
+ movs r1, 0x41
+ bl GetMonData
+ cmp r0, 0
+ beq _08108608
+ adds r0, r4, 0
+ movs r1, 0x41
+ bl GetMonData
+ movs r1, 0xCE
+ lsls r1, 1
+ cmp r0, r1
+ beq _08108608
+ ldr r0, [r7, 0x8]
+ adds r0, 0x1
+ str r0, [r7, 0x8]
+_08108608:
+ adds r5, 0x1
+ cmp r5, 0x5
+ ble _081085CA
+ ldr r1, _0810862C
+ ldr r0, [r1]
+ adds r0, 0x2
+ str r0, [r1]
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08108624: .4byte gUnknown_02024A6A
+_08108628: .4byte 0x02016800
+_0810862C: .4byte gUnknown_02039238
+ thumb_func_end tai2C_unk
+
+ thumb_func_start sub_8108630
+sub_8108630: @ 8108630
+ ldr r1, _08108640
+ ldrh r0, [r1, 0x2]
+ str r0, [r1, 0x8]
+ ldr r1, _08108644
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ bx lr
+ .align 2, 0
+_08108640: .4byte 0x02016800
+_08108644: .4byte gUnknown_02039238
+ thumb_func_end sub_8108630
+
+ thumb_func_start sub_8108648
+sub_8108648: @ 8108648
+ ldr r3, _08108664
+ ldr r2, _08108668
+ ldrh r1, [r3, 0x2]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0]
+ str r0, [r3, 0x8]
+ ldr r1, _0810866C
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ bx lr
+ .align 2, 0
+_08108664: .4byte 0x02016800
+_08108668: .4byte gBattleMoves
+_0810866C: .4byte gUnknown_02039238
+ thumb_func_end sub_8108648
+
+ thumb_func_start sub_8108670
+sub_8108670: @ 8108670
+ push {r4-r7,lr}
+ ldr r0, _08108680
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x1]
+ cmp r0, 0x1
+ bne _08108688
+ ldr r0, _08108684
+ b _0810868A
+ .align 2, 0
+_08108680: .4byte gUnknown_02039238
+_08108684: .4byte gUnknown_02024C07
+_08108688:
+ ldr r0, _081086BC
+_0810868A:
+ ldrb r4, [r0]
+ adds r0, r4, 0
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _08108774
+ adds r0, r4, 0
+ bl battle_get_per_side_status
+ movs r7, 0x1
+ adds r1, r7, 0
+ ands r1, r0
+ ldr r6, _081086C0
+ adds r0, r6, 0
+ adds r0, 0x20
+ adds r3, r1, r0
+ ldrb r0, [r3]
+ cmp r0, 0
+ beq _081086C8
+ ldr r0, _081086C4
+ adds r1, r6, r0
+ ldrb r0, [r3]
+ str r0, [r1, 0x8]
+ b _08108784
+ .align 2, 0
+_081086BC: .4byte gUnknown_02024C08
+_081086C0: .4byte 0x02016a00
+_081086C4: .4byte 0xfffffe00
+_081086C8:
+ ldr r1, _081086F4
+ movs r0, 0x58
+ muls r0, r4
+ adds r5, r0, r1
+ adds r0, r5, 0
+ adds r0, 0x20
+ ldrb r0, [r0]
+ adds r2, r1, 0
+ cmp r0, 0x17
+ beq _081086E4
+ cmp r0, 0x2A
+ beq _081086E4
+ cmp r0, 0x47
+ bne _081086FC
+_081086E4:
+ ldr r1, _081086F8
+ movs r0, 0x58
+ muls r0, r4
+ adds r0, r2
+ adds r0, 0x20
+ ldrb r0, [r0]
+ str r0, [r1, 0x8]
+ b _08108784
+ .align 2, 0
+_081086F4: .4byte gBattleMons
+_081086F8: .4byte 0x02016800
+_081086FC:
+ ldr r4, _08108734
+ ldrh r0, [r5]
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 2
+ adds r3, r1, r4
+ ldrb r0, [r3, 0x16]
+ cmp r0, 0
+ beq _08108764
+ ldrb r0, [r3, 0x17]
+ cmp r0, 0
+ beq _08108754
+ bl Random
+ adds r1, r7, 0
+ ands r1, r0
+ cmp r1, 0
+ beq _0810873C
+ ldr r0, _08108738
+ adds r2, r6, r0
+ ldrh r1, [r5]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrb r0, [r0, 0x16]
+ b _08108782
+ .align 2, 0
+_08108734: .4byte gBaseStats
+_08108738: .4byte 0xfffffe00
+_0810873C:
+ ldr r0, _08108750
+ adds r2, r6, r0
+ ldrh r1, [r5]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrb r0, [r0, 0x17]
+ b _08108782
+ .align 2, 0
+_08108750: .4byte 0xfffffe00
+_08108754:
+ ldr r0, _08108760
+ adds r1, r6, r0
+ ldrb r0, [r3, 0x16]
+ str r0, [r1, 0x8]
+ b _08108784
+ .align 2, 0
+_08108760: .4byte 0xfffffe00
+_08108764:
+ ldr r0, _08108770
+ adds r1, r6, r0
+ ldrb r0, [r3, 0x17]
+ str r0, [r1, 0x8]
+ b _08108784
+ .align 2, 0
+_08108770: .4byte 0xfffffe00
+_08108774:
+ ldr r2, _08108794
+ ldr r1, _08108798
+ movs r0, 0x58
+ muls r0, r4
+ adds r0, r1
+ adds r0, 0x20
+ ldrb r0, [r0]
+_08108782:
+ str r0, [r2, 0x8]
+_08108784:
+ ldr r1, _0810879C
+ ldr r0, [r1]
+ adds r0, 0x2
+ str r0, [r1]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08108794: .4byte 0x02016800
+_08108798: .4byte gBattleMons
+_0810879C: .4byte gUnknown_02039238
+ thumb_func_end sub_8108670
+
+ thumb_func_start tai30_unk
+tai30_unk: @ 81087A0
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ ldr r0, _0810885C
+ movs r2, 0
+ strh r2, [r0]
+ ldr r1, _08108860
+ ldr r3, _08108864
+ adds r0, r1, r3
+ movs r4, 0
+ strb r2, [r0]
+ adds r3, 0x3
+ adds r0, r1, r3
+ movs r3, 0x1
+ strb r3, [r0]
+ ldr r0, _08108868
+ strb r2, [r0]
+ ldr r0, _0810886C
+ strb r3, [r0]
+ movs r0, 0xB4
+ lsls r0, 9
+ adds r1, r0
+ str r4, [r1, 0x8]
+ movs r5, 0
+ ldr r4, _08108870
+ ldr r7, _08108874
+ ldr r3, _08108878
+ mov r8, r3
+ ldr r6, _0810887C
+_081087DA:
+ movs r0, 0x28
+ str r0, [r4]
+ lsls r1, r5, 1
+ ldrb r2, [r6]
+ movs r0, 0x58
+ muls r0, r2
+ adds r1, r0
+ add r1, r8
+ ldrh r0, [r1]
+ strh r0, [r7]
+ lsls r0, 16
+ cmp r0, 0
+ beq _08108844
+ ldrh r0, [r7]
+ ldrb r1, [r6]
+ ldr r2, _08108880
+ ldrb r2, [r2]
+ bl move_effectiveness_something
+ ldr r0, [r4]
+ cmp r0, 0x78
+ bne _0810880A
+ movs r0, 0x50
+ str r0, [r4]
+_0810880A:
+ ldr r0, [r4]
+ cmp r0, 0xF0
+ bne _08108814
+ movs r0, 0xA0
+ str r0, [r4]
+_08108814:
+ ldr r0, [r4]
+ cmp r0, 0x1E
+ bne _0810881E
+ movs r0, 0x14
+ str r0, [r4]
+_0810881E:
+ ldr r0, [r4]
+ cmp r0, 0xF
+ bne _08108828
+ movs r0, 0xA
+ str r0, [r4]
+_08108828:
+ ldr r0, _08108868
+ ldrb r1, [r0]
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ beq _08108838
+ movs r0, 0
+ str r0, [r4]
+_08108838:
+ ldr r2, _08108884
+ ldr r0, [r2, 0x8]
+ ldr r1, [r4]
+ cmp r0, r1
+ bcs _08108844
+ str r1, [r2, 0x8]
+_08108844:
+ adds r5, 0x1
+ cmp r5, 0x3
+ ble _081087DA
+ ldr r1, _08108888
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810885C: .4byte gUnknown_02024DEC
+_08108860: .4byte 0x02000000
+_08108864: .4byte 0x0001601c
+_08108868: .4byte gUnknown_02024C68
+_0810886C: .4byte gCritMultiplier
+_08108870: .4byte gUnknown_02024BEC
+_08108874: .4byte gUnknown_02024BE6
+_08108878: .4byte gUnknown_02024A8C
+_0810887C: .4byte gUnknown_02024C07
+_08108880: .4byte gUnknown_02024C08
+_08108884: .4byte 0x02016800
+_08108888: .4byte gUnknown_02039238
+ thumb_func_end tai30_unk
+
+ thumb_func_start dp15_simulate_damage_bonus_jump_if_eq
+dp15_simulate_damage_bonus_jump_if_eq: @ 810888C
+ push {r4,r5,lr}
+ ldr r0, _08108928
+ movs r1, 0
+ strh r1, [r0]
+ ldr r2, _0810892C
+ ldr r3, _08108930
+ adds r0, r2, r3
+ strb r1, [r0]
+ adds r3, 0x3
+ adds r0, r2, r3
+ movs r3, 0x1
+ strb r3, [r0]
+ ldr r5, _08108934
+ strb r1, [r5]
+ ldr r0, _08108938
+ strb r3, [r0]
+ ldr r4, _0810893C
+ movs r0, 0x28
+ str r0, [r4]
+ ldr r1, _08108940
+ movs r0, 0xB4
+ lsls r0, 9
+ adds r2, r0
+ ldrh r0, [r2, 0x2]
+ strh r0, [r1]
+ ldrh r0, [r1]
+ ldr r1, _08108944
+ ldrb r1, [r1]
+ ldr r2, _08108948
+ ldrb r2, [r2]
+ bl move_effectiveness_something
+ ldr r0, [r4]
+ cmp r0, 0x78
+ bne _081088D6
+ movs r0, 0x50
+ str r0, [r4]
+_081088D6:
+ ldr r0, [r4]
+ cmp r0, 0xF0
+ bne _081088E0
+ movs r0, 0xA0
+ str r0, [r4]
+_081088E0:
+ ldr r0, [r4]
+ cmp r0, 0x1E
+ bne _081088EA
+ movs r0, 0x14
+ str r0, [r4]
+_081088EA:
+ ldr r0, [r4]
+ cmp r0, 0xF
+ bne _081088F4
+ movs r0, 0xA
+ str r0, [r4]
+_081088F4:
+ ldrb r1, [r5]
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ beq _08108902
+ movs r0, 0
+ str r0, [r4]
+_08108902:
+ ldrb r0, [r4]
+ ldr r3, _0810894C
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x1]
+ cmp r0, r1
+ bne _08108950
+ ldrb r1, [r2, 0x2]
+ ldrb r0, [r2, 0x3]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x5]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _08108954
+ .align 2, 0
+_08108928: .4byte gUnknown_02024DEC
+_0810892C: .4byte 0x02000000
+_08108930: .4byte 0x0001601c
+_08108934: .4byte gUnknown_02024C68
+_08108938: .4byte gCritMultiplier
+_0810893C: .4byte gUnknown_02024BEC
+_08108940: .4byte gUnknown_02024BE6
+_08108944: .4byte gUnknown_02024C07
+_08108948: .4byte gUnknown_02024C08
+_0810894C: .4byte gUnknown_02039238
+_08108950:
+ adds r0, r2, 0x6
+ str r0, [r3]
+_08108954:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end dp15_simulate_damage_bonus_jump_if_eq
+
+ thumb_func_start nullsub_71
+nullsub_71: @ 810895C
+ bx lr
+ thumb_func_end nullsub_71
+
+ thumb_func_start nullsub_90
+nullsub_90: @ 8108960
+ bx lr
+ thumb_func_end nullsub_90
+
+ thumb_func_start sub_8108964
+sub_8108964: @ 8108964
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ ldr r0, _0810897C
+ ldr r1, [r0]
+ ldrb r1, [r1, 0x1]
+ cmp r1, 0x1
+ bne _081089A4
+ ldr r1, _08108980
+ b _081089A6
+ .align 2, 0
+_0810897C: .4byte gUnknown_02039238
+_08108980: .4byte gEnemyParty
+_08108984:
+ ldr r3, _081089A0
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x6]
+ ldrb r0, [r2, 0x7]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x8]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x9]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _08108A12
+ .align 2, 0
+_081089A0: .4byte gUnknown_02039238
+_081089A4:
+ ldr r1, _08108A20
+_081089A6:
+ mov r9, r1
+ ldr r1, [r0]
+ ldrb r7, [r1, 0x2]
+ ldrb r0, [r1, 0x3]
+ lsls r0, 8
+ orrs r7, r0
+ ldrb r0, [r1, 0x4]
+ lsls r0, 16
+ orrs r7, r0
+ ldrb r0, [r1, 0x5]
+ lsls r0, 24
+ orrs r7, r0
+ movs r0, 0
+ mov r8, r0
+ movs r1, 0xCE
+ lsls r1, 1
+ mov r10, r1
+_081089C8:
+ movs r0, 0x64
+ mov r4, r8
+ muls r4, r0
+ add r4, r9
+ adds r0, r4, 0
+ movs r1, 0xB
+ bl GetMonData
+ lsls r0, 16
+ lsrs r5, r0, 16
+ adds r0, r4, 0
+ movs r1, 0x39
+ bl GetMonData
+ lsls r0, 16
+ lsrs r6, r0, 16
+ adds r0, r4, 0
+ movs r1, 0x37
+ bl GetMonData
+ cmp r5, 0
+ beq _08108A00
+ cmp r5, r10
+ beq _08108A00
+ cmp r6, 0
+ beq _08108A00
+ cmp r0, r7
+ beq _08108984
+_08108A00:
+ movs r0, 0x1
+ add r8, r0
+ mov r1, r8
+ cmp r1, 0x5
+ ble _081089C8
+ ldr r1, _08108A24
+ ldr r0, [r1]
+ adds r0, 0xA
+ str r0, [r1]
+_08108A12:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08108A20: .4byte gPlayerParty
+_08108A24: .4byte gUnknown_02039238
+ thumb_func_end sub_8108964
+
+ thumb_func_start sub_8108A28
+sub_8108A28: @ 8108A28
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ ldr r0, _08108A44
+ ldr r1, [r0]
+ ldrb r1, [r1, 0x1]
+ adds r2, r0, 0
+ cmp r1, 0x1
+ bne _08108A4C
+ ldr r0, _08108A48
+ mov r10, r0
+ b _08108A50
+ .align 2, 0
+_08108A44: .4byte gUnknown_02039238
+_08108A48: .4byte gEnemyParty
+_08108A4C:
+ ldr r1, _08108AE4
+ mov r10, r1
+_08108A50:
+ ldr r1, [r2]
+ ldrb r7, [r1, 0x2]
+ ldrb r0, [r1, 0x3]
+ lsls r0, 8
+ orrs r7, r0
+ ldrb r0, [r1, 0x4]
+ lsls r0, 16
+ orrs r7, r0
+ ldrb r0, [r1, 0x5]
+ lsls r0, 24
+ orrs r7, r0
+ movs r0, 0
+ mov r8, r0
+ mov r9, r2
+_08108A6C:
+ movs r0, 0x64
+ mov r4, r8
+ muls r4, r0
+ add r4, r10
+ adds r0, r4, 0
+ movs r1, 0xB
+ bl GetMonData
+ lsls r0, 16
+ lsrs r5, r0, 16
+ adds r0, r4, 0
+ movs r1, 0x39
+ bl GetMonData
+ lsls r0, 16
+ lsrs r6, r0, 16
+ adds r0, r4, 0
+ movs r1, 0x37
+ bl GetMonData
+ cmp r5, 0
+ beq _08108AB0
+ movs r1, 0xCE
+ lsls r1, 1
+ cmp r5, r1
+ beq _08108AB0
+ cmp r6, 0
+ beq _08108AB0
+ cmp r0, r7
+ bne _08108AB0
+ mov r1, r9
+ ldr r0, [r1]
+ adds r0, 0xA
+ str r0, [r1]
+_08108AB0:
+ movs r0, 0x1
+ add r8, r0
+ mov r1, r8
+ cmp r1, 0x5
+ ble _08108A6C
+ ldr r3, _08108AE8
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x6]
+ ldrb r0, [r2, 0x7]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x8]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x9]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08108AE4: .4byte gPlayerParty
+_08108AE8: .4byte gUnknown_02039238
+ thumb_func_end sub_8108A28
+
+ thumb_func_start sub_8108AEC
+sub_8108AEC: @ 8108AEC
+ push {lr}
+ ldr r2, _08108B3C
+ ldrh r1, [r2]
+ movs r0, 0x7
+ ands r0, r1
+ cmp r0, 0
+ beq _08108B00
+ ldr r1, _08108B40
+ movs r0, 0x1
+ str r0, [r1, 0x8]
+_08108B00:
+ ldrh r2, [r2]
+ movs r0, 0x18
+ ands r0, r2
+ adds r3, r2, 0
+ cmp r0, 0
+ beq _08108B12
+ ldr r1, _08108B40
+ movs r0, 0x2
+ str r0, [r1, 0x8]
+_08108B12:
+ movs r0, 0x60
+ ands r0, r3
+ cmp r0, 0
+ beq _08108B20
+ ldr r1, _08108B40
+ movs r0, 0
+ str r0, [r1, 0x8]
+_08108B20:
+ movs r0, 0x80
+ ands r0, r2
+ cmp r0, 0
+ beq _08108B2E
+ ldr r1, _08108B40
+ movs r0, 0x3
+ str r0, [r1, 0x8]
+_08108B2E:
+ ldr r1, _08108B44
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08108B3C: .4byte word_2024DB8
+_08108B40: .4byte 0x02016800
+_08108B44: .4byte gUnknown_02039238
+ thumb_func_end sub_8108AEC
+
+ thumb_func_start sub_8108B48
+sub_8108B48: @ 8108B48
+ push {lr}
+ ldr r2, _08108B7C
+ ldr r0, _08108B80
+ ldrh r1, [r0, 0x2]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldr r3, _08108B84
+ ldr r2, [r3]
+ ldrb r0, [r0]
+ ldrb r1, [r2, 0x1]
+ cmp r0, r1
+ bne _08108B88
+ ldrb r1, [r2, 0x2]
+ ldrb r0, [r2, 0x3]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x5]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _08108B8C
+ .align 2, 0
+_08108B7C: .4byte gBattleMoves
+_08108B80: .4byte 0x02016800
+_08108B84: .4byte gUnknown_02039238
+_08108B88:
+ adds r0, r2, 0x6
+ str r0, [r3]
+_08108B8C:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8108B48
+
+ thumb_func_start sub_8108B90
+sub_8108B90: @ 8108B90
+ push {lr}
+ ldr r2, _08108BC4
+ ldr r0, _08108BC8
+ ldrh r1, [r0, 0x2]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldr r3, _08108BCC
+ ldr r2, [r3]
+ ldrb r0, [r0]
+ ldrb r1, [r2, 0x1]
+ cmp r0, r1
+ beq _08108BD0
+ ldrb r1, [r2, 0x2]
+ ldrb r0, [r2, 0x3]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x5]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _08108BD4
+ .align 2, 0
+_08108BC4: .4byte gBattleMoves
+_08108BC8: .4byte 0x02016800
+_08108BCC: .4byte gUnknown_02039238
+_08108BD0:
+ adds r0, r2, 0x6
+ str r0, [r3]
+_08108BD4:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8108B90
+
+ thumb_func_start sub_8108BD8
+sub_8108BD8: @ 8108BD8
+ push {r4,lr}
+ ldr r0, _08108BEC
+ ldr r1, [r0]
+ ldrb r1, [r1, 0x1]
+ adds r4, r0, 0
+ cmp r1, 0x1
+ bne _08108BF4
+ ldr r0, _08108BF0
+ b _08108BF6
+ .align 2, 0
+_08108BEC: .4byte gUnknown_02039238
+_08108BF0: .4byte gUnknown_02024C07
+_08108BF4:
+ ldr r0, _08108C2C
+_08108BF6:
+ ldrb r3, [r0]
+ ldr r1, _08108C30
+ ldr r2, [r4]
+ movs r0, 0x58
+ muls r0, r3
+ ldrb r3, [r2, 0x2]
+ adds r0, r3
+ adds r1, 0x18
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ ldrb r1, [r2, 0x3]
+ cmp r0, r1
+ bge _08108C34
+ ldrb r1, [r2, 0x4]
+ ldrb r0, [r2, 0x5]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x6]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x7]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r4]
+ b _08108C3A
+ .align 2, 0
+_08108C2C: .4byte gUnknown_02024C08
+_08108C30: .4byte gBattleMons
+_08108C34:
+ adds r0, r2, 0
+ adds r0, 0x8
+ str r0, [r4]
+_08108C3A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8108BD8
+
+ thumb_func_start sub_8108C40
+sub_8108C40: @ 8108C40
+ push {r4,lr}
+ ldr r0, _08108C54
+ ldr r1, [r0]
+ ldrb r1, [r1, 0x1]
+ adds r4, r0, 0
+ cmp r1, 0x1
+ bne _08108C5C
+ ldr r0, _08108C58
+ b _08108C5E
+ .align 2, 0
+_08108C54: .4byte gUnknown_02039238
+_08108C58: .4byte gUnknown_02024C07
+_08108C5C:
+ ldr r0, _08108C94
+_08108C5E:
+ ldrb r3, [r0]
+ ldr r1, _08108C98
+ ldr r2, [r4]
+ movs r0, 0x58
+ muls r0, r3
+ ldrb r3, [r2, 0x2]
+ adds r0, r3
+ adds r1, 0x18
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ ldrb r1, [r2, 0x3]
+ cmp r0, r1
+ ble _08108C9C
+ ldrb r1, [r2, 0x4]
+ ldrb r0, [r2, 0x5]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x6]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x7]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r4]
+ b _08108CA2
+ .align 2, 0
+_08108C94: .4byte gUnknown_02024C08
+_08108C98: .4byte gBattleMons
+_08108C9C:
+ adds r0, r2, 0
+ adds r0, 0x8
+ str r0, [r4]
+_08108CA2:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8108C40
+
+ thumb_func_start sub_8108CA8
+sub_8108CA8: @ 8108CA8
+ push {r4,lr}
+ ldr r0, _08108CBC
+ ldr r1, [r0]
+ ldrb r1, [r1, 0x1]
+ adds r4, r0, 0
+ cmp r1, 0x1
+ bne _08108CC4
+ ldr r0, _08108CC0
+ b _08108CC6
+ .align 2, 0
+_08108CBC: .4byte gUnknown_02039238
+_08108CC0: .4byte gUnknown_02024C07
+_08108CC4:
+ ldr r0, _08108CFC
+_08108CC6:
+ ldrb r3, [r0]
+ ldr r1, _08108D00
+ ldr r2, [r4]
+ movs r0, 0x58
+ muls r0, r3
+ ldrb r3, [r2, 0x2]
+ adds r0, r3
+ adds r1, 0x18
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ ldrb r1, [r2, 0x3]
+ cmp r0, r1
+ bne _08108D04
+ ldrb r1, [r2, 0x4]
+ ldrb r0, [r2, 0x5]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x6]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x7]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r4]
+ b _08108D0A
+ .align 2, 0
+_08108CFC: .4byte gUnknown_02024C08
+_08108D00: .4byte gBattleMons
+_08108D04:
+ adds r0, r2, 0
+ adds r0, 0x8
+ str r0, [r4]
+_08108D0A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8108CA8
+
+ thumb_func_start sub_8108D10
+sub_8108D10: @ 8108D10
+ push {r4,lr}
+ ldr r0, _08108D24
+ ldr r1, [r0]
+ ldrb r1, [r1, 0x1]
+ adds r4, r0, 0
+ cmp r1, 0x1
+ bne _08108D2C
+ ldr r0, _08108D28
+ b _08108D2E
+ .align 2, 0
+_08108D24: .4byte gUnknown_02039238
+_08108D28: .4byte gUnknown_02024C07
+_08108D2C:
+ ldr r0, _08108D64
+_08108D2E:
+ ldrb r3, [r0]
+ ldr r1, _08108D68
+ ldr r2, [r4]
+ movs r0, 0x58
+ muls r0, r3
+ ldrb r3, [r2, 0x2]
+ adds r0, r3
+ adds r1, 0x18
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ ldrb r1, [r2, 0x3]
+ cmp r0, r1
+ beq _08108D6C
+ ldrb r1, [r2, 0x4]
+ ldrb r0, [r2, 0x5]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x6]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x7]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r4]
+ b _08108D72
+ .align 2, 0
+_08108D64: .4byte gUnknown_02024C08
+_08108D68: .4byte gBattleMons
+_08108D6C:
+ adds r0, r2, 0
+ adds r0, 0x8
+ str r0, [r4]
+_08108D72:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8108D10
+
+ thumb_func_start tai3D_unk
+tai3D_unk: @ 8108D78
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ ldr r2, _08108E1C
+ ldr r6, _08108E20
+ ldrh r1, [r6, 0x2]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0, 0x1]
+ cmp r0, 0x1
+ bls _08108E4C
+ ldr r0, _08108E24
+ movs r1, 0
+ strh r1, [r0]
+ ldr r2, _08108E28
+ adds r0, r6, r2
+ strb r1, [r0]
+ adds r2, 0x3
+ adds r0, r6, r2
+ movs r2, 0x1
+ mov r8, r2
+ mov r2, r8
+ strb r2, [r0]
+ ldr r0, _08108E2C
+ strb r1, [r0]
+ ldr r0, _08108E30
+ strb r2, [r0]
+ ldr r5, _08108E34
+ ldrh r0, [r6, 0x2]
+ strh r0, [r5]
+ ldr r4, _08108E38
+ ldrb r0, [r4]
+ ldr r7, _08108E3C
+ ldrb r1, [r7]
+ bl sub_801CAF8
+ ldrh r0, [r5]
+ ldrb r1, [r4]
+ ldrb r2, [r7]
+ bl move_effectiveness_something
+ ldr r4, _08108E40
+ adds r0, r6, 0
+ adds r0, 0x18
+ ldrb r6, [r6, 0x1]
+ adds r0, r6
+ ldrb r1, [r0]
+ ldr r0, [r4]
+ muls r0, r1
+ movs r1, 0x64
+ bl __divsi3
+ str r0, [r4]
+ cmp r0, 0
+ bne _08108DEE
+ mov r0, r8
+ str r0, [r4]
+_08108DEE:
+ ldr r2, _08108E44
+ ldrb r1, [r7]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r2
+ ldrh r1, [r0, 0x28]
+ ldr r0, [r4]
+ cmp r1, r0
+ bgt _08108E4C
+ ldr r3, _08108E48
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _08108E54
+ .align 2, 0
+_08108E1C: .4byte gBattleMoves
+_08108E20: .4byte 0x02016800
+_08108E24: .4byte gUnknown_02024DEC
+_08108E28: .4byte 0xfffff81c
+_08108E2C: .4byte gUnknown_02024C68
+_08108E30: .4byte gCritMultiplier
+_08108E34: .4byte gUnknown_02024BE6
+_08108E38: .4byte gUnknown_02024C07
+_08108E3C: .4byte gUnknown_02024C08
+_08108E40: .4byte gUnknown_02024BEC
+_08108E44: .4byte gBattleMons
+_08108E48: .4byte gUnknown_02039238
+_08108E4C:
+ ldr r1, _08108E60
+ ldr r0, [r1]
+ adds r0, 0x5
+ str r0, [r1]
+_08108E54:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08108E60: .4byte gUnknown_02039238
+ thumb_func_end tai3D_unk
+
+ thumb_func_start dp15_determine_move_damage_jump_if_not_fatal
+dp15_determine_move_damage_jump_if_not_fatal: @ 8108E64
+ push {r4-r7,lr}
+ ldr r2, _08108EF8
+ ldr r7, _08108EFC
+ ldrh r1, [r7, 0x2]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0, 0x1]
+ cmp r0, 0x1
+ bls _08108F28
+ ldr r0, _08108F00
+ movs r1, 0
+ strh r1, [r0]
+ ldr r2, _08108F04
+ adds r0, r7, r2
+ strb r1, [r0]
+ adds r2, 0x3
+ adds r0, r7, r2
+ movs r2, 0x1
+ strb r2, [r0]
+ ldr r0, _08108F08
+ strb r1, [r0]
+ ldr r0, _08108F0C
+ strb r2, [r0]
+ ldr r6, _08108F10
+ ldrh r0, [r7, 0x2]
+ strh r0, [r6]
+ ldr r4, _08108F14
+ ldrb r0, [r4]
+ ldr r5, _08108F18
+ ldrb r1, [r5]
+ bl sub_801CAF8
+ ldrh r0, [r6]
+ ldrb r1, [r4]
+ ldrb r2, [r5]
+ bl move_effectiveness_something
+ ldr r4, _08108F1C
+ adds r0, r7, 0
+ adds r0, 0x18
+ ldrb r7, [r7, 0x1]
+ adds r0, r7
+ ldrb r1, [r0]
+ ldr r0, [r4]
+ muls r0, r1
+ movs r1, 0x64
+ bl __divsi3
+ str r0, [r4]
+ ldr r3, _08108F20
+ ldrb r2, [r5]
+ movs r1, 0x58
+ muls r1, r2
+ adds r1, r3
+ ldrh r1, [r1, 0x28]
+ cmp r1, r0
+ ble _08108F28
+ ldr r3, _08108F24
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _08108F30
+ .align 2, 0
+_08108EF8: .4byte gBattleMoves
+_08108EFC: .4byte 0x02016800
+_08108F00: .4byte gUnknown_02024DEC
+_08108F04: .4byte 0xfffff81c
+_08108F08: .4byte gUnknown_02024C68
+_08108F0C: .4byte gCritMultiplier
+_08108F10: .4byte gUnknown_02024BE6
+_08108F14: .4byte gUnknown_02024C07
+_08108F18: .4byte gUnknown_02024C08
+_08108F1C: .4byte gUnknown_02024BEC
+_08108F20: .4byte gBattleMons
+_08108F24: .4byte gUnknown_02039238
+_08108F28:
+ ldr r1, _08108F38
+ ldr r0, [r1]
+ adds r0, 0x5
+ str r0, [r1]
+_08108F30:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08108F38: .4byte gUnknown_02039238
+ thumb_func_end dp15_determine_move_damage_jump_if_not_fatal
+
+ thumb_func_start tai40_unk
+tai40_unk: @ 8108F3C
+ push {r4-r7,lr}
+ ldr r1, _08108F58
+ ldr r0, [r1]
+ adds r6, r0, 0x2
+ ldrb r0, [r0, 0x1]
+ adds r4, r1, 0
+ cmp r0, 0x1
+ beq _08108F64
+ cmp r0, 0x1
+ bgt _08108F5C
+ cmp r0, 0
+ beq _08108FA8
+ b _08109008
+ .align 2, 0
+_08108F58: .4byte gUnknown_02039238
+_08108F5C:
+ cmp r0, 0x2
+ beq _08108FA8
+ cmp r0, 0x3
+ bne _08109008
+_08108F64:
+ movs r3, 0
+ ldr r2, _08108FA0
+ ldr r5, _08108FA4
+ ldrb r1, [r5]
+ movs r0, 0x58
+ muls r0, r1
+ adds r2, 0xC
+ adds r0, r2
+ ldrh r0, [r0]
+ ldrh r1, [r6]
+ cmp r0, r1
+ beq _08108F9A
+ adds r7, r5, 0
+ movs r6, 0x58
+ adds r5, r2, 0
+ adds r2, r1, 0
+_08108F84:
+ adds r3, 0x1
+ cmp r3, 0x3
+ bgt _08108F9A
+ lsls r1, r3, 1
+ ldrb r0, [r7]
+ muls r0, r6
+ adds r1, r0
+ adds r1, r5
+ ldrh r0, [r1]
+ cmp r0, r2
+ bne _08108F84
+_08108F9A:
+ cmp r3, 0x4
+ beq _08108FDE
+ b _08108FF0
+ .align 2, 0
+_08108FA0: .4byte gBattleMons
+_08108FA4: .4byte gUnknown_02024C07
+_08108FA8:
+ movs r3, 0
+ ldr r5, _08108FE8
+ ldr r1, _08108FEC
+ ldrb r0, [r1]
+ lsrs r0, 1
+ lsls r0, 4
+ adds r0, r5
+ ldrh r0, [r0]
+ ldrh r2, [r6]
+ cmp r0, r2
+ beq _08108FDA
+ adds r6, r5, 0
+ adds r5, r1, 0
+_08108FC2:
+ adds r3, 0x1
+ cmp r3, 0x7
+ bgt _08108FDA
+ lsls r0, r3, 1
+ ldrb r1, [r5]
+ lsrs r1, 1
+ lsls r1, 4
+ adds r0, r1
+ adds r0, r6
+ ldrh r0, [r0]
+ cmp r0, r2
+ bne _08108FC2
+_08108FDA:
+ cmp r3, 0x8
+ bne _08108FF0
+_08108FDE:
+ ldr r0, [r4]
+ adds r0, 0x8
+ str r0, [r4]
+ b _08109008
+ .align 2, 0
+_08108FE8: .4byte 0x02016a00
+_08108FEC: .4byte gUnknown_02024C08
+_08108FF0:
+ ldr r2, [r4]
+ ldrb r1, [r2, 0x4]
+ ldrb r0, [r2, 0x5]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x6]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x7]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r4]
+_08109008:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end tai40_unk
+
+ thumb_func_start sub_8109010
+sub_8109010: @ 8109010
+ push {r4-r7,lr}
+ ldr r1, _0810902C
+ ldr r0, [r1]
+ adds r6, r0, 0x2
+ ldrb r0, [r0, 0x1]
+ adds r4, r1, 0
+ cmp r0, 0x1
+ beq _08109038
+ cmp r0, 0x1
+ bgt _08109030
+ cmp r0, 0
+ beq _0810907C
+ b _081090DC
+ .align 2, 0
+_0810902C: .4byte gUnknown_02039238
+_08109030:
+ cmp r0, 0x2
+ beq _0810907C
+ cmp r0, 0x3
+ bne _081090DC
+_08109038:
+ movs r3, 0
+ ldr r2, _08109074
+ ldr r5, _08109078
+ ldrb r1, [r5]
+ movs r0, 0x58
+ muls r0, r1
+ adds r2, 0xC
+ adds r0, r2
+ ldrh r0, [r0]
+ ldrh r1, [r6]
+ cmp r0, r1
+ beq _0810906E
+ adds r7, r5, 0
+ movs r6, 0x58
+ adds r5, r2, 0
+ adds r2, r1, 0
+_08109058:
+ adds r3, 0x1
+ cmp r3, 0x3
+ bgt _0810906E
+ lsls r1, r3, 1
+ ldrb r0, [r7]
+ muls r0, r6
+ adds r1, r0
+ adds r1, r5
+ ldrh r0, [r1]
+ cmp r0, r2
+ bne _08109058
+_0810906E:
+ cmp r3, 0x4
+ bne _081090B2
+ b _081090C4
+ .align 2, 0
+_08109074: .4byte gBattleMons
+_08109078: .4byte gUnknown_02024C07
+_0810907C:
+ movs r3, 0
+ ldr r5, _081090BC
+ ldr r1, _081090C0
+ ldrb r0, [r1]
+ lsrs r0, 1
+ lsls r0, 4
+ adds r0, r5
+ ldrh r0, [r0]
+ ldrh r2, [r6]
+ cmp r0, r2
+ beq _081090AE
+ adds r6, r5, 0
+ adds r5, r1, 0
+_08109096:
+ adds r3, 0x1
+ cmp r3, 0x7
+ bgt _081090AE
+ lsls r0, r3, 1
+ ldrb r1, [r5]
+ lsrs r1, 1
+ lsls r1, 4
+ adds r0, r1
+ adds r0, r6
+ ldrh r0, [r0]
+ cmp r0, r2
+ bne _08109096
+_081090AE:
+ cmp r3, 0x8
+ beq _081090C4
+_081090B2:
+ ldr r0, [r4]
+ adds r0, 0x8
+ str r0, [r4]
+ b _081090DC
+ .align 2, 0
+_081090BC: .4byte 0x02016a00
+_081090C0: .4byte gUnknown_02024C08
+_081090C4:
+ ldr r2, [r4]
+ ldrb r1, [r2, 0x4]
+ ldrb r0, [r2, 0x5]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x6]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x7]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r4]
+_081090DC:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8109010
+
+ thumb_func_start sub_81090E4
+sub_81090E4: @ 81090E4
+ push {r4-r7,lr}
+ ldr r1, _081090FC
+ ldr r0, [r1]
+ ldrb r0, [r0, 0x1]
+ adds r4, r1, 0
+ cmp r0, 0x1
+ beq _08109108
+ cmp r0, 0x1
+ bgt _08109100
+ cmp r0, 0
+ beq _0810915C
+ b _081091B8
+ .align 2, 0
+_081090FC: .4byte gUnknown_02039238
+_08109100:
+ cmp r0, 0x2
+ beq _0810915C
+ cmp r0, 0x3
+ bne _081091B8
+_08109108:
+ movs r3, 0
+ ldr r1, _0810914C
+ ldr r0, _08109150
+ ldrb r2, [r0]
+ ldr r6, _08109154
+ movs r0, 0x58
+ muls r0, r2
+ adds r1, 0xC
+ adds r2, r0, r1
+ ldr r5, _08109158
+_0810911C:
+ ldrh r0, [r2]
+ cmp r0, 0
+ beq _08109136
+ adds r1, r0, 0
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ ldr r1, [r5]
+ ldrb r0, [r0]
+ ldrb r1, [r1, 0x2]
+ cmp r0, r1
+ beq _0810913E
+_08109136:
+ adds r2, 0x2
+ adds r3, 0x1
+ cmp r3, 0x3
+ ble _0810911C
+_0810913E:
+ cmp r3, 0x4
+ bne _081091A0
+ ldr r0, [r4]
+ adds r0, 0x7
+ str r0, [r4]
+ b _081091B8
+ .align 2, 0
+_0810914C: .4byte gBattleMons
+_08109150: .4byte gUnknown_02024C07
+_08109154: .4byte gBattleMoves
+_08109158: .4byte gUnknown_02039238
+_0810915C:
+ movs r3, 0
+ ldr r1, _081091C0
+ ldr r0, _081091C4
+ ldrb r2, [r0]
+ ldr r7, _081091C8
+ ldr r6, _081091CC
+ ldr r5, _081091D0
+ movs r0, 0x58
+ muls r0, r2
+ adds r1, 0xC
+ adds r2, r0, r1
+_08109172:
+ lsls r1, r3, 1
+ ldrh r0, [r2]
+ cmp r0, 0
+ beq _08109198
+ ldrb r0, [r5]
+ lsrs r0, 1
+ lsls r0, 4
+ adds r0, r1, r0
+ adds r0, r6
+ ldrh r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r7
+ ldr r1, [r4]
+ ldrb r0, [r0]
+ ldrb r1, [r1, 0x2]
+ cmp r0, r1
+ beq _081091A0
+_08109198:
+ adds r2, 0x2
+ adds r3, 0x1
+ cmp r3, 0x7
+ ble _08109172
+_081091A0:
+ ldr r2, [r4]
+ ldrb r1, [r2, 0x3]
+ ldrb r0, [r2, 0x4]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x5]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x6]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r4]
+_081091B8:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081091C0: .4byte gBattleMons
+_081091C4: .4byte gUnknown_02024C07
+_081091C8: .4byte gBattleMoves
+_081091CC: .4byte 0x02016a00
+_081091D0: .4byte gUnknown_02024C08
+ thumb_func_end sub_81090E4
+
+ thumb_func_start sub_81091D4
+sub_81091D4: @ 81091D4
+ push {r4-r6,lr}
+ ldr r1, _081091EC
+ ldr r0, [r1]
+ ldrb r0, [r0, 0x1]
+ adds r4, r1, 0
+ cmp r0, 0x1
+ beq _081091F8
+ cmp r0, 0x1
+ bgt _081091F0
+ cmp r0, 0
+ beq _0810925C
+ b _08109294
+ .align 2, 0
+_081091EC: .4byte gUnknown_02039238
+_081091F0:
+ cmp r0, 0x2
+ beq _0810925C
+ cmp r0, 0x3
+ bne _08109294
+_081091F8:
+ movs r3, 0
+ ldr r1, _0810924C
+ ldr r0, _08109250
+ ldrb r2, [r0]
+ ldr r6, _08109254
+ movs r0, 0x58
+ muls r0, r2
+ adds r1, 0xC
+ adds r2, r0, r1
+ ldr r5, _08109258
+_0810920C:
+ ldrh r0, [r2]
+ cmp r0, 0
+ beq _08109226
+ adds r1, r0, 0
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ ldr r1, [r5]
+ ldrb r0, [r0]
+ ldrb r1, [r1, 0x2]
+ cmp r0, r1
+ beq _0810922E
+_08109226:
+ adds r2, 0x2
+ adds r3, 0x1
+ cmp r3, 0x3
+ ble _0810920C
+_0810922E:
+ cmp r3, 0x4
+ bne _0810928E
+ ldr r2, [r4]
+ ldrb r1, [r2, 0x3]
+ ldrb r0, [r2, 0x4]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x5]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x6]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r4]
+ b _08109294
+ .align 2, 0
+_0810924C: .4byte gBattleMons
+_08109250: .4byte gUnknown_02024C07
+_08109254: .4byte gBattleMoves
+_08109258: .4byte gUnknown_02039238
+_0810925C:
+ movs r3, 0
+ ldr r1, _0810929C
+ ldr r0, _081092A0
+ ldrb r0, [r0]
+ lsrs r0, 1
+ lsls r0, 4
+ adds r2, r0, r1
+ ldr r5, _081092A4
+_0810926C:
+ ldrh r0, [r2]
+ cmp r0, 0
+ beq _08109286
+ adds r1, r0, 0
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldr r1, [r4]
+ ldrb r0, [r0]
+ ldrb r1, [r1, 0x2]
+ cmp r0, r1
+ beq _0810928E
+_08109286:
+ adds r2, 0x2
+ adds r3, 0x1
+ cmp r3, 0x7
+ ble _0810926C
+_0810928E:
+ ldr r0, [r4]
+ adds r0, 0x7
+ str r0, [r4]
+_08109294:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810929C: .4byte 0x02016a00
+_081092A0: .4byte gUnknown_02024C08
+_081092A4: .4byte gBattleMoves
+ thumb_func_end sub_81091D4
+
+ thumb_func_start tai43_unk
+tai43_unk: @ 81092A8
+ push {r4,r5,lr}
+ ldr r0, _081092BC
+ ldr r1, [r0]
+ ldrb r1, [r1, 0x1]
+ adds r5, r0, 0
+ cmp r1, 0x1
+ bne _081092C4
+ ldr r0, _081092C0
+ b _081092C6
+ .align 2, 0
+_081092BC: .4byte gUnknown_02039238
+_081092C0: .4byte gUnknown_02024C07
+_081092C4:
+ ldr r0, _081092E4
+_081092C6:
+ ldrb r3, [r0]
+ adds r4, r5, 0
+ ldr r2, [r4]
+ ldrb r0, [r2, 0x2]
+ cmp r0, 0
+ bne _081092EC
+ ldr r0, _081092E8
+ lsls r1, r3, 3
+ subs r1, r3
+ lsls r1, 2
+ adds r1, r0
+ ldrh r0, [r1, 0x4]
+ cmp r0, 0
+ beq _081092F0
+ b _08109306
+ .align 2, 0
+_081092E4: .4byte gUnknown_02024C08
+_081092E8: .4byte gUnknown_02024CA8
+_081092EC:
+ cmp r0, 0x1
+ beq _081092F6
+_081092F0:
+ adds r0, r2, 0x7
+ str r0, [r4]
+ b _08109328
+_081092F6:
+ ldr r0, _08109320
+ lsls r1, r3, 3
+ subs r1, r3
+ lsls r1, 2
+ adds r1, r0
+ ldrh r0, [r1, 0x6]
+ cmp r0, 0
+ beq _08109324
+_08109306:
+ ldrb r1, [r2, 0x3]
+ ldrb r0, [r2, 0x4]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x5]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x6]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r4]
+ b _08109328
+ .align 2, 0
+_08109320: .4byte gUnknown_02024CA8
+_08109324:
+ adds r0, r2, 0x7
+ str r0, [r5]
+_08109328:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end tai43_unk
+
+ thumb_func_start sub_8109330
+sub_8109330: @ 8109330
+ push {r4,lr}
+ ldr r4, _08109344
+ ldr r3, [r4]
+ ldrb r0, [r3, 0x1]
+ cmp r0, 0
+ beq _08109348
+ cmp r0, 0x1
+ beq _08109370
+ b _081093AC
+ .align 2, 0
+_08109344: .4byte gUnknown_02039238
+_08109348:
+ ldr r2, _08109364
+ ldr r0, _08109368
+ ldrb r1, [r0]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldr r1, _0810936C
+ ldrh r0, [r0, 0x4]
+ ldrh r1, [r1, 0x2]
+ cmp r0, r1
+ beq _08109388
+ b _081093AC
+ .align 2, 0
+_08109364: .4byte gUnknown_02024CA8
+_08109368: .4byte gUnknown_02024A60
+_0810936C: .4byte 0x02016800
+_08109370:
+ ldr r2, _081093A0
+ ldr r0, _081093A4
+ ldrb r1, [r0]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldr r1, _081093A8
+ ldrh r0, [r0, 0x6]
+ ldrh r1, [r1, 0x2]
+ cmp r0, r1
+ bne _081093AC
+_08109388:
+ ldrb r1, [r3, 0x2]
+ ldrb r0, [r3, 0x3]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r3, 0x4]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r3, 0x5]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r4]
+ b _081093B0
+ .align 2, 0
+_081093A0: .4byte gUnknown_02024CA8
+_081093A4: .4byte gUnknown_02024A60
+_081093A8: .4byte 0x02016800
+_081093AC:
+ adds r0, r3, 0x6
+ str r0, [r4]
+_081093B0:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8109330
+
+ thumb_func_start sub_81093B8
+sub_81093B8: @ 81093B8
+ ldr r2, _081093C4
+ ldrb r1, [r2, 0x10]
+ movs r0, 0xB
+ orrs r0, r1
+ strb r0, [r2, 0x10]
+ bx lr
+ .align 2, 0
+_081093C4: .4byte 0x02016800
+ thumb_func_end sub_81093B8
+
+ thumb_func_start sub_81093C8
+sub_81093C8: @ 81093C8
+ push {r4,lr}
+ ldr r0, _0810940C
+ ldr r1, _08109410
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 24
+ lsrs r4, 24
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x64
+ bl __umodsi3
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, r4
+ bcs _08109418
+ ldr r3, _08109414
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _08109420
+ .align 2, 0
+_0810940C: .4byte 0x02000000
+_08109410: .4byte 0x00016088
+_08109414: .4byte gUnknown_02039238
+_08109418:
+ ldr r1, _08109428
+ ldr r0, [r1]
+ adds r0, 0x5
+ str r0, [r1]
+_08109420:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08109428: .4byte gUnknown_02039238
+ thumb_func_end sub_81093C8
+
+ thumb_func_start sub_810942C
+sub_810942C: @ 810942C
+ ldr r2, _08109438
+ ldrb r1, [r2, 0x10]
+ movs r0, 0xD
+ orrs r0, r1
+ strb r0, [r2, 0x10]
+ bx lr
+ .align 2, 0
+_08109438: .4byte 0x02016800
+ thumb_func_end sub_810942C
+
+ thumb_func_start dp15_get_held_item_x12__8
+dp15_get_held_item_x12__8: @ 810943C
+ push {r4,lr}
+ ldr r0, _0810944C
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x1]
+ cmp r0, 0x1
+ bne _08109454
+ ldr r0, _08109450
+ b _08109456
+ .align 2, 0
+_0810944C: .4byte gUnknown_02039238
+_08109450: .4byte gUnknown_02024C07
+_08109454:
+ ldr r0, _0810947C
+_08109456:
+ ldrb r4, [r0]
+ adds r0, r4, 0
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _08109488
+ adds r0, r4, 0
+ bl battle_get_per_side_status
+ movs r1, 0x1
+ ands r1, r0
+ ldr r2, _08109480
+ ldr r3, _08109484
+ adds r0, r2, r3
+ adds r1, r0
+ ldrb r0, [r1]
+ str r0, [r2, 0x8]
+ b _0810949E
+ .align 2, 0
+_0810947C: .4byte gUnknown_02024C08
+_08109480: .4byte 0x02016800
+_08109484: .4byte 0x00000222
+_08109488:
+ ldr r1, _081094AC
+ movs r0, 0x58
+ muls r0, r4
+ adds r0, r1
+ ldrh r0, [r0, 0x2E]
+ bl itemid_get_x12
+ ldr r1, _081094B0
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [r1, 0x8]
+_0810949E:
+ ldr r1, _081094B4
+ ldr r0, [r1]
+ adds r0, 0x2
+ str r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081094AC: .4byte gBattleMons
+_081094B0: .4byte 0x02016800
+_081094B4: .4byte gUnknown_02039238
+ thumb_func_end dp15_get_held_item_x12__8
+
+ thumb_func_start tai49_unk
+tai49_unk: @ 81094B8
+ push {lr}
+ ldr r0, _081094C8
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x1]
+ cmp r0, 0x1
+ bne _081094D0
+ ldr r0, _081094CC
+ b _081094D2
+ .align 2, 0
+_081094C8: .4byte gUnknown_02039238
+_081094CC: .4byte gUnknown_02024C07
+_081094D0:
+ ldr r0, _081094FC
+_081094D2:
+ ldrb r1, [r0]
+ ldr r2, _08109500
+ movs r0, 0x58
+ muls r1, r0
+ adds r0, r1, r2
+ ldrh r0, [r0]
+ adds r2, 0x48
+ adds r1, r2
+ ldr r1, [r1]
+ bl GetGenderFromSpeciesAndPersonality
+ ldr r1, _08109504
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [r1, 0x8]
+ ldr r1, _08109508
+ ldr r0, [r1]
+ adds r0, 0x2
+ str r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081094FC: .4byte gUnknown_02024C08
+_08109500: .4byte gBattleMons
+_08109504: .4byte 0x02016800
+_08109508: .4byte gUnknown_02039238
+ thumb_func_end tai49_unk
+
+ thumb_func_start sub_810950C
+sub_810950C: @ 810950C
+ push {r4,lr}
+ ldr r0, _08109520
+ ldr r1, [r0]
+ ldrb r1, [r1, 0x1]
+ adds r4, r0, 0
+ cmp r1, 0x1
+ bne _08109528
+ ldr r0, _08109524
+ b _0810952A
+ .align 2, 0
+_08109520: .4byte gUnknown_02039238
+_08109524: .4byte gUnknown_02024C07
+_08109528:
+ ldr r0, _08109548
+_0810952A:
+ ldrb r3, [r0]
+ ldr r2, _0810954C
+ ldr r1, _08109550
+ lsls r0, r3, 3
+ subs r0, r3
+ lsls r0, 2
+ adds r0, r1
+ ldrb r0, [r0, 0x16]
+ str r0, [r2, 0x8]
+ ldr r0, [r4]
+ adds r0, 0x2
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08109548: .4byte gUnknown_02024C08
+_0810954C: .4byte 0x02016800
+_08109550: .4byte gUnknown_02024CA8
+ thumb_func_end sub_810950C
+
+ thumb_func_start sub_8109554
+sub_8109554: @ 8109554
+ push {r4,lr}
+ ldr r0, _08109568
+ ldr r1, [r0]
+ ldrb r1, [r1, 0x1]
+ adds r4, r0, 0
+ cmp r1, 0x1
+ bne _08109570
+ ldr r0, _0810956C
+ b _08109572
+ .align 2, 0
+_08109568: .4byte gUnknown_02039238
+_0810956C: .4byte gUnknown_02024C07
+_08109570:
+ ldr r0, _08109590
+_08109572:
+ ldrb r3, [r0]
+ ldr r2, _08109594
+ ldr r1, _08109598
+ lsls r0, r3, 3
+ subs r0, r3
+ lsls r0, 2
+ adds r0, r1
+ ldrb r0, [r0, 0x9]
+ str r0, [r2, 0x8]
+ ldr r0, [r4]
+ adds r0, 0x2
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08109590: .4byte gUnknown_02024C08
+_08109594: .4byte 0x02016800
+_08109598: .4byte gUnknown_02024CA8
+ thumb_func_end sub_8109554
+
+ thumb_func_start sub_810959C
+sub_810959C: @ 810959C
+ ldr r2, _081095B4
+ ldr r0, _081095B8
+ ldrh r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ str r0, [r2, 0x8]
+ ldr r1, _081095BC
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ bx lr
+ .align 2, 0
+_081095B4: .4byte 0x02016800
+_081095B8: .4byte gUnknown_020239F8
+_081095BC: .4byte gUnknown_02039238
+ thumb_func_end sub_810959C
+
+ thumb_func_start sub_81095C0
+sub_81095C0: @ 81095C0
+ push {lr}
+ ldr r0, _081095D4
+ ldr r1, [r0]
+ ldrb r1, [r1, 0x1]
+ adds r2, r0, 0
+ cmp r1, 0x1
+ bne _081095DC
+ ldr r0, _081095D8
+ b _081095DE
+ .align 2, 0
+_081095D4: .4byte gUnknown_02039238
+_081095D8: .4byte gUnknown_02024C07
+_081095DC:
+ ldr r0, _081095F8
+_081095DE:
+ ldrb r0, [r0]
+ ldr r1, _081095FC
+ lsls r0, 1
+ adds r0, r1
+ ldr r3, _08109600
+ adds r0, r3
+ ldrb r0, [r0]
+ str r0, [r1, 0x8]
+ ldr r0, [r2]
+ adds r0, 0x2
+ str r0, [r2]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081095F8: .4byte gUnknown_02024C08
+_081095FC: .4byte 0x02016800
+_08109600: .4byte 0xfffff8cc
+ thumb_func_end sub_81095C0
+
+ thumb_func_start sub_8109604
+sub_8109604: @ 8109604
+ ldr r3, _08109620
+ ldr r2, _08109624
+ ldr r1, [r3, 0x8]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0, 0x2]
+ str r0, [r3, 0x8]
+ ldr r1, _08109628
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ bx lr
+ .align 2, 0
+_08109620: .4byte 0x02016800
+_08109624: .4byte gBattleMoves
+_08109628: .4byte gUnknown_02039238
+ thumb_func_end sub_8109604
+
+ thumb_func_start sub_810962C
+sub_810962C: @ 810962C
+ ldr r3, _08109648
+ ldr r2, _0810964C
+ ldr r1, [r3, 0x8]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0, 0x1]
+ str r0, [r3, 0x8]
+ ldr r1, _08109650
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ bx lr
+ .align 2, 0
+_08109648: .4byte 0x02016800
+_0810964C: .4byte gBattleMoves
+_08109650: .4byte gUnknown_02039238
+ thumb_func_end sub_810962C
+
+ thumb_func_start sub_8109654
+sub_8109654: @ 8109654
+ ldr r3, _08109670
+ ldr r2, _08109674
+ ldr r1, [r3, 0x8]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0]
+ str r0, [r3, 0x8]
+ ldr r1, _08109678
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ bx lr
+ .align 2, 0
+_08109670: .4byte 0x02016800
+_08109674: .4byte gBattleMoves
+_08109678: .4byte gUnknown_02039238
+ thumb_func_end sub_8109654
+
+ thumb_func_start sub_810967C
+sub_810967C: @ 810967C
+ push {r4,lr}
+ ldr r0, _08109690
+ ldr r1, [r0]
+ ldrb r1, [r1, 0x1]
+ adds r4, r0, 0
+ cmp r1, 0x1
+ bne _08109698
+ ldr r0, _08109694
+ b _0810969A
+ .align 2, 0
+_08109690: .4byte gUnknown_02039238
+_08109694: .4byte gUnknown_02024C07
+_08109698:
+ ldr r0, _081096B8
+_0810969A:
+ ldrb r3, [r0]
+ ldr r2, _081096BC
+ ldr r1, _081096C0
+ lsls r0, r3, 3
+ subs r0, r3
+ lsls r0, 2
+ adds r0, r1
+ ldrb r0, [r0, 0x8]
+ str r0, [r2, 0x8]
+ ldr r0, [r4]
+ adds r0, 0x2
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081096B8: .4byte gUnknown_02024C08
+_081096BC: .4byte 0x02016800
+_081096C0: .4byte gUnknown_02024CA8
+ thumb_func_end sub_810967C
+
+ thumb_func_start nullsub_27
+nullsub_27: @ 81096C4
+ bx lr
+ thumb_func_end nullsub_27
+
+ thumb_func_start nullsub_28
+nullsub_28: @ 81096C8
+ bx lr
+ thumb_func_end nullsub_28
+
+ thumb_func_start nullsub_29
+nullsub_29: @ 81096CC
+ bx lr
+ thumb_func_end nullsub_29
+
+ thumb_func_start nullsub_30
+nullsub_30: @ 81096D0
+ bx lr
+ thumb_func_end nullsub_30
+
+ thumb_func_start nullsub_31
+nullsub_31: @ 81096D4
+ bx lr
+ thumb_func_end nullsub_31
+
+ thumb_func_start nullsub_32
+nullsub_32: @ 81096D8
+ bx lr
+ thumb_func_end nullsub_32
+
+ thumb_func_start sub_81096DC
+sub_81096DC: @ 81096DC
+ push {r4,lr}
+ ldr r4, _08109708
+ ldr r0, [r4]
+ adds r0, 0x5
+ bl sub_81098C4
+ ldr r2, [r4]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08109708: .4byte gUnknown_02039238
+ thumb_func_end sub_81096DC
+
+ thumb_func_start sub_810970C
+sub_810970C: @ 810970C
+ ldr r3, _08109728
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ bx lr
+ .align 2, 0
+_08109728: .4byte gUnknown_02039238
+ thumb_func_end sub_810970C
+
+ thumb_func_start sub_810972C
+sub_810972C: @ 810972C
+ push {lr}
+ bl sub_8109908
+ lsls r0, 24
+ cmp r0, 0
+ bne _08109742
+ ldr r2, _08109748
+ ldrb r1, [r2, 0x10]
+ movs r0, 0x1
+ orrs r0, r1
+ strb r0, [r2, 0x10]
+_08109742:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08109748: .4byte 0x02016800
+ thumb_func_end sub_810972C
+
+ thumb_func_start dp15_compare_attacker_defender_levels
+dp15_compare_attacker_defender_levels: @ 810974C
+ push {r4,r5,lr}
+ ldr r5, _08109764
+ ldr r4, [r5]
+ ldrb r0, [r4, 0x1]
+ cmp r0, 0x1
+ beq _081097A0
+ cmp r0, 0x1
+ bgt _08109768
+ cmp r0, 0
+ beq _0810976E
+ b _0810981C
+ .align 2, 0
+_08109764: .4byte gUnknown_02039238
+_08109768:
+ cmp r0, 0x2
+ beq _081097D0
+ b _0810981C
+_0810976E:
+ ldr r3, _08109794
+ ldr r0, _08109798
+ ldrb r0, [r0]
+ movs r2, 0x58
+ adds r1, r0, 0
+ muls r1, r2
+ adds r1, r3
+ adds r1, 0x2A
+ ldr r0, _0810979C
+ ldrb r0, [r0]
+ muls r0, r2
+ adds r0, r3
+ adds r0, 0x2A
+ ldrb r1, [r1]
+ ldrb r0, [r0]
+ cmp r1, r0
+ bhi _081097F2
+ b _08109818
+ .align 2, 0
+_08109794: .4byte gBattleMons
+_08109798: .4byte gUnknown_02024C07
+_0810979C: .4byte gUnknown_02024C08
+_081097A0:
+ ldr r3, _081097C4
+ ldr r0, _081097C8
+ ldrb r0, [r0]
+ movs r2, 0x58
+ adds r1, r0, 0
+ muls r1, r2
+ adds r1, r3
+ adds r1, 0x2A
+ ldr r0, _081097CC
+ ldrb r0, [r0]
+ muls r0, r2
+ adds r0, r3
+ adds r0, 0x2A
+ ldrb r1, [r1]
+ ldrb r0, [r0]
+ cmp r1, r0
+ bcc _081097F2
+ b _08109818
+ .align 2, 0
+_081097C4: .4byte gBattleMons
+_081097C8: .4byte gUnknown_02024C07
+_081097CC: .4byte gUnknown_02024C08
+_081097D0:
+ ldr r3, _0810980C
+ ldr r0, _08109810
+ ldrb r0, [r0]
+ movs r2, 0x58
+ adds r1, r0, 0
+ muls r1, r2
+ adds r1, r3
+ adds r1, 0x2A
+ ldr r0, _08109814
+ ldrb r0, [r0]
+ muls r0, r2
+ adds r0, r3
+ adds r0, 0x2A
+ ldrb r1, [r1]
+ ldrb r0, [r0]
+ cmp r1, r0
+ bne _08109818
+_081097F2:
+ ldrb r1, [r4, 0x2]
+ ldrb r0, [r4, 0x3]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r4, 0x4]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r4, 0x5]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r5]
+ b _0810981C
+ .align 2, 0
+_0810980C: .4byte gBattleMons
+_08109810: .4byte gUnknown_02024C07
+_08109814: .4byte gUnknown_02024C08
+_08109818:
+ adds r0, r4, 0x6
+ str r0, [r5]
+_0810981C:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end dp15_compare_attacker_defender_levels
+
+ thumb_func_start sub_8109824
+sub_8109824: @ 8109824
+ push {lr}
+ ldr r2, _08109858
+ ldr r0, _0810985C
+ ldrb r1, [r0]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0, 0x13]
+ lsls r0, 28
+ cmp r0, 0
+ beq _08109864
+ ldr r3, _08109860
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _0810986C
+ .align 2, 0
+_08109858: .4byte gUnknown_02024CA8
+_0810985C: .4byte gUnknown_02024C08
+_08109860: .4byte gUnknown_02039238
+_08109864:
+ ldr r1, _08109870
+ ldr r0, [r1]
+ adds r0, 0x5
+ str r0, [r1]
+_0810986C:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08109870: .4byte gUnknown_02039238
+ thumb_func_end sub_8109824
+
+ thumb_func_start sub_8109874
+sub_8109874: @ 8109874
+ push {lr}
+ ldr r2, _081098A8
+ ldr r0, _081098AC
+ ldrb r1, [r0]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0, 0x13]
+ lsls r0, 28
+ cmp r0, 0
+ bne _081098B4
+ ldr r3, _081098B0
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _081098BC
+ .align 2, 0
+_081098A8: .4byte gUnknown_02024CA8
+_081098AC: .4byte gUnknown_02024C08
+_081098B0: .4byte gUnknown_02039238
+_081098B4:
+ ldr r1, _081098C0
+ ldr r0, [r1]
+ adds r0, 0x5
+ str r0, [r1]
+_081098BC:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081098C0: .4byte gUnknown_02039238
+ thumb_func_end sub_8109874
+
+ thumb_func_start sub_81098C4
+sub_81098C4: @ 81098C4
+ push {r4,lr}
+ ldr r4, _081098E0
+ adds r3, r4, 0
+ adds r3, 0x20
+ ldrb r1, [r3]
+ adds r2, r1, 0x1
+ strb r2, [r3]
+ lsls r1, 24
+ lsrs r1, 22
+ adds r1, r4
+ str r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081098E0: .4byte 0x02016c00
+ thumb_func_end sub_81098C4
+
+ thumb_func_start unref_sub_81098E4
+unref_sub_81098E4: @ 81098E4
+ ldr r3, _08109900
+ adds r2, r3, 0
+ adds r2, 0x20
+ ldrb r0, [r2]
+ adds r1, r0, 0x1
+ strb r1, [r2]
+ lsls r0, 24
+ lsrs r0, 22
+ adds r0, r3
+ ldr r1, _08109904
+ ldr r1, [r1]
+ str r1, [r0]
+ bx lr
+ .align 2, 0
+_08109900: .4byte 0x02016c00
+_08109904: .4byte gUnknown_02039238
+ thumb_func_end unref_sub_81098E4
+
+ thumb_func_start sub_8109908
+sub_8109908: @ 8109908
+ push {lr}
+ ldr r3, _0810991C
+ adds r2, r3, 0
+ adds r2, 0x20
+ ldrb r0, [r2]
+ cmp r0, 0
+ bne _08109920
+ movs r0, 0
+ b _08109932
+ .align 2, 0
+_0810991C: .4byte 0x02016c00
+_08109920:
+ subs r0, 0x1
+ strb r0, [r2]
+ ldr r1, _08109938
+ ldrb r0, [r2]
+ lsls r0, 2
+ adds r0, r3
+ ldr r0, [r0]
+ str r0, [r1]
+ movs r0, 0x1
+_08109932:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08109938: .4byte gUnknown_02039238
+ thumb_func_end sub_8109908
+
+ thumb_func_start sub_810993C
+sub_810993C: @ 810993C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x10
+ ldr r0, _081099C8
+ mov r9, r0
+ movs r2, 0
+_0810994E:
+ adds r1, r2, 0x1
+ lsls r0, r1, 24
+ lsrs r5, r0, 24
+ str r1, [sp, 0xC]
+ cmp r5, 0x3
+ bhi _081099AC
+ movs r1, 0x1
+ add r1, r9
+ mov r8, r1
+ adds r6, r1, r2
+ movs r0, 0xB
+ mov r10, r0
+ mov r0, r10
+ muls r0, r2
+ adds r0, 0x5
+ mov r1, r9
+ adds r7, r1, r0
+_08109970:
+ ldrb r0, [r6]
+ cmp r0, 0
+ bne _081099A2
+ adds r2, r0, 0
+ mov r0, r8
+ adds r1, r0, r5
+ ldrb r0, [r1]
+ strb r0, [r6]
+ strb r2, [r1]
+ mov r0, sp
+ adds r1, r7, 0
+ bl StringCopy
+ mov r4, r10
+ muls r4, r5
+ adds r4, 0x5
+ add r4, r9
+ adds r0, r7, 0
+ adds r1, r4, 0
+ bl StringCopy
+ adds r0, r4, 0
+ mov r1, sp
+ bl StringCopy
+_081099A2:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x3
+ bls _08109970
+_081099AC:
+ ldr r1, [sp, 0xC]
+ lsls r0, r1, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x2
+ bls _0810994E
+ add sp, 0x10
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081099C8: .4byte gSaveBlock1 + 0x2D94
+ thumb_func_end sub_810993C
+
+ thumb_func_start sub_81099CC
+sub_81099CC: @ 81099CC
+ push {r4-r6,lr}
+ ldr r5, _08109A14
+ movs r1, 0
+ movs r0, 0x2
+ strb r0, [r5]
+ adds r0, r5, 0
+ adds r0, 0x31
+ strb r1, [r0]
+ movs r4, 0
+ ldr r6, _08109A18
+_081099E0:
+ movs r0, 0xB
+ muls r0, r4
+ adds r0, 0x5
+ adds r0, r5, r0
+ lsls r1, r4, 2
+ adds r1, r6
+ ldr r1, [r1]
+ bl StringCopy
+ adds r1, r5, 0x1
+ adds r1, r4
+ ldr r0, _08109A1C
+ adds r0, r4, r0
+ ldrb r0, [r0]
+ strb r0, [r1]
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x3
+ bls _081099E0
+ bl sub_810993C
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08109A14: .4byte gSaveBlock1 + 0x2D94
+_08109A18: .4byte gUnknown_083F62D8
+_08109A1C: .4byte gTraderDecorations
+ thumb_func_end sub_81099CC
+
+ thumb_func_start sub_8109A20
+sub_8109A20: @ 8109A20
+ ldr r0, _08109A2C
+ adds r0, 0x31
+ movs r1, 0
+ strb r1, [r0]
+ bx lr
+ .align 2, 0
+_08109A2C: .4byte gSaveBlock1 + 0x2D94
+ thumb_func_end sub_8109A20
+
+ thumb_func_start sub_8109A30
+sub_8109A30: @ 8109A30
+ push {lr}
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r0, _08109A44
+ bl VarSet
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08109A44: .4byte 0x00004020
+ thumb_func_end sub_8109A30
+
+ thumb_func_start sub_8109A48
+sub_8109A48: @ 8109A48
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x8
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ movs r6, 0x1
+ movs r5, 0
+ ldr r0, _08109AB8
+ movs r4, 0
+ adds r7, r0, 0x1
+ adds r1, r7, 0
+_08109A64:
+ adds r0, r1, r4
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08109A72
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+_08109A72:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x3
+ bls _08109A64
+ lsls r3, r6, 25
+ movs r0, 0x80
+ lsls r0, 18
+ adds r3, r0
+ lsrs r3, 24
+ movs r0, 0
+ movs r1, 0x1
+ movs r2, 0xC
+ bl MenuDrawTextWindow
+ movs r4, 0
+ mov r1, r9
+ lsls r1, 2
+ mov r8, r1
+_08109A98:
+ adds r1, r7, r4
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _08109ADE
+ cmp r0, 0x78
+ bls _08109AC0
+ lsls r2, r5, 25
+ movs r0, 0x80
+ lsls r0, 18
+ adds r2, r0
+ lsrs r2, 24
+ ldr r0, _08109ABC
+ movs r1, 0x1
+ bl MenuPrint
+ b _08109AD8
+ .align 2, 0
+_08109AB8: .4byte gSaveBlock1 + 0x2D94
+_08109ABC: .4byte gOtherText_FiveQuestionsAndSlash
+_08109AC0:
+ ldrb r0, [r1]
+ lsls r0, 5
+ ldr r1, _08109B28
+ adds r0, r1
+ lsls r2, r5, 25
+ movs r1, 0x80
+ lsls r1, 18
+ adds r2, r1
+ lsrs r2, 24
+ movs r1, 0x1
+ bl MenuPrint
+_08109AD8:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+_08109ADE:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x3
+ bls _08109A98
+ ldr r0, _08109B2C
+ lsls r2, r5, 25
+ movs r1, 0x80
+ lsls r1, 18
+ adds r2, r1
+ lsrs r2, 24
+ movs r1, 0x1
+ bl MenuPrint
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0xB
+ str r0, [sp, 0x4]
+ movs r0, 0
+ movs r1, 0x1
+ movs r2, 0x2
+ adds r3, r6, 0
+ bl InitMenu
+ ldr r1, _08109B30
+ mov r0, r8
+ add r0, r9
+ lsls r0, 3
+ adds r0, r1
+ strh r5, [r0, 0xA]
+ add sp, 0x8
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08109B28: .4byte gDecorations + 0x1
+_08109B2C: .4byte gOtherText_CancelNoTerminator
+_08109B30: .4byte gTasks
+ thumb_func_end sub_8109A48
+
+ thumb_func_start sub_8109B34
+sub_8109B34: @ 8109B34
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ cmp r1, 0x78
+ bls _08109B54
+ ldr r1, _08109B4C
+ ldr r2, _08109B50
+ adds r0, r2, 0
+ strh r0, [r1]
+ b _08109B58
+ .align 2, 0
+_08109B4C: .4byte gUnknown_0202E8CC
+_08109B50: .4byte 0x0000ffff
+_08109B54:
+ ldr r0, _08109B78
+ strh r1, [r0]
+_08109B58:
+ bl sub_8072DEC
+ movs r0, 0
+ movs r1, 0x1
+ movs r2, 0xC
+ movs r3, 0xC
+ bl MenuZeroFillWindowRect
+ adds r0, r4, 0
+ bl DestroyTask
+ bl EnableBothScriptContexts
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08109B78: .4byte gUnknown_0202E8CC
+ thumb_func_end sub_8109B34
+
+ thumb_func_start sub_8109B7C
+sub_8109B7C: @ 8109B7C
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r5, r4, 0
+ ldr r6, _08109BA4
+ ldr r0, _08109BA8
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _08109BAC
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+ negs r0, r0
+ bl MoveMenuCursor
+ b _08109C3E
+ .align 2, 0
+_08109BA4: .4byte gSaveBlock1 + 0x2D94
+_08109BA8: .4byte gMain
+_08109BAC:
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _08109BC2
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+ bl MoveMenuCursor
+ b _08109C3E
+_08109BC2:
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08109C28
+ movs r0, 0x5
+ bl PlaySE
+ ldr r5, _08109BFC
+ bl GetMenuCursorPos
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5]
+ ldr r1, _08109C00
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0xA
+ ldrsh r0, [r0, r1]
+ ldrh r2, [r5]
+ cmp r0, r2
+ bne _08109C04
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_8109B34
+ b _08109C3E
+ .align 2, 0
+_08109BFC: .4byte gUnknown_0202E8CE
+_08109C00: .4byte gTasks
+_08109C04:
+ ldr r0, _08109C24
+ movs r1, 0xB
+ muls r1, r2
+ adds r1, 0x5
+ adds r1, r6
+ bl StringCopy
+ adds r0, r6, 0x1
+ ldrh r5, [r5]
+ adds r0, r5
+ ldrb r1, [r0]
+ adds r0, r4, 0
+ bl sub_8109B34
+ b _08109C3E
+ .align 2, 0
+_08109C24: .4byte gStringVar1
+_08109C28:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _08109C3E
+ movs r0, 0x5
+ bl PlaySE
+ adds r0, r5, 0
+ movs r1, 0
+ bl sub_8109B34
+_08109C3E:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8109B7C
+
+ thumb_func_start sub_8109C44
+sub_8109C44: @ 8109C44
+ ldr r0, _08109C50
+ ldr r1, _08109C54
+ adds r0, 0x31
+ ldrb r0, [r0]
+ strh r0, [r1]
+ bx lr
+ .align 2, 0
+_08109C50: .4byte gSaveBlock1 + 0x2D94
+_08109C54: .4byte gScriptResult
+ thumb_func_end sub_8109C44
+
+ thumb_func_start sub_8109C58
+sub_8109C58: @ 8109C58
+ push {r4,r5,lr}
+ movs r4, 0
+ ldr r5, _08109C70
+_08109C5E:
+ adds r0, r4, 0
+ bl sub_8134194
+ lsls r0, 24
+ cmp r0, 0
+ beq _08109C74
+ movs r0, 0
+ strh r0, [r5]
+ b _08109C84
+ .align 2, 0
+_08109C70: .4byte gScriptResult
+_08109C74:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x7
+ bls _08109C5E
+ ldr r1, _08109C8C
+ movs r0, 0x1
+ strh r0, [r1]
+_08109C84:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08109C8C: .4byte gScriptResult
+ thumb_func_end sub_8109C58
+
+ thumb_func_start sub_8109C90
+sub_8109C90: @ 8109C90
+ push {r4-r6,lr}
+ ldr r6, _08109CDC
+ movs r0, 0
+ strh r0, [r6]
+ ldr r4, _08109CE0
+ ldr r5, _08109CE4
+ ldrh r0, [r5]
+ lsls r0, 5
+ adds r2, r0, r4
+ ldr r0, _08109CE8
+ ldrh r0, [r0]
+ lsls r0, 5
+ adds r0, r4
+ ldrb r1, [r2, 0x13]
+ ldrb r0, [r0, 0x13]
+ cmp r1, r0
+ beq _08109CD6
+ adds r0, r1, 0
+ bl sub_8133F9C
+ lsls r0, 24
+ asrs r0, 24
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ bne _08109CD6
+ ldr r0, _08109CEC
+ ldrh r1, [r5]
+ lsls r1, 5
+ adds r1, r4
+ ldrb r1, [r1, 0x13]
+ bl sub_80FE7D4
+ movs r0, 0x1
+ strh r0, [r6]
+_08109CD6:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08109CDC: .4byte gScriptResult
+_08109CE0: .4byte gDecorations
+_08109CE4: .4byte gUnknown_0202E8CC
+_08109CE8: .4byte gUnknown_0202E8D0
+_08109CEC: .4byte gStringVar2
+ thumb_func_end sub_8109C90
+
+ thumb_func_start sub_8109CF0
+sub_8109CF0: @ 8109CF0
+ push {lr}
+ ldr r0, _08109D00
+ movs r1, 0
+ bl CreateTask
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08109D00: .4byte sub_80FE7A8
+ thumb_func_end sub_8109CF0
+
+ thumb_func_start sub_8109D04
+sub_8109D04: @ 8109D04
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ bl sub_8072DEC
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ movs r0, 0
+ bl SetBgTilemapBuffer
+ movs r0, 0x1
+ bl SetBgTilemapBuffer
+ ldr r0, _08109D6C
+ movs r1, 0x8
+ bl sub_80F9520
+ bl BuyMenuFreeMemory
+ bl sub_80FEFA4
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08109D8C
+ ldr r5, _08109D70
+ ldr r0, _08109D74
+ ldrb r1, [r0]
+ ldr r0, _08109D78
+ ldr r0, [r0]
+ adds r0, r1
+ ldrb r0, [r0]
+ strh r0, [r5]
+ ldr r0, _08109D7C
+ ldr r1, _08109D80
+ ldrh r1, [r1]
+ lsls r1, 5
+ ldr r4, _08109D84
+ adds r1, r4
+ bl StringCopy
+ ldr r0, _08109D88
+ ldrh r1, [r5]
+ lsls r1, 5
+ adds r1, r4
+ bl StringCopy
+ b _08109D94
+ .align 2, 0
+_08109D6C: .4byte gUnknown_020388F7
+_08109D70: .4byte gUnknown_0202E8D0
+_08109D74: .4byte gUnknown_020388F5
+_08109D78: .4byte gUnknown_020388D0
+_08109D7C: .4byte gStringVar3
+_08109D80: .4byte gUnknown_0202E8CC
+_08109D84: .4byte gDecorations + 0x1
+_08109D88: .4byte gStringVar2
+_08109D8C:
+ ldr r1, _08109DA4
+ ldr r2, _08109DA8
+ adds r0, r2, 0
+ strh r0, [r1]
+_08109D94:
+ adds r0, r6, 0
+ bl DestroyTask
+ bl EnableBothScriptContexts
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08109DA4: .4byte gUnknown_0202E8D0
+_08109DA8: .4byte 0x0000ffff
+ thumb_func_end sub_8109D04
+
+ thumb_func_start sub_8109DAC
+sub_8109DAC: @ 8109DAC
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl sub_8072DEC
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ ldr r1, _08109DDC
+ movs r0, 0
+ strh r0, [r1]
+ adds r0, r4, 0
+ bl DestroyTask
+ bl EnableBothScriptContexts
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08109DDC: .4byte gUnknown_0202E8D0
+ thumb_func_end sub_8109DAC
+
+ thumb_func_start sub_8109DE0
+sub_8109DE0: @ 8109DE0
+ push {r4-r6,lr}
+ ldr r4, _08109E20
+ ldr r6, _08109E24
+ ldrb r0, [r6]
+ bl sub_81340A8
+ ldr r0, _08109E28
+ ldrb r0, [r0]
+ bl IsThereStorageSpaceForDecoration
+ ldr r5, _08109E2C
+ ldrh r1, [r5]
+ movs r0, 0xB
+ muls r0, r1
+ adds r0, 0x5
+ adds r0, r4
+ ldr r1, _08109E30
+ bl StringCopy
+ adds r0, r4, 0x1
+ ldrh r5, [r5]
+ adds r0, r5
+ ldrh r1, [r6]
+ strb r1, [r0]
+ bl sub_810993C
+ adds r4, 0x31
+ movs r0, 0x1
+ strb r0, [r4]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08109E20: .4byte gSaveBlock1 + 0x2D94
+_08109E24: .4byte gUnknown_0202E8D0
+_08109E28: .4byte gUnknown_0202E8CC
+_08109E2C: .4byte gUnknown_0202E8CE
+_08109E30: .4byte gSaveBlock2
+ thumb_func_end sub_8109DE0
+
+ thumb_func_start sub_8109E34
+sub_8109E34: @ 8109E34
+ push {lr}
+ ldr r0, _08109E4C
+ movs r1, 0
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8109A48
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08109E4C: .4byte sub_8109B7C
+ thumb_func_end sub_8109E34
+
+ .align 2, 0 @ Don't pad with nop.