summaryrefslogtreecommitdiff
path: root/asm
diff options
context:
space:
mode:
Diffstat (limited to 'asm')
-rw-r--r--asm/berry.s1089
-rw-r--r--asm/rom5_part2.s176766
-rw-r--r--asm/rom_80B5054.s175695
3 files changed, 176784 insertions, 176766 deletions
diff --git a/asm/berry.s b/asm/berry.s
new file mode 100644
index 000000000..e7d9d241a
--- /dev/null
+++ b/asm/berry.s
@@ -0,0 +1,1089 @@
+ .include "constants/gba_constants.s"
+ .include "constants/species_constants.s"
+ .include "asm/macros.s"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start unref_sub_80B4884
+unref_sub_80B4884: @ 80B4884
+ push {lr}
+ sub sp, 0x4
+ mov r1, sp
+ movs r0, 0
+ strh r0, [r1]
+ ldr r1, _080B48A0
+ ldr r2, _080B48A4
+ mov r0, sp
+ bl CpuSet
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B48A0: .4byte gSaveBlock1 + 0x3160
+_080B48A4: .4byte 0x01000298
+ thumb_func_end unref_sub_80B4884
+
+ thumb_func_start sub_80B48A8
+sub_80B48A8: @ 80B48A8
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ ldr r3, _080B48E0
+ movs r2, 0
+ ldr r6, _080B48E4
+ ldr r0, _080B48E8
+ adds r4, r3, r0
+_080B48B6:
+ adds r0, r3, r2
+ adds r1, r5, r2
+ ldrb r1, [r1]
+ strb r1, [r0]
+ adds r2, 0x1
+ cmp r2, r6
+ bls _080B48B6
+ ldr r2, _080B48EC
+ adds r1, r4, r2
+ ldr r2, _080B48F0
+ adds r0, r4, r2
+ str r0, [r1]
+ ldr r0, _080B48F4
+ adds r1, r4, r0
+ adds r2, 0x2D
+ adds r0, r4, r2
+ str r0, [r1]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B48E0: .4byte gSaveBlock1 + 0x3160
+_080B48E4: .4byte 0x0000052f
+_080B48E8: .4byte 0xffffcea0
+_080B48EC: .4byte 0x0000316c
+_080B48F0: .4byte 0x0000361c
+_080B48F4: .4byte 0x00003170
+ thumb_func_end sub_80B48A8
+
+ thumb_func_start sub_80B48F8
+sub_80B48F8: @ 80B48F8
+ push {r4-r7,lr}
+ ldr r3, _080B4934
+ ldr r1, _080B4938
+ adds r4, r3, r1
+ ldr r6, [r4]
+ adds r1, 0x4
+ adds r2, r3, r1
+ ldr r7, [r2]
+ movs r1, 0
+ str r1, [r4]
+ str r1, [r2]
+ adds r4, r0, 0
+ movs r2, 0
+ ldr r5, _080B493C
+_080B4914:
+ adds r0, r4, r1
+ ldrb r0, [r0]
+ adds r2, r0
+ adds r1, 0x1
+ cmp r1, r5
+ bls _080B4914
+ ldr r1, _080B4938
+ adds r0, r3, r1
+ str r6, [r0]
+ adds r1, 0x4
+ adds r0, r3, r1
+ str r7, [r0]
+ adds r0, r2, 0
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080B4934: .4byte gSaveBlock1
+_080B4938: .4byte 0x0000316c
+_080B493C: .4byte 0x0000052b
+ thumb_func_end sub_80B48F8
+
+ thumb_func_start sub_80B4940
+sub_80B4940: @ 80B4940
+ push {r4,lr}
+ ldr r4, _080B4970
+ ldr r1, _080B4974
+ adds r0, r4, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080B4984
+ ldr r2, _080B4978
+ adds r0, r4, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080B4984
+ ldr r1, _080B497C
+ adds r0, r4, r1
+ bl sub_80B48F8
+ ldr r2, _080B4980
+ adds r1, r4, r2
+ ldr r1, [r1]
+ cmp r0, r1
+ bne _080B4984
+ movs r0, 0x1
+ b _080B4986
+ .align 2, 0
+_080B4970: .4byte gSaveBlock1
+_080B4974: .4byte 0x00003174
+_080B4978: .4byte 0x0000316a
+_080B497C: .4byte 0x00003160
+_080B4980: .4byte 0x0000368c
+_080B4984:
+ movs r0, 0
+_080B4986:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80B4940
+
+ thumb_func_start GetBerryInfo
+GetBerryInfo: @ 80B498C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x2B
+ bne _080B49A8
+ bl sub_80B4940
+ cmp r0, 0
+ beq _080B49A8
+ ldr r0, _080B49A4
+ b _080B49BE
+ .align 2, 0
+_080B49A4: .4byte gSaveBlock1 + 0x3160
+_080B49A8:
+ subs r0, r4, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x2A
+ bls _080B49B4
+ movs r4, 0x1
+_080B49B4:
+ lsls r0, r4, 3
+ subs r0, r4
+ lsls r0, 2
+ ldr r1, _080B49C4
+ adds r0, r1
+_080B49BE:
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080B49C4: .4byte gBerries - 0x1C
+ thumb_func_end GetBerryInfo
+
+ thumb_func_start GetBerryTreeInfo
+GetBerryTreeInfo: @ 80B49C8
+ lsls r0, 24
+ lsrs r0, 21
+ ldr r1, _080B49D4
+ adds r0, r1
+ bx lr
+ .align 2, 0
+_080B49D4: .4byte gSaveBlock1 + 0x1608
+ thumb_func_end GetBerryTreeInfo
+
+ thumb_func_start FieldObjectInteractionWaterBerryTree
+FieldObjectInteractionWaterBerryTree: @ 80B49D8
+ push {lr}
+ ldr r0, _080B4A00
+ ldrb r0, [r0]
+ bl FieldObjectGetBerryTreeId
+ lsls r0, 24
+ lsrs r0, 24
+ bl GetBerryTreeInfo
+ adds r2, r0, 0
+ ldrb r0, [r2, 0x1]
+ lsls r0, 25
+ lsrs r0, 25
+ cmp r0, 0x2
+ beq _080B4A14
+ cmp r0, 0x2
+ bgt _080B4A04
+ cmp r0, 0x1
+ beq _080B4A0E
+ b _080B4A2A
+ .align 2, 0
+_080B4A00: .4byte gSelectedMapObject
+_080B4A04:
+ cmp r0, 0x3
+ beq _080B4A1A
+ cmp r0, 0x4
+ beq _080B4A20
+ b _080B4A2A
+_080B4A0E:
+ ldrb r0, [r2, 0x5]
+ movs r1, 0x10
+ b _080B4A24
+_080B4A14:
+ ldrb r0, [r2, 0x5]
+ movs r1, 0x20
+ b _080B4A24
+_080B4A1A:
+ ldrb r0, [r2, 0x5]
+ movs r1, 0x40
+ b _080B4A24
+_080B4A20:
+ ldrb r0, [r2, 0x5]
+ movs r1, 0x80
+_080B4A24:
+ orrs r0, r1
+ strb r0, [r2, 0x5]
+ b _080B4A2E
+_080B4A2A:
+ movs r0, 0
+ b _080B4A30
+_080B4A2E:
+ movs r0, 0x1
+_080B4A30:
+ pop {r1}
+ bx r1
+ thumb_func_end FieldObjectInteractionWaterBerryTree
+
+ thumb_func_start IsPlayerFacingPlantedBerryTree
+IsPlayerFacingPlantedBerryTree: @ 80B4A34
+ push {lr}
+ bl GetFieldObjectScriptPointerForComparison
+ ldr r1, _080B4A5C
+ cmp r0, r1
+ bne _080B4A64
+ ldr r0, _080B4A60
+ ldrb r0, [r0]
+ bl FieldObjectGetBerryTreeId
+ lsls r0, 24
+ lsrs r0, 24
+ bl GetStageByBerryTreeId
+ lsls r0, 24
+ cmp r0, 0
+ bne _080B4A64
+ movs r0, 0x1
+ b _080B4A66
+ .align 2, 0
+_080B4A5C: .4byte BerryTreeScript
+_080B4A60: .4byte gSelectedMapObject
+_080B4A64:
+ movs r0, 0
+_080B4A66:
+ pop {r1}
+ bx r1
+ thumb_func_end IsPlayerFacingPlantedBerryTree
+
+ thumb_func_start WaterBerryTree
+WaterBerryTree: @ 80B4A6C
+ push {lr}
+ bl GetFieldObjectScriptPointerForComparison
+ ldr r1, _080B4A84
+ cmp r0, r1
+ bne _080B4A88
+ bl FieldObjectInteractionWaterBerryTree
+ lsls r0, 24
+ lsrs r0, 24
+ b _080B4A8A
+ .align 2, 0
+_080B4A84: .4byte BerryTreeScript
+_080B4A88:
+ movs r0, 0
+_080B4A8A:
+ pop {r1}
+ bx r1
+ thumb_func_end WaterBerryTree
+
+ thumb_func_start sub_80B4A90
+sub_80B4A90: @ 80B4A90
+ push {r4,lr}
+ ldr r1, _080B4AB4
+ ldr r0, _080B4AB8
+ ldr r3, [r0]
+ ldr r4, [r0, 0x4]
+ movs r2, 0x7F
+ movs r0, 0xD0
+ lsls r0, 5
+ adds r1, r0
+_080B4AA2:
+ str r3, [r1]
+ str r4, [r1, 0x4]
+ subs r1, 0x8
+ subs r2, 0x1
+ cmp r2, 0
+ bge _080B4AA2
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B4AB4: .4byte gSaveBlock1
+_080B4AB8: .4byte gUnknown_083CD780
+ thumb_func_end sub_80B4A90
+
+ thumb_func_start BerryTreeGrow
+BerryTreeGrow: @ 80B4ABC
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrb r1, [r4, 0x1]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _080B4ACE
+_080B4ACA:
+ movs r0, 0
+ b _080B4B5A
+_080B4ACE:
+ lsls r0, r1, 25
+ lsrs r0, 25
+ cmp r0, 0x5
+ bhi _080B4B58
+ lsls r0, 2
+ ldr r1, _080B4AE0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080B4AE0: .4byte _080B4AE4
+ .align 2, 0
+_080B4AE4:
+ .4byte _080B4ACA
+ .4byte _080B4B04
+ .4byte _080B4B04
+ .4byte _080B4B04
+ .4byte _080B4AFC
+ .4byte _080B4B1C
+_080B4AFC:
+ adds r0, r4, 0
+ bl CalcBerryYield
+ strb r0, [r4, 0x4]
+_080B4B04:
+ ldrb r2, [r4, 0x1]
+ lsls r1, r2, 25
+ lsrs r1, 25
+ adds r1, 0x1
+ movs r0, 0x7F
+ ands r1, r0
+ movs r0, 0x80
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r4, 0x1]
+ b _080B4B58
+_080B4B1C:
+ ldrb r0, [r4, 0x5]
+ movs r1, 0x11
+ negs r1, r1
+ ands r1, r0
+ movs r0, 0x21
+ negs r0, r0
+ ands r1, r0
+ subs r0, 0x20
+ ands r1, r0
+ movs r0, 0x7F
+ ands r1, r0
+ movs r0, 0
+ strb r0, [r4, 0x4]
+ ldrb r2, [r4, 0x1]
+ subs r0, 0x80
+ ands r0, r2
+ movs r2, 0x2
+ orrs r0, r2
+ strb r0, [r4, 0x1]
+ adds r1, 0x1
+ movs r0, 0xF
+ ands r1, r0
+ strb r1, [r4, 0x5]
+ cmp r1, 0xA
+ bne _080B4B58
+ ldr r0, _080B4B60
+ ldr r1, [r0, 0x4]
+ ldr r0, [r0]
+ str r0, [r4]
+ str r1, [r4, 0x4]
+_080B4B58:
+ movs r0, 0x1
+_080B4B5A:
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080B4B60: .4byte gUnknown_083CD780
+ thumb_func_end BerryTreeGrow
+
+ thumb_func_start BerryTreeTimeUpdate
+BerryTreeTimeUpdate: @ 80B4B64
+ push {r4-r7,lr}
+ adds r6, r0, 0
+ movs r2, 0
+_080B4B6A:
+ lsls r0, r2, 3
+ ldr r1, _080B4BAC
+ adds r4, r0, r1
+ ldrb r0, [r4]
+ adds r7, r2, 0x1
+ cmp r0, 0
+ beq _080B4BF8
+ ldrb r1, [r4, 0x1]
+ movs r0, 0x7F
+ ands r0, r1
+ cmp r0, 0
+ beq _080B4BF8
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080B4BF8
+ ldrb r0, [r4]
+ bl GetStageDurationByBerryType
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r1, r0, 3
+ adds r1, r0
+ lsls r1, 3
+ subs r1, r0
+ cmp r6, r1
+ blt _080B4BB4
+ ldr r0, _080B4BB0
+ ldr r1, [r0, 0x4]
+ ldr r0, [r0]
+ str r0, [r4]
+ str r1, [r4, 0x4]
+ b _080B4BF8
+ .align 2, 0
+_080B4BAC: .4byte gSaveBlock1 + 0x1608
+_080B4BB0: .4byte gUnknown_083CD780
+_080B4BB4:
+ adds r5, r6, 0
+ cmp r5, 0
+ beq _080B4BF8
+ ldrh r1, [r4, 0x2]
+ cmp r1, r5
+ ble _080B4BC4
+ subs r0, r1, r5
+ b _080B4BF6
+_080B4BC4:
+ subs r5, r1
+ ldrb r0, [r4]
+ bl GetStageDurationByBerryType
+ strh r0, [r4, 0x2]
+ adds r0, r4, 0
+ bl BerryTreeGrow
+ cmp r0, 0
+ beq _080B4BF8
+ ldrb r1, [r4, 0x1]
+ movs r0, 0x7F
+ ands r0, r1
+ cmp r0, 0x5
+ bne _080B4BE8
+ ldrh r0, [r4, 0x2]
+ lsls r0, 2
+ strh r0, [r4, 0x2]
+_080B4BE8:
+ cmp r5, 0
+ beq _080B4BF8
+ ldrh r0, [r4, 0x2]
+ adds r1, r0, 0
+ cmp r0, r5
+ ble _080B4BC4
+ subs r0, r5
+_080B4BF6:
+ strh r0, [r4, 0x2]
+_080B4BF8:
+ adds r2, r7, 0
+ cmp r2, 0x7F
+ ble _080B4B6A
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end BerryTreeTimeUpdate
+
+ thumb_func_start PlantBerryTree
+PlantBerryTree: @ 80B4C04
+ push {r4-r7,lr}
+ adds r4, r1, 0
+ adds r5, r2, 0
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r3, 24
+ lsrs r7, r3, 24
+ bl GetBerryTreeInfo
+ adds r6, r0, 0
+ ldr r0, _080B4C68
+ ldr r1, [r0, 0x4]
+ ldr r0, [r0]
+ str r0, [r6]
+ str r1, [r6, 0x4]
+ strb r4, [r6]
+ adds r0, r4, 0
+ bl GetStageDurationByBerryType
+ strh r0, [r6, 0x2]
+ movs r1, 0x7F
+ ands r1, r5
+ ldrb r2, [r6, 0x1]
+ movs r0, 0x80
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r6, 0x1]
+ cmp r5, 0x5
+ bne _080B4C56
+ adds r0, r6, 0
+ bl CalcBerryYield
+ strb r0, [r6, 0x4]
+ ldrh r0, [r6, 0x2]
+ lsls r0, 2
+ strh r0, [r6, 0x2]
+_080B4C56:
+ cmp r7, 0
+ bne _080B4C62
+ ldrb r0, [r6, 0x1]
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r6, 0x1]
+_080B4C62:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B4C68: .4byte gUnknown_083CD780
+ thumb_func_end PlantBerryTree
+
+ thumb_func_start RemoveBerryTree
+RemoveBerryTree: @ 80B4C6C
+ lsls r0, 24
+ ldr r1, _080B4C84
+ lsrs r0, 21
+ ldr r2, _080B4C88
+ adds r1, r2
+ adds r0, r1
+ ldr r1, _080B4C8C
+ ldr r2, [r1, 0x4]
+ ldr r1, [r1]
+ str r1, [r0]
+ str r2, [r0, 0x4]
+ bx lr
+ .align 2, 0
+_080B4C84: .4byte gSaveBlock1
+_080B4C88: .4byte 0x00001608
+_080B4C8C: .4byte gUnknown_083CD780
+ thumb_func_end RemoveBerryTree
+
+ thumb_func_start GetBerryTypeByBerryTreeId
+GetBerryTypeByBerryTreeId: @ 80B4C90
+ lsls r0, 24
+ ldr r1, _080B4CA0
+ lsrs r0, 21
+ adds r0, r1
+ ldr r1, _080B4CA4
+ adds r0, r1
+ ldrb r0, [r0]
+ bx lr
+ .align 2, 0
+_080B4CA0: .4byte gSaveBlock1
+_080B4CA4: .4byte 0x00001608
+ thumb_func_end GetBerryTypeByBerryTreeId
+
+ thumb_func_start GetStageByBerryTreeId
+GetStageByBerryTreeId: @ 80B4CA8
+ lsls r0, 24
+ ldr r1, _080B4CBC
+ lsrs r0, 21
+ adds r0, r1
+ ldr r1, _080B4CC0
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 25
+ lsrs r0, 25
+ bx lr
+ .align 2, 0
+_080B4CBC: .4byte gSaveBlock1
+_080B4CC0: .4byte 0x00001609
+ thumb_func_end GetStageByBerryTreeId
+
+ thumb_func_start ItemIdToBerryType
+ItemIdToBerryType: @ 80B4CC4
+ push {lr}
+ lsls r0, 16
+ lsrs r1, r0, 16
+ ldr r2, _080B4CE0
+ adds r0, r2
+ lsrs r0, 16
+ cmp r0, 0x2A
+ bhi _080B4CE4
+ adds r0, r1, 0
+ adds r0, 0x7C
+ lsls r0, 24
+ lsrs r0, 24
+ b _080B4CE6
+ .align 2, 0
+_080B4CE0: .4byte 0xff7b0000
+_080B4CE4:
+ movs r0, 0x1
+_080B4CE6:
+ pop {r1}
+ bx r1
+ thumb_func_end ItemIdToBerryType
+
+ thumb_func_start BerryTypeToItemId
+BerryTypeToItemId: @ 80B4CEC
+ push {lr}
+ lsls r0, 16
+ lsrs r1, r0, 16
+ ldr r2, _080B4D08
+ adds r0, r2
+ lsrs r0, 16
+ cmp r0, 0x2A
+ bhi _080B4D0C
+ adds r0, r1, 0
+ adds r0, 0x84
+ lsls r0, 16
+ lsrs r0, 16
+ b _080B4D0E
+ .align 2, 0
+_080B4D08: .4byte 0xffff0000
+_080B4D0C:
+ movs r0, 0x85
+_080B4D0E:
+ pop {r1}
+ bx r1
+ thumb_func_end BerryTypeToItemId
+
+ thumb_func_start GetBerryNameByBerryType
+GetBerryNameByBerryType: @ 80B4D14
+ push {r4,lr}
+ adds r4, r1, 0
+ lsls r0, 24
+ lsrs r0, 24
+ bl GetBerryInfo
+ adds r1, r0, 0
+ adds r0, r4, 0
+ movs r2, 0x6
+ bl memcpy
+ movs r0, 0xFF
+ strb r0, [r4, 0x6]
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end GetBerryNameByBerryType
+
+ thumb_func_start ResetBerryTreeSparkleFlag
+ResetBerryTreeSparkleFlag: @ 80B4D34
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ bl GetBerryTreeInfo
+ ldrb r2, [r0, 0x1]
+ movs r1, 0x7F
+ ands r1, r2
+ strb r1, [r0, 0x1]
+ pop {r0}
+ bx r0
+ thumb_func_end ResetBerryTreeSparkleFlag
+
+ thumb_func_start BerryTreeGetNumStagesWatered
+BerryTreeGetNumStagesWatered: @ 80B4D4C
+ push {lr}
+ ldrb r2, [r0, 0x5]
+ movs r0, 0x10
+ ands r0, r2
+ lsls r0, 24
+ lsrs r0, 24
+ negs r0, r0
+ lsrs r1, r0, 31
+ movs r0, 0x20
+ ands r0, r2
+ cmp r0, 0
+ beq _080B4D66
+ adds r1, 0x1
+_080B4D66:
+ movs r0, 0x40
+ ands r0, r2
+ cmp r0, 0
+ beq _080B4D74
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+_080B4D74:
+ movs r0, 0x80
+ ands r0, r2
+ cmp r0, 0
+ beq _080B4D82
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+_080B4D82:
+ adds r0, r1, 0
+ pop {r1}
+ bx r1
+ thumb_func_end BerryTreeGetNumStagesWatered
+
+ thumb_func_start GetNumStagesWateredByBerryTreeId
+GetNumStagesWateredByBerryTreeId: @ 80B4D88
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ bl GetBerryTreeInfo
+ bl BerryTreeGetNumStagesWatered
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ thumb_func_end GetNumStagesWateredByBerryTreeId
+
+ thumb_func_start CalcBerryYieldInternal
+CalcBerryYieldInternal: @ 80B4DA0
+ push {r4-r6,lr}
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r1, 16
+ lsrs r6, r1, 16
+ lsls r2, 24
+ lsrs r2, 24
+ cmp r2, 0
+ bne _080B4DB6
+ lsls r0, r6, 24
+ b _080B4DEA
+_080B4DB6:
+ subs r1, r0, r6
+ subs r0, r2, 0x1
+ adds r5, r1, 0
+ muls r5, r0
+ adds r4, r1, 0
+ muls r4, r2
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ subs r4, r5
+ adds r4, 0x1
+ adds r1, r4, 0
+ bl __umodsi3
+ adds r5, r0
+ movs r0, 0x3
+ ands r0, r5
+ cmp r0, 0x1
+ bls _080B4DE4
+ lsrs r0, r5, 2
+ adds r0, 0x1
+ b _080B4DE6
+_080B4DE4:
+ lsrs r0, r5, 2
+_080B4DE6:
+ adds r0, r6
+ lsls r0, 24
+_080B4DEA:
+ lsrs r0, 24
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end CalcBerryYieldInternal
+
+ thumb_func_start CalcBerryYield
+CalcBerryYield: @ 80B4DF4
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ ldrb r0, [r4]
+ bl GetBerryInfo
+ ldrb r6, [r0, 0xB]
+ ldrb r5, [r0, 0xA]
+ adds r0, r4, 0
+ bl BerryTreeGetNumStagesWatered
+ adds r2, r0, 0
+ lsls r2, 24
+ lsrs r2, 24
+ adds r0, r5, 0
+ adds r1, r6, 0
+ bl CalcBerryYieldInternal
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end CalcBerryYield
+
+ thumb_func_start GetBerryCountByBerryTreeId
+GetBerryCountByBerryTreeId: @ 80B4E20
+ lsls r0, 24
+ ldr r1, _080B4E30
+ lsrs r0, 21
+ adds r0, r1
+ ldr r1, _080B4E34
+ adds r0, r1
+ ldrb r0, [r0]
+ bx lr
+ .align 2, 0
+_080B4E30: .4byte gSaveBlock1
+_080B4E34: .4byte 0x0000160c
+ thumb_func_end GetBerryCountByBerryTreeId
+
+ thumb_func_start GetStageDurationByBerryType
+GetStageDurationByBerryType: @ 80B4E38
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ bl GetBerryInfo
+ ldrb r1, [r0, 0x14]
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 18
+ lsrs r0, 16
+ pop {r1}
+ bx r1
+ thumb_func_end GetStageDurationByBerryType
+
+ thumb_func_start FieldObjectInteractionGetBerryTreeData
+FieldObjectInteractionGetBerryTreeData: @ 80B4E50
+ push {r4-r6,lr}
+ ldr r0, _080B4E8C
+ ldrb r0, [r0]
+ bl FieldObjectGetBerryTreeId
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r0, r5, 0
+ bl GetBerryTypeByBerryTreeId
+ lsls r0, 24
+ lsrs r6, r0, 24
+ adds r0, r5, 0
+ bl ResetBerryTreeSparkleFlag
+ ldr r0, _080B4E90
+ ldrb r0, [r0]
+ ldr r2, _080B4E94
+ ldrb r1, [r2, 0x5]
+ ldrb r2, [r2, 0x4]
+ bl sub_8060234
+ lsls r0, 24
+ cmp r0, 0
+ beq _080B4E9C
+ ldr r1, _080B4E98
+ movs r0, 0xFF
+ strh r0, [r1]
+ b _080B4EAA
+ .align 2, 0
+_080B4E8C: .4byte gSelectedMapObject
+_080B4E90: .4byte gUnknown_0202E8DE
+_080B4E94: .4byte gSaveBlock1
+_080B4E98: .4byte gUnknown_0202E8CC
+_080B4E9C:
+ ldr r4, _080B4ED4
+ adds r0, r5, 0
+ bl GetStageByBerryTreeId
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4]
+_080B4EAA:
+ ldr r4, _080B4ED8
+ adds r0, r5, 0
+ bl GetNumStagesWateredByBerryTreeId
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4]
+ ldr r4, _080B4EDC
+ adds r0, r5, 0
+ bl GetBerryCountByBerryTreeId
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4]
+ ldr r1, _080B4EE0
+ adds r0, r6, 0
+ bl GetBerryNameByBerryType
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B4ED4: .4byte gUnknown_0202E8CC
+_080B4ED8: .4byte gUnknown_0202E8CE
+_080B4EDC: .4byte gUnknown_0202E8D0
+_080B4EE0: .4byte gStringVar1
+ thumb_func_end FieldObjectInteractionGetBerryTreeData
+
+ thumb_func_start sub_80B4EE4
+sub_80B4EE4: @ 80B4EE4
+ push {lr}
+ ldr r0, _080B4EF0
+ bl SetMainCallback2
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B4EF0: .4byte sub_80A68CC
+ thumb_func_end sub_80B4EE4
+
+ thumb_func_start FieldObjectInteractionPlantBerryTree
+FieldObjectInteractionPlantBerryTree: @ 80B4EF4
+ push {r4,lr}
+ ldr r0, _080B4F24
+ ldrh r0, [r0]
+ bl ItemIdToBerryType
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _080B4F28
+ ldrb r0, [r0]
+ bl FieldObjectGetBerryTreeId
+ lsls r0, 24
+ lsrs r0, 24
+ adds r1, r4, 0
+ movs r2, 0x1
+ movs r3, 0x1
+ bl PlantBerryTree
+ bl FieldObjectInteractionGetBerryTreeData
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B4F24: .4byte word_203855E
+_080B4F28: .4byte gSelectedMapObject
+ thumb_func_end FieldObjectInteractionPlantBerryTree
+
+ thumb_func_start FieldObjectInteractionPickBerryTree
+FieldObjectInteractionPickBerryTree: @ 80B4F2C
+ push {r4-r6,lr}
+ ldr r0, _080B4F70
+ ldrb r0, [r0]
+ bl FieldObjectGetBerryTreeId
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ adds r0, r5, 0
+ bl GetBerryTypeByBerryTreeId
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r6, _080B4F74
+ bl BerryTypeToItemId
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ adds r0, r5, 0
+ bl GetBerryCountByBerryTreeId
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl sub_80A9424
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r6]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B4F70: .4byte gSelectedMapObject
+_080B4F74: .4byte gUnknown_0202E8CC
+ thumb_func_end FieldObjectInteractionPickBerryTree
+
+ thumb_func_start FieldObjectInteractionRemoveBerryTree
+FieldObjectInteractionRemoveBerryTree: @ 80B4F78
+ push {lr}
+ ldr r0, _080B4F9C
+ ldrb r0, [r0]
+ bl FieldObjectGetBerryTreeId
+ lsls r0, 24
+ lsrs r0, 24
+ bl RemoveBerryTree
+ ldr r0, _080B4FA0
+ ldrb r0, [r0]
+ ldr r2, _080B4FA4
+ ldrb r1, [r2, 0x5]
+ ldrb r2, [r2, 0x4]
+ bl sub_8060288
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B4F9C: .4byte gSelectedMapObject
+_080B4FA0: .4byte gUnknown_0202E8DE
+_080B4FA4: .4byte gSaveBlock1
+ thumb_func_end FieldObjectInteractionRemoveBerryTree
+
+ thumb_func_start PlayerHasBerries
+PlayerHasBerries: @ 80B4FA8
+ push {lr}
+ movs r0, 0x4
+ bl IsBagPocketNonEmpty
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ thumb_func_end PlayerHasBerries
+
+ thumb_func_start ResetBerryTreeSparkleFlags
+ResetBerryTreeSparkleFlags: @ 80B4FB8
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ mov r4, sp
+ adds r4, 0x2
+ mov r0, sp
+ adds r1, r4, 0
+ bl GetCameraCoords
+ mov r0, sp
+ ldrh r2, [r0]
+ ldrh r1, [r4]
+ adds r1, 0x3
+ adds r3, r2, 0
+ adds r3, 0xE
+ lsls r1, 16
+ movs r5, 0x80
+ lsls r5, 12
+ adds r0, r1, r5
+ lsrs r0, 16
+ mov r10, r0
+ mov r5, sp
+ lsls r2, 16
+ asrs r2, 16
+ mov r9, r2
+ ldr r4, _080B5050
+ lsls r3, 16
+ asrs r3, 16
+ mov r8, r3
+ asrs r7, r1, 16
+ movs r6, 0xF
+_080B4FFC:
+ ldrb r0, [r4]
+ lsls r0, 31
+ cmp r0, 0
+ beq _080B5038
+ ldrb r0, [r4, 0x6]
+ cmp r0, 0xC
+ bne _080B5038
+ ldrh r0, [r4, 0x10]
+ strh r0, [r5]
+ ldrh r0, [r4, 0x12]
+ mov r1, sp
+ strh r0, [r1, 0x2]
+ movs r2, 0
+ ldrsh r1, [r5, r2]
+ cmp r9, r1
+ bgt _080B5038
+ cmp r1, r8
+ bgt _080B5038
+ lsls r0, 16
+ asrs r1, r0, 16
+ cmp r7, r1
+ bgt _080B5038
+ mov r2, r10
+ lsls r0, r2, 16
+ asrs r0, 16
+ cmp r1, r0
+ bgt _080B5038
+ ldrb r0, [r4, 0x1D]
+ bl ResetBerryTreeSparkleFlag
+_080B5038:
+ adds r4, 0x24
+ subs r6, 0x1
+ cmp r6, 0
+ bge _080B4FFC
+ 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
+_080B5050: .4byte gMapObjects
+ thumb_func_end ResetBerryTreeSparkleFlags
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/rom5_part2.s b/asm/rom5_part2.s
index 5fc8859e9..9933f27b1 100644
--- a/asm/rom5_part2.s
+++ b/asm/rom5_part2.s
@@ -80066,176770 +80066,4 @@ _080B487E:
bx r1
thumb_func_end sub_80B4850
- thumb_func_start unref_sub_80B4884
-unref_sub_80B4884: @ 80B4884
- push {lr}
- sub sp, 0x4
- mov r1, sp
- movs r0, 0
- strh r0, [r1]
- ldr r1, _080B48A0
- ldr r2, _080B48A4
- mov r0, sp
- bl CpuSet
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_080B48A0: .4byte gSaveBlock1 + 0x3160
-_080B48A4: .4byte 0x01000298
- thumb_func_end unref_sub_80B4884
-
- thumb_func_start sub_80B48A8
-sub_80B48A8: @ 80B48A8
- push {r4-r6,lr}
- adds r5, r0, 0
- ldr r3, _080B48E0
- movs r2, 0
- ldr r6, _080B48E4
- ldr r0, _080B48E8
- adds r4, r3, r0
-_080B48B6:
- adds r0, r3, r2
- adds r1, r5, r2
- ldrb r1, [r1]
- strb r1, [r0]
- adds r2, 0x1
- cmp r2, r6
- bls _080B48B6
- ldr r2, _080B48EC
- adds r1, r4, r2
- ldr r2, _080B48F0
- adds r0, r4, r2
- str r0, [r1]
- ldr r0, _080B48F4
- adds r1, r4, r0
- adds r2, 0x2D
- adds r0, r4, r2
- str r0, [r1]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080B48E0: .4byte gSaveBlock1 + 0x3160
-_080B48E4: .4byte 0x0000052f
-_080B48E8: .4byte 0xffffcea0
-_080B48EC: .4byte 0x0000316c
-_080B48F0: .4byte 0x0000361c
-_080B48F4: .4byte 0x00003170
- thumb_func_end sub_80B48A8
-
- thumb_func_start sub_80B48F8
-sub_80B48F8: @ 80B48F8
- push {r4-r7,lr}
- ldr r3, _080B4934
- ldr r1, _080B4938
- adds r4, r3, r1
- ldr r6, [r4]
- adds r1, 0x4
- adds r2, r3, r1
- ldr r7, [r2]
- movs r1, 0
- str r1, [r4]
- str r1, [r2]
- adds r4, r0, 0
- movs r2, 0
- ldr r5, _080B493C
-_080B4914:
- adds r0, r4, r1
- ldrb r0, [r0]
- adds r2, r0
- adds r1, 0x1
- cmp r1, r5
- bls _080B4914
- ldr r1, _080B4938
- adds r0, r3, r1
- str r6, [r0]
- adds r1, 0x4
- adds r0, r3, r1
- str r7, [r0]
- adds r0, r2, 0
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_080B4934: .4byte gSaveBlock1
-_080B4938: .4byte 0x0000316c
-_080B493C: .4byte 0x0000052b
- thumb_func_end sub_80B48F8
-
- thumb_func_start sub_80B4940
-sub_80B4940: @ 80B4940
- push {r4,lr}
- ldr r4, _080B4970
- ldr r1, _080B4974
- adds r0, r4, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _080B4984
- ldr r2, _080B4978
- adds r0, r4, r2
- ldrb r0, [r0]
- cmp r0, 0
- beq _080B4984
- ldr r1, _080B497C
- adds r0, r4, r1
- bl sub_80B48F8
- ldr r2, _080B4980
- adds r1, r4, r2
- ldr r1, [r1]
- cmp r0, r1
- bne _080B4984
- movs r0, 0x1
- b _080B4986
- .align 2, 0
-_080B4970: .4byte gSaveBlock1
-_080B4974: .4byte 0x00003174
-_080B4978: .4byte 0x0000316a
-_080B497C: .4byte 0x00003160
-_080B4980: .4byte 0x0000368c
-_080B4984:
- movs r0, 0
-_080B4986:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80B4940
-
- thumb_func_start GetBerryInfo
-GetBerryInfo: @ 80B498C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x2B
- bne _080B49A8
- bl sub_80B4940
- cmp r0, 0
- beq _080B49A8
- ldr r0, _080B49A4
- b _080B49BE
- .align 2, 0
-_080B49A4: .4byte gSaveBlock1 + 0x3160
-_080B49A8:
- subs r0, r4, 0x1
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2A
- bls _080B49B4
- movs r4, 0x1
-_080B49B4:
- lsls r0, r4, 3
- subs r0, r4
- lsls r0, 2
- ldr r1, _080B49C4
- adds r0, r1
-_080B49BE:
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080B49C4: .4byte gBerries - 0x1C
- thumb_func_end GetBerryInfo
-
- thumb_func_start GetBerryTreeInfo
-GetBerryTreeInfo: @ 80B49C8
- lsls r0, 24
- lsrs r0, 21
- ldr r1, _080B49D4
- adds r0, r1
- bx lr
- .align 2, 0
-_080B49D4: .4byte gSaveBlock1 + 0x1608
- thumb_func_end GetBerryTreeInfo
-
- thumb_func_start FieldObjectInteractionWaterBerryTree
-FieldObjectInteractionWaterBerryTree: @ 80B49D8
- push {lr}
- ldr r0, _080B4A00
- ldrb r0, [r0]
- bl FieldObjectGetBerryTreeId
- lsls r0, 24
- lsrs r0, 24
- bl GetBerryTreeInfo
- adds r2, r0, 0
- ldrb r0, [r2, 0x1]
- lsls r0, 25
- lsrs r0, 25
- cmp r0, 0x2
- beq _080B4A14
- cmp r0, 0x2
- bgt _080B4A04
- cmp r0, 0x1
- beq _080B4A0E
- b _080B4A2A
- .align 2, 0
-_080B4A00: .4byte gSelectedMapObject
-_080B4A04:
- cmp r0, 0x3
- beq _080B4A1A
- cmp r0, 0x4
- beq _080B4A20
- b _080B4A2A
-_080B4A0E:
- ldrb r0, [r2, 0x5]
- movs r1, 0x10
- b _080B4A24
-_080B4A14:
- ldrb r0, [r2, 0x5]
- movs r1, 0x20
- b _080B4A24
-_080B4A1A:
- ldrb r0, [r2, 0x5]
- movs r1, 0x40
- b _080B4A24
-_080B4A20:
- ldrb r0, [r2, 0x5]
- movs r1, 0x80
-_080B4A24:
- orrs r0, r1
- strb r0, [r2, 0x5]
- b _080B4A2E
-_080B4A2A:
- movs r0, 0
- b _080B4A30
-_080B4A2E:
- movs r0, 0x1
-_080B4A30:
- pop {r1}
- bx r1
- thumb_func_end FieldObjectInteractionWaterBerryTree
-
- thumb_func_start IsPlayerFacingPlantedBerryTree
-IsPlayerFacingPlantedBerryTree: @ 80B4A34
- push {lr}
- bl GetFieldObjectScriptPointerForComparison
- ldr r1, _080B4A5C
- cmp r0, r1
- bne _080B4A64
- ldr r0, _080B4A60
- ldrb r0, [r0]
- bl FieldObjectGetBerryTreeId
- lsls r0, 24
- lsrs r0, 24
- bl GetStageByBerryTreeId
- lsls r0, 24
- cmp r0, 0
- bne _080B4A64
- movs r0, 0x1
- b _080B4A66
- .align 2, 0
-_080B4A5C: .4byte BerryTreeScript
-_080B4A60: .4byte gSelectedMapObject
-_080B4A64:
- movs r0, 0
-_080B4A66:
- pop {r1}
- bx r1
- thumb_func_end IsPlayerFacingPlantedBerryTree
-
- thumb_func_start WaterBerryTree
-WaterBerryTree: @ 80B4A6C
- push {lr}
- bl GetFieldObjectScriptPointerForComparison
- ldr r1, _080B4A84
- cmp r0, r1
- bne _080B4A88
- bl FieldObjectInteractionWaterBerryTree
- lsls r0, 24
- lsrs r0, 24
- b _080B4A8A
- .align 2, 0
-_080B4A84: .4byte BerryTreeScript
-_080B4A88:
- movs r0, 0
-_080B4A8A:
- pop {r1}
- bx r1
- thumb_func_end WaterBerryTree
-
- thumb_func_start sub_80B4A90
-sub_80B4A90: @ 80B4A90
- push {r4,lr}
- ldr r1, _080B4AB4
- ldr r0, _080B4AB8
- ldr r3, [r0]
- ldr r4, [r0, 0x4]
- movs r2, 0x7F
- movs r0, 0xD0
- lsls r0, 5
- adds r1, r0
-_080B4AA2:
- str r3, [r1]
- str r4, [r1, 0x4]
- subs r1, 0x8
- subs r2, 0x1
- cmp r2, 0
- bge _080B4AA2
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080B4AB4: .4byte gSaveBlock1
-_080B4AB8: .4byte gUnknown_083CD780
- thumb_func_end sub_80B4A90
-
- thumb_func_start BerryTreeGrow
-BerryTreeGrow: @ 80B4ABC
- push {r4,lr}
- adds r4, r0, 0
- ldrb r1, [r4, 0x1]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _080B4ACE
-_080B4ACA:
- movs r0, 0
- b _080B4B5A
-_080B4ACE:
- lsls r0, r1, 25
- lsrs r0, 25
- cmp r0, 0x5
- bhi _080B4B58
- lsls r0, 2
- ldr r1, _080B4AE0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080B4AE0: .4byte _080B4AE4
- .align 2, 0
-_080B4AE4:
- .4byte _080B4ACA
- .4byte _080B4B04
- .4byte _080B4B04
- .4byte _080B4B04
- .4byte _080B4AFC
- .4byte _080B4B1C
-_080B4AFC:
- adds r0, r4, 0
- bl CalcBerryYield
- strb r0, [r4, 0x4]
-_080B4B04:
- ldrb r2, [r4, 0x1]
- lsls r1, r2, 25
- lsrs r1, 25
- adds r1, 0x1
- movs r0, 0x7F
- ands r1, r0
- movs r0, 0x80
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r4, 0x1]
- b _080B4B58
-_080B4B1C:
- ldrb r0, [r4, 0x5]
- movs r1, 0x11
- negs r1, r1
- ands r1, r0
- movs r0, 0x21
- negs r0, r0
- ands r1, r0
- subs r0, 0x20
- ands r1, r0
- movs r0, 0x7F
- ands r1, r0
- movs r0, 0
- strb r0, [r4, 0x4]
- ldrb r2, [r4, 0x1]
- subs r0, 0x80
- ands r0, r2
- movs r2, 0x2
- orrs r0, r2
- strb r0, [r4, 0x1]
- adds r1, 0x1
- movs r0, 0xF
- ands r1, r0
- strb r1, [r4, 0x5]
- cmp r1, 0xA
- bne _080B4B58
- ldr r0, _080B4B60
- ldr r1, [r0, 0x4]
- ldr r0, [r0]
- str r0, [r4]
- str r1, [r4, 0x4]
-_080B4B58:
- movs r0, 0x1
-_080B4B5A:
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080B4B60: .4byte gUnknown_083CD780
- thumb_func_end BerryTreeGrow
-
- thumb_func_start BerryTreeTimeUpdate
-BerryTreeTimeUpdate: @ 80B4B64
- push {r4-r7,lr}
- adds r6, r0, 0
- movs r2, 0
-_080B4B6A:
- lsls r0, r2, 3
- ldr r1, _080B4BAC
- adds r4, r0, r1
- ldrb r0, [r4]
- adds r7, r2, 0x1
- cmp r0, 0
- beq _080B4BF8
- ldrb r1, [r4, 0x1]
- movs r0, 0x7F
- ands r0, r1
- cmp r0, 0
- beq _080B4BF8
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080B4BF8
- ldrb r0, [r4]
- bl GetStageDurationByBerryType
- lsls r0, 16
- lsrs r0, 16
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 3
- subs r1, r0
- cmp r6, r1
- blt _080B4BB4
- ldr r0, _080B4BB0
- ldr r1, [r0, 0x4]
- ldr r0, [r0]
- str r0, [r4]
- str r1, [r4, 0x4]
- b _080B4BF8
- .align 2, 0
-_080B4BAC: .4byte gSaveBlock1 + 0x1608
-_080B4BB0: .4byte gUnknown_083CD780
-_080B4BB4:
- adds r5, r6, 0
- cmp r5, 0
- beq _080B4BF8
- ldrh r1, [r4, 0x2]
- cmp r1, r5
- ble _080B4BC4
- subs r0, r1, r5
- b _080B4BF6
-_080B4BC4:
- subs r5, r1
- ldrb r0, [r4]
- bl GetStageDurationByBerryType
- strh r0, [r4, 0x2]
- adds r0, r4, 0
- bl BerryTreeGrow
- cmp r0, 0
- beq _080B4BF8
- ldrb r1, [r4, 0x1]
- movs r0, 0x7F
- ands r0, r1
- cmp r0, 0x5
- bne _080B4BE8
- ldrh r0, [r4, 0x2]
- lsls r0, 2
- strh r0, [r4, 0x2]
-_080B4BE8:
- cmp r5, 0
- beq _080B4BF8
- ldrh r0, [r4, 0x2]
- adds r1, r0, 0
- cmp r0, r5
- ble _080B4BC4
- subs r0, r5
-_080B4BF6:
- strh r0, [r4, 0x2]
-_080B4BF8:
- adds r2, r7, 0
- cmp r2, 0x7F
- ble _080B4B6A
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end BerryTreeTimeUpdate
-
- thumb_func_start PlantBerryTree
-PlantBerryTree: @ 80B4C04
- push {r4-r7,lr}
- adds r4, r1, 0
- adds r5, r2, 0
- lsls r0, 24
- lsrs r0, 24
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 24
- lsrs r5, 24
- lsls r3, 24
- lsrs r7, r3, 24
- bl GetBerryTreeInfo
- adds r6, r0, 0
- ldr r0, _080B4C68
- ldr r1, [r0, 0x4]
- ldr r0, [r0]
- str r0, [r6]
- str r1, [r6, 0x4]
- strb r4, [r6]
- adds r0, r4, 0
- bl GetStageDurationByBerryType
- strh r0, [r6, 0x2]
- movs r1, 0x7F
- ands r1, r5
- ldrb r2, [r6, 0x1]
- movs r0, 0x80
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r6, 0x1]
- cmp r5, 0x5
- bne _080B4C56
- adds r0, r6, 0
- bl CalcBerryYield
- strb r0, [r6, 0x4]
- ldrh r0, [r6, 0x2]
- lsls r0, 2
- strh r0, [r6, 0x2]
-_080B4C56:
- cmp r7, 0
- bne _080B4C62
- ldrb r0, [r6, 0x1]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r6, 0x1]
-_080B4C62:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080B4C68: .4byte gUnknown_083CD780
- thumb_func_end PlantBerryTree
-
- thumb_func_start RemoveBerryTree
-RemoveBerryTree: @ 80B4C6C
- lsls r0, 24
- ldr r1, _080B4C84
- lsrs r0, 21
- ldr r2, _080B4C88
- adds r1, r2
- adds r0, r1
- ldr r1, _080B4C8C
- ldr r2, [r1, 0x4]
- ldr r1, [r1]
- str r1, [r0]
- str r2, [r0, 0x4]
- bx lr
- .align 2, 0
-_080B4C84: .4byte gSaveBlock1
-_080B4C88: .4byte 0x00001608
-_080B4C8C: .4byte gUnknown_083CD780
- thumb_func_end RemoveBerryTree
-
- thumb_func_start GetBerryTypeByBerryTreeId
-GetBerryTypeByBerryTreeId: @ 80B4C90
- lsls r0, 24
- ldr r1, _080B4CA0
- lsrs r0, 21
- adds r0, r1
- ldr r1, _080B4CA4
- adds r0, r1
- ldrb r0, [r0]
- bx lr
- .align 2, 0
-_080B4CA0: .4byte gSaveBlock1
-_080B4CA4: .4byte 0x00001608
- thumb_func_end GetBerryTypeByBerryTreeId
-
- thumb_func_start GetStageByBerryTreeId
-GetStageByBerryTreeId: @ 80B4CA8
- lsls r0, 24
- ldr r1, _080B4CBC
- lsrs r0, 21
- adds r0, r1
- ldr r1, _080B4CC0
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 25
- lsrs r0, 25
- bx lr
- .align 2, 0
-_080B4CBC: .4byte gSaveBlock1
-_080B4CC0: .4byte 0x00001609
- thumb_func_end GetStageByBerryTreeId
-
- thumb_func_start ItemIdToBerryType
-ItemIdToBerryType: @ 80B4CC4
- push {lr}
- lsls r0, 16
- lsrs r1, r0, 16
- ldr r2, _080B4CE0
- adds r0, r2
- lsrs r0, 16
- cmp r0, 0x2A
- bhi _080B4CE4
- adds r0, r1, 0
- adds r0, 0x7C
- lsls r0, 24
- lsrs r0, 24
- b _080B4CE6
- .align 2, 0
-_080B4CE0: .4byte 0xff7b0000
-_080B4CE4:
- movs r0, 0x1
-_080B4CE6:
- pop {r1}
- bx r1
- thumb_func_end ItemIdToBerryType
-
- thumb_func_start BerryTypeToItemId
-BerryTypeToItemId: @ 80B4CEC
- push {lr}
- lsls r0, 16
- lsrs r1, r0, 16
- ldr r2, _080B4D08
- adds r0, r2
- lsrs r0, 16
- cmp r0, 0x2A
- bhi _080B4D0C
- adds r0, r1, 0
- adds r0, 0x84
- lsls r0, 16
- lsrs r0, 16
- b _080B4D0E
- .align 2, 0
-_080B4D08: .4byte 0xffff0000
-_080B4D0C:
- movs r0, 0x85
-_080B4D0E:
- pop {r1}
- bx r1
- thumb_func_end BerryTypeToItemId
-
- thumb_func_start GetBerryNameByBerryType
-GetBerryNameByBerryType: @ 80B4D14
- push {r4,lr}
- adds r4, r1, 0
- lsls r0, 24
- lsrs r0, 24
- bl GetBerryInfo
- adds r1, r0, 0
- adds r0, r4, 0
- movs r2, 0x6
- bl memcpy
- movs r0, 0xFF
- strb r0, [r4, 0x6]
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end GetBerryNameByBerryType
-
- thumb_func_start ResetBerryTreeSparkleFlag
-ResetBerryTreeSparkleFlag: @ 80B4D34
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl GetBerryTreeInfo
- ldrb r2, [r0, 0x1]
- movs r1, 0x7F
- ands r1, r2
- strb r1, [r0, 0x1]
- pop {r0}
- bx r0
- thumb_func_end ResetBerryTreeSparkleFlag
-
- thumb_func_start BerryTreeGetNumStagesWatered
-BerryTreeGetNumStagesWatered: @ 80B4D4C
- push {lr}
- ldrb r2, [r0, 0x5]
- movs r0, 0x10
- ands r0, r2
- lsls r0, 24
- lsrs r0, 24
- negs r0, r0
- lsrs r1, r0, 31
- movs r0, 0x20
- ands r0, r2
- cmp r0, 0
- beq _080B4D66
- adds r1, 0x1
-_080B4D66:
- movs r0, 0x40
- ands r0, r2
- cmp r0, 0
- beq _080B4D74
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
-_080B4D74:
- movs r0, 0x80
- ands r0, r2
- cmp r0, 0
- beq _080B4D82
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
-_080B4D82:
- adds r0, r1, 0
- pop {r1}
- bx r1
- thumb_func_end BerryTreeGetNumStagesWatered
-
- thumb_func_start GetNumStagesWateredByBerryTreeId
-GetNumStagesWateredByBerryTreeId: @ 80B4D88
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl GetBerryTreeInfo
- bl BerryTreeGetNumStagesWatered
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- thumb_func_end GetNumStagesWateredByBerryTreeId
-
- thumb_func_start CalcBerryYieldInternal
-CalcBerryYieldInternal: @ 80B4DA0
- push {r4-r6,lr}
- lsls r0, 16
- lsrs r0, 16
- lsls r1, 16
- lsrs r6, r1, 16
- lsls r2, 24
- lsrs r2, 24
- cmp r2, 0
- bne _080B4DB6
- lsls r0, r6, 24
- b _080B4DEA
-_080B4DB6:
- subs r1, r0, r6
- subs r0, r2, 0x1
- adds r5, r1, 0
- muls r5, r0
- adds r4, r1, 0
- muls r4, r2
- bl Random
- lsls r0, 16
- lsrs r0, 16
- subs r4, r5
- adds r4, 0x1
- adds r1, r4, 0
- bl __umodsi3
- adds r5, r0
- movs r0, 0x3
- ands r0, r5
- cmp r0, 0x1
- bls _080B4DE4
- lsrs r0, r5, 2
- adds r0, 0x1
- b _080B4DE6
-_080B4DE4:
- lsrs r0, r5, 2
-_080B4DE6:
- adds r0, r6
- lsls r0, 24
-_080B4DEA:
- lsrs r0, 24
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end CalcBerryYieldInternal
-
- thumb_func_start CalcBerryYield
-CalcBerryYield: @ 80B4DF4
- push {r4-r6,lr}
- adds r4, r0, 0
- ldrb r0, [r4]
- bl GetBerryInfo
- ldrb r6, [r0, 0xB]
- ldrb r5, [r0, 0xA]
- adds r0, r4, 0
- bl BerryTreeGetNumStagesWatered
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r5, 0
- adds r1, r6, 0
- bl CalcBerryYieldInternal
- lsls r0, 24
- lsrs r0, 24
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end CalcBerryYield
-
- thumb_func_start GetBerryCountByBerryTreeId
-GetBerryCountByBerryTreeId: @ 80B4E20
- lsls r0, 24
- ldr r1, _080B4E30
- lsrs r0, 21
- adds r0, r1
- ldr r1, _080B4E34
- adds r0, r1
- ldrb r0, [r0]
- bx lr
- .align 2, 0
-_080B4E30: .4byte gSaveBlock1
-_080B4E34: .4byte 0x0000160c
- thumb_func_end GetBerryCountByBerryTreeId
-
- thumb_func_start GetStageDurationByBerryType
-GetStageDurationByBerryType: @ 80B4E38
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl GetBerryInfo
- ldrb r1, [r0, 0x14]
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 18
- lsrs r0, 16
- pop {r1}
- bx r1
- thumb_func_end GetStageDurationByBerryType
-
- thumb_func_start FieldObjectInteractionGetBerryTreeData
-FieldObjectInteractionGetBerryTreeData: @ 80B4E50
- push {r4-r6,lr}
- ldr r0, _080B4E8C
- ldrb r0, [r0]
- bl FieldObjectGetBerryTreeId
- lsls r0, 24
- lsrs r5, r0, 24
- adds r0, r5, 0
- bl GetBerryTypeByBerryTreeId
- lsls r0, 24
- lsrs r6, r0, 24
- adds r0, r5, 0
- bl ResetBerryTreeSparkleFlag
- ldr r0, _080B4E90
- ldrb r0, [r0]
- ldr r2, _080B4E94
- ldrb r1, [r2, 0x5]
- ldrb r2, [r2, 0x4]
- bl sub_8060234
- lsls r0, 24
- cmp r0, 0
- beq _080B4E9C
- ldr r1, _080B4E98
- movs r0, 0xFF
- strh r0, [r1]
- b _080B4EAA
- .align 2, 0
-_080B4E8C: .4byte gSelectedMapObject
-_080B4E90: .4byte gUnknown_0202E8DE
-_080B4E94: .4byte gSaveBlock1
-_080B4E98: .4byte gUnknown_0202E8CC
-_080B4E9C:
- ldr r4, _080B4ED4
- adds r0, r5, 0
- bl GetStageByBerryTreeId
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4]
-_080B4EAA:
- ldr r4, _080B4ED8
- adds r0, r5, 0
- bl GetNumStagesWateredByBerryTreeId
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4]
- ldr r4, _080B4EDC
- adds r0, r5, 0
- bl GetBerryCountByBerryTreeId
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4]
- ldr r1, _080B4EE0
- adds r0, r6, 0
- bl GetBerryNameByBerryType
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080B4ED4: .4byte gUnknown_0202E8CC
-_080B4ED8: .4byte gUnknown_0202E8CE
-_080B4EDC: .4byte gUnknown_0202E8D0
-_080B4EE0: .4byte gStringVar1
- thumb_func_end FieldObjectInteractionGetBerryTreeData
-
- thumb_func_start sub_80B4EE4
-sub_80B4EE4: @ 80B4EE4
- push {lr}
- ldr r0, _080B4EF0
- bl SetMainCallback2
- pop {r0}
- bx r0
- .align 2, 0
-_080B4EF0: .4byte sub_80A68CC
- thumb_func_end sub_80B4EE4
-
- thumb_func_start FieldObjectInteractionPlantBerryTree
-FieldObjectInteractionPlantBerryTree: @ 80B4EF4
- push {r4,lr}
- ldr r0, _080B4F24
- ldrh r0, [r0]
- bl ItemIdToBerryType
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _080B4F28
- ldrb r0, [r0]
- bl FieldObjectGetBerryTreeId
- lsls r0, 24
- lsrs r0, 24
- adds r1, r4, 0
- movs r2, 0x1
- movs r3, 0x1
- bl PlantBerryTree
- bl FieldObjectInteractionGetBerryTreeData
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080B4F24: .4byte word_203855E
-_080B4F28: .4byte gSelectedMapObject
- thumb_func_end FieldObjectInteractionPlantBerryTree
-
- thumb_func_start FieldObjectInteractionPickBerryTree
-FieldObjectInteractionPickBerryTree: @ 80B4F2C
- push {r4-r6,lr}
- ldr r0, _080B4F70
- ldrb r0, [r0]
- bl FieldObjectGetBerryTreeId
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- adds r0, r5, 0
- bl GetBerryTypeByBerryTreeId
- lsls r0, 24
- lsrs r0, 24
- ldr r6, _080B4F74
- bl BerryTypeToItemId
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r5, 0
- bl GetBerryCountByBerryTreeId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl sub_80A9424
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r6]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080B4F70: .4byte gSelectedMapObject
-_080B4F74: .4byte gUnknown_0202E8CC
- thumb_func_end FieldObjectInteractionPickBerryTree
-
- thumb_func_start FieldObjectInteractionRemoveBerryTree
-FieldObjectInteractionRemoveBerryTree: @ 80B4F78
- push {lr}
- ldr r0, _080B4F9C
- ldrb r0, [r0]
- bl FieldObjectGetBerryTreeId
- lsls r0, 24
- lsrs r0, 24
- bl RemoveBerryTree
- ldr r0, _080B4FA0
- ldrb r0, [r0]
- ldr r2, _080B4FA4
- ldrb r1, [r2, 0x5]
- ldrb r2, [r2, 0x4]
- bl sub_8060288
- pop {r0}
- bx r0
- .align 2, 0
-_080B4F9C: .4byte gSelectedMapObject
-_080B4FA0: .4byte gUnknown_0202E8DE
-_080B4FA4: .4byte gSaveBlock1
- thumb_func_end FieldObjectInteractionRemoveBerryTree
-
- thumb_func_start PlayerHasBerries
-PlayerHasBerries: @ 80B4FA8
- push {lr}
- movs r0, 0x4
- bl IsBagPocketNonEmpty
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- thumb_func_end PlayerHasBerries
-
- thumb_func_start ResetBerryTreeSparkleFlags
-ResetBerryTreeSparkleFlags: @ 80B4FB8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- mov r4, sp
- adds r4, 0x2
- mov r0, sp
- adds r1, r4, 0
- bl GetCameraCoords
- mov r0, sp
- ldrh r2, [r0]
- ldrh r1, [r4]
- adds r1, 0x3
- adds r3, r2, 0
- adds r3, 0xE
- lsls r1, 16
- movs r5, 0x80
- lsls r5, 12
- adds r0, r1, r5
- lsrs r0, 16
- mov r10, r0
- mov r5, sp
- lsls r2, 16
- asrs r2, 16
- mov r9, r2
- ldr r4, _080B5050
- lsls r3, 16
- asrs r3, 16
- mov r8, r3
- asrs r7, r1, 16
- movs r6, 0xF
-_080B4FFC:
- ldrb r0, [r4]
- lsls r0, 31
- cmp r0, 0
- beq _080B5038
- ldrb r0, [r4, 0x6]
- cmp r0, 0xC
- bne _080B5038
- ldrh r0, [r4, 0x10]
- strh r0, [r5]
- ldrh r0, [r4, 0x12]
- mov r1, sp
- strh r0, [r1, 0x2]
- movs r2, 0
- ldrsh r1, [r5, r2]
- cmp r9, r1
- bgt _080B5038
- cmp r1, r8
- bgt _080B5038
- lsls r0, 16
- asrs r1, r0, 16
- cmp r7, r1
- bgt _080B5038
- mov r2, r10
- lsls r0, r2, 16
- asrs r0, 16
- cmp r1, r0
- bgt _080B5038
- ldrb r0, [r4, 0x1D]
- bl ResetBerryTreeSparkleFlag
-_080B5038:
- adds r4, 0x24
- subs r6, 0x1
- cmp r6, 0
- bge _080B4FFC
- 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
-_080B5050: .4byte gMapObjects
- thumb_func_end ResetBerryTreeSparkleFlags
-
- 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.
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.