summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile16
-rw-r--r--asm/battle_811DA74.s5890
-rw-r--r--asm/battle_message.s2403
-rw-r--r--asm/battle_records.s908
-rw-r--r--asm/battle_transition.s6254
-rw-r--r--asm/cable_car.s2881
-rw-r--r--asm/cable_car_util.s163
-rw-r--r--asm/choose_party.s2509
-rw-r--r--asm/coins.s251
-rw-r--r--asm/evolution_scene.s6717
-rw-r--r--asm/fldeff_strength.s152
-rw-r--r--asm/landmark.s132
-rw-r--r--asm/pokedex_area_screen.s2371
-rw-r--r--asm/pokedex_cry_screen.s1164
-rw-r--r--asm/rom6.s42375
-rw-r--r--asm/roulette.s9659
-rw-r--r--asm/roulette_util.s780
-rw-r--r--asm/unused_8124F94.s285
-rw-r--r--ld_script.txt16
19 files changed, 42551 insertions, 42375 deletions
diff --git a/Makefile b/Makefile
index a666c12b8..96b78f0ac 100644
--- a/Makefile
+++ b/Makefile
@@ -124,6 +124,22 @@ asm/contest_painting.o \
asm/battle_ai.o \
asm/trader.o \
asm/rom6.o \
+asm/battle_records.o \
+asm/pokedex_area_screen.o \
+asm/evolution_scene.o \
+asm/roulette.o \
+asm/pokedex_cry_screen.o \
+asm/coins.o \
+asm/landmark.o \
+asm/fldeff_strength.o \
+asm/battle_transition.o \
+asm/battle_811DA74.o \
+asm/battle_message.o \
+asm/choose_party.o \
+asm/cable_car.o \
+asm/roulette_util.o \
+asm/cable_car_util.o \
+asm/unused_8124F94.o \
asm/mystery_event_script.o \
asm/field_effect_helpers.o \
asm/contest_ai.o \
diff --git a/asm/battle_811DA74.s b/asm/battle_811DA74.s
new file mode 100644
index 000000000..a51ab4e85
--- /dev/null
+++ b/asm/battle_811DA74.s
@@ -0,0 +1,5890 @@
+ .include "constants/gba_constants.s"
+ .include "constants/species_constants.s"
+ .include "asm/macros.s"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start nullsub_74
+nullsub_74: @ 811DA74
+ bx lr
+ thumb_func_end nullsub_74
+
+ thumb_func_start sub_811DA78
+sub_811DA78: @ 811DA78
+ ldr r1, _0811DA88 @ =gUnknown_03004330
+ ldr r0, _0811DA8C @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _0811DA90 @ =sub_811DA94
+ str r1, [r0]
+ bx lr
+ .align 2, 0
+_0811DA88: .4byte gUnknown_03004330
+_0811DA8C: .4byte gUnknown_02024A60
+_0811DA90: .4byte sub_811DA94
+ thumb_func_end sub_811DA78
+
+ thumb_func_start sub_811DA94
+sub_811DA94: @ 811DA94
+ push {lr}
+ ldr r2, _0811DAC8 @ =gUnknown_02024A64
+ ldr r1, _0811DACC @ =gBitTable
+ ldr r0, _0811DAD0 @ =gUnknown_02024A60
+ ldrb r3, [r0]
+ lsls r0, r3, 2
+ adds r0, r1
+ ldr r1, [r2]
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ beq _0811DAE0
+ ldr r0, _0811DAD4 @ =gUnknown_02023A60
+ lsls r1, r3, 9
+ adds r1, r0
+ ldrb r0, [r1]
+ cmp r0, 0x38
+ bhi _0811DADC
+ ldr r0, _0811DAD8 @ =gUnknown_083FE4F4
+ ldrb r1, [r1]
+ lsls r1, 2
+ adds r1, r0
+ ldr r0, [r1]
+ bl _call_via_r0
+ b _0811DAE0
+ .align 2, 0
+_0811DAC8: .4byte gUnknown_02024A64
+_0811DACC: .4byte gBitTable
+_0811DAD0: .4byte gUnknown_02024A60
+_0811DAD4: .4byte gUnknown_02023A60
+_0811DAD8: .4byte gUnknown_083FE4F4
+_0811DADC:
+ bl dp01_tbl3_exec_completed
+_0811DAE0:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_811DA94
+
+ thumb_func_start sub_811DAE4
+sub_811DAE4: @ 811DAE4
+ push {lr}
+ ldr r2, _0811DB0C @ =gSprites
+ ldr r1, _0811DB10 @ =gUnknown_02024BE0
+ ldr r0, _0811DB14 @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r2, 0x1C
+ adds r0, r2
+ ldr r1, [r0]
+ ldr r0, _0811DB18 @ =SpriteCallbackDummy
+ cmp r1, r0
+ bne _0811DB08
+ bl dp01_tbl3_exec_completed
+_0811DB08:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811DB0C: .4byte gSprites
+_0811DB10: .4byte gUnknown_02024BE0
+_0811DB14: .4byte gUnknown_02024A60
+_0811DB18: .4byte SpriteCallbackDummy
+ thumb_func_end sub_811DAE4
+
+ thumb_func_start sub_811DB1C
+sub_811DB1C: @ 811DB1C
+ push {r4-r6,lr}
+ ldr r6, _0811DB74 @ =gSprites
+ ldr r5, _0811DB78 @ =gUnknown_02024BE0
+ ldr r4, _0811DB7C @ =gUnknown_02024A60
+ ldrb r0, [r4]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r6, 0
+ adds r1, 0x1C
+ adds r0, r1
+ ldr r1, [r0]
+ ldr r0, _0811DB80 @ =SpriteCallbackDummy
+ cmp r1, r0
+ bne _0811DB6C
+ movs r0, 0
+ bl nullsub_10
+ ldrb r0, [r4]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ bl FreeSpriteOamMatrix
+ ldrb r0, [r4]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ bl DestroySprite
+ bl dp01_tbl3_exec_completed
+_0811DB6C:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811DB74: .4byte gSprites
+_0811DB78: .4byte gUnknown_02024BE0
+_0811DB7C: .4byte gUnknown_02024A60
+_0811DB80: .4byte SpriteCallbackDummy
+ thumb_func_end sub_811DB1C
+
+ thumb_func_start sub_811DB84
+sub_811DB84: @ 811DB84
+ push {lr}
+ ldr r3, _0811DBB8 @ =gUnknown_02024A60
+ ldrb r0, [r3]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ ldr r2, _0811DBBC @ =0x02017810
+ adds r1, r2
+ ldrb r0, [r1, 0x9]
+ subs r0, 0x1
+ strb r0, [r1, 0x9]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xFF
+ bne _0811DBB4
+ ldrb r0, [r3]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ movs r0, 0
+ strb r0, [r1, 0x9]
+ bl dp01_tbl3_exec_completed
+_0811DBB4:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811DBB8: .4byte gUnknown_02024A60
+_0811DBBC: .4byte 0x02017810
+ thumb_func_end sub_811DB84
+
+ thumb_func_start sub_811DBC0
+sub_811DBC0: @ 811DBC0
+ push {r4-r6,lr}
+ movs r6, 0
+ bl battle_type_is_double
+ lsls r0, 24
+ cmp r0, 0
+ beq _0811DBE4
+ bl battle_type_is_double
+ lsls r0, 24
+ cmp r0, 0
+ beq _0811DC18
+ ldr r0, _0811DC04 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _0811DC18
+_0811DBE4:
+ ldr r2, _0811DC08 @ =gSprites
+ ldr r1, _0811DC0C @ =gUnknown_03004340
+ ldr r0, _0811DC10 @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r2, 0x1C
+ adds r0, r2
+ ldr r1, [r0]
+ ldr r0, _0811DC14 @ =SpriteCallbackDummy
+ cmp r1, r0
+ bne _0811DC50
+ b _0811DC4E
+ .align 2, 0
+_0811DC04: .4byte gUnknown_020239F8
+_0811DC08: .4byte gSprites
+_0811DC0C: .4byte gUnknown_03004340
+_0811DC10: .4byte gUnknown_02024A60
+_0811DC14: .4byte SpriteCallbackDummy
+_0811DC18:
+ ldr r2, _0811DC84 @ =gSprites
+ ldr r5, _0811DC88 @ =gUnknown_03004340
+ ldr r0, _0811DC8C @ =gUnknown_02024A60
+ ldrb r3, [r0]
+ adds r0, r3, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r4, r2, 0
+ adds r4, 0x1C
+ adds r0, r4
+ ldr r2, [r0]
+ ldr r0, _0811DC90 @ =SpriteCallbackDummy
+ cmp r2, r0
+ bne _0811DC50
+ movs r0, 0x2
+ eors r3, r0
+ adds r0, r3, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldr r0, [r0]
+ cmp r0, r2
+ bne _0811DC50
+_0811DC4E:
+ movs r6, 0x1
+_0811DC50:
+ bl IsCryPlayingOrClearCrySongs
+ lsls r0, 24
+ cmp r0, 0
+ beq _0811DC5C
+ movs r6, 0
+_0811DC5C:
+ cmp r6, 0
+ beq _0811DC7E
+ ldr r2, _0811DC8C @ =gUnknown_02024A60
+ ldrb r1, [r2]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _0811DC94 @ =0x02017810
+ adds r0, r1
+ movs r1, 0x3
+ strb r1, [r0, 0x9]
+ ldr r1, _0811DC98 @ =gUnknown_03004330
+ ldrb r0, [r2]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _0811DC9C @ =sub_811DB84
+ str r1, [r0]
+_0811DC7E:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811DC84: .4byte gSprites
+_0811DC88: .4byte gUnknown_03004340
+_0811DC8C: .4byte gUnknown_02024A60
+_0811DC90: .4byte SpriteCallbackDummy
+_0811DC94: .4byte 0x02017810
+_0811DC98: .4byte gUnknown_03004330
+_0811DC9C: .4byte sub_811DB84
+ thumb_func_end sub_811DBC0
+
+ thumb_func_start sub_811DCA0
+sub_811DCA0: @ 811DCA0
+ push {r4-r7,lr}
+ ldr r6, _0811DDBC @ =gUnknown_02024A60
+ ldrb r2, [r6]
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 2
+ ldr r4, _0811DDC0 @ =0x02017810
+ adds r3, r0, r4
+ ldrb r1, [r3]
+ movs r5, 0x8
+ adds r0, r5, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _0811DDB4
+ movs r7, 0x2
+ adds r1, r7, 0
+ eors r1, r2
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrb r1, [r0]
+ adds r0, r5, 0
+ ands r0, r1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0
+ bne _0811DDB4
+ ldrb r0, [r3, 0x9]
+ adds r0, 0x1
+ strb r0, [r3, 0x9]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _0811DDB4
+ ldrb r0, [r6]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ strb r2, [r1, 0x9]
+ bl battle_type_is_double
+ lsls r0, 24
+ cmp r0, 0
+ beq _0811DD56
+ ldr r0, _0811DDC4 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ bne _0811DD56
+ ldr r1, _0811DDC8 @ =gUnknown_0300434C
+ ldrb r0, [r6]
+ eors r0, r7
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _0811DDCC @ =gSprites
+ adds r0, r1
+ bl DestroySprite
+ ldr r4, _0811DDD0 @ =gUnknown_03004340
+ ldrb r0, [r6]
+ adds r1, r7, 0
+ eors r1, r0
+ adds r0, r1, r4
+ ldrb r0, [r0]
+ ldr r2, _0811DDD4 @ =gUnknown_02024A6A
+ lsls r1, 1
+ adds r1, r2
+ ldrh r2, [r1]
+ movs r1, 0x64
+ muls r1, r2
+ ldr r2, _0811DDD8 @ =gPlayerParty
+ adds r1, r2
+ movs r2, 0
+ bl sub_8045A5C
+ ldrb r0, [r6]
+ eors r0, r7
+ bl sub_804777C
+ ldrb r0, [r6]
+ eors r0, r7
+ adds r0, r4
+ ldrb r0, [r0]
+ bl sub_8043DFC
+_0811DD56:
+ ldr r1, _0811DDC8 @ =gUnknown_0300434C
+ ldr r4, _0811DDBC @ =gUnknown_02024A60
+ ldrb r0, [r4]
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _0811DDCC @ =gSprites
+ adds r0, r1
+ bl DestroySprite
+ ldr r5, _0811DDD0 @ =gUnknown_03004340
+ ldrb r1, [r4]
+ adds r0, r1, r5
+ ldrb r0, [r0]
+ ldr r2, _0811DDD4 @ =gUnknown_02024A6A
+ lsls r1, 1
+ adds r1, r2
+ ldrh r2, [r1]
+ movs r1, 0x64
+ muls r1, r2
+ ldr r2, _0811DDD8 @ =gPlayerParty
+ adds r1, r2
+ movs r2, 0
+ bl sub_8045A5C
+ ldrb r0, [r4]
+ bl sub_804777C
+ ldrb r0, [r4]
+ adds r0, r5
+ ldrb r0, [r0]
+ bl sub_8043DFC
+ ldr r2, _0811DDDC @ =0x02017840
+ ldrb r1, [r2, 0x9]
+ movs r0, 0x2
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2, 0x9]
+ ldr r1, _0811DDE0 @ =gUnknown_03004330
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _0811DDE4 @ =sub_811DBC0
+ str r1, [r0]
+_0811DDB4:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811DDBC: .4byte gUnknown_02024A60
+_0811DDC0: .4byte 0x02017810
+_0811DDC4: .4byte gUnknown_020239F8
+_0811DDC8: .4byte gUnknown_0300434C
+_0811DDCC: .4byte gSprites
+_0811DDD0: .4byte gUnknown_03004340
+_0811DDD4: .4byte gUnknown_02024A6A
+_0811DDD8: .4byte gPlayerParty
+_0811DDDC: .4byte 0x02017840
+_0811DDE0: .4byte gUnknown_03004330
+_0811DDE4: .4byte sub_811DBC0
+ thumb_func_end sub_811DCA0
+
+ thumb_func_start sub_811DDE8
+sub_811DDE8: @ 811DDE8
+ push {lr}
+ ldr r2, _0811DE1C @ =gSprites
+ ldr r1, _0811DE20 @ =gUnknown_02024BE0
+ ldr r0, _0811DE24 @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r0, r2
+ adds r0, r1, 0
+ adds r0, 0x3F
+ ldrb r0, [r0]
+ lsls r0, 27
+ cmp r0, 0
+ bge _0811DE16
+ movs r2, 0x24
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ bne _0811DE16
+ bl dp01_tbl3_exec_completed
+_0811DE16:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811DE1C: .4byte gSprites
+_0811DE20: .4byte gUnknown_02024BE0
+_0811DE24: .4byte gUnknown_02024A60
+ thumb_func_end sub_811DDE8
+
+ thumb_func_start bx_t3_healthbar_update
+bx_t3_healthbar_update: @ 811DE28
+ push {r4-r6,lr}
+ ldr r5, _0811DE68 @ =gUnknown_02024A60
+ ldrb r0, [r5]
+ ldr r6, _0811DE6C @ =gUnknown_03004340
+ adds r1, r0, r6
+ ldrb r1, [r1]
+ movs r2, 0
+ movs r3, 0
+ bl sub_8045C78
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ ldrb r0, [r5]
+ adds r0, r6
+ ldrb r0, [r0]
+ bl sub_8043DFC
+ lsls r4, 16
+ asrs r1, r4, 16
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ beq _0811DE70
+ ldrb r0, [r5]
+ adds r0, r6
+ ldrb r0, [r0]
+ movs r2, 0
+ bl sub_80440EC
+ b _0811DE8A
+ .align 2, 0
+_0811DE68: .4byte gUnknown_02024A60
+_0811DE6C: .4byte gUnknown_03004340
+_0811DE70:
+ ldr r2, _0811DE90 @ =gUnknown_02024A6A
+ ldrb r1, [r5]
+ lsls r0, r1, 1
+ adds r0, r2
+ ldrh r2, [r0]
+ movs r0, 0x64
+ muls r0, r2
+ ldr r2, _0811DE94 @ =gPlayerParty
+ adds r0, r2
+ bl sub_80324F8
+ bl dp01_tbl3_exec_completed
+_0811DE8A:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811DE90: .4byte gUnknown_02024A6A
+_0811DE94: .4byte gPlayerParty
+ thumb_func_end bx_t3_healthbar_update
+
+ thumb_func_start sub_811DE98
+sub_811DE98: @ 811DE98
+ push {r4-r6,lr}
+ ldr r6, _0811DF1C @ =gSprites
+ ldr r5, _0811DF20 @ =gUnknown_02024BE0
+ ldr r4, _0811DF24 @ =gUnknown_02024A60
+ ldrb r2, [r4]
+ adds r0, r2, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ movs r3, 0x22
+ ldrsh r1, [r0, r3]
+ movs r3, 0x26
+ ldrsh r0, [r0, r3]
+ adds r1, r0
+ cmp r1, 0xA0
+ ble _0811DF14
+ ldr r1, _0811DF28 @ =gUnknown_02024A6A
+ lsls r0, r2, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _0811DF2C @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0xB
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ bl nullsub_9
+ ldrb r0, [r4]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ ldrb r0, [r0, 0x3]
+ lsls r0, 26
+ lsrs r0, 27
+ bl FreeOamMatrix
+ ldrb r0, [r4]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ bl DestroySprite
+ ldr r1, _0811DF30 @ =gUnknown_03004340
+ ldrb r0, [r4]
+ adds r0, r1
+ ldrb r0, [r0]
+ bl sub_8043DB0
+ bl dp01_tbl3_exec_completed
+_0811DF14:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811DF1C: .4byte gSprites
+_0811DF20: .4byte gUnknown_02024BE0
+_0811DF24: .4byte gUnknown_02024A60
+_0811DF28: .4byte gUnknown_02024A6A
+_0811DF2C: .4byte gPlayerParty
+_0811DF30: .4byte gUnknown_03004340
+ thumb_func_end sub_811DE98
+
+ thumb_func_start sub_811DF34
+sub_811DF34: @ 811DF34
+ push {r4-r6,lr}
+ ldr r6, _0811DF8C @ =gUnknown_02024A60
+ ldrb r2, [r6]
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 2
+ ldr r1, _0811DF90 @ =0x02017810
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ bne _0811DF84
+ ldr r5, _0811DF94 @ =gUnknown_02024BE0
+ adds r0, r2, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r4, _0811DF98 @ =gSprites
+ adds r0, r4
+ bl FreeSpriteOamMatrix
+ ldrb r0, [r6]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ bl DestroySprite
+ ldr r1, _0811DF9C @ =gUnknown_03004340
+ ldrb r0, [r6]
+ adds r0, r1
+ ldrb r0, [r0]
+ bl sub_8043DB0
+ bl dp01_tbl3_exec_completed
+_0811DF84:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811DF8C: .4byte gUnknown_02024A60
+_0811DF90: .4byte 0x02017810
+_0811DF94: .4byte gUnknown_02024BE0
+_0811DF98: .4byte gSprites
+_0811DF9C: .4byte gUnknown_03004340
+ thumb_func_end sub_811DF34
+
+ thumb_func_start sub_811DFA0
+sub_811DFA0: @ 811DFA0
+ push {lr}
+ ldr r0, _0811DFB4 @ =gUnknown_03004210
+ ldrh r0, [r0, 0x16]
+ cmp r0, 0
+ bne _0811DFAE
+ bl dp01_tbl3_exec_completed
+_0811DFAE:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811DFB4: .4byte gUnknown_03004210
+ thumb_func_end sub_811DFA0
+
+ thumb_func_start bx_blink_t3
+bx_blink_t3: @ 811DFB8
+ push {r4,lr}
+ ldr r1, _0811DFF4 @ =gUnknown_02024BE0
+ ldr r0, _0811DFF8 @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r1, [r0]
+ ldr r2, _0811DFFC @ =gSprites
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r4, r0, r2
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x20
+ bne _0811E004
+ movs r3, 0
+ movs r0, 0
+ strh r0, [r4, 0x30]
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r1, [r2]
+ subs r0, 0x5
+ ands r0, r1
+ strb r0, [r2]
+ ldr r0, _0811E000 @ =gUnknown_02024E6D
+ strb r3, [r0]
+ bl dp01_tbl3_exec_completed
+ b _0811E02E
+ .align 2, 0
+_0811DFF4: .4byte gUnknown_02024BE0
+_0811DFF8: .4byte gUnknown_02024A60
+_0811DFFC: .4byte gSprites
+_0811E000: .4byte gUnknown_02024E6D
+_0811E004:
+ ldrh r0, [r4, 0x30]
+ movs r1, 0x3
+ ands r0, r1
+ cmp r0, 0
+ bne _0811E028
+ 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]
+_0811E028:
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+_0811E02E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end bx_blink_t3
+
+ thumb_func_start sub_811E034
+sub_811E034: @ 811E034
+ push {r4,lr}
+ ldr r2, _0811E084 @ =gSprites
+ ldr r0, _0811E088 @ =gUnknown_03004340
+ ldr r4, _0811E08C @ =gUnknown_02024A60
+ ldrb r3, [r4]
+ adds r0, r3, r0
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r2, 0x1C
+ adds r0, r2
+ ldr r1, [r0]
+ ldr r0, _0811E090 @ =SpriteCallbackDummy
+ cmp r1, r0
+ bne _0811E07C
+ lsls r0, r3, 2
+ ldr r1, _0811E094 @ =0x02017800
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _0811E070
+ adds r0, r3, 0
+ adds r1, r3, 0
+ adds r2, r3, 0
+ movs r3, 0x6
+ bl move_anim_start_t4
+_0811E070:
+ ldr r0, _0811E098 @ =gUnknown_03004330
+ ldrb r1, [r4]
+ lsls r1, 2
+ adds r1, r0
+ ldr r0, _0811E09C @ =sub_811E0A0
+ str r0, [r1]
+_0811E07C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811E084: .4byte gSprites
+_0811E088: .4byte gUnknown_03004340
+_0811E08C: .4byte gUnknown_02024A60
+_0811E090: .4byte SpriteCallbackDummy
+_0811E094: .4byte 0x02017800
+_0811E098: .4byte gUnknown_03004330
+_0811E09C: .4byte sub_811E0A0
+ thumb_func_end sub_811E034
+
+ thumb_func_start sub_811E0A0
+sub_811E0A0: @ 811E0A0
+ push {lr}
+ ldr r0, _0811E0C4 @ =gUnknown_02024A60
+ ldrb r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _0811E0C8 @ =0x02017810
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ bne _0811E0BE
+ bl dp01_tbl3_exec_completed
+_0811E0BE:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811E0C4: .4byte gUnknown_02024A60
+_0811E0C8: .4byte 0x02017810
+ thumb_func_end sub_811E0A0
+
+ thumb_func_start sub_811E0CC
+sub_811E0CC: @ 811E0CC
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ ldr r7, _0811E190 @ =gUnknown_02024A60
+ ldrb r1, [r7]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r3, _0811E194 @ =0x02017810
+ adds r2, r0, r3
+ ldrb r1, [r2, 0x1]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0811E186
+ ldrb r1, [r2]
+ movs r0, 0x7F
+ ands r0, r1
+ strb r0, [r2]
+ ldrb r0, [r7]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r3
+ ldrb r2, [r1, 0x1]
+ movs r0, 0x2
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1, 0x1]
+ ldr r4, _0811E198 @ =0x000027f9
+ adds r0, r4, 0
+ bl FreeSpriteTilesByTag
+ adds r0, r4, 0
+ bl FreeSpritePaletteByTag
+ ldr r0, _0811E19C @ =c3_0802FDF4
+ movs r1, 0xA
+ bl CreateTask
+ ldr r0, _0811E1A0 @ =gUnknown_02024A6A
+ mov r8, r0
+ ldrb r1, [r7]
+ lsls r0, r1, 1
+ add r0, r8
+ ldrh r0, [r0]
+ movs r6, 0x64
+ muls r0, r6
+ ldr r5, _0811E1A4 @ =gPlayerParty
+ adds r0, r5
+ bl sub_80324F8
+ ldr r1, _0811E1A8 @ =gUnknown_02024BE0
+ ldrb r0, [r7]
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _0811E1AC @ =gSprites
+ adds r0, r1
+ movs r1, 0
+ bl StartSpriteAnim
+ ldr r4, _0811E1B0 @ =gUnknown_03004340
+ ldrb r1, [r7]
+ adds r0, r1, r4
+ ldrb r0, [r0]
+ lsls r1, 1
+ add r1, r8
+ ldrh r1, [r1]
+ muls r1, r6
+ adds r1, r5
+ movs r2, 0
+ bl sub_8045A5C
+ ldrb r0, [r7]
+ bl sub_804777C
+ ldrb r0, [r7]
+ adds r0, r4
+ ldrb r0, [r0]
+ bl sub_8043DFC
+ ldrb r0, [r7]
+ bl sub_8031F88
+ ldr r1, _0811E1B4 @ =gUnknown_03004330
+ ldrb r0, [r7]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _0811E1B8 @ =sub_811E034
+ str r1, [r0]
+_0811E186:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811E190: .4byte gUnknown_02024A60
+_0811E194: .4byte 0x02017810
+_0811E198: .4byte 0x000027f9
+_0811E19C: .4byte c3_0802FDF4
+_0811E1A0: .4byte gUnknown_02024A6A
+_0811E1A4: .4byte gPlayerParty
+_0811E1A8: .4byte gUnknown_02024BE0
+_0811E1AC: .4byte gSprites
+_0811E1B0: .4byte gUnknown_03004340
+_0811E1B4: .4byte gUnknown_03004330
+_0811E1B8: .4byte sub_811E034
+ thumb_func_end sub_811E0CC
+
+ thumb_func_start sub_811E1BC
+sub_811E1BC: @ 811E1BC
+ push {r4-r6,lr}
+ ldr r4, _0811E234 @ =gUnknown_02024A60
+ ldrb r2, [r4]
+ lsls r3, r2, 1
+ adds r0, r3, r2
+ lsls r0, 2
+ ldr r6, _0811E238 @ =0x02017810
+ adds r0, r6
+ ldrb r1, [r0]
+ movs r0, 0x88
+ ands r0, r1
+ cmp r0, 0
+ bne _0811E1EA
+ ldr r0, _0811E23C @ =gUnknown_02024A6A
+ adds r0, r3, r0
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r1, r0
+ ldr r0, _0811E240 @ =gPlayerParty
+ adds r1, r0
+ adds r0, r2, 0
+ bl sub_8141828
+_0811E1EA:
+ ldr r5, _0811E244 @ =gSprites
+ ldr r0, _0811E248 @ =gUnknown_0300434C
+ ldrb r2, [r4]
+ adds r0, r2, r0
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r3, r0, 2
+ adds r0, r5, 0
+ adds r0, 0x1C
+ adds r0, r3, r0
+ ldr r1, [r0]
+ ldr r0, _0811E24C @ =SpriteCallbackDummy
+ cmp r1, r0
+ bne _0811E22C
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r6
+ ldrb r1, [r0]
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ bne _0811E22C
+ adds r0, r3, r5
+ bl DestroySprite
+ ldr r1, _0811E250 @ =gUnknown_03004330
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _0811E254 @ =sub_811E0CC
+ str r1, [r0]
+_0811E22C:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811E234: .4byte gUnknown_02024A60
+_0811E238: .4byte 0x02017810
+_0811E23C: .4byte gUnknown_02024A6A
+_0811E240: .4byte gPlayerParty
+_0811E244: .4byte gSprites
+_0811E248: .4byte gUnknown_0300434C
+_0811E24C: .4byte SpriteCallbackDummy
+_0811E250: .4byte gUnknown_03004330
+_0811E254: .4byte sub_811E0CC
+ thumb_func_end sub_811E1BC
+
+ thumb_func_start sub_811E258
+sub_811E258: @ 811E258
+ push {lr}
+ ldr r0, _0811E288 @ =gReceivedRemoteLinkPlayers
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0811E284
+ movs r0, 0x5A
+ bl m4aSongNumStop
+ ldr r3, _0811E28C @ =gMain
+ ldr r0, _0811E290 @ =0x0000043d
+ adds r2, r3, r0
+ ldrb r1, [r2]
+ movs r0, 0x3
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+ ldr r0, _0811E294 @ =gUnknown_030042D0
+ ldr r0, [r0]
+ str r0, [r3]
+ ldr r0, _0811E298 @ =c2_8011A1C
+ bl SetMainCallback2
+_0811E284:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811E288: .4byte gReceivedRemoteLinkPlayers
+_0811E28C: .4byte gMain
+_0811E290: .4byte 0x0000043d
+_0811E294: .4byte gUnknown_030042D0
+_0811E298: .4byte c2_8011A1C
+ thumb_func_end sub_811E258
+
+ thumb_func_start sub_811E29C
+sub_811E29C: @ 811E29C
+ push {lr}
+ ldr r0, _0811E2CC @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0811E302
+ ldr r0, _0811E2D0 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0811E2E0
+ bl sub_800832C
+ ldr r1, _0811E2D4 @ =gUnknown_03004330
+ ldr r0, _0811E2D8 @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _0811E2DC @ =sub_811E258
+ str r1, [r0]
+ b _0811E302
+ .align 2, 0
+_0811E2CC: .4byte gPaletteFade
+_0811E2D0: .4byte gUnknown_020239F8
+_0811E2D4: .4byte gUnknown_03004330
+_0811E2D8: .4byte gUnknown_02024A60
+_0811E2DC: .4byte sub_811E258
+_0811E2E0:
+ movs r0, 0x5A
+ bl m4aSongNumStop
+ ldr r2, _0811E308 @ =gMain
+ ldr r0, _0811E30C @ =0x0000043d
+ adds r3, r2, r0
+ ldrb r1, [r3]
+ movs r0, 0x3
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r3]
+ ldr r0, _0811E310 @ =gUnknown_030042D0
+ ldr r0, [r0]
+ str r0, [r2]
+ ldr r0, [r2, 0x8]
+ bl SetMainCallback2
+_0811E302:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811E308: .4byte gMain
+_0811E30C: .4byte 0x0000043d
+_0811E310: .4byte gUnknown_030042D0
+ thumb_func_end sub_811E29C
+
+ thumb_func_start dp01_tbl3_exec_completed
+dp01_tbl3_exec_completed: @ 811E314
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r1, _0811E354 @ =gUnknown_03004330
+ ldr r4, _0811E358 @ =gUnknown_02024A60
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _0811E35C @ =sub_811DA94
+ str r1, [r0]
+ ldr r0, _0811E360 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0811E368
+ bl GetMultiplayerId
+ mov r1, sp
+ strb r0, [r1]
+ movs r0, 0x2
+ movs r1, 0x4
+ mov r2, sp
+ bl dp01_prepare_buffer_wireless_probably
+ ldr r1, _0811E364 @ =gUnknown_02023A60
+ ldrb r0, [r4]
+ lsls r0, 9
+ adds r0, r1
+ movs r1, 0x38
+ strb r1, [r0]
+ b _0811E37A
+ .align 2, 0
+_0811E354: .4byte gUnknown_03004330
+_0811E358: .4byte gUnknown_02024A60
+_0811E35C: .4byte sub_811DA94
+_0811E360: .4byte gUnknown_020239F8
+_0811E364: .4byte gUnknown_02023A60
+_0811E368:
+ ldr r2, _0811E384 @ =gUnknown_02024A64
+ ldr r1, _0811E388 @ =gBitTable
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, [r0]
+ ldr r0, [r2]
+ bics r0, r1
+ str r0, [r2]
+_0811E37A:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811E384: .4byte gUnknown_02024A64
+_0811E388: .4byte gBitTable
+ thumb_func_end dp01_tbl3_exec_completed
+
+ thumb_func_start sub_811E38C
+sub_811E38C: @ 811E38C
+ push {lr}
+ ldr r0, _0811E3B0 @ =gUnknown_02024A60
+ ldrb r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _0811E3B4 @ =0x02017810
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ bne _0811E3AA
+ bl dp01_tbl3_exec_completed
+_0811E3AA:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811E3B0: .4byte gUnknown_02024A60
+_0811E3B4: .4byte 0x02017810
+ thumb_func_end sub_811E38C
+
+ thumb_func_start sub_811E3B8
+sub_811E3B8: @ 811E3B8
+ push {lr}
+ ldr r0, _0811E3DC @ =gUnknown_02024A60
+ ldrb r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _0811E3E0 @ =0x02017810
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ bne _0811E3D6
+ bl dp01_tbl3_exec_completed
+_0811E3D6:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811E3DC: .4byte gUnknown_02024A60
+_0811E3E0: .4byte 0x02017810
+ thumb_func_end sub_811E3B8
+
+ thumb_func_start dp01t_00_3_getattr
+dp01t_00_3_getattr: @ 811E3E4
+ push {r4-r6,lr}
+ sub sp, 0x100
+ movs r6, 0
+ ldr r1, _0811E410 @ =gUnknown_02023A60
+ ldr r0, _0811E414 @ =gUnknown_02024A60
+ ldrb r2, [r0]
+ lsls r0, r2, 9
+ adds r1, 0x2
+ adds r1, r0, r1
+ ldrb r0, [r1]
+ cmp r0, 0
+ bne _0811E41C
+ ldr r0, _0811E418 @ =gUnknown_02024A6A
+ lsls r1, r2, 1
+ adds r1, r0
+ ldrb r0, [r1]
+ mov r1, sp
+ bl dp01_getattr_by_ch1_for_player_pokemon
+ adds r6, r0, 0
+ b _0811E43E
+ .align 2, 0
+_0811E410: .4byte gUnknown_02023A60
+_0811E414: .4byte gUnknown_02024A60
+_0811E418: .4byte gUnknown_02024A6A
+_0811E41C:
+ ldrb r4, [r1]
+ movs r5, 0
+_0811E420:
+ movs r0, 0x1
+ ands r0, r4
+ cmp r0, 0
+ beq _0811E436
+ lsls r0, r5, 24
+ lsrs r0, 24
+ mov r2, sp
+ adds r1, r2, r6
+ bl dp01_getattr_by_ch1_for_player_pokemon
+ adds r6, r0
+_0811E436:
+ lsrs r4, 1
+ adds r5, 0x1
+ cmp r5, 0x5
+ ble _0811E420
+_0811E43E:
+ lsls r1, r6, 16
+ lsrs r1, 16
+ movs r0, 0x1
+ mov r2, sp
+ bl dp01_build_cmdbuf_x1D_1D_numargs_varargs
+ bl dp01_tbl3_exec_completed
+ add sp, 0x100
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end dp01t_00_3_getattr
+
+ thumb_func_start dp01_getattr_by_ch1_for_player_pokemon
+dp01_getattr_by_ch1_for_player_pokemon: @ 811E458
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x90
+ adds r7, r1, 0
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r6, 0
+ ldr r2, _0811E48C @ =gUnknown_02023A60
+ ldr r3, _0811E490 @ =gUnknown_02024A60
+ ldrb r0, [r3]
+ lsls r0, 9
+ adds r1, r2, 0x1
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x3B
+ bls _0811E482
+ bl _0811EBEE
+_0811E482:
+ lsls r0, 2
+ ldr r1, _0811E494 @ =_0811E498
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0811E48C: .4byte gUnknown_02023A60
+_0811E490: .4byte gUnknown_02024A60
+_0811E494: .4byte _0811E498
+ .align 2, 0
+_0811E498:
+ .4byte _0811E588
+ .4byte _0811E7AC
+ .4byte _0811E7BC
+ .4byte _0811E7CC
+ .4byte _0811E834
+ .4byte _0811E834
+ .4byte _0811E834
+ .4byte _0811E834
+ .4byte _0811E850
+ .4byte _0811E88C
+ .4byte _0811E88C
+ .4byte _0811E88C
+ .4byte _0811E88C
+ .4byte _0811EBEE
+ .4byte _0811EBEE
+ .4byte _0811EBEE
+ .4byte _0811EBEE
+ .4byte _0811E8A8
+ .4byte _0811E8B8
+ .4byte _0811E8E8
+ .4byte _0811E8F8
+ .4byte _0811E908
+ .4byte _0811E918
+ .4byte _0811E928
+ .4byte _0811E938
+ .4byte _0811E948
+ .4byte _0811E958
+ .4byte _0811E968
+ .4byte _0811E978
+ .4byte _0811E988
+ .4byte _0811E998
+ .4byte _0811E9A8
+ .4byte _0811E9F8
+ .4byte _0811EA08
+ .4byte _0811EA18
+ .4byte _0811EA28
+ .4byte _0811EA38
+ .4byte _0811EA48
+ .4byte _0811EA58
+ .4byte _0811EA68
+ .4byte _0811EA78
+ .4byte _0811EAAC
+ .4byte _0811EABC
+ .4byte _0811EACC
+ .4byte _0811EADC
+ .4byte _0811EAEC
+ .4byte _0811EAFC
+ .4byte _0811EB0C
+ .4byte _0811EB1C
+ .4byte _0811EB3C
+ .4byte _0811EB4C
+ .4byte _0811EB5C
+ .4byte _0811EB6C
+ .4byte _0811EB7C
+ .4byte _0811EB8C
+ .4byte _0811EB9C
+ .4byte _0811EBAC
+ .4byte _0811EBBC
+ .4byte _0811EBCC
+ .4byte _0811EBDC
+_0811E588:
+ movs r0, 0x64
+ adds r4, r5, 0
+ muls r4, r0
+ ldr r0, _0811E79C @ =gPlayerParty
+ adds r4, r0
+ adds r0, r4, 0
+ movs r1, 0xB
+ bl GetMonData
+ mov r1, sp
+ strh r0, [r1]
+ adds r0, r4, 0
+ movs r1, 0xC
+ bl GetMonData
+ mov r1, sp
+ strh r0, [r1, 0x2E]
+ movs r6, 0
+ add r0, sp, 0x24
+ mov r9, r0
+ movs r1, 0x3B
+ add r1, sp
+ mov r10, r1
+ mov r2, sp
+ adds r2, 0x2B
+ str r2, [sp, 0x80]
+ mov r0, sp
+ adds r0, 0x2A
+ str r0, [sp, 0x7C]
+ mov r1, sp
+ adds r1, 0x68
+ str r1, [sp, 0x8C]
+ adds r2, 0x5
+ str r2, [sp, 0x84]
+ adds r0, 0x12
+ str r0, [sp, 0x88]
+ mov r8, r4
+ add r4, sp, 0xC
+_0811E5D4:
+ adds r1, r6, 0
+ adds r1, 0xD
+ mov r0, r8
+ bl GetMonData
+ strh r0, [r4]
+ adds r1, r6, 0
+ adds r1, 0x11
+ mov r0, r8
+ bl GetMonData
+ mov r2, r9
+ adds r1, r2, r6
+ strb r0, [r1]
+ adds r4, 0x2
+ adds r6, 0x1
+ cmp r6, 0x3
+ ble _0811E5D4
+ movs r0, 0x64
+ adds r4, r5, 0
+ muls r4, r0
+ ldr r0, _0811E79C @ =gPlayerParty
+ adds r4, r0
+ adds r0, r4, 0
+ movs r1, 0x15
+ bl GetMonData
+ mov r1, r10
+ strb r0, [r1]
+ adds r0, r4, 0
+ movs r1, 0x20
+ bl GetMonData
+ ldr r2, [sp, 0x80]
+ strb r0, [r2]
+ adds r0, r4, 0
+ movs r1, 0x19
+ bl GetMonData
+ str r0, [sp, 0x44]
+ adds r0, r4, 0
+ movs r1, 0x27
+ bl GetMonData
+ mov r3, sp
+ movs r5, 0x1F
+ ands r0, r5
+ ldrb r2, [r3, 0x14]
+ movs r1, 0x20
+ negs r1, r1
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r3, 0x14]
+ adds r0, r4, 0
+ movs r1, 0x28
+ bl GetMonData
+ mov r3, sp
+ movs r6, 0x1F
+ ands r0, r6
+ lsls r0, 5
+ ldrh r2, [r3, 0x14]
+ ldr r1, _0811E7A0 @ =0xfffffc1f
+ ands r1, r2
+ orrs r1, r0
+ strh r1, [r3, 0x14]
+ adds r0, r4, 0
+ movs r1, 0x29
+ bl GetMonData
+ mov r3, sp
+ ands r0, r5
+ lsls r0, 2
+ ldrb r2, [r3, 0x15]
+ movs r1, 0x7D
+ negs r1, r1
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r3, 0x15]
+ adds r0, r4, 0
+ movs r1, 0x2A
+ bl GetMonData
+ movs r1, 0x1F
+ ands r1, r0
+ lsls r1, 15
+ ldr r0, [sp, 0x14]
+ ldr r2, _0811E7A4 @ =0xfff07fff
+ ands r0, r2
+ orrs r0, r1
+ str r0, [sp, 0x14]
+ adds r0, r4, 0
+ movs r1, 0x2B
+ bl GetMonData
+ mov r3, sp
+ ands r0, r6
+ lsls r0, 4
+ ldrh r2, [r3, 0x16]
+ ldr r1, _0811E7A8 @ =0xfffffe0f
+ ands r1, r2
+ orrs r1, r0
+ strh r1, [r3, 0x16]
+ adds r0, r4, 0
+ movs r1, 0x2C
+ bl GetMonData
+ mov r3, sp
+ ands r0, r5
+ lsls r0, 1
+ ldrb r2, [r3, 0x17]
+ movs r1, 0x3F
+ negs r1, r1
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r3, 0x17]
+ adds r0, r4, 0
+ movs r1, 0
+ bl GetMonData
+ str r0, [sp, 0x48]
+ adds r0, r4, 0
+ movs r1, 0x37
+ bl GetMonData
+ str r0, [sp, 0x4C]
+ adds r0, r4, 0
+ movs r1, 0x38
+ bl GetMonData
+ ldr r1, [sp, 0x7C]
+ strb r0, [r1]
+ adds r0, r4, 0
+ movs r1, 0x39
+ bl GetMonData
+ mov r1, sp
+ strh r0, [r1, 0x28]
+ adds r0, r4, 0
+ movs r1, 0x3A
+ bl GetMonData
+ mov r1, sp
+ strh r0, [r1, 0x2C]
+ adds r0, r4, 0
+ movs r1, 0x3B
+ bl GetMonData
+ mov r1, sp
+ strh r0, [r1, 0x2]
+ adds r0, r4, 0
+ movs r1, 0x3C
+ bl GetMonData
+ mov r1, sp
+ strh r0, [r1, 0x4]
+ adds r0, r4, 0
+ movs r1, 0x3D
+ bl GetMonData
+ mov r1, sp
+ strh r0, [r1, 0x6]
+ adds r0, r4, 0
+ movs r1, 0x3E
+ bl GetMonData
+ mov r1, sp
+ strh r0, [r1, 0x8]
+ adds r0, r4, 0
+ movs r1, 0x3F
+ bl GetMonData
+ mov r1, sp
+ strh r0, [r1, 0xA]
+ adds r0, r4, 0
+ movs r1, 0x2D
+ bl GetMonData
+ mov r3, sp
+ movs r1, 0x1
+ ands r0, r1
+ lsls r0, 6
+ ldrb r2, [r3, 0x17]
+ movs r1, 0x41
+ negs r1, r1
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r3, 0x17]
+ adds r0, r4, 0
+ movs r1, 0x2E
+ bl GetMonData
+ mov r3, sp
+ lsls r0, 7
+ ldrb r2, [r3, 0x17]
+ movs r1, 0x7F
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r3, 0x17]
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl GetMonData
+ str r0, [sp, 0x54]
+ adds r0, r4, 0
+ movs r1, 0x2
+ ldr r2, [sp, 0x8C]
+ bl GetMonData
+ ldr r0, [sp, 0x84]
+ ldr r1, [sp, 0x8C]
+ bl StringCopy10
+ adds r0, r4, 0
+ movs r1, 0x7
+ ldr r2, [sp, 0x88]
+ bl GetMonData
+ mov r2, sp
+ movs r6, 0
+_0811E78C:
+ adds r0, r7, r6
+ adds r1, r2, r6
+ ldrb r1, [r1]
+ strb r1, [r0]
+ adds r6, 0x1
+ cmp r6, 0x57
+ bls _0811E78C
+ b _0811EBEE
+ .align 2, 0
+_0811E79C: .4byte gPlayerParty
+_0811E7A0: .4byte 0xfffffc1f
+_0811E7A4: .4byte 0xfff07fff
+_0811E7A8: .4byte 0xfffffe0f
+_0811E7AC:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811E7B8 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0xB
+ b _0811EB26
+ .align 2, 0
+_0811E7B8: .4byte gPlayerParty
+_0811E7BC:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811E7C8 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0xC
+ b _0811EB26
+ .align 2, 0
+_0811E7C8: .4byte gPlayerParty
+_0811E7CC:
+ movs r6, 0
+ add r2, sp, 0x58
+ mov r9, r2
+ add r0, sp, 0x60
+ mov r10, r0
+ movs r0, 0x64
+ adds r1, r5, 0
+ muls r1, r0
+ ldr r0, _0811E830 @ =gPlayerParty
+ adds r4, r1, r0
+ mov r8, r9
+_0811E7E2:
+ adds r1, r6, 0
+ adds r1, 0xD
+ adds r0, r4, 0
+ bl GetMonData
+ mov r1, r8
+ strh r0, [r1]
+ adds r1, r6, 0
+ adds r1, 0x11
+ adds r0, r4, 0
+ bl GetMonData
+ mov r2, r10
+ adds r1, r2, r6
+ strb r0, [r1]
+ movs r0, 0x2
+ add r8, r0
+ adds r6, 0x1
+ cmp r6, 0x3
+ ble _0811E7E2
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811E830 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x15
+ bl GetMonData
+ mov r1, r9
+ strb r0, [r1, 0xC]
+ mov r2, r9
+ movs r6, 0
+_0811E820:
+ adds r0, r7, r6
+ adds r1, r2, r6
+ ldrb r1, [r1]
+ strb r1, [r0]
+ adds r6, 0x1
+ cmp r6, 0xF
+ bls _0811E820
+ b _0811EBEE
+ .align 2, 0
+_0811E830: .4byte gPlayerParty
+_0811E834:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811E84C @ =gPlayerParty
+ adds r0, r1
+ ldrb r1, [r3]
+ lsls r1, 9
+ adds r2, 0x1
+ adds r1, r2
+ ldrb r1, [r1]
+ adds r1, 0x9
+ b _0811EB26
+ .align 2, 0
+_0811E84C: .4byte gPlayerParty
+_0811E850:
+ movs r6, 0
+ movs r0, 0x64
+ adds r4, r5, 0
+ muls r4, r0
+ ldr r2, _0811E888 @ =gPlayerParty
+ mov r8, r2
+_0811E85C:
+ adds r1, r6, 0
+ adds r1, 0x11
+ mov r2, r8
+ adds r0, r4, r2
+ bl GetMonData
+ adds r1, r7, r6
+ strb r0, [r1]
+ adds r6, 0x1
+ cmp r6, 0x3
+ ble _0811E85C
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811E888 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x15
+ bl GetMonData
+ adds r1, r7, r6
+ strb r0, [r1]
+ adds r6, 0x1
+ b _0811EBEE
+ .align 2, 0
+_0811E888: .4byte gPlayerParty
+_0811E88C:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811E8A4 @ =gPlayerParty
+ adds r0, r1
+ ldrb r1, [r3]
+ lsls r1, 9
+ adds r2, 0x1
+ adds r1, r2
+ ldrb r1, [r1]
+ adds r1, 0x8
+ b _0811EBE6
+ .align 2, 0
+_0811E8A4: .4byte gPlayerParty
+_0811E8A8:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811E8B4 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x1
+ b _0811E8C2
+ .align 2, 0
+_0811E8B4: .4byte gPlayerParty
+_0811E8B8:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811E8E4 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x19
+_0811E8C2:
+ bl GetMonData
+ adds r1, r0, 0
+ strb r1, [r7]
+ movs r0, 0xFF
+ lsls r0, 8
+ ands r0, r1
+ lsrs r0, 8
+ strb r0, [r7, 0x1]
+ movs r0, 0xFF
+ lsls r0, 16
+ ands r0, r1
+ lsrs r0, 16
+ strb r0, [r7, 0x2]
+ movs r6, 0x3
+ b _0811EBEE
+ .align 2, 0
+_0811E8E4: .4byte gPlayerParty
+_0811E8E8:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811E8F4 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x1A
+ b _0811EBE6
+ .align 2, 0
+_0811E8F4: .4byte gPlayerParty
+_0811E8F8:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811E904 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x1B
+ b _0811EBE6
+ .align 2, 0
+_0811E904: .4byte gPlayerParty
+_0811E908:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811E914 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x1C
+ b _0811EBE6
+ .align 2, 0
+_0811E914: .4byte gPlayerParty
+_0811E918:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811E924 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x1D
+ b _0811EBE6
+ .align 2, 0
+_0811E924: .4byte gPlayerParty
+_0811E928:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811E934 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x1E
+ b _0811EBE6
+ .align 2, 0
+_0811E934: .4byte gPlayerParty
+_0811E938:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811E944 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x1F
+ b _0811EBE6
+ .align 2, 0
+_0811E944: .4byte gPlayerParty
+_0811E948:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811E954 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x20
+ b _0811EBE6
+ .align 2, 0
+_0811E954: .4byte gPlayerParty
+_0811E958:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811E964 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x22
+ b _0811EBE6
+ .align 2, 0
+_0811E964: .4byte gPlayerParty
+_0811E968:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811E974 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x23
+ b _0811EBE6
+ .align 2, 0
+_0811E974: .4byte gPlayerParty
+_0811E978:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811E984 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x24
+ b _0811EBE6
+ .align 2, 0
+_0811E984: .4byte gPlayerParty
+_0811E988:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811E994 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x25
+ b _0811EBE6
+ .align 2, 0
+_0811E994: .4byte gPlayerParty
+_0811E998:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811E9A4 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x26
+ b _0811EBE6
+ .align 2, 0
+_0811E9A4: .4byte gPlayerParty
+_0811E9A8:
+ movs r0, 0x64
+ adds r4, r5, 0
+ muls r4, r0
+ ldr r0, _0811E9F4 @ =gPlayerParty
+ adds r4, r0
+ adds r0, r4, 0
+ movs r1, 0x27
+ bl GetMonData
+ strb r0, [r7]
+ adds r0, r4, 0
+ movs r1, 0x28
+ bl GetMonData
+ strb r0, [r7, 0x1]
+ adds r0, r4, 0
+ movs r1, 0x29
+ bl GetMonData
+ strb r0, [r7, 0x2]
+ adds r0, r4, 0
+ movs r1, 0x2A
+ bl GetMonData
+ strb r0, [r7, 0x3]
+ adds r0, r4, 0
+ movs r1, 0x2B
+ bl GetMonData
+ strb r0, [r7, 0x4]
+ adds r0, r4, 0
+ movs r1, 0x2C
+ bl GetMonData
+ strb r0, [r7, 0x5]
+ movs r6, 0x6
+ b _0811EBEE
+ .align 2, 0
+_0811E9F4: .4byte gPlayerParty
+_0811E9F8:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811EA04 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x27
+ b _0811EBE6
+ .align 2, 0
+_0811EA04: .4byte gPlayerParty
+_0811EA08:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811EA14 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x28
+ b _0811EBE6
+ .align 2, 0
+_0811EA14: .4byte gPlayerParty
+_0811EA18:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811EA24 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x29
+ b _0811EBE6
+ .align 2, 0
+_0811EA24: .4byte gPlayerParty
+_0811EA28:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811EA34 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x2A
+ b _0811EBE6
+ .align 2, 0
+_0811EA34: .4byte gPlayerParty
+_0811EA38:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811EA44 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x2B
+ b _0811EBE6
+ .align 2, 0
+_0811EA44: .4byte gPlayerParty
+_0811EA48:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811EA54 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x2C
+ b _0811EBE6
+ .align 2, 0
+_0811EA54: .4byte gPlayerParty
+_0811EA58:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811EA64 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0
+ b _0811EA82
+ .align 2, 0
+_0811EA64: .4byte gPlayerParty
+_0811EA68:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811EA74 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x9
+ b _0811EB26
+ .align 2, 0
+_0811EA74: .4byte gPlayerParty
+_0811EA78:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811EAA8 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x37
+_0811EA82:
+ bl GetMonData
+ adds r1, r0, 0
+ strb r1, [r7]
+ movs r0, 0xFF
+ lsls r0, 8
+ ands r0, r1
+ lsrs r0, 8
+ strb r0, [r7, 0x1]
+ movs r0, 0xFF
+ lsls r0, 16
+ ands r0, r1
+ lsrs r0, 16
+ strb r0, [r7, 0x2]
+ lsrs r0, r1, 24
+ strb r0, [r7, 0x3]
+ movs r6, 0x4
+ b _0811EBEE
+ .align 2, 0
+_0811EAA8: .4byte gPlayerParty
+_0811EAAC:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811EAB8 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x38
+ b _0811EBE6
+ .align 2, 0
+_0811EAB8: .4byte gPlayerParty
+_0811EABC:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811EAC8 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x39
+ b _0811EB26
+ .align 2, 0
+_0811EAC8: .4byte gPlayerParty
+_0811EACC:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811EAD8 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x3A
+ b _0811EB26
+ .align 2, 0
+_0811EAD8: .4byte gPlayerParty
+_0811EADC:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811EAE8 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x3B
+ b _0811EB26
+ .align 2, 0
+_0811EAE8: .4byte gPlayerParty
+_0811EAEC:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811EAF8 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x3C
+ b _0811EB26
+ .align 2, 0
+_0811EAF8: .4byte gPlayerParty
+_0811EAFC:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811EB08 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x3D
+ b _0811EB26
+ .align 2, 0
+_0811EB08: .4byte gPlayerParty
+_0811EB0C:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811EB18 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x3E
+ b _0811EB26
+ .align 2, 0
+_0811EB18: .4byte gPlayerParty
+_0811EB1C:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811EB38 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x3F
+_0811EB26:
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ strb r0, [r7]
+ lsrs r0, 8
+ strb r0, [r7, 0x1]
+ movs r6, 0x2
+ b _0811EBEE
+ .align 2, 0
+_0811EB38: .4byte gPlayerParty
+_0811EB3C:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811EB48 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x16
+ b _0811EBE6
+ .align 2, 0
+_0811EB48: .4byte gPlayerParty
+_0811EB4C:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811EB58 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x17
+ b _0811EBE6
+ .align 2, 0
+_0811EB58: .4byte gPlayerParty
+_0811EB5C:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811EB68 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x18
+ b _0811EBE6
+ .align 2, 0
+_0811EB68: .4byte gPlayerParty
+_0811EB6C:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811EB78 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x21
+ b _0811EBE6
+ .align 2, 0
+_0811EB78: .4byte gPlayerParty
+_0811EB7C:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811EB88 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x2F
+ b _0811EBE6
+ .align 2, 0
+_0811EB88: .4byte gPlayerParty
+_0811EB8C:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811EB98 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x30
+ b _0811EBE6
+ .align 2, 0
+_0811EB98: .4byte gPlayerParty
+_0811EB9C:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811EBA8 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x32
+ b _0811EBE6
+ .align 2, 0
+_0811EBA8: .4byte gPlayerParty
+_0811EBAC:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811EBB8 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x33
+ b _0811EBE6
+ .align 2, 0
+_0811EBB8: .4byte gPlayerParty
+_0811EBBC:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811EBC8 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x34
+ b _0811EBE6
+ .align 2, 0
+_0811EBC8: .4byte gPlayerParty
+_0811EBCC:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811EBD8 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x35
+ b _0811EBE6
+ .align 2, 0
+_0811EBD8: .4byte gPlayerParty
+_0811EBDC:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811EC00 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x36
+_0811EBE6:
+ bl GetMonData
+ strb r0, [r7]
+ movs r6, 0x1
+_0811EBEE:
+ adds r0, r6, 0
+ add sp, 0x90
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0811EC00: .4byte gPlayerParty
+ thumb_func_end dp01_getattr_by_ch1_for_player_pokemon
+
+ thumb_func_start sub_811EC04
+sub_811EC04: @ 811EC04
+ push {lr}
+ bl dp01_tbl3_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_811EC04
+
+ thumb_func_start sub_811EC10
+sub_811EC10: @ 811EC10
+ push {r4,r5,lr}
+ ldr r1, _0811EC34 @ =gUnknown_02023A60
+ ldr r0, _0811EC38 @ =gUnknown_02024A60
+ ldrb r2, [r0]
+ lsls r0, r2, 9
+ adds r1, 0x2
+ adds r1, r0, r1
+ ldrb r0, [r1]
+ cmp r0, 0
+ bne _0811EC40
+ ldr r0, _0811EC3C @ =gUnknown_02024A6A
+ lsls r1, r2, 1
+ adds r1, r0
+ ldrb r0, [r1]
+ bl sub_811EC68
+ b _0811EC5E
+ .align 2, 0
+_0811EC34: .4byte gUnknown_02023A60
+_0811EC38: .4byte gUnknown_02024A60
+_0811EC3C: .4byte gUnknown_02024A6A
+_0811EC40:
+ ldrb r4, [r1]
+ movs r5, 0
+_0811EC44:
+ movs r0, 0x1
+ ands r0, r4
+ cmp r0, 0
+ beq _0811EC52
+ adds r0, r5, 0
+ bl sub_811EC68
+_0811EC52:
+ lsrs r4, 1
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x5
+ bls _0811EC44
+_0811EC5E:
+ bl dp01_tbl3_exec_completed
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_811EC10
+
+ thumb_func_start sub_811EC68
+sub_811EC68: @ 811EC68
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x34
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, _0811ECA0 @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ lsls r0, 9
+ ldr r2, _0811ECA4 @ =gUnknown_02023A63
+ adds r3, r0, r2
+ adds r6, r3, 0
+ subs r1, r2, 0x2
+ adds r0, r1
+ ldrb r0, [r0]
+ adds r7, r2, 0
+ cmp r0, 0x3B
+ bls _0811EC94
+ bl _0811F62E
+_0811EC94:
+ lsls r0, 2
+ ldr r1, _0811ECA8 @ =_0811ECAC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0811ECA0: .4byte gUnknown_02024A60
+_0811ECA4: .4byte gUnknown_02023A63
+_0811ECA8: .4byte _0811ECAC
+ .align 2, 0
+_0811ECAC:
+ .4byte _0811ED9C
+ .4byte _0811EF34
+ .4byte _0811EF54
+ .4byte _0811EF74
+ .4byte _0811EFCC
+ .4byte _0811EFCC
+ .4byte _0811EFCC
+ .4byte _0811EFCC
+ .4byte _0811EFF4
+ .4byte _0811F058
+ .4byte _0811F058
+ .4byte _0811F058
+ .4byte _0811F058
+ .4byte _0811F62E
+ .4byte _0811F62E
+ .4byte _0811F62E
+ .4byte _0811F62E
+ .4byte _0811F088
+ .4byte _0811F0A8
+ .4byte _0811F0C8
+ .4byte _0811F0E8
+ .4byte _0811F108
+ .4byte _0811F128
+ .4byte _0811F148
+ .4byte _0811F168
+ .4byte _0811F188
+ .4byte _0811F1A8
+ .4byte _0811F1C8
+ .4byte _0811F1E8
+ .4byte _0811F208
+ .4byte _0811F228
+ .4byte _0811F248
+ .4byte _0811F2B8
+ .4byte _0811F2D8
+ .4byte _0811F2F8
+ .4byte _0811F318
+ .4byte _0811F338
+ .4byte _0811F358
+ .4byte _0811F378
+ .4byte _0811F398
+ .4byte _0811F3B8
+ .4byte _0811F3D8
+ .4byte _0811F3F8
+ .4byte _0811F418
+ .4byte _0811F438
+ .4byte _0811F458
+ .4byte _0811F478
+ .4byte _0811F498
+ .4byte _0811F4B8
+ .4byte _0811F4D8
+ .4byte _0811F4F8
+ .4byte _0811F518
+ .4byte _0811F538
+ .4byte _0811F558
+ .4byte _0811F578
+ .4byte _0811F598
+ .4byte _0811F5B8
+ .4byte _0811F5D8
+ .4byte _0811F5F8
+ .4byte _0811F618
+_0811ED9C:
+ movs r0, 0x64
+ adds r4, r5, 0
+ muls r4, r0
+ ldr r0, _0811EF30 @ =gPlayerParty
+ adds r4, r0
+ adds r0, r4, 0
+ movs r1, 0xB
+ adds r2, r6, 0
+ bl SetMonData
+ adds r2, r6, 0
+ adds r2, 0x2E
+ adds r0, r4, 0
+ movs r1, 0xC
+ bl SetMonData
+ movs r0, 0
+ mov r8, r0
+ movs r0, 0x3B
+ adds r0, r6
+ mov r10, r0
+ adds r0, r6, 0
+ adds r0, 0x2B
+ str r0, [sp, 0x20]
+ adds r0, 0x19
+ str r0, [sp, 0x28]
+ adds r0, 0x4
+ str r0, [sp, 0x2C]
+ adds r0, 0x4
+ str r0, [sp, 0x30]
+ subs r0, 0x22
+ str r0, [sp, 0x1C]
+ subs r0, 0x2
+ str r0, [sp, 0x18]
+ adds r0, 0x4
+ str r0, [sp, 0x24]
+ adds r0, r6, 0x2
+ str r0, [sp, 0x4]
+ adds r0, r6, 0x4
+ str r0, [sp, 0x8]
+ adds r0, r6, 0x6
+ str r0, [sp, 0xC]
+ adds r0, 0x2
+ str r0, [sp, 0x10]
+ adds r0, 0x2
+ str r0, [sp, 0x14]
+ mov r9, r4
+ adds r7, r6, 0
+ adds r7, 0x24
+ adds r4, r6, 0
+ adds r4, 0xC
+_0811EE02:
+ mov r1, r8
+ adds r1, 0xD
+ mov r0, r9
+ adds r2, r4, 0
+ bl SetMonData
+ mov r1, r8
+ adds r1, 0x11
+ mov r0, r9
+ adds r2, r7, 0
+ bl SetMonData
+ adds r7, 0x1
+ adds r4, 0x2
+ movs r0, 0x1
+ add r8, r0
+ mov r0, r8
+ cmp r0, 0x3
+ ble _0811EE02
+ movs r0, 0x64
+ adds r4, r5, 0
+ muls r4, r0
+ ldr r0, _0811EF30 @ =gPlayerParty
+ adds r4, r0
+ adds r0, r4, 0
+ movs r1, 0x15
+ mov r2, r10
+ bl SetMonData
+ adds r0, r4, 0
+ movs r1, 0x20
+ ldr r2, [sp, 0x20]
+ bl SetMonData
+ adds r0, r4, 0
+ movs r1, 0x19
+ ldr r2, [sp, 0x28]
+ bl SetMonData
+ ldrb r0, [r6, 0x14]
+ lsls r0, 27
+ lsrs r0, 27
+ mov r1, sp
+ strb r0, [r1]
+ adds r0, r4, 0
+ movs r1, 0x27
+ mov r2, sp
+ bl SetMonData
+ mov r1, sp
+ ldrh r0, [r6, 0x14]
+ lsls r0, 22
+ lsrs r0, 27
+ strb r0, [r1]
+ adds r0, r4, 0
+ movs r1, 0x28
+ mov r2, sp
+ bl SetMonData
+ mov r1, sp
+ ldrb r0, [r6, 0x15]
+ lsls r0, 25
+ lsrs r0, 27
+ strb r0, [r1]
+ adds r0, r4, 0
+ movs r1, 0x29
+ mov r2, sp
+ bl SetMonData
+ mov r1, sp
+ ldr r0, [r6, 0x14]
+ lsls r0, 12
+ lsrs r0, 27
+ strb r0, [r1]
+ adds r0, r4, 0
+ movs r1, 0x2A
+ mov r2, sp
+ bl SetMonData
+ mov r1, sp
+ ldrh r0, [r6, 0x16]
+ lsls r0, 23
+ lsrs r0, 27
+ strb r0, [r1]
+ adds r0, r4, 0
+ movs r1, 0x2B
+ mov r2, sp
+ bl SetMonData
+ mov r1, sp
+ ldrb r0, [r6, 0x17]
+ lsls r0, 26
+ lsrs r0, 27
+ strb r0, [r1]
+ adds r0, r4, 0
+ movs r1, 0x2C
+ mov r2, sp
+ bl SetMonData
+ adds r0, r4, 0
+ movs r1, 0
+ ldr r2, [sp, 0x2C]
+ bl SetMonData
+ adds r0, r4, 0
+ movs r1, 0x37
+ ldr r2, [sp, 0x30]
+ bl SetMonData
+ adds r0, r4, 0
+ movs r1, 0x38
+ ldr r2, [sp, 0x1C]
+ bl SetMonData
+ adds r0, r4, 0
+ movs r1, 0x39
+ ldr r2, [sp, 0x18]
+ bl SetMonData
+ adds r0, r4, 0
+ movs r1, 0x3A
+ ldr r2, [sp, 0x24]
+ bl SetMonData
+ adds r0, r4, 0
+ movs r1, 0x3B
+ ldr r2, [sp, 0x4]
+ bl SetMonData
+ adds r0, r4, 0
+ movs r1, 0x3C
+ ldr r2, [sp, 0x8]
+ bl SetMonData
+ adds r0, r4, 0
+ movs r1, 0x3D
+ ldr r2, [sp, 0xC]
+ bl SetMonData
+ adds r0, r4, 0
+ movs r1, 0x3E
+ ldr r2, [sp, 0x10]
+ bl SetMonData
+ adds r0, r4, 0
+ movs r1, 0x3F
+ ldr r2, [sp, 0x14]
+ bl SetMonData
+ b _0811F62E
+ .align 2, 0
+_0811EF30: .4byte gPlayerParty
+_0811EF34:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811EF4C @ =gPlayerParty
+ adds r0, r1
+ ldr r1, _0811EF50 @ =gUnknown_02024A60
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0xB
+ bl SetMonData
+ b _0811F62E
+ .align 2, 0
+_0811EF4C: .4byte gPlayerParty
+_0811EF50: .4byte gUnknown_02024A60
+_0811EF54:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811EF6C @ =gPlayerParty
+ adds r0, r1
+ ldr r1, _0811EF70 @ =gUnknown_02024A60
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0xC
+ bl SetMonData
+ b _0811F62E
+ .align 2, 0
+_0811EF6C: .4byte gPlayerParty
+_0811EF70: .4byte gUnknown_02024A60
+_0811EF74:
+ movs r0, 0
+ mov r8, r0
+ movs r0, 0xC
+ adds r0, r3
+ mov r9, r0
+ movs r0, 0x64
+ adds r1, r5, 0
+ muls r1, r0
+ ldr r0, _0811EFC8 @ =gPlayerParty
+ adds r7, r1, r0
+ adds r6, r3, 0
+ adds r6, 0x8
+ adds r4, r3, 0
+_0811EF8E:
+ mov r1, r8
+ adds r1, 0xD
+ adds r0, r7, 0
+ adds r2, r4, 0
+ bl SetMonData
+ mov r1, r8
+ adds r1, 0x11
+ adds r0, r7, 0
+ adds r2, r6, 0
+ bl SetMonData
+ adds r6, 0x1
+ adds r4, 0x2
+ movs r0, 0x1
+ add r8, r0
+ mov r0, r8
+ cmp r0, 0x3
+ ble _0811EF8E
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811EFC8 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x15
+ mov r2, r9
+ bl SetMonData
+ b _0811F62E
+ .align 2, 0
+_0811EFC8: .4byte gPlayerParty
+_0811EFCC:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811EFE8 @ =gPlayerParty
+ adds r0, r1
+ ldr r3, _0811EFEC @ =gUnknown_02023A60
+ ldr r1, _0811EFF0 @ =gUnknown_02024A60
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r1, r3, 0x1
+ adds r1, r2, r1
+ ldrb r1, [r1]
+ adds r1, 0x9
+ b _0811F070
+ .align 2, 0
+_0811EFE8: .4byte gPlayerParty
+_0811EFEC: .4byte gUnknown_02023A60
+_0811EFF0: .4byte gUnknown_02024A60
+_0811EFF4:
+ movs r0, 0x64
+ adds r4, r5, 0
+ muls r4, r0
+ ldr r0, _0811F050 @ =gPlayerParty
+ adds r4, r0
+ ldr r5, _0811F054 @ =gUnknown_02024A60
+ ldrb r2, [r5]
+ lsls r2, 9
+ adds r2, r7
+ adds r0, r4, 0
+ movs r1, 0x11
+ bl SetMonData
+ ldrb r2, [r5]
+ lsls r2, 9
+ adds r0, r7, 0x1
+ adds r2, r0
+ adds r0, r4, 0
+ movs r1, 0x12
+ bl SetMonData
+ ldrb r2, [r5]
+ lsls r2, 9
+ adds r0, r7, 0x2
+ adds r2, r0
+ adds r0, r4, 0
+ movs r1, 0x13
+ bl SetMonData
+ ldrb r2, [r5]
+ lsls r2, 9
+ adds r0, r7, 0x3
+ adds r2, r0
+ adds r0, r4, 0
+ movs r1, 0x14
+ bl SetMonData
+ ldrb r2, [r5]
+ lsls r2, 9
+ adds r0, r7, 0x4
+ adds r2, r0
+ adds r0, r4, 0
+ movs r1, 0x15
+ bl SetMonData
+ b _0811F62E
+ .align 2, 0
+_0811F050: .4byte gPlayerParty
+_0811F054: .4byte gUnknown_02024A60
+_0811F058:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811F07C @ =gPlayerParty
+ adds r0, r1
+ ldr r3, _0811F080 @ =gUnknown_02023A60
+ ldr r1, _0811F084 @ =gUnknown_02024A60
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r1, r3, 0x1
+ adds r1, r2, r1
+ ldrb r1, [r1]
+ adds r1, 0x8
+_0811F070:
+ adds r3, 0x3
+ adds r2, r3
+ bl SetMonData
+ b _0811F62E
+ .align 2, 0
+_0811F07C: .4byte gPlayerParty
+_0811F080: .4byte gUnknown_02023A60
+_0811F084: .4byte gUnknown_02024A60
+_0811F088:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811F0A0 @ =gPlayerParty
+ adds r0, r1
+ ldr r1, _0811F0A4 @ =gUnknown_02024A60
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x1
+ bl SetMonData
+ b _0811F62E
+ .align 2, 0
+_0811F0A0: .4byte gPlayerParty
+_0811F0A4: .4byte gUnknown_02024A60
+_0811F0A8:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811F0C0 @ =gPlayerParty
+ adds r0, r1
+ ldr r1, _0811F0C4 @ =gUnknown_02024A60
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x19
+ bl SetMonData
+ b _0811F62E
+ .align 2, 0
+_0811F0C0: .4byte gPlayerParty
+_0811F0C4: .4byte gUnknown_02024A60
+_0811F0C8:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811F0E0 @ =gPlayerParty
+ adds r0, r1
+ ldr r1, _0811F0E4 @ =gUnknown_02024A60
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x1A
+ bl SetMonData
+ b _0811F62E
+ .align 2, 0
+_0811F0E0: .4byte gPlayerParty
+_0811F0E4: .4byte gUnknown_02024A60
+_0811F0E8:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811F100 @ =gPlayerParty
+ adds r0, r1
+ ldr r1, _0811F104 @ =gUnknown_02024A60
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x1B
+ bl SetMonData
+ b _0811F62E
+ .align 2, 0
+_0811F100: .4byte gPlayerParty
+_0811F104: .4byte gUnknown_02024A60
+_0811F108:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811F120 @ =gPlayerParty
+ adds r0, r1
+ ldr r1, _0811F124 @ =gUnknown_02024A60
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x1C
+ bl SetMonData
+ b _0811F62E
+ .align 2, 0
+_0811F120: .4byte gPlayerParty
+_0811F124: .4byte gUnknown_02024A60
+_0811F128:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811F140 @ =gPlayerParty
+ adds r0, r1
+ ldr r1, _0811F144 @ =gUnknown_02024A60
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x1D
+ bl SetMonData
+ b _0811F62E
+ .align 2, 0
+_0811F140: .4byte gPlayerParty
+_0811F144: .4byte gUnknown_02024A60
+_0811F148:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811F160 @ =gPlayerParty
+ adds r0, r1
+ ldr r1, _0811F164 @ =gUnknown_02024A60
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x1E
+ bl SetMonData
+ b _0811F62E
+ .align 2, 0
+_0811F160: .4byte gPlayerParty
+_0811F164: .4byte gUnknown_02024A60
+_0811F168:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811F180 @ =gPlayerParty
+ adds r0, r1
+ ldr r1, _0811F184 @ =gUnknown_02024A60
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x1F
+ bl SetMonData
+ b _0811F62E
+ .align 2, 0
+_0811F180: .4byte gPlayerParty
+_0811F184: .4byte gUnknown_02024A60
+_0811F188:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811F1A0 @ =gPlayerParty
+ adds r0, r1
+ ldr r1, _0811F1A4 @ =gUnknown_02024A60
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x20
+ bl SetMonData
+ b _0811F62E
+ .align 2, 0
+_0811F1A0: .4byte gPlayerParty
+_0811F1A4: .4byte gUnknown_02024A60
+_0811F1A8:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811F1C0 @ =gPlayerParty
+ adds r0, r1
+ ldr r1, _0811F1C4 @ =gUnknown_02024A60
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x22
+ bl SetMonData
+ b _0811F62E
+ .align 2, 0
+_0811F1C0: .4byte gPlayerParty
+_0811F1C4: .4byte gUnknown_02024A60
+_0811F1C8:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811F1E0 @ =gPlayerParty
+ adds r0, r1
+ ldr r1, _0811F1E4 @ =gUnknown_02024A60
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x23
+ bl SetMonData
+ b _0811F62E
+ .align 2, 0
+_0811F1E0: .4byte gPlayerParty
+_0811F1E4: .4byte gUnknown_02024A60
+_0811F1E8:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811F200 @ =gPlayerParty
+ adds r0, r1
+ ldr r1, _0811F204 @ =gUnknown_02024A60
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x24
+ bl SetMonData
+ b _0811F62E
+ .align 2, 0
+_0811F200: .4byte gPlayerParty
+_0811F204: .4byte gUnknown_02024A60
+_0811F208:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811F220 @ =gPlayerParty
+ adds r0, r1
+ ldr r1, _0811F224 @ =gUnknown_02024A60
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x25
+ bl SetMonData
+ b _0811F62E
+ .align 2, 0
+_0811F220: .4byte gPlayerParty
+_0811F224: .4byte gUnknown_02024A60
+_0811F228:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811F240 @ =gPlayerParty
+ adds r0, r1
+ ldr r1, _0811F244 @ =gUnknown_02024A60
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x26
+ bl SetMonData
+ b _0811F62E
+ .align 2, 0
+_0811F240: .4byte gPlayerParty
+_0811F244: .4byte gUnknown_02024A60
+_0811F248:
+ movs r0, 0x64
+ adds r4, r5, 0
+ muls r4, r0
+ ldr r0, _0811F2B0 @ =gPlayerParty
+ adds r4, r0
+ ldr r5, _0811F2B4 @ =gUnknown_02024A60
+ ldrb r2, [r5]
+ lsls r2, 9
+ adds r2, r7
+ adds r0, r4, 0
+ movs r1, 0x27
+ bl SetMonData
+ ldrb r2, [r5]
+ lsls r2, 9
+ adds r0, r7, 0x1
+ adds r2, r0
+ adds r0, r4, 0
+ movs r1, 0x28
+ bl SetMonData
+ ldrb r2, [r5]
+ lsls r2, 9
+ adds r0, r7, 0x2
+ adds r2, r0
+ adds r0, r4, 0
+ movs r1, 0x29
+ bl SetMonData
+ ldrb r2, [r5]
+ lsls r2, 9
+ adds r0, r7, 0x3
+ adds r2, r0
+ adds r0, r4, 0
+ movs r1, 0x2A
+ bl SetMonData
+ ldrb r2, [r5]
+ lsls r2, 9
+ adds r0, r7, 0x4
+ adds r2, r0
+ adds r0, r4, 0
+ movs r1, 0x2B
+ bl SetMonData
+ ldrb r2, [r5]
+ lsls r2, 9
+ adds r0, r7, 0x5
+ adds r2, r0
+ adds r0, r4, 0
+ b _0811F368
+ .align 2, 0
+_0811F2B0: .4byte gPlayerParty
+_0811F2B4: .4byte gUnknown_02024A60
+_0811F2B8:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811F2D0 @ =gPlayerParty
+ adds r0, r1
+ ldr r1, _0811F2D4 @ =gUnknown_02024A60
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x27
+ bl SetMonData
+ b _0811F62E
+ .align 2, 0
+_0811F2D0: .4byte gPlayerParty
+_0811F2D4: .4byte gUnknown_02024A60
+_0811F2D8:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811F2F0 @ =gPlayerParty
+ adds r0, r1
+ ldr r1, _0811F2F4 @ =gUnknown_02024A60
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x28
+ bl SetMonData
+ b _0811F62E
+ .align 2, 0
+_0811F2F0: .4byte gPlayerParty
+_0811F2F4: .4byte gUnknown_02024A60
+_0811F2F8:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811F310 @ =gPlayerParty
+ adds r0, r1
+ ldr r1, _0811F314 @ =gUnknown_02024A60
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x29
+ bl SetMonData
+ b _0811F62E
+ .align 2, 0
+_0811F310: .4byte gPlayerParty
+_0811F314: .4byte gUnknown_02024A60
+_0811F318:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811F330 @ =gPlayerParty
+ adds r0, r1
+ ldr r1, _0811F334 @ =gUnknown_02024A60
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x2A
+ bl SetMonData
+ b _0811F62E
+ .align 2, 0
+_0811F330: .4byte gPlayerParty
+_0811F334: .4byte gUnknown_02024A60
+_0811F338:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811F350 @ =gPlayerParty
+ adds r0, r1
+ ldr r1, _0811F354 @ =gUnknown_02024A60
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x2B
+ bl SetMonData
+ b _0811F62E
+ .align 2, 0
+_0811F350: .4byte gPlayerParty
+_0811F354: .4byte gUnknown_02024A60
+_0811F358:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811F370 @ =gPlayerParty
+ adds r0, r1
+ ldr r1, _0811F374 @ =gUnknown_02024A60
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+_0811F368:
+ movs r1, 0x2C
+ bl SetMonData
+ b _0811F62E
+ .align 2, 0
+_0811F370: .4byte gPlayerParty
+_0811F374: .4byte gUnknown_02024A60
+_0811F378:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811F390 @ =gPlayerParty
+ adds r0, r1
+ ldr r1, _0811F394 @ =gUnknown_02024A60
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0
+ bl SetMonData
+ b _0811F62E
+ .align 2, 0
+_0811F390: .4byte gPlayerParty
+_0811F394: .4byte gUnknown_02024A60
+_0811F398:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811F3B0 @ =gPlayerParty
+ adds r0, r1
+ ldr r1, _0811F3B4 @ =gUnknown_02024A60
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x9
+ bl SetMonData
+ b _0811F62E
+ .align 2, 0
+_0811F3B0: .4byte gPlayerParty
+_0811F3B4: .4byte gUnknown_02024A60
+_0811F3B8:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811F3D0 @ =gPlayerParty
+ adds r0, r1
+ ldr r1, _0811F3D4 @ =gUnknown_02024A60
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x37
+ bl SetMonData
+ b _0811F62E
+ .align 2, 0
+_0811F3D0: .4byte gPlayerParty
+_0811F3D4: .4byte gUnknown_02024A60
+_0811F3D8:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811F3F0 @ =gPlayerParty
+ adds r0, r1
+ ldr r1, _0811F3F4 @ =gUnknown_02024A60
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x38
+ bl SetMonData
+ b _0811F62E
+ .align 2, 0
+_0811F3F0: .4byte gPlayerParty
+_0811F3F4: .4byte gUnknown_02024A60
+_0811F3F8:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811F410 @ =gPlayerParty
+ adds r0, r1
+ ldr r1, _0811F414 @ =gUnknown_02024A60
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x39
+ bl SetMonData
+ b _0811F62E
+ .align 2, 0
+_0811F410: .4byte gPlayerParty
+_0811F414: .4byte gUnknown_02024A60
+_0811F418:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811F430 @ =gPlayerParty
+ adds r0, r1
+ ldr r1, _0811F434 @ =gUnknown_02024A60
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x3A
+ bl SetMonData
+ b _0811F62E
+ .align 2, 0
+_0811F430: .4byte gPlayerParty
+_0811F434: .4byte gUnknown_02024A60
+_0811F438:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811F450 @ =gPlayerParty
+ adds r0, r1
+ ldr r1, _0811F454 @ =gUnknown_02024A60
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x3B
+ bl SetMonData
+ b _0811F62E
+ .align 2, 0
+_0811F450: .4byte gPlayerParty
+_0811F454: .4byte gUnknown_02024A60
+_0811F458:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811F470 @ =gPlayerParty
+ adds r0, r1
+ ldr r1, _0811F474 @ =gUnknown_02024A60
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x3C
+ bl SetMonData
+ b _0811F62E
+ .align 2, 0
+_0811F470: .4byte gPlayerParty
+_0811F474: .4byte gUnknown_02024A60
+_0811F478:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811F490 @ =gPlayerParty
+ adds r0, r1
+ ldr r1, _0811F494 @ =gUnknown_02024A60
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x3D
+ bl SetMonData
+ b _0811F62E
+ .align 2, 0
+_0811F490: .4byte gPlayerParty
+_0811F494: .4byte gUnknown_02024A60
+_0811F498:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811F4B0 @ =gPlayerParty
+ adds r0, r1
+ ldr r1, _0811F4B4 @ =gUnknown_02024A60
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x3E
+ bl SetMonData
+ b _0811F62E
+ .align 2, 0
+_0811F4B0: .4byte gPlayerParty
+_0811F4B4: .4byte gUnknown_02024A60
+_0811F4B8:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811F4D0 @ =gPlayerParty
+ adds r0, r1
+ ldr r1, _0811F4D4 @ =gUnknown_02024A60
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x3F
+ bl SetMonData
+ b _0811F62E
+ .align 2, 0
+_0811F4D0: .4byte gPlayerParty
+_0811F4D4: .4byte gUnknown_02024A60
+_0811F4D8:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811F4F0 @ =gPlayerParty
+ adds r0, r1
+ ldr r1, _0811F4F4 @ =gUnknown_02024A60
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x16
+ bl SetMonData
+ b _0811F62E
+ .align 2, 0
+_0811F4F0: .4byte gPlayerParty
+_0811F4F4: .4byte gUnknown_02024A60
+_0811F4F8:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811F510 @ =gPlayerParty
+ adds r0, r1
+ ldr r1, _0811F514 @ =gUnknown_02024A60
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x17
+ bl SetMonData
+ b _0811F62E
+ .align 2, 0
+_0811F510: .4byte gPlayerParty
+_0811F514: .4byte gUnknown_02024A60
+_0811F518:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811F530 @ =gPlayerParty
+ adds r0, r1
+ ldr r1, _0811F534 @ =gUnknown_02024A60
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x18
+ bl SetMonData
+ b _0811F62E
+ .align 2, 0
+_0811F530: .4byte gPlayerParty
+_0811F534: .4byte gUnknown_02024A60
+_0811F538:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811F550 @ =gPlayerParty
+ adds r0, r1
+ ldr r1, _0811F554 @ =gUnknown_02024A60
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x21
+ bl SetMonData
+ b _0811F62E
+ .align 2, 0
+_0811F550: .4byte gPlayerParty
+_0811F554: .4byte gUnknown_02024A60
+_0811F558:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811F570 @ =gPlayerParty
+ adds r0, r1
+ ldr r1, _0811F574 @ =gUnknown_02024A60
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x2F
+ bl SetMonData
+ b _0811F62E
+ .align 2, 0
+_0811F570: .4byte gPlayerParty
+_0811F574: .4byte gUnknown_02024A60
+_0811F578:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811F590 @ =gPlayerParty
+ adds r0, r1
+ ldr r1, _0811F594 @ =gUnknown_02024A60
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x30
+ bl SetMonData
+ b _0811F62E
+ .align 2, 0
+_0811F590: .4byte gPlayerParty
+_0811F594: .4byte gUnknown_02024A60
+_0811F598:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811F5B0 @ =gPlayerParty
+ adds r0, r1
+ ldr r1, _0811F5B4 @ =gUnknown_02024A60
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x32
+ bl SetMonData
+ b _0811F62E
+ .align 2, 0
+_0811F5B0: .4byte gPlayerParty
+_0811F5B4: .4byte gUnknown_02024A60
+_0811F5B8:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811F5D0 @ =gPlayerParty
+ adds r0, r1
+ ldr r1, _0811F5D4 @ =gUnknown_02024A60
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x33
+ bl SetMonData
+ b _0811F62E
+ .align 2, 0
+_0811F5D0: .4byte gPlayerParty
+_0811F5D4: .4byte gUnknown_02024A60
+_0811F5D8:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811F5F0 @ =gPlayerParty
+ adds r0, r1
+ ldr r1, _0811F5F4 @ =gUnknown_02024A60
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x34
+ bl SetMonData
+ b _0811F62E
+ .align 2, 0
+_0811F5F0: .4byte gPlayerParty
+_0811F5F4: .4byte gUnknown_02024A60
+_0811F5F8:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811F610 @ =gPlayerParty
+ adds r0, r1
+ ldr r1, _0811F614 @ =gUnknown_02024A60
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x35
+ bl SetMonData
+ b _0811F62E
+ .align 2, 0
+_0811F610: .4byte gPlayerParty
+_0811F614: .4byte gUnknown_02024A60
+_0811F618:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811F658 @ =gPlayerParty
+ adds r0, r1
+ ldr r1, _0811F65C @ =gUnknown_02024A60
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x36
+ bl SetMonData
+_0811F62E:
+ ldr r2, _0811F660 @ =gUnknown_02024A6A
+ ldr r0, _0811F65C @ =gUnknown_02024A60
+ ldrb r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r2
+ ldrh r2, [r0]
+ movs r0, 0x64
+ muls r0, r2
+ ldr r2, _0811F658 @ =gPlayerParty
+ adds r0, r2
+ bl sub_80324F8
+ add sp, 0x34
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811F658: .4byte gPlayerParty
+_0811F65C: .4byte gUnknown_02024A60
+_0811F660: .4byte gUnknown_02024A6A
+ thumb_func_end sub_811EC68
+
+ thumb_func_start sub_811F664
+sub_811F664: @ 811F664
+ push {r4-r7,lr}
+ ldr r1, _0811F6C8 @ =gUnknown_02024A6A
+ ldr r7, _0811F6CC @ =gUnknown_02024A60
+ ldrb r2, [r7]
+ lsls r0, r2, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ adds r3, r1, 0
+ muls r3, r0
+ ldr r4, _0811F6D0 @ =gUnknown_02023A60
+ lsls r2, 9
+ adds r0, r4, 0x1
+ adds r0, r2, r0
+ ldrb r0, [r0]
+ ldr r1, _0811F6D4 @ =gPlayerParty
+ adds r0, r1
+ adds r5, r3, r0
+ movs r3, 0
+ adds r0, r4, 0x2
+ adds r2, r0
+ ldrb r2, [r2]
+ cmp r3, r2
+ bcs _0811F6BC
+ adds r6, r4, 0
+ adds r2, r7, 0
+ adds r4, r0, 0
+_0811F69A:
+ adds r1, r5, r3
+ ldrb r0, [r2]
+ lsls r0, 9
+ adds r0, 0x3
+ adds r0, r3, r0
+ adds r0, r6
+ ldrb r0, [r0]
+ strb r0, [r1]
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldrb r0, [r2]
+ lsls r0, 9
+ adds r0, r4
+ ldrb r0, [r0]
+ cmp r3, r0
+ bcc _0811F69A
+_0811F6BC:
+ bl dp01_tbl3_exec_completed
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811F6C8: .4byte gUnknown_02024A6A
+_0811F6CC: .4byte gUnknown_02024A60
+_0811F6D0: .4byte gUnknown_02023A60
+_0811F6D4: .4byte gPlayerParty
+ thumb_func_end sub_811F664
+
+ thumb_func_start sub_811F6D8
+sub_811F6D8: @ 811F6D8
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ ldr r0, _0811F7CC @ =gUnknown_02024A6A
+ mov r8, r0
+ ldr r6, _0811F7D0 @ =gUnknown_02024A60
+ ldrb r1, [r6]
+ lsls r0, r1, 1
+ add r0, r8
+ ldrh r0, [r0]
+ movs r5, 0x64
+ muls r0, r5
+ ldr r4, _0811F7D4 @ =gPlayerParty
+ adds r0, r4
+ bl sub_80318FC
+ ldrb r0, [r6]
+ lsls r0, 1
+ add r0, r8
+ ldrh r0, [r0]
+ muls r0, r5
+ adds r0, r4
+ movs r1, 0xB
+ bl GetMonData
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ ldrb r0, [r6]
+ bl battle_get_per_side_status
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl GetMonSpriteTemplate_803C56C
+ ldr r0, _0811F7D8 @ =gUnknown_02024E8C
+ mov r8, r0
+ ldrb r0, [r6]
+ movs r1, 0x2
+ bl sub_8077ABC
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ ldrb r0, [r6]
+ bl sub_8077F68
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldrb r0, [r6]
+ bl sub_8079E90
+ adds r3, r0, 0
+ lsls r3, 24
+ lsrs r3, 24
+ mov r0, r8
+ adds r1, r5, 0
+ adds r2, r4, 0
+ bl CreateSprite
+ ldr r4, _0811F7DC @ =gUnknown_02024BE0
+ ldrb r1, [r6]
+ adds r1, r4
+ strb r0, [r1]
+ ldr r5, _0811F7E0 @ =gSprites
+ ldrb r0, [r6]
+ adds r0, r4
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldr r1, _0811F7E4 @ =0x0000ff10
+ strh r1, [r0, 0x24]
+ ldrb r2, [r6]
+ adds r0, r2, r4
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ strh r2, [r0, 0x2E]
+ ldrb r3, [r6]
+ adds r0, r3, r4
+ ldrb r0, [r0]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r5
+ lsls r3, 4
+ ldrb r2, [r1, 0x5]
+ movs r0, 0xF
+ ands r0, r2
+ orrs r0, r3
+ strb r0, [r1, 0x5]
+ ldrb r2, [r6]
+ adds r4, r2, r4
+ ldrb r1, [r4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldr r1, _0811F7E8 @ =gUnknown_02024E84
+ adds r2, r1
+ ldrb r1, [r2]
+ bl StartSpriteAnim
+ ldr r1, _0811F7EC @ =gUnknown_03004330
+ ldrb r0, [r6]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _0811F7F0 @ =sub_811DDE8
+ str r1, [r0]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811F7CC: .4byte gUnknown_02024A6A
+_0811F7D0: .4byte gUnknown_02024A60
+_0811F7D4: .4byte gPlayerParty
+_0811F7D8: .4byte gUnknown_02024E8C
+_0811F7DC: .4byte gUnknown_02024BE0
+_0811F7E0: .4byte gSprites
+_0811F7E4: .4byte 0x0000ff10
+_0811F7E8: .4byte gUnknown_02024E84
+_0811F7EC: .4byte gUnknown_03004330
+_0811F7F0: .4byte sub_811DDE8
+ thumb_func_end sub_811F6D8
+
+ thumb_func_start sub_811F7F4
+sub_811F7F4: @ 811F7F4
+ push {r4-r6,lr}
+ ldr r5, _0811F84C @ =gUnknown_02024A60
+ ldrb r0, [r5]
+ ldr r4, _0811F850 @ =gUnknown_02023A60
+ lsls r1, r0, 9
+ adds r6, r4, 0x2
+ adds r1, r6
+ ldrb r1, [r1]
+ bl sub_8032AA8
+ ldr r2, _0811F854 @ =gUnknown_02024A6A
+ ldrb r0, [r5]
+ lsls r1, r0, 1
+ adds r1, r2
+ lsls r0, 9
+ adds r4, 0x1
+ adds r0, r4
+ ldrb r0, [r0]
+ strh r0, [r1]
+ ldrb r1, [r5]
+ lsls r0, r1, 1
+ adds r0, r2
+ ldrh r2, [r0]
+ movs r0, 0x64
+ muls r0, r2
+ ldr r2, _0811F858 @ =gPlayerParty
+ adds r0, r2
+ bl sub_80318FC
+ ldrb r0, [r5]
+ lsls r1, r0, 9
+ adds r1, r6
+ ldrb r1, [r1]
+ bl sub_811F864
+ ldr r1, _0811F85C @ =gUnknown_03004330
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _0811F860 @ =sub_811E1BC
+ str r1, [r0]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811F84C: .4byte gUnknown_02024A60
+_0811F850: .4byte gUnknown_02023A60
+_0811F854: .4byte gUnknown_02024A6A
+_0811F858: .4byte gPlayerParty
+_0811F85C: .4byte gUnknown_03004330
+_0811F860: .4byte sub_811E1BC
+ thumb_func_end sub_811F7F4
+
+ thumb_func_start sub_811F864
+sub_811F864: @ 811F864
+ push {r4-r6,lr}
+ mov r6, r10
+ mov r5, r9
+ mov r4, r8
+ push {r4-r6}
+ adds r6, r0, 0
+ lsls r6, 24
+ lsrs r6, 24
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r6, 0
+ bl sub_8032AA8
+ ldr r0, _0811F9A8 @ =gUnknown_02024A6A
+ lsls r2, r6, 1
+ adds r2, r0
+ ldr r0, _0811F9AC @ =gUnknown_02023A60
+ lsls r1, r6, 9
+ adds r0, 0x1
+ adds r1, r0
+ ldrb r0, [r1]
+ strh r0, [r2]
+ ldrh r1, [r2]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _0811F9B0 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0xB
+ bl GetMonData
+ mov r8, r0
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ ldr r0, _0811F9B4 @ =sub_80312F0
+ bl object_new_hidden_with_callback
+ ldr r1, _0811F9B8 @ =gUnknown_0300434C
+ mov r9, r1
+ add r9, r6
+ mov r1, r9
+ strb r0, [r1]
+ adds r0, r6, 0
+ bl battle_get_per_side_status
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ mov r0, r8
+ bl GetMonSpriteTemplate_803C56C
+ ldr r0, _0811F9BC @ =gUnknown_02024E8C
+ mov r10, r0
+ adds r0, r6, 0
+ movs r1, 0x2
+ bl sub_8077ABC
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ adds r0, r6, 0
+ bl sub_8077F68
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r6, 0
+ bl sub_8079E90
+ adds r3, r0, 0
+ lsls r3, 24
+ lsrs r3, 24
+ mov r0, r10
+ adds r1, r5, 0
+ adds r2, r4, 0
+ bl CreateSprite
+ ldr r4, _0811F9C0 @ =gUnknown_02024BE0
+ adds r4, r6, r4
+ strb r0, [r4]
+ ldr r5, _0811F9C4 @ =gSprites
+ mov r0, r9
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldrb r1, [r4]
+ strh r1, [r0, 0x30]
+ ldrb r1, [r4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ strh r6, [r0, 0x2E]
+ ldrb r1, [r4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ mov r1, r8
+ strh r1, [r0, 0x32]
+ ldrb r0, [r4]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r5
+ lsls r3, r6, 4
+ ldrb r2, [r1, 0x5]
+ movs r0, 0xF
+ ands r0, r2
+ orrs r0, r3
+ strb r0, [r1, 0x5]
+ ldrb r1, [r4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldr r1, _0811F9C8 @ =gUnknown_02024E84
+ adds r6, r1
+ ldrb r1, [r6]
+ bl StartSpriteAnim
+ ldrb r1, [r4]
+ 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]
+ ldrb r1, [r4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r5, 0
+ adds r1, 0x1C
+ adds r0, r1
+ ldr r1, _0811F9CC @ =SpriteCallbackDummy
+ str r1, [r0]
+ movs r0, 0
+ movs r1, 0xFF
+ bl sub_8046400
+ mov r1, r9
+ ldrb r2, [r1]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r5
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r1, 0x2E]
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811F9A8: .4byte gUnknown_02024A6A
+_0811F9AC: .4byte gUnknown_02023A60
+_0811F9B0: .4byte gPlayerParty
+_0811F9B4: .4byte sub_80312F0
+_0811F9B8: .4byte gUnknown_0300434C
+_0811F9BC: .4byte gUnknown_02024E8C
+_0811F9C0: .4byte gUnknown_02024BE0
+_0811F9C4: .4byte gSprites
+_0811F9C8: .4byte gUnknown_02024E84
+_0811F9CC: .4byte SpriteCallbackDummy
+ thumb_func_end sub_811F864
+
+ thumb_func_start sub_811F9D0
+sub_811F9D0: @ 811F9D0
+ push {r4-r6,lr}
+ ldr r1, _0811FA00 @ =gUnknown_02023A60
+ ldr r6, _0811FA04 @ =gUnknown_02024A60
+ ldrb r2, [r6]
+ lsls r0, r2, 9
+ adds r1, 0x1
+ adds r0, r1
+ ldrb r3, [r0]
+ cmp r3, 0
+ bne _0811FA14
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 2
+ ldr r1, _0811FA08 @ =0x02017810
+ adds r0, r1
+ strb r3, [r0, 0x4]
+ ldr r1, _0811FA0C @ =gUnknown_03004330
+ ldrb r0, [r6]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _0811FA10 @ =sub_811FA5C
+ str r1, [r0]
+ b _0811FA4A
+ .align 2, 0
+_0811FA00: .4byte gUnknown_02023A60
+_0811FA04: .4byte gUnknown_02024A60
+_0811FA08: .4byte 0x02017810
+_0811FA0C: .4byte gUnknown_03004330
+_0811FA10: .4byte sub_811FA5C
+_0811FA14:
+ ldr r5, _0811FA50 @ =gUnknown_02024BE0
+ adds r0, r2, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r4, _0811FA54 @ =gSprites
+ adds r0, r4
+ bl FreeSpriteOamMatrix
+ ldrb r0, [r6]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ bl DestroySprite
+ ldr r1, _0811FA58 @ =gUnknown_03004340
+ ldrb r0, [r6]
+ adds r0, r1
+ ldrb r0, [r0]
+ bl sub_8043DB0
+ bl dp01_tbl3_exec_completed
+_0811FA4A:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811FA50: .4byte gUnknown_02024BE0
+_0811FA54: .4byte gSprites
+_0811FA58: .4byte gUnknown_03004340
+ thumb_func_end sub_811F9D0
+
+ thumb_func_start sub_811FA5C
+sub_811FA5C: @ 811FA5C
+ push {r4,r5,lr}
+ ldr r5, _0811FA78 @ =gUnknown_02024A60
+ ldrb r2, [r5]
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 2
+ ldr r4, _0811FA7C @ =0x02017810
+ adds r3, r0, r4
+ ldrb r0, [r3, 0x4]
+ cmp r0, 0
+ beq _0811FA80
+ cmp r0, 0x1
+ beq _0811FAAC
+ b _0811FAD4
+ .align 2, 0
+_0811FA78: .4byte gUnknown_02024A60
+_0811FA7C: .4byte 0x02017810
+_0811FA80:
+ lsls r0, r2, 2
+ adds r1, r4, 0
+ subs r1, 0x10
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _0811FA9C
+ adds r0, r2, 0
+ adds r1, r2, 0
+ movs r3, 0x5
+ bl move_anim_start_t4
+_0811FA9C:
+ ldrb r0, [r5]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ movs r0, 0x1
+ strb r0, [r1, 0x4]
+ b _0811FAD4
+_0811FAAC:
+ ldrb r1, [r3]
+ movs r0, 0x40
+ ands r0, r1
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ bne _0811FAD4
+ strb r0, [r3, 0x4]
+ ldrb r2, [r5]
+ adds r0, r2, 0
+ adds r1, r2, 0
+ movs r3, 0x1
+ bl move_anim_start_t4
+ ldr r1, _0811FADC @ =gUnknown_03004330
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _0811FAE0 @ =sub_811DF34
+ str r1, [r0]
+_0811FAD4:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811FADC: .4byte gUnknown_03004330
+_0811FAE0: .4byte sub_811DF34
+ thumb_func_end sub_811FA5C
+
+ thumb_func_start sub_811FAE4
+sub_811FAE4: @ 811FAE4
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ ldr r0, _0811FB14 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _0811FB24
+ ldr r6, _0811FB18 @ =gUnknown_02024A60
+ ldrb r0, [r6]
+ bl battle_get_per_side_status
+ movs r1, 0x2
+ ands r1, r0
+ ldr r5, _0811FB1C @ =0x0000fff0
+ cmp r1, 0
+ beq _0811FB0A
+ movs r5, 0x10
+_0811FB0A:
+ ldr r4, _0811FB20 @ =gLinkPlayers
+ ldrb r0, [r6]
+ bl sub_803FC34
+ b _0811FB34
+ .align 2, 0
+_0811FB14: .4byte gUnknown_020239F8
+_0811FB18: .4byte gUnknown_02024A60
+_0811FB1C: .4byte 0x0000fff0
+_0811FB20: .4byte gLinkPlayers
+_0811FB24:
+ movs r5, 0
+ ldr r4, _0811FC08 @ =gLinkPlayers
+ bl GetMultiplayerId
+ movs r1, 0x1
+ eors r0, r1
+ lsls r0, 24
+ lsrs r0, 24
+_0811FB34:
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 2
+ adds r1, r4
+ ldrb r4, [r1, 0x13]
+ ldr r6, _0811FC0C @ =gUnknown_02024A60
+ ldrb r1, [r6]
+ adds r0, r4, 0
+ bl sub_8031AF4
+ ldrb r0, [r6]
+ bl battle_get_per_side_status
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl GetMonSpriteTemplate_803C5A0
+ ldr r0, _0811FC10 @ =gUnknown_02024E8C
+ mov r8, r0
+ lsls r5, 16
+ movs r0, 0xA0
+ lsls r0, 15
+ adds r5, r0
+ asrs r5, 16
+ ldr r0, _0811FC14 @ =gTrainerBackPicCoords
+ lsls r4, 2
+ adds r4, r0
+ ldrb r0, [r4]
+ movs r4, 0x8
+ subs r4, r0
+ lsls r4, 18
+ movs r0, 0xA0
+ lsls r0, 15
+ adds r4, r0
+ asrs r4, 16
+ ldrb r0, [r6]
+ bl sub_8079E90
+ adds r3, r0, 0
+ lsls r3, 24
+ lsrs r3, 24
+ mov r0, r8
+ adds r1, r5, 0
+ adds r2, r4, 0
+ bl CreateSprite
+ ldr r5, _0811FC18 @ =gUnknown_02024BE0
+ ldrb r1, [r6]
+ adds r1, r5
+ strb r0, [r1]
+ ldr r4, _0811FC1C @ =gSprites
+ ldrb r3, [r6]
+ adds r0, r3, r5
+ ldrb r0, [r0]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ lsls r3, 4
+ ldrb r2, [r1, 0x5]
+ movs r0, 0xF
+ ands r0, r2
+ orrs r0, r3
+ strb r0, [r1, 0x5]
+ ldrb r0, [r6]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ movs r1, 0xF0
+ strh r1, [r0, 0x24]
+ ldrb r0, [r6]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldr r1, _0811FC20 @ =0x0000fffe
+ strh r1, [r0, 0x2E]
+ ldrb r0, [r6]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r4, 0x1C
+ adds r0, r4
+ ldr r1, _0811FC24 @ =sub_80313A0
+ str r1, [r0]
+ ldr r1, _0811FC28 @ =gUnknown_03004330
+ ldrb r0, [r6]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _0811FC2C @ =sub_811DAE4
+ str r1, [r0]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811FC08: .4byte gLinkPlayers
+_0811FC0C: .4byte gUnknown_02024A60
+_0811FC10: .4byte gUnknown_02024E8C
+_0811FC14: .4byte gTrainerBackPicCoords
+_0811FC18: .4byte gUnknown_02024BE0
+_0811FC1C: .4byte gSprites
+_0811FC20: .4byte 0x0000fffe
+_0811FC24: .4byte sub_80313A0
+_0811FC28: .4byte gUnknown_03004330
+_0811FC2C: .4byte sub_811DAE4
+ thumb_func_end sub_811FAE4
+
+ thumb_func_start sub_811FC30
+sub_811FC30: @ 811FC30
+ push {lr}
+ bl dp01_tbl3_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_811FC30
+
+ thumb_func_start sub_811FC3C
+sub_811FC3C: @ 811FC3C
+ push {r4-r6,lr}
+ ldr r6, _0811FCC8 @ =gUnknown_02024BE0
+ ldr r4, _0811FCCC @ =gUnknown_02024A60
+ ldrb r0, [r4]
+ adds r0, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r5, _0811FCD0 @ =gSprites
+ adds r0, r5
+ bl oamt_add_pos2_onto_pos1
+ ldrb r0, [r4]
+ adds r0, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ movs r1, 0x23
+ strh r1, [r0, 0x2E]
+ ldrb r0, [r4]
+ adds r0, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldr r1, _0811FCD4 @ =0x0000ffd8
+ strh r1, [r0, 0x32]
+ ldrb r0, [r4]
+ adds r0, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldrh r1, [r0, 0x22]
+ strh r1, [r0, 0x36]
+ ldrb r0, [r4]
+ adds r0, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r5, 0
+ adds r1, 0x1C
+ adds r0, r1
+ ldr r1, _0811FCD8 @ =sub_8078B34
+ str r1, [r0]
+ ldrb r0, [r4]
+ adds r0, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldr r1, _0811FCDC @ =SpriteCallbackDummy
+ bl oamt_set_x3A_32
+ ldr r1, _0811FCE0 @ =gUnknown_03004330
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _0811FCE4 @ =sub_811DB1C
+ str r1, [r0]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811FCC8: .4byte gUnknown_02024BE0
+_0811FCCC: .4byte gUnknown_02024A60
+_0811FCD0: .4byte gSprites
+_0811FCD4: .4byte 0x0000ffd8
+_0811FCD8: .4byte sub_8078B34
+_0811FCDC: .4byte SpriteCallbackDummy
+_0811FCE0: .4byte gUnknown_03004330
+_0811FCE4: .4byte sub_811DB1C
+ thumb_func_end sub_811FC3C
+
+ thumb_func_start sub_811FCE8
+sub_811FCE8: @ 811FCE8
+ push {r4,r5,lr}
+ ldr r5, _0811FD2C @ =gUnknown_02024A60
+ ldrb r2, [r5]
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 2
+ ldr r4, _0811FD30 @ =0x02017810
+ adds r3, r0, r4
+ ldrb r0, [r3, 0x4]
+ cmp r0, 0
+ bne _0811FD34
+ lsls r0, r2, 2
+ adds r1, r4, 0
+ subs r1, 0x10
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _0811FD1A
+ adds r0, r2, 0
+ adds r1, r2, 0
+ movs r3, 0x5
+ bl move_anim_start_t4
+_0811FD1A:
+ ldrb r0, [r5]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ ldrb r0, [r1, 0x4]
+ adds r0, 0x1
+ strb r0, [r1, 0x4]
+ b _0811FDAA
+ .align 2, 0
+_0811FD2C: .4byte gUnknown_02024A60
+_0811FD30: .4byte 0x02017810
+_0811FD34:
+ ldrb r1, [r3]
+ movs r0, 0x40
+ ands r0, r1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ bne _0811FDAA
+ strb r4, [r3, 0x4]
+ ldr r2, _0811FDB0 @ =gUnknown_02024A6A
+ ldrb r1, [r5]
+ lsls r0, r1, 1
+ adds r0, r2
+ ldrh r2, [r0]
+ movs r0, 0x64
+ muls r0, r2
+ ldr r2, _0811FDB4 @ =gPlayerParty
+ adds r0, r2
+ bl sub_80324F8
+ movs r1, 0x40
+ negs r1, r1
+ movs r0, 0x10
+ bl PlaySE12WithPanning
+ ldr r2, _0811FDB8 @ =gSprites
+ ldr r3, _0811FDBC @ =gUnknown_02024BE0
+ ldrb r0, [r5]
+ adds r0, r3
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ strh r4, [r0, 0x30]
+ ldrb r0, [r5]
+ adds r0, r3
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0x5
+ strh r1, [r0, 0x32]
+ ldrb r0, [r5]
+ adds r0, r3
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r2, 0x1C
+ adds r0, r2
+ ldr r1, _0811FDC0 @ =sub_80105EC
+ str r1, [r0]
+ ldr r1, _0811FDC4 @ =gUnknown_03004330
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _0811FDC8 @ =sub_811DE98
+ str r1, [r0]
+_0811FDAA:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811FDB0: .4byte gUnknown_02024A6A
+_0811FDB4: .4byte gPlayerParty
+_0811FDB8: .4byte gSprites
+_0811FDBC: .4byte gUnknown_02024BE0
+_0811FDC0: .4byte sub_80105EC
+_0811FDC4: .4byte gUnknown_03004330
+_0811FDC8: .4byte sub_811DE98
+ thumb_func_end sub_811FCE8
+
+ thumb_func_start sub_811FDCC
+sub_811FDCC: @ 811FDCC
+ push {lr}
+ bl dp01_tbl3_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_811FDCC
+
+ thumb_func_start sub_811FDD8
+sub_811FDD8: @ 811FDD8
+ push {lr}
+ bl dp01_tbl3_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_811FDD8
+
+ thumb_func_start sub_811FDE4
+sub_811FDE4: @ 811FDE4
+ push {lr}
+ bl dp01_tbl3_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_811FDE4
+
+ thumb_func_start sub_811FDF0
+sub_811FDF0: @ 811FDF0
+ push {lr}
+ bl dp01_tbl3_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_811FDF0
+
+ thumb_func_start sub_811FDFC
+sub_811FDFC: @ 811FDFC
+ push {r4-r6,lr}
+ ldr r6, _0811FEE0 @ =gUnknown_02024A60
+ ldrb r0, [r6]
+ bl mplay_80342A4
+ lsls r0, 24
+ cmp r0, 0
+ beq _0811FE0E
+ b _0811FF1E
+_0811FE0E:
+ ldr r0, _0811FEE4 @ =gUnknown_02023A60
+ mov r12, r0
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r0, 0x1
+ adds r0, r2, r0
+ ldrb r0, [r0]
+ mov r1, r12
+ adds r1, 0x2
+ adds r1, r2, r1
+ ldrb r1, [r1]
+ lsls r1, 8
+ orrs r0, r1
+ ldr r5, _0811FEE8 @ =gUnknown_0202F7C4
+ mov r1, r12
+ adds r1, 0x3
+ adds r2, r1
+ ldrb r1, [r2]
+ strb r1, [r5]
+ ldr r4, _0811FEEC @ =gUnknown_0202F7BC
+ ldrb r2, [r6]
+ lsls r2, 9
+ mov r1, r12
+ adds r1, 0x4
+ adds r1, r2, r1
+ ldrb r3, [r1]
+ mov r1, r12
+ adds r1, 0x5
+ adds r2, r1
+ ldrb r1, [r2]
+ lsls r1, 8
+ orrs r3, r1
+ strh r3, [r4]
+ ldr r4, _0811FEF0 @ =gUnknown_0202F7B8
+ ldrb r2, [r6]
+ lsls r2, 9
+ mov r1, r12
+ adds r1, 0x6
+ adds r1, r2, r1
+ ldrb r3, [r1]
+ mov r1, r12
+ adds r1, 0x7
+ adds r1, r2, r1
+ ldrb r1, [r1]
+ lsls r1, 8
+ orrs r3, r1
+ mov r1, r12
+ adds r1, 0x8
+ adds r1, r2, r1
+ ldrb r1, [r1]
+ lsls r1, 16
+ orrs r3, r1
+ mov r1, r12
+ adds r1, 0x9
+ adds r2, r1
+ ldrb r1, [r2]
+ lsls r1, 24
+ orrs r3, r1
+ str r3, [r4]
+ ldr r3, _0811FEF4 @ =gUnknown_0202F7BE
+ ldrb r1, [r6]
+ lsls r1, 9
+ mov r2, r12
+ adds r2, 0xA
+ adds r1, r2
+ ldrb r1, [r1]
+ strb r1, [r3]
+ ldr r4, _0811FEF8 @ =gUnknown_0202F7C0
+ ldrb r2, [r6]
+ lsls r2, 9
+ mov r1, r12
+ adds r1, 0xC
+ adds r1, r2, r1
+ ldrb r3, [r1]
+ mov r1, r12
+ adds r1, 0xD
+ adds r2, r1
+ ldrb r1, [r2]
+ lsls r1, 8
+ orrs r3, r1
+ strh r3, [r4]
+ ldr r3, _0811FEFC @ =gUnknown_0202F7B4
+ ldrb r2, [r6]
+ lsls r2, 9
+ mov r1, r12
+ adds r1, 0x10
+ adds r2, r1
+ str r2, [r3]
+ ldr r3, _0811FF00 @ =gUnknown_02024E70
+ ldrb r1, [r6]
+ lsls r1, 2
+ adds r1, r3
+ ldr r2, [r2]
+ str r2, [r1]
+ ldrb r1, [r5]
+ bl sub_8031720
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0
+ beq _0811FF04
+ bl dp01_tbl3_exec_completed
+ b _0811FF1E
+ .align 2, 0
+_0811FEE0: .4byte gUnknown_02024A60
+_0811FEE4: .4byte gUnknown_02023A60
+_0811FEE8: .4byte gUnknown_0202F7C4
+_0811FEEC: .4byte gUnknown_0202F7BC
+_0811FEF0: .4byte gUnknown_0202F7B8
+_0811FEF4: .4byte gUnknown_0202F7BE
+_0811FEF8: .4byte gUnknown_0202F7C0
+_0811FEFC: .4byte gUnknown_0202F7B4
+_0811FF00: .4byte gUnknown_02024E70
+_0811FF04:
+ ldrb r1, [r6]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _0811FF24 @ =0x02017810
+ adds r0, r1
+ strb r2, [r0, 0x4]
+ ldr r1, _0811FF28 @ =gUnknown_03004330
+ ldrb r0, [r6]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _0811FF2C @ =sub_811FF30
+ str r1, [r0]
+_0811FF1E:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811FF24: .4byte 0x02017810
+_0811FF28: .4byte gUnknown_03004330
+_0811FF2C: .4byte sub_811FF30
+ thumb_func_end sub_811FDFC
+
+ thumb_func_start sub_811FF30
+sub_811FF30: @ 811FF30
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ ldr r2, _0811FF74 @ =gUnknown_02023A60
+ ldr r5, _0811FF78 @ =gUnknown_02024A60
+ ldrb r3, [r5]
+ lsls r1, r3, 9
+ adds r0, r2, 0x1
+ mov r9, r0
+ adds r0, r1, r0
+ ldrb r4, [r0]
+ adds r6, r2, 0x2
+ mov r8, r6
+ adds r0, r1, r6
+ ldrb r0, [r0]
+ lsls r0, 8
+ orrs r4, r0
+ adds r2, 0xB
+ adds r1, r2
+ ldrb r7, [r1]
+ lsls r0, r3, 1
+ adds r0, r3
+ lsls r0, 2
+ ldr r6, _0811FF7C @ =0x02017810
+ adds r0, r6
+ ldrb r2, [r0, 0x4]
+ cmp r2, 0x1
+ beq _0811FFBE
+ cmp r2, 0x1
+ bgt _0811FF80
+ cmp r2, 0
+ beq _0811FF8A
+ b _08120088
+ .align 2, 0
+_0811FF74: .4byte gUnknown_02023A60
+_0811FF78: .4byte gUnknown_02024A60
+_0811FF7C: .4byte 0x02017810
+_0811FF80:
+ cmp r2, 0x2
+ beq _0811FFE4
+ cmp r2, 0x3
+ beq _08120050
+ b _08120088
+_0811FF8A:
+ lsls r1, r3, 2
+ adds r0, r6, 0
+ subs r0, 0x10
+ adds r1, r0
+ ldrb r2, [r1]
+ movs r0, 0xC
+ ands r0, r2
+ cmp r0, 0x4
+ bne _0811FFAE
+ movs r0, 0x8
+ orrs r0, r2
+ strb r0, [r1]
+ ldrb r2, [r5]
+ adds r0, r2, 0
+ adds r1, r2, 0
+ movs r3, 0x5
+ bl move_anim_start_t4
+_0811FFAE:
+ ldrb r0, [r5]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r6
+ movs r0, 0x1
+ strb r0, [r1, 0x4]
+ b _08120088
+_0811FFBE:
+ ldrb r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ bne _08120088
+ movs r0, 0
+ bl sub_80326EC
+ adds r0, r4, 0
+ bl move_anim_start_t1
+ ldrb r0, [r5]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r6
+ movs r0, 0x2
+ strb r0, [r1, 0x4]
+ b _08120088
+_0811FFE4:
+ ldr r0, _08120040 @ =gUnknown_0202F7AC
+ ldr r0, [r0]
+ bl _call_via_r0
+ ldr r0, _08120044 @ =gUnknown_0202F7B1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08120088
+ movs r0, 0x1
+ bl sub_80326EC
+ ldrb r2, [r5]
+ lsls r0, r2, 2
+ adds r4, r6, 0
+ subs r4, 0x10
+ adds r0, r4
+ ldrb r1, [r0]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _0812002C
+ cmp r7, 0x1
+ bhi _0812002C
+ adds r0, r2, 0
+ adds r1, r2, 0
+ movs r3, 0x6
+ bl move_anim_start_t4
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r4
+ ldrb r2, [r0]
+ movs r1, 0x9
+ negs r1, r1
+ ands r1, r2
+ strb r1, [r0]
+_0812002C:
+ ldr r0, _08120048 @ =gUnknown_02024A60
+ ldrb r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _0812004C @ =0x02017810
+ adds r0, r1
+ movs r1, 0x3
+ strb r1, [r0, 0x4]
+ b _08120088
+ .align 2, 0
+_08120040: .4byte gUnknown_0202F7AC
+_08120044: .4byte gUnknown_0202F7B1
+_08120048: .4byte gUnknown_02024A60
+_0812004C: .4byte 0x02017810
+_08120050:
+ ldrb r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ bne _08120088
+ bl sub_8031F24
+ ldrb r0, [r5]
+ lsls r2, r0, 9
+ mov r3, r9
+ adds r1, r2, r3
+ ldrb r1, [r1]
+ add r2, r8
+ ldrb r2, [r2]
+ lsls r2, 8
+ orrs r1, r2
+ bl sub_80324BC
+ ldrb r1, [r5]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ strb r4, [r0, 0x4]
+ bl dp01_tbl3_exec_completed
+_08120088:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_811FF30
+
+ thumb_func_start sub_8120094
+sub_8120094: @ 8120094
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r0, _081200D8 @ =gUnknown_030042A4
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, _081200DC @ =gUnknown_030042A0
+ strh r1, [r0]
+ ldr r4, _081200E0 @ =gUnknown_02024A60
+ ldrb r0, [r4]
+ lsls r0, 9
+ ldr r1, _081200E4 @ =gUnknown_02023A62
+ adds r0, r1
+ ldrh r0, [r0]
+ bl sub_8120AA8
+ ldr r0, _081200E8 @ =gUnknown_03004210
+ ldr r1, _081200EC @ =gUnknown_020238CC
+ movs r2, 0xF
+ str r2, [sp]
+ movs r2, 0x90
+ movs r3, 0x2
+ bl sub_8002EB0
+ ldr r1, _081200F0 @ =gUnknown_03004330
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _081200F4 @ =sub_811DFA0
+ str r1, [r0]
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081200D8: .4byte gUnknown_030042A4
+_081200DC: .4byte gUnknown_030042A0
+_081200E0: .4byte gUnknown_02024A60
+_081200E4: .4byte gUnknown_02023A62
+_081200E8: .4byte gUnknown_03004210
+_081200EC: .4byte gUnknown_020238CC
+_081200F0: .4byte gUnknown_03004330
+_081200F4: .4byte sub_811DFA0
+ thumb_func_end sub_8120094
+
+ thumb_func_start sub_81200F8
+sub_81200F8: @ 81200F8
+ push {lr}
+ bl dp01_tbl3_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81200F8
+
+ thumb_func_start sub_8120104
+sub_8120104: @ 8120104
+ push {lr}
+ bl dp01_tbl3_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8120104
+
+ thumb_func_start sub_8120110
+sub_8120110: @ 8120110
+ push {lr}
+ bl dp01_tbl3_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8120110
+
+ thumb_func_start sub_812011C
+sub_812011C: @ 812011C
+ push {lr}
+ bl dp01_tbl3_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812011C
+
+ thumb_func_start sub_8120128
+sub_8120128: @ 8120128
+ push {lr}
+ bl dp01_tbl3_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8120128
+
+ thumb_func_start sub_8120134
+sub_8120134: @ 8120134
+ push {lr}
+ bl dp01_tbl3_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8120134
+
+ thumb_func_start sub_8120140
+sub_8120140: @ 8120140
+ push {lr}
+ bl dp01_tbl3_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8120140
+
+ thumb_func_start sub_812014C
+sub_812014C: @ 812014C
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x4
+ movs r0, 0
+ bl load_gfxc_health_bar
+ ldr r3, _081201C4 @ =gUnknown_02023A60
+ ldr r0, _081201C8 @ =gUnknown_02024A60
+ mov r9, r0
+ ldrb r4, [r0]
+ lsls r2, r4, 9
+ adds r0, r3, 0x2
+ adds r0, r2, r0
+ ldrb r1, [r0]
+ adds r3, 0x3
+ adds r2, r3
+ ldrb r0, [r2]
+ lsls r0, 8
+ orrs r1, r0
+ lsls r1, 16
+ asrs r7, r1, 16
+ ldr r0, _081201CC @ =0x00007fff
+ cmp r7, r0
+ beq _081201DC
+ ldr r6, _081201D0 @ =gUnknown_02024A6A
+ lsls r0, r4, 1
+ adds r0, r6
+ ldrh r0, [r0]
+ movs r5, 0x64
+ muls r0, r5
+ ldr r4, _081201D4 @ =gPlayerParty
+ adds r0, r4
+ movs r1, 0x3A
+ bl GetMonData
+ mov r8, r0
+ mov r1, r9
+ ldrb r0, [r1]
+ lsls r0, 1
+ adds r0, r6
+ ldrh r0, [r0]
+ muls r0, r5
+ adds r0, r4
+ movs r1, 0x39
+ bl GetMonData
+ adds r3, r0, 0
+ mov r1, r9
+ ldrb r0, [r1]
+ ldr r1, _081201D8 @ =gUnknown_03004340
+ adds r1, r0, r1
+ ldrb r1, [r1]
+ str r7, [sp]
+ mov r2, r8
+ bl sub_8043D84
+ b _08120206
+ .align 2, 0
+_081201C4: .4byte gUnknown_02023A60
+_081201C8: .4byte gUnknown_02024A60
+_081201CC: .4byte 0x00007fff
+_081201D0: .4byte gUnknown_02024A6A
+_081201D4: .4byte gPlayerParty
+_081201D8: .4byte gUnknown_03004340
+_081201DC:
+ ldr r1, _08120224 @ =gUnknown_02024A6A
+ lsls r0, r4, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _08120228 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x3A
+ bl GetMonData
+ adds r2, r0, 0
+ mov r1, r9
+ ldrb r0, [r1]
+ ldr r1, _0812022C @ =gUnknown_03004340
+ adds r1, r0, r1
+ ldrb r1, [r1]
+ str r7, [sp]
+ movs r3, 0
+ bl sub_8043D84
+_08120206:
+ ldr r1, _08120230 @ =gUnknown_03004330
+ ldr r0, _08120234 @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _08120238 @ =bx_t3_healthbar_update
+ str r1, [r0]
+ add sp, 0x4
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08120224: .4byte gUnknown_02024A6A
+_08120228: .4byte gPlayerParty
+_0812022C: .4byte gUnknown_03004340
+_08120230: .4byte gUnknown_03004330
+_08120234: .4byte gUnknown_02024A60
+_08120238: .4byte bx_t3_healthbar_update
+ thumb_func_end sub_812014C
+
+ thumb_func_start sub_812023C
+sub_812023C: @ 812023C
+ push {lr}
+ bl dp01_tbl3_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812023C
+
+ thumb_func_start sub_8120248
+sub_8120248: @ 8120248
+ push {r4,lr}
+ ldr r4, _081202A0 @ =gUnknown_02024A60
+ ldrb r0, [r4]
+ bl mplay_80342A4
+ lsls r0, 24
+ cmp r0, 0
+ bne _08120298
+ ldr r0, _081202A4 @ =gUnknown_03004340
+ ldrb r1, [r4]
+ adds r0, r1, r0
+ ldrb r0, [r0]
+ ldr r2, _081202A8 @ =gUnknown_02024A6A
+ lsls r1, 1
+ adds r1, r2
+ ldrh r2, [r1]
+ movs r1, 0x64
+ muls r1, r2
+ ldr r2, _081202AC @ =gPlayerParty
+ adds r1, r2
+ movs r2, 0x9
+ bl sub_8045A5C
+ ldrb r0, [r4]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ ldr r0, _081202B0 @ =0x02017810
+ adds r1, r0
+ ldrb r2, [r1]
+ movs r0, 0x11
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1]
+ ldr r1, _081202B4 @ =gUnknown_03004330
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _081202B8 @ =sub_811E38C
+ str r1, [r0]
+_08120298:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081202A0: .4byte gUnknown_02024A60
+_081202A4: .4byte gUnknown_03004340
+_081202A8: .4byte gUnknown_02024A6A
+_081202AC: .4byte gPlayerParty
+_081202B0: .4byte 0x02017810
+_081202B4: .4byte gUnknown_03004330
+_081202B8: .4byte sub_811E38C
+ thumb_func_end sub_8120248
+
+ thumb_func_start sub_81202BC
+sub_81202BC: @ 81202BC
+ push {r4,r5,lr}
+ ldr r5, _08120314 @ =gUnknown_02024A60
+ ldrb r0, [r5]
+ bl mplay_80342A4
+ lsls r0, 24
+ cmp r0, 0
+ bne _0812030C
+ ldr r4, _08120318 @ =gUnknown_02023A60
+ ldrb r3, [r5]
+ lsls r3, 9
+ adds r0, r4, 0x1
+ adds r0, r3, r0
+ ldrb r0, [r0]
+ adds r1, r4, 0x2
+ adds r1, r3, r1
+ ldrb r1, [r1]
+ adds r2, r4, 0x3
+ adds r2, r3, r2
+ ldrb r2, [r2]
+ lsls r2, 8
+ orrs r1, r2
+ adds r2, r4, 0x4
+ adds r2, r3, r2
+ ldrb r2, [r2]
+ lsls r2, 16
+ orrs r1, r2
+ adds r4, 0x5
+ adds r3, r4
+ ldrb r2, [r3]
+ lsls r2, 24
+ orrs r1, r2
+ bl move_anim_start_t2_for_situation
+ ldr r1, _0812031C @ =gUnknown_03004330
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _08120320 @ =sub_811E38C
+ str r1, [r0]
+_0812030C:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08120314: .4byte gUnknown_02024A60
+_08120318: .4byte gUnknown_02023A60
+_0812031C: .4byte gUnknown_03004330
+_08120320: .4byte sub_811E38C
+ thumb_func_end sub_81202BC
+
+ thumb_func_start sub_8120324
+sub_8120324: @ 8120324
+ push {lr}
+ bl dp01_tbl3_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8120324
+
+ thumb_func_start sub_8120330
+sub_8120330: @ 8120330
+ push {lr}
+ bl dp01_tbl3_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8120330
+
+ thumb_func_start sub_812033C
+sub_812033C: @ 812033C
+ push {lr}
+ bl dp01_tbl3_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812033C
+
+ thumb_func_start sub_8120348
+sub_8120348: @ 8120348
+ push {lr}
+ bl dp01_tbl3_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8120348
+
+ thumb_func_start sub_8120354
+sub_8120354: @ 8120354
+ push {lr}
+ bl dp01_tbl3_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8120354
+
+ thumb_func_start sub_8120360
+sub_8120360: @ 8120360
+ push {lr}
+ bl dp01_tbl3_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8120360
+
+ thumb_func_start sub_812036C
+sub_812036C: @ 812036C
+ push {lr}
+ bl dp01_tbl3_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812036C
+
+ thumb_func_start sub_8120378
+sub_8120378: @ 8120378
+ push {lr}
+ bl dp01_tbl3_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8120378
+
+ thumb_func_start sub_8120384
+sub_8120384: @ 8120384
+ push {lr}
+ bl dp01_tbl3_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8120384
+
+ thumb_func_start sub_8120390
+sub_8120390: @ 8120390
+ push {lr}
+ ldr r2, _081203A8 @ =gUnknown_020238C8
+ ldrb r1, [r2]
+ movs r0, 0x80
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+ bl dp01_tbl3_exec_completed
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081203A8: .4byte gUnknown_020238C8
+ thumb_func_end sub_8120390
+
+ thumb_func_start sub_81203AC
+sub_81203AC: @ 81203AC
+ push {lr}
+ ldr r3, _081203D8 @ =gUnknown_020238C8
+ ldr r1, _081203DC @ =gUnknown_02023A60
+ ldr r0, _081203E0 @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ lsls r0, 9
+ adds r1, 0x1
+ adds r0, r1
+ ldrb r0, [r0]
+ movs r1, 0x7F
+ ands r1, r0
+ ldrb r2, [r3]
+ movs r0, 0x80
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+ bl dp01_tbl3_exec_completed
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081203D8: .4byte gUnknown_020238C8
+_081203DC: .4byte gUnknown_02023A60
+_081203E0: .4byte gUnknown_02024A60
+ thumb_func_end sub_81203AC
+
+ thumb_func_start sub_81203E4
+sub_81203E4: @ 81203E4
+ push {lr}
+ ldr r2, _081203F8 @ =gUnknown_020238C8
+ ldrb r1, [r2]
+ movs r0, 0x7F
+ ands r0, r1
+ strb r0, [r2]
+ bl dp01_tbl3_exec_completed
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081203F8: .4byte gUnknown_020238C8
+ thumb_func_end sub_81203E4
+
+ thumb_func_start sub_81203FC
+sub_81203FC: @ 81203FC
+ push {lr}
+ ldr r3, _08120420 @ =gUnknown_020238C8
+ ldr r1, [r3]
+ lsls r1, 24
+ lsrs r1, 31
+ movs r0, 0x1
+ eors r1, r0
+ lsls r1, 7
+ ldrb r2, [r3]
+ movs r0, 0x7F
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+ bl dp01_tbl3_exec_completed
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08120420: .4byte gUnknown_020238C8
+ thumb_func_end sub_81203FC
+
+ thumb_func_start dp01t_29_3_blink
+dp01t_29_3_blink: @ 8120424
+ push {r4,lr}
+ ldr r3, _0812044C @ =gSprites
+ ldr r2, _08120450 @ =gUnknown_02024BE0
+ ldr r4, _08120454 @ =gUnknown_02024A60
+ ldrb r0, [r4]
+ adds r0, r2
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ adds r0, 0x3E
+ ldrb r0, [r0]
+ lsls r0, 29
+ cmp r0, 0
+ bge _08120458
+ bl dp01_tbl3_exec_completed
+ b _08120482
+ .align 2, 0
+_0812044C: .4byte gSprites
+_08120450: .4byte gUnknown_02024BE0
+_08120454: .4byte gUnknown_02024A60
+_08120458:
+ ldr r1, _08120488 @ =gUnknown_02024E6D
+ movs r0, 0x1
+ strb r0, [r1]
+ ldrb r0, [r4]
+ adds r0, r2
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ movs r1, 0
+ strh r1, [r0, 0x30]
+ ldrb r0, [r4]
+ bl sub_8047858
+ ldr r1, _0812048C @ =gUnknown_03004330
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _08120490 @ =bx_blink_t3
+ str r1, [r0]
+_08120482:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08120488: .4byte gUnknown_02024E6D
+_0812048C: .4byte gUnknown_03004330
+_08120490: .4byte bx_blink_t3
+ thumb_func_end dp01t_29_3_blink
+
+ thumb_func_start sub_8120494
+sub_8120494: @ 8120494
+ push {lr}
+ bl dp01_tbl3_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8120494
+
+ thumb_func_start sub_81204A0
+sub_81204A0: @ 81204A0
+ push {r4,lr}
+ ldr r4, _081204DC @ =gUnknown_02024A60
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ lsls r0, 24
+ movs r3, 0x3F
+ cmp r0, 0
+ bne _081204B4
+ movs r3, 0xC0
+_081204B4:
+ ldr r2, _081204E0 @ =gUnknown_02023A60
+ ldrb r1, [r4]
+ lsls r1, 9
+ adds r0, r2, 0x1
+ adds r0, r1, r0
+ ldrb r0, [r0]
+ adds r2, 0x2
+ adds r1, r2
+ ldrb r1, [r1]
+ lsls r1, 8
+ orrs r0, r1
+ lsls r1, r3, 24
+ asrs r1, 24
+ bl PlaySE12WithPanning
+ bl dp01_tbl3_exec_completed
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081204DC: .4byte gUnknown_02024A60
+_081204E0: .4byte gUnknown_02023A60
+ thumb_func_end sub_81204A0
+
+ thumb_func_start sub_81204E4
+sub_81204E4: @ 81204E4
+ push {lr}
+ ldr r2, _0812050C @ =gUnknown_02023A60
+ ldr r0, _08120510 @ =gUnknown_02024A60
+ ldrb r1, [r0]
+ lsls r1, 9
+ adds r0, r2, 0x1
+ adds r0, r1, r0
+ ldrb r0, [r0]
+ adds r2, 0x2
+ adds r1, r2
+ ldrb r1, [r1]
+ lsls r1, 8
+ orrs r0, r1
+ bl PlayFanfare
+ bl dp01_tbl3_exec_completed
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812050C: .4byte gUnknown_02023A60
+_08120510: .4byte gUnknown_02024A60
+ thumb_func_end sub_81204E4
+
+ thumb_func_start sub_8120514
+sub_8120514: @ 8120514
+ push {lr}
+ ldr r1, _08120548 @ =gUnknown_02024A6A
+ ldr r0, _0812054C @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _08120550 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0xB
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x19
+ negs r1, r1
+ movs r2, 0x5
+ bl PlayCry3
+ bl dp01_tbl3_exec_completed
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08120548: .4byte gUnknown_02024A6A
+_0812054C: .4byte gUnknown_02024A60
+_08120550: .4byte gPlayerParty
+ thumb_func_end sub_8120514
+
+ thumb_func_start dp01t_2E_3_battle_intro
+dp01t_2E_3_battle_intro: @ 8120554
+ push {lr}
+ ldr r1, _0812057C @ =gUnknown_02023A60
+ ldr r0, _08120580 @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ lsls r0, 9
+ adds r1, 0x1
+ adds r0, r1
+ ldrb r0, [r0]
+ bl sub_80E43C0
+ ldr r2, _08120584 @ =gUnknown_02024DE8
+ ldrh r0, [r2]
+ movs r1, 0x1
+ orrs r0, r1
+ strh r0, [r2]
+ bl dp01_tbl3_exec_completed
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812057C: .4byte gUnknown_02023A60
+_08120580: .4byte gUnknown_02024A60
+_08120584: .4byte gUnknown_02024DE8
+ thumb_func_end dp01t_2E_3_battle_intro
+
+ thumb_func_start sub_8120588
+sub_8120588: @ 8120588
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ ldr r6, _081206DC @ =gUnknown_02024BE0
+ ldr r7, _081206E0 @ =gUnknown_02024A60
+ ldrb r0, [r7]
+ adds r0, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r5, _081206E4 @ =gSprites
+ adds r0, r5
+ bl oamt_add_pos2_onto_pos1
+ ldrb r0, [r7]
+ adds r0, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ movs r1, 0x32
+ strh r1, [r0, 0x2E]
+ ldrb r0, [r7]
+ adds r0, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldr r1, _081206E8 @ =0x0000ffd8
+ strh r1, [r0, 0x32]
+ ldrb r0, [r7]
+ adds r0, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldrh r1, [r0, 0x22]
+ strh r1, [r0, 0x36]
+ ldrb r0, [r7]
+ adds r0, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r5, 0
+ adds r1, 0x1C
+ adds r0, r1
+ ldr r1, _081206EC @ =sub_8078B34
+ str r1, [r0]
+ ldrb r2, [r7]
+ adds r0, r2, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ strh r2, [r0, 0x38]
+ ldrb r0, [r7]
+ adds r0, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldr r1, _081206F0 @ =sub_8030E38
+ bl oamt_set_x3A_32
+ ldrb r0, [r7]
+ adds r0, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ movs r1, 0x1
+ bl StartSpriteAnim
+ ldr r0, _081206F4 @ =0x0000d6f9
+ bl AllocSpritePalette
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _081206F8 @ =gTrainerBackPicPaletteTable
+ mov r8, r0
+ ldrb r0, [r7]
+ bl sub_803FC34
+ ldr r2, _081206FC @ =gLinkPlayers
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 2
+ adds r1, r2
+ ldrb r0, [r1, 0x13]
+ lsls r0, 3
+ add r0, r8
+ ldr r0, [r0]
+ lsls r4, 4
+ movs r2, 0x80
+ lsls r2, 1
+ adds r1, r4, r2
+ movs r2, 0x20
+ bl LoadCompressedPalette
+ ldrb r0, [r7]
+ adds r0, r6
+ ldrb r0, [r0]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r5
+ ldrb r2, [r1, 0x5]
+ movs r0, 0xF
+ ands r0, r2
+ orrs r0, r4
+ strb r0, [r1, 0x5]
+ ldr r0, _08120700 @ =sub_812071C
+ movs r1, 0x5
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r4, _08120704 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r4
+ ldrb r0, [r7]
+ strh r0, [r1, 0x8]
+ ldrb r3, [r7]
+ lsls r0, r3, 1
+ adds r0, r3
+ lsls r0, 2
+ ldr r2, _08120708 @ =0x02017810
+ adds r0, r2
+ ldrb r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _081206BA
+ ldr r0, _0812070C @ =gUnknown_02024E68
+ adds r0, r3, r0
+ ldrb r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r4
+ ldr r1, _08120710 @ =sub_8044CA0
+ str r1, [r0]
+_081206BA:
+ adds r2, 0x30
+ ldrb r0, [r2, 0x9]
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r2, 0x9]
+ ldr r1, _08120714 @ =gUnknown_03004330
+ ldrb r0, [r7]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _08120718 @ =nullsub_74
+ str r1, [r0]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081206DC: .4byte gUnknown_02024BE0
+_081206E0: .4byte gUnknown_02024A60
+_081206E4: .4byte gSprites
+_081206E8: .4byte 0x0000ffd8
+_081206EC: .4byte sub_8078B34
+_081206F0: .4byte sub_8030E38
+_081206F4: .4byte 0x0000d6f9
+_081206F8: .4byte gTrainerBackPicPaletteTable
+_081206FC: .4byte gLinkPlayers
+_08120700: .4byte sub_812071C
+_08120704: .4byte gTasks
+_08120708: .4byte 0x02017810
+_0812070C: .4byte gUnknown_02024E68
+_08120710: .4byte sub_8044CA0
+_08120714: .4byte gUnknown_03004330
+_08120718: .4byte nullsub_74
+ thumb_func_end sub_8120588
+
+ thumb_func_start sub_812071C
+sub_812071C: @ 812071C
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ ldr r1, _08120744 @ =gTasks
+ lsls r0, 2
+ add r0, r8
+ lsls r0, 3
+ adds r1, r0, r1
+ ldrh r2, [r1, 0xA]
+ movs r3, 0xA
+ ldrsh r0, [r1, r3]
+ cmp r0, 0x17
+ bgt _08120748
+ adds r0, r2, 0x1
+ strh r0, [r1, 0xA]
+ b _08120804
+ .align 2, 0
+_08120744: .4byte gTasks
+_08120748:
+ ldr r7, _08120788 @ =gUnknown_02024A60
+ ldrb r0, [r7]
+ mov r9, r0
+ ldrh r0, [r1, 0x8]
+ strb r0, [r7]
+ bl battle_type_is_double
+ lsls r0, 24
+ cmp r0, 0
+ beq _08120768
+ ldr r0, _0812078C @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _08120798
+_08120768:
+ ldr r0, _08120790 @ =gUnknown_02023A60
+ ldrb r1, [r7]
+ lsls r2, r1, 9
+ adds r0, 0x1
+ adds r2, r0
+ ldr r0, _08120794 @ =gUnknown_02024A6A
+ lsls r1, 1
+ adds r1, r0
+ ldrh r0, [r1]
+ strb r0, [r2]
+ ldrb r0, [r7]
+ movs r1, 0
+ bl sub_811F864
+ b _081207EC
+ .align 2, 0
+_08120788: .4byte gUnknown_02024A60
+_0812078C: .4byte gUnknown_020239F8
+_08120790: .4byte gUnknown_02023A60
+_08120794: .4byte gUnknown_02024A6A
+_08120798:
+ ldr r4, _08120810 @ =gUnknown_02023A60
+ ldrb r0, [r7]
+ lsls r1, r0, 9
+ adds r4, 0x1
+ adds r1, r4
+ ldr r5, _08120814 @ =gUnknown_02024A6A
+ lsls r0, 1
+ adds r0, r5
+ ldrh r0, [r0]
+ strb r0, [r1]
+ ldrb r0, [r7]
+ movs r1, 0
+ bl sub_811F864
+ ldrb r0, [r7]
+ movs r6, 0x2
+ eors r0, r6
+ strb r0, [r7]
+ ldrb r0, [r7]
+ lsls r1, r0, 9
+ adds r1, r4
+ lsls r0, 1
+ adds r0, r5
+ ldrh r0, [r0]
+ strb r0, [r1]
+ ldrb r1, [r7]
+ lsls r0, r1, 1
+ adds r0, r5
+ ldrh r2, [r0]
+ movs r0, 0x64
+ muls r0, r2
+ ldr r2, _08120818 @ =gPlayerParty
+ adds r0, r2
+ bl sub_80318FC
+ ldrb r0, [r7]
+ movs r1, 0
+ bl sub_811F864
+ ldrb r0, [r7]
+ eors r0, r6
+ strb r0, [r7]
+_081207EC:
+ ldr r1, _0812081C @ =gUnknown_03004330
+ ldr r2, _08120820 @ =gUnknown_02024A60
+ ldrb r0, [r2]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _08120824 @ =sub_811DCA0
+ str r1, [r0]
+ mov r3, r9
+ strb r3, [r2]
+ mov r0, r8
+ bl DestroyTask
+_08120804:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08120810: .4byte gUnknown_02023A60
+_08120814: .4byte gUnknown_02024A6A
+_08120818: .4byte gPlayerParty
+_0812081C: .4byte gUnknown_03004330
+_08120820: .4byte gUnknown_02024A60
+_08120824: .4byte sub_811DCA0
+ thumb_func_end sub_812071C
+
+ thumb_func_start dp01t_30_3_80EB11C
+dp01t_30_3_80EB11C: @ 8120828
+ push {r4-r6,lr}
+ ldr r1, _08120850 @ =gUnknown_02023A60
+ ldr r0, _08120854 @ =gUnknown_02024A60
+ ldrb r2, [r0]
+ lsls r0, r2, 9
+ adds r1, 0x1
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08120858
+ adds r0, r2, 0
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _08120858
+ bl dp01_tbl3_exec_completed
+ b _081208C0
+ .align 2, 0
+_08120850: .4byte gUnknown_02023A60
+_08120854: .4byte gUnknown_02024A60
+_08120858:
+ ldr r5, _081208C8 @ =gUnknown_02024A60
+ ldrb r1, [r5]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r6, _081208CC @ =0x02017810
+ adds r0, r6
+ ldrb r1, [r0]
+ movs r2, 0x1
+ orrs r1, r2
+ strb r1, [r0]
+ ldrb r0, [r5]
+ lsls r3, r0, 9
+ ldr r4, _081208D0 @ =gUnknown_02023A64
+ adds r1, r3, r4
+ subs r2, r4, 0x3
+ adds r2, r3, r2
+ ldrb r2, [r2]
+ subs r4, 0x2
+ adds r3, r4
+ ldrb r3, [r3]
+ bl sub_8044804
+ ldr r2, _081208D4 @ =gUnknown_02024E68
+ ldrb r1, [r5]
+ adds r1, r2
+ movs r2, 0
+ strb r0, [r1]
+ ldrb r1, [r5]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ strb r2, [r0, 0x5]
+ ldrb r1, [r5]
+ lsls r0, r1, 9
+ adds r0, r4
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _081208B4
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ movs r1, 0x5D
+ strb r1, [r0, 0x5]
+_081208B4:
+ ldr r0, _081208D8 @ =gUnknown_03004330
+ ldrb r1, [r5]
+ lsls r1, 2
+ adds r1, r0
+ ldr r0, _081208DC @ =sub_81208E0
+ str r0, [r1]
+_081208C0:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081208C8: .4byte gUnknown_02024A60
+_081208CC: .4byte 0x02017810
+_081208D0: .4byte gUnknown_02023A64
+_081208D4: .4byte gUnknown_02024E68
+_081208D8: .4byte gUnknown_03004330
+_081208DC: .4byte sub_81208E0
+ thumb_func_end dp01t_30_3_80EB11C
+
+ thumb_func_start sub_81208E0
+sub_81208E0: @ 81208E0
+ push {r4,lr}
+ ldr r4, _08120918 @ =gUnknown_02024A60
+ ldrb r1, [r4]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r3, _0812091C @ =0x02017810
+ adds r0, r3
+ ldrb r1, [r0, 0x5]
+ adds r2, r1, 0x1
+ strb r2, [r0, 0x5]
+ lsls r1, 24
+ lsrs r1, 24
+ cmp r1, 0x5C
+ bls _08120910
+ ldrb r0, [r4]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r3
+ movs r0, 0
+ strb r0, [r1, 0x5]
+ bl dp01_tbl3_exec_completed
+_08120910:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08120918: .4byte gUnknown_02024A60
+_0812091C: .4byte 0x02017810
+ thumb_func_end sub_81208E0
+
+ thumb_func_start sub_8120920
+sub_8120920: @ 8120920
+ push {lr}
+ ldr r0, _08120958 @ =gUnknown_02024A60
+ ldrb r3, [r0]
+ lsls r0, r3, 1
+ adds r0, r3
+ lsls r0, 2
+ ldr r1, _0812095C @ =0x02017810
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0812094E
+ ldr r2, _08120960 @ =gTasks
+ ldr r0, _08120964 @ =gUnknown_02024E68
+ adds r0, r3, r0
+ ldrb r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldr r1, _08120968 @ =sub_8044CA0
+ str r1, [r0]
+_0812094E:
+ bl dp01_tbl3_exec_completed
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08120958: .4byte gUnknown_02024A60
+_0812095C: .4byte 0x02017810
+_08120960: .4byte gTasks
+_08120964: .4byte gUnknown_02024E68
+_08120968: .4byte sub_8044CA0
+ thumb_func_end sub_8120920
+
+ thumb_func_start sub_812096C
+sub_812096C: @ 812096C
+ push {lr}
+ bl dp01_tbl3_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812096C
+
+ thumb_func_start sub_8120978
+sub_8120978: @ 8120978
+ push {r4,lr}
+ ldr r4, _081209C8 @ =gUnknown_02024A60
+ ldrb r0, [r4]
+ bl sub_8078874
+ lsls r0, 24
+ cmp r0, 0
+ beq _081209BE
+ ldr r3, _081209CC @ =gSprites
+ ldr r0, _081209D0 @ =gUnknown_02024BE0
+ ldrb r1, [r4]
+ adds r0, r1, r0
+ ldrb r0, [r0]
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r2, r3
+ ldr r0, _081209D4 @ =gUnknown_02023A60
+ lsls r1, 9
+ adds r0, 0x1
+ adds r1, r0
+ adds r2, 0x3E
+ movs r0, 0x1
+ ldrb r1, [r1]
+ ands r1, r0
+ lsls r1, 2
+ ldrb r3, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r3
+ orrs r0, r1
+ strb r0, [r2]
+ ldrb r0, [r4]
+ bl sub_8031F88
+_081209BE:
+ bl dp01_tbl3_exec_completed
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081209C8: .4byte gUnknown_02024A60
+_081209CC: .4byte gSprites
+_081209D0: .4byte gUnknown_02024BE0
+_081209D4: .4byte gUnknown_02023A60
+ thumb_func_end sub_8120978
+
+ thumb_func_start sub_81209D8
+sub_81209D8: @ 81209D8
+ push {r4-r6,lr}
+ sub sp, 0x4
+ ldr r6, _08120A1C @ =gUnknown_02024A60
+ ldrb r0, [r6]
+ bl mplay_80342A4
+ lsls r0, 24
+ cmp r0, 0
+ bne _08120A30
+ ldr r5, _08120A20 @ =gUnknown_02023A60
+ ldrb r2, [r6]
+ lsls r1, r2, 9
+ adds r0, r5, 0x1
+ adds r0, r1, r0
+ ldrb r3, [r0]
+ adds r0, r5, 0x2
+ adds r0, r1, r0
+ ldrb r4, [r0]
+ adds r5, 0x3
+ adds r1, r5
+ ldrb r0, [r1]
+ lsls r0, 8
+ orrs r4, r0
+ str r4, [sp]
+ adds r0, r2, 0
+ adds r1, r2, 0
+ bl move_anim_start_t3
+ lsls r0, 24
+ cmp r0, 0
+ beq _08120A24
+ bl dp01_tbl3_exec_completed
+ b _08120A30
+ .align 2, 0
+_08120A1C: .4byte gUnknown_02024A60
+_08120A20: .4byte gUnknown_02023A60
+_08120A24:
+ ldr r0, _08120A38 @ =gUnknown_03004330
+ ldrb r1, [r6]
+ lsls r1, 2
+ adds r1, r0
+ ldr r0, _08120A3C @ =sub_811E3B8
+ str r0, [r1]
+_08120A30:
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08120A38: .4byte gUnknown_03004330
+_08120A3C: .4byte sub_811E3B8
+ thumb_func_end sub_81209D8
+
+ thumb_func_start sub_8120A40
+sub_8120A40: @ 8120A40
+ push {lr}
+ bl dp01_tbl3_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8120A40
+
+ thumb_func_start sub_8120A4C
+sub_8120A4C: @ 8120A4C
+ push {lr}
+ bl dp01_tbl3_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8120A4C
+
+ thumb_func_start sub_8120A58
+sub_8120A58: @ 8120A58
+ push {r4,lr}
+ ldr r2, _08120A90 @ =gUnknown_02024D26
+ ldr r1, _08120A94 @ =gUnknown_02023A60
+ ldr r4, _08120A98 @ =gUnknown_02024A60
+ ldrb r0, [r4]
+ lsls r0, 9
+ adds r1, 0x1
+ adds r0, r1
+ ldrb r0, [r0]
+ strb r0, [r2]
+ movs r0, 0x5
+ bl FadeOutMapMusic
+ movs r0, 0x3
+ bl BeginFastPaletteFade
+ bl dp01_tbl3_exec_completed
+ ldr r1, _08120A9C @ =gUnknown_03004330
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _08120AA0 @ =sub_811E29C
+ str r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08120A90: .4byte gUnknown_02024D26
+_08120A94: .4byte gUnknown_02023A60
+_08120A98: .4byte gUnknown_02024A60
+_08120A9C: .4byte gUnknown_03004330
+_08120AA0: .4byte sub_811E29C
+ thumb_func_end sub_8120A58
+
+ thumb_func_start nullsub_75
+nullsub_75: @ 8120AA4
+ bx lr
+ thumb_func_end nullsub_75
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/battle_message.s b/asm/battle_message.s
new file mode 100644
index 000000000..8986ac835
--- /dev/null
+++ b/asm/battle_message.s
@@ -0,0 +1,2403 @@
+ .include "constants/gba_constants.s"
+ .include "constants/species_constants.s"
+ .include "asm/macros.s"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_8120AA8
+sub_8120AA8: @ 8120AA8
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ lsls r0, 16
+ lsrs r7, r0, 16
+ movs r6, 0
+ ldr r5, _08120B70 @ =gUnknown_02039270
+ ldr r4, _08120B74 @ =gUnknown_02024A60
+ ldrb r1, [r4]
+ lsls r1, 9
+ ldr r0, _08120B78 @ =gUnknown_02023A64
+ adds r1, r0
+ str r1, [r5]
+ ldr r2, _08120B7C @ =gUnknown_02024C04
+ ldrh r0, [r1, 0x4]
+ strh r0, [r2]
+ ldr r2, _08120B80 @ =byte_2024C06
+ ldrb r0, [r1, 0x6]
+ strb r0, [r2]
+ ldr r3, _08120B84 @ =0x02000000
+ ldrb r0, [r1, 0x7]
+ mov r8, r0
+ ldr r2, _08120B88 @ =0x00016003
+ adds r0, r3, r2
+ mov r2, r8
+ strb r2, [r0]
+ ldrb r0, [r1, 0x8]
+ mov r8, r0
+ ldr r2, _08120B8C @ =0x0001605e
+ adds r0, r3, r2
+ mov r2, r8
+ strb r2, [r0]
+ ldrb r0, [r1, 0x9]
+ mov r8, r0
+ ldr r2, _08120B90 @ =0x000160c1
+ adds r0, r3, r2
+ mov r2, r8
+ strb r2, [r0]
+ ldr r2, _08120B94 @ =gUnknown_02024C0B
+ ldrb r0, [r1, 0xA]
+ strb r0, [r2]
+ ldrb r1, [r1, 0xB]
+ ldr r2, _08120B98 @ =0x000160a0
+ adds r0, r3, r2
+ strb r1, [r0]
+ movs r2, 0
+ mov r9, r3
+ ldr r3, _08120B9C @ =gUnknown_030041C0
+ mov r10, r3
+ ldr r3, _08120BA0 @ =gUnknown_0203926C
+_08120B10:
+ adds r0, r2, r3
+ ldr r1, [r5]
+ adds r1, 0xC
+ adds r1, r2
+ ldrb r1, [r1]
+ strb r1, [r0]
+ adds r2, 0x1
+ cmp r2, 0x3
+ ble _08120B10
+ movs r2, 0
+ ldr r0, _08120B9C @ =gUnknown_030041C0
+ mov r8, r0
+ ldr r3, _08120B70 @ =gUnknown_02039270
+ ldr r1, _08120BA4 @ =gUnknown_03004290
+ mov r12, r1
+ ldr r5, _08120BA8 @ =gUnknown_030042B0
+_08120B30:
+ mov r0, r8
+ adds r1, r2, r0
+ ldr r0, [r3]
+ adds r0, 0x10
+ adds r0, r2
+ ldrb r0, [r0]
+ strb r0, [r1]
+ mov r0, r12
+ adds r1, r2, r0
+ ldr r0, [r3]
+ adds r0, 0x20
+ adds r0, r2
+ ldrb r0, [r0]
+ strb r0, [r1]
+ adds r1, r2, r5
+ ldr r0, [r3]
+ adds r0, 0x30
+ adds r0, r2
+ ldrb r0, [r0]
+ strb r0, [r1]
+ adds r2, 0x1
+ cmp r2, 0xF
+ ble _08120B30
+ cmp r7, 0x5
+ bls _08120B64
+ b _08120F50
+_08120B64:
+ lsls r0, r7, 2
+ ldr r1, _08120BAC @ =_08120BB0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08120B70: .4byte gUnknown_02039270
+_08120B74: .4byte gUnknown_02024A60
+_08120B78: .4byte gUnknown_02023A64
+_08120B7C: .4byte gUnknown_02024C04
+_08120B80: .4byte byte_2024C06
+_08120B84: .4byte 0x02000000
+_08120B88: .4byte 0x00016003
+_08120B8C: .4byte 0x0001605e
+_08120B90: .4byte 0x000160c1
+_08120B94: .4byte gUnknown_02024C0B
+_08120B98: .4byte 0x000160a0
+_08120B9C: .4byte gUnknown_030041C0
+_08120BA0: .4byte gUnknown_0203926C
+_08120BA4: .4byte gUnknown_03004290
+_08120BA8: .4byte gUnknown_030042B0
+_08120BAC: .4byte _08120BB0
+ .align 2, 0
+_08120BB0:
+ .4byte _08120BC8
+ .4byte _08120C40
+ .4byte _08120CCC
+ .4byte _08120D5C
+ .4byte _08120DE8
+ .4byte _08120E50
+_08120BC8:
+ ldr r0, _08120BEC @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ beq _08120C00
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _08120BF8
+ movs r0, 0x40
+ ands r0, r1
+ ldr r6, _08120BF0 @ =gUnknown_084005C7
+ cmp r0, 0
+ bne _08120BE8
+ b _08120F70
+_08120BE8:
+ ldr r6, _08120BF4 @ =gUnknown_084005DB
+ b _08120F70
+ .align 2, 0
+_08120BEC: .4byte gUnknown_020239F8
+_08120BF0: .4byte gUnknown_084005C7
+_08120BF4: .4byte gUnknown_084005DB
+_08120BF8:
+ ldr r6, _08120BFC @ =gUnknown_084005AA
+ b _08120F70
+ .align 2, 0
+_08120BFC: .4byte gUnknown_084005AA
+_08120C00:
+ movs r0, 0x80
+ lsls r0, 6
+ ands r0, r1
+ cmp r0, 0
+ beq _08120C14
+ ldr r6, _08120C10 @ =gUnknown_08400568
+ b _08120F70
+ .align 2, 0
+_08120C10: .4byte gUnknown_08400568
+_08120C14:
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08120C24
+ ldr r6, _08120C20 @ =gUnknown_08400590
+ b _08120F70
+ .align 2, 0
+_08120C20: .4byte gUnknown_08400590
+_08120C24:
+ movs r0, 0x80
+ lsls r0, 2
+ ands r0, r1
+ ldr r6, _08120C38 @ =gUnknown_08400555
+ cmp r0, 0
+ bne _08120C32
+ b _08120F70
+_08120C32:
+ ldr r6, _08120C3C @ =gUnknown_0840057B
+ b _08120F70
+ .align 2, 0
+_08120C38: .4byte gUnknown_08400555
+_08120C3C: .4byte gUnknown_0840057B
+_08120C40:
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _08120C7C
+ ldr r0, _08120C68 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08120C74
+ movs r0, 0x40
+ ands r0, r1
+ ldr r6, _08120C6C @ =gUnknown_084006A4
+ cmp r0, 0
+ bne _08120C64
+ b _08120F70
+_08120C64:
+ ldr r6, _08120C70 @ =gUnknown_084006F1
+ b _08120F70
+ .align 2, 0
+_08120C68: .4byte gUnknown_020239F8
+_08120C6C: .4byte gUnknown_084006A4
+_08120C70: .4byte gUnknown_084006F1
+_08120C74:
+ ldr r6, _08120C78 @ =gUnknown_0840069C
+ b _08120F70
+ .align 2, 0
+_08120C78: .4byte gUnknown_0840069C
+_08120C7C:
+ ldr r0, _08120C94 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08120CB4
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _08120C9C
+ ldr r6, _08120C98 @ =gUnknown_0840065C
+ b _08120F70
+ .align 2, 0
+_08120C94: .4byte gUnknown_020239F8
+_08120C98: .4byte gUnknown_0840065C
+_08120C9C:
+ movs r0, 0x2
+ ands r0, r1
+ ldr r6, _08120CAC @ =gUnknown_08400608
+ cmp r0, 0
+ bne _08120CA8
+ b _08120F70
+_08120CA8:
+ ldr r6, _08120CB0 @ =gUnknown_08400645
+ b _08120F70
+ .align 2, 0
+_08120CAC: .4byte gUnknown_08400608
+_08120CB0: .4byte gUnknown_08400645
+_08120CB4:
+ movs r0, 0x2
+ ands r0, r1
+ ldr r6, _08120CC4 @ =gUnknown_084005F5
+ cmp r0, 0
+ bne _08120CC0
+ b _08120F70
+_08120CC0:
+ ldr r6, _08120CC8 @ =gUnknown_08400635
+ b _08120F70
+ .align 2, 0
+_08120CC4: .4byte gUnknown_084005F5
+_08120CC8: .4byte gUnknown_08400635
+_08120CCC:
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _08120D24
+ ldr r0, _08120CE8 @ =0x02000000
+ ldr r1, _08120CEC @ =0x000160c1
+ adds r0, r1
+ ldrb r2, [r0]
+ cmp r2, 0
+ bne _08120CF4
+ ldr r6, _08120CF0 @ =gUnknown_08400709
+ b _08120F70
+ .align 2, 0
+_08120CE8: .4byte 0x02000000
+_08120CEC: .4byte 0x000160c1
+_08120CF0: .4byte gUnknown_08400709
+_08120CF4:
+ cmp r2, 0x1
+ beq _08120D04
+ ldr r0, _08120D08 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08120D10
+_08120D04:
+ ldr r6, _08120D0C @ =gUnknown_08400727
+ b _08120F70
+ .align 2, 0
+_08120D08: .4byte gUnknown_020239F8
+_08120D0C: .4byte gUnknown_08400727
+_08120D10:
+ ldr r6, _08120D1C @ =gUnknown_08400749
+ cmp r2, 0x2
+ beq _08120D18
+ b _08120F70
+_08120D18:
+ ldr r6, _08120D20 @ =gUnknown_08400736
+ b _08120F70
+ .align 2, 0
+_08120D1C: .4byte gUnknown_08400749
+_08120D20: .4byte gUnknown_08400736
+_08120D24:
+ ldr r0, _08120D44 @ =gTrainerBattleOpponent
+ ldrh r1, [r0]
+ movs r0, 0x80
+ lsls r0, 4
+ cmp r1, r0
+ bne _08120D54
+ ldr r0, _08120D48 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ ldr r6, _08120D4C @ =gUnknown_08400771
+ cmp r0, 0
+ bne _08120D40
+ b _08120F70
+_08120D40:
+ ldr r6, _08120D50 @ =gUnknown_08400781
+ b _08120F70
+ .align 2, 0
+_08120D44: .4byte gTrainerBattleOpponent
+_08120D48: .4byte gUnknown_020239F8
+_08120D4C: .4byte gUnknown_08400771
+_08120D50: .4byte gUnknown_08400781
+_08120D54:
+ ldr r6, _08120D58 @ =gUnknown_0840075E
+ b _08120F70
+ .align 2, 0
+_08120D58: .4byte gUnknown_0840075E
+_08120D5C:
+ ldr r0, _08120D88 @ =0x00016003
+ add r0, r9
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _08120DB8
+ ldr r0, _08120D8C @ =0x000160c1
+ add r0, r9
+ ldrb r3, [r0]
+ cmp r3, 0
+ beq _08120D82
+ ldr r0, _08120D90 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08120D98
+_08120D82:
+ ldr r6, _08120D94 @ =gUnknown_084006B3
+ b _08120F70
+ .align 2, 0
+_08120D88: .4byte 0x00016003
+_08120D8C: .4byte 0x000160c1
+_08120D90: .4byte gUnknown_020239F8
+_08120D94: .4byte gUnknown_084006B3
+_08120D98:
+ cmp r3, 0x1
+ bne _08120DA4
+ ldr r6, _08120DA0 @ =gUnknown_084006BB
+ b _08120F70
+ .align 2, 0
+_08120DA0: .4byte gUnknown_084006BB
+_08120DA4:
+ ldr r6, _08120DB0 @ =gUnknown_084006D5
+ cmp r3, 0x2
+ beq _08120DAC
+ b _08120F70
+_08120DAC:
+ ldr r6, _08120DB4 @ =gUnknown_084006C6
+ b _08120F70
+ .align 2, 0
+_08120DB0: .4byte gUnknown_084006D5
+_08120DB4: .4byte gUnknown_084006C6
+_08120DB8:
+ ldr r0, _08120DD4 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _08120DE0
+ movs r0, 0x40
+ ands r0, r1
+ ldr r6, _08120DD8 @ =gUnknown_0840067C
+ cmp r0, 0
+ bne _08120DD0
+ b _08120F70
+_08120DD0:
+ ldr r6, _08120DDC @ =gUnknown_0840068C
+ b _08120F70
+ .align 2, 0
+_08120DD4: .4byte gUnknown_020239F8
+_08120DD8: .4byte gUnknown_0840067C
+_08120DDC: .4byte gUnknown_0840068C
+_08120DE0:
+ ldr r6, _08120DE4 @ =gUnknown_08400622
+ b _08120F70
+ .align 2, 0
+_08120DE4: .4byte gUnknown_08400622
+_08120DE8:
+ mov r0, r10
+ bl sub_8121D1C
+ ldr r0, _08120E14 @ =gUnknown_02039270
+ ldr r2, [r0]
+ ldrh r1, [r2]
+ movs r0, 0xB1
+ lsls r0, 1
+ cmp r1, r0
+ bls _08120E28
+ ldr r0, _08120E18 @ =gUnknown_03004290
+ ldr r2, _08120E1C @ =gUnknown_08401674
+ ldr r1, _08120E20 @ =0x02000000
+ ldr r3, _08120E24 @ =0x000160a0
+ adds r1, r3
+ ldrb r1, [r1]
+ lsls r1, 2
+ adds r1, r2
+ ldr r1, [r1]
+ bl StringCopy
+ b _08120E38
+ .align 2, 0
+_08120E14: .4byte gUnknown_02039270
+_08120E18: .4byte gUnknown_03004290
+_08120E1C: .4byte gUnknown_08401674
+_08120E20: .4byte 0x02000000
+_08120E24: .4byte 0x000160a0
+_08120E28:
+ ldr r0, _08120E44 @ =gUnknown_03004290
+ ldrh r2, [r2]
+ movs r1, 0xD
+ muls r1, r2
+ ldr r2, _08120E48 @ =gMoveNames
+ adds r1, r2
+ bl StringCopy
+_08120E38:
+ ldr r0, _08120E44 @ =gUnknown_03004290
+ bl sub_8121D74
+ ldr r6, _08120E4C @ =gUnknown_084007BD
+ b _08120F70
+ .align 2, 0
+_08120E44: .4byte gUnknown_03004290
+_08120E48: .4byte gMoveNames
+_08120E4C: .4byte gUnknown_084007BD
+_08120E50:
+ ldr r5, _08120E90 @ =gUnknown_030041C0
+ ldrb r1, [r5]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _08120EB8
+ movs r0, 0x7F
+ ands r0, r1
+ strb r0, [r5]
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08120E7C
+ ldrb r1, [r5]
+ cmp r1, 0x3
+ beq _08120E7C
+ movs r0, 0x3
+ eors r0, r1
+ strb r0, [r5]
+_08120E7C:
+ ldr r0, _08120E90 @ =gUnknown_030041C0
+ ldrb r0, [r0]
+ subs r0, 0x2
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bhi _08120E98
+ ldr r6, _08120E94 @ =gUnknown_083FFEFC
+ b _08120F70
+ .align 2, 0
+_08120E90: .4byte gUnknown_030041C0
+_08120E94: .4byte gUnknown_083FFEFC
+_08120E98:
+ ldr r0, _08120EAC @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ ldr r6, _08120EB0 @ =gUnknown_083FFFEA
+ cmp r0, 0
+ beq _08120F70
+ ldr r6, _08120EB4 @ =gUnknown_083FFFF7
+ b _08120F70
+ .align 2, 0
+_08120EAC: .4byte gUnknown_020239F8
+_08120EB0: .4byte gUnknown_083FFFEA
+_08120EB4: .4byte gUnknown_083FFFF7
+_08120EB8:
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08120ED2
+ ldrb r1, [r5]
+ cmp r1, 0x3
+ beq _08120ED2
+ movs r0, 0x3
+ eors r0, r1
+ strb r0, [r5]
+_08120ED2:
+ ldr r0, _08120EF0 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _08120F18
+ ldr r0, _08120EF4 @ =gUnknown_030041C0
+ ldrb r0, [r0]
+ cmp r0, 0x2
+ beq _08120F08
+ cmp r0, 0x2
+ bgt _08120EF8
+ cmp r0, 0x1
+ beq _08120EFE
+ b _08120F70
+ .align 2, 0
+_08120EF0: .4byte gUnknown_020239F8
+_08120EF4: .4byte gUnknown_030041C0
+_08120EF8:
+ cmp r0, 0x3
+ beq _08120F10
+ b _08120F70
+_08120EFE:
+ ldr r6, _08120F04 @ =gUnknown_083FFF6A
+ b _08120F70
+ .align 2, 0
+_08120F04: .4byte gUnknown_083FFF6A
+_08120F08:
+ ldr r6, _08120F0C @ =gUnknown_083FFF99
+ b _08120F70
+ .align 2, 0
+_08120F0C: .4byte gUnknown_083FFF99
+_08120F10:
+ ldr r6, _08120F14 @ =gUnknown_083FFFCB
+ b _08120F70
+ .align 2, 0
+_08120F14: .4byte gUnknown_083FFFCB
+_08120F18:
+ ldr r0, _08120F2C @ =gUnknown_030041C0
+ ldrb r0, [r0]
+ cmp r0, 0x2
+ beq _08120F40
+ cmp r0, 0x2
+ bgt _08120F30
+ cmp r0, 0x1
+ beq _08120F36
+ b _08120F70
+ .align 2, 0
+_08120F2C: .4byte gUnknown_030041C0
+_08120F30:
+ cmp r0, 0x3
+ beq _08120F48
+ b _08120F70
+_08120F36:
+ ldr r6, _08120F3C @ =gUnknown_083FFF56
+ b _08120F70
+ .align 2, 0
+_08120F3C: .4byte gUnknown_083FFF56
+_08120F40:
+ ldr r6, _08120F44 @ =gUnknown_083FFF81
+ b _08120F70
+ .align 2, 0
+_08120F44: .4byte gUnknown_083FFF81
+_08120F48:
+ ldr r6, _08120F4C @ =gUnknown_083FFFB3
+ b _08120F70
+ .align 2, 0
+_08120F4C: .4byte gUnknown_083FFFB3
+_08120F50:
+ movs r0, 0xB5
+ lsls r0, 1
+ cmp r7, r0
+ bls _08120F64
+ ldr r1, _08120F60 @ =gUnknown_020238CC
+ movs r0, 0xFF
+ strb r0, [r1]
+ b _08120F76
+ .align 2, 0
+_08120F60: .4byte gUnknown_020238CC
+_08120F64:
+ ldr r1, _08120F84 @ =gUnknown_08400F8C
+ adds r0, r7, 0
+ subs r0, 0xC
+ lsls r0, 2
+ adds r0, r1
+ ldr r6, [r0]
+_08120F70:
+ adds r0, r6, 0
+ bl get_battle_strings_
+_08120F76:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08120F84: .4byte gUnknown_08400F8C
+ thumb_func_end sub_8120AA8
+
+ thumb_func_start get_battle_strings_
+get_battle_strings_: @ 8120F88
+ push {lr}
+ ldr r1, _08120F94 @ =gUnknown_020238CC
+ bl sub_8120FFC
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08120F94: .4byte gUnknown_020238CC
+ thumb_func_end get_battle_strings_
+
+ thumb_func_start sub_8120F98
+sub_8120F98: @ 8120F98
+ push {r4,r5,lr}
+ sub sp, 0x8
+ adds r4, r0, 0
+ ldr r1, _08120FB0 @ =gUnknown_084017A8
+ mov r0, sp
+ movs r2, 0x8
+ bl memcpy
+ mov r2, sp
+ movs r3, 0
+ b _08120FC0
+ .align 2, 0
+_08120FB0: .4byte gUnknown_084017A8
+_08120FB4:
+ strb r1, [r2]
+ adds r4, 0x1
+ adds r2, 0x1
+ adds r3, 0x1
+ cmp r3, 0x7
+ bhi _08120FC8
+_08120FC0:
+ ldrb r1, [r4]
+ adds r0, r1, 0
+ cmp r0, 0xFF
+ bne _08120FB4
+_08120FC8:
+ ldr r5, [sp]
+ ldr r4, [sp, 0x4]
+ movs r3, 0
+ ldr r2, _08120FE4 @ =gUnknown_081FA6D4
+_08120FD0:
+ ldr r1, [r2]
+ ldr r0, [r1]
+ cmp r5, r0
+ bne _08120FE8
+ ldr r0, [r1, 0x4]
+ cmp r4, r0
+ bne _08120FE8
+ ldr r0, [r2, 0x4]
+ b _08120FF2
+ .align 2, 0
+_08120FE4: .4byte gUnknown_081FA6D4
+_08120FE8:
+ adds r2, 0x8
+ adds r3, 0x1
+ cmp r3, 0x6
+ bls _08120FD0
+ movs r0, 0
+_08120FF2:
+ add sp, 0x8
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8120F98
+
+ thumb_func_start sub_8120FFC
+sub_8120FFC: @ 8120FFC
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0xC
+ mov r9, r0
+ mov r8, r1
+ movs r6, 0
+ movs r4, 0
+ bl GetMultiplayerId
+ lsls r0, 24
+ lsrs r7, r0, 24
+ mov r0, r9
+ ldrb r1, [r0]
+ bl _08121A40
+_0812101E:
+ cmp r1, 0xFD
+ beq _08121026
+ bl _08121A30
+_08121026:
+ movs r1, 0x1
+ add r9, r1
+ mov r2, r9
+ ldrb r0, [r2]
+ cmp r0, 0x2A
+ bls _08121036
+ bl _081219E6
+_08121036:
+ lsls r0, 2
+ ldr r1, _08121040 @ =_08121044
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08121040: .4byte _08121044
+ .align 2, 0
+_08121044:
+ .4byte _081210F0
+ .4byte _0812111E
+ .4byte _0812115A
+ .4byte _08121180
+ .4byte _081211A4
+ .4byte _081211C8
+ .4byte _081211EC
+ .4byte _08121218
+ .4byte _08121248
+ .4byte _08121278
+ .4byte _081212A8
+ .4byte _0812133C
+ .4byte _081213A8
+ .4byte _0812141C
+ .4byte _08121490
+ .4byte _08121504
+ .4byte _08121578
+ .4byte _081215F8
+ .4byte _08121620
+ .4byte _08121660
+ .4byte _081216EC
+ .4byte _081216F4
+ .4byte _08121704
+ .4byte _08121714
+ .4byte _0812172C
+ .4byte _0812174C
+ .4byte _081217C0
+ .4byte _08121830
+ .4byte _08121840
+ .4byte _08121854
+ .4byte _08121868
+ .4byte _0812188C
+ .4byte _081218B0
+ .4byte _081218B8
+ .4byte _081218C0
+ .4byte _0812195C
+ .4byte _081219A4
+ .4byte _081219AC
+ .4byte _0812197C
+ .4byte _08121984
+ .4byte _081219CC
+ .4byte _081219D4
+ .4byte _08121134
+_081210F0:
+ ldr r5, _08121100 @ =gUnknown_030041C0
+ ldrb r0, [r5]
+ cmp r0, 0xFD
+ bne _08121108
+ ldr r4, _08121104 @ =gStringVar1
+ adds r0, r5, 0
+ b _08121140
+ .align 2, 0
+_08121100: .4byte gUnknown_030041C0
+_08121104: .4byte gStringVar1
+_08121108:
+ adds r0, r5, 0
+ bl sub_8120F98
+ adds r4, r0, 0
+ cmp r4, 0
+ beq _08121118
+ bl _081219E6
+_08121118:
+ adds r4, r5, 0
+ bl _081219E6
+_0812111E:
+ ldr r1, _0812112C @ =gUnknown_03004290
+ ldrb r0, [r1]
+ cmp r0, 0xFD
+ bne _08121154
+ ldr r4, _08121130 @ =gStringVar2
+ b _0812113E
+ .align 2, 0
+_0812112C: .4byte gUnknown_03004290
+_08121130: .4byte gStringVar2
+_08121134:
+ ldr r1, _0812114C @ =gUnknown_030042B0
+ ldrb r0, [r1]
+ cmp r0, 0xFD
+ bne _08121154
+ ldr r4, _08121150 @ =gStringVar3
+_0812113E:
+ adds r0, r1, 0
+_08121140:
+ adds r1, r4, 0
+ bl sub_8121A68
+ bl _081219E6
+ .align 2, 0
+_0812114C: .4byte gUnknown_030042B0
+_08121150: .4byte gStringVar3
+_08121154:
+ adds r4, r1, 0
+ bl _081219E6
+_0812115A:
+ movs r0, 0
+ bl battle_get_side_with_given_state
+ ldr r1, _08121178 @ =gUnknown_02024A6A
+ lsls r0, 24
+ lsrs r0, 23
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _0812117C @ =gPlayerParty
+ adds r0, r1
+ bl _0812190E
+ .align 2, 0
+_08121178: .4byte gUnknown_02024A6A
+_0812117C: .4byte gPlayerParty
+_08121180:
+ movs r0, 0x1
+ bl battle_get_side_with_given_state
+ ldr r1, _0812119C @ =gUnknown_02024A6A
+ lsls r0, 24
+ lsrs r0, 23
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _081211A0 @ =gEnemyParty
+ adds r0, r1
+ b _0812190E
+ .align 2, 0
+_0812119C: .4byte gUnknown_02024A6A
+_081211A0: .4byte gEnemyParty
+_081211A4:
+ movs r0, 0x2
+ bl battle_get_side_with_given_state
+ ldr r1, _081211C0 @ =gUnknown_02024A6A
+ lsls r0, 24
+ lsrs r0, 23
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _081211C4 @ =gPlayerParty
+ adds r0, r1
+ b _0812190E
+ .align 2, 0
+_081211C0: .4byte gUnknown_02024A6A
+_081211C4: .4byte gPlayerParty
+_081211C8:
+ movs r0, 0x3
+ bl battle_get_side_with_given_state
+ ldr r1, _081211E4 @ =gUnknown_02024A6A
+ lsls r0, 24
+ lsrs r0, 23
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _081211E8 @ =gEnemyParty
+ adds r0, r1
+ b _0812190E
+ .align 2, 0
+_081211E4: .4byte gUnknown_02024A6A
+_081211E8: .4byte gEnemyParty
+_081211EC:
+ ldr r2, _0812120C @ =gUnknown_02024A6A
+ ldr r1, _08121210 @ =gLinkPlayers
+ lsls r0, r7, 3
+ subs r0, r7
+ lsls r0, 2
+ adds r0, r1
+ ldrh r0, [r0, 0x18]
+ lsls r0, 1
+ adds r0, r2
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _08121214 @ =gPlayerParty
+ adds r0, r1
+ b _0812190E
+ .align 2, 0
+_0812120C: .4byte gUnknown_02024A6A
+_08121210: .4byte gLinkPlayers
+_08121214: .4byte gPlayerParty
+_08121218:
+ ldr r2, _0812123C @ =gUnknown_02024A6A
+ ldr r1, _08121240 @ =gLinkPlayers
+ lsls r0, r7, 3
+ subs r0, r7
+ lsls r0, 2
+ adds r0, r1
+ ldrh r1, [r0, 0x18]
+ movs r0, 0x1
+ eors r0, r1
+ lsls r0, 1
+ adds r0, r2
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _08121244 @ =gEnemyParty
+ adds r0, r1
+ b _0812190E
+ .align 2, 0
+_0812123C: .4byte gUnknown_02024A6A
+_08121240: .4byte gLinkPlayers
+_08121244: .4byte gEnemyParty
+_08121248:
+ ldr r2, _0812126C @ =gUnknown_02024A6A
+ ldr r1, _08121270 @ =gLinkPlayers
+ lsls r0, r7, 3
+ subs r0, r7
+ lsls r0, 2
+ adds r0, r1
+ ldrh r1, [r0, 0x18]
+ movs r0, 0x2
+ eors r0, r1
+ lsls r0, 1
+ adds r0, r2
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _08121274 @ =gPlayerParty
+ adds r0, r1
+ b _0812190E
+ .align 2, 0
+_0812126C: .4byte gUnknown_02024A6A
+_08121270: .4byte gLinkPlayers
+_08121274: .4byte gPlayerParty
+_08121278:
+ ldr r2, _0812129C @ =gUnknown_02024A6A
+ ldr r1, _081212A0 @ =gLinkPlayers
+ lsls r0, r7, 3
+ subs r0, r7
+ lsls r0, 2
+ adds r0, r1
+ ldrh r1, [r0, 0x18]
+ movs r0, 0x3
+ eors r0, r1
+ lsls r0, 1
+ adds r0, r2
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _081212A4 @ =gEnemyParty
+ adds r0, r1
+ b _0812190E
+ .align 2, 0
+_0812129C: .4byte gUnknown_02024A6A
+_081212A0: .4byte gLinkPlayers
+_081212A4: .4byte gEnemyParty
+_081212A8:
+ ldr r4, _081212CC @ =gUnknown_02024C07
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ lsls r0, 24
+ adds r2, r4, 0
+ cmp r0, 0
+ beq _0812131C
+ ldr r0, _081212D0 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x8
+ ands r0, r1
+ ldr r4, _081212D4 @ =gUnknown_08400791
+ cmp r0, 0
+ beq _081212E6
+ ldr r4, _081212D8 @ =gUnknown_08400797
+ b _081212E6
+ .align 2, 0
+_081212CC: .4byte gUnknown_02024C07
+_081212D0: .4byte gUnknown_020239F8
+_081212D4: .4byte gUnknown_08400791
+_081212D8: .4byte gUnknown_08400797
+_081212DC:
+ mov r3, r8
+ adds r0, r3, r6
+ strb r1, [r0]
+ adds r6, 0x1
+ adds r4, 0x1
+_081212E6:
+ ldrb r1, [r4]
+ adds r0, r1, 0
+ cmp r0, 0xFF
+ bne _081212DC
+ ldrb r0, [r2]
+ bl battle_get_per_side_status
+ adds r1, r0, 0
+ movs r0, 0x1
+ ands r0, r1
+ bl battle_get_side_with_given_state
+ ldr r1, _08121314 @ =gUnknown_02024A6A
+ lsls r0, 24
+ lsrs r0, 23
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _08121318 @ =gEnemyParty
+ adds r0, r1
+ b _0812190E
+ .align 2, 0
+_08121314: .4byte gUnknown_02024A6A
+_08121318: .4byte gEnemyParty
+_0812131C:
+ ldrb r0, [r2]
+ bl battle_get_per_side_status
+ adds r1, r0, 0
+ movs r0, 0x1
+ ands r0, r1
+ bl battle_get_side_with_given_state
+ ldr r1, _08121338 @ =gUnknown_02024A6A
+ lsls r0, 24
+ lsrs r0, 23
+ adds r0, r1
+ ldrh r1, [r0]
+ b _0812193A
+ .align 2, 0
+_08121338: .4byte gUnknown_02024A6A
+_0812133C:
+ ldr r4, _08121370 @ =gUnknown_02024C07
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _0812137C
+ ldrb r0, [r4]
+ bl battle_get_per_side_status
+ adds r1, r0, 0
+ movs r0, 0x1
+ ands r0, r1
+ bl battle_get_side_with_given_state
+ ldr r1, _08121374 @ =gUnknown_02024A6A
+ lsls r0, 24
+ lsrs r0, 23
+ adds r0, 0x4
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _08121378 @ =gPlayerParty
+ adds r0, r1
+ b _0812190E
+ .align 2, 0
+_08121370: .4byte gUnknown_02024C07
+_08121374: .4byte gUnknown_02024A6A
+_08121378: .4byte gPlayerParty
+_0812137C:
+ ldrb r0, [r4]
+ bl battle_get_per_side_status
+ adds r1, r0, 0
+ movs r0, 0x1
+ ands r0, r1
+ bl battle_get_side_with_given_state
+ ldr r1, _081213A0 @ =gUnknown_02024A6A
+ lsls r0, 24
+ lsrs r0, 23
+ adds r0, 0x4
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _081213A4 @ =gEnemyParty
+ b _08121940
+ .align 2, 0
+_081213A0: .4byte gUnknown_02024A6A
+_081213A4: .4byte gEnemyParty
+_081213A8:
+ ldr r5, _081213F4 @ =gUnknown_02024C07
+ ldrb r0, [r5]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _0812140C
+ ldr r0, _081213F8 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x8
+ ands r0, r1
+ ldr r4, _081213FC @ =gUnknown_08400791
+ cmp r0, 0
+ beq _081213C6
+ ldr r4, _08121400 @ =gUnknown_08400797
+_081213C6:
+ ldrb r1, [r4]
+ adds r0, r1, 0
+ ldr r3, _08121404 @ =gUnknown_02024A6A
+ ldr r2, _08121408 @ =gEnemyParty
+ mov r12, r2
+ adds r2, r5, 0
+ cmp r0, 0xFF
+ beq _081213E8
+_081213D6:
+ mov r5, r8
+ adds r0, r5, r6
+ strb r1, [r0]
+ adds r6, 0x1
+ adds r4, 0x1
+ ldrb r1, [r4]
+ adds r0, r1, 0
+ cmp r0, 0xFF
+ bne _081213D6
+_081213E8:
+ ldrb r0, [r2]
+ lsls r0, 1
+ adds r0, r3
+ ldrh r1, [r0]
+ b _08121908
+ .align 2, 0
+_081213F4: .4byte gUnknown_02024C07
+_081213F8: .4byte gUnknown_020239F8
+_081213FC: .4byte gUnknown_08400791
+_08121400: .4byte gUnknown_08400797
+_08121404: .4byte gUnknown_02024A6A
+_08121408: .4byte gEnemyParty
+_0812140C:
+ ldr r1, _08121418 @ =gUnknown_02024A6A
+ ldrb r0, [r5]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ b _0812193A
+ .align 2, 0
+_08121418: .4byte gUnknown_02024A6A
+_0812141C:
+ ldr r5, _08121468 @ =gUnknown_02024C08
+ ldrb r0, [r5]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _08121480
+ ldr r0, _0812146C @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x8
+ ands r0, r1
+ ldr r4, _08121470 @ =gUnknown_08400791
+ cmp r0, 0
+ beq _0812143A
+ ldr r4, _08121474 @ =gUnknown_08400797
+_0812143A:
+ ldrb r1, [r4]
+ adds r0, r1, 0
+ ldr r3, _08121478 @ =gUnknown_02024A6A
+ ldr r2, _0812147C @ =gEnemyParty
+ mov r12, r2
+ adds r2, r5, 0
+ cmp r0, 0xFF
+ beq _0812145C
+_0812144A:
+ mov r5, r8
+ adds r0, r5, r6
+ strb r1, [r0]
+ adds r6, 0x1
+ adds r4, 0x1
+ ldrb r1, [r4]
+ adds r0, r1, 0
+ cmp r0, 0xFF
+ bne _0812144A
+_0812145C:
+ ldrb r0, [r2]
+ lsls r0, 1
+ adds r0, r3
+ ldrh r1, [r0]
+ b _08121908
+ .align 2, 0
+_08121468: .4byte gUnknown_02024C08
+_0812146C: .4byte gUnknown_020239F8
+_08121470: .4byte gUnknown_08400791
+_08121474: .4byte gUnknown_08400797
+_08121478: .4byte gUnknown_02024A6A
+_0812147C: .4byte gEnemyParty
+_08121480:
+ ldr r1, _0812148C @ =gUnknown_02024A6A
+ ldrb r0, [r5]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ b _0812193A
+ .align 2, 0
+_0812148C: .4byte gUnknown_02024A6A
+_08121490:
+ ldr r5, _081214DC @ =gUnknown_02024C0A
+ ldrb r0, [r5]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _081214F4
+ ldr r0, _081214E0 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x8
+ ands r0, r1
+ ldr r4, _081214E4 @ =gUnknown_08400791
+ cmp r0, 0
+ beq _081214AE
+ ldr r4, _081214E8 @ =gUnknown_08400797
+_081214AE:
+ ldrb r1, [r4]
+ adds r0, r1, 0
+ ldr r3, _081214EC @ =gUnknown_02024A6A
+ ldr r2, _081214F0 @ =gEnemyParty
+ mov r12, r2
+ adds r2, r5, 0
+ cmp r0, 0xFF
+ beq _081214D0
+_081214BE:
+ mov r5, r8
+ adds r0, r5, r6
+ strb r1, [r0]
+ adds r6, 0x1
+ adds r4, 0x1
+ ldrb r1, [r4]
+ adds r0, r1, 0
+ cmp r0, 0xFF
+ bne _081214BE
+_081214D0:
+ ldrb r0, [r2]
+ lsls r0, 1
+ adds r0, r3
+ ldrh r1, [r0]
+ b _08121908
+ .align 2, 0
+_081214DC: .4byte gUnknown_02024C0A
+_081214E0: .4byte gUnknown_020239F8
+_081214E4: .4byte gUnknown_08400791
+_081214E8: .4byte gUnknown_08400797
+_081214EC: .4byte gUnknown_02024A6A
+_081214F0: .4byte gEnemyParty
+_081214F4:
+ ldr r1, _08121500 @ =gUnknown_02024A6A
+ ldrb r0, [r5]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ b _0812193A
+ .align 2, 0
+_08121500: .4byte gUnknown_02024A6A
+_08121504:
+ ldr r5, _08121550 @ =gUnknown_02024A60
+ ldrb r0, [r5]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _08121568
+ ldr r0, _08121554 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x8
+ ands r0, r1
+ ldr r4, _08121558 @ =gUnknown_08400791
+ cmp r0, 0
+ beq _08121522
+ ldr r4, _0812155C @ =gUnknown_08400797
+_08121522:
+ ldrb r1, [r4]
+ adds r0, r1, 0
+ ldr r3, _08121560 @ =gUnknown_02024A6A
+ ldr r2, _08121564 @ =gEnemyParty
+ mov r12, r2
+ adds r2, r5, 0
+ cmp r0, 0xFF
+ beq _08121544
+_08121532:
+ mov r5, r8
+ adds r0, r5, r6
+ strb r1, [r0]
+ adds r6, 0x1
+ adds r4, 0x1
+ ldrb r1, [r4]
+ adds r0, r1, 0
+ cmp r0, 0xFF
+ bne _08121532
+_08121544:
+ ldrb r0, [r2]
+ lsls r0, 1
+ adds r0, r3
+ ldrh r1, [r0]
+ b _08121908
+ .align 2, 0
+_08121550: .4byte gUnknown_02024A60
+_08121554: .4byte gUnknown_020239F8
+_08121558: .4byte gUnknown_08400791
+_0812155C: .4byte gUnknown_08400797
+_08121560: .4byte gUnknown_02024A6A
+_08121564: .4byte gEnemyParty
+_08121568:
+ ldr r1, _08121574 @ =gUnknown_02024A6A
+ ldrb r0, [r5]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ b _0812193A
+ .align 2, 0
+_08121574: .4byte gUnknown_02024A6A
+_08121578:
+ ldr r4, _081215CC @ =0x02000000
+ ldr r0, _081215D0 @ =0x00016003
+ adds r5, r4, r0
+ ldrb r0, [r5]
+ bl battle_side_get_owner
+ lsls r0, 24
+ adds r2, r4, 0
+ cmp r0, 0
+ beq _081215E8
+ ldr r0, _081215D4 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x8
+ ands r0, r1
+ ldr r4, _081215D8 @ =gUnknown_08400791
+ cmp r0, 0
+ beq _0812159C
+ ldr r4, _081215DC @ =gUnknown_08400797
+_0812159C:
+ ldrb r1, [r4]
+ adds r0, r1, 0
+ ldr r3, _081215E0 @ =gUnknown_02024A6A
+ ldr r5, _081215E4 @ =gEnemyParty
+ mov r12, r5
+ cmp r0, 0xFF
+ beq _081215BC
+_081215AA:
+ mov r5, r8
+ adds r0, r5, r6
+ strb r1, [r0]
+ adds r6, 0x1
+ adds r4, 0x1
+ ldrb r1, [r4]
+ adds r0, r1, 0
+ cmp r0, 0xFF
+ bne _081215AA
+_081215BC:
+ ldr r1, _081215D0 @ =0x00016003
+ adds r0, r2, r1
+ ldrb r0, [r0]
+ lsls r0, 1
+ adds r0, r3
+ ldrh r1, [r0]
+ b _08121908
+ .align 2, 0
+_081215CC: .4byte 0x02000000
+_081215D0: .4byte 0x00016003
+_081215D4: .4byte gUnknown_020239F8
+_081215D8: .4byte gUnknown_08400791
+_081215DC: .4byte gUnknown_08400797
+_081215E0: .4byte gUnknown_02024A6A
+_081215E4: .4byte gEnemyParty
+_081215E8:
+ ldr r1, _081215F4 @ =gUnknown_02024A6A
+ ldrb r0, [r5]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ b _0812193A
+ .align 2, 0
+_081215F4: .4byte gUnknown_02024A6A
+_081215F8:
+ ldr r0, _08121610 @ =gUnknown_02039270
+ ldr r2, [r0]
+ ldrh r1, [r2]
+ movs r0, 0xB1
+ lsls r0, 1
+ cmp r1, r0
+ bls _0812161C
+ ldr r0, _08121614 @ =0x02000000
+ ldr r2, _08121618 @ =0x000160a0
+ adds r0, r2
+ b _08121634
+ .align 2, 0
+_08121610: .4byte gUnknown_02039270
+_08121614: .4byte 0x02000000
+_08121618: .4byte 0x000160a0
+_0812161C:
+ ldrh r1, [r2]
+ b _08121652
+_08121620:
+ ldr r0, _08121640 @ =gUnknown_02039270
+ ldr r2, [r0]
+ ldrh r1, [r2, 0x2]
+ movs r0, 0xB1
+ lsls r0, 1
+ cmp r1, r0
+ bls _08121650
+ ldr r0, _08121644 @ =0x02000000
+ ldr r3, _08121648 @ =0x000160a0
+ adds r0, r3
+_08121634:
+ ldrb r0, [r0]
+ lsls r0, 2
+ ldr r1, _0812164C @ =gUnknown_08401674
+ adds r4, r0, r1
+ b _081219E6
+ .align 2, 0
+_08121640: .4byte gUnknown_02039270
+_08121644: .4byte 0x02000000
+_08121648: .4byte 0x000160a0
+_0812164C: .4byte gUnknown_08401674
+_08121650:
+ ldrh r1, [r2, 0x2]
+_08121652:
+ movs r0, 0xD
+ muls r1, r0
+ ldr r0, _0812165C @ =gMoveNames
+ adds r4, r1, r0
+ b _081219E6
+ .align 2, 0
+_0812165C: .4byte gMoveNames
+_08121660:
+ ldr r0, _081216AC @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _081216D8
+ ldr r1, _081216B0 @ =gUnknown_02024C04
+ ldrh r0, [r1]
+ cmp r0, 0xAF
+ bne _081216D4
+ ldr r2, _081216B4 @ =gLinkPlayers
+ ldr r0, _081216B8 @ =0x02000000
+ ldr r5, _081216BC @ =0x000160cb
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldr r1, _081216C0 @ =gUnknown_02024C0B
+ ldrb r2, [r1]
+ ldrh r0, [r0, 0x18]
+ cmp r0, r2
+ bne _081216CC
+ lsls r1, r2, 3
+ subs r1, r2
+ lsls r1, 2
+ ldr r0, _081216C4 @ =gEnigmaBerries
+ adds r1, r0
+ mov r0, sp
+ bl StringCopy
+ ldr r1, _081216C8 @ =gUnknown_08400A85
+ mov r0, sp
+ bl StringAppend
+ mov r4, sp
+ b _081219E6
+ .align 2, 0
+_081216AC: .4byte gUnknown_020239F8
+_081216B0: .4byte gUnknown_02024C04
+_081216B4: .4byte gLinkPlayers
+_081216B8: .4byte 0x02000000
+_081216BC: .4byte 0x000160cb
+_081216C0: .4byte gUnknown_02024C0B
+_081216C4: .4byte gEnigmaBerries
+_081216C8: .4byte gUnknown_08400A85
+_081216CC:
+ ldr r4, _081216D0 @ =gUnknown_08400A78
+ b _081219E6
+ .align 2, 0
+_081216D0: .4byte gUnknown_08400A78
+_081216D4:
+ ldrh r0, [r1]
+ b _081216DC
+_081216D8:
+ ldr r0, _081216E8 @ =gUnknown_02024C04
+ ldrh r0, [r0]
+_081216DC:
+ mov r1, sp
+ bl CopyItemName
+ mov r4, sp
+ b _081219E6
+ .align 2, 0
+_081216E8: .4byte gUnknown_02024C04
+_081216EC:
+ ldr r0, _081216F0 @ =byte_2024C06
+ b _08121734
+ .align 2, 0
+_081216F0: .4byte byte_2024C06
+_081216F4:
+ ldr r1, _081216FC @ =gUnknown_0203926C
+ ldr r0, _08121700 @ =gUnknown_02024C07
+ b _08121730
+ .align 2, 0
+_081216FC: .4byte gUnknown_0203926C
+_08121700: .4byte gUnknown_02024C07
+_08121704:
+ ldr r1, _0812170C @ =gUnknown_0203926C
+ ldr r0, _08121710 @ =gUnknown_02024C08
+ b _08121730
+ .align 2, 0
+_0812170C: .4byte gUnknown_0203926C
+_08121710: .4byte gUnknown_02024C08
+_08121714:
+ ldr r1, _08121720 @ =gUnknown_0203926C
+ ldr r0, _08121724 @ =0x02000000
+ ldr r2, _08121728 @ =0x00016003
+ adds r0, r2
+ b _08121730
+ .align 2, 0
+_08121720: .4byte gUnknown_0203926C
+_08121724: .4byte 0x02000000
+_08121728: .4byte 0x00016003
+_0812172C:
+ ldr r1, _08121740 @ =gUnknown_0203926C
+ ldr r0, _08121744 @ =gUnknown_02024C0A
+_08121730:
+ ldrb r0, [r0]
+ adds r0, r1
+_08121734:
+ ldrb r1, [r0]
+ movs r0, 0xD
+ muls r1, r0
+ ldr r0, _08121748 @ =gAbilityNames
+ adds r4, r1, r0
+ b _081219E6
+ .align 2, 0
+_08121740: .4byte gUnknown_0203926C
+_08121744: .4byte gUnknown_02024C0A
+_08121748: .4byte gAbilityNames
+_0812174C:
+ ldr r3, _08121764 @ =gTrainerBattleOpponent
+ ldrh r1, [r3]
+ movs r0, 0x80
+ lsls r0, 3
+ cmp r1, r0
+ bne _08121768
+ bl GetSecretBaseTrainerNameIndex
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0xD
+ b _081217AE
+ .align 2, 0
+_08121764: .4byte gTrainerBattleOpponent
+_08121768:
+ ldr r0, _08121784 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x80
+ lsls r0, 1
+ ands r0, r1
+ cmp r0, 0
+ beq _08121788
+ bl get_trainer_class_name_index
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0xD
+ b _081217AE
+ .align 2, 0
+_08121784: .4byte gUnknown_020239F8
+_08121788:
+ movs r0, 0x80
+ lsls r0, 4
+ ands r0, r1
+ cmp r0, 0
+ beq _0812179E
+ bl sub_8135FD8
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0xD
+ b _081217AE
+_0812179E:
+ ldr r2, _081217B8 @ =gTrainers
+ ldrh r1, [r3]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldrb r1, [r0, 0x1]
+ movs r0, 0xD
+_081217AE:
+ muls r1, r0
+ ldr r0, _081217BC @ =gTrainerClassNames
+ adds r4, r1, r0
+ b _081219E6
+ .align 2, 0
+_081217B8: .4byte gTrainers
+_081217BC: .4byte gTrainerClassNames
+_081217C0:
+ ldr r2, _081217E4 @ =gTrainerBattleOpponent
+ ldrh r1, [r2]
+ movs r0, 0x80
+ lsls r0, 3
+ cmp r1, r0
+ bne _081217EC
+ mov r0, sp
+ movs r1, 0xFF
+ movs r2, 0x8
+ bl memset
+ ldr r1, _081217E8 @ =0x02017002
+ mov r0, sp
+ movs r2, 0x7
+ bl memcpy
+ mov r4, sp
+ b _081219E6
+ .align 2, 0
+_081217E4: .4byte gTrainerBattleOpponent
+_081217E8: .4byte 0x02017002
+_081217EC:
+ ldr r0, _08121804 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x80
+ lsls r0, 1
+ ands r0, r1
+ cmp r0, 0
+ beq _08121808
+ mov r0, sp
+ bl get_trainer_name
+ mov r4, sp
+ b _081219E6
+ .align 2, 0
+_08121804: .4byte gUnknown_020239F8
+_08121808:
+ movs r0, 0x80
+ lsls r0, 4
+ ands r0, r1
+ cmp r0, 0
+ beq _0812181C
+ mov r0, sp
+ bl sub_8135FF4
+ mov r4, sp
+ b _081219E6
+_0812181C:
+ ldrh r0, [r2]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _0812182C @ =gTrainers + 0x4
+ adds r4, r1, r0
+ b _081219E6
+ .align 2, 0
+_0812182C: .4byte gTrainers + 0x4
+_08121830:
+ lsls r0, r7, 3
+ subs r0, r7
+ lsls r0, 2
+ ldr r1, _0812183C @ =gLinkPlayers + 0x8
+ adds r4, r0, r1
+ b _081219E6
+ .align 2, 0
+_0812183C: .4byte gLinkPlayers + 0x8
+_08121840:
+ ldr r4, _08121850 @ =gLinkPlayers
+ lsls r0, r7, 3
+ subs r0, r7
+ lsls r0, 2
+ adds r0, r4
+ ldrh r1, [r0, 0x18]
+ movs r0, 0x2
+ b _08121876
+ .align 2, 0
+_08121850: .4byte gLinkPlayers
+_08121854:
+ ldr r4, _08121864 @ =gLinkPlayers
+ lsls r0, r7, 3
+ subs r0, r7
+ lsls r0, 2
+ adds r0, r4
+ ldrh r1, [r0, 0x18]
+ movs r0, 0x1
+ b _08121876
+ .align 2, 0
+_08121864: .4byte gLinkPlayers
+_08121868:
+ ldr r4, _08121888 @ =gLinkPlayers
+ lsls r0, r7, 3
+ subs r0, r7
+ lsls r0, 2
+ adds r0, r4
+ ldrh r1, [r0, 0x18]
+ movs r0, 0x3
+_08121876:
+ eors r0, r1
+ bl sub_803FC34
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 2
+ adds r4, 0x8
+ adds r4, r1, r4
+ b _081219E6
+ .align 2, 0
+_08121888: .4byte gLinkPlayers
+_0812188C:
+ ldr r0, _081218A4 @ =0x02000000
+ ldr r3, _081218A8 @ =0x00016003
+ adds r0, r3
+ ldrb r0, [r0]
+ bl sub_803FC34
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 2
+ ldr r0, _081218AC @ =gLinkPlayers + 0x8
+ adds r4, r1, r0
+ b _081219E6
+ .align 2, 0
+_081218A4: .4byte 0x02000000
+_081218A8: .4byte 0x00016003
+_081218AC: .4byte gLinkPlayers + 0x8
+_081218B0:
+ ldr r4, _081218B4 @ =gSaveBlock2
+ b _081219E6
+ .align 2, 0
+_081218B4: .4byte gSaveBlock2
+_081218B8:
+ bl sub_8082830
+ adds r4, r0, 0
+ b _081219E6
+_081218C0:
+ ldr r5, _08121918 @ =0x02000000
+ ldr r1, _0812191C @ =0x00016003
+ adds r0, r5, r1
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _08121934
+ ldr r0, _08121920 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x8
+ ands r0, r1
+ ldr r4, _08121924 @ =gUnknown_08400791
+ cmp r0, 0
+ beq _081218E2
+ ldr r4, _08121928 @ =gUnknown_08400797
+_081218E2:
+ ldrb r1, [r4]
+ adds r0, r1, 0
+ ldr r2, _0812192C @ =gEnemyParty
+ mov r12, r2
+ adds r2, r5, 0
+ cmp r0, 0xFF
+ beq _08121902
+_081218F0:
+ mov r3, r8
+ adds r0, r3, r6
+ strb r1, [r0]
+ adds r6, 0x1
+ adds r4, 0x1
+ ldrb r1, [r4]
+ adds r0, r1, 0
+ cmp r0, 0xFF
+ bne _081218F0
+_08121902:
+ ldr r5, _08121930 @ =0x0001605e
+ adds r0, r2, r5
+ ldrb r1, [r0]
+_08121908:
+ movs r0, 0x64
+ muls r0, r1
+ add r0, r12
+_0812190E:
+ movs r1, 0x2
+ mov r2, sp
+ bl GetMonData
+ b _0812194A
+ .align 2, 0
+_08121918: .4byte 0x02000000
+_0812191C: .4byte 0x00016003
+_08121920: .4byte gUnknown_020239F8
+_08121924: .4byte gUnknown_08400791
+_08121928: .4byte gUnknown_08400797
+_0812192C: .4byte gEnemyParty
+_08121930: .4byte 0x0001605e
+_08121934:
+ ldr r1, _08121954 @ =0x0001605e
+ adds r0, r5, r1
+ ldrb r1, [r0]
+_0812193A:
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _08121958 @ =gPlayerParty
+_08121940:
+ adds r0, r1
+ movs r1, 0x2
+ mov r2, sp
+ bl GetMonData
+_0812194A:
+ mov r0, sp
+ bl StringGetEnd10
+ mov r4, sp
+ b _081219E6
+ .align 2, 0
+_08121954: .4byte 0x0001605e
+_08121958: .4byte gPlayerParty
+_0812195C:
+ ldr r0, _08121970 @ =0x0000084b
+ bl FlagGet
+ lsls r0, 24
+ ldr r4, _08121974 @ =gUnknown_084009ED
+ cmp r0, 0
+ beq _081219E6
+ ldr r4, _08121978 @ =gUnknown_084009F7
+ b _081219E6
+ .align 2, 0
+_08121970: .4byte 0x0000084b
+_08121974: .4byte gUnknown_084009ED
+_08121978: .4byte gUnknown_084009F7
+_0812197C:
+ ldr r0, _08121980 @ =gUnknown_02024C07
+ b _08121986
+ .align 2, 0
+_08121980: .4byte gUnknown_02024C07
+_08121984:
+ ldr r0, _08121998 @ =gUnknown_02024C08
+_08121986:
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ ldr r4, _0812199C @ =gUnknown_084007A7
+ cmp r0, 0
+ bne _081219E6
+ ldr r4, _081219A0 @ =gUnknown_084007AC
+ b _081219E6
+ .align 2, 0
+_08121998: .4byte gUnknown_02024C08
+_0812199C: .4byte gUnknown_084007A7
+_081219A0: .4byte gUnknown_084007AC
+_081219A4:
+ ldr r0, _081219A8 @ =gUnknown_02024C07
+ b _081219AE
+ .align 2, 0
+_081219A8: .4byte gUnknown_02024C07
+_081219AC:
+ ldr r0, _081219C0 @ =gUnknown_02024C08
+_081219AE:
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ ldr r4, _081219C4 @ =gUnknown_0840079C
+ cmp r0, 0
+ bne _081219E6
+ ldr r4, _081219C8 @ =gUnknown_084007A1
+ b _081219E6
+ .align 2, 0
+_081219C0: .4byte gUnknown_02024C08
+_081219C4: .4byte gUnknown_0840079C
+_081219C8: .4byte gUnknown_084007A1
+_081219CC:
+ ldr r0, _081219D0 @ =gUnknown_02024C07
+ b _081219D6
+ .align 2, 0
+_081219D0: .4byte gUnknown_02024C07
+_081219D4:
+ ldr r0, _08121A24 @ =gUnknown_02024C08
+_081219D6:
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ ldr r4, _08121A28 @ =gUnknown_084007B2
+ cmp r0, 0
+ bne _081219E6
+ ldr r4, _08121A2C @ =gUnknown_084007B7
+_081219E6:
+ ldrb r1, [r4]
+ adds r0, r1, 0
+ mov r3, r9
+ ldrb r2, [r3]
+ adds r3, 0x1
+ cmp r0, 0xFF
+ beq _08121A06
+_081219F4:
+ mov r5, r8
+ adds r0, r5, r6
+ strb r1, [r0]
+ adds r6, 0x1
+ adds r4, 0x1
+ ldrb r1, [r4]
+ adds r0, r1, 0
+ cmp r0, 0xFF
+ bne _081219F4
+_08121A06:
+ lsls r0, r2, 24
+ lsrs r0, 24
+ cmp r0, 0x21
+ bne _08121A3C
+ mov r0, r8
+ adds r1, r0, r6
+ movs r0, 0xFC
+ strb r0, [r1]
+ adds r6, 0x1
+ mov r2, r8
+ adds r1, r2, r6
+ movs r0, 0x9
+ strb r0, [r1]
+ adds r6, 0x1
+ b _08121A3C
+ .align 2, 0
+_08121A24: .4byte gUnknown_02024C08
+_08121A28: .4byte gUnknown_084007B2
+_08121A2C: .4byte gUnknown_084007B7
+_08121A30:
+ mov r3, r8
+ adds r0, r3, r6
+ strb r1, [r0]
+ adds r6, 0x1
+ mov r3, r9
+ adds r3, 0x1
+_08121A3C:
+ mov r9, r3
+ ldrb r1, [r3]
+_08121A40:
+ adds r0, r1, 0
+ cmp r0, 0xFF
+ beq _08121A4A
+ bl _0812101E
+_08121A4A:
+ mov r5, r8
+ adds r1, r5, r6
+ mov r2, r9
+ ldrb r0, [r2]
+ strb r0, [r1]
+ adds r6, 0x1
+ adds r0, r6, 0
+ add sp, 0xC
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8120FFC
+
+ thumb_func_start sub_8121A68
+sub_8121A68: @ 8121A68
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0xC
+ adds r7, r0, 0
+ adds r6, r1, 0
+ movs r5, 0x1
+ movs r0, 0
+ mov r8, r0
+ movs r0, 0xFF
+ strb r0, [r6]
+ ldrb r0, [r7, 0x1]
+ cmp r0, 0xFF
+ bne _08121A86
+ b _08121D0E
+_08121A86:
+ adds r0, r7, r5
+ ldrb r1, [r0]
+ adds r4, r0, 0
+ cmp r1, 0xA
+ bls _08121A92
+ b _08121D04
+_08121A92:
+ lsls r0, r1, 2
+ ldr r1, _08121A9C @ =_08121AA0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08121A9C: .4byte _08121AA0
+ .align 2, 0
+_08121AA0:
+ .4byte _08121ACC
+ .4byte _08121AE8
+ .4byte _08121B3C
+ .4byte _08121B54
+ .4byte _08121B64
+ .4byte _08121BDC
+ .4byte _08121BF0
+ .4byte _08121C02
+ .4byte _08121C48
+ .4byte _08121C5C
+ .4byte _08121C78
+_08121ACC:
+ adds r0, r5, r7
+ ldrb r1, [r0, 0x1]
+ ldrb r0, [r0, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldr r0, _08121AE4 @ =gUnknown_08400F8C
+ subs r1, 0xC
+ lsls r1, 2
+ adds r1, r0
+ ldr r1, [r1]
+ b _08121CE2
+ .align 2, 0
+_08121AE4: .4byte gUnknown_08400F8C
+_08121AE8:
+ ldrb r0, [r4, 0x1]
+ cmp r0, 0x2
+ beq _08121B04
+ cmp r0, 0x2
+ bgt _08121AF8
+ cmp r0, 0x1
+ beq _08121AFE
+ b _08121B26
+_08121AF8:
+ cmp r0, 0x4
+ beq _08121B0C
+ b _08121B26
+_08121AFE:
+ ldrb r4, [r4, 0x3]
+ mov r8, r4
+ b _08121B26
+_08121B04:
+ ldrb r1, [r4, 0x3]
+ ldrb r0, [r4, 0x4]
+ lsls r0, 8
+ b _08121B22
+_08121B0C:
+ ldrb r0, [r4, 0x3]
+ mov r8, r0
+ ldrb r0, [r4, 0x4]
+ lsls r0, 8
+ mov r1, r8
+ orrs r1, r0
+ ldrb r0, [r4, 0x5]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r4, 0x6]
+ lsls r0, 24
+_08121B22:
+ orrs r1, r0
+ mov r8, r1
+_08121B26:
+ adds r4, r5, r7
+ ldrb r3, [r4, 0x2]
+ adds r0, r6, 0
+ mov r1, r8
+ movs r2, 0
+ bl ConvertIntToDecimalStringN
+ adds r0, r5, 0x3
+ ldrb r4, [r4, 0x1]
+ adds r5, r0, r4
+ b _08121D04
+_08121B3C:
+ adds r0, r5, r7
+ ldrb r1, [r0, 0x1]
+ ldrb r0, [r0, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ movs r0, 0xD
+ muls r1, r0
+ ldr r0, _08121B50 @ =gMoveNames
+ adds r1, r0
+ b _08121CE2
+ .align 2, 0
+_08121B50: .4byte gMoveNames
+_08121B54:
+ adds r0, r5, r7
+ ldrb r0, [r0, 0x1]
+ lsls r1, r0, 3
+ subs r1, r0
+ ldr r0, _08121B60 @ =gTypeNames
+ b _08121C66
+ .align 2, 0
+_08121B60: .4byte gTypeNames
+_08121B64:
+ ldrb r0, [r4, 0x1]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _08121B88
+ ldrb r1, [r4, 0x2]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _08121B84 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x2
+ mov r2, sp
+ bl GetMonData
+ b _08121BC4
+ .align 2, 0
+_08121B84: .4byte gPlayerParty
+_08121B88:
+ ldr r0, _08121BA0 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ beq _08121BA8
+ ldr r1, _08121BA4 @ =gUnknown_08400797
+ adds r0, r6, 0
+ bl StringAppend
+ b _08121BB0
+ .align 2, 0
+_08121BA0: .4byte gUnknown_020239F8
+_08121BA4: .4byte gUnknown_08400797
+_08121BA8:
+ ldr r1, _08121BD4 @ =gUnknown_08400791
+ adds r0, r6, 0
+ bl StringAppend
+_08121BB0:
+ adds r0, r5, r7
+ ldrb r1, [r0, 0x2]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _08121BD8 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x2
+ mov r2, sp
+ bl GetMonData
+_08121BC4:
+ mov r0, sp
+ bl StringGetEnd10
+ adds r0, r6, 0
+ mov r1, sp
+ bl StringAppend
+ b _08121D02
+ .align 2, 0
+_08121BD4: .4byte gUnknown_08400791
+_08121BD8: .4byte gEnemyParty
+_08121BDC:
+ ldr r1, _08121BEC @ =gUnknown_08400F58
+ adds r0, r5, r7
+ ldrb r0, [r0, 0x1]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, [r0]
+ b _08121C68
+ .align 2, 0
+_08121BEC: .4byte gUnknown_08400F58
+_08121BF0:
+ adds r0, r5, r7
+ ldrb r1, [r0, 0x1]
+ ldrb r0, [r0, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ adds r0, r6, 0
+ bl GetSpeciesName
+ b _08121D02
+_08121C02:
+ adds r4, r5, r7
+ ldrb r0, [r4, 0x1]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _08121C28
+ ldrb r1, [r4, 0x2]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _08121C24 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x2
+ adds r2, r6, 0
+ bl GetMonData
+ b _08121C3A
+ .align 2, 0
+_08121C24: .4byte gPlayerParty
+_08121C28:
+ ldrb r1, [r4, 0x2]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _08121C44 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x2
+ adds r2, r6, 0
+ bl GetMonData
+_08121C3A:
+ adds r0, r6, 0
+ bl StringGetEnd10
+ b _08121D02
+ .align 2, 0
+_08121C44: .4byte gEnemyParty
+_08121C48:
+ ldr r1, _08121C58 @ =gUnknown_08400F78
+ adds r0, r5, r7
+ ldrb r0, [r0, 0x1]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, [r0]
+ b _08121C68
+ .align 2, 0
+_08121C58: .4byte gUnknown_08400F78
+_08121C5C:
+ adds r0, r5, r7
+ ldrb r1, [r0, 0x1]
+ movs r0, 0xD
+ muls r1, r0
+ ldr r0, _08121C74 @ =gAbilityNames
+_08121C66:
+ adds r1, r0
+_08121C68:
+ adds r0, r6, 0
+ bl StringAppend
+ adds r5, 0x2
+ b _08121D04
+ .align 2, 0
+_08121C74: .4byte gAbilityNames
+_08121C78:
+ adds r0, r5, r7
+ ldrb r2, [r0, 0x1]
+ ldrb r0, [r0, 0x2]
+ lsls r0, 8
+ orrs r2, r0
+ ldr r0, _08121CC4 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _08121CFA
+ cmp r2, 0xAF
+ bne _08121CF0
+ ldr r2, _08121CC8 @ =gLinkPlayers
+ ldr r0, _08121CCC @ =0x02000000
+ ldr r1, _08121CD0 @ =0x000160cb
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldr r1, _08121CD4 @ =gUnknown_02024C0B
+ ldrb r2, [r1]
+ ldrh r0, [r0, 0x18]
+ cmp r0, r2
+ bne _08121CE0
+ lsls r1, r2, 3
+ subs r1, r2
+ lsls r1, 2
+ ldr r0, _08121CD8 @ =gEnigmaBerries
+ adds r1, r0
+ adds r0, r6, 0
+ bl StringCopy
+ ldr r1, _08121CDC @ =gUnknown_08400A85
+ b _08121CE2
+ .align 2, 0
+_08121CC4: .4byte gUnknown_020239F8
+_08121CC8: .4byte gLinkPlayers
+_08121CCC: .4byte 0x02000000
+_08121CD0: .4byte 0x000160cb
+_08121CD4: .4byte gUnknown_02024C0B
+_08121CD8: .4byte gEnigmaBerries
+_08121CDC: .4byte gUnknown_08400A85
+_08121CE0:
+ ldr r1, _08121CEC @ =gUnknown_08400A78
+_08121CE2:
+ adds r0, r6, 0
+ bl StringAppend
+ b _08121D02
+ .align 2, 0
+_08121CEC: .4byte gUnknown_08400A78
+_08121CF0:
+ adds r0, r2, 0
+ adds r1, r6, 0
+ bl CopyItemName
+ b _08121D02
+_08121CFA:
+ adds r0, r2, 0
+ adds r1, r6, 0
+ bl CopyItemName
+_08121D02:
+ adds r5, 0x3
+_08121D04:
+ adds r0, r7, r5
+ ldrb r0, [r0]
+ cmp r0, 0xFF
+ beq _08121D0E
+ b _08121A86
+_08121D0E:
+ add sp, 0xC
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8121A68
+
+ thumb_func_start sub_8121D1C
+sub_8121D1C: @ 8121D1C
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r2, 0
+ ldr r5, _08121D50 @ =gUnknown_02039270
+ ldr r3, _08121D54 @ =gUnknown_084016BC
+_08121D26:
+ cmp r2, 0x4
+ beq _08121D3C
+ ldrh r1, [r3]
+ cmp r1, 0
+ bne _08121D32
+ adds r2, 0x1
+_08121D32:
+ ldr r0, [r5]
+ adds r3, 0x2
+ ldrh r0, [r0]
+ cmp r1, r0
+ bne _08121D26
+_08121D3C:
+ cmp r2, 0
+ blt _08121D68
+ cmp r2, 0x2
+ bgt _08121D5C
+ ldr r1, _08121D58 @ =gUnknown_08400E5E
+ adds r0, r4, 0
+ bl StringCopy
+ b _08121D68
+ .align 2, 0
+_08121D50: .4byte gUnknown_02039270
+_08121D54: .4byte gUnknown_084016BC
+_08121D58: .4byte gUnknown_08400E5E
+_08121D5C:
+ cmp r2, 0x4
+ bgt _08121D68
+ ldr r1, _08121D70 @ =gUnknown_08400E62
+ adds r0, r4, 0
+ bl StringCopy
+_08121D68:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08121D70: .4byte gUnknown_08400E62
+ thumb_func_end sub_8121D1C
+
+ thumb_func_start sub_8121D74
+sub_8121D74: @ 8121D74
+ push {r4,r5,lr}
+ adds r3, r0, 0
+ movs r4, 0
+ b _08121D7E
+_08121D7C:
+ adds r3, 0x1
+_08121D7E:
+ ldrb r0, [r3]
+ cmp r0, 0xFF
+ bne _08121D7C
+ ldr r1, _08121DB4 @ =gUnknown_084016BC
+ ldr r5, _08121DB8 @ =gUnknown_02039270
+ movs r0, 0
+ lsls r0, 1
+ adds r2, r0, r1
+_08121D8E:
+ cmp r4, 0x4
+ beq _08121DA8
+ ldrh r1, [r2]
+ cmp r1, 0
+ bne _08121D9A
+ adds r4, 0x1
+_08121D9A:
+ ldr r0, [r5]
+ adds r2, 0x2
+ ldrh r0, [r0]
+ cmp r1, r0
+ bne _08121D8E
+ cmp r4, 0x4
+ bhi _08121E04
+_08121DA8:
+ lsls r0, r4, 2
+ ldr r1, _08121DBC @ =_08121DC0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08121DB4: .4byte gUnknown_084016BC
+_08121DB8: .4byte gUnknown_02039270
+_08121DBC: .4byte _08121DC0
+ .align 2, 0
+_08121DC0:
+ .4byte _08121DD4
+ .4byte _08121DDC
+ .4byte _08121DE4
+ .4byte _08121DEC
+ .4byte _08121DFC
+_08121DD4:
+ ldr r1, _08121DD8 @ =gUnknown_084007C8
+ b _08121DEE
+ .align 2, 0
+_08121DD8: .4byte gUnknown_084007C8
+_08121DDC:
+ ldr r1, _08121DE0 @ =gUnknown_084007CA
+ b _08121DEE
+ .align 2, 0
+_08121DE0: .4byte gUnknown_084007CA
+_08121DE4:
+ ldr r1, _08121DE8 @ =gUnknown_084007CC
+ b _08121DEE
+ .align 2, 0
+_08121DE8: .4byte gUnknown_084007CC
+_08121DEC:
+ ldr r1, _08121DF8 @ =gUnknown_084007CE
+_08121DEE:
+ adds r0, r3, 0
+ bl StringCopy
+ b _08121E04
+ .align 2, 0
+_08121DF8: .4byte gUnknown_084007CE
+_08121DFC:
+ ldr r1, _08121E0C @ =gUnknown_084007D0
+ adds r0, r3, 0
+ bl StringCopy
+_08121E04:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08121E0C: .4byte gUnknown_084007D0
+ thumb_func_end sub_8121D74
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/battle_records.s b/asm/battle_records.s
new file mode 100644
index 000000000..aaf7911b2
--- /dev/null
+++ b/asm/battle_records.s
@@ -0,0 +1,908 @@
+ .include "constants/gba_constants.s"
+ .include "constants/species_constants.s"
+ .include "asm/macros.s"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_810FF78
+sub_810FF78: @ 810FF78
+ push {r4,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ mov r1, sp
+ movs r0, 0
+ strh r0, [r1]
+ ldr r2, _0810FFA4 @ =0x01000008
+ mov r0, sp
+ adds r1, r4, 0
+ bl CpuSet
+ movs r0, 0xFF
+ strb r0, [r4]
+ movs r0, 0
+ strh r0, [r4, 0x8]
+ strh r0, [r4, 0xA]
+ strh r0, [r4, 0xC]
+ strh r0, [r4, 0xE]
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810FFA4: .4byte 0x01000008
+ thumb_func_end sub_810FF78
+
+ thumb_func_start sub_810FFA8
+sub_810FFA8: @ 810FFA8
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r5, 0x4
+_0810FFAE:
+ adds r0, r4, 0
+ bl sub_810FF78
+ adds r4, 0x10
+ subs r5, 0x1
+ cmp r5, 0
+ bge _0810FFAE
+ movs r0, 0x17
+ movs r1, 0
+ bl sav12_xor_set
+ movs r0, 0x18
+ movs r1, 0
+ bl sav12_xor_set
+ movs r0, 0x19
+ movs r1, 0
+ bl sav12_xor_set
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_810FFA8
+
+ thumb_func_start sub_810FFDC
+sub_810FFDC: @ 810FFDC
+ adds r1, r0, 0
+ ldrh r0, [r1, 0xA]
+ ldrh r2, [r1, 0xC]
+ adds r0, r2
+ ldrh r1, [r1, 0xE]
+ adds r0, r1
+ bx lr
+ thumb_func_end sub_810FFDC
+
+ thumb_func_start sub_810FFEC
+sub_810FFEC: @ 810FFEC
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ mov r8, r1
+ lsls r2, 16
+ lsrs r7, r2, 16
+ movs r5, 0
+ ldr r6, _08110024 @ =gStringVar1
+ adds r4, r0, 0
+_0810FFFE:
+ adds r0, r6, 0
+ adds r1, r4, 0
+ movs r2, 0x7
+ bl memcpy
+ movs r0, 0xFF
+ strb r0, [r6, 0x7]
+ adds r0, r6, 0
+ mov r1, r8
+ bl StringCompareWithoutExtCtrlCodes
+ cmp r0, 0
+ bne _08110028
+ ldrh r0, [r4, 0x8]
+ cmp r0, r7
+ bne _08110028
+ adds r0, r5, 0
+ b _08110032
+ .align 2, 0
+_08110024: .4byte gStringVar1
+_08110028:
+ adds r4, 0x10
+ adds r5, 0x1
+ cmp r5, 0x4
+ ble _0810FFFE
+ movs r0, 0x5
+_08110032:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_810FFEC
+
+ thumb_func_start sub_811003C
+sub_811003C: @ 811003C
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x14
+ mov r8, r0
+ movs r0, 0x4
+_0811004A:
+ subs r2, r0, 0x1
+ mov r9, r2
+ cmp r2, 0
+ blt _081100A4
+ lsls r0, 4
+ mov r1, r8
+ adds r6, r1, r0
+ lsls r0, r2, 4
+ adds r5, r0, r1
+_0811005C:
+ adds r0, r6, 0
+ str r2, [sp, 0x10]
+ bl sub_810FFDC
+ adds r4, r0, 0
+ adds r0, r5, 0
+ bl sub_810FFDC
+ ldr r2, [sp, 0x10]
+ cmp r4, r0
+ ble _08110096
+ mov r1, sp
+ adds r0, r6, 0
+ ldm r0!, {r3,r4,r7}
+ stm r1!, {r3,r4,r7}
+ ldr r0, [r0]
+ str r0, [r1]
+ adds r1, r6, 0
+ adds r0, r5, 0
+ ldm r0!, {r3,r4,r7}
+ stm r1!, {r3,r4,r7}
+ ldr r0, [r0]
+ str r0, [r1]
+ adds r1, r5, 0
+ mov r0, sp
+ ldm r0!, {r3,r4,r7}
+ stm r1!, {r3,r4,r7}
+ ldr r0, [r0]
+ str r0, [r1]
+_08110096:
+ subs r5, 0x10
+ movs r0, 0x1
+ negs r0, r0
+ add r9, r0
+ mov r1, r9
+ cmp r1, 0
+ bge _0811005C
+_081100A4:
+ adds r0, r2, 0
+ cmp r0, 0
+ bgt _0811004A
+ add sp, 0x14
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_811003C
+
+ thumb_func_start sub_81100B8
+sub_81100B8: @ 81100B8
+ push {lr}
+ adds r2, r0, 0
+ cmp r1, 0x2
+ beq _081100E8
+ cmp r1, 0x2
+ bgt _081100CA
+ cmp r1, 0x1
+ beq _081100D0
+ b _08110112
+_081100CA:
+ cmp r1, 0x3
+ beq _08110100
+ b _08110112
+_081100D0:
+ ldrh r0, [r2, 0xA]
+ adds r0, 0x1
+ strh r0, [r2, 0xA]
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r1, _081100E4 @ =0x0000270f
+ cmp r0, r1
+ bls _08110112
+ strh r1, [r2, 0xA]
+ b _08110112
+ .align 2, 0
+_081100E4: .4byte 0x0000270f
+_081100E8:
+ ldrh r0, [r2, 0xC]
+ adds r0, 0x1
+ strh r0, [r2, 0xC]
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r1, _081100FC @ =0x0000270f
+ cmp r0, r1
+ bls _08110112
+ strh r1, [r2, 0xC]
+ b _08110112
+ .align 2, 0
+_081100FC: .4byte 0x0000270f
+_08110100:
+ ldrh r0, [r2, 0xE]
+ adds r0, 0x1
+ strh r0, [r2, 0xE]
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r1, _08110118 @ =0x0000270f
+ cmp r0, r1
+ bls _08110112
+ strh r1, [r2, 0xE]
+_08110112:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08110118: .4byte 0x0000270f
+ thumb_func_end sub_81100B8
+
+ thumb_func_start sub_811011C
+sub_811011C: @ 811011C
+ push {r4,lr}
+ cmp r0, 0x2
+ beq _08110136
+ cmp r0, 0x2
+ bgt _0811012C
+ cmp r0, 0x1
+ beq _08110132
+ b _0811014E
+_0811012C:
+ cmp r0, 0x3
+ beq _0811013A
+ b _0811014E
+_08110132:
+ movs r4, 0x17
+ b _0811013C
+_08110136:
+ movs r4, 0x18
+ b _0811013C
+_0811013A:
+ movs r4, 0x19
+_0811013C:
+ adds r0, r4, 0
+ bl sub_8053108
+ ldr r1, _08110154 @ =0x0000270e
+ cmp r0, r1
+ bhi _0811014E
+ adds r0, r4, 0
+ bl sav12_xor_increment
+_0811014E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08110154: .4byte 0x0000270e
+ thumb_func_end sub_811011C
+
+ thumb_func_start sub_8110158
+sub_8110158: @ 8110158
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ adds r5, r0, 0
+ adds r7, r1, 0
+ mov r10, r3
+ ldr r0, [sp, 0x20]
+ lsls r2, 16
+ lsrs r2, 16
+ mov r9, r2
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ mov r0, r10
+ bl sub_811011C
+ adds r0, r5, 0
+ bl sub_811003C
+ adds r0, r5, 0
+ adds r1, r7, 0
+ mov r2, r9
+ bl sub_810FFEC
+ adds r6, r0, 0
+ cmp r6, 0x5
+ bne _081101CC
+ movs r6, 0x4
+ adds r4, r5, 0
+ adds r4, 0x40
+ adds r0, r4, 0
+ bl sub_810FF78
+ mov r0, r8
+ cmp r0, 0x1
+ bne _081101BA
+ movs r0, 0xFC
+ strb r0, [r4]
+ movs r0, 0x15
+ strb r0, [r4, 0x1]
+ adds r0, r5, 0
+ adds r0, 0x42
+ adds r1, r7, 0
+ movs r2, 0x5
+ bl StringCopyN
+ b _081101C4
+_081101BA:
+ adds r0, r4, 0
+ adds r1, r7, 0
+ movs r2, 0x7
+ bl StringCopyN
+_081101C4:
+ lsls r0, r6, 4
+ adds r0, r5, r0
+ mov r1, r9
+ strh r1, [r0, 0x8]
+_081101CC:
+ lsls r0, r6, 4
+ adds r0, r5, r0
+ mov r1, r10
+ bl sub_81100B8
+ adds r0, r5, 0
+ bl sub_811003C
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8110158
+
+ thumb_func_start GameFreakRTC_Reset
+GameFreakRTC_Reset: @ 81101EC
+ push {lr}
+ ldr r0, _081101F8 @ =gSaveBlock1 + 0x30B8
+ bl sub_810FFA8
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081101F8: .4byte gSaveBlock1 + 0x30B8
+ thumb_func_end GameFreakRTC_Reset
+
+ thumb_func_start sub_81101FC
+sub_81101FC: @ 81101FC
+ push {lr}
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 3
+ ldr r0, _08110220 @ =gUnknown_0202FFD4
+ adds r1, r0
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r2, _08110224 @ =0x0000270f
+ cmp r0, r2
+ bls _0811021A
+ strh r2, [r1]
+_0811021A:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08110220: .4byte gUnknown_0202FFD4
+_08110224: .4byte 0x0000270f
+ thumb_func_end sub_81101FC
+
+ thumb_func_start sub_8110228
+sub_8110228: @ 8110228
+ push {lr}
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 3
+ ldr r0, _0811024C @ =gUnknown_0202FFD6
+ adds r1, r0
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r2, _08110250 @ =0x0000270f
+ cmp r0, r2
+ bls _08110246
+ strh r2, [r1]
+_08110246:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811024C: .4byte gUnknown_0202FFD6
+_08110250: .4byte 0x0000270f
+ thumb_func_end sub_8110228
+
+ thumb_func_start sub_8110254
+sub_8110254: @ 8110254
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _08110268 @ =gUnknown_02024D26
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ beq _0811026C
+ cmp r0, 0x2
+ beq _0811027A
+ b _08110288
+ .align 2, 0
+_08110268: .4byte gUnknown_02024D26
+_0811026C:
+ eors r0, r4
+ bl sub_81101FC
+ adds r0, r4, 0
+ bl sub_8110228
+ b _08110288
+_0811027A:
+ movs r0, 0x1
+ eors r0, r4
+ bl sub_8110228
+ adds r0, r4, 0
+ bl sub_81101FC
+_08110288:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8110254
+
+ thumb_func_start sub_8110290
+sub_8110290: @ 8110290
+ push {r4-r6,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ bl sub_8110254
+ ldr r0, _081102D4 @ =gSaveBlock1 + 0x30B8
+ lsls r2, r4, 3
+ subs r2, r4
+ lsls r2, 3
+ ldr r3, _081102D8 @ =gUnknown_0202FFF0
+ adds r1, r2, r3
+ subs r3, 0x30
+ adds r2, r3
+ ldrh r2, [r2, 0xE]
+ ldr r3, _081102DC @ =gUnknown_02024D26
+ ldrb r3, [r3]
+ ldr r6, _081102E0 @ =gLinkPlayers
+ ldr r5, _081102E4 @ =gUnknown_02029818
+ lsls r4, 2
+ adds r4, r5
+ ldrb r5, [r4, 0x1]
+ lsls r4, r5, 3
+ subs r4, r5
+ lsls r4, 2
+ adds r4, r6
+ ldrb r4, [r4, 0x1A]
+ str r4, [sp]
+ bl sub_8110158
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081102D4: .4byte gSaveBlock1 + 0x30B8
+_081102D8: .4byte gUnknown_0202FFF0
+_081102DC: .4byte gUnknown_02024D26
+_081102E0: .4byte gLinkPlayers
+_081102E4: .4byte gUnknown_02029818
+ thumb_func_end sub_8110290
+
+ thumb_func_start sub_81102E8
+sub_81102E8: @ 81102E8
+ push {r4,lr}
+ ldr r4, _08110338 @ =gStringVar1
+ movs r0, 0x17
+ bl sub_8053108
+ adds r1, r0, 0
+ adds r0, r4, 0
+ movs r2, 0x1
+ movs r3, 0x4
+ bl ConvertIntToDecimalStringN_DigitWidth6
+ ldr r4, _0811033C @ =gStringVar2
+ movs r0, 0x18
+ bl sub_8053108
+ adds r1, r0, 0
+ adds r0, r4, 0
+ movs r2, 0x1
+ movs r3, 0x4
+ bl ConvertIntToDecimalStringN_DigitWidth6
+ ldr r4, _08110340 @ =gStringVar3
+ movs r0, 0x19
+ bl sub_8053108
+ adds r1, r0, 0
+ adds r0, r4, 0
+ movs r2, 0x1
+ movs r3, 0x4
+ bl ConvertIntToDecimalStringN_DigitWidth6
+ ldr r0, _08110344 @ =gOtherText_WinRecord
+ movs r1, 0x3
+ movs r2, 0x3
+ bl MenuPrint
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08110338: .4byte gStringVar1
+_0811033C: .4byte gStringVar2
+_08110340: .4byte gStringVar3
+_08110344: .4byte gOtherText_WinRecord
+ thumb_func_end sub_81102E8
+
+ thumb_func_start sub_8110348
+sub_8110348: @ 8110348
+ push {r4-r7,lr}
+ sub sp, 0x10
+ adds r7, r0, 0
+ lsls r1, 24
+ lsrs r6, r1, 24
+ ldrh r0, [r7, 0xA]
+ cmp r0, 0
+ bne _081103C0
+ ldr r0, [r7, 0xC]
+ cmp r0, 0
+ bne _081103C0
+ mov r0, sp
+ movs r2, 0xFC
+ strb r2, [r0]
+ mov r1, sp
+ movs r0, 0x14
+ strb r0, [r1, 0x1]
+ movs r0, 0x6
+ strb r0, [r1, 0x2]
+ mov r0, sp
+ strb r2, [r0, 0x3]
+ movs r0, 0x11
+ strb r0, [r1, 0x4]
+ movs r0, 0x1
+ strb r0, [r1, 0x5]
+ mov r4, sp
+ adds r4, 0x6
+ ldr r1, _081103B8 @ =gOtherText_SevenDashes
+ adds r0, r4, 0
+ bl StringCopy
+ mov r0, sp
+ movs r1, 0x3
+ adds r2, r6, 0
+ bl MenuPrint
+ ldr r1, _081103BC @ =gOtherText_FourDashes
+ adds r0, r4, 0
+ bl StringCopy
+ mov r0, sp
+ movs r1, 0xB
+ adds r2, r6, 0
+ bl MenuPrint
+ mov r0, sp
+ movs r1, 0x11
+ adds r2, r6, 0
+ bl MenuPrint
+ mov r0, sp
+ movs r1, 0x17
+ adds r2, r6, 0
+ bl MenuPrint
+ b _0811042E
+ .align 2, 0
+_081103B8: .4byte gOtherText_SevenDashes
+_081103BC: .4byte gOtherText_FourDashes
+_081103C0:
+ ldr r4, _08110438 @ =gStringVar1
+ adds r0, r4, 0
+ movs r1, 0x8
+ bl StringFillWithTerminator
+ adds r0, r4, 0
+ adds r1, r7, 0
+ movs r2, 0x7
+ bl StringCopyN
+ adds r0, r4, 0
+ movs r1, 0x3
+ adds r2, r6, 0
+ bl MenuPrint
+ movs r0, 0xFC
+ strb r0, [r4]
+ movs r0, 0x14
+ strb r0, [r4, 0x1]
+ movs r0, 0x6
+ strb r0, [r4, 0x2]
+ adds r5, r4, 0x3
+ ldrh r1, [r7, 0xA]
+ adds r0, r5, 0
+ movs r2, 0x1
+ movs r3, 0x4
+ bl ConvertIntToDecimalStringN
+ adds r0, r4, 0
+ movs r1, 0xB
+ adds r2, r6, 0
+ bl MenuPrint
+ ldrh r1, [r7, 0xC]
+ adds r0, r5, 0
+ movs r2, 0x1
+ movs r3, 0x4
+ bl ConvertIntToDecimalStringN
+ adds r0, r4, 0
+ movs r1, 0x11
+ adds r2, r6, 0
+ bl MenuPrint
+ ldrh r1, [r7, 0xE]
+ adds r0, r5, 0
+ movs r2, 0x1
+ movs r3, 0x4
+ bl ConvertIntToDecimalStringN
+ adds r0, r4, 0
+ movs r1, 0x17
+ adds r2, r6, 0
+ bl MenuPrint
+_0811042E:
+ add sp, 0x10
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08110438: .4byte gStringVar1
+ thumb_func_end sub_8110348
+
+ thumb_func_start sub_811043C
+sub_811043C: @ 811043C
+ push {r4,lr}
+ movs r0, 0x1
+ movs r1, 0
+ movs r2, 0x1C
+ movs r3, 0x12
+ bl MenuDrawTextWindow
+ ldr r0, _08110488 @ =gOtherText_BattleResults
+ movs r1, 0
+ movs r2, 0x1
+ movs r3, 0xF0
+ bl sub_8072BD8
+ ldr r0, _0811048C @ =gSaveBlock1 + 0x30B8
+ bl sub_81102E8
+ ldr r0, _08110490 @ =gOtherText_WinLoseDraw
+ movs r1, 0xC
+ movs r2, 0x6
+ bl MenuPrint
+ movs r4, 0
+_08110468:
+ lsls r0, r4, 4
+ ldr r1, _0811048C @ =gSaveBlock1 + 0x30B8
+ adds r0, r1
+ adds r4, 0x1
+ lsls r1, r4, 25
+ movs r2, 0xC0
+ lsls r2, 19
+ adds r1, r2
+ lsrs r1, 24
+ bl sub_8110348
+ cmp r4, 0x4
+ ble _08110468
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08110488: .4byte gOtherText_BattleResults
+_0811048C: .4byte gSaveBlock1 + 0x30B8
+_08110490: .4byte gOtherText_WinLoseDraw
+ thumb_func_end sub_811043C
+
+ thumb_func_start sub_8110494
+sub_8110494: @ 8110494
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _081104B4 @ =gSaveBlock2 + 0xA8
+ ldr r2, _081104B8 @ =0x000004ae
+ adds r1, r2
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x6
+ bhi _081104E0
+ lsls r0, 2
+ ldr r1, _081104BC @ =_081104C0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_081104B4: .4byte gSaveBlock2 + 0xA8
+_081104B8: .4byte 0x000004ae
+_081104BC: .4byte _081104C0
+ .align 2, 0
+_081104C0:
+ .4byte _081104E0
+ .4byte _081104E0
+ .4byte _081104DC
+ .4byte _081104DC
+ .4byte _081104E0
+ .4byte _081104E0
+ .4byte _081104DC
+_081104DC:
+ movs r0, 0x1
+ b _081104E2
+_081104E0:
+ movs r0, 0
+_081104E2:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8110494
+
+ thumb_func_start sub_81104E8
+sub_81104E8: @ 81104E8
+ push {r4-r6,lr}
+ lsls r1, 16
+ lsrs r4, r1, 16
+ lsls r2, 24
+ lsrs r2, 24
+ adds r5, r2, 0
+ lsls r3, 24
+ lsrs r3, 24
+ adds r6, r3, 0
+ adds r1, r5, 0
+ adds r2, r6, 0
+ bl MenuPrint
+ ldr r0, _0811052C @ =0x0000270f
+ cmp r4, r0
+ bls _0811050A
+ adds r4, r0, 0
+_0811050A:
+ ldr r0, _08110530 @ =gStringVar1
+ adds r1, r4, 0
+ movs r2, 0x18
+ movs r3, 0x1
+ bl sub_8072C14
+ ldr r0, _08110534 @ =gOtherText_WinStreak
+ adds r1, r5, 0x7
+ lsls r1, 24
+ lsrs r1, 24
+ adds r2, r6, 0
+ bl MenuPrint
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811052C: .4byte 0x0000270f
+_08110530: .4byte gStringVar1
+_08110534: .4byte gOtherText_WinStreak
+ thumb_func_end sub_81104E8
+
+ thumb_func_start sub_8110538
+sub_8110538: @ 8110538
+ push {r4,lr}
+ adds r4, r1, 0
+ adds r3, r2, 0
+ lsls r0, 24
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r3, 24
+ lsrs r3, 24
+ ldr r1, _08110564 @ =gSaveBlock2 + 0xA8
+ lsrs r0, 23
+ movs r2, 0x97
+ lsls r2, 3
+ adds r1, r2
+ adds r0, r1
+ ldrh r1, [r0]
+ ldr r0, _08110568 @ =gOtherText_Record
+ adds r2, r4, 0
+ bl sub_81104E8
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08110564: .4byte gSaveBlock2 + 0xA8
+_08110568: .4byte gOtherText_Record
+ thumb_func_end sub_8110538
+
+ thumb_func_start sub_811056C
+sub_811056C: @ 811056C
+ push {lr}
+ lsls r0, 24
+ ldr r1, _08110588 @ =gSaveBlock2
+ lsrs r0, 23
+ ldr r2, _0811058C @ =0x00000574
+ adds r1, r2
+ adds r0, r1
+ ldrh r0, [r0]
+ ldr r1, _08110590 @ =0x0000270f
+ cmp r0, r1
+ bls _08110584
+ adds r0, r1, 0
+_08110584:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08110588: .4byte gSaveBlock2
+_0811058C: .4byte 0x00000574
+_08110590: .4byte 0x0000270f
+ thumb_func_end sub_811056C
+
+ thumb_func_start sub_8110594
+sub_8110594: @ 8110594
+ push {r4-r7,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r1, 24
+ lsrs r6, r1, 24
+ lsls r2, 24
+ lsrs r7, r2, 24
+ adds r0, r4, 0
+ bl sub_811056C
+ lsls r0, 16
+ lsrs r5, r0, 16
+ adds r0, r4, 0
+ bl sub_8110494
+ cmp r0, 0x1
+ bne _081105CC
+ ldr r0, _081105C8 @ =gOtherText_Current
+ adds r1, r5, 0
+ adds r2, r6, 0
+ adds r3, r7, 0
+ bl sub_81104E8
+ b _081105D8
+ .align 2, 0
+_081105C8: .4byte gOtherText_Current
+_081105CC:
+ ldr r0, _081105E0 @ =gOtherText_Prev
+ adds r1, r5, 0
+ adds r2, r6, 0
+ adds r3, r7, 0
+ bl sub_81104E8
+_081105D8:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081105E0: .4byte gOtherText_Prev
+ thumb_func_end sub_8110594
+
+ thumb_func_start sub_81105E4
+sub_81105E4: @ 81105E4
+ push {r4,lr}
+ movs r0, 0x3
+ movs r1, 0x1
+ movs r2, 0x1B
+ movs r3, 0x11
+ bl MenuDrawTextWindow
+ ldr r0, _08110658 @ =gOtherText_BattleTowerResults
+ movs r1, 0x3
+ movs r2, 0x2
+ movs r3, 0xC8
+ bl sub_8072BD8
+ ldr r0, _0811065C @ =gOtherText_Lv50
+ movs r1, 0x5
+ movs r2, 0x6
+ bl MenuPrint
+ ldr r0, _08110660 @ =gOtherText_Lv100
+ movs r1, 0x5
+ movs r2, 0xC
+ bl MenuPrint
+ movs r4, 0x5
+_08110614:
+ lsls r1, r4, 24
+ lsrs r1, 24
+ movs r0, 0xAE
+ movs r2, 0xA
+ bl sub_8071F60
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x19
+ bls _08110614
+ movs r0, 0
+ movs r1, 0xA
+ movs r2, 0x6
+ bl sub_8110594
+ movs r0, 0
+ movs r1, 0xA
+ movs r2, 0x8
+ bl sub_8110538
+ movs r0, 0x1
+ movs r1, 0xA
+ movs r2, 0xC
+ bl sub_8110594
+ movs r0, 0x1
+ movs r1, 0xA
+ movs r2, 0xE
+ bl sub_8110538
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08110658: .4byte gOtherText_BattleTowerResults
+_0811065C: .4byte gOtherText_Lv50
+_08110660: .4byte gOtherText_Lv100
+ thumb_func_end sub_81105E4
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/battle_transition.s b/asm/battle_transition.s
new file mode 100644
index 000000000..66443242b
--- /dev/null
+++ b/asm/battle_transition.s
@@ -0,0 +1,6254 @@
+ .include "constants/gba_constants.s"
+ .include "constants/species_constants.s"
+ .include "asm/macros.s"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_811AABC
+sub_811AABC: @ 811AABC
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0811AAD0 @ =gMain
+ ldr r1, _0811AAD4 @ =sub_8054398
+ str r1, [r2, 0x4]
+ bl sub_811AB20
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811AAD0: .4byte gMain
+_0811AAD4: .4byte sub_8054398
+ thumb_func_end sub_811AABC
+
+ thumb_func_start sub_811AAD8
+sub_811AAD8: @ 811AAD8
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_811AB20
+ pop {r0}
+ bx r0
+ thumb_func_end sub_811AAD8
+
+ thumb_func_start sub_811AAE8
+sub_811AAE8: @ 811AAE8
+ push {lr}
+ ldr r0, _0811AB0C @ =sub_811AB50
+ bl FindTaskIdByFunc
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r1, _0811AB10 @ =gTasks
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0x26
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _0811AB14
+ movs r0, 0
+ b _0811AB1C
+ .align 2, 0
+_0811AB0C: .4byte sub_811AB50
+_0811AB10: .4byte gTasks
+_0811AB14:
+ adds r0, r2, 0
+ bl DestroyTask
+ movs r0, 0x1
+_0811AB1C:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_811AAE8
+
+ thumb_func_start sub_811AB20
+sub_811AB20: @ 811AB20
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _0811AB48 @ =sub_811AB50
+ movs r1, 0x2
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0811AB4C @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ strh r4, [r1, 0xA]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811AB48: .4byte sub_811AB50
+_0811AB4C: .4byte gTasks
+ thumb_func_end sub_811AB20
+
+ thumb_func_start sub_811AB50
+sub_811AB50: @ 811AB50
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r5, _0811AB80 @ =gUnknown_083FD794
+ ldr r2, _0811AB84 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r4, r1, r2
+_0811AB62:
+ 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 _0811AB62
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811AB80: .4byte gUnknown_083FD794
+_0811AB84: .4byte gTasks
+ thumb_func_end sub_811AB50
+
+ thumb_func_start sub_811AB88
+sub_811AB88: @ 811AB88
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_807DE10
+ ldr r0, _0811ABB4 @ =gPlttBufferFaded
+ ldr r1, _0811ABB8 @ =gPlttBufferUnfaded
+ ldr r2, _0811ABBC @ =0x04000100
+ bl CpuSet
+ ldr r1, _0811ABC0 @ =gUnknown_083FD70C
+ movs r2, 0xA
+ ldrsh r0, [r4, r2]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _0811ABC4
+ movs r0, 0x2
+ strh r0, [r4, 0x8]
+ movs r0, 0x1
+ b _0811ABD2
+ .align 2, 0
+_0811ABB4: .4byte gPlttBufferFaded
+_0811ABB8: .4byte gPlttBufferUnfaded
+_0811ABBC: .4byte 0x04000100
+_0811ABC0: .4byte gUnknown_083FD70C
+_0811ABC4:
+ movs r1, 0x4
+ bl CreateTask
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ movs r0, 0
+_0811ABD2:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_811AB88
+
+ thumb_func_start sub_811ABD8
+sub_811ABD8: @ 811ABD8
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r1, _0811ABF8 @ =gUnknown_083FD70C
+ movs r2, 0xA
+ ldrsh r0, [r4, r2]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ bl FindTaskIdByFunc
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xFF
+ beq _0811ABFC
+ movs r0, 0
+ b _0811AC04
+ .align 2, 0
+_0811ABF8: .4byte gUnknown_083FD70C
+_0811ABFC:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ movs r0, 0x1
+_0811AC04:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_811ABD8
+
+ thumb_func_start sub_811AC0C
+sub_811AC0C: @ 811AC0C
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r1, _0811AC30 @ =gBattleTransitionFuncs
+ movs r2, 0xA
+ ldrsh r0, [r4, r2]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0
+ bl CreateTask
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0811AC30: .4byte gBattleTransitionFuncs
+ thumb_func_end sub_811AC0C
+
+ thumb_func_start sub_811AC34
+sub_811AC34: @ 811AC34
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r0, 0
+ strh r0, [r4, 0x26]
+ ldr r1, _0811AC60 @ =gBattleTransitionFuncs
+ movs r2, 0xA
+ ldrsh r0, [r4, r2]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ bl FindTaskIdByFunc
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xFF
+ bne _0811AC58
+ movs r0, 0x1
+ strh r0, [r4, 0x26]
+_0811AC58:
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0811AC60: .4byte gBattleTransitionFuncs
+ thumb_func_end sub_811AC34
+
+ thumb_func_start sub_811AC64
+sub_811AC64: @ 811AC64
+ push {r4,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ adds r4, r0, 0
+ ldr r1, _0811AC98 @ =gTasks
+ 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, 0
+ bne _0811AC9C
+ adds r0, r2, 0x1
+ strh r0, [r1, 0x8]
+ movs r0, 0x2
+ str r0, [sp]
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x3
+ movs r3, 0x2
+ bl sub_811D4C8
+ b _0811ACAC
+ .align 2, 0
+_0811AC98: .4byte gTasks
+_0811AC9C:
+ bl sub_811D52C
+ lsls r0, 24
+ cmp r0, 0
+ beq _0811ACAC
+ adds r0, r4, 0
+ bl DestroyTask
+_0811ACAC:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_811AC64
+
+ thumb_func_start sub_811ACB4
+sub_811ACB4: @ 811ACB4
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r5, _0811ACE4 @ =gUnknown_083FD7A4
+ ldr r2, _0811ACE8 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r4, r1, r2
+_0811ACC6:
+ 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 _0811ACC6
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811ACE4: .4byte gUnknown_083FD7A4
+_0811ACE8: .4byte gTasks
+ thumb_func_end sub_811ACB4
+
+ thumb_func_start sub_811ACEC
+sub_811ACEC: @ 811ACEC
+ ldr r2, _0811AD18 @ =REG_MOSAIC
+ movs r1, 0
+ strh r1, [r2]
+ subs r2, 0x42
+ ldrh r1, [r2]
+ movs r3, 0x40
+ orrs r1, r3
+ strh r1, [r2]
+ adds r2, 0x2
+ ldrh r1, [r2]
+ orrs r1, r3
+ strh r1, [r2]
+ adds r2, 0x2
+ ldrh r1, [r2]
+ orrs r1, r3
+ strh r1, [r2]
+ ldrh r1, [r0, 0x8]
+ adds r1, 0x1
+ strh r1, [r0, 0x8]
+ movs r0, 0x1
+ bx lr
+ .align 2, 0
+_0811AD18: .4byte REG_MOSAIC
+ thumb_func_end sub_811ACEC
+
+ thumb_func_start sub_811AD1C
+sub_811AD1C: @ 811AD1C
+ push {r4,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ ldrh r0, [r4, 0xA]
+ movs r1, 0xA
+ ldrsh r2, [r4, r1]
+ cmp r2, 0
+ beq _0811AD32
+ subs r0, 0x1
+ strh r0, [r4, 0xA]
+ b _0811AD70
+_0811AD32:
+ movs r0, 0x4
+ strh r0, [r4, 0xA]
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x1
+ strh r0, [r4, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xA
+ bne _0811AD54
+ movs r1, 0x1
+ negs r1, r1
+ str r2, [sp]
+ adds r0, r1, 0
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+_0811AD54:
+ ldr r2, _0811AD7C @ =REG_MOSAIC
+ ldrh r0, [r4, 0xC]
+ movs r1, 0xF
+ ands r1, r0
+ lsls r0, r1, 4
+ adds r0, r1
+ strh r0, [r2]
+ movs r1, 0xC
+ ldrsh r0, [r4, r1]
+ cmp r0, 0xE
+ ble _0811AD70
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+_0811AD70:
+ movs r0, 0
+ add sp, 0x4
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0811AD7C: .4byte REG_MOSAIC
+ thumb_func_end sub_811AD1C
+
+ thumb_func_start sub_811AD80
+sub_811AD80: @ 811AD80
+ push {lr}
+ ldr r0, _0811ADA4 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0811AD9C
+ ldr r0, _0811ADA8 @ =sub_811ACB4
+ bl FindTaskIdByFunc
+ lsls r0, 24
+ lsrs r0, 24
+ bl DestroyTask
+_0811AD9C:
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0811ADA4: .4byte gPaletteFade
+_0811ADA8: .4byte sub_811ACB4
+ thumb_func_end sub_811AD80
+
+ thumb_func_start sub_811ADAC
+sub_811ADAC: @ 811ADAC
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r5, _0811ADDC @ =gUnknown_083FD7B0
+ ldr r2, _0811ADE0 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r4, r1, r2
+_0811ADBE:
+ 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 _0811ADBE
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811ADDC: .4byte gUnknown_083FD7B0
+_0811ADE0: .4byte gTasks
+ thumb_func_end sub_811ADAC
+
+ thumb_func_start sub_811ADE4
+sub_811ADE4: @ 811ADE4
+ push {r4,r5,lr}
+ sub sp, 0x8
+ adds r5, r0, 0
+ bl sub_811D658
+ bl dp12_8087EA4
+ movs r0, 0x1
+ negs r0, r0
+ movs r4, 0
+ str r4, [sp]
+ movs r1, 0x4
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r0, _0811AE54 @ =gUnknown_03005560
+ ldr r1, _0811AE58 @ =0x0200c000
+ movs r2, 0x14
+ ldrsh r1, [r1, r2]
+ str r4, [sp]
+ movs r2, 0xA0
+ str r2, [sp, 0x4]
+ movs r2, 0
+ movs r3, 0x2
+ bl sub_811D6E8
+ ldr r0, _0811AE5C @ =sub_811AEE0
+ bl SetVBlankCallback
+ ldr r0, _0811AE60 @ =sub_811AF18
+ bl SetHBlankCallback
+ ldr r3, _0811AE64 @ =0x04000208
+ ldrh r2, [r3]
+ strh r4, [r3]
+ ldr r4, _0811AE68 @ =0x04000200
+ ldrh r0, [r4]
+ movs r1, 0x3
+ orrs r0, r1
+ strh r0, [r4]
+ strh r2, [r3]
+ ldr r2, _0811AE6C @ =REG_DISPSTAT
+ ldrh r0, [r2]
+ movs r1, 0x18
+ orrs r0, r1
+ strh r0, [r2]
+ ldrh r0, [r5, 0x8]
+ adds r0, 0x1
+ strh r0, [r5, 0x8]
+ movs r0, 0
+ add sp, 0x8
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0811AE54: .4byte gUnknown_03005560
+_0811AE58: .4byte 0x0200c000
+_0811AE5C: .4byte sub_811AEE0
+_0811AE60: .4byte sub_811AF18
+_0811AE64: .4byte 0x04000208
+_0811AE68: .4byte 0x04000200
+_0811AE6C: .4byte REG_DISPSTAT
+ thumb_func_end sub_811ADE4
+
+ thumb_func_start sub_811AE70
+sub_811AE70: @ 811AE70
+ push {r4,r5,lr}
+ sub sp, 0x8
+ ldr r4, _0811AED0 @ =0x0200c000
+ ldrb r1, [r4]
+ movs r1, 0
+ strb r1, [r4]
+ ldrh r1, [r0, 0xA]
+ adds r1, 0x4
+ strh r1, [r0, 0xA]
+ ldrh r1, [r0, 0xC]
+ adds r1, 0x8
+ strh r1, [r0, 0xC]
+ ldr r3, _0811AED4 @ =gUnknown_03004DE0
+ movs r2, 0x14
+ ldrsh r1, [r4, r2]
+ movs r5, 0xA
+ ldrsh r2, [r0, r5]
+ movs r5, 0xC
+ ldrsh r0, [r0, r5]
+ str r0, [sp]
+ movs r0, 0xA0
+ str r0, [sp, 0x4]
+ adds r0, r3, 0
+ movs r3, 0x2
+ bl sub_811D6E8
+ ldr r0, _0811AED8 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0811AEBE
+ ldr r0, _0811AEDC @ =sub_811ADAC
+ bl FindTaskIdByFunc
+ lsls r0, 24
+ lsrs r0, 24
+ bl DestroyTask
+_0811AEBE:
+ ldrb r0, [r4]
+ adds r0, 0x1
+ ldrb r1, [r4]
+ strb r0, [r4]
+ movs r0, 0
+ add sp, 0x8
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0811AED0: .4byte 0x0200c000
+_0811AED4: .4byte gUnknown_03004DE0
+_0811AED8: .4byte gPaletteFade
+_0811AEDC: .4byte sub_811ADAC
+ thumb_func_end sub_811AE70
+
+ thumb_func_start sub_811AEE0
+sub_811AEE0: @ 811AEE0
+ push {lr}
+ bl sub_811D67C
+ ldr r0, _0811AF08 @ =0x0200c000
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0811AF02
+ ldr r1, _0811AF0C @ =0x040000d4
+ ldr r0, _0811AF10 @ =gUnknown_03004DE0
+ str r0, [r1]
+ movs r2, 0xF0
+ lsls r2, 3
+ adds r0, r2
+ str r0, [r1, 0x4]
+ ldr r0, _0811AF14 @ =0x800000a0
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+_0811AF02:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811AF08: .4byte 0x0200c000
+_0811AF0C: .4byte 0x040000d4
+_0811AF10: .4byte gUnknown_03004DE0
+_0811AF14: .4byte 0x800000a0
+ thumb_func_end sub_811AEE0
+
+ thumb_func_start sub_811AF18
+sub_811AF18: @ 811AF18
+ ldr r1, _0811AF38 @ =gUnknown_03004DE0
+ ldr r0, _0811AF3C @ =REG_VCOUNT
+ ldrh r0, [r0]
+ lsls r0, 1
+ movs r2, 0xF0
+ lsls r2, 3
+ adds r1, r2
+ adds r0, r1
+ ldrh r1, [r0]
+ ldr r0, _0811AF40 @ =REG_BG1HOFS
+ strh r1, [r0]
+ adds r0, 0x4
+ strh r1, [r0]
+ adds r0, 0x4
+ strh r1, [r0]
+ bx lr
+ .align 2, 0
+_0811AF38: .4byte gUnknown_03004DE0
+_0811AF3C: .4byte REG_VCOUNT
+_0811AF40: .4byte REG_BG1HOFS
+ thumb_func_end sub_811AF18
+
+ thumb_func_start sub_811AF44
+sub_811AF44: @ 811AF44
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r5, _0811AF74 @ =gUnknown_083FD7B8
+ ldr r2, _0811AF78 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r4, r1, r2
+_0811AF56:
+ 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 _0811AF56
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811AF74: .4byte gUnknown_083FD7B8
+_0811AF78: .4byte gTasks
+ thumb_func_end sub_811AF44
+
+ thumb_func_start sub_811AF7C
+sub_811AF7C: @ 811AF7C
+ push {r4,r5,lr}
+ sub sp, 0x4
+ adds r5, r0, 0
+ bl sub_811D658
+ bl dp12_8087EA4
+ movs r0, 0x1
+ negs r0, r0
+ movs r4, 0
+ str r4, [sp]
+ movs r1, 0x4
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r1, _0811AFE4 @ =0x0200c000
+ ldr r0, _0811AFE8 @ =gUnknown_03005560
+ movs r2, 0x16
+ ldrsh r1, [r1, r2]
+ movs r2, 0xA0
+ lsls r2, 1
+ bl memset
+ ldr r0, _0811AFEC @ =sub_811B08C
+ bl SetVBlankCallback
+ ldr r0, _0811AFF0 @ =sub_811B0C4
+ bl SetHBlankCallback
+ ldr r3, _0811AFF4 @ =0x04000208
+ ldrh r2, [r3]
+ strh r4, [r3]
+ ldr r4, _0811AFF8 @ =0x04000200
+ ldrh r0, [r4]
+ movs r1, 0x3
+ orrs r0, r1
+ strh r0, [r4]
+ strh r2, [r3]
+ ldr r2, _0811AFFC @ =REG_DISPSTAT
+ ldrh r0, [r2]
+ movs r1, 0x18
+ orrs r0, r1
+ strh r0, [r2]
+ ldrh r0, [r5, 0x8]
+ adds r0, 0x1
+ strh r0, [r5, 0x8]
+ movs r0, 0
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0811AFE4: .4byte 0x0200c000
+_0811AFE8: .4byte gUnknown_03005560
+_0811AFEC: .4byte sub_811B08C
+_0811AFF0: .4byte sub_811B0C4
+_0811AFF4: .4byte 0x04000208
+_0811AFF8: .4byte 0x04000200
+_0811AFFC: .4byte REG_DISPSTAT
+ thumb_func_end sub_811AF7C
+
+ thumb_func_start sub_811B000
+sub_811B000: @ 811B000
+ push {r4-r7,lr}
+ ldr r2, _0811B07C @ =0x0200c000
+ ldrb r1, [r2]
+ movs r1, 0
+ strb r1, [r2]
+ ldrh r4, [r0, 0xA]
+ ldrh r2, [r0, 0xC]
+ lsls r3, r2, 16
+ asrs r3, 24
+ movs r5, 0x84
+ lsls r5, 5
+ adds r1, r4, r5
+ strh r1, [r0, 0xA]
+ movs r1, 0xC0
+ lsls r1, 1
+ adds r2, r1
+ strh r2, [r0, 0xC]
+ movs r5, 0
+ lsls r7, r3, 16
+_0811B026:
+ lsrs r0, r4, 8
+ asrs r1, r7, 16
+ bl Sin
+ ldr r2, _0811B080 @ =gUnknown_03004DE0
+ lsls r1, r5, 1
+ adds r1, r2
+ ldr r6, _0811B07C @ =0x0200c000
+ ldrh r2, [r6, 0x16]
+ adds r0, r2
+ strh r0, [r1]
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r1, 0x84
+ lsls r1, 5
+ adds r0, r4, r1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r5, 0x9F
+ bls _0811B026
+ ldr r0, _0811B084 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0811B06A
+ ldr r0, _0811B088 @ =sub_811AF44
+ bl FindTaskIdByFunc
+ lsls r0, 24
+ lsrs r0, 24
+ bl DestroyTask
+_0811B06A:
+ ldrb r0, [r6]
+ adds r0, 0x1
+ ldrb r1, [r6]
+ strb r0, [r6]
+ movs r0, 0
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0811B07C: .4byte 0x0200c000
+_0811B080: .4byte gUnknown_03004DE0
+_0811B084: .4byte gPaletteFade
+_0811B088: .4byte sub_811AF44
+ thumb_func_end sub_811B000
+
+ thumb_func_start sub_811B08C
+sub_811B08C: @ 811B08C
+ push {lr}
+ bl sub_811D67C
+ ldr r0, _0811B0B4 @ =0x0200c000
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0811B0AE
+ ldr r1, _0811B0B8 @ =0x040000d4
+ ldr r0, _0811B0BC @ =gUnknown_03004DE0
+ str r0, [r1]
+ movs r2, 0xF0
+ lsls r2, 3
+ adds r0, r2
+ str r0, [r1, 0x4]
+ ldr r0, _0811B0C0 @ =0x800000a0
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+_0811B0AE:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811B0B4: .4byte 0x0200c000
+_0811B0B8: .4byte 0x040000d4
+_0811B0BC: .4byte gUnknown_03004DE0
+_0811B0C0: .4byte 0x800000a0
+ thumb_func_end sub_811B08C
+
+ thumb_func_start sub_811B0C4
+sub_811B0C4: @ 811B0C4
+ ldr r1, _0811B0E4 @ =gUnknown_03004DE0
+ ldr r0, _0811B0E8 @ =REG_VCOUNT
+ ldrh r0, [r0]
+ lsls r0, 1
+ movs r2, 0xF0
+ lsls r2, 3
+ adds r1, r2
+ adds r0, r1
+ ldrh r1, [r0]
+ ldr r0, _0811B0EC @ =REG_BG1VOFS
+ strh r1, [r0]
+ adds r0, 0x4
+ strh r1, [r0]
+ adds r0, 0x4
+ strh r1, [r0]
+ bx lr
+ .align 2, 0
+_0811B0E4: .4byte gUnknown_03004DE0
+_0811B0E8: .4byte REG_VCOUNT
+_0811B0EC: .4byte REG_BG1VOFS
+ thumb_func_end sub_811B0C4
+
+ thumb_func_start sub_811B0F0
+sub_811B0F0: @ 811B0F0
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r5, _0811B120 @ =gUnknown_083FD7C0
+ ldr r2, _0811B124 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r4, r1, r2
+_0811B102:
+ 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 _0811B102
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811B120: .4byte gUnknown_083FD7C0
+_0811B124: .4byte gTasks
+ thumb_func_end sub_811B0F0
+
+ thumb_func_start sub_811B128
+sub_811B128: @ 811B128
+ push {r4-r6,lr}
+ sub sp, 0xC
+ adds r4, r0, 0
+ bl sub_811D658
+ bl dp12_8087EA4
+ movs r2, 0
+ movs r3, 0x10
+ strh r3, [r4, 0xA]
+ strh r2, [r4, 0xC]
+ strh r2, [r4, 0x10]
+ movs r0, 0x80
+ lsls r0, 7
+ strh r0, [r4, 0x12]
+ ldr r1, _0811B1BC @ =0x0200c000
+ movs r0, 0x3F
+ strh r0, [r1, 0x2]
+ strh r2, [r1, 0x4]
+ movs r0, 0xF0
+ strh r0, [r1, 0x6]
+ movs r0, 0xA0
+ strh r0, [r1, 0x8]
+ ldr r0, _0811B1C0 @ =0x00003f41
+ strh r0, [r1, 0xE]
+ lsls r3, 8
+ strh r3, [r1, 0x10]
+ movs r1, 0
+ add r5, sp, 0x4
+ add r6, sp, 0x8
+ ldr r3, _0811B1C4 @ =gUnknown_03005560
+ movs r2, 0xF0
+_0811B168:
+ lsls r0, r1, 1
+ adds r0, r3
+ strh r2, [r0]
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0x9F
+ bls _0811B168
+ ldr r0, _0811B1C8 @ =sub_811B520
+ bl SetVBlankCallback
+ adds r0, r5, 0
+ adds r1, r6, 0
+ bl sub_811D6A8
+ mov r1, sp
+ movs r0, 0
+ strh r0, [r1]
+ ldr r1, [sp, 0x4]
+ ldr r2, _0811B1CC @ =0x01000400
+ mov r0, sp
+ bl CpuSet
+ ldr r0, _0811B1D0 @ =gUnknown_083FBB88
+ ldr r1, [sp, 0x8]
+ movs r2, 0xB0
+ lsls r2, 2
+ bl CpuSet
+ ldr r0, _0811B1D4 @ =gFieldEffectObjectPalette10
+ movs r1, 0xF0
+ movs r2, 0x20
+ bl LoadPalette
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ movs r0, 0
+ add sp, 0xC
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0811B1BC: .4byte 0x0200c000
+_0811B1C0: .4byte 0x00003f41
+_0811B1C4: .4byte gUnknown_03005560
+_0811B1C8: .4byte sub_811B520
+_0811B1CC: .4byte 0x01000400
+_0811B1D0: .4byte gUnknown_083FBB88
+_0811B1D4: .4byte gFieldEffectObjectPalette10
+ thumb_func_end sub_811B128
+
+ thumb_func_start sub_811B1D8
+sub_811B1D8: @ 811B1D8
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x10
+ adds r7, r0, 0
+ ldr r5, _0811B260 @ =gUnknown_083FDB44
+ add r1, sp, 0xC
+ add r0, sp, 0x8
+ bl sub_811D6A8
+ movs r1, 0
+ ldr r0, [sp, 0x8]
+ mov r9, r0
+ ldr r6, _0811B264 @ =gUnknown_03004DE0
+ mov r8, r6
+ movs r0, 0xF0
+ lsls r0, 8
+ mov r12, r0
+_0811B1FE:
+ movs r0, 0
+ lsls r3, r1, 16
+ asrs r4, r3, 11
+_0811B204:
+ lsls r2, r0, 16
+ asrs r2, 16
+ adds r1, r4, r2
+ lsls r1, 1
+ add r1, r9
+ ldrh r0, [r5]
+ mov r6, r12
+ orrs r0, r6
+ strh r0, [r1]
+ adds r2, 0x1
+ lsls r2, 16
+ adds r5, 0x2
+ lsrs r0, r2, 16
+ asrs r2, 16
+ cmp r2, 0x1D
+ ble _0811B204
+ movs r1, 0x80
+ lsls r1, 9
+ adds r0, r3, r1
+ lsrs r1, r0, 16
+ asrs r0, 16
+ cmp r0, 0x13
+ ble _0811B1FE
+ movs r6, 0x10
+ ldrsh r2, [r7, r6]
+ movs r1, 0x12
+ ldrsh r0, [r7, r1]
+ str r0, [sp]
+ movs r0, 0xA0
+ str r0, [sp, 0x4]
+ mov r0, r8
+ movs r1, 0
+ movs r3, 0x84
+ bl sub_811D6E8
+ ldrh r0, [r7, 0x8]
+ adds r0, 0x1
+ strh r0, [r7, 0x8]
+ movs r0, 0x1
+ add sp, 0x10
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0811B260: .4byte gUnknown_083FDB44
+_0811B264: .4byte gUnknown_03004DE0
+ thumb_func_end sub_811B1D8
+
+ thumb_func_start sub_811B268
+sub_811B268: @ 811B268
+ push {r4,lr}
+ sub sp, 0x8
+ adds r2, r0, 0
+ ldr r1, _0811B2E8 @ =0x0200c000
+ ldrb r0, [r1]
+ movs r0, 0
+ strb r0, [r1]
+ ldrh r3, [r2, 0xE]
+ movs r4, 0xE
+ ldrsh r0, [r2, r4]
+ adds r4, r1, 0
+ cmp r0, 0
+ beq _0811B28C
+ subs r0, r3, 0x1
+ strh r0, [r2, 0xE]
+ lsls r0, 16
+ cmp r0, 0
+ bne _0811B296
+_0811B28C:
+ ldrh r0, [r2, 0xC]
+ adds r0, 0x1
+ strh r0, [r2, 0xC]
+ movs r0, 0x2
+ strh r0, [r2, 0xE]
+_0811B296:
+ ldrh r0, [r2, 0xA]
+ lsls r0, 8
+ ldrh r1, [r2, 0xC]
+ orrs r0, r1
+ strh r0, [r4, 0x10]
+ lsls r1, 16
+ asrs r1, 16
+ cmp r1, 0xF
+ ble _0811B2AE
+ ldrh r0, [r2, 0x8]
+ adds r0, 0x1
+ strh r0, [r2, 0x8]
+_0811B2AE:
+ ldrh r0, [r2, 0x10]
+ adds r0, 0x8
+ strh r0, [r2, 0x10]
+ ldr r0, _0811B2EC @ =0xffffff00
+ adds r1, r0, 0
+ ldrh r3, [r2, 0x12]
+ adds r1, r3
+ strh r1, [r2, 0x12]
+ ldr r0, _0811B2F0 @ =gUnknown_03004DE0
+ movs r3, 0x10
+ ldrsh r2, [r2, r3]
+ lsls r1, 16
+ asrs r1, 24
+ str r1, [sp]
+ movs r1, 0xA0
+ str r1, [sp, 0x4]
+ movs r1, 0
+ movs r3, 0x84
+ bl sub_811D6E8
+ ldrb r0, [r4]
+ adds r0, 0x1
+ ldrb r1, [r4]
+ strb r0, [r4]
+ movs r0, 0
+ add sp, 0x8
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0811B2E8: .4byte 0x0200c000
+_0811B2EC: .4byte 0xffffff00
+_0811B2F0: .4byte gUnknown_03004DE0
+ thumb_func_end sub_811B268
+
+ thumb_func_start sub_811B2F4
+sub_811B2F4: @ 811B2F4
+ push {r4,r5,lr}
+ sub sp, 0x8
+ adds r3, r0, 0
+ ldr r1, _0811B374 @ =0x0200c000
+ ldrb r0, [r1]
+ movs r0, 0
+ strb r0, [r1]
+ ldrh r2, [r3, 0xE]
+ movs r4, 0xE
+ ldrsh r0, [r3, r4]
+ adds r4, r1, 0
+ cmp r0, 0
+ beq _0811B318
+ subs r0, r2, 0x1
+ strh r0, [r3, 0xE]
+ lsls r0, 16
+ cmp r0, 0
+ bne _0811B322
+_0811B318:
+ ldrh r0, [r3, 0xA]
+ subs r0, 0x1
+ strh r0, [r3, 0xA]
+ movs r0, 0x2
+ strh r0, [r3, 0xE]
+_0811B322:
+ ldrh r0, [r3, 0xA]
+ lsls r1, r0, 8
+ ldrh r2, [r3, 0xC]
+ orrs r1, r2
+ strh r1, [r4, 0x10]
+ lsls r0, 16
+ cmp r0, 0
+ bne _0811B338
+ ldrh r0, [r3, 0x8]
+ adds r0, 0x1
+ strh r0, [r3, 0x8]
+_0811B338:
+ ldrh r0, [r3, 0x10]
+ adds r0, 0x8
+ strh r0, [r3, 0x10]
+ ldr r5, _0811B378 @ =0xffffff00
+ adds r1, r5, 0
+ ldrh r0, [r3, 0x12]
+ adds r1, r0
+ strh r1, [r3, 0x12]
+ ldr r0, _0811B37C @ =gUnknown_03004DE0
+ movs r5, 0x10
+ ldrsh r2, [r3, r5]
+ lsls r1, 16
+ asrs r1, 24
+ str r1, [sp]
+ movs r1, 0xA0
+ str r1, [sp, 0x4]
+ movs r1, 0
+ movs r3, 0x84
+ bl sub_811D6E8
+ ldrb r0, [r4]
+ adds r0, 0x1
+ ldrb r1, [r4]
+ strb r0, [r4]
+ movs r0, 0
+ add sp, 0x8
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0811B374: .4byte 0x0200c000
+_0811B378: .4byte 0xffffff00
+_0811B37C: .4byte gUnknown_03004DE0
+ thumb_func_end sub_811B2F4
+
+ thumb_func_start sub_811B380
+sub_811B380: @ 811B380
+ push {r4-r7,lr}
+ sub sp, 0x8
+ adds r4, r0, 0
+ ldr r5, _0811B3E0 @ =0x0200c000
+ ldrb r0, [r5]
+ movs r7, 0
+ strb r7, [r5]
+ ldrh r0, [r4, 0x10]
+ adds r0, 0x8
+ strh r0, [r4, 0x10]
+ ldr r0, _0811B3E4 @ =0xffffff00
+ adds r1, r0, 0
+ ldrh r3, [r4, 0x12]
+ adds r1, r3
+ strh r1, [r4, 0x12]
+ ldr r0, _0811B3E8 @ =gUnknown_03004DE0
+ movs r3, 0x10
+ ldrsh r2, [r4, r3]
+ lsls r1, 16
+ asrs r1, 24
+ str r1, [sp]
+ movs r6, 0xA0
+ str r6, [sp, 0x4]
+ movs r1, 0
+ movs r3, 0x84
+ bl sub_811D6E8
+ movs r1, 0x12
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bgt _0811B3CE
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ strh r6, [r4, 0xA]
+ movs r0, 0x80
+ lsls r0, 1
+ strh r0, [r4, 0xC]
+ strh r7, [r4, 0xE]
+_0811B3CE:
+ ldrb r0, [r5]
+ adds r0, 0x1
+ ldrb r1, [r5]
+ strb r0, [r5]
+ movs r0, 0
+ add sp, 0x8
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0811B3E0: .4byte 0x0200c000
+_0811B3E4: .4byte 0xffffff00
+_0811B3E8: .4byte gUnknown_03004DE0
+ thumb_func_end sub_811B380
+
+ thumb_func_start sub_811B3EC
+sub_811B3EC: @ 811B3EC
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _0811B488 @ =0x0200c000
+ ldrb r1, [r0]
+ movs r3, 0
+ strb r3, [r0]
+ ldrh r2, [r4, 0xC]
+ movs r0, 0xC
+ ldrsh r1, [r4, r0]
+ ldr r0, _0811B48C @ =0x000003ff
+ cmp r1, r0
+ bgt _0811B40A
+ adds r0, r2, 0
+ adds r0, 0x80
+ strh r0, [r4, 0xC]
+_0811B40A:
+ ldrh r1, [r4, 0xA]
+ movs r2, 0xA
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ beq _0811B426
+ ldrh r0, [r4, 0xC]
+ lsls r0, 16
+ asrs r0, 24
+ subs r0, r1, r0
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ cmp r0, 0
+ bge _0811B426
+ strh r3, [r4, 0xA]
+_0811B426:
+ ldr r0, _0811B490 @ =gUnknown_03004DE0
+ movs r1, 0xA
+ ldrsh r3, [r4, r1]
+ movs r1, 0x78
+ movs r2, 0x50
+ bl sub_811D764
+ movs r2, 0xA
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ bne _0811B462
+ ldr r1, _0811B494 @ =0x040000b0
+ ldrh r2, [r1, 0xA]
+ ldr r0, _0811B498 @ =0x0000c5ff
+ ands r0, r2
+ strh r0, [r1, 0xA]
+ ldrh r2, [r1, 0xA]
+ ldr r0, _0811B49C @ =0x00007fff
+ ands r0, r2
+ strh r0, [r1, 0xA]
+ ldrh r0, [r1, 0xA]
+ bl sub_811D6D4
+ ldr r0, _0811B4A0 @ =sub_811B0F0
+ bl FindTaskIdByFunc
+ lsls r0, 24
+ lsrs r0, 24
+ bl DestroyTask
+_0811B462:
+ ldrh r1, [r4, 0xE]
+ movs r2, 0xE
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ bne _0811B476
+ adds r0, r1, 0x1
+ strh r0, [r4, 0xE]
+ ldr r0, _0811B4A4 @ =sub_811B54C
+ bl SetVBlankCallback
+_0811B476:
+ ldr r0, _0811B488 @ =0x0200c000
+ ldrb r1, [r0]
+ adds r1, 0x1
+ ldrb r2, [r0]
+ strb r1, [r0]
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0811B488: .4byte 0x0200c000
+_0811B48C: .4byte 0x000003ff
+_0811B490: .4byte gUnknown_03004DE0
+_0811B494: .4byte 0x040000b0
+_0811B498: .4byte 0x0000c5ff
+_0811B49C: .4byte 0x00007fff
+_0811B4A0: .4byte sub_811B0F0
+_0811B4A4: .4byte sub_811B54C
+ thumb_func_end sub_811B3EC
+
+ thumb_func_start sub_811B4A8
+sub_811B4A8: @ 811B4A8
+ push {lr}
+ ldr r1, _0811B500 @ =0x040000b0
+ ldrh r2, [r1, 0xA]
+ ldr r0, _0811B504 @ =0x0000c5ff
+ ands r0, r2
+ strh r0, [r1, 0xA]
+ ldrh r2, [r1, 0xA]
+ ldr r0, _0811B508 @ =0x00007fff
+ ands r0, r2
+ strh r0, [r1, 0xA]
+ ldrh r0, [r1, 0xA]
+ bl sub_811D67C
+ ldr r2, _0811B50C @ =0x0200c000
+ ldrb r0, [r2]
+ cmp r0, 0
+ beq _0811B4DE
+ ldr r1, _0811B510 @ =0x040000d4
+ ldr r0, _0811B514 @ =gUnknown_03004DE0
+ str r0, [r1]
+ movs r3, 0xF0
+ lsls r3, 3
+ adds r0, r3
+ str r0, [r1, 0x4]
+ ldr r0, _0811B518 @ =0x800000a0
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+_0811B4DE:
+ ldr r1, _0811B51C @ =REG_WININ
+ ldrh r0, [r2, 0x2]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldrh r0, [r2, 0x4]
+ strh r0, [r1]
+ subs r1, 0x6
+ ldrh r0, [r2, 0x8]
+ strh r0, [r1]
+ adds r1, 0xC
+ ldrh r0, [r2, 0xE]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldrh r0, [r2, 0x10]
+ strh r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811B500: .4byte 0x040000b0
+_0811B504: .4byte 0x0000c5ff
+_0811B508: .4byte 0x00007fff
+_0811B50C: .4byte 0x0200c000
+_0811B510: .4byte 0x040000d4
+_0811B514: .4byte gUnknown_03004DE0
+_0811B518: .4byte 0x800000a0
+_0811B51C: .4byte REG_WININ
+ thumb_func_end sub_811B4A8
+
+ thumb_func_start sub_811B520
+sub_811B520: @ 811B520
+ push {lr}
+ bl sub_811B4A8
+ ldr r1, _0811B53C @ =0x040000b0
+ ldr r0, _0811B540 @ =gUnknown_03005560
+ str r0, [r1]
+ ldr r0, _0811B544 @ =REG_BG0HOFS
+ str r0, [r1, 0x4]
+ ldr r0, _0811B548 @ =0xa2400001
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811B53C: .4byte 0x040000b0
+_0811B540: .4byte gUnknown_03005560
+_0811B544: .4byte REG_BG0HOFS
+_0811B548: .4byte 0xa2400001
+ thumb_func_end sub_811B520
+
+ thumb_func_start sub_811B54C
+sub_811B54C: @ 811B54C
+ push {lr}
+ bl sub_811B4A8
+ ldr r1, _0811B568 @ =0x040000b0
+ ldr r0, _0811B56C @ =gUnknown_03005560
+ str r0, [r1]
+ ldr r0, _0811B570 @ =REG_WIN0H
+ str r0, [r1, 0x4]
+ ldr r0, _0811B574 @ =0xa2400001
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811B568: .4byte 0x040000b0
+_0811B56C: .4byte gUnknown_03005560
+_0811B570: .4byte REG_WIN0H
+_0811B574: .4byte 0xa2400001
+ thumb_func_end sub_811B54C
+
+ thumb_func_start sub_811B578
+sub_811B578: @ 811B578
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r5, _0811B5A8 @ =gUnknown_083FD7D8
+ ldr r2, _0811B5AC @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r4, r1, r2
+_0811B58A:
+ 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 _0811B58A
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811B5A8: .4byte gUnknown_083FD7D8
+_0811B5AC: .4byte gTasks
+ thumb_func_end sub_811B578
+
+ thumb_func_start sub_811B5B0
+sub_811B5B0: @ 811B5B0
+ push {r4,lr}
+ sub sp, 0xC
+ adds r4, r0, 0
+ add r0, sp, 0x4
+ add r1, sp, 0x8
+ bl sub_811D6A8
+ ldr r0, _0811B5F0 @ =gUnknown_083FC108
+ ldr r1, [sp, 0x8]
+ movs r2, 0x20
+ bl CpuSet
+ movs r0, 0
+ str r0, [sp]
+ ldr r1, [sp, 0x4]
+ ldr r2, _0811B5F4 @ =0x05000200
+ mov r0, sp
+ bl CpuSet
+ ldr r0, _0811B5F8 @ =gFieldEffectObjectPalette10
+ movs r1, 0xF0
+ movs r2, 0x20
+ bl LoadPalette
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ movs r0, 0
+ add sp, 0xC
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0811B5F0: .4byte gUnknown_083FC108
+_0811B5F4: .4byte 0x05000200
+_0811B5F8: .4byte gFieldEffectObjectPalette10
+ thumb_func_end sub_811B5B0
+
+ thumb_func_start sub_811B5FC
+sub_811B5FC: @ 811B5FC
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x10
+ adds r7, r0, 0
+ ldr r1, _0811B67C @ =gUnknown_083FD7E4
+ mov r0, sp
+ movs r2, 0x4
+ bl memcpy
+ add r4, sp, 0x4
+ ldr r1, _0811B680 @ =gUnknown_083FD7E8
+ adds r0, r4, 0
+ movs r2, 0xA
+ bl memcpy
+ bl Random
+ movs r5, 0x1
+ ands r5, r0
+ movs r1, 0
+ mov r8, r4
+ ldr r6, _0811B684 @ =gUnknown_0202FF84
+_0811B62A:
+ lsls r5, 16
+ asrs r5, 16
+ lsls r0, r5, 1
+ add r0, sp
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ str r0, [r6]
+ lsls r4, r1, 16
+ asrs r4, 16
+ lsls r0, r4, 5
+ adds r0, 0x10
+ str r0, [r6, 0x4]
+ str r5, [r6, 0x8]
+ lsls r0, r4, 1
+ add r0, r8
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ str r0, [r6, 0xC]
+ movs r0, 0x2D
+ bl FieldEffectStart
+ adds r4, 0x1
+ lsls r4, 16
+ movs r0, 0x1
+ eors r5, r0
+ lsls r5, 16
+ lsrs r5, 16
+ lsrs r1, r4, 16
+ asrs r4, 16
+ cmp r4, 0x4
+ ble _0811B62A
+ ldrh r0, [r7, 0x8]
+ adds r0, 0x1
+ strh r0, [r7, 0x8]
+ movs r0, 0
+ add sp, 0x10
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0811B67C: .4byte gUnknown_083FD7E4
+_0811B680: .4byte gUnknown_083FD7E8
+_0811B684: .4byte gUnknown_0202FF84
+ thumb_func_end sub_811B5FC
+
+ thumb_func_start sub_811B688
+sub_811B688: @ 811B688
+ push {lr}
+ movs r0, 0x2D
+ bl FieldEffectActiveListContains
+ lsls r0, 24
+ cmp r0, 0
+ bne _0811B6A8
+ bl sub_811D6D4
+ ldr r0, _0811B6B0 @ =sub_811B578
+ bl FindTaskIdByFunc
+ lsls r0, 24
+ lsrs r0, 24
+ bl DestroyTask
+_0811B6A8:
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0811B6B0: .4byte sub_811B578
+ thumb_func_end sub_811B688
+
+ thumb_func_start FldEff_Pokeball
+FldEff_Pokeball: @ 811B6B4
+ push {r4,r5,lr}
+ ldr r0, _0811B710 @ =gSpriteTemplate_83FD98C
+ ldr r5, _0811B714 @ =gUnknown_0202FF84
+ movs r2, 0
+ ldrsh r1, [r5, r2]
+ movs r3, 0x4
+ ldrsh r2, [r5, r3]
+ movs r3, 0
+ bl CreateSpriteAtEnd
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _0811B718 @ =gSprites
+ lsls r4, r0, 4
+ adds r4, r0
+ lsls r4, 2
+ adds r4, r1
+ ldrb r1, [r4, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r4, 0x5]
+ 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, [r5, 0x8]
+ strh r0, [r4, 0x2E]
+ ldr r0, [r5, 0xC]
+ strh r0, [r4, 0x30]
+ ldr r0, _0811B71C @ =0x0000ffff
+ strh r0, [r4, 0x32]
+ adds r0, r4, 0
+ bl InitSpriteAffineAnim
+ ldrb r1, [r5, 0x8]
+ adds r0, r4, 0
+ bl StartSpriteAffineAnim
+ movs r0, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0811B710: .4byte gSpriteTemplate_83FD98C
+_0811B714: .4byte gUnknown_0202FF84
+_0811B718: .4byte gSprites
+_0811B71C: .4byte 0x0000ffff
+ thumb_func_end FldEff_Pokeball
+
+ thumb_func_start sub_811B720
+sub_811B720: @ 811B720
+ push {r4-r6,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ ldr r1, _0811B740 @ =gUnknown_083FD7F2
+ mov r0, sp
+ movs r2, 0x4
+ bl memcpy
+ ldrh r1, [r4, 0x30]
+ movs r2, 0x30
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ beq _0811B744
+ subs r0, r1, 0x1
+ strh r0, [r4, 0x30]
+ b _0811B7D6
+ .align 2, 0
+_0811B740: .4byte gUnknown_083FD7F2
+_0811B744:
+ ldrh r0, [r4, 0x20]
+ lsls r1, r0, 16
+ lsrs r0, r1, 16
+ cmp r0, 0xF0
+ bhi _0811B7B2
+ asrs r0, r1, 19
+ lsls r0, 16
+ ldrh r1, [r4, 0x22]
+ lsls r1, 16
+ asrs r1, 19
+ lsls r1, 16
+ lsrs r1, 16
+ lsrs r2, r0, 16
+ asrs r5, r0, 16
+ movs r3, 0x32
+ ldrsh r0, [r4, r3]
+ cmp r5, r0
+ beq _0811B7B2
+ strh r2, [r4, 0x32]
+ ldr r0, _0811B7E0 @ =REG_BG0CNT
+ ldrh r2, [r0]
+ lsrs r2, 8
+ movs r0, 0x1F
+ ands r2, r0
+ lsls r2, 11
+ movs r0, 0xC0
+ lsls r0, 19
+ adds r2, r0
+ lsls r1, 16
+ asrs r1, 16
+ subs r0, r1, 0x2
+ lsls r0, 5
+ adds r0, r5
+ lsls r0, 1
+ adds r0, r2
+ ldr r6, _0811B7E4 @ =0x0000f001
+ adds r3, r6, 0
+ strh r3, [r0]
+ subs r0, r1, 0x1
+ lsls r0, 5
+ adds r0, r5
+ lsls r0, 1
+ adds r0, r2
+ strh r3, [r0]
+ lsls r0, r1, 5
+ adds r0, r5
+ lsls r0, 1
+ adds r0, r2
+ strh r3, [r0]
+ adds r1, 0x1
+ lsls r1, 5
+ adds r1, r5
+ lsls r1, 1
+ adds r1, r2
+ strh r3, [r1]
+_0811B7B2:
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ lsls r0, 1
+ add r0, sp
+ ldrh r0, [r0]
+ ldrh r2, [r4, 0x20]
+ adds r0, r2
+ strh r0, [r4, 0x20]
+ adds r0, 0xF
+ lsls r0, 16
+ movs r1, 0x87
+ lsls r1, 17
+ cmp r0, r1
+ bls _0811B7D6
+ adds r0, r4, 0
+ movs r1, 0x2D
+ bl FieldEffectStop
+_0811B7D6:
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811B7E0: .4byte REG_BG0CNT
+_0811B7E4: .4byte 0x0000f001
+ thumb_func_end sub_811B720
+
+ thumb_func_start sub_811B7E8
+sub_811B7E8: @ 811B7E8
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r5, _0811B818 @ =gUnknown_083FD7F8
+ ldr r2, _0811B81C @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r4, r1, r2
+_0811B7FA:
+ 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 _0811B7FA
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811B818: .4byte gUnknown_083FD7F8
+_0811B81C: .4byte gTasks
+ thumb_func_end sub_811B7E8
+
+ thumb_func_start sub_811B820
+sub_811B820: @ 811B820
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_811D658
+ bl dp12_8087EA4
+ ldr r1, _0811B870 @ =0x0200c000
+ movs r0, 0
+ strh r0, [r1, 0x2]
+ movs r0, 0x3F
+ strh r0, [r1, 0x4]
+ ldr r0, _0811B874 @ =0x0000f0f1
+ strh r0, [r1, 0x6]
+ movs r0, 0xA0
+ strh r0, [r1, 0x8]
+ movs r1, 0
+ ldr r3, _0811B878 @ =gUnknown_03005560
+ ldr r2, _0811B87C @ =0x0000f3f4
+_0811B844:
+ lsls r0, r1, 1
+ adds r0, r3
+ strh r2, [r0]
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0x9F
+ bls _0811B844
+ ldr r0, _0811B880 @ =sub_811BC2C
+ bl SetVBlankCallback
+ ldr r1, _0811B870 @ =0x0200c000
+ movs r0, 0x78
+ strh r0, [r1, 0x2C]
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ movs r0, 0x1
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0811B870: .4byte 0x0200c000
+_0811B874: .4byte 0x0000f0f1
+_0811B878: .4byte gUnknown_03005560
+_0811B87C: .4byte 0x0000f3f4
+_0811B880: .4byte sub_811BC2C
+ thumb_func_end sub_811B820
+
+ thumb_func_start sub_811B884
+sub_811B884: @ 811B884
+ push {r4-r6,lr}
+ sub sp, 0xC
+ adds r6, r0, 0
+ ldr r4, _0811B904 @ =0x0200c000
+ ldrb r0, [r4]
+ movs r0, 0
+ strb r0, [r4]
+ adds r0, r4, 0
+ adds r0, 0x24
+ movs r1, 0x2C
+ ldrsh r3, [r4, r1]
+ movs r1, 0x1
+ negs r1, r1
+ str r1, [sp]
+ movs r1, 0x1
+ str r1, [sp, 0x4]
+ str r1, [sp, 0x8]
+ movs r1, 0x78
+ movs r2, 0x50
+ bl sub_811D8FC
+ ldr r5, _0811B908 @ =gUnknown_03004DE0
+_0811B8B0:
+ movs r3, 0x2A
+ ldrsh r2, [r4, r3]
+ lsls r2, 1
+ adds r2, r5
+ ldrh r0, [r4, 0x28]
+ adds r0, 0x1
+ movs r3, 0xF0
+ lsls r3, 7
+ adds r1, r3, 0
+ orrs r0, r1
+ strh r0, [r2]
+ adds r0, r4, 0
+ adds r0, 0x24
+ movs r1, 0x1
+ movs r2, 0x1
+ bl sub_811D978
+ lsls r0, 24
+ cmp r0, 0
+ beq _0811B8B0
+ ldr r2, _0811B904 @ =0x0200c000
+ ldrh r0, [r2, 0x2C]
+ adds r0, 0x10
+ strh r0, [r2, 0x2C]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xEF
+ ble _0811B8F2
+ movs r0, 0
+ strh r0, [r2, 0x2E]
+ ldrh r0, [r6, 0x8]
+ adds r0, 0x1
+ strh r0, [r6, 0x8]
+_0811B8F2:
+ ldrb r0, [r2]
+ adds r0, 0x1
+ ldrb r1, [r2]
+ strb r0, [r2]
+ movs r0, 0
+ add sp, 0xC
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0811B904: .4byte 0x0200c000
+_0811B908: .4byte gUnknown_03004DE0
+ thumb_func_end sub_811B884
+
+ thumb_func_start sub_811B90C
+sub_811B90C: @ 811B90C
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x10
+ adds r7, r0, 0
+ add r1, sp, 0xC
+ movs r0, 0
+ strb r0, [r1]
+ ldr r4, _0811B988 @ =0x0200c000
+ ldrb r0, [r4]
+ movs r0, 0
+ strb r0, [r4]
+ adds r0, r4, 0
+ adds r0, 0x24
+ movs r2, 0x2E
+ ldrsh r1, [r4, r2]
+ str r1, [sp]
+ movs r1, 0x1
+ str r1, [sp, 0x4]
+ str r1, [sp, 0x8]
+ movs r1, 0x78
+ movs r2, 0x50
+ movs r3, 0xF0
+ bl sub_811D8FC
+ adds r6, r4, 0
+ ldr r5, _0811B98C @ =gUnknown_03004DE0
+ mov r8, r5
+ add r5, sp, 0xC
+_0811B946:
+ movs r1, 0x78
+ ldrh r0, [r4, 0x28]
+ adds r0, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ movs r2, 0x2E
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x4F
+ ble _0811B95C
+ ldrh r1, [r4, 0x28]
+ movs r3, 0xF0
+_0811B95C:
+ movs r0, 0x2A
+ ldrsh r2, [r4, r0]
+ lsls r2, 1
+ add r2, r8
+ lsls r1, 16
+ asrs r1, 8
+ lsls r0, r3, 16
+ asrs r3, r0, 16
+ orrs r3, r1
+ strh r3, [r2]
+ ldrb r0, [r5]
+ cmp r0, 0
+ bne _0811B990
+ adds r0, r4, 0
+ adds r0, 0x24
+ movs r1, 0x1
+ movs r2, 0x1
+ bl sub_811D978
+ strb r0, [r5]
+ b _0811B946
+ .align 2, 0
+_0811B988: .4byte 0x0200c000
+_0811B98C: .4byte gUnknown_03004DE0
+_0811B990:
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x8
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r1, r0, 16
+ cmp r1, 0x9F
+ ble _0811B9AA
+ movs r0, 0xF0
+ strh r0, [r4, 0x2C]
+ ldrh r0, [r7, 0x8]
+ adds r0, 0x1
+ strh r0, [r7, 0x8]
+ b _0811B9D0
+_0811B9AA:
+ movs r2, 0x2A
+ ldrsh r0, [r4, r2]
+ cmp r0, r1
+ bge _0811B9D0
+ ldr r4, _0811B9E8 @ =gUnknown_03004DE0
+ ldr r2, _0811B9EC @ =0x0200c000
+_0811B9B6:
+ ldrh r0, [r2, 0x2A]
+ adds r0, 0x1
+ strh r0, [r2, 0x2A]
+ lsls r0, 16
+ asrs r0, 15
+ adds r0, r4
+ strh r3, [r0]
+ movs r5, 0x2A
+ ldrsh r1, [r2, r5]
+ movs r5, 0x2E
+ ldrsh r0, [r2, r5]
+ cmp r1, r0
+ blt _0811B9B6
+_0811B9D0:
+ ldrb r0, [r6]
+ adds r0, 0x1
+ ldrb r1, [r6]
+ strb r0, [r6]
+ movs r0, 0
+ add sp, 0x10
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0811B9E8: .4byte gUnknown_03004DE0
+_0811B9EC: .4byte 0x0200c000
+ thumb_func_end sub_811B90C
+
+ thumb_func_start sub_811B9F0
+sub_811B9F0: @ 811B9F0
+ push {r4-r6,lr}
+ sub sp, 0xC
+ adds r6, r0, 0
+ ldr r4, _0811BA68 @ =0x0200c000
+ ldrb r0, [r4]
+ movs r0, 0
+ strb r0, [r4]
+ adds r0, r4, 0
+ adds r0, 0x24
+ movs r1, 0x2C
+ ldrsh r3, [r4, r1]
+ movs r1, 0xA0
+ str r1, [sp]
+ movs r1, 0x1
+ str r1, [sp, 0x4]
+ str r1, [sp, 0x8]
+ movs r1, 0x78
+ movs r2, 0x50
+ bl sub_811D8FC
+ ldr r5, _0811BA6C @ =gUnknown_03004DE0
+_0811BA1A:
+ movs r0, 0x2A
+ ldrsh r2, [r4, r0]
+ lsls r2, 1
+ adds r2, r5
+ ldrh r0, [r4, 0x28]
+ lsls r0, 8
+ movs r1, 0xF0
+ orrs r0, r1
+ strh r0, [r2]
+ adds r0, r4, 0
+ adds r0, 0x24
+ movs r1, 0x1
+ movs r2, 0x1
+ bl sub_811D978
+ lsls r0, 24
+ cmp r0, 0
+ beq _0811BA1A
+ ldr r2, _0811BA68 @ =0x0200c000
+ ldrh r0, [r2, 0x2C]
+ subs r0, 0x10
+ strh r0, [r2, 0x2C]
+ lsls r0, 16
+ cmp r0, 0
+ bgt _0811BA56
+ movs r0, 0xA0
+ strh r0, [r2, 0x2E]
+ ldrh r0, [r6, 0x8]
+ adds r0, 0x1
+ strh r0, [r6, 0x8]
+_0811BA56:
+ ldrb r0, [r2]
+ adds r0, 0x1
+ ldrb r1, [r2]
+ strb r0, [r2]
+ movs r0, 0
+ add sp, 0xC
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0811BA68: .4byte 0x0200c000
+_0811BA6C: .4byte gUnknown_03004DE0
+ thumb_func_end sub_811B9F0
+
+ thumb_func_start sub_811BA70
+sub_811BA70: @ 811BA70
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x10
+ mov r8, r0
+ add r1, sp, 0xC
+ movs r0, 0
+ strb r0, [r1]
+ ldr r4, _0811BAF0 @ =0x0200c000
+ ldrb r0, [r4]
+ movs r0, 0
+ strb r0, [r4]
+ adds r0, r4, 0
+ adds r0, 0x24
+ movs r2, 0x2E
+ ldrsh r1, [r4, r2]
+ str r1, [sp]
+ movs r1, 0x1
+ str r1, [sp, 0x4]
+ str r1, [sp, 0x8]
+ movs r1, 0x78
+ movs r2, 0x50
+ movs r3, 0
+ bl sub_811D8FC
+ ldr r3, _0811BAF4 @ =gUnknown_03004DE0
+ mov r9, r3
+ mov r10, r4
+ add r6, sp, 0xC
+_0811BAAE:
+ movs r5, 0x2A
+ ldrsh r0, [r4, r5]
+ lsls r0, 1
+ mov r7, r9
+ adds r5, r0, r7
+ ldrb r1, [r5]
+ ldrh r2, [r4, 0x28]
+ adds r3, r2, 0
+ movs r7, 0x2E
+ ldrsh r0, [r4, r7]
+ cmp r0, 0x50
+ bgt _0811BACA
+ movs r2, 0x78
+ adds r1, r3, 0
+_0811BACA:
+ lsls r0, r2, 16
+ asrs r0, 8
+ lsls r1, 16
+ asrs r1, 16
+ orrs r1, r0
+ movs r3, 0
+ strh r1, [r5]
+ ldrb r0, [r6]
+ cmp r0, 0
+ bne _0811BAF8
+ adds r0, r4, 0
+ adds r0, 0x24
+ movs r1, 0x1
+ movs r2, 0x1
+ bl sub_811D978
+ strb r0, [r6]
+ b _0811BAAE
+ .align 2, 0
+_0811BAF0: .4byte 0x0200c000
+_0811BAF4: .4byte gUnknown_03004DE0
+_0811BAF8:
+ ldrh r0, [r4, 0x2E]
+ subs r0, 0x8
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r2, r0, 16
+ cmp r2, 0
+ bgt _0811BB12
+ strh r3, [r4, 0x2C]
+ mov r1, r8
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ b _0811BB3A
+_0811BB12:
+ movs r3, 0x2A
+ ldrsh r0, [r4, r3]
+ cmp r0, r2
+ ble _0811BB3A
+ ldr r4, _0811BB58 @ =gUnknown_03004DE0
+ ldr r2, _0811BB5C @ =0x0200c000
+ adds r3, r1, 0
+_0811BB20:
+ ldrh r0, [r2, 0x2A]
+ subs r0, 0x1
+ strh r0, [r2, 0x2A]
+ lsls r0, 16
+ asrs r0, 15
+ adds r0, r4
+ strh r3, [r0]
+ movs r5, 0x2A
+ ldrsh r1, [r2, r5]
+ movs r7, 0x2E
+ ldrsh r0, [r2, r7]
+ cmp r1, r0
+ bgt _0811BB20
+_0811BB3A:
+ mov r1, r10
+ ldrb r0, [r1]
+ adds r0, 0x1
+ ldrb r1, [r1]
+ mov r2, r10
+ strb r0, [r2]
+ movs r0, 0
+ 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
+_0811BB58: .4byte gUnknown_03004DE0
+_0811BB5C: .4byte 0x0200c000
+ thumb_func_end sub_811BA70
+
+ thumb_func_start sub_811BB60
+sub_811BB60: @ 811BB60
+ push {r4-r6,lr}
+ sub sp, 0xC
+ adds r6, r0, 0
+ ldr r4, _0811BBE4 @ =0x0200c000
+ ldrb r0, [r4]
+ movs r1, 0
+ strb r1, [r4]
+ adds r0, r4, 0
+ adds r0, 0x24
+ movs r2, 0x2C
+ ldrsh r3, [r4, r2]
+ str r1, [sp]
+ movs r1, 0x1
+ str r1, [sp, 0x4]
+ str r1, [sp, 0x8]
+ movs r1, 0x78
+ movs r2, 0x50
+ bl sub_811D8FC
+ ldr r5, _0811BBE8 @ =gUnknown_03004DE0
+_0811BB88:
+ movs r2, 0x78
+ ldrh r3, [r4, 0x28]
+ movs r1, 0x28
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x77
+ ble _0811BB98
+ movs r2, 0
+ movs r3, 0xF0
+_0811BB98:
+ movs r0, 0x2A
+ ldrsh r1, [r4, r0]
+ lsls r1, 1
+ adds r1, r5
+ lsls r2, 8
+ lsls r0, r3, 16
+ asrs r0, 16
+ orrs r0, r2
+ strh r0, [r1]
+ adds r0, r4, 0
+ adds r0, 0x24
+ movs r1, 0x1
+ movs r2, 0x1
+ bl sub_811D978
+ lsls r0, 24
+ cmp r0, 0
+ beq _0811BB88
+ ldr r2, _0811BBE4 @ =0x0200c000
+ ldrh r0, [r2, 0x2C]
+ adds r0, 0x10
+ strh r0, [r2, 0x2C]
+ movs r1, 0x28
+ ldrsh r0, [r2, r1]
+ cmp r0, 0x78
+ ble _0811BBD2
+ ldrh r0, [r6, 0x8]
+ adds r0, 0x1
+ strh r0, [r6, 0x8]
+_0811BBD2:
+ ldrb r0, [r2]
+ adds r0, 0x1
+ ldrb r1, [r2]
+ strb r0, [r2]
+ movs r0, 0
+ add sp, 0xC
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0811BBE4: .4byte 0x0200c000
+_0811BBE8: .4byte gUnknown_03004DE0
+ thumb_func_end sub_811BB60
+
+ thumb_func_start sub_811BBEC
+sub_811BBEC: @ 811BBEC
+ push {lr}
+ ldr r1, _0811BC1C @ =0x040000b0
+ ldrh r2, [r1, 0xA]
+ ldr r0, _0811BC20 @ =0x0000c5ff
+ ands r0, r2
+ strh r0, [r1, 0xA]
+ ldrh r2, [r1, 0xA]
+ ldr r0, _0811BC24 @ =0x00007fff
+ ands r0, r2
+ strh r0, [r1, 0xA]
+ ldrh r0, [r1, 0xA]
+ bl sub_811D6D4
+ ldr r0, _0811BC28 @ =sub_811B7E8
+ bl FindTaskIdByFunc
+ lsls r0, 24
+ lsrs r0, 24
+ bl DestroyTask
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0811BC1C: .4byte 0x040000b0
+_0811BC20: .4byte 0x0000c5ff
+_0811BC24: .4byte 0x00007fff
+_0811BC28: .4byte sub_811B7E8
+ thumb_func_end sub_811BBEC
+
+ thumb_func_start sub_811BC2C
+sub_811BC2C: @ 811BC2C
+ push {r4,lr}
+ ldr r4, _0811BC94 @ =0x040000b0
+ ldrh r1, [r4, 0xA]
+ ldr r0, _0811BC98 @ =0x0000c5ff
+ ands r0, r1
+ strh r0, [r4, 0xA]
+ ldrh r1, [r4, 0xA]
+ ldr r0, _0811BC9C @ =0x00007fff
+ ands r0, r1
+ strh r0, [r4, 0xA]
+ ldrh r0, [r4, 0xA]
+ bl sub_811D67C
+ ldr r2, _0811BCA0 @ =0x0200c000
+ ldrb r0, [r2]
+ cmp r0, 0
+ beq _0811BC62
+ ldr r1, _0811BCA4 @ =0x040000d4
+ ldr r0, _0811BCA8 @ =gUnknown_03004DE0
+ str r0, [r1]
+ movs r3, 0xF0
+ lsls r3, 3
+ adds r0, r3
+ str r0, [r1, 0x4]
+ ldr r0, _0811BCAC @ =0x800000a0
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+_0811BC62:
+ ldr r1, _0811BCB0 @ =REG_WININ
+ ldrh r0, [r2, 0x2]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldrh r0, [r2, 0x4]
+ strh r0, [r1]
+ subs r1, 0x6
+ ldrh r0, [r2, 0x8]
+ strh r0, [r1]
+ ldr r2, _0811BCB4 @ =REG_WIN0H
+ ldr r0, _0811BCA8 @ =gUnknown_03004DE0
+ movs r1, 0xF0
+ lsls r1, 3
+ adds r0, r1
+ ldrh r1, [r0]
+ strh r1, [r2]
+ str r0, [r4]
+ str r2, [r4, 0x4]
+ ldr r0, _0811BCB8 @ =0xa2400001
+ str r0, [r4, 0x8]
+ ldr r0, [r4, 0x8]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811BC94: .4byte 0x040000b0
+_0811BC98: .4byte 0x0000c5ff
+_0811BC9C: .4byte 0x00007fff
+_0811BCA0: .4byte 0x0200c000
+_0811BCA4: .4byte 0x040000d4
+_0811BCA8: .4byte gUnknown_03004DE0
+_0811BCAC: .4byte 0x800000a0
+_0811BCB0: .4byte REG_WININ
+_0811BCB4: .4byte REG_WIN0H
+_0811BCB8: .4byte 0xa2400001
+ thumb_func_end sub_811BC2C
+
+ thumb_func_start sub_811BCBC
+sub_811BCBC: @ 811BCBC
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r5, _0811BCEC @ =gUnknown_083FD814
+ ldr r2, _0811BCF0 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r4, r1, r2
+_0811BCCE:
+ 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 _0811BCCE
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811BCEC: .4byte gUnknown_083FD814
+_0811BCF0: .4byte gTasks
+ thumb_func_end sub_811BCBC
+
+ thumb_func_start sub_811BCF4
+sub_811BCF4: @ 811BCF4
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ bl sub_811D658
+ bl dp12_8087EA4
+ movs r2, 0
+ ldr r4, _0811BD48 @ =gUnknown_03005560
+ ldr r3, _0811BD4C @ =0x0200c000
+_0811BD06:
+ lsls r0, r2, 1
+ adds r0, r4
+ ldrh r1, [r3, 0x16]
+ strh r1, [r0]
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x9F
+ bls _0811BD06
+ ldr r0, _0811BD50 @ =sub_811BE3C
+ bl SetVBlankCallback
+ ldr r0, _0811BD54 @ =sub_811BE74
+ bl SetHBlankCallback
+ ldr r2, _0811BD58 @ =0x04000200
+ ldrh r0, [r2]
+ movs r1, 0x2
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r2, _0811BD5C @ =REG_DISPSTAT
+ ldrh r0, [r2]
+ movs r1, 0x10
+ orrs r0, r1
+ strh r0, [r2]
+ ldrh r0, [r5, 0x8]
+ adds r0, 0x1
+ strh r0, [r5, 0x8]
+ movs r0, 0x1
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0811BD48: .4byte gUnknown_03005560
+_0811BD4C: .4byte 0x0200c000
+_0811BD50: .4byte sub_811BE3C
+_0811BD54: .4byte sub_811BE74
+_0811BD58: .4byte 0x04000200
+_0811BD5C: .4byte REG_DISPSTAT
+ thumb_func_end sub_811BCF4
+
+ thumb_func_start sub_811BD60
+sub_811BD60: @ 811BD60
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ adds r6, r0, 0
+ ldr r1, _0811BE28 @ =0x0200c000
+ ldrb r0, [r1]
+ movs r0, 0
+ strb r0, [r1]
+ ldrh r2, [r6, 0xC]
+ lsls r1, r2, 16
+ asrs r0, r1, 24
+ lsls r0, 16
+ lsrs r3, r0, 16
+ ldrh r4, [r6, 0xA]
+ movs r0, 0xC0
+ lsls r0, 1
+ mov r8, r0
+ movs r5, 0x80
+ lsls r5, 3
+ adds r0, r4, r5
+ strh r0, [r6, 0xA]
+ ldr r0, _0811BE2C @ =0x1fff0000
+ cmp r1, r0
+ bgt _0811BD9A
+ movs r1, 0xC0
+ lsls r1, 1
+ adds r0, r2, r1
+ strh r0, [r6, 0xC]
+_0811BD9A:
+ movs r5, 0
+ lsls r7, r3, 16
+_0811BD9E:
+ lsrs r0, r4, 8
+ asrs r1, r7, 16
+ bl Sin
+ ldr r1, _0811BE30 @ =gUnknown_03004DE0
+ lsls r2, r5, 1
+ adds r2, r1
+ ldr r1, _0811BE28 @ =0x0200c000
+ ldrh r1, [r1, 0x16]
+ adds r0, r1
+ strh r0, [r2]
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ mov r1, r8
+ adds r0, r4, r1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r5, 0x9F
+ bls _0811BD9E
+ ldrh r0, [r6, 0xE]
+ adds r0, 0x1
+ strh r0, [r6, 0xE]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x51
+ bne _0811BDEC
+ ldrh r0, [r6, 0x10]
+ adds r0, 0x1
+ strh r0, [r6, 0x10]
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0x2
+ negs r1, r1
+ movs r2, 0
+ str r2, [sp]
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+_0811BDEC:
+ movs r5, 0x10
+ ldrsh r0, [r6, r5]
+ cmp r0, 0
+ beq _0811BE0E
+ ldr r0, _0811BE34 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0811BE0E
+ ldr r0, _0811BE38 @ =sub_811BCBC
+ bl FindTaskIdByFunc
+ lsls r0, 24
+ lsrs r0, 24
+ bl DestroyTask
+_0811BE0E:
+ ldr r0, _0811BE28 @ =0x0200c000
+ ldrb r1, [r0]
+ adds r1, 0x1
+ ldrb r2, [r0]
+ strb r1, [r0]
+ movs r0, 0
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0811BE28: .4byte 0x0200c000
+_0811BE2C: .4byte 0x1fff0000
+_0811BE30: .4byte gUnknown_03004DE0
+_0811BE34: .4byte gPaletteFade
+_0811BE38: .4byte sub_811BCBC
+ thumb_func_end sub_811BD60
+
+ thumb_func_start sub_811BE3C
+sub_811BE3C: @ 811BE3C
+ push {lr}
+ bl sub_811D67C
+ ldr r0, _0811BE64 @ =0x0200c000
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0811BE5E
+ ldr r1, _0811BE68 @ =0x040000d4
+ ldr r0, _0811BE6C @ =gUnknown_03004DE0
+ str r0, [r1]
+ movs r2, 0xF0
+ lsls r2, 3
+ adds r0, r2
+ str r0, [r1, 0x4]
+ ldr r0, _0811BE70 @ =0x800000a0
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+_0811BE5E:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811BE64: .4byte 0x0200c000
+_0811BE68: .4byte 0x040000d4
+_0811BE6C: .4byte gUnknown_03004DE0
+_0811BE70: .4byte 0x800000a0
+ thumb_func_end sub_811BE3C
+
+ thumb_func_start sub_811BE74
+sub_811BE74: @ 811BE74
+ ldr r1, _0811BE94 @ =gUnknown_03004DE0
+ ldr r0, _0811BE98 @ =REG_VCOUNT
+ ldrh r0, [r0]
+ lsls r0, 1
+ movs r2, 0xF0
+ lsls r2, 3
+ adds r1, r2
+ adds r0, r1
+ ldrh r1, [r0]
+ ldr r0, _0811BE9C @ =REG_BG1VOFS
+ strh r1, [r0]
+ adds r0, 0x4
+ strh r1, [r0]
+ adds r0, 0x4
+ strh r1, [r0]
+ bx lr
+ .align 2, 0
+_0811BE94: .4byte gUnknown_03004DE0
+_0811BE98: .4byte REG_VCOUNT
+_0811BE9C: .4byte REG_BG1VOFS
+ thumb_func_end sub_811BE74
+
+ thumb_func_start sub_811BEA0
+sub_811BEA0: @ 811BEA0
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r5, _0811BED0 @ =gUnknown_083FD81C
+ ldr r2, _0811BED4 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r4, r1, r2
+_0811BEB2:
+ 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 _0811BEB2
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811BED0: .4byte gUnknown_083FD81C
+_0811BED4: .4byte gTasks
+ thumb_func_end sub_811BEA0
+
+ thumb_func_start sub_811BED8
+sub_811BED8: @ 811BED8
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_811D658
+ bl dp12_8087EA4
+ ldr r1, _0811BF20 @ =0x0200c000
+ movs r2, 0
+ movs r0, 0x3F
+ strh r0, [r1, 0x2]
+ strh r2, [r1, 0x4]
+ movs r0, 0xF0
+ strh r0, [r1, 0x6]
+ movs r0, 0xA0
+ strh r0, [r1, 0x8]
+ movs r1, 0
+ ldr r3, _0811BF24 @ =gUnknown_03005560
+ movs r2, 0xF2
+_0811BEFC:
+ lsls r0, r1, 1
+ adds r0, r3
+ strh r2, [r0]
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x9F
+ bls _0811BEFC
+ ldr r0, _0811BF28 @ =sub_811C004
+ bl SetVBlankCallback
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ movs r0, 0x1
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0811BF20: .4byte 0x0200c000
+_0811BF24: .4byte gUnknown_03005560
+_0811BF28: .4byte sub_811C004
+ thumb_func_end sub_811BED8
+
+ thumb_func_start sub_811BF2C
+sub_811BF2C: @ 811BF2C
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r4, r0, 0
+ ldr r1, _0811BFBC @ =0x0200c000
+ ldrb r0, [r1]
+ movs r0, 0
+ strb r0, [r1]
+ ldr r7, _0811BFC0 @ =gUnknown_03004DE0
+ ldrh r0, [r4, 0xC]
+ ldrb r5, [r4, 0xC]
+ adds r0, 0x10
+ strh r0, [r4, 0xC]
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x8
+ strh r0, [r4, 0xA]
+ movs r6, 0
+ movs r0, 0x1
+ mov r8, r0
+_0811BF52:
+ adds r0, r5, 0
+ movs r1, 0x28
+ bl Sin
+ ldrh r1, [r4, 0xA]
+ adds r0, r1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r0, 0
+ bge _0811BF68
+ movs r1, 0
+_0811BF68:
+ lsls r0, r1, 16
+ asrs r0, 16
+ cmp r0, 0xF0
+ ble _0811BF72
+ movs r1, 0xF0
+_0811BF72:
+ lsls r0, r1, 16
+ asrs r0, 16
+ lsls r1, r0, 8
+ movs r2, 0xF1
+ orrs r1, r2
+ strh r1, [r7]
+ cmp r0, 0xEF
+ bgt _0811BF86
+ movs r0, 0
+ mov r8, r0
+_0811BF86:
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ adds r0, r5, 0x4
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r7, 0x2
+ cmp r6, 0x9F
+ bls _0811BF52
+ mov r1, r8
+ cmp r1, 0
+ beq _0811BFA4
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+_0811BFA4:
+ ldr r0, _0811BFBC @ =0x0200c000
+ ldrb r1, [r0]
+ adds r1, 0x1
+ ldrb r2, [r0]
+ strb r1, [r0]
+ movs r0, 0
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0811BFBC: .4byte 0x0200c000
+_0811BFC0: .4byte gUnknown_03004DE0
+ thumb_func_end sub_811BF2C
+
+ thumb_func_start sub_811BFC4
+sub_811BFC4: @ 811BFC4
+ push {lr}
+ ldr r1, _0811BFF4 @ =0x040000b0
+ ldrh r2, [r1, 0xA]
+ ldr r0, _0811BFF8 @ =0x0000c5ff
+ ands r0, r2
+ strh r0, [r1, 0xA]
+ ldrh r2, [r1, 0xA]
+ ldr r0, _0811BFFC @ =0x00007fff
+ ands r0, r2
+ strh r0, [r1, 0xA]
+ ldrh r0, [r1, 0xA]
+ bl sub_811D6D4
+ ldr r0, _0811C000 @ =sub_811BEA0
+ bl FindTaskIdByFunc
+ lsls r0, 24
+ lsrs r0, 24
+ bl DestroyTask
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0811BFF4: .4byte 0x040000b0
+_0811BFF8: .4byte 0x0000c5ff
+_0811BFFC: .4byte 0x00007fff
+_0811C000: .4byte sub_811BEA0
+ thumb_func_end sub_811BFC4
+
+ thumb_func_start sub_811C004
+sub_811C004: @ 811C004
+ push {r4,lr}
+ ldr r4, _0811C060 @ =0x040000b0
+ ldrh r1, [r4, 0xA]
+ ldr r0, _0811C064 @ =0x0000c5ff
+ ands r0, r1
+ strh r0, [r4, 0xA]
+ ldrh r1, [r4, 0xA]
+ ldr r0, _0811C068 @ =0x00007fff
+ ands r0, r1
+ strh r0, [r4, 0xA]
+ ldrh r0, [r4, 0xA]
+ bl sub_811D67C
+ ldr r2, _0811C06C @ =0x0200c000
+ ldrb r0, [r2]
+ cmp r0, 0
+ beq _0811C03A
+ ldr r1, _0811C070 @ =0x040000d4
+ ldr r0, _0811C074 @ =gUnknown_03004DE0
+ str r0, [r1]
+ movs r3, 0xF0
+ lsls r3, 3
+ adds r0, r3
+ str r0, [r1, 0x4]
+ ldr r0, _0811C078 @ =0x800000a0
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+_0811C03A:
+ ldr r1, _0811C07C @ =REG_WININ
+ ldrh r0, [r2, 0x2]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldrh r0, [r2, 0x4]
+ strh r0, [r1]
+ subs r1, 0x6
+ ldrh r0, [r2, 0x8]
+ strh r0, [r1]
+ ldr r0, _0811C080 @ =gUnknown_03005560
+ str r0, [r4]
+ ldr r0, _0811C084 @ =REG_WIN0H
+ str r0, [r4, 0x4]
+ ldr r0, _0811C088 @ =0xa2400001
+ str r0, [r4, 0x8]
+ ldr r0, [r4, 0x8]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811C060: .4byte 0x040000b0
+_0811C064: .4byte 0x0000c5ff
+_0811C068: .4byte 0x00007fff
+_0811C06C: .4byte 0x0200c000
+_0811C070: .4byte 0x040000d4
+_0811C074: .4byte gUnknown_03004DE0
+_0811C078: .4byte 0x800000a0
+_0811C07C: .4byte REG_WININ
+_0811C080: .4byte gUnknown_03005560
+_0811C084: .4byte REG_WIN0H
+_0811C088: .4byte 0xa2400001
+ thumb_func_end sub_811C004
+
+ thumb_func_start sub_811C08C
+sub_811C08C: @ 811C08C
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0811C0A8 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ movs r2, 0
+ strh r2, [r1, 0x26]
+ bl sub_811C12C
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811C0A8: .4byte gTasks
+ thumb_func_end sub_811C08C
+
+ thumb_func_start sub_811C0AC
+sub_811C0AC: @ 811C0AC
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0811C0C8 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ movs r2, 0x1
+ strh r2, [r1, 0x26]
+ bl sub_811C12C
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811C0C8: .4byte gTasks
+ thumb_func_end sub_811C0AC
+
+ thumb_func_start sub_811C0CC
+sub_811C0CC: @ 811C0CC
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0811C0E8 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ movs r2, 0x2
+ strh r2, [r1, 0x26]
+ bl sub_811C12C
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811C0E8: .4byte gTasks
+ thumb_func_end sub_811C0CC
+
+ thumb_func_start sub_811C0EC
+sub_811C0EC: @ 811C0EC
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0811C108 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ movs r2, 0x3
+ strh r2, [r1, 0x26]
+ bl sub_811C12C
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811C108: .4byte gTasks
+ thumb_func_end sub_811C0EC
+
+ thumb_func_start sub_811C10C
+sub_811C10C: @ 811C10C
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0811C128 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ movs r2, 0x4
+ strh r2, [r1, 0x26]
+ bl sub_811C12C
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811C128: .4byte gTasks
+ thumb_func_end sub_811C10C
+
+ thumb_func_start sub_811C12C
+sub_811C12C: @ 811C12C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r5, _0811C15C @ =gUnknown_083FD828
+ ldr r2, _0811C160 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r4, r1, r2
+_0811C13E:
+ 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 _0811C13E
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811C15C: .4byte gUnknown_083FD828
+_0811C160: .4byte gTasks
+ thumb_func_end sub_811C12C
+
+ thumb_func_start sub_811C164
+sub_811C164: @ 811C164
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_811D658
+ bl dp12_8087EA4
+ adds r0, r4, 0
+ bl sub_811C7B0
+ movs r0, 0
+ strh r0, [r4, 0xA]
+ movs r0, 0x1
+ strh r0, [r4, 0xC]
+ movs r0, 0xEF
+ strh r0, [r4, 0xE]
+ ldr r1, _0811C1BC @ =0x0200c000
+ movs r0, 0x3F
+ strh r0, [r1, 0x2]
+ movs r0, 0x3E
+ strh r0, [r1, 0x4]
+ movs r0, 0xA0
+ strh r0, [r1, 0x8]
+ movs r1, 0
+ ldr r3, _0811C1C0 @ =gUnknown_03005560
+ ldr r2, _0811C1C4 @ =0x0000f0f1
+_0811C196:
+ lsls r0, r1, 1
+ adds r0, r3
+ strh r2, [r0]
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x9F
+ bls _0811C196
+ ldr r0, _0811C1C8 @ =sub_811C670
+ bl SetVBlankCallback
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0811C1BC: .4byte 0x0200c000
+_0811C1C0: .4byte gUnknown_03005560
+_0811C1C4: .4byte 0x0000f0f1
+_0811C1C8: .4byte sub_811C670
+ thumb_func_end sub_811C164
+
+ thumb_func_start sub_811C1CC
+sub_811C1CC: @ 811C1CC
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x8
+ mov r8, r0
+ ldr r6, _0811C284 @ =gUnknown_083FDFF4
+ add r1, sp, 0x4
+ mov r0, sp
+ bl sub_811D6A8
+ ldr r0, _0811C288 @ =gUnknown_083FC348
+ ldr r1, [sp, 0x4]
+ movs r2, 0xF0
+ bl CpuSet
+ ldr r1, _0811C28C @ =gUnknown_083FDB00
+ mov r2, r8
+ movs r3, 0x26
+ ldrsh r0, [r2, r3]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0xF0
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r1, _0811C290 @ =gUnknown_083FDB14
+ ldr r0, _0811C294 @ =gSaveBlock2
+ ldrb r0, [r0, 0x8]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0xFA
+ movs r2, 0xC
+ bl LoadPalette
+ movs r1, 0
+ ldr r5, [sp]
+ ldr r0, _0811C298 @ =sub_811C77C
+ mov r12, r0
+ movs r2, 0xF0
+ lsls r2, 8
+ adds r7, r2, 0
+_0811C222:
+ movs r0, 0
+ lsls r3, r1, 16
+ asrs r4, r3, 11
+_0811C228:
+ lsls r2, r0, 16
+ asrs r2, 16
+ adds r1, r4, r2
+ lsls r1, 1
+ adds r1, r5
+ ldrh r0, [r6]
+ orrs r0, r7
+ strh r0, [r1]
+ adds r2, 0x1
+ lsls r2, 16
+ adds r6, 0x2
+ lsrs r0, r2, 16
+ asrs r2, 16
+ cmp r2, 0x1F
+ ble _0811C228
+ movs r1, 0x80
+ lsls r1, 9
+ adds r0, r3, r1
+ lsrs r1, r0, 16
+ asrs r0, 16
+ cmp r0, 0x13
+ ble _0811C222
+ ldr r2, _0811C29C @ =0x04000200
+ ldrh r0, [r2]
+ movs r1, 0x2
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r2, _0811C2A0 @ =REG_DISPSTAT
+ ldrh r0, [r2]
+ movs r1, 0x10
+ orrs r0, r1
+ strh r0, [r2]
+ mov r0, r12
+ bl SetHBlankCallback
+ mov r2, r8
+ ldrh r0, [r2, 0x8]
+ adds r0, 0x1
+ strh r0, [r2, 0x8]
+ movs r0, 0
+ add sp, 0x8
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0811C284: .4byte gUnknown_083FDFF4
+_0811C288: .4byte gUnknown_083FC348
+_0811C28C: .4byte gUnknown_083FDB00
+_0811C290: .4byte gUnknown_083FDB14
+_0811C294: .4byte gSaveBlock2
+_0811C298: .4byte sub_811C77C
+_0811C29C: .4byte 0x04000200
+_0811C2A0: .4byte REG_DISPSTAT
+ thumb_func_end sub_811C1CC
+
+ thumb_func_start sub_811C2A4
+sub_811C2A4: @ 811C2A4
+ push {r4-r7,lr}
+ adds r4, r0, 0
+ ldr r1, _0811C384 @ =0x0200c000
+ ldrb r0, [r1]
+ movs r0, 0
+ strb r0, [r1]
+ ldr r7, _0811C388 @ =gUnknown_03004DE0
+ ldrh r0, [r4, 0xA]
+ ldrb r5, [r4, 0xA]
+ adds r0, 0x10
+ strh r0, [r4, 0xA]
+ movs r6, 0
+_0811C2BC:
+ adds r0, r5, 0
+ movs r1, 0x10
+ bl Sin
+ ldrh r1, [r4, 0xC]
+ adds r0, r1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r0, 0
+ bge _0811C2D2
+ movs r2, 0x1
+_0811C2D2:
+ lsls r0, r2, 16
+ asrs r0, 16
+ cmp r0, 0xF0
+ ble _0811C2DC
+ movs r2, 0xF0
+_0811C2DC:
+ strh r2, [r7]
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ adds r7, 0x2
+ adds r0, r5, 0
+ adds r0, 0x10
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r6, 0x4F
+ bls _0811C2BC
+ cmp r6, 0x9F
+ bhi _0811C334
+_0811C2F6:
+ adds r0, r5, 0
+ movs r1, 0x10
+ bl Sin
+ ldrh r1, [r4, 0xE]
+ subs r1, r0
+ lsls r1, 16
+ lsrs r2, r1, 16
+ cmp r1, 0
+ bge _0811C30C
+ movs r2, 0
+_0811C30C:
+ lsls r0, r2, 16
+ asrs r0, 16
+ cmp r0, 0xEF
+ ble _0811C316
+ movs r2, 0xEF
+_0811C316:
+ lsls r0, r2, 16
+ asrs r0, 8
+ movs r1, 0xF0
+ orrs r0, r1
+ strh r0, [r7]
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ adds r7, 0x2
+ adds r0, r5, 0
+ adds r0, 0x10
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r6, 0x9F
+ bls _0811C2F6
+_0811C334:
+ ldrh r1, [r4, 0xC]
+ adds r1, 0x8
+ strh r1, [r4, 0xC]
+ ldrh r0, [r4, 0xE]
+ subs r0, 0x8
+ strh r0, [r4, 0xE]
+ lsls r1, 16
+ asrs r1, 16
+ cmp r1, 0xF0
+ ble _0811C34C
+ movs r0, 0xF0
+ strh r0, [r4, 0xC]
+_0811C34C:
+ movs r1, 0xE
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bge _0811C358
+ movs r0, 0
+ strh r0, [r4, 0xE]
+_0811C358:
+ ldr r0, [r4, 0xC]
+ cmp r0, 0xF0
+ bne _0811C364
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+_0811C364:
+ ldr r1, _0811C384 @ =0x0200c000
+ ldrh r0, [r1, 0x18]
+ subs r0, 0x8
+ strh r0, [r1, 0x18]
+ ldrh r0, [r1, 0x1A]
+ adds r0, 0x8
+ strh r0, [r1, 0x1A]
+ ldrb r0, [r1]
+ adds r0, 0x1
+ ldrb r2, [r1]
+ strb r0, [r1]
+ movs r0, 0
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0811C384: .4byte 0x0200c000
+_0811C388: .4byte gUnknown_03004DE0
+ thumb_func_end sub_811C2A4
+
+ thumb_func_start sub_811C38C
+sub_811C38C: @ 811C38C
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldr r0, _0811C3F8 @ =0x0200c000
+ ldrb r1, [r0]
+ movs r1, 0
+ strb r1, [r0]
+ ldr r2, _0811C3FC @ =gUnknown_03004DE0
+ adds r5, r0, 0
+ movs r3, 0xF0
+_0811C39E:
+ strh r3, [r2]
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ adds r2, 0x2
+ cmp r1, 0x9F
+ bls _0811C39E
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ movs r1, 0
+ strh r0, [r4, 0x8]
+ strh r1, [r4, 0xA]
+ strh r1, [r4, 0xC]
+ strh r1, [r4, 0xE]
+ ldrh r0, [r5, 0x18]
+ subs r0, 0x8
+ strh r0, [r5, 0x18]
+ ldrh r0, [r5, 0x1A]
+ adds r0, 0x8
+ strh r0, [r5, 0x1A]
+ movs r1, 0x22
+ ldrsh r0, [r4, r1]
+ movs r1, 0
+ bl sub_811CA10
+ movs r1, 0x24
+ ldrsh r0, [r4, r1]
+ movs r1, 0x1
+ bl sub_811CA10
+ movs r1, 0x22
+ ldrsh r0, [r4, r1]
+ bl sub_811CA28
+ movs r0, 0x68
+ bl PlaySE
+ ldrb r0, [r5]
+ adds r0, 0x1
+ ldrb r1, [r5]
+ strb r0, [r5]
+ movs r0, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0811C3F8: .4byte 0x0200c000
+_0811C3FC: .4byte gUnknown_03004DE0
+ thumb_func_end sub_811C38C
+
+ thumb_func_start sub_811C400
+sub_811C400: @ 811C400
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r1, _0811C438 @ =0x0200c000
+ ldrh r0, [r1, 0x18]
+ subs r0, 0x8
+ strh r0, [r1, 0x18]
+ ldrh r0, [r1, 0x1A]
+ adds r0, 0x8
+ strh r0, [r1, 0x1A]
+ movs r1, 0x22
+ ldrsh r0, [r4, r1]
+ bl sub_811CA44
+ lsls r0, 16
+ cmp r0, 0
+ beq _0811C42E
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ movs r1, 0x24
+ ldrsh r0, [r4, r1]
+ bl sub_811CA28
+_0811C42E:
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0811C438: .4byte 0x0200c000
+ thumb_func_end sub_811C400
+
+ thumb_func_start sub_811C43C
+sub_811C43C: @ 811C43C
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r6, r0, 0
+ ldr r7, _0811C4D0 @ =0x0200c000
+ ldrh r0, [r7, 0x18]
+ subs r0, 0x8
+ movs r1, 0
+ mov r8, r1
+ strh r0, [r7, 0x18]
+ ldrh r0, [r7, 0x1A]
+ adds r0, 0x8
+ strh r0, [r7, 0x1A]
+ movs r1, 0x24
+ ldrsh r0, [r6, r1]
+ bl sub_811CA44
+ lsls r0, 16
+ cmp r0, 0
+ beq _0811C4C4
+ ldrb r0, [r7]
+ movs r0, 0
+ strb r0, [r7]
+ movs r0, 0
+ bl SetVBlankCallback
+ ldr r1, _0811C4D4 @ =0x040000b0
+ ldrh r2, [r1, 0xA]
+ ldr r0, _0811C4D8 @ =0x0000c5ff
+ ands r0, r2
+ strh r0, [r1, 0xA]
+ ldrh r2, [r1, 0xA]
+ ldr r0, _0811C4DC @ =0x00007fff
+ ands r0, r2
+ strh r0, [r1, 0xA]
+ ldrh r0, [r1, 0xA]
+ ldr r4, _0811C4E0 @ =gUnknown_03004DE0
+ movs r5, 0xA0
+ lsls r5, 1
+ adds r0, r4, 0
+ movs r1, 0
+ adds r2, r5, 0
+ bl memset
+ movs r0, 0xF0
+ lsls r0, 3
+ adds r4, r0
+ adds r0, r4, 0
+ movs r1, 0
+ adds r2, r5, 0
+ bl memset
+ ldr r1, _0811C4E4 @ =REG_WIN0H
+ movs r0, 0xF0
+ strh r0, [r1]
+ ldr r0, _0811C4E8 @ =REG_BLDY
+ mov r1, r8
+ strh r1, [r0]
+ ldrh r0, [r6, 0x8]
+ adds r0, 0x1
+ strh r0, [r6, 0x8]
+ strh r1, [r6, 0xE]
+ strh r1, [r6, 0x10]
+ movs r0, 0xBF
+ strh r0, [r7, 0xE]
+ ldr r0, _0811C4EC @ =sub_811C700
+ bl SetVBlankCallback
+_0811C4C4:
+ movs r0, 0
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0811C4D0: .4byte 0x0200c000
+_0811C4D4: .4byte 0x040000b0
+_0811C4D8: .4byte 0x0000c5ff
+_0811C4DC: .4byte 0x00007fff
+_0811C4E0: .4byte gUnknown_03004DE0
+_0811C4E4: .4byte REG_WIN0H
+_0811C4E8: .4byte REG_BLDY
+_0811C4EC: .4byte sub_811C700
+ thumb_func_end sub_811C43C
+
+ thumb_func_start sub_811C4F0
+sub_811C4F0: @ 811C4F0
+ push {r4-r7,lr}
+ adds r4, r0, 0
+ ldr r1, _0811C5AC @ =0x0200c000
+ ldrb r0, [r1]
+ movs r0, 0
+ strb r0, [r1]
+ movs r6, 0x1
+ ldrh r0, [r1, 0x18]
+ subs r0, 0x8
+ strh r0, [r1, 0x18]
+ ldrh r0, [r1, 0x1A]
+ adds r0, 0x8
+ strh r0, [r1, 0x1A]
+ ldrh r2, [r4, 0x10]
+ movs r3, 0x10
+ ldrsh r0, [r4, r3]
+ adds r7, r1, 0
+ cmp r0, 0x4F
+ bgt _0811C51A
+ adds r0, r2, 0x2
+ strh r0, [r4, 0x10]
+_0811C51A:
+ movs r1, 0x10
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x50
+ ble _0811C526
+ movs r0, 0x50
+ strh r0, [r4, 0x10]
+_0811C526:
+ ldrh r0, [r4, 0xE]
+ adds r0, 0x1
+ strh r0, [r4, 0xE]
+ movs r1, 0x1
+ ands r0, r1
+ ldrh r2, [r4, 0x10]
+ cmp r0, 0
+ beq _0811C58C
+ movs r3, 0
+ lsls r0, r2, 16
+ movs r6, 0
+ cmp r0, 0
+ blt _0811C58C
+ movs r2, 0x50
+ mov r12, r2
+ ldr r5, _0811C5B0 @ =gUnknown_03004DE0
+_0811C546:
+ lsls r0, r3, 16
+ asrs r2, r0, 16
+ mov r3, r12
+ subs r1, r3, r2
+ adds r0, r2, 0
+ adds r0, 0x50
+ lsls r0, 16
+ lsrs r3, r0, 16
+ lsls r1, 16
+ asrs r1, 15
+ adds r1, r5
+ ldrh r0, [r1]
+ cmp r0, 0xF
+ bhi _0811C568
+ movs r6, 0x1
+ adds r0, 0x1
+ strh r0, [r1]
+_0811C568:
+ lsls r0, r3, 16
+ asrs r0, 15
+ adds r1, r0, r5
+ ldrh r0, [r1]
+ cmp r0, 0xF
+ bhi _0811C57A
+ movs r6, 0x1
+ adds r0, 0x1
+ strh r0, [r1]
+_0811C57A:
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ asrs r0, 16
+ movs r2, 0x10
+ ldrsh r1, [r4, r2]
+ ldrh r2, [r4, 0x10]
+ cmp r0, r1
+ ble _0811C546
+_0811C58C:
+ cmp r2, 0x50
+ bne _0811C59A
+ cmp r6, 0
+ bne _0811C59A
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+_0811C59A:
+ ldrb r0, [r7]
+ adds r0, 0x1
+ ldrb r1, [r7]
+ strb r0, [r7]
+ movs r0, 0
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0811C5AC: .4byte 0x0200c000
+_0811C5B0: .4byte gUnknown_03004DE0
+ thumb_func_end sub_811C4F0
+
+ thumb_func_start sub_811C5B4
+sub_811C5B4: @ 811C5B4
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ ldr r4, _0811C5E0 @ =0x0200c000
+ ldrb r0, [r4]
+ movs r6, 0
+ strb r6, [r4]
+ movs r0, 0x1
+ negs r0, r0
+ ldr r2, _0811C5E4 @ =0x00007fff
+ movs r1, 0x10
+ bl BlendPalettes
+ movs r0, 0xFF
+ strh r0, [r4, 0xE]
+ strh r6, [r5, 0xE]
+ ldrh r0, [r5, 0x8]
+ adds r0, 0x1
+ strh r0, [r5, 0x8]
+ movs r0, 0x1
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0811C5E0: .4byte 0x0200c000
+_0811C5E4: .4byte 0x00007fff
+ thumb_func_end sub_811C5B4
+
+ thumb_func_start sub_811C5E8
+sub_811C5E8: @ 811C5E8
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldr r5, _0811C628 @ =0x0200c000
+ ldrb r0, [r5]
+ movs r0, 0
+ strb r0, [r5]
+ ldrh r0, [r4, 0xE]
+ adds r0, 0x1
+ strh r0, [r4, 0xE]
+ ldr r0, _0811C62C @ =gUnknown_03004DE0
+ movs r2, 0xE
+ ldrsh r1, [r4, r2]
+ movs r2, 0xA0
+ lsls r2, 1
+ bl memset
+ movs r1, 0xE
+ ldrsh r0, [r4, r1]
+ cmp r0, 0xF
+ ble _0811C616
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+_0811C616:
+ ldrb r0, [r5]
+ adds r0, 0x1
+ ldrb r1, [r5]
+ strb r0, [r5]
+ movs r0, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0811C628: .4byte 0x0200c000
+_0811C62C: .4byte gUnknown_03004DE0
+ thumb_func_end sub_811C5E8
+
+ thumb_func_start sub_811C630
+sub_811C630: @ 811C630
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r1, _0811C664 @ =0x040000b0
+ ldrh r2, [r1, 0xA]
+ ldr r0, _0811C668 @ =0x0000c5ff
+ ands r0, r2
+ strh r0, [r1, 0xA]
+ ldrh r2, [r1, 0xA]
+ ldr r0, _0811C66C @ =0x00007fff
+ ands r0, r2
+ strh r0, [r1, 0xA]
+ ldrh r0, [r1, 0xA]
+ bl sub_811D6D4
+ ldr r0, [r4]
+ bl FindTaskIdByFunc
+ lsls r0, 24
+ lsrs r0, 24
+ bl DestroyTask
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0811C664: .4byte 0x040000b0
+_0811C668: .4byte 0x0000c5ff
+_0811C66C: .4byte 0x00007fff
+ thumb_func_end sub_811C630
+
+ thumb_func_start sub_811C670
+sub_811C670: @ 811C670
+ push {r4,lr}
+ ldr r4, _0811C6D4 @ =0x040000b0
+ ldrh r1, [r4, 0xA]
+ ldr r0, _0811C6D8 @ =0x0000c5ff
+ ands r0, r1
+ strh r0, [r4, 0xA]
+ ldrh r1, [r4, 0xA]
+ ldr r0, _0811C6DC @ =0x00007fff
+ ands r0, r1
+ strh r0, [r4, 0xA]
+ ldrh r0, [r4, 0xA]
+ bl sub_811D67C
+ ldr r2, _0811C6E0 @ =0x0200c000
+ ldrb r0, [r2]
+ cmp r0, 0
+ beq _0811C6A6
+ ldr r1, _0811C6E4 @ =0x040000d4
+ ldr r0, _0811C6E8 @ =gUnknown_03004DE0
+ str r0, [r1]
+ movs r3, 0xF0
+ lsls r3, 3
+ adds r0, r3
+ str r0, [r1, 0x4]
+ ldr r0, _0811C6EC @ =0x800000a0
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+_0811C6A6:
+ ldr r1, _0811C6F0 @ =REG_BG0VOFS
+ ldrh r0, [r2, 0x1C]
+ strh r0, [r1]
+ adds r1, 0x36
+ ldrh r0, [r2, 0x2]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldrh r0, [r2, 0x4]
+ strh r0, [r1]
+ subs r1, 0x6
+ ldrh r0, [r2, 0x8]
+ strh r0, [r1]
+ ldr r0, _0811C6F4 @ =gUnknown_03005560
+ str r0, [r4]
+ ldr r0, _0811C6F8 @ =REG_WIN0H
+ str r0, [r4, 0x4]
+ ldr r0, _0811C6FC @ =0xa2400001
+ str r0, [r4, 0x8]
+ ldr r0, [r4, 0x8]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811C6D4: .4byte 0x040000b0
+_0811C6D8: .4byte 0x0000c5ff
+_0811C6DC: .4byte 0x00007fff
+_0811C6E0: .4byte 0x0200c000
+_0811C6E4: .4byte 0x040000d4
+_0811C6E8: .4byte gUnknown_03004DE0
+_0811C6EC: .4byte 0x800000a0
+_0811C6F0: .4byte REG_BG0VOFS
+_0811C6F4: .4byte gUnknown_03005560
+_0811C6F8: .4byte REG_WIN0H
+_0811C6FC: .4byte 0xa2400001
+ thumb_func_end sub_811C670
+
+ thumb_func_start sub_811C700
+sub_811C700: @ 811C700
+ push {r4,lr}
+ ldr r4, _0811C750 @ =0x040000b0
+ ldrh r1, [r4, 0xA]
+ ldr r0, _0811C754 @ =0x0000c5ff
+ ands r0, r1
+ strh r0, [r4, 0xA]
+ ldrh r1, [r4, 0xA]
+ ldr r0, _0811C758 @ =0x00007fff
+ ands r0, r1
+ strh r0, [r4, 0xA]
+ ldrh r0, [r4, 0xA]
+ bl sub_811D67C
+ ldr r2, _0811C75C @ =0x0200c000
+ ldrb r0, [r2]
+ cmp r0, 0
+ beq _0811C736
+ ldr r1, _0811C760 @ =0x040000d4
+ ldr r0, _0811C764 @ =gUnknown_03004DE0
+ str r0, [r1]
+ movs r3, 0xF0
+ lsls r3, 3
+ adds r0, r3
+ str r0, [r1, 0x4]
+ ldr r0, _0811C768 @ =0x800000a0
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+_0811C736:
+ ldr r1, _0811C76C @ =REG_BLDCNT
+ ldrh r0, [r2, 0xE]
+ strh r0, [r1]
+ ldr r0, _0811C770 @ =gUnknown_03005560
+ str r0, [r4]
+ ldr r0, _0811C774 @ =REG_BLDY
+ str r0, [r4, 0x4]
+ ldr r0, _0811C778 @ =0xa2400001
+ str r0, [r4, 0x8]
+ ldr r0, [r4, 0x8]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811C750: .4byte 0x040000b0
+_0811C754: .4byte 0x0000c5ff
+_0811C758: .4byte 0x00007fff
+_0811C75C: .4byte 0x0200c000
+_0811C760: .4byte 0x040000d4
+_0811C764: .4byte gUnknown_03004DE0
+_0811C768: .4byte 0x800000a0
+_0811C76C: .4byte REG_BLDCNT
+_0811C770: .4byte gUnknown_03005560
+_0811C774: .4byte REG_BLDY
+_0811C778: .4byte 0xa2400001
+ thumb_func_end sub_811C700
+
+ thumb_func_start sub_811C77C
+sub_811C77C: @ 811C77C
+ push {lr}
+ ldr r0, _0811C790 @ =REG_VCOUNT
+ ldrh r0, [r0]
+ cmp r0, 0x4F
+ bhi _0811C79C
+ ldr r0, _0811C794 @ =REG_BG0HOFS
+ ldr r1, _0811C798 @ =0x0200c000
+ ldrh r1, [r1, 0x18]
+ b _0811C7A2
+ .align 2, 0
+_0811C790: .4byte REG_VCOUNT
+_0811C794: .4byte REG_BG0HOFS
+_0811C798: .4byte 0x0200c000
+_0811C79C:
+ ldr r0, _0811C7A8 @ =REG_BG0HOFS
+ ldr r1, _0811C7AC @ =0x0200c000
+ ldrh r1, [r1, 0x1A]
+_0811C7A2:
+ strh r1, [r0]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811C7A8: .4byte REG_BG0HOFS
+_0811C7AC: .4byte 0x0200c000
+ thumb_func_end sub_811C77C
+
+ thumb_func_start sub_811C7B0
+sub_811C7B0: @ 811C7B0
+ push {r4-r6,lr}
+ mov r6, r9
+ mov r5, r8
+ push {r5,r6}
+ sub sp, 0x4
+ adds r4, r0, 0
+ ldr r0, _0811C8EC @ =gUnknown_083FD850
+ movs r2, 0x26
+ ldrsh r1, [r4, r2]
+ mov r8, r1
+ add r0, r8
+ ldrb r0, [r0]
+ ldr r2, _0811C8F0 @ =gUnknown_083FD86A
+ lsls r1, 2
+ mov r8, r1
+ adds r1, r2
+ ldrh r1, [r1]
+ subs r1, 0x20
+ lsls r1, 16
+ asrs r1, 16
+ adds r2, 0x2
+ add r2, r8
+ ldrh r2, [r2]
+ adds r2, 0x2A
+ lsls r2, 16
+ asrs r2, 16
+ ldr r5, _0811C8F4 @ =0x0200c03c
+ str r5, [sp]
+ movs r3, 0
+ bl CreateTrainerSprite_BirchSpeech
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x22]
+ ldr r0, _0811C8F8 @ =gSaveBlock2
+ ldrb r0, [r0, 0x8]
+ movs r1, 0x88
+ lsls r1, 1
+ str r5, [sp]
+ movs r2, 0x6A
+ movs r3, 0
+ bl CreateTrainerSprite_BirchSpeech
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x24]
+ movs r3, 0x22
+ ldrsh r0, [r4, r3]
+ lsls r5, r0, 4
+ adds r5, r0
+ lsls r5, 2
+ ldr r1, _0811C8FC @ =gSprites
+ adds r5, r1
+ movs r2, 0x24
+ ldrsh r0, [r4, r2]
+ lsls r6, r0, 4
+ adds r6, r0
+ lsls r6, 2
+ adds r6, r1
+ ldr r0, _0811C900 @ =sub_811C90C
+ str r0, [r5, 0x1C]
+ str r0, [r6, 0x1C]
+ ldrb r0, [r5, 0x1]
+ movs r1, 0x3
+ orrs r0, r1
+ strb r0, [r5, 0x1]
+ ldrb r0, [r6, 0x1]
+ orrs r0, r1
+ strb r0, [r6, 0x1]
+ bl AllocOamMatrix
+ lsls r0, 24
+ lsrs r0, 24
+ movs r3, 0x1F
+ mov r9, r3
+ mov r4, r9
+ ands r0, r4
+ lsls r0, 1
+ ldrb r2, [r5, 0x3]
+ movs r4, 0x3F
+ negs r4, r4
+ adds r1, r4, 0
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r5, 0x3]
+ bl AllocOamMatrix
+ lsls r0, 24
+ lsrs r0, 24
+ mov r1, r9
+ ands r0, r1
+ lsls r0, 1
+ ldrb r1, [r6, 0x3]
+ ands r4, r1
+ orrs r4, r0
+ strb r4, [r6, 0x3]
+ ldrb r2, [r5, 0x1]
+ movs r1, 0x3F
+ adds r0, r1, 0
+ ands r0, r2
+ movs r2, 0x40
+ orrs r0, r2
+ strb r0, [r5, 0x1]
+ ldrb r0, [r6, 0x1]
+ ands r1, r0
+ orrs r1, r2
+ strb r1, [r6, 0x1]
+ ldrb r0, [r5, 0x3]
+ movs r1, 0xC0
+ orrs r0, r1
+ strb r0, [r5, 0x3]
+ ldrb r0, [r6, 0x3]
+ orrs r0, r1
+ strb r0, [r6, 0x3]
+ adds r0, r5, 0
+ movs r1, 0x1
+ movs r2, 0x3
+ movs r3, 0x3
+ bl CalcCenterToCornerVec
+ adds r0, r6, 0
+ movs r1, 0x1
+ movs r2, 0x3
+ movs r3, 0x3
+ bl CalcCenterToCornerVec
+ ldrb r0, [r5, 0x3]
+ lsls r0, 26
+ lsrs r0, 27
+ ldr r2, _0811C904 @ =gUnknown_083FD856
+ mov r3, r8
+ adds r1, r3, r2
+ movs r4, 0
+ ldrsh r1, [r1, r4]
+ adds r2, 0x2
+ add r8, r2
+ mov r3, r8
+ movs r4, 0
+ ldrsh r2, [r3, r4]
+ movs r3, 0
+ bl SetOamMatrixRotationScaling
+ ldrb r0, [r6, 0x3]
+ lsls r0, 26
+ lsrs r0, 27
+ ldr r1, _0811C908 @ =0xfffffe00
+ movs r2, 0x80
+ lsls r2, 2
+ movs r3, 0
+ bl SetOamMatrixRotationScaling
+ add sp, 0x4
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811C8EC: .4byte gUnknown_083FD850
+_0811C8F0: .4byte gUnknown_083FD86A
+_0811C8F4: .4byte 0x0200c03c
+_0811C8F8: .4byte gSaveBlock2
+_0811C8FC: .4byte gSprites
+_0811C900: .4byte sub_811C90C
+_0811C904: .4byte gUnknown_083FD856
+_0811C908: .4byte 0xfffffe00
+ thumb_func_end sub_811C7B0
+
+ thumb_func_start sub_811C90C
+sub_811C90C: @ 811C90C
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldr r5, _0811C930 @ =gUnknown_083FD880
+_0811C912:
+ 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 _0811C912
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811C930: .4byte gUnknown_083FD880
+ thumb_func_end sub_811C90C
+
+ thumb_func_start sub_811C934
+sub_811C934: @ 811C934
+ movs r0, 0
+ bx lr
+ thumb_func_end sub_811C934
+
+ thumb_func_start sub_811C938
+sub_811C938: @ 811C938
+ push {r4,r5,lr}
+ sub sp, 0x8
+ adds r5, r0, 0
+ ldr r1, _0811C97C @ =gUnknown_083FD89C
+ mov r0, sp
+ movs r2, 0x4
+ bl memcpy
+ add r4, sp, 0x4
+ ldr r1, _0811C980 @ =gUnknown_083FD8A0
+ adds r0, r4, 0
+ movs r2, 0x4
+ bl memcpy
+ ldrh r0, [r5, 0x2E]
+ adds r0, 0x1
+ strh r0, [r5, 0x2E]
+ movs r1, 0x3C
+ ldrsh r0, [r5, r1]
+ lsls r0, 1
+ add r0, sp
+ ldrh r0, [r0]
+ strh r0, [r5, 0x30]
+ movs r1, 0x3C
+ ldrsh r0, [r5, r1]
+ lsls r0, 1
+ adds r4, r0
+ ldrh r0, [r4]
+ strh r0, [r5, 0x32]
+ movs r0, 0x1
+ add sp, 0x8
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0811C97C: .4byte gUnknown_083FD89C
+_0811C980: .4byte gUnknown_083FD8A0
+ thumb_func_end sub_811C938
+
+ thumb_func_start sub_811C984
+sub_811C984: @ 811C984
+ push {lr}
+ adds r1, r0, 0
+ ldrh r0, [r1, 0x30]
+ ldrh r3, [r1, 0x20]
+ adds r2, r0, r3
+ strh r2, [r1, 0x20]
+ movs r3, 0x3C
+ ldrsh r0, [r1, r3]
+ cmp r0, 0
+ beq _0811C9A2
+ lsls r0, r2, 16
+ asrs r0, 16
+ cmp r0, 0x84
+ bgt _0811C9B0
+ b _0811C9AA
+_0811C9A2:
+ lsls r0, r2, 16
+ asrs r0, 16
+ cmp r0, 0x67
+ ble _0811C9B0
+_0811C9AA:
+ ldrh r0, [r1, 0x2E]
+ adds r0, 0x1
+ strh r0, [r1, 0x2E]
+_0811C9B0:
+ movs r0, 0
+ pop {r1}
+ bx r1
+ thumb_func_end sub_811C984
+
+ thumb_func_start sub_811C9B8
+sub_811C9B8: @ 811C9B8
+ push {lr}
+ adds r2, r0, 0
+ ldrh r3, [r2, 0x32]
+ ldrh r0, [r2, 0x30]
+ adds r1, r3, r0
+ strh r1, [r2, 0x30]
+ ldrh r0, [r2, 0x20]
+ adds r0, r1
+ strh r0, [r2, 0x20]
+ lsls r1, 16
+ cmp r1, 0
+ bne _0811C9DE
+ ldrh r0, [r2, 0x2E]
+ adds r0, 0x1
+ strh r0, [r2, 0x2E]
+ negs r0, r3
+ strh r0, [r2, 0x32]
+ movs r0, 0x1
+ strh r0, [r2, 0x3A]
+_0811C9DE:
+ movs r0, 0
+ pop {r1}
+ bx r1
+ thumb_func_end sub_811C9B8
+
+ thumb_func_start sub_811C9E4
+sub_811C9E4: @ 811C9E4
+ push {lr}
+ adds r2, r0, 0
+ ldrh r0, [r2, 0x32]
+ ldrh r1, [r2, 0x30]
+ adds r0, r1
+ strh r0, [r2, 0x30]
+ ldrh r1, [r2, 0x20]
+ adds r1, r0
+ strh r1, [r2, 0x20]
+ adds r1, 0x1F
+ lsls r1, 16
+ movs r0, 0x97
+ lsls r0, 17
+ cmp r1, r0
+ bls _0811CA08
+ ldrh r0, [r2, 0x2E]
+ adds r0, 0x1
+ strh r0, [r2, 0x2E]
+_0811CA08:
+ movs r0, 0
+ pop {r1}
+ bx r1
+ thumb_func_end sub_811C9E4
+
+ thumb_func_start sub_811CA10
+sub_811CA10: @ 811CA10
+ ldr r3, _0811CA24 @ =gSprites
+ lsls r0, 16
+ asrs r0, 16
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r2, r3
+ strh r1, [r2, 0x3C]
+ bx lr
+ .align 2, 0
+_0811CA24: .4byte gSprites
+ thumb_func_end sub_811CA10
+
+ thumb_func_start sub_811CA28
+sub_811CA28: @ 811CA28
+ ldr r2, _0811CA40 @ =gSprites
+ lsls r0, 16
+ asrs r0, 16
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ ldrh r0, [r1, 0x2E]
+ adds r0, 0x1
+ strh r0, [r1, 0x2E]
+ bx lr
+ .align 2, 0
+_0811CA40: .4byte gSprites
+ thumb_func_end sub_811CA28
+
+ thumb_func_start sub_811CA44
+sub_811CA44: @ 811CA44
+ ldr r2, _0811CA58 @ =gSprites
+ lsls r0, 16
+ asrs r0, 16
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ movs r2, 0x3A
+ ldrsh r0, [r1, r2]
+ bx lr
+ .align 2, 0
+_0811CA58: .4byte gSprites
+ thumb_func_end sub_811CA44
+
+ thumb_func_start sub_811CA5C
+sub_811CA5C: @ 811CA5C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r5, _0811CA8C @ =gUnknown_083FD8A4
+ ldr r2, _0811CA90 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r4, r1, r2
+_0811CA6E:
+ 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 _0811CA6E
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811CA8C: .4byte gUnknown_083FD8A4
+_0811CA90: .4byte gTasks
+ thumb_func_end sub_811CA5C
+
+ thumb_func_start sub_811CA94
+sub_811CA94: @ 811CA94
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ bl sub_811D658
+ bl dp12_8087EA4
+ movs r2, 0
+ movs r0, 0x80
+ lsls r0, 1
+ strh r0, [r4, 0xC]
+ movs r0, 0x1
+ strh r0, [r4, 0xE]
+ ldr r1, _0811CB08 @ =0x0200c000
+ movs r0, 0x3F
+ strh r0, [r1, 0x2]
+ strh r2, [r1, 0x4]
+ movs r0, 0xA0
+ strh r0, [r1, 0x8]
+ ldr r3, _0811CB0C @ =gUnknown_03005560
+ adds r6, r1, 0
+ movs r5, 0xF0
+_0811CABE:
+ lsls r0, r2, 1
+ adds r0, r3
+ ldrh r1, [r6, 0x14]
+ strh r1, [r0]
+ adds r0, r2, 0
+ adds r0, 0xA0
+ lsls r0, 1
+ adds r0, r3
+ strh r5, [r0]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0x9F
+ bls _0811CABE
+ ldr r2, _0811CB10 @ =0x04000200
+ ldrh r0, [r2]
+ movs r1, 0x2
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r2, _0811CB14 @ =REG_DISPSTAT
+ ldrh r0, [r2]
+ movs r1, 0x10
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r0, _0811CB18 @ =sub_811CC28
+ bl SetVBlankCallback
+ ldr r0, _0811CB1C @ =sub_811CCB0
+ bl SetHBlankCallback
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ movs r0, 0x1
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0811CB08: .4byte 0x0200c000
+_0811CB0C: .4byte gUnknown_03005560
+_0811CB10: .4byte 0x04000200
+_0811CB14: .4byte REG_DISPSTAT
+_0811CB18: .4byte sub_811CC28
+_0811CB1C: .4byte sub_811CCB0
+ thumb_func_end sub_811CA94
+
+ thumb_func_start sub_811CB20
+sub_811CB20: @ 811CB20
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r2, r0, 0
+ ldr r1, _0811CB98 @ =0x0200c000
+ ldrb r0, [r1]
+ movs r0, 0
+ strb r0, [r1]
+ ldrh r0, [r2, 0xC]
+ lsls r0, 16
+ asrs r0, 24
+ ldrh r3, [r2, 0xA]
+ adds r0, r3
+ strh r0, [r2, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ mov r12, r1
+ cmp r0, 0xF0
+ ble _0811CB4A
+ movs r0, 0xF0
+ strh r0, [r2, 0xA]
+_0811CB4A:
+ ldrh r4, [r2, 0xC]
+ movs r0, 0xC
+ ldrsh r1, [r2, r0]
+ ldr r0, _0811CB9C @ =0x00000fff
+ ldrh r3, [r2, 0xE]
+ cmp r1, r0
+ bgt _0811CB5C
+ adds r0, r4, r3
+ strh r0, [r2, 0xC]
+_0811CB5C:
+ lsls r0, r3, 16
+ asrs r0, 16
+ cmp r0, 0x7F
+ bgt _0811CB68
+ lsls r0, r3, 1
+ strh r0, [r2, 0xE]
+_0811CB68:
+ movs r5, 0
+ ldr r7, _0811CBA0 @ =gUnknown_03004DE0
+ movs r1, 0xA0
+ lsls r1, 1
+ adds r1, r7
+ mov r8, r1
+ mov r6, r12
+_0811CB76:
+ lsls r0, r5, 1
+ adds r3, r0, r7
+ mov r1, r8
+ adds r4, r0, r1
+ movs r0, 0x1
+ ands r0, r5
+ cmp r0, 0
+ beq _0811CBA4
+ ldrh r0, [r2, 0xA]
+ ldrh r1, [r6, 0x14]
+ adds r0, r1
+ strh r0, [r3]
+ ldrh r1, [r2, 0xA]
+ movs r0, 0xF0
+ subs r0, r1
+ b _0811CBB4
+ .align 2, 0
+_0811CB98: .4byte 0x0200c000
+_0811CB9C: .4byte 0x00000fff
+_0811CBA0: .4byte gUnknown_03004DE0
+_0811CBA4:
+ ldrh r0, [r6, 0x14]
+ ldrh r1, [r2, 0xA]
+ subs r0, r1
+ strh r0, [r3]
+ ldrh r0, [r2, 0xA]
+ lsls r0, 8
+ movs r1, 0xF1
+ orrs r0, r1
+_0811CBB4:
+ strh r0, [r4]
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x9F
+ bls _0811CB76
+ movs r3, 0xA
+ ldrsh r0, [r2, r3]
+ cmp r0, 0xEF
+ ble _0811CBCE
+ ldrh r0, [r2, 0x8]
+ adds r0, 0x1
+ strh r0, [r2, 0x8]
+_0811CBCE:
+ mov r1, r12
+ ldrb r0, [r1]
+ adds r0, 0x1
+ ldrb r1, [r1]
+ mov r2, r12
+ strb r0, [r2]
+ movs r0, 0
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_811CB20
+
+ thumb_func_start sub_811CBE8
+sub_811CBE8: @ 811CBE8
+ push {lr}
+ ldr r1, _0811CC18 @ =0x040000b0
+ ldrh r2, [r1, 0xA]
+ ldr r0, _0811CC1C @ =0x0000c5ff
+ ands r0, r2
+ strh r0, [r1, 0xA]
+ ldrh r2, [r1, 0xA]
+ ldr r0, _0811CC20 @ =0x00007fff
+ ands r0, r2
+ strh r0, [r1, 0xA]
+ ldrh r0, [r1, 0xA]
+ bl sub_811D6D4
+ ldr r0, _0811CC24 @ =sub_811CA5C
+ bl FindTaskIdByFunc
+ lsls r0, 24
+ lsrs r0, 24
+ bl DestroyTask
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0811CC18: .4byte 0x040000b0
+_0811CC1C: .4byte 0x0000c5ff
+_0811CC20: .4byte 0x00007fff
+_0811CC24: .4byte sub_811CA5C
+ thumb_func_end sub_811CBE8
+
+ thumb_func_start sub_811CC28
+sub_811CC28: @ 811CC28
+ push {r4,lr}
+ ldr r4, _0811CC84 @ =0x040000b0
+ ldrh r1, [r4, 0xA]
+ ldr r0, _0811CC88 @ =0x0000c5ff
+ ands r0, r1
+ strh r0, [r4, 0xA]
+ ldrh r1, [r4, 0xA]
+ ldr r0, _0811CC8C @ =0x00007fff
+ ands r0, r1
+ strh r0, [r4, 0xA]
+ ldrh r0, [r4, 0xA]
+ bl sub_811D67C
+ ldr r2, _0811CC90 @ =REG_WININ
+ ldr r1, _0811CC94 @ =0x0200c000
+ ldrh r0, [r1, 0x2]
+ strh r0, [r2]
+ adds r2, 0x2
+ ldrh r0, [r1, 0x4]
+ strh r0, [r2]
+ subs r2, 0x6
+ ldrh r0, [r1, 0x8]
+ strh r0, [r2]
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _0811CC70
+ ldr r1, _0811CC98 @ =0x040000d4
+ ldr r0, _0811CC9C @ =gUnknown_03004DE0
+ str r0, [r1]
+ movs r2, 0xF0
+ lsls r2, 3
+ adds r0, r2
+ str r0, [r1, 0x4]
+ ldr r0, _0811CCA0 @ =0x80000140
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+_0811CC70:
+ ldr r0, _0811CCA4 @ =gUnknown_030056A0
+ str r0, [r4]
+ ldr r0, _0811CCA8 @ =REG_WIN0H
+ str r0, [r4, 0x4]
+ ldr r0, _0811CCAC @ =0xa2400001
+ str r0, [r4, 0x8]
+ ldr r0, [r4, 0x8]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811CC84: .4byte 0x040000b0
+_0811CC88: .4byte 0x0000c5ff
+_0811CC8C: .4byte 0x00007fff
+_0811CC90: .4byte REG_WININ
+_0811CC94: .4byte 0x0200c000
+_0811CC98: .4byte 0x040000d4
+_0811CC9C: .4byte gUnknown_03004DE0
+_0811CCA0: .4byte 0x80000140
+_0811CCA4: .4byte gUnknown_030056A0
+_0811CCA8: .4byte REG_WIN0H
+_0811CCAC: .4byte 0xa2400001
+ thumb_func_end sub_811CC28
+
+ thumb_func_start sub_811CCB0
+sub_811CCB0: @ 811CCB0
+ ldr r1, _0811CCD0 @ =gUnknown_03004DE0
+ ldr r0, _0811CCD4 @ =REG_VCOUNT
+ ldrh r0, [r0]
+ lsls r0, 1
+ movs r2, 0xF0
+ lsls r2, 3
+ adds r1, r2
+ adds r0, r1
+ ldrh r1, [r0]
+ ldr r0, _0811CCD8 @ =REG_BG1HOFS
+ strh r1, [r0]
+ adds r0, 0x4
+ strh r1, [r0]
+ adds r0, 0x4
+ strh r1, [r0]
+ bx lr
+ .align 2, 0
+_0811CCD0: .4byte gUnknown_03004DE0
+_0811CCD4: .4byte REG_VCOUNT
+_0811CCD8: .4byte REG_BG1HOFS
+ thumb_func_end sub_811CCB0
+
+ thumb_func_start sub_811CCDC
+sub_811CCDC: @ 811CCDC
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r5, _0811CD0C @ =gUnknown_083FD8B0
+ ldr r2, _0811CD10 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r4, r1, r2
+_0811CCEE:
+ 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 _0811CCEE
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811CD0C: .4byte gUnknown_083FD8B0
+_0811CD10: .4byte gTasks
+ thumb_func_end sub_811CCDC
+
+ thumb_func_start sub_811CD14
+sub_811CD14: @ 811CD14
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ bl sub_811D658
+ bl dp12_8087EA4
+ ldr r1, _0811CD88 @ =0x0200c000
+ movs r2, 0
+ movs r0, 0xBF
+ strh r0, [r1, 0xE]
+ strh r2, [r1, 0x12]
+ movs r0, 0x1E
+ strh r0, [r1, 0x2]
+ movs r0, 0x3F
+ strh r0, [r1, 0x4]
+ movs r0, 0xA0
+ strh r0, [r1, 0x8]
+ movs r1, 0
+ ldr r2, _0811CD8C @ =gUnknown_03005560
+ movs r4, 0
+ movs r3, 0xF0
+_0811CD3E:
+ lsls r0, r1, 1
+ adds r0, r2
+ strh r4, [r0]
+ adds r0, r1, 0
+ adds r0, 0xA0
+ lsls r0, 1
+ adds r0, r2
+ strh r3, [r0]
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0x9F
+ bls _0811CD3E
+ ldr r2, _0811CD90 @ =0x04000200
+ ldrh r0, [r2]
+ movs r1, 0x2
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r2, _0811CD94 @ =REG_DISPSTAT
+ ldrh r0, [r2]
+ movs r1, 0x10
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r0, _0811CD98 @ =sub_811CFAC
+ bl SetHBlankCallback
+ ldr r0, _0811CD9C @ =sub_811CEE4
+ bl SetVBlankCallback
+ ldrh r0, [r5, 0x8]
+ adds r0, 0x1
+ strh r0, [r5, 0x8]
+ movs r0, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0811CD88: .4byte 0x0200c000
+_0811CD8C: .4byte gUnknown_03005560
+_0811CD90: .4byte 0x04000200
+_0811CD94: .4byte REG_DISPSTAT
+_0811CD98: .4byte sub_811CFAC
+_0811CD9C: .4byte sub_811CEE4
+ thumb_func_end sub_811CD14
+
+ thumb_func_start sub_811CDA0
+sub_811CDA0: @ 811CDA0
+ push {r4-r6,lr}
+ sub sp, 0x10
+ adds r6, r0, 0
+ ldr r1, _0811CE08 @ =gUnknown_083FD8C4
+ mov r0, sp
+ movs r2, 0x10
+ bl memcpy
+ movs r5, 0
+ movs r4, 0
+_0811CDB4:
+ ldr r0, _0811CE0C @ =sub_811CFD0
+ bl CreateInvisibleSprite
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ ldr r0, _0811CE10 @ =gSprites
+ adds r2, r1, r0
+ movs r0, 0xF0
+ strh r0, [r2, 0x20]
+ strh r4, [r2, 0x22]
+ lsls r1, r5, 16
+ asrs r1, 16
+ lsls r0, r1, 1
+ add r0, sp
+ ldrh r0, [r0]
+ strh r0, [r2, 0x38]
+ adds r1, 0x1
+ lsls r1, 16
+ lsls r0, r4, 16
+ movs r3, 0xA0
+ lsls r3, 13
+ adds r0, r3
+ lsrs r4, r0, 16
+ lsrs r5, r1, 16
+ asrs r1, 16
+ cmp r1, 0x7
+ ble _0811CDB4
+ ldrh r0, [r2, 0x3A]
+ adds r0, 0x1
+ strh r0, [r2, 0x3A]
+ ldrh r0, [r6, 0x8]
+ adds r0, 0x1
+ strh r0, [r6, 0x8]
+ movs r0, 0
+ add sp, 0x10
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0811CE08: .4byte gUnknown_083FD8C4
+_0811CE0C: .4byte sub_811CFD0
+_0811CE10: .4byte gSprites
+ thumb_func_end sub_811CDA0
+
+ thumb_func_start sub_811CE14
+sub_811CE14: @ 811CE14
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _0811CE44 @ =0x0200c000
+ ldrb r1, [r0]
+ movs r1, 0
+ strb r1, [r0]
+ movs r1, 0x20
+ ldrsh r0, [r0, r1]
+ cmp r0, 0x7
+ ble _0811CE3A
+ movs r0, 0x1
+ negs r0, r0
+ ldr r2, _0811CE48 @ =0x00007fff
+ movs r1, 0x10
+ bl BlendPalettes
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+_0811CE3A:
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0811CE44: .4byte 0x0200c000
+_0811CE48: .4byte 0x00007fff
+ thumb_func_end sub_811CE14
+
+ thumb_func_start sub_811CE4C
+sub_811CE4C: @ 811CE4C
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ ldr r4, _0811CE9C @ =0x0200c000
+ ldrb r0, [r4]
+ movs r5, 0
+ strb r5, [r4]
+ ldr r1, _0811CEA0 @ =0x040000b0
+ ldrh r2, [r1, 0xA]
+ ldr r0, _0811CEA4 @ =0x0000c5ff
+ ands r0, r2
+ strh r0, [r1, 0xA]
+ ldrh r2, [r1, 0xA]
+ ldr r0, _0811CEA8 @ =0x00007fff
+ ands r0, r2
+ strh r0, [r1, 0xA]
+ ldrh r0, [r1, 0xA]
+ movs r0, 0
+ bl SetVBlankCallback
+ movs r0, 0
+ bl SetHBlankCallback
+ movs r0, 0xF0
+ strh r0, [r4, 0x6]
+ strh r5, [r4, 0x12]
+ movs r0, 0xFF
+ strh r0, [r4, 0xE]
+ movs r0, 0x3F
+ strh r0, [r4, 0x2]
+ ldr r0, _0811CEAC @ =sub_811CF74
+ bl SetVBlankCallback
+ ldrh r0, [r6, 0x8]
+ adds r0, 0x1
+ strh r0, [r6, 0x8]
+ movs r0, 0
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0811CE9C: .4byte 0x0200c000
+_0811CEA0: .4byte 0x040000b0
+_0811CEA4: .4byte 0x0000c5ff
+_0811CEA8: .4byte 0x00007fff
+_0811CEAC: .4byte sub_811CF74
+ thumb_func_end sub_811CE4C
+
+ thumb_func_start sub_811CEB0
+sub_811CEB0: @ 811CEB0
+ push {lr}
+ ldr r1, _0811CEDC @ =0x0200c000
+ ldrh r0, [r1, 0x12]
+ adds r0, 0x1
+ strh r0, [r1, 0x12]
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x10
+ bls _0811CED4
+ bl sub_811D6D4
+ ldr r0, _0811CEE0 @ =sub_811CCDC
+ bl FindTaskIdByFunc
+ lsls r0, 24
+ lsrs r0, 24
+ bl DestroyTask
+_0811CED4:
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0811CEDC: .4byte 0x0200c000
+_0811CEE0: .4byte sub_811CCDC
+ thumb_func_end sub_811CEB0
+
+ thumb_func_start sub_811CEE4
+sub_811CEE4: @ 811CEE4
+ push {r4,lr}
+ ldr r4, _0811CF48 @ =0x040000b0
+ ldrh r1, [r4, 0xA]
+ ldr r0, _0811CF4C @ =0x0000c5ff
+ ands r0, r1
+ strh r0, [r4, 0xA]
+ ldrh r1, [r4, 0xA]
+ ldr r0, _0811CF50 @ =0x00007fff
+ ands r0, r1
+ strh r0, [r4, 0xA]
+ ldrh r0, [r4, 0xA]
+ bl sub_811D67C
+ ldr r2, _0811CF54 @ =REG_BLDCNT
+ ldr r1, _0811CF58 @ =0x0200c000
+ ldrh r0, [r1, 0xE]
+ strh r0, [r2]
+ subs r2, 0x8
+ ldrh r0, [r1, 0x2]
+ strh r0, [r2]
+ adds r2, 0x2
+ ldrh r0, [r1, 0x4]
+ strh r0, [r2]
+ subs r2, 0x6
+ ldrh r0, [r1, 0x6]
+ strh r0, [r2]
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _0811CF32
+ ldr r1, _0811CF5C @ =0x040000d4
+ ldr r0, _0811CF60 @ =gUnknown_03004DE0
+ str r0, [r1]
+ movs r2, 0xF0
+ lsls r2, 3
+ adds r0, r2
+ str r0, [r1, 0x4]
+ ldr r0, _0811CF64 @ =0x80000140
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+_0811CF32:
+ ldr r0, _0811CF68 @ =gUnknown_030056A0
+ str r0, [r4]
+ ldr r0, _0811CF6C @ =REG_WIN0H
+ str r0, [r4, 0x4]
+ ldr r0, _0811CF70 @ =0xa2400001
+ str r0, [r4, 0x8]
+ ldr r0, [r4, 0x8]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811CF48: .4byte 0x040000b0
+_0811CF4C: .4byte 0x0000c5ff
+_0811CF50: .4byte 0x00007fff
+_0811CF54: .4byte REG_BLDCNT
+_0811CF58: .4byte 0x0200c000
+_0811CF5C: .4byte 0x040000d4
+_0811CF60: .4byte gUnknown_03004DE0
+_0811CF64: .4byte 0x80000140
+_0811CF68: .4byte gUnknown_030056A0
+_0811CF6C: .4byte REG_WIN0H
+_0811CF70: .4byte 0xa2400001
+ thumb_func_end sub_811CEE4
+
+ thumb_func_start sub_811CF74
+sub_811CF74: @ 811CF74
+ push {lr}
+ bl sub_811D67C
+ ldr r1, _0811CFA4 @ =REG_BLDY
+ ldr r2, _0811CFA8 @ =0x0200c000
+ ldrh r0, [r2, 0x12]
+ strh r0, [r1]
+ subs r1, 0x4
+ ldrh r0, [r2, 0xE]
+ strh r0, [r1]
+ subs r1, 0x8
+ ldrh r0, [r2, 0x2]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldrh r0, [r2, 0x4]
+ strh r0, [r1]
+ subs r1, 0xA
+ ldrh r0, [r2, 0x6]
+ strh r0, [r1]
+ adds r1, 0x4
+ ldrh r0, [r2, 0x8]
+ strh r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811CFA4: .4byte REG_BLDY
+_0811CFA8: .4byte 0x0200c000
+ thumb_func_end sub_811CF74
+
+ thumb_func_start sub_811CFAC
+sub_811CFAC: @ 811CFAC
+ ldr r2, _0811CFC4 @ =REG_BLDY
+ ldr r1, _0811CFC8 @ =gUnknown_03004DE0
+ ldr r0, _0811CFCC @ =REG_VCOUNT
+ ldrh r0, [r0]
+ lsls r0, 1
+ movs r3, 0xF0
+ lsls r3, 3
+ adds r1, r3
+ adds r0, r1
+ ldrh r0, [r0]
+ strh r0, [r2]
+ bx lr
+ .align 2, 0
+_0811CFC4: .4byte REG_BLDY
+_0811CFC8: .4byte gUnknown_03004DE0
+_0811CFCC: .4byte REG_VCOUNT
+ thumb_func_end sub_811CFAC
+
+ thumb_func_start sub_811CFD0
+sub_811CFD0: @ 811CFD0
+ push {r4-r6,lr}
+ adds r3, r0, 0
+ ldrh r1, [r3, 0x38]
+ movs r2, 0x38
+ ldrsh r0, [r3, r2]
+ cmp r0, 0
+ beq _0811CFF8
+ subs r0, r1, 0x1
+ strh r0, [r3, 0x38]
+ movs r1, 0x3A
+ ldrsh r0, [r3, r1]
+ cmp r0, 0
+ beq _0811D0AA
+ ldr r0, _0811CFF4 @ =0x0200c000
+ ldrb r1, [r0]
+ movs r1, 0x1
+ strb r1, [r0]
+ b _0811D0AA
+ .align 2, 0
+_0811CFF4: .4byte 0x0200c000
+_0811CFF8:
+ movs r2, 0x22
+ ldrsh r1, [r3, r2]
+ lsls r1, 1
+ ldr r0, _0811D0B0 @ =gUnknown_03004DE0
+ adds r6, r1, r0
+ movs r2, 0xA0
+ lsls r2, 1
+ adds r0, r2
+ adds r5, r1, r0
+ movs r4, 0
+_0811D00C:
+ lsls r1, r4, 1
+ adds r2, r1, r6
+ ldrh r0, [r3, 0x2E]
+ lsls r0, 16
+ asrs r0, 24
+ strh r0, [r2]
+ adds r1, r5
+ ldrh r0, [r3, 0x20]
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r1]
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x13
+ bls _0811D00C
+ movs r1, 0x20
+ ldrsh r0, [r3, r1]
+ ldrh r2, [r3, 0x20]
+ cmp r0, 0
+ bne _0811D046
+ movs r0, 0x2E
+ ldrsh r1, [r3, r0]
+ movs r0, 0x80
+ lsls r0, 5
+ cmp r1, r0
+ bne _0811D046
+ movs r0, 0x1
+ strh r0, [r3, 0x30]
+_0811D046:
+ adds r1, r2, 0
+ subs r1, 0x10
+ strh r1, [r3, 0x20]
+ ldrh r0, [r3, 0x2E]
+ adds r0, 0x80
+ strh r0, [r3, 0x2E]
+ lsls r1, 16
+ cmp r1, 0
+ bge _0811D05C
+ movs r0, 0
+ strh r0, [r3, 0x20]
+_0811D05C:
+ movs r1, 0x2E
+ ldrsh r0, [r3, r1]
+ movs r1, 0x80
+ lsls r1, 5
+ cmp r0, r1
+ ble _0811D06A
+ strh r1, [r3, 0x2E]
+_0811D06A:
+ movs r0, 0x3A
+ ldrsh r2, [r3, r0]
+ cmp r2, 0
+ beq _0811D07A
+ ldr r0, _0811D0B4 @ =0x0200c000
+ ldrb r1, [r0]
+ movs r1, 0x1
+ strb r1, [r0]
+_0811D07A:
+ movs r1, 0x30
+ ldrsh r0, [r3, r1]
+ cmp r0, 0
+ beq _0811D0AA
+ ldr r4, _0811D0B4 @ =0x0200c000
+ cmp r2, 0
+ beq _0811D09E
+ movs r2, 0x20
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x6
+ ble _0811D0AA
+ ldrh r0, [r3, 0x32]
+ adds r1, r0, 0x1
+ strh r1, [r3, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x7
+ ble _0811D0AA
+_0811D09E:
+ ldrh r0, [r4, 0x20]
+ adds r0, 0x1
+ strh r0, [r4, 0x20]
+ adds r0, r3, 0
+ bl DestroySprite
+_0811D0AA:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811D0B0: .4byte gUnknown_03004DE0
+_0811D0B4: .4byte 0x0200c000
+ thumb_func_end sub_811CFD0
+
+ thumb_func_start sub_811D0B8
+sub_811D0B8: @ 811D0B8
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r5, _0811D0E8 @ =gUnknown_083FD8D4
+ ldr r2, _0811D0EC @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r4, r1, r2
+_0811D0CA:
+ 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 _0811D0CA
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811D0E8: .4byte gUnknown_083FD8D4
+_0811D0EC: .4byte gTasks
+ thumb_func_end sub_811D0B8
+
+ thumb_func_start sub_811D0F0
+sub_811D0F0: @ 811D0F0
+ push {r4,lr}
+ sub sp, 0xC
+ adds r4, r0, 0
+ add r0, sp, 0x4
+ add r1, sp, 0x8
+ bl sub_811D6A8
+ ldr r0, _0811D138 @ =gUnknown_083FD528
+ ldr r1, [sp, 0x8]
+ movs r2, 0x10
+ bl CpuSet
+ mov r1, sp
+ movs r2, 0xF0
+ lsls r2, 8
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r1, [sp, 0x4]
+ ldr r2, _0811D13C @ =0x01000400
+ mov r0, sp
+ bl CpuSet
+ ldr r0, _0811D140 @ =gFieldEffectObjectPalette10
+ movs r1, 0xF0
+ movs r2, 0x20
+ bl LoadPalette
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ movs r0, 0
+ add sp, 0xC
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0811D138: .4byte gUnknown_083FD528
+_0811D13C: .4byte 0x01000400
+_0811D140: .4byte gFieldEffectObjectPalette10
+ thumb_func_end sub_811D0F0
+
+ thumb_func_start sub_811D144
+sub_811D144: @ 811D144
+ push {r4,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ movs r1, 0xA
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _0811D186
+ mov r0, sp
+ bl sub_811D690
+ movs r0, 0x3
+ strh r0, [r4, 0xA]
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x1
+ strh r0, [r4, 0xC]
+ movs r1, 0xC
+ ldrsh r0, [r4, r1]
+ lsls r0, 5
+ ldr r1, _0811D198 @ =gUnknown_083FD528
+ adds r0, r1
+ ldr r1, [sp]
+ movs r2, 0x10
+ bl CpuSet
+ movs r1, 0xC
+ ldrsh r0, [r4, r1]
+ cmp r0, 0xD
+ ble _0811D186
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ movs r0, 0x10
+ strh r0, [r4, 0xA]
+_0811D186:
+ ldrh r0, [r4, 0xA]
+ subs r0, 0x1
+ strh r0, [r4, 0xA]
+ movs r0, 0
+ add sp, 0x4
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0811D198: .4byte gUnknown_083FD528
+ thumb_func_end sub_811D144
+
+ thumb_func_start sub_811D19C
+sub_811D19C: @ 811D19C
+ push {lr}
+ ldrh r1, [r0, 0xA]
+ subs r1, 0x1
+ strh r1, [r0, 0xA]
+ lsls r1, 16
+ cmp r1, 0
+ bne _0811D1BC
+ bl sub_811D6D4
+ ldr r0, _0811D1C4 @ =sub_811D0B8
+ bl FindTaskIdByFunc
+ lsls r0, 24
+ lsrs r0, 24
+ bl DestroyTask
+_0811D1BC:
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0811D1C4: .4byte sub_811D0B8
+ thumb_func_end sub_811D19C
+
+ thumb_func_start sub_811D1C8
+sub_811D1C8: @ 811D1C8
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r5, _0811D1F8 @ =gUnknown_083FD8E0
+ ldr r2, _0811D1FC @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r4, r1, r2
+_0811D1DA:
+ 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 _0811D1DA
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811D1F8: .4byte gUnknown_083FD8E0
+_0811D1FC: .4byte gTasks
+ thumb_func_end sub_811D1C8
+
+ thumb_func_start sub_811D200
+sub_811D200: @ 811D200
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ bl sub_811D658
+ bl dp12_8087EA4
+ ldr r1, _0811D254 @ =0x0200c000
+ movs r2, 0
+ movs r0, 0x3F
+ strh r0, [r1, 0x2]
+ strh r2, [r1, 0x4]
+ movs r0, 0xA0
+ strh r0, [r1, 0x8]
+ movs r1, 0
+ ldr r2, _0811D258 @ =gUnknown_03004DE0
+ movs r3, 0xF0
+ adds r4, r2, 0
+_0811D222:
+ lsls r0, r1, 1
+ adds r0, r2
+ strh r3, [r0]
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0x9F
+ bls _0811D222
+ movs r0, 0xF0
+ lsls r0, 3
+ adds r1, r4, r0
+ adds r0, r4, 0
+ movs r2, 0xA0
+ bl CpuSet
+ ldr r0, _0811D25C @ =sub_811D438
+ bl SetVBlankCallback
+ ldrh r0, [r5, 0x8]
+ adds r0, 0x1
+ strh r0, [r5, 0x8]
+ movs r0, 0x1
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0811D254: .4byte 0x0200c000
+_0811D258: .4byte gUnknown_03004DE0
+_0811D25C: .4byte sub_811D438
+ thumb_func_end sub_811D200
+
+ thumb_func_start sub_811D260
+sub_811D260: @ 811D260
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ sub sp, 0xC
+ mov r8, r0
+ ldr r0, _0811D2D0 @ =0x0200c024
+ ldr r6, _0811D2D4 @ =gUnknown_083FD8F4
+ mov r2, r8
+ movs r3, 0xA
+ ldrsh r1, [r2, r3]
+ lsls r4, r1, 2
+ adds r4, r1
+ lsls r4, 1
+ adds r1, r4, r6
+ movs r5, 0
+ ldrsh r1, [r1, r5]
+ adds r2, r6, 0x2
+ adds r2, r4, r2
+ movs r3, 0
+ ldrsh r2, [r2, r3]
+ adds r3, r6, 0x4
+ adds r3, r4, r3
+ movs r5, 0
+ ldrsh r3, [r3, r5]
+ adds r5, r6, 0x6
+ adds r4, r5
+ movs r5, 0
+ ldrsh r4, [r4, r5]
+ str r4, [sp]
+ movs r4, 0x1
+ str r4, [sp, 0x4]
+ str r4, [sp, 0x8]
+ bl sub_811D8FC
+ mov r0, r8
+ movs r2, 0xA
+ ldrsh r1, [r0, r2]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 1
+ adds r6, 0x8
+ adds r0, r6
+ ldrh r0, [r0]
+ mov r3, r8
+ strh r0, [r3, 0xC]
+ ldrh r0, [r3, 0x8]
+ adds r0, 0x1
+ strh r0, [r3, 0x8]
+ movs r0, 0x1
+ add sp, 0xC
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0811D2D0: .4byte 0x0200c024
+_0811D2D4: .4byte gUnknown_083FD8F4
+ thumb_func_end sub_811D260
+
+ thumb_func_start sub_811D2D8
+sub_811D2D8: @ 811D2D8
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ adds r7, r0, 0
+ ldr r0, _0811D324 @ =0x0200c000
+ ldrb r1, [r0]
+ movs r1, 0
+ strb r1, [r0]
+ mov r8, r1
+ mov r12, r1
+ adds r6, r0, 0
+ ldr r0, _0811D328 @ =gUnknown_03004DE0
+ mov r9, r0
+_0811D2F4:
+ ldr r1, _0811D328 @ =gUnknown_03004DE0
+ movs r2, 0x2A
+ ldrsh r0, [r6, r2]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ lsrs r3, r0, 8
+ movs r4, 0xFF
+ ands r4, r0
+ movs r1, 0xC
+ ldrsh r0, [r7, r1]
+ cmp r0, 0
+ bne _0811D32C
+ movs r2, 0x28
+ ldrsh r0, [r6, r2]
+ cmp r3, r0
+ bge _0811D318
+ ldrh r3, [r6, 0x28]
+_0811D318:
+ lsls r0, r3, 16
+ lsls r1, r4, 16
+ cmp r0, r1
+ ble _0811D344
+ lsrs r3, r1, 16
+ b _0811D344
+ .align 2, 0
+_0811D324: .4byte 0x0200c000
+_0811D328: .4byte gUnknown_03004DE0
+_0811D32C:
+ lsls r0, r4, 16
+ asrs r0, 16
+ movs r2, 0x28
+ ldrsh r1, [r6, r2]
+ cmp r0, r1
+ ble _0811D33A
+ ldrh r4, [r6, 0x28]
+_0811D33A:
+ lsls r0, r4, 16
+ lsls r1, r3, 16
+ cmp r0, r1
+ bgt _0811D344
+ lsrs r4, r1, 16
+_0811D344:
+ ldr r5, _0811D368 @ =0x0200c000
+ movs r0, 0x2A
+ ldrsh r2, [r5, r0]
+ lsls r2, 1
+ add r2, r9
+ lsls r1, r3, 16
+ asrs r1, 8
+ lsls r0, r4, 16
+ asrs r0, 16
+ orrs r0, r1
+ strh r0, [r2]
+ mov r1, r12
+ cmp r1, 0
+ beq _0811D36C
+ ldrh r0, [r7, 0x8]
+ adds r0, 0x1
+ strh r0, [r7, 0x8]
+ b _0811D392
+ .align 2, 0
+_0811D368: .4byte 0x0200c000
+_0811D36C:
+ adds r0, r5, 0
+ adds r0, 0x24
+ movs r1, 0x1
+ movs r2, 0x1
+ bl sub_811D978
+ lsls r0, 24
+ lsrs r0, 24
+ mov r12, r0
+ mov r2, r8
+ lsls r0, r2, 16
+ movs r1, 0x80
+ lsls r1, 9
+ adds r0, r1
+ lsrs r2, r0, 16
+ mov r8, r2
+ asrs r0, 16
+ cmp r0, 0xF
+ ble _0811D2F4
+_0811D392:
+ ldr r0, _0811D3AC @ =0x0200c000
+ ldrb r1, [r0]
+ adds r1, 0x1
+ ldrb r2, [r0]
+ strb r1, [r0]
+ movs r0, 0
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0811D3AC: .4byte 0x0200c000
+ thumb_func_end sub_811D2D8
+
+ thumb_func_start sub_811D3B0
+sub_811D3B0: @ 811D3B0
+ push {lr}
+ adds r2, r0, 0
+ ldrh r0, [r2, 0xA]
+ adds r0, 0x1
+ strh r0, [r2, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x6
+ ble _0811D3FC
+ ldr r1, _0811D3EC @ =0x040000b0
+ ldrh r2, [r1, 0xA]
+ ldr r0, _0811D3F0 @ =0x0000c5ff
+ ands r0, r2
+ strh r0, [r1, 0xA]
+ ldrh r2, [r1, 0xA]
+ ldr r0, _0811D3F4 @ =0x00007fff
+ ands r0, r2
+ strh r0, [r1, 0xA]
+ ldrh r0, [r1, 0xA]
+ bl sub_811D6D4
+ ldr r0, _0811D3F8 @ =sub_811D1C8
+ bl FindTaskIdByFunc
+ lsls r0, 24
+ lsrs r0, 24
+ bl DestroyTask
+ movs r0, 0
+ b _0811D414
+ .align 2, 0
+_0811D3EC: .4byte 0x040000b0
+_0811D3F0: .4byte 0x0000c5ff
+_0811D3F4: .4byte 0x00007fff
+_0811D3F8: .4byte sub_811D1C8
+_0811D3FC:
+ ldrh r0, [r2, 0x8]
+ adds r0, 0x1
+ strh r0, [r2, 0x8]
+ ldr r1, _0811D418 @ =gUnknown_083FD93A
+ movs r3, 0xA
+ ldrsh r0, [r2, r3]
+ subs r0, 0x1
+ lsls r0, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ strh r0, [r2, 0xE]
+ movs r0, 0x1
+_0811D414:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0811D418: .4byte gUnknown_083FD93A
+ thumb_func_end sub_811D3B0
+
+ thumb_func_start sub_811D41C
+sub_811D41C: @ 811D41C
+ push {lr}
+ adds r1, r0, 0
+ ldrh r0, [r1, 0xE]
+ subs r0, 0x1
+ strh r0, [r1, 0xE]
+ lsls r0, 16
+ cmp r0, 0
+ beq _0811D430
+ movs r0, 0
+ b _0811D434
+_0811D430:
+ movs r0, 0x1
+ strh r0, [r1, 0x8]
+_0811D434:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_811D41C
+
+ thumb_func_start sub_811D438
+sub_811D438: @ 811D438
+ push {r4,lr}
+ ldr r4, _0811D4A0 @ =0x040000b0
+ ldrh r1, [r4, 0xA]
+ ldr r0, _0811D4A4 @ =0x0000c5ff
+ ands r0, r1
+ strh r0, [r4, 0xA]
+ ldrh r1, [r4, 0xA]
+ ldr r0, _0811D4A8 @ =0x00007fff
+ ands r0, r1
+ strh r0, [r4, 0xA]
+ ldrh r0, [r4, 0xA]
+ bl sub_811D67C
+ ldr r2, _0811D4AC @ =0x0200c000
+ ldrb r0, [r2]
+ cmp r0, 0
+ beq _0811D46E
+ ldr r1, _0811D4B0 @ =0x040000d4
+ ldr r0, _0811D4B4 @ =gUnknown_03004DE0
+ str r0, [r1]
+ movs r3, 0xF0
+ lsls r3, 3
+ adds r0, r3
+ str r0, [r1, 0x4]
+ ldr r0, _0811D4B8 @ =0x800000a0
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+_0811D46E:
+ ldr r1, _0811D4BC @ =REG_WININ
+ ldrh r0, [r2, 0x2]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldrh r0, [r2, 0x4]
+ strh r0, [r1]
+ subs r1, 0x6
+ ldrh r0, [r2, 0x8]
+ strh r0, [r1]
+ ldr r2, _0811D4C0 @ =REG_WIN0H
+ ldr r0, _0811D4B4 @ =gUnknown_03004DE0
+ movs r1, 0xF0
+ lsls r1, 3
+ adds r0, r1
+ ldrh r1, [r0]
+ strh r1, [r2]
+ str r0, [r4]
+ str r2, [r4, 0x4]
+ ldr r0, _0811D4C4 @ =0xa2400001
+ str r0, [r4, 0x8]
+ ldr r0, [r4, 0x8]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811D4A0: .4byte 0x040000b0
+_0811D4A4: .4byte 0x0000c5ff
+_0811D4A8: .4byte 0x00007fff
+_0811D4AC: .4byte 0x0200c000
+_0811D4B0: .4byte 0x040000d4
+_0811D4B4: .4byte gUnknown_03004DE0
+_0811D4B8: .4byte 0x800000a0
+_0811D4BC: .4byte REG_WININ
+_0811D4C0: .4byte REG_WIN0H
+_0811D4C4: .4byte 0xa2400001
+ thumb_func_end sub_811D438
+
+ thumb_func_start sub_811D4C8
+sub_811D4C8: @ 811D4C8
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ sub sp, 0x4
+ mov r8, r0
+ adds r4, r1, 0
+ adds r5, r2, 0
+ adds r6, r3, 0
+ ldr r3, [sp, 0x18]
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ lsls r4, 16
+ lsrs r4, 16
+ lsls r5, 16
+ lsrs r5, 16
+ lsls r6, 16
+ lsrs r6, 16
+ lsls r3, 16
+ lsrs r3, 16
+ ldr r0, _0811D524 @ =sub_811D54C
+ movs r1, 0x3
+ str r3, [sp]
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0811D528 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ mov r0, r8
+ strh r0, [r1, 0xA]
+ strh r4, [r1, 0xC]
+ strh r5, [r1, 0xE]
+ strh r6, [r1, 0x10]
+ ldr r3, [sp]
+ strh r3, [r1, 0x12]
+ strh r0, [r1, 0x14]
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811D524: .4byte sub_811D54C
+_0811D528: .4byte gTasks
+ thumb_func_end sub_811D4C8
+
+ thumb_func_start sub_811D52C
+sub_811D52C: @ 811D52C
+ push {lr}
+ ldr r0, _0811D540 @ =sub_811D54C
+ bl FindTaskIdByFunc
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xFF
+ beq _0811D544
+ movs r0, 0
+ b _0811D546
+ .align 2, 0
+_0811D540: .4byte sub_811D54C
+_0811D544:
+ movs r0, 0x1
+_0811D546:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_811D52C
+
+ thumb_func_start sub_811D54C
+sub_811D54C: @ 811D54C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r5, _0811D57C @ =gUnknown_083FD948
+ ldr r2, _0811D580 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r4, r1, r2
+_0811D55E:
+ 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 _0811D55E
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811D57C: .4byte gUnknown_083FD948
+_0811D580: .4byte gTasks
+ thumb_func_end sub_811D54C
+
+ thumb_func_start sub_811D584
+sub_811D584: @ 811D584
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r1, [r4, 0x14]
+ movs r2, 0x14
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ beq _0811D59C
+ subs r0, r1, 0x1
+ strh r0, [r4, 0x14]
+ lsls r0, 16
+ cmp r0, 0
+ bne _0811D5C0
+_0811D59C:
+ ldrh r0, [r4, 0xA]
+ strh r0, [r4, 0x14]
+ ldrh r0, [r4, 0x10]
+ ldrh r1, [r4, 0x16]
+ adds r0, r1
+ strh r0, [r4, 0x16]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x10
+ ble _0811D5B4
+ movs r0, 0x10
+ strh r0, [r4, 0x16]
+_0811D5B4:
+ movs r0, 0x1
+ negs r0, r0
+ ldrb r1, [r4, 0x16]
+ ldr r2, _0811D5DC @ =0x00002d6b
+ bl BlendPalettes
+_0811D5C0:
+ movs r2, 0x16
+ ldrsh r0, [r4, r2]
+ cmp r0, 0xF
+ ble _0811D5D2
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ ldrh r0, [r4, 0xC]
+ strh r0, [r4, 0x14]
+_0811D5D2:
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0811D5DC: .4byte 0x00002d6b
+ thumb_func_end sub_811D584
+
+ thumb_func_start sub_811D5E0
+sub_811D5E0: @ 811D5E0
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r1, [r4, 0x14]
+ movs r2, 0x14
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ beq _0811D5F8
+ subs r0, r1, 0x1
+ strh r0, [r4, 0x14]
+ lsls r0, 16
+ cmp r0, 0
+ bne _0811D61A
+_0811D5F8:
+ ldrh r0, [r4, 0xC]
+ strh r0, [r4, 0x14]
+ ldrh r0, [r4, 0x16]
+ ldrh r1, [r4, 0x12]
+ subs r0, r1
+ strh r0, [r4, 0x16]
+ lsls r0, 16
+ cmp r0, 0
+ bge _0811D60E
+ movs r0, 0
+ strh r0, [r4, 0x16]
+_0811D60E:
+ movs r0, 0x1
+ negs r0, r0
+ ldrb r1, [r4, 0x16]
+ ldr r2, _0811D640 @ =0x00002d6b
+ bl BlendPalettes
+_0811D61A:
+ movs r0, 0x16
+ ldrsh r1, [r4, r0]
+ cmp r1, 0
+ bne _0811D64E
+ ldrh r0, [r4, 0xE]
+ subs r0, 0x1
+ strh r0, [r4, 0xE]
+ lsls r0, 16
+ cmp r0, 0
+ bne _0811D648
+ ldr r0, _0811D644 @ =sub_811D54C
+ bl FindTaskIdByFunc
+ lsls r0, 24
+ lsrs r0, 24
+ bl DestroyTask
+ b _0811D64E
+ .align 2, 0
+_0811D640: .4byte 0x00002d6b
+_0811D644: .4byte sub_811D54C
+_0811D648:
+ ldrh r0, [r4, 0xA]
+ strh r0, [r4, 0x14]
+ strh r1, [r4, 0x8]
+_0811D64E:
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_811D5E0
+
+ thumb_func_start sub_811D658
+sub_811D658: @ 811D658
+ push {lr}
+ ldr r0, _0811D674 @ =gUnknown_083FD708
+ ldr r0, [r0]
+ movs r1, 0
+ movs r2, 0x3C
+ bl memset
+ ldr r0, _0811D678 @ =0x0200c014
+ adds r1, r0, 0x2
+ bl sub_8057B14
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811D674: .4byte gUnknown_083FD708
+_0811D678: .4byte 0x0200c014
+ thumb_func_end sub_811D658
+
+ thumb_func_start sub_811D67C
+sub_811D67C: @ 811D67C
+ push {lr}
+ bl LoadOam
+ bl ProcessSpriteCopyRequests
+ bl TransferPlttBuffer
+ pop {r0}
+ bx r0
+ thumb_func_end sub_811D67C
+
+ thumb_func_start sub_811D690
+sub_811D690: @ 811D690
+ ldr r1, _0811D6A4 @ =REG_BG0CNT
+ ldrh r1, [r1]
+ lsrs r1, 2
+ lsls r1, 30
+ lsrs r1, 16
+ movs r2, 0xC0
+ lsls r2, 19
+ adds r1, r2
+ str r1, [r0]
+ bx lr
+ .align 2, 0
+_0811D6A4: .4byte REG_BG0CNT
+ thumb_func_end sub_811D690
+
+ thumb_func_start sub_811D6A8
+sub_811D6A8: @ 811D6A8
+ push {r4,lr}
+ ldr r3, _0811D6D0 @ =REG_BG0CNT
+ ldrh r2, [r3]
+ lsrs r2, 8
+ ldrh r3, [r3]
+ lsrs r3, 2
+ lsls r2, 27
+ lsrs r2, 16
+ lsls r3, 30
+ lsrs r3, 16
+ movs r4, 0xC0
+ lsls r4, 19
+ adds r2, r4
+ str r2, [r0]
+ adds r3, r4
+ str r3, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811D6D0: .4byte REG_BG0CNT
+ thumb_func_end sub_811D6A8
+
+ thumb_func_start sub_811D6D4
+sub_811D6D4: @ 811D6D4
+ push {lr}
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0x10
+ movs r2, 0
+ bl BlendPalettes
+ pop {r0}
+ bx r0
+ thumb_func_end sub_811D6D4
+
+ thumb_func_start sub_811D6E8
+sub_811D6E8: @ 811D6E8
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ mov r10, r0
+ ldr r0, [sp, 0x20]
+ ldr r4, [sp, 0x24]
+ lsls r1, 16
+ lsrs r7, r1, 16
+ lsls r2, 16
+ lsrs r2, 16
+ lsls r3, 16
+ lsrs r3, 16
+ lsls r0, 16
+ lsrs r1, r0, 16
+ lsls r4, 16
+ movs r6, 0
+ lsrs r5, r4, 16
+ cmp r4, 0
+ ble _0811D750
+ lsls r0, r7, 16
+ asrs r0, 16
+ mov r9, r0
+ lsls r1, 16
+ mov r8, r1
+ lsls r0, r3, 16
+ asrs r7, r0, 16
+_0811D720:
+ lsls r4, r2, 16
+ asrs r4, 16
+ movs r0, 0xFF
+ ands r0, r4
+ mov r2, r8
+ asrs r1, r2, 16
+ bl Sin
+ lsls r1, r6, 1
+ add r1, r10
+ add r0, r9
+ strh r0, [r1]
+ lsls r1, r5, 16
+ ldr r0, _0811D760 @ =0xffff0000
+ adds r1, r0
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ adds r4, r7
+ lsls r4, 16
+ lsrs r2, r4, 16
+ lsrs r5, r1, 16
+ cmp r1, 0
+ bgt _0811D720
+_0811D750:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811D760: .4byte 0xffff0000
+ thumb_func_end sub_811D6E8
+
+ thumb_func_start sub_811D764
+sub_811D764: @ 811D764
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x14
+ mov r9, r0
+ adds r5, r2, 0
+ adds r4, r3, 0
+ lsls r1, 16
+ lsrs r1, 16
+ str r1, [sp]
+ lsls r5, 16
+ lsrs r5, 16
+ lsls r4, 16
+ lsrs r4, 16
+ movs r2, 0xA0
+ lsls r2, 1
+ movs r1, 0xA
+ bl memset
+ movs r1, 0
+ lsls r4, 16
+ asrs r4, 16
+ str r4, [sp, 0x4]
+ lsls r5, 16
+ asrs r5, 16
+ str r5, [sp, 0x8]
+_0811D79C:
+ lsls r5, r1, 16
+ asrs r0, r5, 16
+ mov r10, r0
+ ldr r1, [sp, 0x4]
+ bl Sin
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ mov r0, r10
+ ldr r1, [sp, 0x4]
+ bl Cos
+ ldr r2, [sp]
+ lsls r1, r2, 16
+ asrs r1, 16
+ lsls r4, 16
+ asrs r4, 16
+ subs r2, r1, r4
+ lsls r2, 16
+ adds r1, r4
+ lsls r1, 16
+ lsrs r6, r1, 16
+ lsls r0, 16
+ asrs r0, 16
+ ldr r3, [sp, 0x8]
+ subs r1, r3, r0
+ lsls r1, 16
+ lsrs r7, r1, 16
+ adds r0, r3, r0
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ lsrs r1, r2, 16
+ str r5, [sp, 0x10]
+ cmp r2, 0
+ bge _0811D7E8
+ movs r1, 0
+_0811D7E8:
+ lsls r0, r6, 16
+ asrs r0, 16
+ cmp r0, 0xF0
+ ble _0811D7F2
+ movs r6, 0xF0
+_0811D7F2:
+ lsls r0, r7, 16
+ cmp r0, 0
+ bge _0811D7FA
+ movs r7, 0
+_0811D7FA:
+ mov r2, r8
+ lsls r0, r2, 16
+ asrs r0, 16
+ cmp r0, 0x9F
+ ble _0811D808
+ movs r3, 0x9F
+ mov r8, r3
+_0811D808:
+ lsls r0, r1, 24
+ lsrs r0, 16
+ orrs r6, r0
+ lsls r0, r7, 16
+ asrs r0, 16
+ str r0, [sp, 0xC]
+ lsls r0, 1
+ add r0, r9
+ strh r6, [r0]
+ mov r0, r8
+ lsls r4, r0, 16
+ asrs r0, r4, 15
+ add r0, r9
+ strh r6, [r0]
+ mov r0, r10
+ adds r0, 0x1
+ lsls r0, 16
+ asrs r0, 16
+ ldr r1, [sp, 0x4]
+ bl Cos
+ lsls r0, 16
+ asrs r0, 16
+ ldr r2, [sp, 0x8]
+ subs r1, r2, r0
+ lsls r1, 16
+ adds r0, r2, r0
+ lsls r0, 16
+ lsrs r2, r0, 16
+ lsrs r3, r1, 16
+ cmp r1, 0
+ bge _0811D84A
+ movs r3, 0
+_0811D84A:
+ lsls r0, r2, 16
+ asrs r0, 16
+ cmp r0, 0x9F
+ ble _0811D854
+ movs r2, 0x9F
+_0811D854:
+ lsls r0, r3, 16
+ asrs r1, r0, 16
+ adds r3, r0, 0
+ lsls r5, r2, 16
+ ldr r0, [sp, 0xC]
+ cmp r0, r1
+ ble _0811D878
+ adds r2, r1, 0
+_0811D864:
+ lsls r1, r7, 16
+ ldr r0, _0811D8F8 @ =0xffff0000
+ adds r1, r0
+ asrs r0, r1, 15
+ add r0, r9
+ strh r6, [r0]
+ lsrs r7, r1, 16
+ asrs r1, 16
+ cmp r1, r2
+ bgt _0811D864
+_0811D878:
+ lsls r1, r7, 16
+ asrs r0, r3, 16
+ cmp r1, r3
+ bge _0811D896
+ adds r2, r0, 0
+_0811D882:
+ movs r3, 0x80
+ lsls r3, 9
+ adds r0, r1, r3
+ asrs r1, r0, 15
+ add r1, r9
+ strh r6, [r1]
+ adds r1, r0, 0
+ asrs r0, r1, 16
+ cmp r0, r2
+ blt _0811D882
+_0811D896:
+ asrs r0, r5, 16
+ cmp r4, r5
+ ble _0811D8B4
+ adds r1, r0, 0
+_0811D89E:
+ ldr r2, _0811D8F8 @ =0xffff0000
+ adds r0, r4, r2
+ lsrs r3, r0, 16
+ mov r8, r3
+ asrs r0, 15
+ add r0, r9
+ strh r6, [r0]
+ lsls r4, r3, 16
+ asrs r0, r4, 16
+ cmp r0, r1
+ bgt _0811D89E
+_0811D8B4:
+ mov r0, r8
+ lsls r4, r0, 16
+ asrs r0, r5, 16
+ cmp r4, r5
+ bge _0811D8D4
+ adds r2, r0, 0
+_0811D8C0:
+ movs r1, 0x80
+ lsls r1, 9
+ adds r0, r4, r1
+ asrs r1, r0, 15
+ add r1, r9
+ strh r6, [r1]
+ adds r4, r0, 0
+ asrs r0, r4, 16
+ cmp r0, r2
+ blt _0811D8C0
+_0811D8D4:
+ ldr r2, [sp, 0x10]
+ movs r3, 0x80
+ lsls r3, 9
+ adds r0, r2, r3
+ lsrs r1, r0, 16
+ asrs r0, 16
+ cmp r0, 0x3F
+ bgt _0811D8E6
+ b _0811D79C
+_0811D8E6:
+ 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
+_0811D8F8: .4byte 0xffff0000
+ thumb_func_end sub_811D764
+
+ thumb_func_start sub_811D8FC
+sub_811D8FC: @ 811D8FC
+ push {r4-r7,lr}
+ adds r6, r0, 0
+ ldr r0, [sp, 0x14]
+ ldr r5, [sp, 0x18]
+ ldr r4, [sp, 0x1C]
+ lsls r1, 16
+ lsrs r1, 16
+ lsls r2, 16
+ lsrs r2, 16
+ lsls r3, 16
+ lsrs r3, 16
+ lsls r0, 16
+ lsrs r0, 16
+ adds r7, r0, 0
+ lsls r5, 16
+ lsrs r5, 16
+ lsls r4, 16
+ lsrs r4, 16
+ strh r1, [r6]
+ strh r2, [r6, 0x2]
+ strh r1, [r6, 0x4]
+ strh r2, [r6, 0x6]
+ strh r3, [r6, 0x8]
+ strh r7, [r6, 0xA]
+ strh r5, [r6, 0xC]
+ strh r4, [r6, 0xE]
+ lsls r3, 16
+ asrs r3, 16
+ lsls r1, 16
+ asrs r1, 16
+ subs r3, r1
+ strh r3, [r6, 0x10]
+ lsls r0, r3, 16
+ cmp r0, 0
+ bge _0811D94E
+ negs r0, r3
+ strh r0, [r6, 0x10]
+ lsls r0, r5, 16
+ asrs r0, 16
+ negs r0, r0
+ strh r0, [r6, 0xC]
+_0811D94E:
+ lsls r0, r7, 16
+ asrs r0, 16
+ lsls r1, r2, 16
+ asrs r1, 16
+ subs r1, r0, r1
+ strh r1, [r6, 0x12]
+ lsls r0, r1, 16
+ cmp r0, 0
+ bge _0811D96C
+ negs r0, r1
+ strh r0, [r6, 0x12]
+ lsls r0, r4, 16
+ asrs r0, 16
+ negs r0, r0
+ strh r0, [r6, 0xE]
+_0811D96C:
+ movs r0, 0
+ strh r0, [r6, 0x14]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_811D8FC
+
+ thumb_func_start sub_811D978
+sub_811D978: @ 811D978
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ adds r3, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ mov r9, r1
+ lsls r2, 24
+ lsrs r2, 24
+ mov r10, r2
+ ldrh r0, [r3, 0x10]
+ mov r8, r0
+ movs r1, 0x10
+ ldrsh r6, [r3, r1]
+ ldrh r2, [r3, 0x12]
+ mov r12, r2
+ movs r4, 0x12
+ ldrsh r5, [r3, r4]
+ cmp r6, r5
+ ble _0811D9C8
+ ldrh r0, [r3, 0xC]
+ ldrh r2, [r3, 0x4]
+ adds r1, r0, r2
+ strh r1, [r3, 0x4]
+ ldrh r2, [r3, 0x14]
+ add r2, r12
+ strh r2, [r3, 0x14]
+ lsls r1, r2, 16
+ asrs r1, 16
+ adds r4, r0, 0
+ ldrh r7, [r3, 0xE]
+ cmp r1, r6
+ ble _0811D9EE
+ ldrh r1, [r3, 0x6]
+ adds r0, r7, r1
+ strh r0, [r3, 0x6]
+ mov r1, r8
+ b _0811D9EA
+_0811D9C8:
+ ldrh r0, [r3, 0xE]
+ ldrh r2, [r3, 0x6]
+ adds r1, r0, r2
+ strh r1, [r3, 0x6]
+ ldrh r2, [r3, 0x14]
+ add r2, r8
+ strh r2, [r3, 0x14]
+ lsls r1, r2, 16
+ asrs r1, 16
+ ldrh r4, [r3, 0xC]
+ adds r7, r0, 0
+ cmp r1, r5
+ ble _0811D9EE
+ ldrh r1, [r3, 0x4]
+ adds r0, r4, r1
+ strh r0, [r3, 0x4]
+ mov r1, r12
+_0811D9EA:
+ subs r0, r2, r1
+ strh r0, [r3, 0x14]
+_0811D9EE:
+ movs r5, 0
+ lsls r0, r4, 16
+ asrs r2, r0, 16
+ cmp r2, 0
+ ble _0811DA06
+ movs r4, 0x4
+ ldrsh r1, [r3, r4]
+ movs r4, 0x8
+ ldrsh r0, [r3, r4]
+ ldrh r4, [r3, 0x8]
+ cmp r1, r0
+ bge _0811DA18
+_0811DA06:
+ cmp r2, 0
+ bge _0811DA26
+ movs r0, 0x4
+ ldrsh r1, [r3, r0]
+ movs r2, 0x8
+ ldrsh r0, [r3, r2]
+ ldrh r4, [r3, 0x8]
+ cmp r1, r0
+ bgt _0811DA26
+_0811DA18:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ mov r0, r9
+ cmp r0, 0
+ beq _0811DA26
+ strh r4, [r3, 0x4]
+_0811DA26:
+ lsls r0, r7, 16
+ asrs r2, r0, 16
+ cmp r2, 0
+ ble _0811DA3C
+ movs r4, 0x6
+ ldrsh r1, [r3, r4]
+ movs r4, 0xA
+ ldrsh r0, [r3, r4]
+ ldrh r4, [r3, 0xA]
+ cmp r1, r0
+ bge _0811DA4E
+_0811DA3C:
+ cmp r2, 0
+ bge _0811DA5C
+ movs r0, 0x6
+ ldrsh r1, [r3, r0]
+ movs r2, 0xA
+ ldrsh r0, [r3, r2]
+ ldrh r4, [r3, 0xA]
+ cmp r1, r0
+ bgt _0811DA5C
+_0811DA4E:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ mov r0, r10
+ cmp r0, 0
+ beq _0811DA5C
+ strh r4, [r3, 0x6]
+_0811DA5C:
+ cmp r5, 0x2
+ beq _0811DA64
+ movs r0, 0
+ b _0811DA66
+_0811DA64:
+ movs r0, 0x1
+_0811DA66:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_811D978
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/cable_car.s b/asm/cable_car.s
new file mode 100644
index 000000000..1d094ba8d
--- /dev/null
+++ b/asm/cable_car.s
@@ -0,0 +1,2881 @@
+ .include "constants/gba_constants.s"
+ .include "constants/species_constants.s"
+ .include "asm/macros.s"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_81231EC
+sub_81231EC: @ 81231EC
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _08123210 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0812320A
+ ldr r0, _08123214 @ =sub_8123244
+ bl SetMainCallback2
+ adds r0, r4, 0
+ bl DestroyTask
+_0812320A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08123210: .4byte gPaletteFade
+_08123214: .4byte sub_8123244
+ thumb_func_end sub_81231EC
+
+ thumb_func_start sub_8123218
+sub_8123218: @ 8123218
+ push {lr}
+ sub sp, 0x4
+ bl ScriptContext2_Enable
+ ldr r0, _08123240 @ =sub_81231EC
+ movs r1, 0x1
+ 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
+_08123240: .4byte sub_81231EC
+ thumb_func_end sub_8123218
+
+ thumb_func_start sub_8123244
+sub_8123244: @ 8123244
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x10
+ ldr r1, _08123268 @ =gMain
+ ldr r2, _0812326C @ =0x0000043c
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ mov r9, r1
+ cmp r0, 0x8
+ bhi _08123298
+ lsls r0, 2
+ ldr r1, _08123270 @ =_08123274
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08123268: .4byte gMain
+_0812326C: .4byte 0x0000043c
+_08123270: .4byte _08123274
+ .align 2, 0
+_08123274:
+ .4byte _08123298
+ .4byte _08123384
+ .4byte _081233E8
+ .4byte _08123484
+ .4byte _081234A0
+ .4byte _08123504
+ .4byte _08123598
+ .4byte _08123678
+ .4byte _081236B0
+_08123298:
+ movs r0, 0
+ bl SetVBlankCallback
+ bl remove_some_task
+ movs r3, 0xC0
+ lsls r3, 19
+ movs r4, 0xC0
+ lsls r4, 9
+ add r0, sp, 0xC
+ mov r9, r0
+ add r2, sp, 0x8
+ movs r6, 0
+ ldr r1, _08123368 @ =0x040000d4
+ movs r5, 0x80
+ lsls r5, 5
+ ldr r7, _0812336C @ =0x81000800
+ movs r0, 0x81
+ lsls r0, 24
+ mov r8, r0
+_081232C0:
+ strh r6, [r2]
+ add r0, sp, 0x8
+ 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 _081232C0
+ strh r6, [r2]
+ add r2, sp, 0x8
+ str r2, [r1]
+ str r3, [r1, 0x4]
+ lsrs r0, r4, 1
+ mov r2, r8
+ 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, 0xC]
+ ldr r2, _08123368 @ =0x040000d4
+ mov r1, r9
+ 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
+ add r0, sp, 0x8
+ strh r4, [r0]
+ str r0, [r2]
+ str r1, [r2, 0x4]
+ lsrs r3, 1
+ movs r4, 0x81
+ lsls r4, 24
+ orrs r3, r4
+ str r3, [r2, 0x8]
+ ldr r0, [r2, 0x8]
+ ldr r1, _08123370 @ =gUnknown_02039274
+ ldr r0, _08123374 @ =0x02017000
+ str r0, [r1]
+ adds r3, r0, 0
+ ldr r5, _08123378 @ =0x000010fc
+ ldr r0, _0812337C @ =gMain
+ mov r9, r0
+ add r1, sp, 0x8
+ movs r7, 0
+ movs r6, 0x80
+ lsls r6, 5
+ ldr r0, _0812336C @ =0x81000800
+ mov r8, r0
+_08123338:
+ strh r7, [r1]
+ add r0, sp, 0x8
+ str r0, [r2]
+ str r3, [r2, 0x4]
+ mov r0, r8
+ str r0, [r2, 0x8]
+ ldr r0, [r2, 0x8]
+ adds r3, r6
+ subs r5, r6
+ cmp r5, r6
+ bhi _08123338
+ strh r7, [r1]
+ add r1, sp, 0x8
+ str r1, [r2]
+ str r3, [r2, 0x4]
+ lsrs r0, r5, 1
+ orrs r0, r4
+ str r0, [r2, 0x8]
+ ldr r0, [r2, 0x8]
+ ldr r1, _08123380 @ =0x0000043c
+ add r1, r9
+ ldrb r0, [r1]
+ adds r0, 0x1
+ b _0812370C
+ .align 2, 0
+_08123368: .4byte 0x040000d4
+_0812336C: .4byte 0x81000800
+_08123370: .4byte gUnknown_02039274
+_08123374: .4byte 0x02017000
+_08123378: .4byte 0x000010fc
+_0812337C: .4byte gMain
+_08123380: .4byte 0x0000043c
+_08123384:
+ bl ResetSpriteData
+ bl ResetTasks
+ bl FreeAllSpritePalettes
+ bl ResetPaletteFade
+ bl sub_807C828
+ movs r4, 0
+ ldr r0, _081233D4 @ =gUnknown_08396FC4
+ ldr r0, [r0]
+ adds r1, r0, 0
+ adds r1, 0xF0
+ movs r2, 0
+_081233A4:
+ lsls r0, r4, 2
+ adds r0, r1, r0
+ str r2, [r0]
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x13
+ bls _081233A4
+ bl InitMapMusic
+ bl ResetMapMusic
+ ldr r2, _081233D8 @ =gSpriteCoordOffsetX
+ ldr r1, _081233DC @ =gSpriteCoordOffsetY
+ movs r0, 0
+ strh r0, [r1]
+ strh r0, [r2]
+ ldr r1, _081233E0 @ =gMain
+ ldr r2, _081233E4 @ =0x0000043c
+ adds r1, r2
+ ldrb r0, [r1]
+ adds r0, 0x1
+ b _0812370C
+ .align 2, 0
+_081233D4: .4byte gUnknown_08396FC4
+_081233D8: .4byte gSpriteCoordOffsetX
+_081233DC: .4byte gSpriteCoordOffsetY
+_081233E0: .4byte gMain
+_081233E4: .4byte 0x0000043c
+_081233E8:
+ movs r4, 0
+ ldr r5, _08123454 @ =gUnknown_08401CF8
+_081233EC:
+ lsls r0, r4, 3
+ adds r0, r5
+ bl LoadCompressedObjectPic
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x2
+ bls _081233EC
+ ldr r0, _08123458 @ =gUnknown_08401D18
+ bl LoadSpritePalettes
+ ldr r0, _0812345C @ =gCableCarMtChimneyTilemap
+ ldr r4, _08123460 @ =0x02019000
+ adds r1, r4, 0
+ bl sub_800D238
+ ldr r0, _08123464 @ =gCableCarTreeTilemap
+ movs r2, 0xB4
+ lsls r2, 1
+ adds r1, r4, r2
+ bl sub_800D238
+ ldr r0, _08123468 @ =gCableCarMountainTilemap
+ movs r2, 0xA5
+ lsls r2, 3
+ adds r1, r4, r2
+ bl sub_800D238
+ ldr r0, _0812346C @ =gCableCarPylonStemTilemap
+ ldr r1, _08123470 @ =0x000009d8
+ adds r4, r1
+ adds r1, r4, 0
+ bl sub_800D238
+ ldr r0, _08123474 @ =gCableCarBG_Pal
+ movs r1, 0
+ movs r2, 0x80
+ bl LoadPalette
+ ldr r0, _08123478 @ =gCableCarBG_Gfx
+ movs r1, 0xC0
+ lsls r1, 19
+ bl LZ77UnCompVram
+ ldr r1, _0812347C @ =gMain
+ ldr r2, _08123480 @ =0x0000043c
+ adds r1, r2
+ ldrb r0, [r1]
+ adds r0, 0x1
+ b _0812370C
+ .align 2, 0
+_08123454: .4byte gUnknown_08401CF8
+_08123458: .4byte gUnknown_08401D18
+_0812345C: .4byte gCableCarMtChimneyTilemap
+_08123460: .4byte 0x02019000
+_08123464: .4byte gCableCarTreeTilemap
+_08123468: .4byte gCableCarMountainTilemap
+_0812346C: .4byte gCableCarPylonStemTilemap
+_08123470: .4byte 0x000009d8
+_08123474: .4byte gCableCarBG_Pal
+_08123478: .4byte gCableCarBG_Gfx
+_0812347C: .4byte gMain
+_08123480: .4byte 0x0000043c
+_08123484:
+ bl sub_8124118
+ bl RunTasks
+ ldr r1, _08123498 @ =gMain
+ ldr r0, _0812349C @ =0x0000043c
+ adds r1, r0
+ ldrb r0, [r1]
+ adds r0, 0x1
+ b _0812370C
+ .align 2, 0
+_08123498: .4byte gMain
+_0812349C: .4byte 0x0000043c
+_081234A0:
+ ldr r0, _081234B4 @ =gUnknown_02039274
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x2]
+ cmp r0, 0x7
+ bne _081234BC
+ ldr r1, _081234B8 @ =0x0000043c
+ add r1, r9
+ ldrb r0, [r1]
+ adds r0, 0x1
+ b _0812370C
+ .align 2, 0
+_081234B4: .4byte gUnknown_02039274
+_081234B8: .4byte 0x0000043c
+_081234BC:
+ ldr r0, _081234FC @ =gUnknown_08396FC4
+ ldr r0, [r0]
+ adds r1, r0, 0
+ adds r1, 0xF0
+ ldr r0, [r1]
+ cmp r0, 0
+ bne _081234CC
+ b _0812370E
+_081234CC:
+ movs r4, 0
+ adds r3, r1, 0
+ movs r5, 0xD
+ negs r5, r5
+_081234D4:
+ lsls r0, r4, 2
+ adds r0, r3, r0
+ ldr r2, [r0]
+ cmp r2, 0
+ beq _081234E6
+ ldrb r1, [r2, 0x5]
+ adds r0, r5, 0
+ ands r0, r1
+ strb r0, [r2, 0x5]
+_081234E6:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x13
+ bls _081234D4
+ ldr r1, _08123500 @ =0x0000043c
+ add r1, r9
+ ldrb r0, [r1]
+ adds r0, 0x1
+ b _0812370C
+ .align 2, 0
+_081234FC: .4byte gUnknown_08396FC4
+_08123500: .4byte 0x0000043c
+_08123504:
+ ldr r0, _08123578 @ =0x0600e800
+ ldr r5, _0812357C @ =0x02019168
+ movs r1, 0x20
+ str r1, [sp]
+ movs r1, 0xF
+ str r1, [sp, 0x4]
+ adds r1, r5, 0
+ movs r2, 0
+ movs r3, 0x11
+ bl sub_8124F08
+ ldr r0, _08123580 @ =0x0600f000
+ movs r2, 0xF0
+ lsls r2, 2
+ adds r1, r5, r2
+ movs r2, 0x1E
+ str r2, [sp]
+ movs r2, 0x14
+ mov r9, r2
+ str r2, [sp, 0x4]
+ movs r2, 0
+ movs r3, 0
+ bl sub_8124F08
+ ldr r0, _08123584 @ =gUnknown_02039274
+ mov r8, r0
+ ldr r0, [r0]
+ ldr r6, _08123588 @ =0x000008fc
+ adds r0, r6
+ ldr r1, _0812358C @ =gCableCarPylonHookTilemapEntries
+ movs r2, 0x5
+ str r2, [sp]
+ movs r4, 0x2
+ str r4, [sp, 0x4]
+ movs r2, 0
+ movs r3, 0
+ bl sub_8124F08
+ mov r1, r8
+ ldr r0, [r1]
+ adds r0, r6
+ movs r2, 0x87
+ lsls r2, 4
+ adds r5, r2
+ str r4, [sp]
+ mov r1, r9
+ str r1, [sp, 0x4]
+ adds r1, r5, 0
+ movs r2, 0
+ movs r3, 0x2
+ bl sub_8124F08
+ ldr r1, _08123590 @ =gMain
+ ldr r2, _08123594 @ =0x0000043c
+ adds r1, r2
+ ldrb r0, [r1]
+ adds r0, 0x1
+ b _0812370C
+ .align 2, 0
+_08123578: .4byte 0x0600e800
+_0812357C: .4byte 0x02019168
+_08123580: .4byte 0x0600f000
+_08123584: .4byte gUnknown_02039274
+_08123588: .4byte 0x000008fc
+_0812358C: .4byte gCableCarPylonHookTilemapEntries
+_08123590: .4byte gMain
+_08123594: .4byte 0x0000043c
+_08123598:
+ ldr r0, _08123664 @ =gUnknown_0202E8CC
+ ldrb r0, [r0]
+ bl sub_81248AC
+ ldr r0, _08123668 @ =gUnknown_02039274
+ mov r8, r0
+ ldr r0, [r0]
+ adds r0, 0xFC
+ ldr r4, _0812366C @ =0x02019090
+ movs r6, 0xC
+ str r6, [sp]
+ movs r5, 0x3
+ str r5, [sp, 0x4]
+ adds r1, r4, 0
+ movs r2, 0
+ movs r3, 0xE
+ bl sub_8124F08
+ mov r1, r8
+ ldr r0, [r1]
+ adds r0, 0xFC
+ adds r1, r4, 0
+ adds r1, 0x48
+ str r6, [sp]
+ str r5, [sp, 0x4]
+ movs r2, 0xC
+ movs r3, 0x11
+ bl sub_8124F08
+ mov r2, r8
+ ldr r0, [r2]
+ adds r0, 0xFC
+ adds r1, r4, 0
+ adds r1, 0x90
+ str r6, [sp]
+ str r5, [sp, 0x4]
+ movs r2, 0x18
+ movs r3, 0x14
+ bl sub_8124F08
+ mov r1, r8
+ ldr r0, [r1]
+ adds r0, 0xFC
+ movs r2, 0x90
+ negs r2, r2
+ adds r2, r4
+ mov r9, r2
+ str r6, [sp]
+ str r5, [sp, 0x4]
+ mov r1, r9
+ movs r2, 0
+ movs r3, 0x11
+ bl sub_8124F08
+ mov r1, r8
+ ldr r0, [r1]
+ adds r0, 0xFC
+ subs r4, 0x48
+ str r6, [sp]
+ str r5, [sp, 0x4]
+ adds r1, r4, 0
+ movs r2, 0
+ movs r3, 0x14
+ bl sub_8124F08
+ mov r2, r8
+ ldr r0, [r2]
+ adds r0, 0xFC
+ str r6, [sp]
+ str r5, [sp, 0x4]
+ mov r1, r9
+ movs r2, 0xC
+ movs r3, 0x14
+ bl sub_8124F08
+ mov r1, r8
+ ldr r0, [r1]
+ adds r0, 0xFC
+ str r6, [sp]
+ str r5, [sp, 0x4]
+ adds r1, r4, 0
+ movs r2, 0xC
+ movs r3, 0x17
+ bl sub_8124F08
+ mov r2, r8
+ ldr r0, [r2]
+ adds r0, 0xFC
+ str r6, [sp]
+ str r5, [sp, 0x4]
+ mov r1, r9
+ movs r2, 0x18
+ movs r3, 0x17
+ bl sub_8124F08
+ ldr r1, _08123670 @ =gMain
+ ldr r0, _08123674 @ =0x0000043c
+ adds r1, r0
+ ldrb r0, [r1]
+ adds r0, 0x1
+ b _0812370C
+ .align 2, 0
+_08123664: .4byte gUnknown_0202E8CC
+_08123668: .4byte gUnknown_02039274
+_0812366C: .4byte 0x02019090
+_08123670: .4byte gMain
+_08123674: .4byte 0x0000043c
+_08123678:
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r1, 0x3
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ ldr r0, _081236A4 @ =0x000001a9
+ movs r1, 0x1
+ bl FadeInNewBGM
+ movs r0, 0x1
+ bl sub_8123FBC
+ ldr r1, _081236A8 @ =gMain
+ ldr r2, _081236AC @ =0x0000043c
+ adds r1, r2
+ ldrb r0, [r1]
+ adds r0, 0x1
+ b _0812370C
+ .align 2, 0
+_081236A4: .4byte 0x000001a9
+_081236A8: .4byte gMain
+_081236AC: .4byte 0x0000043c
+_081236B0:
+ ldr r3, _081236E4 @ =0x04000208
+ ldrh r2, [r3]
+ movs r0, 0
+ strh r0, [r3]
+ ldr r4, _081236E8 @ =0x04000200
+ ldrh r0, [r4]
+ movs r1, 0x1
+ orrs r0, r1
+ strh r0, [r4]
+ strh r2, [r3]
+ ldr r0, _081236EC @ =sub_8123C40
+ bl SetVBlankCallback
+ ldr r0, _081236F0 @ =mainloop
+ bl SetMainCallback2
+ ldr r0, _081236F4 @ =sub_8123878
+ movs r1, 0
+ bl CreateTask
+ ldr r0, _081236F8 @ =gUnknown_0202E8CC
+ ldrh r0, [r0]
+ cmp r0, 0
+ bne _08123700
+ ldr r0, _081236FC @ =sub_81239E4
+ b _08123702
+ .align 2, 0
+_081236E4: .4byte 0x04000208
+_081236E8: .4byte 0x04000200
+_081236EC: .4byte sub_8123C40
+_081236F0: .4byte mainloop
+_081236F4: .4byte sub_8123878
+_081236F8: .4byte gUnknown_0202E8CC
+_081236FC: .4byte sub_81239E4
+_08123700:
+ ldr r0, _0812371C @ =sub_8123AF8
+_08123702:
+ movs r1, 0x1
+ bl CreateTask
+ ldr r1, _08123720 @ =gUnknown_02039274
+ ldr r1, [r1]
+_0812370C:
+ strb r0, [r1]
+_0812370E:
+ add sp, 0x10
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812371C: .4byte sub_8123AF8
+_08123720: .4byte gUnknown_02039274
+ thumb_func_end sub_8123244
+
+ thumb_func_start mainloop
+mainloop: @ 8123724
+ push {lr}
+ bl RunTasks
+ bl AnimateSprites
+ bl BuildOamBuffer
+ bl UpdatePaletteFade
+ bl MapMusicMain
+ pop {r0}
+ bx r0
+ thumb_func_end mainloop
+
+ thumb_func_start sub_8123740
+sub_8123740: @ 8123740
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x8
+ movs r4, 0
+ movs r0, 0
+ bl sub_8123FBC
+ ldr r0, _08123854 @ =gSpriteCoordOffsetX
+ strh r4, [r0]
+ movs r0, 0
+ bl sub_807C9B4
+ add r7, sp, 0x4
+ ldr r0, _08123858 @ =gUnknown_08396FC4
+ ldr r0, [r0]
+ adds r1, r0, 0
+ adds r1, 0xF0
+ movs r2, 0
+_08123766:
+ lsls r0, r4, 2
+ adds r0, r1, r0
+ str r2, [r0]
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x13
+ bls _08123766
+ bl ResetTasks
+ bl ResetSpriteData
+ bl ResetPaletteFade
+ ldr r2, _0812385C @ =0x02000000
+ movs r3, 0x80
+ lsls r3, 10
+ movs r5, 0
+ ldr r1, _08123860 @ =0x040000d4
+ movs r4, 0x80
+ lsls r4, 5
+ ldr r6, _08123864 @ =0x85000400
+ movs r0, 0x85
+ lsls r0, 24
+ mov r12, r0
+_08123798:
+ 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 _08123798
+ str r5, [sp]
+ mov r0, sp
+ str r0, [r1]
+ str r2, [r1, 0x4]
+ lsrs r0, r3, 2
+ mov r2, r12
+ orrs r0, r2
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ ldr r1, _08123868 @ =gUnknown_02039274
+ movs r0, 0
+ str r0, [r1]
+ movs r3, 0xC0
+ lsls r3, 19
+ movs r4, 0xC0
+ lsls r4, 9
+ adds r2, r7, 0
+ movs r6, 0
+ ldr r1, _08123860 @ =0x040000d4
+ movs r5, 0x80
+ lsls r5, 5
+ ldr r0, _0812386C @ =0x81000800
+ mov r12, r0
+ movs r0, 0x81
+ lsls r0, 24
+ mov r8, r0
+_081237E0:
+ strh r6, [r2]
+ str r2, [r1]
+ str r3, [r1, 0x4]
+ mov r0, r12
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ adds r3, r5
+ subs r4, r5
+ cmp r4, r5
+ bhi _081237E0
+ strh r6, [r7]
+ str r7, [r1]
+ str r3, [r1, 0x4]
+ lsrs r0, r4, 1
+ mov r2, r8
+ 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]
+ ldr r2, _08123860 @ =0x040000d4
+ mov r1, sp
+ 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 r0, 0xA0
+ lsls r0, 19
+ strh r4, [r7]
+ str r7, [r2]
+ str r0, [r2, 0x4]
+ lsrs r3, 1
+ movs r0, 0x81
+ lsls r0, 24
+ orrs r3, r0
+ str r3, [r2, 0x8]
+ ldr r0, [r2, 0x8]
+ bl warp_in
+ ldr r0, _08123870 @ =gUnknown_0300485C
+ str r4, [r0]
+ ldr r0, _08123874 @ =CB2_LoadMap
+ bl SetMainCallback2
+ add sp, 0x8
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08123854: .4byte gSpriteCoordOffsetX
+_08123858: .4byte gUnknown_08396FC4
+_0812385C: .4byte 0x02000000
+_08123860: .4byte 0x040000d4
+_08123864: .4byte 0x85000400
+_08123868: .4byte gUnknown_02039274
+_0812386C: .4byte 0x81000800
+_08123870: .4byte gUnknown_0300485C
+_08123874: .4byte CB2_LoadMap
+ thumb_func_end sub_8123740
+
+ thumb_func_start sub_8123878
+sub_8123878: @ 8123878
+ push {r4-r7,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r4, 0
+ ldr r5, _081238A4 @ =gUnknown_02039274
+ ldr r3, [r5]
+ ldrh r0, [r3, 0x6]
+ adds r0, 0x1
+ strh r0, [r3, 0x6]
+ ldrb r2, [r3, 0x1]
+ adds r7, r5, 0
+ cmp r2, 0x2
+ beq _0812397E
+ cmp r2, 0x2
+ bgt _081238A8
+ cmp r2, 0
+ beq _081238B6
+ cmp r2, 0x1
+ beq _081238D0
+ b _081239D6
+ .align 2, 0
+_081238A4: .4byte gUnknown_02039274
+_081238A8:
+ cmp r2, 0x3
+ bne _081238AE
+ b _081239A4
+_081238AE:
+ cmp r2, 0xFF
+ bne _081238B4
+ b _081239BC
+_081238B4:
+ b _081239D6
+_081238B6:
+ lsls r0, 16
+ lsrs r0, 16
+ ldrh r1, [r3, 0x4]
+ cmp r0, r1
+ beq _081238C2
+ b _081239D6
+_081238C2:
+ ldrb r0, [r3, 0x2]
+ bl DoWeatherEffect
+ ldr r1, [r5]
+ movs r0, 0x1
+ strb r0, [r1, 0x1]
+ b _081239D6
+_081238D0:
+ ldrb r0, [r3, 0x2]
+ cmp r0, 0x2
+ beq _08123924
+ cmp r0, 0x7
+ beq _081238DC
+ b _081239D6
+_081238DC:
+ ldr r0, _08123920 @ =gUnknown_08396FC4
+ ldr r0, [r0]
+ adds r2, r0, 0
+ adds r2, 0xF0
+ ldr r0, [r2]
+ cmp r0, 0
+ beq _081239D6
+ ldrb r1, [r0, 0x5]
+ movs r0, 0xC
+ ands r0, r1
+ cmp r0, 0
+ beq _081239D6
+ adds r3, r2, 0
+ movs r5, 0xD
+ negs r5, r5
+_081238FA:
+ lsls r0, r4, 2
+ adds r0, r3, r0
+ ldr r2, [r0]
+ cmp r2, 0
+ beq _0812390C
+ ldrb r1, [r2, 0x5]
+ adds r0, r5, 0
+ ands r0, r1
+ strb r0, [r2, 0x5]
+_0812390C:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x13
+ bls _081238FA
+ ldr r1, [r7]
+ movs r0, 0x2
+ strb r0, [r1, 0x1]
+ b _081239D6
+ .align 2, 0
+_08123920: .4byte gUnknown_08396FC4
+_08123924:
+ ldr r0, _08123938 @ =gUnknown_08396FC4
+ ldr r2, [r0]
+ movs r1, 0xDA
+ lsls r1, 3
+ adds r0, r2, r1
+ ldrb r0, [r0]
+ cmp r0, 0x2
+ bne _0812393C
+ strb r0, [r3, 0x1]
+ b _081239D6
+ .align 2, 0
+_08123938: .4byte gUnknown_08396FC4
+_0812393C:
+ ldrh r1, [r3, 0x6]
+ ldrh r0, [r3, 0x4]
+ adds r0, 0x8
+ cmp r1, r0
+ blt _081239D6
+ adds r6, r2, 0
+ adds r6, 0xF0
+ movs r5, 0x1
+ movs r7, 0x5
+ negs r7, r7
+_08123950:
+ lsls r0, r4, 2
+ adds r0, r6, r0
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _08123972
+ adds r3, r0, 0
+ adds r3, 0x3E
+ ldrb r2, [r3]
+ lsls r1, r2, 29
+ lsrs r1, 31
+ eors r1, r5
+ ands r1, r5
+ lsls r1, 2
+ adds r0, r7, 0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+_08123972:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x13
+ bls _08123950
+ b _081239D6
+_0812397E:
+ lsls r1, r0, 16
+ ldr r0, _081239A0 @ =0x023a0000
+ cmp r1, r0
+ bne _081239D6
+ movs r0, 0x3
+ strb r0, [r3, 0x1]
+ subs r0, 0x4
+ str r4, [sp]
+ movs r1, 0x3
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ movs r0, 0x4
+ bl FadeOutBGM
+ b _081239D6
+ .align 2, 0
+_081239A0: .4byte 0x023a0000
+_081239A4:
+ ldr r0, _081239B8 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _081239D6
+ movs r0, 0xFF
+ strb r0, [r3, 0x1]
+ b _081239D6
+ .align 2, 0
+_081239B8: .4byte gPaletteFade
+_081239BC:
+ movs r0, 0
+ bl SetVBlankCallback
+ adds r0, r6, 0
+ bl DestroyTask
+ ldr r0, [r5]
+ ldrb r0, [r0]
+ bl DestroyTask
+ ldr r0, _081239E0 @ =sub_8123740
+ bl SetMainCallback2
+_081239D6:
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081239E0: .4byte sub_8123740
+ thumb_func_end sub_8123878
+
+ thumb_func_start sub_81239E4
+sub_81239E4: @ 81239E4
+ push {r4-r6,lr}
+ sub sp, 0x8
+ ldr r6, _08123A38 @ =gUnknown_02039274
+ ldr r1, [r6]
+ ldrb r0, [r1, 0x1]
+ cmp r0, 0xFF
+ beq _08123AC0
+ ldrb r0, [r1, 0x14]
+ subs r0, 0x1
+ strb r0, [r1, 0x14]
+ ldr r1, [r6]
+ ldrh r0, [r1, 0x6]
+ movs r3, 0x1
+ ands r0, r3
+ cmp r0, 0
+ bne _08123A0A
+ ldrb r0, [r1, 0x15]
+ subs r0, 0x1
+ strb r0, [r1, 0x15]
+_08123A0A:
+ ldr r2, [r6]
+ ldrh r0, [r2, 0x6]
+ movs r1, 0x7
+ ands r0, r1
+ cmp r0, 0
+ bne _08123A24
+ ldrb r0, [r2, 0xC]
+ subs r0, 0x1
+ strb r0, [r2, 0xC]
+ ldr r1, [r6]
+ ldrb r0, [r1, 0xD]
+ subs r0, 0x1
+ strb r0, [r1, 0xD]
+_08123A24:
+ ldr r0, [r6]
+ ldrb r1, [r0, 0x14]
+ cmp r1, 0x20
+ beq _08123A74
+ cmp r1, 0x20
+ bgt _08123A3C
+ cmp r1, 0x10
+ beq _08123A90
+ b _08123AC0
+ .align 2, 0
+_08123A38: .4byte gUnknown_02039274
+_08123A3C:
+ cmp r1, 0x28
+ beq _08123A60
+ cmp r1, 0xAF
+ bne _08123AC0
+ ldr r1, _08123A5C @ =0x000008fc
+ adds r0, r1
+ movs r1, 0x2
+ str r1, [sp]
+ movs r1, 0xA
+ str r1, [sp, 0x4]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x16
+ bl sub_8124E7C
+ b _08123AC0
+ .align 2, 0
+_08123A5C: .4byte 0x000008fc
+_08123A60:
+ ldr r1, _08123A70 @ =0x000008fc
+ adds r0, r1
+ movs r1, 0x2
+ str r1, [sp]
+ str r1, [sp, 0x4]
+ movs r1, 0
+ movs r2, 0x3
+ b _08123A82
+ .align 2, 0
+_08123A70: .4byte 0x000008fc
+_08123A74:
+ ldr r1, _08123A8C @ =0x000008fc
+ adds r0, r1
+ str r3, [sp]
+ movs r1, 0x2
+ str r1, [sp, 0x4]
+ movs r1, 0
+ movs r2, 0x2
+_08123A82:
+ movs r3, 0
+ bl sub_8124E7C
+ b _08123AC0
+ .align 2, 0
+_08123A8C: .4byte 0x000008fc
+_08123A90:
+ ldr r5, _08123AE8 @ =0x000008fc
+ adds r0, r5
+ ldr r1, _08123AEC @ =gCableCarPylonHookTilemapEntries
+ movs r2, 0x5
+ str r2, [sp]
+ movs r4, 0x2
+ str r4, [sp, 0x4]
+ movs r2, 0
+ movs r3, 0
+ bl sub_8124F08
+ ldr r0, [r6]
+ adds r0, r5
+ ldr r1, _08123AF0 @ =0x020199d8
+ str r4, [sp]
+ movs r2, 0x1E
+ str r2, [sp, 0x4]
+ movs r2, 0
+ movs r3, 0x2
+ bl sub_8124F08
+ ldr r1, [r6]
+ movs r0, 0x40
+ strb r0, [r1, 0x15]
+_08123AC0:
+ bl sub_812453C
+ ldr r3, _08123AF4 @ =gSpriteCoordOffsetX
+ movs r0, 0
+ ldrsh r2, [r3, r0]
+ adds r1, r2, 0x1
+ adds r0, r1, 0
+ cmp r1, 0
+ bge _08123AD6
+ adds r0, r2, 0
+ adds r0, 0x80
+_08123AD6:
+ asrs r0, 7
+ lsls r0, 7
+ subs r0, r1, r0
+ strh r0, [r3]
+ add sp, 0x8
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08123AE8: .4byte 0x000008fc
+_08123AEC: .4byte gCableCarPylonHookTilemapEntries
+_08123AF0: .4byte 0x020199d8
+_08123AF4: .4byte gSpriteCoordOffsetX
+ thumb_func_end sub_81239E4
+
+ thumb_func_start sub_8123AF8
+sub_8123AF8: @ 8123AF8
+ push {r4-r6,lr}
+ sub sp, 0x8
+ ldr r6, _08123B4C @ =gUnknown_02039274
+ ldr r1, [r6]
+ ldrb r0, [r1, 0x1]
+ cmp r0, 0xFF
+ beq _08123BEE
+ ldrb r0, [r1, 0x14]
+ adds r0, 0x1
+ strb r0, [r1, 0x14]
+ ldr r2, [r6]
+ ldrh r0, [r2, 0x6]
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _08123B1E
+ ldrb r0, [r2, 0x15]
+ adds r0, 0x1
+ strb r0, [r2, 0x15]
+_08123B1E:
+ ldr r2, [r6]
+ ldrh r0, [r2, 0x6]
+ movs r1, 0x7
+ ands r0, r1
+ cmp r0, 0
+ bne _08123B38
+ ldrb r0, [r2, 0xC]
+ adds r0, 0x1
+ strb r0, [r2, 0xC]
+ ldr r1, [r6]
+ ldrb r0, [r1, 0xD]
+ adds r0, 0x1
+ strb r0, [r1, 0xD]
+_08123B38:
+ ldr r3, [r6]
+ ldrb r0, [r3, 0x14]
+ cmp r0, 0x20
+ beq _08123BB0
+ cmp r0, 0x20
+ bgt _08123B50
+ cmp r0, 0x10
+ beq _08123B78
+ b _08123BEE
+ .align 2, 0
+_08123B4C: .4byte gUnknown_02039274
+_08123B50:
+ cmp r0, 0x28
+ beq _08123BDC
+ cmp r0, 0xB0
+ bne _08123BEE
+ ldr r1, _08123B70 @ =0x000008fc
+ adds r0, r3, r1
+ ldr r1, _08123B74 @ =0x020199d8
+ movs r2, 0x2
+ str r2, [sp]
+ movs r2, 0x1E
+ str r2, [sp, 0x4]
+ movs r2, 0
+ movs r3, 0x2
+ bl sub_8124F08
+ b _08123BEE
+ .align 2, 0
+_08123B70: .4byte 0x000008fc
+_08123B74: .4byte 0x020199d8
+_08123B78:
+ ldr r5, _08123BAC @ =0x000008fc
+ adds r0, r3, r5
+ movs r1, 0x3
+ str r1, [sp]
+ movs r4, 0x2
+ str r4, [sp, 0x4]
+ movs r1, 0
+ movs r2, 0x2
+ movs r3, 0
+ bl sub_8124E7C
+ ldr r0, [r6]
+ adds r0, r5
+ str r4, [sp]
+ movs r1, 0xA
+ str r1, [sp, 0x4]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x16
+ bl sub_8124E7C
+ ldr r1, [r6]
+ movs r0, 0xC0
+ strb r0, [r1, 0x15]
+ b _08123BEE
+ .align 2, 0
+_08123BAC: .4byte 0x000008fc
+_08123BB0:
+ ldr r1, _08123BD4 @ =gCableCarPylonHookTilemapEntries + 0x4
+ ldrh r2, [r1]
+ movs r4, 0x90
+ lsls r4, 4
+ adds r0, r3, r4
+ strh r2, [r0]
+ ldrh r2, [r1, 0x2]
+ adds r4, 0x2
+ adds r0, r3, r4
+ strh r2, [r0]
+ ldrh r2, [r1, 0xA]
+ adds r4, 0x3E
+ adds r0, r3, r4
+ strh r2, [r0]
+ ldrh r1, [r1, 0xC]
+ ldr r2, _08123BD8 @ =0x00000942
+ b _08123BEA
+ .align 2, 0
+_08123BD4: .4byte gCableCarPylonHookTilemapEntries + 0x4
+_08123BD8: .4byte 0x00000942
+_08123BDC:
+ ldr r2, _08123C08 @ =gCableCarPylonHookTilemapEntries + 0x8
+ ldrh r1, [r2]
+ ldr r4, _08123C0C @ =0x00000904
+ adds r0, r3, r4
+ strh r1, [r0]
+ ldrh r1, [r2, 0xA]
+ ldr r2, _08123C10 @ =0x00000944
+_08123BEA:
+ adds r0, r3, r2
+ strh r1, [r0]
+_08123BEE:
+ bl sub_8124598
+ ldr r0, _08123C14 @ =gUnknown_02039274
+ ldr r1, [r0]
+ ldrh r0, [r1, 0x6]
+ ldrh r1, [r1, 0x4]
+ cmp r0, r1
+ bcs _08123C1C
+ ldr r4, _08123C18 @ =gSpriteCoordOffsetX
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ b _08123C26
+ .align 2, 0
+_08123C08: .4byte gCableCarPylonHookTilemapEntries + 0x8
+_08123C0C: .4byte 0x00000904
+_08123C10: .4byte 0x00000944
+_08123C14: .4byte gUnknown_02039274
+_08123C18: .4byte gSpriteCoordOffsetX
+_08123C1C:
+ ldr r0, _08123C38 @ =gUnknown_08396FC4
+ ldr r4, [r0]
+ ldr r2, _08123C3C @ =0x000006fc
+ adds r4, r2
+ ldrh r0, [r4]
+_08123C26:
+ adds r0, 0xF7
+ movs r1, 0xF8
+ bl __modsi3
+ strh r0, [r4]
+ add sp, 0x8
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08123C38: .4byte gUnknown_08396FC4
+_08123C3C: .4byte 0x000006fc
+ thumb_func_end sub_8123AF8
+
+ thumb_func_start sub_8123C40
+sub_8123C40: @ 8123C40
+ push {r4,lr}
+ ldr r1, _08123C9C @ =0x040000d4
+ ldr r0, _08123CA0 @ =gUnknown_02039274
+ ldr r2, [r0]
+ adds r0, r2, 0
+ adds r0, 0xFC
+ str r0, [r1]
+ ldr r0, _08123CA4 @ =0x0600e000
+ str r0, [r1, 0x4]
+ ldr r3, _08123CA8 @ =0x80000400
+ str r3, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ ldr r4, _08123CAC @ =0x000008fc
+ adds r0, r2, r4
+ str r0, [r1]
+ ldr r0, _08123CB0 @ =0x0600f800
+ str r0, [r1, 0x4]
+ str r3, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ subs r1, 0xB8
+ ldrb r0, [r2, 0x14]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldrb r0, [r2, 0x15]
+ strh r0, [r1]
+ subs r1, 0xA
+ ldrb r0, [r2, 0xC]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldrb r0, [r2, 0xD]
+ strh r0, [r1]
+ subs r1, 0x6
+ ldrb r0, [r2, 0x8]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldrb r0, [r2, 0x9]
+ strh r0, [r1]
+ bl LoadOam
+ bl ProcessSpriteCopyRequests
+ bl TransferPlttBuffer
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08123C9C: .4byte 0x040000d4
+_08123CA0: .4byte gUnknown_02039274
+_08123CA4: .4byte 0x0600e000
+_08123CA8: .4byte 0x80000400
+_08123CAC: .4byte 0x000008fc
+_08123CB0: .4byte 0x0600f800
+ thumb_func_end sub_8123C40
+
+ thumb_func_start nullsub_76
+nullsub_76: @ 8123CB4
+ bx lr
+ thumb_func_end nullsub_76
+
+ thumb_func_start sub_8123CB8
+sub_8123CB8: @ 8123CB8
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ ldr r0, _08123D20 @ =gUnknown_02039274
+ ldr r6, [r0]
+ ldrb r0, [r6, 0x1]
+ cmp r0, 0xFF
+ beq _08123D84
+ ldr r0, _08123D24 @ =gUnknown_0202E8CC
+ ldrh r0, [r0]
+ cmp r0, 0
+ bne _08123D34
+ movs r0, 0x6
+ ldrsh r4, [r6, r0]
+ adds r0, r4, 0
+ bl __floatsisf
+ cmp r4, 0
+ bge _08123CE2
+ ldr r1, _08123D28 @ =0x47800000
+ bl __addsf3
+_08123CE2:
+ ldr r1, _08123D2C @ =0x3e0f5c29
+ bl __mulsf3
+ bl __fixunssfsi
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r5, 0x2E]
+ subs r1, r0
+ strh r1, [r5, 0x20]
+ movs r1, 0x6
+ ldrsh r4, [r6, r1]
+ adds r0, r4, 0
+ bl __floatsisf
+ cmp r4, 0
+ bge _08123D0A
+ ldr r1, _08123D28 @ =0x47800000
+ bl __addsf3
+_08123D0A:
+ ldr r1, _08123D30 @ =0x3d89374c
+ bl __mulsf3
+ bl __fixunssfsi
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r5, 0x30]
+ subs r1, r0
+ strh r1, [r5, 0x22]
+ b _08123D84
+ .align 2, 0
+_08123D20: .4byte gUnknown_02039274
+_08123D24: .4byte gUnknown_0202E8CC
+_08123D28: .4byte 0x47800000
+_08123D2C: .4byte 0x3e0f5c29
+_08123D30: .4byte 0x3d89374c
+_08123D34:
+ movs r0, 0x6
+ ldrsh r4, [r6, r0]
+ adds r0, r4, 0
+ bl __floatsisf
+ cmp r4, 0
+ bge _08123D48
+ ldr r1, _08123D8C @ =0x47800000
+ bl __addsf3
+_08123D48:
+ ldr r1, _08123D90 @ =0x3e0f5c29
+ bl __mulsf3
+ bl __fixunssfsi
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r5, 0x2E]
+ adds r0, r1
+ strh r0, [r5, 0x20]
+ movs r0, 0x6
+ ldrsh r4, [r6, r0]
+ adds r0, r4, 0
+ bl __floatsisf
+ cmp r4, 0
+ bge _08123D70
+ ldr r1, _08123D8C @ =0x47800000
+ bl __addsf3
+_08123D70:
+ ldr r1, _08123D94 @ =0x3d89374c
+ bl __mulsf3
+ bl __fixunssfsi
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r5, 0x30]
+ adds r0, r1
+ strh r0, [r5, 0x22]
+_08123D84:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08123D8C: .4byte 0x47800000
+_08123D90: .4byte 0x3e0f5c29
+_08123D94: .4byte 0x3d89374c
+ thumb_func_end sub_8123CB8
+
+ thumb_func_start sub_8123D98
+sub_8123D98: @ 8123D98
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ ldr r0, _08123E04 @ =gUnknown_02039274
+ ldr r6, [r0]
+ ldrb r0, [r6, 0x1]
+ cmp r0, 0xFF
+ bne _08123DA8
+ b _08123EB0
+_08123DA8:
+ ldr r0, _08123E08 @ =gUnknown_0202E8CC
+ ldrh r0, [r0]
+ cmp r0, 0
+ bne _08123E18
+ movs r0, 0x6
+ ldrsh r4, [r6, r0]
+ adds r0, r4, 0
+ bl __floatsisf
+ cmp r4, 0
+ bge _08123DC4
+ ldr r1, _08123E0C @ =0x47800000
+ bl __addsf3
+_08123DC4:
+ ldr r1, _08123E10 @ =0x3e0f5c29
+ bl __mulsf3
+ bl __fixunssfsi
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r5, 0x2E]
+ subs r1, r0
+ strh r1, [r5, 0x20]
+ movs r1, 0x6
+ ldrsh r4, [r6, r1]
+ adds r0, r4, 0
+ bl __floatsisf
+ cmp r4, 0
+ bge _08123DEC
+ ldr r1, _08123E0C @ =0x47800000
+ bl __addsf3
+_08123DEC:
+ ldr r1, _08123E14 @ =0x3d89374c
+ bl __mulsf3
+ bl __fixunssfsi
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r5, 0x30]
+ subs r1, r0
+ strh r1, [r5, 0x22]
+ b _08123E68
+ .align 2, 0
+_08123E04: .4byte gUnknown_02039274
+_08123E08: .4byte gUnknown_0202E8CC
+_08123E0C: .4byte 0x47800000
+_08123E10: .4byte 0x3e0f5c29
+_08123E14: .4byte 0x3d89374c
+_08123E18:
+ movs r0, 0x6
+ ldrsh r4, [r6, r0]
+ adds r0, r4, 0
+ bl __floatsisf
+ cmp r4, 0
+ bge _08123E2C
+ ldr r1, _08123E8C @ =0x47800000
+ bl __addsf3
+_08123E2C:
+ ldr r1, _08123E90 @ =0x3e0f5c29
+ bl __mulsf3
+ bl __fixunssfsi
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r5, 0x2E]
+ adds r0, r1
+ strh r0, [r5, 0x20]
+ movs r0, 0x6
+ ldrsh r4, [r6, r0]
+ adds r0, r4, 0
+ bl __floatsisf
+ cmp r4, 0
+ bge _08123E54
+ ldr r1, _08123E8C @ =0x47800000
+ bl __addsf3
+_08123E54:
+ ldr r1, _08123E94 @ =0x3d89374c
+ bl __mulsf3
+ bl __fixunssfsi
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r5, 0x30]
+ adds r0, r1
+ strh r0, [r5, 0x22]
+_08123E68:
+ movs r0, 0x32
+ ldrsh r2, [r5, r0]
+ cmp r2, 0
+ bne _08123E98
+ movs r0, 0x11
+ strh r0, [r5, 0x26]
+ ldrh r0, [r5, 0x34]
+ adds r1, r0, 0x1
+ strh r1, [r5, 0x34]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x9
+ ble _08123EB0
+ strh r2, [r5, 0x34]
+ ldrh r0, [r5, 0x32]
+ adds r0, 0x1
+ strh r0, [r5, 0x32]
+ b _08123EB0
+ .align 2, 0
+_08123E8C: .4byte 0x47800000
+_08123E90: .4byte 0x3e0f5c29
+_08123E94: .4byte 0x3d89374c
+_08123E98:
+ movs r2, 0
+ movs r0, 0x10
+ strh r0, [r5, 0x26]
+ ldrh r0, [r5, 0x34]
+ adds r1, r0, 0x1
+ strh r1, [r5, 0x34]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x9
+ ble _08123EB0
+ strh r2, [r5, 0x34]
+ strh r2, [r5, 0x32]
+_08123EB0:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8123D98
+
+ thumb_func_start sub_8123EB8
+sub_8123EB8: @ 8123EB8
+ push {lr}
+ adds r2, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r2, r1]
+ cmp r0, 0
+ bne _08123EE8
+ adds r0, r2, 0
+ adds r0, 0x28
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ lsls r0, 1
+ ldrh r3, [r2, 0x20]
+ adds r0, r3
+ strh r0, [r2, 0x20]
+ ldrh r1, [r2, 0x22]
+ adds r1, 0x10
+ adds r0, r2, 0
+ adds r0, 0x29
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ adds r0, r1
+ strh r0, [r2, 0x22]
+_08123EE8:
+ ldrh r0, [r2, 0x2E]
+ adds r0, 0x1
+ strh r0, [r2, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ movs r3, 0x32
+ ldrsh r1, [r2, r3]
+ cmp r0, r1
+ blt _08123F3E
+ movs r0, 0x30
+ ldrsh r1, [r2, r0]
+ cmp r1, 0
+ beq _08123F08
+ cmp r1, 0x1
+ beq _08123F12
+ b _08123F30
+_08123F08:
+ ldrh r0, [r2, 0x20]
+ adds r0, 0x1
+ strh r0, [r2, 0x20]
+ ldrh r0, [r2, 0x2E]
+ b _08123F22
+_08123F12:
+ ldrh r0, [r2, 0x2E]
+ ands r0, r1
+ cmp r0, 0
+ beq _08123F30
+ ldrh r0, [r2, 0x20]
+ adds r0, 0x1
+ strh r0, [r2, 0x20]
+ ldrh r0, [r2, 0x20]
+_08123F22:
+ movs r1, 0x3
+ ands r0, r1
+ cmp r0, 0
+ bne _08123F30
+ ldrh r0, [r2, 0x22]
+ adds r0, 0x1
+ strh r0, [r2, 0x22]
+_08123F30:
+ movs r1, 0x22
+ ldrsh r0, [r2, r1]
+ cmp r0, 0xA0
+ ble _08123F3E
+ adds r0, r2, 0
+ bl DestroySprite
+_08123F3E:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8123EB8
+
+ thumb_func_start sub_8123F44
+sub_8123F44: @ 8123F44
+ push {lr}
+ adds r2, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r2, r1]
+ cmp r0, 0
+ bne _08123F62
+ ldrh r1, [r2, 0x22]
+ adds r1, 0x10
+ adds r0, r2, 0
+ adds r0, 0x29
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ adds r0, r1
+ strh r0, [r2, 0x22]
+_08123F62:
+ ldrh r0, [r2, 0x2E]
+ adds r0, 0x1
+ strh r0, [r2, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ movs r3, 0x32
+ ldrsh r1, [r2, r3]
+ cmp r0, r1
+ blt _08123FB8
+ movs r0, 0x30
+ ldrsh r1, [r2, r0]
+ cmp r1, 0
+ beq _08123F82
+ cmp r1, 0x1
+ beq _08123F8C
+ b _08123FAA
+_08123F82:
+ ldrh r0, [r2, 0x20]
+ subs r0, 0x1
+ strh r0, [r2, 0x20]
+ ldrh r0, [r2, 0x2E]
+ b _08123F9C
+_08123F8C:
+ ldrh r0, [r2, 0x2E]
+ ands r0, r1
+ cmp r0, 0
+ beq _08123FAA
+ ldrh r0, [r2, 0x20]
+ subs r0, 0x1
+ strh r0, [r2, 0x20]
+ ldrh r0, [r2, 0x20]
+_08123F9C:
+ movs r1, 0x3
+ ands r0, r1
+ cmp r0, 0
+ bne _08123FAA
+ ldrh r0, [r2, 0x22]
+ subs r0, 0x1
+ strh r0, [r2, 0x22]
+_08123FAA:
+ movs r1, 0x22
+ ldrsh r0, [r2, r1]
+ cmp r0, 0x4F
+ bgt _08123FB8
+ adds r0, r2, 0
+ bl DestroySprite
+_08123FB8:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8123F44
+
+ thumb_func_start sub_8123FBC
+sub_8123FBC: @ 8123FBC
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ beq _08123FCA
+ cmp r0, 0x1
+ beq _08124024
+_08123FCA:
+ ldr r1, _08124020 @ =REG_WININ
+ movs r0, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ strh r0, [r1]
+ subs r1, 0xA
+ strh r0, [r1]
+ adds r1, 0x2
+ strh r0, [r1]
+ adds r1, 0x2
+ strh r0, [r1]
+ adds r1, 0x2
+ strh r0, [r1]
+ subs r1, 0x46
+ strh r0, [r1]
+ adds r1, 0xE
+ strh r0, [r1]
+ subs r1, 0x2
+ strh r0, [r1]
+ subs r1, 0x2
+ strh r0, [r1]
+ subs r1, 0x2
+ strh r0, [r1]
+ adds r1, 0x14
+ strh r0, [r1]
+ adds r1, 0x2
+ strh r0, [r1]
+ subs r1, 0x6
+ strh r0, [r1]
+ adds r1, 0x2
+ strh r0, [r1]
+ subs r1, 0x6
+ strh r0, [r1]
+ adds r1, 0x2
+ strh r0, [r1]
+ subs r1, 0x6
+ strh r0, [r1]
+ adds r1, 0x2
+ strh r0, [r1]
+ adds r1, 0x3E
+ strh r0, [r1]
+ b _081240EE
+ .align 2, 0
+_08124020: .4byte REG_WININ
+_08124024:
+ ldr r0, _08124060 @ =REG_WININ
+ movs r3, 0
+ strh r3, [r0]
+ adds r0, 0x2
+ strh r3, [r0]
+ subs r0, 0xA
+ strh r3, [r0]
+ adds r0, 0x2
+ strh r3, [r0]
+ adds r0, 0x2
+ strh r3, [r0]
+ adds r0, 0x2
+ strh r3, [r0]
+ ldr r0, _08124064 @ =gUnknown_0202E8CC
+ ldrh r0, [r0]
+ cmp r0, 0
+ bne _0812406C
+ ldr r1, _08124068 @ =gUnknown_02039274
+ ldr r2, [r1]
+ movs r0, 0xB0
+ strb r0, [r2, 0x14]
+ ldr r2, [r1]
+ movs r0, 0x10
+ strb r0, [r2, 0x15]
+ ldr r0, [r1]
+ strb r3, [r0, 0xC]
+ ldr r2, [r1]
+ movs r0, 0x50
+ b _08124082
+ .align 2, 0
+_08124060: .4byte REG_WININ
+_08124064: .4byte gUnknown_0202E8CC
+_08124068: .4byte gUnknown_02039274
+_0812406C:
+ ldr r1, _081240F4 @ =gUnknown_02039274
+ ldr r2, [r1]
+ movs r0, 0x60
+ strb r0, [r2, 0x14]
+ ldr r2, [r1]
+ movs r0, 0xE8
+ strb r0, [r2, 0x15]
+ ldr r0, [r1]
+ strb r3, [r0, 0xC]
+ ldr r2, [r1]
+ movs r0, 0x4
+_08124082:
+ strb r0, [r2, 0xD]
+ ldr r0, [r1]
+ strb r3, [r0, 0x9]
+ ldr r0, [r1]
+ strb r3, [r0, 0x9]
+ adds r2, r1, 0
+ ldr r1, _081240F8 @ =REG_BG3HOFS
+ ldr r2, [r2]
+ ldrb r0, [r2, 0x14]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldrb r0, [r2, 0x15]
+ strh r0, [r1]
+ ldr r0, _081240FC @ =REG_BG2HOFS
+ movs r1, 0
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ ldr r1, _08124100 @ =REG_BG1HOFS
+ ldrb r0, [r2, 0xC]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldrb r0, [r2, 0xD]
+ strh r0, [r1]
+ subs r1, 0x6
+ ldrb r0, [r2, 0x8]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldrb r0, [r2, 0x9]
+ strh r0, [r1]
+ subs r1, 0xA
+ ldr r2, _08124104 @ =0x00003c01
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r3, _08124108 @ =0x00003d02
+ adds r0, r3, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r2, _0812410C @ =0x00003e03
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r0, _08124110 @ =REG_BG3CNT
+ movs r3, 0xFC
+ lsls r3, 6
+ adds r2, r3, 0
+ strh r2, [r0]
+ subs r1, 0xC
+ movs r3, 0xFA
+ lsls r3, 5
+ adds r0, r3, 0
+ strh r0, [r1]
+ ldr r0, _08124114 @ =REG_BLDCNT
+ strh r2, [r0]
+_081240EE:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081240F4: .4byte gUnknown_02039274
+_081240F8: .4byte REG_BG3HOFS
+_081240FC: .4byte REG_BG2HOFS
+_08124100: .4byte REG_BG1HOFS
+_08124104: .4byte 0x00003c01
+_08124108: .4byte 0x00003d02
+_0812410C: .4byte 0x00003e03
+_08124110: .4byte REG_BG3CNT
+_08124114: .4byte REG_BLDCNT
+ thumb_func_end sub_8123FBC
+
+ thumb_func_start sub_8124118
+sub_8124118: @ 8124118
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x24
+ ldr r1, _0812422C @ =gCableCarPlayerGraphicsIDs
+ add r0, sp, 0x8
+ movs r2, 0x2
+ bl memcpy
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ mov r9, r0
+ add r6, sp, 0xC
+ ldr r1, _08124230 @ =gMtChimneyHikerGraphicsIDs
+ adds r0, r6, 0
+ movs r2, 0x4
+ bl memcpy
+ add r5, sp, 0x10
+ ldr r1, _08124234 @ =gMtChimneyHikerCoords
+ adds r0, r5, 0
+ movs r2, 0x8
+ bl memcpy
+ add r4, sp, 0x18
+ ldr r1, _08124238 @ =gMtChimneyHikerMovementDelayTable
+ adds r0, r4, 0
+ movs r2, 0x4
+ bl memcpy
+ ldr r0, _0812423C @ =gUnknown_08401D9C
+ ldr r1, [r0, 0x4]
+ ldr r0, [r0]
+ str r0, [sp, 0x1C]
+ str r1, [sp, 0x20]
+ ldr r0, _08124240 @ =gUnknown_0202E8CC
+ ldrh r0, [r0]
+ mov r8, r6
+ mov r10, r5
+ cmp r0, 0
+ beq _08124176
+ cmp r0, 0x1
+ beq _08124258
+_08124176:
+ ldr r0, _08124244 @ =gSaveBlock2
+ ldrb r0, [r0, 0x8]
+ add r0, sp
+ adds r0, 0x8
+ ldrb r0, [r0]
+ ldr r1, _08124248 @ =sub_8123D98
+ movs r2, 0x66
+ str r2, [sp]
+ movs r2, 0xC8
+ movs r3, 0x49
+ bl AddPseudoFieldObject
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, 0x40
+ beq _081241BE
+ ldr r0, _0812424C @ =gSprites
+ lsls r1, r6, 4
+ adds r1, r6
+ lsls r1, 2
+ adds r1, r0
+ ldrb r2, [r1, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ movs r2, 0x8
+ orrs r0, r2
+ strb r0, [r1, 0x5]
+ movs r0, 0x8
+ strh r0, [r1, 0x24]
+ movs r0, 0x10
+ strh r0, [r1, 0x26]
+ movs r0, 0xC8
+ strh r0, [r1, 0x2E]
+ movs r0, 0x49
+ strh r0, [r1, 0x30]
+_081241BE:
+ ldr r4, _08124250 @ =gSpriteTemplate_8401D40
+ adds r0, r4, 0
+ movs r1, 0xB0
+ movs r2, 0x2B
+ movs r3, 0x67
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r5, _0812424C @ =gSprites
+ lsls r0, r6, 4
+ adds r0, r6
+ lsls r0, 2
+ adds r0, r5
+ movs r1, 0x20
+ strh r1, [r0, 0x26]
+ strh r1, [r0, 0x24]
+ movs r1, 0xB0
+ strh r1, [r0, 0x2E]
+ movs r1, 0x2B
+ strh r1, [r0, 0x30]
+ adds r4, 0x18
+ adds r0, r4, 0
+ movs r1, 0xC8
+ movs r2, 0x63
+ movs r3, 0x65
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r0, r6, 4
+ adds r0, r6
+ lsls r0, 2
+ adds r0, r5
+ movs r1, 0x8
+ strh r1, [r0, 0x24]
+ movs r1, 0x4
+ strh r1, [r0, 0x26]
+ movs r1, 0xC8
+ strh r1, [r0, 0x2E]
+ movs r1, 0x63
+ strh r1, [r0, 0x30]
+ ldr r2, _08124254 @ =gUnknown_02039274
+ ldr r1, [r2]
+ movs r0, 0x7
+ strb r0, [r1, 0x2]
+ ldr r1, [r2]
+ movs r0, 0xAF
+ lsls r0, 1
+ strh r0, [r1, 0x4]
+ movs r0, 0x2
+ bl sub_807C9B4
+ b _0812431E
+ .align 2, 0
+_0812422C: .4byte gCableCarPlayerGraphicsIDs
+_08124230: .4byte gMtChimneyHikerGraphicsIDs
+_08124234: .4byte gMtChimneyHikerCoords
+_08124238: .4byte gMtChimneyHikerMovementDelayTable
+_0812423C: .4byte gUnknown_08401D9C
+_08124240: .4byte gUnknown_0202E8CC
+_08124244: .4byte gSaveBlock2
+_08124248: .4byte sub_8123D98
+_0812424C: .4byte gSprites
+_08124250: .4byte gSpriteTemplate_8401D40
+_08124254: .4byte gUnknown_02039274
+_08124258:
+ ldr r7, _081243EC @ =gUnknown_02039274
+ ldr r0, [r7]
+ adds r0, 0xFC
+ ldr r1, _081243F0 @ =0x02019048
+ movs r2, 0xC
+ str r2, [sp]
+ movs r2, 0x3
+ str r2, [sp, 0x4]
+ movs r2, 0x18
+ movs r3, 0x1A
+ bl sub_8124F08
+ ldr r0, _081243F4 @ =gSaveBlock2
+ ldrb r0, [r0, 0x8]
+ add r0, sp
+ adds r0, 0x8
+ ldrb r0, [r0]
+ ldr r1, _081243F8 @ =sub_8123D98
+ movs r2, 0x66
+ str r2, [sp]
+ movs r2, 0x80
+ movs r3, 0x27
+ bl AddPseudoFieldObject
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, 0x40
+ beq _081242B8
+ ldr r0, _081243FC @ =gSprites
+ lsls r1, r6, 4
+ adds r1, r6
+ lsls r1, 2
+ adds r1, r0
+ ldrb r2, [r1, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ movs r2, 0x8
+ orrs r0, r2
+ strb r0, [r1, 0x5]
+ movs r0, 0x8
+ strh r0, [r1, 0x24]
+ movs r0, 0x10
+ strh r0, [r1, 0x26]
+ movs r0, 0x80
+ strh r0, [r1, 0x2E]
+ movs r0, 0x27
+ strh r0, [r1, 0x30]
+_081242B8:
+ ldr r4, _08124400 @ =gSpriteTemplate_8401D40
+ adds r0, r4, 0
+ movs r1, 0x68
+ movs r2, 0x9
+ movs r3, 0x67
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r5, _081243FC @ =gSprites
+ lsls r0, r6, 4
+ adds r0, r6
+ lsls r0, 2
+ adds r0, r5
+ movs r1, 0x20
+ strh r1, [r0, 0x26]
+ strh r1, [r0, 0x24]
+ movs r1, 0x68
+ strh r1, [r0, 0x2E]
+ movs r1, 0x9
+ strh r1, [r0, 0x30]
+ adds r4, 0x18
+ adds r0, r4, 0
+ movs r1, 0x80
+ movs r2, 0x41
+ movs r3, 0x65
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r0, r6, 4
+ adds r0, r6
+ lsls r0, 2
+ adds r0, r5
+ movs r1, 0x8
+ strh r1, [r0, 0x24]
+ movs r1, 0x4
+ strh r1, [r0, 0x26]
+ movs r1, 0x80
+ strh r1, [r0, 0x2E]
+ movs r1, 0x41
+ strh r1, [r0, 0x30]
+ ldr r1, [r7]
+ movs r0, 0x2
+ strb r0, [r1, 0x2]
+ ldr r1, [r7]
+ ldr r0, _08124404 @ =0x00000109
+ strh r0, [r1, 0x4]
+ movs r0, 0x7
+ bl sub_807C9B4
+_0812431E:
+ movs r4, 0
+ ldr r5, _081243FC @ =gSprites
+_08124322:
+ lsls r1, r4, 20
+ movs r0, 0xC0
+ lsls r0, 15
+ adds r1, r0
+ asrs r1, 16
+ lsls r2, r4, 19
+ ldr r3, _08124408 @ =0xfff80000
+ adds r2, r3
+ asrs r2, 16
+ ldr r0, _0812440C @ =gSpriteTemplate_8401D70
+ movs r3, 0x68
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r0, r6, 4
+ adds r0, r6
+ lsls r0, 2
+ adds r0, r5
+ movs r1, 0x8
+ strh r1, [r0, 0x24]
+ strh r1, [r0, 0x26]
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x8
+ bls _08124322
+ movs r0, 0x3F
+ mov r4, r9
+ ands r0, r4
+ cmp r0, 0
+ bne _08124458
+ mov r0, r9
+ movs r1, 0x3
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r0, 16
+ add r0, r8
+ ldrb r0, [r0]
+ ldr r5, _08124410 @ =gUnknown_0202E8CC
+ ldrh r4, [r5]
+ lsls r4, 2
+ add r1, sp, 0x1C
+ adds r1, r4, r1
+ ldr r1, [r1]
+ mov r3, r10
+ adds r2, r3, r4
+ movs r3, 0
+ ldrsh r2, [r2, r3]
+ mov r3, sp
+ adds r3, 0x12
+ adds r3, r4
+ movs r4, 0
+ ldrsh r3, [r3, r4]
+ movs r4, 0x6A
+ str r4, [sp]
+ bl AddPseudoFieldObject
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, 0x40
+ beq _08124458
+ ldr r1, _081243FC @ =gSprites
+ lsls r2, r6, 4
+ adds r0, r2, r6
+ lsls r0, 2
+ adds r4, r0, r1
+ ldrb r1, [r4, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x8
+ orrs r0, r1
+ strb r0, [r4, 0x5]
+ adds r0, r4, 0
+ adds r0, 0x28
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ negs r0, r0
+ strh r0, [r4, 0x24]
+ adds r0, r4, 0
+ adds r0, 0x29
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ negs r0, r0
+ strh r0, [r4, 0x26]
+ ldrh r0, [r5]
+ mov r8, r2
+ cmp r0, 0
+ bne _0812441A
+ movs r7, 0x1
+ mov r5, r9
+ ands r5, r7
+ cmp r5, 0
+ beq _08124414
+ adds r0, r4, 0
+ movs r1, 0x6
+ b _08124428
+ .align 2, 0
+_081243EC: .4byte gUnknown_02039274
+_081243F0: .4byte 0x02019048
+_081243F4: .4byte gSaveBlock2
+_081243F8: .4byte sub_8123D98
+_081243FC: .4byte gSprites
+_08124400: .4byte gSpriteTemplate_8401D40
+_08124404: .4byte 0x00000109
+_08124408: .4byte 0xfff80000
+_0812440C: .4byte gSpriteTemplate_8401D70
+_08124410: .4byte gUnknown_0202E8CC
+_08124414:
+ adds r0, r4, 0
+ movs r1, 0x7
+ b _0812443A
+_0812441A:
+ movs r7, 0x1
+ mov r5, r9
+ ands r5, r7
+ cmp r5, 0
+ beq _08124436
+ adds r0, r4, 0
+ movs r1, 0x7
+_08124428:
+ bl StartSpriteAnim
+ strh r7, [r4, 0x30]
+ ldrh r0, [r4, 0x22]
+ adds r0, 0x2
+ strh r0, [r4, 0x22]
+ b _08124440
+_08124436:
+ adds r0, r4, 0
+ movs r1, 0x6
+_0812443A:
+ bl StartSpriteAnim
+ strh r5, [r4, 0x30]
+_08124440:
+ ldr r0, _08124468 @ =gSprites
+ mov r2, r8
+ adds r1, r2, r6
+ lsls r1, 2
+ adds r1, r0
+ movs r0, 0x3
+ mov r3, r9
+ ands r0, r3
+ add r0, sp
+ adds r0, 0x18
+ ldrb r0, [r0]
+ strh r0, [r1, 0x32]
+_08124458:
+ 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
+_08124468: .4byte gSprites
+ thumb_func_end sub_8124118
+
+ thumb_func_start sub_812446C
+sub_812446C: @ 812446C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ movs r3, 0
+ mov r9, r3
+ ldr r2, _08124530 @ =gUnknown_02039274
+ ldr r0, [r2]
+ ldrb r1, [r0, 0x1B]
+ adds r1, 0x2
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 26
+ lsrs r0, 24
+ mov r12, r0
+_0812448E:
+ movs r6, 0
+ lsls r0, r3, 1
+ adds r1, r3, 0x3
+ adds r2, r3, 0x6
+ adds r4, r3, 0x1
+ str r4, [sp]
+ adds r0, r3
+ lsls r0, 3
+ mov r10, r0
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 3
+ mov r8, r0
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 3
+ str r0, [sp, 0x4]
+_081244B0:
+ ldr r7, _08124530 @ =gUnknown_02039274
+ ldr r5, [r7]
+ lsls r3, r6, 1
+ mov r0, r10
+ adds r2, r3, r0
+ adds r4, r5, 0
+ adds r4, 0x22
+ adds r2, r4, r2
+ mov r1, r12
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r12, r0
+ lsls r1, 1
+ ldr r7, _08124534 @ =0x02019000
+ adds r1, r7
+ ldrh r0, [r1]
+ strh r0, [r2]
+ mov r0, r8
+ adds r1, r3, r0
+ adds r1, r4, r1
+ mov r7, r9
+ lsls r2, r7, 1
+ ldr r7, _08124534 @ =0x02019000
+ adds r0, r2, r7
+ ldrh r0, [r0]
+ strh r0, [r1]
+ ldr r0, [sp, 0x4]
+ adds r3, r0
+ adds r4, r3
+ ldr r1, _08124538 @ =0x02019048
+ adds r2, r1
+ ldrh r0, [r2]
+ strh r0, [r4]
+ mov r0, r9
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, 0xB
+ bls _081244B0
+ ldr r4, [sp]
+ lsls r0, r4, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x2
+ bls _0812448E
+ ldrb r0, [r5, 0x1B]
+ adds r0, 0x1
+ movs r1, 0x3
+ bl __modsi3
+ strb r0, [r5, 0x1B]
+ 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
+_08124530: .4byte gUnknown_02039274
+_08124534: .4byte 0x02019000
+_08124538: .4byte 0x02019048
+ thumb_func_end sub_812446C
+
+ thumb_func_start sub_812453C
+sub_812453C: @ 812453C
+ push {r4,r5,lr}
+ ldr r5, _08124594 @ =gUnknown_02039274
+ ldr r4, [r5]
+ ldrb r0, [r4, 0x1C]
+ adds r0, 0x1
+ movs r1, 0x60
+ bl __modsi3
+ strb r0, [r4, 0x1C]
+ ldr r1, [r5]
+ ldrb r0, [r1, 0x1F]
+ ldrb r2, [r1, 0x1D]
+ subs r0, r2
+ strb r0, [r1, 0x8]
+ ldr r2, [r5]
+ adds r0, r2, 0
+ adds r0, 0x20
+ ldrb r0, [r0]
+ ldrb r1, [r2, 0x1E]
+ subs r0, r1
+ strb r0, [r2, 0x9]
+ ldr r1, [r5]
+ ldrb r0, [r1, 0x1D]
+ adds r0, 0x1
+ strb r0, [r1, 0x1D]
+ ldr r2, [r5]
+ ldrb r0, [r2, 0x1D]
+ movs r1, 0x3
+ ands r0, r1
+ cmp r0, 0
+ bne _08124580
+ ldrb r0, [r2, 0x1E]
+ adds r0, 0x1
+ strb r0, [r2, 0x1E]
+_08124580:
+ ldr r0, [r5]
+ ldrb r0, [r0, 0x1D]
+ cmp r0, 0x10
+ bls _0812458C
+ bl sub_81245F4
+_0812458C:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08124594: .4byte gUnknown_02039274
+ thumb_func_end sub_812453C
+
+ thumb_func_start sub_8124598
+sub_8124598: @ 8124598
+ push {r4,r5,lr}
+ ldr r5, _081245F0 @ =gUnknown_02039274
+ ldr r4, [r5]
+ ldrb r0, [r4, 0x1C]
+ adds r0, 0x1
+ movs r1, 0x60
+ bl __modsi3
+ strb r0, [r4, 0x1C]
+ ldr r1, [r5]
+ ldrb r0, [r1, 0x1D]
+ ldrb r2, [r1, 0x1F]
+ adds r0, r2
+ strb r0, [r1, 0x8]
+ ldr r1, [r5]
+ adds r2, r1, 0
+ adds r2, 0x20
+ ldrb r0, [r1, 0x1E]
+ ldrb r2, [r2]
+ adds r0, r2
+ strb r0, [r1, 0x9]
+ ldr r1, [r5]
+ ldrb r0, [r1, 0x1D]
+ adds r0, 0x1
+ strb r0, [r1, 0x1D]
+ ldr r2, [r5]
+ ldrb r0, [r2, 0x1D]
+ movs r1, 0x3
+ ands r0, r1
+ cmp r0, 0
+ bne _081245DC
+ ldrb r0, [r2, 0x1E]
+ adds r0, 0x1
+ strb r0, [r2, 0x1E]
+_081245DC:
+ ldr r0, [r5]
+ ldrb r0, [r0, 0x1D]
+ cmp r0, 0x10
+ bls _081245E8
+ bl sub_812476C
+_081245E8:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081245F0: .4byte gUnknown_02039274
+ thumb_func_end sub_8124598
+
+ thumb_func_start sub_81245F4
+sub_81245F4: @ 81245F4
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ movs r0, 0
+ mov r12, r0
+ ldr r2, _0812475C @ =gUnknown_02039274
+ ldr r0, [r2]
+ mov r1, r12
+ strb r1, [r0, 0x1E]
+ strb r1, [r0, 0x1D]
+ ldr r1, [r2]
+ ldrb r0, [r1, 0x8]
+ strb r0, [r1, 0x1F]
+ ldr r0, [r2]
+ ldrb r1, [r0, 0x9]
+ adds r0, 0x20
+ strb r1, [r0]
+ ldr r4, [r2]
+ ldrb r1, [r4, 0x19]
+ adds r3, r1, 0
+ adds r3, 0x1E
+ adds r0, r3, 0
+ mov r9, r2
+ asrs r0, 5
+ lsls r0, 5
+ subs r0, r3, r0
+ strb r0, [r4, 0x19]
+ mov r2, r9
+ ldr r1, [r2]
+ ldrb r0, [r1, 0x18]
+ subs r0, 0x2
+ strb r0, [r1, 0x18]
+ ldr r0, [r2]
+ ldrb r1, [r0, 0x1A]
+ adds r2, r1, 0
+ adds r2, 0x17
+ adds r0, r2, 0
+ ldr r3, _08124760 @ =gUnknown_0203927A
+ mov r10, r3
+ asrs r0, 5
+ lsls r0, 5
+ subs r0, r2, r0
+ mov r4, r10
+ strb r0, [r4]
+ ldr r7, _08124764 @ =gUnknown_02039278
+ ldr r0, _08124768 @ =gUnknown_02039279
+ mov r8, r0
+_08124658:
+ mov r1, r9
+ ldr r3, [r1]
+ ldrb r0, [r3, 0x19]
+ strb r0, [r7]
+ mov r2, r10
+ ldrb r0, [r2]
+ mov r4, r12
+ adds r1, r0, r4
+ adds r0, r1, 0
+ asrs r0, 5
+ lsls r0, 5
+ subs r0, r1, r0
+ mov r1, r8
+ strb r0, [r1]
+ ldrb r2, [r7]
+ lsls r2, 1
+ ldrb r0, [r1]
+ lsls r0, 6
+ adds r2, r0
+ adds r6, r3, 0
+ adds r6, 0xFC
+ adds r2, r6, r2
+ ldrb r1, [r3, 0x18]
+ lsls r1, 1
+ mov r4, r12
+ lsls r0, r4, 1
+ add r0, r12
+ lsls r5, r0, 3
+ adds r1, r5
+ adds r4, r3, 0
+ adds r4, 0x22
+ adds r1, r4, r1
+ ldrh r0, [r1]
+ strh r0, [r2]
+ ldrb r1, [r7]
+ adds r2, r1, 0x1
+ adds r0, r2, 0
+ asrs r0, 5
+ lsls r0, 5
+ subs r0, r2, r0
+ strb r0, [r7]
+ ldrb r1, [r7]
+ lsls r1, 1
+ mov r2, r8
+ ldrb r0, [r2]
+ lsls r0, 6
+ adds r1, r0
+ adds r1, r6, r1
+ ldrb r0, [r3, 0x18]
+ adds r0, 0x1
+ lsls r0, 1
+ adds r0, r5
+ adds r0, r4, r0
+ ldrh r0, [r0]
+ strh r0, [r1]
+ mov r0, r12
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r12, r0
+ cmp r0, 0x8
+ bls _08124658
+ ldr r4, _08124764 @ =gUnknown_02039278
+ mov r5, r9
+ ldr r3, [r5]
+ ldrb r1, [r3, 0x19]
+ adds r2, r1, 0
+ adds r2, 0x1E
+ adds r0, r2, 0
+ asrs r0, 5
+ lsls r0, 5
+ subs r0, r2, r0
+ strb r0, [r4]
+ adds r0, r3, 0
+ adds r0, 0xFC
+ ldrb r2, [r4]
+ movs r1, 0x2
+ str r1, [sp]
+ movs r6, 0x20
+ str r6, [sp, 0x4]
+ movs r1, 0
+ movs r3, 0
+ bl sub_8124E7C
+ ldr r1, [r5]
+ ldrb r0, [r1, 0x18]
+ cmp r0, 0
+ bne _0812474C
+ ldrb r2, [r1, 0x1A]
+ adds r3, r2, 0
+ adds r3, 0x1D
+ adds r0, r3, 0
+ asrs r0, 5
+ lsls r0, 5
+ subs r0, r3, r0
+ strb r0, [r1, 0x1A]
+ mov r3, r9
+ ldr r1, [r3]
+ movs r0, 0xC
+ strb r0, [r1, 0x18]
+ bl sub_812446C
+ mov r4, r9
+ ldr r1, [r4]
+ ldrb r3, [r1, 0x1A]
+ adds r4, r3, 0x1
+ adds r0, r4, 0
+ asrs r0, 5
+ lsls r0, 5
+ subs r0, r4, r0
+ ldr r2, _08124764 @ =gUnknown_02039278
+ strb r0, [r2]
+ adds r0, r1, 0
+ adds r0, 0xFC
+ ldrb r3, [r2]
+ str r6, [sp]
+ movs r1, 0x9
+ str r1, [sp, 0x4]
+ movs r1, 0
+ movs r2, 0
+ bl sub_8124E7C
+_0812474C:
+ 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
+_0812475C: .4byte gUnknown_02039274
+_08124760: .4byte gUnknown_0203927A
+_08124764: .4byte gUnknown_02039278
+_08124768: .4byte gUnknown_02039279
+ thumb_func_end sub_81245F4
+
+ thumb_func_start sub_812476C
+sub_812476C: @ 812476C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ movs r0, 0
+ mov r12, r0
+ ldr r2, _0812489C @ =gUnknown_02039274
+ ldr r0, [r2]
+ mov r1, r12
+ strb r1, [r0, 0x1E]
+ strb r1, [r0, 0x1D]
+ ldr r1, [r2]
+ ldrb r0, [r1, 0x8]
+ strb r0, [r1, 0x1F]
+ ldr r0, [r2]
+ ldrb r1, [r0, 0x9]
+ adds r0, 0x20
+ strb r1, [r0]
+ ldr r4, [r2]
+ ldrb r1, [r4, 0x19]
+ adds r3, r1, 0x2
+ adds r0, r3, 0
+ mov r9, r2
+ asrs r0, 5
+ lsls r0, 5
+ subs r0, r3, r0
+ strb r0, [r4, 0x19]
+ mov r2, r9
+ ldr r1, [r2]
+ ldrb r0, [r1, 0x18]
+ adds r0, 0x2
+ strb r0, [r1, 0x18]
+ ldr r1, _081248A0 @ =gUnknown_0203927D
+ ldr r0, [r2]
+ ldrb r0, [r0, 0x1A]
+ strb r0, [r1]
+ ldr r4, _081248A4 @ =gUnknown_0203927C
+ mov r10, r4
+ ldr r7, _081248A8 @ =gUnknown_0203927B
+ mov r8, r10
+_081247C0:
+ mov r0, r9
+ ldr r3, [r0]
+ ldrb r0, [r3, 0x19]
+ strb r0, [r7]
+ ldr r1, _081248A0 @ =gUnknown_0203927D
+ ldrb r0, [r1]
+ mov r2, r12
+ adds r1, r0, r2
+ adds r0, r1, 0
+ asrs r0, 5
+ lsls r0, 5
+ subs r0, r1, r0
+ mov r4, r8
+ strb r0, [r4]
+ ldrb r2, [r7]
+ lsls r2, 1
+ ldrb r0, [r4]
+ lsls r0, 6
+ adds r2, r0
+ adds r6, r3, 0
+ adds r6, 0xFC
+ adds r2, r6, r2
+ ldrb r1, [r3, 0x18]
+ lsls r1, 1
+ mov r4, r12
+ lsls r0, r4, 1
+ add r0, r12
+ lsls r5, r0, 3
+ adds r1, r5
+ adds r4, r3, 0
+ adds r4, 0x22
+ adds r1, r4, r1
+ ldrh r0, [r1]
+ strh r0, [r2]
+ ldrb r1, [r7]
+ adds r2, r1, 0x1
+ adds r0, r2, 0
+ asrs r0, 5
+ lsls r0, 5
+ subs r0, r2, r0
+ strb r0, [r7]
+ ldrb r1, [r7]
+ lsls r1, 1
+ mov r2, r8
+ ldrb r0, [r2]
+ lsls r0, 6
+ adds r1, r0
+ adds r1, r6, r1
+ ldrb r0, [r3, 0x18]
+ adds r0, 0x1
+ lsls r0, 1
+ adds r0, r5
+ adds r0, r4, r0
+ ldrh r0, [r0]
+ strh r0, [r1]
+ mov r0, r12
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r12, r0
+ cmp r0, 0x8
+ bls _081247C0
+ mov r4, r9
+ ldr r1, [r4]
+ ldrb r2, [r1, 0x1A]
+ adds r3, r2, 0
+ adds r3, 0x17
+ adds r0, r3, 0
+ asrs r0, 5
+ lsls r0, 5
+ subs r0, r3, r0
+ mov r2, r10
+ strb r0, [r2]
+ adds r0, r1, 0
+ adds r0, 0xFC
+ ldrb r2, [r1, 0x19]
+ mov r1, r10
+ ldrb r3, [r1]
+ movs r1, 0x2
+ str r1, [sp]
+ movs r1, 0x9
+ str r1, [sp, 0x4]
+ movs r1, 0
+ bl sub_8124E7C
+ ldr r1, [r4]
+ ldrb r0, [r1, 0x18]
+ cmp r0, 0xA
+ bne _0812488C
+ ldrb r2, [r1, 0x1A]
+ adds r3, r2, 0x3
+ adds r0, r3, 0
+ asrs r0, 5
+ lsls r0, 5
+ subs r0, r3, r0
+ strb r0, [r1, 0x1A]
+ mov r2, r9
+ ldr r1, [r2]
+ movs r0, 0xFE
+ strb r0, [r1, 0x18]
+ bl sub_812446C
+_0812488C:
+ 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
+_0812489C: .4byte gUnknown_02039274
+_081248A0: .4byte gUnknown_0203927D
+_081248A4: .4byte gUnknown_0203927C
+_081248A8: .4byte gUnknown_0203927B
+ thumb_func_end sub_812476C
+
+ thumb_func_start sub_81248AC
+sub_81248AC: @ 81248AC
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ beq _081248BA
+ cmp r0, 0x1
+ beq _081248E4
+_081248BA:
+ ldr r1, _081248E0 @ =gUnknown_02039274
+ ldr r2, [r1]
+ movs r3, 0
+ movs r0, 0x2
+ strb r0, [r2, 0x1B]
+ ldr r0, [r1]
+ strb r3, [r0, 0x19]
+ ldr r2, [r1]
+ movs r0, 0x14
+ strb r0, [r2, 0x1A]
+ ldr r1, [r1]
+ movs r0, 0xC
+ strb r0, [r1, 0x18]
+ bl sub_812446C
+ bl sub_81245F4
+ b _08124906
+ .align 2, 0
+_081248E0: .4byte gUnknown_02039274
+_081248E4:
+ ldr r1, _08124914 @ =gUnknown_02039274
+ ldr r2, [r1]
+ movs r0, 0x2
+ strb r0, [r2, 0x1B]
+ ldr r2, [r1]
+ movs r0, 0x1C
+ strb r0, [r2, 0x19]
+ ldr r2, [r1]
+ movs r0, 0x14
+ strb r0, [r2, 0x1A]
+ ldr r1, [r1]
+ movs r0, 0x4
+ strb r0, [r1, 0x18]
+ bl sub_812446C
+ bl sub_812476C
+_08124906:
+ ldr r0, _08124914 @ =gUnknown_02039274
+ ldr r1, [r0]
+ movs r0, 0
+ strb r0, [r1, 0x1C]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08124914: .4byte gUnknown_02039274
+ thumb_func_end sub_81248AC
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/cable_car_util.s b/asm/cable_car_util.s
new file mode 100644
index 000000000..950a31c4a
--- /dev/null
+++ b/asm/cable_car_util.s
@@ -0,0 +1,163 @@
+ .include "constants/gba_constants.s"
+ .include "constants/species_constants.s"
+ .include "asm/macros.s"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_8124E7C
+sub_8124E7C: @ 8124E7C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ mov r10, r0
+ ldr r0, [sp, 0x24]
+ ldr r4, [sp, 0x28]
+ lsls r1, 16
+ lsrs r1, 16
+ mov r9, r1
+ lsls r2, 24
+ lsrs r2, 24
+ str r2, [sp]
+ lsls r3, 24
+ lsls r0, 24
+ lsrs r7, r0, 24
+ lsls r4, 24
+ lsrs r4, 24
+ mov r8, r4
+ movs r0, 0
+ lsrs r4, r3, 24
+ cmp r0, r8
+ bcs _08124EF6
+_08124EAE:
+ ldr r2, [sp]
+ movs r3, 0
+ adds r6, r4, 0x1
+ adds r0, 0x1
+ mov r12, r0
+ cmp r3, r7
+ bcs _08124EE0
+ lsls r5, r4, 6
+_08124EBE:
+ lsls r0, r2, 1
+ adds r0, r5
+ add r0, r10
+ mov r1, r9
+ strh r1, [r0]
+ adds r1, r2, 0x1
+ adds r0, r1, 0
+ asrs r0, 5
+ lsls r0, 5
+ subs r0, r1, r0
+ lsls r0, 24
+ lsrs r2, r0, 24
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, r7
+ bcc _08124EBE
+_08124EE0:
+ adds r0, r6, 0
+ asrs r0, 5
+ lsls r0, 5
+ subs r0, r6, r0
+ lsls r0, 24
+ lsrs r4, r0, 24
+ mov r1, r12
+ lsls r0, r1, 24
+ lsrs r0, 24
+ cmp r0, r8
+ bcc _08124EAE
+_08124EF6:
+ 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_8124E7C
+
+ thumb_func_start sub_8124F08
+sub_8124F08: @ 8124F08
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ mov r10, r0
+ ldr r0, [sp, 0x24]
+ ldr r4, [sp, 0x28]
+ lsls r2, 24
+ lsrs r2, 24
+ str r2, [sp]
+ lsls r3, 24
+ lsls r0, 24
+ lsrs r0, 24
+ mov r12, r0
+ lsls r4, 24
+ lsrs r4, 24
+ mov r9, r4
+ movs r0, 0
+ adds r5, r1, 0
+ lsrs r4, r3, 24
+ cmp r0, r9
+ bcs _08124F82
+_08124F38:
+ ldr r2, [sp]
+ movs r3, 0
+ adds r7, r4, 0x1
+ adds r0, 0x1
+ mov r8, r0
+ cmp r3, r12
+ bcs _08124F6C
+ lsls r6, r4, 6
+_08124F48:
+ lsls r0, r2, 1
+ adds r0, r6
+ add r0, r10
+ ldrh r1, [r5]
+ strh r1, [r0]
+ adds r5, 0x2
+ adds r1, r2, 0x1
+ adds r0, r1, 0
+ asrs r0, 5
+ lsls r0, 5
+ subs r0, r1, r0
+ lsls r0, 24
+ lsrs r2, r0, 24
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, r12
+ bcc _08124F48
+_08124F6C:
+ adds r0, r7, 0
+ asrs r0, 5
+ lsls r0, 5
+ subs r0, r7, r0
+ lsls r0, 24
+ lsrs r4, r0, 24
+ mov r1, r8
+ lsls r0, r1, 24
+ lsrs r0, 24
+ cmp r0, r9
+ bcc _08124F38
+_08124F82:
+ 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_8124F08
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/choose_party.s b/asm/choose_party.s
new file mode 100644
index 000000000..07125dfae
--- /dev/null
+++ b/asm/choose_party.s
@@ -0,0 +1,2509 @@
+ .include "constants/gba_constants.s"
+ .include "constants/species_constants.s"
+ .include "asm/macros.s"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_8121E10
+sub_8121E10: @ 8121E10
+ push {lr}
+ bl sub_8121E58
+ ldr r0, _08121E2C @ =0x0201b000
+ ldr r1, _08121E30 @ =0x00000263
+ adds r0, r1
+ movs r1, 0
+ strb r1, [r0]
+ movs r0, 0x4
+ bl OpenPartyMenu
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08121E2C: .4byte 0x0201b000
+_08121E30: .4byte 0x00000263
+ thumb_func_end sub_8121E10
+
+ thumb_func_start sub_8121E34
+sub_8121E34: @ 8121E34
+ push {lr}
+ bl sub_8121E58
+ ldr r0, _08121E50 @ =0x0201b000
+ ldr r1, _08121E54 @ =0x00000263
+ adds r0, r1
+ movs r1, 0x1
+ strb r1, [r0]
+ movs r0, 0x4
+ movs r1, 0
+ bl OpenPartyMenu
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08121E50: .4byte 0x0201b000
+_08121E54: .4byte 0x00000263
+ thumb_func_end sub_8121E34
+
+ thumb_func_start sub_8121E58
+sub_8121E58: @ 8121E58
+ push {lr}
+ movs r1, 0
+ ldr r3, _08121E74 @ =gUnknown_02039270
+ movs r2, 0
+_08121E60:
+ adds r0, r1, r3
+ strb r2, [r0]
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x2
+ bls _08121E60
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08121E74: .4byte gUnknown_02039270
+ thumb_func_end sub_8121E58
+
+ thumb_func_start sub_8121E78
+sub_8121E78: @ 8121E78
+ push {r4-r6,lr}
+ ldr r1, _08121E98 @ =0x0201b000
+ 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 _08121E8E
+ b _08122026
+_08121E8E:
+ lsls r0, 2
+ ldr r1, _08121E9C @ =_08121EA0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08121E98: .4byte 0x0201b000
+_08121E9C: .4byte _08121EA0
+ .align 2, 0
+_08121EA0:
+ .4byte _08121EC0
+ .4byte _08121F00
+ .4byte _08121F14
+ .4byte _08121F28
+ .4byte _08121F54
+ .4byte _08121F68
+ .4byte _08121F6E
+ .4byte _08121FF8
+_08121EC0:
+ ldr r0, _08121EE8 @ =0x00000266
+ adds r5, r4, r0
+ movs r1, 0
+ ldrsh r3, [r5, r1]
+ ldr r0, _08121EEC @ =gPlayerPartyCount
+ ldrb r0, [r0]
+ cmp r3, r0
+ bge _08121EF4
+ movs r2, 0x98
+ lsls r2, 2
+ adds r0, r4, r2
+ ldrb r0, [r0]
+ ldrb r1, [r5]
+ movs r2, 0x64
+ muls r2, r3
+ ldr r3, _08121EF0 @ =gPlayerParty
+ adds r2, r3
+ bl sub_806D90C
+ b _08122020
+ .align 2, 0
+_08121EE8: .4byte 0x00000266
+_08121EEC: .4byte gPlayerPartyCount
+_08121EF0: .4byte gPlayerParty
+_08121EF4:
+ movs r0, 0
+ strh r0, [r5]
+ movs r0, 0x99
+ lsls r0, 2
+ adds r1, r4, r0
+ b _08121FE8
+_08121F00:
+ bl sub_806DA98
+ ldr r1, _08121F10 @ =0x0201b000
+ movs r2, 0x99
+ lsls r2, 2
+ adds r1, r2
+ b _08121FE8
+ .align 2, 0
+_08121F10: .4byte 0x0201b000
+_08121F14:
+ 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 _08121FE8
+_08121F28:
+ movs r1, 0x98
+ lsls r1, 2
+ adds r0, r4, r1
+ ldrb r0, [r0]
+ ldr r2, _08121F50 @ =0x00000266
+ adds r5, r4, r2
+ ldrb r1, [r5]
+ bl sub_806BD58
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08122020
+ movs r0, 0
+ strh r0, [r5]
+ movs r0, 0x99
+ lsls r0, 2
+ adds r1, r4, r0
+ b _08121FE8
+ .align 2, 0
+_08121F50: .4byte 0x00000266
+_08121F54:
+ bl sub_806E334
+ ldr r1, _08121F64 @ =0x0201b000
+ movs r2, 0x99
+ lsls r2, 2
+ adds r1, r2
+ b _08121FE8
+ .align 2, 0
+_08121F64: .4byte 0x0201b000
+_08121F68:
+ bl sub_806E0C4
+ b _08121FE0
+_08121F6E:
+ movs r5, 0
+ b _08121FD8
+_08121F72:
+ movs r4, 0
+ adds r6, r5, 0x1
+ b _08121F7E
+_08121F78:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+_08121F7E:
+ cmp r4, 0x2
+ bhi _08121FA0
+ ldr r0, _08121FC4 @ =gUnknown_02039270
+ adds r0, r4, r0
+ ldrb r0, [r0]
+ cmp r0, r6
+ bne _08121F78
+ lsls r1, r4, 3
+ subs r1, r4
+ lsls r1, 25
+ movs r2, 0xE0
+ lsls r2, 21
+ adds r1, r2
+ lsrs r1, 24
+ adds r0, r5, 0
+ bl sub_806BC3C
+_08121FA0:
+ cmp r4, 0x3
+ bne _08121FD4
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08121FC8 @ =gPlayerParty
+ adds r0, r1
+ bl sub_8122030
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08121FCC
+ adds r0, r5, 0
+ movs r1, 0x70
+ bl sub_806BC3C
+ b _08121FD4
+ .align 2, 0
+_08121FC4: .4byte gUnknown_02039270
+_08121FC8: .4byte gPlayerParty
+_08121FCC:
+ adds r0, r5, 0
+ movs r1, 0x7E
+ bl sub_806BC3C
+_08121FD4:
+ lsls r0, r6, 24
+ lsrs r5, r0, 24
+_08121FD8:
+ ldr r0, _08121FF0 @ =gPlayerPartyCount
+ ldrb r0, [r0]
+ cmp r5, r0
+ bcc _08121F72
+_08121FE0:
+ ldr r1, _08121FF4 @ =0x0201b000
+ movs r0, 0x99
+ lsls r0, 2
+ adds r1, r0
+_08121FE8:
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ b _08122026
+ .align 2, 0
+_08121FF0: .4byte gPlayerPartyCount
+_08121FF4: .4byte 0x0201b000
+_08121FF8:
+ ldr r1, _0812201C @ =0x00000266
+ adds r5, r4, r1
+ ldrb r0, [r5]
+ bl sub_806B58C
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08122020
+ movs r1, 0
+ strh r1, [r5]
+ movs r2, 0x99
+ lsls r2, 2
+ adds r0, r4, r2
+ strh r1, [r0]
+ movs r0, 0x1
+ b _08122028
+ .align 2, 0
+_0812201C: .4byte 0x00000266
+_08122020:
+ ldrh r0, [r5]
+ adds r0, 0x1
+ strh r0, [r5]
+_08122026:
+ movs r0, 0
+_08122028:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8121E78
+
+ thumb_func_start sub_8122030
+sub_8122030: @ 8122030
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x2D
+ bl GetMonData
+ cmp r0, 0
+ bne _0812207C
+ ldr r0, _08122058 @ =0x0201b000
+ ldr r1, _0812205C @ =0x00000263
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08122060
+ adds r0, r4, 0
+ movs r1, 0x39
+ bl GetMonData
+ cmp r0, 0
+ beq _0812207C
+ b _081220B6
+ .align 2, 0
+_08122058: .4byte 0x0201b000
+_0812205C: .4byte 0x00000263
+_08122060:
+ ldr r0, _08122080 @ =gSaveBlock2
+ ldr r1, _08122084 @ =0x00000554
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _08122088
+ adds r0, r4, 0
+ movs r1, 0x38
+ bl GetMonData
+ cmp r0, 0x32
+ bls _08122088
+_0812207C:
+ movs r0, 0
+ b _081220B8
+ .align 2, 0
+_08122080: .4byte gSaveBlock2
+_08122084: .4byte 0x00000554
+_08122088:
+ adds r0, r4, 0
+ movs r1, 0xB
+ bl GetMonData
+ lsls r0, 16
+ lsrs r3, r0, 16
+ ldr r1, _081220C0 @ =gBattleTowerBanlist
+ movs r0, 0
+ lsls r0, 1
+ adds r2, r0, r1
+ ldrh r0, [r2]
+ ldr r1, _081220C4 @ =0x0000ffff
+ cmp r0, r1
+ beq _081220B6
+ adds r4, r1, 0
+ adds r1, r2, 0
+_081220A8:
+ ldrh r0, [r1]
+ cmp r0, r3
+ beq _0812207C
+ adds r1, 0x2
+ ldrh r0, [r1]
+ cmp r0, r4
+ bne _081220A8
+_081220B6:
+ movs r0, 0x1
+_081220B8:
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_081220C0: .4byte gBattleTowerBanlist
+_081220C4: .4byte 0x0000ffff
+ thumb_func_end sub_8122030
+
+ thumb_func_start sub_81220C8
+sub_81220C8: @ 81220C8
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ ldr r1, _081220EC @ =0x0201b000
+ ldr r2, _081220F0 @ =0x00000263
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _081221A2
+ ldr r0, _081220F4 @ =gUnknown_02039270
+ ldrb r0, [r0, 0x2]
+ cmp r0, 0
+ bne _08122100
+ movs r0, 0x11
+ b _081221A4
+ .align 2, 0
+_081220EC: .4byte 0x0201b000
+_081220F0: .4byte 0x00000263
+_081220F4: .4byte gUnknown_02039270
+_081220F8:
+ movs r0, 0x12
+ b _081221A4
+_081220FC:
+ movs r0, 0x13
+ b _081221A4
+_08122100:
+ movs r5, 0
+_08122102:
+ ldr r4, _081221B4 @ =gUnknown_02039270
+ adds r4, r5, r4
+ ldrb r0, [r4]
+ movs r1, 0x64
+ muls r0, r1
+ ldr r2, _081221B8 @ =gUnknown_030042FC
+ adds r0, r2
+ movs r1, 0xB
+ bl GetMonData
+ ldr r1, _081221BC @ =0x0201b000
+ ldr r2, _081221C0 @ =0x00000282
+ adds r6, r1, r2
+ strh r0, [r6]
+ ldrb r0, [r4]
+ movs r1, 0x64
+ muls r0, r1
+ ldr r2, _081221B8 @ =gUnknown_030042FC
+ adds r0, r2
+ movs r1, 0xC
+ bl GetMonData
+ ldr r1, _081221C4 @ =0x0201b280
+ strh r0, [r1]
+ adds r1, r5, 0x1
+ lsls r0, r1, 24
+ lsrs r5, r0, 24
+ mov r10, r1
+ cmp r5, 0x2
+ bhi _08122198
+ ldr r2, _081221C8 @ =0xfffffd7e
+ adds r2, r6
+ mov r9, r2
+ movs r0, 0x64
+ mov r8, r0
+ ldr r7, _081221B8 @ =gUnknown_030042FC
+_0812214A:
+ ldr r0, _081221C0 @ =0x00000282
+ add r0, r9
+ movs r1, 0
+ ldrsh r4, [r0, r1]
+ ldr r0, _081221B4 @ =gUnknown_02039270
+ adds r6, r5, r0
+ ldrb r0, [r6]
+ mov r2, r8
+ muls r2, r0
+ adds r0, r2, 0
+ adds r0, r7
+ movs r1, 0xB
+ bl GetMonData
+ cmp r4, r0
+ beq _081220F8
+ movs r1, 0xA0
+ lsls r1, 2
+ add r1, r9
+ movs r2, 0
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ beq _0812218E
+ adds r4, r0, 0
+ ldrb r0, [r6]
+ mov r1, r8
+ muls r1, r0
+ adds r0, r1, 0
+ adds r0, r7
+ movs r1, 0xC
+ bl GetMonData
+ cmp r4, r0
+ beq _081220FC
+_0812218E:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x2
+ bls _0812214A
+_08122198:
+ mov r2, r10
+ lsls r0, r2, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x1
+ bls _08122102
+_081221A2:
+ movs r0, 0xFF
+_081221A4:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_081221B4: .4byte gUnknown_02039270
+_081221B8: .4byte gUnknown_030042FC
+_081221BC: .4byte 0x0201b000
+_081221C0: .4byte 0x00000282
+_081221C4: .4byte 0x0201b280
+_081221C8: .4byte 0xfffffd7e
+ thumb_func_end sub_81220C8
+
+ thumb_func_start sub_81221CC
+sub_81221CC: @ 81221CC
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ movs r1, 0
+ ldr r3, _081221E4 @ =gUnknown_02039270
+_081221D6:
+ adds r0, r1, r3
+ ldrb r0, [r0]
+ cmp r0, r2
+ bne _081221E8
+ movs r0, 0x1
+ b _081221F4
+ .align 2, 0
+_081221E4: .4byte gUnknown_02039270
+_081221E8:
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x2
+ bls _081221D6
+ movs r0, 0
+_081221F4:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81221CC
+
+ thumb_func_start sub_81221F8
+sub_81221F8: @ 81221F8
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r0, 0x5
+ movs r1, 0x1
+ bl sub_806D538
+ ldr r5, _08122248 @ =gUnknown_03005CE0
+ ldrb r1, [r5]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _0812224C @ =gPlayerParty
+ adds r0, r1
+ bl sub_8122030
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08122284
+ ldrb r0, [r5]
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_81221CC
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x1
+ bne _0812225C
+ ldr r1, _08122250 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ strh r2, [r0, 0x10]
+ ldr r1, _08122254 @ =gUnknown_084017D8
+ ldr r2, _08122258 @ =gUnknown_084017B0
+ movs r0, 0x1
+ b _08122270
+ .align 2, 0
+_08122248: .4byte gUnknown_03005CE0
+_0812224C: .4byte gPlayerParty
+_08122250: .4byte gTasks
+_08122254: .4byte gUnknown_084017D8
+_08122258: .4byte gUnknown_084017B0
+_0812225C:
+ ldr r1, _08122278 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0
+ strh r1, [r0, 0x10]
+ ldr r1, _0812227C @ =gUnknown_084017D8
+ ldr r2, _08122280 @ =gUnknown_084017B0
+ movs r0, 0
+_08122270:
+ movs r3, 0
+ bl sub_806E750
+ b _0812229E
+ .align 2, 0
+_08122278: .4byte gTasks
+_0812227C: .4byte gUnknown_084017D8
+_08122280: .4byte gUnknown_084017B0
+_08122284:
+ ldr r1, _081222A4 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0x2
+ strh r1, [r0, 0x10]
+ ldr r1, _081222A8 @ =gUnknown_084017D8
+ ldr r2, _081222AC @ =gUnknown_084017B0
+ movs r0, 0x2
+ movs r3, 0
+ bl sub_806E750
+_0812229E:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081222A4: .4byte gTasks
+_081222A8: .4byte gUnknown_084017D8
+_081222AC: .4byte gUnknown_084017B0
+ thumb_func_end sub_81221F8
+
+ thumb_func_start sub_81222B0
+sub_81222B0: @ 81222B0
+ push {r4,r5,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _081222DC @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0
+ bne _0812237C
+ adds r0, r4, 0
+ bl sub_806BE38
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x1
+ beq _081222E0
+ cmp r0, 0x2
+ beq _08122354
+ b _0812237C
+ .align 2, 0
+_081222DC: .4byte gPaletteFade
+_081222E0:
+ movs r0, 0x5
+ bl PlaySE
+ adds r0, r4, 0
+ bl sub_806CA38
+ ldr r1, _08122320 @ =gUnknown_03005CE0
+ strb r0, [r1]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x6
+ beq _08122334
+ ldrb r1, [r1]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _08122324 @ =gPlayerParty
+ adds r0, r1
+ ldr r1, _08122328 @ =gStringVar1
+ bl GetMonNickname
+ adds r0, r4, 0
+ bl sub_81221F8
+ ldr r1, _0812232C @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _08122330 @ =sub_812238C
+ str r1, [r0]
+ b _08122342
+ .align 2, 0
+_08122320: .4byte gUnknown_03005CE0
+_08122324: .4byte gPlayerParty
+_08122328: .4byte gStringVar1
+_0812232C: .4byte gTasks
+_08122330: .4byte sub_812238C
+_08122334:
+ ldr r0, _0812234C @ =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _08122350 @ =sub_81224A8
+ str r0, [r1]
+_08122342:
+ adds r0, r4, 0
+ bl sub_808B5B4
+ b _0812237C
+ .align 2, 0
+_0812234C: .4byte gTasks
+_08122350: .4byte sub_81224A8
+_08122354:
+ movs r0, 0x5
+ bl PlaySE
+ bl sub_8121E58
+ movs r0, 0x1
+ negs r0, r0
+ str r5, [sp]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r1, _08122384 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _08122388 @ =sub_8122450
+ str r1, [r0]
+_0812237C:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08122384: .4byte gTasks
+_08122388: .4byte sub_8122450
+ thumb_func_end sub_81222B0
+
+ thumb_func_start sub_812238C
+sub_812238C: @ 812238C
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r7, r0, 24
+ adds r4, r7, 0
+ ldr r0, _081223C8 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r3, 0x80
+ adds r0, r3, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _0812244A
+ ldr r2, _081223CC @ =gMain
+ ldrh r1, [r2, 0x30]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _081223D0
+ bl GetMenuCursorPos
+ lsls r0, 24
+ cmp r0, 0
+ beq _0812244A
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+ negs r0, r0
+ bl MoveMenuCursor
+ b _0812244A
+ .align 2, 0
+_081223C8: .4byte gPaletteFade
+_081223CC: .4byte gMain
+_081223D0:
+ adds r0, r3, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _081223F2
+ bl GetMenuCursorPos
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x3
+ beq _0812244A
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+ bl MoveMenuCursor
+ b _0812244A
+_081223F2:
+ ldrh r1, [r2, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0812243C
+ movs r0, 0x5
+ bl PlaySE
+ ldr r1, _08122430 @ =gTasks
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r0, r1
+ ldrb r4, [r0, 0x10]
+ ldr r5, _08122434 @ =gUnknown_084017D8
+ ldr r6, _08122438 @ =gUnknown_084017B0
+ bl GetMenuCursorPos
+ adds r3, r0, 0
+ lsls r3, 24
+ lsrs r3, 24
+ adds r0, r4, 0
+ adds r1, r5, 0
+ adds r2, r6, 0
+ bl sub_806E81C
+ adds r1, r0, 0
+ adds r0, r7, 0
+ bl _call_via_r1
+ b _0812244A
+ .align 2, 0
+_08122430: .4byte gTasks
+_08122434: .4byte gUnknown_084017D8
+_08122438: .4byte gUnknown_084017B0
+_0812243C:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0812244A
+ adds r0, r4, 0
+ bl sub_8122838
+_0812244A:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812238C
+
+ thumb_func_start sub_8122450
+sub_8122450: @ 8122450
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _08122478 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _08122470
+ ldr r0, _0812247C @ =gMain
+ ldr r0, [r0, 0x8]
+ bl SetMainCallback2
+ adds r0, r4, 0
+ bl DestroyTask
+_08122470:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08122478: .4byte gPaletteFade
+_0812247C: .4byte gMain
+ thumb_func_end sub_8122450
+
+ thumb_func_start sub_8122480
+sub_8122480: @ 8122480
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r0, _081224A4 @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _0812249A
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _081224A0
+_0812249A:
+ adds r0, r2, 0
+ bl sub_8122838
+_081224A0:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081224A4: .4byte gMain
+ thumb_func_end sub_8122480
+
+ thumb_func_start sub_81224A8
+sub_81224A8: @ 81224A8
+ push {r4,r5,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r5, r4, 0
+ bl sub_81220C8
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xFF
+ beq _081224D0
+ movs r1, 0
+ bl sub_806D538
+ ldr r0, _081224CC @ =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ b _08122518
+ .align 2, 0
+_081224CC: .4byte gTasks
+_081224D0:
+ ldr r0, _081224F8 @ =gUnknown_02039270
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08122504
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r1, _081224FC @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _08122500 @ =sub_8122450
+ str r1, [r0]
+ b _08122520
+ .align 2, 0
+_081224F8: .4byte gUnknown_02039270
+_081224FC: .4byte gTasks
+_08122500: .4byte sub_8122450
+_08122504:
+ movs r0, 0x20
+ bl PlaySE
+ movs r0, 0xE
+ movs r1, 0
+ bl sub_806D538
+ ldr r0, _08122528 @ =gTasks
+ lsls r1, r5, 2
+ adds r1, r5
+_08122518:
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _0812252C @ =sub_8122480
+ str r0, [r1]
+_08122520:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08122528: .4byte gTasks
+_0812252C: .4byte sub_8122480
+ thumb_func_end sub_81224A8
+
+ thumb_func_start sub_8122530
+sub_8122530: @ 8122530
+ push {r4,r5,lr}
+ ldr r5, _08122578 @ =0x0201b260
+ ldr r4, _0812257C @ =gUnknown_020384F0
+_08122536:
+ bl sub_806B124
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08122590
+ ldrb r0, [r5]
+ ldrb r1, [r4]
+ bl sub_806C994
+ ldrb r0, [r5]
+ movs r1, 0
+ bl sub_806C658
+ ldrb r1, [r4]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _08122580 @ =gPlayerParty
+ adds r0, r1
+ ldr r1, _08122584 @ =gStringVar1
+ bl GetMonNickname
+ ldr r1, _08122588 @ =gUnknown_03005CE0
+ ldrb r0, [r4]
+ strb r0, [r1]
+ ldrb r0, [r5]
+ bl sub_81221F8
+ ldr r0, _0812258C @ =sub_806AEDC
+ bl SetMainCallback2
+ b _0812259C
+ .align 2, 0
+_08122578: .4byte 0x0201b260
+_0812257C: .4byte gUnknown_020384F0
+_08122580: .4byte gPlayerParty
+_08122584: .4byte gStringVar1
+_08122588: .4byte gUnknown_03005CE0
+_0812258C: .4byte sub_806AEDC
+_08122590:
+ bl sub_80F9344
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08122536
+_0812259C:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8122530
+
+ thumb_func_start sub_81225A4
+sub_81225A4: @ 81225A4
+ push {lr}
+ ldr r2, _081225C8 @ =gPaletteFade
+ ldrb r0, [r2, 0x8]
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r2, 0x8]
+ ldr r2, _081225CC @ =sub_812238C
+ movs r0, 0x4
+ movs r1, 0xFF
+ movs r3, 0x5
+ bl sub_806AF4C
+ ldr r0, _081225D0 @ =sub_8122530
+ bl SetMainCallback2
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081225C8: .4byte gPaletteFade
+_081225CC: .4byte sub_812238C
+_081225D0: .4byte sub_8122530
+ thumb_func_end sub_81225A4
+
+ thumb_func_start sub_81225D4
+sub_81225D4: @ 81225D4
+ push {r4,r5,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldr r0, _0812263C @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0
+ bne _08122632
+ ldr r2, _08122640 @ =gSprites
+ ldr r1, _08122644 @ =gTasks
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r0, 3
+ adds r0, r1
+ ldrh r1, [r0, 0xE]
+ lsls r1, 16
+ asrs r1, 24
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r4, [r0, 0x2E]
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r3, 0
+ bl DestroyTask
+ ldr r0, _08122648 @ =0x0201b000
+ ldr r1, _0812264C @ =0x00000262
+ adds r0, r1
+ movs r1, 0x1
+ strb r1, [r0]
+ ldr r0, _08122650 @ =gPlayerParty
+ ldr r1, _08122654 @ =gPlayerPartyCount
+ ldrb r2, [r1]
+ subs r2, 0x1
+ lsls r2, 24
+ lsrs r2, 24
+ ldr r3, _08122658 @ =sub_81225A4
+ str r5, [sp]
+ adds r1, r4, 0
+ bl sub_809D8BC
+_08122632:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812263C: .4byte gPaletteFade
+_08122640: .4byte gSprites
+_08122644: .4byte gTasks
+_08122648: .4byte 0x0201b000
+_0812264C: .4byte 0x00000262
+_08122650: .4byte gPlayerParty
+_08122654: .4byte gPlayerPartyCount
+_08122658: .4byte sub_81225A4
+ thumb_func_end sub_81225D4
+
+ thumb_func_start sub_812265C
+sub_812265C: @ 812265C
+ 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, _0812268C @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _08122690 @ =sub_81225D4
+ str r1, [r0]
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812268C: .4byte gTasks
+_08122690: .4byte sub_81225D4
+ thumb_func_end sub_812265C
+
+ thumb_func_start sub_8122694
+sub_8122694: @ 8122694
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r4, 0
+ ldr r3, _081226D4 @ =gUnknown_02039270
+ ldr r2, _081226D8 @ =gUnknown_03005CE0
+_081226A0:
+ adds r1, r4, r3
+ ldrb r0, [r1]
+ cmp r0, 0
+ bne _081226DC
+ ldrb r0, [r2]
+ adds r0, 0x1
+ strb r0, [r1]
+ ldrb r0, [r2]
+ lsls r1, r4, 3
+ subs r1, r4
+ lsls r1, 25
+ movs r2, 0xE0
+ lsls r2, 21
+ adds r1, r2
+ lsrs r1, 24
+ bl sub_806BC3C
+ cmp r4, 0x2
+ bne _081226CC
+ adds r0, r5, 0
+ bl sub_806C890
+_081226CC:
+ adds r0, r5, 0
+ bl sub_8122838
+ b _08122716
+ .align 2, 0
+_081226D4: .4byte gUnknown_02039270
+_081226D8: .4byte gUnknown_03005CE0
+_081226DC:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x2
+ bls _081226A0
+ movs r0, 0x20
+ bl PlaySE
+ movs r0, 0x14
+ movs r1, 0xA
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ bl sub_8072DEC
+ bl sub_806D5A4
+ ldr r0, _0812271C @ =gOtherText_NoMoreThreePoke
+ movs r1, 0x1
+ bl sub_806E834
+ ldr r1, _08122720 @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _08122724 @ =sub_8122728
+ str r1, [r0]
+_08122716:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812271C: .4byte gOtherText_NoMoreThreePoke
+_08122720: .4byte gTasks
+_08122724: .4byte sub_8122728
+ thumb_func_end sub_8122694
+
+ thumb_func_start sub_8122728
+sub_8122728: @ 8122728
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _08122768 @ =gUnknown_0202E8F6
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ beq _08122760
+ ldr r0, _0812276C @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _0812274A
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _08122760
+_0812274A:
+ movs r0, 0
+ movs r1, 0xE
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ bl sub_8072DEC
+ adds r0, r4, 0
+ bl sub_8122838
+_08122760:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08122768: .4byte gUnknown_0202E8F6
+_0812276C: .4byte gMain
+ thumb_func_end sub_8122728
+
+ thumb_func_start sub_8122770
+sub_8122770: @ 8122770
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r4, 0
+ ldr r5, _08122798 @ =gUnknown_03005CE0
+ ldr r3, _0812279C @ =gUnknown_02039270
+_0812277C:
+ adds r2, r4, r3
+ ldrb r1, [r2]
+ ldrb r0, [r5]
+ adds r0, 0x1
+ cmp r1, r0
+ bne _081227B4
+ movs r1, 0
+ strb r1, [r2]
+ cmp r4, 0
+ beq _081227A0
+ cmp r4, 0x1
+ beq _081227AC
+ b _081227BE
+ .align 2, 0
+_08122798: .4byte gUnknown_03005CE0
+_0812279C: .4byte gUnknown_02039270
+_081227A0:
+ ldrb r0, [r3, 0x1]
+ strb r0, [r3]
+ ldrb r0, [r3, 0x2]
+ strb r0, [r3, 0x1]
+ strb r4, [r3, 0x2]
+ b _081227BE
+_081227AC:
+ ldrb r0, [r3, 0x2]
+ strb r0, [r3, 0x1]
+ strb r1, [r3, 0x2]
+ b _081227BE
+_081227B4:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x2
+ bls _0812277C
+_081227BE:
+ ldrb r0, [r5]
+ movs r1, 0x70
+ bl sub_806BC3C
+ ldr r4, _081227F8 @ =gUnknown_02039270
+ ldrb r0, [r4]
+ cmp r0, 0
+ beq _081227DA
+ subs r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x1C
+ bl sub_806BC3C
+_081227DA:
+ ldrb r0, [r4, 0x1]
+ cmp r0, 0
+ beq _081227EC
+ subs r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x2A
+ bl sub_806BC3C
+_081227EC:
+ adds r0, r6, 0
+ bl sub_8122838
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081227F8: .4byte gUnknown_02039270
+ thumb_func_end sub_8122770
+
+ thumb_func_start sub_81227FC
+sub_81227FC: @ 81227FC
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x14
+ movs r1, 0xA
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ bl sub_8072DEC
+ movs r0, 0
+ movs r1, 0
+ bl sub_806D538
+ ldr r1, _08122830 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _08122834 @ =sub_81222B0
+ str r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08122830: .4byte gTasks
+_08122834: .4byte sub_81222B0
+ thumb_func_end sub_81227FC
+
+ thumb_func_start sub_8122838
+sub_8122838: @ 8122838
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x5
+ bl PlaySE
+ adds r0, r4, 0
+ bl sub_81227FC
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8122838
+
+ thumb_func_start sub_8122854
+sub_8122854: @ 8122854
+ push {r4,lr}
+ ldr r1, _08122874 @ =0x0201b000
+ movs r2, 0x99
+ lsls r2, 2
+ adds r0, r1, r2
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ adds r4, r1, 0
+ cmp r0, 0x4
+ bhi _081228E0
+ lsls r0, 2
+ ldr r1, _08122878 @ =_0812287C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08122874: .4byte 0x0201b000
+_08122878: .4byte _0812287C
+ .align 2, 0
+_0812287C:
+ .4byte _08122890
+ .4byte _081228A4
+ .4byte _081228AA
+ .4byte _081228BE
+ .4byte _081228D8
+_08122890:
+ movs r1, 0x98
+ lsls r1, 2
+ adds r0, r4, r1
+ ldrb r0, [r0]
+ bl sub_81228E8
+ movs r2, 0x99
+ lsls r2, 2
+ adds r1, r4, r2
+ b _081228CA
+_081228A4:
+ bl sub_806DA98
+ b _081228C2
+_081228AA:
+ movs r1, 0x98
+ lsls r1, 2
+ adds r0, r4, r1
+ ldrb r0, [r0]
+ bl sub_8122950
+ movs r2, 0x99
+ lsls r2, 2
+ adds r1, r4, r2
+ b _081228CA
+_081228BE:
+ bl sub_81229B8
+_081228C2:
+ ldr r1, _081228D4 @ =0x0201b000
+ movs r0, 0x99
+ lsls r0, 2
+ adds r1, r0
+_081228CA:
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ b _081228E0
+ .align 2, 0
+_081228D4: .4byte 0x0201b000
+_081228D8:
+ bl sub_806B908
+ movs r0, 0x1
+ b _081228E2
+_081228E0:
+ movs r0, 0
+_081228E2:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8122854
+
+ thumb_func_start sub_81228E8
+sub_81228E8: @ 81228E8
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r5, 0
+_081228F0:
+ movs r0, 0x64
+ adds r1, r5, 0
+ muls r1, r0
+ ldr r0, _08122948 @ =gPlayerParty
+ adds r4, r1, r0
+ adds r0, r4, 0
+ movs r1, 0xB
+ bl GetMonData
+ cmp r0, 0
+ beq _08122912
+ adds r0, r6, 0
+ adds r1, r5, 0
+ movs r2, 0x3
+ adds r3, r4, 0
+ bl sub_806D880
+_08122912:
+ ldr r0, _0812294C @ =gUnknown_02023A00
+ lsls r1, r5, 5
+ adds r3, r1, r0
+ ldrh r0, [r3]
+ cmp r0, 0
+ beq _08122936
+ adds r4, r5, 0x3
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r6, 0
+ adds r1, r4, 0
+ movs r2, 0x3
+ bl sub_806D99C
+ adds r0, r6, 0
+ adds r1, r4, 0
+ bl sub_806D50C
+_08122936:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x2
+ bls _081228F0
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08122948: .4byte gPlayerParty
+_0812294C: .4byte gUnknown_02023A00
+ thumb_func_end sub_81228E8
+
+ thumb_func_start sub_8122950
+sub_8122950: @ 8122950
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r5, 0
+_08122958:
+ movs r0, 0x64
+ adds r1, r5, 0
+ muls r1, r0
+ ldr r0, _081229B0 @ =gPlayerParty
+ adds r4, r1, r0
+ adds r0, r4, 0
+ movs r1, 0xB
+ bl GetMonData
+ cmp r0, 0
+ beq _08122984
+ adds r0, r4, 0
+ movs r1, 0xC
+ bl GetMonData
+ adds r2, r0, 0
+ lsls r2, 16
+ lsrs r2, 16
+ adds r0, r6, 0
+ adds r1, r5, 0
+ bl sub_806DCD4
+_08122984:
+ ldr r0, _081229B4 @ =gUnknown_02023A00
+ lsls r1, r5, 5
+ adds r2, r1, r0
+ ldrh r0, [r2]
+ cmp r0, 0
+ beq _0812299E
+ adds r1, r5, 0x3
+ lsls r1, 24
+ lsrs r1, 24
+ ldrh r2, [r2, 0x2]
+ adds r0, r6, 0
+ bl sub_806DCD4
+_0812299E:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x2
+ bls _08122958
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081229B0: .4byte gPlayerParty
+_081229B4: .4byte gUnknown_02023A00
+ thumb_func_end sub_8122950
+
+ thumb_func_start sub_81229B8
+sub_81229B8: @ 81229B8
+ push {r4-r7,lr}
+ movs r5, 0
+ movs r7, 0x64
+ ldr r6, _08122A00 @ =gPlayerParty
+_081229C0:
+ adds r0, r5, 0
+ muls r0, r7
+ adds r4, r0, r6
+ adds r0, r4, 0
+ movs r1, 0xB
+ bl GetMonData
+ cmp r0, 0
+ beq _08122A36
+ adds r0, r5, 0
+ movs r1, 0x3
+ adds r2, r4, 0
+ bl sub_806E4A4
+ adds r0, r4, 0
+ bl sub_80A1CD8
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ beq _08122A04
+ cmp r0, 0x6
+ beq _08122A04
+ subs r2, r0, 0x1
+ lsls r2, 24
+ lsrs r2, 24
+ adds r0, r5, 0
+ movs r1, 0x3
+ bl sub_806E104
+ b _08122A12
+ .align 2, 0
+_08122A00: .4byte gPlayerParty
+_08122A04:
+ adds r2, r5, 0
+ muls r2, r7
+ adds r2, r6
+ adds r0, r5, 0
+ movs r1, 0x3
+ bl sub_806E294
+_08122A12:
+ adds r4, r5, 0
+ muls r4, r7
+ adds r4, r6
+ adds r0, r5, 0
+ movs r1, 0x3
+ adds r2, r4, 0
+ bl sub_806E3C0
+ adds r0, r5, 0
+ movs r1, 0x3
+ adds r2, r4, 0
+ bl sub_806E050
+ adds r0, r5, 0
+ movs r1, 0x3
+ adds r2, r4, 0
+ bl sub_806E630
+_08122A36:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x2
+ bls _081229C0
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81229B8
+
+ thumb_func_start sub_8122A48
+sub_8122A48: @ 8122A48
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r0, _08122AA0 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _08122A98
+ ldr r0, _08122AA4 @ =gTasks
+ lsls r4, r6, 2
+ adds r4, r6
+ lsls r4, 3
+ adds r4, r0
+ movs r0, 0x1E
+ strh r0, [r4, 0x8]
+ ldr r5, _08122AA8 @ =gUnknown_02023A00
+ ldrh r1, [r5]
+ adds r0, r6, 0
+ movs r2, 0
+ bl sub_806D4AC
+ ldrh r1, [r5, 0x20]
+ adds r0, r6, 0
+ movs r2, 0x1
+ bl sub_806D4AC
+ adds r5, 0x40
+ ldrh r1, [r5]
+ adds r0, r6, 0
+ movs r2, 0x2
+ bl sub_806D4AC
+ ldr r0, _08122AAC @ =sub_8122AB8
+ str r0, [r4]
+ ldr r0, _08122AB0 @ =0x0201b000
+ ldr r1, _08122AB4 @ =0x00000261
+ adds r0, r1
+ movs r1, 0x1
+ strb r1, [r0]
+_08122A98:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08122AA0: .4byte gPaletteFade
+_08122AA4: .4byte gTasks
+_08122AA8: .4byte gUnknown_02023A00
+_08122AAC: .4byte sub_8122AB8
+_08122AB0: .4byte 0x0201b000
+_08122AB4: .4byte 0x00000261
+ thumb_func_end sub_8122A48
+
+ thumb_func_start sub_8122AB8
+sub_8122AB8: @ 8122AB8
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _08122AFC @ =gUnknown_02023A00
+ ldrh r1, [r0, 0x20]
+ adds r0, 0x40
+ ldrh r2, [r0]
+ adds r0, r4, 0
+ bl sub_806D3B4
+ ldr r1, _08122B00 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r1, r0, r1
+ movs r2, 0x8
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ bne _08122AF4
+ ldr r0, _08122B04 @ =sub_8122B10
+ str r0, [r1]
+ ldr r0, _08122B08 @ =0x0201b000
+ ldr r1, _08122B0C @ =0x00000261
+ adds r0, r1
+ movs r1, 0x2
+ strb r1, [r0]
+ movs r0, 0x78
+ bl PlaySE
+_08122AF4:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08122AFC: .4byte gUnknown_02023A00
+_08122B00: .4byte gTasks
+_08122B04: .4byte sub_8122B10
+_08122B08: .4byte 0x0201b000
+_08122B0C: .4byte 0x00000261
+ thumb_func_end sub_8122AB8
+
+ thumb_func_start sub_8122B10
+sub_8122B10: @ 8122B10
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x4]
+ movs r0, 0
+ mov r8, r0
+ ldr r1, _08122B5C @ =gUnknown_02023A00
+ mov r10, r1
+ ldr r2, _08122B60 @ =gStringVar1
+ mov r9, r2
+_08122B2E:
+ mov r1, r8
+ lsls r0, r1, 5
+ mov r2, r10
+ adds r6, r0, r2
+ ldrh r1, [r6]
+ adds r7, r0, 0
+ cmp r1, 0
+ beq _08122BDA
+ mov r4, r8
+ adds r4, 0x3
+ lsls r0, r4, 24
+ lsrs r5, r0, 24
+ ldrh r2, [r6, 0x10]
+ ldrh r3, [r6, 0x12]
+ adds r0, r5, 0
+ movs r1, 0x3
+ bl sub_806E420
+ ldrh r0, [r6, 0x10]
+ cmp r0, 0
+ bne _08122B64
+ movs r2, 0x7
+ b _08122B76
+ .align 2, 0
+_08122B5C: .4byte gUnknown_02023A00
+_08122B60: .4byte gStringVar1
+_08122B64:
+ ldr r1, _08122B88 @ =gUnknown_02023A14
+ adds r0, r7, r1
+ ldr r0, [r0]
+ bl pokemon_ailments_get_primary
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0
+ beq _08122B8C
+_08122B76:
+ lsls r0, r4, 24
+ lsrs r0, 24
+ subs r2, 0x1
+ lsls r2, 24
+ lsrs r2, 24
+ movs r1, 0x3
+ bl sub_806E104
+ b _08122B96
+ .align 2, 0
+_08122B88: .4byte gUnknown_02023A14
+_08122B8C:
+ ldrb r2, [r6, 0xF]
+ adds r0, r5, 0
+ movs r1, 0x3
+ bl sub_806E1F4
+_08122B96:
+ mov r2, r10
+ adds r6, r7, r2
+ ldrh r0, [r6]
+ ldrb r1, [r6, 0x1C]
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r2, _08122C0C @ =gUnknown_02023A04
+ adds r5, r7, r2
+ str r5, [sp]
+ movs r2, 0x3
+ adds r3, r4, 0
+ bl sub_806E35C
+ mov r0, r9
+ adds r1, r5, 0
+ bl StringCopy
+ mov r0, r9
+ bl StringGetEnd10
+ mov r0, r9
+ bl sub_814A568
+ adds r0, r4, 0
+ movs r1, 0x3
+ mov r2, r9
+ bl box_print
+ ldrh r2, [r6, 0x10]
+ ldrh r3, [r6, 0x12]
+ adds r0, r4, 0
+ movs r1, 0x3
+ bl sub_806E574
+_08122BDA:
+ mov r0, r8
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ cmp r0, 0x2
+ bls _08122B2E
+ ldr r1, _08122C10 @ =gTasks
+ ldr r2, [sp, 0x4]
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _08122C14 @ =sub_8122C18
+ str r1, [r0]
+ movs r1, 0
+ strh r1, [r0, 0x8]
+ 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
+_08122C0C: .4byte gUnknown_02023A04
+_08122C10: .4byte gTasks
+_08122C14: .4byte sub_8122C18
+ thumb_func_end sub_8122B10
+
+ thumb_func_start sub_8122C18
+sub_8122C18: @ 8122C18
+ push {r4,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _08122C58 @ =gTasks
+ 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
+ movs r1, 0x80
+ lsls r1, 17
+ cmp r0, r1
+ bne _08122C4E
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r0, _08122C5C @ =sub_8122450
+ str r0, [r4]
+_08122C4E:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08122C58: .4byte gTasks
+_08122C5C: .4byte sub_8122450
+ thumb_func_end sub_8122C18
+
+ thumb_func_start unref_sub_8122C60
+unref_sub_8122C60: @ 8122C60
+ push {r4,r5,lr}
+ ldr r1, _08122C80 @ =0x0201b000
+ 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 _08122C76
+ b _08122D8A
+_08122C76:
+ lsls r0, 2
+ ldr r1, _08122C84 @ =_08122C88
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08122C80: .4byte 0x0201b000
+_08122C84: .4byte _08122C88
+ .align 2, 0
+_08122C88:
+ .4byte _08122CA8
+ .4byte _08122CE8
+ .4byte _08122CEE
+ .4byte _08122D02
+ .4byte _08122D2C
+ .4byte _08122D32
+ .4byte _08122D44
+ .4byte _08122D5C
+_08122CA8:
+ ldr r0, _08122CD0 @ =0x00000266
+ adds r5, r4, r0
+ movs r1, 0
+ ldrsh r3, [r5, r1]
+ ldr r0, _08122CD4 @ =gPlayerPartyCount
+ ldrb r0, [r0]
+ cmp r3, r0
+ bge _08122CDC
+ movs r2, 0x98
+ lsls r2, 2
+ adds r0, r4, r2
+ ldrb r0, [r0]
+ ldrb r1, [r5]
+ movs r2, 0x64
+ muls r2, r3
+ ldr r3, _08122CD8 @ =gPlayerParty
+ adds r2, r3
+ bl sub_806D90C
+ b _08122D84
+ .align 2, 0
+_08122CD0: .4byte 0x00000266
+_08122CD4: .4byte gPlayerPartyCount
+_08122CD8: .4byte gPlayerParty
+_08122CDC:
+ movs r0, 0
+ strh r0, [r5]
+ movs r0, 0x99
+ lsls r0, 2
+ adds r1, r4, r0
+ b _08122D50
+_08122CE8:
+ bl sub_806DA98
+ b _08122D48
+_08122CEE:
+ 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 _08122D50
+_08122D02:
+ movs r1, 0x98
+ lsls r1, 2
+ adds r0, r4, r1
+ ldrb r0, [r0]
+ ldr r2, _08122D28 @ =0x00000266
+ adds r5, r4, r2
+ ldrb r1, [r5]
+ bl sub_806BD58
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08122D84
+ movs r0, 0
+ strh r0, [r5]
+ movs r0, 0x99
+ lsls r0, 2
+ adds r1, r4, r0
+ b _08122D50
+ .align 2, 0
+_08122D28: .4byte 0x00000266
+_08122D2C:
+ bl sub_806E334
+ b _08122D48
+_08122D32:
+ bl sub_806E0C4
+ ldr r1, _08122D40 @ =0x0201b000
+ movs r0, 0x99
+ lsls r0, 2
+ adds r1, r0
+ b _08122D50
+ .align 2, 0
+_08122D40: .4byte 0x0201b000
+_08122D44:
+ bl sub_806BCE8
+_08122D48:
+ ldr r1, _08122D58 @ =0x0201b000
+ movs r2, 0x99
+ lsls r2, 2
+ adds r1, r2
+_08122D50:
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ b _08122D8A
+ .align 2, 0
+_08122D58: .4byte 0x0201b000
+_08122D5C:
+ ldr r0, _08122D80 @ =0x00000266
+ adds r5, r4, r0
+ ldrb r0, [r5]
+ bl sub_806B58C
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08122D84
+ movs r1, 0
+ strh r1, [r5]
+ movs r2, 0x99
+ lsls r2, 2
+ adds r0, r4, r2
+ strh r1, [r0]
+ movs r0, 0x1
+ b _08122D8C
+ .align 2, 0
+_08122D80: .4byte 0x00000266
+_08122D84:
+ ldrh r0, [r5]
+ adds r0, 0x1
+ strh r0, [r5]
+_08122D8A:
+ movs r0, 0
+_08122D8C:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end unref_sub_8122C60
+
+ thumb_func_start sub_8122D94
+sub_8122D94: @ 8122D94
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _08122DCC @ =gUnknown_03005CE0
+ ldrb r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _08122DD0 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x2D
+ bl GetMonData
+ adds r2, r0, 0
+ cmp r2, 0
+ bne _08122DE0
+ ldr r1, _08122DD4 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ strh r2, [r0, 0x10]
+ ldr r1, _08122DD8 @ =gUnknown_08401810
+ ldr r2, _08122DDC @ =gUnknown_084017F0
+ movs r0, 0
+ movs r3, 0
+ bl sub_806E750
+ b _08122DFA
+ .align 2, 0
+_08122DCC: .4byte gUnknown_03005CE0
+_08122DD0: .4byte gPlayerParty
+_08122DD4: .4byte gTasks
+_08122DD8: .4byte gUnknown_08401810
+_08122DDC: .4byte gUnknown_084017F0
+_08122DE0:
+ ldr r1, _08122E00 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0x1
+ strh r1, [r0, 0x10]
+ ldr r1, _08122E04 @ =gUnknown_08401810
+ ldr r2, _08122E08 @ =gUnknown_084017F0
+ movs r0, 0x1
+ movs r3, 0
+ bl sub_806E750
+_08122DFA:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08122E00: .4byte gTasks
+_08122E04: .4byte gUnknown_08401810
+_08122E08: .4byte gUnknown_084017F0
+ thumb_func_end sub_8122D94
+
+ thumb_func_start sub_8122E0C
+sub_8122E0C: @ 8122E0C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _08122E34 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _08122E9C
+ adds r0, r4, 0
+ bl sub_806BD80
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x1
+ beq _08122E38
+ cmp r0, 0x2
+ beq _08122E84
+ b _08122E9C
+ .align 2, 0
+_08122E34: .4byte gPaletteFade
+_08122E38:
+ movs r0, 0x5
+ bl PlaySE
+ adds r0, r4, 0
+ bl sub_806CA38
+ ldr r1, _08122E70 @ =gUnknown_03005CE0
+ strb r0, [r1]
+ ldrb r1, [r1]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _08122E74 @ =gPlayerParty
+ adds r0, r1
+ ldr r1, _08122E78 @ =gStringVar1
+ bl GetMonNickname
+ adds r0, r4, 0
+ bl sub_8122D94
+ ldr r1, _08122E7C @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _08122E80 @ =sub_8122EAC
+ str r1, [r0]
+ b _08122E9C
+ .align 2, 0
+_08122E70: .4byte gUnknown_03005CE0
+_08122E74: .4byte gPlayerParty
+_08122E78: .4byte gStringVar1
+_08122E7C: .4byte gTasks
+_08122E80: .4byte sub_8122EAC
+_08122E84:
+ movs r0, 0x5
+ bl PlaySE
+ ldr r1, _08122EA4 @ =gUnknown_03005CE0
+ movs r0, 0xFF
+ strb r0, [r1]
+ ldr r1, _08122EA8 @ =gUnknown_0202E8CC
+ movs r0, 0xFF
+ strh r0, [r1]
+ adds r0, r4, 0
+ bl sub_8123138
+_08122E9C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08122EA4: .4byte gUnknown_03005CE0
+_08122EA8: .4byte gUnknown_0202E8CC
+ thumb_func_end sub_8122E0C
+
+ thumb_func_start sub_8122EAC
+sub_8122EAC: @ 8122EAC
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r7, r0, 24
+ adds r4, r7, 0
+ ldr r0, _08122EE8 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r3, 0x80
+ adds r0, r3, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _08122F6A
+ ldr r2, _08122EEC @ =gMain
+ ldrh r1, [r2, 0x30]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _08122EF0
+ bl GetMenuCursorPos
+ lsls r0, 24
+ cmp r0, 0
+ beq _08122F6A
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+ negs r0, r0
+ bl MoveMenuCursor
+ b _08122F6A
+ .align 2, 0
+_08122EE8: .4byte gPaletteFade
+_08122EEC: .4byte gMain
+_08122EF0:
+ adds r0, r3, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _08122F12
+ bl GetMenuCursorPos
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x3
+ beq _08122F6A
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+ bl MoveMenuCursor
+ b _08122F6A
+_08122F12:
+ ldrh r1, [r2, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08122F5C
+ movs r0, 0x5
+ bl PlaySE
+ ldr r1, _08122F50 @ =gTasks
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r0, r1
+ ldrb r4, [r0, 0x10]
+ ldr r5, _08122F54 @ =gUnknown_08401810
+ ldr r6, _08122F58 @ =gUnknown_084017F0
+ bl GetMenuCursorPos
+ adds r3, r0, 0
+ lsls r3, 24
+ lsrs r3, 24
+ adds r0, r4, 0
+ adds r1, r5, 0
+ adds r2, r6, 0
+ bl sub_806E81C
+ adds r1, r0, 0
+ adds r0, r7, 0
+ bl _call_via_r1
+ b _08122F6A
+ .align 2, 0
+_08122F50: .4byte gTasks
+_08122F54: .4byte gUnknown_08401810
+_08122F58: .4byte gUnknown_084017F0
+_08122F5C:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _08122F6A
+ adds r0, r4, 0
+ bl sub_81230F4
+_08122F6A:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8122EAC
+
+ thumb_func_start sub_8122F70
+sub_8122F70: @ 8122F70
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _08122F88 @ =gUnknown_0202E8CC
+ ldr r1, _08122F8C @ =gUnknown_03005CE0
+ ldrb r1, [r1]
+ strh r1, [r2]
+ bl sub_8123138
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08122F88: .4byte gUnknown_0202E8CC
+_08122F8C: .4byte gUnknown_03005CE0
+ thumb_func_end sub_8122F70
+
+ thumb_func_start sub_8122F90
+sub_8122F90: @ 8122F90
+ push {r4,r5,lr}
+ ldr r5, _08122FD8 @ =0x0201b260
+ ldr r4, _08122FDC @ =gUnknown_020384F0
+_08122F96:
+ bl sub_806B124
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08122FF0
+ ldrb r0, [r5]
+ ldrb r1, [r4]
+ bl sub_806C994
+ ldrb r0, [r5]
+ movs r1, 0
+ bl sub_806BF74
+ ldrb r1, [r4]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _08122FE0 @ =gPlayerParty
+ adds r0, r1
+ ldr r1, _08122FE4 @ =gStringVar1
+ bl GetMonNickname
+ ldr r1, _08122FE8 @ =gUnknown_03005CE0
+ ldrb r0, [r4]
+ strb r0, [r1]
+ ldrb r0, [r5]
+ bl sub_8122D94
+ ldr r0, _08122FEC @ =sub_806AEDC
+ bl SetMainCallback2
+ b _08122FFC
+ .align 2, 0
+_08122FD8: .4byte 0x0201b260
+_08122FDC: .4byte gUnknown_020384F0
+_08122FE0: .4byte gPlayerParty
+_08122FE4: .4byte gStringVar1
+_08122FE8: .4byte gUnknown_03005CE0
+_08122FEC: .4byte sub_806AEDC
+_08122FF0:
+ bl sub_80F9344
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08122F96
+_08122FFC:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8122F90
+
+ thumb_func_start sub_8123004
+sub_8123004: @ 8123004
+ push {lr}
+ ldr r2, _08123028 @ =gPaletteFade
+ ldrb r0, [r2, 0x8]
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r2, 0x8]
+ ldr r2, _0812302C @ =sub_8122EAC
+ movs r0, 0x6
+ movs r1, 0xFF
+ movs r3, 0x5
+ bl sub_806AF4C
+ ldr r0, _08123030 @ =sub_8122F90
+ bl SetMainCallback2
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08123028: .4byte gPaletteFade
+_0812302C: .4byte sub_8122EAC
+_08123030: .4byte sub_8122F90
+ thumb_func_end sub_8123004
+
+ thumb_func_start sub_8123034
+sub_8123034: @ 8123034
+ push {r4,r5,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldr r0, _0812309C @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0
+ bne _08123092
+ ldr r2, _081230A0 @ =gSprites
+ ldr r1, _081230A4 @ =gTasks
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r0, 3
+ adds r0, r1
+ ldrh r1, [r0, 0xE]
+ lsls r1, 16
+ asrs r1, 24
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r4, [r0, 0x2E]
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r3, 0
+ bl DestroyTask
+ ldr r0, _081230A8 @ =0x0201b000
+ ldr r1, _081230AC @ =0x00000262
+ adds r0, r1
+ movs r1, 0x1
+ strb r1, [r0]
+ ldr r0, _081230B0 @ =gPlayerParty
+ ldr r1, _081230B4 @ =gPlayerPartyCount
+ ldrb r2, [r1]
+ subs r2, 0x1
+ lsls r2, 24
+ lsrs r2, 24
+ ldr r3, _081230B8 @ =sub_8123004
+ str r5, [sp]
+ adds r1, r4, 0
+ bl sub_809D8BC
+_08123092:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812309C: .4byte gPaletteFade
+_081230A0: .4byte gSprites
+_081230A4: .4byte gTasks
+_081230A8: .4byte 0x0201b000
+_081230AC: .4byte 0x00000262
+_081230B0: .4byte gPlayerParty
+_081230B4: .4byte gPlayerPartyCount
+_081230B8: .4byte sub_8123004
+ thumb_func_end sub_8123034
+
+ thumb_func_start sub_81230BC
+sub_81230BC: @ 81230BC
+ 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, _081230EC @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _081230F0 @ =sub_8123034
+ str r1, [r0]
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081230EC: .4byte gTasks
+_081230F0: .4byte sub_8123034
+ thumb_func_end sub_81230BC
+
+ thumb_func_start sub_81230F4
+sub_81230F4: @ 81230F4
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x14
+ movs r1, 0xA
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ bl sub_8072DEC
+ movs r0, 0xF
+ movs r1, 0
+ bl sub_806D538
+ ldr r1, _08123130 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _08123134 @ =sub_8122E0C
+ str r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08123130: .4byte gTasks
+_08123134: .4byte sub_8122E0C
+ thumb_func_end sub_81230F4
+
+ thumb_func_start sub_8123138
+sub_8123138: @ 8123138
+ 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, _08123168 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0812316C @ =sub_8123170
+ str r1, [r0]
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08123168: .4byte gTasks
+_0812316C: .4byte sub_8123170
+ thumb_func_end sub_8123138
+
+ thumb_func_start sub_8123170
+sub_8123170: @ 8123170
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _0812319C @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _08123194
+ ldr r0, _081231A0 @ =gUnknown_0300485C
+ ldr r1, _081231A4 @ =sub_81231AC
+ str r1, [r0]
+ ldr r0, _081231A8 @ =c2_exit_to_overworld_2_switch
+ bl SetMainCallback2
+ adds r0, r4, 0
+ bl DestroyTask
+_08123194:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812319C: .4byte gPaletteFade
+_081231A0: .4byte gUnknown_0300485C
+_081231A4: .4byte sub_81231AC
+_081231A8: .4byte c2_exit_to_overworld_2_switch
+ thumb_func_end sub_8123170
+
+ thumb_func_start sub_81231AC
+sub_81231AC: @ 81231AC
+ push {lr}
+ bl pal_fill_black
+ ldr r0, _081231C0 @ =sub_81231C4
+ movs r1, 0xA
+ bl CreateTask
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081231C0: .4byte sub_81231C4
+ thumb_func_end sub_81231AC
+
+ thumb_func_start sub_81231C4
+sub_81231C4: @ 81231C4
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_807D770
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _081231E4
+ adds r0, r4, 0
+ bl DestroyTask
+ bl ScriptContext2_Disable
+ bl EnableBothScriptContexts
+_081231E4:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81231C4
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/coins.s b/asm/coins.s
new file mode 100644
index 000000000..164e75007
--- /dev/null
+++ b/asm/coins.s
@@ -0,0 +1,251 @@
+ .include "constants/gba_constants.s"
+ .include "constants/species_constants.s"
+ .include "asm/macros.s"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_811A704
+sub_811A704: @ 811A704
+ push {r4,lr}
+ adds r4, r1, 0
+ adds r3, r2, 0
+ lsls r4, 24
+ lsls r3, 24
+ movs r1, 0x80
+ lsls r1, 18
+ adds r4, r1
+ lsrs r4, 24
+ movs r1, 0x80
+ lsls r1, 17
+ adds r3, r1
+ lsrs r3, 24
+ movs r1, 0x4
+ adds r2, r4, 0
+ bl sub_811A798
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_811A704
+
+ thumb_func_start sub_811A72C
+sub_811A72C: @ 811A72C
+ 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, 0x90
+ lsls r0, 20
+ adds r4, r0
+ lsrs r4, 24
+ lsrs r5, r3, 24
+ movs r0, 0xC0
+ lsls r0, 18
+ adds r3, r0
+ 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_811A704
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_811A72C
+
+ thumb_func_start sub_811A770
+sub_811A770: @ 811A770
+ push {r4,lr}
+ adds r2, r0, 0
+ adds r3, r1, 0
+ lsls r2, 24
+ lsls r3, 24
+ lsrs r0, r2, 24
+ movs r1, 0x90
+ lsls r1, 20
+ adds r2, r1
+ lsrs r2, 24
+ lsrs r1, r3, 24
+ movs r4, 0xC0
+ lsls r4, 18
+ adds r3, r4
+ lsrs r3, 24
+ bl MenuZeroFillWindowRect
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_811A770
+
+ thumb_func_start sub_811A798
+sub_811A798: @ 811A798
+ push {r4-r7,lr}
+ sub sp, 0x10
+ adds r4, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r5, r1, 0
+ lsls r2, 24
+ lsrs r6, r2, 24
+ lsls r3, 24
+ lsrs r7, r3, 24
+ mov r0, sp
+ adds r1, r4, 0
+ bl ConvertIntToDecimalString
+ lsls r1, r5, 1
+ adds r1, r5
+ lsls r1, 1
+ adds r1, 0x21
+ adds r0, r5, 0x2
+ lsls r0, 3
+ subs r1, r0
+ lsls r1, 24
+ lsrs r0, r1, 27
+ subs r0, r6, r0
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r0, 0xE0
+ lsls r0, 19
+ ands r0, r1
+ lsrs r1, r0, 24
+ ldr r4, _0811A824 @ =gStringVar1
+ cmp r1, 0
+ beq _0811A7EA
+ movs r0, 0xFC
+ strb r0, [r4]
+ movs r0, 0x11
+ strb r0, [r4, 0x1]
+ movs r0, 0x8
+ subs r0, r1
+ strb r0, [r4, 0x2]
+ adds r4, 0x3
+_0811A7EA:
+ movs r0, 0xFC
+ strb r0, [r4]
+ movs r0, 0x11
+ strb r0, [r4, 0x1]
+ mov r0, sp
+ bl StringLength
+ lsls r0, 16
+ lsrs r0, 16
+ subs r0, r5, r0
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 1
+ strb r1, [r4, 0x2]
+ adds r4, 0x3
+ adds r0, r4, 0
+ mov r1, sp
+ bl StringCopy
+ ldr r0, _0811A828 @ =gOtherText_Coins2
+ adds r1, r6, 0
+ adds r2, r7, 0
+ bl MenuPrint
+ add sp, 0x10
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811A824: .4byte gStringVar1
+_0811A828: .4byte gOtherText_Coins2
+ thumb_func_end sub_811A798
+
+ thumb_func_start GetCoins
+GetCoins: @ 811A82C
+ ldr r0, _0811A838 @ =gSaveBlock1
+ ldr r1, _0811A83C @ =0x00000494
+ adds r0, r1
+ ldrh r0, [r0]
+ bx lr
+ .align 2, 0
+_0811A838: .4byte gSaveBlock1
+_0811A83C: .4byte 0x00000494
+ thumb_func_end GetCoins
+
+ thumb_func_start GiveCoins
+GiveCoins: @ 811A840
+ push {r4,lr}
+ lsls r0, 16
+ lsrs r4, r0, 16
+ bl GetCoins
+ lsls r0, 16
+ ldr r1, _0811A858 @ =0x270e0000
+ cmp r0, r1
+ bls _0811A85C
+ movs r0, 0
+ b _0811A88C
+ .align 2, 0
+_0811A858: .4byte 0x270e0000
+_0811A85C:
+ ldr r0, _0811A874 @ =gSaveBlock1
+ ldr r1, _0811A878 @ =0x00000494
+ adds r3, r0, r1
+ ldrh r1, [r3]
+ adds r2, r4, r1
+ lsls r0, r2, 16
+ lsrs r0, 16
+ cmp r1, r0
+ bls _0811A880
+ ldr r0, _0811A87C @ =0x0000270f
+ strh r0, [r3]
+ b _0811A88A
+ .align 2, 0
+_0811A874: .4byte gSaveBlock1
+_0811A878: .4byte 0x00000494
+_0811A87C: .4byte 0x0000270f
+_0811A880:
+ strh r2, [r3]
+ ldr r1, _0811A894 @ =0x0000270f
+ cmp r0, r1
+ bls _0811A88A
+ strh r1, [r3]
+_0811A88A:
+ movs r0, 0x1
+_0811A88C:
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0811A894: .4byte 0x0000270f
+ thumb_func_end GiveCoins
+
+ thumb_func_start TakeCoins
+TakeCoins: @ 811A898
+ push {r4,lr}
+ lsls r0, 16
+ lsrs r4, r0, 16
+ bl GetCoins
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, r4
+ bcs _0811A8AE
+ movs r0, 0
+ b _0811A8BC
+_0811A8AE:
+ ldr r1, _0811A8C4 @ =gSaveBlock1
+ ldr r0, _0811A8C8 @ =0x00000494
+ adds r1, r0
+ ldrh r0, [r1]
+ subs r0, r4
+ strh r0, [r1]
+ movs r0, 0x1
+_0811A8BC:
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0811A8C4: .4byte gSaveBlock1
+_0811A8C8: .4byte 0x00000494
+ thumb_func_end TakeCoins
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/evolution_scene.s b/asm/evolution_scene.s
new file mode 100644
index 000000000..125f7d0e7
--- /dev/null
+++ b/asm/evolution_scene.s
@@ -0,0 +1,6717 @@
+ .include "constants/gba_constants.s"
+ .include "constants/species_constants.s"
+ .include "asm/macros.s"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_8111894
+sub_8111894: @ 8111894
+ push {lr}
+ bl UpdatePaletteFade
+ bl RunTasks
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8111894
+
+ thumb_func_start sub_81118A4
+sub_81118A4: @ 81118A4
+ push {r4-r7,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r2, r0, 24
+ movs r7, 0
+ ldr r1, _081118C8 @ =gTasks
+ 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 _081118CC
+ cmp r0, 0x1
+ beq _081118E4
+ b _08111918
+ .align 2, 0
+_081118C8: .4byte gTasks
+_081118CC:
+ movs r0, 0x1
+ negs r0, r0
+ str r7, [sp]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _08111918
+_081118E4:
+ ldr r0, _08111920 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _08111918
+ movs r0, 0xA
+ ldrsh r7, [r4, r0]
+ movs r1, 0xC
+ ldrsh r0, [r4, r1]
+ lsls r0, 16
+ orrs r7, r0
+ ldrh r5, [r4, 0x10]
+ ldrb r6, [r4, 0x12]
+ ldrh r4, [r4, 0x20]
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r2, 0
+ bl DestroyTask
+ adds r0, r7, 0
+ adds r1, r5, 0
+ adds r2, r6, 0
+ adds r3, r4, 0
+ bl evolution_cutscene
+_08111918:
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08111920: .4byte gPaletteFade
+ thumb_func_end sub_81118A4
+
+ thumb_func_start sub_8111924
+sub_8111924: @ 8111924
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ mov r8, r0
+ adds r4, r1, 0
+ adds r5, r2, 0
+ adds r6, r3, 0
+ lsls r4, 16
+ lsrs r4, 16
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r6, 24
+ lsrs r6, 24
+ ldr r0, _08111978 @ =sub_81118A4
+ movs r1, 0
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0811197C @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ movs r0, 0
+ strh r0, [r1, 0x8]
+ mov r0, r8
+ strh r0, [r1, 0xA]
+ mov r0, r8
+ lsrs r0, 16
+ strh r0, [r1, 0xC]
+ strh r4, [r1, 0x10]
+ strh r5, [r1, 0x12]
+ strh r6, [r1, 0x20]
+ ldr r0, _08111980 @ =sub_8111894
+ bl SetMainCallback2
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08111978: .4byte sub_81118A4
+_0811197C: .4byte gTasks
+_08111980: .4byte sub_8111894
+ thumb_func_end sub_8111924
+
+ thumb_func_start evolution_cutscene
+evolution_cutscene: @ 8111984
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x38
+ str r0, [sp, 0x20]
+ mov r10, r1
+ mov r0, r10
+ lsls r0, 16
+ lsrs r0, 16
+ mov r10, r0
+ lsls r2, 24
+ lsrs r2, 24
+ str r2, [sp, 0x24]
+ lsls r3, 24
+ lsrs r3, 24
+ str r3, [sp, 0x28]
+ movs r0, 0
+ bl SetHBlankCallback
+ movs r0, 0
+ bl SetVBlankCallback
+ movs r5, 0
+ str r5, [sp, 0x1C]
+ add r0, sp, 0x1C
+ movs r1, 0xC0
+ lsls r1, 19
+ ldr r2, _08111C10 @ =0x05006000
+ bl CpuSet
+ ldr r0, _08111C14 @ =REG_MOSAIC
+ strh r5, [r0]
+ subs r0, 0xC
+ strh r5, [r0]
+ adds r0, 0x4
+ strh r5, [r0]
+ subs r0, 0x2
+ strh r5, [r0]
+ adds r0, 0x4
+ strh r5, [r0]
+ adds r0, 0x2
+ strh r5, [r0]
+ adds r0, 0x2
+ strh r5, [r0]
+ ldr r4, _08111C18 @ =gWindowConfig_81E6C58
+ adds r0, r4, 0
+ bl SetUpWindowConfig
+ bl ResetPaletteFade
+ ldr r0, _08111C1C @ =gUnknown_030042A4
+ strh r5, [r0]
+ ldr r0, _08111C20 @ =gUnknown_030042A0
+ strh r5, [r0]
+ ldr r0, _08111C24 @ =gUnknown_030042C0
+ strh r5, [r0]
+ ldr r0, _08111C28 @ =gUnknown_030041B4
+ strh r5, [r0]
+ ldr r0, _08111C2C @ =gUnknown_03004288
+ strh r5, [r0]
+ ldr r0, _08111C30 @ =gUnknown_03004280
+ strh r5, [r0]
+ ldr r1, _08111C34 @ =gUnknown_030041B0
+ movs r2, 0x80
+ lsls r2, 1
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r0, _08111C38 @ =gUnknown_030041B8
+ strh r5, [r0]
+ ldr r0, _08111C3C @ =gUnknown_03004210
+ adds r1, r4, 0
+ bl InitWindowFromConfig
+ ldr r1, _08111C40 @ =gUnknown_0300428C
+ movs r0, 0x9
+ strb r0, [r1]
+ bl sub_800D6D4
+ bl sub_800DAB8
+ bl ResetSpriteData
+ bl remove_some_task
+ bl ResetTasks
+ bl FreeAllSpritePalettes
+ ldr r0, _08111C44 @ =gReservedSpritePaletteCount
+ movs r3, 0x4
+ strb r3, [r0]
+ ldr r0, [sp, 0x20]
+ movs r1, 0x2
+ add r2, sp, 0x8
+ bl GetMonData
+ ldr r0, _08111C48 @ =gStringVar1
+ add r1, sp, 0x8
+ bl StringCopy10
+ ldr r0, _08111C4C @ =gStringVar2
+ movs r1, 0xB
+ mov r4, r10
+ muls r4, r1
+ adds r1, r4, 0
+ ldr r2, _08111C50 @ =gSpeciesNames
+ adds r1, r2
+ bl StringCopy
+ ldr r0, [sp, 0x20]
+ movs r1, 0xB
+ bl GetMonData
+ adds r6, r0, 0
+ lsls r6, 16
+ lsrs r6, 16
+ ldr r0, [sp, 0x20]
+ movs r1, 0x1
+ bl GetMonData
+ str r0, [sp, 0x2C]
+ ldr r0, [sp, 0x20]
+ movs r1, 0
+ bl GetMonData
+ str r0, [sp, 0x30]
+ lsls r0, r6, 3
+ ldr r1, _08111C54 @ =gMonFrontPicTable
+ adds r0, r1
+ lsls r2, r6, 2
+ ldr r3, _08111C58 @ =gMonFrontPicCoords
+ adds r2, r3
+ ldrb r1, [r2]
+ ldrb r2, [r2, 0x1]
+ ldr r4, _08111C5C @ =gUnknown_081FAF4C
+ ldr r3, [r4, 0x4]
+ str r3, [sp]
+ str r6, [sp, 0x4]
+ movs r3, 0x80
+ lsls r3, 18
+ bl DecompressPicFromTable_2
+ adds r0, r6, 0
+ ldr r1, [sp, 0x2C]
+ ldr r2, [sp, 0x30]
+ bl sub_80409C8
+ ldr r0, [r0]
+ movs r1, 0x88
+ lsls r1, 1
+ movs r2, 0x20
+ bl LoadCompressedPalette
+ adds r0, r6, 0
+ movs r1, 0x1
+ bl GetMonSpriteTemplate_803C56C
+ ldr r0, _08111C60 @ =gUnknown_02024E8C
+ mov r9, r0
+ ldr r1, _08111C64 @ =gDummySpriteAffineAnimTable
+ str r1, [r0, 0x10]
+ movs r1, 0x78
+ movs r2, 0x40
+ movs r3, 0x1E
+ bl CreateSprite
+ lsls r1, r0, 24
+ lsrs r2, r1, 24
+ ldr r3, _08111C68 @ =0x02014800
+ strb r0, [r3]
+ ldr r7, _08111C6C @ =gSprites
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ movs r4, 0x1C
+ adds r4, r7
+ mov r8, r4
+ adds r0, r1, r4
+ ldr r2, _08111C70 @ =nullsub_37
+ str r2, [r0]
+ adds r1, r7
+ ldrb r2, [r1, 0x5]
+ movs r4, 0xF
+ adds r0, r4, 0
+ ands r0, r2
+ movs r2, 0x10
+ orrs r0, r2
+ strb r0, [r1, 0x5]
+ adds r1, 0x3E
+ ldrb r0, [r1]
+ movs r3, 0x4
+ orrs r0, r3
+ strb r0, [r1]
+ mov r1, r10
+ lsls r0, r1, 3
+ ldr r2, _08111C54 @ =gMonFrontPicTable
+ adds r0, r2
+ lsls r2, r1, 2
+ ldr r3, _08111C58 @ =gMonFrontPicCoords
+ adds r2, r3
+ ldrb r1, [r2]
+ ldrb r2, [r2, 0x1]
+ str r2, [sp, 0x34]
+ ldr r2, _08111C5C @ =gUnknown_081FAF4C
+ ldr r2, [r2, 0xC]
+ str r2, [sp]
+ mov r3, r10
+ str r3, [sp, 0x4]
+ ldr r2, [sp, 0x34]
+ movs r3, 0x80
+ lsls r3, 18
+ bl DecompressPicFromTable_2
+ mov r0, r10
+ ldr r1, [sp, 0x2C]
+ ldr r2, [sp, 0x30]
+ bl sub_80409C8
+ ldr r0, [r0]
+ movs r1, 0x90
+ lsls r1, 1
+ movs r2, 0x20
+ bl LoadCompressedPalette
+ mov r0, r10
+ movs r1, 0x3
+ bl GetMonSpriteTemplate_803C56C
+ ldr r0, _08111C64 @ =gDummySpriteAffineAnimTable
+ mov r1, r9
+ str r0, [r1, 0x10]
+ mov r0, r9
+ movs r1, 0x78
+ movs r2, 0x40
+ movs r3, 0x1E
+ bl CreateSprite
+ lsls r1, r0, 24
+ lsrs r2, r1, 24
+ ldr r3, _08111C68 @ =0x02014800
+ strb r0, [r3, 0x1]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ add r8, r1
+ ldr r0, _08111C70 @ =nullsub_37
+ mov r2, r8
+ str r0, [r2]
+ adds r1, r7
+ ldrb r0, [r1, 0x5]
+ ands r4, r0
+ movs r0, 0x20
+ orrs r4, r0
+ strb r4, [r1, 0x5]
+ adds r1, 0x3E
+ ldrb r0, [r1]
+ movs r3, 0x4
+ orrs r0, r3
+ strb r0, [r1]
+ bl sub_8149954
+ ldr r0, _08111C74 @ =sub_811240C
+ movs r1, 0
+ bl CreateTask
+ lsls r1, r0, 24
+ lsrs r2, r1, 24
+ ldr r4, _08111C68 @ =0x02014800
+ strb r0, [r4, 0x2]
+ ldr r1, _08111C78 @ =gTasks
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r0, r1
+ strh r5, [r0, 0x8]
+ strh r6, [r0, 0xE]
+ mov r1, r10
+ strh r1, [r0, 0x10]
+ mov r2, sp
+ ldrh r2, [r2, 0x20]
+ strh r2, [r0, 0xA]
+ ldr r3, [sp, 0x20]
+ lsrs r1, r3, 16
+ strh r1, [r0, 0xC]
+ mov r4, sp
+ ldrh r4, [r4, 0x24]
+ strh r4, [r0, 0x12]
+ movs r1, 0x1
+ strh r1, [r0, 0x14]
+ strh r5, [r0, 0x1E]
+ mov r1, sp
+ ldrh r1, [r1, 0x28]
+ strh r1, [r0, 0x20]
+ ldr r0, _08111C7C @ =0x02009000
+ ldr r1, _08111C80 @ =gPlttBufferUnfaded + 0x40
+ movs r2, 0x60
+ bl memcpy
+ movs r1, 0x80
+ lsls r1, 19
+ movs r2, 0xFA
+ lsls r2, 5
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r0, _08111C84 @ =nullsub_73
+ bl SetHBlankCallback
+ ldr r0, _08111C88 @ =sub_8114FD4
+ bl SetVBlankCallback
+ bl m4aMPlayAllStop
+ ldr r0, _08111C8C @ =sub_8112270
+ bl SetMainCallback2
+ add sp, 0x38
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08111C10: .4byte 0x05006000
+_08111C14: .4byte REG_MOSAIC
+_08111C18: .4byte gWindowConfig_81E6C58
+_08111C1C: .4byte gUnknown_030042A4
+_08111C20: .4byte gUnknown_030042A0
+_08111C24: .4byte gUnknown_030042C0
+_08111C28: .4byte gUnknown_030041B4
+_08111C2C: .4byte gUnknown_03004288
+_08111C30: .4byte gUnknown_03004280
+_08111C34: .4byte gUnknown_030041B0
+_08111C38: .4byte gUnknown_030041B8
+_08111C3C: .4byte gUnknown_03004210
+_08111C40: .4byte gUnknown_0300428C
+_08111C44: .4byte gReservedSpritePaletteCount
+_08111C48: .4byte gStringVar1
+_08111C4C: .4byte gStringVar2
+_08111C50: .4byte gSpeciesNames
+_08111C54: .4byte gMonFrontPicTable
+_08111C58: .4byte gMonFrontPicCoords
+_08111C5C: .4byte gUnknown_081FAF4C
+_08111C60: .4byte gUnknown_02024E8C
+_08111C64: .4byte gDummySpriteAffineAnimTable
+_08111C68: .4byte 0x02014800
+_08111C6C: .4byte gSprites
+_08111C70: .4byte nullsub_37
+_08111C74: .4byte sub_811240C
+_08111C78: .4byte gTasks
+_08111C7C: .4byte 0x02009000
+_08111C80: .4byte gPlttBufferUnfaded + 0x40
+_08111C84: .4byte nullsub_73
+_08111C88: .4byte sub_8114FD4
+_08111C8C: .4byte sub_8112270
+ thumb_func_end evolution_cutscene
+
+ thumb_func_start sub_8111C90
+sub_8111C90: @ 8111C90
+ push {r4-r6,lr}
+ mov r6, r10
+ mov r5, r9
+ mov r4, r8
+ push {r4-r6}
+ sub sp, 0xC
+ ldr r2, _08111E14 @ =gTasks
+ ldr r0, _08111E18 @ =0x02014800
+ mov r9, r0
+ ldrb r1, [r0, 0x2]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ movs r1, 0x20
+ ldrsh r2, [r0, r1]
+ movs r1, 0x64
+ adds r4, r2, 0
+ muls r4, r1
+ ldr r1, _08111E1C @ =gPlayerParty
+ adds r4, r1
+ ldrh r6, [r0, 0x10]
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl GetMonData
+ mov r10, r0
+ adds r0, r4, 0
+ movs r1, 0
+ bl GetMonData
+ mov r8, r0
+ movs r0, 0
+ bl SetHBlankCallback
+ movs r0, 0
+ bl SetVBlankCallback
+ movs r5, 0
+ str r5, [sp, 0x8]
+ movs r1, 0xC0
+ lsls r1, 19
+ ldr r2, _08111E20 @ =0x05006000
+ add r0, sp, 0x8
+ bl CpuSet
+ ldr r0, _08111E24 @ =REG_MOSAIC
+ strh r5, [r0]
+ subs r0, 0xC
+ strh r5, [r0]
+ adds r0, 0x4
+ strh r5, [r0]
+ subs r0, 0x2
+ strh r5, [r0]
+ adds r0, 0x4
+ strh r5, [r0]
+ adds r0, 0x2
+ strh r5, [r0]
+ adds r0, 0x2
+ strh r5, [r0]
+ ldr r4, _08111E28 @ =gWindowConfig_81E6C58
+ adds r0, r4, 0
+ bl SetUpWindowConfig
+ bl ResetPaletteFade
+ ldr r0, _08111E2C @ =gUnknown_030042A4
+ strh r5, [r0]
+ ldr r0, _08111E30 @ =gUnknown_030042A0
+ strh r5, [r0]
+ ldr r0, _08111E34 @ =gUnknown_030042C0
+ strh r5, [r0]
+ ldr r0, _08111E38 @ =gUnknown_030041B4
+ strh r5, [r0]
+ ldr r0, _08111E3C @ =gUnknown_03004288
+ strh r5, [r0]
+ ldr r0, _08111E40 @ =gUnknown_03004280
+ strh r5, [r0]
+ ldr r1, _08111E44 @ =gUnknown_030041B0
+ movs r2, 0x80
+ lsls r2, 1
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r0, _08111E48 @ =gUnknown_030041B8
+ strh r5, [r0]
+ ldr r0, _08111E4C @ =gUnknown_03004210
+ adds r1, r4, 0
+ bl InitWindowFromConfig
+ ldr r1, _08111E50 @ =gUnknown_0300428C
+ movs r0, 0x9
+ strb r0, [r1]
+ bl sub_800D6D4
+ bl sub_800DAB8
+ bl ResetSpriteData
+ bl FreeAllSpritePalettes
+ ldr r1, _08111E54 @ =gReservedSpritePaletteCount
+ movs r0, 0x4
+ strb r0, [r1]
+ lsls r0, r6, 3
+ ldr r1, _08111E58 @ =gMonFrontPicTable
+ adds r0, r1
+ ldr r1, _08111E5C @ =gMonFrontPicCoords
+ lsls r2, r6, 2
+ adds r2, r1
+ ldrb r1, [r2]
+ ldrb r2, [r2, 0x1]
+ movs r3, 0x80
+ lsls r3, 18
+ ldr r4, _08111E60 @ =gUnknown_081FAF4C
+ ldr r4, [r4, 0xC]
+ str r4, [sp]
+ str r6, [sp, 0x4]
+ bl DecompressPicFromTable_2
+ adds r0, r6, 0
+ mov r1, r10
+ mov r2, r8
+ bl sub_80409C8
+ ldr r0, [r0]
+ movs r1, 0x90
+ lsls r1, 1
+ movs r2, 0x20
+ bl LoadCompressedPalette
+ adds r0, r6, 0
+ movs r1, 0x3
+ bl GetMonSpriteTemplate_803C56C
+ ldr r0, _08111E64 @ =gUnknown_02024E8C
+ ldr r1, _08111E68 @ =gDummySpriteAffineAnimTable
+ str r1, [r0, 0x10]
+ movs r1, 0x78
+ movs r2, 0x40
+ movs r3, 0x1E
+ bl CreateSprite
+ lsls r2, r0, 24
+ lsrs r2, 24
+ mov r1, r9
+ strb r0, [r1, 0x1]
+ ldr r3, _08111E6C @ =gSprites
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r0, r3, 0
+ adds r0, 0x1C
+ adds r0, r1, r0
+ ldr r2, _08111E70 @ =nullsub_37
+ str r2, [r0]
+ adds r1, r3
+ ldrb r2, [r1, 0x5]
+ movs r0, 0xF
+ ands r0, r2
+ movs r2, 0x20
+ orrs r0, r2
+ strb r0, [r1, 0x5]
+ movs r1, 0x80
+ lsls r1, 19
+ movs r2, 0xFA
+ lsls r2, 5
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r0, _08111E74 @ =nullsub_73
+ bl SetHBlankCallback
+ ldr r0, _08111E78 @ =sub_8114FD4
+ bl SetVBlankCallback
+ ldr r0, _08111E7C @ =sub_8112270
+ bl SetMainCallback2
+ movs r0, 0x1
+ negs r0, r0
+ str r5, [sp]
+ movs r1, 0
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ add sp, 0xC
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08111E14: .4byte gTasks
+_08111E18: .4byte 0x02014800
+_08111E1C: .4byte gPlayerParty
+_08111E20: .4byte 0x05006000
+_08111E24: .4byte REG_MOSAIC
+_08111E28: .4byte gWindowConfig_81E6C58
+_08111E2C: .4byte gUnknown_030042A4
+_08111E30: .4byte gUnknown_030042A0
+_08111E34: .4byte gUnknown_030042C0
+_08111E38: .4byte gUnknown_030041B4
+_08111E3C: .4byte gUnknown_03004288
+_08111E40: .4byte gUnknown_03004280
+_08111E44: .4byte gUnknown_030041B0
+_08111E48: .4byte gUnknown_030041B8
+_08111E4C: .4byte gUnknown_03004210
+_08111E50: .4byte gUnknown_0300428C
+_08111E54: .4byte gReservedSpritePaletteCount
+_08111E58: .4byte gMonFrontPicTable
+_08111E5C: .4byte gMonFrontPicCoords
+_08111E60: .4byte gUnknown_081FAF4C
+_08111E64: .4byte gUnknown_02024E8C
+_08111E68: .4byte gDummySpriteAffineAnimTable
+_08111E6C: .4byte gSprites
+_08111E70: .4byte nullsub_37
+_08111E74: .4byte nullsub_73
+_08111E78: .4byte sub_8114FD4
+_08111E7C: .4byte sub_8112270
+ thumb_func_end sub_8111C90
+
+ thumb_func_start sub_8111E80
+sub_8111E80: @ 8111E80
+ push {r4-r7,lr}
+ sub sp, 0x8
+ ldr r2, _08111EB8 @ =gTasks
+ ldr r0, _08111EBC @ =0x02014800
+ ldrb r1, [r0, 0x2]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ movs r1, 0x20
+ ldrsh r2, [r0, r1]
+ movs r1, 0x64
+ muls r2, r1
+ ldr r1, _08111EC0 @ =gPlayerParty
+ adds r4, r2, r1
+ ldrh r7, [r0, 0x10]
+ ldr r0, _08111EC4 @ =gMain
+ ldr r2, _08111EC8 @ =0x0000043c
+ adds r0, r2
+ ldrb r0, [r0]
+ cmp r0, 0x6
+ bls _08111EAE
+ b _081120D6
+_08111EAE:
+ lsls r0, 2
+ ldr r1, _08111ECC @ =_08111ED0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08111EB8: .4byte gTasks
+_08111EBC: .4byte 0x02014800
+_08111EC0: .4byte gPlayerParty
+_08111EC4: .4byte gMain
+_08111EC8: .4byte 0x0000043c
+_08111ECC: .4byte _08111ED0
+ .align 2, 0
+_08111ED0:
+ .4byte _08111EEC
+ .4byte _08111F68
+ .4byte _08111F88
+ .4byte _08111FDC
+ .4byte _08111FE2
+ .4byte _08112048
+ .4byte _081120B4
+_08111EEC:
+ movs r0, 0x80
+ lsls r0, 19
+ movs r4, 0
+ strh r4, [r0]
+ movs r0, 0
+ bl SetHBlankCallback
+ movs r0, 0
+ bl SetVBlankCallback
+ bl ResetSpriteData
+ bl FreeAllSpritePalettes
+ ldr r1, _08111F3C @ =gReservedSpritePaletteCount
+ movs r0, 0x4
+ strb r0, [r1]
+ ldr r0, _08111F40 @ =gUnknown_030042A4
+ strh r4, [r0]
+ ldr r0, _08111F44 @ =gUnknown_030042A0
+ strh r4, [r0]
+ ldr r0, _08111F48 @ =gUnknown_030042C0
+ strh r4, [r0]
+ ldr r0, _08111F4C @ =gUnknown_030041B4
+ strh r4, [r0]
+ ldr r0, _08111F50 @ =gUnknown_03004288
+ strh r4, [r0]
+ ldr r0, _08111F54 @ =gUnknown_03004280
+ strh r4, [r0]
+ ldr r1, _08111F58 @ =gUnknown_030041B0
+ movs r2, 0x80
+ lsls r2, 1
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r0, _08111F5C @ =gUnknown_030041B8
+ strh r4, [r0]
+ ldr r1, _08111F60 @ =gMain
+ ldr r0, _08111F64 @ =0x0000043c
+ adds r1, r0
+ b _0811208E
+ .align 2, 0
+_08111F3C: .4byte gReservedSpritePaletteCount
+_08111F40: .4byte gUnknown_030042A4
+_08111F44: .4byte gUnknown_030042A0
+_08111F48: .4byte gUnknown_030042C0
+_08111F4C: .4byte gUnknown_030041B4
+_08111F50: .4byte gUnknown_03004288
+_08111F54: .4byte gUnknown_03004280
+_08111F58: .4byte gUnknown_030041B0
+_08111F5C: .4byte gUnknown_030041B8
+_08111F60: .4byte gMain
+_08111F64: .4byte 0x0000043c
+_08111F68:
+ ldr r4, _08111F80 @ =gWindowConfig_81E6F84
+ adds r0, r4, 0
+ bl SetUpWindowConfig
+ ldr r0, _08111F84 @ =gUnknown_03004828
+ ldr r0, [r0]
+ adds r0, 0x4
+ adds r1, r4, 0
+ bl InitWindowFromConfig
+ b _08112088
+ .align 2, 0
+_08111F80: .4byte gWindowConfig_81E6F84
+_08111F84: .4byte gUnknown_03004828
+_08111F88:
+ ldr r4, _08111FC8 @ =gUnknown_03004828
+ ldr r0, [r4]
+ adds r0, 0x4
+ bl LoadTextWindowGraphics
+ movs r0, 0x2
+ bl SetTextWindowBaseTileNum
+ ldr r1, [r4]
+ adds r1, 0x34
+ strb r0, [r1]
+ ldr r0, [r4]
+ adds r0, 0x4
+ bl LoadTextWindowGraphics
+ bl MenuZeroFillScreen
+ bl ResetPaletteFade
+ ldr r1, _08111FCC @ =gMain
+ ldr r0, _08111FD0 @ =0x0000043c
+ adds r1, r0
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ ldr r0, _08111FD4 @ =nullsub_73
+ bl SetHBlankCallback
+ ldr r0, _08111FD8 @ =sub_811505C
+ bl SetVBlankCallback
+ b _081120D6
+ .align 2, 0
+_08111FC8: .4byte gUnknown_03004828
+_08111FCC: .4byte gMain
+_08111FD0: .4byte 0x0000043c
+_08111FD4: .4byte nullsub_73
+_08111FD8: .4byte sub_811505C
+_08111FDC:
+ bl sub_804E22C
+ b _08112088
+_08111FE2:
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl GetMonData
+ adds r6, r0, 0
+ adds r0, r4, 0
+ movs r1, 0
+ bl GetMonData
+ adds r5, r0, 0
+ lsls r0, r7, 3
+ ldr r1, _08112034 @ =gMonFrontPicTable
+ adds r0, r1
+ ldr r1, _08112038 @ =gMonFrontPicCoords
+ lsls r2, r7, 2
+ adds r2, r1
+ ldrb r1, [r2]
+ ldrb r2, [r2, 0x1]
+ movs r3, 0x80
+ lsls r3, 18
+ ldr r4, _0811203C @ =gUnknown_081FAF4C
+ ldr r4, [r4, 0xC]
+ str r4, [sp]
+ str r7, [sp, 0x4]
+ bl DecompressPicFromTable_2
+ adds r0, r7, 0
+ adds r1, r6, 0
+ adds r2, r5, 0
+ bl sub_80409C8
+ ldr r0, [r0]
+ movs r1, 0x90
+ lsls r1, 1
+ movs r2, 0x20
+ bl LoadCompressedPalette
+ ldr r1, _08112040 @ =gMain
+ ldr r0, _08112044 @ =0x0000043c
+ adds r1, r0
+ b _0811208E
+ .align 2, 0
+_08112034: .4byte gMonFrontPicTable
+_08112038: .4byte gMonFrontPicCoords
+_0811203C: .4byte gUnknown_081FAF4C
+_08112040: .4byte gMain
+_08112044: .4byte 0x0000043c
+_08112048:
+ adds r0, r7, 0
+ movs r1, 0x3
+ bl GetMonSpriteTemplate_803C56C
+ ldr r0, _08112098 @ =gUnknown_02024E8C
+ ldr r1, _0811209C @ =gDummySpriteAffineAnimTable
+ str r1, [r0, 0x10]
+ movs r1, 0x78
+ movs r2, 0x40
+ movs r3, 0x1E
+ bl CreateSprite
+ ldr r1, _081120A0 @ =0x02014800
+ lsls r2, r0, 24
+ lsrs r2, 24
+ strb r0, [r1, 0x1]
+ ldr r3, _081120A4 @ =gSprites
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r0, r3, 0
+ adds r0, 0x1C
+ adds r0, r1, r0
+ ldr r2, _081120A8 @ =nullsub_37
+ str r2, [r0]
+ adds r1, r3
+ ldrb r2, [r1, 0x5]
+ movs r0, 0xF
+ ands r0, r2
+ movs r2, 0x20
+ orrs r0, r2
+ strb r0, [r1, 0x5]
+_08112088:
+ ldr r1, _081120AC @ =gMain
+ ldr r2, _081120B0 @ =0x0000043c
+ adds r1, r2
+_0811208E:
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _081120D6
+ .align 2, 0
+_08112098: .4byte gUnknown_02024E8C
+_0811209C: .4byte gDummySpriteAffineAnimTable
+_081120A0: .4byte 0x02014800
+_081120A4: .4byte gSprites
+_081120A8: .4byte nullsub_37
+_081120AC: .4byte gMain
+_081120B0: .4byte 0x0000043c
+_081120B4:
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ ldr r0, _081120E0 @ =sub_8112290
+ bl SetMainCallback2
+ movs r1, 0x80
+ lsls r1, 19
+ movs r2, 0x9A
+ lsls r2, 5
+ adds r0, r2, 0
+ strh r0, [r1]
+_081120D6:
+ add sp, 0x8
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081120E0: .4byte sub_8112290
+ thumb_func_end sub_8111E80
+
+ thumb_func_start sub_81120E4
+sub_81120E4: @ 81120E4
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x24
+ str r0, [sp, 0x1C]
+ adds r5, r1, 0
+ adds r4, r2, 0
+ mov r10, r3
+ lsls r5, 16
+ lsrs r5, 16
+ lsls r4, 24
+ lsrs r4, 24
+ mov r0, r10
+ lsls r0, 24
+ lsrs r0, 24
+ mov r10, r0
+ ldr r0, [sp, 0x1C]
+ movs r1, 0x2
+ add r2, sp, 0x8
+ bl GetMonData
+ ldr r0, _08112234 @ =gStringVar1
+ add r1, sp, 0x8
+ bl StringCopy10
+ ldr r0, _08112238 @ =gStringVar2
+ movs r1, 0xB
+ muls r1, r5
+ ldr r2, _0811223C @ =gSpeciesNames
+ adds r1, r2
+ bl StringCopy
+ ldr r1, _08112240 @ =gAffineAnimsDisabled
+ movs r0, 0x1
+ strb r0, [r1]
+ ldr r0, [sp, 0x1C]
+ movs r1, 0xB
+ bl GetMonData
+ mov r8, r0
+ mov r1, r8
+ lsls r1, 16
+ lsrs r1, 16
+ mov r8, r1
+ ldr r0, [sp, 0x1C]
+ movs r1, 0
+ bl GetMonData
+ adds r6, r0, 0
+ ldr r0, [sp, 0x1C]
+ movs r1, 0x1
+ bl GetMonData
+ adds r7, r0, 0
+ ldr r2, _08112244 @ =0x02014800
+ mov r9, r2
+ strb r4, [r2]
+ lsls r0, r5, 3
+ ldr r1, _08112248 @ =gMonFrontPicTable
+ adds r0, r1
+ ldr r1, _0811224C @ =gMonFrontPicCoords
+ lsls r2, r5, 2
+ adds r2, r1
+ ldrb r1, [r2]
+ ldrb r2, [r2, 0x1]
+ movs r3, 0x80
+ lsls r3, 18
+ ldr r4, _08112250 @ =gUnknown_081FAF4C
+ ldr r4, [r4, 0x4]
+ str r4, [sp]
+ str r5, [sp, 0x4]
+ bl DecompressPicFromTable_2
+ adds r0, r5, 0
+ adds r1, r7, 0
+ adds r2, r6, 0
+ bl sub_80409C8
+ ldr r0, [r0]
+ movs r1, 0x90
+ lsls r1, 1
+ movs r2, 0x20
+ bl LoadCompressedPalette
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl GetMonSpriteTemplate_803C56C
+ ldr r0, _08112254 @ =gUnknown_02024E8C
+ ldr r1, _08112258 @ =gDummySpriteAffineAnimTable
+ str r1, [r0, 0x10]
+ movs r1, 0x78
+ movs r2, 0x40
+ movs r3, 0x1E
+ bl CreateSprite
+ lsls r1, r0, 24
+ lsrs r2, r1, 24
+ mov r1, r9
+ strb r0, [r1, 0x1]
+ ldr r3, _0811225C @ =gSprites
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r0, r3, 0
+ adds r0, 0x1C
+ adds r0, r1, r0
+ ldr r2, _08112260 @ =nullsub_37
+ str r2, [r0]
+ adds r1, r3
+ ldrb r2, [r1, 0x5]
+ movs r0, 0xF
+ ands r0, r2
+ movs r2, 0x20
+ orrs r0, r2
+ strb r0, [r1, 0x5]
+ adds r1, 0x3E
+ ldrb r0, [r1]
+ movs r2, 0x4
+ orrs r0, r2
+ strb r0, [r1]
+ bl sub_8149954
+ ldr r0, _08112264 @ =sub_8112FE8
+ movs r1, 0
+ bl CreateTask
+ lsls r1, r0, 24
+ lsrs r2, r1, 24
+ mov r1, r9
+ strb r0, [r1, 0x2]
+ ldr r1, _08112268 @ =gTasks
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r0, r1
+ movs r2, 0
+ strh r2, [r0, 0x8]
+ mov r1, r8
+ strh r1, [r0, 0xE]
+ strh r5, [r0, 0x10]
+ mov r2, sp
+ ldrh r2, [r2, 0x1C]
+ strh r2, [r0, 0xA]
+ ldr r1, [sp, 0x1C]
+ lsrs r1, 16
+ str r1, [sp, 0x20]
+ strh r1, [r0, 0xC]
+ movs r1, 0x1
+ strh r1, [r0, 0x14]
+ movs r1, 0
+ strh r1, [r0, 0x1E]
+ mov r2, r10
+ strh r2, [r0, 0x20]
+ ldr r0, _0811226C @ =sub_8112290
+ bl SetMainCallback2
+ 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
+_08112234: .4byte gStringVar1
+_08112238: .4byte gStringVar2
+_0811223C: .4byte gSpeciesNames
+_08112240: .4byte gAffineAnimsDisabled
+_08112244: .4byte 0x02014800
+_08112248: .4byte gMonFrontPicTable
+_0811224C: .4byte gMonFrontPicCoords
+_08112250: .4byte gUnknown_081FAF4C
+_08112254: .4byte gUnknown_02024E8C
+_08112258: .4byte gDummySpriteAffineAnimTable
+_0811225C: .4byte gSprites
+_08112260: .4byte nullsub_37
+_08112264: .4byte sub_8112FE8
+_08112268: .4byte gTasks
+_0811226C: .4byte sub_8112290
+ thumb_func_end sub_81120E4
+
+ thumb_func_start sub_8112270
+sub_8112270: @ 8112270
+ push {lr}
+ bl AnimateSprites
+ bl BuildOamBuffer
+ ldr r0, _0811228C @ =gUnknown_03004210
+ bl sub_800374C
+ bl UpdatePaletteFade
+ bl RunTasks
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811228C: .4byte gUnknown_03004210
+ thumb_func_end sub_8112270
+
+ thumb_func_start sub_8112290
+sub_8112290: @ 8112290
+ push {lr}
+ bl AnimateSprites
+ bl BuildOamBuffer
+ ldr r0, _081122B0 @ =gUnknown_03004828
+ ldr r0, [r0]
+ adds r0, 0x4
+ bl sub_80035AC
+ bl UpdatePaletteFade
+ bl RunTasks
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081122B0: .4byte gUnknown_03004828
+ thumb_func_end sub_8112290
+
+ thumb_func_start sub_81122B4
+sub_81122B4: @ 81122B4
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ mov r10, r1
+ lsls r0, 16
+ lsrs r7, r0, 16
+ movs r0, 0
+ str r0, [sp]
+ ldr r0, _081123F4 @ =gEvolutionTable
+ mov r8, r0
+ lsls r1, r7, 2
+ mov r9, r1
+ adds r0, r1, r7
+ lsls r4, r0, 3
+ mov r0, r8
+ adds r6, r4, r0
+ ldrh r0, [r6]
+ cmp r0, 0xD
+ beq _081122E2
+ b _081123E2
+_081122E2:
+ ldr r1, _081123F8 @ =gPlayerPartyCount
+ ldrb r0, [r1]
+ cmp r0, 0x5
+ bhi _081123E2
+ adds r1, r0, 0
+ movs r0, 0x64
+ muls r1, r0
+ ldr r0, _081123FC @ =gPlayerParty
+ adds r5, r1, r0
+ adds r0, r5, 0
+ mov r1, r10
+ movs r2, 0x64
+ bl CopyMon
+ mov r1, r8
+ adds r2, r1, r4
+ adds r2, 0xC
+ adds r0, r5, 0
+ movs r1, 0xB
+ bl SetMonData
+ ldrh r1, [r6, 0xC]
+ movs r0, 0xB
+ adds r2, r1, 0
+ muls r2, r0
+ ldr r0, _08112400 @ =gSpeciesNames
+ adds r2, r0
+ adds r0, r5, 0
+ movs r1, 0x2
+ bl SetMonData
+ adds r0, r5, 0
+ movs r1, 0xC
+ mov r2, sp
+ bl SetMonData
+ adds r0, r5, 0
+ movs r1, 0x8
+ mov r2, sp
+ bl SetMonData
+ adds r0, r5, 0
+ movs r1, 0xA
+ mov r2, sp
+ bl SetMonData
+ movs r4, 0x32
+ mov r6, r9
+_08112342:
+ adds r0, r5, 0
+ adds r1, r4, 0
+ mov r2, sp
+ bl SetMonData
+ adds r4, 0x1
+ cmp r4, 0x36
+ ble _08112342
+ movs r4, 0x43
+_08112354:
+ adds r0, r5, 0
+ adds r1, r4, 0
+ mov r2, sp
+ bl SetMonData
+ adds r4, 0x1
+ cmp r4, 0x4F
+ ble _08112354
+ adds r0, r5, 0
+ movs r1, 0x37
+ mov r2, sp
+ bl SetMonData
+ movs r0, 0xFF
+ str r0, [sp]
+ adds r0, r5, 0
+ movs r1, 0x40
+ mov r2, sp
+ bl SetMonData
+ adds r0, r5, 0
+ bl CalculateMonStats
+ bl CalculatePlayerPartyCount
+ ldr r0, _081123F4 @ =gEvolutionTable
+ adds r4, r6, r7
+ lsls r4, 3
+ adds r4, r0
+ ldrh r0, [r4, 0xC]
+ bl SpeciesToNationalPokedexNum
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x2
+ bl sub_8090D90
+ ldrh r0, [r4, 0xC]
+ bl SpeciesToNationalPokedexNum
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x3
+ bl sub_8090D90
+ adds r0, r5, 0
+ movs r1, 0xB
+ bl GetMonData
+ ldr r1, _08112404 @ =0x0000012f
+ cmp r0, r1
+ bne _081123E2
+ adds r0, r5, 0
+ movs r1, 0x3
+ bl GetMonData
+ cmp r0, 0x1
+ bne _081123E2
+ mov r0, r10
+ movs r1, 0xB
+ bl GetMonData
+ movs r1, 0x97
+ lsls r1, 1
+ cmp r0, r1
+ bne _081123E2
+ ldr r2, _08112408 @ =gUnknown_083F868C
+ adds r0, r5, 0
+ movs r1, 0x2
+ bl SetMonData
+_081123E2:
+ 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
+_081123F4: .4byte gEvolutionTable
+_081123F8: .4byte gPlayerPartyCount
+_081123FC: .4byte gPlayerParty
+_08112400: .4byte gSpeciesNames
+_08112404: .4byte 0x0000012f
+_08112408: .4byte gUnknown_083F868C
+ thumb_func_end sub_81122B4
+
+ thumb_func_start sub_811240C
+sub_811240C: @ 811240C
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x18
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r2, _08112490 @ =gTasks
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r3, r0, r2
+ movs r1, 0xA
+ ldrsh r0, [r3, r1]
+ mov r9, r0
+ movs r1, 0xC
+ ldrsh r0, [r3, r1]
+ lsls r0, 16
+ mov r1, r9
+ orrs r1, r0
+ mov r9, r1
+ ldr r0, _08112494 @ =gMain
+ ldrh r1, [r0, 0x2C]
+ adds r6, r2, 0
+ adds r4, r0, 0
+ cmp r1, 0x2
+ bne _0811246E
+ movs r2, 0x8
+ ldrsh r0, [r3, r2]
+ cmp r0, 0x8
+ bne _0811246E
+ ldrh r1, [r3, 0x12]
+ movs r2, 0x1
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _0811246E
+ movs r0, 0x10
+ strh r0, [r3, 0x8]
+ ldr r0, _08112498 @ =gUnknown_02024D1E
+ ldrb r1, [r0, 0x2]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r1, r0, r6
+ ldrb r0, [r1, 0x4]
+ cmp r0, 0
+ beq _0811246E
+ strh r2, [r1, 0x18]
+_0811246E:
+ lsls r1, r7, 2
+ adds r0, r1, r7
+ lsls r0, 3
+ adds r0, r6
+ movs r3, 0x8
+ ldrsh r0, [r0, r3]
+ mov r8, r1
+ cmp r0, 0x15
+ bls _08112484
+ bl _08112FD0
+_08112484:
+ lsls r0, 2
+ ldr r1, _0811249C @ =_081124A0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08112490: .4byte gTasks
+_08112494: .4byte gMain
+_08112498: .4byte gUnknown_02024D1E
+_0811249C: .4byte _081124A0
+ .align 2, 0
+_081124A0:
+ .4byte _081124F8
+ .4byte _0811253C
+ .4byte _08112588
+ .4byte _08112594
+ .4byte _081125BC
+ .4byte _081125FC
+ .4byte _08112630
+ .4byte _0811266C
+ .4byte _081126A0
+ .4byte _081126E0
+ .4byte _081126FC
+ .4byte _08112728
+ .4byte _08112754
+ .4byte _081127A0
+ .4byte _0811284C
+ .4byte _081128E4
+ .4byte _08112934
+ .4byte _08112974
+ .4byte _081129A0
+ .4byte _081129E8
+ .4byte _08112A4C
+ .4byte _08112A88
+_081124F8:
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ ldr r2, _08112530 @ =gSprites
+ ldr r0, _08112534 @ =0x02014800
+ 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]
+ ldr r0, _08112538 @ =gTasks
+ mov r2, r8
+ adds r1, r2, r7
+ lsls r1, 3
+ adds r1, r0
+ b _08112A2E
+ .align 2, 0
+_08112530: .4byte gSprites
+_08112534: .4byte 0x02014800
+_08112538: .4byte gTasks
+_0811253C:
+ ldr r0, _08112574 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _0811254C
+ bl _08112FD0
+_0811254C:
+ ldr r4, _08112578 @ =gStringVar4
+ ldr r1, _0811257C @ =gUnknown_08400C4A
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ ldr r0, _08112580 @ =gUnknown_03004210
+ movs r1, 0xF
+ str r1, [sp]
+ adds r1, r4, 0
+ movs r2, 0x90
+ movs r3, 0x2
+ bl sub_8002EB0
+ ldr r0, _08112584 @ =gTasks
+ mov r3, r8
+ adds r1, r3, r7
+ lsls r1, 3
+ adds r1, r0
+ b _08112A2E
+ .align 2, 0
+_08112574: .4byte gPaletteFade
+_08112578: .4byte gStringVar4
+_0811257C: .4byte gUnknown_08400C4A
+_08112580: .4byte gUnknown_03004210
+_08112584: .4byte gTasks
+_08112588:
+ ldr r0, _08112590 @ =gUnknown_03004210
+ ldrh r0, [r0, 0x16]
+ b _0811297C
+ .align 2, 0
+_08112590: .4byte gUnknown_03004210
+_08112594:
+ bl IsCryFinished
+ lsls r0, 24
+ cmp r0, 0
+ bne _081125A2
+ bl _08112FD0
+_081125A2:
+ movs r0, 0xBC
+ lsls r0, 1
+ bl PlaySE
+ ldr r0, _081125B8 @ =gTasks
+ mov r2, r8
+ adds r1, r2, r7
+ lsls r1, 3
+ adds r1, r0
+ b _08112A2E
+ .align 2, 0
+_081125B8: .4byte gTasks
+_081125BC:
+ bl IsSEPlaying
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ beq _081125CC
+ bl _08112FD0
+_081125CC:
+ ldr r0, _081125F4 @ =0x00000179
+ bl PlayNewMapMusic
+ ldr r0, _081125F8 @ =gTasks
+ mov r3, r8
+ adds r1, r3, r7
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ str r4, [sp]
+ movs r0, 0x1C
+ movs r1, 0x4
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ bl _08112FD0
+ .align 2, 0
+_081125F4: .4byte 0x00000179
+_081125F8: .4byte gTasks
+_081125FC:
+ ldr r0, _08112624 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _0811260C
+ bl _08112FD0
+_0811260C:
+ movs r0, 0x11
+ bl sub_8149970
+ ldr r1, _08112628 @ =gUnknown_02024D1E
+ strb r0, [r1, 0x2]
+ ldr r0, _0811262C @ =gTasks
+ mov r2, r8
+ adds r1, r2, r7
+ lsls r1, 3
+ adds r1, r0
+ b _08112A2E
+ .align 2, 0
+_08112624: .4byte gPaletteFade
+_08112628: .4byte gUnknown_02024D1E
+_0811262C: .4byte gTasks
+_08112630:
+ ldr r4, _08112664 @ =gUnknown_02024D1E
+ ldrb r0, [r4, 0x2]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r6
+ ldrb r0, [r1, 0x4]
+ cmp r0, 0
+ beq _08112646
+ bl _08112FD0
+_08112646:
+ mov r3, r8
+ adds r1, r3, r7
+ lsls r1, 3
+ adds r1, r6
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ ldr r1, _08112668 @ =0x02014800
+ movs r0, 0x1
+ strb r0, [r1, 0x3]
+ bl sub_8149A90
+ strb r0, [r4, 0x2]
+ bl _08112FD0
+ .align 2, 0
+_08112664: .4byte gUnknown_02024D1E
+_08112668: .4byte 0x02014800
+_0811266C:
+ ldr r4, _08112698 @ =gUnknown_02024D1E
+ ldrb r0, [r4, 0x2]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r6
+ ldrb r0, [r1, 0x4]
+ cmp r0, 0
+ beq _08112682
+ bl _08112FD0
+_08112682:
+ ldr r1, _0811269C @ =0x02014800
+ ldrb r0, [r1]
+ ldrb r1, [r1, 0x1]
+ bl sub_8149E7C
+ strb r0, [r4, 0x2]
+ mov r0, r8
+ adds r1, r0, r7
+ lsls r1, 3
+ adds r1, r6
+ b _08112A2E
+ .align 2, 0
+_08112698: .4byte gUnknown_02024D1E
+_0811269C: .4byte 0x02014800
+_081126A0:
+ ldr r1, _081126D8 @ =0x02014800
+ ldrb r0, [r1, 0x3]
+ subs r0, 0x1
+ strb r0, [r1, 0x3]
+ lsls r0, 24
+ cmp r0, 0
+ beq _081126B2
+ bl _08112FD0
+_081126B2:
+ movs r0, 0x3
+ strb r0, [r1, 0x3]
+ ldr r0, _081126DC @ =gUnknown_02024D1E
+ ldrb r1, [r0, 0x2]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r6
+ ldrb r0, [r0, 0x4]
+ cmp r0, 0
+ beq _081126CC
+ bl _08112FD0
+_081126CC:
+ mov r2, r8
+ adds r1, r2, r7
+ lsls r1, 3
+ adds r1, r6
+ b _08112A2E
+ .align 2, 0
+_081126D8: .4byte 0x02014800
+_081126DC: .4byte gUnknown_02024D1E
+_081126E0:
+ bl sub_8149B44
+ ldr r1, _081126F4 @ =gUnknown_02024D1E
+ strb r0, [r1, 0x2]
+ ldr r0, _081126F8 @ =gTasks
+ mov r3, r8
+ adds r1, r3, r7
+ lsls r1, 3
+ adds r1, r0
+ b _08112A2E
+ .align 2, 0
+_081126F4: .4byte gUnknown_02024D1E
+_081126F8: .4byte gTasks
+_081126FC:
+ ldr r5, _08112724 @ =gUnknown_02024D1E
+ ldrb r0, [r5, 0x2]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r6
+ ldrb r0, [r1, 0x4]
+ cmp r0, 0
+ beq _08112712
+ bl _08112FD0
+_08112712:
+ mov r0, r8
+ adds r4, r0, r7
+ lsls r4, 3
+ adds r4, r6
+ ldrh r0, [r4, 0x10]
+ bl sub_8149C20
+ strb r0, [r5, 0x2]
+ b _08112992
+ .align 2, 0
+_08112724: .4byte gUnknown_02024D1E
+_08112728:
+ ldr r0, _08112750 @ =gUnknown_02024D1E
+ ldrb r1, [r0, 0x2]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r6
+ ldrb r0, [r0, 0x4]
+ cmp r0, 0
+ beq _0811273E
+ bl _08112FD0
+_0811273E:
+ movs r0, 0x21
+ bl PlaySE
+ mov r2, r8
+ adds r1, r2, r7
+ lsls r1, 3
+ adds r1, r6
+ b _08112A2E
+ .align 2, 0
+_08112750: .4byte gUnknown_02024D1E
+_08112754:
+ bl IsSEPlaying
+ lsls r0, 24
+ cmp r0, 0
+ bne _08112762
+ bl _08112FD0
+_08112762:
+ bl m4aMPlayAllStop
+ ldr r0, _08112794 @ =gTasks
+ mov r3, r8
+ adds r4, r3, r7
+ lsls r4, 3
+ adds r4, r0
+ ldrh r0, [r4, 0x10]
+ movs r1, 0
+ bl PlayCry1
+ ldr r0, _08112798 @ =gPlttBufferUnfaded + 0x40
+ ldr r1, _0811279C @ =0x02009000
+ movs r2, 0x60
+ bl memcpy
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x1C
+ movs r1, 0
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ b _08112992
+ .align 2, 0
+_08112794: .4byte gTasks
+_08112798: .4byte gPlttBufferUnfaded + 0x40
+_0811279C: .4byte 0x02009000
+_081127A0:
+ bl IsCryFinished
+ lsls r0, 24
+ cmp r0, 0
+ bne _081127AE
+ bl _08112FD0
+_081127AE:
+ ldr r0, _08112834 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _081127BE
+ bl _08112FD0
+_081127BE:
+ ldr r4, _08112838 @ =gStringVar4
+ ldr r1, _0811283C @ =gUnknown_08400C60
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ ldr r0, _08112840 @ =gUnknown_03004210
+ movs r1, 0xF
+ str r1, [sp]
+ adds r1, r4, 0
+ movs r2, 0x90
+ movs r3, 0x2
+ bl sub_8002EB0
+ ldr r0, _08112844 @ =0x00000173
+ bl PlayBGM
+ ldr r2, _08112848 @ =gTasks
+ mov r0, r8
+ adds r1, r0, r7
+ lsls r1, 3
+ adds r4, r1, r2
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ adds r2, r1
+ adds r2, 0x10
+ mov r0, r9
+ movs r1, 0xB
+ bl SetMonData
+ mov r0, r9
+ bl CalculateMonStats
+ ldrh r1, [r4, 0xE]
+ ldrh r2, [r4, 0x10]
+ mov r0, r9
+ bl sub_803FB68
+ ldrh r0, [r4, 0x10]
+ bl SpeciesToNationalPokedexNum
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x2
+ bl sub_8090D90
+ ldrh r0, [r4, 0x10]
+ bl SpeciesToNationalPokedexNum
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x3
+ bl sub_8090D90
+ movs r0, 0xE
+ bl sav12_xor_increment
+ b _08112FD0
+ .align 2, 0
+_08112834: .4byte gPaletteFade
+_08112838: .4byte gStringVar4
+_0811283C: .4byte gUnknown_08400C60
+_08112840: .4byte gUnknown_03004210
+_08112844: .4byte 0x00000173
+_08112848: .4byte gTasks
+_0811284C:
+ ldr r0, _081128A4 @ =gUnknown_03004210
+ ldrh r0, [r0, 0x16]
+ cmp r0, 0
+ beq _08112856
+ b _08112FD0
+_08112856:
+ mov r1, r8
+ adds r0, r1, r7
+ lsls r0, 3
+ adds r5, r0, r6
+ ldrb r1, [r5, 0x14]
+ mov r0, r9
+ bl sub_803B7C8
+ lsls r0, 16
+ lsrs r6, r0, 16
+ cmp r6, 0
+ beq _081128C4
+ movs r2, 0x1E
+ ldrsh r4, [r5, r2]
+ cmp r4, 0
+ bne _081128C4
+ bl sub_8053E90
+ ldrh r1, [r5, 0x12]
+ movs r0, 0x80
+ orrs r0, r1
+ strh r0, [r5, 0x12]
+ strh r4, [r5, 0x14]
+ strh r4, [r5, 0x18]
+ mov r0, r9
+ movs r1, 0x2
+ add r2, sp, 0x4
+ bl GetMonData
+ ldr r0, _081128A8 @ =gUnknown_030041C0
+ add r1, sp, 0x4
+ bl StringCopy10
+ ldr r0, _081128AC @ =0x0000ffff
+ cmp r6, r0
+ bne _081128B0
+ movs r0, 0x15
+ strh r0, [r5, 0x8]
+ b _08112FD0
+ .align 2, 0
+_081128A4: .4byte gUnknown_03004210
+_081128A8: .4byte gUnknown_030041C0
+_081128AC: .4byte 0x0000ffff
+_081128B0:
+ ldr r0, _081128C0 @ =0x0000fffe
+ cmp r6, r0
+ bne _081128B8
+ b _08112FD0
+_081128B8:
+ movs r0, 0x13
+ strh r0, [r5, 0x8]
+ b _08112FD0
+ .align 2, 0
+_081128C0: .4byte 0x0000fffe
+_081128C4:
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r0, _081128E0 @ =gTasks
+ mov r3, r8
+ adds r1, r3, r7
+ lsls r1, 3
+ adds r1, r0
+ b _08112A2E
+ .align 2, 0
+_081128E0: .4byte gTasks
+_081128E4:
+ ldr r0, _0811292C @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r2, 0x80
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _081128F4
+ b _08112FD0
+_081128F4:
+ mov r1, r8
+ adds r0, r1, r7
+ lsls r0, 3
+ adds r4, r0, r6
+ ldrh r1, [r4, 0x12]
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _0811290A
+ bl sub_8053E90
+_0811290A:
+ movs r2, 0x1E
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ bne _0811291A
+ ldrh r0, [r4, 0xE]
+ mov r1, r9
+ bl sub_81122B4
+_0811291A:
+ adds r0, r7, 0
+ bl DestroyTask
+ ldr r0, _08112930 @ =gUnknown_03005E94
+ ldr r0, [r0]
+ bl SetMainCallback2
+ b _08112FD0
+ .align 2, 0
+_0811292C: .4byte gPaletteFade
+_08112930: .4byte gUnknown_03005E94
+_08112934:
+ ldr r0, _08112968 @ =gUnknown_02024D1E
+ ldrb r1, [r0, 0x2]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r6
+ ldrb r0, [r0, 0x4]
+ cmp r0, 0
+ beq _08112948
+ b _08112FD0
+_08112948:
+ bl m4aMPlayAllStop
+ ldr r0, _0811296C @ =0x0006001c
+ ldr r1, _08112970 @ =0x00007fff
+ str r1, [sp]
+ movs r1, 0
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ mov r3, r8
+ adds r1, r3, r7
+ lsls r1, 3
+ adds r1, r6
+ b _08112A2E
+ .align 2, 0
+_08112968: .4byte gUnknown_02024D1E
+_0811296C: .4byte 0x0006001c
+_08112970: .4byte 0x00007fff
+_08112974:
+ ldr r0, _0811299C @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+_0811297C:
+ cmp r0, 0
+ beq _08112982
+ b _08112FD0
+_08112982:
+ mov r0, r8
+ adds r4, r0, r7
+ lsls r4, 3
+ adds r4, r6
+ ldrh r0, [r4, 0xE]
+ movs r1, 0
+ bl PlayCry1
+_08112992:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _08112FD0
+ .align 2, 0
+_0811299C: .4byte gPaletteFade
+_081129A0:
+ bl IsCryFinished
+ lsls r0, 24
+ cmp r0, 0
+ bne _081129AC
+ b _08112FD0
+_081129AC:
+ ldr r4, _081129D8 @ =gStringVar4
+ ldr r1, _081129DC @ =gUnknown_08400C8D
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ ldr r0, _081129E0 @ =gUnknown_03004210
+ movs r1, 0xF
+ str r1, [sp]
+ adds r1, r4, 0
+ movs r2, 0x90
+ movs r3, 0x2
+ bl sub_8002EB0
+ ldr r1, _081129E4 @ =gTasks
+ mov r2, r8
+ adds r0, r2, r7
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0x1
+ strh r1, [r0, 0x1E]
+ b _08112F9A
+ .align 2, 0
+_081129D8: .4byte gStringVar4
+_081129DC: .4byte gUnknown_08400C8D
+_081129E0: .4byte gUnknown_03004210
+_081129E4: .4byte gTasks
+_081129E8:
+ ldr r4, _08112A38 @ =gUnknown_03004210
+ ldrh r0, [r4, 0x16]
+ cmp r0, 0
+ beq _081129F2
+ b _08112FD0
+_081129F2:
+ bl IsSEPlaying
+ lsls r0, 24
+ cmp r0, 0
+ beq _081129FE
+ b _08112FD0
+_081129FE:
+ bl sub_8024CEC
+ ldr r0, _08112A3C @ =0x0000016f
+ bl PlayFanfare
+ ldr r0, _08112A40 @ =gUnknown_08400F8C
+ ldr r0, [r0, 0xC]
+ bl get_battle_strings_
+ ldr r1, _08112A44 @ =gUnknown_020238CC
+ movs r0, 0xF
+ str r0, [sp]
+ adds r0, r4, 0
+ movs r2, 0x90
+ movs r3, 0x2
+ bl sub_8002EB0
+ ldr r0, _08112A48 @ =gTasks
+ mov r3, r8
+ adds r1, r3, r7
+ lsls r1, 3
+ adds r1, r0
+ movs r0, 0x40
+ strh r0, [r1, 0x14]
+_08112A2E:
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ b _08112FD0
+ .align 2, 0
+_08112A38: .4byte gUnknown_03004210
+_08112A3C: .4byte 0x0000016f
+_08112A40: .4byte gUnknown_08400F8C
+_08112A44: .4byte gUnknown_020238CC
+_08112A48: .4byte gTasks
+_08112A4C:
+ ldr r0, _08112A80 @ =gUnknown_03004210
+ ldrh r0, [r0, 0x16]
+ cmp r0, 0
+ beq _08112A56
+ b _08112FD0
+_08112A56:
+ bl IsSEPlaying
+ lsls r0, 24
+ cmp r0, 0
+ beq _08112A62
+ b _08112FD0
+_08112A62:
+ ldr r0, _08112A84 @ =gTasks
+ mov r2, r8
+ adds r1, r2, r7
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x14]
+ subs r0, 0x1
+ strh r0, [r1, 0x14]
+ lsls r0, 16
+ cmp r0, 0
+ beq _08112A7A
+ b _08112FD0
+_08112A7A:
+ movs r0, 0xE
+ strh r0, [r1, 0x8]
+ b _08112FD0
+ .align 2, 0
+_08112A80: .4byte gUnknown_03004210
+_08112A84: .4byte gTasks
+_08112A88:
+ mov r3, r8
+ adds r0, r3, r7
+ lsls r0, 3
+ adds r0, r6
+ movs r1, 0x18
+ ldrsh r0, [r0, r1]
+ cmp r0, 0xB
+ bls _08112A9A
+ b _08112FD0
+_08112A9A:
+ lsls r0, 2
+ ldr r1, _08112AA4 @ =_08112AA8
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08112AA4: .4byte _08112AA8
+ .align 2, 0
+_08112AA8:
+ .4byte _08112AD8
+ .4byte _08112B2C
+ .4byte _08112B7C
+ .4byte _08112BC0
+ .4byte _08112C0C
+ .4byte _08112D3C
+ .4byte _08112D8C
+ .4byte _08112E98
+ .4byte _08112EE8
+ .4byte _08112F38
+ .4byte _08112F78
+ .4byte _08112FB0
+_08112AD8:
+ ldr r4, _08112B1C @ =gUnknown_03004210
+ ldrh r0, [r4, 0x16]
+ cmp r0, 0
+ beq _08112AE2
+ b _08112FD0
+_08112AE2:
+ bl IsSEPlaying
+ lsls r0, 24
+ cmp r0, 0
+ beq _08112AEE
+ b _08112FD0
+_08112AEE:
+ bl sub_8024CEC
+ ldr r0, _08112B20 @ =gUnknown_08400F8C
+ ldr r0, [r0, 0x10]
+ bl get_battle_strings_
+ ldr r1, _08112B24 @ =gUnknown_020238CC
+ movs r0, 0xF
+ str r0, [sp]
+ adds r0, r4, 0
+ movs r2, 0x90
+ movs r3, 0x2
+ bl sub_8002EB0
+ ldr r0, _08112B28 @ =gTasks
+ mov r2, r8
+ adds r1, r2, r7
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x18]
+ adds r0, 0x1
+ b _08112FCE
+ .align 2, 0
+_08112B1C: .4byte gUnknown_03004210
+_08112B20: .4byte gUnknown_08400F8C
+_08112B24: .4byte gUnknown_020238CC
+_08112B28: .4byte gTasks
+_08112B2C:
+ ldr r4, _08112B6C @ =gUnknown_03004210
+ ldrh r0, [r4, 0x16]
+ cmp r0, 0
+ beq _08112B36
+ b _08112FD0
+_08112B36:
+ bl IsSEPlaying
+ lsls r0, 24
+ cmp r0, 0
+ beq _08112B42
+ b _08112FD0
+_08112B42:
+ ldr r0, _08112B70 @ =gUnknown_08400F8C
+ ldr r0, [r0, 0x14]
+ bl get_battle_strings_
+ ldr r1, _08112B74 @ =gUnknown_020238CC
+ movs r0, 0xF
+ str r0, [sp]
+ adds r0, r4, 0
+ movs r2, 0x90
+ movs r3, 0x2
+ bl sub_8002EB0
+ ldr r0, _08112B78 @ =gTasks
+ mov r3, r8
+ adds r1, r3, r7
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x18]
+ adds r0, 0x1
+ b _08112FCE
+ .align 2, 0
+_08112B6C: .4byte gUnknown_03004210
+_08112B70: .4byte gUnknown_08400F8C
+_08112B74: .4byte gUnknown_020238CC
+_08112B78: .4byte gTasks
+_08112B7C:
+ ldr r4, _08112BF8 @ =gUnknown_03004210
+ ldrh r0, [r4, 0x16]
+ cmp r0, 0
+ beq _08112B86
+ b _08112FD0
+_08112B86:
+ bl IsSEPlaying
+ lsls r0, 24
+ cmp r0, 0
+ bne _08112BC0
+ ldr r0, _08112BFC @ =gUnknown_08400F8C
+ ldr r0, [r0, 0x18]
+ bl get_battle_strings_
+ ldr r1, _08112C00 @ =gUnknown_020238CC
+ movs r0, 0xF
+ str r0, [sp]
+ adds r0, r4, 0
+ movs r2, 0x90
+ movs r3, 0x2
+ bl sub_8002EB0
+ ldr r0, _08112C04 @ =gTasks
+ mov r2, r8
+ adds r1, r2, r7
+ lsls r1, 3
+ adds r1, r0
+ movs r0, 0x5
+ strh r0, [r1, 0x1A]
+ movs r0, 0x9
+ strh r0, [r1, 0x1C]
+ ldrh r0, [r1, 0x18]
+ adds r0, 0x1
+ strh r0, [r1, 0x18]
+_08112BC0:
+ ldr r0, _08112BF8 @ =gUnknown_03004210
+ ldrh r0, [r0, 0x16]
+ cmp r0, 0
+ beq _08112BCA
+ b _08112FD0
+_08112BCA:
+ bl IsSEPlaying
+ lsls r0, 24
+ cmp r0, 0
+ beq _08112BD6
+ b _08112FD0
+_08112BD6:
+ bl sub_8023A80
+ ldr r0, _08112C04 @ =gTasks
+ mov r3, r8
+ adds r1, r3, r7
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x18]
+ adds r0, 0x1
+ movs r2, 0
+ strh r0, [r1, 0x18]
+ ldr r0, _08112C08 @ =gUnknown_02024D1E
+ strb r2, [r0, 0x1]
+ bl sub_802BC6C
+ b _08112FD0
+ .align 2, 0
+_08112BF8: .4byte gUnknown_03004210
+_08112BFC: .4byte gUnknown_08400F8C
+_08112C00: .4byte gUnknown_020238CC
+_08112C04: .4byte gTasks
+_08112C08: .4byte gUnknown_02024D1E
+_08112C0C:
+ ldr r0, _08112CA4 @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _08112C32
+ ldr r4, _08112CA8 @ =gUnknown_02024D1E
+ ldrb r0, [r4, 0x1]
+ cmp r0, 0
+ beq _08112C32
+ movs r0, 0x5
+ bl PlaySE
+ bl nullsub_6
+ movs r0, 0
+ strb r0, [r4, 0x1]
+ bl sub_802BC6C
+_08112C32:
+ ldr r0, _08112CA4 @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _08112C58
+ ldr r4, _08112CA8 @ =gUnknown_02024D1E
+ ldrb r0, [r4, 0x1]
+ cmp r0, 0
+ bne _08112C58
+ movs r0, 0x5
+ bl PlaySE
+ bl nullsub_6
+ movs r0, 0x1
+ strb r0, [r4, 0x1]
+ bl sub_802BC6C
+_08112C58:
+ ldr r0, _08112CA4 @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08112CE2
+ bl sub_8023AD8
+ ldr r0, _08112CAC @ =gUnknown_08400F8C
+ movs r1, 0x92
+ lsls r1, 3
+ adds r0, r1
+ ldr r0, [r0]
+ bl get_battle_strings_
+ ldr r0, _08112CB0 @ =gUnknown_03004210
+ ldr r1, _08112CB4 @ =gUnknown_020238CC
+ movs r2, 0xF
+ str r2, [sp]
+ movs r2, 0x90
+ movs r3, 0x2
+ bl sub_8002EB0
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, _08112CA8 @ =gUnknown_02024D1E
+ ldrb r2, [r0, 0x1]
+ cmp r2, 0
+ beq _08112CBC
+ ldr r0, _08112CB8 @ =gTasks
+ mov r2, r8
+ adds r1, r2, r7
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x1C]
+ strh r0, [r1, 0x18]
+ b _08112CE2
+ .align 2, 0
+_08112CA4: .4byte gMain
+_08112CA8: .4byte gUnknown_02024D1E
+_08112CAC: .4byte gUnknown_08400F8C
+_08112CB0: .4byte gUnknown_03004210
+_08112CB4: .4byte gUnknown_020238CC
+_08112CB8: .4byte gTasks
+_08112CBC:
+ ldr r0, _08112D28 @ =gTasks
+ mov r3, r8
+ adds r1, r3, r7
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x1A]
+ strh r0, [r1, 0x18]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x5
+ bne _08112CE2
+ movs r0, 0x1
+ negs r0, r0
+ str r2, [sp]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+_08112CE2:
+ ldr r0, _08112D2C @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ bne _08112CF0
+ b _08112FD0
+_08112CF0:
+ bl sub_8023AD8
+ ldr r0, _08112D30 @ =gUnknown_08400F8C
+ movs r1, 0x92
+ lsls r1, 3
+ adds r0, r1
+ ldr r0, [r0]
+ bl get_battle_strings_
+ ldr r0, _08112D34 @ =gUnknown_03004210
+ ldr r1, _08112D38 @ =gUnknown_020238CC
+ movs r2, 0xF
+ str r2, [sp]
+ movs r2, 0x90
+ movs r3, 0x2
+ bl sub_8002EB0
+ movs r0, 0x5
+ bl PlaySE
+ ldr r1, _08112D28 @ =gTasks
+ mov r2, r8
+ adds r0, r2, r7
+ lsls r0, 3
+ adds r0, r1
+ ldrh r1, [r0, 0x1C]
+ strh r1, [r0, 0x18]
+ b _08112FD0
+ .align 2, 0
+_08112D28: .4byte gTasks
+_08112D2C: .4byte gMain
+_08112D30: .4byte gUnknown_08400F8C
+_08112D34: .4byte gUnknown_03004210
+_08112D38: .4byte gUnknown_020238CC
+_08112D3C:
+ ldr r0, _08112D78 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _08112D4A
+ b _08112FD0
+_08112D4A:
+ ldr r0, _08112D7C @ =gPlayerParty
+ mov r3, r8
+ adds r5, r3, r7
+ lsls r5, 3
+ adds r5, r6
+ ldrh r1, [r5, 0x20]
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r2, _08112D80 @ =gPlayerPartyCount
+ ldrb r2, [r2]
+ subs r2, 0x1
+ lsls r2, 24
+ lsrs r2, 24
+ ldr r3, _08112D84 @ =sub_8111C90
+ ldr r4, _08112D88 @ =word_2024E82
+ ldrh r4, [r4]
+ str r4, [sp]
+ bl sub_809D9F0
+ ldrh r0, [r5, 0x18]
+ adds r0, 0x1
+ strh r0, [r5, 0x18]
+ b _08112FD0
+ .align 2, 0
+_08112D78: .4byte gPaletteFade
+_08112D7C: .4byte gPlayerParty
+_08112D80: .4byte gPlayerPartyCount
+_08112D84: .4byte sub_8111C90
+_08112D88: .4byte word_2024E82
+_08112D8C:
+ ldr r0, _08112DC0 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _08112D9A
+ b _08112FD0
+_08112D9A:
+ ldr r1, [r4, 0x4]
+ ldr r0, _08112DC4 @ =sub_8112270
+ cmp r1, r0
+ beq _08112DA4
+ b _08112FD0
+_08112DA4:
+ bl sub_809FA30
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, 0x4
+ bne _08112DCC
+ ldr r0, _08112DC8 @ =gTasks
+ mov r2, r8
+ adds r1, r2, r7
+ lsls r1, 3
+ adds r1, r0
+ movs r0, 0x9
+ b _08112FCE
+ .align 2, 0
+_08112DC0: .4byte gPaletteFade
+_08112DC4: .4byte sub_8112270
+_08112DC8: .4byte gTasks
+_08112DCC:
+ adds r1, r6, 0
+ adds r1, 0xD
+ mov r0, r9
+ bl GetMonData
+ lsls r0, 16
+ lsrs r4, r0, 16
+ adds r0, r4, 0
+ bl sub_8040A00
+ cmp r0, 0
+ beq _08112E24
+ ldr r0, _08112E10 @ =gUnknown_08400F8C
+ ldr r3, _08112E14 @ =0x000004cc
+ adds r0, r3
+ ldr r0, [r0]
+ bl get_battle_strings_
+ ldr r0, _08112E18 @ =gUnknown_03004210
+ ldr r1, _08112E1C @ =gUnknown_020238CC
+ movs r2, 0xF
+ str r2, [sp]
+ movs r2, 0x90
+ movs r3, 0x2
+ bl sub_8002EB0
+ ldr r1, _08112E20 @ =gTasks
+ mov r2, r8
+ adds r0, r2, r7
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0xB
+ strh r1, [r0, 0x18]
+ b _08112FD0
+ .align 2, 0
+_08112E10: .4byte gUnknown_08400F8C
+_08112E14: .4byte 0x000004cc
+_08112E18: .4byte gUnknown_03004210
+_08112E1C: .4byte gUnknown_020238CC
+_08112E20: .4byte gTasks
+_08112E24:
+ ldr r1, _08112E80 @ =gUnknown_03004290
+ movs r0, 0xFD
+ strb r0, [r1]
+ movs r0, 0x2
+ strb r0, [r1, 0x1]
+ strb r4, [r1, 0x2]
+ lsrs r0, r4, 8
+ strb r0, [r1, 0x3]
+ movs r0, 0xFF
+ strb r0, [r1, 0x4]
+ lsls r4, r6, 24
+ lsrs r4, 24
+ mov r0, r9
+ adds r1, r4, 0
+ bl RemoveMonPPBonus
+ ldr r0, _08112E84 @ =word_2024E82
+ ldrh r1, [r0]
+ mov r0, r9
+ adds r2, r4, 0
+ bl SetMonMoveSlot
+ ldr r0, _08112E88 @ =gUnknown_08400F8C
+ movs r3, 0xCF
+ lsls r3, 2
+ adds r0, r3
+ ldr r0, [r0]
+ bl get_battle_strings_
+ ldr r0, _08112E8C @ =gUnknown_03004210
+ ldr r1, _08112E90 @ =gUnknown_020238CC
+ movs r2, 0xF
+ str r2, [sp]
+ movs r2, 0x90
+ movs r3, 0x2
+ bl sub_8002EB0
+ ldr r0, _08112E94 @ =gTasks
+ mov r2, r8
+ adds r1, r2, r7
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x18]
+ adds r0, 0x1
+ b _08112FCE
+ .align 2, 0
+_08112E80: .4byte gUnknown_03004290
+_08112E84: .4byte word_2024E82
+_08112E88: .4byte gUnknown_08400F8C
+_08112E8C: .4byte gUnknown_03004210
+_08112E90: .4byte gUnknown_020238CC
+_08112E94: .4byte gTasks
+_08112E98:
+ ldr r4, _08112ED8 @ =gUnknown_03004210
+ ldrh r0, [r4, 0x16]
+ cmp r0, 0
+ beq _08112EA2
+ b _08112FD0
+_08112EA2:
+ bl IsSEPlaying
+ lsls r0, 24
+ cmp r0, 0
+ beq _08112EAE
+ b _08112FD0
+_08112EAE:
+ ldr r0, _08112EDC @ =gUnknown_08400F8C
+ ldr r0, [r0, 0x1C]
+ bl get_battle_strings_
+ ldr r1, _08112EE0 @ =gUnknown_020238CC
+ movs r0, 0xF
+ str r0, [sp]
+ adds r0, r4, 0
+ movs r2, 0x90
+ movs r3, 0x2
+ bl sub_8002EB0
+ ldr r0, _08112EE4 @ =gTasks
+ mov r3, r8
+ adds r1, r3, r7
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x18]
+ adds r0, 0x1
+ b _08112FCE
+ .align 2, 0
+_08112ED8: .4byte gUnknown_03004210
+_08112EDC: .4byte gUnknown_08400F8C
+_08112EE0: .4byte gUnknown_020238CC
+_08112EE4: .4byte gTasks
+_08112EE8:
+ ldr r4, _08112F28 @ =gUnknown_03004210
+ ldrh r0, [r4, 0x16]
+ cmp r0, 0
+ bne _08112FD0
+ bl IsSEPlaying
+ lsls r0, 24
+ cmp r0, 0
+ bne _08112FD0
+ ldr r0, _08112F2C @ =gUnknown_08400F8C
+ movs r1, 0xD0
+ lsls r1, 2
+ adds r0, r1
+ ldr r0, [r0]
+ bl get_battle_strings_
+ ldr r1, _08112F30 @ =gUnknown_020238CC
+ movs r0, 0xF
+ str r0, [sp]
+ adds r0, r4, 0
+ movs r2, 0x90
+ movs r3, 0x2
+ bl sub_8002EB0
+ ldr r1, _08112F34 @ =gTasks
+ mov r2, r8
+ adds r0, r2, r7
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0x13
+ strh r1, [r0, 0x8]
+ b _08112FD0
+ .align 2, 0
+_08112F28: .4byte gUnknown_03004210
+_08112F2C: .4byte gUnknown_08400F8C
+_08112F30: .4byte gUnknown_020238CC
+_08112F34: .4byte gTasks
+_08112F38:
+ ldr r0, _08112F68 @ =gUnknown_08400F8C
+ ldr r0, [r0, 0x20]
+ bl get_battle_strings_
+ ldr r0, _08112F6C @ =gUnknown_03004210
+ ldr r1, _08112F70 @ =gUnknown_020238CC
+ movs r2, 0xF
+ str r2, [sp]
+ movs r2, 0x90
+ movs r3, 0x2
+ bl sub_8002EB0
+ ldr r1, _08112F74 @ =gTasks
+ mov r3, r8
+ adds r0, r3, r7
+ lsls r0, 3
+ adds r0, r1
+ movs r2, 0
+ movs r1, 0xA
+ strh r1, [r0, 0x1A]
+ strh r2, [r0, 0x1C]
+ movs r1, 0x3
+ strh r1, [r0, 0x18]
+ b _08112FD0
+ .align 2, 0
+_08112F68: .4byte gUnknown_08400F8C
+_08112F6C: .4byte gUnknown_03004210
+_08112F70: .4byte gUnknown_020238CC
+_08112F74: .4byte gTasks
+_08112F78:
+ ldr r0, _08112FA0 @ =gUnknown_08400F8C
+ ldr r0, [r0, 0x24]
+ bl get_battle_strings_
+ ldr r0, _08112FA4 @ =gUnknown_03004210
+ ldr r1, _08112FA8 @ =gUnknown_020238CC
+ movs r2, 0xF
+ str r2, [sp]
+ movs r2, 0x90
+ movs r3, 0x2
+ bl sub_8002EB0
+ ldr r1, _08112FAC @ =gTasks
+ mov r2, r8
+ adds r0, r2, r7
+ lsls r0, 3
+ adds r0, r1
+_08112F9A:
+ movs r1, 0xE
+ strh r1, [r0, 0x8]
+ b _08112FD0
+ .align 2, 0
+_08112FA0: .4byte gUnknown_08400F8C
+_08112FA4: .4byte gUnknown_03004210
+_08112FA8: .4byte gUnknown_020238CC
+_08112FAC: .4byte gTasks
+_08112FB0:
+ ldr r0, _08112FE0 @ =gUnknown_03004210
+ ldrh r0, [r0, 0x16]
+ cmp r0, 0
+ bne _08112FD0
+ bl IsSEPlaying
+ lsls r0, 24
+ cmp r0, 0
+ bne _08112FD0
+ ldr r0, _08112FE4 @ =gTasks
+ mov r3, r8
+ adds r1, r3, r7
+ lsls r1, 3
+ adds r1, r0
+ movs r0, 0x5
+_08112FCE:
+ strh r0, [r1, 0x18]
+_08112FD0:
+ add sp, 0x18
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08112FE0: .4byte gUnknown_03004210
+_08112FE4: .4byte gTasks
+ thumb_func_end sub_811240C
+
+ thumb_func_start sub_8112FE8
+sub_8112FE8: @ 8112FE8
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x18
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r2, _0811302C @ =gTasks
+ lsls r1, r7, 2
+ adds r1, r7
+ lsls r1, 3
+ adds r1, r2
+ movs r3, 0xA
+ ldrsh r0, [r1, r3]
+ mov r8, r0
+ movs r3, 0xC
+ ldrsh r0, [r1, r3]
+ lsls r0, 16
+ mov r3, r8
+ orrs r3, r0
+ mov r8, r3
+ movs r3, 0x8
+ ldrsh r0, [r1, r3]
+ adds r6, r2, 0
+ cmp r0, 0x11
+ bls _08113020
+ bl _08113B3A
+_08113020:
+ lsls r0, 2
+ ldr r1, _08113030 @ =_08113034
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0811302C: .4byte gTasks
+_08113030: .4byte _08113034
+ .align 2, 0
+_08113034:
+ .4byte _0811307C
+ .4byte _081130B8
+ .4byte _081130DC
+ .4byte _0811310C
+ .4byte _0811314C
+ .4byte _0811318C
+ .4byte _081131C8
+ .4byte _081131F4
+ .4byte _0811322C
+ .4byte _08113248
+ .4byte _08113274
+ .4byte _081132A8
+ .4byte _081132F8
+ .4byte _081133A8
+ .4byte _0811346C
+ .4byte _08113490
+ .4byte _081134F8
+ .4byte _08113538
+_0811307C:
+ ldr r4, _081130A8 @ =gStringVar4
+ ldr r1, _081130AC @ =gUnknown_08400C4A
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ ldr r0, _081130B0 @ =gUnknown_03004828
+ ldr r1, [r0]
+ adds r0, r1, 0x4
+ adds r1, 0x34
+ ldrb r2, [r1]
+ movs r1, 0xF
+ str r1, [sp]
+ adds r1, r4, 0
+ movs r3, 0x2
+ bl sub_8002EB0
+ ldr r1, _081130B4 @ =gTasks
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r0, r1
+ b _08113298
+ .align 2, 0
+_081130A8: .4byte gStringVar4
+_081130AC: .4byte gUnknown_08400C4A
+_081130B0: .4byte gUnknown_03004828
+_081130B4: .4byte gTasks
+_081130B8:
+ ldr r0, _081130D8 @ =gUnknown_03004828
+ ldr r0, [r0]
+ ldrh r0, [r0, 0x1A]
+ cmp r0, 0
+ beq _081130C6
+ bl _08113B3A
+_081130C6:
+ lsls r4, r7, 2
+ adds r4, r7
+ lsls r4, 3
+ adds r4, r6
+ ldrh r0, [r4, 0xE]
+ movs r1, 0
+ bl PlayCry1
+ b _081132E2
+ .align 2, 0
+_081130D8: .4byte gUnknown_03004828
+_081130DC:
+ bl IsCryFinished
+ lsls r0, 24
+ cmp r0, 0
+ bne _081130EA
+ bl _08113B3A
+_081130EA:
+ ldr r0, _08113104 @ =0x00000179
+ bl m4aSongNumStop
+ movs r0, 0xBC
+ lsls r0, 1
+ bl PlaySE
+ ldr r1, _08113108 @ =gTasks
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r0, r1
+ b _08113298
+ .align 2, 0
+_08113104: .4byte 0x00000179
+_08113108: .4byte gTasks
+_0811310C:
+ bl IsSEPlaying
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0
+ beq _0811311C
+ bl _08113B3A
+_0811311C:
+ ldr r0, _08113144 @ =0x00000179
+ bl PlayBGM
+ ldr r1, _08113148 @ =gTasks
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r0, r1
+ ldrh r1, [r0, 0x8]
+ adds r1, 0x1
+ strh r1, [r0, 0x8]
+ str r5, [sp]
+ movs r0, 0x1C
+ movs r1, 0x4
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ bl _08113B3A
+ .align 2, 0
+_08113144: .4byte 0x00000179
+_08113148: .4byte gTasks
+_0811314C:
+ ldr r0, _08113180 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _0811315C
+ bl _08113B3A
+_0811315C:
+ movs r1, 0x80
+ lsls r1, 19
+ movs r2, 0x9A
+ lsls r2, 5
+ adds r0, r2, 0
+ strh r0, [r1]
+ movs r0, 0x11
+ bl sub_8149970
+ ldr r1, _08113184 @ =gUnknown_02024D1E
+ strb r0, [r1, 0x2]
+ ldr r1, _08113188 @ =gTasks
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r0, r1
+ b _08113298
+ .align 2, 0
+_08113180: .4byte gPaletteFade
+_08113184: .4byte gUnknown_02024D1E
+_08113188: .4byte gTasks
+_0811318C:
+ ldr r4, _081131C0 @ =gUnknown_02024D1E
+ ldrb r0, [r4, 0x2]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r6
+ ldrb r0, [r1, 0x4]
+ cmp r0, 0
+ beq _081131A2
+ bl _08113B3A
+_081131A2:
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r0, r6
+ ldrh r1, [r0, 0x8]
+ adds r1, 0x1
+ strh r1, [r0, 0x8]
+ ldr r1, _081131C4 @ =0x02014800
+ movs r0, 0x1
+ strb r0, [r1, 0x3]
+ bl sub_8149A90
+ strb r0, [r4, 0x2]
+ bl _08113B3A
+ .align 2, 0
+_081131C0: .4byte gUnknown_02024D1E
+_081131C4: .4byte 0x02014800
+_081131C8:
+ ldr r4, _081131EC @ =gUnknown_02024D1E
+ ldrb r0, [r4, 0x2]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r6
+ ldrb r0, [r1, 0x4]
+ cmp r0, 0
+ beq _081131DE
+ bl _08113B3A
+_081131DE:
+ ldr r1, _081131F0 @ =0x02014800
+ ldrb r0, [r1]
+ ldrb r1, [r1, 0x1]
+ bl sub_8149E7C
+ strb r0, [r4, 0x2]
+ b _08113290
+ .align 2, 0
+_081131EC: .4byte gUnknown_02024D1E
+_081131F0: .4byte 0x02014800
+_081131F4:
+ ldr r1, _08113224 @ =0x02014800
+ ldrb r0, [r1, 0x3]
+ subs r0, 0x1
+ strb r0, [r1, 0x3]
+ lsls r0, 24
+ cmp r0, 0
+ beq _08113206
+ bl _08113B3A
+_08113206:
+ movs r0, 0x3
+ strb r0, [r1, 0x3]
+ ldr r0, _08113228 @ =gUnknown_02024D1E
+ ldrb r1, [r0, 0x2]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r6
+ ldrb r0, [r0, 0x4]
+ cmp r0, 0
+ beq _08113220
+ bl _08113B3A
+_08113220:
+ b _08113290
+ .align 2, 0
+_08113224: .4byte 0x02014800
+_08113228: .4byte gUnknown_02024D1E
+_0811322C:
+ bl sub_8149B44
+ ldr r1, _08113240 @ =gUnknown_02024D1E
+ strb r0, [r1, 0x2]
+ ldr r1, _08113244 @ =gTasks
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r0, r1
+ b _08113298
+ .align 2, 0
+_08113240: .4byte gUnknown_02024D1E
+_08113244: .4byte gTasks
+_08113248:
+ ldr r5, _08113270 @ =gUnknown_02024D1E
+ ldrb r0, [r5, 0x2]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r6
+ ldrb r0, [r1, 0x4]
+ cmp r0, 0
+ beq _0811325E
+ bl _08113B3A
+_0811325E:
+ lsls r4, r7, 2
+ adds r4, r7
+ lsls r4, 3
+ adds r4, r6
+ ldrh r0, [r4, 0x10]
+ bl sub_8149D5C
+ strb r0, [r5, 0x2]
+ b _081132E2
+ .align 2, 0
+_08113270: .4byte gUnknown_02024D1E
+_08113274:
+ ldr r0, _081132A4 @ =gUnknown_02024D1E
+ ldrb r1, [r0, 0x2]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r6
+ ldrb r0, [r0, 0x4]
+ cmp r0, 0
+ beq _0811328A
+ bl _08113B3A
+_0811328A:
+ movs r0, 0x21
+ bl PlaySE
+_08113290:
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r0, r6
+_08113298:
+ ldrh r1, [r0, 0x8]
+ adds r1, 0x1
+ strh r1, [r0, 0x8]
+ bl _08113B3A
+ .align 2, 0
+_081132A4: .4byte gUnknown_02024D1E
+_081132A8:
+ bl IsSEPlaying
+ lsls r0, 24
+ cmp r0, 0
+ bne _081132B6
+ bl _08113B3A
+_081132B6:
+ ldr r0, _081132EC @ =gTasks
+ lsls r4, r7, 2
+ adds r4, r7
+ lsls r4, 3
+ adds r4, r0
+ ldrh r0, [r4, 0x10]
+ movs r1, 0
+ bl PlayCry1
+ ldr r0, _081132F0 @ =gPlttBufferUnfaded + 0x40
+ ldr r1, _081132F4 @ =0x02009000
+ movs r2, 0x60
+ bl memcpy
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x1
+ movs r1, 0
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+_081132E2:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ bl _08113B3A
+ .align 2, 0
+_081132EC: .4byte gTasks
+_081132F0: .4byte gPlttBufferUnfaded + 0x40
+_081132F4: .4byte 0x02009000
+_081132F8:
+ bl IsCryFinished
+ lsls r0, 24
+ cmp r0, 0
+ bne _08113306
+ bl _08113B3A
+_08113306:
+ ldr r0, _08113390 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _08113316
+ bl _08113B3A
+_08113316:
+ ldr r4, _08113394 @ =gStringVar4
+ ldr r1, _08113398 @ =gUnknown_08400C60
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ ldr r0, _0811339C @ =gUnknown_03004828
+ ldr r1, [r0]
+ adds r0, r1, 0x4
+ adds r1, 0x34
+ ldrb r2, [r1]
+ movs r1, 0xF
+ str r1, [sp]
+ adds r1, r4, 0
+ movs r3, 0x2
+ bl sub_8002EB0
+ ldr r0, _081133A0 @ =0x00000173
+ bl PlayFanfare
+ ldr r2, _081133A4 @ =gTasks
+ lsls r1, r7, 2
+ adds r1, r7
+ lsls r1, 3
+ adds r4, r1, r2
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ adds r2, r1
+ adds r2, 0x10
+ mov r0, r8
+ movs r1, 0xB
+ bl SetMonData
+ mov r0, r8
+ bl CalculateMonStats
+ ldrh r1, [r4, 0xE]
+ ldrh r2, [r4, 0x10]
+ mov r0, r8
+ bl sub_803FB68
+ ldrh r0, [r4, 0x10]
+ bl SpeciesToNationalPokedexNum
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x2
+ bl sub_8090D90
+ ldrh r0, [r4, 0x10]
+ bl SpeciesToNationalPokedexNum
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x3
+ bl sub_8090D90
+ movs r0, 0xE
+ bl sav12_xor_increment
+ b _08113B3A
+ .align 2, 0
+_08113390: .4byte gPaletteFade
+_08113394: .4byte gStringVar4
+_08113398: .4byte gUnknown_08400C60
+_0811339C: .4byte gUnknown_03004828
+_081133A0: .4byte 0x00000173
+_081133A4: .4byte gTasks
+_081133A8:
+ ldr r0, _08113410 @ =gUnknown_03004828
+ ldr r0, [r0]
+ ldrh r0, [r0, 0x1A]
+ cmp r0, 0
+ beq _081133B4
+ b _08113B3A
+_081133B4:
+ bl IsFanfareTaskInactive
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _081133C2
+ b _08113B3A
+_081133C2:
+ ldr r1, _08113414 @ =gTasks
+ lsls r4, r7, 2
+ adds r0, r4, r7
+ lsls r0, 3
+ adds r5, r0, r1
+ ldrb r1, [r5, 0x14]
+ mov r0, r8
+ bl sub_803B7C8
+ lsls r0, 16
+ lsrs r6, r0, 16
+ mov r9, r4
+ cmp r6, 0
+ beq _08113434
+ movs r3, 0x1E
+ ldrsh r2, [r5, r3]
+ cmp r2, 0
+ bne _08113434
+ ldrh r1, [r5, 0x12]
+ movs r0, 0x80
+ orrs r0, r1
+ strh r0, [r5, 0x12]
+ strh r2, [r5, 0x14]
+ strh r2, [r5, 0x18]
+ mov r0, r8
+ movs r1, 0x2
+ add r2, sp, 0x4
+ bl GetMonData
+ ldr r0, _08113418 @ =gUnknown_030041C0
+ add r1, sp, 0x4
+ bl StringCopy10
+ ldr r0, _0811341C @ =0x0000ffff
+ cmp r6, r0
+ bne _08113420
+ movs r0, 0x11
+ strh r0, [r5, 0x8]
+ b _08113B3A
+ .align 2, 0
+_08113410: .4byte gUnknown_03004828
+_08113414: .4byte gTasks
+_08113418: .4byte gUnknown_030041C0
+_0811341C: .4byte 0x0000ffff
+_08113420:
+ ldr r0, _08113430 @ =0x0000fffe
+ cmp r6, r0
+ bne _08113428
+ b _08113B3A
+_08113428:
+ movs r0, 0xF
+ strh r0, [r5, 0x8]
+ b _08113B3A
+ .align 2, 0
+_08113430: .4byte 0x0000fffe
+_08113434:
+ ldr r0, _0811345C @ =0x00000179
+ bl PlayBGM
+ ldr r0, _08113460 @ =gUnknown_03004828
+ ldr r2, [r0]
+ adds r0, r2, 0x4
+ ldr r1, _08113464 @ =gOtherText_LinkStandby2
+ adds r2, 0x34
+ ldrb r2, [r2]
+ movs r3, 0xF
+ str r3, [sp]
+ movs r3, 0x2
+ bl sub_8002EB0
+ ldr r0, _08113468 @ =gTasks
+ mov r2, r9
+ adds r1, r2, r7
+ lsls r1, 3
+ adds r1, r0
+ b _081134DC
+ .align 2, 0
+_0811345C: .4byte 0x00000179
+_08113460: .4byte gUnknown_03004828
+_08113464: .4byte gOtherText_LinkStandby2
+_08113468: .4byte gTasks
+_0811346C:
+ ldr r0, _08113488 @ =gUnknown_03004828
+ ldr r0, [r0]
+ ldrh r0, [r0, 0x1A]
+ cmp r0, 0
+ beq _08113478
+ b _08113B3A
+_08113478:
+ adds r0, r7, 0
+ bl DestroyTask
+ ldr r0, _0811348C @ =gUnknown_03005E94
+ ldr r0, [r0]
+ bl SetMainCallback2
+ b _08113B3A
+ .align 2, 0
+_08113488: .4byte gUnknown_03004828
+_0811348C: .4byte gUnknown_03005E94
+_08113490:
+ ldr r4, _081134E4 @ =gUnknown_03004828
+ ldr r0, [r4]
+ ldrh r0, [r0, 0x1A]
+ cmp r0, 0
+ beq _0811349C
+ b _08113B3A
+_0811349C:
+ bl IsSEPlaying
+ lsls r0, 24
+ cmp r0, 0
+ beq _081134A8
+ b _08113B3A
+_081134A8:
+ bl sub_8024CEC
+ ldr r0, _081134E8 @ =0x0000016f
+ bl PlayFanfare
+ ldr r0, _081134EC @ =gUnknown_08400F8C
+ ldr r0, [r0, 0xC]
+ bl get_battle_strings_
+ ldr r2, [r4]
+ adds r0, r2, 0x4
+ ldr r1, _081134F0 @ =gUnknown_020238CC
+ adds r2, 0x34
+ ldrb r2, [r2]
+ movs r3, 0xF
+ str r3, [sp]
+ movs r3, 0x2
+ bl sub_8002EB0
+ ldr r0, _081134F4 @ =gTasks
+ lsls r1, r7, 2
+ adds r1, r7
+ lsls r1, 3
+ adds r1, r0
+ movs r0, 0x40
+ strh r0, [r1, 0x14]
+_081134DC:
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ b _08113B3A
+ .align 2, 0
+_081134E4: .4byte gUnknown_03004828
+_081134E8: .4byte 0x0000016f
+_081134EC: .4byte gUnknown_08400F8C
+_081134F0: .4byte gUnknown_020238CC
+_081134F4: .4byte gTasks
+_081134F8:
+ ldr r0, _08113530 @ =gUnknown_03004828
+ ldr r0, [r0]
+ ldrh r0, [r0, 0x1A]
+ cmp r0, 0
+ beq _08113504
+ b _08113B3A
+_08113504:
+ bl IsFanfareTaskInactive
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _08113512
+ b _08113B3A
+_08113512:
+ ldr r0, _08113534 @ =gTasks
+ lsls r1, r7, 2
+ adds r1, r7
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x14]
+ subs r0, 0x1
+ strh r0, [r1, 0x14]
+ lsls r0, 16
+ cmp r0, 0
+ beq _0811352A
+ b _08113B3A
+_0811352A:
+ movs r0, 0xD
+ strh r0, [r1, 0x8]
+ b _08113B3A
+ .align 2, 0
+_08113530: .4byte gUnknown_03004828
+_08113534: .4byte gTasks
+_08113538:
+ lsls r1, r7, 2
+ adds r0, r1, r7
+ lsls r0, 3
+ adds r0, r6
+ movs r3, 0x18
+ ldrsh r0, [r0, r3]
+ mov r9, r1
+ cmp r0, 0xB
+ bls _0811354C
+ b _08113B3A
+_0811354C:
+ lsls r0, 2
+ ldr r1, _08113558 @ =_0811355C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08113558: .4byte _0811355C
+ .align 2, 0
+_0811355C:
+ .4byte _0811358C
+ .4byte _081135E4
+ .4byte _08113638
+ .4byte _08113682
+ .4byte _0811371C
+ .4byte _0811387C
+ .4byte _081138CC
+ .4byte _081139E8
+ .4byte _08113A3C
+ .4byte _08113A90
+ .4byte _08113AD8
+ .4byte _08113B18
+_0811358C:
+ ldr r4, _081135D4 @ =gUnknown_03004828
+ ldr r0, [r4]
+ ldrh r0, [r0, 0x1A]
+ cmp r0, 0
+ beq _08113598
+ b _08113B3A
+_08113598:
+ bl IsSEPlaying
+ lsls r0, 24
+ cmp r0, 0
+ beq _081135A4
+ b _08113B3A
+_081135A4:
+ bl sub_8024CEC
+ ldr r0, _081135D8 @ =gUnknown_08400F8C
+ ldr r0, [r0, 0x10]
+ bl get_battle_strings_
+ ldr r2, [r4]
+ adds r0, r2, 0x4
+ ldr r1, _081135DC @ =gUnknown_020238CC
+ adds r2, 0x34
+ ldrb r2, [r2]
+ movs r3, 0xF
+ str r3, [sp]
+ movs r3, 0x2
+ bl sub_8002EB0
+ ldr r0, _081135E0 @ =gTasks
+ mov r2, r9
+ adds r1, r2, r7
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x18]
+ adds r0, 0x1
+ b _08113B38
+ .align 2, 0
+_081135D4: .4byte gUnknown_03004828
+_081135D8: .4byte gUnknown_08400F8C
+_081135DC: .4byte gUnknown_020238CC
+_081135E0: .4byte gTasks
+_081135E4:
+ ldr r4, _08113628 @ =gUnknown_03004828
+ ldr r0, [r4]
+ ldrh r0, [r0, 0x1A]
+ cmp r0, 0
+ beq _081135F0
+ b _08113B3A
+_081135F0:
+ bl IsSEPlaying
+ lsls r0, 24
+ cmp r0, 0
+ beq _081135FC
+ b _08113B3A
+_081135FC:
+ ldr r0, _0811362C @ =gUnknown_08400F8C
+ ldr r0, [r0, 0x14]
+ bl get_battle_strings_
+ ldr r2, [r4]
+ adds r0, r2, 0x4
+ ldr r1, _08113630 @ =gUnknown_020238CC
+ adds r2, 0x34
+ ldrb r2, [r2]
+ movs r3, 0xF
+ str r3, [sp]
+ movs r3, 0x2
+ bl sub_8002EB0
+ ldr r0, _08113634 @ =gTasks
+ mov r3, r9
+ adds r1, r3, r7
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x18]
+ adds r0, 0x1
+ b _08113B38
+ .align 2, 0
+_08113628: .4byte gUnknown_03004828
+_0811362C: .4byte gUnknown_08400F8C
+_08113630: .4byte gUnknown_020238CC
+_08113634: .4byte gTasks
+_08113638:
+ ldr r4, _081136FC @ =gUnknown_03004828
+ ldr r0, [r4]
+ ldrh r0, [r0, 0x1A]
+ cmp r0, 0
+ beq _08113644
+ b _08113B3A
+_08113644:
+ bl IsSEPlaying
+ lsls r0, 24
+ cmp r0, 0
+ bne _08113682
+ ldr r0, _08113700 @ =gUnknown_08400F8C
+ ldr r0, [r0, 0x18]
+ bl get_battle_strings_
+ ldr r2, [r4]
+ adds r0, r2, 0x4
+ ldr r1, _08113704 @ =gUnknown_020238CC
+ adds r2, 0x34
+ ldrb r2, [r2]
+ movs r3, 0xF
+ str r3, [sp]
+ movs r3, 0x2
+ bl sub_8002EB0
+ ldr r0, _08113708 @ =gTasks
+ mov r2, r9
+ adds r1, r2, r7
+ lsls r1, 3
+ adds r1, r0
+ movs r0, 0x5
+ strh r0, [r1, 0x1A]
+ movs r0, 0x9
+ strh r0, [r1, 0x1C]
+ ldrh r0, [r1, 0x18]
+ adds r0, 0x1
+ strh r0, [r1, 0x18]
+_08113682:
+ ldr r5, _081136FC @ =gUnknown_03004828
+ ldr r0, [r5]
+ ldrh r0, [r0, 0x1A]
+ cmp r0, 0
+ beq _0811368E
+ b _08113B3A
+_0811368E:
+ bl IsSEPlaying
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, 0
+ beq _0811369C
+ b _08113B3A
+_0811369C:
+ ldr r0, [r5]
+ adds r0, 0x4
+ movs r1, 0xD
+ str r1, [sp]
+ movs r1, 0x18
+ movs r2, 0x8
+ movs r3, 0x1D
+ bl DrawTextWindow
+ ldr r4, _0811370C @ =gUnknown_02024D1E
+ strb r6, [r4, 0x1]
+ ldr r2, [r5]
+ adds r0, r2, 0x4
+ ldr r1, _08113710 @ =gOtherText_YesNoAndPlayer
+ adds r2, 0x34
+ ldrb r2, [r2]
+ adds r2, 0x80
+ movs r3, 0x9
+ str r3, [sp]
+ movs r3, 0x19
+ bl InitWindow
+ ldr r0, [r5]
+ adds r0, 0x4
+ bl sub_8002F44
+ ldr r1, _08113714 @ =0x0000ffff
+ ldr r3, _08113718 @ =0x00002d9f
+ movs r0, 0x20
+ str r0, [sp]
+ movs r0, 0
+ movs r2, 0xC
+ bl sub_814A5C0
+ bl sub_81150D8
+ ldr r0, _08113708 @ =gTasks
+ mov r3, r9
+ adds r1, r3, r7
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x18]
+ adds r0, 0x1
+ movs r2, 0
+ strh r0, [r1, 0x18]
+ strb r2, [r4, 0x1]
+ b _08113B3A
+ .align 2, 0
+_081136FC: .4byte gUnknown_03004828
+_08113700: .4byte gUnknown_08400F8C
+_08113704: .4byte gUnknown_020238CC
+_08113708: .4byte gTasks
+_0811370C: .4byte gUnknown_02024D1E
+_08113710: .4byte gOtherText_YesNoAndPlayer
+_08113714: .4byte 0x0000ffff
+_08113718: .4byte 0x00002d9f
+_0811371C:
+ ldr r0, _081137CC @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _08113742
+ ldr r4, _081137D0 @ =gUnknown_02024D1E
+ ldrb r0, [r4, 0x1]
+ cmp r0, 0
+ beq _08113742
+ movs r0, 0x5
+ bl PlaySE
+ bl nullsub_24
+ movs r0, 0
+ strb r0, [r4, 0x1]
+ bl sub_81150D8
+_08113742:
+ ldr r0, _081137CC @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _08113768
+ ldr r4, _081137D0 @ =gUnknown_02024D1E
+ ldrb r0, [r4, 0x1]
+ cmp r0, 0
+ bne _08113768
+ movs r0, 0x5
+ bl PlaySE
+ bl nullsub_24
+ movs r0, 0x1
+ strb r0, [r4, 0x1]
+ bl sub_81150D8
+_08113768:
+ ldr r0, _081137CC @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0811380A
+ ldr r4, _081137D4 @ =gUnknown_03004828
+ ldr r0, [r4]
+ adds r0, 0x4
+ movs r1, 0xD
+ str r1, [sp]
+ movs r1, 0x18
+ movs r2, 0x8
+ movs r3, 0x1D
+ bl ZeroFillWindowRect
+ bl sub_814A7FC
+ ldr r0, _081137D8 @ =gUnknown_08400F8C
+ movs r1, 0x92
+ lsls r1, 3
+ adds r0, r1
+ ldr r0, [r0]
+ bl get_battle_strings_
+ ldr r2, [r4]
+ adds r0, r2, 0x4
+ ldr r1, _081137DC @ =gUnknown_020238CC
+ adds r2, 0x34
+ ldrb r2, [r2]
+ movs r3, 0xF
+ str r3, [sp]
+ movs r3, 0x2
+ bl sub_8002EB0
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, _081137D0 @ =gUnknown_02024D1E
+ ldrb r2, [r0, 0x1]
+ cmp r2, 0
+ beq _081137E4
+ ldr r0, _081137E0 @ =gTasks
+ mov r2, r9
+ adds r1, r2, r7
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x1C]
+ strh r0, [r1, 0x18]
+ b _0811380A
+ .align 2, 0
+_081137CC: .4byte gMain
+_081137D0: .4byte gUnknown_02024D1E
+_081137D4: .4byte gUnknown_03004828
+_081137D8: .4byte gUnknown_08400F8C
+_081137DC: .4byte gUnknown_020238CC
+_081137E0: .4byte gTasks
+_081137E4:
+ ldr r0, _08113868 @ =gTasks
+ mov r3, r9
+ adds r1, r3, r7
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x1A]
+ strh r0, [r1, 0x18]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x5
+ bne _0811380A
+ movs r0, 0x1
+ negs r0, r0
+ str r2, [sp]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+_0811380A:
+ ldr r0, _0811386C @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ bne _08113818
+ b _08113B3A
+_08113818:
+ ldr r4, _08113870 @ =gUnknown_03004828
+ ldr r0, [r4]
+ adds r0, 0x4
+ movs r1, 0xD
+ str r1, [sp]
+ movs r1, 0x18
+ movs r2, 0x8
+ movs r3, 0x1D
+ bl ZeroFillWindowRect
+ bl sub_814A7FC
+ ldr r0, _08113874 @ =gUnknown_08400F8C
+ movs r1, 0x92
+ lsls r1, 3
+ adds r0, r1
+ ldr r0, [r0]
+ bl get_battle_strings_
+ ldr r2, [r4]
+ adds r0, r2, 0x4
+ ldr r1, _08113878 @ =gUnknown_020238CC
+ adds r2, 0x34
+ ldrb r2, [r2]
+ movs r3, 0xF
+ str r3, [sp]
+ movs r3, 0x2
+ bl sub_8002EB0
+ movs r0, 0x5
+ bl PlaySE
+ ldr r1, _08113868 @ =gTasks
+ mov r2, r9
+ adds r0, r2, r7
+ lsls r0, 3
+ adds r0, r1
+ ldrh r1, [r0, 0x1C]
+ strh r1, [r0, 0x18]
+ b _08113B3A
+ .align 2, 0
+_08113868: .4byte gTasks
+_0811386C: .4byte gMain
+_08113870: .4byte gUnknown_03004828
+_08113874: .4byte gUnknown_08400F8C
+_08113878: .4byte gUnknown_020238CC
+_0811387C:
+ ldr r0, _081138B8 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _0811388A
+ b _08113B3A
+_0811388A:
+ ldr r0, _081138BC @ =gPlayerParty
+ mov r3, r9
+ adds r5, r3, r7
+ lsls r5, 3
+ adds r5, r6
+ ldrh r1, [r5, 0x20]
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r2, _081138C0 @ =gPlayerPartyCount
+ ldrb r2, [r2]
+ subs r2, 0x1
+ lsls r2, 24
+ lsrs r2, 24
+ ldr r3, _081138C4 @ =sub_8111E80
+ ldr r4, _081138C8 @ =word_2024E82
+ ldrh r4, [r4]
+ str r4, [sp]
+ bl sub_809D9F0
+ ldrh r0, [r5, 0x18]
+ adds r0, 0x1
+ strh r0, [r5, 0x18]
+ b _08113B3A
+ .align 2, 0
+_081138B8: .4byte gPaletteFade
+_081138BC: .4byte gPlayerParty
+_081138C0: .4byte gPlayerPartyCount
+_081138C4: .4byte sub_8111E80
+_081138C8: .4byte word_2024E82
+_081138CC:
+ ldr r0, _08113900 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _081138DA
+ b _08113B3A
+_081138DA:
+ ldr r0, _08113904 @ =gMain
+ ldr r1, [r0, 0x4]
+ ldr r0, _08113908 @ =sub_8112290
+ cmp r1, r0
+ beq _081138E6
+ b _08113B3A
+_081138E6:
+ bl sub_809FA30
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, 0x4
+ bne _08113910
+ ldr r0, _0811390C @ =gTasks
+ mov r2, r9
+ adds r1, r2, r7
+ lsls r1, 3
+ adds r1, r0
+ movs r0, 0x9
+ b _08113B38
+ .align 2, 0
+_08113900: .4byte gPaletteFade
+_08113904: .4byte gMain
+_08113908: .4byte sub_8112290
+_0811390C: .4byte gTasks
+_08113910:
+ adds r1, r6, 0
+ adds r1, 0xD
+ mov r0, r8
+ bl GetMonData
+ lsls r0, 16
+ lsrs r4, r0, 16
+ adds r0, r4, 0
+ bl sub_8040A00
+ cmp r0, 0
+ beq _08113970
+ ldr r0, _0811395C @ =gUnknown_08400F8C
+ ldr r3, _08113960 @ =0x000004cc
+ adds r0, r3
+ ldr r0, [r0]
+ bl get_battle_strings_
+ ldr r0, _08113964 @ =gUnknown_03004828
+ ldr r2, [r0]
+ adds r0, r2, 0x4
+ ldr r1, _08113968 @ =gUnknown_020238CC
+ adds r2, 0x34
+ ldrb r2, [r2]
+ movs r3, 0xF
+ str r3, [sp]
+ movs r3, 0x2
+ bl sub_8002EB0
+ ldr r1, _0811396C @ =gTasks
+ mov r2, r9
+ adds r0, r2, r7
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0xB
+ strh r1, [r0, 0x18]
+ b _08113B3A
+ .align 2, 0
+_0811395C: .4byte gUnknown_08400F8C
+_08113960: .4byte 0x000004cc
+_08113964: .4byte gUnknown_03004828
+_08113968: .4byte gUnknown_020238CC
+_0811396C: .4byte gTasks
+_08113970:
+ ldr r1, _081139D0 @ =gUnknown_03004290
+ movs r0, 0xFD
+ strb r0, [r1]
+ movs r0, 0x2
+ strb r0, [r1, 0x1]
+ strb r4, [r1, 0x2]
+ lsrs r0, r4, 8
+ strb r0, [r1, 0x3]
+ movs r0, 0xFF
+ strb r0, [r1, 0x4]
+ lsls r4, r6, 24
+ lsrs r4, 24
+ mov r0, r8
+ adds r1, r4, 0
+ bl RemoveMonPPBonus
+ ldr r0, _081139D4 @ =word_2024E82
+ ldrh r1, [r0]
+ mov r0, r8
+ adds r2, r4, 0
+ bl SetMonMoveSlot
+ ldr r0, _081139D8 @ =gUnknown_08400F8C
+ movs r3, 0xCF
+ lsls r3, 2
+ adds r0, r3
+ ldr r0, [r0]
+ bl get_battle_strings_
+ ldr r0, _081139DC @ =gUnknown_03004828
+ ldr r2, [r0]
+ adds r0, r2, 0x4
+ ldr r1, _081139E0 @ =gUnknown_020238CC
+ adds r2, 0x34
+ ldrb r2, [r2]
+ movs r3, 0xF
+ str r3, [sp]
+ movs r3, 0x2
+ bl sub_8002EB0
+ ldr r0, _081139E4 @ =gTasks
+ mov r2, r9
+ adds r1, r2, r7
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x18]
+ adds r0, 0x1
+ b _08113B38
+ .align 2, 0
+_081139D0: .4byte gUnknown_03004290
+_081139D4: .4byte word_2024E82
+_081139D8: .4byte gUnknown_08400F8C
+_081139DC: .4byte gUnknown_03004828
+_081139E0: .4byte gUnknown_020238CC
+_081139E4: .4byte gTasks
+_081139E8:
+ ldr r4, _08113A2C @ =gUnknown_03004828
+ ldr r0, [r4]
+ ldrh r0, [r0, 0x1A]
+ cmp r0, 0
+ beq _081139F4
+ b _08113B3A
+_081139F4:
+ bl IsSEPlaying
+ lsls r0, 24
+ cmp r0, 0
+ beq _08113A00
+ b _08113B3A
+_08113A00:
+ ldr r0, _08113A30 @ =gUnknown_08400F8C
+ ldr r0, [r0, 0x1C]
+ bl get_battle_strings_
+ ldr r2, [r4]
+ adds r0, r2, 0x4
+ ldr r1, _08113A34 @ =gUnknown_020238CC
+ adds r2, 0x34
+ ldrb r2, [r2]
+ movs r3, 0xF
+ str r3, [sp]
+ movs r3, 0x2
+ bl sub_8002EB0
+ ldr r0, _08113A38 @ =gTasks
+ mov r3, r9
+ adds r1, r3, r7
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x18]
+ adds r0, 0x1
+ b _08113B38
+ .align 2, 0
+_08113A2C: .4byte gUnknown_03004828
+_08113A30: .4byte gUnknown_08400F8C
+_08113A34: .4byte gUnknown_020238CC
+_08113A38: .4byte gTasks
+_08113A3C:
+ ldr r4, _08113A80 @ =gUnknown_03004828
+ ldr r0, [r4]
+ ldrh r0, [r0, 0x1A]
+ cmp r0, 0
+ bne _08113B3A
+ bl IsSEPlaying
+ lsls r0, 24
+ cmp r0, 0
+ bne _08113B3A
+ ldr r0, _08113A84 @ =gUnknown_08400F8C
+ movs r1, 0xD0
+ lsls r1, 2
+ adds r0, r1
+ ldr r0, [r0]
+ bl get_battle_strings_
+ ldr r2, [r4]
+ adds r0, r2, 0x4
+ ldr r1, _08113A88 @ =gUnknown_020238CC
+ adds r2, 0x34
+ ldrb r2, [r2]
+ movs r4, 0xF
+ str r4, [sp]
+ movs r3, 0x2
+ bl sub_8002EB0
+ ldr r1, _08113A8C @ =gTasks
+ mov r2, r9
+ adds r0, r2, r7
+ lsls r0, 3
+ adds r0, r1
+ strh r4, [r0, 0x8]
+ b _08113B3A
+ .align 2, 0
+_08113A80: .4byte gUnknown_03004828
+_08113A84: .4byte gUnknown_08400F8C
+_08113A88: .4byte gUnknown_020238CC
+_08113A8C: .4byte gTasks
+_08113A90:
+ ldr r0, _08113AC8 @ =gUnknown_08400F8C
+ ldr r0, [r0, 0x20]
+ bl get_battle_strings_
+ ldr r0, _08113ACC @ =gUnknown_03004828
+ ldr r2, [r0]
+ adds r0, r2, 0x4
+ ldr r1, _08113AD0 @ =gUnknown_020238CC
+ adds r2, 0x34
+ ldrb r2, [r2]
+ movs r3, 0xF
+ str r3, [sp]
+ movs r3, 0x2
+ bl sub_8002EB0
+ ldr r1, _08113AD4 @ =gTasks
+ mov r3, r9
+ adds r0, r3, r7
+ lsls r0, 3
+ adds r0, r1
+ movs r2, 0
+ movs r1, 0xA
+ strh r1, [r0, 0x1A]
+ strh r2, [r0, 0x1C]
+ movs r1, 0x3
+ strh r1, [r0, 0x18]
+ b _08113B3A
+ .align 2, 0
+_08113AC8: .4byte gUnknown_08400F8C
+_08113ACC: .4byte gUnknown_03004828
+_08113AD0: .4byte gUnknown_020238CC
+_08113AD4: .4byte gTasks
+_08113AD8:
+ ldr r0, _08113B08 @ =gUnknown_08400F8C
+ ldr r0, [r0, 0x24]
+ bl get_battle_strings_
+ ldr r0, _08113B0C @ =gUnknown_03004828
+ ldr r2, [r0]
+ adds r0, r2, 0x4
+ ldr r1, _08113B10 @ =gUnknown_020238CC
+ adds r2, 0x34
+ ldrb r2, [r2]
+ movs r3, 0xF
+ str r3, [sp]
+ movs r3, 0x2
+ bl sub_8002EB0
+ ldr r1, _08113B14 @ =gTasks
+ mov r2, r9
+ adds r0, r2, r7
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0xD
+ strh r1, [r0, 0x8]
+ b _08113B3A
+ .align 2, 0
+_08113B08: .4byte gUnknown_08400F8C
+_08113B0C: .4byte gUnknown_03004828
+_08113B10: .4byte gUnknown_020238CC
+_08113B14: .4byte gTasks
+_08113B18:
+ ldr r0, _08113B48 @ =gUnknown_03004828
+ ldr r0, [r0]
+ ldrh r0, [r0, 0x1A]
+ cmp r0, 0
+ bne _08113B3A
+ bl IsSEPlaying
+ lsls r0, 24
+ cmp r0, 0
+ bne _08113B3A
+ ldr r0, _08113B4C @ =gTasks
+ mov r3, r9
+ adds r1, r3, r7
+ lsls r1, 3
+ adds r1, r0
+ movs r0, 0x5
+_08113B38:
+ strh r0, [r1, 0x18]
+_08113B3A:
+ add sp, 0x18
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08113B48: .4byte gUnknown_03004828
+_08113B4C: .4byte gTasks
+ thumb_func_end sub_8112FE8
+
+ thumb_func_start unref_sub_8113B50
+unref_sub_8113B50: @ 8113B50
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x3C
+ str r0, [sp]
+ str r1, [sp, 0x4]
+ movs r0, 0
+ str r0, [sp, 0xC]
+ movs r1, 0
+ str r1, [sp, 0x10]
+ movs r2, 0
+ str r2, [sp, 0x8]
+ ldr r3, _08113C60 @ =0x02014800
+ mov r12, r3
+ ldr r4, _08113C64 @ =0x000018c4
+ add r4, r12
+ mov r10, r4
+ ldr r5, _08113C68 @ =0x000020c4
+ add r5, r12
+ mov r8, r5
+_08113B7C:
+ adds r0, r3, 0
+ adds r0, 0x84
+ ldr r1, [sp, 0x8]
+ adds r0, r1, r0
+ strb r2, [r0]
+ adds r0, r3, 0x4
+ adds r0, r1, r0
+ strb r2, [r0]
+ ldr r4, _08113C6C @ =0x02014844
+ adds r0, r1, r4
+ strb r2, [r0]
+ movs r6, 0
+ lsls r1, 5
+ mov r9, r1
+ ldr r5, [sp, 0x8]
+ lsls r4, r5, 6
+_08113B9C:
+ mov r0, r9
+ adds r1, r6, r0
+ ldr r5, _08113C70 @ =0x020158c4
+ adds r0, r1, r5
+ strb r2, [r0]
+ mov r5, r10
+ adds r0, r1, r5
+ strb r2, [r0]
+ mov r5, r8
+ adds r0, r1, r5
+ strb r2, [r0]
+ ldr r5, _08113C74 @ =0x020170c4
+ adds r0, r1, r5
+ strb r2, [r0]
+ adds r7, r3, 0
+ adds r7, 0xC4
+ adds r0, r1, r7
+ strb r2, [r0]
+ ldr r5, _08113C78 @ =0x000008c4
+ adds r0, r3, r5
+ adds r0, r1, r0
+ strb r2, [r0]
+ ldr r5, _08113C7C @ =0x000030c4
+ adds r0, r3, r5
+ adds r0, r1, r0
+ strb r2, [r0]
+ ldr r5, _08113C80 @ =0x000038c4
+ adds r0, r3, r5
+ adds r1, r0
+ strb r2, [r1]
+ lsls r1, r6, 1
+ adds r1, r4
+ ldr r5, _08113C84 @ =0x000060c4
+ adds r0, r3, r5
+ adds r0, r1, r0
+ strh r2, [r0]
+ ldr r5, _08113C88 @ =0x000070c4
+ adds r0, r3, r5
+ adds r0, r1, r0
+ strh r2, [r0]
+ ldr r5, _08113C8C @ =0x000080c4
+ adds r0, r3, r5
+ adds r0, r1, r0
+ strh r2, [r0]
+ ldr r5, _08113C90 @ =0x000090c4
+ adds r0, r3, r5
+ adds r1, r0
+ strh r2, [r1]
+ adds r6, 0x1
+ cmp r6, 0x1F
+ ble _08113B9C
+ ldr r0, [sp, 0x8]
+ adds r0, 0x1
+ str r0, [sp, 0x8]
+ cmp r0, 0x3F
+ ble _08113B7C
+ ldr r1, _08113C94 @ =0x0000a0c4
+ add r1, r12
+ movs r0, 0x40
+ strb r0, [r1]
+ movs r1, 0
+ mov r8, r1
+ movs r2, 0
+ str r2, [sp, 0x8]
+ movs r3, 0x80
+ lsls r3, 5
+ adds r3, r7
+ mov r12, r3
+ movs r4, 0xC0
+ lsls r4, 5
+ adds r4, r7
+ mov r9, r4
+ movs r5, 0
+ adds r4, r7, 0
+ subs r4, 0xC0
+_08113C32:
+ movs r3, 0
+ ldr r2, [sp]
+ add r2, r8
+ movs r6, 0
+ ldr r0, [sp, 0x8]
+ adds r0, 0x1
+ str r0, [sp, 0x30]
+ ldr r1, [sp, 0x8]
+ lsls r1, 7
+ mov r10, r1
+ movs r7, 0x1
+ negs r7, r7
+_08113C4A:
+ asrs r0, r6, 1
+ lsls r0, 2
+ add r0, r10
+ ldr r1, _08113C98 @ =0x020188c4
+ adds r0, r1
+ str r2, [r0]
+ cmp r3, 0
+ beq _08113C9C
+ cmp r3, 0x1
+ beq _08113CC6
+ b _08113CF4
+ .align 2, 0
+_08113C60: .4byte 0x02014800
+_08113C64: .4byte 0x000018c4
+_08113C68: .4byte 0x000020c4
+_08113C6C: .4byte 0x02014844
+_08113C70: .4byte 0x020158c4
+_08113C74: .4byte 0x020170c4
+_08113C78: .4byte 0x000008c4
+_08113C7C: .4byte 0x000030c4
+_08113C80: .4byte 0x000038c4
+_08113C84: .4byte 0x000060c4
+_08113C88: .4byte 0x000070c4
+_08113C8C: .4byte 0x000080c4
+_08113C90: .4byte 0x000090c4
+_08113C94: .4byte 0x0000a0c4
+_08113C98: .4byte 0x020188c4
+_08113C9C:
+ movs r0, 0x1
+ ands r0, r6
+ cmp r0, 0
+ beq _08113CAA
+ cmp r0, 0x1
+ beq _08113CB0
+ b _08113CF4
+_08113CAA:
+ ldrb r1, [r2]
+ movs r0, 0xF
+ b _08113CB4
+_08113CB0:
+ ldrb r1, [r2]
+ movs r0, 0xF0
+_08113CB4:
+ ands r0, r1
+ cmp r0, 0
+ beq _08113CF4
+ ldrb r0, [r4]
+ adds r0, r5
+ add r0, r12
+ strb r6, [r0]
+ movs r3, 0x1
+ b _08113CF4
+_08113CC6:
+ adds r0, r6, 0
+ ands r0, r3
+ cmp r0, 0
+ beq _08113CD4
+ cmp r0, 0x1
+ beq _08113CDA
+ b _08113CF4
+_08113CD4:
+ ldrb r1, [r2]
+ movs r0, 0xF
+ b _08113CDE
+_08113CDA:
+ ldrb r1, [r2]
+ movs r0, 0xF0
+_08113CDE:
+ ands r0, r1
+ cmp r0, 0
+ bne _08113CF4
+ ldrb r0, [r4]
+ adds r0, r5
+ add r0, r9
+ strb r7, [r0]
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+ movs r3, 0
+_08113CF4:
+ adds r0, r6, 0x1
+ movs r1, 0x7
+ ands r0, r1
+ cmp r0, 0
+ bne _08113D02
+ adds r2, 0x1D
+ b _08113D0C
+_08113D02:
+ movs r0, 0x1
+ ands r0, r6
+ cmp r0, 0
+ beq _08113D0C
+ adds r2, 0x1
+_08113D0C:
+ adds r7, 0x1
+ adds r6, 0x1
+ cmp r6, 0x3F
+ ble _08113C4A
+ cmp r3, 0
+ beq _08113D26
+ ldrb r0, [r4]
+ adds r0, r5
+ add r0, r9
+ strb r6, [r0]
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+_08113D26:
+ movs r0, 0x7
+ ldr r2, [sp, 0x30]
+ ands r2, r0
+ cmp r2, 0
+ bne _08113D36
+ movs r3, 0xE4
+ add r8, r3
+ b _08113D3A
+_08113D36:
+ movs r0, 0x4
+ add r8, r0
+_08113D3A:
+ adds r5, 0x20
+ adds r4, 0x1
+ ldr r1, [sp, 0x8]
+ adds r1, 0x1
+ str r1, [sp, 0x8]
+ cmp r1, 0x3F
+ bgt _08113D4A
+ b _08113C32
+_08113D4A:
+ movs r2, 0
+ mov r8, r2
+ movs r3, 0
+ str r3, [sp, 0x8]
+ ldr r0, _08113D84 @ =0x02014844
+ movs r4, 0x82
+ lsls r4, 6
+ adds r4, r0
+ mov r10, r4
+ movs r5, 0xA2
+ lsls r5, 6
+ adds r7, r0, r5
+ movs r5, 0
+ adds r4, r0, 0
+ movs r0, 0x1
+ mov r9, r0
+_08113D6A:
+ movs r3, 0
+ ldr r2, [sp, 0x4]
+ add r2, r8
+ movs r6, 0
+ ldr r1, [sp, 0x8]
+ adds r1, 0x1
+ str r1, [sp, 0x30]
+_08113D78:
+ cmp r3, 0
+ beq _08113D88
+ cmp r3, 0x1
+ beq _08113DB4
+ b _08113DE4
+ .align 2, 0
+_08113D84: .4byte 0x02014844
+_08113D88:
+ adds r0, r6, 0
+ mov r1, r9
+ ands r0, r1
+ cmp r0, 0
+ beq _08113D98
+ cmp r0, 0x1
+ beq _08113D9E
+ b _08113DE4
+_08113D98:
+ ldrb r1, [r2]
+ movs r0, 0xF
+ b _08113DA2
+_08113D9E:
+ ldrb r1, [r2]
+ movs r0, 0xF0
+_08113DA2:
+ ands r0, r1
+ cmp r0, 0
+ beq _08113DE4
+ ldrb r0, [r4]
+ adds r0, r5
+ add r0, r10
+ strb r6, [r0]
+ movs r3, 0x1
+ b _08113DE4
+_08113DB4:
+ adds r0, r6, 0
+ ands r0, r3
+ cmp r0, 0
+ beq _08113DC2
+ cmp r0, 0x1
+ beq _08113DC8
+ b _08113DE4
+_08113DC2:
+ ldrb r1, [r2]
+ movs r0, 0xF
+ b _08113DCC
+_08113DC8:
+ ldrb r1, [r2]
+ movs r0, 0xF0
+_08113DCC:
+ ands r0, r1
+ cmp r0, 0
+ bne _08113DE4
+ ldrb r0, [r4]
+ adds r0, r5
+ adds r0, r7
+ subs r1, r6, 0x1
+ strb r1, [r0]
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+ movs r3, 0
+_08113DE4:
+ adds r1, r6, 0x1
+ movs r0, 0x7
+ ands r0, r1
+ cmp r0, 0
+ bne _08113DF2
+ adds r2, 0x1D
+ b _08113DFC
+_08113DF2:
+ mov r0, r9
+ ands r6, r0
+ cmp r6, 0
+ beq _08113DFC
+ adds r2, 0x1
+_08113DFC:
+ adds r6, r1, 0
+ cmp r6, 0x3F
+ ble _08113D78
+ cmp r3, 0
+ beq _08113E14
+ ldrb r0, [r4]
+ adds r0, r5
+ adds r0, r7
+ strb r6, [r0]
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+_08113E14:
+ movs r0, 0x7
+ ldr r1, [sp, 0x30]
+ ands r1, r0
+ cmp r1, 0
+ bne _08113E24
+ movs r2, 0xE4
+ add r8, r2
+ b _08113E28
+_08113E24:
+ movs r3, 0x4
+ add r8, r3
+_08113E28:
+ adds r5, 0x20
+ adds r4, 0x1
+ ldr r0, [sp, 0x8]
+ adds r0, 0x1
+ str r0, [sp, 0x8]
+ cmp r0, 0x3F
+ ble _08113D6A
+ movs r1, 0
+ str r1, [sp, 0x8]
+_08113E3A:
+ ldr r3, [sp, 0x8]
+ ldr r4, _08113EBC @ =0x02014804
+ adds r2, r3, r4
+ ldr r5, _08113EC0 @ =0x02014844
+ adds r1, r3, r5
+ ldrb r0, [r2]
+ adds r3, 0x1
+ str r3, [sp, 0x30]
+ ldrb r1, [r1]
+ cmp r0, r1
+ bcc _08113E52
+ b _08113F9E
+_08113E52:
+ movs r0, 0
+ str r0, [sp, 0xC]
+ ldrb r2, [r2]
+ cmp r0, r2
+ bge _08113F54
+ ldr r0, _08113EC4 @ =0x02014800
+ adds r0, 0x4
+ ldr r1, [sp, 0x8]
+ adds r0, r1, r0
+ str r0, [sp, 0x18]
+_08113E66:
+ movs r2, 0x80
+ lsls r2, 1
+ str r2, [sp, 0x14]
+ movs r6, 0
+ ldr r3, [sp, 0x8]
+ ldr r4, _08113EC0 @ =0x02014844
+ adds r0, r3, r4
+ ldr r5, [sp, 0xC]
+ adds r5, 0x1
+ str r5, [sp, 0x34]
+ ldrb r0, [r0]
+ cmp r6, r0
+ bge _08113F3E
+ ldr r0, _08113EC4 @ =0x02014800
+ mov r10, r0
+ lsls r0, r3, 5
+ ldr r2, [sp, 0xC]
+ adds r1, r2, r0
+ mov r9, r0
+ ldr r0, _08113EC4 @ =0x02014800
+ adds r0, 0xC4
+ mov r3, r9
+ adds r7, r3, r0
+ mov r5, r9
+ ldr r4, _08113EC4 @ =0x02014800
+ ldr r2, _08113EC8 @ =0x000010c4
+ adds r0, r4, r2
+ adds r1, r0
+ mov r8, r1
+ ldrb r3, [r1]
+ str r3, [sp, 0x1C]
+_08113EA4:
+ ldr r0, _08113ECC @ =0x000020c4
+ add r0, r10
+ adds r0, r5, r0
+ ldr r4, [sp, 0x1C]
+ ldrb r1, [r0]
+ cmp r4, r1
+ bls _08113ED0
+ mov r2, r8
+ ldrb r1, [r2]
+ ldrb r0, [r0]
+ b _08113ED6
+ .align 2, 0
+_08113EBC: .4byte 0x02014804
+_08113EC0: .4byte 0x02014844
+_08113EC4: .4byte 0x02014800
+_08113EC8: .4byte 0x000010c4
+_08113ECC: .4byte 0x000020c4
+_08113ED0:
+ ldrb r1, [r0]
+ mov r3, r8
+ ldrb r0, [r3]
+_08113ED6:
+ subs r3, r1, r0
+ ldr r1, [sp, 0xC]
+ add r1, r9
+ ldr r0, _08113EFC @ =0x000018c4
+ add r0, r10
+ adds r4, r1, r0
+ ldr r0, _08113F00 @ =0x000028c4
+ add r0, r10
+ adds r2, r5, r0
+ ldrb r0, [r4]
+ ldr r1, _08113F04 @ =0x02014800
+ mov r12, r1
+ ldrb r1, [r2]
+ cmp r0, r1
+ bls _08113F08
+ adds r1, r0, 0
+ ldrb r0, [r2]
+ b _08113F0C
+ .align 2, 0
+_08113EFC: .4byte 0x000018c4
+_08113F00: .4byte 0x000028c4
+_08113F04: .4byte 0x02014800
+_08113F08:
+ ldrb r1, [r2]
+ ldrb r0, [r4]
+_08113F0C:
+ subs r1, r0
+ adds r3, r1
+ ldr r2, [sp, 0x14]
+ cmp r2, r3
+ ble _08113F2C
+ ldrb r0, [r7]
+ cmp r0, 0
+ bne _08113F2C
+ ldr r0, _08114050 @ =0x000008c4
+ add r0, r12
+ adds r0, r5, r0
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08113F2C
+ str r6, [sp, 0x10]
+ str r3, [sp, 0x14]
+_08113F2C:
+ adds r7, 0x1
+ adds r5, 0x1
+ adds r6, 0x1
+ ldr r3, [sp, 0x8]
+ ldr r4, _08114054 @ =0x02014844
+ adds r0, r3, r4
+ ldrb r0, [r0]
+ cmp r6, r0
+ blt _08113EA4
+_08113F3E:
+ ldr r0, [sp, 0xC]
+ ldr r1, [sp, 0x10]
+ ldr r2, [sp, 0x8]
+ bl sub_81141F0
+ ldr r5, [sp, 0x34]
+ str r5, [sp, 0xC]
+ ldr r0, [sp, 0x18]
+ ldrb r0, [r0]
+ cmp r5, r0
+ blt _08113E66
+_08113F54:
+ movs r6, 0
+ ldr r2, _08114058 @ =0x02014800
+ ldr r1, [sp, 0x8]
+ ldr r3, _08114054 @ =0x02014844
+ adds r0, r1, r3
+ adds r4, r2, 0
+ mov r12, r4
+ ldrb r0, [r0]
+ cmp r6, r0
+ bge _08113F9E
+ mov r0, r12
+ adds r0, 0x44
+ adds r4, r1, r0
+_08113F6E:
+ ldr r5, [sp, 0x8]
+ lsls r0, r5, 5
+ adds r1, r6, r0
+ adds r0, r2, 0
+ adds r0, 0xC4
+ adds r0, r1, r0
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08113F94
+ ldr r3, _08114050 @ =0x000008c4
+ adds r0, r2, r3
+ adds r0, r1, r0
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08113F94
+ adds r0, r6, 0
+ adds r1, r5, 0
+ bl sub_811430C
+_08113F94:
+ adds r6, 0x1
+ ldr r2, _08114058 @ =0x02014800
+ ldrb r5, [r4]
+ cmp r6, r5
+ blt _08113F6E
+_08113F9E:
+ ldr r0, [sp, 0x8]
+ ldr r1, _0811405C @ =0x02014804
+ adds r2, r0, r1
+ ldr r3, _08114054 @ =0x02014844
+ adds r1, r0, r3
+ ldrb r0, [r2]
+ ldrb r1, [r1]
+ cmp r0, r1
+ bne _08113FCC
+ movs r6, 0
+ ldrb r4, [r2]
+ cmp r6, r4
+ bge _08113FCC
+ adds r4, r2, 0
+_08113FBA:
+ adds r0, r6, 0
+ adds r1, r6, 0
+ ldr r2, [sp, 0x8]
+ bl sub_81141F0
+ adds r6, 0x1
+ ldrb r5, [r4]
+ cmp r6, r5
+ blt _08113FBA
+_08113FCC:
+ ldr r0, [sp, 0x8]
+ ldr r1, _0811405C @ =0x02014804
+ adds r2, r0, r1
+ ldr r3, _08114054 @ =0x02014844
+ adds r1, r0, r3
+ ldrb r0, [r2]
+ ldr r4, _08114058 @ =0x02014800
+ ldrb r5, [r1]
+ cmp r0, r5
+ bhi _08113FE2
+ b _081141C4
+_08113FE2:
+ movs r0, 0
+ str r0, [sp, 0x10]
+ ldrb r1, [r1]
+ cmp r0, r1
+ blt _08113FEE
+ b _08114104
+_08113FEE:
+ str r2, [sp, 0x2C]
+ ldr r1, [sp, 0x8]
+ lsls r1, 5
+ mov r9, r1
+ adds r0, r4, 0
+ adds r0, 0x44
+ ldr r2, [sp, 0x8]
+ adds r0, r2, r0
+ str r0, [sp, 0x20]
+ mov r3, r9
+ str r3, [sp, 0x24]
+_08114004:
+ movs r4, 0x80
+ lsls r4, 1
+ str r4, [sp, 0x14]
+ movs r6, 0
+ ldr r5, [sp, 0x10]
+ adds r5, 0x1
+ str r5, [sp, 0x38]
+ ldr r0, [sp, 0x2C]
+ ldrb r0, [r0]
+ cmp r6, r0
+ bge _081140C4
+ ldr r1, [sp, 0x10]
+ ldr r2, [sp, 0x24]
+ adds r1, r2
+ mov r10, r1
+ ldr r0, _08114058 @ =0x02014800
+ adds r0, 0xC4
+ adds r2, r0
+ mov r8, r2
+ ldr r7, [sp, 0x24]
+ ldr r3, _08114058 @ =0x02014800
+ ldr r4, _08114060 @ =0x000010c4
+ adds r0, r3, r4
+ adds r5, r7, r0
+ ldr r0, _08114064 @ =0x020168c4
+ add r0, r10
+ mov r12, r0
+ ldrb r1, [r0]
+ str r1, [sp, 0x28]
+_0811403E:
+ ldrb r0, [r5]
+ ldr r2, [sp, 0x28]
+ cmp r0, r2
+ bls _08114068
+ adds r1, r0, 0
+ mov r3, r12
+ ldrb r0, [r3]
+ b _0811406E
+ .align 2, 0
+_08114050: .4byte 0x000008c4
+_08114054: .4byte 0x02014844
+_08114058: .4byte 0x02014800
+_0811405C: .4byte 0x02014804
+_08114060: .4byte 0x000010c4
+_08114064: .4byte 0x020168c4
+_08114068:
+ mov r4, r12
+ ldrb r1, [r4]
+ ldrb r0, [r5]
+_0811406E:
+ subs r3, r1, r0
+ ldr r1, _0811408C @ =0x02014800
+ ldr r2, _08114090 @ =0x000018c4
+ adds r0, r1, r2
+ adds r4, r7, r0
+ ldr r2, _08114094 @ =0x020170c4
+ add r2, r10
+ ldrb r0, [r4]
+ ldrb r1, [r2]
+ cmp r0, r1
+ bls _08114098
+ adds r1, r0, 0
+ ldrb r0, [r2]
+ b _0811409C
+ .align 2, 0
+_0811408C: .4byte 0x02014800
+_08114090: .4byte 0x000018c4
+_08114094: .4byte 0x020170c4
+_08114098:
+ ldrb r1, [r2]
+ ldrb r0, [r4]
+_0811409C:
+ subs r1, r0
+ adds r3, r1
+ ldr r2, [sp, 0x14]
+ cmp r2, r3
+ ble _081140B2
+ mov r4, r8
+ ldrb r0, [r4]
+ cmp r0, 0
+ bne _081140B2
+ str r6, [sp, 0xC]
+ str r3, [sp, 0x14]
+_081140B2:
+ movs r0, 0x1
+ add r8, r0
+ adds r7, 0x1
+ adds r5, 0x1
+ adds r6, 0x1
+ ldr r1, [sp, 0x2C]
+ ldrb r1, [r1]
+ cmp r6, r1
+ blt _0811403E
+_081140C4:
+ ldr r3, [sp, 0xC]
+ add r3, r9
+ ldr r2, _08114164 @ =0x02014800
+ ldr r4, _08114168 @ =0x000030c4
+ adds r1, r2, r4
+ adds r1, r3, r1
+ ldr r2, [sp, 0x10]
+ add r2, r9
+ ldr r5, _0811416C @ =0x020168c4
+ adds r0, r2, r5
+ ldrb r0, [r0]
+ strb r0, [r1]
+ ldr r0, _08114164 @ =0x02014800
+ ldr r4, _08114170 @ =0x000038c4
+ adds r1, r0, r4
+ adds r1, r3, r1
+ ldr r5, _08114174 @ =0x020170c4
+ adds r2, r5
+ ldrb r0, [r2]
+ strb r0, [r1]
+ ldr r0, _08114164 @ =0x02014800
+ adds r0, 0xC4
+ adds r3, r0
+ movs r0, 0x1
+ strb r0, [r3]
+ ldr r0, [sp, 0x38]
+ str r0, [sp, 0x10]
+ ldr r1, [sp, 0x20]
+ ldrb r1, [r1]
+ cmp r0, r1
+ bge _08114104
+ b _08114004
+_08114104:
+ movs r6, 0
+ ldr r4, _08114164 @ =0x02014800
+ ldr r2, [sp, 0x8]
+ ldr r3, _08114178 @ =0x02014804
+ adds r0, r2, r3
+ ldrb r0, [r0]
+ cmp r6, r0
+ bge _081141C4
+ adds r7, r4, 0
+ mov r9, r6
+ movs r5, 0xC4
+ adds r5, r7
+ mov r8, r5
+_0811411E:
+ ldr r1, [sp, 0x8]
+ lsls r0, r1, 5
+ adds r2, r6, r0
+ ldr r3, _0811417C @ =0x000020c4
+ adds r0, r7, r3
+ adds r0, r2
+ mov r10, r0
+ ldr r5, _08114168 @ =0x000030c4
+ adds r0, r7, r5
+ adds r0, r2, r0
+ ldrb r0, [r0]
+ mov r1, r10
+ strb r0, [r1]
+ ldr r3, _08114180 @ =0x000028c4
+ adds r0, r7, r3
+ adds r3, r2, r0
+ ldr r5, _08114170 @ =0x000038c4
+ adds r0, r7, r5
+ adds r0, r2, r0
+ ldrb r0, [r0]
+ strb r0, [r3]
+ mov r0, r8
+ adds r1, r2, r0
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _08114184
+ mov r2, r9
+ strb r2, [r1]
+ adds r0, r6, 0
+ adds r1, r6, 0
+ ldr r2, [sp, 0x8]
+ bl sub_81141F0
+ b _081141B4
+ .align 2, 0
+_08114164: .4byte 0x02014800
+_08114168: .4byte 0x000030c4
+_0811416C: .4byte 0x020168c4
+_08114170: .4byte 0x000038c4
+_08114174: .4byte 0x020170c4
+_08114178: .4byte 0x02014804
+_0811417C: .4byte 0x000020c4
+_08114180: .4byte 0x000028c4
+_08114184:
+ ldr r5, _081141E0 @ =0x000010c4
+ adds r1, r4, r5
+ adds r1, r2, r1
+ ldr r5, _081141E4 @ =0x000018c4
+ adds r0, r4, r5
+ adds r0, r2, r0
+ ldrb r0, [r0]
+ ldrb r2, [r1]
+ subs r0, r2
+ lsrs r1, r0, 31
+ adds r0, r1
+ asrs r0, 1
+ adds r2, r0
+ strb r2, [r3]
+ mov r0, r10
+ strb r2, [r0]
+ ldrb r0, [r3]
+ subs r0, 0x1
+ strb r0, [r3]
+ adds r0, r6, 0
+ adds r1, r6, 0
+ ldr r2, [sp, 0x8]
+ bl sub_81141F0
+_081141B4:
+ adds r6, 0x1
+ ldr r4, _081141E8 @ =0x02014800
+ ldr r1, [sp, 0x8]
+ ldr r2, _081141EC @ =0x02014804
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r6, r0
+ blt _0811411E
+_081141C4:
+ ldr r3, [sp, 0x30]
+ str r3, [sp, 0x8]
+ cmp r3, 0x3F
+ bgt _081141CE
+ b _08113E3A
+_081141CE:
+ add sp, 0x3C
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081141E0: .4byte 0x000010c4
+_081141E4: .4byte 0x000018c4
+_081141E8: .4byte 0x02014800
+_081141EC: .4byte 0x02014804
+ thumb_func_end unref_sub_8113B50
+
+ thumb_func_start sub_81141F0
+sub_81141F0: @ 81141F0
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ adds r6, r0, 0
+ mov r8, r1
+ mov r9, r2
+ ldr r3, _0811424C @ =0x02014800
+ lsls r1, r2, 5
+ mov r0, r8
+ adds r4, r0, r1
+ ldr r5, _08114250 @ =0x000030c4
+ adds r2, r3, r5
+ adds r2, r4, r2
+ adds r1, r6, r1
+ ldr r7, _08114254 @ =0x000010c4
+ adds r0, r3, r7
+ adds r5, r1, r0
+ ldrb r0, [r5]
+ strb r0, [r2]
+ ldr r0, _08114258 @ =0x000038c4
+ adds r2, r3, r0
+ adds r2, r4, r2
+ ldr r7, _0811425C @ =0x000018c4
+ adds r0, r3, r7
+ adds r1, r0
+ ldrb r0, [r1]
+ strb r0, [r2]
+ movs r7, 0
+ ldr r1, _08114260 @ =0x000020c4
+ adds r0, r3, r1
+ adds r2, r4, r0
+ ldrb r1, [r5]
+ ldrb r0, [r2]
+ mov r12, r3
+ cmp r1, r0
+ bcs _08114264
+ mov r0, r12
+ adds r0, 0xC4
+ adds r0, r4, r0
+ movs r1, 0x4
+ strb r1, [r0]
+ ldrb r1, [r2]
+ ldrb r0, [r5]
+ b _08114276
+ .align 2, 0
+_0811424C: .4byte 0x02014800
+_08114250: .4byte 0x000030c4
+_08114254: .4byte 0x000010c4
+_08114258: .4byte 0x000038c4
+_0811425C: .4byte 0x000018c4
+_08114260: .4byte 0x000020c4
+_08114264:
+ cmp r1, r0
+ bls _08114278
+ mov r0, r12
+ adds r0, 0xC4
+ adds r0, r4, r0
+ movs r1, 0x1
+ strb r1, [r0]
+ ldrb r1, [r5]
+ ldrb r0, [r2]
+_08114276:
+ subs r7, r1, r0
+_08114278:
+ mov r5, r8
+ lsls r3, r5, 1
+ mov r0, r9
+ lsls r4, r0, 6
+ adds r0, r3, r4
+ ldr r1, _081142BC @ =0x000080c4
+ add r1, r12
+ adds r0, r1
+ lsls r1, r7, 4
+ strh r1, [r0]
+ movs r7, 0
+ mov r1, r9
+ lsls r2, r1, 5
+ adds r1, r6, r2
+ ldr r0, _081142C0 @ =0x000018c4
+ add r0, r12
+ adds r6, r1, r0
+ adds r1, r5, r2
+ ldr r0, _081142C4 @ =0x000028c4
+ add r0, r12
+ adds r5, r1, r0
+ ldrb r2, [r6]
+ ldrb r0, [r5]
+ cmp r2, r0
+ bcs _081142CC
+ ldr r0, _081142C8 @ =0x000008c4
+ add r0, r12
+ adds r0, r1, r0
+ movs r1, 0x3
+ strb r1, [r0]
+ ldrb r1, [r5]
+ ldrb r0, [r6]
+ b _081142DE
+ .align 2, 0
+_081142BC: .4byte 0x000080c4
+_081142C0: .4byte 0x000018c4
+_081142C4: .4byte 0x000028c4
+_081142C8: .4byte 0x000008c4
+_081142CC:
+ cmp r2, r0
+ bls _081142E0
+ ldr r0, _08114304 @ =0x000008c4
+ add r0, r12
+ adds r0, r1, r0
+ movs r1, 0x2
+ strb r1, [r0]
+ ldrb r1, [r6]
+ ldrb r0, [r5]
+_081142DE:
+ subs r7, r1, r0
+_081142E0:
+ adds r0, r3, r4
+ ldr r1, _08114308 @ =0x000090c4
+ add r1, r12
+ adds r0, r1
+ lsls r1, r7, 4
+ strh r1, [r0]
+ mov r1, r12
+ adds r1, 0x84
+ add r1, r9
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08114304: .4byte 0x000008c4
+_08114308: .4byte 0x000090c4
+ thumb_func_end sub_81141F0
+
+ thumb_func_start sub_811430C
+sub_811430C: @ 811430C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ ldr r5, _081143AC @ =0x02014800
+ lsls r4, r1, 5
+ adds r4, r0, r4
+ ldr r2, _081143B0 @ =0x000028c4
+ adds r2, r5
+ mov r10, r2
+ add r10, r4
+ mov r3, r10
+ ldrb r2, [r3]
+ ldr r6, _081143B4 @ =0x000020c4
+ adds r6, r5
+ mov r8, r6
+ add r8, r4
+ mov r6, r8
+ ldrb r3, [r6]
+ subs r7, r2, r3
+ ldr r2, _081143B8 @ =0x000030c4
+ adds r6, r5, r2
+ adds r6, r4, r6
+ ldr r2, _081143BC @ =0x000038c4
+ adds r2, r5
+ mov r9, r2
+ add r9, r4
+ lsrs r2, r7, 31
+ adds r2, r7, r2
+ asrs r2, 1
+ adds r3, r2
+ mov r2, r9
+ strb r3, [r2]
+ strb r3, [r6]
+ adds r2, r5, 0
+ adds r2, 0xC4
+ adds r2, r4, r2
+ movs r3, 0x5
+ strb r3, [r2]
+ ldr r3, _081143C0 @ =0x000008c4
+ adds r2, r5, r3
+ adds r4, r2
+ movs r2, 0x7
+ strb r2, [r4]
+ adds r3, r5, 0
+ adds r3, 0x84
+ adds r3, r1, r3
+ ldrb r2, [r3]
+ adds r2, 0x1
+ strb r2, [r3]
+ ldrb r3, [r6]
+ mov r4, r8
+ ldrb r2, [r4]
+ subs r7, r3, r2
+ lsls r0, 1
+ lsls r1, 6
+ adds r0, r1
+ ldr r6, _081143C4 @ =0x000080c4
+ adds r1, r5, r6
+ adds r1, r0, r1
+ lsls r2, r7, 4
+ strh r2, [r1]
+ mov r1, r10
+ ldrb r2, [r1]
+ mov r3, r9
+ ldrb r1, [r3]
+ subs r7, r2, r1
+ ldr r4, _081143C8 @ =0x000090c4
+ adds r5, r4
+ adds r0, r5
+ lsls r1, r7, 4
+ strh r1, [r0]
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081143AC: .4byte 0x02014800
+_081143B0: .4byte 0x000028c4
+_081143B4: .4byte 0x000020c4
+_081143B8: .4byte 0x000030c4
+_081143BC: .4byte 0x000038c4
+_081143C0: .4byte 0x000008c4
+_081143C4: .4byte 0x000080c4
+_081143C8: .4byte 0x000090c4
+ thumb_func_end sub_811430C
+
+ thumb_func_start unref_sub_81143CC
+unref_sub_81143CC: @ 81143CC
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x14
+ movs r0, 0x1
+ str r0, [sp, 0x4]
+ ldr r0, _08114408 @ =0x02014800
+ ldr r2, _0811440C @ =0x0000a0c4
+ adds r1, r0, r2
+ ldrb r3, [r1]
+ adds r4, r0, 0
+ cmp r3, 0
+ beq _081143EE
+ subs r0, r3, 0x1
+ strb r0, [r1]
+_081143EE:
+ movs r5, 0
+ str r5, [sp]
+_081143F2:
+ movs r3, 0
+ adds r2, r4, 0
+ adds r0, r4, 0
+ adds r0, 0x84
+ ldr r1, [sp]
+ adds r0, r1, r0
+ adds r1, 0x1
+ str r1, [sp, 0x8]
+ bl _08114D84
+ .align 2, 0
+_08114408: .4byte 0x02014800
+_0811440C: .4byte 0x0000a0c4
+_08114410:
+ ldr r5, [sp]
+ lsls r0, r5, 5
+ adds r1, r3, r0
+ adds r2, 0xC4
+ adds r1, r2
+ ldrb r2, [r1]
+ mov r8, r0
+ adds r0, r3, 0x1
+ mov r10, r0
+ cmp r2, 0xC
+ bls _08114428
+ b _081148D2
+_08114428:
+ lsls r0, r2, 2
+ ldr r1, _08114434 @ =_08114438
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08114434: .4byte _08114438
+ .align 2, 0
+_08114438:
+ .4byte _081148D2
+ .4byte _0811446C
+ .4byte _081144F0
+ .4byte _0811457C
+ .4byte _08114600
+ .4byte _0811468C
+ .4byte _081146C8
+ .4byte _08114704
+ .4byte _08114740
+ .4byte _0811477C
+ .4byte _081147D0
+ .4byte _08114810
+ .4byte _08114858
+_0811446C:
+ movs r1, 0
+ str r1, [sp, 0x4]
+ lsls r0, r3, 1
+ ldr r2, [sp]
+ lsls r1, r2, 6
+ adds r0, r1
+ ldr r5, _081144E0 @ =0x000060c4
+ adds r2, r4, r5
+ adds r2, r0, r2
+ ldr r5, _081144E4 @ =0x000080c4
+ adds r1, r4, r5
+ adds r0, r1
+ ldrh r1, [r0]
+ ldrh r0, [r2]
+ adds r1, r0
+ movs r0, 0xFF
+ lsls r0, 8
+ ands r0, r1
+ lsrs r5, r0, 8
+ movs r0, 0xFF
+ ands r1, r0
+ strh r1, [r2]
+ movs r6, 0
+ adds r1, r3, 0x1
+ mov r10, r1
+ ldr r2, [sp, 0x4]
+ cmp r2, r5
+ blt _081144A6
+ b _081148D2
+_081144A6:
+ mov r9, r4
+ mov r4, r8
+ adds r7, r3, r4
+ ldr r0, _081144E8 @ =0x000030c4
+ add r0, r9
+ adds r4, r7, r0
+ ldr r0, _081144EC @ =0x000020c4
+ add r0, r9
+ adds r2, r7, r0
+_081144B8:
+ ldrb r0, [r4]
+ subs r0, 0x1
+ strb r0, [r4]
+ ldrb r1, [r4]
+ ldr r0, [sp]
+ str r2, [sp, 0xC]
+ str r3, [sp, 0x10]
+ bl sub_8114DB4
+ ldrb r0, [r4]
+ ldr r2, [sp, 0xC]
+ ldr r3, [sp, 0x10]
+ ldrb r1, [r2]
+ cmp r0, r1
+ bne _081144D8
+ b _081148A0
+_081144D8:
+ adds r6, 0x1
+ cmp r6, r5
+ blt _081144B8
+ b _081148D2
+ .align 2, 0
+_081144E0: .4byte 0x000060c4
+_081144E4: .4byte 0x000080c4
+_081144E8: .4byte 0x000030c4
+_081144EC: .4byte 0x000020c4
+_081144F0:
+ movs r2, 0
+ str r2, [sp, 0x4]
+ ldr r4, _08114568 @ =0x02014800
+ lsls r0, r3, 1
+ ldr r5, [sp]
+ lsls r1, r5, 6
+ adds r0, r1
+ ldr r1, _0811456C @ =0x000060c4
+ adds r2, r4, r1
+ adds r2, r0, r2
+ ldr r5, _08114570 @ =0x000080c4
+ adds r1, r4, r5
+ adds r0, r1
+ ldrh r1, [r0]
+ ldrh r0, [r2]
+ adds r1, r0
+ movs r0, 0xFF
+ lsls r0, 8
+ ands r0, r1
+ lsrs r5, r0, 8
+ movs r0, 0xFF
+ ands r1, r0
+ strh r1, [r2]
+ movs r6, 0
+ adds r1, r3, 0x1
+ mov r10, r1
+ ldr r2, [sp, 0x4]
+ cmp r2, r5
+ blt _0811452C
+ b _081148D2
+_0811452C:
+ mov r9, r4
+ mov r4, r8
+ adds r7, r3, r4
+ ldr r0, _08114574 @ =0x000030c4
+ add r0, r9
+ adds r4, r7, r0
+ ldr r0, _08114578 @ =0x000020c4
+ add r0, r9
+ adds r2, r7, r0
+_0811453E:
+ ldrb r0, [r4]
+ ldrb r1, [r2]
+ cmp r0, r1
+ bne _08114548
+ b _081148B8
+_08114548:
+ adds r1, r0, 0
+ ldr r0, [sp]
+ str r2, [sp, 0xC]
+ str r3, [sp, 0x10]
+ bl sub_8114DF0
+ ldrb r0, [r4]
+ subs r0, 0x1
+ strb r0, [r4]
+ adds r6, 0x1
+ ldr r2, [sp, 0xC]
+ ldr r3, [sp, 0x10]
+ cmp r6, r5
+ blt _0811453E
+ b _081148D2
+ .align 2, 0
+_08114568: .4byte 0x02014800
+_0811456C: .4byte 0x000060c4
+_08114570: .4byte 0x000080c4
+_08114574: .4byte 0x000030c4
+_08114578: .4byte 0x000020c4
+_0811457C:
+ movs r2, 0
+ str r2, [sp, 0x4]
+ lsls r0, r3, 1
+ ldr r5, [sp]
+ lsls r1, r5, 6
+ adds r0, r1
+ ldr r1, _081145F0 @ =0x000060c4
+ adds r2, r4, r1
+ adds r2, r0, r2
+ ldr r5, _081145F4 @ =0x000080c4
+ adds r1, r4, r5
+ adds r0, r1
+ ldrh r1, [r0]
+ ldrh r0, [r2]
+ adds r1, r0
+ movs r0, 0xFF
+ lsls r0, 8
+ ands r0, r1
+ lsrs r5, r0, 8
+ movs r0, 0xFF
+ ands r1, r0
+ strh r1, [r2]
+ movs r6, 0
+ adds r1, r3, 0x1
+ mov r10, r1
+ ldr r2, [sp, 0x4]
+ cmp r2, r5
+ blt _081145B6
+ b _081148D2
+_081145B6:
+ mov r9, r4
+ mov r4, r8
+ adds r7, r3, r4
+ ldr r0, _081145F8 @ =0x000030c4
+ add r0, r9
+ adds r4, r7, r0
+ ldr r0, _081145FC @ =0x000020c4
+ add r0, r9
+ adds r2, r7, r0
+_081145C8:
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+ ldrb r1, [r4]
+ ldr r0, [sp]
+ str r2, [sp, 0xC]
+ str r3, [sp, 0x10]
+ bl sub_8114DB4
+ ldrb r0, [r4]
+ ldr r2, [sp, 0xC]
+ ldr r3, [sp, 0x10]
+ ldrb r1, [r2]
+ cmp r0, r1
+ bne _081145E8
+ b _081148AC
+_081145E8:
+ adds r6, 0x1
+ cmp r6, r5
+ blt _081145C8
+ b _081148D2
+ .align 2, 0
+_081145F0: .4byte 0x000060c4
+_081145F4: .4byte 0x000080c4
+_081145F8: .4byte 0x000030c4
+_081145FC: .4byte 0x000020c4
+_08114600:
+ movs r2, 0
+ str r2, [sp, 0x4]
+ ldr r4, _08114678 @ =0x02014800
+ lsls r0, r3, 1
+ ldr r5, [sp]
+ lsls r1, r5, 6
+ adds r0, r1
+ ldr r1, _0811467C @ =0x000060c4
+ adds r2, r4, r1
+ adds r2, r0, r2
+ ldr r5, _08114680 @ =0x000080c4
+ adds r1, r4, r5
+ adds r0, r1
+ ldrh r1, [r0]
+ ldrh r0, [r2]
+ adds r1, r0
+ movs r0, 0xFF
+ lsls r0, 8
+ ands r0, r1
+ lsrs r5, r0, 8
+ movs r0, 0xFF
+ ands r1, r0
+ strh r1, [r2]
+ movs r6, 0
+ adds r1, r3, 0x1
+ mov r10, r1
+ ldr r2, [sp, 0x4]
+ cmp r2, r5
+ blt _0811463C
+ b _081148D2
+_0811463C:
+ mov r9, r4
+ mov r4, r8
+ adds r7, r3, r4
+ ldr r0, _08114684 @ =0x000030c4
+ add r0, r9
+ adds r4, r7, r0
+ ldr r0, _08114688 @ =0x000020c4
+ add r0, r9
+ adds r2, r7, r0
+_0811464E:
+ ldrb r0, [r4]
+ ldrb r1, [r2]
+ cmp r0, r1
+ bne _08114658
+ b _081148B8
+_08114658:
+ adds r1, r0, 0
+ ldr r0, [sp]
+ str r2, [sp, 0xC]
+ str r3, [sp, 0x10]
+ bl sub_8114DF0
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+ adds r6, 0x1
+ ldr r2, [sp, 0xC]
+ ldr r3, [sp, 0x10]
+ cmp r6, r5
+ blt _0811464E
+ b _081148D2
+ .align 2, 0
+_08114678: .4byte 0x02014800
+_0811467C: .4byte 0x000060c4
+_08114680: .4byte 0x000080c4
+_08114684: .4byte 0x000030c4
+_08114688: .4byte 0x000020c4
+_0811468C:
+ movs r2, 0
+ str r2, [sp, 0x4]
+ ldr r5, _081146C0 @ =0x02014800
+ mov r0, r8
+ adds r4, r3, r0
+ ldr r1, _081146C4 @ =0x000030c4
+ adds r0, r5, r1
+ adds r0, r4, r0
+ ldrb r1, [r0]
+ ldr r0, [sp]
+ str r3, [sp, 0x10]
+ bl sub_8114E48
+ lsls r0, 24
+ ldr r3, [sp, 0x10]
+ adds r2, r3, 0x1
+ mov r10, r2
+ cmp r0, 0
+ bne _081146B4
+ b _081148D2
+_081146B4:
+ adds r0, r5, 0
+ adds r0, 0xC4
+ adds r0, r4, r0
+ movs r1, 0x9
+ strb r1, [r0]
+ b _081148D2
+ .align 2, 0
+_081146C0: .4byte 0x02014800
+_081146C4: .4byte 0x000030c4
+_081146C8:
+ movs r4, 0
+ str r4, [sp, 0x4]
+ ldr r5, _081146FC @ =0x02014800
+ mov r0, r8
+ adds r4, r3, r0
+ ldr r1, _08114700 @ =0x000030c4
+ adds r0, r5, r1
+ adds r0, r4, r0
+ ldrb r1, [r0]
+ ldr r0, [sp]
+ str r3, [sp, 0x10]
+ bl sub_8114E48
+ lsls r0, 24
+ ldr r3, [sp, 0x10]
+ adds r2, r3, 0x1
+ mov r10, r2
+ cmp r0, 0
+ bne _081146F0
+ b _081148D2
+_081146F0:
+ adds r0, r5, 0
+ adds r0, 0xC4
+ adds r0, r4, r0
+ movs r1, 0xA
+ strb r1, [r0]
+ b _081148D2
+ .align 2, 0
+_081146FC: .4byte 0x02014800
+_08114700: .4byte 0x000030c4
+_08114704:
+ movs r4, 0
+ str r4, [sp, 0x4]
+ ldr r5, _08114738 @ =0x02014800
+ mov r0, r8
+ adds r4, r3, r0
+ ldr r1, _0811473C @ =0x000030c4
+ adds r0, r5, r1
+ adds r0, r4, r0
+ ldrb r1, [r0]
+ ldr r0, [sp]
+ str r3, [sp, 0x10]
+ bl sub_8114E48
+ lsls r0, 24
+ ldr r3, [sp, 0x10]
+ adds r2, r3, 0x1
+ mov r10, r2
+ cmp r0, 0
+ bne _0811472C
+ b _081148D2
+_0811472C:
+ adds r0, r5, 0
+ adds r0, 0xC4
+ adds r0, r4, r0
+ movs r1, 0xB
+ strb r1, [r0]
+ b _081148D2
+ .align 2, 0
+_08114738: .4byte 0x02014800
+_0811473C: .4byte 0x000030c4
+_08114740:
+ movs r4, 0
+ str r4, [sp, 0x4]
+ ldr r5, _08114774 @ =0x02014800
+ mov r0, r8
+ adds r4, r3, r0
+ ldr r1, _08114778 @ =0x000030c4
+ adds r0, r5, r1
+ adds r0, r4, r0
+ ldrb r1, [r0]
+ ldr r0, [sp]
+ str r3, [sp, 0x10]
+ bl sub_8114E48
+ lsls r0, 24
+ ldr r3, [sp, 0x10]
+ adds r2, r3, 0x1
+ mov r10, r2
+ cmp r0, 0
+ bne _08114768
+ b _081148D2
+_08114768:
+ adds r0, r5, 0
+ adds r0, 0xC4
+ adds r0, r4, r0
+ movs r1, 0xC
+ strb r1, [r0]
+ b _081148D2
+ .align 2, 0
+_08114774: .4byte 0x02014800
+_08114778: .4byte 0x000030c4
+_0811477C:
+ movs r4, 0
+ str r4, [sp, 0x4]
+ ldr r6, _081147B4 @ =0x02014800
+ mov r0, r8
+ adds r5, r3, r0
+ ldr r1, _081147B8 @ =0x000030c4
+ adds r4, r6, r1
+ adds r4, r5, r4
+ ldrb r1, [r4]
+ ldr r0, [sp]
+ str r3, [sp, 0x10]
+ bl sub_8114DB4
+ ldr r2, _081147BC @ =0x000020c4
+ adds r0, r6, r2
+ adds r0, r5, r0
+ ldrb r1, [r4]
+ ldr r3, [sp, 0x10]
+ ldrb r0, [r0]
+ cmp r1, r0
+ bne _081147C0
+ adds r0, r6, 0
+ adds r0, 0xC4
+ adds r0, r5, r0
+ mov r4, sp
+ ldrb r4, [r4, 0x4]
+ strb r4, [r0]
+ b _08114844
+ .align 2, 0
+_081147B4: .4byte 0x02014800
+_081147B8: .4byte 0x000030c4
+_081147BC: .4byte 0x000020c4
+_081147C0:
+ adds r0, r6, 0
+ adds r0, 0xC4
+ adds r0, r5, r0
+ movs r1, 0x1
+ strb r1, [r0]
+ adds r0, r3, 0x1
+ mov r10, r0
+ b _081148D2
+_081147D0:
+ movs r1, 0
+ str r1, [sp, 0x4]
+ ldr r6, _08114804 @ =0x02014800
+ mov r2, r8
+ adds r5, r3, r2
+ ldr r0, _08114808 @ =0x000030c4
+ adds r4, r6, r0
+ adds r4, r5, r4
+ ldrb r1, [r4]
+ ldr r0, [sp]
+ str r3, [sp, 0x10]
+ bl sub_8114DF0
+ ldr r1, _0811480C @ =0x000020c4
+ adds r0, r6, r1
+ adds r0, r5, r0
+ ldrb r1, [r4]
+ ldr r3, [sp, 0x10]
+ ldrb r0, [r0]
+ cmp r1, r0
+ beq _08114882
+ adds r0, r6, 0
+ adds r0, 0xC4
+ adds r0, r5, r0
+ movs r1, 0x2
+ b _08114842
+ .align 2, 0
+_08114804: .4byte 0x02014800
+_08114808: .4byte 0x000030c4
+_0811480C: .4byte 0x000020c4
+_08114810:
+ movs r0, 0
+ str r0, [sp, 0x4]
+ ldr r6, _0811484C @ =0x02014800
+ mov r1, r8
+ adds r5, r3, r1
+ ldr r2, _08114850 @ =0x000030c4
+ adds r4, r6, r2
+ adds r4, r5, r4
+ ldrb r1, [r4]
+ ldr r0, [sp]
+ str r3, [sp, 0x10]
+ bl sub_8114DB4
+ ldr r1, _08114854 @ =0x000020c4
+ adds r0, r6, r1
+ adds r0, r5, r0
+ ldrb r1, [r4]
+ ldr r3, [sp, 0x10]
+ ldrb r0, [r0]
+ cmp r1, r0
+ beq _08114882
+ adds r0, r6, 0
+ adds r0, 0xC4
+ adds r0, r5, r0
+ movs r1, 0x3
+_08114842:
+ strb r1, [r0]
+_08114844:
+ adds r5, r3, 0x1
+ mov r10, r5
+ b _081148D2
+ .align 2, 0
+_0811484C: .4byte 0x02014800
+_08114850: .4byte 0x000030c4
+_08114854: .4byte 0x000020c4
+_08114858:
+ movs r0, 0
+ str r0, [sp, 0x4]
+ ldr r6, _08114894 @ =0x02014800
+ mov r1, r8
+ adds r5, r3, r1
+ ldr r2, _08114898 @ =0x000030c4
+ adds r4, r6, r2
+ adds r4, r5, r4
+ ldrb r1, [r4]
+ ldr r0, [sp]
+ str r3, [sp, 0x10]
+ bl sub_8114DF0
+ ldr r1, _0811489C @ =0x000020c4
+ adds r0, r6, r1
+ adds r0, r5, r0
+ ldrb r1, [r4]
+ ldr r3, [sp, 0x10]
+ ldrb r0, [r0]
+ cmp r1, r0
+ bne _081148C4
+_08114882:
+ adds r0, r6, 0
+ adds r0, 0xC4
+ adds r0, r5, r0
+ mov r2, sp
+ ldrb r2, [r2, 0x4]
+ strb r2, [r0]
+ adds r4, r3, 0x1
+ mov r10, r4
+ b _081148D2
+ .align 2, 0
+_08114894: .4byte 0x02014800
+_08114898: .4byte 0x000030c4
+_0811489C: .4byte 0x000020c4
+_081148A0:
+ mov r0, r9
+ adds r0, 0xC4
+ adds r0, r7, r0
+ movs r5, 0
+ strb r5, [r0]
+ b _081148D2
+_081148AC:
+ mov r0, r9
+ adds r0, 0xC4
+ adds r0, r7, r0
+ movs r1, 0
+ strb r1, [r0]
+ b _081148D2
+_081148B8:
+ mov r0, r9
+ adds r0, 0xC4
+ adds r0, r7, r0
+ movs r1, 0
+ strb r1, [r0]
+ b _081148D2
+_081148C4:
+ adds r0, r6, 0
+ adds r0, 0xC4
+ adds r0, r5, r0
+ movs r1, 0x4
+ strb r1, [r0]
+ adds r2, r3, 0x1
+ mov r10, r2
+_081148D2:
+ ldr r0, _081148F4 @ =0x02014800
+ mov r4, r8
+ adds r1, r3, r4
+ ldr r5, _081148F8 @ =0x000008c4
+ adds r2, r0, r5
+ adds r1, r2
+ ldrb r1, [r1]
+ adds r4, r0, 0
+ cmp r1, 0xC
+ bls _081148E8
+ b _08114D76
+_081148E8:
+ lsls r0, r1, 2
+ ldr r1, _081148FC @ =_08114900
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_081148F4: .4byte 0x02014800
+_081148F8: .4byte 0x000008c4
+_081148FC: .4byte _08114900
+ .align 2, 0
+_08114900:
+ .4byte _08114D76
+ .4byte _08114934
+ .4byte _081149B8
+ .4byte _08114A3C
+ .4byte _08114AC0
+ .4byte _08114B44
+ .4byte _08114B7C
+ .4byte _08114BB4
+ .4byte _08114BEC
+ .4byte _08114C24
+ .4byte _08114C78
+ .4byte _08114CB8
+ .4byte _08114CF8
+_08114934:
+ movs r0, 0
+ str r0, [sp, 0x4]
+ lsls r0, r3, 1
+ ldr r2, [sp]
+ lsls r1, r2, 6
+ adds r0, r1
+ ldr r5, _081149A8 @ =0x000070c4
+ adds r2, r4, r5
+ adds r2, r0, r2
+ ldr r5, _081149AC @ =0x000090c4
+ adds r1, r4, r5
+ adds r0, r1
+ ldrh r1, [r0]
+ ldrh r0, [r2]
+ adds r1, r0
+ movs r0, 0xFF
+ lsls r0, 8
+ ands r0, r1
+ lsrs r5, r0, 8
+ movs r0, 0xFF
+ ands r1, r0
+ strh r1, [r2]
+ movs r6, 0
+ ldr r1, [sp, 0x4]
+ cmp r1, r5
+ blt _0811496A
+ b _08114D76
+_0811496A:
+ mov r9, r4
+ mov r2, r8
+ adds r7, r3, r2
+ ldr r0, _081149B0 @ =0x000038c4
+ add r0, r9
+ adds r4, r7, r0
+ movs r3, 0
+ ldr r0, _081149B4 @ =0x000028c4
+ add r0, r9
+ adds r2, r7, r0
+_0811497E:
+ ldrb r0, [r4]
+ subs r0, 0x1
+ strb r0, [r4]
+ ldrb r1, [r4]
+ ldr r0, [sp]
+ str r2, [sp, 0xC]
+ str r3, [sp, 0x10]
+ bl sub_8114DB4
+ ldrb r0, [r4]
+ ldr r2, [sp, 0xC]
+ ldr r3, [sp, 0x10]
+ ldrb r1, [r2]
+ cmp r0, r1
+ bne _0811499E
+ b _08114D4C
+_0811499E:
+ adds r6, 0x1
+ cmp r6, r5
+ blt _0811497E
+ b _08114D76
+ .align 2, 0
+_081149A8: .4byte 0x000070c4
+_081149AC: .4byte 0x000090c4
+_081149B0: .4byte 0x000038c4
+_081149B4: .4byte 0x000028c4
+_081149B8:
+ movs r2, 0
+ str r2, [sp, 0x4]
+ ldr r4, _08114A28 @ =0x02014800
+ lsls r0, r3, 1
+ ldr r5, [sp]
+ lsls r1, r5, 6
+ adds r0, r1
+ ldr r1, _08114A2C @ =0x000070c4
+ adds r2, r4, r1
+ adds r2, r0, r2
+ ldr r5, _08114A30 @ =0x000090c4
+ adds r1, r4, r5
+ adds r0, r1
+ ldrh r1, [r0]
+ ldrh r0, [r2]
+ adds r1, r0
+ movs r0, 0xFF
+ lsls r0, 8
+ ands r0, r1
+ lsrs r5, r0, 8
+ movs r0, 0xFF
+ ands r1, r0
+ strh r1, [r2]
+ movs r6, 0
+ ldr r1, [sp, 0x4]
+ cmp r1, r5
+ blt _081149F0
+ b _08114D76
+_081149F0:
+ mov r9, r4
+ mov r2, r8
+ adds r7, r3, r2
+ ldr r0, _08114A34 @ =0x000038c4
+ add r0, r9
+ adds r4, r7, r0
+ ldr r0, _08114A38 @ =0x000028c4
+ add r0, r9
+ adds r2, r7, r0
+_08114A02:
+ ldrb r0, [r4]
+ ldrb r1, [r2]
+ cmp r0, r1
+ bne _08114A0C
+ b _08114D3C
+_08114A0C:
+ adds r1, r0, 0
+ ldr r0, [sp]
+ str r2, [sp, 0xC]
+ bl sub_8114DF0
+ ldrb r0, [r4]
+ subs r0, 0x1
+ strb r0, [r4]
+ adds r6, 0x1
+ ldr r2, [sp, 0xC]
+ cmp r6, r5
+ blt _08114A02
+ b _08114D76
+ .align 2, 0
+_08114A28: .4byte 0x02014800
+_08114A2C: .4byte 0x000070c4
+_08114A30: .4byte 0x000090c4
+_08114A34: .4byte 0x000038c4
+_08114A38: .4byte 0x000028c4
+_08114A3C:
+ movs r2, 0
+ str r2, [sp, 0x4]
+ lsls r0, r3, 1
+ ldr r5, [sp]
+ lsls r1, r5, 6
+ adds r0, r1
+ ldr r1, _08114AB0 @ =0x000070c4
+ adds r2, r4, r1
+ adds r2, r0, r2
+ ldr r5, _08114AB4 @ =0x000090c4
+ adds r1, r4, r5
+ adds r0, r1
+ ldrh r1, [r0]
+ ldrh r0, [r2]
+ adds r1, r0
+ movs r0, 0xFF
+ lsls r0, 8
+ ands r0, r1
+ lsrs r5, r0, 8
+ movs r0, 0xFF
+ ands r1, r0
+ strh r1, [r2]
+ movs r6, 0
+ ldr r1, [sp, 0x4]
+ cmp r1, r5
+ blt _08114A72
+ b _08114D76
+_08114A72:
+ mov r9, r4
+ mov r2, r8
+ adds r7, r3, r2
+ ldr r0, _08114AB8 @ =0x000038c4
+ add r0, r9
+ adds r4, r7, r0
+ movs r3, 0
+ ldr r0, _08114ABC @ =0x000028c4
+ add r0, r9
+ adds r2, r7, r0
+_08114A86:
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+ ldrb r1, [r4]
+ ldr r0, [sp]
+ str r2, [sp, 0xC]
+ str r3, [sp, 0x10]
+ bl sub_8114DB4
+ ldrb r0, [r4]
+ ldr r2, [sp, 0xC]
+ ldr r3, [sp, 0x10]
+ ldrb r1, [r2]
+ cmp r0, r1
+ bne _08114AA6
+ b _08114D4C
+_08114AA6:
+ adds r6, 0x1
+ cmp r6, r5
+ blt _08114A86
+ b _08114D76
+ .align 2, 0
+_08114AB0: .4byte 0x000070c4
+_08114AB4: .4byte 0x000090c4
+_08114AB8: .4byte 0x000038c4
+_08114ABC: .4byte 0x000028c4
+_08114AC0:
+ movs r2, 0
+ str r2, [sp, 0x4]
+ ldr r4, _08114B30 @ =0x02014800
+ lsls r0, r3, 1
+ ldr r5, [sp]
+ lsls r1, r5, 6
+ adds r0, r1
+ ldr r1, _08114B34 @ =0x000070c4
+ adds r2, r4, r1
+ adds r2, r0, r2
+ ldr r5, _08114B38 @ =0x000090c4
+ adds r1, r4, r5
+ adds r0, r1
+ ldrh r1, [r0]
+ ldrh r0, [r2]
+ adds r1, r0
+ movs r0, 0xFF
+ lsls r0, 8
+ ands r0, r1
+ lsrs r5, r0, 8
+ movs r0, 0xFF
+ ands r1, r0
+ strh r1, [r2]
+ movs r6, 0
+ ldr r1, [sp, 0x4]
+ cmp r1, r5
+ blt _08114AF8
+ b _08114D76
+_08114AF8:
+ mov r9, r4
+ mov r2, r8
+ adds r7, r3, r2
+ ldr r0, _08114B3C @ =0x000038c4
+ add r0, r9
+ adds r4, r7, r0
+ ldr r0, _08114B40 @ =0x000028c4
+ add r0, r9
+ adds r2, r7, r0
+_08114B0A:
+ ldrb r0, [r4]
+ ldrb r1, [r2]
+ cmp r0, r1
+ bne _08114B14
+ b _08114D5C
+_08114B14:
+ adds r1, r0, 0
+ ldr r0, [sp]
+ str r2, [sp, 0xC]
+ bl sub_8114DF0
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+ adds r6, 0x1
+ ldr r2, [sp, 0xC]
+ cmp r6, r5
+ blt _08114B0A
+ b _08114D76
+ .align 2, 0
+_08114B30: .4byte 0x02014800
+_08114B34: .4byte 0x000070c4
+_08114B38: .4byte 0x000090c4
+_08114B3C: .4byte 0x000038c4
+_08114B40: .4byte 0x000028c4
+_08114B44:
+ movs r2, 0
+ str r2, [sp, 0x4]
+ ldr r5, _08114B70 @ =0x02014800
+ mov r0, r8
+ adds r4, r3, r0
+ ldr r1, _08114B74 @ =0x000038c4
+ adds r0, r5, r1
+ adds r0, r4, r0
+ ldrb r1, [r0]
+ ldr r0, [sp]
+ bl sub_8114E48
+ lsls r0, 24
+ cmp r0, 0
+ bne _08114B64
+ b _08114D76
+_08114B64:
+ ldr r2, _08114B78 @ =0x000008c4
+ adds r0, r5, r2
+ adds r0, r4, r0
+ movs r1, 0x9
+ b _08114D74
+ .align 2, 0
+_08114B70: .4byte 0x02014800
+_08114B74: .4byte 0x000038c4
+_08114B78: .4byte 0x000008c4
+_08114B7C:
+ movs r4, 0
+ str r4, [sp, 0x4]
+ ldr r5, _08114BA8 @ =0x02014800
+ mov r0, r8
+ adds r4, r3, r0
+ ldr r1, _08114BAC @ =0x000038c4
+ adds r0, r5, r1
+ adds r0, r4, r0
+ ldrb r1, [r0]
+ ldr r0, [sp]
+ bl sub_8114E48
+ lsls r0, 24
+ cmp r0, 0
+ bne _08114B9C
+ b _08114D76
+_08114B9C:
+ ldr r2, _08114BB0 @ =0x000008c4
+ adds r0, r5, r2
+ adds r0, r4, r0
+ movs r1, 0xA
+ b _08114D74
+ .align 2, 0
+_08114BA8: .4byte 0x02014800
+_08114BAC: .4byte 0x000038c4
+_08114BB0: .4byte 0x000008c4
+_08114BB4:
+ movs r4, 0
+ str r4, [sp, 0x4]
+ ldr r5, _08114BE0 @ =0x02014800
+ mov r0, r8
+ adds r4, r3, r0
+ ldr r1, _08114BE4 @ =0x000038c4
+ adds r0, r5, r1
+ adds r0, r4, r0
+ ldrb r1, [r0]
+ ldr r0, [sp]
+ bl sub_8114E48
+ lsls r0, 24
+ cmp r0, 0
+ bne _08114BD4
+ b _08114D76
+_08114BD4:
+ ldr r2, _08114BE8 @ =0x000008c4
+ adds r0, r5, r2
+ adds r0, r4, r0
+ movs r1, 0xB
+ b _08114D74
+ .align 2, 0
+_08114BE0: .4byte 0x02014800
+_08114BE4: .4byte 0x000038c4
+_08114BE8: .4byte 0x000008c4
+_08114BEC:
+ movs r4, 0
+ str r4, [sp, 0x4]
+ ldr r5, _08114C18 @ =0x02014800
+ mov r0, r8
+ adds r4, r3, r0
+ ldr r1, _08114C1C @ =0x000038c4
+ adds r0, r5, r1
+ adds r0, r4, r0
+ ldrb r1, [r0]
+ ldr r0, [sp]
+ bl sub_8114E48
+ lsls r0, 24
+ cmp r0, 0
+ bne _08114C0C
+ b _08114D76
+_08114C0C:
+ ldr r2, _08114C20 @ =0x000008c4
+ adds r0, r5, r2
+ adds r0, r4, r0
+ movs r1, 0xC
+ b _08114D74
+ .align 2, 0
+_08114C18: .4byte 0x02014800
+_08114C1C: .4byte 0x000038c4
+_08114C20: .4byte 0x000008c4
+_08114C24:
+ movs r4, 0
+ str r4, [sp, 0x4]
+ ldr r6, _08114C58 @ =0x02014800
+ mov r0, r8
+ adds r5, r3, r0
+ ldr r1, _08114C5C @ =0x000038c4
+ adds r4, r6, r1
+ adds r4, r5, r4
+ ldrb r1, [r4]
+ ldr r0, [sp]
+ bl sub_8114DB4
+ ldr r2, _08114C60 @ =0x000028c4
+ adds r0, r6, r2
+ adds r0, r5, r0
+ ldrb r1, [r4]
+ ldrb r0, [r0]
+ cmp r1, r0
+ bne _08114C68
+ ldr r4, _08114C64 @ =0x000008c4
+ adds r0, r6, r4
+ adds r0, r5, r0
+ mov r5, sp
+ ldrb r5, [r5, 0x4]
+ strb r5, [r0]
+ b _08114D76
+ .align 2, 0
+_08114C58: .4byte 0x02014800
+_08114C5C: .4byte 0x000038c4
+_08114C60: .4byte 0x000028c4
+_08114C64: .4byte 0x000008c4
+_08114C68:
+ ldr r1, _08114C74 @ =0x000008c4
+ adds r0, r6, r1
+ adds r0, r5, r0
+ movs r1, 0x1
+ b _08114D74
+ .align 2, 0
+_08114C74: .4byte 0x000008c4
+_08114C78:
+ movs r2, 0
+ str r2, [sp, 0x4]
+ ldr r6, _08114CA8 @ =0x02014800
+ mov r4, r8
+ adds r5, r3, r4
+ ldr r0, _08114CAC @ =0x000038c4
+ adds r4, r6, r0
+ adds r4, r5, r4
+ ldrb r1, [r4]
+ ldr r0, [sp]
+ bl sub_8114DF0
+ ldr r1, _08114CB0 @ =0x000028c4
+ adds r0, r6, r1
+ adds r0, r5, r0
+ ldrb r1, [r4]
+ ldrb r0, [r0]
+ cmp r1, r0
+ beq _08114D1E
+ ldr r1, _08114CB4 @ =0x000008c4
+ adds r0, r6, r1
+ adds r0, r5, r0
+ movs r1, 0x2
+ b _08114D74
+ .align 2, 0
+_08114CA8: .4byte 0x02014800
+_08114CAC: .4byte 0x000038c4
+_08114CB0: .4byte 0x000028c4
+_08114CB4: .4byte 0x000008c4
+_08114CB8:
+ movs r2, 0
+ str r2, [sp, 0x4]
+ ldr r6, _08114CE8 @ =0x02014800
+ mov r4, r8
+ adds r5, r3, r4
+ ldr r0, _08114CEC @ =0x000038c4
+ adds r4, r6, r0
+ adds r4, r5, r4
+ ldrb r1, [r4]
+ ldr r0, [sp]
+ bl sub_8114DB4
+ ldr r1, _08114CF0 @ =0x000028c4
+ adds r0, r6, r1
+ adds r0, r5, r0
+ ldrb r1, [r4]
+ ldrb r0, [r0]
+ cmp r1, r0
+ beq _08114D1E
+ ldr r1, _08114CF4 @ =0x000008c4
+ adds r0, r6, r1
+ adds r0, r5, r0
+ movs r1, 0x3
+ b _08114D74
+ .align 2, 0
+_08114CE8: .4byte 0x02014800
+_08114CEC: .4byte 0x000038c4
+_08114CF0: .4byte 0x000028c4
+_08114CF4: .4byte 0x000008c4
+_08114CF8:
+ movs r2, 0
+ str r2, [sp, 0x4]
+ ldr r6, _08114D2C @ =0x02014800
+ mov r4, r8
+ adds r5, r3, r4
+ ldr r0, _08114D30 @ =0x000038c4
+ adds r4, r6, r0
+ adds r4, r5, r4
+ ldrb r1, [r4]
+ ldr r0, [sp]
+ bl sub_8114DF0
+ ldr r1, _08114D34 @ =0x000028c4
+ adds r0, r6, r1
+ adds r0, r5, r0
+ ldrb r1, [r4]
+ ldrb r0, [r0]
+ cmp r1, r0
+ bne _08114D6C
+_08114D1E:
+ ldr r2, _08114D38 @ =0x000008c4
+ adds r0, r6, r2
+ adds r0, r5, r0
+ mov r4, sp
+ ldrb r4, [r4, 0x4]
+ strb r4, [r0]
+ b _08114D76
+ .align 2, 0
+_08114D2C: .4byte 0x02014800
+_08114D30: .4byte 0x000038c4
+_08114D34: .4byte 0x000028c4
+_08114D38: .4byte 0x000008c4
+_08114D3C:
+ ldr r0, _08114D48 @ =0x000008c4
+ add r0, r9
+ adds r0, r7, r0
+ movs r1, 0
+ b _08114D74
+ .align 2, 0
+_08114D48: .4byte 0x000008c4
+_08114D4C:
+ ldr r0, _08114D58 @ =0x000008c4
+ add r0, r9
+ adds r0, r7, r0
+ strb r3, [r0]
+ b _08114D76
+ .align 2, 0
+_08114D58: .4byte 0x000008c4
+_08114D5C:
+ ldr r0, _08114D68 @ =0x000008c4
+ add r0, r9
+ adds r0, r7, r0
+ movs r1, 0
+ b _08114D74
+ .align 2, 0
+_08114D68: .4byte 0x000008c4
+_08114D6C:
+ ldr r1, _08114DAC @ =0x000008c4
+ adds r0, r6, r1
+ adds r0, r5, r0
+ movs r1, 0x4
+_08114D74:
+ strb r1, [r0]
+_08114D76:
+ mov r3, r10
+ ldr r2, _08114DB0 @ =0x02014800
+ adds r0, r2, 0
+ adds r0, 0x84
+ ldr r4, [sp]
+ adds r0, r4, r0
+ adds r4, r2, 0
+_08114D84:
+ ldrb r0, [r0]
+ cmp r3, r0
+ bge _08114D8E
+ bl _08114410
+_08114D8E:
+ ldr r5, [sp, 0x8]
+ str r5, [sp]
+ cmp r5, 0x3F
+ bgt _08114D9A
+ bl _081143F2
+_08114D9A:
+ ldr r0, [sp, 0x4]
+ add sp, 0x14
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08114DAC: .4byte 0x000008c4
+_08114DB0: .4byte 0x02014800
+ thumb_func_end unref_sub_81143CC
+
+ thumb_func_start sub_8114DB4
+sub_8114DB4: @ 8114DB4
+ push {lr}
+ lsls r1, 24
+ lsrs r3, r1, 24
+ ldr r2, _08114DDC @ =0x02014800
+ lsrs r1, 25
+ lsls r1, 2
+ lsls r0, 7
+ adds r1, r0
+ ldr r0, _08114DE0 @ =0x000040c4
+ adds r2, r0
+ adds r1, r2
+ ldr r2, [r1]
+ movs r0, 0x1
+ ands r3, r0
+ cmp r3, 0
+ beq _08114DE4
+ ldrb r0, [r2]
+ movs r1, 0xF0
+ b _08114DE8
+ .align 2, 0
+_08114DDC: .4byte 0x02014800
+_08114DE0: .4byte 0x000040c4
+_08114DE4:
+ ldrb r0, [r2]
+ movs r1, 0xF
+_08114DE8:
+ orrs r0, r1
+ strb r0, [r2]
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8114DB4
+
+ thumb_func_start sub_8114DF0
+sub_8114DF0: @ 8114DF0
+ push {lr}
+ lsls r1, 24
+ lsrs r3, r1, 24
+ ldr r2, _08114E28 @ =0x02014800
+ lsrs r1, 25
+ lsls r1, 2
+ lsls r0, 7
+ adds r1, r0
+ ldr r0, _08114E2C @ =0x000040c4
+ adds r2, r0
+ adds r1, r2
+ ldr r2, [r1]
+ movs r0, 0xC0
+ lsls r0, 7
+ adds r1, r2, r0
+ movs r0, 0x1
+ ands r3, r0
+ cmp r3, 0
+ beq _08114E30
+ ldrb r1, [r1]
+ movs r0, 0xF0
+ ands r0, r1
+ cmp r0, 0
+ bne _08114E42
+ ldrb r1, [r2]
+ movs r0, 0xF
+ b _08114E3E
+ .align 2, 0
+_08114E28: .4byte 0x02014800
+_08114E2C: .4byte 0x000040c4
+_08114E30:
+ ldrb r1, [r1]
+ movs r0, 0xF
+ ands r0, r1
+ cmp r0, 0
+ bne _08114E42
+ ldrb r1, [r2]
+ movs r0, 0xF0
+_08114E3E:
+ ands r0, r1
+ strb r0, [r2]
+_08114E42:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8114DF0
+
+ thumb_func_start sub_8114E48
+sub_8114E48: @ 8114E48
+ push {r4-r7,lr}
+ adds r4, r0, 0
+ lsls r1, 24
+ lsrs r6, r1, 24
+ ldr r1, _08114E6C @ =0x02014800
+ ldr r2, _08114E70 @ =0x0000a0c4
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ adds r5, r1, 0
+ cmp r0, 0
+ bne _08114E60
+ b _08114F5E
+_08114E60:
+ movs r1, 0
+ movs r3, 0
+ cmp r4, 0
+ bne _08114E74
+ movs r1, 0x1
+ b _08114EA6
+ .align 2, 0
+_08114E6C: .4byte 0x02014800
+_08114E70: .4byte 0x0000a0c4
+_08114E74:
+ subs r0, r4, 0x1
+ lsls r0, 5
+ adds r2, r3, r0
+ adds r0, r5, 0
+ adds r0, 0xC4
+ adds r0, r2, r0
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08114EA6
+ ldr r7, _08114EC4 @ =0x000008c4
+ adds r0, r5, r7
+ adds r0, r2, r0
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08114EA6
+ adds r3, 0x1
+ cmp r3, 0x1F
+ bgt _08114EA6
+ cmp r4, 0
+ bne _08114E74
+ lsls r0, r1, 24
+ movs r1, 0x80
+ lsls r1, 17
+ adds r0, r1
+ lsrs r1, r0, 24
+_08114EA6:
+ cmp r3, 0x20
+ bne _08114EB4
+ lsls r0, r1, 24
+ movs r2, 0x80
+ lsls r2, 17
+ adds r0, r2
+ lsrs r1, r0, 24
+_08114EB4:
+ movs r3, 0
+ cmp r4, 0x3F
+ bne _08114EC8
+ lsls r0, r1, 24
+ movs r7, 0x80
+ lsls r7, 17
+ adds r0, r7
+ b _08114EF8
+ .align 2, 0
+_08114EC4: .4byte 0x000008c4
+_08114EC8:
+ adds r0, r4, 0x1
+ lsls r0, 5
+ adds r2, r3, r0
+ adds r0, r5, 0
+ adds r0, 0xC4
+ adds r0, r2, r0
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08114EFA
+ ldr r7, _08114F64 @ =0x000008c4
+ adds r0, r5, r7
+ adds r0, r2, r0
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08114EFA
+ adds r3, 0x1
+ cmp r3, 0x1F
+ bgt _08114EFA
+ cmp r4, 0x3F
+ bne _08114EC8
+ lsls r0, r1, 24
+ movs r1, 0x80
+ lsls r1, 17
+ adds r0, r1
+_08114EF8:
+ lsrs r1, r0, 24
+_08114EFA:
+ cmp r3, 0x20
+ bne _08114F08
+ lsls r0, r1, 24
+ movs r2, 0x80
+ lsls r2, 17
+ adds r0, r2
+ lsrs r1, r0, 24
+_08114F08:
+ cmp r1, 0x2
+ beq _08114F5E
+ subs r0, r6, 0x2
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r0, 0
+ bge _08114F18
+ movs r1, 0
+_08114F18:
+ adds r0, r6, 0x2
+ lsls r0, 24
+ lsrs r2, r0, 24
+ asrs r0, 24
+ cmp r0, 0x3F
+ ble _08114F26
+ movs r2, 0x3F
+_08114F26:
+ lsls r1, 24
+ asrs r3, r1, 24
+ lsls r0, r2, 24
+ asrs r2, r0, 24
+ adds r6, r1, 0
+ adds r7, r0, 0
+ cmp r3, r2
+ bge _08114F7C
+ cmp r4, 0
+ beq _08114F7C
+ subs r0, r4, 0x1
+ lsls r5, r0, 7
+ ldr r0, _08114F68 @ =0x020188c4
+ mov r12, r0
+_08114F42:
+ asrs r0, r3, 1
+ lsls r0, 2
+ adds r0, r5
+ add r0, r12
+ ldr r1, [r0]
+ movs r0, 0x1
+ ands r0, r3
+ cmp r0, 0
+ beq _08114F6C
+ ldrb r1, [r1]
+ movs r0, 0xF0
+_08114F58:
+ ands r0, r1
+ cmp r0, 0
+ beq _08114F72
+_08114F5E:
+ movs r0, 0x1
+ b _08114FCA
+ .align 2, 0
+_08114F64: .4byte 0x000008c4
+_08114F68: .4byte 0x020188c4
+_08114F6C:
+ ldrb r1, [r1]
+ movs r0, 0xF
+ b _08114F58
+_08114F72:
+ adds r3, 0x1
+ cmp r3, r2
+ bge _08114F7C
+ cmp r4, 0
+ bne _08114F42
+_08114F7C:
+ asrs r3, r6, 24
+ asrs r1, r7, 24
+ cmp r3, r1
+ bge _08114FC8
+ cmp r4, 0x3F
+ beq _08114FC8
+ adds r0, r4, 0x1
+ lsls r5, r0, 7
+ ldr r6, _08114FB0 @ =0x020188c4
+ adds r2, r1, 0
+_08114F90:
+ asrs r0, r3, 1
+ lsls r0, 2
+ adds r0, r5
+ adds r0, r6
+ ldr r1, [r0]
+ movs r0, 0x1
+ ands r0, r3
+ cmp r0, 0
+ beq _08114FB4
+ ldrb r1, [r1]
+ movs r0, 0xF0
+ ands r0, r1
+ cmp r0, 0
+ beq _08114FBE
+ b _08114F5E
+ .align 2, 0
+_08114FB0: .4byte 0x020188c4
+_08114FB4:
+ ldrb r1, [r1]
+ movs r0, 0xF
+ ands r0, r1
+ cmp r0, 0
+ bne _08114F5E
+_08114FBE:
+ adds r3, 0x1
+ cmp r3, r2
+ bge _08114FC8
+ cmp r4, 0x3F
+ bne _08114F90
+_08114FC8:
+ movs r0, 0
+_08114FCA:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8114E48
+
+ thumb_func_start nullsub_73
+nullsub_73: @ 8114FD0
+ bx lr
+ thumb_func_end nullsub_73
+
+ thumb_func_start sub_8114FD4
+sub_8114FD4: @ 8114FD4
+ push {lr}
+ ldr r1, _08115034 @ =REG_BG0CNT
+ ldr r2, _08115038 @ =0x00009803
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x8
+ ldr r0, _0811503C @ =gUnknown_030042A4
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r0, _08115040 @ =gUnknown_030042A0
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r0, _08115044 @ =gUnknown_030042C0
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r0, _08115048 @ =gUnknown_030041B4
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r0, _0811504C @ =gUnknown_03004288
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r0, _08115050 @ =gUnknown_03004280
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r0, _08115054 @ =gUnknown_030041B0
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r0, _08115058 @ =gUnknown_030041B8
+ ldrh r0, [r0]
+ strh r0, [r1]
+ bl LoadOam
+ bl ProcessSpriteCopyRequests
+ bl TransferPlttBuffer
+ bl sub_8089668
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08115034: .4byte REG_BG0CNT
+_08115038: .4byte 0x00009803
+_0811503C: .4byte gUnknown_030042A4
+_08115040: .4byte gUnknown_030042A0
+_08115044: .4byte gUnknown_030042C0
+_08115048: .4byte gUnknown_030041B4
+_0811504C: .4byte gUnknown_03004288
+_08115050: .4byte gUnknown_03004280
+_08115054: .4byte gUnknown_030041B0
+_08115058: .4byte gUnknown_030041B8
+ thumb_func_end sub_8114FD4
+
+ thumb_func_start sub_811505C
+sub_811505C: @ 811505C
+ push {lr}
+ ldr r1, _081150B4 @ =REG_BG0HOFS
+ ldr r0, _081150B8 @ =gUnknown_030042A4
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r0, _081150BC @ =gUnknown_030042A0
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r0, _081150C0 @ =gUnknown_030042C0
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r0, _081150C4 @ =gUnknown_030041B4
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r0, _081150C8 @ =gUnknown_03004288
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r0, _081150CC @ =gUnknown_03004280
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r0, _081150D0 @ =gUnknown_030041B0
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r0, _081150D4 @ =gUnknown_030041B8
+ ldrh r0, [r0]
+ strh r0, [r1]
+ bl LoadOam
+ bl ProcessSpriteCopyRequests
+ bl TransferPlttBuffer
+ bl sub_8089668
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081150B4: .4byte REG_BG0HOFS
+_081150B8: .4byte gUnknown_030042A4
+_081150BC: .4byte gUnknown_030042A0
+_081150C0: .4byte gUnknown_030042C0
+_081150C4: .4byte gUnknown_030041B4
+_081150C8: .4byte gUnknown_03004288
+_081150CC: .4byte gUnknown_03004280
+_081150D0: .4byte gUnknown_030041B0
+_081150D4: .4byte gUnknown_030041B8
+ thumb_func_end sub_811505C
+
+ thumb_func_start sub_81150D8
+sub_81150D8: @ 81150D8
+ push {lr}
+ ldr r0, _081150F4 @ =gUnknown_02024D1E
+ ldrb r1, [r0, 0x1]
+ lsls r1, 28
+ movs r0, 0x90
+ lsls r0, 23
+ adds r1, r0
+ lsrs r1, 24
+ movs r0, 0xC8
+ bl sub_814A880
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081150F4: .4byte gUnknown_02024D1E
+ thumb_func_end sub_81150D8
+
+ thumb_func_start nullsub_24
+nullsub_24: @ 81150F8
+ bx lr
+ thumb_func_end nullsub_24
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/fldeff_strength.s b/asm/fldeff_strength.s
new file mode 100644
index 000000000..3e811cd88
--- /dev/null
+++ b/asm/fldeff_strength.s
@@ -0,0 +1,152 @@
+ .include "constants/gba_constants.s"
+ .include "constants/species_constants.s"
+ .include "asm/macros.s"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start SetUpFieldMove_Strength
+SetUpFieldMove_Strength: @ 811A99C
+ push {lr}
+ bl sub_81474C8
+ lsls r0, 24
+ cmp r0, 0
+ beq _0811A9D4
+ ldr r1, _0811A9BC @ =gScriptResult
+ ldr r0, _0811A9C0 @ =gUnknown_03005CE0
+ ldrb r0, [r0]
+ strh r0, [r1]
+ ldr r1, _0811A9C4 @ =gUnknown_0300485C
+ ldr r0, _0811A9C8 @ =sub_808AB90
+ str r0, [r1]
+ ldr r1, _0811A9CC @ =gUnknown_03005CE4
+ ldr r0, _0811A9D0 @ =sub_811AA38
+ b _0811A9F8
+ .align 2, 0
+_0811A9BC: .4byte gScriptResult
+_0811A9C0: .4byte gUnknown_03005CE0
+_0811A9C4: .4byte gUnknown_0300485C
+_0811A9C8: .4byte sub_808AB90
+_0811A9CC: .4byte gUnknown_03005CE4
+_0811A9D0: .4byte sub_811AA38
+_0811A9D4:
+ movs r0, 0x57
+ bl npc_before_player_of_type
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _0811A9E6
+ movs r0, 0
+ b _0811A9FC
+_0811A9E6:
+ ldr r1, _0811AA00 @ =gScriptResult
+ ldr r0, _0811AA04 @ =gUnknown_03005CE0
+ ldrb r0, [r0]
+ strh r0, [r1]
+ ldr r1, _0811AA08 @ =gUnknown_0300485C
+ ldr r0, _0811AA0C @ =sub_808AB90
+ str r0, [r1]
+ ldr r1, _0811AA10 @ =gUnknown_03005CE4
+ ldr r0, _0811AA14 @ =sub_811AA18
+_0811A9F8:
+ str r0, [r1]
+ movs r0, 0x1
+_0811A9FC:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0811AA00: .4byte gScriptResult
+_0811AA04: .4byte gUnknown_03005CE0
+_0811AA08: .4byte gUnknown_0300485C
+_0811AA0C: .4byte sub_808AB90
+_0811AA10: .4byte gUnknown_03005CE4
+_0811AA14: .4byte sub_811AA18
+ thumb_func_end SetUpFieldMove_Strength
+
+ thumb_func_start sub_811AA18
+sub_811AA18: @ 811AA18
+ push {lr}
+ ldr r1, _0811AA2C @ =gUnknown_0202FF84
+ ldr r0, _0811AA30 @ =gUnknown_03005CE0
+ ldrb r0, [r0]
+ str r0, [r1]
+ ldr r0, _0811AA34 @ =UseStrengthScript
+ bl ScriptContext1_SetupScript
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811AA2C: .4byte gUnknown_0202FF84
+_0811AA30: .4byte gUnknown_03005CE0
+_0811AA34: .4byte UseStrengthScript
+ thumb_func_end sub_811AA18
+
+ thumb_func_start sub_811AA38
+sub_811AA38: @ 811AA38
+ push {lr}
+ ldr r0, _0811AA4C @ =gUnknown_0202FF84
+ ldr r1, _0811AA50 @ =gUnknown_03005CE0
+ ldrb r1, [r1]
+ str r1, [r0]
+ movs r0, 0x28
+ bl FieldEffectStart
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811AA4C: .4byte gUnknown_0202FF84
+_0811AA50: .4byte gUnknown_03005CE0
+ thumb_func_end sub_811AA38
+
+ thumb_func_start FldEff_UseStrength
+FldEff_UseStrength: @ 811AA54
+ push {lr}
+ bl oei_task_add
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0811AA88 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldr r2, _0811AA8C @ =sub_811AA9C
+ lsrs r0, r2, 16
+ strh r0, [r1, 0x18]
+ strh r2, [r1, 0x1A]
+ ldr r0, _0811AA90 @ =gUnknown_0202FF84
+ ldr r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _0811AA94 @ =gPlayerParty
+ adds r0, r1
+ ldr r1, _0811AA98 @ =gStringVar1
+ bl GetMonNickname
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0811AA88: .4byte gTasks
+_0811AA8C: .4byte sub_811AA9C
+_0811AA90: .4byte gUnknown_0202FF84
+_0811AA94: .4byte gPlayerParty
+_0811AA98: .4byte gStringVar1
+ thumb_func_end FldEff_UseStrength
+
+ thumb_func_start sub_811AA9C
+sub_811AA9C: @ 811AA9C
+ push {lr}
+ bl sub_81474C8
+ lsls r0, 24
+ cmp r0, 0
+ beq _0811AAAE
+ bl sub_8147514
+ b _0811AAB8
+_0811AAAE:
+ movs r0, 0x28
+ bl FieldEffectActiveListRemove
+ bl EnableBothScriptContexts
+_0811AAB8:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_811AA9C
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/landmark.s b/asm/landmark.s
new file mode 100644
index 000000000..7eed817a4
--- /dev/null
+++ b/asm/landmark.s
@@ -0,0 +1,132 @@
+ .include "constants/gba_constants.s"
+ .include "constants/species_constants.s"
+ .include "asm/macros.s"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_811A8CC
+sub_811A8CC: @ 811A8CC
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r2, 24
+ lsrs r5, r2, 24
+ bl sub_811A920
+ adds r4, r0, 0
+ cmp r4, 0
+ bne _0811A8E8
+_0811A8E4:
+ movs r0, 0
+ b _0811A91A
+_0811A8E8:
+ ldr r6, _0811A8EC @ =0x0000ffff
+ b _0811A8FE
+ .align 2, 0
+_0811A8EC: .4byte 0x0000ffff
+_0811A8F0:
+ subs r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+_0811A8F6:
+ adds r4, 0x4
+ ldr r0, [r4]
+ cmp r0, 0
+ beq _0811A8E4
+_0811A8FE:
+ ldr r1, [r4]
+ ldrh r0, [r1, 0x4]
+ cmp r0, r6
+ beq _0811A912
+ bl FlagGet
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0811A8F6
+_0811A912:
+ cmp r5, 0
+ bne _0811A8F0
+ ldr r0, [r4]
+ ldr r0, [r0]
+_0811A91A:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_811A8CC
+
+ thumb_func_start sub_811A920
+sub_811A920: @ 811A920
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ lsls r1, 24
+ lsrs r6, r1, 24
+ movs r2, 0
+ ldr r0, _0811A964 @ =gLandmarkLists
+ ldrb r1, [r0]
+ adds r4, r0, 0
+ cmp r1, 0x58
+ beq _0811A990
+ adds r1, r4, 0
+_0811A938:
+ lsls r0, r2, 3
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, r3
+ bhi _0811A990
+ cmp r0, r3
+ beq _0811A956
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ lsls r0, r2, 3
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x58
+ bne _0811A938
+_0811A956:
+ lsls r0, r2, 3
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x58
+ bne _0811A970
+ b _0811A990
+ .align 2, 0
+_0811A964: .4byte gLandmarkLists
+_0811A968:
+ adds r0, r4, 0x4
+ adds r0, r1, r0
+ ldr r0, [r0]
+ b _0811A992
+_0811A970:
+ cmp r0, r3
+ bne _0811A990
+ ldr r5, _0811A998 @ =gLandmarkLists
+_0811A976:
+ lsls r1, r2, 3
+ adds r0, r1, r5
+ ldrb r0, [r0, 0x1]
+ cmp r0, r6
+ beq _0811A968
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ lsls r0, r2, 3
+ adds r0, r4
+ ldrb r0, [r0]
+ cmp r0, r3
+ beq _0811A976
+_0811A990:
+ movs r0, 0
+_0811A992:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0811A998: .4byte gLandmarkLists
+ thumb_func_end sub_811A920
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/pokedex_area_screen.s b/asm/pokedex_area_screen.s
new file mode 100644
index 000000000..0c52c8580
--- /dev/null
+++ b/asm/pokedex_area_screen.s
@@ -0,0 +1,2371 @@
+ .include "constants/gba_constants.s"
+ .include "constants/species_constants.s"
+ .include "asm/macros.s"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start unref_sub_8110664
+unref_sub_8110664: @ 8110664
+ push {lr}
+ ldr r3, _08110678 @ =0x02000000
+ str r1, [r3, 0x4]
+ str r2, [r3, 0x8]
+ strh r0, [r3, 0xE]
+ ldr r0, _0811067C @ =sub_8110680
+ bl SetMainCallback2
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08110678: .4byte 0x02000000
+_0811067C: .4byte sub_8110680
+ thumb_func_end unref_sub_8110664
+
+ thumb_func_start sub_8110680
+sub_8110680: @ 8110680
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r0, _0811069C @ =gMain
+ ldr r1, _081106A0 @ =0x0000043c
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x7
+ bls _08110692
+ b _081107C0
+_08110692:
+ lsls r0, 2
+ ldr r1, _081106A4 @ =_081106A8
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0811069C: .4byte gMain
+_081106A0: .4byte 0x0000043c
+_081106A4: .4byte _081106A8
+ .align 2, 0
+_081106A8:
+ .4byte _081106C8
+ .4byte _08110720
+ .4byte _08110740
+ .4byte _08110746
+ .4byte _08110752
+ .4byte _08110770
+ .4byte _08110782
+ .4byte _081107A8
+_081106C8:
+ movs r0, 0
+ bl SetVBlankCallback
+ movs r1, 0x80
+ lsls r1, 19
+ movs r2, 0xC4
+ lsls r2, 7
+ adds r0, r2, 0
+ strh r0, [r1]
+ bl ResetPaletteFade
+ bl ResetSpriteData
+ bl ResetTasks
+ bl FreeSpriteTileRanges
+ bl FreeAllSpritePalettes
+ ldr r0, _08110710 @ =REG_BG0HOFS
+ movs r1, 0
+ strh r1, [r0]
+ ldr r2, _08110714 @ =REG_BG0VOFS
+ ldr r3, _08110718 @ =0x0000fff8
+ adds r0, r3, 0
+ strh r0, [r2]
+ ldr r0, _0811071C @ =REG_BG2VOFS
+ strh r1, [r0]
+ subs r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x4
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ b _081107C0
+ .align 2, 0
+_08110710: .4byte REG_BG0HOFS
+_08110714: .4byte REG_BG0VOFS
+_08110718: .4byte 0x0000fff8
+_0811071C: .4byte REG_BG2VOFS
+_08110720:
+ ldr r4, _0811073C @ =0x020006e8
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_80FA8EC
+ movs r0, 0x88
+ lsls r0, 4
+ adds r4, r0
+ adds r0, r4, 0
+ movs r1, 0
+ movs r2, 0x10
+ bl StringFill
+ b _081107C0
+ .align 2, 0
+_0811073C: .4byte 0x020006e8
+_08110740:
+ bl sub_8110824
+ b _081107C0
+_08110746:
+ bl sub_8110838
+ lsls r0, 24
+ cmp r0, 0
+ bne _081107CC
+ b _081107C0
+_08110752:
+ movs r0, 0x1
+ movs r1, 0x1
+ bl sub_80FBCF0
+ movs r1, 0x8
+ negs r1, r1
+ movs r0, 0
+ bl sub_80FB2A4
+ ldr r0, _0811076C @ =sub_81107DC
+ bl SetVBlankCallback
+ b _081107C0
+ .align 2, 0
+_0811076C: .4byte sub_81107DC
+_08110770:
+ movs r0, 0x15
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ b _081107C0
+_08110782:
+ ldr r1, _0811079C @ =REG_BLDCNT
+ ldr r2, _081107A0 @ =0x00003f41
+ adds r0, r2, 0
+ strh r0, [r1]
+ bl sub_8111084
+ movs r1, 0x80
+ lsls r1, 19
+ ldr r3, _081107A4 @ =0x00007741
+ adds r0, r3, 0
+ strh r0, [r1]
+ b _081107C0
+ .align 2, 0
+_0811079C: .4byte REG_BLDCNT
+_081107A0: .4byte 0x00003f41
+_081107A4: .4byte 0x00007741
+_081107A8:
+ ldr r0, _081107B8 @ =sub_8111288
+ bl sub_8110814
+ ldr r0, _081107BC @ =sub_81107F0
+ bl SetMainCallback2
+ b _081107CC
+ .align 2, 0
+_081107B8: .4byte sub_8111288
+_081107BC: .4byte sub_81107F0
+_081107C0:
+ ldr r1, _081107D4 @ =gMain
+ ldr r0, _081107D8 @ =0x0000043c
+ adds r1, r0
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+_081107CC:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081107D4: .4byte gMain
+_081107D8: .4byte 0x0000043c
+ thumb_func_end sub_8110680
+
+ thumb_func_start sub_81107DC
+sub_81107DC: @ 81107DC
+ push {lr}
+ bl LoadOam
+ bl ProcessSpriteCopyRequests
+ bl TransferPlttBuffer
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81107DC
+
+ thumb_func_start sub_81107F0
+sub_81107F0: @ 81107F0
+ push {lr}
+ ldr r0, _08110810 @ =0x02000000
+ ldr r0, [r0]
+ bl _call_via_r0
+ bl sub_8111110
+ bl AnimateSprites
+ bl BuildOamBuffer
+ bl UpdatePaletteFade
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08110810: .4byte 0x02000000
+ thumb_func_end sub_81107F0
+
+ thumb_func_start sub_8110814
+sub_8110814: @ 8110814
+ ldr r1, _08110820 @ =0x02000000
+ str r0, [r1]
+ movs r0, 0
+ strh r0, [r1, 0xC]
+ bx lr
+ .align 2, 0
+_08110820: .4byte 0x02000000
+ thumb_func_end sub_8110814
+
+ thumb_func_start sub_8110824
+sub_8110824: @ 8110824
+ ldr r0, _08110834 @ =0x02000000
+ movs r1, 0x8A
+ lsls r1, 1
+ adds r0, r1
+ movs r1, 0
+ strh r1, [r0]
+ bx lr
+ .align 2, 0
+_08110834: .4byte 0x02000000
+ thumb_func_end sub_8110824
+
+ thumb_func_start sub_8110838
+sub_8110838: @ 8110838
+ push {lr}
+ ldr r1, _08110854 @ =0x02000000
+ movs r2, 0x8A
+ lsls r2, 1
+ adds r0, r1, r2
+ ldrh r0, [r0]
+ adds r2, r1, 0
+ cmp r0, 0x5
+ bhi _081108E4
+ lsls r0, 2
+ ldr r1, _08110858 @ =_0811085C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08110854: .4byte 0x02000000
+_08110858: .4byte _0811085C
+ .align 2, 0
+_0811085C:
+ .4byte _08110874
+ .4byte _08110884
+ .4byte _0811088A
+ .4byte _0811089C
+ .4byte _081108C0
+ .4byte _081108D0
+_08110874:
+ ldr r0, _08110880 @ =0x02000000
+ ldrh r0, [r0, 0xE]
+ bl sub_8110908
+ b _081108F0
+ .align 2, 0
+_08110880: .4byte 0x02000000
+_08110884:
+ bl sub_8110C34
+ b _081108F0
+_0811088A:
+ ldr r0, _08110894 @ =gUnknown_083F8438
+ ldr r1, _08110898 @ =0x0600c000
+ bl LZ77UnCompVram
+ b _081108F0
+ .align 2, 0
+_08110894: .4byte gUnknown_083F8438
+_08110898: .4byte 0x0600c000
+_0811089C:
+ ldr r1, _081108B0 @ =0x040000d4
+ ldr r0, _081108B4 @ =0x02000116
+ str r0, [r1]
+ ldr r0, _081108B8 @ =0x0600f000
+ str r0, [r1, 0x4]
+ ldr r0, _081108BC @ =0x80000280
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ b _081108F0
+ .align 2, 0
+_081108B0: .4byte 0x040000d4
+_081108B4: .4byte 0x02000116
+_081108B8: .4byte 0x0600f000
+_081108BC: .4byte 0x80000280
+_081108C0:
+ ldr r0, _081108CC @ =gUnknown_083F8418
+ movs r1, 0
+ movs r2, 0x20
+ bl LoadPalette
+ b _081108F0
+ .align 2, 0
+_081108CC: .4byte gUnknown_083F8418
+_081108D0:
+ ldr r1, _081108E8 @ =REG_BG0CNT
+ ldr r3, _081108EC @ =0x00001e0d
+ adds r0, r3, 0
+ strh r0, [r1]
+ movs r0, 0x8A
+ lsls r0, 1
+ adds r1, r2, r0
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_081108E4:
+ movs r0, 0
+ b _08110900
+ .align 2, 0
+_081108E8: .4byte REG_BG0CNT
+_081108EC: .4byte 0x00001e0d
+_081108F0:
+ ldr r1, _08110904 @ =0x02000000
+ movs r2, 0x8A
+ lsls r2, 1
+ adds r1, r2
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ movs r0, 0x1
+_08110900:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08110904: .4byte 0x02000000
+ thumb_func_end sub_8110838
+
+ thumb_func_start sub_8110908
+sub_8110908: @ 8110908
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ lsls r0, 16
+ lsrs r7, r0, 16
+ .ifdef SAPPHIRE
+ ldr r0, _sub_8110908_Latias @ =407
+ .else
+ @ Latios
+ movs r0, 0xCC
+ lsls r0, 1
+ .endif
+ cmp r7, r0
+ bne _0811091E
+ b _08110A44
+_0811091E:
+ ldr r2, _08110988 @ =0x02000000
+ movs r1, 0x88
+ lsls r1, 1
+ adds r0, r2, r1
+ movs r1, 0
+ strh r1, [r0]
+ movs r3, 0x89
+ lsls r3, 1
+ adds r0, r2, r3
+ strh r1, [r0]
+ movs r6, 0
+ ldr r1, _0811098C @ =gUnknown_083F856C
+_08110936:
+ lsls r0, r6, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r0, r7
+ bne _08110942
+ b _08110A8C
+_08110942:
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ cmp r6, 0
+ beq _08110936
+ movs r6, 0
+ ldr r4, _08110990 @ =gUnknown_083F856E
+ ldrh r0, [r4]
+ movs r1, 0xCE
+ lsls r1, 1
+ cmp r0, r1
+ beq _081109D0
+ mov r8, r4
+ adds r5, r4, 0x4
+ mov r9, r1
+_08110960:
+ lsls r0, r6, 1
+ adds r1, r0, r6
+ lsls r2, r1, 1
+ mov r3, r8
+ adds r1, r2, r3
+ adds r3, r0, 0
+ ldrh r1, [r1]
+ cmp r7, r1
+ bne _081109BA
+ adds r0, r4, 0x2
+ adds r0, r2, r0
+ ldrh r0, [r0]
+ cmp r0, 0x18
+ beq _081109A6
+ cmp r0, 0x18
+ bgt _08110994
+ cmp r0, 0
+ beq _0811099A
+ b _081109BA
+ .align 2, 0
+ .ifdef SAPPHIRE
+_sub_8110908_Latias: .4byte 407
+ .endif
+_08110988: .4byte 0x02000000
+_0811098C: .4byte gUnknown_083F856C
+_08110990: .4byte gUnknown_083F856E
+_08110994:
+ cmp r0, 0x1A
+ beq _081109A6
+ b _081109BA
+_0811099A:
+ adds r0, r2, r5
+ ldrh r1, [r0]
+ movs r0, 0
+ bl sub_8110A98
+ b _081109BA
+_081109A6:
+ adds r1, r3, r6
+ lsls r1, 1
+ mov r0, r8
+ adds r0, 0x2
+ adds r0, r1, r0
+ ldrh r0, [r0]
+ adds r1, r5
+ ldrh r1, [r1]
+ bl sub_8110AE4
+_081109BA:
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ ldr r4, _08110A00 @ =gUnknown_083F856E
+ lsls r0, r6, 1
+ adds r0, r6
+ lsls r0, 1
+ adds r0, r4
+ ldrh r0, [r0]
+ cmp r0, r9
+ bne _08110960
+_081109D0:
+ movs r6, 0
+ ldr r1, _08110A04 @ =gWildMonHeaders
+ ldrb r0, [r1]
+ cmp r0, 0xFF
+ beq _08110A8C
+_081109DA:
+ lsls r4, r6, 2
+ adds r0, r4, r6
+ lsls r0, 2
+ adds r5, r0, r1
+ adds r0, r5, 0
+ adds r1, r7, 0
+ bl sub_8110BA4
+ lsls r0, 24
+ cmp r0, 0
+ beq _08110A28
+ ldrb r0, [r5]
+ cmp r0, 0x18
+ beq _08110A18
+ cmp r0, 0x18
+ bgt _08110A08
+ cmp r0, 0
+ beq _08110A0E
+ b _08110A28
+ .align 2, 0
+_08110A00: .4byte gUnknown_083F856E
+_08110A04: .4byte gWildMonHeaders
+_08110A08:
+ cmp r0, 0x1A
+ beq _08110A18
+ b _08110A28
+_08110A0E:
+ ldrb r1, [r5, 0x1]
+ movs r0, 0
+ bl sub_8110A98
+ b _08110A28
+_08110A18:
+ ldr r0, _08110A40 @ =gWildMonHeaders
+ adds r1, r4, r6
+ lsls r1, 2
+ adds r1, r0
+ ldrb r0, [r1]
+ ldrb r1, [r1, 0x1]
+ bl sub_8110AE4
+_08110A28:
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ ldr r1, _08110A40 @ =gWildMonHeaders
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 2
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0xFF
+ bne _081109DA
+ b _08110A8C
+ .align 2, 0
+_08110A40: .4byte gWildMonHeaders
+_08110A44:
+ ldr r4, _08110A7C @ =0x02000000
+ movs r0, 0x89
+ lsls r0, 1
+ adds r1, r4, r0
+ movs r0, 0
+ strh r0, [r1]
+ ldr r0, _08110A80 @ =gSaveBlock1 + 0x3144
+ ldrb r2, [r0, 0x13]
+ cmp r2, 0
+ beq _08110A84
+ adds r0, r4, 0
+ adds r0, 0x10
+ adds r1, r4, 0
+ adds r1, 0x11
+ bl sub_8134538
+ ldrb r0, [r4, 0x10]
+ ldrb r1, [r4, 0x11]
+ bl get_mapheader_by_bank_and_number
+ ldrb r0, [r0, 0x14]
+ strh r0, [r4, 0x12]
+ movs r3, 0x88
+ lsls r3, 1
+ adds r1, r4, r3
+ movs r0, 0x1
+ strh r0, [r1]
+ b _08110A8C
+ .align 2, 0
+_08110A7C: .4byte 0x02000000
+_08110A80: .4byte gSaveBlock1 + 0x3144
+_08110A84:
+ movs r1, 0x88
+ lsls r1, 1
+ adds r0, r4, r1
+ strh r2, [r0]
+_08110A8C:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8110908
+
+ thumb_func_start sub_8110A98
+sub_8110A98: @ 8110A98
+ push {r4,r5,lr}
+ lsls r0, 16
+ lsrs r2, r0, 16
+ lsls r1, 16
+ lsrs r1, 16
+ ldr r5, _08110AE0 @ =0x02000000
+ movs r0, 0x88
+ lsls r0, 1
+ adds r4, r5, r0
+ ldrh r0, [r4]
+ cmp r0, 0x3F
+ bhi _08110AD8
+ lsls r0, 2
+ adds r0, r5
+ strb r2, [r0, 0x10]
+ ldrh r0, [r4]
+ lsls r0, 2
+ adds r0, r5
+ strb r1, [r0, 0x11]
+ adds r0, r2, 0
+ bl get_mapheader_by_bank_and_number
+ ldrb r0, [r0, 0x14]
+ bl sub_80FBA04
+ ldrh r1, [r4]
+ lsls r1, 2
+ adds r1, r5
+ strh r0, [r1, 0x12]
+ ldrh r0, [r4]
+ adds r0, 0x1
+ strh r0, [r4]
+_08110AD8:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08110AE0: .4byte 0x02000000
+ thumb_func_end sub_8110A98
+
+ thumb_func_start sub_8110AE4
+sub_8110AE4: @ 8110AE4
+ push {r4-r6,lr}
+ lsls r0, 16
+ lsrs r2, r0, 16
+ lsls r1, 16
+ lsrs r1, 16
+ ldr r0, _08110B9C @ =0x02000000
+ movs r3, 0x89
+ lsls r3, 1
+ adds r0, r3
+ ldrh r0, [r0]
+ cmp r0, 0x1F
+ bhi _08110B96
+ adds r0, r2, 0
+ bl get_mapheader_by_bank_and_number
+ adds r6, r0, 0
+ ldrb r0, [r6, 0x14]
+ cmp r0, 0x57
+ bhi _08110B96
+ movs r4, 0
+ ldr r1, _08110BA0 @ =gUnknown_083F857A
+ ldrh r0, [r1]
+ cmp r0, 0x58
+ beq _08110B42
+ adds r5, r1, 0
+_08110B16:
+ lsls r2, r4, 2
+ adds r1, r2, r5
+ ldrb r0, [r6, 0x14]
+ ldrh r1, [r1]
+ cmp r0, r1
+ bne _08110B32
+ adds r0, r5, 0x2
+ adds r0, r2, r0
+ ldrh r0, [r0]
+ bl FlagGet
+ lsls r0, 24
+ cmp r0, 0
+ beq _08110B96
+_08110B32:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ lsls r0, r4, 2
+ adds r0, r5
+ ldrh r0, [r0]
+ cmp r0, 0x58
+ bne _08110B16
+_08110B42:
+ movs r4, 0
+ ldr r0, _08110B9C @ =0x02000000
+ movs r1, 0x89
+ lsls r1, 1
+ adds r2, r0, r1
+ ldrh r3, [r2]
+ adds r1, r0, 0
+ cmp r4, r3
+ bcs _08110B76
+ movs r0, 0xC4
+ lsls r0, 3
+ adds r5, r1, r0
+ ldrh r0, [r5]
+ ldrb r2, [r6, 0x14]
+ cmp r0, r2
+ beq _08110B76
+_08110B62:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, r3
+ bcs _08110B76
+ lsls r0, r4, 1
+ adds r0, r5
+ ldrh r0, [r0]
+ cmp r0, r2
+ bne _08110B62
+_08110B76:
+ movs r3, 0x89
+ lsls r3, 1
+ adds r2, r1, r3
+ ldrh r0, [r2]
+ cmp r4, r0
+ bne _08110B96
+ lsls r0, r4, 1
+ movs r3, 0xC4
+ lsls r3, 3
+ adds r1, r3
+ adds r0, r1
+ ldrb r1, [r6, 0x14]
+ strh r1, [r0]
+ ldrh r0, [r2]
+ adds r0, 0x1
+ strh r0, [r2]
+_08110B96:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08110B9C: .4byte 0x02000000
+_08110BA0: .4byte gUnknown_083F857A
+ thumb_func_end sub_8110AE4
+
+ thumb_func_start sub_8110BA4
+sub_8110BA4: @ 8110BA4
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ lsls r1, 16
+ lsrs r4, r1, 16
+ adds r6, r4, 0
+ ldr r0, [r5, 0x4]
+ adds r1, r4, 0
+ movs r2, 0xC
+ bl sub_8110BFC
+ lsls r0, 24
+ cmp r0, 0
+ bne _08110BF2
+ ldr r0, [r5, 0x8]
+ adds r1, r4, 0
+ movs r2, 0x5
+ bl sub_8110BFC
+ lsls r0, 24
+ cmp r0, 0
+ bne _08110BF2
+ ldr r0, [r5, 0x10]
+ adds r1, r4, 0
+ movs r2, 0xC
+ bl sub_8110BFC
+ lsls r0, 24
+ cmp r0, 0
+ bne _08110BF2
+ ldr r0, [r5, 0xC]
+ adds r1, r6, 0
+ movs r2, 0x5
+ bl sub_8110BFC
+ lsls r0, 24
+ cmp r0, 0
+ bne _08110BF2
+ movs r0, 0
+ b _08110BF4
+_08110BF2:
+ movs r0, 0x1
+_08110BF4:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8110BA4
+
+ thumb_func_start sub_8110BFC
+sub_8110BFC: @ 8110BFC
+ push {r4,lr}
+ lsls r1, 16
+ lsrs r4, r1, 16
+ lsls r2, 16
+ lsrs r2, 16
+ cmp r0, 0
+ beq _08110C2A
+ movs r3, 0
+ cmp r3, r2
+ bcs _08110C2A
+ ldr r1, [r0, 0x4]
+_08110C12:
+ lsls r0, r3, 2
+ adds r0, r1
+ ldrh r0, [r0, 0x2]
+ cmp r0, r4
+ bne _08110C20
+ movs r0, 0x1
+ b _08110C2C
+_08110C20:
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, r2
+ bcc _08110C12
+_08110C2A:
+ movs r0, 0
+_08110C2C:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8110BFC
+
+ thumb_func_start sub_8110C34
+sub_8110C34: @ 8110C34
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0xC
+ ldr r1, _08110E5C @ =gUnknown_02039260
+ movs r0, 0
+ strh r0, [r1]
+ mov r9, r1
+ ldr r0, _08110E60 @ =0x02000000
+ mov r8, r0
+ ldr r1, _08110E64 @ =gUnknown_02039262
+ mov r12, r1
+ mov r1, r9
+ movs r4, 0x8B
+ lsls r4, 1
+ add r4, r8
+ ldr r3, _08110E68 @ =0x0000027f
+ movs r2, 0
+_08110C5C:
+ ldrh r0, [r1]
+ lsls r0, 1
+ adds r0, r4
+ strh r2, [r0]
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, r3
+ bls _08110C5C
+ movs r0, 0
+ mov r3, r9
+ strh r0, [r3]
+ movs r1, 0x88
+ lsls r1, 1
+ add r1, r8
+ ldrh r0, [r1]
+ cmp r0, 0
+ beq _08110D04
+ ldr r4, _08110E6C @ =gUnknown_02039266
+ movs r2, 0
+ ldr r5, _08110E64 @ =gUnknown_02039262
+ mov r0, r8
+ str r0, [sp, 0x8]
+ movs r1, 0x8B
+ lsls r1, 1
+ add r1, r8
+ mov r10, r1
+ ldr r6, _08110E70 @ =gUnknown_02039264
+ mov r7, r9
+_08110C9A:
+ strh r2, [r4]
+ ldr r3, _08110E70 @ =gUnknown_02039264
+ strh r2, [r3]
+_08110CA0:
+ mov r0, r12
+ strh r2, [r0]
+_08110CA4:
+ ldrh r0, [r5]
+ ldrh r1, [r6]
+ str r2, [sp]
+ bl sub_80FB9A8
+ ldrh r1, [r7]
+ lsls r1, 2
+ ldr r3, [sp, 0x8]
+ adds r1, r3
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r2, [sp]
+ ldrh r1, [r1, 0x12]
+ cmp r0, r1
+ bne _08110CCC
+ ldrh r0, [r4]
+ lsls r0, 1
+ add r0, r10
+ ldr r1, _08110E74 @ =0x0000ffff
+ strh r1, [r0]
+_08110CCC:
+ ldrh r0, [r4]
+ adds r0, 0x1
+ strh r0, [r4]
+ ldrh r0, [r5]
+ adds r0, 0x1
+ strh r0, [r5]
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x1F
+ bls _08110CA4
+ ldrh r0, [r6]
+ adds r0, 0x1
+ strh r0, [r6]
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r1, _08110E64 @ =gUnknown_02039262
+ mov r12, r1
+ cmp r0, 0x13
+ bls _08110CA0
+ ldrh r0, [r7]
+ adds r0, 0x1
+ strh r0, [r7]
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r3, _08110E78 @ =0x02000110
+ ldrh r3, [r3]
+ cmp r0, r3
+ bcc _08110C9A
+_08110D04:
+ movs r0, 0
+ ldr r1, _08110E6C @ =gUnknown_02039266
+ strh r0, [r1]
+ ldr r3, _08110E70 @ =gUnknown_02039264
+ strh r0, [r3]
+ ldr r6, _08110E64 @ =gUnknown_02039262
+ mov r10, r0
+ adds r3, r1, 0
+ ldr r5, _08110E7C @ =0x02000116
+ ldr r4, _08110E74 @ =0x0000ffff
+ ldr r7, _08110E70 @ =gUnknown_02039264
+_08110D1A:
+ mov r0, r10
+ strh r0, [r6]
+_08110D1E:
+ ldrh r1, [r3]
+ lsls r0, r1, 1
+ adds r0, r5
+ ldrh r0, [r0]
+ cmp r0, r4
+ bne _08110E10
+ ldrh r0, [r6]
+ cmp r0, 0
+ beq _08110D42
+ subs r0, r1, 0x1
+ lsls r0, 1
+ adds r2, r0, r5
+ ldrh r1, [r2]
+ cmp r1, r4
+ beq _08110D42
+ movs r0, 0x2
+ orrs r0, r1
+ strh r0, [r2]
+_08110D42:
+ ldrh r0, [r6]
+ cmp r0, 0x1F
+ beq _08110D5C
+ ldrh r0, [r3]
+ adds r0, 0x1
+ lsls r0, 1
+ adds r2, r0, r5
+ ldrh r1, [r2]
+ cmp r1, r4
+ beq _08110D5C
+ movs r0, 0x1
+ orrs r0, r1
+ strh r0, [r2]
+_08110D5C:
+ ldrh r0, [r7]
+ cmp r0, 0
+ beq _08110D76
+ ldrh r0, [r3]
+ subs r0, 0x20
+ lsls r0, 1
+ adds r2, r0, r5
+ ldrh r1, [r2]
+ cmp r1, r4
+ beq _08110D76
+ movs r0, 0x8
+ orrs r0, r1
+ strh r0, [r2]
+_08110D76:
+ ldrh r0, [r7]
+ cmp r0, 0x13
+ beq _08110D90
+ ldrh r0, [r3]
+ adds r0, 0x20
+ lsls r0, 1
+ adds r2, r0, r5
+ ldrh r1, [r2]
+ cmp r1, r4
+ beq _08110D90
+ movs r0, 0x4
+ orrs r0, r1
+ strh r0, [r2]
+_08110D90:
+ ldrh r0, [r6]
+ cmp r0, 0
+ beq _08110DB0
+ ldrh r0, [r7]
+ cmp r0, 0
+ beq _08110DB0
+ ldrh r0, [r3]
+ subs r0, 0x21
+ lsls r0, 1
+ adds r2, r0, r5
+ ldrh r1, [r2]
+ cmp r1, r4
+ beq _08110DB0
+ movs r0, 0x10
+ orrs r0, r1
+ strh r0, [r2]
+_08110DB0:
+ ldrh r0, [r6]
+ cmp r0, 0x1F
+ beq _08110DD0
+ ldrh r0, [r7]
+ cmp r0, 0
+ beq _08110DD0
+ ldrh r0, [r3]
+ subs r0, 0x1F
+ lsls r0, 1
+ adds r2, r0, r5
+ ldrh r1, [r2]
+ cmp r1, r4
+ beq _08110DD0
+ movs r0, 0x40
+ orrs r0, r1
+ strh r0, [r2]
+_08110DD0:
+ ldrh r0, [r6]
+ cmp r0, 0
+ beq _08110DF0
+ ldrh r0, [r7]
+ cmp r0, 0x13
+ beq _08110DF0
+ ldrh r0, [r3]
+ adds r0, 0x1F
+ lsls r0, 1
+ adds r2, r0, r5
+ ldrh r1, [r2]
+ cmp r1, r4
+ beq _08110DF0
+ movs r0, 0x20
+ orrs r0, r1
+ strh r0, [r2]
+_08110DF0:
+ ldrh r0, [r6]
+ cmp r0, 0x1F
+ beq _08110E10
+ ldrh r0, [r7]
+ cmp r0, 0x13
+ beq _08110E10
+ ldrh r0, [r3]
+ adds r0, 0x21
+ lsls r0, 1
+ adds r2, r0, r5
+ ldrh r1, [r2]
+ cmp r1, r4
+ beq _08110E10
+ movs r0, 0x80
+ orrs r0, r1
+ strh r0, [r2]
+_08110E10:
+ ldrh r0, [r3]
+ adds r0, 0x1
+ strh r0, [r3]
+ ldrh r0, [r6]
+ adds r0, 0x1
+ strh r0, [r6]
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x1F
+ bhi _08110E26
+ b _08110D1E
+_08110E26:
+ ldrh r0, [r7]
+ adds r0, 0x1
+ strh r0, [r7]
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x13
+ bhi _08110E36
+ b _08110D1A
+_08110E36:
+ movs r0, 0
+ mov r1, r9
+ strh r0, [r1]
+_08110E3C:
+ mov r3, r9
+ ldrh r0, [r3]
+ lsls r0, 1
+ movs r4, 0x8B
+ lsls r4, 1
+ add r4, r8
+ adds r3, r0, r4
+ ldrh r2, [r3]
+ adds r1, r2, 0
+ ldr r0, _08110E74 @ =0x0000ffff
+ cmp r1, r0
+ bne _08110E80
+ movs r0, 0x10
+ strh r0, [r3]
+ b _0811105E
+ .align 2, 0
+_08110E5C: .4byte gUnknown_02039260
+_08110E60: .4byte 0x02000000
+_08110E64: .4byte gUnknown_02039262
+_08110E68: .4byte 0x0000027f
+_08110E6C: .4byte gUnknown_02039266
+_08110E70: .4byte gUnknown_02039264
+_08110E74: .4byte 0x0000ffff
+_08110E78: .4byte 0x02000110
+_08110E7C: .4byte 0x02000116
+_08110E80:
+ cmp r1, 0
+ bne _08110E86
+ b _0811105E
+_08110E86:
+ movs r0, 0x2
+ ands r0, r2
+ cmp r0, 0
+ beq _08110E94
+ ldr r0, _08110F28 @ =0x0000ffcf
+ ands r0, r2
+ strh r0, [r3]
+_08110E94:
+ mov r1, r9
+ ldrh r0, [r1]
+ lsls r0, 1
+ adds r2, r0, r4
+ ldrh r1, [r2]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08110EAC
+ ldr r0, _08110F2C @ =0x0000ff3f
+ ands r0, r1
+ strh r0, [r2]
+_08110EAC:
+ mov r3, r9
+ ldrh r0, [r3]
+ lsls r0, 1
+ adds r2, r0, r4
+ ldrh r1, [r2]
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ beq _08110EC4
+ ldr r0, _08110F30 @ =0x0000ffaf
+ ands r0, r1
+ strh r0, [r2]
+_08110EC4:
+ mov r1, r9
+ ldrh r0, [r1]
+ lsls r0, 1
+ adds r2, r0, r4
+ ldrh r1, [r2]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _08110EDC
+ ldr r0, _08110F34 @ =0x0000ff5f
+ ands r0, r1
+ strh r0, [r2]
+_08110EDC:
+ ldr r6, _08110F38 @ =gUnknown_02039268
+ mov r3, r9
+ ldrh r0, [r3]
+ lsls r0, 1
+ adds r0, r4
+ ldrh r1, [r0]
+ movs r5, 0xF
+ adds r0, r5, 0
+ ands r0, r1
+ strh r0, [r6]
+ ldr r2, _08110F3C @ =gUnknown_0203926A
+ ldrh r0, [r3]
+ lsls r0, 1
+ adds r0, r4
+ ldrh r1, [r0]
+ movs r0, 0xF0
+ ands r0, r1
+ strh r0, [r2]
+ ldrh r1, [r3]
+ adds r3, r2, 0
+ cmp r0, 0
+ bne _08110F0A
+ b _0811105E
+_08110F0A:
+ lsls r0, r1, 1
+ adds r0, r4
+ ldrh r2, [r0]
+ adds r1, r5, 0
+ ands r1, r2
+ strh r1, [r0]
+ ldrh r0, [r6]
+ cmp r0, 0xA
+ bls _08110F1E
+ b _0811105E
+_08110F1E:
+ lsls r0, 2
+ ldr r1, _08110F40 @ =_08110F44
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08110F28: .4byte 0x0000ffcf
+_08110F2C: .4byte 0x0000ff3f
+_08110F30: .4byte 0x0000ffaf
+_08110F34: .4byte 0x0000ff5f
+_08110F38: .4byte gUnknown_02039268
+_08110F3C: .4byte gUnknown_0203926A
+_08110F40: .4byte _08110F44
+ .align 2, 0
+_08110F44:
+ .4byte _08110F70
+ .4byte _08110FAC
+ .4byte _08110F8E
+ .4byte _0811105E
+ .4byte _08111002
+ .4byte _08111036
+ .4byte _08111036
+ .4byte _0811105E
+ .4byte _08110FCE
+ .4byte _0811104A
+ .4byte _0811104A
+_08110F70:
+ ldrh r0, [r3]
+ lsls r1, r0, 16
+ cmp r1, 0
+ beq _0811105E
+ mov r0, r9
+ ldrh r2, [r0]
+ lsls r2, 1
+ movs r0, 0x8B
+ lsls r0, 1
+ add r0, r8
+ adds r2, r0
+ ldrh r0, [r2]
+ adds r0, 0x10
+ lsrs r1, 20
+ b _08110FC8
+_08110F8E:
+ ldrh r0, [r3]
+ lsls r1, r0, 16
+ cmp r1, 0
+ beq _0811105E
+ mov r3, r9
+ ldrh r2, [r3]
+ lsls r2, 1
+ movs r0, 0x8B
+ lsls r0, 1
+ add r0, r8
+ adds r2, r0
+ ldrh r0, [r2]
+ adds r0, 0x1E
+ lsrs r1, 20
+ b _08110FC8
+_08110FAC:
+ ldrh r0, [r3]
+ lsls r1, r0, 16
+ cmp r1, 0
+ beq _0811105E
+ mov r0, r9
+ ldrh r2, [r0]
+ lsls r2, 1
+ movs r0, 0x8B
+ lsls r0, 1
+ add r0, r8
+ adds r2, r0
+ ldrh r0, [r2]
+ adds r0, 0x20
+ lsrs r1, 22
+_08110FC8:
+ adds r0, r1
+ strh r0, [r2]
+ b _0811105E
+_08110FCE:
+ ldrh r2, [r3]
+ cmp r2, 0
+ beq _0811105E
+ movs r0, 0x80
+ ands r0, r2
+ lsls r0, 16
+ lsrs r0, 16
+ negs r0, r0
+ lsrs r3, r0, 31
+ movs r0, 0x20
+ ands r0, r2
+ cmp r0, 0
+ beq _08110FEC
+ movs r0, 0x2
+ orrs r3, r0
+_08110FEC:
+ mov r0, r9
+ ldrh r1, [r0]
+ lsls r1, 1
+ movs r0, 0x8B
+ lsls r0, 1
+ add r0, r8
+ adds r1, r0
+ ldrh r0, [r1]
+ adds r0, 0x20
+ adds r0, r3
+ b _0811105C
+_08111002:
+ ldrh r2, [r3]
+ cmp r2, 0
+ beq _0811105E
+ movs r0, 0x40
+ ands r0, r2
+ lsls r0, 16
+ lsrs r0, 16
+ negs r0, r0
+ lsrs r3, r0, 31
+ movs r0, 0x10
+ ands r0, r2
+ cmp r0, 0
+ beq _08111020
+ movs r0, 0x2
+ orrs r3, r0
+_08111020:
+ mov r0, r9
+ ldrh r1, [r0]
+ lsls r1, 1
+ movs r0, 0x8B
+ lsls r0, 1
+ add r0, r8
+ adds r1, r0
+ ldrh r0, [r1]
+ adds r0, 0x21
+ adds r0, r3
+ b _0811105C
+_08111036:
+ mov r3, r9
+ ldrh r1, [r3]
+ lsls r1, 1
+ movs r0, 0x8B
+ lsls r0, 1
+ add r0, r8
+ adds r1, r0
+ ldrh r0, [r1]
+ adds r0, 0x27
+ b _0811105C
+_0811104A:
+ mov r0, r9
+ ldrh r1, [r0]
+ lsls r1, 1
+ movs r0, 0x8B
+ lsls r0, 1
+ add r0, r8
+ adds r1, r0
+ ldrh r0, [r1]
+ adds r0, 0x25
+_0811105C:
+ strh r0, [r1]
+_0811105E:
+ mov r3, r9
+ ldrh r0, [r3]
+ adds r0, 0x1
+ strh r0, [r3]
+ lsls r0, 16
+ ldr r1, _08111080 @ =0x027f0000
+ cmp r0, r1
+ bhi _08111070
+ b _08110E3C
+_08111070:
+ 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
+_08111080: .4byte 0x027f0000
+ thumb_func_end sub_8110C34
+
+ thumb_func_start sub_8111084
+sub_8111084: @ 8111084
+ push {lr}
+ ldr r0, _081110AC @ =0x02000000
+ movs r2, 0x89
+ lsls r2, 1
+ adds r1, r0, r2
+ ldrh r1, [r1]
+ adds r2, r0, 0
+ cmp r1, 0
+ beq _081110B4
+ movs r3, 0x88
+ lsls r3, 1
+ adds r0, r2, r3
+ ldrh r0, [r0]
+ cmp r0, 0
+ bne _081110B4
+ ldr r0, _081110B0 @ =0x0000061e
+ adds r1, r2, r0
+ movs r0, 0x1
+ b _081110BA
+ .align 2, 0
+_081110AC: .4byte 0x02000000
+_081110B0: .4byte 0x0000061e
+_081110B4:
+ ldr r3, _081110FC @ =0x0000061e
+ adds r1, r2, r3
+ movs r0, 0
+_081110BA:
+ strb r0, [r1]
+ ldr r1, _08111100 @ =0x00000616
+ adds r0, r2, r1
+ movs r1, 0
+ strh r1, [r0]
+ movs r3, 0xC3
+ lsls r3, 3
+ adds r0, r2, r3
+ strh r1, [r0]
+ adds r3, 0x2
+ adds r0, r2, r3
+ strh r1, [r0]
+ ldr r0, _08111104 @ =0x0000061c
+ adds r1, r2, r0
+ movs r0, 0x40
+ strh r0, [r1]
+ adds r3, 0x5
+ adds r1, r2, r3
+ movs r0, 0x1
+ strb r0, [r1]
+ ldr r1, _08111108 @ =REG_BLDCNT
+ ldr r2, _0811110C @ =0x00003f41
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r3, 0x80
+ lsls r3, 5
+ adds r0, r3, 0
+ strh r0, [r1]
+ bl sub_8111110
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081110FC: .4byte 0x0000061e
+_08111100: .4byte 0x00000616
+_08111104: .4byte 0x0000061c
+_08111108: .4byte REG_BLDCNT
+_0811110C: .4byte 0x00003f41
+ thumb_func_end sub_8111084
+
+ thumb_func_start sub_8111110
+sub_8111110: @ 8111110
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ ldr r0, _0811114C @ =0x02000000
+ ldr r2, _08111150 @ =0x0000061e
+ adds r1, r0, r2
+ ldrb r1, [r1]
+ adds r5, r0, 0
+ cmp r1, 0
+ bne _081111DE
+ ldr r3, _08111154 @ =0x00000616
+ adds r1, r5, r3
+ ldrh r0, [r1]
+ cmp r0, 0
+ bne _081111D8
+ movs r1, 0xC3
+ lsls r1, 3
+ adds r0, r5, r1
+ ldrh r1, [r0]
+ adds r1, 0x1
+ strh r1, [r0]
+ movs r0, 0x1
+ ands r1, r0
+ cmp r1, 0
+ beq _08111158
+ subs r2, 0x4
+ adds r0, r5, r2
+ b _0811115C
+ .align 2, 0
+_0811114C: .4byte 0x02000000
+_08111150: .4byte 0x0000061e
+_08111154: .4byte 0x00000616
+_08111158:
+ ldr r3, _081111C0 @ =0x0000061c
+ adds r0, r5, r3
+_0811115C:
+ ldrh r1, [r0]
+ adds r1, 0x4
+ movs r2, 0x7F
+ ands r1, r2
+ strh r1, [r0]
+ ldr r2, _081111C4 @ =gSineTable
+ ldr r1, _081111C8 @ =0x0000061a
+ adds r0, r5, r1
+ ldrh r0, [r0]
+ lsls r0, 1
+ adds r0, r2
+ ldrh r1, [r0]
+ lsls r1, 16
+ asrs r1, 20
+ lsls r1, 16
+ lsrs r1, 16
+ ldr r3, _081111C0 @ =0x0000061c
+ adds r0, r5, r3
+ ldrh r0, [r0]
+ lsls r0, 1
+ adds r0, r2
+ ldrh r0, [r0]
+ lsls r0, 16
+ asrs r0, 20
+ lsls r0, 16
+ ldr r2, _081111CC @ =REG_BLDALPHA
+ lsrs r0, 8
+ orrs r1, r0
+ strh r1, [r2]
+ ldr r1, _081111D0 @ =0x00000616
+ adds r0, r5, r1
+ movs r2, 0
+ strh r2, [r0]
+ subs r3, 0x4
+ adds r1, r5, r3
+ ldrh r0, [r1]
+ cmp r0, 0x40
+ bne _0811126E
+ strh r2, [r1]
+ movs r1, 0x89
+ lsls r1, 1
+ adds r0, r5, r1
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _0811126E
+ ldr r2, _081111D4 @ =0x0000061e
+ adds r1, r5, r2
+ movs r0, 0x1
+ b _0811126C
+ .align 2, 0
+_081111C0: .4byte 0x0000061c
+_081111C4: .4byte gSineTable
+_081111C8: .4byte 0x0000061a
+_081111CC: .4byte REG_BLDALPHA
+_081111D0: .4byte 0x00000616
+_081111D4: .4byte 0x0000061e
+_081111D8:
+ subs r0, 0x1
+ strh r0, [r1]
+ b _0811126E
+_081111DE:
+ ldr r3, _0811127C @ =0x00000616
+ adds r1, r5, r3
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0xC
+ bls _0811126E
+ movs r0, 0
+ strh r0, [r1]
+ ldr r0, _08111280 @ =0x0000061f
+ adds r1, r5, r0
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ movs r4, 0
+ movs r2, 0x89
+ lsls r2, 1
+ adds r0, r5, r2
+ ldrh r3, [r0]
+ cmp r4, r3
+ bcs _0811124C
+ movs r2, 0xCC
+ lsls r2, 3
+ adds r2, r5
+ mov r9, r2
+ mov r8, r1
+ movs r3, 0x1
+ mov r12, r3
+ adds r6, r0, 0
+ movs r7, 0x5
+ negs r7, r7
+_08111220:
+ lsls r0, r4, 2
+ add r0, r9
+ ldr r3, [r0]
+ mov r1, r8
+ ldrb r0, [r1]
+ movs r1, 0x1
+ adds r3, 0x3E
+ ands r1, r0
+ mov r2, r12
+ ands r1, r2
+ lsls r1, 2
+ ldrb r2, [r3]
+ adds r0, r7, 0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ ldrh r3, [r6]
+ cmp r4, r3
+ bcc _08111220
+_0811124C:
+ ldr r0, _08111280 @ =0x0000061f
+ adds r1, r5, r0
+ ldrb r0, [r1]
+ cmp r0, 0x4
+ bls _0811126E
+ movs r0, 0x1
+ strb r0, [r1]
+ movs r1, 0x88
+ lsls r1, 1
+ adds r0, r5, r1
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _0811126E
+ ldr r2, _08111284 @ =0x0000061e
+ adds r1, r5, r2
+ movs r0, 0
+_0811126C:
+ strb r0, [r1]
+_0811126E:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811127C: .4byte 0x00000616
+_08111280: .4byte 0x0000061f
+_08111284: .4byte 0x0000061e
+ thumb_func_end sub_8111110
+
+ thumb_func_start sub_8111288
+sub_8111288: @ 8111288
+ push {lr}
+ ldr r1, _08111298 @ =0x02000000
+ ldrh r0, [r1, 0xC]
+ cmp r0, 0
+ beq _0811129C
+ cmp r0, 0x1
+ beq _081112A2
+ b _081112B2
+ .align 2, 0
+_08111298: .4byte 0x02000000
+_0811129C:
+ movs r0, 0x1
+ strh r0, [r1, 0xC]
+ b _081112B2
+_081112A2:
+ bl UpdatePaletteFade
+ lsls r0, 24
+ cmp r0, 0
+ bne _081112B2
+ ldr r0, _081112B8 @ =sub_81112BC
+ bl sub_8110814
+_081112B2:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081112B8: .4byte sub_81112BC
+ thumb_func_end sub_8111288
+
+ thumb_func_start sub_81112BC
+sub_81112BC: @ 81112BC
+ push {lr}
+ ldr r0, _081112DC @ =0x02000000
+ ldrh r0, [r0, 0xC]
+ cmp r0, 0
+ bne _08111308
+ ldr r0, _081112E0 @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _081112E8
+ ldr r0, _081112E4 @ =sub_8111314
+ bl sub_8110814
+ b _08111308
+ .align 2, 0
+_081112DC: .4byte 0x02000000
+_081112E0: .4byte gMain
+_081112E4: .4byte sub_8111314
+_081112E8:
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ bne _08111302
+ movs r0, 0x80
+ lsls r0, 1
+ ands r0, r1
+ cmp r0, 0
+ beq _08111308
+ ldr r0, _0811130C @ =gSaveBlock2
+ ldrb r0, [r0, 0x13]
+ cmp r0, 0x1
+ bne _08111308
+_08111302:
+ ldr r0, _08111310 @ =sub_8111360
+ bl sub_8110814
+_08111308:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811130C: .4byte gSaveBlock2
+_08111310: .4byte sub_8111360
+ thumb_func_end sub_81112BC
+
+ thumb_func_start sub_8111314
+sub_8111314: @ 8111314
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r4, _08111328 @ =0x02000000
+ ldrh r1, [r4, 0xC]
+ cmp r1, 0
+ beq _0811132C
+ cmp r1, 0x1
+ beq _08111344
+ b _08111358
+ .align 2, 0
+_08111328: .4byte 0x02000000
+_0811132C:
+ movs r0, 0x15
+ negs r0, r0
+ str r1, [sp]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x1
+ strh r0, [r4, 0xC]
+ b _08111358
+_08111344:
+ bl UpdatePaletteFade
+ lsls r0, 24
+ cmp r0, 0
+ bne _08111358
+ bl sub_80FAB10
+ ldr r0, [r4, 0x4]
+ bl SetMainCallback2
+_08111358:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8111314
+
+ thumb_func_start sub_8111360
+sub_8111360: @ 8111360
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r4, _08111374 @ =0x02000000
+ ldrh r1, [r4, 0xC]
+ cmp r1, 0
+ beq _08111378
+ cmp r1, 0x1
+ beq _08111390
+ b _081113A4
+ .align 2, 0
+_08111374: .4byte 0x02000000
+_08111378:
+ movs r0, 0x15
+ negs r0, r0
+ str r1, [sp]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x1
+ strh r0, [r4, 0xC]
+ b _081113A4
+_08111390:
+ bl UpdatePaletteFade
+ lsls r0, 24
+ cmp r0, 0
+ bne _081113A4
+ bl sub_80FAB10
+ ldr r0, [r4, 0x8]
+ bl SetMainCallback2
+_081113A4:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8111360
+
+ thumb_func_start sub_81113AC
+sub_81113AC: @ 81113AC
+ push {r4,lr}
+ ldr r2, _081113DC @ =0x02000000
+ movs r3, 0
+ movs r4, 0
+ strh r0, [r2, 0xE]
+ ldr r0, _081113E0 @ =0x000006e4
+ adds r2, r0
+ str r1, [r2]
+ strb r3, [r1]
+ ldr r0, _081113E4 @ =sub_81113EC
+ movs r1, 0
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _081113E8 @ =gTasks
+ 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
+_081113DC: .4byte 0x02000000
+_081113E0: .4byte 0x000006e4
+_081113E4: .4byte sub_81113EC
+_081113E8: .4byte gTasks
+ thumb_func_end sub_81113AC
+
+ thumb_func_start sub_81113EC
+sub_81113EC: @ 81113EC
+ push {r4,r5,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _08111414 @ =gTasks
+ 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, 0xB
+ bls _0811140A
+ b _08111540
+_0811140A:
+ lsls r0, 2
+ ldr r1, _08111418 @ =_0811141C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08111414: .4byte gTasks
+_08111418: .4byte _0811141C
+ .align 2, 0
+_0811141C:
+ .4byte _0811144C
+ .4byte _08111488
+ .4byte _08111496
+ .4byte _081114B8
+ .4byte _081114BE
+ .4byte _081114CA
+ .4byte _081114DE
+ .4byte _081114E4
+ .4byte _081114EA
+ .4byte _081114F0
+ .4byte _08111502
+ .4byte _08111528
+_0811144C:
+ movs r1, 0x80
+ lsls r1, 19
+ movs r3, 0xC4
+ lsls r3, 7
+ adds r0, r3, 0
+ strh r0, [r1]
+ ldr r0, _08111478 @ =REG_BG0HOFS
+ movs r1, 0
+ strh r1, [r0]
+ ldr r2, _0811147C @ =REG_BG0VOFS
+ ldr r3, _08111480 @ =0x0000fff8
+ adds r0, r3, 0
+ strh r0, [r2]
+ ldr r0, _08111484 @ =REG_BG2VOFS
+ strh r1, [r0]
+ subs r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x4
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ b _08111540
+ .align 2, 0
+_08111478: .4byte REG_BG0HOFS
+_0811147C: .4byte REG_BG0VOFS
+_08111480: .4byte 0x0000fff8
+_08111484: .4byte REG_BG2VOFS
+_08111488:
+ bl ResetPaletteFade
+ bl ResetSpriteData
+ bl FreeAllSpritePalettes
+ b _08111540
+_08111496:
+ ldr r4, _081114B4 @ =0x020006e8
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_80FA8EC
+ movs r0, 0x88
+ lsls r0, 4
+ adds r4, r0
+ adds r0, r4, 0
+ movs r1, 0
+ movs r2, 0x10
+ bl StringFill
+ b _08111540
+ .align 2, 0
+_081114B4: .4byte 0x020006e8
+_081114B8:
+ bl sub_8110824
+ b _08111540
+_081114BE:
+ bl sub_8110838
+ lsls r0, 24
+ cmp r0, 0
+ bne _08111550
+ b _08111540
+_081114CA:
+ movs r0, 0x1
+ movs r1, 0x1
+ bl sub_80FBCF0
+ movs r1, 0x8
+ negs r1, r1
+ movs r0, 0
+ bl sub_80FB2A4
+ b _08111540
+_081114DE:
+ bl sub_8111658
+ b _08111540
+_081114E4:
+ bl sub_81117AC
+ b _08111540
+_081114EA:
+ bl sub_81117E4
+ b _08111540
+_081114F0:
+ movs r0, 0x15
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ b _08111540
+_08111502:
+ ldr r1, _0811151C @ =REG_BLDCNT
+ ldr r2, _08111520 @ =0x00003f41
+ adds r0, r2, 0
+ strh r0, [r1]
+ bl sub_8111084
+ movs r1, 0x80
+ lsls r1, 19
+ ldr r3, _08111524 @ =0x00007741
+ adds r0, r3, 0
+ strh r0, [r1]
+ b _08111540
+ .align 2, 0
+_0811151C: .4byte REG_BLDCNT
+_08111520: .4byte 0x00003f41
+_08111524: .4byte 0x00007741
+_08111528:
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r2
+ ldr r1, _0811153C @ =sub_811155C
+ str r1, [r0]
+ movs r1, 0
+ strh r1, [r0, 0x8]
+ b _08111550
+ .align 2, 0
+_0811153C: .4byte sub_811155C
+_08111540:
+ ldr r0, _08111558 @ =gTasks
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+_08111550:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08111558: .4byte gTasks
+ thumb_func_end sub_81113EC
+
+ thumb_func_start sub_811155C
+sub_811155C: @ 811155C
+ push {r4,r5,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_8111110
+ ldr r1, _08111584 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r5, r0, r1
+ movs r0, 0x8
+ ldrsh r1, [r5, r0]
+ cmp r1, 0x1
+ beq _081115B4
+ cmp r1, 0x1
+ bgt _08111588
+ cmp r1, 0
+ beq _0811159E
+ b _08111590
+ .align 2, 0
+_08111584: .4byte gTasks
+_08111588:
+ cmp r1, 0x2
+ beq _081115F8
+ cmp r1, 0x3
+ beq _0811160A
+_08111590:
+ ldr r0, _081115AC @ =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ movs r0, 0
+ strh r0, [r1, 0x8]
+_0811159E:
+ ldr r0, _081115B0 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0811164C
+ b _0811163C
+ .align 2, 0
+_081115AC: .4byte gTasks
+_081115B0: .4byte gPaletteFade
+_081115B4:
+ ldr r0, _081115CC @ =gMain
+ ldrh r2, [r0, 0x2E]
+ movs r3, 0x2
+ adds r0, r3, 0
+ ands r0, r2
+ cmp r0, 0
+ beq _081115D0
+ strh r1, [r5, 0xA]
+ movs r0, 0x3
+ bl PlaySE
+ b _0811163C
+ .align 2, 0
+_081115CC: .4byte gMain
+_081115D0:
+ movs r0, 0x10
+ ands r0, r2
+ cmp r0, 0
+ bne _081115EA
+ movs r0, 0x80
+ lsls r0, 1
+ ands r0, r2
+ cmp r0, 0
+ beq _0811164C
+ ldr r0, _081115F4 @ =gSaveBlock2
+ ldrb r0, [r0, 0x13]
+ cmp r0, 0x1
+ bne _0811164C
+_081115EA:
+ strh r3, [r5, 0xA]
+ movs r0, 0x6D
+ bl PlaySE
+ b _0811163C
+ .align 2, 0
+_081115F4: .4byte gSaveBlock2
+_081115F8:
+ movs r0, 0x15
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ b _0811163C
+_0811160A:
+ ldr r0, _08111630 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0811164C
+ bl sub_8111738
+ ldr r0, _08111634 @ =0x02000000
+ ldr r1, _08111638 @ =0x000006e4
+ adds r0, r1
+ ldr r1, [r0]
+ ldrh r0, [r5, 0xA]
+ strb r0, [r1]
+ adds r0, r4, 0
+ bl DestroyTask
+ b _0811164C
+ .align 2, 0
+_08111630: .4byte gPaletteFade
+_08111634: .4byte 0x02000000
+_08111638: .4byte 0x000006e4
+_0811163C:
+ ldr r0, _08111654 @ =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+_0811164C:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08111654: .4byte gTasks
+ thumb_func_end sub_811155C
+
+ thumb_func_start sub_8111658
+sub_8111658: @ 8111658
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ ldr r0, _08111720 @ =gUnknown_083F858C
+ bl LoadSpriteSheet
+ ldr r0, _08111724 @ =gUnknown_083F8594
+ bl LoadSpritePalette
+ movs r5, 0
+ movs r1, 0
+ ldr r0, _08111728 @ =0x02000000
+ movs r3, 0x89
+ lsls r3, 1
+ adds r2, r0, r3
+ ldrh r7, [r2]
+ cmp r5, r7
+ bge _0811170C
+ adds r6, r0, 0
+ mov r8, r2
+_08111680:
+ lsls r0, r1, 16
+ asrs r4, r0, 16
+ lsls r1, r4, 1
+ movs r2, 0xC4
+ lsls r2, 3
+ adds r0, r6, r2
+ adds r1, r0
+ ldr r2, _0811172C @ =gRegionMapLocations
+ movs r3, 0
+ ldrsh r0, [r1, r3]
+ lsls r0, 3
+ adds r0, r2
+ ldrb r1, [r0]
+ adds r1, 0x1
+ lsls r1, 3
+ adds r1, 0x4
+ ldrb r2, [r0, 0x1]
+ lsls r2, 19
+ ldrb r3, [r0, 0x2]
+ subs r3, 0x1
+ lsls r3, 2
+ ldrb r0, [r0, 0x3]
+ subs r0, 0x1
+ lsls r0, 2
+ movs r7, 0xE0
+ lsls r7, 13
+ adds r2, r7
+ asrs r2, 16
+ adds r1, r3
+ adds r2, r0
+ ldr r0, _08111730 @ =gSpriteTemplate_83F85A4
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x40
+ beq _081116FC
+ ldr r0, _08111734 @ =gSprites
+ lsls r2, r1, 4
+ adds r2, r1
+ lsls r2, 2
+ adds r2, r0
+ adds r3, r2, 0
+ adds r3, 0x3E
+ ldrb r0, [r3]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r3]
+ adds r1, r5, 0
+ lsls r0, r1, 16
+ movs r3, 0x80
+ lsls r3, 9
+ adds r0, r3
+ lsrs r5, r0, 16
+ lsls r1, 16
+ asrs r1, 14
+ movs r7, 0xCC
+ lsls r7, 3
+ adds r0, r6, r7
+ adds r1, r0
+ str r2, [r1]
+_081116FC:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ asrs r0, 16
+ mov r2, r8
+ ldrh r2, [r2]
+ cmp r0, r2
+ blt _08111680
+_0811170C:
+ ldr r0, _08111728 @ =0x02000000
+ movs r3, 0xDC
+ lsls r3, 3
+ adds r0, r3
+ strh r5, [r0]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08111720: .4byte gUnknown_083F858C
+_08111724: .4byte gUnknown_083F8594
+_08111728: .4byte 0x02000000
+_0811172C: .4byte gRegionMapLocations
+_08111730: .4byte gSpriteTemplate_83F85A4
+_08111734: .4byte gSprites
+ thumb_func_end sub_8111658
+
+ thumb_func_start sub_8111738
+sub_8111738: @ 8111738
+ push {r4-r6,lr}
+ movs r0, 0x2
+ bl FreeSpriteTilesByTag
+ movs r0, 0x2
+ bl FreeSpritePaletteByTag
+ movs r4, 0
+ ldr r1, _081117A4 @ =0x02000000
+ movs r2, 0xDC
+ lsls r2, 3
+ adds r0, r1, r2
+ ldrh r2, [r0]
+ cmp r4, r2
+ bcs _08111776
+ adds r6, r1, 0
+ adds r5, r0, 0
+_0811175A:
+ lsls r0, r4, 2
+ movs r2, 0xCC
+ lsls r2, 3
+ adds r1, r6, r2
+ adds r0, r1
+ ldr r0, [r0]
+ bl DestroySprite
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ ldrh r0, [r5]
+ cmp r4, r0
+ bcc _0811175A
+_08111776:
+ movs r0, 0x3
+ bl FreeSpriteTilesByTag
+ movs r0, 0x3
+ bl FreeSpritePaletteByTag
+ movs r4, 0
+ ldr r5, _081117A8 @ =0x02000fa8
+_08111786:
+ lsls r0, r4, 2
+ adds r0, r5
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _08111794
+ bl DestroySprite
+_08111794:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x2
+ bls _08111786
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081117A4: .4byte 0x02000000
+_081117A8: .4byte 0x02000fa8
+ thumb_func_end sub_8111738
+
+ thumb_func_start sub_81117AC
+sub_81117AC: @ 81117AC
+ push {lr}
+ sub sp, 0x8
+ ldr r0, _081117D4 @ =gUnknown_083F8664
+ ldr r1, [r0, 0x4]
+ ldr r0, [r0]
+ str r0, [sp]
+ str r1, [sp, 0x4]
+ ldr r0, _081117D8 @ =gAreaUnknownTiles
+ ldr r1, _081117DC @ =0x02000fb4
+ bl LZ77UnCompWram
+ mov r0, sp
+ bl LoadSpriteSheet
+ ldr r0, _081117E0 @ =gUnknown_083F865C
+ bl LoadSpritePalette
+ add sp, 0x8
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081117D4: .4byte gUnknown_083F8664
+_081117D8: .4byte gAreaUnknownTiles
+_081117DC: .4byte 0x02000fb4
+_081117E0: .4byte gUnknown_083F865C
+ thumb_func_end sub_81117AC
+
+ thumb_func_start sub_81117E4
+sub_81117E4: @ 81117E4
+ push {r4-r7,lr}
+ ldr r1, _08111810 @ =0x02000000
+ movs r2, 0x88
+ lsls r2, 1
+ adds r0, r1, r2
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _08111818
+ movs r4, 0
+ ldr r7, _08111814 @ =0x00000fa8
+ adds r2, r1, r7
+ movs r1, 0
+_081117FC:
+ lsls r0, r4, 2
+ adds r0, r2
+ str r1, [r0]
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x2
+ bls _081117FC
+ b _0811188E
+ .align 2, 0
+_08111810: .4byte 0x02000000
+_08111814: .4byte 0x00000fa8
+_08111818:
+ movs r4, 0
+ ldr r6, _08111868 @ =gSprites
+ ldr r0, _0811186C @ =0x00000fa8
+ adds r5, r1, r0
+_08111820:
+ lsls r1, r4, 21
+ movs r2, 0xA0
+ lsls r2, 16
+ adds r1, r2
+ asrs r1, 16
+ ldr r0, _08111870 @ =gSpriteTemplate_83F8674
+ movs r2, 0x8C
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x40
+ beq _0811187C
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r2, r6
+ ldrh r3, [r2, 0x4]
+ lsls r0, r3, 22
+ lsrs r0, 22
+ lsls r1, r4, 4
+ adds r0, r1
+ ldr r7, _08111874 @ =0x000003ff
+ adds r1, r7, 0
+ ands r0, r1
+ ldr r7, _08111878 @ =0xfffffc00
+ adds r1, r7, 0
+ ands r3, r1
+ orrs r3, r0
+ strh r3, [r2, 0x4]
+ lsls r0, r4, 2
+ adds r0, r5
+ str r2, [r0]
+ b _08111884
+ .align 2, 0
+_08111868: .4byte gSprites
+_0811186C: .4byte 0x00000fa8
+_08111870: .4byte gSpriteTemplate_83F8674
+_08111874: .4byte 0x000003ff
+_08111878: .4byte 0xfffffc00
+_0811187C:
+ lsls r0, r4, 2
+ adds r0, r5
+ movs r1, 0
+ str r1, [r0]
+_08111884:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x2
+ bls _08111820
+_0811188E:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81117E4
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/pokedex_cry_screen.s b/asm/pokedex_cry_screen.s
new file mode 100644
index 000000000..e14ca8f78
--- /dev/null
+++ b/asm/pokedex_cry_screen.s
@@ -0,0 +1,1164 @@
+ .include "constants/gba_constants.s"
+ .include "constants/species_constants.s"
+ .include "asm/macros.s"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_8119E3C
+sub_8119E3C: @ 8119E3C
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ adds r5, r0, 0
+ lsls r1, 24
+ lsrs r2, r1, 24
+ movs r0, 0
+ mov r9, r0
+ ldr r6, _08119E60 @ =gUnknown_03005E98
+ ldrb r0, [r6]
+ cmp r0, 0x1
+ beq _08119EE0
+ cmp r0, 0x1
+ bgt _08119E64
+ cmp r0, 0
+ beq _08119E6A
+ b _08119F74
+ .align 2, 0
+_08119E60: .4byte gUnknown_03005E98
+_08119E64:
+ cmp r0, 0x2
+ beq _08119F60
+ b _08119F74
+_08119E6A:
+ ldr r4, _08119ECC @ =0x0201c000
+ ldrh r0, [r5]
+ movs r1, 0
+ strh r0, [r4, 0x14]
+ ldrb r0, [r5, 0x5]
+ strb r0, [r4, 0x16]
+ strb r1, [r4, 0x1A]
+ strb r1, [r4, 0x1B]
+ strb r1, [r4, 0x10]
+ movs r0, 0x1C
+ strb r0, [r4, 0x12]
+ strb r1, [r4, 0x11]
+ ldrb r1, [r5, 0x4]
+ lsls r1, 19
+ negs r1, r1
+ asrs r1, 16
+ adds r0, r2, 0
+ movs r2, 0x1
+ bl sub_811A350
+ movs r0, 0
+ mov r12, r6
+ ldr r1, _08119ED0 @ =0x040000d4
+ ldr r7, _08119ED4 @ =gUnknown_083FB718
+ ldr r2, _08119ED8 @ =0xfffe4000
+ adds r6, r4, r2
+ ldr r5, _08119EDC @ =0x80000010
+_08119EA0:
+ movs r3, 0
+ adds r4, r0, 0x1
+ lsls r2, r0, 5
+_08119EA6:
+ str r7, [r1]
+ adds r0, r2, r3
+ lsls r0, 5
+ adds r0, r6
+ str r0, [r1, 0x4]
+ str r5, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x1F
+ bls _08119EA6
+ lsls r0, r4, 24
+ lsrs r0, 24
+ cmp r0, 0x6
+ bls _08119EA0
+ mov r1, r12
+ b _08119F50
+ .align 2, 0
+_08119ECC: .4byte 0x0201c000
+_08119ED0: .4byte 0x040000d4
+_08119ED4: .4byte gUnknown_083FB718
+_08119ED8: .4byte 0xfffe4000
+_08119EDC: .4byte 0x80000010
+_08119EE0:
+ ldrb r0, [r5, 0x2]
+ lsls r0, 27
+ lsrs r7, r0, 16
+ ldrb r1, [r5, 0x3]
+ lsls r1, 12
+ ldrh r0, [r5]
+ lsls r0, 18
+ lsrs r0, 23
+ adds r1, r0
+ lsls r1, 16
+ lsrs r6, r1, 16
+ movs r0, 0
+ ldr r2, _08119F58 @ =0x0201c000
+ mov r8, r2
+ movs r1, 0xC0
+ lsls r1, 19
+ mov r12, r1
+_08119F02:
+ movs r3, 0
+ adds r4, r0, 0x1
+ lsls r5, r0, 6
+_08119F08:
+ lsls r1, r3, 1
+ adds r1, r5
+ adds r1, r7
+ add r1, r12
+ adds r2, r6, 0
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ strh r2, [r1]
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x1F
+ bls _08119F08
+ lsls r0, r4, 24
+ lsrs r0, 24
+ cmp r0, 0x6
+ bls _08119F02
+ mov r2, r8
+ ldrb r0, [r2, 0x16]
+ movs r4, 0
+ cmp r0, 0
+ beq _08119F4E
+ mov r5, r8
+_08119F38:
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_811A1C8
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldrb r0, [r5, 0x16]
+ lsls r0, 3
+ cmp r4, r0
+ blt _08119F38
+_08119F4E:
+ ldr r1, _08119F5C @ =gUnknown_03005E98
+_08119F50:
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _08119F74
+ .align 2, 0
+_08119F58: .4byte 0x0201c000
+_08119F5C: .4byte gUnknown_03005E98
+_08119F60:
+ bl sub_811A324
+ ldr r0, _08119F84 @ =gUnknown_083FB6F8
+ ldrb r1, [r5, 0x3]
+ lsls r1, 4
+ movs r2, 0x20
+ bl LoadPalette
+ movs r0, 0x1
+ mov r9, r0
+_08119F74:
+ mov r0, r9
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08119F84: .4byte gUnknown_083FB6F8
+ thumb_func_end sub_8119E3C
+
+ thumb_func_start sub_8119F88
+sub_8119F88: @ 8119F88
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl sub_811A324
+ adds r0, r4, 0
+ bl sub_811A15C
+ ldr r1, _08119FC4 @ =0x0201c000
+ ldrb r0, [r1, 0x1B]
+ cmp r0, 0
+ beq _08119FA6
+ subs r0, 0x1
+ strb r0, [r1, 0x1B]
+_08119FA6:
+ ldrb r0, [r1, 0x1A]
+ cmp r0, 0
+ beq _08119FC8
+ subs r0, 0x1
+ strb r0, [r1, 0x1A]
+ lsls r0, 24
+ cmp r0, 0
+ bne _08119FC8
+ ldrh r0, [r1, 0x18]
+ bl sub_811A0A0
+ bl sub_811A124
+ b _0811A044
+ .align 2, 0
+_08119FC4: .4byte 0x0201c000
+_08119FC8:
+ ldr r5, _08119FD8 @ =0x0201c000
+ ldrb r0, [r5, 0x10]
+ cmp r0, 0
+ bne _08119FDC
+ bl sub_811A124
+ b _0811A044
+ .align 2, 0
+_08119FD8: .4byte 0x0201c000
+_08119FDC:
+ cmp r0, 0x1
+ bne _08119FE6
+ bl sub_811A0C0
+ b _0811A006
+_08119FE6:
+ cmp r0, 0x8
+ bls _0811A006
+ bl IsCryPlaying
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ bne _08119FFE
+ bl sub_811A124
+ strb r4, [r5, 0x10]
+ b _0811A044
+_08119FFE:
+ bl sub_811A0C0
+ movs r0, 0x1
+ strb r0, [r5, 0x10]
+_0811A006:
+ ldr r5, _0811A04C @ =0x0201c000
+ ldrb r4, [r5, 0x10]
+ subs r4, 0x1
+ lsls r4, 25
+ lsrs r4, 24
+ ldrb r0, [r5, 0x16]
+ lsls r0, 3
+ ldrb r1, [r5, 0x11]
+ adds r0, r1
+ subs r0, 0x2
+ lsls r0, 24
+ lsrs r0, 24
+ adds r1, r4, r5
+ ldrb r1, [r1]
+ bl sub_811A1C8
+ ldrb r0, [r5, 0x16]
+ lsls r0, 3
+ ldrb r1, [r5, 0x11]
+ adds r0, r1
+ subs r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ adds r4, 0x1
+ adds r4, r5
+ ldrb r1, [r4]
+ bl sub_811A1C8
+ ldrb r0, [r5, 0x10]
+ adds r0, 0x1
+ strb r0, [r5, 0x10]
+_0811A044:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811A04C: .4byte 0x0201c000
+ thumb_func_end sub_8119F88
+
+ thumb_func_start sub_811A050
+sub_811A050: @ 811A050
+ push {r4-r6,lr}
+ lsls r0, 16
+ lsrs r5, r0, 16
+ adds r6, r5, 0
+ ldr r0, _0811A08C @ =gMPlay_BGM
+ ldr r0, [r0, 0x4]
+ cmp r0, 0
+ bge _0811A09A
+ ldr r4, _0811A090 @ =0x0201c000
+ ldrb r0, [r4, 0x1A]
+ cmp r0, 0
+ bne _0811A09A
+ ldrb r0, [r4, 0x1B]
+ cmp r0, 0
+ bne _0811A09A
+ movs r0, 0x4
+ strb r0, [r4, 0x1B]
+ bl IsCryPlaying
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0811A094
+ bl StopCry
+ strh r5, [r4, 0x18]
+ movs r0, 0x2
+ strb r0, [r4, 0x1A]
+ b _0811A09A
+ .align 2, 0
+_0811A08C: .4byte gMPlay_BGM
+_0811A090: .4byte 0x0201c000
+_0811A094:
+ adds r0, r6, 0
+ bl sub_811A0A0
+_0811A09A:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_811A050
+
+ thumb_func_start sub_811A0A0
+sub_811A0A0: @ 811A0A0
+ push {lr}
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0
+ movs r2, 0x7D
+ movs r3, 0xA
+ bl PlayCry2
+ ldr r1, _0811A0BC @ =0x0201c000
+ movs r0, 0x1
+ strb r0, [r1, 0x10]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811A0BC: .4byte 0x0201c000
+ thumb_func_end sub_811A0A0
+
+ thumb_func_start sub_811A0C0
+sub_811A0C0: @ 811A0C0
+ push {r4,lr}
+ ldr r3, _0811A0D0 @ =gPcmDmaCounter
+ movs r0, 0
+ ldrsb r0, [r3, r0]
+ cmp r0, 0x1
+ bgt _0811A0D8
+ ldr r0, _0811A0D4 @ =gSoundInfo + 0x350
+ b _0811A0F0
+ .align 2, 0
+_0811A0D0: .4byte gPcmDmaCounter
+_0811A0D4: .4byte gSoundInfo + 0x350
+_0811A0D8:
+ ldr r2, _0811A11C @ =gSoundInfo
+ ldrb r1, [r2, 0xB]
+ movs r0, 0
+ ldrsb r0, [r3, r0]
+ subs r0, 0x1
+ subs r1, r0
+ ldr r0, [r2, 0x10]
+ muls r0, r1
+ movs r1, 0xD4
+ lsls r1, 2
+ adds r2, r1
+ adds r0, r2
+_0811A0F0:
+ movs r1, 0xC6
+ lsls r1, 3
+ adds r3, r0, r1
+ movs r2, 0
+ ldr r4, _0811A120 @ =0x0201c000
+_0811A0FA:
+ adds r1, r2, r4
+ lsls r0, r2, 1
+ adds r0, r3
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ lsls r0, 1
+ strb r0, [r1]
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0xF
+ bls _0811A0FA
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811A11C: .4byte gSoundInfo
+_0811A120: .4byte 0x0201c000
+ thumb_func_end sub_811A0C0
+
+ thumb_func_start sub_811A124
+sub_811A124: @ 811A124
+ push {r4,lr}
+ ldr r4, _0811A158 @ =0x0201c000
+ ldrb r0, [r4, 0x16]
+ lsls r0, 3
+ ldrb r1, [r4, 0x11]
+ adds r0, r1
+ subs r0, 0x2
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0
+ bl sub_811A1C8
+ ldrb r0, [r4, 0x16]
+ lsls r0, 3
+ ldrb r4, [r4, 0x11]
+ adds r0, r4
+ subs r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0
+ bl sub_811A1C8
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811A158: .4byte 0x0201c000
+ thumb_func_end sub_811A124
+
+ thumb_func_start sub_811A15C
+sub_811A15C: @ 811A15C
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r4, _0811A1B4 @ =0x0201c000
+ ldrb r1, [r4, 0x11]
+ movs r2, 0
+ bl sub_811A350
+ ldrb r0, [r4, 0x11]
+ adds r0, 0x2
+ strb r0, [r4, 0x11]
+ ldrb r0, [r4, 0x11]
+ lsrs r0, 3
+ ldrb r2, [r4, 0x16]
+ adds r1, r0, r2
+ adds r2, r1, 0x1
+ adds r0, r2, 0
+ asrs r0, 5
+ lsls r0, 5
+ subs r0, r2, r0
+ lsls r0, 16
+ lsrs r3, r0, 16
+ movs r1, 0
+ ldr r2, _0811A1B8 @ =0x040000d4
+ ldr r6, _0811A1BC @ =gUnknown_083FB718
+ ldr r0, _0811A1C0 @ =0xfffe4000
+ adds r5, r4, r0
+ ldr r4, _0811A1C4 @ =0x80000010
+_0811A194:
+ str r6, [r2]
+ lsls r0, r1, 5
+ adds r0, r3
+ lsls r0, 5
+ adds r0, r5
+ str r0, [r2, 0x4]
+ str r4, [r2, 0x8]
+ ldr r0, [r2, 0x8]
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x6
+ bls _0811A194
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811A1B4: .4byte 0x0201c000
+_0811A1B8: .4byte 0x040000d4
+_0811A1BC: .4byte gUnknown_083FB718
+_0811A1C0: .4byte 0xfffe4000
+_0811A1C4: .4byte 0x80000010
+ thumb_func_end sub_811A15C
+
+ thumb_func_start sub_811A1C8
+sub_811A1C8: @ 811A1C8
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0xC
+ lsls r5, r0, 24
+ lsrs r4, r5, 24
+ lsls r1, 24
+ movs r0, 0xFE
+ lsls r0, 23
+ adds r1, r0
+ lsrs r1, 16
+ adds r0, r1, 0
+ bl __floatsidf
+ ldr r3, _0811A280 @ =0x00000000
+ ldr r2, _0811A27C @ =0x40920000
+ bl __divdf3
+ bl __fixunsdfsi
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, 0x37
+ bls _0811A1FE
+ movs r6, 0x37
+_0811A1FE:
+ str r6, [sp]
+ movs r7, 0x1
+ ands r7, r4
+ ldr r0, _0811A284 @ =0x0201c000
+ mov r10, r0
+ lsrs r5, 27
+ mov r8, r5
+ ldr r0, _0811A288 @ =gUnknown_083FB738
+ mov r1, r10
+ ldrb r1, [r1, 0x12]
+ cmp r6, r1
+ bls _0811A298
+ adds r0, r7, r0
+ ldrb r0, [r0]
+ mov r9, r0
+ movs r2, 0x7
+ ands r2, r4
+_0811A220:
+ lsls r1, r6, 1
+ lsls r0, r2, 3
+ adds r0, r2
+ lsls r0, 4
+ adds r1, r0
+ ldr r3, _0811A28C @ =gUnknown_083FB274
+ adds r1, r3
+ mov r3, r8
+ lsls r0, r3, 5
+ ldrh r1, [r1]
+ adds r0, r1
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r1, _0811A290 @ =0x02000000
+ adds r5, r0, r1
+ ldrb r4, [r5]
+ mov r3, r9
+ ands r4, r3
+ strb r4, [r5]
+ adds r0, r6, 0
+ movs r1, 0x3
+ str r2, [sp, 0x8]
+ bl __udivsi3
+ lsls r0, 24
+ lsrs r0, 24
+ subs r0, 0x1
+ movs r1, 0xF
+ ands r0, r1
+ lsls r1, r7, 4
+ adds r0, r1
+ ldr r1, _0811A294 @ =gUnknown_083FB73A
+ adds r0, r1
+ ldrb r0, [r0]
+ orrs r4, r0
+ strb r4, [r5]
+ subs r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r2, [sp, 0x8]
+ ldr r3, _0811A284 @ =0x0201c000
+ ldrb r3, [r3, 0x12]
+ cmp r6, r3
+ bhi _0811A220
+ b _0811A2FA
+ .align 2, 0
+_0811A27C: .4byte 0x40920000
+_0811A280: .4byte 0x00000000
+_0811A284: .4byte 0x0201c000
+_0811A288: .4byte gUnknown_083FB738
+_0811A28C: .4byte gUnknown_083FB274
+_0811A290: .4byte 0x02000000
+_0811A294: .4byte gUnknown_083FB73A
+_0811A298:
+ lsls r1, r7, 4
+ str r1, [sp, 0x4]
+ adds r0, r7, r0
+ ldrb r0, [r0]
+ mov r9, r0
+ movs r7, 0x7
+ ands r7, r4
+_0811A2A6:
+ lsls r1, r6, 1
+ lsls r0, r7, 3
+ adds r0, r7
+ lsls r0, 4
+ adds r1, r0
+ ldr r2, _0811A314 @ =gUnknown_083FB274
+ adds r1, r2
+ mov r3, r8
+ lsls r0, r3, 5
+ ldrh r1, [r1]
+ adds r0, r1
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r1, _0811A318 @ =0x02000000
+ adds r5, r0, r1
+ ldrb r4, [r5]
+ mov r2, r9
+ ands r4, r2
+ strb r4, [r5]
+ adds r0, r6, 0
+ movs r1, 0x3
+ bl __udivsi3
+ lsls r0, 24
+ lsrs r0, 24
+ subs r0, 0x1
+ movs r1, 0xF
+ ands r0, r1
+ ldr r3, [sp, 0x4]
+ adds r0, r3
+ ldr r1, _0811A31C @ =gUnknown_083FB73A
+ adds r0, r1
+ ldrb r0, [r0]
+ orrs r4, r0
+ strb r4, [r5]
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r2, _0811A320 @ =0x0201c000
+ ldrb r2, [r2, 0x12]
+ cmp r6, r2
+ bcc _0811A2A6
+_0811A2FA:
+ mov r3, sp
+ ldrb r0, [r3]
+ mov r3, r10
+ strb r0, [r3, 0x12]
+ 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
+_0811A314: .4byte gUnknown_083FB274
+_0811A318: .4byte 0x02000000
+_0811A31C: .4byte gUnknown_083FB73A
+_0811A320: .4byte 0x0201c000
+ thumb_func_end sub_811A1C8
+
+ thumb_func_start sub_811A324
+sub_811A324: @ 811A324
+ ldr r2, _0811A344 @ =0x040000d4
+ ldr r0, _0811A348 @ =0x02000000
+ str r0, [r2]
+ movs r1, 0xE0
+ lsls r1, 9
+ adds r0, r1
+ ldrh r0, [r0, 0x14]
+ movs r1, 0xC0
+ lsls r1, 19
+ adds r0, r1
+ str r0, [r2, 0x4]
+ ldr r0, _0811A34C @ =0x80000e00
+ str r0, [r2, 0x8]
+ ldr r0, [r2, 0x8]
+ bx lr
+ .align 2, 0
+_0811A344: .4byte 0x040000d4
+_0811A348: .4byte 0x02000000
+_0811A34C: .4byte 0x80000e00
+ thumb_func_end sub_811A324
+
+ thumb_func_start sub_811A350
+sub_811A350: @ 811A350
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r3, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ lsls r2, 24
+ lsrs r2, 24
+ cmp r0, 0x1
+ beq _0811A38C
+ cmp r0, 0x1
+ bgt _0811A36E
+ cmp r0, 0
+ beq _0811A378
+ b _0811A3C4
+_0811A36E:
+ cmp r3, 0x2
+ beq _0811A3A0
+ cmp r3, 0x3
+ beq _0811A3B4
+ b _0811A3C4
+_0811A378:
+ cmp r2, 0
+ beq _0811A384
+ ldr r0, _0811A380 @ =REG_BG0VOFS
+ b _0811A3C2
+ .align 2, 0
+_0811A380: .4byte REG_BG0VOFS
+_0811A384:
+ ldr r0, _0811A388 @ =REG_BG0HOFS
+ b _0811A3C2
+ .align 2, 0
+_0811A388: .4byte REG_BG0HOFS
+_0811A38C:
+ cmp r2, 0
+ beq _0811A398
+ ldr r0, _0811A394 @ =REG_BG1VOFS
+ b _0811A3C2
+ .align 2, 0
+_0811A394: .4byte REG_BG1VOFS
+_0811A398:
+ ldr r0, _0811A39C @ =REG_BG1HOFS
+ b _0811A3C2
+ .align 2, 0
+_0811A39C: .4byte REG_BG1HOFS
+_0811A3A0:
+ cmp r2, 0
+ beq _0811A3AC
+ ldr r0, _0811A3A8 @ =REG_BG2VOFS
+ b _0811A3C2
+ .align 2, 0
+_0811A3A8: .4byte REG_BG2VOFS
+_0811A3AC:
+ ldr r0, _0811A3B0 @ =REG_BG2HOFS
+ b _0811A3C2
+ .align 2, 0
+_0811A3B0: .4byte REG_BG2HOFS
+_0811A3B4:
+ cmp r2, 0
+ beq _0811A3C0
+ ldr r0, _0811A3BC @ =REG_BG3VOFS
+ b _0811A3C2
+ .align 2, 0
+_0811A3BC: .4byte REG_BG3VOFS
+_0811A3C0:
+ ldr r0, _0811A3C8 @ =REG_BG3HOFS
+_0811A3C2:
+ strh r1, [r0]
+_0811A3C4:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811A3C8: .4byte REG_BG3HOFS
+ thumb_func_end sub_811A350
+
+ thumb_func_start sub_811A3CC
+sub_811A3CC: @ 811A3CC
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ adds r4, r0, 0
+ movs r0, 0
+ str r0, [sp]
+ ldr r0, _0811A3F4 @ =gUnknown_03005E98
+ ldrb r1, [r0]
+ mov r10, r0
+ cmp r1, 0x1
+ beq _0811A42C
+ cmp r1, 0x1
+ bgt _0811A3F8
+ cmp r1, 0
+ beq _0811A3FE
+ b _0811A4D6
+ .align 2, 0
+_0811A3F4: .4byte gUnknown_03005E98
+_0811A3F8:
+ cmp r1, 0x2
+ beq _0811A494
+ b _0811A4D6
+_0811A3FE:
+ ldr r0, _0811A424 @ =gUnknown_083FAF3C
+ ldrh r1, [r4]
+ movs r2, 0xC0
+ lsls r2, 19
+ adds r1, r2
+ bl LZ77UnCompVram
+ ldr r0, _0811A428 @ =gUnknown_083FAF1C
+ ldrb r1, [r4, 0x3]
+ lsls r1, 4
+ movs r2, 0x20
+ bl LoadPalette
+ mov r1, r10
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _0811A4D6
+ .align 2, 0
+_0811A424: .4byte gUnknown_083FAF3C
+_0811A428: .4byte gUnknown_083FAF1C
+_0811A42C:
+ ldrb r0, [r4, 0x2]
+ lsls r0, 11
+ movs r1, 0xC0
+ lsls r1, 19
+ adds r0, r1
+ mov r8, r0
+ ldrh r0, [r4]
+ lsls r0, 18
+ lsrs r0, 23
+ mov r12, r0
+ movs r5, 0
+ ldr r2, _0811A490 @ =gUnknown_083FAE7C
+ mov r9, r2
+_0811A446:
+ movs r3, 0
+ lsls r0, r5, 2
+ adds r7, r5, 0x1
+ adds r0, r5
+ lsls r6, r0, 1
+_0811A450:
+ ldrb r0, [r4, 0x5]
+ adds r0, r5, r0
+ ldrb r2, [r4, 0x4]
+ adds r2, r3, r2
+ lsls r2, 1
+ lsls r0, 6
+ adds r2, r0
+ add r2, r8
+ adds r1, r6, r3
+ lsls r1, 1
+ add r1, r9
+ ldrb r0, [r4, 0x3]
+ lsls r0, 12
+ ldrh r1, [r1]
+ orrs r0, r1
+ add r0, r12
+ strh r0, [r2]
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x9
+ bls _0811A450
+ lsls r0, r7, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x7
+ bls _0811A446
+ mov r3, r10
+ ldrb r0, [r3]
+ adds r0, 0x1
+ strb r0, [r3]
+ b _0811A4D6
+ .align 2, 0
+_0811A490: .4byte gUnknown_083FAE7C
+_0811A494:
+ ldr r0, _0811A4E8 @ =gCryMeterNeedleSpriteSheets
+ bl LoadSpriteSheets
+ ldr r0, _0811A4EC @ =gCryMeterNeedleSpritePalettes
+ bl LoadSpritePalettes
+ ldr r0, _0811A4F0 @ =gSpriteTemplate_83FB774
+ ldrb r1, [r4, 0x4]
+ lsls r1, 19
+ movs r2, 0xA0
+ lsls r2, 14
+ adds r1, r2
+ asrs r1, 16
+ ldrb r2, [r4, 0x5]
+ lsls r2, 19
+ movs r3, 0xE0
+ lsls r3, 14
+ adds r2, r3
+ asrs r2, 16
+ movs r3, 0x1
+ bl CreateSprite
+ ldr r1, _0811A4F4 @ =0x0201c800
+ lsls r0, 24
+ lsrs r0, 24
+ movs r2, 0
+ strh r0, [r1, 0x4]
+ movs r0, 0x20
+ strb r0, [r1]
+ strb r0, [r1, 0x1]
+ strb r2, [r1, 0x2]
+ movs r0, 0x1
+ str r0, [sp]
+_0811A4D6:
+ ldr r0, [sp]
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0811A4E8: .4byte gCryMeterNeedleSpriteSheets
+_0811A4EC: .4byte gCryMeterNeedleSpritePalettes
+_0811A4F0: .4byte gSpriteTemplate_83FB774
+_0811A4F4: .4byte 0x0201c800
+ thumb_func_end sub_811A3CC
+
+ thumb_func_start sub_811A4F8
+sub_811A4F8: @ 811A4F8
+ push {r4,r5,lr}
+ ldr r5, _0811A52C @ =gSprites
+ ldr r4, _0811A530 @ =0x0201c800
+ ldrh r1, [r4, 0x4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldrb r0, [r0, 0x5]
+ lsrs r0, 4
+ bl GetSpritePaletteTagByPaletteNum
+ lsls r0, 16
+ lsrs r0, 16
+ bl FreeSpritePaletteByTag
+ ldrh r1, [r4, 0x4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ bl DestroySprite
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811A52C: .4byte gSprites
+_0811A530: .4byte 0x0201c800
+ thumb_func_end sub_811A4F8
+
+ thumb_func_start sub_811A534
+sub_811A534: @ 811A534
+ push {r4-r7,lr}
+ sub sp, 0x14
+ adds r7, r0, 0
+ ldr r3, _0811A578 @ =gSprites
+ ldr r5, _0811A57C @ =0x0201c800
+ ldrh r1, [r5, 0x4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ ldrb r2, [r0, 0x1]
+ movs r1, 0x4
+ negs r1, r1
+ ands r1, r2
+ movs r2, 0x1
+ orrs r1, r2
+ strb r1, [r0, 0x1]
+ ldrh r1, [r5, 0x4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ movs r1, 0
+ strh r1, [r0, 0x6]
+ ldr r0, _0811A580 @ =0xfffff800
+ adds r1, r5, r0
+ ldrb r0, [r1, 0x10]
+ cmp r0, 0x2
+ beq _0811A5AA
+ cmp r0, 0x2
+ bgt _0811A584
+ cmp r0, 0
+ beq _0811A58A
+ b _0811A5F4
+ .align 2, 0
+_0811A578: .4byte gSprites
+_0811A57C: .4byte 0x0201c800
+_0811A580: .4byte 0xfffff800
+_0811A584:
+ cmp r0, 0x6
+ beq _0811A5E2
+ b _0811A5F4
+_0811A58A:
+ movs r0, 0x20
+ strb r0, [r5, 0x1]
+ movs r0, 0
+ ldrsb r0, [r5, r0]
+ cmp r0, 0
+ ble _0811A5A4
+ ldrb r0, [r5, 0x2]
+ add r4, sp, 0xC
+ cmp r0, 0x1
+ beq _0811A5F6
+ subs r0, 0x1
+ strb r0, [r5, 0x2]
+ b _0811A5F6
+_0811A5A4:
+ movs r0, 0x5
+ strb r0, [r5, 0x2]
+ b _0811A5F4
+_0811A5AA:
+ movs r3, 0
+ movs r2, 0
+ add r4, sp, 0xC
+ adds r5, r1, 0
+_0811A5B2:
+ lsls r1, r3, 24
+ asrs r1, 24
+ adds r0, r2, r5
+ ldrb r0, [r0]
+ cmp r1, r0
+ bge _0811A5C0
+ adds r3, r0, 0
+_0811A5C0:
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0xF
+ bls _0811A5B2
+ lsls r0, r3, 24
+ asrs r0, 24
+ movs r1, 0xD0
+ muls r0, r1
+ cmp r0, 0
+ bge _0811A5D8
+ adds r0, 0xFF
+_0811A5D8:
+ lsls r0, 16
+ asrs r0, 24
+ bl sub_811A6D8
+ b _0811A5F6
+_0811A5E2:
+ ldr r1, _0811A620 @ =0xfffff80a
+ adds r0, r5, r1
+ ldrb r1, [r0]
+ movs r0, 0xD0
+ muls r0, r1
+ lsls r0, 16
+ asrs r0, 24
+ bl sub_811A6D8
+_0811A5F4:
+ add r4, sp, 0xC
+_0811A5F6:
+ ldr r0, _0811A624 @ =0x0201c800
+ ldrb r3, [r0]
+ movs r2, 0
+ ldrsb r2, [r0, r2]
+ ldrb r6, [r0, 0x1]
+ movs r1, 0x1
+ ldrsb r1, [r0, r1]
+ adds r5, r0, 0
+ cmp r2, r1
+ beq _0811A63C
+ cmp r2, r1
+ bge _0811A628
+ ldrb r0, [r5, 0x2]
+ adds r0, r3, r0
+ strb r0, [r5]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, r1
+ ble _0811A63C
+ b _0811A636
+ .align 2, 0
+_0811A620: .4byte 0xfffff80a
+_0811A624: .4byte 0x0201c800
+_0811A628:
+ ldrb r0, [r5, 0x2]
+ subs r0, r3, r0
+ strb r0, [r5]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, r1
+ bge _0811A63C
+_0811A636:
+ strb r6, [r5]
+ movs r0, 0
+ strb r0, [r5, 0x1]
+_0811A63C:
+ ldr r2, _0811A6CC @ =0xffff0000
+ ldr r0, [sp, 0x4]
+ ands r0, r2
+ movs r1, 0x80
+ lsls r1, 1
+ orrs r0, r1
+ ldr r1, _0811A6D0 @ =0x0000ffff
+ ands r0, r1
+ movs r1, 0x80
+ lsls r1, 17
+ orrs r0, r1
+ str r0, [sp, 0x4]
+ movs r1, 0
+ ldrsb r1, [r5, r1]
+ lsls r1, 24
+ lsrs r1, 16
+ ldr r0, [sp, 0x8]
+ ands r0, r2
+ orrs r0, r1
+ str r0, [sp, 0x8]
+ add r0, sp, 0x4
+ adds r1, r4, 0
+ movs r2, 0x1
+ movs r3, 0x2
+ bl ObjAffineSet
+ add r0, sp, 0xC
+ ldrh r1, [r0]
+ ldrh r2, [r4, 0x2]
+ ldrh r3, [r4, 0x4]
+ ldrh r0, [r4, 0x6]
+ str r0, [sp]
+ movs r0, 0
+ bl SetOamMatrix
+ ldr r2, _0811A6D4 @ =gSineTable
+ movs r0, 0
+ ldrsb r0, [r5, r0]
+ adds r0, 0x7F
+ movs r1, 0xFF
+ ands r0, r1
+ lsls r1, r0, 1
+ adds r1, r2
+ adds r0, 0x40
+ lsls r0, 1
+ adds r0, r2
+ ldrh r2, [r0]
+ movs r0, 0
+ ldrsh r1, [r1, r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 3
+ cmp r0, 0
+ bge _0811A6AA
+ adds r0, 0xFF
+_0811A6AA:
+ asrs r0, 8
+ strh r0, [r7, 0x24]
+ lsls r1, r2, 16
+ asrs r1, 16
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 3
+ cmp r0, 0
+ bge _0811A6BE
+ adds r0, 0xFF
+_0811A6BE:
+ asrs r0, 8
+ strh r0, [r7, 0x26]
+ add sp, 0x14
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811A6CC: .4byte 0xffff0000
+_0811A6D0: .4byte 0x0000ffff
+_0811A6D4: .4byte gSineTable
+ thumb_func_end sub_811A534
+
+ thumb_func_start sub_811A6D8
+sub_811A6D8: @ 811A6D8
+ push {lr}
+ lsls r0, 24
+ asrs r0, 24
+ movs r1, 0x20
+ subs r2, r1, r0
+ movs r0, 0xFF
+ ands r2, r0
+ adds r0, r2, 0
+ subs r0, 0x21
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0xBE
+ bhi _0811A6F4
+ movs r2, 0xE0
+_0811A6F4:
+ ldr r1, _0811A700 @ =0x0201c800
+ strb r2, [r1, 0x1]
+ movs r0, 0x5
+ strb r0, [r1, 0x2]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811A700: .4byte 0x0201c800
+ thumb_func_end sub_811A6D8
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/rom6.s b/asm/rom6.s
index aa8fcd710..df363ab44 100644
--- a/asm/rom6.s
+++ b/asm/rom6.s
@@ -9860,42379 +9860,4 @@ sub_810FF60: @ 810FF60
_0810FF74: .4byte gUnknown_0202E8CC
thumb_func_end sub_810FF60
- thumb_func_start sub_810FF78
-sub_810FF78: @ 810FF78
- push {r4,lr}
- sub sp, 0x4
- adds r4, r0, 0
- mov r1, sp
- movs r0, 0
- strh r0, [r1]
- ldr r2, _0810FFA4 @ =0x01000008
- mov r0, sp
- adds r1, r4, 0
- bl CpuSet
- movs r0, 0xFF
- strb r0, [r4]
- movs r0, 0
- strh r0, [r4, 0x8]
- strh r0, [r4, 0xA]
- strh r0, [r4, 0xC]
- strh r0, [r4, 0xE]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810FFA4: .4byte 0x01000008
- thumb_func_end sub_810FF78
-
- thumb_func_start sub_810FFA8
-sub_810FFA8: @ 810FFA8
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r5, 0x4
-_0810FFAE:
- adds r0, r4, 0
- bl sub_810FF78
- adds r4, 0x10
- subs r5, 0x1
- cmp r5, 0
- bge _0810FFAE
- movs r0, 0x17
- movs r1, 0
- bl sav12_xor_set
- movs r0, 0x18
- movs r1, 0
- bl sav12_xor_set
- movs r0, 0x19
- movs r1, 0
- bl sav12_xor_set
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_810FFA8
-
- thumb_func_start sub_810FFDC
-sub_810FFDC: @ 810FFDC
- adds r1, r0, 0
- ldrh r0, [r1, 0xA]
- ldrh r2, [r1, 0xC]
- adds r0, r2
- ldrh r1, [r1, 0xE]
- adds r0, r1
- bx lr
- thumb_func_end sub_810FFDC
-
- thumb_func_start sub_810FFEC
-sub_810FFEC: @ 810FFEC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- mov r8, r1
- lsls r2, 16
- lsrs r7, r2, 16
- movs r5, 0
- ldr r6, _08110024 @ =gStringVar1
- adds r4, r0, 0
-_0810FFFE:
- adds r0, r6, 0
- adds r1, r4, 0
- movs r2, 0x7
- bl memcpy
- movs r0, 0xFF
- strb r0, [r6, 0x7]
- adds r0, r6, 0
- mov r1, r8
- bl StringCompareWithoutExtCtrlCodes
- cmp r0, 0
- bne _08110028
- ldrh r0, [r4, 0x8]
- cmp r0, r7
- bne _08110028
- adds r0, r5, 0
- b _08110032
- .align 2, 0
-_08110024: .4byte gStringVar1
-_08110028:
- adds r4, 0x10
- adds r5, 0x1
- cmp r5, 0x4
- ble _0810FFFE
- movs r0, 0x5
-_08110032:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_810FFEC
-
- thumb_func_start sub_811003C
-sub_811003C: @ 811003C
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x14
- mov r8, r0
- movs r0, 0x4
-_0811004A:
- subs r2, r0, 0x1
- mov r9, r2
- cmp r2, 0
- blt _081100A4
- lsls r0, 4
- mov r1, r8
- adds r6, r1, r0
- lsls r0, r2, 4
- adds r5, r0, r1
-_0811005C:
- adds r0, r6, 0
- str r2, [sp, 0x10]
- bl sub_810FFDC
- adds r4, r0, 0
- adds r0, r5, 0
- bl sub_810FFDC
- ldr r2, [sp, 0x10]
- cmp r4, r0
- ble _08110096
- mov r1, sp
- adds r0, r6, 0
- ldm r0!, {r3,r4,r7}
- stm r1!, {r3,r4,r7}
- ldr r0, [r0]
- str r0, [r1]
- adds r1, r6, 0
- adds r0, r5, 0
- ldm r0!, {r3,r4,r7}
- stm r1!, {r3,r4,r7}
- ldr r0, [r0]
- str r0, [r1]
- adds r1, r5, 0
- mov r0, sp
- ldm r0!, {r3,r4,r7}
- stm r1!, {r3,r4,r7}
- ldr r0, [r0]
- str r0, [r1]
-_08110096:
- subs r5, 0x10
- movs r0, 0x1
- negs r0, r0
- add r9, r0
- mov r1, r9
- cmp r1, 0
- bge _0811005C
-_081100A4:
- adds r0, r2, 0
- cmp r0, 0
- bgt _0811004A
- add sp, 0x14
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_811003C
-
- thumb_func_start sub_81100B8
-sub_81100B8: @ 81100B8
- push {lr}
- adds r2, r0, 0
- cmp r1, 0x2
- beq _081100E8
- cmp r1, 0x2
- bgt _081100CA
- cmp r1, 0x1
- beq _081100D0
- b _08110112
-_081100CA:
- cmp r1, 0x3
- beq _08110100
- b _08110112
-_081100D0:
- ldrh r0, [r2, 0xA]
- adds r0, 0x1
- strh r0, [r2, 0xA]
- lsls r0, 16
- lsrs r0, 16
- ldr r1, _081100E4 @ =0x0000270f
- cmp r0, r1
- bls _08110112
- strh r1, [r2, 0xA]
- b _08110112
- .align 2, 0
-_081100E4: .4byte 0x0000270f
-_081100E8:
- ldrh r0, [r2, 0xC]
- adds r0, 0x1
- strh r0, [r2, 0xC]
- lsls r0, 16
- lsrs r0, 16
- ldr r1, _081100FC @ =0x0000270f
- cmp r0, r1
- bls _08110112
- strh r1, [r2, 0xC]
- b _08110112
- .align 2, 0
-_081100FC: .4byte 0x0000270f
-_08110100:
- ldrh r0, [r2, 0xE]
- adds r0, 0x1
- strh r0, [r2, 0xE]
- lsls r0, 16
- lsrs r0, 16
- ldr r1, _08110118 @ =0x0000270f
- cmp r0, r1
- bls _08110112
- strh r1, [r2, 0xE]
-_08110112:
- pop {r0}
- bx r0
- .align 2, 0
-_08110118: .4byte 0x0000270f
- thumb_func_end sub_81100B8
-
- thumb_func_start sub_811011C
-sub_811011C: @ 811011C
- push {r4,lr}
- cmp r0, 0x2
- beq _08110136
- cmp r0, 0x2
- bgt _0811012C
- cmp r0, 0x1
- beq _08110132
- b _0811014E
-_0811012C:
- cmp r0, 0x3
- beq _0811013A
- b _0811014E
-_08110132:
- movs r4, 0x17
- b _0811013C
-_08110136:
- movs r4, 0x18
- b _0811013C
-_0811013A:
- movs r4, 0x19
-_0811013C:
- adds r0, r4, 0
- bl sub_8053108
- ldr r1, _08110154 @ =0x0000270e
- cmp r0, r1
- bhi _0811014E
- adds r0, r4, 0
- bl sav12_xor_increment
-_0811014E:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08110154: .4byte 0x0000270e
- thumb_func_end sub_811011C
-
- thumb_func_start sub_8110158
-sub_8110158: @ 8110158
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- adds r5, r0, 0
- adds r7, r1, 0
- mov r10, r3
- ldr r0, [sp, 0x20]
- lsls r2, 16
- lsrs r2, 16
- mov r9, r2
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- mov r0, r10
- bl sub_811011C
- adds r0, r5, 0
- bl sub_811003C
- adds r0, r5, 0
- adds r1, r7, 0
- mov r2, r9
- bl sub_810FFEC
- adds r6, r0, 0
- cmp r6, 0x5
- bne _081101CC
- movs r6, 0x4
- adds r4, r5, 0
- adds r4, 0x40
- adds r0, r4, 0
- bl sub_810FF78
- mov r0, r8
- cmp r0, 0x1
- bne _081101BA
- movs r0, 0xFC
- strb r0, [r4]
- movs r0, 0x15
- strb r0, [r4, 0x1]
- adds r0, r5, 0
- adds r0, 0x42
- adds r1, r7, 0
- movs r2, 0x5
- bl StringCopyN
- b _081101C4
-_081101BA:
- adds r0, r4, 0
- adds r1, r7, 0
- movs r2, 0x7
- bl StringCopyN
-_081101C4:
- lsls r0, r6, 4
- adds r0, r5, r0
- mov r1, r9
- strh r1, [r0, 0x8]
-_081101CC:
- lsls r0, r6, 4
- adds r0, r5, r0
- mov r1, r10
- bl sub_81100B8
- adds r0, r5, 0
- bl sub_811003C
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8110158
-
- thumb_func_start GameFreakRTC_Reset
-GameFreakRTC_Reset: @ 81101EC
- push {lr}
- ldr r0, _081101F8 @ =gSaveBlock1 + 0x30B8
- bl sub_810FFA8
- pop {r0}
- bx r0
- .align 2, 0
-_081101F8: .4byte gSaveBlock1 + 0x30B8
- thumb_func_end GameFreakRTC_Reset
-
- thumb_func_start sub_81101FC
-sub_81101FC: @ 81101FC
- push {lr}
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 3
- ldr r0, _08110220 @ =gUnknown_0202FFD4
- adds r1, r0
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- lsls r0, 16
- lsrs r0, 16
- ldr r2, _08110224 @ =0x0000270f
- cmp r0, r2
- bls _0811021A
- strh r2, [r1]
-_0811021A:
- pop {r0}
- bx r0
- .align 2, 0
-_08110220: .4byte gUnknown_0202FFD4
-_08110224: .4byte 0x0000270f
- thumb_func_end sub_81101FC
-
- thumb_func_start sub_8110228
-sub_8110228: @ 8110228
- push {lr}
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 3
- ldr r0, _0811024C @ =gUnknown_0202FFD6
- adds r1, r0
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- lsls r0, 16
- lsrs r0, 16
- ldr r2, _08110250 @ =0x0000270f
- cmp r0, r2
- bls _08110246
- strh r2, [r1]
-_08110246:
- pop {r0}
- bx r0
- .align 2, 0
-_0811024C: .4byte gUnknown_0202FFD6
-_08110250: .4byte 0x0000270f
- thumb_func_end sub_8110228
-
- thumb_func_start sub_8110254
-sub_8110254: @ 8110254
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _08110268 @ =gUnknown_02024D26
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _0811026C
- cmp r0, 0x2
- beq _0811027A
- b _08110288
- .align 2, 0
-_08110268: .4byte gUnknown_02024D26
-_0811026C:
- eors r0, r4
- bl sub_81101FC
- adds r0, r4, 0
- bl sub_8110228
- b _08110288
-_0811027A:
- movs r0, 0x1
- eors r0, r4
- bl sub_8110228
- adds r0, r4, 0
- bl sub_81101FC
-_08110288:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8110254
-
- thumb_func_start sub_8110290
-sub_8110290: @ 8110290
- push {r4-r6,lr}
- sub sp, 0x4
- adds r4, r0, 0
- bl sub_8110254
- ldr r0, _081102D4 @ =gSaveBlock1 + 0x30B8
- lsls r2, r4, 3
- subs r2, r4
- lsls r2, 3
- ldr r3, _081102D8 @ =gUnknown_0202FFF0
- adds r1, r2, r3
- subs r3, 0x30
- adds r2, r3
- ldrh r2, [r2, 0xE]
- ldr r3, _081102DC @ =gUnknown_02024D26
- ldrb r3, [r3]
- ldr r6, _081102E0 @ =gLinkPlayers
- ldr r5, _081102E4 @ =gUnknown_02029818
- lsls r4, 2
- adds r4, r5
- ldrb r5, [r4, 0x1]
- lsls r4, r5, 3
- subs r4, r5
- lsls r4, 2
- adds r4, r6
- ldrb r4, [r4, 0x1A]
- str r4, [sp]
- bl sub_8110158
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_081102D4: .4byte gSaveBlock1 + 0x30B8
-_081102D8: .4byte gUnknown_0202FFF0
-_081102DC: .4byte gUnknown_02024D26
-_081102E0: .4byte gLinkPlayers
-_081102E4: .4byte gUnknown_02029818
- thumb_func_end sub_8110290
-
- thumb_func_start sub_81102E8
-sub_81102E8: @ 81102E8
- push {r4,lr}
- ldr r4, _08110338 @ =gStringVar1
- movs r0, 0x17
- bl sub_8053108
- adds r1, r0, 0
- adds r0, r4, 0
- movs r2, 0x1
- movs r3, 0x4
- bl ConvertIntToDecimalStringN_DigitWidth6
- ldr r4, _0811033C @ =gStringVar2
- movs r0, 0x18
- bl sub_8053108
- adds r1, r0, 0
- adds r0, r4, 0
- movs r2, 0x1
- movs r3, 0x4
- bl ConvertIntToDecimalStringN_DigitWidth6
- ldr r4, _08110340 @ =gStringVar3
- movs r0, 0x19
- bl sub_8053108
- adds r1, r0, 0
- adds r0, r4, 0
- movs r2, 0x1
- movs r3, 0x4
- bl ConvertIntToDecimalStringN_DigitWidth6
- ldr r0, _08110344 @ =gOtherText_WinRecord
- movs r1, 0x3
- movs r2, 0x3
- bl MenuPrint
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08110338: .4byte gStringVar1
-_0811033C: .4byte gStringVar2
-_08110340: .4byte gStringVar3
-_08110344: .4byte gOtherText_WinRecord
- thumb_func_end sub_81102E8
-
- thumb_func_start sub_8110348
-sub_8110348: @ 8110348
- push {r4-r7,lr}
- sub sp, 0x10
- adds r7, r0, 0
- lsls r1, 24
- lsrs r6, r1, 24
- ldrh r0, [r7, 0xA]
- cmp r0, 0
- bne _081103C0
- ldr r0, [r7, 0xC]
- cmp r0, 0
- bne _081103C0
- mov r0, sp
- movs r2, 0xFC
- strb r2, [r0]
- mov r1, sp
- movs r0, 0x14
- strb r0, [r1, 0x1]
- movs r0, 0x6
- strb r0, [r1, 0x2]
- mov r0, sp
- strb r2, [r0, 0x3]
- movs r0, 0x11
- strb r0, [r1, 0x4]
- movs r0, 0x1
- strb r0, [r1, 0x5]
- mov r4, sp
- adds r4, 0x6
- ldr r1, _081103B8 @ =gOtherText_SevenDashes
- adds r0, r4, 0
- bl StringCopy
- mov r0, sp
- movs r1, 0x3
- adds r2, r6, 0
- bl MenuPrint
- ldr r1, _081103BC @ =gOtherText_FourDashes
- adds r0, r4, 0
- bl StringCopy
- mov r0, sp
- movs r1, 0xB
- adds r2, r6, 0
- bl MenuPrint
- mov r0, sp
- movs r1, 0x11
- adds r2, r6, 0
- bl MenuPrint
- mov r0, sp
- movs r1, 0x17
- adds r2, r6, 0
- bl MenuPrint
- b _0811042E
- .align 2, 0
-_081103B8: .4byte gOtherText_SevenDashes
-_081103BC: .4byte gOtherText_FourDashes
-_081103C0:
- ldr r4, _08110438 @ =gStringVar1
- adds r0, r4, 0
- movs r1, 0x8
- bl StringFillWithTerminator
- adds r0, r4, 0
- adds r1, r7, 0
- movs r2, 0x7
- bl StringCopyN
- adds r0, r4, 0
- movs r1, 0x3
- adds r2, r6, 0
- bl MenuPrint
- movs r0, 0xFC
- strb r0, [r4]
- movs r0, 0x14
- strb r0, [r4, 0x1]
- movs r0, 0x6
- strb r0, [r4, 0x2]
- adds r5, r4, 0x3
- ldrh r1, [r7, 0xA]
- adds r0, r5, 0
- movs r2, 0x1
- movs r3, 0x4
- bl ConvertIntToDecimalStringN
- adds r0, r4, 0
- movs r1, 0xB
- adds r2, r6, 0
- bl MenuPrint
- ldrh r1, [r7, 0xC]
- adds r0, r5, 0
- movs r2, 0x1
- movs r3, 0x4
- bl ConvertIntToDecimalStringN
- adds r0, r4, 0
- movs r1, 0x11
- adds r2, r6, 0
- bl MenuPrint
- ldrh r1, [r7, 0xE]
- adds r0, r5, 0
- movs r2, 0x1
- movs r3, 0x4
- bl ConvertIntToDecimalStringN
- adds r0, r4, 0
- movs r1, 0x17
- adds r2, r6, 0
- bl MenuPrint
-_0811042E:
- add sp, 0x10
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08110438: .4byte gStringVar1
- thumb_func_end sub_8110348
-
- thumb_func_start sub_811043C
-sub_811043C: @ 811043C
- push {r4,lr}
- movs r0, 0x1
- movs r1, 0
- movs r2, 0x1C
- movs r3, 0x12
- bl MenuDrawTextWindow
- ldr r0, _08110488 @ =gOtherText_BattleResults
- movs r1, 0
- movs r2, 0x1
- movs r3, 0xF0
- bl sub_8072BD8
- ldr r0, _0811048C @ =gSaveBlock1 + 0x30B8
- bl sub_81102E8
- ldr r0, _08110490 @ =gOtherText_WinLoseDraw
- movs r1, 0xC
- movs r2, 0x6
- bl MenuPrint
- movs r4, 0
-_08110468:
- lsls r0, r4, 4
- ldr r1, _0811048C @ =gSaveBlock1 + 0x30B8
- adds r0, r1
- adds r4, 0x1
- lsls r1, r4, 25
- movs r2, 0xC0
- lsls r2, 19
- adds r1, r2
- lsrs r1, 24
- bl sub_8110348
- cmp r4, 0x4
- ble _08110468
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08110488: .4byte gOtherText_BattleResults
-_0811048C: .4byte gSaveBlock1 + 0x30B8
-_08110490: .4byte gOtherText_WinLoseDraw
- thumb_func_end sub_811043C
-
- thumb_func_start sub_8110494
-sub_8110494: @ 8110494
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _081104B4 @ =gSaveBlock2 + 0xA8
- ldr r2, _081104B8 @ =0x000004ae
- adds r1, r2
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x6
- bhi _081104E0
- lsls r0, 2
- ldr r1, _081104BC @ =_081104C0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_081104B4: .4byte gSaveBlock2 + 0xA8
-_081104B8: .4byte 0x000004ae
-_081104BC: .4byte _081104C0
- .align 2, 0
-_081104C0:
- .4byte _081104E0
- .4byte _081104E0
- .4byte _081104DC
- .4byte _081104DC
- .4byte _081104E0
- .4byte _081104E0
- .4byte _081104DC
-_081104DC:
- movs r0, 0x1
- b _081104E2
-_081104E0:
- movs r0, 0
-_081104E2:
- pop {r1}
- bx r1
- thumb_func_end sub_8110494
-
- thumb_func_start sub_81104E8
-sub_81104E8: @ 81104E8
- push {r4-r6,lr}
- lsls r1, 16
- lsrs r4, r1, 16
- lsls r2, 24
- lsrs r2, 24
- adds r5, r2, 0
- lsls r3, 24
- lsrs r3, 24
- adds r6, r3, 0
- adds r1, r5, 0
- adds r2, r6, 0
- bl MenuPrint
- ldr r0, _0811052C @ =0x0000270f
- cmp r4, r0
- bls _0811050A
- adds r4, r0, 0
-_0811050A:
- ldr r0, _08110530 @ =gStringVar1
- adds r1, r4, 0
- movs r2, 0x18
- movs r3, 0x1
- bl sub_8072C14
- ldr r0, _08110534 @ =gOtherText_WinStreak
- adds r1, r5, 0x7
- lsls r1, 24
- lsrs r1, 24
- adds r2, r6, 0
- bl MenuPrint
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0811052C: .4byte 0x0000270f
-_08110530: .4byte gStringVar1
-_08110534: .4byte gOtherText_WinStreak
- thumb_func_end sub_81104E8
-
- thumb_func_start sub_8110538
-sub_8110538: @ 8110538
- push {r4,lr}
- adds r4, r1, 0
- adds r3, r2, 0
- lsls r0, 24
- lsls r4, 24
- lsrs r4, 24
- lsls r3, 24
- lsrs r3, 24
- ldr r1, _08110564 @ =gSaveBlock2 + 0xA8
- lsrs r0, 23
- movs r2, 0x97
- lsls r2, 3
- adds r1, r2
- adds r0, r1
- ldrh r1, [r0]
- ldr r0, _08110568 @ =gOtherText_Record
- adds r2, r4, 0
- bl sub_81104E8
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08110564: .4byte gSaveBlock2 + 0xA8
-_08110568: .4byte gOtherText_Record
- thumb_func_end sub_8110538
-
- thumb_func_start sub_811056C
-sub_811056C: @ 811056C
- push {lr}
- lsls r0, 24
- ldr r1, _08110588 @ =gSaveBlock2
- lsrs r0, 23
- ldr r2, _0811058C @ =0x00000574
- adds r1, r2
- adds r0, r1
- ldrh r0, [r0]
- ldr r1, _08110590 @ =0x0000270f
- cmp r0, r1
- bls _08110584
- adds r0, r1, 0
-_08110584:
- pop {r1}
- bx r1
- .align 2, 0
-_08110588: .4byte gSaveBlock2
-_0811058C: .4byte 0x00000574
-_08110590: .4byte 0x0000270f
- thumb_func_end sub_811056C
-
- thumb_func_start sub_8110594
-sub_8110594: @ 8110594
- push {r4-r7,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r1, 24
- lsrs r6, r1, 24
- lsls r2, 24
- lsrs r7, r2, 24
- adds r0, r4, 0
- bl sub_811056C
- lsls r0, 16
- lsrs r5, r0, 16
- adds r0, r4, 0
- bl sub_8110494
- cmp r0, 0x1
- bne _081105CC
- ldr r0, _081105C8 @ =gOtherText_Current
- adds r1, r5, 0
- adds r2, r6, 0
- adds r3, r7, 0
- bl sub_81104E8
- b _081105D8
- .align 2, 0
-_081105C8: .4byte gOtherText_Current
-_081105CC:
- ldr r0, _081105E0 @ =gOtherText_Prev
- adds r1, r5, 0
- adds r2, r6, 0
- adds r3, r7, 0
- bl sub_81104E8
-_081105D8:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_081105E0: .4byte gOtherText_Prev
- thumb_func_end sub_8110594
-
- thumb_func_start sub_81105E4
-sub_81105E4: @ 81105E4
- push {r4,lr}
- movs r0, 0x3
- movs r1, 0x1
- movs r2, 0x1B
- movs r3, 0x11
- bl MenuDrawTextWindow
- ldr r0, _08110658 @ =gOtherText_BattleTowerResults
- movs r1, 0x3
- movs r2, 0x2
- movs r3, 0xC8
- bl sub_8072BD8
- ldr r0, _0811065C @ =gOtherText_Lv50
- movs r1, 0x5
- movs r2, 0x6
- bl MenuPrint
- ldr r0, _08110660 @ =gOtherText_Lv100
- movs r1, 0x5
- movs r2, 0xC
- bl MenuPrint
- movs r4, 0x5
-_08110614:
- lsls r1, r4, 24
- lsrs r1, 24
- movs r0, 0xAE
- movs r2, 0xA
- bl sub_8071F60
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x19
- bls _08110614
- movs r0, 0
- movs r1, 0xA
- movs r2, 0x6
- bl sub_8110594
- movs r0, 0
- movs r1, 0xA
- movs r2, 0x8
- bl sub_8110538
- movs r0, 0x1
- movs r1, 0xA
- movs r2, 0xC
- bl sub_8110594
- movs r0, 0x1
- movs r1, 0xA
- movs r2, 0xE
- bl sub_8110538
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08110658: .4byte gOtherText_BattleTowerResults
-_0811065C: .4byte gOtherText_Lv50
-_08110660: .4byte gOtherText_Lv100
- thumb_func_end sub_81105E4
-
- thumb_func_start unref_sub_8110664
-unref_sub_8110664: @ 8110664
- push {lr}
- ldr r3, _08110678 @ =0x02000000
- str r1, [r3, 0x4]
- str r2, [r3, 0x8]
- strh r0, [r3, 0xE]
- ldr r0, _0811067C @ =sub_8110680
- bl SetMainCallback2
- pop {r0}
- bx r0
- .align 2, 0
-_08110678: .4byte 0x02000000
-_0811067C: .4byte sub_8110680
- thumb_func_end unref_sub_8110664
-
- thumb_func_start sub_8110680
-sub_8110680: @ 8110680
- push {r4,lr}
- sub sp, 0x4
- ldr r0, _0811069C @ =gMain
- ldr r1, _081106A0 @ =0x0000043c
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x7
- bls _08110692
- b _081107C0
-_08110692:
- lsls r0, 2
- ldr r1, _081106A4 @ =_081106A8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0811069C: .4byte gMain
-_081106A0: .4byte 0x0000043c
-_081106A4: .4byte _081106A8
- .align 2, 0
-_081106A8:
- .4byte _081106C8
- .4byte _08110720
- .4byte _08110740
- .4byte _08110746
- .4byte _08110752
- .4byte _08110770
- .4byte _08110782
- .4byte _081107A8
-_081106C8:
- movs r0, 0
- bl SetVBlankCallback
- movs r1, 0x80
- lsls r1, 19
- movs r2, 0xC4
- lsls r2, 7
- adds r0, r2, 0
- strh r0, [r1]
- bl ResetPaletteFade
- bl ResetSpriteData
- bl ResetTasks
- bl FreeSpriteTileRanges
- bl FreeAllSpritePalettes
- ldr r0, _08110710 @ =REG_BG0HOFS
- movs r1, 0
- strh r1, [r0]
- ldr r2, _08110714 @ =REG_BG0VOFS
- ldr r3, _08110718 @ =0x0000fff8
- adds r0, r3, 0
- strh r0, [r2]
- ldr r0, _0811071C @ =REG_BG2VOFS
- strh r1, [r0]
- subs r0, 0x2
- strh r1, [r0]
- adds r0, 0x4
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- b _081107C0
- .align 2, 0
-_08110710: .4byte REG_BG0HOFS
-_08110714: .4byte REG_BG0VOFS
-_08110718: .4byte 0x0000fff8
-_0811071C: .4byte REG_BG2VOFS
-_08110720:
- ldr r4, _0811073C @ =0x020006e8
- adds r0, r4, 0
- movs r1, 0
- bl sub_80FA8EC
- movs r0, 0x88
- lsls r0, 4
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0
- movs r2, 0x10
- bl StringFill
- b _081107C0
- .align 2, 0
-_0811073C: .4byte 0x020006e8
-_08110740:
- bl sub_8110824
- b _081107C0
-_08110746:
- bl sub_8110838
- lsls r0, 24
- cmp r0, 0
- bne _081107CC
- b _081107C0
-_08110752:
- movs r0, 0x1
- movs r1, 0x1
- bl sub_80FBCF0
- movs r1, 0x8
- negs r1, r1
- movs r0, 0
- bl sub_80FB2A4
- ldr r0, _0811076C @ =sub_81107DC
- bl SetVBlankCallback
- b _081107C0
- .align 2, 0
-_0811076C: .4byte sub_81107DC
-_08110770:
- movs r0, 0x15
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- b _081107C0
-_08110782:
- ldr r1, _0811079C @ =REG_BLDCNT
- ldr r2, _081107A0 @ =0x00003f41
- adds r0, r2, 0
- strh r0, [r1]
- bl sub_8111084
- movs r1, 0x80
- lsls r1, 19
- ldr r3, _081107A4 @ =0x00007741
- adds r0, r3, 0
- strh r0, [r1]
- b _081107C0
- .align 2, 0
-_0811079C: .4byte REG_BLDCNT
-_081107A0: .4byte 0x00003f41
-_081107A4: .4byte 0x00007741
-_081107A8:
- ldr r0, _081107B8 @ =sub_8111288
- bl sub_8110814
- ldr r0, _081107BC @ =sub_81107F0
- bl SetMainCallback2
- b _081107CC
- .align 2, 0
-_081107B8: .4byte sub_8111288
-_081107BC: .4byte sub_81107F0
-_081107C0:
- ldr r1, _081107D4 @ =gMain
- ldr r0, _081107D8 @ =0x0000043c
- adds r1, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_081107CC:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081107D4: .4byte gMain
-_081107D8: .4byte 0x0000043c
- thumb_func_end sub_8110680
-
- thumb_func_start sub_81107DC
-sub_81107DC: @ 81107DC
- push {lr}
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- pop {r0}
- bx r0
- thumb_func_end sub_81107DC
-
- thumb_func_start sub_81107F0
-sub_81107F0: @ 81107F0
- push {lr}
- ldr r0, _08110810 @ =0x02000000
- ldr r0, [r0]
- bl _call_via_r0
- bl sub_8111110
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
- pop {r0}
- bx r0
- .align 2, 0
-_08110810: .4byte 0x02000000
- thumb_func_end sub_81107F0
-
- thumb_func_start sub_8110814
-sub_8110814: @ 8110814
- ldr r1, _08110820 @ =0x02000000
- str r0, [r1]
- movs r0, 0
- strh r0, [r1, 0xC]
- bx lr
- .align 2, 0
-_08110820: .4byte 0x02000000
- thumb_func_end sub_8110814
-
- thumb_func_start sub_8110824
-sub_8110824: @ 8110824
- ldr r0, _08110834 @ =0x02000000
- movs r1, 0x8A
- lsls r1, 1
- adds r0, r1
- movs r1, 0
- strh r1, [r0]
- bx lr
- .align 2, 0
-_08110834: .4byte 0x02000000
- thumb_func_end sub_8110824
-
- thumb_func_start sub_8110838
-sub_8110838: @ 8110838
- push {lr}
- ldr r1, _08110854 @ =0x02000000
- movs r2, 0x8A
- lsls r2, 1
- adds r0, r1, r2
- ldrh r0, [r0]
- adds r2, r1, 0
- cmp r0, 0x5
- bhi _081108E4
- lsls r0, 2
- ldr r1, _08110858 @ =_0811085C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08110854: .4byte 0x02000000
-_08110858: .4byte _0811085C
- .align 2, 0
-_0811085C:
- .4byte _08110874
- .4byte _08110884
- .4byte _0811088A
- .4byte _0811089C
- .4byte _081108C0
- .4byte _081108D0
-_08110874:
- ldr r0, _08110880 @ =0x02000000
- ldrh r0, [r0, 0xE]
- bl sub_8110908
- b _081108F0
- .align 2, 0
-_08110880: .4byte 0x02000000
-_08110884:
- bl sub_8110C34
- b _081108F0
-_0811088A:
- ldr r0, _08110894 @ =gUnknown_083F8438
- ldr r1, _08110898 @ =0x0600c000
- bl LZ77UnCompVram
- b _081108F0
- .align 2, 0
-_08110894: .4byte gUnknown_083F8438
-_08110898: .4byte 0x0600c000
-_0811089C:
- ldr r1, _081108B0 @ =0x040000d4
- ldr r0, _081108B4 @ =0x02000116
- str r0, [r1]
- ldr r0, _081108B8 @ =0x0600f000
- str r0, [r1, 0x4]
- ldr r0, _081108BC @ =0x80000280
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- b _081108F0
- .align 2, 0
-_081108B0: .4byte 0x040000d4
-_081108B4: .4byte 0x02000116
-_081108B8: .4byte 0x0600f000
-_081108BC: .4byte 0x80000280
-_081108C0:
- ldr r0, _081108CC @ =gUnknown_083F8418
- movs r1, 0
- movs r2, 0x20
- bl LoadPalette
- b _081108F0
- .align 2, 0
-_081108CC: .4byte gUnknown_083F8418
-_081108D0:
- ldr r1, _081108E8 @ =REG_BG0CNT
- ldr r3, _081108EC @ =0x00001e0d
- adds r0, r3, 0
- strh r0, [r1]
- movs r0, 0x8A
- lsls r0, 1
- adds r1, r2, r0
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_081108E4:
- movs r0, 0
- b _08110900
- .align 2, 0
-_081108E8: .4byte REG_BG0CNT
-_081108EC: .4byte 0x00001e0d
-_081108F0:
- ldr r1, _08110904 @ =0x02000000
- movs r2, 0x8A
- lsls r2, 1
- adds r1, r2
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- movs r0, 0x1
-_08110900:
- pop {r1}
- bx r1
- .align 2, 0
-_08110904: .4byte 0x02000000
- thumb_func_end sub_8110838
-
- thumb_func_start sub_8110908
-sub_8110908: @ 8110908
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 16
- lsrs r7, r0, 16
- .ifdef SAPPHIRE
- ldr r0, _sub_8110908_Latias @ =407
- .else
- @ Latios
- movs r0, 0xCC
- lsls r0, 1
- .endif
- cmp r7, r0
- bne _0811091E
- b _08110A44
-_0811091E:
- ldr r2, _08110988 @ =0x02000000
- movs r1, 0x88
- lsls r1, 1
- adds r0, r2, r1
- movs r1, 0
- strh r1, [r0]
- movs r3, 0x89
- lsls r3, 1
- adds r0, r2, r3
- strh r1, [r0]
- movs r6, 0
- ldr r1, _0811098C @ =gUnknown_083F856C
-_08110936:
- lsls r0, r6, 1
- adds r0, r1
- ldrh r0, [r0]
- cmp r0, r7
- bne _08110942
- b _08110A8C
-_08110942:
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- cmp r6, 0
- beq _08110936
- movs r6, 0
- ldr r4, _08110990 @ =gUnknown_083F856E
- ldrh r0, [r4]
- movs r1, 0xCE
- lsls r1, 1
- cmp r0, r1
- beq _081109D0
- mov r8, r4
- adds r5, r4, 0x4
- mov r9, r1
-_08110960:
- lsls r0, r6, 1
- adds r1, r0, r6
- lsls r2, r1, 1
- mov r3, r8
- adds r1, r2, r3
- adds r3, r0, 0
- ldrh r1, [r1]
- cmp r7, r1
- bne _081109BA
- adds r0, r4, 0x2
- adds r0, r2, r0
- ldrh r0, [r0]
- cmp r0, 0x18
- beq _081109A6
- cmp r0, 0x18
- bgt _08110994
- cmp r0, 0
- beq _0811099A
- b _081109BA
- .align 2, 0
- .ifdef SAPPHIRE
-_sub_8110908_Latias: .4byte 407
- .endif
-_08110988: .4byte 0x02000000
-_0811098C: .4byte gUnknown_083F856C
-_08110990: .4byte gUnknown_083F856E
-_08110994:
- cmp r0, 0x1A
- beq _081109A6
- b _081109BA
-_0811099A:
- adds r0, r2, r5
- ldrh r1, [r0]
- movs r0, 0
- bl sub_8110A98
- b _081109BA
-_081109A6:
- adds r1, r3, r6
- lsls r1, 1
- mov r0, r8
- adds r0, 0x2
- adds r0, r1, r0
- ldrh r0, [r0]
- adds r1, r5
- ldrh r1, [r1]
- bl sub_8110AE4
-_081109BA:
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- ldr r4, _08110A00 @ =gUnknown_083F856E
- lsls r0, r6, 1
- adds r0, r6
- lsls r0, 1
- adds r0, r4
- ldrh r0, [r0]
- cmp r0, r9
- bne _08110960
-_081109D0:
- movs r6, 0
- ldr r1, _08110A04 @ =gWildMonHeaders
- ldrb r0, [r1]
- cmp r0, 0xFF
- beq _08110A8C
-_081109DA:
- lsls r4, r6, 2
- adds r0, r4, r6
- lsls r0, 2
- adds r5, r0, r1
- adds r0, r5, 0
- adds r1, r7, 0
- bl sub_8110BA4
- lsls r0, 24
- cmp r0, 0
- beq _08110A28
- ldrb r0, [r5]
- cmp r0, 0x18
- beq _08110A18
- cmp r0, 0x18
- bgt _08110A08
- cmp r0, 0
- beq _08110A0E
- b _08110A28
- .align 2, 0
-_08110A00: .4byte gUnknown_083F856E
-_08110A04: .4byte gWildMonHeaders
-_08110A08:
- cmp r0, 0x1A
- beq _08110A18
- b _08110A28
-_08110A0E:
- ldrb r1, [r5, 0x1]
- movs r0, 0
- bl sub_8110A98
- b _08110A28
-_08110A18:
- ldr r0, _08110A40 @ =gWildMonHeaders
- adds r1, r4, r6
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1]
- ldrb r1, [r1, 0x1]
- bl sub_8110AE4
-_08110A28:
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- ldr r1, _08110A40 @ =gWildMonHeaders
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0xFF
- bne _081109DA
- b _08110A8C
- .align 2, 0
-_08110A40: .4byte gWildMonHeaders
-_08110A44:
- ldr r4, _08110A7C @ =0x02000000
- movs r0, 0x89
- lsls r0, 1
- adds r1, r4, r0
- movs r0, 0
- strh r0, [r1]
- ldr r0, _08110A80 @ =gSaveBlock1 + 0x3144
- ldrb r2, [r0, 0x13]
- cmp r2, 0
- beq _08110A84
- adds r0, r4, 0
- adds r0, 0x10
- adds r1, r4, 0
- adds r1, 0x11
- bl sub_8134538
- ldrb r0, [r4, 0x10]
- ldrb r1, [r4, 0x11]
- bl get_mapheader_by_bank_and_number
- ldrb r0, [r0, 0x14]
- strh r0, [r4, 0x12]
- movs r3, 0x88
- lsls r3, 1
- adds r1, r4, r3
- movs r0, 0x1
- strh r0, [r1]
- b _08110A8C
- .align 2, 0
-_08110A7C: .4byte 0x02000000
-_08110A80: .4byte gSaveBlock1 + 0x3144
-_08110A84:
- movs r1, 0x88
- lsls r1, 1
- adds r0, r4, r1
- strh r2, [r0]
-_08110A8C:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8110908
-
- thumb_func_start sub_8110A98
-sub_8110A98: @ 8110A98
- push {r4,r5,lr}
- lsls r0, 16
- lsrs r2, r0, 16
- lsls r1, 16
- lsrs r1, 16
- ldr r5, _08110AE0 @ =0x02000000
- movs r0, 0x88
- lsls r0, 1
- adds r4, r5, r0
- ldrh r0, [r4]
- cmp r0, 0x3F
- bhi _08110AD8
- lsls r0, 2
- adds r0, r5
- strb r2, [r0, 0x10]
- ldrh r0, [r4]
- lsls r0, 2
- adds r0, r5
- strb r1, [r0, 0x11]
- adds r0, r2, 0
- bl get_mapheader_by_bank_and_number
- ldrb r0, [r0, 0x14]
- bl sub_80FBA04
- ldrh r1, [r4]
- lsls r1, 2
- adds r1, r5
- strh r0, [r1, 0x12]
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
-_08110AD8:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08110AE0: .4byte 0x02000000
- thumb_func_end sub_8110A98
-
- thumb_func_start sub_8110AE4
-sub_8110AE4: @ 8110AE4
- push {r4-r6,lr}
- lsls r0, 16
- lsrs r2, r0, 16
- lsls r1, 16
- lsrs r1, 16
- ldr r0, _08110B9C @ =0x02000000
- movs r3, 0x89
- lsls r3, 1
- adds r0, r3
- ldrh r0, [r0]
- cmp r0, 0x1F
- bhi _08110B96
- adds r0, r2, 0
- bl get_mapheader_by_bank_and_number
- adds r6, r0, 0
- ldrb r0, [r6, 0x14]
- cmp r0, 0x57
- bhi _08110B96
- movs r4, 0
- ldr r1, _08110BA0 @ =gUnknown_083F857A
- ldrh r0, [r1]
- cmp r0, 0x58
- beq _08110B42
- adds r5, r1, 0
-_08110B16:
- lsls r2, r4, 2
- adds r1, r2, r5
- ldrb r0, [r6, 0x14]
- ldrh r1, [r1]
- cmp r0, r1
- bne _08110B32
- adds r0, r5, 0x2
- adds r0, r2, r0
- ldrh r0, [r0]
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _08110B96
-_08110B32:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- lsls r0, r4, 2
- adds r0, r5
- ldrh r0, [r0]
- cmp r0, 0x58
- bne _08110B16
-_08110B42:
- movs r4, 0
- ldr r0, _08110B9C @ =0x02000000
- movs r1, 0x89
- lsls r1, 1
- adds r2, r0, r1
- ldrh r3, [r2]
- adds r1, r0, 0
- cmp r4, r3
- bcs _08110B76
- movs r0, 0xC4
- lsls r0, 3
- adds r5, r1, r0
- ldrh r0, [r5]
- ldrb r2, [r6, 0x14]
- cmp r0, r2
- beq _08110B76
-_08110B62:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, r3
- bcs _08110B76
- lsls r0, r4, 1
- adds r0, r5
- ldrh r0, [r0]
- cmp r0, r2
- bne _08110B62
-_08110B76:
- movs r3, 0x89
- lsls r3, 1
- adds r2, r1, r3
- ldrh r0, [r2]
- cmp r4, r0
- bne _08110B96
- lsls r0, r4, 1
- movs r3, 0xC4
- lsls r3, 3
- adds r1, r3
- adds r0, r1
- ldrb r1, [r6, 0x14]
- strh r1, [r0]
- ldrh r0, [r2]
- adds r0, 0x1
- strh r0, [r2]
-_08110B96:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08110B9C: .4byte 0x02000000
-_08110BA0: .4byte gUnknown_083F857A
- thumb_func_end sub_8110AE4
-
- thumb_func_start sub_8110BA4
-sub_8110BA4: @ 8110BA4
- push {r4-r6,lr}
- adds r5, r0, 0
- lsls r1, 16
- lsrs r4, r1, 16
- adds r6, r4, 0
- ldr r0, [r5, 0x4]
- adds r1, r4, 0
- movs r2, 0xC
- bl sub_8110BFC
- lsls r0, 24
- cmp r0, 0
- bne _08110BF2
- ldr r0, [r5, 0x8]
- adds r1, r4, 0
- movs r2, 0x5
- bl sub_8110BFC
- lsls r0, 24
- cmp r0, 0
- bne _08110BF2
- ldr r0, [r5, 0x10]
- adds r1, r4, 0
- movs r2, 0xC
- bl sub_8110BFC
- lsls r0, 24
- cmp r0, 0
- bne _08110BF2
- ldr r0, [r5, 0xC]
- adds r1, r6, 0
- movs r2, 0x5
- bl sub_8110BFC
- lsls r0, 24
- cmp r0, 0
- bne _08110BF2
- movs r0, 0
- b _08110BF4
-_08110BF2:
- movs r0, 0x1
-_08110BF4:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_8110BA4
-
- thumb_func_start sub_8110BFC
-sub_8110BFC: @ 8110BFC
- push {r4,lr}
- lsls r1, 16
- lsrs r4, r1, 16
- lsls r2, 16
- lsrs r2, 16
- cmp r0, 0
- beq _08110C2A
- movs r3, 0
- cmp r3, r2
- bcs _08110C2A
- ldr r1, [r0, 0x4]
-_08110C12:
- lsls r0, r3, 2
- adds r0, r1
- ldrh r0, [r0, 0x2]
- cmp r0, r4
- bne _08110C20
- movs r0, 0x1
- b _08110C2C
-_08110C20:
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, r2
- bcc _08110C12
-_08110C2A:
- movs r0, 0
-_08110C2C:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8110BFC
-
- thumb_func_start sub_8110C34
-sub_8110C34: @ 8110C34
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0xC
- ldr r1, _08110E5C @ =gUnknown_02039260
- movs r0, 0
- strh r0, [r1]
- mov r9, r1
- ldr r0, _08110E60 @ =0x02000000
- mov r8, r0
- ldr r1, _08110E64 @ =gUnknown_02039262
- mov r12, r1
- mov r1, r9
- movs r4, 0x8B
- lsls r4, 1
- add r4, r8
- ldr r3, _08110E68 @ =0x0000027f
- movs r2, 0
-_08110C5C:
- ldrh r0, [r1]
- lsls r0, 1
- adds r0, r4
- strh r2, [r0]
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- lsls r0, 16
- lsrs r0, 16
- cmp r0, r3
- bls _08110C5C
- movs r0, 0
- mov r3, r9
- strh r0, [r3]
- movs r1, 0x88
- lsls r1, 1
- add r1, r8
- ldrh r0, [r1]
- cmp r0, 0
- beq _08110D04
- ldr r4, _08110E6C @ =gUnknown_02039266
- movs r2, 0
- ldr r5, _08110E64 @ =gUnknown_02039262
- mov r0, r8
- str r0, [sp, 0x8]
- movs r1, 0x8B
- lsls r1, 1
- add r1, r8
- mov r10, r1
- ldr r6, _08110E70 @ =gUnknown_02039264
- mov r7, r9
-_08110C9A:
- strh r2, [r4]
- ldr r3, _08110E70 @ =gUnknown_02039264
- strh r2, [r3]
-_08110CA0:
- mov r0, r12
- strh r2, [r0]
-_08110CA4:
- ldrh r0, [r5]
- ldrh r1, [r6]
- str r2, [sp]
- bl sub_80FB9A8
- ldrh r1, [r7]
- lsls r1, 2
- ldr r3, [sp, 0x8]
- adds r1, r3
- lsls r0, 16
- lsrs r0, 16
- ldr r2, [sp]
- ldrh r1, [r1, 0x12]
- cmp r0, r1
- bne _08110CCC
- ldrh r0, [r4]
- lsls r0, 1
- add r0, r10
- ldr r1, _08110E74 @ =0x0000ffff
- strh r1, [r0]
-_08110CCC:
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
- ldrh r0, [r5]
- adds r0, 0x1
- strh r0, [r5]
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1F
- bls _08110CA4
- ldrh r0, [r6]
- adds r0, 0x1
- strh r0, [r6]
- lsls r0, 16
- lsrs r0, 16
- ldr r1, _08110E64 @ =gUnknown_02039262
- mov r12, r1
- cmp r0, 0x13
- bls _08110CA0
- ldrh r0, [r7]
- adds r0, 0x1
- strh r0, [r7]
- lsls r0, 16
- lsrs r0, 16
- ldr r3, _08110E78 @ =0x02000110
- ldrh r3, [r3]
- cmp r0, r3
- bcc _08110C9A
-_08110D04:
- movs r0, 0
- ldr r1, _08110E6C @ =gUnknown_02039266
- strh r0, [r1]
- ldr r3, _08110E70 @ =gUnknown_02039264
- strh r0, [r3]
- ldr r6, _08110E64 @ =gUnknown_02039262
- mov r10, r0
- adds r3, r1, 0
- ldr r5, _08110E7C @ =0x02000116
- ldr r4, _08110E74 @ =0x0000ffff
- ldr r7, _08110E70 @ =gUnknown_02039264
-_08110D1A:
- mov r0, r10
- strh r0, [r6]
-_08110D1E:
- ldrh r1, [r3]
- lsls r0, r1, 1
- adds r0, r5
- ldrh r0, [r0]
- cmp r0, r4
- bne _08110E10
- ldrh r0, [r6]
- cmp r0, 0
- beq _08110D42
- subs r0, r1, 0x1
- lsls r0, 1
- adds r2, r0, r5
- ldrh r1, [r2]
- cmp r1, r4
- beq _08110D42
- movs r0, 0x2
- orrs r0, r1
- strh r0, [r2]
-_08110D42:
- ldrh r0, [r6]
- cmp r0, 0x1F
- beq _08110D5C
- ldrh r0, [r3]
- adds r0, 0x1
- lsls r0, 1
- adds r2, r0, r5
- ldrh r1, [r2]
- cmp r1, r4
- beq _08110D5C
- movs r0, 0x1
- orrs r0, r1
- strh r0, [r2]
-_08110D5C:
- ldrh r0, [r7]
- cmp r0, 0
- beq _08110D76
- ldrh r0, [r3]
- subs r0, 0x20
- lsls r0, 1
- adds r2, r0, r5
- ldrh r1, [r2]
- cmp r1, r4
- beq _08110D76
- movs r0, 0x8
- orrs r0, r1
- strh r0, [r2]
-_08110D76:
- ldrh r0, [r7]
- cmp r0, 0x13
- beq _08110D90
- ldrh r0, [r3]
- adds r0, 0x20
- lsls r0, 1
- adds r2, r0, r5
- ldrh r1, [r2]
- cmp r1, r4
- beq _08110D90
- movs r0, 0x4
- orrs r0, r1
- strh r0, [r2]
-_08110D90:
- ldrh r0, [r6]
- cmp r0, 0
- beq _08110DB0
- ldrh r0, [r7]
- cmp r0, 0
- beq _08110DB0
- ldrh r0, [r3]
- subs r0, 0x21
- lsls r0, 1
- adds r2, r0, r5
- ldrh r1, [r2]
- cmp r1, r4
- beq _08110DB0
- movs r0, 0x10
- orrs r0, r1
- strh r0, [r2]
-_08110DB0:
- ldrh r0, [r6]
- cmp r0, 0x1F
- beq _08110DD0
- ldrh r0, [r7]
- cmp r0, 0
- beq _08110DD0
- ldrh r0, [r3]
- subs r0, 0x1F
- lsls r0, 1
- adds r2, r0, r5
- ldrh r1, [r2]
- cmp r1, r4
- beq _08110DD0
- movs r0, 0x40
- orrs r0, r1
- strh r0, [r2]
-_08110DD0:
- ldrh r0, [r6]
- cmp r0, 0
- beq _08110DF0
- ldrh r0, [r7]
- cmp r0, 0x13
- beq _08110DF0
- ldrh r0, [r3]
- adds r0, 0x1F
- lsls r0, 1
- adds r2, r0, r5
- ldrh r1, [r2]
- cmp r1, r4
- beq _08110DF0
- movs r0, 0x20
- orrs r0, r1
- strh r0, [r2]
-_08110DF0:
- ldrh r0, [r6]
- cmp r0, 0x1F
- beq _08110E10
- ldrh r0, [r7]
- cmp r0, 0x13
- beq _08110E10
- ldrh r0, [r3]
- adds r0, 0x21
- lsls r0, 1
- adds r2, r0, r5
- ldrh r1, [r2]
- cmp r1, r4
- beq _08110E10
- movs r0, 0x80
- orrs r0, r1
- strh r0, [r2]
-_08110E10:
- ldrh r0, [r3]
- adds r0, 0x1
- strh r0, [r3]
- ldrh r0, [r6]
- adds r0, 0x1
- strh r0, [r6]
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1F
- bhi _08110E26
- b _08110D1E
-_08110E26:
- ldrh r0, [r7]
- adds r0, 0x1
- strh r0, [r7]
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x13
- bhi _08110E36
- b _08110D1A
-_08110E36:
- movs r0, 0
- mov r1, r9
- strh r0, [r1]
-_08110E3C:
- mov r3, r9
- ldrh r0, [r3]
- lsls r0, 1
- movs r4, 0x8B
- lsls r4, 1
- add r4, r8
- adds r3, r0, r4
- ldrh r2, [r3]
- adds r1, r2, 0
- ldr r0, _08110E74 @ =0x0000ffff
- cmp r1, r0
- bne _08110E80
- movs r0, 0x10
- strh r0, [r3]
- b _0811105E
- .align 2, 0
-_08110E5C: .4byte gUnknown_02039260
-_08110E60: .4byte 0x02000000
-_08110E64: .4byte gUnknown_02039262
-_08110E68: .4byte 0x0000027f
-_08110E6C: .4byte gUnknown_02039266
-_08110E70: .4byte gUnknown_02039264
-_08110E74: .4byte 0x0000ffff
-_08110E78: .4byte 0x02000110
-_08110E7C: .4byte 0x02000116
-_08110E80:
- cmp r1, 0
- bne _08110E86
- b _0811105E
-_08110E86:
- movs r0, 0x2
- ands r0, r2
- cmp r0, 0
- beq _08110E94
- ldr r0, _08110F28 @ =0x0000ffcf
- ands r0, r2
- strh r0, [r3]
-_08110E94:
- mov r1, r9
- ldrh r0, [r1]
- lsls r0, 1
- adds r2, r0, r4
- ldrh r1, [r2]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08110EAC
- ldr r0, _08110F2C @ =0x0000ff3f
- ands r0, r1
- strh r0, [r2]
-_08110EAC:
- mov r3, r9
- ldrh r0, [r3]
- lsls r0, 1
- adds r2, r0, r4
- ldrh r1, [r2]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _08110EC4
- ldr r0, _08110F30 @ =0x0000ffaf
- ands r0, r1
- strh r0, [r2]
-_08110EC4:
- mov r1, r9
- ldrh r0, [r1]
- lsls r0, 1
- adds r2, r0, r4
- ldrh r1, [r2]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _08110EDC
- ldr r0, _08110F34 @ =0x0000ff5f
- ands r0, r1
- strh r0, [r2]
-_08110EDC:
- ldr r6, _08110F38 @ =gUnknown_02039268
- mov r3, r9
- ldrh r0, [r3]
- lsls r0, 1
- adds r0, r4
- ldrh r1, [r0]
- movs r5, 0xF
- adds r0, r5, 0
- ands r0, r1
- strh r0, [r6]
- ldr r2, _08110F3C @ =gUnknown_0203926A
- ldrh r0, [r3]
- lsls r0, 1
- adds r0, r4
- ldrh r1, [r0]
- movs r0, 0xF0
- ands r0, r1
- strh r0, [r2]
- ldrh r1, [r3]
- adds r3, r2, 0
- cmp r0, 0
- bne _08110F0A
- b _0811105E
-_08110F0A:
- lsls r0, r1, 1
- adds r0, r4
- ldrh r2, [r0]
- adds r1, r5, 0
- ands r1, r2
- strh r1, [r0]
- ldrh r0, [r6]
- cmp r0, 0xA
- bls _08110F1E
- b _0811105E
-_08110F1E:
- lsls r0, 2
- ldr r1, _08110F40 @ =_08110F44
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08110F28: .4byte 0x0000ffcf
-_08110F2C: .4byte 0x0000ff3f
-_08110F30: .4byte 0x0000ffaf
-_08110F34: .4byte 0x0000ff5f
-_08110F38: .4byte gUnknown_02039268
-_08110F3C: .4byte gUnknown_0203926A
-_08110F40: .4byte _08110F44
- .align 2, 0
-_08110F44:
- .4byte _08110F70
- .4byte _08110FAC
- .4byte _08110F8E
- .4byte _0811105E
- .4byte _08111002
- .4byte _08111036
- .4byte _08111036
- .4byte _0811105E
- .4byte _08110FCE
- .4byte _0811104A
- .4byte _0811104A
-_08110F70:
- ldrh r0, [r3]
- lsls r1, r0, 16
- cmp r1, 0
- beq _0811105E
- mov r0, r9
- ldrh r2, [r0]
- lsls r2, 1
- movs r0, 0x8B
- lsls r0, 1
- add r0, r8
- adds r2, r0
- ldrh r0, [r2]
- adds r0, 0x10
- lsrs r1, 20
- b _08110FC8
-_08110F8E:
- ldrh r0, [r3]
- lsls r1, r0, 16
- cmp r1, 0
- beq _0811105E
- mov r3, r9
- ldrh r2, [r3]
- lsls r2, 1
- movs r0, 0x8B
- lsls r0, 1
- add r0, r8
- adds r2, r0
- ldrh r0, [r2]
- adds r0, 0x1E
- lsrs r1, 20
- b _08110FC8
-_08110FAC:
- ldrh r0, [r3]
- lsls r1, r0, 16
- cmp r1, 0
- beq _0811105E
- mov r0, r9
- ldrh r2, [r0]
- lsls r2, 1
- movs r0, 0x8B
- lsls r0, 1
- add r0, r8
- adds r2, r0
- ldrh r0, [r2]
- adds r0, 0x20
- lsrs r1, 22
-_08110FC8:
- adds r0, r1
- strh r0, [r2]
- b _0811105E
-_08110FCE:
- ldrh r2, [r3]
- cmp r2, 0
- beq _0811105E
- movs r0, 0x80
- ands r0, r2
- lsls r0, 16
- lsrs r0, 16
- negs r0, r0
- lsrs r3, r0, 31
- movs r0, 0x20
- ands r0, r2
- cmp r0, 0
- beq _08110FEC
- movs r0, 0x2
- orrs r3, r0
-_08110FEC:
- mov r0, r9
- ldrh r1, [r0]
- lsls r1, 1
- movs r0, 0x8B
- lsls r0, 1
- add r0, r8
- adds r1, r0
- ldrh r0, [r1]
- adds r0, 0x20
- adds r0, r3
- b _0811105C
-_08111002:
- ldrh r2, [r3]
- cmp r2, 0
- beq _0811105E
- movs r0, 0x40
- ands r0, r2
- lsls r0, 16
- lsrs r0, 16
- negs r0, r0
- lsrs r3, r0, 31
- movs r0, 0x10
- ands r0, r2
- cmp r0, 0
- beq _08111020
- movs r0, 0x2
- orrs r3, r0
-_08111020:
- mov r0, r9
- ldrh r1, [r0]
- lsls r1, 1
- movs r0, 0x8B
- lsls r0, 1
- add r0, r8
- adds r1, r0
- ldrh r0, [r1]
- adds r0, 0x21
- adds r0, r3
- b _0811105C
-_08111036:
- mov r3, r9
- ldrh r1, [r3]
- lsls r1, 1
- movs r0, 0x8B
- lsls r0, 1
- add r0, r8
- adds r1, r0
- ldrh r0, [r1]
- adds r0, 0x27
- b _0811105C
-_0811104A:
- mov r0, r9
- ldrh r1, [r0]
- lsls r1, 1
- movs r0, 0x8B
- lsls r0, 1
- add r0, r8
- adds r1, r0
- ldrh r0, [r1]
- adds r0, 0x25
-_0811105C:
- strh r0, [r1]
-_0811105E:
- mov r3, r9
- ldrh r0, [r3]
- adds r0, 0x1
- strh r0, [r3]
- lsls r0, 16
- ldr r1, _08111080 @ =0x027f0000
- cmp r0, r1
- bhi _08111070
- b _08110E3C
-_08111070:
- 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
-_08111080: .4byte 0x027f0000
- thumb_func_end sub_8110C34
-
- thumb_func_start sub_8111084
-sub_8111084: @ 8111084
- push {lr}
- ldr r0, _081110AC @ =0x02000000
- movs r2, 0x89
- lsls r2, 1
- adds r1, r0, r2
- ldrh r1, [r1]
- adds r2, r0, 0
- cmp r1, 0
- beq _081110B4
- movs r3, 0x88
- lsls r3, 1
- adds r0, r2, r3
- ldrh r0, [r0]
- cmp r0, 0
- bne _081110B4
- ldr r0, _081110B0 @ =0x0000061e
- adds r1, r2, r0
- movs r0, 0x1
- b _081110BA
- .align 2, 0
-_081110AC: .4byte 0x02000000
-_081110B0: .4byte 0x0000061e
-_081110B4:
- ldr r3, _081110FC @ =0x0000061e
- adds r1, r2, r3
- movs r0, 0
-_081110BA:
- strb r0, [r1]
- ldr r1, _08111100 @ =0x00000616
- adds r0, r2, r1
- movs r1, 0
- strh r1, [r0]
- movs r3, 0xC3
- lsls r3, 3
- adds r0, r2, r3
- strh r1, [r0]
- adds r3, 0x2
- adds r0, r2, r3
- strh r1, [r0]
- ldr r0, _08111104 @ =0x0000061c
- adds r1, r2, r0
- movs r0, 0x40
- strh r0, [r1]
- adds r3, 0x5
- adds r1, r2, r3
- movs r0, 0x1
- strb r0, [r1]
- ldr r1, _08111108 @ =REG_BLDCNT
- ldr r2, _0811110C @ =0x00003f41
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- movs r3, 0x80
- lsls r3, 5
- adds r0, r3, 0
- strh r0, [r1]
- bl sub_8111110
- pop {r0}
- bx r0
- .align 2, 0
-_081110FC: .4byte 0x0000061e
-_08111100: .4byte 0x00000616
-_08111104: .4byte 0x0000061c
-_08111108: .4byte REG_BLDCNT
-_0811110C: .4byte 0x00003f41
- thumb_func_end sub_8111084
-
- thumb_func_start sub_8111110
-sub_8111110: @ 8111110
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- ldr r0, _0811114C @ =0x02000000
- ldr r2, _08111150 @ =0x0000061e
- adds r1, r0, r2
- ldrb r1, [r1]
- adds r5, r0, 0
- cmp r1, 0
- bne _081111DE
- ldr r3, _08111154 @ =0x00000616
- adds r1, r5, r3
- ldrh r0, [r1]
- cmp r0, 0
- bne _081111D8
- movs r1, 0xC3
- lsls r1, 3
- adds r0, r5, r1
- ldrh r1, [r0]
- adds r1, 0x1
- strh r1, [r0]
- movs r0, 0x1
- ands r1, r0
- cmp r1, 0
- beq _08111158
- subs r2, 0x4
- adds r0, r5, r2
- b _0811115C
- .align 2, 0
-_0811114C: .4byte 0x02000000
-_08111150: .4byte 0x0000061e
-_08111154: .4byte 0x00000616
-_08111158:
- ldr r3, _081111C0 @ =0x0000061c
- adds r0, r5, r3
-_0811115C:
- ldrh r1, [r0]
- adds r1, 0x4
- movs r2, 0x7F
- ands r1, r2
- strh r1, [r0]
- ldr r2, _081111C4 @ =gSineTable
- ldr r1, _081111C8 @ =0x0000061a
- adds r0, r5, r1
- ldrh r0, [r0]
- lsls r0, 1
- adds r0, r2
- ldrh r1, [r0]
- lsls r1, 16
- asrs r1, 20
- lsls r1, 16
- lsrs r1, 16
- ldr r3, _081111C0 @ =0x0000061c
- adds r0, r5, r3
- ldrh r0, [r0]
- lsls r0, 1
- adds r0, r2
- ldrh r0, [r0]
- lsls r0, 16
- asrs r0, 20
- lsls r0, 16
- ldr r2, _081111CC @ =REG_BLDALPHA
- lsrs r0, 8
- orrs r1, r0
- strh r1, [r2]
- ldr r1, _081111D0 @ =0x00000616
- adds r0, r5, r1
- movs r2, 0
- strh r2, [r0]
- subs r3, 0x4
- adds r1, r5, r3
- ldrh r0, [r1]
- cmp r0, 0x40
- bne _0811126E
- strh r2, [r1]
- movs r1, 0x89
- lsls r1, 1
- adds r0, r5, r1
- ldrh r0, [r0]
- cmp r0, 0
- beq _0811126E
- ldr r2, _081111D4 @ =0x0000061e
- adds r1, r5, r2
- movs r0, 0x1
- b _0811126C
- .align 2, 0
-_081111C0: .4byte 0x0000061c
-_081111C4: .4byte gSineTable
-_081111C8: .4byte 0x0000061a
-_081111CC: .4byte REG_BLDALPHA
-_081111D0: .4byte 0x00000616
-_081111D4: .4byte 0x0000061e
-_081111D8:
- subs r0, 0x1
- strh r0, [r1]
- b _0811126E
-_081111DE:
- ldr r3, _0811127C @ =0x00000616
- adds r1, r5, r3
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xC
- bls _0811126E
- movs r0, 0
- strh r0, [r1]
- ldr r0, _08111280 @ =0x0000061f
- adds r1, r5, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- movs r4, 0
- movs r2, 0x89
- lsls r2, 1
- adds r0, r5, r2
- ldrh r3, [r0]
- cmp r4, r3
- bcs _0811124C
- movs r2, 0xCC
- lsls r2, 3
- adds r2, r5
- mov r9, r2
- mov r8, r1
- movs r3, 0x1
- mov r12, r3
- adds r6, r0, 0
- movs r7, 0x5
- negs r7, r7
-_08111220:
- lsls r0, r4, 2
- add r0, r9
- ldr r3, [r0]
- mov r1, r8
- ldrb r0, [r1]
- movs r1, 0x1
- adds r3, 0x3E
- ands r1, r0
- mov r2, r12
- ands r1, r2
- lsls r1, 2
- ldrb r2, [r3]
- adds r0, r7, 0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- ldrh r3, [r6]
- cmp r4, r3
- bcc _08111220
-_0811124C:
- ldr r0, _08111280 @ =0x0000061f
- adds r1, r5, r0
- ldrb r0, [r1]
- cmp r0, 0x4
- bls _0811126E
- movs r0, 0x1
- strb r0, [r1]
- movs r1, 0x88
- lsls r1, 1
- adds r0, r5, r1
- ldrh r0, [r0]
- cmp r0, 0
- beq _0811126E
- ldr r2, _08111284 @ =0x0000061e
- adds r1, r5, r2
- movs r0, 0
-_0811126C:
- strb r0, [r1]
-_0811126E:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0811127C: .4byte 0x00000616
-_08111280: .4byte 0x0000061f
-_08111284: .4byte 0x0000061e
- thumb_func_end sub_8111110
-
- thumb_func_start sub_8111288
-sub_8111288: @ 8111288
- push {lr}
- ldr r1, _08111298 @ =0x02000000
- ldrh r0, [r1, 0xC]
- cmp r0, 0
- beq _0811129C
- cmp r0, 0x1
- beq _081112A2
- b _081112B2
- .align 2, 0
-_08111298: .4byte 0x02000000
-_0811129C:
- movs r0, 0x1
- strh r0, [r1, 0xC]
- b _081112B2
-_081112A2:
- bl UpdatePaletteFade
- lsls r0, 24
- cmp r0, 0
- bne _081112B2
- ldr r0, _081112B8 @ =sub_81112BC
- bl sub_8110814
-_081112B2:
- pop {r0}
- bx r0
- .align 2, 0
-_081112B8: .4byte sub_81112BC
- thumb_func_end sub_8111288
-
- thumb_func_start sub_81112BC
-sub_81112BC: @ 81112BC
- push {lr}
- ldr r0, _081112DC @ =0x02000000
- ldrh r0, [r0, 0xC]
- cmp r0, 0
- bne _08111308
- ldr r0, _081112E0 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _081112E8
- ldr r0, _081112E4 @ =sub_8111314
- bl sub_8110814
- b _08111308
- .align 2, 0
-_081112DC: .4byte 0x02000000
-_081112E0: .4byte gMain
-_081112E4: .4byte sub_8111314
-_081112E8:
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- bne _08111302
- movs r0, 0x80
- lsls r0, 1
- ands r0, r1
- cmp r0, 0
- beq _08111308
- ldr r0, _0811130C @ =gSaveBlock2
- ldrb r0, [r0, 0x13]
- cmp r0, 0x1
- bne _08111308
-_08111302:
- ldr r0, _08111310 @ =sub_8111360
- bl sub_8110814
-_08111308:
- pop {r0}
- bx r0
- .align 2, 0
-_0811130C: .4byte gSaveBlock2
-_08111310: .4byte sub_8111360
- thumb_func_end sub_81112BC
-
- thumb_func_start sub_8111314
-sub_8111314: @ 8111314
- push {r4,lr}
- sub sp, 0x4
- ldr r4, _08111328 @ =0x02000000
- ldrh r1, [r4, 0xC]
- cmp r1, 0
- beq _0811132C
- cmp r1, 0x1
- beq _08111344
- b _08111358
- .align 2, 0
-_08111328: .4byte 0x02000000
-_0811132C:
- movs r0, 0x15
- negs r0, r0
- str r1, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
- b _08111358
-_08111344:
- bl UpdatePaletteFade
- lsls r0, 24
- cmp r0, 0
- bne _08111358
- bl sub_80FAB10
- ldr r0, [r4, 0x4]
- bl SetMainCallback2
-_08111358:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8111314
-
- thumb_func_start sub_8111360
-sub_8111360: @ 8111360
- push {r4,lr}
- sub sp, 0x4
- ldr r4, _08111374 @ =0x02000000
- ldrh r1, [r4, 0xC]
- cmp r1, 0
- beq _08111378
- cmp r1, 0x1
- beq _08111390
- b _081113A4
- .align 2, 0
-_08111374: .4byte 0x02000000
-_08111378:
- movs r0, 0x15
- negs r0, r0
- str r1, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
- b _081113A4
-_08111390:
- bl UpdatePaletteFade
- lsls r0, 24
- cmp r0, 0
- bne _081113A4
- bl sub_80FAB10
- ldr r0, [r4, 0x8]
- bl SetMainCallback2
-_081113A4:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8111360
-
- thumb_func_start sub_81113AC
-sub_81113AC: @ 81113AC
- push {r4,lr}
- ldr r2, _081113DC @ =0x02000000
- movs r3, 0
- movs r4, 0
- strh r0, [r2, 0xE]
- ldr r0, _081113E0 @ =0x000006e4
- adds r2, r0
- str r1, [r2]
- strb r3, [r1]
- ldr r0, _081113E4 @ =sub_81113EC
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _081113E8 @ =gTasks
- 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
-_081113DC: .4byte 0x02000000
-_081113E0: .4byte 0x000006e4
-_081113E4: .4byte sub_81113EC
-_081113E8: .4byte gTasks
- thumb_func_end sub_81113AC
-
- thumb_func_start sub_81113EC
-sub_81113EC: @ 81113EC
- push {r4,r5,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _08111414 @ =gTasks
- 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, 0xB
- bls _0811140A
- b _08111540
-_0811140A:
- lsls r0, 2
- ldr r1, _08111418 @ =_0811141C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08111414: .4byte gTasks
-_08111418: .4byte _0811141C
- .align 2, 0
-_0811141C:
- .4byte _0811144C
- .4byte _08111488
- .4byte _08111496
- .4byte _081114B8
- .4byte _081114BE
- .4byte _081114CA
- .4byte _081114DE
- .4byte _081114E4
- .4byte _081114EA
- .4byte _081114F0
- .4byte _08111502
- .4byte _08111528
-_0811144C:
- movs r1, 0x80
- lsls r1, 19
- movs r3, 0xC4
- lsls r3, 7
- adds r0, r3, 0
- strh r0, [r1]
- ldr r0, _08111478 @ =REG_BG0HOFS
- movs r1, 0
- strh r1, [r0]
- ldr r2, _0811147C @ =REG_BG0VOFS
- ldr r3, _08111480 @ =0x0000fff8
- adds r0, r3, 0
- strh r0, [r2]
- ldr r0, _08111484 @ =REG_BG2VOFS
- strh r1, [r0]
- subs r0, 0x2
- strh r1, [r0]
- adds r0, 0x4
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- b _08111540
- .align 2, 0
-_08111478: .4byte REG_BG0HOFS
-_0811147C: .4byte REG_BG0VOFS
-_08111480: .4byte 0x0000fff8
-_08111484: .4byte REG_BG2VOFS
-_08111488:
- bl ResetPaletteFade
- bl ResetSpriteData
- bl FreeAllSpritePalettes
- b _08111540
-_08111496:
- ldr r4, _081114B4 @ =0x020006e8
- adds r0, r4, 0
- movs r1, 0
- bl sub_80FA8EC
- movs r0, 0x88
- lsls r0, 4
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0
- movs r2, 0x10
- bl StringFill
- b _08111540
- .align 2, 0
-_081114B4: .4byte 0x020006e8
-_081114B8:
- bl sub_8110824
- b _08111540
-_081114BE:
- bl sub_8110838
- lsls r0, 24
- cmp r0, 0
- bne _08111550
- b _08111540
-_081114CA:
- movs r0, 0x1
- movs r1, 0x1
- bl sub_80FBCF0
- movs r1, 0x8
- negs r1, r1
- movs r0, 0
- bl sub_80FB2A4
- b _08111540
-_081114DE:
- bl sub_8111658
- b _08111540
-_081114E4:
- bl sub_81117AC
- b _08111540
-_081114EA:
- bl sub_81117E4
- b _08111540
-_081114F0:
- movs r0, 0x15
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- b _08111540
-_08111502:
- ldr r1, _0811151C @ =REG_BLDCNT
- ldr r2, _08111520 @ =0x00003f41
- adds r0, r2, 0
- strh r0, [r1]
- bl sub_8111084
- movs r1, 0x80
- lsls r1, 19
- ldr r3, _08111524 @ =0x00007741
- adds r0, r3, 0
- strh r0, [r1]
- b _08111540
- .align 2, 0
-_0811151C: .4byte REG_BLDCNT
-_08111520: .4byte 0x00003f41
-_08111524: .4byte 0x00007741
-_08111528:
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r2
- ldr r1, _0811153C @ =sub_811155C
- str r1, [r0]
- movs r1, 0
- strh r1, [r0, 0x8]
- b _08111550
- .align 2, 0
-_0811153C: .4byte sub_811155C
-_08111540:
- ldr r0, _08111558 @ =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
-_08111550:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08111558: .4byte gTasks
- thumb_func_end sub_81113EC
-
- thumb_func_start sub_811155C
-sub_811155C: @ 811155C
- push {r4,r5,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_8111110
- ldr r1, _08111584 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r5, r0, r1
- movs r0, 0x8
- ldrsh r1, [r5, r0]
- cmp r1, 0x1
- beq _081115B4
- cmp r1, 0x1
- bgt _08111588
- cmp r1, 0
- beq _0811159E
- b _08111590
- .align 2, 0
-_08111584: .4byte gTasks
-_08111588:
- cmp r1, 0x2
- beq _081115F8
- cmp r1, 0x3
- beq _0811160A
-_08111590:
- ldr r0, _081115AC @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- movs r0, 0
- strh r0, [r1, 0x8]
-_0811159E:
- ldr r0, _081115B0 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0811164C
- b _0811163C
- .align 2, 0
-_081115AC: .4byte gTasks
-_081115B0: .4byte gPaletteFade
-_081115B4:
- ldr r0, _081115CC @ =gMain
- ldrh r2, [r0, 0x2E]
- movs r3, 0x2
- adds r0, r3, 0
- ands r0, r2
- cmp r0, 0
- beq _081115D0
- strh r1, [r5, 0xA]
- movs r0, 0x3
- bl PlaySE
- b _0811163C
- .align 2, 0
-_081115CC: .4byte gMain
-_081115D0:
- movs r0, 0x10
- ands r0, r2
- cmp r0, 0
- bne _081115EA
- movs r0, 0x80
- lsls r0, 1
- ands r0, r2
- cmp r0, 0
- beq _0811164C
- ldr r0, _081115F4 @ =gSaveBlock2
- ldrb r0, [r0, 0x13]
- cmp r0, 0x1
- bne _0811164C
-_081115EA:
- strh r3, [r5, 0xA]
- movs r0, 0x6D
- bl PlaySE
- b _0811163C
- .align 2, 0
-_081115F4: .4byte gSaveBlock2
-_081115F8:
- movs r0, 0x15
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- b _0811163C
-_0811160A:
- ldr r0, _08111630 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0811164C
- bl sub_8111738
- ldr r0, _08111634 @ =0x02000000
- ldr r1, _08111638 @ =0x000006e4
- adds r0, r1
- ldr r1, [r0]
- ldrh r0, [r5, 0xA]
- strb r0, [r1]
- adds r0, r4, 0
- bl DestroyTask
- b _0811164C
- .align 2, 0
-_08111630: .4byte gPaletteFade
-_08111634: .4byte 0x02000000
-_08111638: .4byte 0x000006e4
-_0811163C:
- ldr r0, _08111654 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
-_0811164C:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08111654: .4byte gTasks
- thumb_func_end sub_811155C
-
- thumb_func_start sub_8111658
-sub_8111658: @ 8111658
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r0, _08111720 @ =gUnknown_083F858C
- bl LoadSpriteSheet
- ldr r0, _08111724 @ =gUnknown_083F8594
- bl LoadSpritePalette
- movs r5, 0
- movs r1, 0
- ldr r0, _08111728 @ =0x02000000
- movs r3, 0x89
- lsls r3, 1
- adds r2, r0, r3
- ldrh r7, [r2]
- cmp r5, r7
- bge _0811170C
- adds r6, r0, 0
- mov r8, r2
-_08111680:
- lsls r0, r1, 16
- asrs r4, r0, 16
- lsls r1, r4, 1
- movs r2, 0xC4
- lsls r2, 3
- adds r0, r6, r2
- adds r1, r0
- ldr r2, _0811172C @ =gRegionMapLocations
- movs r3, 0
- ldrsh r0, [r1, r3]
- lsls r0, 3
- adds r0, r2
- ldrb r1, [r0]
- adds r1, 0x1
- lsls r1, 3
- adds r1, 0x4
- ldrb r2, [r0, 0x1]
- lsls r2, 19
- ldrb r3, [r0, 0x2]
- subs r3, 0x1
- lsls r3, 2
- ldrb r0, [r0, 0x3]
- subs r0, 0x1
- lsls r0, 2
- movs r7, 0xE0
- lsls r7, 13
- adds r2, r7
- asrs r2, 16
- adds r1, r3
- adds r2, r0
- ldr r0, _08111730 @ =gSpriteTemplate_83F85A4
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x40
- beq _081116FC
- ldr r0, _08111734 @ =gSprites
- lsls r2, r1, 4
- adds r2, r1
- lsls r2, 2
- adds r2, r0
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r0, [r3]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r3]
- adds r1, r5, 0
- lsls r0, r1, 16
- movs r3, 0x80
- lsls r3, 9
- adds r0, r3
- lsrs r5, r0, 16
- lsls r1, 16
- asrs r1, 14
- movs r7, 0xCC
- lsls r7, 3
- adds r0, r6, r7
- adds r1, r0
- str r2, [r1]
-_081116FC:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- asrs r0, 16
- mov r2, r8
- ldrh r2, [r2]
- cmp r0, r2
- blt _08111680
-_0811170C:
- ldr r0, _08111728 @ =0x02000000
- movs r3, 0xDC
- lsls r3, 3
- adds r0, r3
- strh r5, [r0]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08111720: .4byte gUnknown_083F858C
-_08111724: .4byte gUnknown_083F8594
-_08111728: .4byte 0x02000000
-_0811172C: .4byte gRegionMapLocations
-_08111730: .4byte gSpriteTemplate_83F85A4
-_08111734: .4byte gSprites
- thumb_func_end sub_8111658
-
- thumb_func_start sub_8111738
-sub_8111738: @ 8111738
- push {r4-r6,lr}
- movs r0, 0x2
- bl FreeSpriteTilesByTag
- movs r0, 0x2
- bl FreeSpritePaletteByTag
- movs r4, 0
- ldr r1, _081117A4 @ =0x02000000
- movs r2, 0xDC
- lsls r2, 3
- adds r0, r1, r2
- ldrh r2, [r0]
- cmp r4, r2
- bcs _08111776
- adds r6, r1, 0
- adds r5, r0, 0
-_0811175A:
- lsls r0, r4, 2
- movs r2, 0xCC
- lsls r2, 3
- adds r1, r6, r2
- adds r0, r1
- ldr r0, [r0]
- bl DestroySprite
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- ldrh r0, [r5]
- cmp r4, r0
- bcc _0811175A
-_08111776:
- movs r0, 0x3
- bl FreeSpriteTilesByTag
- movs r0, 0x3
- bl FreeSpritePaletteByTag
- movs r4, 0
- ldr r5, _081117A8 @ =0x02000fa8
-_08111786:
- lsls r0, r4, 2
- adds r0, r5
- ldr r0, [r0]
- cmp r0, 0
- beq _08111794
- bl DestroySprite
-_08111794:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x2
- bls _08111786
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_081117A4: .4byte 0x02000000
-_081117A8: .4byte 0x02000fa8
- thumb_func_end sub_8111738
-
- thumb_func_start sub_81117AC
-sub_81117AC: @ 81117AC
- push {lr}
- sub sp, 0x8
- ldr r0, _081117D4 @ =gUnknown_083F8664
- ldr r1, [r0, 0x4]
- ldr r0, [r0]
- str r0, [sp]
- str r1, [sp, 0x4]
- ldr r0, _081117D8 @ =gAreaUnknownTiles
- ldr r1, _081117DC @ =0x02000fb4
- bl LZ77UnCompWram
- mov r0, sp
- bl LoadSpriteSheet
- ldr r0, _081117E0 @ =gUnknown_083F865C
- bl LoadSpritePalette
- add sp, 0x8
- pop {r0}
- bx r0
- .align 2, 0
-_081117D4: .4byte gUnknown_083F8664
-_081117D8: .4byte gAreaUnknownTiles
-_081117DC: .4byte 0x02000fb4
-_081117E0: .4byte gUnknown_083F865C
- thumb_func_end sub_81117AC
-
- thumb_func_start sub_81117E4
-sub_81117E4: @ 81117E4
- push {r4-r7,lr}
- ldr r1, _08111810 @ =0x02000000
- movs r2, 0x88
- lsls r2, 1
- adds r0, r1, r2
- ldr r0, [r0]
- cmp r0, 0
- beq _08111818
- movs r4, 0
- ldr r7, _08111814 @ =0x00000fa8
- adds r2, r1, r7
- movs r1, 0
-_081117FC:
- lsls r0, r4, 2
- adds r0, r2
- str r1, [r0]
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x2
- bls _081117FC
- b _0811188E
- .align 2, 0
-_08111810: .4byte 0x02000000
-_08111814: .4byte 0x00000fa8
-_08111818:
- movs r4, 0
- ldr r6, _08111868 @ =gSprites
- ldr r0, _0811186C @ =0x00000fa8
- adds r5, r1, r0
-_08111820:
- lsls r1, r4, 21
- movs r2, 0xA0
- lsls r2, 16
- adds r1, r2
- asrs r1, 16
- ldr r0, _08111870 @ =gSpriteTemplate_83F8674
- movs r2, 0x8C
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x40
- beq _0811187C
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r6
- ldrh r3, [r2, 0x4]
- lsls r0, r3, 22
- lsrs r0, 22
- lsls r1, r4, 4
- adds r0, r1
- ldr r7, _08111874 @ =0x000003ff
- adds r1, r7, 0
- ands r0, r1
- ldr r7, _08111878 @ =0xfffffc00
- adds r1, r7, 0
- ands r3, r1
- orrs r3, r0
- strh r3, [r2, 0x4]
- lsls r0, r4, 2
- adds r0, r5
- str r2, [r0]
- b _08111884
- .align 2, 0
-_08111868: .4byte gSprites
-_0811186C: .4byte 0x00000fa8
-_08111870: .4byte gSpriteTemplate_83F8674
-_08111874: .4byte 0x000003ff
-_08111878: .4byte 0xfffffc00
-_0811187C:
- lsls r0, r4, 2
- adds r0, r5
- movs r1, 0
- str r1, [r0]
-_08111884:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x2
- bls _08111820
-_0811188E:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_81117E4
-
- thumb_func_start sub_8111894
-sub_8111894: @ 8111894
- push {lr}
- bl UpdatePaletteFade
- bl RunTasks
- pop {r0}
- bx r0
- thumb_func_end sub_8111894
-
- thumb_func_start sub_81118A4
-sub_81118A4: @ 81118A4
- push {r4-r7,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r2, r0, 24
- movs r7, 0
- ldr r1, _081118C8 @ =gTasks
- 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 _081118CC
- cmp r0, 0x1
- beq _081118E4
- b _08111918
- .align 2, 0
-_081118C8: .4byte gTasks
-_081118CC:
- movs r0, 0x1
- negs r0, r0
- str r7, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _08111918
-_081118E4:
- ldr r0, _08111920 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08111918
- movs r0, 0xA
- ldrsh r7, [r4, r0]
- movs r1, 0xC
- ldrsh r0, [r4, r1]
- lsls r0, 16
- orrs r7, r0
- ldrh r5, [r4, 0x10]
- ldrb r6, [r4, 0x12]
- ldrh r4, [r4, 0x20]
- lsls r4, 24
- lsrs r4, 24
- adds r0, r2, 0
- bl DestroyTask
- adds r0, r7, 0
- adds r1, r5, 0
- adds r2, r6, 0
- adds r3, r4, 0
- bl evolution_cutscene
-_08111918:
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08111920: .4byte gPaletteFade
- thumb_func_end sub_81118A4
-
- thumb_func_start sub_8111924
-sub_8111924: @ 8111924
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- mov r8, r0
- adds r4, r1, 0
- adds r5, r2, 0
- adds r6, r3, 0
- lsls r4, 16
- lsrs r4, 16
- lsls r5, 24
- lsrs r5, 24
- lsls r6, 24
- lsrs r6, 24
- ldr r0, _08111978 @ =sub_81118A4
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0811197C @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r0, 0
- strh r0, [r1, 0x8]
- mov r0, r8
- strh r0, [r1, 0xA]
- mov r0, r8
- lsrs r0, 16
- strh r0, [r1, 0xC]
- strh r4, [r1, 0x10]
- strh r5, [r1, 0x12]
- strh r6, [r1, 0x20]
- ldr r0, _08111980 @ =sub_8111894
- bl SetMainCallback2
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08111978: .4byte sub_81118A4
-_0811197C: .4byte gTasks
-_08111980: .4byte sub_8111894
- thumb_func_end sub_8111924
-
- thumb_func_start evolution_cutscene
-evolution_cutscene: @ 8111984
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x38
- str r0, [sp, 0x20]
- mov r10, r1
- mov r0, r10
- lsls r0, 16
- lsrs r0, 16
- mov r10, r0
- lsls r2, 24
- lsrs r2, 24
- str r2, [sp, 0x24]
- lsls r3, 24
- lsrs r3, 24
- str r3, [sp, 0x28]
- movs r0, 0
- bl SetHBlankCallback
- movs r0, 0
- bl SetVBlankCallback
- movs r5, 0
- str r5, [sp, 0x1C]
- add r0, sp, 0x1C
- movs r1, 0xC0
- lsls r1, 19
- ldr r2, _08111C10 @ =0x05006000
- bl CpuSet
- ldr r0, _08111C14 @ =REG_MOSAIC
- strh r5, [r0]
- subs r0, 0xC
- strh r5, [r0]
- adds r0, 0x4
- strh r5, [r0]
- subs r0, 0x2
- strh r5, [r0]
- adds r0, 0x4
- strh r5, [r0]
- adds r0, 0x2
- strh r5, [r0]
- adds r0, 0x2
- strh r5, [r0]
- ldr r4, _08111C18 @ =gWindowConfig_81E6C58
- adds r0, r4, 0
- bl SetUpWindowConfig
- bl ResetPaletteFade
- ldr r0, _08111C1C @ =gUnknown_030042A4
- strh r5, [r0]
- ldr r0, _08111C20 @ =gUnknown_030042A0
- strh r5, [r0]
- ldr r0, _08111C24 @ =gUnknown_030042C0
- strh r5, [r0]
- ldr r0, _08111C28 @ =gUnknown_030041B4
- strh r5, [r0]
- ldr r0, _08111C2C @ =gUnknown_03004288
- strh r5, [r0]
- ldr r0, _08111C30 @ =gUnknown_03004280
- strh r5, [r0]
- ldr r1, _08111C34 @ =gUnknown_030041B0
- movs r2, 0x80
- lsls r2, 1
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, _08111C38 @ =gUnknown_030041B8
- strh r5, [r0]
- ldr r0, _08111C3C @ =gUnknown_03004210
- adds r1, r4, 0
- bl InitWindowFromConfig
- ldr r1, _08111C40 @ =gUnknown_0300428C
- movs r0, 0x9
- strb r0, [r1]
- bl sub_800D6D4
- bl sub_800DAB8
- bl ResetSpriteData
- bl remove_some_task
- bl ResetTasks
- bl FreeAllSpritePalettes
- ldr r0, _08111C44 @ =gReservedSpritePaletteCount
- movs r3, 0x4
- strb r3, [r0]
- ldr r0, [sp, 0x20]
- movs r1, 0x2
- add r2, sp, 0x8
- bl GetMonData
- ldr r0, _08111C48 @ =gStringVar1
- add r1, sp, 0x8
- bl StringCopy10
- ldr r0, _08111C4C @ =gStringVar2
- movs r1, 0xB
- mov r4, r10
- muls r4, r1
- adds r1, r4, 0
- ldr r2, _08111C50 @ =gSpeciesNames
- adds r1, r2
- bl StringCopy
- ldr r0, [sp, 0x20]
- movs r1, 0xB
- bl GetMonData
- adds r6, r0, 0
- lsls r6, 16
- lsrs r6, 16
- ldr r0, [sp, 0x20]
- movs r1, 0x1
- bl GetMonData
- str r0, [sp, 0x2C]
- ldr r0, [sp, 0x20]
- movs r1, 0
- bl GetMonData
- str r0, [sp, 0x30]
- lsls r0, r6, 3
- ldr r1, _08111C54 @ =gMonFrontPicTable
- adds r0, r1
- lsls r2, r6, 2
- ldr r3, _08111C58 @ =gMonFrontPicCoords
- adds r2, r3
- ldrb r1, [r2]
- ldrb r2, [r2, 0x1]
- ldr r4, _08111C5C @ =gUnknown_081FAF4C
- ldr r3, [r4, 0x4]
- str r3, [sp]
- str r6, [sp, 0x4]
- movs r3, 0x80
- lsls r3, 18
- bl DecompressPicFromTable_2
- adds r0, r6, 0
- ldr r1, [sp, 0x2C]
- ldr r2, [sp, 0x30]
- bl sub_80409C8
- ldr r0, [r0]
- movs r1, 0x88
- lsls r1, 1
- movs r2, 0x20
- bl LoadCompressedPalette
- adds r0, r6, 0
- movs r1, 0x1
- bl GetMonSpriteTemplate_803C56C
- ldr r0, _08111C60 @ =gUnknown_02024E8C
- mov r9, r0
- ldr r1, _08111C64 @ =gDummySpriteAffineAnimTable
- str r1, [r0, 0x10]
- movs r1, 0x78
- movs r2, 0x40
- movs r3, 0x1E
- bl CreateSprite
- lsls r1, r0, 24
- lsrs r2, r1, 24
- ldr r3, _08111C68 @ =0x02014800
- strb r0, [r3]
- ldr r7, _08111C6C @ =gSprites
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- movs r4, 0x1C
- adds r4, r7
- mov r8, r4
- adds r0, r1, r4
- ldr r2, _08111C70 @ =nullsub_37
- str r2, [r0]
- adds r1, r7
- ldrb r2, [r1, 0x5]
- movs r4, 0xF
- adds r0, r4, 0
- ands r0, r2
- movs r2, 0x10
- orrs r0, r2
- strb r0, [r1, 0x5]
- adds r1, 0x3E
- ldrb r0, [r1]
- movs r3, 0x4
- orrs r0, r3
- strb r0, [r1]
- mov r1, r10
- lsls r0, r1, 3
- ldr r2, _08111C54 @ =gMonFrontPicTable
- adds r0, r2
- lsls r2, r1, 2
- ldr r3, _08111C58 @ =gMonFrontPicCoords
- adds r2, r3
- ldrb r1, [r2]
- ldrb r2, [r2, 0x1]
- str r2, [sp, 0x34]
- ldr r2, _08111C5C @ =gUnknown_081FAF4C
- ldr r2, [r2, 0xC]
- str r2, [sp]
- mov r3, r10
- str r3, [sp, 0x4]
- ldr r2, [sp, 0x34]
- movs r3, 0x80
- lsls r3, 18
- bl DecompressPicFromTable_2
- mov r0, r10
- ldr r1, [sp, 0x2C]
- ldr r2, [sp, 0x30]
- bl sub_80409C8
- ldr r0, [r0]
- movs r1, 0x90
- lsls r1, 1
- movs r2, 0x20
- bl LoadCompressedPalette
- mov r0, r10
- movs r1, 0x3
- bl GetMonSpriteTemplate_803C56C
- ldr r0, _08111C64 @ =gDummySpriteAffineAnimTable
- mov r1, r9
- str r0, [r1, 0x10]
- mov r0, r9
- movs r1, 0x78
- movs r2, 0x40
- movs r3, 0x1E
- bl CreateSprite
- lsls r1, r0, 24
- lsrs r2, r1, 24
- ldr r3, _08111C68 @ =0x02014800
- strb r0, [r3, 0x1]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- add r8, r1
- ldr r0, _08111C70 @ =nullsub_37
- mov r2, r8
- str r0, [r2]
- adds r1, r7
- ldrb r0, [r1, 0x5]
- ands r4, r0
- movs r0, 0x20
- orrs r4, r0
- strb r4, [r1, 0x5]
- adds r1, 0x3E
- ldrb r0, [r1]
- movs r3, 0x4
- orrs r0, r3
- strb r0, [r1]
- bl sub_8149954
- ldr r0, _08111C74 @ =sub_811240C
- movs r1, 0
- bl CreateTask
- lsls r1, r0, 24
- lsrs r2, r1, 24
- ldr r4, _08111C68 @ =0x02014800
- strb r0, [r4, 0x2]
- ldr r1, _08111C78 @ =gTasks
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r0, r1
- strh r5, [r0, 0x8]
- strh r6, [r0, 0xE]
- mov r1, r10
- strh r1, [r0, 0x10]
- mov r2, sp
- ldrh r2, [r2, 0x20]
- strh r2, [r0, 0xA]
- ldr r3, [sp, 0x20]
- lsrs r1, r3, 16
- strh r1, [r0, 0xC]
- mov r4, sp
- ldrh r4, [r4, 0x24]
- strh r4, [r0, 0x12]
- movs r1, 0x1
- strh r1, [r0, 0x14]
- strh r5, [r0, 0x1E]
- mov r1, sp
- ldrh r1, [r1, 0x28]
- strh r1, [r0, 0x20]
- ldr r0, _08111C7C @ =0x02009000
- ldr r1, _08111C80 @ =gPlttBufferUnfaded + 0x40
- movs r2, 0x60
- bl memcpy
- movs r1, 0x80
- lsls r1, 19
- movs r2, 0xFA
- lsls r2, 5
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, _08111C84 @ =nullsub_73
- bl SetHBlankCallback
- ldr r0, _08111C88 @ =sub_8114FD4
- bl SetVBlankCallback
- bl m4aMPlayAllStop
- ldr r0, _08111C8C @ =sub_8112270
- bl SetMainCallback2
- add sp, 0x38
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08111C10: .4byte 0x05006000
-_08111C14: .4byte REG_MOSAIC
-_08111C18: .4byte gWindowConfig_81E6C58
-_08111C1C: .4byte gUnknown_030042A4
-_08111C20: .4byte gUnknown_030042A0
-_08111C24: .4byte gUnknown_030042C0
-_08111C28: .4byte gUnknown_030041B4
-_08111C2C: .4byte gUnknown_03004288
-_08111C30: .4byte gUnknown_03004280
-_08111C34: .4byte gUnknown_030041B0
-_08111C38: .4byte gUnknown_030041B8
-_08111C3C: .4byte gUnknown_03004210
-_08111C40: .4byte gUnknown_0300428C
-_08111C44: .4byte gReservedSpritePaletteCount
-_08111C48: .4byte gStringVar1
-_08111C4C: .4byte gStringVar2
-_08111C50: .4byte gSpeciesNames
-_08111C54: .4byte gMonFrontPicTable
-_08111C58: .4byte gMonFrontPicCoords
-_08111C5C: .4byte gUnknown_081FAF4C
-_08111C60: .4byte gUnknown_02024E8C
-_08111C64: .4byte gDummySpriteAffineAnimTable
-_08111C68: .4byte 0x02014800
-_08111C6C: .4byte gSprites
-_08111C70: .4byte nullsub_37
-_08111C74: .4byte sub_811240C
-_08111C78: .4byte gTasks
-_08111C7C: .4byte 0x02009000
-_08111C80: .4byte gPlttBufferUnfaded + 0x40
-_08111C84: .4byte nullsub_73
-_08111C88: .4byte sub_8114FD4
-_08111C8C: .4byte sub_8112270
- thumb_func_end evolution_cutscene
-
- thumb_func_start sub_8111C90
-sub_8111C90: @ 8111C90
- push {r4-r6,lr}
- mov r6, r10
- mov r5, r9
- mov r4, r8
- push {r4-r6}
- sub sp, 0xC
- ldr r2, _08111E14 @ =gTasks
- ldr r0, _08111E18 @ =0x02014800
- mov r9, r0
- ldrb r1, [r0, 0x2]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- movs r1, 0x20
- ldrsh r2, [r0, r1]
- movs r1, 0x64
- adds r4, r2, 0
- muls r4, r1
- ldr r1, _08111E1C @ =gPlayerParty
- adds r4, r1
- ldrh r6, [r0, 0x10]
- adds r0, r4, 0
- movs r1, 0x1
- bl GetMonData
- mov r10, r0
- adds r0, r4, 0
- movs r1, 0
- bl GetMonData
- mov r8, r0
- movs r0, 0
- bl SetHBlankCallback
- movs r0, 0
- bl SetVBlankCallback
- movs r5, 0
- str r5, [sp, 0x8]
- movs r1, 0xC0
- lsls r1, 19
- ldr r2, _08111E20 @ =0x05006000
- add r0, sp, 0x8
- bl CpuSet
- ldr r0, _08111E24 @ =REG_MOSAIC
- strh r5, [r0]
- subs r0, 0xC
- strh r5, [r0]
- adds r0, 0x4
- strh r5, [r0]
- subs r0, 0x2
- strh r5, [r0]
- adds r0, 0x4
- strh r5, [r0]
- adds r0, 0x2
- strh r5, [r0]
- adds r0, 0x2
- strh r5, [r0]
- ldr r4, _08111E28 @ =gWindowConfig_81E6C58
- adds r0, r4, 0
- bl SetUpWindowConfig
- bl ResetPaletteFade
- ldr r0, _08111E2C @ =gUnknown_030042A4
- strh r5, [r0]
- ldr r0, _08111E30 @ =gUnknown_030042A0
- strh r5, [r0]
- ldr r0, _08111E34 @ =gUnknown_030042C0
- strh r5, [r0]
- ldr r0, _08111E38 @ =gUnknown_030041B4
- strh r5, [r0]
- ldr r0, _08111E3C @ =gUnknown_03004288
- strh r5, [r0]
- ldr r0, _08111E40 @ =gUnknown_03004280
- strh r5, [r0]
- ldr r1, _08111E44 @ =gUnknown_030041B0
- movs r2, 0x80
- lsls r2, 1
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, _08111E48 @ =gUnknown_030041B8
- strh r5, [r0]
- ldr r0, _08111E4C @ =gUnknown_03004210
- adds r1, r4, 0
- bl InitWindowFromConfig
- ldr r1, _08111E50 @ =gUnknown_0300428C
- movs r0, 0x9
- strb r0, [r1]
- bl sub_800D6D4
- bl sub_800DAB8
- bl ResetSpriteData
- bl FreeAllSpritePalettes
- ldr r1, _08111E54 @ =gReservedSpritePaletteCount
- movs r0, 0x4
- strb r0, [r1]
- lsls r0, r6, 3
- ldr r1, _08111E58 @ =gMonFrontPicTable
- adds r0, r1
- ldr r1, _08111E5C @ =gMonFrontPicCoords
- lsls r2, r6, 2
- adds r2, r1
- ldrb r1, [r2]
- ldrb r2, [r2, 0x1]
- movs r3, 0x80
- lsls r3, 18
- ldr r4, _08111E60 @ =gUnknown_081FAF4C
- ldr r4, [r4, 0xC]
- str r4, [sp]
- str r6, [sp, 0x4]
- bl DecompressPicFromTable_2
- adds r0, r6, 0
- mov r1, r10
- mov r2, r8
- bl sub_80409C8
- ldr r0, [r0]
- movs r1, 0x90
- lsls r1, 1
- movs r2, 0x20
- bl LoadCompressedPalette
- adds r0, r6, 0
- movs r1, 0x3
- bl GetMonSpriteTemplate_803C56C
- ldr r0, _08111E64 @ =gUnknown_02024E8C
- ldr r1, _08111E68 @ =gDummySpriteAffineAnimTable
- str r1, [r0, 0x10]
- movs r1, 0x78
- movs r2, 0x40
- movs r3, 0x1E
- bl CreateSprite
- lsls r2, r0, 24
- lsrs r2, 24
- mov r1, r9
- strb r0, [r1, 0x1]
- ldr r3, _08111E6C @ =gSprites
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r0, r3, 0
- adds r0, 0x1C
- adds r0, r1, r0
- ldr r2, _08111E70 @ =nullsub_37
- str r2, [r0]
- adds r1, r3
- ldrb r2, [r1, 0x5]
- movs r0, 0xF
- ands r0, r2
- movs r2, 0x20
- orrs r0, r2
- strb r0, [r1, 0x5]
- movs r1, 0x80
- lsls r1, 19
- movs r2, 0xFA
- lsls r2, 5
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, _08111E74 @ =nullsub_73
- bl SetHBlankCallback
- ldr r0, _08111E78 @ =sub_8114FD4
- bl SetVBlankCallback
- ldr r0, _08111E7C @ =sub_8112270
- bl SetMainCallback2
- movs r0, 0x1
- negs r0, r0
- str r5, [sp]
- movs r1, 0
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- add sp, 0xC
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08111E14: .4byte gTasks
-_08111E18: .4byte 0x02014800
-_08111E1C: .4byte gPlayerParty
-_08111E20: .4byte 0x05006000
-_08111E24: .4byte REG_MOSAIC
-_08111E28: .4byte gWindowConfig_81E6C58
-_08111E2C: .4byte gUnknown_030042A4
-_08111E30: .4byte gUnknown_030042A0
-_08111E34: .4byte gUnknown_030042C0
-_08111E38: .4byte gUnknown_030041B4
-_08111E3C: .4byte gUnknown_03004288
-_08111E40: .4byte gUnknown_03004280
-_08111E44: .4byte gUnknown_030041B0
-_08111E48: .4byte gUnknown_030041B8
-_08111E4C: .4byte gUnknown_03004210
-_08111E50: .4byte gUnknown_0300428C
-_08111E54: .4byte gReservedSpritePaletteCount
-_08111E58: .4byte gMonFrontPicTable
-_08111E5C: .4byte gMonFrontPicCoords
-_08111E60: .4byte gUnknown_081FAF4C
-_08111E64: .4byte gUnknown_02024E8C
-_08111E68: .4byte gDummySpriteAffineAnimTable
-_08111E6C: .4byte gSprites
-_08111E70: .4byte nullsub_37
-_08111E74: .4byte nullsub_73
-_08111E78: .4byte sub_8114FD4
-_08111E7C: .4byte sub_8112270
- thumb_func_end sub_8111C90
-
- thumb_func_start sub_8111E80
-sub_8111E80: @ 8111E80
- push {r4-r7,lr}
- sub sp, 0x8
- ldr r2, _08111EB8 @ =gTasks
- ldr r0, _08111EBC @ =0x02014800
- ldrb r1, [r0, 0x2]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- movs r1, 0x20
- ldrsh r2, [r0, r1]
- movs r1, 0x64
- muls r2, r1
- ldr r1, _08111EC0 @ =gPlayerParty
- adds r4, r2, r1
- ldrh r7, [r0, 0x10]
- ldr r0, _08111EC4 @ =gMain
- ldr r2, _08111EC8 @ =0x0000043c
- adds r0, r2
- ldrb r0, [r0]
- cmp r0, 0x6
- bls _08111EAE
- b _081120D6
-_08111EAE:
- lsls r0, 2
- ldr r1, _08111ECC @ =_08111ED0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08111EB8: .4byte gTasks
-_08111EBC: .4byte 0x02014800
-_08111EC0: .4byte gPlayerParty
-_08111EC4: .4byte gMain
-_08111EC8: .4byte 0x0000043c
-_08111ECC: .4byte _08111ED0
- .align 2, 0
-_08111ED0:
- .4byte _08111EEC
- .4byte _08111F68
- .4byte _08111F88
- .4byte _08111FDC
- .4byte _08111FE2
- .4byte _08112048
- .4byte _081120B4
-_08111EEC:
- movs r0, 0x80
- lsls r0, 19
- movs r4, 0
- strh r4, [r0]
- movs r0, 0
- bl SetHBlankCallback
- movs r0, 0
- bl SetVBlankCallback
- bl ResetSpriteData
- bl FreeAllSpritePalettes
- ldr r1, _08111F3C @ =gReservedSpritePaletteCount
- movs r0, 0x4
- strb r0, [r1]
- ldr r0, _08111F40 @ =gUnknown_030042A4
- strh r4, [r0]
- ldr r0, _08111F44 @ =gUnknown_030042A0
- strh r4, [r0]
- ldr r0, _08111F48 @ =gUnknown_030042C0
- strh r4, [r0]
- ldr r0, _08111F4C @ =gUnknown_030041B4
- strh r4, [r0]
- ldr r0, _08111F50 @ =gUnknown_03004288
- strh r4, [r0]
- ldr r0, _08111F54 @ =gUnknown_03004280
- strh r4, [r0]
- ldr r1, _08111F58 @ =gUnknown_030041B0
- movs r2, 0x80
- lsls r2, 1
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, _08111F5C @ =gUnknown_030041B8
- strh r4, [r0]
- ldr r1, _08111F60 @ =gMain
- ldr r0, _08111F64 @ =0x0000043c
- adds r1, r0
- b _0811208E
- .align 2, 0
-_08111F3C: .4byte gReservedSpritePaletteCount
-_08111F40: .4byte gUnknown_030042A4
-_08111F44: .4byte gUnknown_030042A0
-_08111F48: .4byte gUnknown_030042C0
-_08111F4C: .4byte gUnknown_030041B4
-_08111F50: .4byte gUnknown_03004288
-_08111F54: .4byte gUnknown_03004280
-_08111F58: .4byte gUnknown_030041B0
-_08111F5C: .4byte gUnknown_030041B8
-_08111F60: .4byte gMain
-_08111F64: .4byte 0x0000043c
-_08111F68:
- ldr r4, _08111F80 @ =gWindowConfig_81E6F84
- adds r0, r4, 0
- bl SetUpWindowConfig
- ldr r0, _08111F84 @ =gUnknown_03004828
- ldr r0, [r0]
- adds r0, 0x4
- adds r1, r4, 0
- bl InitWindowFromConfig
- b _08112088
- .align 2, 0
-_08111F80: .4byte gWindowConfig_81E6F84
-_08111F84: .4byte gUnknown_03004828
-_08111F88:
- ldr r4, _08111FC8 @ =gUnknown_03004828
- ldr r0, [r4]
- adds r0, 0x4
- bl LoadTextWindowGraphics
- movs r0, 0x2
- bl SetTextWindowBaseTileNum
- ldr r1, [r4]
- adds r1, 0x34
- strb r0, [r1]
- ldr r0, [r4]
- adds r0, 0x4
- bl LoadTextWindowGraphics
- bl MenuZeroFillScreen
- bl ResetPaletteFade
- ldr r1, _08111FCC @ =gMain
- ldr r0, _08111FD0 @ =0x0000043c
- adds r1, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- ldr r0, _08111FD4 @ =nullsub_73
- bl SetHBlankCallback
- ldr r0, _08111FD8 @ =sub_811505C
- bl SetVBlankCallback
- b _081120D6
- .align 2, 0
-_08111FC8: .4byte gUnknown_03004828
-_08111FCC: .4byte gMain
-_08111FD0: .4byte 0x0000043c
-_08111FD4: .4byte nullsub_73
-_08111FD8: .4byte sub_811505C
-_08111FDC:
- bl sub_804E22C
- b _08112088
-_08111FE2:
- adds r0, r4, 0
- movs r1, 0x1
- bl GetMonData
- adds r6, r0, 0
- adds r0, r4, 0
- movs r1, 0
- bl GetMonData
- adds r5, r0, 0
- lsls r0, r7, 3
- ldr r1, _08112034 @ =gMonFrontPicTable
- adds r0, r1
- ldr r1, _08112038 @ =gMonFrontPicCoords
- lsls r2, r7, 2
- adds r2, r1
- ldrb r1, [r2]
- ldrb r2, [r2, 0x1]
- movs r3, 0x80
- lsls r3, 18
- ldr r4, _0811203C @ =gUnknown_081FAF4C
- ldr r4, [r4, 0xC]
- str r4, [sp]
- str r7, [sp, 0x4]
- bl DecompressPicFromTable_2
- adds r0, r7, 0
- adds r1, r6, 0
- adds r2, r5, 0
- bl sub_80409C8
- ldr r0, [r0]
- movs r1, 0x90
- lsls r1, 1
- movs r2, 0x20
- bl LoadCompressedPalette
- ldr r1, _08112040 @ =gMain
- ldr r0, _08112044 @ =0x0000043c
- adds r1, r0
- b _0811208E
- .align 2, 0
-_08112034: .4byte gMonFrontPicTable
-_08112038: .4byte gMonFrontPicCoords
-_0811203C: .4byte gUnknown_081FAF4C
-_08112040: .4byte gMain
-_08112044: .4byte 0x0000043c
-_08112048:
- adds r0, r7, 0
- movs r1, 0x3
- bl GetMonSpriteTemplate_803C56C
- ldr r0, _08112098 @ =gUnknown_02024E8C
- ldr r1, _0811209C @ =gDummySpriteAffineAnimTable
- str r1, [r0, 0x10]
- movs r1, 0x78
- movs r2, 0x40
- movs r3, 0x1E
- bl CreateSprite
- ldr r1, _081120A0 @ =0x02014800
- lsls r2, r0, 24
- lsrs r2, 24
- strb r0, [r1, 0x1]
- ldr r3, _081120A4 @ =gSprites
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r0, r3, 0
- adds r0, 0x1C
- adds r0, r1, r0
- ldr r2, _081120A8 @ =nullsub_37
- str r2, [r0]
- adds r1, r3
- ldrb r2, [r1, 0x5]
- movs r0, 0xF
- ands r0, r2
- movs r2, 0x20
- orrs r0, r2
- strb r0, [r1, 0x5]
-_08112088:
- ldr r1, _081120AC @ =gMain
- ldr r2, _081120B0 @ =0x0000043c
- adds r1, r2
-_0811208E:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _081120D6
- .align 2, 0
-_08112098: .4byte gUnknown_02024E8C
-_0811209C: .4byte gDummySpriteAffineAnimTable
-_081120A0: .4byte 0x02014800
-_081120A4: .4byte gSprites
-_081120A8: .4byte nullsub_37
-_081120AC: .4byte gMain
-_081120B0: .4byte 0x0000043c
-_081120B4:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r0, _081120E0 @ =sub_8112290
- bl SetMainCallback2
- movs r1, 0x80
- lsls r1, 19
- movs r2, 0x9A
- lsls r2, 5
- adds r0, r2, 0
- strh r0, [r1]
-_081120D6:
- add sp, 0x8
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_081120E0: .4byte sub_8112290
- thumb_func_end sub_8111E80
-
- thumb_func_start sub_81120E4
-sub_81120E4: @ 81120E4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x24
- str r0, [sp, 0x1C]
- adds r5, r1, 0
- adds r4, r2, 0
- mov r10, r3
- lsls r5, 16
- lsrs r5, 16
- lsls r4, 24
- lsrs r4, 24
- mov r0, r10
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- ldr r0, [sp, 0x1C]
- movs r1, 0x2
- add r2, sp, 0x8
- bl GetMonData
- ldr r0, _08112234 @ =gStringVar1
- add r1, sp, 0x8
- bl StringCopy10
- ldr r0, _08112238 @ =gStringVar2
- movs r1, 0xB
- muls r1, r5
- ldr r2, _0811223C @ =gSpeciesNames
- adds r1, r2
- bl StringCopy
- ldr r1, _08112240 @ =gAffineAnimsDisabled
- movs r0, 0x1
- strb r0, [r1]
- ldr r0, [sp, 0x1C]
- movs r1, 0xB
- bl GetMonData
- mov r8, r0
- mov r1, r8
- lsls r1, 16
- lsrs r1, 16
- mov r8, r1
- ldr r0, [sp, 0x1C]
- movs r1, 0
- bl GetMonData
- adds r6, r0, 0
- ldr r0, [sp, 0x1C]
- movs r1, 0x1
- bl GetMonData
- adds r7, r0, 0
- ldr r2, _08112244 @ =0x02014800
- mov r9, r2
- strb r4, [r2]
- lsls r0, r5, 3
- ldr r1, _08112248 @ =gMonFrontPicTable
- adds r0, r1
- ldr r1, _0811224C @ =gMonFrontPicCoords
- lsls r2, r5, 2
- adds r2, r1
- ldrb r1, [r2]
- ldrb r2, [r2, 0x1]
- movs r3, 0x80
- lsls r3, 18
- ldr r4, _08112250 @ =gUnknown_081FAF4C
- ldr r4, [r4, 0x4]
- str r4, [sp]
- str r5, [sp, 0x4]
- bl DecompressPicFromTable_2
- adds r0, r5, 0
- adds r1, r7, 0
- adds r2, r6, 0
- bl sub_80409C8
- ldr r0, [r0]
- movs r1, 0x90
- lsls r1, 1
- movs r2, 0x20
- bl LoadCompressedPalette
- adds r0, r5, 0
- movs r1, 0x1
- bl GetMonSpriteTemplate_803C56C
- ldr r0, _08112254 @ =gUnknown_02024E8C
- ldr r1, _08112258 @ =gDummySpriteAffineAnimTable
- str r1, [r0, 0x10]
- movs r1, 0x78
- movs r2, 0x40
- movs r3, 0x1E
- bl CreateSprite
- lsls r1, r0, 24
- lsrs r2, r1, 24
- mov r1, r9
- strb r0, [r1, 0x1]
- ldr r3, _0811225C @ =gSprites
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r0, r3, 0
- adds r0, 0x1C
- adds r0, r1, r0
- ldr r2, _08112260 @ =nullsub_37
- str r2, [r0]
- adds r1, r3
- ldrb r2, [r1, 0x5]
- movs r0, 0xF
- ands r0, r2
- movs r2, 0x20
- orrs r0, r2
- strb r0, [r1, 0x5]
- adds r1, 0x3E
- ldrb r0, [r1]
- movs r2, 0x4
- orrs r0, r2
- strb r0, [r1]
- bl sub_8149954
- ldr r0, _08112264 @ =sub_8112FE8
- movs r1, 0
- bl CreateTask
- lsls r1, r0, 24
- lsrs r2, r1, 24
- mov r1, r9
- strb r0, [r1, 0x2]
- ldr r1, _08112268 @ =gTasks
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r0, r1
- movs r2, 0
- strh r2, [r0, 0x8]
- mov r1, r8
- strh r1, [r0, 0xE]
- strh r5, [r0, 0x10]
- mov r2, sp
- ldrh r2, [r2, 0x1C]
- strh r2, [r0, 0xA]
- ldr r1, [sp, 0x1C]
- lsrs r1, 16
- str r1, [sp, 0x20]
- strh r1, [r0, 0xC]
- movs r1, 0x1
- strh r1, [r0, 0x14]
- movs r1, 0
- strh r1, [r0, 0x1E]
- mov r2, r10
- strh r2, [r0, 0x20]
- ldr r0, _0811226C @ =sub_8112290
- bl SetMainCallback2
- 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
-_08112234: .4byte gStringVar1
-_08112238: .4byte gStringVar2
-_0811223C: .4byte gSpeciesNames
-_08112240: .4byte gAffineAnimsDisabled
-_08112244: .4byte 0x02014800
-_08112248: .4byte gMonFrontPicTable
-_0811224C: .4byte gMonFrontPicCoords
-_08112250: .4byte gUnknown_081FAF4C
-_08112254: .4byte gUnknown_02024E8C
-_08112258: .4byte gDummySpriteAffineAnimTable
-_0811225C: .4byte gSprites
-_08112260: .4byte nullsub_37
-_08112264: .4byte sub_8112FE8
-_08112268: .4byte gTasks
-_0811226C: .4byte sub_8112290
- thumb_func_end sub_81120E4
-
- thumb_func_start sub_8112270
-sub_8112270: @ 8112270
- push {lr}
- bl AnimateSprites
- bl BuildOamBuffer
- ldr r0, _0811228C @ =gUnknown_03004210
- bl sub_800374C
- bl UpdatePaletteFade
- bl RunTasks
- pop {r0}
- bx r0
- .align 2, 0
-_0811228C: .4byte gUnknown_03004210
- thumb_func_end sub_8112270
-
- thumb_func_start sub_8112290
-sub_8112290: @ 8112290
- push {lr}
- bl AnimateSprites
- bl BuildOamBuffer
- ldr r0, _081122B0 @ =gUnknown_03004828
- ldr r0, [r0]
- adds r0, 0x4
- bl sub_80035AC
- bl UpdatePaletteFade
- bl RunTasks
- pop {r0}
- bx r0
- .align 2, 0
-_081122B0: .4byte gUnknown_03004828
- thumb_func_end sub_8112290
-
- thumb_func_start sub_81122B4
-sub_81122B4: @ 81122B4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- mov r10, r1
- lsls r0, 16
- lsrs r7, r0, 16
- movs r0, 0
- str r0, [sp]
- ldr r0, _081123F4 @ =gEvolutionTable
- mov r8, r0
- lsls r1, r7, 2
- mov r9, r1
- adds r0, r1, r7
- lsls r4, r0, 3
- mov r0, r8
- adds r6, r4, r0
- ldrh r0, [r6]
- cmp r0, 0xD
- beq _081122E2
- b _081123E2
-_081122E2:
- ldr r1, _081123F8 @ =gPlayerPartyCount
- ldrb r0, [r1]
- cmp r0, 0x5
- bhi _081123E2
- adds r1, r0, 0
- movs r0, 0x64
- muls r1, r0
- ldr r0, _081123FC @ =gPlayerParty
- adds r5, r1, r0
- adds r0, r5, 0
- mov r1, r10
- movs r2, 0x64
- bl CopyMon
- mov r1, r8
- adds r2, r1, r4
- adds r2, 0xC
- adds r0, r5, 0
- movs r1, 0xB
- bl SetMonData
- ldrh r1, [r6, 0xC]
- movs r0, 0xB
- adds r2, r1, 0
- muls r2, r0
- ldr r0, _08112400 @ =gSpeciesNames
- adds r2, r0
- adds r0, r5, 0
- movs r1, 0x2
- bl SetMonData
- adds r0, r5, 0
- movs r1, 0xC
- mov r2, sp
- bl SetMonData
- adds r0, r5, 0
- movs r1, 0x8
- mov r2, sp
- bl SetMonData
- adds r0, r5, 0
- movs r1, 0xA
- mov r2, sp
- bl SetMonData
- movs r4, 0x32
- mov r6, r9
-_08112342:
- adds r0, r5, 0
- adds r1, r4, 0
- mov r2, sp
- bl SetMonData
- adds r4, 0x1
- cmp r4, 0x36
- ble _08112342
- movs r4, 0x43
-_08112354:
- adds r0, r5, 0
- adds r1, r4, 0
- mov r2, sp
- bl SetMonData
- adds r4, 0x1
- cmp r4, 0x4F
- ble _08112354
- adds r0, r5, 0
- movs r1, 0x37
- mov r2, sp
- bl SetMonData
- movs r0, 0xFF
- str r0, [sp]
- adds r0, r5, 0
- movs r1, 0x40
- mov r2, sp
- bl SetMonData
- adds r0, r5, 0
- bl CalculateMonStats
- bl CalculatePlayerPartyCount
- ldr r0, _081123F4 @ =gEvolutionTable
- adds r4, r6, r7
- lsls r4, 3
- adds r4, r0
- ldrh r0, [r4, 0xC]
- bl SpeciesToNationalPokedexNum
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x2
- bl sub_8090D90
- ldrh r0, [r4, 0xC]
- bl SpeciesToNationalPokedexNum
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x3
- bl sub_8090D90
- adds r0, r5, 0
- movs r1, 0xB
- bl GetMonData
- ldr r1, _08112404 @ =0x0000012f
- cmp r0, r1
- bne _081123E2
- adds r0, r5, 0
- movs r1, 0x3
- bl GetMonData
- cmp r0, 0x1
- bne _081123E2
- mov r0, r10
- movs r1, 0xB
- bl GetMonData
- movs r1, 0x97
- lsls r1, 1
- cmp r0, r1
- bne _081123E2
- ldr r2, _08112408 @ =gUnknown_083F868C
- adds r0, r5, 0
- movs r1, 0x2
- bl SetMonData
-_081123E2:
- 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
-_081123F4: .4byte gEvolutionTable
-_081123F8: .4byte gPlayerPartyCount
-_081123FC: .4byte gPlayerParty
-_08112400: .4byte gSpeciesNames
-_08112404: .4byte 0x0000012f
-_08112408: .4byte gUnknown_083F868C
- thumb_func_end sub_81122B4
-
- thumb_func_start sub_811240C
-sub_811240C: @ 811240C
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x18
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r2, _08112490 @ =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r3, r0, r2
- movs r1, 0xA
- ldrsh r0, [r3, r1]
- mov r9, r0
- movs r1, 0xC
- ldrsh r0, [r3, r1]
- lsls r0, 16
- mov r1, r9
- orrs r1, r0
- mov r9, r1
- ldr r0, _08112494 @ =gMain
- ldrh r1, [r0, 0x2C]
- adds r6, r2, 0
- adds r4, r0, 0
- cmp r1, 0x2
- bne _0811246E
- movs r2, 0x8
- ldrsh r0, [r3, r2]
- cmp r0, 0x8
- bne _0811246E
- ldrh r1, [r3, 0x12]
- movs r2, 0x1
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- beq _0811246E
- movs r0, 0x10
- strh r0, [r3, 0x8]
- ldr r0, _08112498 @ =gUnknown_02024D1E
- ldrb r1, [r0, 0x2]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r1, r0, r6
- ldrb r0, [r1, 0x4]
- cmp r0, 0
- beq _0811246E
- strh r2, [r1, 0x18]
-_0811246E:
- lsls r1, r7, 2
- adds r0, r1, r7
- lsls r0, 3
- adds r0, r6
- movs r3, 0x8
- ldrsh r0, [r0, r3]
- mov r8, r1
- cmp r0, 0x15
- bls _08112484
- bl _08112FD0
-_08112484:
- lsls r0, 2
- ldr r1, _0811249C @ =_081124A0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08112490: .4byte gTasks
-_08112494: .4byte gMain
-_08112498: .4byte gUnknown_02024D1E
-_0811249C: .4byte _081124A0
- .align 2, 0
-_081124A0:
- .4byte _081124F8
- .4byte _0811253C
- .4byte _08112588
- .4byte _08112594
- .4byte _081125BC
- .4byte _081125FC
- .4byte _08112630
- .4byte _0811266C
- .4byte _081126A0
- .4byte _081126E0
- .4byte _081126FC
- .4byte _08112728
- .4byte _08112754
- .4byte _081127A0
- .4byte _0811284C
- .4byte _081128E4
- .4byte _08112934
- .4byte _08112974
- .4byte _081129A0
- .4byte _081129E8
- .4byte _08112A4C
- .4byte _08112A88
-_081124F8:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r2, _08112530 @ =gSprites
- ldr r0, _08112534 @ =0x02014800
- 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]
- ldr r0, _08112538 @ =gTasks
- mov r2, r8
- adds r1, r2, r7
- lsls r1, 3
- adds r1, r0
- b _08112A2E
- .align 2, 0
-_08112530: .4byte gSprites
-_08112534: .4byte 0x02014800
-_08112538: .4byte gTasks
-_0811253C:
- ldr r0, _08112574 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0811254C
- bl _08112FD0
-_0811254C:
- ldr r4, _08112578 @ =gStringVar4
- ldr r1, _0811257C @ =gUnknown_08400C4A
- adds r0, r4, 0
- bl StringExpandPlaceholders
- ldr r0, _08112580 @ =gUnknown_03004210
- movs r1, 0xF
- str r1, [sp]
- adds r1, r4, 0
- movs r2, 0x90
- movs r3, 0x2
- bl sub_8002EB0
- ldr r0, _08112584 @ =gTasks
- mov r3, r8
- adds r1, r3, r7
- lsls r1, 3
- adds r1, r0
- b _08112A2E
- .align 2, 0
-_08112574: .4byte gPaletteFade
-_08112578: .4byte gStringVar4
-_0811257C: .4byte gUnknown_08400C4A
-_08112580: .4byte gUnknown_03004210
-_08112584: .4byte gTasks
-_08112588:
- ldr r0, _08112590 @ =gUnknown_03004210
- ldrh r0, [r0, 0x16]
- b _0811297C
- .align 2, 0
-_08112590: .4byte gUnknown_03004210
-_08112594:
- bl IsCryFinished
- lsls r0, 24
- cmp r0, 0
- bne _081125A2
- bl _08112FD0
-_081125A2:
- movs r0, 0xBC
- lsls r0, 1
- bl PlaySE
- ldr r0, _081125B8 @ =gTasks
- mov r2, r8
- adds r1, r2, r7
- lsls r1, 3
- adds r1, r0
- b _08112A2E
- .align 2, 0
-_081125B8: .4byte gTasks
-_081125BC:
- bl IsSEPlaying
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- beq _081125CC
- bl _08112FD0
-_081125CC:
- ldr r0, _081125F4 @ =0x00000179
- bl PlayNewMapMusic
- ldr r0, _081125F8 @ =gTasks
- mov r3, r8
- adds r1, r3, r7
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- str r4, [sp]
- movs r0, 0x1C
- movs r1, 0x4
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- bl _08112FD0
- .align 2, 0
-_081125F4: .4byte 0x00000179
-_081125F8: .4byte gTasks
-_081125FC:
- ldr r0, _08112624 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0811260C
- bl _08112FD0
-_0811260C:
- movs r0, 0x11
- bl sub_8149970
- ldr r1, _08112628 @ =gUnknown_02024D1E
- strb r0, [r1, 0x2]
- ldr r0, _0811262C @ =gTasks
- mov r2, r8
- adds r1, r2, r7
- lsls r1, 3
- adds r1, r0
- b _08112A2E
- .align 2, 0
-_08112624: .4byte gPaletteFade
-_08112628: .4byte gUnknown_02024D1E
-_0811262C: .4byte gTasks
-_08112630:
- ldr r4, _08112664 @ =gUnknown_02024D1E
- ldrb r0, [r4, 0x2]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r6
- ldrb r0, [r1, 0x4]
- cmp r0, 0
- beq _08112646
- bl _08112FD0
-_08112646:
- mov r3, r8
- adds r1, r3, r7
- lsls r1, 3
- adds r1, r6
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- ldr r1, _08112668 @ =0x02014800
- movs r0, 0x1
- strb r0, [r1, 0x3]
- bl sub_8149A90
- strb r0, [r4, 0x2]
- bl _08112FD0
- .align 2, 0
-_08112664: .4byte gUnknown_02024D1E
-_08112668: .4byte 0x02014800
-_0811266C:
- ldr r4, _08112698 @ =gUnknown_02024D1E
- ldrb r0, [r4, 0x2]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r6
- ldrb r0, [r1, 0x4]
- cmp r0, 0
- beq _08112682
- bl _08112FD0
-_08112682:
- ldr r1, _0811269C @ =0x02014800
- ldrb r0, [r1]
- ldrb r1, [r1, 0x1]
- bl sub_8149E7C
- strb r0, [r4, 0x2]
- mov r0, r8
- adds r1, r0, r7
- lsls r1, 3
- adds r1, r6
- b _08112A2E
- .align 2, 0
-_08112698: .4byte gUnknown_02024D1E
-_0811269C: .4byte 0x02014800
-_081126A0:
- ldr r1, _081126D8 @ =0x02014800
- ldrb r0, [r1, 0x3]
- subs r0, 0x1
- strb r0, [r1, 0x3]
- lsls r0, 24
- cmp r0, 0
- beq _081126B2
- bl _08112FD0
-_081126B2:
- movs r0, 0x3
- strb r0, [r1, 0x3]
- ldr r0, _081126DC @ =gUnknown_02024D1E
- ldrb r1, [r0, 0x2]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r6
- ldrb r0, [r0, 0x4]
- cmp r0, 0
- beq _081126CC
- bl _08112FD0
-_081126CC:
- mov r2, r8
- adds r1, r2, r7
- lsls r1, 3
- adds r1, r6
- b _08112A2E
- .align 2, 0
-_081126D8: .4byte 0x02014800
-_081126DC: .4byte gUnknown_02024D1E
-_081126E0:
- bl sub_8149B44
- ldr r1, _081126F4 @ =gUnknown_02024D1E
- strb r0, [r1, 0x2]
- ldr r0, _081126F8 @ =gTasks
- mov r3, r8
- adds r1, r3, r7
- lsls r1, 3
- adds r1, r0
- b _08112A2E
- .align 2, 0
-_081126F4: .4byte gUnknown_02024D1E
-_081126F8: .4byte gTasks
-_081126FC:
- ldr r5, _08112724 @ =gUnknown_02024D1E
- ldrb r0, [r5, 0x2]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r6
- ldrb r0, [r1, 0x4]
- cmp r0, 0
- beq _08112712
- bl _08112FD0
-_08112712:
- mov r0, r8
- adds r4, r0, r7
- lsls r4, 3
- adds r4, r6
- ldrh r0, [r4, 0x10]
- bl sub_8149C20
- strb r0, [r5, 0x2]
- b _08112992
- .align 2, 0
-_08112724: .4byte gUnknown_02024D1E
-_08112728:
- ldr r0, _08112750 @ =gUnknown_02024D1E
- ldrb r1, [r0, 0x2]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r6
- ldrb r0, [r0, 0x4]
- cmp r0, 0
- beq _0811273E
- bl _08112FD0
-_0811273E:
- movs r0, 0x21
- bl PlaySE
- mov r2, r8
- adds r1, r2, r7
- lsls r1, 3
- adds r1, r6
- b _08112A2E
- .align 2, 0
-_08112750: .4byte gUnknown_02024D1E
-_08112754:
- bl IsSEPlaying
- lsls r0, 24
- cmp r0, 0
- bne _08112762
- bl _08112FD0
-_08112762:
- bl m4aMPlayAllStop
- ldr r0, _08112794 @ =gTasks
- mov r3, r8
- adds r4, r3, r7
- lsls r4, 3
- adds r4, r0
- ldrh r0, [r4, 0x10]
- movs r1, 0
- bl PlayCry1
- ldr r0, _08112798 @ =gPlttBufferUnfaded + 0x40
- ldr r1, _0811279C @ =0x02009000
- movs r2, 0x60
- bl memcpy
- movs r0, 0
- str r0, [sp]
- movs r0, 0x1C
- movs r1, 0
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- b _08112992
- .align 2, 0
-_08112794: .4byte gTasks
-_08112798: .4byte gPlttBufferUnfaded + 0x40
-_0811279C: .4byte 0x02009000
-_081127A0:
- bl IsCryFinished
- lsls r0, 24
- cmp r0, 0
- bne _081127AE
- bl _08112FD0
-_081127AE:
- ldr r0, _08112834 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _081127BE
- bl _08112FD0
-_081127BE:
- ldr r4, _08112838 @ =gStringVar4
- ldr r1, _0811283C @ =gUnknown_08400C60
- adds r0, r4, 0
- bl StringExpandPlaceholders
- ldr r0, _08112840 @ =gUnknown_03004210
- movs r1, 0xF
- str r1, [sp]
- adds r1, r4, 0
- movs r2, 0x90
- movs r3, 0x2
- bl sub_8002EB0
- ldr r0, _08112844 @ =0x00000173
- bl PlayBGM
- ldr r2, _08112848 @ =gTasks
- mov r0, r8
- adds r1, r0, r7
- lsls r1, 3
- adds r4, r1, r2
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- adds r2, r1
- adds r2, 0x10
- mov r0, r9
- movs r1, 0xB
- bl SetMonData
- mov r0, r9
- bl CalculateMonStats
- ldrh r1, [r4, 0xE]
- ldrh r2, [r4, 0x10]
- mov r0, r9
- bl sub_803FB68
- ldrh r0, [r4, 0x10]
- bl SpeciesToNationalPokedexNum
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x2
- bl sub_8090D90
- ldrh r0, [r4, 0x10]
- bl SpeciesToNationalPokedexNum
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x3
- bl sub_8090D90
- movs r0, 0xE
- bl sav12_xor_increment
- b _08112FD0
- .align 2, 0
-_08112834: .4byte gPaletteFade
-_08112838: .4byte gStringVar4
-_0811283C: .4byte gUnknown_08400C60
-_08112840: .4byte gUnknown_03004210
-_08112844: .4byte 0x00000173
-_08112848: .4byte gTasks
-_0811284C:
- ldr r0, _081128A4 @ =gUnknown_03004210
- ldrh r0, [r0, 0x16]
- cmp r0, 0
- beq _08112856
- b _08112FD0
-_08112856:
- mov r1, r8
- adds r0, r1, r7
- lsls r0, 3
- adds r5, r0, r6
- ldrb r1, [r5, 0x14]
- mov r0, r9
- bl sub_803B7C8
- lsls r0, 16
- lsrs r6, r0, 16
- cmp r6, 0
- beq _081128C4
- movs r2, 0x1E
- ldrsh r4, [r5, r2]
- cmp r4, 0
- bne _081128C4
- bl sub_8053E90
- ldrh r1, [r5, 0x12]
- movs r0, 0x80
- orrs r0, r1
- strh r0, [r5, 0x12]
- strh r4, [r5, 0x14]
- strh r4, [r5, 0x18]
- mov r0, r9
- movs r1, 0x2
- add r2, sp, 0x4
- bl GetMonData
- ldr r0, _081128A8 @ =gUnknown_030041C0
- add r1, sp, 0x4
- bl StringCopy10
- ldr r0, _081128AC @ =0x0000ffff
- cmp r6, r0
- bne _081128B0
- movs r0, 0x15
- strh r0, [r5, 0x8]
- b _08112FD0
- .align 2, 0
-_081128A4: .4byte gUnknown_03004210
-_081128A8: .4byte gUnknown_030041C0
-_081128AC: .4byte 0x0000ffff
-_081128B0:
- ldr r0, _081128C0 @ =0x0000fffe
- cmp r6, r0
- bne _081128B8
- b _08112FD0
-_081128B8:
- movs r0, 0x13
- strh r0, [r5, 0x8]
- b _08112FD0
- .align 2, 0
-_081128C0: .4byte 0x0000fffe
-_081128C4:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r0, _081128E0 @ =gTasks
- mov r3, r8
- adds r1, r3, r7
- lsls r1, 3
- adds r1, r0
- b _08112A2E
- .align 2, 0
-_081128E0: .4byte gTasks
-_081128E4:
- ldr r0, _0811292C @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r2, 0x80
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- beq _081128F4
- b _08112FD0
-_081128F4:
- mov r1, r8
- adds r0, r1, r7
- lsls r0, 3
- adds r4, r0, r6
- ldrh r1, [r4, 0x12]
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- bne _0811290A
- bl sub_8053E90
-_0811290A:
- movs r2, 0x1E
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bne _0811291A
- ldrh r0, [r4, 0xE]
- mov r1, r9
- bl sub_81122B4
-_0811291A:
- adds r0, r7, 0
- bl DestroyTask
- ldr r0, _08112930 @ =gUnknown_03005E94
- ldr r0, [r0]
- bl SetMainCallback2
- b _08112FD0
- .align 2, 0
-_0811292C: .4byte gPaletteFade
-_08112930: .4byte gUnknown_03005E94
-_08112934:
- ldr r0, _08112968 @ =gUnknown_02024D1E
- ldrb r1, [r0, 0x2]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r6
- ldrb r0, [r0, 0x4]
- cmp r0, 0
- beq _08112948
- b _08112FD0
-_08112948:
- bl m4aMPlayAllStop
- ldr r0, _0811296C @ =0x0006001c
- ldr r1, _08112970 @ =0x00007fff
- str r1, [sp]
- movs r1, 0
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- mov r3, r8
- adds r1, r3, r7
- lsls r1, 3
- adds r1, r6
- b _08112A2E
- .align 2, 0
-_08112968: .4byte gUnknown_02024D1E
-_0811296C: .4byte 0x0006001c
-_08112970: .4byte 0x00007fff
-_08112974:
- ldr r0, _0811299C @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
-_0811297C:
- cmp r0, 0
- beq _08112982
- b _08112FD0
-_08112982:
- mov r0, r8
- adds r4, r0, r7
- lsls r4, 3
- adds r4, r6
- ldrh r0, [r4, 0xE]
- movs r1, 0
- bl PlayCry1
-_08112992:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _08112FD0
- .align 2, 0
-_0811299C: .4byte gPaletteFade
-_081129A0:
- bl IsCryFinished
- lsls r0, 24
- cmp r0, 0
- bne _081129AC
- b _08112FD0
-_081129AC:
- ldr r4, _081129D8 @ =gStringVar4
- ldr r1, _081129DC @ =gUnknown_08400C8D
- adds r0, r4, 0
- bl StringExpandPlaceholders
- ldr r0, _081129E0 @ =gUnknown_03004210
- movs r1, 0xF
- str r1, [sp]
- adds r1, r4, 0
- movs r2, 0x90
- movs r3, 0x2
- bl sub_8002EB0
- ldr r1, _081129E4 @ =gTasks
- mov r2, r8
- adds r0, r2, r7
- lsls r0, 3
- adds r0, r1
- movs r1, 0x1
- strh r1, [r0, 0x1E]
- b _08112F9A
- .align 2, 0
-_081129D8: .4byte gStringVar4
-_081129DC: .4byte gUnknown_08400C8D
-_081129E0: .4byte gUnknown_03004210
-_081129E4: .4byte gTasks
-_081129E8:
- ldr r4, _08112A38 @ =gUnknown_03004210
- ldrh r0, [r4, 0x16]
- cmp r0, 0
- beq _081129F2
- b _08112FD0
-_081129F2:
- bl IsSEPlaying
- lsls r0, 24
- cmp r0, 0
- beq _081129FE
- b _08112FD0
-_081129FE:
- bl sub_8024CEC
- ldr r0, _08112A3C @ =0x0000016f
- bl PlayFanfare
- ldr r0, _08112A40 @ =gUnknown_08400F8C
- ldr r0, [r0, 0xC]
- bl get_battle_strings_
- ldr r1, _08112A44 @ =gUnknown_020238CC
- movs r0, 0xF
- str r0, [sp]
- adds r0, r4, 0
- movs r2, 0x90
- movs r3, 0x2
- bl sub_8002EB0
- ldr r0, _08112A48 @ =gTasks
- mov r3, r8
- adds r1, r3, r7
- lsls r1, 3
- adds r1, r0
- movs r0, 0x40
- strh r0, [r1, 0x14]
-_08112A2E:
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- b _08112FD0
- .align 2, 0
-_08112A38: .4byte gUnknown_03004210
-_08112A3C: .4byte 0x0000016f
-_08112A40: .4byte gUnknown_08400F8C
-_08112A44: .4byte gUnknown_020238CC
-_08112A48: .4byte gTasks
-_08112A4C:
- ldr r0, _08112A80 @ =gUnknown_03004210
- ldrh r0, [r0, 0x16]
- cmp r0, 0
- beq _08112A56
- b _08112FD0
-_08112A56:
- bl IsSEPlaying
- lsls r0, 24
- cmp r0, 0
- beq _08112A62
- b _08112FD0
-_08112A62:
- ldr r0, _08112A84 @ =gTasks
- mov r2, r8
- adds r1, r2, r7
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x14]
- subs r0, 0x1
- strh r0, [r1, 0x14]
- lsls r0, 16
- cmp r0, 0
- beq _08112A7A
- b _08112FD0
-_08112A7A:
- movs r0, 0xE
- strh r0, [r1, 0x8]
- b _08112FD0
- .align 2, 0
-_08112A80: .4byte gUnknown_03004210
-_08112A84: .4byte gTasks
-_08112A88:
- mov r3, r8
- adds r0, r3, r7
- lsls r0, 3
- adds r0, r6
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- cmp r0, 0xB
- bls _08112A9A
- b _08112FD0
-_08112A9A:
- lsls r0, 2
- ldr r1, _08112AA4 @ =_08112AA8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08112AA4: .4byte _08112AA8
- .align 2, 0
-_08112AA8:
- .4byte _08112AD8
- .4byte _08112B2C
- .4byte _08112B7C
- .4byte _08112BC0
- .4byte _08112C0C
- .4byte _08112D3C
- .4byte _08112D8C
- .4byte _08112E98
- .4byte _08112EE8
- .4byte _08112F38
- .4byte _08112F78
- .4byte _08112FB0
-_08112AD8:
- ldr r4, _08112B1C @ =gUnknown_03004210
- ldrh r0, [r4, 0x16]
- cmp r0, 0
- beq _08112AE2
- b _08112FD0
-_08112AE2:
- bl IsSEPlaying
- lsls r0, 24
- cmp r0, 0
- beq _08112AEE
- b _08112FD0
-_08112AEE:
- bl sub_8024CEC
- ldr r0, _08112B20 @ =gUnknown_08400F8C
- ldr r0, [r0, 0x10]
- bl get_battle_strings_
- ldr r1, _08112B24 @ =gUnknown_020238CC
- movs r0, 0xF
- str r0, [sp]
- adds r0, r4, 0
- movs r2, 0x90
- movs r3, 0x2
- bl sub_8002EB0
- ldr r0, _08112B28 @ =gTasks
- mov r2, r8
- adds r1, r2, r7
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x18]
- adds r0, 0x1
- b _08112FCE
- .align 2, 0
-_08112B1C: .4byte gUnknown_03004210
-_08112B20: .4byte gUnknown_08400F8C
-_08112B24: .4byte gUnknown_020238CC
-_08112B28: .4byte gTasks
-_08112B2C:
- ldr r4, _08112B6C @ =gUnknown_03004210
- ldrh r0, [r4, 0x16]
- cmp r0, 0
- beq _08112B36
- b _08112FD0
-_08112B36:
- bl IsSEPlaying
- lsls r0, 24
- cmp r0, 0
- beq _08112B42
- b _08112FD0
-_08112B42:
- ldr r0, _08112B70 @ =gUnknown_08400F8C
- ldr r0, [r0, 0x14]
- bl get_battle_strings_
- ldr r1, _08112B74 @ =gUnknown_020238CC
- movs r0, 0xF
- str r0, [sp]
- adds r0, r4, 0
- movs r2, 0x90
- movs r3, 0x2
- bl sub_8002EB0
- ldr r0, _08112B78 @ =gTasks
- mov r3, r8
- adds r1, r3, r7
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x18]
- adds r0, 0x1
- b _08112FCE
- .align 2, 0
-_08112B6C: .4byte gUnknown_03004210
-_08112B70: .4byte gUnknown_08400F8C
-_08112B74: .4byte gUnknown_020238CC
-_08112B78: .4byte gTasks
-_08112B7C:
- ldr r4, _08112BF8 @ =gUnknown_03004210
- ldrh r0, [r4, 0x16]
- cmp r0, 0
- beq _08112B86
- b _08112FD0
-_08112B86:
- bl IsSEPlaying
- lsls r0, 24
- cmp r0, 0
- bne _08112BC0
- ldr r0, _08112BFC @ =gUnknown_08400F8C
- ldr r0, [r0, 0x18]
- bl get_battle_strings_
- ldr r1, _08112C00 @ =gUnknown_020238CC
- movs r0, 0xF
- str r0, [sp]
- adds r0, r4, 0
- movs r2, 0x90
- movs r3, 0x2
- bl sub_8002EB0
- ldr r0, _08112C04 @ =gTasks
- mov r2, r8
- adds r1, r2, r7
- lsls r1, 3
- adds r1, r0
- movs r0, 0x5
- strh r0, [r1, 0x1A]
- movs r0, 0x9
- strh r0, [r1, 0x1C]
- ldrh r0, [r1, 0x18]
- adds r0, 0x1
- strh r0, [r1, 0x18]
-_08112BC0:
- ldr r0, _08112BF8 @ =gUnknown_03004210
- ldrh r0, [r0, 0x16]
- cmp r0, 0
- beq _08112BCA
- b _08112FD0
-_08112BCA:
- bl IsSEPlaying
- lsls r0, 24
- cmp r0, 0
- beq _08112BD6
- b _08112FD0
-_08112BD6:
- bl sub_8023A80
- ldr r0, _08112C04 @ =gTasks
- mov r3, r8
- adds r1, r3, r7
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x18]
- adds r0, 0x1
- movs r2, 0
- strh r0, [r1, 0x18]
- ldr r0, _08112C08 @ =gUnknown_02024D1E
- strb r2, [r0, 0x1]
- bl sub_802BC6C
- b _08112FD0
- .align 2, 0
-_08112BF8: .4byte gUnknown_03004210
-_08112BFC: .4byte gUnknown_08400F8C
-_08112C00: .4byte gUnknown_020238CC
-_08112C04: .4byte gTasks
-_08112C08: .4byte gUnknown_02024D1E
-_08112C0C:
- ldr r0, _08112CA4 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08112C32
- ldr r4, _08112CA8 @ =gUnknown_02024D1E
- ldrb r0, [r4, 0x1]
- cmp r0, 0
- beq _08112C32
- movs r0, 0x5
- bl PlaySE
- bl nullsub_6
- movs r0, 0
- strb r0, [r4, 0x1]
- bl sub_802BC6C
-_08112C32:
- ldr r0, _08112CA4 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08112C58
- ldr r4, _08112CA8 @ =gUnknown_02024D1E
- ldrb r0, [r4, 0x1]
- cmp r0, 0
- bne _08112C58
- movs r0, 0x5
- bl PlaySE
- bl nullsub_6
- movs r0, 0x1
- strb r0, [r4, 0x1]
- bl sub_802BC6C
-_08112C58:
- ldr r0, _08112CA4 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08112CE2
- bl sub_8023AD8
- ldr r0, _08112CAC @ =gUnknown_08400F8C
- movs r1, 0x92
- lsls r1, 3
- adds r0, r1
- ldr r0, [r0]
- bl get_battle_strings_
- ldr r0, _08112CB0 @ =gUnknown_03004210
- ldr r1, _08112CB4 @ =gUnknown_020238CC
- movs r2, 0xF
- str r2, [sp]
- movs r2, 0x90
- movs r3, 0x2
- bl sub_8002EB0
- movs r0, 0x5
- bl PlaySE
- ldr r0, _08112CA8 @ =gUnknown_02024D1E
- ldrb r2, [r0, 0x1]
- cmp r2, 0
- beq _08112CBC
- ldr r0, _08112CB8 @ =gTasks
- mov r2, r8
- adds r1, r2, r7
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x1C]
- strh r0, [r1, 0x18]
- b _08112CE2
- .align 2, 0
-_08112CA4: .4byte gMain
-_08112CA8: .4byte gUnknown_02024D1E
-_08112CAC: .4byte gUnknown_08400F8C
-_08112CB0: .4byte gUnknown_03004210
-_08112CB4: .4byte gUnknown_020238CC
-_08112CB8: .4byte gTasks
-_08112CBC:
- ldr r0, _08112D28 @ =gTasks
- mov r3, r8
- adds r1, r3, r7
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x1A]
- strh r0, [r1, 0x18]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x5
- bne _08112CE2
- movs r0, 0x1
- negs r0, r0
- str r2, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
-_08112CE2:
- ldr r0, _08112D2C @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _08112CF0
- b _08112FD0
-_08112CF0:
- bl sub_8023AD8
- ldr r0, _08112D30 @ =gUnknown_08400F8C
- movs r1, 0x92
- lsls r1, 3
- adds r0, r1
- ldr r0, [r0]
- bl get_battle_strings_
- ldr r0, _08112D34 @ =gUnknown_03004210
- ldr r1, _08112D38 @ =gUnknown_020238CC
- movs r2, 0xF
- str r2, [sp]
- movs r2, 0x90
- movs r3, 0x2
- bl sub_8002EB0
- movs r0, 0x5
- bl PlaySE
- ldr r1, _08112D28 @ =gTasks
- mov r2, r8
- adds r0, r2, r7
- lsls r0, 3
- adds r0, r1
- ldrh r1, [r0, 0x1C]
- strh r1, [r0, 0x18]
- b _08112FD0
- .align 2, 0
-_08112D28: .4byte gTasks
-_08112D2C: .4byte gMain
-_08112D30: .4byte gUnknown_08400F8C
-_08112D34: .4byte gUnknown_03004210
-_08112D38: .4byte gUnknown_020238CC
-_08112D3C:
- ldr r0, _08112D78 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08112D4A
- b _08112FD0
-_08112D4A:
- ldr r0, _08112D7C @ =gPlayerParty
- mov r3, r8
- adds r5, r3, r7
- lsls r5, 3
- adds r5, r6
- ldrh r1, [r5, 0x20]
- lsls r1, 24
- lsrs r1, 24
- ldr r2, _08112D80 @ =gPlayerPartyCount
- ldrb r2, [r2]
- subs r2, 0x1
- lsls r2, 24
- lsrs r2, 24
- ldr r3, _08112D84 @ =sub_8111C90
- ldr r4, _08112D88 @ =word_2024E82
- ldrh r4, [r4]
- str r4, [sp]
- bl sub_809D9F0
- ldrh r0, [r5, 0x18]
- adds r0, 0x1
- strh r0, [r5, 0x18]
- b _08112FD0
- .align 2, 0
-_08112D78: .4byte gPaletteFade
-_08112D7C: .4byte gPlayerParty
-_08112D80: .4byte gPlayerPartyCount
-_08112D84: .4byte sub_8111C90
-_08112D88: .4byte word_2024E82
-_08112D8C:
- ldr r0, _08112DC0 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08112D9A
- b _08112FD0
-_08112D9A:
- ldr r1, [r4, 0x4]
- ldr r0, _08112DC4 @ =sub_8112270
- cmp r1, r0
- beq _08112DA4
- b _08112FD0
-_08112DA4:
- bl sub_809FA30
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0x4
- bne _08112DCC
- ldr r0, _08112DC8 @ =gTasks
- mov r2, r8
- adds r1, r2, r7
- lsls r1, 3
- adds r1, r0
- movs r0, 0x9
- b _08112FCE
- .align 2, 0
-_08112DC0: .4byte gPaletteFade
-_08112DC4: .4byte sub_8112270
-_08112DC8: .4byte gTasks
-_08112DCC:
- adds r1, r6, 0
- adds r1, 0xD
- mov r0, r9
- bl GetMonData
- lsls r0, 16
- lsrs r4, r0, 16
- adds r0, r4, 0
- bl sub_8040A00
- cmp r0, 0
- beq _08112E24
- ldr r0, _08112E10 @ =gUnknown_08400F8C
- ldr r3, _08112E14 @ =0x000004cc
- adds r0, r3
- ldr r0, [r0]
- bl get_battle_strings_
- ldr r0, _08112E18 @ =gUnknown_03004210
- ldr r1, _08112E1C @ =gUnknown_020238CC
- movs r2, 0xF
- str r2, [sp]
- movs r2, 0x90
- movs r3, 0x2
- bl sub_8002EB0
- ldr r1, _08112E20 @ =gTasks
- mov r2, r8
- adds r0, r2, r7
- lsls r0, 3
- adds r0, r1
- movs r1, 0xB
- strh r1, [r0, 0x18]
- b _08112FD0
- .align 2, 0
-_08112E10: .4byte gUnknown_08400F8C
-_08112E14: .4byte 0x000004cc
-_08112E18: .4byte gUnknown_03004210
-_08112E1C: .4byte gUnknown_020238CC
-_08112E20: .4byte gTasks
-_08112E24:
- ldr r1, _08112E80 @ =gUnknown_03004290
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x2
- strb r0, [r1, 0x1]
- strb r4, [r1, 0x2]
- lsrs r0, r4, 8
- strb r0, [r1, 0x3]
- movs r0, 0xFF
- strb r0, [r1, 0x4]
- lsls r4, r6, 24
- lsrs r4, 24
- mov r0, r9
- adds r1, r4, 0
- bl RemoveMonPPBonus
- ldr r0, _08112E84 @ =word_2024E82
- ldrh r1, [r0]
- mov r0, r9
- adds r2, r4, 0
- bl SetMonMoveSlot
- ldr r0, _08112E88 @ =gUnknown_08400F8C
- movs r3, 0xCF
- lsls r3, 2
- adds r0, r3
- ldr r0, [r0]
- bl get_battle_strings_
- ldr r0, _08112E8C @ =gUnknown_03004210
- ldr r1, _08112E90 @ =gUnknown_020238CC
- movs r2, 0xF
- str r2, [sp]
- movs r2, 0x90
- movs r3, 0x2
- bl sub_8002EB0
- ldr r0, _08112E94 @ =gTasks
- mov r2, r8
- adds r1, r2, r7
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x18]
- adds r0, 0x1
- b _08112FCE
- .align 2, 0
-_08112E80: .4byte gUnknown_03004290
-_08112E84: .4byte word_2024E82
-_08112E88: .4byte gUnknown_08400F8C
-_08112E8C: .4byte gUnknown_03004210
-_08112E90: .4byte gUnknown_020238CC
-_08112E94: .4byte gTasks
-_08112E98:
- ldr r4, _08112ED8 @ =gUnknown_03004210
- ldrh r0, [r4, 0x16]
- cmp r0, 0
- beq _08112EA2
- b _08112FD0
-_08112EA2:
- bl IsSEPlaying
- lsls r0, 24
- cmp r0, 0
- beq _08112EAE
- b _08112FD0
-_08112EAE:
- ldr r0, _08112EDC @ =gUnknown_08400F8C
- ldr r0, [r0, 0x1C]
- bl get_battle_strings_
- ldr r1, _08112EE0 @ =gUnknown_020238CC
- movs r0, 0xF
- str r0, [sp]
- adds r0, r4, 0
- movs r2, 0x90
- movs r3, 0x2
- bl sub_8002EB0
- ldr r0, _08112EE4 @ =gTasks
- mov r3, r8
- adds r1, r3, r7
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x18]
- adds r0, 0x1
- b _08112FCE
- .align 2, 0
-_08112ED8: .4byte gUnknown_03004210
-_08112EDC: .4byte gUnknown_08400F8C
-_08112EE0: .4byte gUnknown_020238CC
-_08112EE4: .4byte gTasks
-_08112EE8:
- ldr r4, _08112F28 @ =gUnknown_03004210
- ldrh r0, [r4, 0x16]
- cmp r0, 0
- bne _08112FD0
- bl IsSEPlaying
- lsls r0, 24
- cmp r0, 0
- bne _08112FD0
- ldr r0, _08112F2C @ =gUnknown_08400F8C
- movs r1, 0xD0
- lsls r1, 2
- adds r0, r1
- ldr r0, [r0]
- bl get_battle_strings_
- ldr r1, _08112F30 @ =gUnknown_020238CC
- movs r0, 0xF
- str r0, [sp]
- adds r0, r4, 0
- movs r2, 0x90
- movs r3, 0x2
- bl sub_8002EB0
- ldr r1, _08112F34 @ =gTasks
- mov r2, r8
- adds r0, r2, r7
- lsls r0, 3
- adds r0, r1
- movs r1, 0x13
- strh r1, [r0, 0x8]
- b _08112FD0
- .align 2, 0
-_08112F28: .4byte gUnknown_03004210
-_08112F2C: .4byte gUnknown_08400F8C
-_08112F30: .4byte gUnknown_020238CC
-_08112F34: .4byte gTasks
-_08112F38:
- ldr r0, _08112F68 @ =gUnknown_08400F8C
- ldr r0, [r0, 0x20]
- bl get_battle_strings_
- ldr r0, _08112F6C @ =gUnknown_03004210
- ldr r1, _08112F70 @ =gUnknown_020238CC
- movs r2, 0xF
- str r2, [sp]
- movs r2, 0x90
- movs r3, 0x2
- bl sub_8002EB0
- ldr r1, _08112F74 @ =gTasks
- mov r3, r8
- adds r0, r3, r7
- lsls r0, 3
- adds r0, r1
- movs r2, 0
- movs r1, 0xA
- strh r1, [r0, 0x1A]
- strh r2, [r0, 0x1C]
- movs r1, 0x3
- strh r1, [r0, 0x18]
- b _08112FD0
- .align 2, 0
-_08112F68: .4byte gUnknown_08400F8C
-_08112F6C: .4byte gUnknown_03004210
-_08112F70: .4byte gUnknown_020238CC
-_08112F74: .4byte gTasks
-_08112F78:
- ldr r0, _08112FA0 @ =gUnknown_08400F8C
- ldr r0, [r0, 0x24]
- bl get_battle_strings_
- ldr r0, _08112FA4 @ =gUnknown_03004210
- ldr r1, _08112FA8 @ =gUnknown_020238CC
- movs r2, 0xF
- str r2, [sp]
- movs r2, 0x90
- movs r3, 0x2
- bl sub_8002EB0
- ldr r1, _08112FAC @ =gTasks
- mov r2, r8
- adds r0, r2, r7
- lsls r0, 3
- adds r0, r1
-_08112F9A:
- movs r1, 0xE
- strh r1, [r0, 0x8]
- b _08112FD0
- .align 2, 0
-_08112FA0: .4byte gUnknown_08400F8C
-_08112FA4: .4byte gUnknown_03004210
-_08112FA8: .4byte gUnknown_020238CC
-_08112FAC: .4byte gTasks
-_08112FB0:
- ldr r0, _08112FE0 @ =gUnknown_03004210
- ldrh r0, [r0, 0x16]
- cmp r0, 0
- bne _08112FD0
- bl IsSEPlaying
- lsls r0, 24
- cmp r0, 0
- bne _08112FD0
- ldr r0, _08112FE4 @ =gTasks
- mov r3, r8
- adds r1, r3, r7
- lsls r1, 3
- adds r1, r0
- movs r0, 0x5
-_08112FCE:
- strh r0, [r1, 0x18]
-_08112FD0:
- add sp, 0x18
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08112FE0: .4byte gUnknown_03004210
-_08112FE4: .4byte gTasks
- thumb_func_end sub_811240C
-
- thumb_func_start sub_8112FE8
-sub_8112FE8: @ 8112FE8
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x18
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r2, _0811302C @ =gTasks
- lsls r1, r7, 2
- adds r1, r7
- lsls r1, 3
- adds r1, r2
- movs r3, 0xA
- ldrsh r0, [r1, r3]
- mov r8, r0
- movs r3, 0xC
- ldrsh r0, [r1, r3]
- lsls r0, 16
- mov r3, r8
- orrs r3, r0
- mov r8, r3
- movs r3, 0x8
- ldrsh r0, [r1, r3]
- adds r6, r2, 0
- cmp r0, 0x11
- bls _08113020
- bl _08113B3A
-_08113020:
- lsls r0, 2
- ldr r1, _08113030 @ =_08113034
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0811302C: .4byte gTasks
-_08113030: .4byte _08113034
- .align 2, 0
-_08113034:
- .4byte _0811307C
- .4byte _081130B8
- .4byte _081130DC
- .4byte _0811310C
- .4byte _0811314C
- .4byte _0811318C
- .4byte _081131C8
- .4byte _081131F4
- .4byte _0811322C
- .4byte _08113248
- .4byte _08113274
- .4byte _081132A8
- .4byte _081132F8
- .4byte _081133A8
- .4byte _0811346C
- .4byte _08113490
- .4byte _081134F8
- .4byte _08113538
-_0811307C:
- ldr r4, _081130A8 @ =gStringVar4
- ldr r1, _081130AC @ =gUnknown_08400C4A
- adds r0, r4, 0
- bl StringExpandPlaceholders
- ldr r0, _081130B0 @ =gUnknown_03004828
- ldr r1, [r0]
- adds r0, r1, 0x4
- adds r1, 0x34
- ldrb r2, [r1]
- movs r1, 0xF
- str r1, [sp]
- adds r1, r4, 0
- movs r3, 0x2
- bl sub_8002EB0
- ldr r1, _081130B4 @ =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r1
- b _08113298
- .align 2, 0
-_081130A8: .4byte gStringVar4
-_081130AC: .4byte gUnknown_08400C4A
-_081130B0: .4byte gUnknown_03004828
-_081130B4: .4byte gTasks
-_081130B8:
- ldr r0, _081130D8 @ =gUnknown_03004828
- ldr r0, [r0]
- ldrh r0, [r0, 0x1A]
- cmp r0, 0
- beq _081130C6
- bl _08113B3A
-_081130C6:
- lsls r4, r7, 2
- adds r4, r7
- lsls r4, 3
- adds r4, r6
- ldrh r0, [r4, 0xE]
- movs r1, 0
- bl PlayCry1
- b _081132E2
- .align 2, 0
-_081130D8: .4byte gUnknown_03004828
-_081130DC:
- bl IsCryFinished
- lsls r0, 24
- cmp r0, 0
- bne _081130EA
- bl _08113B3A
-_081130EA:
- ldr r0, _08113104 @ =0x00000179
- bl m4aSongNumStop
- movs r0, 0xBC
- lsls r0, 1
- bl PlaySE
- ldr r1, _08113108 @ =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r1
- b _08113298
- .align 2, 0
-_08113104: .4byte 0x00000179
-_08113108: .4byte gTasks
-_0811310C:
- bl IsSEPlaying
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0
- beq _0811311C
- bl _08113B3A
-_0811311C:
- ldr r0, _08113144 @ =0x00000179
- bl PlayBGM
- ldr r1, _08113148 @ =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r1
- ldrh r1, [r0, 0x8]
- adds r1, 0x1
- strh r1, [r0, 0x8]
- str r5, [sp]
- movs r0, 0x1C
- movs r1, 0x4
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- bl _08113B3A
- .align 2, 0
-_08113144: .4byte 0x00000179
-_08113148: .4byte gTasks
-_0811314C:
- ldr r0, _08113180 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0811315C
- bl _08113B3A
-_0811315C:
- movs r1, 0x80
- lsls r1, 19
- movs r2, 0x9A
- lsls r2, 5
- adds r0, r2, 0
- strh r0, [r1]
- movs r0, 0x11
- bl sub_8149970
- ldr r1, _08113184 @ =gUnknown_02024D1E
- strb r0, [r1, 0x2]
- ldr r1, _08113188 @ =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r1
- b _08113298
- .align 2, 0
-_08113180: .4byte gPaletteFade
-_08113184: .4byte gUnknown_02024D1E
-_08113188: .4byte gTasks
-_0811318C:
- ldr r4, _081131C0 @ =gUnknown_02024D1E
- ldrb r0, [r4, 0x2]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r6
- ldrb r0, [r1, 0x4]
- cmp r0, 0
- beq _081131A2
- bl _08113B3A
-_081131A2:
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r6
- ldrh r1, [r0, 0x8]
- adds r1, 0x1
- strh r1, [r0, 0x8]
- ldr r1, _081131C4 @ =0x02014800
- movs r0, 0x1
- strb r0, [r1, 0x3]
- bl sub_8149A90
- strb r0, [r4, 0x2]
- bl _08113B3A
- .align 2, 0
-_081131C0: .4byte gUnknown_02024D1E
-_081131C4: .4byte 0x02014800
-_081131C8:
- ldr r4, _081131EC @ =gUnknown_02024D1E
- ldrb r0, [r4, 0x2]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r6
- ldrb r0, [r1, 0x4]
- cmp r0, 0
- beq _081131DE
- bl _08113B3A
-_081131DE:
- ldr r1, _081131F0 @ =0x02014800
- ldrb r0, [r1]
- ldrb r1, [r1, 0x1]
- bl sub_8149E7C
- strb r0, [r4, 0x2]
- b _08113290
- .align 2, 0
-_081131EC: .4byte gUnknown_02024D1E
-_081131F0: .4byte 0x02014800
-_081131F4:
- ldr r1, _08113224 @ =0x02014800
- ldrb r0, [r1, 0x3]
- subs r0, 0x1
- strb r0, [r1, 0x3]
- lsls r0, 24
- cmp r0, 0
- beq _08113206
- bl _08113B3A
-_08113206:
- movs r0, 0x3
- strb r0, [r1, 0x3]
- ldr r0, _08113228 @ =gUnknown_02024D1E
- ldrb r1, [r0, 0x2]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r6
- ldrb r0, [r0, 0x4]
- cmp r0, 0
- beq _08113220
- bl _08113B3A
-_08113220:
- b _08113290
- .align 2, 0
-_08113224: .4byte 0x02014800
-_08113228: .4byte gUnknown_02024D1E
-_0811322C:
- bl sub_8149B44
- ldr r1, _08113240 @ =gUnknown_02024D1E
- strb r0, [r1, 0x2]
- ldr r1, _08113244 @ =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r1
- b _08113298
- .align 2, 0
-_08113240: .4byte gUnknown_02024D1E
-_08113244: .4byte gTasks
-_08113248:
- ldr r5, _08113270 @ =gUnknown_02024D1E
- ldrb r0, [r5, 0x2]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r6
- ldrb r0, [r1, 0x4]
- cmp r0, 0
- beq _0811325E
- bl _08113B3A
-_0811325E:
- lsls r4, r7, 2
- adds r4, r7
- lsls r4, 3
- adds r4, r6
- ldrh r0, [r4, 0x10]
- bl sub_8149D5C
- strb r0, [r5, 0x2]
- b _081132E2
- .align 2, 0
-_08113270: .4byte gUnknown_02024D1E
-_08113274:
- ldr r0, _081132A4 @ =gUnknown_02024D1E
- ldrb r1, [r0, 0x2]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r6
- ldrb r0, [r0, 0x4]
- cmp r0, 0
- beq _0811328A
- bl _08113B3A
-_0811328A:
- movs r0, 0x21
- bl PlaySE
-_08113290:
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r6
-_08113298:
- ldrh r1, [r0, 0x8]
- adds r1, 0x1
- strh r1, [r0, 0x8]
- bl _08113B3A
- .align 2, 0
-_081132A4: .4byte gUnknown_02024D1E
-_081132A8:
- bl IsSEPlaying
- lsls r0, 24
- cmp r0, 0
- bne _081132B6
- bl _08113B3A
-_081132B6:
- ldr r0, _081132EC @ =gTasks
- lsls r4, r7, 2
- adds r4, r7
- lsls r4, 3
- adds r4, r0
- ldrh r0, [r4, 0x10]
- movs r1, 0
- bl PlayCry1
- ldr r0, _081132F0 @ =gPlttBufferUnfaded + 0x40
- ldr r1, _081132F4 @ =0x02009000
- movs r2, 0x60
- bl memcpy
- movs r0, 0
- str r0, [sp]
- movs r0, 0x1
- movs r1, 0
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
-_081132E2:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- bl _08113B3A
- .align 2, 0
-_081132EC: .4byte gTasks
-_081132F0: .4byte gPlttBufferUnfaded + 0x40
-_081132F4: .4byte 0x02009000
-_081132F8:
- bl IsCryFinished
- lsls r0, 24
- cmp r0, 0
- bne _08113306
- bl _08113B3A
-_08113306:
- ldr r0, _08113390 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08113316
- bl _08113B3A
-_08113316:
- ldr r4, _08113394 @ =gStringVar4
- ldr r1, _08113398 @ =gUnknown_08400C60
- adds r0, r4, 0
- bl StringExpandPlaceholders
- ldr r0, _0811339C @ =gUnknown_03004828
- ldr r1, [r0]
- adds r0, r1, 0x4
- adds r1, 0x34
- ldrb r2, [r1]
- movs r1, 0xF
- str r1, [sp]
- adds r1, r4, 0
- movs r3, 0x2
- bl sub_8002EB0
- ldr r0, _081133A0 @ =0x00000173
- bl PlayFanfare
- ldr r2, _081133A4 @ =gTasks
- lsls r1, r7, 2
- adds r1, r7
- lsls r1, 3
- adds r4, r1, r2
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- adds r2, r1
- adds r2, 0x10
- mov r0, r8
- movs r1, 0xB
- bl SetMonData
- mov r0, r8
- bl CalculateMonStats
- ldrh r1, [r4, 0xE]
- ldrh r2, [r4, 0x10]
- mov r0, r8
- bl sub_803FB68
- ldrh r0, [r4, 0x10]
- bl SpeciesToNationalPokedexNum
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x2
- bl sub_8090D90
- ldrh r0, [r4, 0x10]
- bl SpeciesToNationalPokedexNum
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x3
- bl sub_8090D90
- movs r0, 0xE
- bl sav12_xor_increment
- b _08113B3A
- .align 2, 0
-_08113390: .4byte gPaletteFade
-_08113394: .4byte gStringVar4
-_08113398: .4byte gUnknown_08400C60
-_0811339C: .4byte gUnknown_03004828
-_081133A0: .4byte 0x00000173
-_081133A4: .4byte gTasks
-_081133A8:
- ldr r0, _08113410 @ =gUnknown_03004828
- ldr r0, [r0]
- ldrh r0, [r0, 0x1A]
- cmp r0, 0
- beq _081133B4
- b _08113B3A
-_081133B4:
- bl IsFanfareTaskInactive
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _081133C2
- b _08113B3A
-_081133C2:
- ldr r1, _08113414 @ =gTasks
- lsls r4, r7, 2
- adds r0, r4, r7
- lsls r0, 3
- adds r5, r0, r1
- ldrb r1, [r5, 0x14]
- mov r0, r8
- bl sub_803B7C8
- lsls r0, 16
- lsrs r6, r0, 16
- mov r9, r4
- cmp r6, 0
- beq _08113434
- movs r3, 0x1E
- ldrsh r2, [r5, r3]
- cmp r2, 0
- bne _08113434
- ldrh r1, [r5, 0x12]
- movs r0, 0x80
- orrs r0, r1
- strh r0, [r5, 0x12]
- strh r2, [r5, 0x14]
- strh r2, [r5, 0x18]
- mov r0, r8
- movs r1, 0x2
- add r2, sp, 0x4
- bl GetMonData
- ldr r0, _08113418 @ =gUnknown_030041C0
- add r1, sp, 0x4
- bl StringCopy10
- ldr r0, _0811341C @ =0x0000ffff
- cmp r6, r0
- bne _08113420
- movs r0, 0x11
- strh r0, [r5, 0x8]
- b _08113B3A
- .align 2, 0
-_08113410: .4byte gUnknown_03004828
-_08113414: .4byte gTasks
-_08113418: .4byte gUnknown_030041C0
-_0811341C: .4byte 0x0000ffff
-_08113420:
- ldr r0, _08113430 @ =0x0000fffe
- cmp r6, r0
- bne _08113428
- b _08113B3A
-_08113428:
- movs r0, 0xF
- strh r0, [r5, 0x8]
- b _08113B3A
- .align 2, 0
-_08113430: .4byte 0x0000fffe
-_08113434:
- ldr r0, _0811345C @ =0x00000179
- bl PlayBGM
- ldr r0, _08113460 @ =gUnknown_03004828
- ldr r2, [r0]
- adds r0, r2, 0x4
- ldr r1, _08113464 @ =gOtherText_LinkStandby2
- adds r2, 0x34
- ldrb r2, [r2]
- movs r3, 0xF
- str r3, [sp]
- movs r3, 0x2
- bl sub_8002EB0
- ldr r0, _08113468 @ =gTasks
- mov r2, r9
- adds r1, r2, r7
- lsls r1, 3
- adds r1, r0
- b _081134DC
- .align 2, 0
-_0811345C: .4byte 0x00000179
-_08113460: .4byte gUnknown_03004828
-_08113464: .4byte gOtherText_LinkStandby2
-_08113468: .4byte gTasks
-_0811346C:
- ldr r0, _08113488 @ =gUnknown_03004828
- ldr r0, [r0]
- ldrh r0, [r0, 0x1A]
- cmp r0, 0
- beq _08113478
- b _08113B3A
-_08113478:
- adds r0, r7, 0
- bl DestroyTask
- ldr r0, _0811348C @ =gUnknown_03005E94
- ldr r0, [r0]
- bl SetMainCallback2
- b _08113B3A
- .align 2, 0
-_08113488: .4byte gUnknown_03004828
-_0811348C: .4byte gUnknown_03005E94
-_08113490:
- ldr r4, _081134E4 @ =gUnknown_03004828
- ldr r0, [r4]
- ldrh r0, [r0, 0x1A]
- cmp r0, 0
- beq _0811349C
- b _08113B3A
-_0811349C:
- bl IsSEPlaying
- lsls r0, 24
- cmp r0, 0
- beq _081134A8
- b _08113B3A
-_081134A8:
- bl sub_8024CEC
- ldr r0, _081134E8 @ =0x0000016f
- bl PlayFanfare
- ldr r0, _081134EC @ =gUnknown_08400F8C
- ldr r0, [r0, 0xC]
- bl get_battle_strings_
- ldr r2, [r4]
- adds r0, r2, 0x4
- ldr r1, _081134F0 @ =gUnknown_020238CC
- adds r2, 0x34
- ldrb r2, [r2]
- movs r3, 0xF
- str r3, [sp]
- movs r3, 0x2
- bl sub_8002EB0
- ldr r0, _081134F4 @ =gTasks
- lsls r1, r7, 2
- adds r1, r7
- lsls r1, 3
- adds r1, r0
- movs r0, 0x40
- strh r0, [r1, 0x14]
-_081134DC:
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- b _08113B3A
- .align 2, 0
-_081134E4: .4byte gUnknown_03004828
-_081134E8: .4byte 0x0000016f
-_081134EC: .4byte gUnknown_08400F8C
-_081134F0: .4byte gUnknown_020238CC
-_081134F4: .4byte gTasks
-_081134F8:
- ldr r0, _08113530 @ =gUnknown_03004828
- ldr r0, [r0]
- ldrh r0, [r0, 0x1A]
- cmp r0, 0
- beq _08113504
- b _08113B3A
-_08113504:
- bl IsFanfareTaskInactive
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _08113512
- b _08113B3A
-_08113512:
- ldr r0, _08113534 @ =gTasks
- lsls r1, r7, 2
- adds r1, r7
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x14]
- subs r0, 0x1
- strh r0, [r1, 0x14]
- lsls r0, 16
- cmp r0, 0
- beq _0811352A
- b _08113B3A
-_0811352A:
- movs r0, 0xD
- strh r0, [r1, 0x8]
- b _08113B3A
- .align 2, 0
-_08113530: .4byte gUnknown_03004828
-_08113534: .4byte gTasks
-_08113538:
- lsls r1, r7, 2
- adds r0, r1, r7
- lsls r0, 3
- adds r0, r6
- movs r3, 0x18
- ldrsh r0, [r0, r3]
- mov r9, r1
- cmp r0, 0xB
- bls _0811354C
- b _08113B3A
-_0811354C:
- lsls r0, 2
- ldr r1, _08113558 @ =_0811355C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08113558: .4byte _0811355C
- .align 2, 0
-_0811355C:
- .4byte _0811358C
- .4byte _081135E4
- .4byte _08113638
- .4byte _08113682
- .4byte _0811371C
- .4byte _0811387C
- .4byte _081138CC
- .4byte _081139E8
- .4byte _08113A3C
- .4byte _08113A90
- .4byte _08113AD8
- .4byte _08113B18
-_0811358C:
- ldr r4, _081135D4 @ =gUnknown_03004828
- ldr r0, [r4]
- ldrh r0, [r0, 0x1A]
- cmp r0, 0
- beq _08113598
- b _08113B3A
-_08113598:
- bl IsSEPlaying
- lsls r0, 24
- cmp r0, 0
- beq _081135A4
- b _08113B3A
-_081135A4:
- bl sub_8024CEC
- ldr r0, _081135D8 @ =gUnknown_08400F8C
- ldr r0, [r0, 0x10]
- bl get_battle_strings_
- ldr r2, [r4]
- adds r0, r2, 0x4
- ldr r1, _081135DC @ =gUnknown_020238CC
- adds r2, 0x34
- ldrb r2, [r2]
- movs r3, 0xF
- str r3, [sp]
- movs r3, 0x2
- bl sub_8002EB0
- ldr r0, _081135E0 @ =gTasks
- mov r2, r9
- adds r1, r2, r7
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x18]
- adds r0, 0x1
- b _08113B38
- .align 2, 0
-_081135D4: .4byte gUnknown_03004828
-_081135D8: .4byte gUnknown_08400F8C
-_081135DC: .4byte gUnknown_020238CC
-_081135E0: .4byte gTasks
-_081135E4:
- ldr r4, _08113628 @ =gUnknown_03004828
- ldr r0, [r4]
- ldrh r0, [r0, 0x1A]
- cmp r0, 0
- beq _081135F0
- b _08113B3A
-_081135F0:
- bl IsSEPlaying
- lsls r0, 24
- cmp r0, 0
- beq _081135FC
- b _08113B3A
-_081135FC:
- ldr r0, _0811362C @ =gUnknown_08400F8C
- ldr r0, [r0, 0x14]
- bl get_battle_strings_
- ldr r2, [r4]
- adds r0, r2, 0x4
- ldr r1, _08113630 @ =gUnknown_020238CC
- adds r2, 0x34
- ldrb r2, [r2]
- movs r3, 0xF
- str r3, [sp]
- movs r3, 0x2
- bl sub_8002EB0
- ldr r0, _08113634 @ =gTasks
- mov r3, r9
- adds r1, r3, r7
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x18]
- adds r0, 0x1
- b _08113B38
- .align 2, 0
-_08113628: .4byte gUnknown_03004828
-_0811362C: .4byte gUnknown_08400F8C
-_08113630: .4byte gUnknown_020238CC
-_08113634: .4byte gTasks
-_08113638:
- ldr r4, _081136FC @ =gUnknown_03004828
- ldr r0, [r4]
- ldrh r0, [r0, 0x1A]
- cmp r0, 0
- beq _08113644
- b _08113B3A
-_08113644:
- bl IsSEPlaying
- lsls r0, 24
- cmp r0, 0
- bne _08113682
- ldr r0, _08113700 @ =gUnknown_08400F8C
- ldr r0, [r0, 0x18]
- bl get_battle_strings_
- ldr r2, [r4]
- adds r0, r2, 0x4
- ldr r1, _08113704 @ =gUnknown_020238CC
- adds r2, 0x34
- ldrb r2, [r2]
- movs r3, 0xF
- str r3, [sp]
- movs r3, 0x2
- bl sub_8002EB0
- ldr r0, _08113708 @ =gTasks
- mov r2, r9
- adds r1, r2, r7
- lsls r1, 3
- adds r1, r0
- movs r0, 0x5
- strh r0, [r1, 0x1A]
- movs r0, 0x9
- strh r0, [r1, 0x1C]
- ldrh r0, [r1, 0x18]
- adds r0, 0x1
- strh r0, [r1, 0x18]
-_08113682:
- ldr r5, _081136FC @ =gUnknown_03004828
- ldr r0, [r5]
- ldrh r0, [r0, 0x1A]
- cmp r0, 0
- beq _0811368E
- b _08113B3A
-_0811368E:
- bl IsSEPlaying
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0
- beq _0811369C
- b _08113B3A
-_0811369C:
- ldr r0, [r5]
- adds r0, 0x4
- movs r1, 0xD
- str r1, [sp]
- movs r1, 0x18
- movs r2, 0x8
- movs r3, 0x1D
- bl DrawTextWindow
- ldr r4, _0811370C @ =gUnknown_02024D1E
- strb r6, [r4, 0x1]
- ldr r2, [r5]
- adds r0, r2, 0x4
- ldr r1, _08113710 @ =gOtherText_YesNoAndPlayer
- adds r2, 0x34
- ldrb r2, [r2]
- adds r2, 0x80
- movs r3, 0x9
- str r3, [sp]
- movs r3, 0x19
- bl InitWindow
- ldr r0, [r5]
- adds r0, 0x4
- bl sub_8002F44
- ldr r1, _08113714 @ =0x0000ffff
- ldr r3, _08113718 @ =0x00002d9f
- movs r0, 0x20
- str r0, [sp]
- movs r0, 0
- movs r2, 0xC
- bl sub_814A5C0
- bl sub_81150D8
- ldr r0, _08113708 @ =gTasks
- mov r3, r9
- adds r1, r3, r7
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x18]
- adds r0, 0x1
- movs r2, 0
- strh r0, [r1, 0x18]
- strb r2, [r4, 0x1]
- b _08113B3A
- .align 2, 0
-_081136FC: .4byte gUnknown_03004828
-_08113700: .4byte gUnknown_08400F8C
-_08113704: .4byte gUnknown_020238CC
-_08113708: .4byte gTasks
-_0811370C: .4byte gUnknown_02024D1E
-_08113710: .4byte gOtherText_YesNoAndPlayer
-_08113714: .4byte 0x0000ffff
-_08113718: .4byte 0x00002d9f
-_0811371C:
- ldr r0, _081137CC @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08113742
- ldr r4, _081137D0 @ =gUnknown_02024D1E
- ldrb r0, [r4, 0x1]
- cmp r0, 0
- beq _08113742
- movs r0, 0x5
- bl PlaySE
- bl nullsub_24
- movs r0, 0
- strb r0, [r4, 0x1]
- bl sub_81150D8
-_08113742:
- ldr r0, _081137CC @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08113768
- ldr r4, _081137D0 @ =gUnknown_02024D1E
- ldrb r0, [r4, 0x1]
- cmp r0, 0
- bne _08113768
- movs r0, 0x5
- bl PlaySE
- bl nullsub_24
- movs r0, 0x1
- strb r0, [r4, 0x1]
- bl sub_81150D8
-_08113768:
- ldr r0, _081137CC @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0811380A
- ldr r4, _081137D4 @ =gUnknown_03004828
- ldr r0, [r4]
- adds r0, 0x4
- movs r1, 0xD
- str r1, [sp]
- movs r1, 0x18
- movs r2, 0x8
- movs r3, 0x1D
- bl ZeroFillWindowRect
- bl sub_814A7FC
- ldr r0, _081137D8 @ =gUnknown_08400F8C
- movs r1, 0x92
- lsls r1, 3
- adds r0, r1
- ldr r0, [r0]
- bl get_battle_strings_
- ldr r2, [r4]
- adds r0, r2, 0x4
- ldr r1, _081137DC @ =gUnknown_020238CC
- adds r2, 0x34
- ldrb r2, [r2]
- movs r3, 0xF
- str r3, [sp]
- movs r3, 0x2
- bl sub_8002EB0
- movs r0, 0x5
- bl PlaySE
- ldr r0, _081137D0 @ =gUnknown_02024D1E
- ldrb r2, [r0, 0x1]
- cmp r2, 0
- beq _081137E4
- ldr r0, _081137E0 @ =gTasks
- mov r2, r9
- adds r1, r2, r7
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x1C]
- strh r0, [r1, 0x18]
- b _0811380A
- .align 2, 0
-_081137CC: .4byte gMain
-_081137D0: .4byte gUnknown_02024D1E
-_081137D4: .4byte gUnknown_03004828
-_081137D8: .4byte gUnknown_08400F8C
-_081137DC: .4byte gUnknown_020238CC
-_081137E0: .4byte gTasks
-_081137E4:
- ldr r0, _08113868 @ =gTasks
- mov r3, r9
- adds r1, r3, r7
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x1A]
- strh r0, [r1, 0x18]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x5
- bne _0811380A
- movs r0, 0x1
- negs r0, r0
- str r2, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
-_0811380A:
- ldr r0, _0811386C @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _08113818
- b _08113B3A
-_08113818:
- ldr r4, _08113870 @ =gUnknown_03004828
- ldr r0, [r4]
- adds r0, 0x4
- movs r1, 0xD
- str r1, [sp]
- movs r1, 0x18
- movs r2, 0x8
- movs r3, 0x1D
- bl ZeroFillWindowRect
- bl sub_814A7FC
- ldr r0, _08113874 @ =gUnknown_08400F8C
- movs r1, 0x92
- lsls r1, 3
- adds r0, r1
- ldr r0, [r0]
- bl get_battle_strings_
- ldr r2, [r4]
- adds r0, r2, 0x4
- ldr r1, _08113878 @ =gUnknown_020238CC
- adds r2, 0x34
- ldrb r2, [r2]
- movs r3, 0xF
- str r3, [sp]
- movs r3, 0x2
- bl sub_8002EB0
- movs r0, 0x5
- bl PlaySE
- ldr r1, _08113868 @ =gTasks
- mov r2, r9
- adds r0, r2, r7
- lsls r0, 3
- adds r0, r1
- ldrh r1, [r0, 0x1C]
- strh r1, [r0, 0x18]
- b _08113B3A
- .align 2, 0
-_08113868: .4byte gTasks
-_0811386C: .4byte gMain
-_08113870: .4byte gUnknown_03004828
-_08113874: .4byte gUnknown_08400F8C
-_08113878: .4byte gUnknown_020238CC
-_0811387C:
- ldr r0, _081138B8 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0811388A
- b _08113B3A
-_0811388A:
- ldr r0, _081138BC @ =gPlayerParty
- mov r3, r9
- adds r5, r3, r7
- lsls r5, 3
- adds r5, r6
- ldrh r1, [r5, 0x20]
- lsls r1, 24
- lsrs r1, 24
- ldr r2, _081138C0 @ =gPlayerPartyCount
- ldrb r2, [r2]
- subs r2, 0x1
- lsls r2, 24
- lsrs r2, 24
- ldr r3, _081138C4 @ =sub_8111E80
- ldr r4, _081138C8 @ =word_2024E82
- ldrh r4, [r4]
- str r4, [sp]
- bl sub_809D9F0
- ldrh r0, [r5, 0x18]
- adds r0, 0x1
- strh r0, [r5, 0x18]
- b _08113B3A
- .align 2, 0
-_081138B8: .4byte gPaletteFade
-_081138BC: .4byte gPlayerParty
-_081138C0: .4byte gPlayerPartyCount
-_081138C4: .4byte sub_8111E80
-_081138C8: .4byte word_2024E82
-_081138CC:
- ldr r0, _08113900 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _081138DA
- b _08113B3A
-_081138DA:
- ldr r0, _08113904 @ =gMain
- ldr r1, [r0, 0x4]
- ldr r0, _08113908 @ =sub_8112290
- cmp r1, r0
- beq _081138E6
- b _08113B3A
-_081138E6:
- bl sub_809FA30
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0x4
- bne _08113910
- ldr r0, _0811390C @ =gTasks
- mov r2, r9
- adds r1, r2, r7
- lsls r1, 3
- adds r1, r0
- movs r0, 0x9
- b _08113B38
- .align 2, 0
-_08113900: .4byte gPaletteFade
-_08113904: .4byte gMain
-_08113908: .4byte sub_8112290
-_0811390C: .4byte gTasks
-_08113910:
- adds r1, r6, 0
- adds r1, 0xD
- mov r0, r8
- bl GetMonData
- lsls r0, 16
- lsrs r4, r0, 16
- adds r0, r4, 0
- bl sub_8040A00
- cmp r0, 0
- beq _08113970
- ldr r0, _0811395C @ =gUnknown_08400F8C
- ldr r3, _08113960 @ =0x000004cc
- adds r0, r3
- ldr r0, [r0]
- bl get_battle_strings_
- ldr r0, _08113964 @ =gUnknown_03004828
- ldr r2, [r0]
- adds r0, r2, 0x4
- ldr r1, _08113968 @ =gUnknown_020238CC
- adds r2, 0x34
- ldrb r2, [r2]
- movs r3, 0xF
- str r3, [sp]
- movs r3, 0x2
- bl sub_8002EB0
- ldr r1, _0811396C @ =gTasks
- mov r2, r9
- adds r0, r2, r7
- lsls r0, 3
- adds r0, r1
- movs r1, 0xB
- strh r1, [r0, 0x18]
- b _08113B3A
- .align 2, 0
-_0811395C: .4byte gUnknown_08400F8C
-_08113960: .4byte 0x000004cc
-_08113964: .4byte gUnknown_03004828
-_08113968: .4byte gUnknown_020238CC
-_0811396C: .4byte gTasks
-_08113970:
- ldr r1, _081139D0 @ =gUnknown_03004290
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x2
- strb r0, [r1, 0x1]
- strb r4, [r1, 0x2]
- lsrs r0, r4, 8
- strb r0, [r1, 0x3]
- movs r0, 0xFF
- strb r0, [r1, 0x4]
- lsls r4, r6, 24
- lsrs r4, 24
- mov r0, r8
- adds r1, r4, 0
- bl RemoveMonPPBonus
- ldr r0, _081139D4 @ =word_2024E82
- ldrh r1, [r0]
- mov r0, r8
- adds r2, r4, 0
- bl SetMonMoveSlot
- ldr r0, _081139D8 @ =gUnknown_08400F8C
- movs r3, 0xCF
- lsls r3, 2
- adds r0, r3
- ldr r0, [r0]
- bl get_battle_strings_
- ldr r0, _081139DC @ =gUnknown_03004828
- ldr r2, [r0]
- adds r0, r2, 0x4
- ldr r1, _081139E0 @ =gUnknown_020238CC
- adds r2, 0x34
- ldrb r2, [r2]
- movs r3, 0xF
- str r3, [sp]
- movs r3, 0x2
- bl sub_8002EB0
- ldr r0, _081139E4 @ =gTasks
- mov r2, r9
- adds r1, r2, r7
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x18]
- adds r0, 0x1
- b _08113B38
- .align 2, 0
-_081139D0: .4byte gUnknown_03004290
-_081139D4: .4byte word_2024E82
-_081139D8: .4byte gUnknown_08400F8C
-_081139DC: .4byte gUnknown_03004828
-_081139E0: .4byte gUnknown_020238CC
-_081139E4: .4byte gTasks
-_081139E8:
- ldr r4, _08113A2C @ =gUnknown_03004828
- ldr r0, [r4]
- ldrh r0, [r0, 0x1A]
- cmp r0, 0
- beq _081139F4
- b _08113B3A
-_081139F4:
- bl IsSEPlaying
- lsls r0, 24
- cmp r0, 0
- beq _08113A00
- b _08113B3A
-_08113A00:
- ldr r0, _08113A30 @ =gUnknown_08400F8C
- ldr r0, [r0, 0x1C]
- bl get_battle_strings_
- ldr r2, [r4]
- adds r0, r2, 0x4
- ldr r1, _08113A34 @ =gUnknown_020238CC
- adds r2, 0x34
- ldrb r2, [r2]
- movs r3, 0xF
- str r3, [sp]
- movs r3, 0x2
- bl sub_8002EB0
- ldr r0, _08113A38 @ =gTasks
- mov r3, r9
- adds r1, r3, r7
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x18]
- adds r0, 0x1
- b _08113B38
- .align 2, 0
-_08113A2C: .4byte gUnknown_03004828
-_08113A30: .4byte gUnknown_08400F8C
-_08113A34: .4byte gUnknown_020238CC
-_08113A38: .4byte gTasks
-_08113A3C:
- ldr r4, _08113A80 @ =gUnknown_03004828
- ldr r0, [r4]
- ldrh r0, [r0, 0x1A]
- cmp r0, 0
- bne _08113B3A
- bl IsSEPlaying
- lsls r0, 24
- cmp r0, 0
- bne _08113B3A
- ldr r0, _08113A84 @ =gUnknown_08400F8C
- movs r1, 0xD0
- lsls r1, 2
- adds r0, r1
- ldr r0, [r0]
- bl get_battle_strings_
- ldr r2, [r4]
- adds r0, r2, 0x4
- ldr r1, _08113A88 @ =gUnknown_020238CC
- adds r2, 0x34
- ldrb r2, [r2]
- movs r4, 0xF
- str r4, [sp]
- movs r3, 0x2
- bl sub_8002EB0
- ldr r1, _08113A8C @ =gTasks
- mov r2, r9
- adds r0, r2, r7
- lsls r0, 3
- adds r0, r1
- strh r4, [r0, 0x8]
- b _08113B3A
- .align 2, 0
-_08113A80: .4byte gUnknown_03004828
-_08113A84: .4byte gUnknown_08400F8C
-_08113A88: .4byte gUnknown_020238CC
-_08113A8C: .4byte gTasks
-_08113A90:
- ldr r0, _08113AC8 @ =gUnknown_08400F8C
- ldr r0, [r0, 0x20]
- bl get_battle_strings_
- ldr r0, _08113ACC @ =gUnknown_03004828
- ldr r2, [r0]
- adds r0, r2, 0x4
- ldr r1, _08113AD0 @ =gUnknown_020238CC
- adds r2, 0x34
- ldrb r2, [r2]
- movs r3, 0xF
- str r3, [sp]
- movs r3, 0x2
- bl sub_8002EB0
- ldr r1, _08113AD4 @ =gTasks
- mov r3, r9
- adds r0, r3, r7
- lsls r0, 3
- adds r0, r1
- movs r2, 0
- movs r1, 0xA
- strh r1, [r0, 0x1A]
- strh r2, [r0, 0x1C]
- movs r1, 0x3
- strh r1, [r0, 0x18]
- b _08113B3A
- .align 2, 0
-_08113AC8: .4byte gUnknown_08400F8C
-_08113ACC: .4byte gUnknown_03004828
-_08113AD0: .4byte gUnknown_020238CC
-_08113AD4: .4byte gTasks
-_08113AD8:
- ldr r0, _08113B08 @ =gUnknown_08400F8C
- ldr r0, [r0, 0x24]
- bl get_battle_strings_
- ldr r0, _08113B0C @ =gUnknown_03004828
- ldr r2, [r0]
- adds r0, r2, 0x4
- ldr r1, _08113B10 @ =gUnknown_020238CC
- adds r2, 0x34
- ldrb r2, [r2]
- movs r3, 0xF
- str r3, [sp]
- movs r3, 0x2
- bl sub_8002EB0
- ldr r1, _08113B14 @ =gTasks
- mov r2, r9
- adds r0, r2, r7
- lsls r0, 3
- adds r0, r1
- movs r1, 0xD
- strh r1, [r0, 0x8]
- b _08113B3A
- .align 2, 0
-_08113B08: .4byte gUnknown_08400F8C
-_08113B0C: .4byte gUnknown_03004828
-_08113B10: .4byte gUnknown_020238CC
-_08113B14: .4byte gTasks
-_08113B18:
- ldr r0, _08113B48 @ =gUnknown_03004828
- ldr r0, [r0]
- ldrh r0, [r0, 0x1A]
- cmp r0, 0
- bne _08113B3A
- bl IsSEPlaying
- lsls r0, 24
- cmp r0, 0
- bne _08113B3A
- ldr r0, _08113B4C @ =gTasks
- mov r3, r9
- adds r1, r3, r7
- lsls r1, 3
- adds r1, r0
- movs r0, 0x5
-_08113B38:
- strh r0, [r1, 0x18]
-_08113B3A:
- add sp, 0x18
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08113B48: .4byte gUnknown_03004828
-_08113B4C: .4byte gTasks
- thumb_func_end sub_8112FE8
-
- thumb_func_start unref_sub_8113B50
-unref_sub_8113B50: @ 8113B50
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x3C
- str r0, [sp]
- str r1, [sp, 0x4]
- movs r0, 0
- str r0, [sp, 0xC]
- movs r1, 0
- str r1, [sp, 0x10]
- movs r2, 0
- str r2, [sp, 0x8]
- ldr r3, _08113C60 @ =0x02014800
- mov r12, r3
- ldr r4, _08113C64 @ =0x000018c4
- add r4, r12
- mov r10, r4
- ldr r5, _08113C68 @ =0x000020c4
- add r5, r12
- mov r8, r5
-_08113B7C:
- adds r0, r3, 0
- adds r0, 0x84
- ldr r1, [sp, 0x8]
- adds r0, r1, r0
- strb r2, [r0]
- adds r0, r3, 0x4
- adds r0, r1, r0
- strb r2, [r0]
- ldr r4, _08113C6C @ =0x02014844
- adds r0, r1, r4
- strb r2, [r0]
- movs r6, 0
- lsls r1, 5
- mov r9, r1
- ldr r5, [sp, 0x8]
- lsls r4, r5, 6
-_08113B9C:
- mov r0, r9
- adds r1, r6, r0
- ldr r5, _08113C70 @ =0x020158c4
- adds r0, r1, r5
- strb r2, [r0]
- mov r5, r10
- adds r0, r1, r5
- strb r2, [r0]
- mov r5, r8
- adds r0, r1, r5
- strb r2, [r0]
- ldr r5, _08113C74 @ =0x020170c4
- adds r0, r1, r5
- strb r2, [r0]
- adds r7, r3, 0
- adds r7, 0xC4
- adds r0, r1, r7
- strb r2, [r0]
- ldr r5, _08113C78 @ =0x000008c4
- adds r0, r3, r5
- adds r0, r1, r0
- strb r2, [r0]
- ldr r5, _08113C7C @ =0x000030c4
- adds r0, r3, r5
- adds r0, r1, r0
- strb r2, [r0]
- ldr r5, _08113C80 @ =0x000038c4
- adds r0, r3, r5
- adds r1, r0
- strb r2, [r1]
- lsls r1, r6, 1
- adds r1, r4
- ldr r5, _08113C84 @ =0x000060c4
- adds r0, r3, r5
- adds r0, r1, r0
- strh r2, [r0]
- ldr r5, _08113C88 @ =0x000070c4
- adds r0, r3, r5
- adds r0, r1, r0
- strh r2, [r0]
- ldr r5, _08113C8C @ =0x000080c4
- adds r0, r3, r5
- adds r0, r1, r0
- strh r2, [r0]
- ldr r5, _08113C90 @ =0x000090c4
- adds r0, r3, r5
- adds r1, r0
- strh r2, [r1]
- adds r6, 0x1
- cmp r6, 0x1F
- ble _08113B9C
- ldr r0, [sp, 0x8]
- adds r0, 0x1
- str r0, [sp, 0x8]
- cmp r0, 0x3F
- ble _08113B7C
- ldr r1, _08113C94 @ =0x0000a0c4
- add r1, r12
- movs r0, 0x40
- strb r0, [r1]
- movs r1, 0
- mov r8, r1
- movs r2, 0
- str r2, [sp, 0x8]
- movs r3, 0x80
- lsls r3, 5
- adds r3, r7
- mov r12, r3
- movs r4, 0xC0
- lsls r4, 5
- adds r4, r7
- mov r9, r4
- movs r5, 0
- adds r4, r7, 0
- subs r4, 0xC0
-_08113C32:
- movs r3, 0
- ldr r2, [sp]
- add r2, r8
- movs r6, 0
- ldr r0, [sp, 0x8]
- adds r0, 0x1
- str r0, [sp, 0x30]
- ldr r1, [sp, 0x8]
- lsls r1, 7
- mov r10, r1
- movs r7, 0x1
- negs r7, r7
-_08113C4A:
- asrs r0, r6, 1
- lsls r0, 2
- add r0, r10
- ldr r1, _08113C98 @ =0x020188c4
- adds r0, r1
- str r2, [r0]
- cmp r3, 0
- beq _08113C9C
- cmp r3, 0x1
- beq _08113CC6
- b _08113CF4
- .align 2, 0
-_08113C60: .4byte 0x02014800
-_08113C64: .4byte 0x000018c4
-_08113C68: .4byte 0x000020c4
-_08113C6C: .4byte 0x02014844
-_08113C70: .4byte 0x020158c4
-_08113C74: .4byte 0x020170c4
-_08113C78: .4byte 0x000008c4
-_08113C7C: .4byte 0x000030c4
-_08113C80: .4byte 0x000038c4
-_08113C84: .4byte 0x000060c4
-_08113C88: .4byte 0x000070c4
-_08113C8C: .4byte 0x000080c4
-_08113C90: .4byte 0x000090c4
-_08113C94: .4byte 0x0000a0c4
-_08113C98: .4byte 0x020188c4
-_08113C9C:
- movs r0, 0x1
- ands r0, r6
- cmp r0, 0
- beq _08113CAA
- cmp r0, 0x1
- beq _08113CB0
- b _08113CF4
-_08113CAA:
- ldrb r1, [r2]
- movs r0, 0xF
- b _08113CB4
-_08113CB0:
- ldrb r1, [r2]
- movs r0, 0xF0
-_08113CB4:
- ands r0, r1
- cmp r0, 0
- beq _08113CF4
- ldrb r0, [r4]
- adds r0, r5
- add r0, r12
- strb r6, [r0]
- movs r3, 0x1
- b _08113CF4
-_08113CC6:
- adds r0, r6, 0
- ands r0, r3
- cmp r0, 0
- beq _08113CD4
- cmp r0, 0x1
- beq _08113CDA
- b _08113CF4
-_08113CD4:
- ldrb r1, [r2]
- movs r0, 0xF
- b _08113CDE
-_08113CDA:
- ldrb r1, [r2]
- movs r0, 0xF0
-_08113CDE:
- ands r0, r1
- cmp r0, 0
- bne _08113CF4
- ldrb r0, [r4]
- adds r0, r5
- add r0, r9
- strb r7, [r0]
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- movs r3, 0
-_08113CF4:
- adds r0, r6, 0x1
- movs r1, 0x7
- ands r0, r1
- cmp r0, 0
- bne _08113D02
- adds r2, 0x1D
- b _08113D0C
-_08113D02:
- movs r0, 0x1
- ands r0, r6
- cmp r0, 0
- beq _08113D0C
- adds r2, 0x1
-_08113D0C:
- adds r7, 0x1
- adds r6, 0x1
- cmp r6, 0x3F
- ble _08113C4A
- cmp r3, 0
- beq _08113D26
- ldrb r0, [r4]
- adds r0, r5
- add r0, r9
- strb r6, [r0]
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
-_08113D26:
- movs r0, 0x7
- ldr r2, [sp, 0x30]
- ands r2, r0
- cmp r2, 0
- bne _08113D36
- movs r3, 0xE4
- add r8, r3
- b _08113D3A
-_08113D36:
- movs r0, 0x4
- add r8, r0
-_08113D3A:
- adds r5, 0x20
- adds r4, 0x1
- ldr r1, [sp, 0x8]
- adds r1, 0x1
- str r1, [sp, 0x8]
- cmp r1, 0x3F
- bgt _08113D4A
- b _08113C32
-_08113D4A:
- movs r2, 0
- mov r8, r2
- movs r3, 0
- str r3, [sp, 0x8]
- ldr r0, _08113D84 @ =0x02014844
- movs r4, 0x82
- lsls r4, 6
- adds r4, r0
- mov r10, r4
- movs r5, 0xA2
- lsls r5, 6
- adds r7, r0, r5
- movs r5, 0
- adds r4, r0, 0
- movs r0, 0x1
- mov r9, r0
-_08113D6A:
- movs r3, 0
- ldr r2, [sp, 0x4]
- add r2, r8
- movs r6, 0
- ldr r1, [sp, 0x8]
- adds r1, 0x1
- str r1, [sp, 0x30]
-_08113D78:
- cmp r3, 0
- beq _08113D88
- cmp r3, 0x1
- beq _08113DB4
- b _08113DE4
- .align 2, 0
-_08113D84: .4byte 0x02014844
-_08113D88:
- adds r0, r6, 0
- mov r1, r9
- ands r0, r1
- cmp r0, 0
- beq _08113D98
- cmp r0, 0x1
- beq _08113D9E
- b _08113DE4
-_08113D98:
- ldrb r1, [r2]
- movs r0, 0xF
- b _08113DA2
-_08113D9E:
- ldrb r1, [r2]
- movs r0, 0xF0
-_08113DA2:
- ands r0, r1
- cmp r0, 0
- beq _08113DE4
- ldrb r0, [r4]
- adds r0, r5
- add r0, r10
- strb r6, [r0]
- movs r3, 0x1
- b _08113DE4
-_08113DB4:
- adds r0, r6, 0
- ands r0, r3
- cmp r0, 0
- beq _08113DC2
- cmp r0, 0x1
- beq _08113DC8
- b _08113DE4
-_08113DC2:
- ldrb r1, [r2]
- movs r0, 0xF
- b _08113DCC
-_08113DC8:
- ldrb r1, [r2]
- movs r0, 0xF0
-_08113DCC:
- ands r0, r1
- cmp r0, 0
- bne _08113DE4
- ldrb r0, [r4]
- adds r0, r5
- adds r0, r7
- subs r1, r6, 0x1
- strb r1, [r0]
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- movs r3, 0
-_08113DE4:
- adds r1, r6, 0x1
- movs r0, 0x7
- ands r0, r1
- cmp r0, 0
- bne _08113DF2
- adds r2, 0x1D
- b _08113DFC
-_08113DF2:
- mov r0, r9
- ands r6, r0
- cmp r6, 0
- beq _08113DFC
- adds r2, 0x1
-_08113DFC:
- adds r6, r1, 0
- cmp r6, 0x3F
- ble _08113D78
- cmp r3, 0
- beq _08113E14
- ldrb r0, [r4]
- adds r0, r5
- adds r0, r7
- strb r6, [r0]
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
-_08113E14:
- movs r0, 0x7
- ldr r1, [sp, 0x30]
- ands r1, r0
- cmp r1, 0
- bne _08113E24
- movs r2, 0xE4
- add r8, r2
- b _08113E28
-_08113E24:
- movs r3, 0x4
- add r8, r3
-_08113E28:
- adds r5, 0x20
- adds r4, 0x1
- ldr r0, [sp, 0x8]
- adds r0, 0x1
- str r0, [sp, 0x8]
- cmp r0, 0x3F
- ble _08113D6A
- movs r1, 0
- str r1, [sp, 0x8]
-_08113E3A:
- ldr r3, [sp, 0x8]
- ldr r4, _08113EBC @ =0x02014804
- adds r2, r3, r4
- ldr r5, _08113EC0 @ =0x02014844
- adds r1, r3, r5
- ldrb r0, [r2]
- adds r3, 0x1
- str r3, [sp, 0x30]
- ldrb r1, [r1]
- cmp r0, r1
- bcc _08113E52
- b _08113F9E
-_08113E52:
- movs r0, 0
- str r0, [sp, 0xC]
- ldrb r2, [r2]
- cmp r0, r2
- bge _08113F54
- ldr r0, _08113EC4 @ =0x02014800
- adds r0, 0x4
- ldr r1, [sp, 0x8]
- adds r0, r1, r0
- str r0, [sp, 0x18]
-_08113E66:
- movs r2, 0x80
- lsls r2, 1
- str r2, [sp, 0x14]
- movs r6, 0
- ldr r3, [sp, 0x8]
- ldr r4, _08113EC0 @ =0x02014844
- adds r0, r3, r4
- ldr r5, [sp, 0xC]
- adds r5, 0x1
- str r5, [sp, 0x34]
- ldrb r0, [r0]
- cmp r6, r0
- bge _08113F3E
- ldr r0, _08113EC4 @ =0x02014800
- mov r10, r0
- lsls r0, r3, 5
- ldr r2, [sp, 0xC]
- adds r1, r2, r0
- mov r9, r0
- ldr r0, _08113EC4 @ =0x02014800
- adds r0, 0xC4
- mov r3, r9
- adds r7, r3, r0
- mov r5, r9
- ldr r4, _08113EC4 @ =0x02014800
- ldr r2, _08113EC8 @ =0x000010c4
- adds r0, r4, r2
- adds r1, r0
- mov r8, r1
- ldrb r3, [r1]
- str r3, [sp, 0x1C]
-_08113EA4:
- ldr r0, _08113ECC @ =0x000020c4
- add r0, r10
- adds r0, r5, r0
- ldr r4, [sp, 0x1C]
- ldrb r1, [r0]
- cmp r4, r1
- bls _08113ED0
- mov r2, r8
- ldrb r1, [r2]
- ldrb r0, [r0]
- b _08113ED6
- .align 2, 0
-_08113EBC: .4byte 0x02014804
-_08113EC0: .4byte 0x02014844
-_08113EC4: .4byte 0x02014800
-_08113EC8: .4byte 0x000010c4
-_08113ECC: .4byte 0x000020c4
-_08113ED0:
- ldrb r1, [r0]
- mov r3, r8
- ldrb r0, [r3]
-_08113ED6:
- subs r3, r1, r0
- ldr r1, [sp, 0xC]
- add r1, r9
- ldr r0, _08113EFC @ =0x000018c4
- add r0, r10
- adds r4, r1, r0
- ldr r0, _08113F00 @ =0x000028c4
- add r0, r10
- adds r2, r5, r0
- ldrb r0, [r4]
- ldr r1, _08113F04 @ =0x02014800
- mov r12, r1
- ldrb r1, [r2]
- cmp r0, r1
- bls _08113F08
- adds r1, r0, 0
- ldrb r0, [r2]
- b _08113F0C
- .align 2, 0
-_08113EFC: .4byte 0x000018c4
-_08113F00: .4byte 0x000028c4
-_08113F04: .4byte 0x02014800
-_08113F08:
- ldrb r1, [r2]
- ldrb r0, [r4]
-_08113F0C:
- subs r1, r0
- adds r3, r1
- ldr r2, [sp, 0x14]
- cmp r2, r3
- ble _08113F2C
- ldrb r0, [r7]
- cmp r0, 0
- bne _08113F2C
- ldr r0, _08114050 @ =0x000008c4
- add r0, r12
- adds r0, r5, r0
- ldrb r0, [r0]
- cmp r0, 0
- bne _08113F2C
- str r6, [sp, 0x10]
- str r3, [sp, 0x14]
-_08113F2C:
- adds r7, 0x1
- adds r5, 0x1
- adds r6, 0x1
- ldr r3, [sp, 0x8]
- ldr r4, _08114054 @ =0x02014844
- adds r0, r3, r4
- ldrb r0, [r0]
- cmp r6, r0
- blt _08113EA4
-_08113F3E:
- ldr r0, [sp, 0xC]
- ldr r1, [sp, 0x10]
- ldr r2, [sp, 0x8]
- bl sub_81141F0
- ldr r5, [sp, 0x34]
- str r5, [sp, 0xC]
- ldr r0, [sp, 0x18]
- ldrb r0, [r0]
- cmp r5, r0
- blt _08113E66
-_08113F54:
- movs r6, 0
- ldr r2, _08114058 @ =0x02014800
- ldr r1, [sp, 0x8]
- ldr r3, _08114054 @ =0x02014844
- adds r0, r1, r3
- adds r4, r2, 0
- mov r12, r4
- ldrb r0, [r0]
- cmp r6, r0
- bge _08113F9E
- mov r0, r12
- adds r0, 0x44
- adds r4, r1, r0
-_08113F6E:
- ldr r5, [sp, 0x8]
- lsls r0, r5, 5
- adds r1, r6, r0
- adds r0, r2, 0
- adds r0, 0xC4
- adds r0, r1, r0
- ldrb r0, [r0]
- cmp r0, 0
- bne _08113F94
- ldr r3, _08114050 @ =0x000008c4
- adds r0, r2, r3
- adds r0, r1, r0
- ldrb r0, [r0]
- cmp r0, 0
- bne _08113F94
- adds r0, r6, 0
- adds r1, r5, 0
- bl sub_811430C
-_08113F94:
- adds r6, 0x1
- ldr r2, _08114058 @ =0x02014800
- ldrb r5, [r4]
- cmp r6, r5
- blt _08113F6E
-_08113F9E:
- ldr r0, [sp, 0x8]
- ldr r1, _0811405C @ =0x02014804
- adds r2, r0, r1
- ldr r3, _08114054 @ =0x02014844
- adds r1, r0, r3
- ldrb r0, [r2]
- ldrb r1, [r1]
- cmp r0, r1
- bne _08113FCC
- movs r6, 0
- ldrb r4, [r2]
- cmp r6, r4
- bge _08113FCC
- adds r4, r2, 0
-_08113FBA:
- adds r0, r6, 0
- adds r1, r6, 0
- ldr r2, [sp, 0x8]
- bl sub_81141F0
- adds r6, 0x1
- ldrb r5, [r4]
- cmp r6, r5
- blt _08113FBA
-_08113FCC:
- ldr r0, [sp, 0x8]
- ldr r1, _0811405C @ =0x02014804
- adds r2, r0, r1
- ldr r3, _08114054 @ =0x02014844
- adds r1, r0, r3
- ldrb r0, [r2]
- ldr r4, _08114058 @ =0x02014800
- ldrb r5, [r1]
- cmp r0, r5
- bhi _08113FE2
- b _081141C4
-_08113FE2:
- movs r0, 0
- str r0, [sp, 0x10]
- ldrb r1, [r1]
- cmp r0, r1
- blt _08113FEE
- b _08114104
-_08113FEE:
- str r2, [sp, 0x2C]
- ldr r1, [sp, 0x8]
- lsls r1, 5
- mov r9, r1
- adds r0, r4, 0
- adds r0, 0x44
- ldr r2, [sp, 0x8]
- adds r0, r2, r0
- str r0, [sp, 0x20]
- mov r3, r9
- str r3, [sp, 0x24]
-_08114004:
- movs r4, 0x80
- lsls r4, 1
- str r4, [sp, 0x14]
- movs r6, 0
- ldr r5, [sp, 0x10]
- adds r5, 0x1
- str r5, [sp, 0x38]
- ldr r0, [sp, 0x2C]
- ldrb r0, [r0]
- cmp r6, r0
- bge _081140C4
- ldr r1, [sp, 0x10]
- ldr r2, [sp, 0x24]
- adds r1, r2
- mov r10, r1
- ldr r0, _08114058 @ =0x02014800
- adds r0, 0xC4
- adds r2, r0
- mov r8, r2
- ldr r7, [sp, 0x24]
- ldr r3, _08114058 @ =0x02014800
- ldr r4, _08114060 @ =0x000010c4
- adds r0, r3, r4
- adds r5, r7, r0
- ldr r0, _08114064 @ =0x020168c4
- add r0, r10
- mov r12, r0
- ldrb r1, [r0]
- str r1, [sp, 0x28]
-_0811403E:
- ldrb r0, [r5]
- ldr r2, [sp, 0x28]
- cmp r0, r2
- bls _08114068
- adds r1, r0, 0
- mov r3, r12
- ldrb r0, [r3]
- b _0811406E
- .align 2, 0
-_08114050: .4byte 0x000008c4
-_08114054: .4byte 0x02014844
-_08114058: .4byte 0x02014800
-_0811405C: .4byte 0x02014804
-_08114060: .4byte 0x000010c4
-_08114064: .4byte 0x020168c4
-_08114068:
- mov r4, r12
- ldrb r1, [r4]
- ldrb r0, [r5]
-_0811406E:
- subs r3, r1, r0
- ldr r1, _0811408C @ =0x02014800
- ldr r2, _08114090 @ =0x000018c4
- adds r0, r1, r2
- adds r4, r7, r0
- ldr r2, _08114094 @ =0x020170c4
- add r2, r10
- ldrb r0, [r4]
- ldrb r1, [r2]
- cmp r0, r1
- bls _08114098
- adds r1, r0, 0
- ldrb r0, [r2]
- b _0811409C
- .align 2, 0
-_0811408C: .4byte 0x02014800
-_08114090: .4byte 0x000018c4
-_08114094: .4byte 0x020170c4
-_08114098:
- ldrb r1, [r2]
- ldrb r0, [r4]
-_0811409C:
- subs r1, r0
- adds r3, r1
- ldr r2, [sp, 0x14]
- cmp r2, r3
- ble _081140B2
- mov r4, r8
- ldrb r0, [r4]
- cmp r0, 0
- bne _081140B2
- str r6, [sp, 0xC]
- str r3, [sp, 0x14]
-_081140B2:
- movs r0, 0x1
- add r8, r0
- adds r7, 0x1
- adds r5, 0x1
- adds r6, 0x1
- ldr r1, [sp, 0x2C]
- ldrb r1, [r1]
- cmp r6, r1
- blt _0811403E
-_081140C4:
- ldr r3, [sp, 0xC]
- add r3, r9
- ldr r2, _08114164 @ =0x02014800
- ldr r4, _08114168 @ =0x000030c4
- adds r1, r2, r4
- adds r1, r3, r1
- ldr r2, [sp, 0x10]
- add r2, r9
- ldr r5, _0811416C @ =0x020168c4
- adds r0, r2, r5
- ldrb r0, [r0]
- strb r0, [r1]
- ldr r0, _08114164 @ =0x02014800
- ldr r4, _08114170 @ =0x000038c4
- adds r1, r0, r4
- adds r1, r3, r1
- ldr r5, _08114174 @ =0x020170c4
- adds r2, r5
- ldrb r0, [r2]
- strb r0, [r1]
- ldr r0, _08114164 @ =0x02014800
- adds r0, 0xC4
- adds r3, r0
- movs r0, 0x1
- strb r0, [r3]
- ldr r0, [sp, 0x38]
- str r0, [sp, 0x10]
- ldr r1, [sp, 0x20]
- ldrb r1, [r1]
- cmp r0, r1
- bge _08114104
- b _08114004
-_08114104:
- movs r6, 0
- ldr r4, _08114164 @ =0x02014800
- ldr r2, [sp, 0x8]
- ldr r3, _08114178 @ =0x02014804
- adds r0, r2, r3
- ldrb r0, [r0]
- cmp r6, r0
- bge _081141C4
- adds r7, r4, 0
- mov r9, r6
- movs r5, 0xC4
- adds r5, r7
- mov r8, r5
-_0811411E:
- ldr r1, [sp, 0x8]
- lsls r0, r1, 5
- adds r2, r6, r0
- ldr r3, _0811417C @ =0x000020c4
- adds r0, r7, r3
- adds r0, r2
- mov r10, r0
- ldr r5, _08114168 @ =0x000030c4
- adds r0, r7, r5
- adds r0, r2, r0
- ldrb r0, [r0]
- mov r1, r10
- strb r0, [r1]
- ldr r3, _08114180 @ =0x000028c4
- adds r0, r7, r3
- adds r3, r2, r0
- ldr r5, _08114170 @ =0x000038c4
- adds r0, r7, r5
- adds r0, r2, r0
- ldrb r0, [r0]
- strb r0, [r3]
- mov r0, r8
- adds r1, r2, r0
- ldrb r0, [r1]
- cmp r0, 0
- beq _08114184
- mov r2, r9
- strb r2, [r1]
- adds r0, r6, 0
- adds r1, r6, 0
- ldr r2, [sp, 0x8]
- bl sub_81141F0
- b _081141B4
- .align 2, 0
-_08114164: .4byte 0x02014800
-_08114168: .4byte 0x000030c4
-_0811416C: .4byte 0x020168c4
-_08114170: .4byte 0x000038c4
-_08114174: .4byte 0x020170c4
-_08114178: .4byte 0x02014804
-_0811417C: .4byte 0x000020c4
-_08114180: .4byte 0x000028c4
-_08114184:
- ldr r5, _081141E0 @ =0x000010c4
- adds r1, r4, r5
- adds r1, r2, r1
- ldr r5, _081141E4 @ =0x000018c4
- adds r0, r4, r5
- adds r0, r2, r0
- ldrb r0, [r0]
- ldrb r2, [r1]
- subs r0, r2
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- adds r2, r0
- strb r2, [r3]
- mov r0, r10
- strb r2, [r0]
- ldrb r0, [r3]
- subs r0, 0x1
- strb r0, [r3]
- adds r0, r6, 0
- adds r1, r6, 0
- ldr r2, [sp, 0x8]
- bl sub_81141F0
-_081141B4:
- adds r6, 0x1
- ldr r4, _081141E8 @ =0x02014800
- ldr r1, [sp, 0x8]
- ldr r2, _081141EC @ =0x02014804
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r6, r0
- blt _0811411E
-_081141C4:
- ldr r3, [sp, 0x30]
- str r3, [sp, 0x8]
- cmp r3, 0x3F
- bgt _081141CE
- b _08113E3A
-_081141CE:
- add sp, 0x3C
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_081141E0: .4byte 0x000010c4
-_081141E4: .4byte 0x000018c4
-_081141E8: .4byte 0x02014800
-_081141EC: .4byte 0x02014804
- thumb_func_end unref_sub_8113B50
-
- thumb_func_start sub_81141F0
-sub_81141F0: @ 81141F0
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- adds r6, r0, 0
- mov r8, r1
- mov r9, r2
- ldr r3, _0811424C @ =0x02014800
- lsls r1, r2, 5
- mov r0, r8
- adds r4, r0, r1
- ldr r5, _08114250 @ =0x000030c4
- adds r2, r3, r5
- adds r2, r4, r2
- adds r1, r6, r1
- ldr r7, _08114254 @ =0x000010c4
- adds r0, r3, r7
- adds r5, r1, r0
- ldrb r0, [r5]
- strb r0, [r2]
- ldr r0, _08114258 @ =0x000038c4
- adds r2, r3, r0
- adds r2, r4, r2
- ldr r7, _0811425C @ =0x000018c4
- adds r0, r3, r7
- adds r1, r0
- ldrb r0, [r1]
- strb r0, [r2]
- movs r7, 0
- ldr r1, _08114260 @ =0x000020c4
- adds r0, r3, r1
- adds r2, r4, r0
- ldrb r1, [r5]
- ldrb r0, [r2]
- mov r12, r3
- cmp r1, r0
- bcs _08114264
- mov r0, r12
- adds r0, 0xC4
- adds r0, r4, r0
- movs r1, 0x4
- strb r1, [r0]
- ldrb r1, [r2]
- ldrb r0, [r5]
- b _08114276
- .align 2, 0
-_0811424C: .4byte 0x02014800
-_08114250: .4byte 0x000030c4
-_08114254: .4byte 0x000010c4
-_08114258: .4byte 0x000038c4
-_0811425C: .4byte 0x000018c4
-_08114260: .4byte 0x000020c4
-_08114264:
- cmp r1, r0
- bls _08114278
- mov r0, r12
- adds r0, 0xC4
- adds r0, r4, r0
- movs r1, 0x1
- strb r1, [r0]
- ldrb r1, [r5]
- ldrb r0, [r2]
-_08114276:
- subs r7, r1, r0
-_08114278:
- mov r5, r8
- lsls r3, r5, 1
- mov r0, r9
- lsls r4, r0, 6
- adds r0, r3, r4
- ldr r1, _081142BC @ =0x000080c4
- add r1, r12
- adds r0, r1
- lsls r1, r7, 4
- strh r1, [r0]
- movs r7, 0
- mov r1, r9
- lsls r2, r1, 5
- adds r1, r6, r2
- ldr r0, _081142C0 @ =0x000018c4
- add r0, r12
- adds r6, r1, r0
- adds r1, r5, r2
- ldr r0, _081142C4 @ =0x000028c4
- add r0, r12
- adds r5, r1, r0
- ldrb r2, [r6]
- ldrb r0, [r5]
- cmp r2, r0
- bcs _081142CC
- ldr r0, _081142C8 @ =0x000008c4
- add r0, r12
- adds r0, r1, r0
- movs r1, 0x3
- strb r1, [r0]
- ldrb r1, [r5]
- ldrb r0, [r6]
- b _081142DE
- .align 2, 0
-_081142BC: .4byte 0x000080c4
-_081142C0: .4byte 0x000018c4
-_081142C4: .4byte 0x000028c4
-_081142C8: .4byte 0x000008c4
-_081142CC:
- cmp r2, r0
- bls _081142E0
- ldr r0, _08114304 @ =0x000008c4
- add r0, r12
- adds r0, r1, r0
- movs r1, 0x2
- strb r1, [r0]
- ldrb r1, [r6]
- ldrb r0, [r5]
-_081142DE:
- subs r7, r1, r0
-_081142E0:
- adds r0, r3, r4
- ldr r1, _08114308 @ =0x000090c4
- add r1, r12
- adds r0, r1
- lsls r1, r7, 4
- strh r1, [r0]
- mov r1, r12
- adds r1, 0x84
- add r1, r9
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08114304: .4byte 0x000008c4
-_08114308: .4byte 0x000090c4
- thumb_func_end sub_81141F0
-
- thumb_func_start sub_811430C
-sub_811430C: @ 811430C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r5, _081143AC @ =0x02014800
- lsls r4, r1, 5
- adds r4, r0, r4
- ldr r2, _081143B0 @ =0x000028c4
- adds r2, r5
- mov r10, r2
- add r10, r4
- mov r3, r10
- ldrb r2, [r3]
- ldr r6, _081143B4 @ =0x000020c4
- adds r6, r5
- mov r8, r6
- add r8, r4
- mov r6, r8
- ldrb r3, [r6]
- subs r7, r2, r3
- ldr r2, _081143B8 @ =0x000030c4
- adds r6, r5, r2
- adds r6, r4, r6
- ldr r2, _081143BC @ =0x000038c4
- adds r2, r5
- mov r9, r2
- add r9, r4
- lsrs r2, r7, 31
- adds r2, r7, r2
- asrs r2, 1
- adds r3, r2
- mov r2, r9
- strb r3, [r2]
- strb r3, [r6]
- adds r2, r5, 0
- adds r2, 0xC4
- adds r2, r4, r2
- movs r3, 0x5
- strb r3, [r2]
- ldr r3, _081143C0 @ =0x000008c4
- adds r2, r5, r3
- adds r4, r2
- movs r2, 0x7
- strb r2, [r4]
- adds r3, r5, 0
- adds r3, 0x84
- adds r3, r1, r3
- ldrb r2, [r3]
- adds r2, 0x1
- strb r2, [r3]
- ldrb r3, [r6]
- mov r4, r8
- ldrb r2, [r4]
- subs r7, r3, r2
- lsls r0, 1
- lsls r1, 6
- adds r0, r1
- ldr r6, _081143C4 @ =0x000080c4
- adds r1, r5, r6
- adds r1, r0, r1
- lsls r2, r7, 4
- strh r2, [r1]
- mov r1, r10
- ldrb r2, [r1]
- mov r3, r9
- ldrb r1, [r3]
- subs r7, r2, r1
- ldr r4, _081143C8 @ =0x000090c4
- adds r5, r4
- adds r0, r5
- lsls r1, r7, 4
- strh r1, [r0]
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_081143AC: .4byte 0x02014800
-_081143B0: .4byte 0x000028c4
-_081143B4: .4byte 0x000020c4
-_081143B8: .4byte 0x000030c4
-_081143BC: .4byte 0x000038c4
-_081143C0: .4byte 0x000008c4
-_081143C4: .4byte 0x000080c4
-_081143C8: .4byte 0x000090c4
- thumb_func_end sub_811430C
-
- thumb_func_start unref_sub_81143CC
-unref_sub_81143CC: @ 81143CC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x14
- movs r0, 0x1
- str r0, [sp, 0x4]
- ldr r0, _08114408 @ =0x02014800
- ldr r2, _0811440C @ =0x0000a0c4
- adds r1, r0, r2
- ldrb r3, [r1]
- adds r4, r0, 0
- cmp r3, 0
- beq _081143EE
- subs r0, r3, 0x1
- strb r0, [r1]
-_081143EE:
- movs r5, 0
- str r5, [sp]
-_081143F2:
- movs r3, 0
- adds r2, r4, 0
- adds r0, r4, 0
- adds r0, 0x84
- ldr r1, [sp]
- adds r0, r1, r0
- adds r1, 0x1
- str r1, [sp, 0x8]
- bl _08114D84
- .align 2, 0
-_08114408: .4byte 0x02014800
-_0811440C: .4byte 0x0000a0c4
-_08114410:
- ldr r5, [sp]
- lsls r0, r5, 5
- adds r1, r3, r0
- adds r2, 0xC4
- adds r1, r2
- ldrb r2, [r1]
- mov r8, r0
- adds r0, r3, 0x1
- mov r10, r0
- cmp r2, 0xC
- bls _08114428
- b _081148D2
-_08114428:
- lsls r0, r2, 2
- ldr r1, _08114434 @ =_08114438
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08114434: .4byte _08114438
- .align 2, 0
-_08114438:
- .4byte _081148D2
- .4byte _0811446C
- .4byte _081144F0
- .4byte _0811457C
- .4byte _08114600
- .4byte _0811468C
- .4byte _081146C8
- .4byte _08114704
- .4byte _08114740
- .4byte _0811477C
- .4byte _081147D0
- .4byte _08114810
- .4byte _08114858
-_0811446C:
- movs r1, 0
- str r1, [sp, 0x4]
- lsls r0, r3, 1
- ldr r2, [sp]
- lsls r1, r2, 6
- adds r0, r1
- ldr r5, _081144E0 @ =0x000060c4
- adds r2, r4, r5
- adds r2, r0, r2
- ldr r5, _081144E4 @ =0x000080c4
- adds r1, r4, r5
- adds r0, r1
- ldrh r1, [r0]
- ldrh r0, [r2]
- adds r1, r0
- movs r0, 0xFF
- lsls r0, 8
- ands r0, r1
- lsrs r5, r0, 8
- movs r0, 0xFF
- ands r1, r0
- strh r1, [r2]
- movs r6, 0
- adds r1, r3, 0x1
- mov r10, r1
- ldr r2, [sp, 0x4]
- cmp r2, r5
- blt _081144A6
- b _081148D2
-_081144A6:
- mov r9, r4
- mov r4, r8
- adds r7, r3, r4
- ldr r0, _081144E8 @ =0x000030c4
- add r0, r9
- adds r4, r7, r0
- ldr r0, _081144EC @ =0x000020c4
- add r0, r9
- adds r2, r7, r0
-_081144B8:
- ldrb r0, [r4]
- subs r0, 0x1
- strb r0, [r4]
- ldrb r1, [r4]
- ldr r0, [sp]
- str r2, [sp, 0xC]
- str r3, [sp, 0x10]
- bl sub_8114DB4
- ldrb r0, [r4]
- ldr r2, [sp, 0xC]
- ldr r3, [sp, 0x10]
- ldrb r1, [r2]
- cmp r0, r1
- bne _081144D8
- b _081148A0
-_081144D8:
- adds r6, 0x1
- cmp r6, r5
- blt _081144B8
- b _081148D2
- .align 2, 0
-_081144E0: .4byte 0x000060c4
-_081144E4: .4byte 0x000080c4
-_081144E8: .4byte 0x000030c4
-_081144EC: .4byte 0x000020c4
-_081144F0:
- movs r2, 0
- str r2, [sp, 0x4]
- ldr r4, _08114568 @ =0x02014800
- lsls r0, r3, 1
- ldr r5, [sp]
- lsls r1, r5, 6
- adds r0, r1
- ldr r1, _0811456C @ =0x000060c4
- adds r2, r4, r1
- adds r2, r0, r2
- ldr r5, _08114570 @ =0x000080c4
- adds r1, r4, r5
- adds r0, r1
- ldrh r1, [r0]
- ldrh r0, [r2]
- adds r1, r0
- movs r0, 0xFF
- lsls r0, 8
- ands r0, r1
- lsrs r5, r0, 8
- movs r0, 0xFF
- ands r1, r0
- strh r1, [r2]
- movs r6, 0
- adds r1, r3, 0x1
- mov r10, r1
- ldr r2, [sp, 0x4]
- cmp r2, r5
- blt _0811452C
- b _081148D2
-_0811452C:
- mov r9, r4
- mov r4, r8
- adds r7, r3, r4
- ldr r0, _08114574 @ =0x000030c4
- add r0, r9
- adds r4, r7, r0
- ldr r0, _08114578 @ =0x000020c4
- add r0, r9
- adds r2, r7, r0
-_0811453E:
- ldrb r0, [r4]
- ldrb r1, [r2]
- cmp r0, r1
- bne _08114548
- b _081148B8
-_08114548:
- adds r1, r0, 0
- ldr r0, [sp]
- str r2, [sp, 0xC]
- str r3, [sp, 0x10]
- bl sub_8114DF0
- ldrb r0, [r4]
- subs r0, 0x1
- strb r0, [r4]
- adds r6, 0x1
- ldr r2, [sp, 0xC]
- ldr r3, [sp, 0x10]
- cmp r6, r5
- blt _0811453E
- b _081148D2
- .align 2, 0
-_08114568: .4byte 0x02014800
-_0811456C: .4byte 0x000060c4
-_08114570: .4byte 0x000080c4
-_08114574: .4byte 0x000030c4
-_08114578: .4byte 0x000020c4
-_0811457C:
- movs r2, 0
- str r2, [sp, 0x4]
- lsls r0, r3, 1
- ldr r5, [sp]
- lsls r1, r5, 6
- adds r0, r1
- ldr r1, _081145F0 @ =0x000060c4
- adds r2, r4, r1
- adds r2, r0, r2
- ldr r5, _081145F4 @ =0x000080c4
- adds r1, r4, r5
- adds r0, r1
- ldrh r1, [r0]
- ldrh r0, [r2]
- adds r1, r0
- movs r0, 0xFF
- lsls r0, 8
- ands r0, r1
- lsrs r5, r0, 8
- movs r0, 0xFF
- ands r1, r0
- strh r1, [r2]
- movs r6, 0
- adds r1, r3, 0x1
- mov r10, r1
- ldr r2, [sp, 0x4]
- cmp r2, r5
- blt _081145B6
- b _081148D2
-_081145B6:
- mov r9, r4
- mov r4, r8
- adds r7, r3, r4
- ldr r0, _081145F8 @ =0x000030c4
- add r0, r9
- adds r4, r7, r0
- ldr r0, _081145FC @ =0x000020c4
- add r0, r9
- adds r2, r7, r0
-_081145C8:
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- ldrb r1, [r4]
- ldr r0, [sp]
- str r2, [sp, 0xC]
- str r3, [sp, 0x10]
- bl sub_8114DB4
- ldrb r0, [r4]
- ldr r2, [sp, 0xC]
- ldr r3, [sp, 0x10]
- ldrb r1, [r2]
- cmp r0, r1
- bne _081145E8
- b _081148AC
-_081145E8:
- adds r6, 0x1
- cmp r6, r5
- blt _081145C8
- b _081148D2
- .align 2, 0
-_081145F0: .4byte 0x000060c4
-_081145F4: .4byte 0x000080c4
-_081145F8: .4byte 0x000030c4
-_081145FC: .4byte 0x000020c4
-_08114600:
- movs r2, 0
- str r2, [sp, 0x4]
- ldr r4, _08114678 @ =0x02014800
- lsls r0, r3, 1
- ldr r5, [sp]
- lsls r1, r5, 6
- adds r0, r1
- ldr r1, _0811467C @ =0x000060c4
- adds r2, r4, r1
- adds r2, r0, r2
- ldr r5, _08114680 @ =0x000080c4
- adds r1, r4, r5
- adds r0, r1
- ldrh r1, [r0]
- ldrh r0, [r2]
- adds r1, r0
- movs r0, 0xFF
- lsls r0, 8
- ands r0, r1
- lsrs r5, r0, 8
- movs r0, 0xFF
- ands r1, r0
- strh r1, [r2]
- movs r6, 0
- adds r1, r3, 0x1
- mov r10, r1
- ldr r2, [sp, 0x4]
- cmp r2, r5
- blt _0811463C
- b _081148D2
-_0811463C:
- mov r9, r4
- mov r4, r8
- adds r7, r3, r4
- ldr r0, _08114684 @ =0x000030c4
- add r0, r9
- adds r4, r7, r0
- ldr r0, _08114688 @ =0x000020c4
- add r0, r9
- adds r2, r7, r0
-_0811464E:
- ldrb r0, [r4]
- ldrb r1, [r2]
- cmp r0, r1
- bne _08114658
- b _081148B8
-_08114658:
- adds r1, r0, 0
- ldr r0, [sp]
- str r2, [sp, 0xC]
- str r3, [sp, 0x10]
- bl sub_8114DF0
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- adds r6, 0x1
- ldr r2, [sp, 0xC]
- ldr r3, [sp, 0x10]
- cmp r6, r5
- blt _0811464E
- b _081148D2
- .align 2, 0
-_08114678: .4byte 0x02014800
-_0811467C: .4byte 0x000060c4
-_08114680: .4byte 0x000080c4
-_08114684: .4byte 0x000030c4
-_08114688: .4byte 0x000020c4
-_0811468C:
- movs r2, 0
- str r2, [sp, 0x4]
- ldr r5, _081146C0 @ =0x02014800
- mov r0, r8
- adds r4, r3, r0
- ldr r1, _081146C4 @ =0x000030c4
- adds r0, r5, r1
- adds r0, r4, r0
- ldrb r1, [r0]
- ldr r0, [sp]
- str r3, [sp, 0x10]
- bl sub_8114E48
- lsls r0, 24
- ldr r3, [sp, 0x10]
- adds r2, r3, 0x1
- mov r10, r2
- cmp r0, 0
- bne _081146B4
- b _081148D2
-_081146B4:
- adds r0, r5, 0
- adds r0, 0xC4
- adds r0, r4, r0
- movs r1, 0x9
- strb r1, [r0]
- b _081148D2
- .align 2, 0
-_081146C0: .4byte 0x02014800
-_081146C4: .4byte 0x000030c4
-_081146C8:
- movs r4, 0
- str r4, [sp, 0x4]
- ldr r5, _081146FC @ =0x02014800
- mov r0, r8
- adds r4, r3, r0
- ldr r1, _08114700 @ =0x000030c4
- adds r0, r5, r1
- adds r0, r4, r0
- ldrb r1, [r0]
- ldr r0, [sp]
- str r3, [sp, 0x10]
- bl sub_8114E48
- lsls r0, 24
- ldr r3, [sp, 0x10]
- adds r2, r3, 0x1
- mov r10, r2
- cmp r0, 0
- bne _081146F0
- b _081148D2
-_081146F0:
- adds r0, r5, 0
- adds r0, 0xC4
- adds r0, r4, r0
- movs r1, 0xA
- strb r1, [r0]
- b _081148D2
- .align 2, 0
-_081146FC: .4byte 0x02014800
-_08114700: .4byte 0x000030c4
-_08114704:
- movs r4, 0
- str r4, [sp, 0x4]
- ldr r5, _08114738 @ =0x02014800
- mov r0, r8
- adds r4, r3, r0
- ldr r1, _0811473C @ =0x000030c4
- adds r0, r5, r1
- adds r0, r4, r0
- ldrb r1, [r0]
- ldr r0, [sp]
- str r3, [sp, 0x10]
- bl sub_8114E48
- lsls r0, 24
- ldr r3, [sp, 0x10]
- adds r2, r3, 0x1
- mov r10, r2
- cmp r0, 0
- bne _0811472C
- b _081148D2
-_0811472C:
- adds r0, r5, 0
- adds r0, 0xC4
- adds r0, r4, r0
- movs r1, 0xB
- strb r1, [r0]
- b _081148D2
- .align 2, 0
-_08114738: .4byte 0x02014800
-_0811473C: .4byte 0x000030c4
-_08114740:
- movs r4, 0
- str r4, [sp, 0x4]
- ldr r5, _08114774 @ =0x02014800
- mov r0, r8
- adds r4, r3, r0
- ldr r1, _08114778 @ =0x000030c4
- adds r0, r5, r1
- adds r0, r4, r0
- ldrb r1, [r0]
- ldr r0, [sp]
- str r3, [sp, 0x10]
- bl sub_8114E48
- lsls r0, 24
- ldr r3, [sp, 0x10]
- adds r2, r3, 0x1
- mov r10, r2
- cmp r0, 0
- bne _08114768
- b _081148D2
-_08114768:
- adds r0, r5, 0
- adds r0, 0xC4
- adds r0, r4, r0
- movs r1, 0xC
- strb r1, [r0]
- b _081148D2
- .align 2, 0
-_08114774: .4byte 0x02014800
-_08114778: .4byte 0x000030c4
-_0811477C:
- movs r4, 0
- str r4, [sp, 0x4]
- ldr r6, _081147B4 @ =0x02014800
- mov r0, r8
- adds r5, r3, r0
- ldr r1, _081147B8 @ =0x000030c4
- adds r4, r6, r1
- adds r4, r5, r4
- ldrb r1, [r4]
- ldr r0, [sp]
- str r3, [sp, 0x10]
- bl sub_8114DB4
- ldr r2, _081147BC @ =0x000020c4
- adds r0, r6, r2
- adds r0, r5, r0
- ldrb r1, [r4]
- ldr r3, [sp, 0x10]
- ldrb r0, [r0]
- cmp r1, r0
- bne _081147C0
- adds r0, r6, 0
- adds r0, 0xC4
- adds r0, r5, r0
- mov r4, sp
- ldrb r4, [r4, 0x4]
- strb r4, [r0]
- b _08114844
- .align 2, 0
-_081147B4: .4byte 0x02014800
-_081147B8: .4byte 0x000030c4
-_081147BC: .4byte 0x000020c4
-_081147C0:
- adds r0, r6, 0
- adds r0, 0xC4
- adds r0, r5, r0
- movs r1, 0x1
- strb r1, [r0]
- adds r0, r3, 0x1
- mov r10, r0
- b _081148D2
-_081147D0:
- movs r1, 0
- str r1, [sp, 0x4]
- ldr r6, _08114804 @ =0x02014800
- mov r2, r8
- adds r5, r3, r2
- ldr r0, _08114808 @ =0x000030c4
- adds r4, r6, r0
- adds r4, r5, r4
- ldrb r1, [r4]
- ldr r0, [sp]
- str r3, [sp, 0x10]
- bl sub_8114DF0
- ldr r1, _0811480C @ =0x000020c4
- adds r0, r6, r1
- adds r0, r5, r0
- ldrb r1, [r4]
- ldr r3, [sp, 0x10]
- ldrb r0, [r0]
- cmp r1, r0
- beq _08114882
- adds r0, r6, 0
- adds r0, 0xC4
- adds r0, r5, r0
- movs r1, 0x2
- b _08114842
- .align 2, 0
-_08114804: .4byte 0x02014800
-_08114808: .4byte 0x000030c4
-_0811480C: .4byte 0x000020c4
-_08114810:
- movs r0, 0
- str r0, [sp, 0x4]
- ldr r6, _0811484C @ =0x02014800
- mov r1, r8
- adds r5, r3, r1
- ldr r2, _08114850 @ =0x000030c4
- adds r4, r6, r2
- adds r4, r5, r4
- ldrb r1, [r4]
- ldr r0, [sp]
- str r3, [sp, 0x10]
- bl sub_8114DB4
- ldr r1, _08114854 @ =0x000020c4
- adds r0, r6, r1
- adds r0, r5, r0
- ldrb r1, [r4]
- ldr r3, [sp, 0x10]
- ldrb r0, [r0]
- cmp r1, r0
- beq _08114882
- adds r0, r6, 0
- adds r0, 0xC4
- adds r0, r5, r0
- movs r1, 0x3
-_08114842:
- strb r1, [r0]
-_08114844:
- adds r5, r3, 0x1
- mov r10, r5
- b _081148D2
- .align 2, 0
-_0811484C: .4byte 0x02014800
-_08114850: .4byte 0x000030c4
-_08114854: .4byte 0x000020c4
-_08114858:
- movs r0, 0
- str r0, [sp, 0x4]
- ldr r6, _08114894 @ =0x02014800
- mov r1, r8
- adds r5, r3, r1
- ldr r2, _08114898 @ =0x000030c4
- adds r4, r6, r2
- adds r4, r5, r4
- ldrb r1, [r4]
- ldr r0, [sp]
- str r3, [sp, 0x10]
- bl sub_8114DF0
- ldr r1, _0811489C @ =0x000020c4
- adds r0, r6, r1
- adds r0, r5, r0
- ldrb r1, [r4]
- ldr r3, [sp, 0x10]
- ldrb r0, [r0]
- cmp r1, r0
- bne _081148C4
-_08114882:
- adds r0, r6, 0
- adds r0, 0xC4
- adds r0, r5, r0
- mov r2, sp
- ldrb r2, [r2, 0x4]
- strb r2, [r0]
- adds r4, r3, 0x1
- mov r10, r4
- b _081148D2
- .align 2, 0
-_08114894: .4byte 0x02014800
-_08114898: .4byte 0x000030c4
-_0811489C: .4byte 0x000020c4
-_081148A0:
- mov r0, r9
- adds r0, 0xC4
- adds r0, r7, r0
- movs r5, 0
- strb r5, [r0]
- b _081148D2
-_081148AC:
- mov r0, r9
- adds r0, 0xC4
- adds r0, r7, r0
- movs r1, 0
- strb r1, [r0]
- b _081148D2
-_081148B8:
- mov r0, r9
- adds r0, 0xC4
- adds r0, r7, r0
- movs r1, 0
- strb r1, [r0]
- b _081148D2
-_081148C4:
- adds r0, r6, 0
- adds r0, 0xC4
- adds r0, r5, r0
- movs r1, 0x4
- strb r1, [r0]
- adds r2, r3, 0x1
- mov r10, r2
-_081148D2:
- ldr r0, _081148F4 @ =0x02014800
- mov r4, r8
- adds r1, r3, r4
- ldr r5, _081148F8 @ =0x000008c4
- adds r2, r0, r5
- adds r1, r2
- ldrb r1, [r1]
- adds r4, r0, 0
- cmp r1, 0xC
- bls _081148E8
- b _08114D76
-_081148E8:
- lsls r0, r1, 2
- ldr r1, _081148FC @ =_08114900
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_081148F4: .4byte 0x02014800
-_081148F8: .4byte 0x000008c4
-_081148FC: .4byte _08114900
- .align 2, 0
-_08114900:
- .4byte _08114D76
- .4byte _08114934
- .4byte _081149B8
- .4byte _08114A3C
- .4byte _08114AC0
- .4byte _08114B44
- .4byte _08114B7C
- .4byte _08114BB4
- .4byte _08114BEC
- .4byte _08114C24
- .4byte _08114C78
- .4byte _08114CB8
- .4byte _08114CF8
-_08114934:
- movs r0, 0
- str r0, [sp, 0x4]
- lsls r0, r3, 1
- ldr r2, [sp]
- lsls r1, r2, 6
- adds r0, r1
- ldr r5, _081149A8 @ =0x000070c4
- adds r2, r4, r5
- adds r2, r0, r2
- ldr r5, _081149AC @ =0x000090c4
- adds r1, r4, r5
- adds r0, r1
- ldrh r1, [r0]
- ldrh r0, [r2]
- adds r1, r0
- movs r0, 0xFF
- lsls r0, 8
- ands r0, r1
- lsrs r5, r0, 8
- movs r0, 0xFF
- ands r1, r0
- strh r1, [r2]
- movs r6, 0
- ldr r1, [sp, 0x4]
- cmp r1, r5
- blt _0811496A
- b _08114D76
-_0811496A:
- mov r9, r4
- mov r2, r8
- adds r7, r3, r2
- ldr r0, _081149B0 @ =0x000038c4
- add r0, r9
- adds r4, r7, r0
- movs r3, 0
- ldr r0, _081149B4 @ =0x000028c4
- add r0, r9
- adds r2, r7, r0
-_0811497E:
- ldrb r0, [r4]
- subs r0, 0x1
- strb r0, [r4]
- ldrb r1, [r4]
- ldr r0, [sp]
- str r2, [sp, 0xC]
- str r3, [sp, 0x10]
- bl sub_8114DB4
- ldrb r0, [r4]
- ldr r2, [sp, 0xC]
- ldr r3, [sp, 0x10]
- ldrb r1, [r2]
- cmp r0, r1
- bne _0811499E
- b _08114D4C
-_0811499E:
- adds r6, 0x1
- cmp r6, r5
- blt _0811497E
- b _08114D76
- .align 2, 0
-_081149A8: .4byte 0x000070c4
-_081149AC: .4byte 0x000090c4
-_081149B0: .4byte 0x000038c4
-_081149B4: .4byte 0x000028c4
-_081149B8:
- movs r2, 0
- str r2, [sp, 0x4]
- ldr r4, _08114A28 @ =0x02014800
- lsls r0, r3, 1
- ldr r5, [sp]
- lsls r1, r5, 6
- adds r0, r1
- ldr r1, _08114A2C @ =0x000070c4
- adds r2, r4, r1
- adds r2, r0, r2
- ldr r5, _08114A30 @ =0x000090c4
- adds r1, r4, r5
- adds r0, r1
- ldrh r1, [r0]
- ldrh r0, [r2]
- adds r1, r0
- movs r0, 0xFF
- lsls r0, 8
- ands r0, r1
- lsrs r5, r0, 8
- movs r0, 0xFF
- ands r1, r0
- strh r1, [r2]
- movs r6, 0
- ldr r1, [sp, 0x4]
- cmp r1, r5
- blt _081149F0
- b _08114D76
-_081149F0:
- mov r9, r4
- mov r2, r8
- adds r7, r3, r2
- ldr r0, _08114A34 @ =0x000038c4
- add r0, r9
- adds r4, r7, r0
- ldr r0, _08114A38 @ =0x000028c4
- add r0, r9
- adds r2, r7, r0
-_08114A02:
- ldrb r0, [r4]
- ldrb r1, [r2]
- cmp r0, r1
- bne _08114A0C
- b _08114D3C
-_08114A0C:
- adds r1, r0, 0
- ldr r0, [sp]
- str r2, [sp, 0xC]
- bl sub_8114DF0
- ldrb r0, [r4]
- subs r0, 0x1
- strb r0, [r4]
- adds r6, 0x1
- ldr r2, [sp, 0xC]
- cmp r6, r5
- blt _08114A02
- b _08114D76
- .align 2, 0
-_08114A28: .4byte 0x02014800
-_08114A2C: .4byte 0x000070c4
-_08114A30: .4byte 0x000090c4
-_08114A34: .4byte 0x000038c4
-_08114A38: .4byte 0x000028c4
-_08114A3C:
- movs r2, 0
- str r2, [sp, 0x4]
- lsls r0, r3, 1
- ldr r5, [sp]
- lsls r1, r5, 6
- adds r0, r1
- ldr r1, _08114AB0 @ =0x000070c4
- adds r2, r4, r1
- adds r2, r0, r2
- ldr r5, _08114AB4 @ =0x000090c4
- adds r1, r4, r5
- adds r0, r1
- ldrh r1, [r0]
- ldrh r0, [r2]
- adds r1, r0
- movs r0, 0xFF
- lsls r0, 8
- ands r0, r1
- lsrs r5, r0, 8
- movs r0, 0xFF
- ands r1, r0
- strh r1, [r2]
- movs r6, 0
- ldr r1, [sp, 0x4]
- cmp r1, r5
- blt _08114A72
- b _08114D76
-_08114A72:
- mov r9, r4
- mov r2, r8
- adds r7, r3, r2
- ldr r0, _08114AB8 @ =0x000038c4
- add r0, r9
- adds r4, r7, r0
- movs r3, 0
- ldr r0, _08114ABC @ =0x000028c4
- add r0, r9
- adds r2, r7, r0
-_08114A86:
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- ldrb r1, [r4]
- ldr r0, [sp]
- str r2, [sp, 0xC]
- str r3, [sp, 0x10]
- bl sub_8114DB4
- ldrb r0, [r4]
- ldr r2, [sp, 0xC]
- ldr r3, [sp, 0x10]
- ldrb r1, [r2]
- cmp r0, r1
- bne _08114AA6
- b _08114D4C
-_08114AA6:
- adds r6, 0x1
- cmp r6, r5
- blt _08114A86
- b _08114D76
- .align 2, 0
-_08114AB0: .4byte 0x000070c4
-_08114AB4: .4byte 0x000090c4
-_08114AB8: .4byte 0x000038c4
-_08114ABC: .4byte 0x000028c4
-_08114AC0:
- movs r2, 0
- str r2, [sp, 0x4]
- ldr r4, _08114B30 @ =0x02014800
- lsls r0, r3, 1
- ldr r5, [sp]
- lsls r1, r5, 6
- adds r0, r1
- ldr r1, _08114B34 @ =0x000070c4
- adds r2, r4, r1
- adds r2, r0, r2
- ldr r5, _08114B38 @ =0x000090c4
- adds r1, r4, r5
- adds r0, r1
- ldrh r1, [r0]
- ldrh r0, [r2]
- adds r1, r0
- movs r0, 0xFF
- lsls r0, 8
- ands r0, r1
- lsrs r5, r0, 8
- movs r0, 0xFF
- ands r1, r0
- strh r1, [r2]
- movs r6, 0
- ldr r1, [sp, 0x4]
- cmp r1, r5
- blt _08114AF8
- b _08114D76
-_08114AF8:
- mov r9, r4
- mov r2, r8
- adds r7, r3, r2
- ldr r0, _08114B3C @ =0x000038c4
- add r0, r9
- adds r4, r7, r0
- ldr r0, _08114B40 @ =0x000028c4
- add r0, r9
- adds r2, r7, r0
-_08114B0A:
- ldrb r0, [r4]
- ldrb r1, [r2]
- cmp r0, r1
- bne _08114B14
- b _08114D5C
-_08114B14:
- adds r1, r0, 0
- ldr r0, [sp]
- str r2, [sp, 0xC]
- bl sub_8114DF0
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- adds r6, 0x1
- ldr r2, [sp, 0xC]
- cmp r6, r5
- blt _08114B0A
- b _08114D76
- .align 2, 0
-_08114B30: .4byte 0x02014800
-_08114B34: .4byte 0x000070c4
-_08114B38: .4byte 0x000090c4
-_08114B3C: .4byte 0x000038c4
-_08114B40: .4byte 0x000028c4
-_08114B44:
- movs r2, 0
- str r2, [sp, 0x4]
- ldr r5, _08114B70 @ =0x02014800
- mov r0, r8
- adds r4, r3, r0
- ldr r1, _08114B74 @ =0x000038c4
- adds r0, r5, r1
- adds r0, r4, r0
- ldrb r1, [r0]
- ldr r0, [sp]
- bl sub_8114E48
- lsls r0, 24
- cmp r0, 0
- bne _08114B64
- b _08114D76
-_08114B64:
- ldr r2, _08114B78 @ =0x000008c4
- adds r0, r5, r2
- adds r0, r4, r0
- movs r1, 0x9
- b _08114D74
- .align 2, 0
-_08114B70: .4byte 0x02014800
-_08114B74: .4byte 0x000038c4
-_08114B78: .4byte 0x000008c4
-_08114B7C:
- movs r4, 0
- str r4, [sp, 0x4]
- ldr r5, _08114BA8 @ =0x02014800
- mov r0, r8
- adds r4, r3, r0
- ldr r1, _08114BAC @ =0x000038c4
- adds r0, r5, r1
- adds r0, r4, r0
- ldrb r1, [r0]
- ldr r0, [sp]
- bl sub_8114E48
- lsls r0, 24
- cmp r0, 0
- bne _08114B9C
- b _08114D76
-_08114B9C:
- ldr r2, _08114BB0 @ =0x000008c4
- adds r0, r5, r2
- adds r0, r4, r0
- movs r1, 0xA
- b _08114D74
- .align 2, 0
-_08114BA8: .4byte 0x02014800
-_08114BAC: .4byte 0x000038c4
-_08114BB0: .4byte 0x000008c4
-_08114BB4:
- movs r4, 0
- str r4, [sp, 0x4]
- ldr r5, _08114BE0 @ =0x02014800
- mov r0, r8
- adds r4, r3, r0
- ldr r1, _08114BE4 @ =0x000038c4
- adds r0, r5, r1
- adds r0, r4, r0
- ldrb r1, [r0]
- ldr r0, [sp]
- bl sub_8114E48
- lsls r0, 24
- cmp r0, 0
- bne _08114BD4
- b _08114D76
-_08114BD4:
- ldr r2, _08114BE8 @ =0x000008c4
- adds r0, r5, r2
- adds r0, r4, r0
- movs r1, 0xB
- b _08114D74
- .align 2, 0
-_08114BE0: .4byte 0x02014800
-_08114BE4: .4byte 0x000038c4
-_08114BE8: .4byte 0x000008c4
-_08114BEC:
- movs r4, 0
- str r4, [sp, 0x4]
- ldr r5, _08114C18 @ =0x02014800
- mov r0, r8
- adds r4, r3, r0
- ldr r1, _08114C1C @ =0x000038c4
- adds r0, r5, r1
- adds r0, r4, r0
- ldrb r1, [r0]
- ldr r0, [sp]
- bl sub_8114E48
- lsls r0, 24
- cmp r0, 0
- bne _08114C0C
- b _08114D76
-_08114C0C:
- ldr r2, _08114C20 @ =0x000008c4
- adds r0, r5, r2
- adds r0, r4, r0
- movs r1, 0xC
- b _08114D74
- .align 2, 0
-_08114C18: .4byte 0x02014800
-_08114C1C: .4byte 0x000038c4
-_08114C20: .4byte 0x000008c4
-_08114C24:
- movs r4, 0
- str r4, [sp, 0x4]
- ldr r6, _08114C58 @ =0x02014800
- mov r0, r8
- adds r5, r3, r0
- ldr r1, _08114C5C @ =0x000038c4
- adds r4, r6, r1
- adds r4, r5, r4
- ldrb r1, [r4]
- ldr r0, [sp]
- bl sub_8114DB4
- ldr r2, _08114C60 @ =0x000028c4
- adds r0, r6, r2
- adds r0, r5, r0
- ldrb r1, [r4]
- ldrb r0, [r0]
- cmp r1, r0
- bne _08114C68
- ldr r4, _08114C64 @ =0x000008c4
- adds r0, r6, r4
- adds r0, r5, r0
- mov r5, sp
- ldrb r5, [r5, 0x4]
- strb r5, [r0]
- b _08114D76
- .align 2, 0
-_08114C58: .4byte 0x02014800
-_08114C5C: .4byte 0x000038c4
-_08114C60: .4byte 0x000028c4
-_08114C64: .4byte 0x000008c4
-_08114C68:
- ldr r1, _08114C74 @ =0x000008c4
- adds r0, r6, r1
- adds r0, r5, r0
- movs r1, 0x1
- b _08114D74
- .align 2, 0
-_08114C74: .4byte 0x000008c4
-_08114C78:
- movs r2, 0
- str r2, [sp, 0x4]
- ldr r6, _08114CA8 @ =0x02014800
- mov r4, r8
- adds r5, r3, r4
- ldr r0, _08114CAC @ =0x000038c4
- adds r4, r6, r0
- adds r4, r5, r4
- ldrb r1, [r4]
- ldr r0, [sp]
- bl sub_8114DF0
- ldr r1, _08114CB0 @ =0x000028c4
- adds r0, r6, r1
- adds r0, r5, r0
- ldrb r1, [r4]
- ldrb r0, [r0]
- cmp r1, r0
- beq _08114D1E
- ldr r1, _08114CB4 @ =0x000008c4
- adds r0, r6, r1
- adds r0, r5, r0
- movs r1, 0x2
- b _08114D74
- .align 2, 0
-_08114CA8: .4byte 0x02014800
-_08114CAC: .4byte 0x000038c4
-_08114CB0: .4byte 0x000028c4
-_08114CB4: .4byte 0x000008c4
-_08114CB8:
- movs r2, 0
- str r2, [sp, 0x4]
- ldr r6, _08114CE8 @ =0x02014800
- mov r4, r8
- adds r5, r3, r4
- ldr r0, _08114CEC @ =0x000038c4
- adds r4, r6, r0
- adds r4, r5, r4
- ldrb r1, [r4]
- ldr r0, [sp]
- bl sub_8114DB4
- ldr r1, _08114CF0 @ =0x000028c4
- adds r0, r6, r1
- adds r0, r5, r0
- ldrb r1, [r4]
- ldrb r0, [r0]
- cmp r1, r0
- beq _08114D1E
- ldr r1, _08114CF4 @ =0x000008c4
- adds r0, r6, r1
- adds r0, r5, r0
- movs r1, 0x3
- b _08114D74
- .align 2, 0
-_08114CE8: .4byte 0x02014800
-_08114CEC: .4byte 0x000038c4
-_08114CF0: .4byte 0x000028c4
-_08114CF4: .4byte 0x000008c4
-_08114CF8:
- movs r2, 0
- str r2, [sp, 0x4]
- ldr r6, _08114D2C @ =0x02014800
- mov r4, r8
- adds r5, r3, r4
- ldr r0, _08114D30 @ =0x000038c4
- adds r4, r6, r0
- adds r4, r5, r4
- ldrb r1, [r4]
- ldr r0, [sp]
- bl sub_8114DF0
- ldr r1, _08114D34 @ =0x000028c4
- adds r0, r6, r1
- adds r0, r5, r0
- ldrb r1, [r4]
- ldrb r0, [r0]
- cmp r1, r0
- bne _08114D6C
-_08114D1E:
- ldr r2, _08114D38 @ =0x000008c4
- adds r0, r6, r2
- adds r0, r5, r0
- mov r4, sp
- ldrb r4, [r4, 0x4]
- strb r4, [r0]
- b _08114D76
- .align 2, 0
-_08114D2C: .4byte 0x02014800
-_08114D30: .4byte 0x000038c4
-_08114D34: .4byte 0x000028c4
-_08114D38: .4byte 0x000008c4
-_08114D3C:
- ldr r0, _08114D48 @ =0x000008c4
- add r0, r9
- adds r0, r7, r0
- movs r1, 0
- b _08114D74
- .align 2, 0
-_08114D48: .4byte 0x000008c4
-_08114D4C:
- ldr r0, _08114D58 @ =0x000008c4
- add r0, r9
- adds r0, r7, r0
- strb r3, [r0]
- b _08114D76
- .align 2, 0
-_08114D58: .4byte 0x000008c4
-_08114D5C:
- ldr r0, _08114D68 @ =0x000008c4
- add r0, r9
- adds r0, r7, r0
- movs r1, 0
- b _08114D74
- .align 2, 0
-_08114D68: .4byte 0x000008c4
-_08114D6C:
- ldr r1, _08114DAC @ =0x000008c4
- adds r0, r6, r1
- adds r0, r5, r0
- movs r1, 0x4
-_08114D74:
- strb r1, [r0]
-_08114D76:
- mov r3, r10
- ldr r2, _08114DB0 @ =0x02014800
- adds r0, r2, 0
- adds r0, 0x84
- ldr r4, [sp]
- adds r0, r4, r0
- adds r4, r2, 0
-_08114D84:
- ldrb r0, [r0]
- cmp r3, r0
- bge _08114D8E
- bl _08114410
-_08114D8E:
- ldr r5, [sp, 0x8]
- str r5, [sp]
- cmp r5, 0x3F
- bgt _08114D9A
- bl _081143F2
-_08114D9A:
- ldr r0, [sp, 0x4]
- add sp, 0x14
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08114DAC: .4byte 0x000008c4
-_08114DB0: .4byte 0x02014800
- thumb_func_end unref_sub_81143CC
-
- thumb_func_start sub_8114DB4
-sub_8114DB4: @ 8114DB4
- push {lr}
- lsls r1, 24
- lsrs r3, r1, 24
- ldr r2, _08114DDC @ =0x02014800
- lsrs r1, 25
- lsls r1, 2
- lsls r0, 7
- adds r1, r0
- ldr r0, _08114DE0 @ =0x000040c4
- adds r2, r0
- adds r1, r2
- ldr r2, [r1]
- movs r0, 0x1
- ands r3, r0
- cmp r3, 0
- beq _08114DE4
- ldrb r0, [r2]
- movs r1, 0xF0
- b _08114DE8
- .align 2, 0
-_08114DDC: .4byte 0x02014800
-_08114DE0: .4byte 0x000040c4
-_08114DE4:
- ldrb r0, [r2]
- movs r1, 0xF
-_08114DE8:
- orrs r0, r1
- strb r0, [r2]
- pop {r0}
- bx r0
- thumb_func_end sub_8114DB4
-
- thumb_func_start sub_8114DF0
-sub_8114DF0: @ 8114DF0
- push {lr}
- lsls r1, 24
- lsrs r3, r1, 24
- ldr r2, _08114E28 @ =0x02014800
- lsrs r1, 25
- lsls r1, 2
- lsls r0, 7
- adds r1, r0
- ldr r0, _08114E2C @ =0x000040c4
- adds r2, r0
- adds r1, r2
- ldr r2, [r1]
- movs r0, 0xC0
- lsls r0, 7
- adds r1, r2, r0
- movs r0, 0x1
- ands r3, r0
- cmp r3, 0
- beq _08114E30
- ldrb r1, [r1]
- movs r0, 0xF0
- ands r0, r1
- cmp r0, 0
- bne _08114E42
- ldrb r1, [r2]
- movs r0, 0xF
- b _08114E3E
- .align 2, 0
-_08114E28: .4byte 0x02014800
-_08114E2C: .4byte 0x000040c4
-_08114E30:
- ldrb r1, [r1]
- movs r0, 0xF
- ands r0, r1
- cmp r0, 0
- bne _08114E42
- ldrb r1, [r2]
- movs r0, 0xF0
-_08114E3E:
- ands r0, r1
- strb r0, [r2]
-_08114E42:
- pop {r0}
- bx r0
- thumb_func_end sub_8114DF0
-
- thumb_func_start sub_8114E48
-sub_8114E48: @ 8114E48
- push {r4-r7,lr}
- adds r4, r0, 0
- lsls r1, 24
- lsrs r6, r1, 24
- ldr r1, _08114E6C @ =0x02014800
- ldr r2, _08114E70 @ =0x0000a0c4
- adds r0, r1, r2
- ldrb r0, [r0]
- adds r5, r1, 0
- cmp r0, 0
- bne _08114E60
- b _08114F5E
-_08114E60:
- movs r1, 0
- movs r3, 0
- cmp r4, 0
- bne _08114E74
- movs r1, 0x1
- b _08114EA6
- .align 2, 0
-_08114E6C: .4byte 0x02014800
-_08114E70: .4byte 0x0000a0c4
-_08114E74:
- subs r0, r4, 0x1
- lsls r0, 5
- adds r2, r3, r0
- adds r0, r5, 0
- adds r0, 0xC4
- adds r0, r2, r0
- ldrb r0, [r0]
- cmp r0, 0
- bne _08114EA6
- ldr r7, _08114EC4 @ =0x000008c4
- adds r0, r5, r7
- adds r0, r2, r0
- ldrb r0, [r0]
- cmp r0, 0
- bne _08114EA6
- adds r3, 0x1
- cmp r3, 0x1F
- bgt _08114EA6
- cmp r4, 0
- bne _08114E74
- lsls r0, r1, 24
- movs r1, 0x80
- lsls r1, 17
- adds r0, r1
- lsrs r1, r0, 24
-_08114EA6:
- cmp r3, 0x20
- bne _08114EB4
- lsls r0, r1, 24
- movs r2, 0x80
- lsls r2, 17
- adds r0, r2
- lsrs r1, r0, 24
-_08114EB4:
- movs r3, 0
- cmp r4, 0x3F
- bne _08114EC8
- lsls r0, r1, 24
- movs r7, 0x80
- lsls r7, 17
- adds r0, r7
- b _08114EF8
- .align 2, 0
-_08114EC4: .4byte 0x000008c4
-_08114EC8:
- adds r0, r4, 0x1
- lsls r0, 5
- adds r2, r3, r0
- adds r0, r5, 0
- adds r0, 0xC4
- adds r0, r2, r0
- ldrb r0, [r0]
- cmp r0, 0
- bne _08114EFA
- ldr r7, _08114F64 @ =0x000008c4
- adds r0, r5, r7
- adds r0, r2, r0
- ldrb r0, [r0]
- cmp r0, 0
- bne _08114EFA
- adds r3, 0x1
- cmp r3, 0x1F
- bgt _08114EFA
- cmp r4, 0x3F
- bne _08114EC8
- lsls r0, r1, 24
- movs r1, 0x80
- lsls r1, 17
- adds r0, r1
-_08114EF8:
- lsrs r1, r0, 24
-_08114EFA:
- cmp r3, 0x20
- bne _08114F08
- lsls r0, r1, 24
- movs r2, 0x80
- lsls r2, 17
- adds r0, r2
- lsrs r1, r0, 24
-_08114F08:
- cmp r1, 0x2
- beq _08114F5E
- subs r0, r6, 0x2
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r0, 0
- bge _08114F18
- movs r1, 0
-_08114F18:
- adds r0, r6, 0x2
- lsls r0, 24
- lsrs r2, r0, 24
- asrs r0, 24
- cmp r0, 0x3F
- ble _08114F26
- movs r2, 0x3F
-_08114F26:
- lsls r1, 24
- asrs r3, r1, 24
- lsls r0, r2, 24
- asrs r2, r0, 24
- adds r6, r1, 0
- adds r7, r0, 0
- cmp r3, r2
- bge _08114F7C
- cmp r4, 0
- beq _08114F7C
- subs r0, r4, 0x1
- lsls r5, r0, 7
- ldr r0, _08114F68 @ =0x020188c4
- mov r12, r0
-_08114F42:
- asrs r0, r3, 1
- lsls r0, 2
- adds r0, r5
- add r0, r12
- ldr r1, [r0]
- movs r0, 0x1
- ands r0, r3
- cmp r0, 0
- beq _08114F6C
- ldrb r1, [r1]
- movs r0, 0xF0
-_08114F58:
- ands r0, r1
- cmp r0, 0
- beq _08114F72
-_08114F5E:
- movs r0, 0x1
- b _08114FCA
- .align 2, 0
-_08114F64: .4byte 0x000008c4
-_08114F68: .4byte 0x020188c4
-_08114F6C:
- ldrb r1, [r1]
- movs r0, 0xF
- b _08114F58
-_08114F72:
- adds r3, 0x1
- cmp r3, r2
- bge _08114F7C
- cmp r4, 0
- bne _08114F42
-_08114F7C:
- asrs r3, r6, 24
- asrs r1, r7, 24
- cmp r3, r1
- bge _08114FC8
- cmp r4, 0x3F
- beq _08114FC8
- adds r0, r4, 0x1
- lsls r5, r0, 7
- ldr r6, _08114FB0 @ =0x020188c4
- adds r2, r1, 0
-_08114F90:
- asrs r0, r3, 1
- lsls r0, 2
- adds r0, r5
- adds r0, r6
- ldr r1, [r0]
- movs r0, 0x1
- ands r0, r3
- cmp r0, 0
- beq _08114FB4
- ldrb r1, [r1]
- movs r0, 0xF0
- ands r0, r1
- cmp r0, 0
- beq _08114FBE
- b _08114F5E
- .align 2, 0
-_08114FB0: .4byte 0x020188c4
-_08114FB4:
- ldrb r1, [r1]
- movs r0, 0xF
- ands r0, r1
- cmp r0, 0
- bne _08114F5E
-_08114FBE:
- adds r3, 0x1
- cmp r3, r2
- bge _08114FC8
- cmp r4, 0x3F
- bne _08114F90
-_08114FC8:
- movs r0, 0
-_08114FCA:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_8114E48
-
- thumb_func_start nullsub_73
-nullsub_73: @ 8114FD0
- bx lr
- thumb_func_end nullsub_73
-
- thumb_func_start sub_8114FD4
-sub_8114FD4: @ 8114FD4
- push {lr}
- ldr r1, _08115034 @ =REG_BG0CNT
- ldr r2, _08115038 @ =0x00009803
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x8
- ldr r0, _0811503C @ =gUnknown_030042A4
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x2
- ldr r0, _08115040 @ =gUnknown_030042A0
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x2
- ldr r0, _08115044 @ =gUnknown_030042C0
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x2
- ldr r0, _08115048 @ =gUnknown_030041B4
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x2
- ldr r0, _0811504C @ =gUnknown_03004288
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x2
- ldr r0, _08115050 @ =gUnknown_03004280
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x2
- ldr r0, _08115054 @ =gUnknown_030041B0
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x2
- ldr r0, _08115058 @ =gUnknown_030041B8
- ldrh r0, [r0]
- strh r0, [r1]
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- bl sub_8089668
- pop {r0}
- bx r0
- .align 2, 0
-_08115034: .4byte REG_BG0CNT
-_08115038: .4byte 0x00009803
-_0811503C: .4byte gUnknown_030042A4
-_08115040: .4byte gUnknown_030042A0
-_08115044: .4byte gUnknown_030042C0
-_08115048: .4byte gUnknown_030041B4
-_0811504C: .4byte gUnknown_03004288
-_08115050: .4byte gUnknown_03004280
-_08115054: .4byte gUnknown_030041B0
-_08115058: .4byte gUnknown_030041B8
- thumb_func_end sub_8114FD4
-
- thumb_func_start sub_811505C
-sub_811505C: @ 811505C
- push {lr}
- ldr r1, _081150B4 @ =REG_BG0HOFS
- ldr r0, _081150B8 @ =gUnknown_030042A4
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x2
- ldr r0, _081150BC @ =gUnknown_030042A0
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x2
- ldr r0, _081150C0 @ =gUnknown_030042C0
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x2
- ldr r0, _081150C4 @ =gUnknown_030041B4
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x2
- ldr r0, _081150C8 @ =gUnknown_03004288
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x2
- ldr r0, _081150CC @ =gUnknown_03004280
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x2
- ldr r0, _081150D0 @ =gUnknown_030041B0
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x2
- ldr r0, _081150D4 @ =gUnknown_030041B8
- ldrh r0, [r0]
- strh r0, [r1]
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- bl sub_8089668
- pop {r0}
- bx r0
- .align 2, 0
-_081150B4: .4byte REG_BG0HOFS
-_081150B8: .4byte gUnknown_030042A4
-_081150BC: .4byte gUnknown_030042A0
-_081150C0: .4byte gUnknown_030042C0
-_081150C4: .4byte gUnknown_030041B4
-_081150C8: .4byte gUnknown_03004288
-_081150CC: .4byte gUnknown_03004280
-_081150D0: .4byte gUnknown_030041B0
-_081150D4: .4byte gUnknown_030041B8
- thumb_func_end sub_811505C
-
- thumb_func_start sub_81150D8
-sub_81150D8: @ 81150D8
- push {lr}
- ldr r0, _081150F4 @ =gUnknown_02024D1E
- ldrb r1, [r0, 0x1]
- lsls r1, 28
- movs r0, 0x90
- lsls r0, 23
- adds r1, r0
- lsrs r1, 24
- movs r0, 0xC8
- bl sub_814A880
- pop {r0}
- bx r0
- .align 2, 0
-_081150F4: .4byte gUnknown_02024D1E
- thumb_func_end sub_81150D8
-
- thumb_func_start nullsub_24
-nullsub_24: @ 81150F8
- bx lr
- thumb_func_end nullsub_24
-
- thumb_func_start sub_81150FC
-sub_81150FC: @ 81150FC
- push {lr}
- bl RunTasks
- bl AnimateSprites
- bl BuildOamBuffer
- ldr r0, _08115120 @ =0x02019000
- adds r1, r0, 0
- adds r1, 0xB8
- ldrb r0, [r1]
- cmp r0, 0
- beq _0811511C
- adds r0, r1, 0
- bl task_tutorial_controls_fadein
-_0811511C:
- pop {r0}
- bx r0
- .align 2, 0
-_08115120: .4byte 0x02019000
- thumb_func_end sub_81150FC
-
- thumb_func_start sub_8115124
-sub_8115124: @ 8115124
- push {r4,lr}
- sub sp, 0x4
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- bl sub_8117434
- ldr r2, _08115188 @ =REG_BG1HOFS
- ldr r3, _0811518C @ =0x02019000
- ldrh r1, [r3, 0x26]
- movs r4, 0x80
- lsls r4, 2
- adds r0, r4, 0
- subs r0, r1
- strh r0, [r2]
- ldrb r0, [r3, 0x1]
- cmp r0, 0
- beq _08115154
- ldr r1, _08115190 @ =REG_BLDALPHA
- ldrh r0, [r3, 0x34]
- strh r0, [r1]
-_08115154:
- movs r1, 0x2A
- ldrsh r0, [r3, r1]
- cmp r0, 0
- beq _08115170
- ldr r1, _08115194 @ =0x040000d4
- ldr r0, _08115198 @ =gBG1TilemapBuffer + 0x1C0
- str r0, [r1]
- ldr r0, _0811519C @ =0x060021c0
- str r0, [r1, 0x4]
- ldr r0, _081151A0 @ =0x800001a0
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- movs r0, 0
- strh r0, [r3, 0x2A]
-_08115170:
- movs r2, 0x28
- ldrsh r0, [r3, r2]
- cmp r0, 0x1
- beq _081151A4
- cmp r0, 0x1
- ble _0811521A
- cmp r0, 0x2
- beq _081151D4
- cmp r0, 0xFF
- beq _081151F8
- b _0811521A
- .align 2, 0
-_08115188: .4byte REG_BG1HOFS
-_0811518C: .4byte 0x02019000
-_08115190: .4byte REG_BLDALPHA
-_08115194: .4byte 0x040000d4
-_08115198: .4byte gBG1TilemapBuffer + 0x1C0
-_0811519C: .4byte 0x060021c0
-_081151A0: .4byte 0x800001a0
-_081151A4:
- ldr r1, _081151C4 @ =REG_BG0CNT
- movs r4, 0xF8
- lsls r4, 5
- adds r0, r4, 0
- strh r0, [r1]
- adds r1, 0xCC
- ldr r0, _081151C8 @ =gBG2TilemapBuffer + 0x1C0
- str r0, [r1]
- ldr r0, _081151CC @ =0x0600f9c0
- str r0, [r1, 0x4]
- ldr r0, _081151D0 @ =0x800001a0
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- movs r0, 0x2
- b _08115218
- .align 2, 0
-_081151C4: .4byte REG_BG0CNT
-_081151C8: .4byte gBG2TilemapBuffer + 0x1C0
-_081151CC: .4byte 0x0600f9c0
-_081151D0: .4byte 0x800001a0
-_081151D4:
- ldr r1, _081151E8 @ =0x040000d4
- ldr r0, _081151EC @ =gBG2TilemapBuffer + 0x1C0
- str r0, [r1]
- ldr r0, _081151F0 @ =0x0600f9c0
- str r0, [r1, 0x4]
- ldr r0, _081151F4 @ =0x800001a0
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- b _0811521A
- .align 2, 0
-_081151E8: .4byte 0x040000d4
-_081151EC: .4byte gBG2TilemapBuffer + 0x1C0
-_081151F0: .4byte 0x0600f9c0
-_081151F4: .4byte 0x800001a0
-_081151F8:
- ldr r1, _08115224 @ =REG_BG0CNT
- ldr r2, _08115228 @ =0x00001f08
- adds r0, r2, 0
- strh r0, [r1]
- mov r1, sp
- movs r0, 0
- strh r0, [r1]
- ldr r1, _0811522C @ =0x040000d4
- mov r4, sp
- str r4, [r1]
- ldr r0, _08115230 @ =0x0600f9c0
- str r0, [r1, 0x4]
- ldr r0, _08115234 @ =0x810001a0
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- movs r0, 0
-_08115218:
- strh r0, [r3, 0x28]
-_0811521A:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08115224: .4byte REG_BG0CNT
-_08115228: .4byte 0x00001f08
-_0811522C: .4byte 0x040000d4
-_08115230: .4byte 0x0600f9c0
-_08115234: .4byte 0x810001a0
- thumb_func_end sub_8115124
-
- thumb_func_start sub_8115238
-sub_8115238: @ 8115238
- push {r4-r6,lr}
- sub sp, 0x8
- ldr r1, _081152C0 @ =gUnknown_083F8EC4
- mov r0, sp
- movs r2, 0x6
- bl memcpy
- ldr r5, _081152C4 @ =0x02019000
- movs r2, 0xBE
- lsls r2, 1
- adds r0, r5, 0
- movs r1, 0
- bl memset
- ldr r0, _081152C8 @ =gUnknown_0202E8CC
- ldrh r2, [r0]
- movs r0, 0x1
- ands r0, r2
- ldrb r1, [r5, 0x4]
- movs r3, 0x4
- negs r3, r3
- ands r3, r1
- orrs r3, r0
- strb r3, [r5, 0x4]
- movs r0, 0x80
- ands r0, r2
- cmp r0, 0
- beq _08115276
- movs r0, 0x80
- orrs r3, r0
- strb r3, [r5, 0x4]
-_08115276:
- ldr r3, _081152CC @ =gUnknown_083F8DF4
- ldrb r2, [r5, 0x4]
- lsls r1, r2, 30
- lsrs r0, r1, 25
- adds r0, r3
- ldrb r0, [r0, 0x3]
- adds r4, r5, 0
- adds r4, 0x22
- strb r0, [r4]
- lsrs r0, r1, 25
- adds r0, r3
- ldrb r0, [r0, 0x4]
- adds r3, r5, 0
- adds r3, 0x23
- strb r0, [r3]
- ldr r0, _081152D0 @ =gUnknown_083F8DF0
- lsrs r1, 30
- lsls r2, 24
- lsrs r2, 31
- lsls r2, 1
- adds r1, r2
- adds r1, r0
- ldrb r2, [r1]
- strb r2, [r5, 0x19]
- ldrb r1, [r5, 0x1A]
- movs r0, 0xF
- ands r0, r1
- movs r1, 0x10
- orrs r0, r1
- strb r0, [r5, 0x1A]
- cmp r2, 0x1
- bne _081152DC
- ldr r4, _081152D4 @ =gPlttBufferUnfaded
- ldr r3, _081152D8 @ =gPlttBufferFaded
- mov r0, sp
- ldrh r2, [r0]
- b _081152E4
- .align 2, 0
-_081152C0: .4byte gUnknown_083F8EC4
-_081152C4: .4byte 0x02019000
-_081152C8: .4byte gUnknown_0202E8CC
-_081152CC: .4byte gUnknown_083F8DF4
-_081152D0: .4byte gUnknown_083F8DF0
-_081152D4: .4byte gPlttBufferUnfaded
-_081152D8: .4byte gPlttBufferFaded
-_081152DC:
- ldr r4, _08115348 @ =gPlttBufferUnfaded
- ldr r3, _0811534C @ =gPlttBufferFaded
- mov r0, sp
- ldrh r2, [r0, 0x2]
-_081152E4:
- adds r0, r3, 0
- adds r0, 0xA2
- strh r2, [r0]
- ldr r1, _08115350 @ =0x0000ffff
- adds r0, r1, 0
- ands r0, r2
- strh r0, [r3]
- ands r0, r1
- adds r2, r4, 0
- adds r2, 0xA2
- strh r0, [r2]
- ands r0, r1
- strh r0, [r4]
- ldr r0, _08115354 @ =0x020190b8
- bl sub_8124918
- movs r4, 0
- ldr r5, _08115358 @ =gUnknown_083F8E34
-_08115308:
- lsls r2, r4, 3
- adds r2, r5
- ldr r0, _08115354 @ =0x020190b8
- adds r1, r4, 0
- bl sub_812492C
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0xC
- bls _08115308
- movs r4, 0
- ldr r5, _0811535C @ =0x02019000
-_08115322:
- movs r0, 0x64
- muls r0, r4
- ldr r1, _08115360 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x41
- bl GetMonData
- adds r1, r0, 0
- movs r0, 0x98
- lsls r0, 1
- cmp r1, r0
- beq _08115364
- adds r0, 0x2
- cmp r1, r0
- bne _0811536C
- ldrb r0, [r5, 0x2]
- movs r1, 0x1
- b _08115368
- .align 2, 0
-_08115348: .4byte gPlttBufferUnfaded
-_0811534C: .4byte gPlttBufferFaded
-_08115350: .4byte 0x0000ffff
-_08115354: .4byte 0x020190b8
-_08115358: .4byte gUnknown_083F8E34
-_0811535C: .4byte 0x02019000
-_08115360: .4byte gPlayerParty
-_08115364:
- ldrb r0, [r5, 0x2]
- movs r1, 0x2
-_08115368:
- orrs r0, r1
- strb r0, [r5, 0x2]
-_0811536C:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x5
- bls _08115322
- bl RtcCalcLocalTime
- add sp, 0x8
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_8115238
-
- thumb_func_start sub_8115384
-sub_8115384: @ 8115384
- push {r4,lr}
- sub sp, 0x4
- ldr r1, _081153A4 @ =gMain
- ldr r2, _081153A8 @ =0x0000043c
- adds r0, r1, r2
- ldrb r0, [r0]
- adds r2, r1, 0
- cmp r0, 0x7
- bls _08115398
- b _081155FE
-_08115398:
- lsls r0, 2
- ldr r1, _081153AC @ =_081153B0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_081153A4: .4byte gMain
-_081153A8: .4byte 0x0000043c
-_081153AC: .4byte _081153B0
- .align 2, 0
-_081153B0:
- .4byte _081153D0
- .4byte _08115444
- .4byte _08115460
- .4byte _08115494
- .4byte _081154CC
- .4byte _081154FC
- .4byte _0811556C
- .4byte _0811558C
-_081153D0:
- movs r0, 0
- bl SetVBlankCallback
- bl remove_some_task
- bl sub_80F9438
- bl sub_80F9368
- ldr r1, _08115420 @ =REG_BG2CNT
- ldr r3, _08115424 @ =0x00004686
- adds r0, r3, 0
- strh r0, [r1]
- subs r1, 0x2
- ldr r2, _08115428 @ =0x00004401
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x46
- movs r3, 0x90
- lsls r3, 6
- adds r0, r3, 0
- strh r0, [r1]
- adds r1, 0x2
- ldr r2, _0811542C @ =0x0000060a
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, _08115430 @ =gUnknown_08E8096C
- movs r1, 0xC0
- lsls r1, 19
- bl LZ77UnCompVram
- ldr r0, _08115434 @ =gUnknown_08E81098
- ldr r1, _08115438 @ =0x06004000
- bl LZ77UnCompVram
- ldr r1, _0811543C @ =gMain
- ldr r3, _08115440 @ =0x0000043c
- adds r1, r3
- b _0811557A
- .align 2, 0
-_08115420: .4byte REG_BG2CNT
-_08115424: .4byte 0x00004686
-_08115428: .4byte 0x00004401
-_0811542C: .4byte 0x0000060a
-_08115430: .4byte gUnknown_08E8096C
-_08115434: .4byte gUnknown_08E81098
-_08115438: .4byte 0x06004000
-_0811543C: .4byte gMain
-_08115440: .4byte 0x0000043c
-_08115444:
- bl ResetPaletteFade
- bl ResetSpriteData
- bl ResetTasks
- ldr r1, _08115458 @ =gMain
- ldr r0, _0811545C @ =0x0000043c
- adds r1, r0
- b _0811557A
- .align 2, 0
-_08115458: .4byte gMain
-_0811545C: .4byte 0x0000043c
-_08115460:
- ldr r0, _08115480 @ =gWindowConfig_81E6C3C
- bl SetUpWindowConfig
- ldr r0, _08115484 @ =gWindowConfig_81E6CE4
- bl InitMenuWindow
- ldr r0, _08115488 @ =gUnknown_083F86BC
- movs r2, 0xE0
- lsls r2, 1
- movs r1, 0
- bl LoadPalette
- ldr r1, _0811548C @ =gMain
- ldr r2, _08115490 @ =0x0000043c
- adds r1, r2
- b _0811557A
- .align 2, 0
-_08115480: .4byte gWindowConfig_81E6C3C
-_08115484: .4byte gWindowConfig_81E6CE4
-_08115488: .4byte gUnknown_083F86BC
-_0811548C: .4byte gMain
-_08115490: .4byte 0x0000043c
-_08115494:
- bl sub_8115238
- bl sub_80F9020
- ldr r0, _081154B4 @ =gUnknown_083F88BC
- ldr r1, _081154B8 @ =0x02018800
- bl LZ77UnCompWram
- ldr r0, _081154BC @ =gUnknown_083F8A60
- ldr r1, _081154C0 @ =0x06003000
- bl LZ77UnCompVram
- ldr r1, _081154C4 @ =gMain
- ldr r3, _081154C8 @ =0x0000043c
- adds r1, r3
- b _0811557A
- .align 2, 0
-_081154B4: .4byte gUnknown_083F88BC
-_081154B8: .4byte 0x02018800
-_081154BC: .4byte gUnknown_083F8A60
-_081154C0: .4byte 0x06003000
-_081154C4: .4byte gMain
-_081154C8: .4byte 0x0000043c
-_081154CC:
- movs r0, 0
- bl sub_8117838
- bl sub_811857C
- bl sub_81184D8
- bl sub_8117F2C
- bl sub_8117900
- bl sub_8117BBC
- bl sub_8117DF4
- ldr r1, _081154F4 @ =gMain
- ldr r0, _081154F8 @ =0x0000043c
- adds r1, r0
- b _0811557A
- .align 2, 0
-_081154F4: .4byte gMain
-_081154F8: .4byte 0x0000043c
-_081154FC:
- bl AnimateSprites
- bl BuildOamBuffer
- ldr r0, _08115550 @ =gSaveBlock1
- ldr r1, _08115554 @ =0x00000494
- adds r0, r1
- ldrh r0, [r0]
- bl sub_81180F4
- movs r0, 0x6
- bl sub_81182F8
- movs r0, 0
- bl sub_811829C
- movs r0, 0
- bl sub_8117158
- movs r0, 0
- movs r1, 0xE
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuDrawTextWindow
- ldr r0, _08115558 @ =gUnknown_081C4157
- movs r1, 0x1
- movs r2, 0xF
- bl MenuPrint
- ldr r1, _0811555C @ =gSpriteCoordOffsetX
- movs r2, 0x3C
- negs r2, r2
- adds r0, r2, 0
- strh r0, [r1]
- ldr r1, _08115560 @ =gSpriteCoordOffsetY
- movs r0, 0
- strh r0, [r1]
- ldr r1, _08115564 @ =gMain
- ldr r3, _08115568 @ =0x0000043c
- adds r1, r3
- b _0811557A
- .align 2, 0
-_08115550: .4byte gSaveBlock1
-_08115554: .4byte 0x00000494
-_08115558: .4byte gUnknown_081C4157
-_0811555C: .4byte gSpriteCoordOffsetX
-_08115560: .4byte gSpriteCoordOffsetY
-_08115564: .4byte gMain
-_08115568: .4byte 0x0000043c
-_0811556C:
- movs r1, 0x80
- lsls r1, 19
- ldr r3, _08115584 @ =0x00001741
- adds r0, r3, 0
- strh r0, [r1]
- ldr r0, _08115588 @ =0x0000043c
- adds r1, r2, r0
-_0811557A:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _081155FE
- .align 2, 0
-_08115584: .4byte 0x00001741
-_08115588: .4byte 0x0000043c
-_0811558C:
- ldr r3, _08115608 @ =0x04000208
- ldrh r2, [r3]
- movs r0, 0
- strh r0, [r3]
- ldr r4, _0811560C @ =0x04000200
- ldrh r0, [r4]
- movs r1, 0x1
- orrs r0, r1
- strh r0, [r4]
- strh r2, [r3]
- ldr r2, _08115610 @ =REG_DISPSTAT
- ldrh r0, [r2]
- movs r1, 0x8
- orrs r0, r1
- strh r0, [r2]
- ldr r0, _08115614 @ =sub_8115124
- bl SetVBlankCallback
- movs r0, 0x1
- str r0, [sp]
- movs r0, 0xFF
- movs r1, 0
- movs r2, 0x10
- movs r3, 0
- bl BeginHardwarePaletteFade
- ldr r0, _08115618 @ =sub_81156BC
- movs r1, 0
- bl CreateTask
- ldr r4, _0811561C @ =0x02019000
- adds r1, r4, 0
- adds r1, 0xA4
- strb r0, [r1]
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08115620 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r0, 0x6
- strh r0, [r1, 0x14]
- ldr r0, _08115624 @ =gSaveBlock1
- ldr r2, _08115628 @ =0x00000494
- adds r0, r2
- ldrh r0, [r0]
- strh r0, [r1, 0x22]
- ldr r0, _0811562C @ =sub_8115634
- movs r1, 0x1
- bl CreateTask
- adds r4, 0xA5
- strb r0, [r4]
- ldr r0, _08115630 @ =sub_81150FC
- bl SetMainCallback2
-_081155FE:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08115608: .4byte 0x04000208
-_0811560C: .4byte 0x04000200
-_08115610: .4byte REG_DISPSTAT
-_08115614: .4byte sub_8115124
-_08115618: .4byte sub_81156BC
-_0811561C: .4byte 0x02019000
-_08115620: .4byte gTasks
-_08115624: .4byte gSaveBlock1
-_08115628: .4byte 0x00000494
-_0811562C: .4byte sub_8115634
-_08115630: .4byte sub_81150FC
- thumb_func_end sub_8115384
-
- thumb_func_start sub_8115634
-sub_8115634: @ 8115634
- push {r4-r6,lr}
- ldr r0, _081156B8 @ =0x02019000
- adds r3, r0, 0
- adds r3, 0x21
- ldrb r1, [r3]
- adds r2, r1, 0x1
- strb r2, [r3]
- adds r2, r0, 0
- adds r2, 0x23
- lsls r1, 24
- lsrs r1, 24
- adds r6, r0, 0
- ldrb r2, [r2]
- cmp r1, r2
- bne _08115674
- movs r0, 0
- strb r0, [r3]
- adds r2, r6, 0
- adds r2, 0x22
- ldrb r1, [r2]
- ldrh r0, [r6, 0x24]
- subs r0, r1
- strh r0, [r6, 0x24]
- lsls r0, 16
- cmp r0, 0
- bge _08115674
- ldrb r1, [r2]
- movs r2, 0xB4
- lsls r2, 1
- adds r0, r2, 0
- subs r0, r1
- strh r0, [r6, 0x24]
-_08115674:
- adds r4, r6, 0
- ldrh r0, [r4, 0x24]
- bl Sin2
- lsls r0, 16
- lsrs r5, r0, 16
- ldrh r0, [r4, 0x24]
- bl Cos2
- lsls r0, 16
- lsrs r1, r0, 16
- lsls r0, r5, 16
- asrs r0, 16
- cmp r0, 0
- bge _08115694
- adds r0, 0xF
-_08115694:
- lsls r0, 12
- lsrs r5, r0, 16
- lsls r0, r1, 16
- asrs r0, 16
- cmp r0, 0
- bge _081156A2
- adds r0, 0xF
-_081156A2:
- asrs r0, 4
- strh r0, [r6, 0x32]
- strh r0, [r6, 0x2C]
- strh r5, [r6, 0x2E]
- lsls r0, r5, 16
- asrs r0, 16
- negs r0, r0
- strh r0, [r6, 0x30]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_081156B8: .4byte 0x02019000
- thumb_func_end sub_8115634
-
- thumb_func_start sub_81156BC
-sub_81156BC: @ 81156BC
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl UpdatePaletteFade
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0
- bne _08115716
- ldr r2, _0811571C @ =REG_BLDCNT
- ldrh r0, [r2]
- movs r5, 0x90
- lsls r5, 6
- adds r1, r5, 0
- orrs r0, r1
- strh r0, [r2]
- ldr r1, _08115720 @ =REG_BLDALPHA
- ldr r2, _08115724 @ =0x00000808
- adds r0, r2, 0
- strh r0, [r1]
- ldr r1, _08115728 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- strh r3, [r0, 0x14]
- adds r0, r4, 0
- bl sub_8116CAC
- bl sub_8116CF8
- bl sub_81185E8
- movs r0, 0
- bl sub_8117158
- movs r0, 0x6
- bl sub_81182F8
- ldr r1, _0811572C @ =sub_81159BC
- ldr r2, _08115730 @ =0x0000ffff
- adds r0, r4, 0
- movs r3, 0x3
- bl sub_8116C34
-_08115716:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0811571C: .4byte REG_BLDCNT
-_08115720: .4byte REG_BLDALPHA
-_08115724: .4byte 0x00000808
-_08115728: .4byte gTasks
-_0811572C: .4byte sub_81159BC
-_08115730: .4byte 0x0000ffff
- thumb_func_end sub_81156BC
-
- thumb_func_start sub_8115734
-sub_8115734: @ 8115734
- 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 r0, _08115770 @ =0x00002d9e
- bl sub_814AAF8
- movs r0, 0
- movs r1, 0xE
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuDrawTextWindow
- ldr r0, _08115774 @ =gUnknown_081C41E3
- movs r1, 0x1
- movs r2, 0xF
- bl MenuPrint
- ldr r1, _08115778 @ =gUnknown_083F8EBC
- adds r0, r4, 0
- bl sub_80F914C
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08115770: .4byte 0x00002d9e
-_08115774: .4byte gUnknown_081C41E3
-_08115778: .4byte gUnknown_083F8EBC
- thumb_func_end sub_8115734
-
- thumb_func_start sub_811577C
-sub_811577C: @ 811577C
- 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, _081157A4 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _081157A8 @ =sub_81159BC
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081157A4: .4byte gTasks
-_081157A8: .4byte sub_81159BC
- thumb_func_end sub_811577C
-
- thumb_func_start sub_81157AC
-sub_81157AC: @ 81157AC
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _081157CC @ =0x02019000
- adds r0, 0xA5
- ldrb r0, [r0]
- bl DestroyTask
- adds r0, r4, 0
- bl sub_8116AB0
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081157CC: .4byte 0x02019000
- thumb_func_end sub_81157AC
-
- thumb_func_start sub_81157D0
-sub_81157D0: @ 81157D0
- push {r4-r7,lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0xF
- bhi _081158C8
- lsls r0, r4, 2
- ldr r1, _081157E8 @ =_081157EC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_081157E8: .4byte _081157EC
- .align 2, 0
-_081157EC:
- .4byte _0811582C
- .4byte _08115848
- .4byte _08115848
- .4byte _08115848
- .4byte _08115848
- .4byte _08115884
- .4byte _081158C8
- .4byte _081158C8
- .4byte _081158C8
- .4byte _081158C8
- .4byte _08115884
- .4byte _081158C8
- .4byte _081158C8
- .4byte _081158C8
- .4byte _081158C8
- .4byte _08115884
-_0811582C:
- ldr r0, _08115844 @ =gBG2TilemapBuffer
- movs r1, 0x10
- str r1, [sp]
- movs r1, 0xD
- str r1, [sp, 0x4]
- movs r1, 0
- movs r2, 0xE
- movs r3, 0x7
- bl sub_8124DDC
- b _08115918
- .align 2, 0
-_08115844: .4byte gBG2TilemapBuffer
-_08115848:
- lsls r0, r4, 1
- adds r0, r4
- adds r0, 0xE
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r5, _0811587C @ =gBG2TilemapBuffer
- movs r0, 0x10
- str r0, [sp]
- movs r4, 0xD
- str r4, [sp, 0x4]
- adds r0, r5, 0
- movs r1, 0
- movs r2, 0xE
- movs r3, 0x7
- bl sub_8124DDC
- ldr r1, _08115880 @ =0x02018a32
- movs r0, 0x3
- str r0, [sp]
- str r4, [sp, 0x4]
- adds r0, r5, 0
- adds r2, r7, 0
- movs r3, 0x7
- bl sub_8124E2C
- b _08115918
- .align 2, 0
-_0811587C: .4byte gBG2TilemapBuffer
-_08115880: .4byte 0x02018a32
-_08115884:
- subs r0, r4, 0x1
- movs r1, 0x5
- bl __divsi3
- lsls r1, r0, 1
- adds r1, r0
- adds r1, 0xA
- lsls r1, 24
- lsrs r6, r1, 24
- ldr r5, _081158C0 @ =gBG2TilemapBuffer
- movs r4, 0x10
- str r4, [sp]
- movs r0, 0xD
- str r0, [sp, 0x4]
- adds r0, r5, 0
- movs r1, 0
- movs r2, 0xE
- movs r3, 0x7
- bl sub_8124DDC
- ldr r1, _081158C4 @ =0x02018a80
- str r4, [sp]
- movs r0, 0x3
- str r0, [sp, 0x4]
- adds r0, r5, 0
- movs r2, 0xE
- adds r3, r6, 0
- bl sub_8124E2C
- b _08115918
- .align 2, 0
-_081158C0: .4byte gBG2TilemapBuffer
-_081158C4: .4byte 0x02018a80
-_081158C8:
- adds r0, r4, 0
- movs r1, 0x5
- bl __umodsi3
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 1
- adds r1, r0
- adds r1, 0xE
- lsls r1, 24
- lsrs r7, r1, 24
- subs r0, r4, 0x1
- movs r1, 0x5
- bl __divsi3
- lsls r1, r0, 1
- adds r1, r0
- adds r1, 0x7
- lsls r1, 24
- lsrs r6, r1, 24
- ldr r4, _08115920 @ =gBG2TilemapBuffer
- movs r0, 0x10
- str r0, [sp]
- movs r0, 0xD
- str r0, [sp, 0x4]
- adds r0, r4, 0
- movs r1, 0
- movs r2, 0xE
- movs r3, 0x7
- bl sub_8124DDC
- ldr r1, _08115924 @ =0x02018a20
- movs r0, 0x3
- str r0, [sp]
- str r0, [sp, 0x4]
- adds r0, r4, 0
- adds r2, r7, 0
- adds r3, r6, 0
- bl sub_8124E2C
-_08115918:
- add sp, 0x8
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08115920: .4byte gBG2TilemapBuffer
-_08115924: .4byte 0x02018a20
- thumb_func_end sub_81157D0
-
- thumb_func_start sub_8115928
-sub_8115928: @ 8115928
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r1, 24
- cmp r1, 0
- bne _0811594C
- ldr r1, _08115948 @ =gTasks
- lsls r4, r5, 2
- adds r0, r4, r5
- lsls r0, 3
- adds r0, r1
- ldrb r0, [r0, 0x10]
- bl sub_811829C
- b _08115960
- .align 2, 0
-_08115948: .4byte gTasks
-_0811594C:
- ldr r0, _08115974 @ =0x02019000
- ldrb r1, [r0, 0x1A]
- lsls r1, 28
- lsrs r1, 28
- adds r0, 0x1B
- adds r1, r0
- ldrb r0, [r1]
- bl sub_811829C
- lsls r4, r5, 2
-_08115960:
- ldr r0, _08115978 @ =gTasks
- adds r1, r4, r5
- lsls r1, 3
- adds r1, r0
- ldrb r0, [r1, 0x10]
- bl sub_81157D0
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08115974: .4byte 0x02019000
-_08115978: .4byte gTasks
- thumb_func_end sub_8115928
-
- thumb_func_start sub_811597C
-sub_811597C: @ 811597C
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r5, _081159B0 @ =0x02019000
- movs r6, 0
- movs r1, 0x1
- strh r1, [r5, 0x28]
- ldr r1, _081159B4 @ =gTasks
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- adds r4, r1
- ldrb r0, [r4, 0x10]
- bl sub_81157D0
- adds r1, r5, 0
- adds r1, 0x23
- movs r0, 0x2
- strb r0, [r1]
- adds r5, 0x21
- strb r6, [r5]
- ldr r0, _081159B8 @ =sub_8115E14
- str r0, [r4]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_081159B0: .4byte 0x02019000
-_081159B4: .4byte gTasks
-_081159B8: .4byte sub_8115E14
- thumb_func_end sub_811597C
-
- thumb_func_start sub_81159BC
-sub_81159BC: @ 81159BC
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r3, _08115A10 @ =0x02019000
- ldr r1, [r3, 0x8]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _08115A1C
- movs r2, 0xB
- ldr r5, _08115A14 @ =gUnknown_083F8C00
- adds r0, r5, 0
- adds r0, 0xE4
- ldr r0, [r0]
- ands r1, r0
- ldr r0, _08115A18 @ =gTasks
- mov r12, r0
- lsls r7, r6, 2
- cmp r1, 0
- beq _08115A5A
- adds r4, r3, 0
- adds r3, r5, 0
- adds r3, 0x8
-_081159EA:
- lsls r0, r2, 16
- movs r1, 0x80
- lsls r1, 9
- adds r0, r1
- lsrs r2, r0, 16
- asrs r1, r0, 16
- cmp r1, 0xD
- bgt _08115A5A
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldr r1, [r4, 0x8]
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- bne _081159EA
- b _08115A5A
- .align 2, 0
-_08115A10: .4byte 0x02019000
-_08115A14: .4byte gUnknown_083F8C00
-_08115A18: .4byte gTasks
-_08115A1C:
- movs r2, 0x6
- ldr r5, _08115A88 @ =gUnknown_083F8C00
- adds r0, r5, 0
- adds r0, 0x80
- ldr r0, [r0]
- ands r1, r0
- ldr r0, _08115A8C @ =gTasks
- mov r12, r0
- lsls r7, r6, 2
- cmp r1, 0
- beq _08115A5A
- adds r4, r3, 0
- adds r3, r5, 0
- adds r3, 0x8
-_08115A38:
- lsls r0, r2, 16
- movs r1, 0x80
- lsls r1, 9
- adds r0, r1
- lsrs r2, r0, 16
- asrs r1, r0, 16
- cmp r1, 0x9
- bgt _08115A5A
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldr r1, [r4, 0x8]
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- bne _08115A38
-_08115A5A:
- adds r4, r7, r6
- lsls r4, 3
- add r4, r12
- movs r5, 0
- strh r2, [r4, 0x10]
- adds r0, r6, 0
- bl sub_8116CAC
- ldrb r0, [r4, 0x10]
- bl sub_8117158
- ldrb r0, [r4, 0x10]
- bl sub_811829C
- ldrb r0, [r4, 0x10]
- bl sub_8116EF8
- strh r5, [r4, 0xA]
- ldr r0, _08115A90 @ =sub_811597C
- str r0, [r4]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08115A88: .4byte gUnknown_083F8C00
-_08115A8C: .4byte gTasks
-_08115A90: .4byte sub_811597C
- thumb_func_end sub_81159BC
-
- thumb_func_start sub_8115A94
-sub_8115A94: @ 8115A94
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- adds r4, r0, 0
- lsls r1, 24
- lsrs r5, r1, 24
- movs r6, 0
- movs r7, 0
- ldr r1, _08115ADC @ =gUnknown_083F8ECA
- mov r0, sp
- movs r2, 0x4
- bl memcpy
- ldrb r0, [r4]
- mov r8, r0
- cmp r5, 0
- blt _08115B08
- cmp r5, 0x1
- bgt _08115AE0
- movs r1, 0
- ldrsh r0, [r4, r1]
- movs r1, 0x5
- bl __modsi3
- lsls r0, 24
- lsrs r6, r0, 24
- movs r2, 0xF0
- lsls r2, 20
- adds r1, r0, r2
- lsrs r7, r1, 24
- cmp r0, 0
- bne _08115B08
- movs r6, 0x5
- b _08115B08
- .align 2, 0
-_08115ADC: .4byte gUnknown_083F8ECA
-_08115AE0:
- cmp r5, 0x3
- bgt _08115B08
- movs r1, 0
- ldrsh r0, [r4, r1]
- movs r1, 0x5
- bl __divsi3
- lsls r0, 16
- asrs r0, 16
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 24
- lsrs r6, r1, 24
- movs r2, 0x80
- lsls r2, 19
- adds r0, r1, r2
- lsrs r7, r0, 24
- cmp r1, 0
- bne _08115B08
- movs r6, 0x1
-_08115B08:
- mov r1, sp
- adds r0, r1, r5
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- ldrh r2, [r4]
- adds r0, r2
- strh r0, [r4]
- lsls r1, r6, 24
- asrs r3, r1, 24
- lsls r0, 16
- asrs r0, 16
- lsls r2, r7, 24
- cmp r0, r3
- bge _08115B2A
- asrs r0, r2, 24
- strh r0, [r4]
-_08115B2A:
- movs r0, 0
- ldrsh r1, [r4, r0]
- asrs r0, r2, 24
- cmp r1, r0
- ble _08115B36
- strh r3, [r4]
-_08115B36:
- mov r1, r8
- lsls r0, r1, 24
- movs r2, 0
- ldrsh r1, [r4, r2]
- asrs r0, 24
- cmp r1, r0
- bne _08115B48
- movs r0, 0
- b _08115B4A
-_08115B48:
- movs r0, 0x1
-_08115B4A:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_8115A94
-
- thumb_func_start sub_8115B58
-sub_8115B58: @ 8115B58
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 24
- lsrs r7, r0, 24
- movs r0, 0
- mov r8, r0
- movs r5, 0
- ldr r4, _08115D30 @ =gMain
- ldrh r1, [r4, 0x2E]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08115B94
- movs r5, 0x1
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- ldr r1, _08115D34 @ =gTasks + 0x8
- adds r0, r1
- adds r0, 0x8
- movs r1, 0
- bl sub_8115A94
- lsls r0, 24
- cmp r0, 0
- bne _08115B94
- b _08115D20
-_08115B94:
- ldrh r1, [r4, 0x2E]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08115BBA
- movs r5, 0x1
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- ldr r1, _08115D34 @ =gTasks + 0x8
- adds r0, r1
- adds r0, 0x8
- movs r1, 0x1
- bl sub_8115A94
- lsls r0, 24
- cmp r0, 0
- bne _08115BBA
- b _08115D20
-_08115BBA:
- ldrh r1, [r4, 0x2E]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _08115BE0
- movs r5, 0x1
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- ldr r1, _08115D34 @ =gTasks + 0x8
- adds r0, r1
- adds r0, 0x8
- movs r1, 0x2
- bl sub_8115A94
- lsls r0, 24
- cmp r0, 0
- bne _08115BE0
- b _08115D20
-_08115BE0:
- ldrh r1, [r4, 0x2E]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _08115C06
- movs r5, 0x1
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- ldr r1, _08115D34 @ =gTasks + 0x8
- adds r0, r1
- adds r0, 0x8
- movs r1, 0x3
- bl sub_8115A94
- lsls r0, 24
- cmp r0, 0
- bne _08115C06
- b _08115D20
-_08115C06:
- cmp r5, 0
- bne _08115C0C
- b _08115D20
-_08115C0C:
- ldr r0, _08115D38 @ =gTasks
- lsls r6, r7, 2
- adds r4, r6, r7
- lsls r4, 3
- adds r4, r0
- ldrb r0, [r4, 0x10]
- bl sub_8117158
- adds r0, r7, 0
- movs r1, 0
- bl sub_8115928
- mov r1, r8
- strh r1, [r4, 0xA]
- movs r0, 0x5
- bl PlaySE
- ldr r5, _08115D3C @ =0x020190b8
- ldr r1, _08115D40 @ =0x0000ffff
- adds r0, r5, 0
- bl sub_8124D3C
- adds r3, r5, 0
- adds r3, 0xB8
- ldrb r2, [r3]
- movs r1, 0x7F
- adds r0, r1, 0
- ands r0, r2
- strb r0, [r3]
- subs r3, 0xC
- ldrb r2, [r3]
- adds r0, r1, 0
- ands r0, r2
- strb r0, [r3]
- adds r2, r5, 0
- adds r2, 0xA0
- ldrb r0, [r2]
- ands r1, r0
- strb r1, [r2]
- ldrb r0, [r4, 0x10]
- bl sub_8116EF8
- movs r4, 0
- mov r12, r6
- ldr r6, _08115D44 @ =gSprites
- movs r2, 0x7C
- negs r2, r2
- adds r2, r5
- mov r10, r2
- movs r0, 0x8
- adds r0, r6
- mov r8, r0
- ldr r1, _08115D48 @ =0xfffffc00
- mov r9, r1
- ldr r2, _08115D4C @ =0x000003ff
- adds r5, r2, 0
-_08115C7C:
- adds r0, r4, 0
- adds r0, 0x29
- add r0, r10
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r3, r0, r6
- adds r2, r3, 0
- adds r2, 0x40
- add r0, r8
- ldr r0, [r0]
- ldr r0, [r0]
- ldrh r1, [r0]
- ldrh r2, [r2]
- adds r1, r2
- ands r1, r5
- ldrh r2, [r3, 0x4]
- mov r0, r9
- ands r0, r2
- orrs r0, r1
- strh r0, [r3, 0x4]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x3
- bls _08115C7C
- ldr r0, _08115D38 @ =gTasks
- mov r2, r12
- adds r1, r2, r7
- lsls r1, 3
- adds r1, r0
- ldrh r3, [r1, 0x10]
- subs r0, r3, 0x1
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x3
- bhi _08115D20
- ldr r2, _08115D50 @ =gUnknown_083F8C00
- movs r0, 0x10
- ldrsh r1, [r1, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r2, 0x8
- adds r0, r2
- ldr r2, _08115D54 @ =0x02019000
- ldr r1, [r2, 0x8]
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- bne _08115D20
- subs r0, r3, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- adds r0, r2, 0
- add r0, r8
- adds r0, 0x65
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _08115D44 @ =gSprites
- adds r3, r0, r1
- adds r2, r3, 0
- adds r2, 0x40
- adds r1, 0x8
- adds r0, r1
- ldr r0, [r0]
- ldr r0, [r0]
- ldrh r1, [r0, 0x4]
- ldrh r2, [r2]
- adds r1, r2
- ldr r2, _08115D4C @ =0x000003ff
- adds r0, r2, 0
- ands r1, r0
- ldrh r2, [r3, 0x4]
- ldr r0, _08115D48 @ =0xfffffc00
- ands r0, r2
- orrs r0, r1
- strh r0, [r3, 0x4]
-_08115D20:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08115D30: .4byte gMain
-_08115D34: .4byte gTasks + 0x8
-_08115D38: .4byte gTasks
-_08115D3C: .4byte 0x020190b8
-_08115D40: .4byte 0x0000ffff
-_08115D44: .4byte gSprites
-_08115D48: .4byte 0xfffffc00
-_08115D4C: .4byte 0x000003ff
-_08115D50: .4byte gUnknown_083F8C00
-_08115D54: .4byte 0x02019000
- thumb_func_end sub_8115B58
-
- thumb_func_start sub_8115D58
-sub_8115D58: @ 8115D58
- push {lr}
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r1, _08115D70 @ =0x02019000
- movs r0, 0xFF
- strh r0, [r1, 0x28]
- ldrb r0, [r1, 0x19]
- cmp r0, 0x1
- bne _08115D74
- adds r2, r1, 0
- adds r2, 0x23
- b _08115D7A
- .align 2, 0
-_08115D70: .4byte 0x02019000
-_08115D74:
- adds r2, r1, 0
- adds r2, 0x23
- movs r0, 0
-_08115D7A:
- strb r0, [r2]
- adds r1, 0x21
- movs r0, 0
- strb r0, [r1]
- ldr r1, _08115D98 @ =gTasks
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- adds r0, r1
- movs r1, 0x20
- strh r1, [r0, 0xA]
- ldr r1, _08115D9C @ =sub_8115ECC
- str r1, [r0]
- pop {r0}
- bx r0
- .align 2, 0
-_08115D98: .4byte gTasks
-_08115D9C: .4byte sub_8115ECC
- thumb_func_end sub_8115D58
-
- thumb_func_start sub_8115DA0
-sub_8115DA0: @ 8115DA0
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r4, _08115E08 @ =0x02019000
- ldrb r2, [r4, 0x1A]
- lsls r2, 28
- lsrs r2, 28
- adds r5, r4, 0
- adds r5, 0x1B
- adds r2, r5
- ldr r3, _08115E0C @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r6, r1, r3
- ldrh r0, [r6, 0x10]
- strb r0, [r2]
- ldrb r0, [r4, 0x1A]
- lsls r0, 28
- lsrs r0, 28
- adds r0, r5
- ldrb r0, [r0]
- bl sub_8117380
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r6, 0xC]
- ldrb r0, [r4, 0x1A]
- lsls r0, 28
- lsrs r0, 28
- adds r0, r5
- ldrb r0, [r0]
- bl sub_811829C
- ldrb r1, [r4, 0x19]
- ldrh r0, [r6, 0x22]
- subs r0, r1
- strh r0, [r6, 0x22]
- lsls r0, 16
- cmp r0, 0
- bge _08115DF6
- movs r0, 0
- strh r0, [r6, 0x22]
-_08115DF6:
- ldrh r0, [r6, 0x22]
- bl sub_81180F4
- ldr r0, _08115E10 @ =sub_8115D58
- str r0, [r6]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08115E08: .4byte 0x02019000
-_08115E0C: .4byte gTasks
-_08115E10: .4byte sub_8115D58
- thumb_func_end sub_8115DA0
-
- thumb_func_start sub_8115E14
-sub_8115E14: @ 8115E14
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- adds r0, r5, 0
- bl sub_8115B58
- ldr r1, _08115E3C @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r1
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- cmp r0, 0x1E
- beq _08115E4A
- cmp r0, 0x1E
- bgt _08115E40
- cmp r0, 0
- beq _08115E46
- b _08115E5E
- .align 2, 0
-_08115E3C: .4byte gTasks
-_08115E40:
- cmp r0, 0x3B
- beq _08115E58
- b _08115E5E
-_08115E46:
- ldrb r0, [r4, 0x10]
- b _08115E4C
-_08115E4A:
- movs r0, 0
-_08115E4C:
- bl sub_81157D0
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- b _08115E6E
-_08115E58:
- movs r0, 0
- strh r0, [r4, 0xA]
- b _08115E6E
-_08115E5E:
- ldr r0, _08115EA8 @ =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0xA]
- adds r0, 0x1
- strh r0, [r1, 0xA]
-_08115E6E:
- ldr r0, _08115EAC @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08115EC2
- ldr r3, _08115EB0 @ =0x02019000
- ldr r2, _08115EB4 @ =gUnknown_083F8C00
- ldr r1, _08115EA8 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r1
- movs r0, 0x10
- ldrsh r1, [r4, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r2, 0x8
- adds r0, r2
- ldr r1, [r3, 0x8]
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- beq _08115EB8
- movs r0, 0x16
- bl PlaySE
- b _08115EC2
- .align 2, 0
-_08115EA8: .4byte gTasks
-_08115EAC: .4byte gMain
-_08115EB0: .4byte 0x02019000
-_08115EB4: .4byte gUnknown_083F8C00
-_08115EB8:
- movs r0, 0x5F
- bl m4aSongNumStart
- ldr r0, _08115EC8 @ =sub_8115DA0
- str r0, [r4]
-_08115EC2:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08115EC8: .4byte sub_8115DA0
- thumb_func_end sub_8115E14
-
- thumb_func_start sub_8115ECC
-sub_8115ECC: @ 8115ECC
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08115F20 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r4, r1, r2
- ldrh r0, [r4, 0xA]
- subs r1, r0, 0x1
- strh r1, [r4, 0xA]
- lsls r0, 16
- cmp r0, 0
- ble _08115F34
- lsls r0, r1, 16
- asrs r0, 16
- cmp r0, 0x2
- ble _08115EF8
- ldr r1, _08115F24 @ =gSpriteCoordOffsetX
- ldrh r0, [r1]
- adds r0, 0x2
- strh r0, [r1]
-_08115EF8:
- ldr r1, _08115F28 @ =0x02019000
- ldrh r0, [r1, 0x26]
- adds r0, 0x4
- strh r0, [r1, 0x26]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x68
- bne _08115F4C
- ldr r2, _08115F2C @ =gSprites
- adds r0, r1, 0
- adds r0, 0x55
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r1, _08115F30 @ =SpriteCallbackDummy
- str r1, [r0]
- b _08115F4C
- .align 2, 0
-_08115F20: .4byte gTasks
-_08115F24: .4byte gSpriteCoordOffsetX
-_08115F28: .4byte 0x02019000
-_08115F2C: .4byte gSprites
-_08115F30: .4byte SpriteCallbackDummy
-_08115F34:
- movs r0, 0x1
- movs r1, 0xFF
- bl sub_8117AA8
- movs r0, 0x1
- movs r1, 0xFF
- bl sub_8117C60
- ldr r0, _08115F54 @ =sub_8116100
- str r0, [r4]
- movs r0, 0
- strh r0, [r4, 0xA]
-_08115F4C:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08115F54: .4byte sub_8116100
- thumb_func_end sub_8115ECC
-
- thumb_func_start sub_8115F58
-sub_8115F58: @ 8115F58
- push {r4,lr}
- lsls r0, 16
- lsrs r3, r0, 16
- lsls r1, 16
- lsrs r1, 16
- ldr r0, _08115F74 @ =0x02019000
- ldrb r2, [r0, 0x2]
- adds r4, r0, 0
- cmp r2, 0x2
- bgt _08115F78
- cmp r2, 0x1
- bge _08115F7E
- b _08116048
- .align 2, 0
-_08115F74: .4byte 0x02019000
-_08115F78:
- cmp r2, 0x3
- beq _08115FE0
- b _08116048
-_08115F7E:
- ldr r0, _08115FA8 @ =gLocalTime
- ldrb r0, [r0, 0x2]
- subs r0, 0x4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x5
- bhi _08115FB0
- cmp r3, 0xB
- bls _08115F98
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0811605E
-_08115F98:
- ldr r0, _08115FAC @ =gUnknown_083F8DF4
- ldrb r1, [r4, 0x4]
- lsls r1, 30
- lsrs r1, 25
- adds r1, r0
- ldrb r0, [r1, 0x2]
- lsrs r0, 1
- b _081160F4
- .align 2, 0
-_08115FA8: .4byte gLocalTime
-_08115FAC: .4byte gUnknown_083F8DF4
-_08115FB0:
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- bne _08115FCC
- ldr r0, _08115FC8 @ =gUnknown_083F8DF4
- ldrb r1, [r4, 0x4]
- lsls r1, 30
- lsrs r1, 25
- adds r1, r0
- ldrb r0, [r1, 0x2]
- lsrs r0, 1
- b _081160F4
- .align 2, 0
-_08115FC8: .4byte gUnknown_083F8DF4
-_08115FCC:
- ldr r0, _08115FDC @ =gUnknown_083F8DF4
- ldrb r1, [r4, 0x4]
- lsls r1, 30
- lsrs r1, 25
- adds r1, r0
- ldrb r0, [r1, 0x2]
- b _081160F4
- .align 2, 0
-_08115FDC: .4byte gUnknown_083F8DF4
-_08115FE0:
- ldr r0, _0811600C @ =gLocalTime
- ldrb r0, [r0, 0x2]
- subs r0, 0x4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x6
- bhi _08116014
- cmp r3, 0x5
- bls _08115FFA
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0811605E
-_08115FFA:
- ldr r0, _08116010 @ =gUnknown_083F8DF4
- ldrb r1, [r4, 0x4]
- lsls r1, 30
- lsrs r1, 25
- adds r1, r0
- ldrb r0, [r1, 0x2]
- lsrs r0, 1
- b _081160F4
- .align 2, 0
-_0811600C: .4byte gLocalTime
-_08116010: .4byte gUnknown_083F8DF4
-_08116014:
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08116034
- cmp r3, 0x6
- bls _08116034
- ldr r0, _08116030 @ =gUnknown_083F8DF4
- ldrb r1, [r4, 0x4]
- lsls r1, 30
- lsrs r1, 25
- adds r1, r0
- ldrb r0, [r1, 0x2]
- lsrs r0, 2
- b _081160F4
- .align 2, 0
-_08116030: .4byte gUnknown_083F8DF4
-_08116034:
- ldr r0, _08116044 @ =gUnknown_083F8DF4
- ldrb r1, [r4, 0x4]
- lsls r1, 30
- lsrs r1, 25
- adds r1, r0
- ldrb r0, [r1, 0x2]
- lsrs r0, 1
- b _081160F4
- .align 2, 0
-_08116044: .4byte gUnknown_083F8DF4
-_08116048:
- ldr r0, _08116064 @ =gLocalTime
- ldrb r0, [r0, 0x2]
- subs r0, 0x4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x5
- bhi _0811607C
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- bne _08116068
-_0811605E:
- movs r0, 0x1
- b _081160F4
- .align 2, 0
-_08116064: .4byte gLocalTime
-_08116068:
- ldr r0, _08116078 @ =gUnknown_083F8DF4
- ldrb r1, [r4, 0x4]
- lsls r1, 30
- lsrs r1, 25
- adds r1, r0
- ldrb r0, [r1, 0x2]
- lsrs r0, 1
- b _081160F4
- .align 2, 0
-_08116078: .4byte gUnknown_083F8DF4
-_0811607C:
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- bne _081160B0
- cmp r3, 0xC
- bls _0811609C
- ldr r0, _08116098 @ =gUnknown_083F8DF4
- ldrb r1, [r4, 0x4]
- lsls r1, 30
- lsrs r1, 25
- adds r1, r0
- ldrb r0, [r1, 0x2]
- lsrs r0, 1
- b _081160F4
- .align 2, 0
-_08116098: .4byte gUnknown_083F8DF4
-_0811609C:
- ldr r0, _081160AC @ =gUnknown_083F8DF4
- ldrb r1, [r4, 0x4]
- lsls r1, 30
- lsrs r1, 25
- adds r1, r0
- ldrb r0, [r1, 0x2]
- b _081160F4
- .align 2, 0
-_081160AC: .4byte gUnknown_083F8DF4
-_081160B0:
- movs r0, 0x80
- lsls r0, 8
- ands r0, r1
- cmp r0, 0
- beq _081160E4
- cmp r3, 0xC
- bls _081160D0
- ldr r0, _081160CC @ =gUnknown_083F8DF4
- ldrb r1, [r4, 0x4]
- lsls r1, 30
- lsrs r1, 25
- adds r1, r0
- ldrb r0, [r1, 0x2]
- b _081160F4
- .align 2, 0
-_081160CC: .4byte gUnknown_083F8DF4
-_081160D0:
- ldr r0, _081160E0 @ =gUnknown_083F8DF4
- ldrb r1, [r4, 0x4]
- lsls r1, 30
- lsrs r1, 25
- adds r1, r0
- ldrb r0, [r1, 0x1]
- b _081160F4
- .align 2, 0
-_081160E0: .4byte gUnknown_083F8DF4
-_081160E4:
- ldr r0, _081160FC @ =gUnknown_083F8DF4
- ldrb r1, [r4, 0x4]
- lsls r1, 30
- lsrs r1, 25
- adds r1, r0
- ldrb r0, [r1, 0x1]
- lsls r0, 25
- lsrs r0, 24
-_081160F4:
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_081160FC: .4byte gUnknown_083F8DF4
- thumb_func_end sub_8115F58
-
- thumb_func_start sub_8116100
-sub_8116100: @ 8116100
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- movs r4, 0
- ldr r1, _08116188 @ =gUnknown_083F8ECE
- mov r0, sp
- movs r2, 0x8
- bl memcpy
- bl Random
- lsls r0, 16
- lsrs r7, r0, 16
- adds r0, r7, 0
- movs r1, 0x64
- bl __umodsi3
- lsls r0, 16
- lsrs r6, r0, 16
- ldr r3, _0811618C @ =0x02019000
- ldr r1, _08116190 @ =gTasks
- mov r2, r9
- lsls r0, r2, 2
- add r0, r9
- lsls r0, 3
- adds r0, r1
- ldrh r2, [r0, 0x14]
- adds r1, r3, 0
- adds r1, 0x7C
- strb r2, [r1]
- adds r1, 0x3
- strb r4, [r1]
- subs r1, 0x1
- strb r4, [r1]
- subs r1, 0x1
- strb r4, [r1]
- ldrh r0, [r0, 0x18]
- adds r1, r7, 0
- bl sub_8115F58
- adds r4, r0, 0
- lsls r4, 24
- lsrs r1, r4, 24
- adds r0, r7, 0
- bl __modsi3
- lsrs r4, 25
- subs r0, r4
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _08116194 @ =gLocalTime
- ldrb r0, [r0, 0x2]
- lsls r0, 24
- asrs r0, 24
- movs r5, 0x1
- cmp r0, 0xC
- bgt _08116180
- movs r5, 0
-_08116180:
- cmp r6, 0x4F
- bhi _08116198
- lsls r0, r5, 25
- b _081161A2
- .align 2, 0
-_08116188: .4byte gUnknown_083F8ECE
-_0811618C: .4byte 0x02019000
-_08116190: .4byte gTasks
-_08116194: .4byte gLocalTime
-_08116198:
- lsls r1, r5, 24
- asrs r1, 24
- movs r0, 0x1
- subs r0, r1
- lsls r0, 25
-_081161A2:
- lsrs r5, r0, 24
- ldr r6, _081162D8 @ =0x02019000
- ldrb r0, [r6, 0x4]
- lsls r0, 30
- mov r10, r0
- lsrs r0, 25
- ldr r1, _081162DC @ =gUnknown_083F8DF4
- adds r0, r1
- lsls r4, 24
- asrs r4, 24
- ldrh r0, [r0, 0x1A]
- adds r4, r0
- adds r0, r6, 0
- adds r0, 0x80
- strh r4, [r0]
- lsls r4, 16
- asrs r4, 16
- adds r0, r4, 0
- bl __floatsisf
- cmp r4, 0
- bge _081161D4
- ldr r1, _081162E0 @ =0x47800000
- bl __addsf3
-_081161D4:
- ldr r1, _081162E4 @ =0x40a00000
- bl __divsf3
- bl __fixunssfsi
- lsls r0, 16
- lsrs r4, r0, 16
- lsls r0, r4, 1
- adds r0, r4
- mov r8, r0
- adds r0, r6, 0
- adds r0, 0x82
- mov r2, r8
- strh r2, [r0]
- adds r0, 0x2
- strh r4, [r0]
- adds r0, 0x2
- strh r4, [r0]
- movs r0, 0x1
- ands r0, r7
- lsls r1, r5, 24
- asrs r1, 24
- adds r0, r1
- lsls r0, 1
- add r0, sp
- movs r1, 0
- ldrsh r4, [r0, r1]
- adds r0, r4, 0
- bl __floatsisf
- cmp r4, 0
- bge _0811621A
- ldr r1, _081162E0 @ =0x47800000
- bl __addsf3
-_0811621A:
- ldr r2, _081162E8 @ =0x02019088
- str r0, [r2]
- adds r7, r6, 0
- adds r7, 0x8C
- mov r1, r10
- lsrs r0, r1, 25
- ldr r2, _081162DC @ =gUnknown_083F8DF4
- adds r0, r2
- movs r1, 0x18
- ldrsh r4, [r0, r1]
- adds r0, r4, 0
- bl __floatsisf
- adds r5, r0, 0
- cmp r4, 0
- bge _08116242
- ldr r1, _081162E0 @ =0x47800000
- bl __addsf3
- adds r5, r0, 0
-_08116242:
- str r5, [r7]
- adds r7, r6, 0
- adds r7, 0x90
- ldr r1, _081162EC @ =0x3f000000
- adds r0, r5, 0
- bl __mulsf3
- adds r1, r5, 0
- bl __subsf3
- adds r5, r0, 0
- mov r2, r8
- lsls r0, r2, 16
- asrs r4, r0, 16
- adds r0, r4, 0
- bl __floatsisf
- adds r2, r0, 0
- cmp r4, 0
- bge _08116272
- ldr r1, _081162E0 @ =0x47800000
- bl __addsf3
- adds r2, r0, 0
-_08116272:
- adds r0, r5, 0
- adds r1, r2, 0
- bl __divsf3
- str r0, [r7]
- adds r1, r6, 0
- adds r1, 0x94
- ldr r0, _081162F0 @ =0x42880000
- str r0, [r1]
- adds r1, 0x8
- ldr r0, _081162F4 @ =0x00000000
- str r0, [r1]
- adds r5, r6, 0
- adds r5, 0x98
- adds r0, r4, 0
- bl __floatsisf
- adds r2, r0, 0
- cmp r4, 0
- bge _081162A2
- ldr r1, _081162E0 @ =0x47800000
- bl __addsf3
- adds r2, r0, 0
-_081162A2:
- ldr r0, _081162F8 @ =0x41000000
- adds r1, r2, 0
- bl __divsf3
- bl __negsf2
- str r0, [r5]
- adds r1, r6, 0
- adds r1, 0xA0
- ldr r0, _081162FC @ =0x42100000
- str r0, [r1]
- ldr r1, _08116300 @ =gTasks
- mov r2, r9
- lsls r0, r2, 2
- add r0, r9
- lsls r0, 3
- adds r0, r1
- ldr r1, _08116304 @ =sub_8116308
- str r1, [r0]
- 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
-_081162D8: .4byte 0x02019000
-_081162DC: .4byte gUnknown_083F8DF4
-_081162E0: .4byte 0x47800000
-_081162E4: .4byte 0x40a00000
-_081162E8: .4byte 0x02019088
-_081162EC: .4byte 0x3f000000
-_081162F0: .4byte 0x42880000
-_081162F4: .4byte 0x00000000
-_081162F8: .4byte 0x41000000
-_081162FC: .4byte 0x42100000
-_08116300: .4byte gTasks
-_08116304: .4byte sub_8116308
- thumb_func_end sub_8116100
-
- thumb_func_start sub_8116308
-sub_8116308: @ 8116308
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r3, _08116368 @ =0x02019000
- ldrb r1, [r3, 0x3]
- movs r2, 0x80
- orrs r1, r2
- strb r1, [r3, 0x3]
- adds r2, r3, 0
- adds r2, 0x7C
- adds r1, r3, 0
- adds r1, 0x3C
- ldrb r2, [r2]
- adds r1, r2
- ldrb r2, [r1]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- ldr r2, _0811636C @ =gSprites
- adds r1, r2
- str r1, [r3, 0x38]
- ldr r2, _08116370 @ =sub_81191F4
- str r2, [r1, 0x1C]
- ldr r1, _08116374 @ =gTasks
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- adds r4, r1
- ldrh r1, [r4, 0x14]
- adds r1, 0x1
- strh r1, [r4, 0x14]
- ldrh r0, [r4, 0x18]
- adds r0, 0x1
- strh r0, [r4, 0x18]
- movs r0, 0x6
- subs r0, r1
- lsls r0, 24
- lsrs r0, 24
- bl sub_81182F8
- movs r0, 0x5C
- bl m4aSongNumStart
- ldr r0, _08116378 @ =sub_811637C
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08116368: .4byte 0x02019000
-_0811636C: .4byte gSprites
-_08116370: .4byte sub_81191F4
-_08116374: .4byte gTasks
-_08116378: .4byte sub_811637C
- thumb_func_end sub_8116308
-
- thumb_func_start sub_811637C
-sub_811637C: @ 811637C
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r4, _081163B0 @ =0x02019000
- adds r0, r4, 0
- adds r0, 0x7D
- ldrb r0, [r0]
- cmp r0, 0
- beq _08116464
- ldrb r1, [r4, 0x3]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _081163B4
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08116464
- movs r0, 0x41
- negs r0, r0
- ands r0, r1
- movs r1, 0x21
- negs r1, r1
- ands r0, r1
- strb r0, [r4, 0x3]
- b _08116464
- .align 2, 0
-_081163B0: .4byte 0x02019000
-_081163B4:
- ldr r2, _08116428 @ =gTasks
- lsls r1, r5, 2
- adds r0, r1, r5
- lsls r0, 3
- adds r6, r0, r2
- movs r2, 0xA
- ldrsh r0, [r6, r2]
- adds r7, r1, 0
- cmp r0, 0
- bne _08116400
- adds r0, r4, 0
- adds r0, 0x7E
- ldrb r1, [r0]
- adds r0, r5, 0
- bl sub_8116D54
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r4, 0x1A]
- lsls r1, 28
- lsrs r1, 28
- adds r2, r4, 0
- adds r2, 0x1B
- adds r1, r2
- ldrb r1, [r1]
- bl sub_8116E5C
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r6, 0x12]
- cmp r0, 0x1
- bne _08116400
- adds r0, r4, 0
- adds r0, 0xB8
- movs r1, 0x80
- lsls r1, 5
- bl sub_8124CE8
-_08116400:
- ldr r0, _08116428 @ =gTasks
- adds r1, r7, r5
- lsls r1, 3
- adds r4, r1, r0
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- cmp r0, 0x3C
- bgt _08116430
- ldr r0, _0811642C @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08116420
- movs r0, 0x3C
- strh r0, [r4, 0xA]
-_08116420:
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- b _08116464
- .align 2, 0
-_08116428: .4byte gTasks
-_0811642C: .4byte gMain
-_08116430:
- ldr r1, _0811646C @ =0x02019000
- ldrb r0, [r1, 0x1A]
- lsls r0, 28
- lsrs r0, 28
- adds r1, 0x1B
- adds r0, r1
- ldrb r0, [r0]
- bl sub_8117158
- ldrh r1, [r4, 0x20]
- lsls r1, 24
- lsrs r1, 24
- movs r0, 0
- bl sub_8117AA8
- ldrb r1, [r4, 0x14]
- subs r1, 0x1
- lsls r1, 24
- lsrs r1, 24
- movs r0, 0
- bl sub_8117C60
- movs r0, 0x20
- strh r0, [r4, 0xA]
- ldr r0, _08116470 @ =sub_8116474
- str r0, [r4]
-_08116464:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0811646C: .4byte 0x02019000
-_08116470: .4byte sub_8116474
- thumb_func_end sub_811637C
-
- thumb_func_start sub_8116474
-sub_8116474: @ 8116474
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _081164C8 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r1
- ldrh r0, [r4, 0xA]
- subs r1, r0, 0x1
- strh r1, [r4, 0xA]
- lsls r0, 16
- cmp r0, 0
- ble _081164DC
- lsls r0, r1, 16
- asrs r0, 16
- cmp r0, 0x2
- ble _081164A0
- ldr r1, _081164CC @ =gSpriteCoordOffsetX
- ldrh r0, [r1]
- subs r0, 0x2
- strh r0, [r1]
-_081164A0:
- ldr r1, _081164D0 @ =0x02019000
- ldrh r0, [r1, 0x26]
- subs r0, 0x4
- strh r0, [r1, 0x26]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x68
- bne _08116504
- ldr r2, _081164D4 @ =gSprites
- adds r0, r1, 0
- adds r0, 0x55
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r1, _081164D8 @ =sub_81184CC
- str r1, [r0]
- b _08116504
- .align 2, 0
-_081164C8: .4byte gTasks
-_081164CC: .4byte gSpriteCoordOffsetX
-_081164D0: .4byte 0x02019000
-_081164D4: .4byte gSprites
-_081164D8: .4byte sub_81184CC
-_081164DC:
- ldrh r0, [r4, 0x20]
- lsls r0, 24
- lsrs r0, 24
- bl sub_8117D68
- movs r1, 0x12
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- bne _081164F2
- movs r0, 0x79
- b _081164F4
-_081164F2:
- movs r0, 0x3D
-_081164F4:
- strh r0, [r4, 0xA]
- ldr r0, _0811650C @ =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- ldr r0, _08116510 @ =sub_8116514
- str r0, [r1]
-_08116504:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0811650C: .4byte gTasks
-_08116510: .4byte sub_8116514
- thumb_func_end sub_8116474
-
- thumb_func_start sub_8116514
-sub_8116514: @ 8116514
- push {r4,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r1, _08116564 @ =gTasks
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r4, r0, r1
- ldrh r0, [r4, 0xA]
- subs r1, r0, 0x1
- strh r1, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _08116584
- movs r0, 0xA
- ldrsh r1, [r4, r0]
- adds r0, r1, 0
- cmp r1, 0
- bge _0811653E
- adds r0, 0xF
-_0811653E:
- asrs r0, 4
- lsls r0, 4
- subs r0, r1, r0
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0
- beq _08116568
- cmp r0, 0x8
- bne _08116590
- movs r0, 0
- movs r1, 0xFF
- bl sub_8117AA8
- movs r0, 0
- movs r1, 0xFF
- bl sub_8117C60
- b _08116590
- .align 2, 0
-_08116564: .4byte gTasks
-_08116568:
- ldrh r1, [r4, 0x20]
- lsls r1, 24
- lsrs r1, 24
- movs r0, 0
- bl sub_8117AA8
- ldrb r1, [r4, 0x14]
- subs r1, 0x1
- lsls r1, 24
- lsrs r1, 24
- movs r0, 0
- bl sub_8117C60
- b _08116590
-_08116584:
- ldr r1, _08116598 @ =sub_8116638
- adds r0, r2, 0
- movs r2, 0x1E
- movs r3, 0
- bl sub_8116C34
-_08116590:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08116598: .4byte sub_8116638
- thumb_func_end sub_8116514
-
- thumb_func_start sub_811659C
-sub_811659C: @ 811659C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _081165F4 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r1
- movs r1, 0x12
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _08116600
- cmp r0, 0
- blt _08116600
- cmp r0, 0x2
- bgt _08116600
- bl IsFanfareTaskInactive
- lsls r0, 24
- cmp r0, 0
- beq _08116624
- movs r0, 0x1D
- bl sub_8053108
- ldrh r1, [r4, 0x1E]
- adds r1, 0x1
- strh r1, [r4, 0x1E]
- lsls r1, 16
- asrs r1, 16
- cmp r0, r1
- bcs _081165E4
- movs r0, 0x1E
- ldrsh r1, [r4, r0]
- movs r0, 0x1D
- bl sav12_xor_set
-_081165E4:
- ldr r1, _081165F8 @ =sub_811677C
- ldr r2, _081165FC @ =0x0000ffff
- adds r0, r5, 0
- movs r3, 0x3
- bl sub_8116C34
- b _08116624
- .align 2, 0
-_081165F4: .4byte gTasks
-_081165F8: .4byte sub_811677C
-_081165FC: .4byte 0x0000ffff
-_08116600:
- bl IsSEPlaying
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0
- bne _08116624
- ldr r1, _0811662C @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- strh r2, [r0, 0x1E]
- ldr r1, _08116630 @ =sub_81167F4
- ldr r2, _08116634 @ =0x0000ffff
- adds r0, r5, 0
- movs r3, 0x3
- bl sub_8116C34
-_08116624:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0811662C: .4byte gTasks
-_08116630: .4byte sub_81167F4
-_08116634: .4byte 0x0000ffff
- thumb_func_end sub_811659C
-
- thumb_func_start sub_8116638
-sub_8116638: @ 8116638
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _08116678 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r2, 0x12
- ldrsh r1, [r0, r2]
- cmp r1, 0
- beq _081166A8
- cmp r1, 0
- blt _081166A8
- cmp r1, 0x2
- bgt _081166A8
- movs r1, 0xC
- ldrsh r0, [r0, r1]
- cmp r0, 0xC
- bne _08116684
- ldr r0, _0811667C @ =0x00000185
- bl PlayFanfare
- movs r0, 0
- movs r1, 0xE
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuDrawTextWindow
- ldr r0, _08116680 @ =gUnknown_081C41A5
- b _0811669A
- .align 2, 0
-_08116678: .4byte gTasks
-_0811667C: .4byte 0x00000185
-_08116680: .4byte gUnknown_081C41A5
-_08116684:
- movs r0, 0xC3
- lsls r0, 1
- bl PlayFanfare
- movs r0, 0
- movs r1, 0xE
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuDrawTextWindow
- ldr r0, _081166A4 @ =gUnknown_081C4199
-_0811669A:
- movs r1, 0x1
- movs r2, 0xF
- bl MenuPrint
- b _081166C4
- .align 2, 0
-_081166A4: .4byte gUnknown_081C4199
-_081166A8:
- movs r0, 0x20
- bl m4aSongNumStart
- movs r0, 0
- movs r1, 0xE
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuDrawTextWindow
- ldr r0, _081166DC @ =gUnknown_081C41AE
- movs r1, 0x1
- movs r2, 0xF
- bl MenuPrint
-_081166C4:
- ldr r1, _081166E0 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0xA]
- ldr r1, _081166E4 @ =sub_811659C
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081166DC: .4byte gUnknown_081C41AE
-_081166E0: .4byte gTasks
-_081166E4: .4byte sub_811659C
- thumb_func_end sub_8116638
-
- thumb_func_start sub_81166E8
-sub_81166E8: @ 81166E8
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r1, _0811670C @ =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r4, r0, r1
- movs r0, 0x16
- ldrsh r5, [r4, r0]
- cmp r5, 0
- beq _08116710
- cmp r5, 0x3
- beq _08116740
- ldrh r0, [r4, 0x16]
- adds r0, 0x1
- b _08116748
- .align 2, 0
-_0811670C: .4byte gTasks
-_08116710:
- ldrh r0, [r4, 0x22]
- adds r0, 0x1
- strh r0, [r4, 0x22]
- movs r0, 0x15
- bl m4aSongNumStart
- ldrh r0, [r4, 0x22]
- bl sub_81180F4
- movs r2, 0x22
- ldrsh r1, [r4, r2]
- ldr r0, _08116730 @ =0x0000270e
- cmp r1, r0
- ble _08116734
- strh r5, [r4, 0xA]
- b _0811674A
- .align 2, 0
-_08116730: .4byte 0x0000270e
-_08116734:
- ldrh r0, [r4, 0xA]
- subs r0, 0x1
- strh r0, [r4, 0xA]
- ldrh r0, [r4, 0x16]
- adds r0, 0x1
- b _08116748
-_08116740:
- movs r0, 0x15
- bl m4aSongNumStop
- movs r0, 0
-_08116748:
- strh r0, [r4, 0x16]
-_0811674A:
- ldr r0, _08116770 @ =gTasks
- lsls r1, r6, 2
- adds r1, r6
- lsls r1, 3
- adds r1, r0
- movs r2, 0xA
- ldrsh r0, [r1, r2]
- cmp r0, 0
- bne _08116768
- ldr r1, _08116774 @ =sub_81167F4
- ldr r2, _08116778 @ =0x0000ffff
- adds r0, r6, 0
- movs r3, 0x3
- bl sub_8116C34
-_08116768:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08116770: .4byte gTasks
-_08116774: .4byte sub_81167F4
-_08116778: .4byte 0x0000ffff
- thumb_func_end sub_81166E8
-
- thumb_func_start sub_811677C
-sub_811677C: @ 811677C
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r3, _081167DC @ =gStringVar1
- ldr r6, _081167E0 @ =0x02019000
- ldrb r2, [r6, 0x19]
- ldr r1, _081167E4 @ =gTasks
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- adds r4, r1
- movs r1, 0xC
- ldrsh r0, [r4, r1]
- adds r1, r2, 0
- muls r1, r0
- adds r0, r3, 0
- movs r2, 0
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- ldr r5, _081167E8 @ =gStringVar4
- ldr r1, _081167EC @ =gUnknown_081C41BD
- adds r0, r5, 0
- bl StringExpandPlaceholders
- movs r0, 0
- movs r1, 0xE
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuDrawTextWindow
- adds r0, r5, 0
- movs r1, 0x1
- movs r2, 0xF
- bl MenuPrint
- ldrb r1, [r6, 0x19]
- movs r2, 0xC
- ldrsh r0, [r4, r2]
- muls r0, r1
- movs r1, 0
- strh r0, [r4, 0xA]
- strh r1, [r4, 0x16]
- ldr r0, _081167F0 @ =sub_81166E8
- str r0, [r4]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_081167DC: .4byte gStringVar1
-_081167E0: .4byte 0x02019000
-_081167E4: .4byte gTasks
-_081167E8: .4byte gStringVar4
-_081167EC: .4byte gUnknown_081C41BD
-_081167F0: .4byte sub_81166E8
- thumb_func_end sub_811677C
-
- thumb_func_start sub_81167F4
-sub_81167F4: @ 81167F4
- push {r4-r6,lr}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldr r4, _08116868 @ =0x020190b8
- ldr r1, _0811686C @ =0x0000ffff
- adds r0, r4, 0
- bl sub_8124D3C
- adds r3, r4, 0
- adds r3, 0xB8
- ldrb r2, [r3]
- movs r1, 0x7F
- adds r0, r1, 0
- ands r0, r2
- strb r0, [r3]
- subs r3, 0xC
- ldrb r2, [r3]
- adds r0, r1, 0
- ands r0, r2
- strb r0, [r3]
- adds r2, r4, 0
- adds r2, 0xA0
- ldrb r0, [r2]
- ands r1, r0
- strb r1, [r2]
- ldr r6, _08116870 @ =gSprites
- ldr r2, _08116874 @ =gUnknown_083F8C00
- ldr r0, _08116878 @ =gTasks
- lsls r3, r5, 2
- adds r3, r5
- lsls r3, 3
- adds r3, r0
- movs r0, 0x20
- ldrsh r1, [r3, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0]
- adds r4, r0
- subs r4, 0x75
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
- ldr r0, _0811687C @ =sub_8116880
- str r0, [r3]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08116868: .4byte 0x020190b8
-_0811686C: .4byte 0x0000ffff
-_08116870: .4byte gSprites
-_08116874: .4byte gUnknown_083F8C00
-_08116878: .4byte gTasks
-_0811687C: .4byte sub_8116880
- thumb_func_end sub_81167F4
-
- thumb_func_start sub_8116880
-sub_8116880: @ 8116880
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 24
- lsrs r6, r0, 24
- movs r5, 0
- ldr r1, _08116954 @ =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r0, r1
- movs r2, 0
- strh r5, [r0, 0x10]
- ldr r4, _08116958 @ =0x02019000
- ldrb r0, [r4, 0x1A]
- lsls r0, 28
- lsrs r0, 28
- adds r1, r4, 0
- adds r1, 0x1B
- adds r0, r1
- strb r2, [r0]
- movs r0, 0
- bl sub_8117158
- ldr r3, _0811695C @ =gSprites
- adds r0, r4, 0
- adds r0, 0x6C
- ldrb r1, [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]
- adds r7, r3, 0
- movs r0, 0x3C
- adds r0, r4
- mov r10, r0
- movs r1, 0x8
- adds r1, r7
- mov r8, r1
- ldr r0, _08116960 @ =0xfffffc00
- mov r9, r0
- ldr r1, _08116964 @ =0x000003ff
- mov r12, r1
-_081168E4:
- adds r0, r5, 0
- adds r0, 0x29
- add r0, r10
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r3, r0, r7
- adds r2, r3, 0
- adds r2, 0x40
- add r0, r8
- ldr r0, [r0]
- ldr r0, [r0]
- ldrh r1, [r0]
- ldrh r2, [r2]
- adds r1, r2
- mov r0, r12
- ands r1, r0
- ldrh r2, [r3, 0x4]
- mov r0, r9
- ands r0, r2
- orrs r0, r1
- strh r0, [r3, 0x4]
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x3
- bls _081168E4
- ldr r0, _08116954 @ =gTasks
- lsls r1, r6, 2
- adds r1, r6
- lsls r1, 3
- adds r2, r1, r0
- movs r1, 0x22
- ldrsh r0, [r2, r1]
- ldrb r4, [r4, 0x19]
- cmp r0, r4
- blt _081169BC
- movs r1, 0x14
- ldrsh r0, [r2, r1]
- cmp r0, 0x6
- bne _08116970
- movs r0, 0
- movs r1, 0xE
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuDrawTextWindow
- ldr r0, _08116968 @ =gUnknown_081C41F1
- movs r1, 0x1
- movs r2, 0xF
- bl MenuPrint
- ldr r1, _0811696C @ =dp01t_12_3_battle_menu
- b _08116992
- .align 2, 0
-_08116954: .4byte gTasks
-_08116958: .4byte 0x02019000
-_0811695C: .4byte gSprites
-_08116960: .4byte 0xfffffc00
-_08116964: .4byte 0x000003ff
-_08116968: .4byte gUnknown_081C41F1
-_0811696C: .4byte dp01t_12_3_battle_menu
-_08116970:
- movs r0, 0x22
- ldrsh r1, [r2, r0]
- ldr r0, _081169A0 @ =0x0000270f
- cmp r1, r0
- bne _081169B0
- movs r0, 0
- movs r1, 0xE
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuDrawTextWindow
- ldr r0, _081169A4 @ =gUnknown_081C4231
- movs r1, 0x1
- movs r2, 0xF
- bl MenuPrint
- ldr r1, _081169A8 @ =sub_8115734
-_08116992:
- ldr r2, _081169AC @ =0x0000ffff
- adds r0, r6, 0
- movs r3, 0x3
- bl sub_8116C34
- b _081169DE
- .align 2, 0
-_081169A0: .4byte 0x0000270f
-_081169A4: .4byte gUnknown_081C4231
-_081169A8: .4byte sub_8115734
-_081169AC: .4byte 0x0000ffff
-_081169B0:
- ldr r0, _081169B8 @ =sub_8115734
- str r0, [r2]
- b _081169DE
- .align 2, 0
-_081169B8: .4byte sub_8115734
-_081169BC:
- movs r0, 0
- movs r1, 0xE
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuDrawTextWindow
- ldr r0, _081169EC @ =gUnknown_081C41D2
- movs r1, 0x1
- movs r2, 0xF
- bl MenuPrint
- ldr r1, _081169F0 @ =sub_81157AC
- adds r0, r6, 0
- movs r2, 0x3C
- movs r3, 0x3
- bl sub_8116C34
-_081169DE:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_081169EC: .4byte gUnknown_081C41D2
-_081169F0: .4byte sub_81157AC
- thumb_func_end sub_8116880
-
- thumb_func_start dp01t_12_3_battle_menu
-dp01t_12_3_battle_menu: @ 81169F4
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- movs r4, 0
- ldr r1, _08116A84 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- strh r4, [r0, 0x14]
- adds r0, r5, 0
- bl sub_8116CAC
- bl sub_8116CF8
- bl sub_81185E8
- movs r0, 0
- bl sub_8117158
- movs r0, 0x6
- bl sub_81182F8
- ldr r7, _08116A88 @ =gSprites
- ldr r3, _08116A8C @ =0x0201903c
- movs r6, 0x5
- negs r6, r6
-_08116A2A:
- adds r0, r4, 0x7
- adds r0, r3
- ldrb r0, [r0]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r7
- adds r1, 0x3E
- ldrb r2, [r1]
- adds r0, r6, 0
- ands r0, r2
- strb r0, [r1]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0xB
- bls _08116A2A
- ldr r1, _08116A84 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r2, r0, r1
- movs r0, 0x22
- ldrsh r1, [r2, r0]
- ldr r0, _08116A90 @ =0x0000270f
- cmp r1, r0
- bne _08116AA0
- movs r0, 0
- movs r1, 0xE
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuDrawTextWindow
- ldr r0, _08116A94 @ =gUnknown_081C4231
- movs r1, 0x1
- movs r2, 0xF
- bl MenuPrint
- ldr r1, _08116A98 @ =sub_8115734
- ldr r2, _08116A9C @ =0x0000ffff
- adds r0, r5, 0
- movs r3, 0x3
- bl sub_8116C34
- b _08116AA4
- .align 2, 0
-_08116A84: .4byte gTasks
-_08116A88: .4byte gSprites
-_08116A8C: .4byte 0x0201903c
-_08116A90: .4byte 0x0000270f
-_08116A94: .4byte gUnknown_081C4231
-_08116A98: .4byte sub_8115734
-_08116A9C: .4byte 0x0000ffff
-_08116AA0:
- ldr r0, _08116AAC @ =sub_8115734
- str r0, [r2]
-_08116AA4:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08116AAC: .4byte sub_8115734
- thumb_func_end dp01t_12_3_battle_menu
-
- thumb_func_start sub_8116AB0
-sub_8116AB0: @ 8116AB0
- push {r4,r5,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r4, _08116AF0 @ =0x020190b8
- ldr r1, _08116AF4 @ =0x0000ffff
- adds r0, r4, 0
- bl sub_8124D3C
- adds r0, r4, 0
- bl sub_8124918
- ldr r1, _08116AF8 @ =gSaveBlock1
- ldr r2, _08116AFC @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r2
- ldrh r0, [r0, 0x22]
- ldr r2, _08116B00 @ =0x00000494
- adds r1, r2
- strh r0, [r1]
- subs r4, 0xB8
- lsls r0, 16
- lsrs r0, 16
- ldrb r4, [r4, 0x19]
- cmp r0, r4
- bcs _08116B08
- ldr r1, _08116B04 @ =gUnknown_0202E8CC
- movs r0, 0x1
- b _08116B0C
- .align 2, 0
-_08116AF0: .4byte 0x020190b8
-_08116AF4: .4byte 0x0000ffff
-_08116AF8: .4byte gSaveBlock1
-_08116AFC: .4byte gTasks
-_08116B00: .4byte 0x00000494
-_08116B04: .4byte gUnknown_0202E8CC
-_08116B08:
- ldr r1, _08116B34 @ =gUnknown_0202E8CC
- movs r0, 0
-_08116B0C:
- strh r0, [r1]
- movs r0, 0
- str r0, [sp]
- movs r0, 0xFF
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginHardwarePaletteFade
- ldr r1, _08116B38 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, _08116B3C @ =sub_8116B40
- str r1, [r0]
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08116B34: .4byte gUnknown_0202E8CC
-_08116B38: .4byte gTasks
-_08116B3C: .4byte sub_8116B40
- thumb_func_end sub_8116AB0
-
- thumb_func_start sub_8116B40
-sub_8116B40: @ 8116B40
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- bl UpdatePaletteFade
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _08116B9E
- movs r0, 0
- bl SetVBlankCallback
- ldr r0, _08116BA4 @ =0x02019000
- movs r2, 0xBE
- lsls r2, 1
- movs r1, 0
- bl memset
- ldr r1, _08116BA8 @ =gSpriteCoordOffsetX
- ldr r0, _08116BAC @ =gSpriteCoordOffsetY
- strh r4, [r0]
- strh r4, [r1]
- bl sub_80F9368
- bl FreeAllSpritePalettes
- bl ResetPaletteFade
- bl ResetSpriteData
- bl sub_80F9020
- ldr r0, _08116BB0 @ =REG_BLDCNT
- strh r4, [r0]
- adds r0, 0x2
- strh r4, [r0]
- adds r0, 0x2
- strh r4, [r0]
- ldr r1, _08116BB4 @ =gUnknown_0300485C
- ldr r0, _08116BB8 @ =sub_8080990
- str r0, [r1]
- ldr r0, _08116BBC @ =c2_exit_to_overworld_2_switch
- bl SetMainCallback2
- adds r0, r5, 0
- bl DestroyTask
-_08116B9E:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08116BA4: .4byte 0x02019000
-_08116BA8: .4byte gSpriteCoordOffsetX
-_08116BAC: .4byte gSpriteCoordOffsetY
-_08116BB0: .4byte REG_BLDCNT
-_08116BB4: .4byte gUnknown_0300485C
-_08116BB8: .4byte sub_8080990
-_08116BBC: .4byte c2_exit_to_overworld_2_switch
- thumb_func_end sub_8116B40
-
- thumb_func_start sub_8116BC0
-sub_8116BC0: @ 8116BC0
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r0, _08116C24 @ =0x02019000
- adds r7, r0, 0
- adds r7, 0xA8
- ldrh r1, [r7]
- adds r6, r0, 0
- cmp r1, 0
- beq _08116BE4
- ldr r0, _08116C28 @ =gMain
- adds r2, r6, 0
- adds r2, 0xAA
- ldrh r1, [r0, 0x2E]
- ldrh r0, [r2]
- ands r0, r1
- cmp r0, 0
- beq _08116C0E
-_08116BE4:
- ldr r1, _08116C2C @ =gTasks
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- adds r0, r1
- adds r5, r6, 0
- adds r5, 0xAC
- ldr r1, [r5]
- str r1, [r0]
- adds r4, r6, 0
- adds r4, 0xAA
- ldrh r0, [r4]
- cmp r0, 0
- beq _08116C06
- movs r0, 0x5
- bl PlaySE
-_08116C06:
- movs r0, 0
- str r0, [r5]
- strh r0, [r4]
- strh r0, [r7]
-_08116C0E:
- adds r2, r6, 0
- adds r2, 0xA8
- ldrh r1, [r2]
- ldr r0, _08116C30 @ =0x0000ffff
- cmp r1, r0
- beq _08116C1E
- subs r0, r1, 0x1
- strh r0, [r2]
-_08116C1E:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08116C24: .4byte 0x02019000
-_08116C28: .4byte gMain
-_08116C2C: .4byte gTasks
-_08116C30: .4byte 0x0000ffff
- thumb_func_end sub_8116BC0
-
- thumb_func_start sub_8116C34
-sub_8116C34: @ 8116C34
- push {r4-r7,lr}
- adds r5, r1, 0
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r2, 16
- lsrs r4, r2, 16
- lsls r3, 16
- lsrs r3, 16
- ldr r0, _08116C84 @ =0x02019000
- mov r12, r0
- mov r2, r12
- adds r2, 0xB4
- ldr r1, _08116C88 @ =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r0, r1
- ldr r0, [r0]
- str r0, [r2]
- mov r2, r12
- adds r7, r1, 0
- cmp r5, 0
- bne _08116C64
- adds r5, r0, 0
-_08116C64:
- adds r0, r2, 0
- adds r0, 0xAC
- str r5, [r0]
- subs r0, 0x4
- strh r4, [r0]
- ldr r0, _08116C8C @ =0x0000ffff
- cmp r4, r0
- bne _08116C90
- cmp r3, 0
- bne _08116C90
- adds r1, r2, 0
- adds r1, 0xAA
- ldrh r0, [r1]
- orrs r4, r0
- strh r4, [r1]
- b _08116C96
- .align 2, 0
-_08116C84: .4byte 0x02019000
-_08116C88: .4byte gTasks
-_08116C8C: .4byte 0x0000ffff
-_08116C90:
- adds r0, r2, 0
- adds r0, 0xAA
- strh r3, [r0]
-_08116C96:
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r0, r7
- ldr r1, _08116CA8 @ =sub_8116BC0
- str r1, [r0]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08116CA8: .4byte sub_8116BC0
- thumb_func_end sub_8116C34
-
- thumb_func_start sub_8116CAC
-sub_8116CAC: @ 8116CAC
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- movs r2, 0
- ldr r0, _08116CF0 @ =0x02019000
- strb r2, [r0]
- movs r1, 0
- strb r1, [r0, 0x3]
- adds r3, r0, 0
- ldr r6, _08116CF4 @ =gTasks
- adds r4, r3, 0
- adds r4, 0x1B
-_08116CC4:
- adds r0, r2, r4
- strb r1, [r0]
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x5
- bls _08116CC4
- ldrb r1, [r3, 0x1A]
- movs r0, 0x10
- negs r0, r0
- ands r0, r1
- strb r0, [r3, 0x1A]
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r6
- movs r1, 0
- strh r1, [r0, 0xA]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08116CF0: .4byte 0x02019000
-_08116CF4: .4byte gTasks
- thumb_func_end sub_8116CAC
-
- thumb_func_start sub_8116CF8
-sub_8116CF8: @ 8116CF8
- push {lr}
- ldr r1, _08116D48 @ =0x02019000
- movs r0, 0
- str r0, [r1, 0x8]
- movs r2, 0
- adds r1, 0xC
- movs r3, 0
-_08116D06:
- adds r0, r2, r1
- strb r3, [r0]
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x5
- bls _08116D06
- movs r2, 0
- ldr r3, _08116D4C @ =0x02019012
- movs r1, 0
-_08116D1A:
- adds r0, r2, r3
- strb r1, [r0]
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x3
- bls _08116D1A
- movs r2, 0
- ldr r3, _08116D50 @ =0x02019016
- movs r1, 0
-_08116D2E:
- adds r0, r2, r3
- strb r1, [r0]
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x2
- bls _08116D2E
- movs r0, 0x1
- movs r1, 0xFF
- bl sub_8117C60
- pop {r0}
- bx r0
- .align 2, 0
-_08116D48: .4byte 0x02019000
-_08116D4C: .4byte 0x02019012
-_08116D50: .4byte 0x02019016
- thumb_func_end sub_8116CF8
-
- thumb_func_start sub_8116D54
-sub_8116D54: @ 8116D54
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x1C
- lsls r0, 24
- lsrs r3, r0, 24
- lsls r1, 24
- lsrs r5, r1, 24
- mov r1, sp
- ldr r0, _08116D88 @ =gUnknown_083F8ED8
- ldm r0!, {r2,r4,r6}
- stm r1!, {r2,r4,r6}
- ldr r0, [r0]
- str r0, [r1]
- add r2, sp, 0x10
- adds r1, r2, 0
- ldr r0, _08116D8C @ =gUnknown_083F8EE8
- ldm r0!, {r4,r6,r7}
- stm r1!, {r4,r6,r7}
- mov r9, r2
- cmp r5, 0xB
- bls _08116D90
- movs r0, 0
- b _08116E38
- .align 2, 0
-_08116D88: .4byte gUnknown_083F8ED8
-_08116D8C: .4byte gUnknown_083F8EE8
-_08116D90:
- ldr r6, _08116E48 @ =0x02019000
- ldr r1, _08116E4C @ =gTasks
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- adds r0, r1
- movs r7, 0x14
- ldrsh r2, [r0, r7]
- adds r2, r6, r2
- ldr r4, _08116E50 @ =gUnknown_083F8D90
- lsls r5, 3
- adds r3, r5, r4
- ldrb r1, [r3, 0x2]
- strb r1, [r2, 0xB]
- ldrb r1, [r3, 0x2]
- strh r1, [r0, 0x20]
- adds r0, r4, 0x4
- adds r0, r5, r0
- ldr r1, [r6, 0x8]
- ldr r0, [r0]
- orrs r1, r0
- str r1, [r6, 0x8]
- movs r3, 0
- mov r8, r4
- mov r12, r5
- adds r5, r0, 0
- adds r4, r6, 0
- adds r4, 0x12
-_08116DC8:
- lsls r0, r3, 2
- mov r1, sp
- adds r2, r1, r0
- ldr r0, [r2]
- ands r0, r5
- cmp r0, 0
- beq _08116DDE
- adds r1, r3, r4
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_08116DDE:
- adds r0, r3, r4
- ldrb r0, [r0]
- cmp r0, 0x2
- bls _08116DEE
- ldr r0, [r6, 0x8]
- ldr r1, [r2]
- orrs r0, r1
- str r0, [r6, 0x8]
-_08116DEE:
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x3
- bls _08116DC8
- movs r2, 0
- ldr r0, _08116E54 @ =gUnknown_083F8D94
- add r0, r12
- ldr r7, [r0]
- ldr r4, _08116E58 @ =0x02019016
- mov r5, r9
-_08116E04:
- lsls r0, r2, 2
- adds r3, r5, r0
- ldr r0, [r3]
- ands r0, r7
- cmp r0, 0
- beq _08116E18
- adds r1, r2, r4
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_08116E18:
- adds r0, r2, r4
- ldrb r0, [r0]
- cmp r0, 0x3
- bls _08116E28
- ldr r0, [r6, 0x8]
- ldr r1, [r3]
- orrs r0, r1
- str r0, [r6, 0x8]
-_08116E28:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x2
- bls _08116E04
- mov r0, r12
- add r0, r8
- ldrb r0, [r0, 0x2]
-_08116E38:
- add sp, 0x1C
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08116E48: .4byte 0x02019000
-_08116E4C: .4byte gTasks
-_08116E50: .4byte gUnknown_083F8D90
-_08116E54: .4byte gUnknown_083F8D94
-_08116E58: .4byte 0x02019016
- thumb_func_end sub_8116D54
-
- thumb_func_start sub_8116E5C
-sub_8116E5C: @ 8116E5C
- push {lr}
- lsls r0, 24
- lsls r1, 24
- lsrs r2, r1, 24
- lsrs r3, r0, 24
- movs r1, 0xFF
- lsls r1, 24
- adds r0, r1
- lsrs r0, 24
- cmp r0, 0x12
- bhi _08116EF0
- cmp r2, 0xF
- bhi _08116EEC
- lsls r0, r2, 2
- ldr r1, _08116E80 @ =_08116E84
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08116E80: .4byte _08116E84
- .align 2, 0
-_08116E84:
- .4byte _08116EC4
- .4byte _08116EC8
- .4byte _08116EC8
- .4byte _08116EC8
- .4byte _08116EC8
- .4byte _08116EDC
- .4byte _08116EEC
- .4byte _08116EEC
- .4byte _08116EEC
- .4byte _08116EEC
- .4byte _08116EDC
- .4byte _08116EEC
- .4byte _08116EEC
- .4byte _08116EEC
- .4byte _08116EEC
- .4byte _08116EDC
-_08116EC4:
- movs r0, 0x3
- b _08116EF2
-_08116EC8:
- adds r0, r2, 0x5
- cmp r3, r0
- beq _08116EE8
- adds r0, 0x5
- cmp r3, r0
- beq _08116EE8
- adds r0, 0x5
- cmp r3, r0
- bne _08116EF0
- b _08116EE8
-_08116EDC:
- adds r0, r2, 0x1
- cmp r3, r0
- blt _08116EF0
- adds r0, r2, 0x4
- cmp r3, r0
- bgt _08116EF0
-_08116EE8:
- movs r0, 0x1
- b _08116EF2
-_08116EEC:
- cmp r3, r2
- beq _08116EE8
-_08116EF0:
- movs r0, 0
-_08116EF2:
- pop {r1}
- bx r1
- thumb_func_end sub_8116E5C
-
- thumb_func_start sub_8116EF8
-sub_8116EF8: @ 8116EF8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x20
- lsls r0, 24
- lsrs r6, r0, 24
- movs r0, 0
- str r0, [sp, 0x18]
- cmp r6, 0xA
- beq _08116F1E
- cmp r6, 0xA
- bgt _08116F1A
- cmp r6, 0x5
- beq _08116F1E
- b _08116F7C
-_08116F1A:
- cmp r6, 0xF
- bne _08116F7C
-_08116F1E:
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r6, 0x5
- ldr r7, _08116F70 @ =0x020190b8
- cmp r4, r0
- bge _08116F5E
- adds r1, r7, 0
- subs r1, 0xB8
- ldr r3, _08116F74 @ =gUnknown_083F8C00
- ldr r5, [r1, 0x8]
- adds r6, r3, 0
- adds r6, 0x8
- adds r2, r0, 0
-_08116F3A:
- lsls r0, r4, 2
- adds r0, r4
- lsls r1, r0, 2
- adds r0, r1, r6
- ldr r0, [r0]
- ands r0, r5
- cmp r0, 0
- bne _08116F54
- adds r0, r1, r3
- ldrh r0, [r0, 0x10]
- ldr r1, [sp, 0x18]
- orrs r1, r0
- str r1, [sp, 0x18]
-_08116F54:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, r2
- blt _08116F3A
-_08116F5E:
- ldr r0, _08116F78 @ =0x0000dfff
- ldr r2, [sp, 0x18]
- ands r2, r0
- str r2, [sp, 0x18]
- adds r0, r7, 0
- adds r1, r2, 0
- bl sub_8124CE8
- b _0811713C
- .align 2, 0
-_08116F70: .4byte 0x020190b8
-_08116F74: .4byte gUnknown_083F8C00
-_08116F78: .4byte 0x0000dfff
-_08116F7C:
- mov r0, sp
- ldr r1, _08116FC8 @ =gUnknown_083F8E9C
- ldm r1!, {r2-r4}
- stm r0!, {r2-r4}
- ldm r1!, {r2-r4}
- stm r0!, {r2-r4}
- subs r0, r6, 0x1
- lsls r0, 24
- lsrs r0, 24
- movs r3, 0x1
- mov r10, r3
- cmp r0, 0x3
- bhi _08116F9A
- movs r4, 0x3
- mov r10, r4
-_08116F9A:
- adds r0, r6, 0
- movs r1, 0x5
- bl __udivsi3
- lsls r0, 24
- lsrs r0, 8
- ldr r1, _08116FCC @ =0xffff0000
- adds r0, r1
- lsrs r7, r0, 16
- adds r0, r6, 0
- movs r1, 0x5
- bl __umodsi3
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- beq _08116FF8
- cmp r0, 0x2
- bgt _08116FD4
- cmp r0, 0x1
- beq _08116FE4
- ldr r4, _08116FD0 @ =0x02019000
- b _0811703A
- .align 2, 0
-_08116FC8: .4byte gUnknown_083F8E9C
-_08116FCC: .4byte 0xffff0000
-_08116FD0: .4byte 0x02019000
-_08116FD4:
- cmp r0, 0x3
- beq _0811700C
- cmp r0, 0x4
- beq _08117020
- ldr r4, _08116FE0 @ =0x02019000
- b _0811703A
- .align 2, 0
-_08116FE0: .4byte 0x02019000
-_08116FE4:
- ldr r3, _08116FF0 @ =gSprites
- ldr r2, _08116FF4 @ =0x02019000
- adds r0, r2, 0
- adds r0, 0x43
- b _08117028
- .align 2, 0
-_08116FF0: .4byte gSprites
-_08116FF4: .4byte 0x02019000
-_08116FF8:
- ldr r3, _08117004 @ =gSprites
- ldr r2, _08117008 @ =0x02019000
- adds r0, r2, 0
- adds r0, 0x44
- b _08117028
- .align 2, 0
-_08117004: .4byte gSprites
-_08117008: .4byte 0x02019000
-_0811700C:
- ldr r3, _08117018 @ =gSprites
- ldr r2, _0811701C @ =0x02019000
- adds r0, r2, 0
- adds r0, 0x45
- b _08117028
- .align 2, 0
-_08117018: .4byte gSprites
-_0811701C: .4byte 0x02019000
-_08117020:
- ldr r3, _08117088 @ =gSprites
- ldr r2, _0811708C @ =0x02019000
- adds r0, r2, 0
- adds r0, 0x46
-_08117028:
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrb r0, [r0, 0x5]
- lsrs r0, 4
- lsls r7, r0, 4
- adds r4, r2, 0
-_0811703A:
- mov r2, r10
- cmp r2, 0x1
- bne _08117094
- ldr r1, _08117090 @ =gUnknown_083F8C00
- lsls r2, r6, 2
- adds r0, r2, r6
- lsls r0, 2
- adds r1, 0x8
- adds r0, r1
- ldr r1, [r4, 0x8]
- ldr r0, [r0]
- ands r1, r0
- str r2, [sp, 0x1C]
- cmp r1, 0
- bne _0811713C
- adds r0, r6, 0
- movs r1, 0x5
- bl __udivsi3
- lsls r0, 24
- lsrs r0, 24
- subs r1, r0, 0x1
- lsls r1, 3
- mov r3, sp
- adds r2, r3, r1
- ldrh r1, [r2, 0x2]
- adds r1, r7, r1
- strh r1, [r2, 0x2]
- adds r1, r4, 0
- adds r1, 0xB8
- lsls r0, 3
- subs r0, 0x8
- adds r2, r3, r0
- adds r0, r1, 0
- movs r1, 0xD
- bl sub_812492C
- b _08117122
- .align 2, 0
-_08117088: .4byte gSprites
-_0811708C: .4byte 0x02019000
-_08117090: .4byte gUnknown_083F8C00
-_08117094:
- movs r4, 0
- lsls r0, r6, 2
- str r0, [sp, 0x1C]
- ldr r1, _0811714C @ =0x02019000
- mov r8, r1
- ldr r2, _08117150 @ =gUnknown_083F8C00
- mov r9, r2
-_081170A2:
- lsls r0, r4, 2
- adds r0, r4
- adds r0, r6, r0
- adds r0, 0x5
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r5, r0, 2
- mov r0, r9
- adds r0, 0x8
- adds r0, r5, r0
- mov r3, r8
- ldr r1, [r3, 0x8]
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- bne _0811710E
- adds r0, r2, 0
- movs r1, 0x5
- bl __udivsi3
- lsls r0, 24
- lsrs r0, 24
- subs r1, r0, 0x1
- lsls r1, 3
- mov r3, sp
- adds r2, r3, r1
- ldrh r1, [r2, 0x2]
- adds r1, r7, r1
- strh r1, [r2, 0x2]
- adds r1, r4, 0
- adds r1, 0xD
- lsls r1, 24
- lsrs r1, 24
- lsls r0, 3
- subs r0, 0x8
- adds r2, r3, r0
- mov r0, r8
- adds r0, 0xB8
- bl sub_812492C
- mov r0, r10
- cmp r0, 0x3
- bne _08117104
- mov r1, r9
- adds r0, r5, r1
- ldrh r0, [r0, 0x10]
- str r0, [sp, 0x18]
-_08117104:
- mov r0, r10
- subs r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
-_0811710E:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x2
- bls _081170A2
- mov r2, r10
- cmp r2, 0x2
- beq _08117122
- movs r3, 0
- str r3, [sp, 0x18]
-_08117122:
- ldr r0, _08117154 @ =0x020190b8
- ldr r2, _08117150 @ =gUnknown_083F8C00
- ldr r4, [sp, 0x1C]
- adds r1, r4, r6
- lsls r1, 2
- adds r1, r2
- ldrh r1, [r1, 0x10]
- ldr r2, [sp, 0x18]
- orrs r2, r1
- str r2, [sp, 0x18]
- adds r1, r2, 0
- bl sub_8124CE8
-_0811713C:
- 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
-_0811714C: .4byte 0x02019000
-_08117150: .4byte gUnknown_083F8C00
-_08117154: .4byte 0x020190b8
- thumb_func_end sub_8116EF8
-
- thumb_func_start sub_8117158
-sub_8117158: @ 8117158
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x24
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r4, _0811719C @ =0x02019000
- movs r0, 0x1
- strh r0, [r4, 0x2A]
- movs r0, 0
- movs r1, 0
- bl sub_8117AA8
- ldr r0, _081171A0 @ =gBG1TilemapBuffer
- ldr r1, _081171A4 @ =0xfffff800
- adds r4, r1
- movs r1, 0x10
- str r1, [sp]
- movs r1, 0xD
- str r1, [sp, 0x4]
- adds r1, r4, 0
- movs r2, 0xE
- movs r3, 0x7
- bl sub_8124E2C
- cmp r5, 0xF
- bhi _08117250
- lsls r0, r5, 2
- ldr r1, _081171A8 @ =_081171AC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0811719C: .4byte 0x02019000
-_081171A0: .4byte gBG1TilemapBuffer
-_081171A4: .4byte 0xfffff800
-_081171A8: .4byte _081171AC
- .align 2, 0
-_081171AC:
- .4byte _08117360
- .4byte _081171EC
- .4byte _081171EC
- .4byte _081171EC
- .4byte _081171EC
- .4byte _08117220
- .4byte _08117250
- .4byte _08117250
- .4byte _08117250
- .4byte _08117250
- .4byte _08117220
- .4byte _08117250
- .4byte _08117250
- .4byte _08117250
- .4byte _08117250
- .4byte _08117220
-_081171EC:
- movs r0, 0x4
- str r0, [sp, 0x18]
- add r1, sp, 0x8
- movs r0, 0
- strb r0, [r1]
- adds r0, r1, 0
- ldrb r0, [r0]
- cmp r0, 0x3
- bhi _08117258
- add r4, sp, 0x10
- adds r3, r1, 0
-_08117202:
- ldrb r2, [r3]
- adds r2, r4
- ldrb r1, [r3]
- lsls r0, r1, 2
- adds r0, r1
- adds r0, r5, r0
- strb r0, [r2]
- ldrb r0, [r3]
- adds r0, 0x1
- strb r0, [r3]
- ldrb r0, [r3]
- ldr r1, [sp, 0x18]
- cmp r0, r1
- bcc _08117202
- b _08117258
-_08117220:
- movs r0, 0x5
- str r0, [sp, 0x18]
- add r1, sp, 0x8
- movs r0, 0
- strb r0, [r1]
- adds r0, r1, 0
- ldrb r0, [r0]
- cmp r0, 0x4
- bhi _08117258
- add r3, sp, 0x10
- adds r2, r1, 0
-_08117236:
- ldrb r1, [r2]
- adds r1, r3
- ldrb r0, [r2]
- adds r0, r5, r0
- strb r0, [r1]
- ldrb r0, [r2]
- adds r0, 0x1
- strb r0, [r2]
- ldrb r0, [r2]
- ldr r1, [sp, 0x18]
- cmp r0, r1
- bcc _08117236
- b _08117258
-_08117250:
- movs r0, 0x1
- str r0, [sp, 0x18]
- add r0, sp, 0x10
- strb r5, [r0]
-_08117258:
- add r1, sp, 0x8
- movs r0, 0
- strb r0, [r1]
- adds r0, r1, 0
- ldrb r0, [r0]
- ldr r1, [sp, 0x18]
- cmp r0, r1
- bcs _08117360
- mov r0, sp
- adds r0, 0xE
- str r0, [sp, 0x1C]
- add r1, sp, 0x10
- mov r9, r1
- add r0, sp, 0x8
- mov r12, r0
- mov r1, sp
- adds r1, 0xA
- str r1, [sp, 0x20]
-_0811727C:
- mov r1, r12
- ldrb r0, [r1]
- add r0, r9
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- ldr r1, _08117370 @ =gUnknown_083F8C00
- adds r0, r1
- ldrb r0, [r0, 0x6]
- ldr r1, [sp, 0x1C]
- strb r0, [r1]
- mov r1, r12
- ldrb r0, [r1]
- add r0, r9
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- ldr r1, _08117370 @ =gUnknown_083F8C00
- adds r0, r1
- ldrb r0, [r0, 0x3]
- ldr r1, [sp, 0x20]
- strh r0, [r1]
- mov r4, sp
- adds r4, 0x9
- movs r0, 0
- strb r0, [r4]
- ldrb r0, [r4]
- cmp r0, 0x2
- bhi _08117350
- add r5, sp, 0xC
- ldr r7, [sp, 0x20]
- ldr r0, _08117374 @ =gBG1TilemapBuffer
- mov r8, r0
- ldr r6, [sp, 0x1C]
- ldr r1, _08117378 @ =0x020189a0
- mov r10, r1
-_081172C8:
- mov r1, r12
- ldrb r0, [r1]
- add r0, r9
- ldrb r0, [r0]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 2
- ldr r0, _08117370 @ =gUnknown_083F8C00
- adds r1, r0
- adds r3, r4, 0
- ldrb r0, [r4]
- ldrb r1, [r1, 0x4]
- adds r0, r1
- lsls r0, 5
- strh r0, [r5]
- ldrh r0, [r7]
- ldrh r2, [r5]
- adds r2, r0
- lsls r2, 1
- add r2, r8
- ldrb r0, [r6]
- ldrb r1, [r4]
- adds r1, r0
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 1
- add r0, r10
- ldrh r0, [r0]
- strh r0, [r2]
- ldrh r0, [r7]
- ldrh r2, [r5]
- adds r2, r0
- adds r2, 0x1
- lsls r2, 1
- add r2, r8
- ldrb r0, [r6]
- ldrb r1, [r4]
- adds r1, r0
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 1
- mov r1, r10
- adds r1, 0x2
- adds r0, r1
- ldrh r0, [r0]
- strh r0, [r2]
- ldrh r0, [r7]
- ldrh r2, [r5]
- adds r2, r0
- adds r2, 0x2
- lsls r2, 1
- add r2, r8
- ldrb r0, [r6]
- ldrb r1, [r4]
- adds r1, r0
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 1
- ldr r1, _0811737C @ =0x020189a4
- adds r0, r1
- ldrh r0, [r0]
- strh r0, [r2]
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- ldrb r0, [r3]
- cmp r0, 0x2
- bls _081172C8
-_08117350:
- mov r1, r12
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- ldrb r0, [r1]
- ldr r1, [sp, 0x18]
- cmp r0, r1
- bcc _0811727C
-_08117360:
- 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
-_08117370: .4byte gUnknown_083F8C00
-_08117374: .4byte gBG1TilemapBuffer
-_08117378: .4byte 0x020189a0
-_0811737C: .4byte 0x020189a4
- thumb_func_end sub_8117158
-
- thumb_func_start sub_8117380
-sub_8117380: @ 8117380
- push {r4,lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _081173B8 @ =gUnknown_083F8EF4
- mov r0, sp
- movs r2, 0x5
- bl memcpy
- cmp r4, 0x13
- bls _08117398
- movs r4, 0
-_08117398:
- ldr r3, _081173BC @ =gUnknown_083F8C00
- lsls r0, r4, 2
- adds r0, r4
- lsls r2, r0, 2
- adds r0, r2, r3
- ldrb r0, [r0, 0x1]
- lsls r0, 28
- lsrs r0, 28
- cmp r0, 0x4
- beq _081173EC
- cmp r0, 0x4
- bgt _081173C0
- cmp r0, 0x3
- beq _081173C6
- b _08117428
- .align 2, 0
-_081173B8: .4byte gUnknown_083F8EF4
-_081173BC: .4byte gUnknown_083F8C00
-_081173C0:
- cmp r0, 0xC
- beq _0811740C
- b _08117428
-_081173C6:
- adds r0, r4, 0
- movs r1, 0x5
- bl __udivsi3
- subs r0, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _081173E8 @ =0x02019000
- adds r0, 0x16
- adds r1, r4, r0
- ldrb r0, [r1]
- cmp r0, 0x3
- bhi _08117428
- ldrb r0, [r1]
- adds r0, 0x1
- b _08117402
- .align 2, 0
-_081173E8: .4byte 0x02019000
-_081173EC:
- subs r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _08117408 @ =0x02019000
- adds r0, 0x12
- adds r1, r4, r0
- ldrb r0, [r1]
- cmp r0, 0x2
- bhi _08117428
- ldrb r0, [r1]
- adds r0, 0x2
-_08117402:
- add r0, sp
- ldrb r0, [r0]
- b _0811742A
- .align 2, 0
-_08117408: .4byte 0x02019000
-_0811740C:
- ldr r1, _08117424 @ =0x02019000
- adds r0, r3, 0
- adds r0, 0x8
- adds r0, r2, r0
- ldr r1, [r1, 0x8]
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- bne _08117428
- mov r0, sp
- ldrb r0, [r0, 0x4]
- b _0811742A
- .align 2, 0
-_08117424: .4byte 0x02019000
-_08117428:
- movs r0, 0
-_0811742A:
- add sp, 0x8
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8117380
-
- thumb_func_start sub_8117434
-sub_8117434: @ 8117434
- push {r4-r6,lr}
- ldr r1, _081174AC @ =REG_BG2PA
- ldr r4, _081174B0 @ =0x02019000
- ldrh r0, [r4, 0x2C]
- strh r0, [r1]
- adds r1, 0x2
- ldrh r0, [r4, 0x2E]
- strh r0, [r1]
- adds r1, 0x2
- ldrh r0, [r4, 0x30]
- strh r0, [r1]
- adds r1, 0x2
- ldrh r0, [r4, 0x32]
- strh r0, [r1]
- movs r0, 0x2E
- ldrsh r2, [r4, r0]
- ldr r0, _081174B4 @ =gSpriteCoordOffsetY
- movs r3, 0
- ldrsh r1, [r0, r3]
- adds r1, 0x50
- adds r0, r2, 0
- muls r0, r1
- movs r2, 0xE8
- lsls r2, 7
- subs r2, r0
- movs r6, 0x2C
- ldrsh r5, [r4, r6]
- ldr r0, _081174B8 @ =gSpriteCoordOffsetX
- movs r6, 0
- ldrsh r3, [r0, r6]
- adds r3, 0x74
- adds r0, r5, 0
- muls r0, r3
- subs r2, r0
- movs r5, 0x32
- ldrsh r0, [r4, r5]
- muls r0, r1
- movs r1, 0xA8
- lsls r1, 7
- subs r1, r0
- movs r6, 0x30
- ldrsh r0, [r4, r6]
- muls r0, r3
- subs r1, r0
- ldr r0, _081174BC @ =REG_BG2X_L
- strh r2, [r0]
- adds r0, 0x2
- ldr r3, _081174C0 @ =0x0fff0000
- ands r2, r3
- asrs r2, 16
- strh r2, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- ands r1, r3
- asrs r1, 16
- strh r1, [r0]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_081174AC: .4byte REG_BG2PA
-_081174B0: .4byte 0x02019000
-_081174B4: .4byte gSpriteCoordOffsetY
-_081174B8: .4byte gSpriteCoordOffsetX
-_081174BC: .4byte REG_BG2X_L
-_081174C0: .4byte 0x0fff0000
- thumb_func_end sub_8117434
-
- thumb_func_start sub_81174C4
-sub_81174C4: @ 81174C4
- push {lr}
- lsls r0, 16
- asrs r0, 16
- lsls r1, 16
- asrs r1, 16
- muls r0, r1
- adds r1, r0, 0
- cmp r0, 0
- bge _081174D8
- adds r1, 0xFF
-_081174D8:
- lsls r0, r1, 8
- asrs r0, 16
- pop {r1}
- bx r1
- thumb_func_end sub_81174C4
-
- thumb_func_start sub_81174E0
-sub_81174E0: @ 81174E0
- push {lr}
- adds r1, r0, 0
- movs r0, 0x80
- lsls r0, 9
- lsls r1, 16
- asrs r1, 16
- bl __divsi3
- lsls r0, 16
- asrs r0, 16
- pop {r1}
- bx r1
- thumb_func_end sub_81174E0
-
- thumb_func_start sub_81174F8
-sub_81174F8: @ 81174F8
- 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 r0, _08117520 @ =0x00002d9e
- bl sub_814AAF8
- ldr r1, _08117524 @ =gUnknown_083F8EB4
- adds r0, r4, 0
- bl sub_80F914C
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08117520: .4byte 0x00002d9e
-_08117524: .4byte gUnknown_083F8EB4
- thumb_func_end sub_81174F8
-
- thumb_func_start sub_8117528
-sub_8117528: @ 8117528
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _08117554 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0811754C
- movs r0, 0
- bl SetVBlankCallback
- ldr r0, _08117558 @ =sub_8115384
- bl SetMainCallback2
- adds r0, r4, 0
- bl DestroyTask
-_0811754C:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08117554: .4byte gPaletteFade
-_08117558: .4byte sub_8115384
- thumb_func_end sub_8117528
-
- thumb_func_start sub_811755C
-sub_811755C: @ 811755C
- push {r4,lr}
- sub sp, 0x4
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x14
- movs r1, 0x8
- movs r2, 0x1A
- movs r3, 0xD
- bl MenuZeroFillWindowRect
- bl MenuZeroFillScreen
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r2, _081175B4 @ =gPaletteFade
- ldrb r1, [r2, 0x8]
- lsls r1, 26
- lsrs r1, 26
- ldrb r3, [r2, 0x4]
- movs r0, 0x40
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2, 0x4]
- bl UpdatePaletteFade
- ldr r1, _081175B8 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _081175BC @ =sub_8117528
- str r1, [r0]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081175B4: .4byte gPaletteFade
-_081175B8: .4byte gTasks
-_081175BC: .4byte sub_8117528
- thumb_func_end sub_811755C
-
- thumb_func_start sub_81175C0
-sub_81175C0: @ 81175C0
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl MenuZeroFillScreen
- bl ScriptContext2_Disable
- adds r0, r4, 0
- bl DestroyTask
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_81175C0
-
- thumb_func_start sub_81175DC
-sub_81175DC: @ 81175DC
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r4, r0, 0
- ldr r1, _08117624 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldrh r1, [r0, 0x8]
- adds r2, r1, 0x1
- strh r2, [r0, 0x8]
- ldr r0, _08117628 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- bne _08117608
- lsls r0, r2, 16
- asrs r0, 16
- cmp r0, 0x3C
- ble _0811761C
-_08117608:
- ldr r1, _0811762C @ =gUnknown_0202E8CC
- movs r0, 0x1
- strh r0, [r1]
- bl MenuZeroFillScreen
- bl ScriptContext2_Disable
- adds r0, r4, 0
- bl DestroyTask
-_0811761C:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08117624: .4byte gTasks
-_08117628: .4byte gMain
-_0811762C: .4byte gUnknown_0202E8CC
- thumb_func_end sub_81175DC
-
- thumb_func_start sub_8117630
-sub_8117630: @ 8117630
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r2, _0811768C @ =gUnknown_083F8DF0
- ldr r0, _08117690 @ =gUnknown_0202E8CC
- ldrh r1, [r0]
- movs r0, 0x1
- ands r0, r1
- lsrs r1, 7
- lsls r1, 1
- adds r0, r1
- adds r0, r2
- ldrb r1, [r0]
- ldr r0, _08117694 @ =gStringVar1
- movs r2, 0x2
- movs r3, 0x1
- bl ConvertIntToDecimalStringN
- ldr r5, _08117698 @ =gStringVar4
- ldr r1, _0811769C @ =gUnknown_081C40DF
- adds r0, r5, 0
- bl StringExpandPlaceholders
- movs r0, 0
- movs r1, 0xE
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuDrawTextWindow
- adds r0, r5, 0
- movs r1, 0x1
- movs r2, 0xF
- bl MenuPrint
- ldr r1, _081176A0 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _081176A4 @ =sub_81174F8
- str r1, [r0]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0811768C: .4byte gUnknown_083F8DF0
-_08117690: .4byte gUnknown_0202E8CC
-_08117694: .4byte gStringVar1
-_08117698: .4byte gStringVar4
-_0811769C: .4byte gUnknown_081C40DF
-_081176A0: .4byte gTasks
-_081176A4: .4byte sub_81174F8
- thumb_func_end sub_8117630
-
- thumb_func_start Task_Roulette_0
-Task_Roulette_0: @ 81176A8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r0, _08117758 @ =gStringVar1
- mov r10, r0
- ldr r1, _0811775C @ =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r6, r0, r1
- movs r0, 0x22
- ldrsh r1, [r6, r0]
- mov r0, r10
- movs r2, 0x1
- movs r3, 0x4
- bl ConvertIntToDecimalStringN
- ldr r5, _08117760 @ =gStringVar4
- ldr r1, _08117764 @ =gOtherText_Coins
- adds r0, r5, 0
- bl StringExpandPlaceholders
- movs r0, 0
- movs r1, 0
- movs r2, 0x9
- movs r3, 0x3
- bl MenuDrawTextWindow
- adds r0, r5, 0
- movs r1, 0x9
- movs r2, 0x1
- bl MenuPrint_RightAligned
- ldr r2, _08117768 @ =gUnknown_083F8DF0
- ldr r1, _0811776C @ =gUnknown_0202E8CC
- mov r8, r1
- ldrh r1, [r1]
- movs r0, 0x1
- mov r9, r0
- ands r0, r1
- lsrs r1, 7
- lsls r1, 1
- adds r0, r1
- adds r0, r2
- ldrb r4, [r0]
- mov r0, r10
- adds r1, r4, 0
- movs r2, 0x2
- movs r3, 0x1
- bl ConvertIntToDecimalStringN
- movs r1, 0x22
- ldrsh r0, [r6, r1]
- cmp r0, r4
- blt _081177BC
- mov r0, r8
- ldrh r1, [r0]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0811777C
- mov r0, r9
- ands r0, r1
- cmp r0, 0
- beq _0811777C
- movs r0, 0
- movs r1, 0xE
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuDrawTextWindow
- ldr r0, _08117770 @ =gUnknown_081C4139
- movs r1, 0x1
- movs r2, 0xF
- bl MenuPrint
- ldr r1, _08117774 @ =sub_8117630
- ldr r2, _08117778 @ =0x0000ffff
- adds r0, r7, 0
- movs r3, 0x3
- bl sub_8116C34
- b _081177E4
- .align 2, 0
-_08117758: .4byte gStringVar1
-_0811775C: .4byte gTasks
-_08117760: .4byte gStringVar4
-_08117764: .4byte gOtherText_Coins
-_08117768: .4byte gUnknown_083F8DF0
-_0811776C: .4byte gUnknown_0202E8CC
-_08117770: .4byte gUnknown_081C4139
-_08117774: .4byte sub_8117630
-_08117778: .4byte 0x0000ffff
-_0811777C:
- ldr r4, _081177AC @ =gStringVar4
- ldr r1, _081177B0 @ =gUnknown_081C40DF
- adds r0, r4, 0
- bl StringExpandPlaceholders
- movs r0, 0
- movs r1, 0xE
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuDrawTextWindow
- adds r0, r4, 0
- movs r1, 0x1
- movs r2, 0xF
- bl MenuPrint
- ldr r1, _081177B4 @ =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r1
- ldr r1, _081177B8 @ =sub_81174F8
- str r1, [r0]
- b _081177E4
- .align 2, 0
-_081177AC: .4byte gStringVar4
-_081177B0: .4byte gUnknown_081C40DF
-_081177B4: .4byte gTasks
-_081177B8: .4byte sub_81174F8
-_081177BC:
- ldr r1, _081177F4 @ =gUnknown_081C411C
- adds r0, r5, 0
- bl StringExpandPlaceholders
- movs r0, 0
- movs r1, 0xE
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuDrawTextWindow
- adds r0, r5, 0
- movs r1, 0x1
- movs r2, 0xF
- bl MenuPrint
- ldr r0, _081177F8 @ =sub_81175DC
- str r0, [r6]
- movs r0, 0
- strh r0, [r6, 0x22]
- strh r0, [r6, 0x8]
-_081177E4:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_081177F4: .4byte gUnknown_081C411C
-_081177F8: .4byte sub_81175DC
- thumb_func_end Task_Roulette_0
-
- thumb_func_start PlayRoulette
-PlayRoulette: @ 81177FC
- push {lr}
- bl ScriptContext2_Enable
- ldr r0, _08117828 @ =sub_81176A8
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0811782C @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r0, _08117830 @ =gSaveBlock1
- ldr r2, _08117834 @ =0x00000494
- adds r0, r2
- ldrh r0, [r0]
- strh r0, [r1, 0x22]
- pop {r0}
- bx r0
- .align 2, 0
-_08117828: .4byte Task_Roulette_0
-_0811782C: .4byte gTasks
-_08117830: .4byte gSaveBlock1
-_08117834: .4byte 0x00000494
- thumb_func_end PlayRoulette
-
- thumb_func_start sub_8117838
-sub_8117838: @ 8117838
- push {r4,lr}
- lsls r0, 24
- cmp r0, 0
- bne _08117884
- bl FreeAllSpritePalettes
- ldr r0, _08117870 @ =gUnknown_083F9E30
- bl LoadSpritePalettes
- ldr r0, _08117874 @ =gUnknown_083F92A8
- ldr r4, _08117878 @ =0x02017000
- adds r1, r4, 0
- bl LZ77UnCompWram
- ldr r0, _0811787C @ =gUnknown_083F90FC
- movs r2, 0xE0
- lsls r2, 4
- adds r1, r4, r2
- bl LZ77UnCompWram
- ldr r0, _08117880 @ =gUnknown_083F9D3C
- movs r1, 0x80
- lsls r1, 5
- adds r4, r1
- adds r1, r4, 0
- bl LZ77UnCompWram
- b _08117888
- .align 2, 0
-_08117870: .4byte gUnknown_083F9E30
-_08117874: .4byte gUnknown_083F92A8
-_08117878: .4byte 0x02017000
-_0811787C: .4byte gUnknown_083F90FC
-_08117880: .4byte gUnknown_083F9D3C
-_08117884:
- bl FreeAllSpritePalettes
-_08117888:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8117838
-
- thumb_func_start sub_8117890
-sub_8117890: @ 8117890
- push {r4-r6,lr}
- adds r4, r1, 0
- adds r6, r2, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r1, [r0, 0x4]
- ldrb r3, [r1]
- movs r1, 0x74
- movs r2, 0x50
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- adds r5, r0, 0
- ldr r0, _081178F4 @ =gSprites
- lsls r1, r5, 4
- adds r1, r5
- lsls r1, 2
- adds r1, r0
- ldrh r0, [r6]
- strh r0, [r1, 0x2E]
- strh r4, [r1, 0x30]
- adds r3, r1, 0
- adds r3, 0x3E
- ldrb r0, [r3]
- movs r2, 0x2
- orrs r0, r2
- strb r0, [r3]
- adds r1, 0x2C
- ldrb r0, [r1]
- movs r2, 0x40
- orrs r0, r2
- movs r2, 0x80
- orrs r0, r2
- strb r0, [r1]
- ldrh r2, [r6]
- adds r0, r2, 0
- adds r0, 0x1E
- strh r0, [r6]
- lsls r0, 16
- ldr r1, _081178F8 @ =0x01670000
- cmp r0, r1
- bls _081178EC
- ldr r1, _081178FC @ =0xfffffeb6
- adds r0, r2, r1
- strh r0, [r6]
-_081178EC:
- adds r0, r5, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_081178F4: .4byte gSprites
-_081178F8: .4byte 0x01670000
-_081178FC: .4byte 0xfffffeb6
- thumb_func_end sub_8117890
-
- thumb_func_start sub_8117900
-sub_8117900: @ 8117900
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x8
- ldr r4, _08117A50 @ =gUnknown_083F9F54
- ldr r0, [r4]
- ldr r5, _08117A54 @ =0x02000000
- adds r1, r5, 0
- bl LZ77UnCompWram
- str r5, [sp]
- mov r6, sp
- ldrh r1, [r4, 0x6]
- lsls r1, 16
- ldrh r0, [r4, 0x4]
- orrs r0, r1
- str r0, [sp, 0x4]
- mov r0, sp
- bl LoadSpriteSheet
- ldr r4, _08117A58 @ =gUnknown_083F9F5C
- ldr r0, [r4]
- adds r1, r5, 0
- bl LZ77UnCompWram
- str r5, [sp]
- ldrh r0, [r4, 0x4]
- strh r0, [r6, 0x4]
- ldrh r0, [r4, 0x6]
- strh r0, [r6, 0x6]
- mov r0, sp
- bl LoadSpriteSheet
- movs r7, 0
- ldr r0, _08117A5C @ =0x0001903c
- adds r0, r5
- mov r9, r0
- ldr r0, _08117A60 @ =gSprites
- mov r8, r0
-_08117950:
- lsls r0, r7, 1
- adds r0, r7
- lsls r0, 27
- lsrs r4, r0, 24
- movs r6, 0
- lsls r5, r7, 2
-_0811795C:
- lsls r1, r6, 1
- adds r1, r6
- lsls r1, 3
- ldr r0, _08117A64 @ =gSpriteTemplate_83FA07C
- adds r0, r1, r0
- adds r1, 0x94
- adds r2, r4, 0
- adds r2, 0x5C
- movs r3, 0x1E
- bl CreateSprite
- adds r1, r6, 0
- adds r1, 0x1D
- adds r1, r5, r1
- add r1, r9
- strb r0, [r1]
- lsls r0, 24
- lsrs r1, r0, 24
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- add r0, r8
- adds r0, 0x2C
- ldrb r1, [r0]
- movs r2, 0x40
- orrs r1, r2
- strb r1, [r0]
- adds r0, r4, 0
- adds r0, 0x18
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x47
- bls _081179A0
- movs r4, 0
-_081179A0:
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0x3
- bls _0811795C
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- cmp r7, 0x2
- bls _08117950
- movs r7, 0
- ldr r5, _08117A68 @ =0x0201903c
- ldr r4, _08117A60 @ =gSprites
-_081179BA:
- lsls r1, r7, 1
- adds r1, r7
- lsls r1, 3
- ldr r0, _08117A6C @ =gSpriteTemplate_83F9FD4
- adds r0, r1, r0
- adds r1, 0x94
- lsls r1, 16
- asrs r1, 16
- movs r2, 0x46
- movs r3, 0x1E
- bl CreateSprite
- adds r1, r7, 0
- adds r1, 0x29
- adds r1, r5
- strb r0, [r1]
- lsls r0, 24
- lsrs r1, r0, 24
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- adds r0, 0x2C
- ldrb r1, [r0]
- movs r2, 0x40
- orrs r1, r2
- strb r1, [r0]
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- cmp r7, 0x3
- bls _081179BA
- movs r7, 0
- ldr r5, _08117A68 @ =0x0201903c
- ldr r4, _08117A60 @ =gSprites
-_08117A00:
- lsls r2, r7, 1
- adds r2, r7
- lsls r2, 3
- ldr r0, _08117A70 @ =gSpriteTemplate_83FA034
- adds r0, r2, r0
- adds r2, 0x5C
- lsls r2, 16
- asrs r2, 16
- movs r1, 0x7E
- movs r3, 0x1E
- bl CreateSprite
- adds r1, r7, 0
- adds r1, 0x2D
- adds r1, r5
- strb r0, [r1]
- lsls r0, 24
- lsrs r1, r0, 24
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- adds r0, 0x2C
- ldrb r1, [r0]
- movs r2, 0x40
- orrs r1, r2
- strb r1, [r0]
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- cmp r7, 0x2
- bls _08117A00
- add sp, 0x8
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08117A50: .4byte gUnknown_083F9F54
-_08117A54: .4byte 0x02000000
-_08117A58: .4byte gUnknown_083F9F5C
-_08117A5C: .4byte 0x0001903c
-_08117A60: .4byte gSprites
-_08117A64: .4byte gSpriteTemplate_83FA07C
-_08117A68: .4byte 0x0201903c
-_08117A6C: .4byte gSpriteTemplate_83F9FD4
-_08117A70: .4byte gSpriteTemplate_83FA034
- thumb_func_end sub_8117900
-
- thumb_func_start unref_sub_8117A74
-unref_sub_8117A74: @ 8117A74
- push {r4,r5,lr}
- movs r4, 0
- ldr r5, _08117AA0 @ =0x0201903c
-_08117A7A:
- adds r0, r4, 0
- adds r0, 0x1D
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _08117AA4 @ =gSprites
- adds r0, r1
- bl DestroySprite
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0xB
- bls _08117A7A
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08117AA0: .4byte 0x0201903c
-_08117AA4: .4byte gSprites
- thumb_func_end unref_sub_8117A74
-
- thumb_func_start sub_8117AA8
-sub_8117AA8: @ 8117AA8
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- mov r8, r1
- cmp r0, 0
- beq _08117AF8
- cmp r0, 0x1
- bne _08117BA8
- movs r3, 0
- ldr r5, _08117AF0 @ =gSprites
- ldr r4, _08117AF4 @ =0x0201903c
- movs r2, 0x4
-_08117ACA:
- adds r0, r3, 0
- adds r0, 0x1D
- adds r0, r4
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- adds r0, 0x3E
- ldrb r1, [r0]
- orrs r1, r2
- strb r1, [r0]
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x12
- bls _08117ACA
- b _08117BA8
- .align 2, 0
-_08117AF0: .4byte gSprites
-_08117AF4: .4byte 0x0201903c
-_08117AF8:
- movs r3, 0
- ldr r0, _08117B48 @ =gUnknown_083F8D90
- mov r12, r0
- ldr r7, _08117B4C @ =0x02019000
- movs r1, 0x4
- add r1, r12
- mov r9, r1
- ldr r5, _08117B50 @ =gSprites
- adds r4, r7, 0
- adds r4, 0x3C
- movs r6, 0x5
- negs r6, r6
-_08117B10:
- lsls r2, r3, 3
- mov r1, r9
- adds r0, r2, r1
- ldr r1, [r7, 0x8]
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- beq _08117B54
- mov r1, r12
- adds r0, r2, r1
- ldrb r0, [r0, 0x2]
- cmp r0, r8
- beq _08117B54
- adds r0, r3, 0
- adds r0, 0x1D
- adds r0, r4
- 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]
- b _08117B6E
- .align 2, 0
-_08117B48: .4byte gUnknown_083F8D90
-_08117B4C: .4byte 0x02019000
-_08117B50: .4byte gSprites
-_08117B54:
- adds r0, r3, 0
- adds r0, 0x1D
- adds r0, r4
- ldrb r0, [r0]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- adds r1, 0x3E
- ldrb r2, [r1]
- adds r0, r6, 0
- ands r0, r2
- strb r0, [r1]
-_08117B6E:
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0xB
- bls _08117B10
- cmp r3, 0x12
- bhi _08117BA8
- ldr r6, _08117BB4 @ =gSprites
- ldr r4, _08117BB8 @ =0x0201903c
- movs r5, 0x5
- negs r5, r5
-_08117B84:
- adds r0, r3, 0
- adds r0, 0x1D
- adds r0, r4
- ldrb r0, [r0]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r6
- adds r1, 0x3E
- ldrb r2, [r1]
- adds r0, r5, 0
- ands r0, r2
- strb r0, [r1]
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x12
- bls _08117B84
-_08117BA8:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08117BB4: .4byte gSprites
-_08117BB8: .4byte 0x0201903c
- thumb_func_end sub_8117AA8
-
- thumb_func_start sub_8117BBC
-sub_8117BBC: @ 8117BBC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- movs r5, 0
- ldr r0, _08117C50 @ =0x0201903c
- mov r8, r0
- ldr r4, _08117C54 @ =gSprites
- movs r6, 0x4
-_08117BCC:
- ldr r0, _08117C58 @ =gSpriteTemplate_83FA40C
- movs r1, 0x74
- movs r2, 0x14
- movs r3, 0xA
- bl CreateSprite
- adds r3, r5, 0
- adds r3, 0x31
- add r3, r8
- strb r0, [r3]
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- adds r0, 0x3E
- ldrb r1, [r0]
- orrs r1, r6
- strb r1, [r0]
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0x1
- strh r1, [r0, 0x2E]
- 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, _08117C5C @ =sub_81184CC
- str r1, [r0]
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r1, [r0, 0x5]
- movs r7, 0xD
- negs r7, r7
- adds r2, r7, 0
- ands r1, r2
- orrs r1, r6
- strb r1, [r0, 0x5]
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0x8
- bl StartSpriteAnim
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x5
- bls _08117BCC
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08117C50: .4byte 0x0201903c
-_08117C54: .4byte gSprites
-_08117C58: .4byte gSpriteTemplate_83FA40C
-_08117C5C: .4byte sub_81184CC
- thumb_func_end sub_8117BBC
-
- thumb_func_start sub_8117C60
-sub_8117C60: @ 8117C60
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 24
- lsls r1, 24
- lsrs r1, 24
- mov r9, r1
- movs r5, 0
- cmp r0, 0
- beq _08117CAC
- ldr r4, _08117CA4 @ =gSprites
- ldr r3, _08117CA8 @ =0x0201903c
- movs r2, 0x4
-_08117C7E:
- adds r0, r5, 0
- adds r0, 0x31
- adds r0, r3
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- adds r0, 0x3E
- ldrb r1, [r0]
- orrs r1, r2
- strb r1, [r0]
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x5
- bls _08117C7E
- b _08117D58
- .align 2, 0
-_08117CA4: .4byte gSprites
-_08117CA8: .4byte 0x0201903c
-_08117CAC:
- ldr r0, _08117CEC @ =0x02019000
- mov r12, r0
- ldr r6, _08117CF0 @ =gSprites
- movs r0, 0x3C
- add r0, r12
- mov r8, r0
- ldr r7, _08117CF4 @ =gUnknown_083F8C00
- movs r0, 0x5
- negs r0, r0
- mov r10, r0
-_08117CC0:
- mov r0, r12
- adds r0, 0xC
- adds r4, r5, r0
- ldrb r0, [r4]
- cmp r0, 0
- beq _08117CD0
- cmp r5, r9
- bne _08117CF8
-_08117CD0:
- adds r0, r5, 0
- adds r0, 0x31
- add r0, r8
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
- b _08117D4E
- .align 2, 0
-_08117CEC: .4byte 0x02019000
-_08117CF0: .4byte gSprites
-_08117CF4: .4byte gUnknown_083F8C00
-_08117CF8:
- adds r3, r5, 0
- adds r3, 0x31
- add r3, r8
- ldrb r0, [r3]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r6
- adds r1, 0x3E
- ldrb r2, [r1]
- mov r0, r10
- ands r0, r2
- strb r0, [r1]
- ldrb r0, [r3]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r6
- ldrb r1, [r4]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r7
- ldrb r0, [r0, 0x3]
- adds r0, 0x1
- lsls r0, 3
- adds r0, 0x4
- strh r0, [r2, 0x20]
- ldrb r0, [r3]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r6
- ldrb r1, [r4]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r7
- ldrb r0, [r0, 0x4]
- adds r0, 0x1
- lsls r0, 3
- adds r0, 0x3
- strh r0, [r2, 0x22]
-_08117D4E:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x5
- bls _08117CC0
-_08117D58:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8117C60
-
- thumb_func_start sub_8117D68
-sub_8117D68: @ 8117D68
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0
- bne _08117D98
- ldr r2, _08117D90 @ =gSprites
- ldr r0, _08117D94 @ =0x02019000
- adds r0, 0x6C
- 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]
- b _08117DE2
- .align 2, 0
-_08117D90: .4byte gSprites
-_08117D94: .4byte 0x02019000
-_08117D98:
- ldr r4, _08117DE8 @ =gSprites
- ldr r3, _08117DEC @ =0x02019000
- adds r3, 0x6C
- 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 r0, [r3]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- ldr r0, _08117DF0 @ =gUnknown_083F8C00
- lsls r2, r5, 2
- adds r2, r5
- lsls r2, 2
- adds r2, r0
- ldrb r0, [r2, 0x3]
- adds r0, 0x2
- lsls r0, 3
- strh r0, [r1, 0x20]
- ldrb r0, [r3]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- ldrb r0, [r2, 0x4]
- adds r0, 0x2
- lsls r0, 3
- strh r0, [r1, 0x22]
-_08117DE2:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08117DE8: .4byte gSprites
-_08117DEC: .4byte 0x02019000
-_08117DF0: .4byte gUnknown_083F8C00
- thumb_func_end sub_8117D68
-
- thumb_func_start sub_8117DF4
-sub_8117DF4: @ 8117DF4
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0xC
- ldr r4, _08117E84 @ =gUnknown_083F9EE8
- ldr r0, [r4]
- ldr r5, _08117E88 @ =0x02000000
- adds r1, r5, 0
- bl LZ77UnCompWram
- str r5, [sp, 0x4]
- add r0, sp, 0x4
- ldrh r2, [r4, 0x6]
- lsls r2, 16
- ldrh r1, [r4, 0x4]
- orrs r1, r2
- str r1, [r0, 0x4]
- bl LoadSpriteSheet
- movs r1, 0xF
- mov r0, sp
- strh r1, [r0]
- movs r0, 0
- ldr r1, _08117E8C @ =0x0001903c
- adds r1, r5
- mov r8, r1
- ldr r7, _08117E90 @ =gSprites
-_08117E2A:
- movs r4, 0
- adds r6, r0, 0x1
- lsls r5, r0, 2
-_08117E30:
- adds r1, r5, r4
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 3
- ldr r1, _08117E94 @ =gSpriteTemplate_83FA0DC
- adds r0, r1
- movs r1, 0x28
- mov r2, sp
- bl sub_8117890
- adds r1, r4, 0x7
- adds r1, r5, r1
- add r1, r8
- strb r0, [r1]
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r7
- adds r1, 0x2C
- ldrb r0, [r1]
- movs r2, 0x40
- orrs r0, r2
- movs r2, 0x80
- orrs r0, r2
- strb r0, [r1]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x3
- bls _08117E30
- lsls r0, r6, 24
- lsrs r0, 24
- cmp r0, 0x2
- bls _08117E2A
- add sp, 0xC
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08117E84: .4byte gUnknown_083F9EE8
-_08117E88: .4byte 0x02000000
-_08117E8C: .4byte 0x0001903c
-_08117E90: .4byte gSprites
-_08117E94: .4byte gSpriteTemplate_83FA0DC
- thumb_func_end sub_8117DF4
-
- thumb_func_start sub_8117E98
-sub_8117E98: @ 8117E98
- push {r4-r6,lr}
- adds r6, r0, 0
- ldr r0, _08117F1C @ =0x02019000
- ldrh r1, [r6, 0x2E]
- ldrh r0, [r0, 0x24]
- adds r1, r0
- lsls r1, 16
- lsrs r4, r1, 16
- asrs r1, 16
- ldr r0, _08117F20 @ =0x00000167
- cmp r1, r0
- ble _08117EB8
- ldr r2, _08117F24 @ =0xfffffe98
- adds r0, r1, r2
- lsls r0, 16
- lsrs r4, r0, 16
-_08117EB8:
- adds r0, r4, 0
- bl Sin2
- lsls r0, 16
- lsrs r5, r0, 16
- adds r0, r4, 0
- bl Cos2
- lsls r2, r5, 16
- asrs r2, 16
- movs r3, 0x30
- ldrsh r1, [r6, r3]
- muls r1, r2
- asrs r1, 12
- strh r1, [r6, 0x24]
- lsls r0, 16
- asrs r4, r0, 16
- negs r1, r4
- movs r3, 0x30
- ldrsh r0, [r6, r3]
- muls r0, r1
- asrs r0, 12
- strh r0, [r6, 0x26]
- ldrb r0, [r6, 0x3]
- lsls r0, 26
- lsrs r3, r0, 27
- cmp r2, 0
- bge _08117EF2
- adds r2, 0xF
-_08117EF2:
- lsls r0, r2, 12
- lsrs r5, r0, 16
- ldr r1, _08117F28 @ =gOamMatrices
- lsls r0, r3, 3
- adds r1, r0, r1
- adds r0, r4, 0
- cmp r0, 0
- bge _08117F04
- adds r0, 0xF
-_08117F04:
- asrs r0, 4
- strh r0, [r1, 0x6]
- strh r0, [r1]
- strh r5, [r1, 0x2]
- lsls r0, r5, 16
- asrs r0, 16
- negs r0, r0
- strh r0, [r1, 0x4]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08117F1C: .4byte 0x02019000
-_08117F20: .4byte 0x00000167
-_08117F24: .4byte 0xfffffe98
-_08117F28: .4byte gOamMatrices
- thumb_func_end sub_8117E98
-
- thumb_func_start sub_8117F2C
-sub_8117F2C: @ 8117F2C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x8
- movs r5, 0
- ldr r7, _081180C8 @ =0x02000000
- mov r6, sp
-_08117F3A:
- ldr r0, _081180CC @ =gUnknown_083FA21C
- lsls r4, r5, 3
- adds r4, r0
- ldr r0, [r4]
- adds r1, r7, 0
- bl LZ77UnCompWram
- str r7, [sp]
- ldrh r2, [r4, 0x4]
- ldr r0, _081180D0 @ =0xffff0000
- ldr r1, [r6, 0x4]
- ands r1, r0
- orrs r1, r2
- str r1, [r6, 0x4]
- ldrh r2, [r4, 0x6]
- lsls r2, 16
- ldr r0, _081180D4 @ =0x0000ffff
- ands r0, r1
- orrs r0, r2
- str r0, [r6, 0x4]
- mov r0, sp
- bl LoadSpriteSheet
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x4
- bls _08117F3A
- ldr r0, _081180D8 @ =gSpriteTemplate_83FA2B0
- movs r1, 0xD0
- movs r2, 0x10
- movs r3, 0x4
- bl CreateSprite
- ldr r4, _081180DC @ =0x02019000
- adds r1, r4, 0
- adds r1, 0x50
- strb r0, [r1]
- ldr r3, _081180E0 @ =gSprites
- ldrb r1, [r1]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- adds r0, 0x2C
- ldrb r1, [r0]
- movs r2, 0x40
- orrs r1, r2
- strb r1, [r0]
- movs r5, 0
- adds r4, 0x3C
- adds r7, r3, 0
-_08117FA2:
- lsls r1, r5, 19
- movs r0, 0xC4
- lsls r0, 16
- adds r1, r0
- asrs r1, 16
- ldr r0, _081180E4 @ =gSpriteTemplate_83FA2C8
- movs r2, 0x18
- movs r3, 0
- bl CreateSprite
- adds r3, r5, 0
- adds r3, 0x15
- adds r3, r4
- strb r0, [r3]
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r7
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r7
- adds r0, 0x2C
- ldrb r1, [r0]
- movs r6, 0x40
- orrs r1, r6
- strb r1, [r0]
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x3
- bls _08117FA2
- ldr r0, _081180E8 @ =gSpriteTemplate_83FA2E0
- movs r1, 0x78
- movs r2, 0x44
- movs r3, 0x4
- bl CreateSprite
- ldr r3, _081180DC @ =0x02019000
- adds r1, r3, 0
- adds r1, 0x55
- strb r0, [r1]
- ldr r2, _081180E0 @ =gSprites
- ldrb r1, [r1]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- adds r0, 0x2C
- ldrb r1, [r0]
- orrs r1, r6
- strb r1, [r0]
- movs r5, 0
- adds r3, 0x3C
- mov r8, r3
- adds r4, r2, 0
-_08118020:
- lsls r1, r5, 20
- movs r0, 0xC0
- lsls r0, 16
- adds r1, r0
- asrs r1, 16
- ldr r0, _081180EC @ =gSpriteTemplate_83FA2F8
- movs r2, 0x24
- movs r3, 0x4
- bl CreateSprite
- adds r2, r5, 0
- adds r2, 0x1A
- add r2, r8
- strb r0, [r2]
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r7, 0x4
- orrs r1, r7
- strb r1, [r0]
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- adds r0, 0x2C
- ldrb r1, [r0]
- movs r6, 0x40
- orrs r1, r6
- strb r1, [r0]
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x2
- bls _08118020
- ldr r0, _081180F0 @ =gSpriteTemplate_83FA310
- movs r1, 0x98
- movs r2, 0x60
- movs r3, 0x9
- bl CreateSprite
- ldr r3, _081180DC @ =0x02019000
- adds r3, 0x6C
- strb r0, [r3]
- ldr r4, _081180E0 @ =gSprites
- ldrb r0, [r3]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- ldrb r2, [r1, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- orrs r0, r7
- strb r0, [r1, 0x5]
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- adds r0, 0x2C
- ldrb r1, [r0]
- orrs r1, r6
- strb r1, [r0]
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- adds r0, 0x3E
- ldrb r1, [r0]
- orrs r1, r7
- strb r1, [r0]
- add sp, 0x8
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_081180C8: .4byte 0x02000000
-_081180CC: .4byte gUnknown_083FA21C
-_081180D0: .4byte 0xffff0000
-_081180D4: .4byte 0x0000ffff
-_081180D8: .4byte gSpriteTemplate_83FA2B0
-_081180DC: .4byte 0x02019000
-_081180E0: .4byte gSprites
-_081180E4: .4byte gSpriteTemplate_83FA2C8
-_081180E8: .4byte gSpriteTemplate_83FA2E0
-_081180EC: .4byte gSpriteTemplate_83FA2F8
-_081180F0: .4byte gSpriteTemplate_83FA310
- thumb_func_end sub_8117F2C
-
- thumb_func_start sub_81180F4
-sub_81180F4: @ 81180F4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 16
- lsrs r7, r0, 16
- movs r0, 0xFA
- lsls r0, 2
- mov r8, r0
- movs r4, 0
- movs r6, 0
- ldr r1, _081181D4 @ =0x02019000
- mov r9, r1
- ldr r0, _081181D8 @ =gSprites
- mov r10, r0
-_08118114:
- adds r0, r7, 0
- mov r1, r8
- bl __udivsi3
- lsls r0, 24
- lsrs r5, r0, 24
- adds r3, r6, 0
- adds r3, 0x15
- mov r0, r9
- adds r0, 0x3C
- adds r0, r3, r0
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _081181D8 @ =gSprites
- adds r0, r1
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
- adds r0, r3, 0
- cmp r5, 0
- bne _0811814E
- cmp r4, 0
- bne _0811814E
- cmp r6, 0x3
- bne _081181A2
-_0811814E:
- mov r3, r9
- adds r3, 0x3C
- adds r3, r0, r3
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- add r0, r10
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r4, 0x5
- negs r4, r4
- adds r2, r4, 0
- ands r1, r2
- strb r1, [r0]
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- mov r1, r10
- adds r3, r0, r1
- adds r4, r3, 0
- adds r4, 0x40
- ldr r1, _081181DC @ =gSprites + 0x8
- adds r0, r1
- ldr r0, [r0]
- ldr r1, [r0]
- lsls r0, r5, 2
- adds r0, r1
- ldrh r2, [r0]
- ldrh r4, [r4]
- adds r2, r4
- ldr r4, _081181E0 @ =0x000003ff
- adds r0, r4, 0
- ands r2, r0
- ldrh r0, [r3, 0x4]
- ldr r4, _081181E4 @ =0xfffffc00
- adds r1, r4, 0
- ands r0, r1
- orrs r0, r2
- strh r0, [r3, 0x4]
- movs r4, 0x1
-_081181A2:
- adds r0, r7, 0
- mov r1, r8
- bl __umodsi3
- lsls r0, 16
- lsrs r7, r0, 16
- mov r0, r8
- movs r1, 0xA
- bl __udivsi3
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0x3
- bls _08118114
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_081181D4: .4byte 0x02019000
-_081181D8: .4byte gSprites
-_081181DC: .4byte gSprites + 0x8
-_081181E0: .4byte 0x000003ff
-_081181E4: .4byte 0xfffffc00
- thumb_func_end sub_81180F4
-
- thumb_func_start sub_81181E8
-sub_81181E8: @ 81181E8
- push {r4,lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _08118220 @ =gUnknown_083FA608
- mov r0, sp
- movs r2, 0x5
- bl memcpy
- cmp r4, 0x13
- bls _08118200
- movs r4, 0
-_08118200:
- ldr r3, _08118224 @ =gUnknown_083F8C00
- lsls r0, r4, 2
- adds r0, r4
- lsls r2, r0, 2
- adds r0, r2, r3
- ldrb r0, [r0, 0x1]
- lsls r0, 28
- lsrs r0, 28
- cmp r0, 0x4
- beq _08118254
- cmp r0, 0x4
- bgt _08118228
- cmp r0, 0x3
- beq _0811822E
- b _08118290
- .align 2, 0
-_08118220: .4byte gUnknown_083FA608
-_08118224: .4byte gUnknown_083F8C00
-_08118228:
- cmp r0, 0xC
- beq _08118274
- b _08118290
-_0811822E:
- adds r0, r4, 0
- movs r1, 0x5
- bl __udivsi3
- subs r0, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _08118250 @ =0x02019000
- adds r0, 0x16
- adds r1, r4, r0
- ldrb r0, [r1]
- cmp r0, 0x3
- bhi _08118290
- ldrb r0, [r1]
- adds r0, 0x1
- b _0811826A
- .align 2, 0
-_08118250: .4byte 0x02019000
-_08118254:
- subs r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _08118270 @ =0x02019000
- adds r0, 0x12
- adds r1, r4, r0
- ldrb r0, [r1]
- cmp r0, 0x2
- bhi _08118290
- ldrb r0, [r1]
- adds r0, 0x2
-_0811826A:
- add r0, sp
- ldrb r0, [r0]
- b _08118292
- .align 2, 0
-_08118270: .4byte 0x02019000
-_08118274:
- ldr r1, _0811828C @ =0x02019000
- adds r0, r3, 0
- adds r0, 0x8
- adds r0, r2, r0
- ldr r1, [r1, 0x8]
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- bne _08118290
- mov r0, sp
- ldrb r0, [r0, 0x4]
- b _08118292
- .align 2, 0
-_0811828C: .4byte 0x02019000
-_08118290:
- movs r0, 0
-_08118292:
- add sp, 0x8
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_81181E8
-
- thumb_func_start sub_811829C
-sub_811829C: @ 811829C
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _081182E8 @ =0x02019000
- adds r1, 0x55
- ldrb r2, [r1]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- ldr r2, _081182EC @ =gSprites
- adds r4, r1, r2
- bl sub_81181E8
- adds r3, r4, 0
- adds r3, 0x2B
- strb r0, [r3]
- adds r2, r4, 0
- adds r2, 0x40
- ldr r1, [r4, 0x8]
- ldrb r0, [r3]
- ldr r1, [r1]
- lsls r0, 2
- adds r0, r1
- ldrh r1, [r0]
- ldrh r2, [r2]
- adds r1, r2
- ldr r2, _081182F0 @ =0x000003ff
- adds r0, r2, 0
- ands r1, r0
- ldrh r2, [r4, 0x4]
- ldr r0, _081182F4 @ =0xfffffc00
- ands r0, r2
- orrs r0, r1
- strh r0, [r4, 0x4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081182E8: .4byte 0x02019000
-_081182EC: .4byte gSprites
-_081182F0: .4byte 0x000003ff
-_081182F4: .4byte 0xfffffc00
- thumb_func_end sub_811829C
-
- thumb_func_start sub_81182F8
-sub_81182F8: @ 81182F8
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r2, r0, 24
- movs r5, 0
- ldr r0, _08118320 @ =0x02019000
- ldrb r1, [r0, 0x19]
- adds r3, r0, 0
- cmp r1, 0x1
- bne _08118310
- movs r5, 0x2
-_08118310:
- cmp r2, 0x6
- bls _08118316
- b _08118464
-_08118316:
- lsls r0, r2, 2
- ldr r1, _08118324 @ =_08118328
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08118320: .4byte 0x02019000
-_08118324: .4byte _08118328
- .align 2, 0
-_08118328:
- .4byte _08118464
- .4byte _08118420
- .4byte _081183F8
- .4byte _081183EC
- .4byte _081183C4
- .4byte _081183B8
- .4byte _08118344
-_08118344:
- movs r4, 0
- ldr r5, _081183A8 @ =gSprites
- ldr r0, _081183AC @ =0x0201903c
- mov r8, r0
- movs r2, 0x5
- negs r2, r2
- mov r12, r2
- adds r6, r5, 0
- adds r6, 0x8
- ldr r7, _081183B0 @ =0xfffffc00
-_08118358:
- adds r3, r4, 0
- adds r3, 0x1A
- add r3, r8
- ldrb r0, [r3]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- adds r1, 0x3E
- ldrb r2, [r1]
- mov r0, r12
- ands r0, r2
- strb r0, [r1]
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r3, r0, r5
- adds r2, r3, 0
- adds r2, 0x40
- adds r0, r6
- ldr r0, [r0]
- ldr r0, [r0]
- ldrh r1, [r0]
- ldrh r2, [r2]
- adds r1, r2
- ldr r2, _081183B4 @ =0x000003ff
- adds r0, r2, 0
- ands r1, r0
- ldrh r2, [r3, 0x4]
- adds r0, r7, 0
- ands r0, r2
- orrs r0, r1
- strh r0, [r3, 0x4]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x2
- bls _08118358
- b _081184B2
- .align 2, 0
-_081183A8: .4byte gSprites
-_081183AC: .4byte 0x0201903c
-_081183B0: .4byte 0xfffffc00
-_081183B4: .4byte 0x000003ff
-_081183B8:
- ldr r2, _081183C0 @ =gSprites
- adds r0, r3, 0
- adds r0, 0x58
- b _08118426
- .align 2, 0
-_081183C0: .4byte gSprites
-_081183C4:
- ldr r2, _081183E8 @ =gSprites
- adds r0, r3, 0
- adds r0, 0x58
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r3, r0, r2
- adds r4, r3, 0
- adds r4, 0x40
- adds r2, 0x8
- adds r0, r2
- ldr r0, [r0]
- ldr r1, [r0]
- lsls r0, r5, 2
- adds r0, r1
- ldrh r1, [r0, 0x8]
- b _08118442
- .align 2, 0
-_081183E8: .4byte gSprites
-_081183EC:
- ldr r2, _081183F4 @ =gSprites
- adds r0, r3, 0
- adds r0, 0x57
- b _08118426
- .align 2, 0
-_081183F4: .4byte gSprites
-_081183F8:
- ldr r2, _0811841C @ =gSprites
- adds r0, r3, 0
- adds r0, 0x57
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r3, r0, r2
- adds r4, r3, 0
- adds r4, 0x40
- adds r2, 0x8
- adds r0, r2
- ldr r0, [r0]
- ldr r1, [r0]
- lsls r0, r5, 2
- adds r0, r1
- ldrh r1, [r0, 0x8]
- b _08118442
- .align 2, 0
-_0811841C: .4byte gSprites
-_08118420:
- ldr r2, _08118458 @ =gSprites
- adds r0, r3, 0
- adds r0, 0x56
-_08118426:
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r3, r0, r2
- adds r4, r3, 0
- adds r4, 0x40
- adds r2, 0x8
- adds r0, r2
- ldr r0, [r0]
- ldr r1, [r0]
- lsls r0, r5, 2
- adds r0, r1
- ldrh r1, [r0, 0x4]
-_08118442:
- ldrh r4, [r4]
- adds r1, r4
- ldr r2, _0811845C @ =0x000003ff
- adds r0, r2, 0
- ands r1, r0
- ldrh r2, [r3, 0x4]
- ldr r0, _08118460 @ =0xfffffc00
- ands r0, r2
- orrs r0, r1
- strh r0, [r3, 0x4]
- b _081184B2
- .align 2, 0
-_08118458: .4byte gSprites
-_0811845C: .4byte 0x000003ff
-_08118460: .4byte 0xfffffc00
-_08118464:
- movs r4, 0
- lsls r6, r5, 2
- ldr r5, _081184BC @ =gSprites
- ldr r0, _081184C0 @ =0x0201903c
- mov r8, r0
- adds r7, r5, 0
- adds r7, 0x8
- ldr r2, _081184C4 @ =0xfffffc00
- mov r12, r2
-_08118476:
- adds r0, r4, 0
- adds r0, 0x1A
- add r0, r8
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r3, r0, r5
- adds r2, r3, 0
- adds r2, 0x40
- adds r0, r7
- ldr r0, [r0]
- ldr r0, [r0]
- adds r0, r6, r0
- ldrh r1, [r0, 0x8]
- ldrh r2, [r2]
- adds r1, r2
- ldr r2, _081184C8 @ =0x000003ff
- adds r0, r2, 0
- ands r1, r0
- ldrh r2, [r3, 0x4]
- mov r0, r12
- ands r0, r2
- orrs r0, r1
- strh r0, [r3, 0x4]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x2
- bls _08118476
-_081184B2:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_081184BC: .4byte gSprites
-_081184C0: .4byte 0x0201903c
-_081184C4: .4byte 0xfffffc00
-_081184C8: .4byte 0x000003ff
- thumb_func_end sub_81182F8
-
- thumb_func_start sub_81184CC
-sub_81184CC: @ 81184CC
- ldr r1, _081184D4 @ =0x02019000
- ldrh r1, [r1, 0x26]
- strh r1, [r0, 0x24]
- bx lr
- .align 2, 0
-_081184D4: .4byte 0x02019000
- thumb_func_end sub_81184CC
-
- thumb_func_start sub_81184D8
-sub_81184D8: @ 81184D8
- push {r4,r5,lr}
- sub sp, 0x8
- ldr r4, _08118544 @ =gUnknown_083FA42C
- ldr r0, [r4]
- ldr r5, _08118548 @ =0x02000000
- adds r1, r5, 0
- bl LZ77UnCompWram
- str r5, [sp]
- ldrh r1, [r4, 0x6]
- lsls r1, 16
- ldrh r0, [r4, 0x4]
- orrs r0, r1
- str r0, [sp, 0x4]
- mov r0, sp
- bl LoadSpriteSheet
- ldr r0, _0811854C @ =gSpriteTemplate_83FA434
- movs r1, 0x74
- movs r2, 0x50
- movs r3, 0x51
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08118550 @ =gSprites
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- movs r0, 0xC8
- lsls r0, 9
- adds r5, r0
- ldrh r0, [r5, 0x24]
- movs r2, 0
- strh r0, [r1, 0x2E]
- strh r2, [r1, 0x30]
- adds r3, r1, 0
- adds r3, 0x2C
- ldrb r0, [r3]
- movs r2, 0x40
- orrs r0, r2
- movs r2, 0x80
- orrs r0, r2
- strb r0, [r3]
- adds r1, 0x3E
- ldrb r0, [r1]
- movs r2, 0x2
- orrs r0, r2
- strb r0, [r1]
- add sp, 0x8
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08118544: .4byte gUnknown_083FA42C
-_08118548: .4byte 0x02000000
-_0811854C: .4byte gSpriteTemplate_83FA434
-_08118550: .4byte gSprites
- thumb_func_end sub_81184D8
-
- thumb_func_start sub_8118554
-sub_8118554: @ 8118554
- ldrb r0, [r0, 0x3]
- lsls r0, 26
- lsrs r0, 27
- ldr r1, _08118574 @ =gOamMatrices
- lsls r0, 3
- adds r0, r1
- ldr r2, _08118578 @ =0x02019000
- ldrh r1, [r2, 0x2C]
- strh r1, [r0, 0x6]
- ldrh r1, [r2, 0x2C]
- strh r1, [r0]
- ldrh r1, [r2, 0x2E]
- strh r1, [r0, 0x2]
- ldrh r1, [r2, 0x30]
- strh r1, [r0, 0x4]
- bx lr
- .align 2, 0
-_08118574: .4byte gOamMatrices
-_08118578: .4byte 0x02019000
- thumb_func_end sub_8118554
-
- thumb_func_start sub_811857C
-sub_811857C: @ 811857C
- push {r4-r6,lr}
- movs r4, 0
- ldr r6, _081185DC @ =0x0201903c
- ldr r5, _081185E0 @ =gSprites
-_08118584:
- movs r3, 0x39
- subs r3, r4
- lsls r3, 24
- lsrs r3, 24
- ldr r0, _081185E4 @ =gSpriteTemplate_83FA40C
- movs r1, 0x74
- movs r2, 0x50
- bl CreateSprite
- adds r3, r4, r6
- strb r0, [r3]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x40
- beq _081185CA
- ldrb r1, [r3]
- 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]
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x2
- orrs r1, r2
- strb r1, [r0]
-_081185CA:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x5
- bls _08118584
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_081185DC: .4byte 0x0201903c
-_081185E0: .4byte gSprites
-_081185E4: .4byte gSpriteTemplate_83FA40C
- thumb_func_end sub_811857C
-
- thumb_func_start sub_81185E8
-sub_81185E8: @ 81185E8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r0, _08118660 @ =0x02019000
- adds r0, 0x3C
- ldrb r5, [r0]
- movs r6, 0
- ldr r7, _08118664 @ =gSprites
- movs r0, 0x1C
- adds r0, r7
- mov r10, r0
- movs r1, 0x2E
- adds r1, r7
- mov r9, r1
- mov r8, r6
-_0811860A:
- lsls r4, r5, 4
- adds r4, r5
- lsls r4, 2
- adds r0, r4, r7
- adds r3, r0, 0
- adds r3, 0x3E
- ldrb r1, [r3]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r3]
- mov r1, r10
- adds r2, r4, r1
- ldr r1, _08118668 @ =SpriteCallbackDummy
- str r1, [r2]
- movs r1, 0
- bl StartSpriteAnim
- movs r1, 0
- adds r2, r5, 0x1
- adds r3, r6, 0x1
-_08118632:
- lsls r0, r1, 1
- adds r0, r4
- add r0, r9
- mov r5, r8
- strh r5, [r0]
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x7
- bls _08118632
- lsls r0, r2, 24
- lsrs r5, r0, 24
- lsls r0, r3, 24
- lsrs r6, r0, 24
- cmp r6, 0x5
- bls _0811860A
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08118660: .4byte 0x02019000
-_08118664: .4byte gSprites
-_08118668: .4byte SpriteCallbackDummy
- thumb_func_end sub_81185E8
-
- thumb_func_start sub_811866C
-sub_811866C: @ 811866C
- push {r4,r5,lr}
- adds r3, r0, 0
- ldr r0, _0811869C @ =0x02019000
- ldrh r4, [r0, 0x24]
- movs r2, 0x24
- ldrsh r1, [r0, r2]
- ldrh r2, [r3, 0x34]
- movs r5, 0x34
- ldrsh r0, [r3, r5]
- cmp r1, r0
- ble _081186A8
- movs r1, 0xB4
- lsls r1, 1
- adds r0, r2, r1
- subs r2, r0, r4
- strh r2, [r3, 0x3A]
- lsls r1, r2, 16
- ldr r0, _081186A0 @ =0x01670000
- cmp r1, r0
- ble _081186AC
- ldr r5, _081186A4 @ =0xfffffe98
- adds r0, r2, r5
- b _081186AA
- .align 2, 0
-_0811869C: .4byte 0x02019000
-_081186A0: .4byte 0x01670000
-_081186A4: .4byte 0xfffffe98
-_081186A8:
- subs r0, r2, r4
-_081186AA:
- strh r0, [r3, 0x3A]
-_081186AC:
- movs r1, 0x3A
- ldrsh r0, [r3, r1]
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_811866C
-
- thumb_func_start sub_81186B8
-sub_81186B8: @ 81186B8
- push {r4,lr}
- bl sub_811866C
- ldr r4, _081186E0 @ =0x02019000
- lsls r0, 16
- asrs r0, 16
- bl __floatsisf
- ldr r1, _081186E4 @ =0x41f00000
- bl __divsf3
- bl __fixunssfsi
- adds r4, 0x7E
- strb r0, [r4]
- ldrb r0, [r4]
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_081186E0: .4byte 0x02019000
-_081186E4: .4byte 0x41f00000
- thumb_func_end sub_81186B8
-
- thumb_func_start sub_81186E8
-sub_81186E8: @ 81186E8
- push {r4,lr}
- adds r4, r0, 0
- bl sub_811866C
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x1E
- bl __modsi3
- lsls r0, 16
- asrs r1, r0, 16
- cmp r1, 0xE
- bne _08118708
- movs r0, 0
- strh r0, [r4, 0x32]
- b _0811871E
-_08118708:
- cmp r1, 0xD
- bgt _08118710
- movs r0, 0xE
- b _08118712
-_08118710:
- movs r0, 0x2B
-_08118712:
- subs r0, r1
- lsls r0, 16
- lsrs r0, 16
- strh r0, [r4, 0x32]
- lsls r0, 16
- asrs r0, 16
-_0811871E:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_81186E8
-
- thumb_func_start sub_8118724
-sub_8118724: @ 8118724
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r6, r0, 0
- ldr r5, _08118770 @ =0x02019000
- adds r4, r5, 0
- adds r4, 0x8C
- adds r1, r5, 0
- adds r1, 0x90
- ldr r0, [r4]
- ldr r1, [r1]
- bl __addsf3
- adds r1, r0, 0
- str r1, [r4]
- movs r0, 0x88
- adds r0, r5
- mov r8, r0
- ldr r0, [r0]
- bl __addsf3
- adds r4, r0, 0
- mov r1, r8
- str r4, [r1]
- ldr r7, _08118774 @ =0x43b40000
- adds r1, r7, 0
- bl __gesf2
- cmp r0, 0
- blt _08118778
- adds r0, r4, 0
- adds r1, r7, 0
- bl __subsf3
- mov r2, r8
- str r0, [r2]
- b _08118790
- .align 2, 0
-_08118770: .4byte 0x02019000
-_08118774: .4byte 0x43b40000
-_08118778:
- ldr r1, _08118824 @ =0x00000000
- adds r0, r4, 0
- bl __ltsf2
- cmp r0, 0
- bge _08118790
- adds r0, r4, 0
- adds r1, r7, 0
- bl __addsf3
- mov r1, r8
- str r0, [r1]
-_08118790:
- adds r0, r5, 0
- adds r0, 0x88
- ldr r0, [r0]
- bl __fixsfsi
- strh r0, [r6, 0x34]
- adds r4, r5, 0
- adds r4, 0x98
- adds r1, r5, 0
- adds r1, 0x9C
- ldr r0, [r4]
- ldr r1, [r1]
- bl __addsf3
- adds r1, r0, 0
- str r1, [r4]
- subs r4, 0x4
- ldr r0, [r4]
- bl __addsf3
- str r0, [r4]
- bl __fixsfsi
- strh r0, [r6, 0x36]
- ldrh r0, [r6, 0x34]
- bl Sin2
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- ldrh r0, [r6, 0x34]
- bl Cos2
- lsls r4, 16
- asrs r4, 16
- movs r2, 0x36
- ldrsh r1, [r6, r2]
- muls r1, r4
- asrs r1, 12
- strh r1, [r6, 0x24]
- lsls r0, 16
- asrs r0, 16
- negs r0, r0
- movs r2, 0x36
- ldrsh r1, [r6, r2]
- muls r0, r1
- asrs r0, 12
- strh r0, [r6, 0x26]
- bl IsSEPlaying
- lsls r0, 24
- cmp r0, 0
- beq _08118818
- ldr r0, _08118828 @ =gMPlay_SE1
- ldr r4, _0811882C @ =0x0000ffff
- ldrh r2, [r6, 0x24]
- lsls r2, 24
- asrs r2, 24
- adds r1, r4, 0
- bl m4aMPlayPanpotControl
- ldr r0, _08118830 @ =gMPlay_SE2
- ldrh r2, [r6, 0x24]
- lsls r2, 24
- asrs r2, 24
- adds r1, r4, 0
- bl m4aMPlayPanpotControl
-_08118818:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08118824: .4byte 0x00000000
-_08118828: .4byte gMPlay_SE1
-_0811882C: .4byte 0x0000ffff
-_08118830: .4byte gMPlay_SE2
- thumb_func_end sub_8118724
-
- thumb_func_start sub_8118834
-sub_8118834: @ 8118834
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r1, _0811888C @ =0x02019000
- ldrh r0, [r5, 0x3A]
- ldrh r1, [r1, 0x24]
- adds r2, r0, r1
- strh r2, [r5, 0x34]
- lsls r1, r2, 16
- ldr r0, _08118890 @ =0x01670000
- cmp r1, r0
- ble _08118850
- ldr r1, _08118894 @ =0xfffffe98
- adds r0, r2, r1
- strh r0, [r5, 0x34]
-_08118850:
- ldrh r0, [r5, 0x34]
- bl Sin2
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- ldrh r0, [r5, 0x34]
- bl Cos2
- lsls r4, 16
- asrs r4, 16
- movs r2, 0x36
- ldrsh r1, [r5, r2]
- muls r1, r4
- asrs r1, 12
- strh r1, [r5, 0x24]
- lsls r0, 16
- asrs r0, 16
- negs r0, r0
- movs r2, 0x36
- ldrsh r1, [r5, r2]
- muls r0, r1
- ldr r1, _08118898 @ =gSpriteCoordOffsetY
- asrs r0, 12
- ldrh r1, [r1]
- adds r0, r1
- strh r0, [r5, 0x26]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0811888C: .4byte 0x02019000
-_08118890: .4byte 0x01670000
-_08118894: .4byte 0xfffffe98
-_08118898: .4byte gSpriteCoordOffsetY
- thumb_func_end sub_8118834
-
- thumb_func_start sub_811889C
-sub_811889C: @ 811889C
- push {r4-r6,lr}
- adds r5, r0, 0
- bl sub_8118724
- ldrh r0, [r5, 0x32]
- adds r0, 0x1
- strh r0, [r5, 0x32]
- ldrh r0, [r5, 0x36]
- adds r0, 0x84
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xD4
- bls _081188C2
- adds r2, r5, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- b _081188CE
-_081188C2:
- adds r2, r5, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
-_081188CE:
- strb r0, [r2]
- movs r1, 0x32
- ldrsh r0, [r5, r1]
- cmp r0, 0x1D
- ble _0811898E
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _08118908
- ldr r6, _08118900 @ =0x02019000
- adds r4, r6, 0
- adds r4, 0x94
- adds r0, r6, 0
- adds r0, 0xA0
- ldr r0, [r0]
- ldr r1, _08118904 @ =0x40000000
- bl __subsf3
- adds r1, r0, 0
- ldr r0, [r4]
- bl __lesf2
- cmp r0, 0
- bgt _0811898E
- b _08118926
- .align 2, 0
-_08118900: .4byte 0x02019000
-_08118904: .4byte 0x40000000
-_08118908:
- ldr r6, _08118994 @ =0x02019000
- adds r4, r6, 0
- adds r4, 0x94
- adds r0, r6, 0
- adds r0, 0xA0
- ldr r0, [r0]
- ldr r1, _08118998 @ =0x40000000
- bl __subsf3
- adds r1, r0, 0
- ldr r0, [r4]
- bl __gesf2
- cmp r0, 0
- blt _0811898E
-_08118926:
- adds r1, r6, 0
- adds r1, 0x7D
- movs r0, 0xFF
- strb r0, [r1]
- ldrb r1, [r6, 0x3]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r6, 0x3]
- adds r0, r5, 0
- adds r0, 0x2B
- ldrb r1, [r0]
- adds r1, 0x3
- lsls r1, 24
- lsrs r1, 24
- adds r0, r5, 0
- bl StartSpriteAnim
- adds r0, r5, 0
- bl sub_81186B8
- movs r0, 0x1E
- strh r0, [r5, 0x36]
- adds r0, r5, 0
- bl sub_811866C
- movs r1, 0x3A
- ldrsh r0, [r5, r1]
- movs r1, 0x1E
- bl __divsi3
- lsls r0, 16
- asrs r0, 16
- lsls r1, r0, 4
- subs r1, r0
- lsls r1, 1
- adds r1, 0xF
- strh r1, [r5, 0x3A]
- ldr r0, _0811899C @ =sub_8118834
- str r0, [r5, 0x1C]
- movs r0, 0x47
- bl m4aSongNumStartOrChange
- adds r2, r6, 0
- adds r2, 0x9C
- adds r1, r6, 0
- adds r1, 0x98
- ldr r0, _081189A0 @ =0x00000000
- str r0, [r1]
- str r0, [r2]
- subs r1, 0xC
- ldr r0, _081189A4 @ =0xbf800000
- str r0, [r1]
-_0811898E:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08118994: .4byte 0x02019000
-_08118998: .4byte 0x40000000
-_0811899C: .4byte sub_8118834
-_081189A0: .4byte 0x00000000
-_081189A4: .4byte 0xbf800000
- thumb_func_end sub_811889C
-
- thumb_func_start sub_81189A8
-sub_81189A8: @ 81189A8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- adds r7, r0, 0
- bl sub_8118724
- movs r1, 0x34
- ldrsh r0, [r7, r1]
- cmp r0, 0
- beq _081189C6
- cmp r0, 0xB4
- beq _08118A2C
- b _08118B0C
-_081189C6:
- movs r1, 0x2E
- ldrsh r0, [r7, r1]
- cmp r0, 0x1
- bne _081189D0
- b _08118B0C
-_081189D0:
- movs r1, 0x3C
- ldrsh r0, [r7, r1]
- bl __floatsisf
- mov r8, r0
- ldr r0, _08118A24 @ =gUnknown_083F8DF4
- mov r9, r0
- ldr r1, _08118A28 @ =0x02019000
- mov r10, r1
- ldrb r4, [r1, 0x4]
- lsls r4, 30
- lsrs r0, r4, 25
- add r0, r9
- ldrb r0, [r0, 0x1]
- bl __floatsisf
- adds r1, r0, 0
- mov r0, r8
- bl __mulsf3
- adds r6, r0, 0
- lsrs r0, r4, 25
- add r0, r9
- ldrb r0, [r0, 0x2]
- subs r0, 0x1
- bl __floatsisf
- adds r1, r0, 0
- adds r0, r6, 0
- bl __addsf3
- adds r5, r0, 0
- lsrs r4, 25
- add r4, r9
- ldrh r0, [r4, 0xC]
- bl __floatsisf
- adds r1, r0, 0
- mov r0, r8
- bl __divsf3
- b _08118A8A
- .align 2, 0
-_08118A24: .4byte gUnknown_083F8DF4
-_08118A28: .4byte 0x02019000
-_08118A2C:
- movs r1, 0x2E
- ldrsh r0, [r7, r1]
- cmp r0, 0
- beq _08118B0C
- movs r1, 0x3C
- ldrsh r0, [r7, r1]
- bl __floatsisf
- mov r8, r0
- ldr r0, _08118B1C @ =gUnknown_083F8DF4
- mov r9, r0
- ldr r1, _08118B20 @ =0x02019000
- mov r10, r1
- ldrb r4, [r1, 0x4]
- lsls r4, 30
- lsrs r0, r4, 25
- add r0, r9
- ldrb r0, [r0, 0x1]
- bl __floatsisf
- adds r1, r0, 0
- mov r0, r8
- bl __mulsf3
- adds r6, r0, 0
- lsrs r0, r4, 25
- add r0, r9
- ldrb r0, [r0, 0x2]
- subs r0, 0x1
- bl __floatsisf
- adds r1, r0, 0
- adds r0, r6, 0
- bl __addsf3
- adds r5, r0, 0
- lsrs r4, 25
- add r4, r9
- ldrh r0, [r4, 0xC]
- bl __floatsisf
- adds r1, r0, 0
- mov r0, r8
- bl __divsf3
- bl __negsf2
-_08118A8A:
- adds r2, r0, 0
- mov r6, r10
- adds r1, r6, 0
- adds r1, 0xA0
- adds r0, r6, 0
- adds r0, 0x94
- ldr r0, [r0]
- str r0, [r1]
- adds r0, r6, 0
- adds r0, 0x98
- str r2, [r0]
- movs r0, 0x9C
- adds r0, r6
- mov r8, r0
- adds r0, r2, 0
- adds r1, r2, 0
- bl __addsf3
- adds r1, r5, 0
- bl __divsf3
- adds r4, r0, 0
- adds r0, r5, 0
- adds r1, r5, 0
- bl __mulsf3
- adds r1, r0, 0
- ldr r0, _08118B24 @ =0x40000000
- bl __divsf3
- adds r1, r0, 0
- adds r0, r4, 0
- bl __addsf3
- bl __negsf2
- mov r1, r8
- str r0, [r1]
- adds r1, r6, 0
- adds r1, 0x8C
- ldr r0, _08118B28 @ =0x00000000
- str r0, [r1]
- adds r2, r7, 0
- adds r2, 0x2C
- ldrb r1, [r2]
- movs r0, 0x41
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- adds r0, r7, 0
- adds r0, 0x2A
- movs r2, 0
- strb r2, [r0]
- adds r3, r7, 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]
- ldr r0, _08118B2C @ =sub_811889C
- str r0, [r7, 0x1C]
- strh r2, [r7, 0x32]
-_08118B0C:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08118B1C: .4byte gUnknown_083F8DF4
-_08118B20: .4byte 0x02019000
-_08118B24: .4byte 0x40000000
-_08118B28: .4byte 0x00000000
-_08118B2C: .4byte sub_811889C
- thumb_func_end sub_81189A8
-
- thumb_func_start sub_8118B30
-sub_8118B30: @ 8118B30
- push {r4,r5,lr}
- adds r5, r0, 0
- movs r1, 0x32
- ldrsh r0, [r5, r1]
- bl __floatsisf
- adds r4, r0, 0
- ldr r1, _08118BCC @ =0x3d4ccccd
- bl __mulsf3
- adds r1, r4, 0
- bl __mulsf3
- bl __fixsfsi
- adds r1, r0, 0
- subs r1, 0x2D
- strh r1, [r5, 0x26]
- ldrh r0, [r5, 0x32]
- adds r0, 0x1
- strh r0, [r5, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1D
- ble _08118BC6
- lsls r0, r1, 16
- cmp r0, 0
- blt _08118BC6
- ldr r4, _08118BD0 @ =0x02019000
- adds r1, r4, 0
- adds r1, 0x7D
- movs r0, 0xFF
- strb r0, [r1]
- ldrb r1, [r4, 0x3]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r4, 0x3]
- adds r0, r5, 0
- adds r0, 0x2B
- ldrb r1, [r0]
- adds r1, 0x3
- lsls r1, 24
- lsrs r1, 24
- adds r0, r5, 0
- bl StartSpriteAnim
- adds r0, r5, 0
- bl sub_81186B8
- movs r0, 0x1E
- strh r0, [r5, 0x36]
- adds r0, r5, 0
- bl sub_811866C
- movs r1, 0x3A
- ldrsh r0, [r5, r1]
- movs r1, 0x1E
- bl __divsi3
- lsls r0, 16
- asrs r0, 16
- lsls r1, r0, 4
- subs r1, r0
- lsls r1, 1
- adds r1, 0xF
- strh r1, [r5, 0x3A]
- ldr r0, _08118BD4 @ =sub_8118834
- str r0, [r5, 0x1C]
- movs r0, 0x47
- bl m4aSongNumStartOrChange
- ldrb r0, [r4, 0x3]
- movs r1, 0x40
- orrs r0, r1
- strb r0, [r4, 0x3]
-_08118BC6:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08118BCC: .4byte 0x3d4ccccd
-_08118BD0: .4byte 0x02019000
-_08118BD4: .4byte sub_8118834
- thumb_func_end sub_8118B30
-
- thumb_func_start sub_8118BD8
-sub_8118BD8: @ 8118BD8
- push {r4,lr}
- adds r3, r0, 0
- ldrh r0, [r3, 0x32]
- adds r1, r0, 0x1
- strh r1, [r3, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x2C
- bgt _08118C1C
- ldrh r4, [r3, 0x26]
- subs r0, r4, 0x1
- strh r0, [r3, 0x26]
- lsls r0, r1, 16
- asrs r0, 16
- cmp r0, 0x2D
- bne _08118CA2
- ldr r2, _08118C14 @ =gSprites
- ldr r0, _08118C18 @ =0x02019000
- adds r0, 0x73
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- adds r0, 0x2B
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _08118CA2
- strh r4, [r3, 0x26]
- b _08118CA2
- .align 2, 0
-_08118C14: .4byte gSprites
-_08118C18: .4byte 0x02019000
-_08118C1C:
- lsls r0, r1, 16
- asrs r0, 16
- movs r2, 0x3C
- ldrsh r1, [r3, r2]
- cmp r0, r1
- bge _08118C68
- ldr r2, _08118C58 @ =gSprites
- ldr r0, _08118C5C @ =0x02019000
- adds r0, 0x73
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r0, r2
- adds r0, r1, 0
- adds r0, 0x2C
- ldrb r0, [r0]
- lsls r0, 26
- cmp r0, 0
- bne _08118CA2
- adds r0, r1, 0
- adds r0, 0x2B
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _08118C60
- ldrh r0, [r3, 0x26]
- adds r0, 0x1
- strh r0, [r3, 0x26]
- b _08118CA2
- .align 2, 0
-_08118C58: .4byte gSprites
-_08118C5C: .4byte 0x02019000
-_08118C60:
- ldrh r0, [r3, 0x26]
- subs r0, 0x1
- strh r0, [r3, 0x26]
- b _08118CA2
-_08118C68:
- adds r2, r3, 0
- adds r2, 0x2C
- ldrb r1, [r2]
- movs r0, 0x41
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- adds r1, r3, 0
- adds r1, 0x2A
- movs r2, 0
- movs r0, 0x1
- strb r0, [r1]
- movs r0, 0x3F
- adds r0, r3
- mov r12, r0
- ldrb r0, [r0]
- movs r1, 0x4
- orrs r0, r1
- movs r1, 0x11
- negs r1, r1
- ands r0, r1
- mov r1, r12
- strb r0, [r1]
- strh r2, [r3, 0x32]
- ldr r0, _08118CA8 @ =sub_8118B30
- str r0, [r3, 0x1C]
- movs r0, 0x3D
- bl m4aSongNumStart
-_08118CA2:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08118CA8: .4byte sub_8118B30
- thumb_func_end sub_8118BD8
-
- thumb_func_start sub_8118CAC
-sub_8118CAC: @ 8118CAC
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8118724
- movs r0, 0x34
- ldrsh r1, [r4, r0]
- cmp r1, 0x5A
- beq _08118CC6
- movs r0, 0x87
- lsls r0, 1
- cmp r1, r0
- beq _08118CD0
- b _08118CE0
-_08118CC6:
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- beq _08118CE0
- b _08118CD8
-_08118CD0:
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _08118CE0
-_08118CD8:
- ldr r0, _08118CE8 @ =sub_8118BD8
- str r0, [r4, 0x1C]
- movs r0, 0
- strh r0, [r4, 0x32]
-_08118CE0:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08118CE8: .4byte sub_8118BD8
- thumb_func_end sub_8118CAC
-
- thumb_func_start sub_8118CEC
-sub_8118CEC: @ 8118CEC
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8118724
- ldr r0, _08118D10 @ =0x02019000
- ldrb r0, [r0, 0x3]
- lsls r0, 27
- lsrs r0, 27
- cmp r0, 0
- beq _08118D04
- cmp r0, 0x1
- beq _08118D18
-_08118D04:
- adds r0, r4, 0
- bl sub_8119224
- ldr r0, _08118D14 @ =sub_81189A8
- b _08118D20
- .align 2, 0
-_08118D10: .4byte 0x02019000
-_08118D14: .4byte sub_81189A8
-_08118D18:
- adds r0, r4, 0
- bl sub_81193D4
- ldr r0, _08118D28 @ =sub_8118CAC
-_08118D20:
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08118D28: .4byte sub_8118CAC
- thumb_func_end sub_8118CEC
-
- thumb_func_start prev_quest_read_x24_hm_usage
-prev_quest_read_x24_hm_usage: @ 8118D2C
- push {r4,r5,lr}
- adds r5, r0, 0
- bl sub_8118724
- ldrh r0, [r5, 0x32]
- subs r0, 0x1
- strh r0, [r5, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xF
- bne _08118D50
- ldr r4, _08118DB8 @ =0x02019000
- adds r4, 0x98
- ldr r0, [r4]
- ldr r1, _08118DBC @ =0xbf800000
- bl __mulsf3
- str r0, [r4]
-_08118D50:
- movs r1, 0x32
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _08118DDC
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _08118DC4
- ldr r1, _08118DB8 @ =0x02019000
- adds r2, r1, 0
- adds r2, 0x7D
- movs r0, 0xFF
- strb r0, [r2]
- ldrb r2, [r1, 0x3]
- movs r0, 0x7F
- ands r0, r2
- strb r0, [r1, 0x3]
- adds r0, r5, 0
- adds r0, 0x2B
- ldrb r1, [r0]
- adds r1, 0x3
- lsls r1, 24
- lsrs r1, 24
- adds r0, r5, 0
- bl StartSpriteAnim
- adds r0, r5, 0
- bl sub_81186B8
- movs r0, 0x1E
- strh r0, [r5, 0x36]
- adds r0, r5, 0
- bl sub_811866C
- movs r1, 0x3A
- ldrsh r0, [r5, r1]
- movs r1, 0x1E
- bl __divsi3
- lsls r0, 16
- asrs r0, 16
- lsls r1, r0, 4
- subs r1, r0
- lsls r1, 1
- adds r1, 0xF
- strh r1, [r5, 0x3A]
- ldr r0, _08118DC0 @ =sub_8118834
- str r0, [r5, 0x1C]
- movs r0, 0x47
- bl m4aSongNumStartOrChange
- b _08118DDC
- .align 2, 0
-_08118DB8: .4byte 0x02019000
-_08118DBC: .4byte 0xbf800000
-_08118DC0: .4byte sub_8118834
-_08118DC4:
- adds r0, r5, 0
- adds r0, 0x2C
- ldrb r1, [r0]
- movs r2, 0x40
- orrs r1, r2
- strb r1, [r0]
- movs r0, 0x38
- bl m4aSongNumStart
- adds r0, r5, 0
- bl sub_811952C
-_08118DDC:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end prev_quest_read_x24_hm_usage
-
- thumb_func_start sub_8118DE4
-sub_8118DE4: @ 8118DE4
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- adds r7, r0, 0
- bl sub_8118724
- movs r0, 0
- strh r0, [r7, 0x32]
- adds r0, r7, 0
- bl sub_81186B8
- ldr r1, _08118E70 @ =gUnknown_083F8D90
- ldr r6, _08118E74 @ =0x02019000
- movs r0, 0x7E
- adds r0, r6
- mov r8, r0
- ldrb r0, [r0]
- lsls r0, 3
- adds r1, 0x4
- adds r0, r1
- ldr r0, [r0]
- ldr r1, [r6, 0x8]
- ands r0, r1
- cmp r0, 0
- bne _08118E7C
- adds r1, r6, 0
- adds r1, 0x7D
- movs r0, 0xFF
- strb r0, [r1]
- ldrb r1, [r6, 0x3]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r6, 0x3]
- adds r0, r7, 0
- adds r0, 0x2B
- ldrb r1, [r0]
- adds r1, 0x3
- lsls r1, 24
- lsrs r1, 24
- adds r0, r7, 0
- bl StartSpriteAnim
- adds r0, r7, 0
- bl sub_81186B8
- movs r0, 0x1E
- strh r0, [r7, 0x36]
- adds r0, r7, 0
- bl sub_811866C
- movs r1, 0x3A
- ldrsh r0, [r7, r1]
- movs r1, 0x1E
- bl __divsi3
- lsls r0, 16
- asrs r0, 16
- lsls r1, r0, 4
- subs r1, r0
- lsls r1, 1
- adds r1, 0xF
- strh r1, [r7, 0x3A]
- ldr r0, _08118E78 @ =sub_8118834
- str r0, [r7, 0x1C]
- movs r0, 0x47
- bl m4aSongNumStartOrChange
- b _08118F74
- .align 2, 0
-_08118E70: .4byte gUnknown_083F8D90
-_08118E74: .4byte 0x02019000
-_08118E78: .4byte sub_8118834
-_08118E7C:
- movs r0, 0x38
- bl m4aSongNumStart
- bl Random
- movs r2, 0x1
- mov r9, r2
- mov r1, r9
- ands r1, r0
- mov r9, r1
- cmp r1, 0
- beq _08118EC0
- adds r1, r6, 0
- adds r1, 0x8C
- ldr r0, _08118EB8 @ =0x00000000
- str r0, [r1]
- mov r2, r8
- ldrb r0, [r2]
- adds r0, 0x1
- movs r1, 0xC
- bl __modsi3
- lsls r1, r0, 24
- lsrs r2, r1, 24
- adds r1, r6, 0
- adds r1, 0x7F
- strb r0, [r1]
- ldr r5, _08118EBC @ =gUnknown_083F8DF4
- b _08118EF4
- .align 2, 0
-_08118EB8: .4byte 0x00000000
-_08118EBC: .4byte gUnknown_083F8DF4
-_08118EC0:
- adds r4, r6, 0
- adds r4, 0x8C
- ldr r5, _08118F1C @ =gUnknown_083F8DF4
- ldrb r0, [r6, 0x4]
- lsls r0, 30
- lsrs r0, 25
- adds r1, r5, 0
- adds r1, 0x1C
- adds r0, r1
- ldr r1, [r0]
- adds r0, r1, 0
- bl __addsf3
- str r0, [r4]
- mov r0, r8
- ldrb r4, [r0]
- adds r0, r4, 0
- adds r0, 0xB
- movs r1, 0xC
- bl __modsi3
- lsls r0, 24
- lsrs r2, r0, 24
- adds r0, r6, 0
- adds r0, 0x7F
- strb r4, [r0]
-_08118EF4:
- ldr r0, _08118F20 @ =gUnknown_083F8D90
- lsls r1, r2, 3
- adds r0, 0x4
- adds r1, r0
- ldr r2, _08118F24 @ =0x02019000
- ldr r1, [r1]
- ldr r0, [r2, 0x8]
- ands r1, r0
- cmp r1, 0
- beq _08118F28
- movs r0, 0x1
- strh r0, [r7, 0x2E]
- ldrb r0, [r2, 0x4]
- lsls r0, 30
- lsrs r0, 25
- adds r0, r5
- ldrb r0, [r0, 0x2]
- strh r0, [r7, 0x32]
- b _08118F64
- .align 2, 0
-_08118F1C: .4byte gUnknown_083F8DF4
-_08118F20: .4byte gUnknown_083F8D90
-_08118F24: .4byte 0x02019000
-_08118F28:
- strh r1, [r7, 0x2E]
- ldrb r1, [r2, 0x4]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- beq _08118F40
- lsls r0, r1, 30
- lsrs r0, 25
- adds r0, r5
- ldrb r0, [r0, 0x1]
- strh r0, [r7, 0x32]
- b _08118F64
-_08118F40:
- lsls r0, r1, 30
- lsrs r0, 25
- adds r0, r5
- ldrb r0, [r0, 0x2]
- strh r0, [r7, 0x32]
- mov r1, r9
- cmp r1, 0
- beq _08118F5C
- adds r1, r2, 0
- adds r1, 0x8C
- ldr r0, _08118F58 @ =0x3f000000
- b _08118F62
- .align 2, 0
-_08118F58: .4byte 0x3f000000
-_08118F5C:
- adds r1, r2, 0
- adds r1, 0x8C
- ldr r0, _08118F80 @ =0xbfc00000
-_08118F62:
- str r0, [r1]
-_08118F64:
- adds r1, r2, 0
- adds r1, 0x98
- ldr r0, _08118F84 @ =0x3dae147b
- str r0, [r1]
- ldr r0, _08118F88 @ =prev_quest_read_x24_hm_usage
- str r0, [r7, 0x1C]
- movs r0, 0x5
- strh r0, [r7, 0x30]
-_08118F74:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08118F80: .4byte 0xbfc00000
-_08118F84: .4byte 0x3dae147b
-_08118F88: .4byte prev_quest_read_x24_hm_usage
- thumb_func_end sub_8118DE4
-
- thumb_func_start sub_8118F8C
-sub_8118F8C: @ 8118F8C
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- adds r6, r0, 0
- bl sub_8118724
- ldr r5, _08119018 @ =0x02019000
- movs r0, 0x8C
- adds r0, r5
- mov r8, r0
- ldr r0, [r0]
- ldr r1, _0811901C @ =0x3f000000
- bl __gtsf2
- cmp r0, 0
- bgt _0811906E
- adds r0, r6, 0
- bl sub_81186B8
- adds r0, r6, 0
- bl sub_81186E8
- lsls r0, 16
- cmp r0, 0
- bne _08119030
- adds r1, r5, 0
- adds r1, 0x90
- ldr r0, _08119020 @ =0x00000000
- str r0, [r1]
- ldr r1, _08119024 @ =gUnknown_083F8DF4
- mov r9, r1
- ldrb r0, [r5, 0x4]
- lsls r7, r0, 30
- lsrs r0, r7, 25
- add r0, r9
- movs r4, 0x3
- ldrsb r4, [r0, r4]
- adds r0, r4, 0
- bl __floatsisf
- adds r5, r0, 0
- cmp r4, 0
- bge _08118FEC
- ldr r1, _08119028 @ =0x43800000
- bl __addsf3
- adds r5, r0, 0
-_08118FEC:
- lsrs r0, r7, 25
- add r0, r9
- ldrb r0, [r0, 0x4]
- adds r0, 0x1
- bl __floatsisf
- adds r1, r0, 0
- adds r0, r5, 0
- bl __divsf3
- adds r1, r0, 0
- mov r2, r8
- ldr r0, [r2]
- bl __subsf3
- mov r1, r8
- str r0, [r1]
- movs r0, 0x4
- strh r0, [r6, 0x30]
- ldr r0, _0811902C @ =sub_8118DE4
- str r0, [r6, 0x1C]
- b _0811906E
- .align 2, 0
-_08119018: .4byte 0x02019000
-_0811901C: .4byte 0x3f000000
-_08119020: .4byte 0x00000000
-_08119024: .4byte gUnknown_083F8DF4
-_08119028: .4byte 0x43800000
-_0811902C: .4byte sub_8118DE4
-_08119030:
- adds r6, r5, 0
- adds r6, 0x90
- ldr r0, [r6]
- ldr r4, _0811907C @ =0x00000000
- adds r1, r4, 0
- bl __nesf2
- cmp r0, 0
- beq _0811906E
- mov r2, r8
- ldr r0, [r2]
- adds r1, r4, 0
- bl __ltsf2
- cmp r0, 0
- bge _0811906E
- str r4, [r6]
- mov r0, r8
- str r4, [r0]
- adds r4, r5, 0
- adds r4, 0x98
- ldr r0, [r4]
- bl __extendsfdf2
- ldr r2, _08119080 @ =0x3ff33333
- ldr r3, _08119084 @ =0x33333333
- bl __divdf3
- bl __truncdfsf2
- str r0, [r4]
-_0811906E:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0811907C: .4byte 0x00000000
-_08119080: .4byte 0x3ff33333
-_08119084: .4byte 0x33333333
- thumb_func_end sub_8118F8C
-
- thumb_func_start sub_8119088
-sub_8119088: @ 8119088
- push {r4-r7,lr}
- adds r6, r0, 0
- bl sub_8118724
- ldr r5, _08119120 @ =0x02019000
- adds r0, r5, 0
- adds r0, 0x94
- ldr r0, [r0]
- ldr r1, _08119124 @ =0x42200000
- bl __gtsf2
- cmp r0, 0
- bgt _0811911A
- adds r7, r5, 0
- adds r7, 0x98
- adds r0, r5, 0
- adds r0, 0x86
- movs r1, 0
- ldrsh r4, [r0, r1]
- adds r0, r4, 0
- bl __floatsisf
- adds r2, r0, 0
- cmp r4, 0
- bge _081190C2
- ldr r1, _08119128 @ =0x47800000
- bl __addsf3
- adds r2, r0, 0
-_081190C2:
- ldr r0, _0811912C @ =0x40800000
- adds r1, r2, 0
- bl __divsf3
- bl __negsf2
- str r0, [r7]
- adds r7, r5, 0
- adds r7, 0x90
- adds r5, 0x8C
- adds r0, r4, 0
- bl __floatsisf
- adds r2, r0, 0
- cmp r4, 0
- bge _081190EA
- ldr r1, _08119128 @ =0x47800000
- bl __addsf3
- adds r2, r0, 0
-_081190EA:
- ldr r0, [r5]
- adds r1, r2, 0
- bl __divsf3
- bl __negsf2
- str r0, [r7]
- adds r1, r6, 0
- adds r1, 0x2A
- movs r0, 0x2
- strb r0, [r1]
- adds r2, r6, 0
- adds r2, 0x3F
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- movs r1, 0x11
- negs r1, r1
- ands r0, r1
- strb r0, [r2]
- movs r0, 0x3
- strh r0, [r6, 0x30]
- ldr r0, _08119130 @ =sub_8118F8C
- str r0, [r6, 0x1C]
-_0811911A:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08119120: .4byte 0x02019000
-_08119124: .4byte 0x42200000
-_08119128: .4byte 0x47800000
-_0811912C: .4byte 0x40800000
-_08119130: .4byte sub_8118F8C
- thumb_func_end sub_8119088
-
- thumb_func_start sub_8119134
-sub_8119134: @ 8119134
- push {r4-r7,lr}
- adds r6, r0, 0
- bl sub_8118724
- ldr r4, _081191DC @ =0x02019000
- adds r0, r4, 0
- adds r0, 0x94
- ldr r0, [r0]
- ldr r1, _081191E0 @ =0x42700000
- bl __gtsf2
- cmp r0, 0
- bgt _081191D4
- movs r0, 0x5D
- bl m4aSongNumStartOrChange
- adds r7, r4, 0
- adds r7, 0x98
- adds r0, r4, 0
- adds r0, 0x84
- movs r1, 0
- ldrsh r5, [r0, r1]
- adds r0, r5, 0
- bl __floatsisf
- adds r2, r0, 0
- cmp r5, 0
- bge _08119174
- ldr r1, _081191E4 @ =0x47800000
- bl __addsf3
- adds r2, r0, 0
-_08119174:
- ldr r0, _081191E8 @ =0x41a00000
- adds r1, r2, 0
- bl __divsf3
- bl __negsf2
- str r0, [r7]
- adds r7, r4, 0
- adds r7, 0x90
- adds r0, r4, 0
- adds r0, 0x8C
- ldr r1, [r0]
- ldr r0, _081191EC @ =0x3f800000
- bl __subsf3
- adds r4, r0, 0
- adds r0, r5, 0
- bl __floatsisf
- adds r2, r0, 0
- cmp r5, 0
- bge _081191A8
- ldr r1, _081191E4 @ =0x47800000
- bl __addsf3
- adds r2, r0, 0
-_081191A8:
- adds r0, r4, 0
- adds r1, r2, 0
- bl __divsf3
- str r0, [r7]
- adds r1, r6, 0
- adds r1, 0x2A
- movs r0, 0x1
- strb r0, [r1]
- adds r2, r6, 0
- adds r2, 0x3F
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- movs r1, 0x11
- negs r1, r1
- ands r0, r1
- strb r0, [r2]
- movs r0, 0x2
- strh r0, [r6, 0x30]
- ldr r0, _081191F0 @ =sub_8119088
- str r0, [r6, 0x1C]
-_081191D4:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_081191DC: .4byte 0x02019000
-_081191E0: .4byte 0x42700000
-_081191E4: .4byte 0x47800000
-_081191E8: .4byte 0x41a00000
-_081191EC: .4byte 0x3f800000
-_081191F0: .4byte sub_8119088
- thumb_func_end sub_8119134
-
- thumb_func_start sub_81191F4
-sub_81191F4: @ 81191F4
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0
- movs r0, 0x1
- strh r0, [r4, 0x30]
- strh r1, [r4, 0x32]
- adds r0, r4, 0
- bl sub_8118724
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- ldr r0, _08119220 @ =sub_8119134
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08119220: .4byte sub_8119134
- thumb_func_end sub_81191F4
-
- thumb_func_start sub_8119224
-sub_8119224: @ 8119224
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- adds r7, r0, 0
- ldr r1, _081193B8 @ =gUnknown_083FA60E
- mov r0, sp
- movs r2, 0x8
- bl memcpy
- ldrh r0, [r7, 0x3C]
- subs r0, 0x2
- lsls r0, 16
- lsrs r0, 16
- mov r9, r0
- ldr r5, _081193BC @ =0x02019000
- ldr r0, _081193C0 @ =gSpriteTemplate_83FA50C
- movs r2, 0xC
- negs r2, r2
- movs r1, 0x24
- movs r3, 0x32
- bl CreateSprite
- adds r1, r5, 0
- adds r1, 0x73
- strb r0, [r1]
- ldr r4, _081193C4 @ =gSpriteTemplate_83FA5C0
- movs r0, 0x2E
- ldrsh r2, [r7, r0]
- lsls r2, 2
- mov r1, sp
- adds r0, r1, r2
- movs r3, 0
- ldrsh r1, [r0, r3]
- mov r0, sp
- adds r0, 0x2
- adds r0, r2
- movs r3, 0
- ldrsh r2, [r0, r3]
- adds r0, r4, 0
- movs r3, 0x3B
- bl CreateSprite
- adds r1, r5, 0
- adds r1, 0x74
- strb r0, [r1]
- adds r4, 0x18
- adds r0, r4, 0
- movs r1, 0x24
- movs r2, 0x8C
- movs r3, 0x33
- bl CreateSprite
- adds r1, r5, 0
- adds r1, 0x75
- strb r0, [r1]
- ldr r3, _081193C8 @ =gSprites
- ldrb r1, [r1]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrb r2, [r0, 0x1]
- movs r1, 0xD
- negs r1, r1
- ands r1, r2
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0, 0x1]
- movs r6, 0
- adds r4, r3, 0
- mov r12, r5
- ldr r0, _081193CC @ =gUnknown_083F8DF4
- mov r8, r0
- mov r10, r12
-_081192BE:
- mov r1, r12
- adds r3, r1, r6
- adds r3, 0x73
- ldrb r0, [r3]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- adds r1, 0x3E
- ldrb r2, [r1]
- movs r0, 0x3
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- adds r0, 0x2C
- ldrb r1, [r0]
- movs r2, 0x40
- orrs r1, r2
- strb r1, [r0]
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- adds r0, 0x2C
- ldrb r1, [r0]
- movs r2, 0x80
- orrs r1, r2
- strb r1, [r0]
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- mov r1, r12
- adds r1, 0x73
- ldrb r1, [r1]
- strh r1, [r0, 0x36]
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- mov r5, r12
- adds r5, 0x74
- ldrb r1, [r5]
- strh r1, [r0, 0x38]
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- mov r1, r12
- adds r1, 0x75
- ldrb r1, [r1]
- strh r1, [r0, 0x3A]
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- mov r1, r9
- strh r1, [r0, 0x32]
- ldrb r0, [r3]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r4
- movs r0, 0x3C
- ldrsh r3, [r7, r0]
- mov r0, r12
- ldrb r1, [r0, 0x4]
- lsls r1, 30
- lsrs r0, r1, 25
- add r0, r8
- ldrb r0, [r0, 0x1]
- muls r3, r0
- lsrs r1, 25
- add r1, r8
- ldrb r0, [r1, 0x2]
- ldr r1, _081193D0 @ =0x0000ffff
- adds r0, r1
- adds r3, r0
- strh r3, [r2, 0x34]
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r2, _081193C8 @ =gSprites
- cmp r6, 0x2
- bls _081192BE
- ldrb r1, [r5]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x2
- orrs r1, r2
- strb r1, [r0]
- mov r3, r10
- str r7, [r3, 0x38]
- 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
-_081193B8: .4byte gUnknown_083FA60E
-_081193BC: .4byte 0x02019000
-_081193C0: .4byte gSpriteTemplate_83FA50C
-_081193C4: .4byte gSpriteTemplate_83FA5C0
-_081193C8: .4byte gSprites
-_081193CC: .4byte gUnknown_083F8DF4
-_081193D0: .4byte 0x0000ffff
- thumb_func_end sub_8119224
-
- thumb_func_start sub_81193D4
-sub_81193D4: @ 81193D4
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x8
- adds r7, r0, 0
- movs r0, 0
- mov r8, r0
- ldr r1, _08119514 @ =gUnknown_083FA616
- mov r0, sp
- movs r2, 0x8
- bl memcpy
- ldrh r0, [r7, 0x3C]
- subs r0, 0x2
- lsls r0, 16
- lsrs r0, 16
- mov r9, r0
- ldr r0, _08119518 @ =gSpriteTemplate_83FA524
- movs r1, 0x2E
- ldrsh r2, [r7, r1]
- lsls r2, 2
- mov r3, sp
- adds r1, r3, r2
- movs r3, 0
- ldrsh r1, [r1, r3]
- mov r4, sp
- adds r4, 0x2
- adds r2, r4, r2
- movs r3, 0
- ldrsh r2, [r2, r3]
- movs r3, 0x32
- bl CreateSprite
- ldr r6, _0811951C @ =0x02019000
- adds r1, r6, 0
- adds r1, 0x73
- strb r0, [r1]
- ldrb r1, [r1]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r5, _08119520 @ =gSprites
- adds r0, r5
- ldrh r1, [r7, 0x2E]
- lsls r1, 24
- lsrs r1, 24
- bl StartSpriteAnim
- ldr r0, _08119524 @ =gSpriteTemplate_83FA5F0
- movs r1, 0x2E
- ldrsh r2, [r7, r1]
- lsls r2, 2
- mov r3, sp
- adds r1, r3, r2
- movs r3, 0
- ldrsh r1, [r1, r3]
- adds r4, r2
- movs r3, 0
- ldrsh r2, [r4, r3]
- movs r3, 0x33
- bl CreateSprite
- adds r4, r6, 0
- adds r4, 0x74
- strb r0, [r4]
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- adds r0, 0x2C
- ldrb r1, [r0]
- movs r2, 0x80
- orrs r1, r2
- strb r1, [r0]
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- adds r0, 0x2C
- ldrb r1, [r0]
- movs r2, 0x40
- orrs r1, r2
- strb r1, [r0]
- mov r0, r9
- lsls r2, r0, 16
- asrs r2, 16
- ldr r3, _08119528 @ =gUnknown_083F8DF4
- ldrb r1, [r6, 0x4]
- lsls r1, 30
- lsrs r0, r1, 25
- adds r0, r3
- ldrb r0, [r0, 0x1]
- muls r2, r0
- lsrs r1, 25
- adds r1, r3
- ldrh r0, [r1, 0x10]
- adds r0, 0x2D
- adds r2, r0
- strh r2, [r7, 0x3C]
- adds r3, r6, 0
-_081194A2:
- mov r1, r8
- adds r2, r6, r1
- adds r2, 0x73
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- adds r1, r6, 0
- adds r1, 0x73
- ldrb r1, [r1]
- strh r1, [r0, 0x36]
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldrb r1, [r4]
- strh r1, [r0, 0x38]
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldrb r1, [r4]
- strh r1, [r0, 0x3A]
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- mov r1, r9
- strh r1, [r0, 0x32]
- ldrb r0, [r2]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- ldrh r0, [r7, 0x3C]
- subs r0, 0x2D
- strh r0, [r1, 0x34]
- mov r0, r8
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- cmp r0, 0x1
- bls _081194A2
- str r7, [r3, 0x38]
- add sp, 0x8
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08119514: .4byte gUnknown_083FA616
-_08119518: .4byte gSpriteTemplate_83FA524
-_0811951C: .4byte 0x02019000
-_08119520: .4byte gSprites
-_08119524: .4byte gSpriteTemplate_83FA5F0
-_08119528: .4byte gUnknown_083F8DF4
- thumb_func_end sub_81193D4
-
- thumb_func_start sub_811952C
-sub_811952C: @ 811952C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x14
- mov r8, r0
- movs r0, 0
- mov r10, r0
- movs r1, 0x5
- mov r9, r1
- movs r2, 0
- str r2, [sp, 0xC]
- mov r0, sp
- movs r1, 0
- movs r2, 0xA
- bl memset
- bl Random
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp, 0x10]
- ldr r7, _08119610 @ =0x02019000
- adds r0, r7, 0
- adds r0, 0x7D
- movs r6, 0x1
- strb r6, [r0]
- ldrb r4, [r7, 0x3]
- movs r0, 0x20
- orrs r4, r0
- movs r0, 0x41
- negs r0, r0
- ands r4, r0
- strb r4, [r7, 0x3]
- adds r1, r7, 0
- adds r1, 0x7E
- movs r0, 0xFF
- strb r0, [r1]
- adds r5, r7, 0
- adds r5, 0x88
- mov r3, r8
- movs r1, 0x34
- ldrsh r0, [r3, r1]
- bl __floatsisf
- str r0, [r5]
- adds r1, r7, 0
- adds r1, 0x98
- ldr r0, _08119614 @ =0x00000000
- str r0, [r1]
- adds r3, r7, 0
- adds r3, 0x8C
- ldr r2, _08119618 @ =gUnknown_083F8DF4
- ldrb r0, [r7, 0x4]
- lsls r0, 30
- lsrs r1, r0, 25
- adds r2, 0x1C
- adds r1, r2
- ldr r1, [r1]
- str r1, [r3]
- lsrs r0, 30
- lsls r1, r0, 4
- subs r1, r0
- lsls r1, 1
- adds r1, 0x21
- lsls r4, 27
- lsrs r4, 27
- subs r6, r4
- lsls r0, r6, 4
- subs r0, r6
- adds r1, r0
- lsls r1, 16
- lsrs r1, 16
- mov r5, r10
- mov r3, r8
- movs r0, 0x34
- ldrsh r2, [r3, r0]
-_081195C8:
- cmp r1, r2
- bge _081195D4
- adds r0, r1, 0
- adds r0, 0x5A
- cmp r2, r0
- ble _08119638
-_081195D4:
- cmp r5, 0x3
- beq _0811961C
- adds r0, r1, 0
- adds r0, 0x5A
- lsls r0, 16
- lsrs r1, r0, 16
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x3
- bls _081195C8
-_081195EA:
- ldr r0, _08119610 @ =0x02019000
- ldrb r1, [r0, 0x3]
- movs r0, 0x1F
- ands r0, r1
- cmp r0, 0
- beq _08119664
- mov r1, r8
- movs r2, 0x2E
- ldrsh r0, [r1, r2]
- cmp r0, 0
- beq _08119658
- movs r0, 0x98
- lsls r0, 1
- movs r1, 0x3F
- negs r1, r1
- bl PlayCry1
- b _08119670
- .align 2, 0
-_08119610: .4byte 0x02019000
-_08119614: .4byte 0x00000000
-_08119618: .4byte gUnknown_083F8DF4
-_0811961C:
- movs r0, 0x1
- mov r3, r8
- strh r0, [r3, 0x2E]
- ldr r2, _08119634 @ =0x02019000
- ldrb r1, [r2, 0x3]
- subs r0, 0x21
- ands r0, r1
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2, 0x3]
- b _081195EA
- .align 2, 0
-_08119634: .4byte 0x02019000
-_08119638:
- lsrs r0, r5, 1
- mov r1, r8
- strh r0, [r1, 0x2E]
- ldr r3, _08119654 @ =0x02019000
- movs r1, 0x1
- ands r1, r5
- ldrb r2, [r3, 0x3]
- movs r0, 0x20
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3, 0x3]
- b _081195EA
- .align 2, 0
-_08119654: .4byte 0x02019000
-_08119658:
- movs r0, 0x98
- lsls r0, 1
- movs r1, 0x3F
- bl PlayCry1
- b _08119670
-_08119664:
- movs r0, 0x99
- lsls r0, 1
- movs r1, 0x3F
- negs r1, r1
- bl PlayCry1
-_08119670:
- movs r5, 0x2
- ldr r4, _081196A0 @ =0x02019000
- adds r0, r4, 0
- adds r0, 0x7F
- ldrb r0, [r0]
- adds r0, 0x2
- movs r1, 0xC
- bl __modsi3
- lsls r0, 24
- lsrs r3, r0, 24
- ldrb r1, [r4, 0x3]
- movs r0, 0x1F
- ands r0, r1
- cmp r0, 0x1
- bne _081196A4
- ldrb r1, [r4, 0x4]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0x1
- bne _081196A4
- mov r0, r9
- adds r0, 0x6
- b _081196A8
- .align 2, 0
-_081196A0: .4byte 0x02019000
-_081196A4:
- mov r2, r9
- adds r0, r2, r5
-_081196A8:
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- cmp r5, r9
- bcs _0811970E
- ldr r6, _08119734 @ =0x02019000
- ldr r7, _08119738 @ =gUnknown_083F8C0C
-_081196B6:
- lsls r0, r3, 3
- ldr r1, _0811973C @ =gUnknown_083F8D94
- adds r0, r1
- ldr r1, [r6, 0x8]
- ldr r2, [r0]
- ands r1, r2
- cmp r1, 0
- bne _081196F8
- mov r0, r10
- adds r1, r0, 0x1
- lsls r1, 24
- lsrs r1, 24
- mov r10, r1
- add r0, sp
- strb r5, [r0]
- ldr r0, [sp, 0xC]
- cmp r0, 0
- bne _081196F8
- ldrb r0, [r6, 0x1A]
- lsls r0, 28
- lsrs r0, 28
- ldr r1, _08119740 @ =0x0201901b
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r7
- ldr r0, [r0]
- ands r2, r0
- cmp r2, 0
- beq _081196F8
- str r5, [sp, 0xC]
-_081196F8:
- adds r0, r3, 0x1
- movs r1, 0xC
- bl __modsi3
- lsls r0, 24
- lsrs r3, r0, 24
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, r9
- bcc _081196B6
-_0811970E:
- ldrb r0, [r4, 0x3]
- lsls r0, 27
- lsrs r0, 27
- adds r0, 0x1
- ldrb r1, [r4, 0x2]
- ands r0, r1
- cmp r0, 0
- beq _08119756
- ldr r2, [sp, 0xC]
- cmp r2, 0
- beq _08119744
- movs r0, 0xFF
- ldr r3, [sp, 0x10]
- ands r0, r3
- cmp r0, 0xBF
- bhi _08119744
- mov r0, r8
- strh r2, [r0, 0x3C]
- b _08119766
- .align 2, 0
-_08119734: .4byte 0x02019000
-_08119738: .4byte gUnknown_083F8C0C
-_0811973C: .4byte gUnknown_083F8D94
-_08119740: .4byte 0x0201901b
-_08119744:
- ldr r0, [sp, 0x10]
- mov r1, r10
- bl __modsi3
- add r0, sp
- ldrb r0, [r0]
- mov r1, r8
- strh r0, [r1, 0x3C]
- b _08119766
-_08119756:
- ldr r0, [sp, 0x10]
- mov r1, r10
- bl __modsi3
- add r0, sp
- ldrb r0, [r0]
- mov r2, r8
- strh r0, [r2, 0x3C]
-_08119766:
- ldr r3, _0811977C @ =sub_8118CEC
- mov r0, r8
- str r3, [r0, 0x1C]
- 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
-_0811977C: .4byte sub_8118CEC
- thumb_func_end sub_811952C
-
- thumb_func_start sub_8119780
-sub_8119780: @ 8119780
- push {r4,lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x30]
- adds r1, r0, 0x1
- strh r1, [r2, 0x30]
- lsls r0, 16
- asrs r0, 16
- movs r3, 0x34
- ldrsh r1, [r2, r3]
- cmp r0, r1
- blt _081197CA
- ldrh r0, [r2, 0x20]
- subs r0, 0x2
- strh r0, [r2, 0x20]
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x10
- negs r1, r1
- cmp r0, r1
- bge _081197CA
- ldr r4, _081197D0 @ =0x02019000
- ldrb r1, [r4, 0x3]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- bne _081197BA
- movs r0, 0x40
- orrs r0, r1
- strb r0, [r4, 0x3]
-_081197BA:
- adds r0, r2, 0
- bl DestroySprite
- movs r0, 0
- strb r0, [r4, 0x1]
- ldr r0, _081197D4 @ =gUnknown_083FA61E
- ldrh r0, [r0]
- strh r0, [r4, 0x34]
-_081197CA:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081197D0: .4byte 0x02019000
-_081197D4: .4byte gUnknown_083FA61E
- thumb_func_end sub_8119780
-
- thumb_func_start sub_81197D8
-sub_81197D8: @ 81197D8
- push {r4,lr}
- sub sp, 0x18
- adds r4, r0, 0
- ldr r1, _08119854 @ =gUnknown_083FA632
- mov r0, sp
- movs r2, 0x18
- bl memcpy
- ldrh r0, [r4, 0x30]
- adds r2, r0, 0x1
- strh r2, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- movs r3, 0x34
- ldrsh r1, [r4, r3]
- cmp r0, r1
- bge _0811985C
- movs r0, 0x1
- ands r2, r0
- cmp r2, 0
- beq _08119836
- ldr r3, _08119858 @ =gSpriteCoordOffsetY
- movs r0, 0x3C
- ldrsh r2, [r4, r0]
- lsls r2, 1
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- lsls r0, 3
- adds r2, r0
- mov r1, sp
- adds r0, r1, r2
- ldrh r0, [r0]
- strh r0, [r3]
- movs r3, 0x3C
- ldrsh r2, [r4, r3]
- adds r1, r2, 0x1
- adds r0, r1, 0
- cmp r1, 0
- bge _0811982E
- adds r0, r2, 0x4
-_0811982E:
- asrs r0, 2
- lsls r0, 2
- subs r0, r1, r0
- strh r0, [r4, 0x3C]
-_08119836:
- 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 _08119884
- .align 2, 0
-_08119854: .4byte gUnknown_083FA632
-_08119858: .4byte gSpriteCoordOffsetY
-_0811985C:
- ldr r1, _0811988C @ =gSpriteCoordOffsetY
- movs r0, 0
- strh r0, [r1]
- ldr r2, _08119890 @ =gSprites
- ldr r0, _08119894 @ =0x02019000
- adds r0, 0x73
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- adds r0, 0x2C
- ldrb r2, [r0]
- movs r1, 0x41
- negs r1, r1
- ands r1, r2
- strb r1, [r0]
- adds r0, r4, 0
- bl DestroySprite
-_08119884:
- add sp, 0x18
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0811988C: .4byte gSpriteCoordOffsetY
-_08119890: .4byte gSprites
-_08119894: .4byte 0x02019000
- thumb_func_end sub_81197D8
-
- thumb_func_start sub_8119898
-sub_8119898: @ 8119898
- push {r4,r5,lr}
- adds r5, r0, 0
- ldrh r0, [r5, 0x30]
- adds r0, 0x1
- strh r0, [r5, 0x30]
- movs r1, 0x30
- ldrsh r0, [r5, r1]
- bl __floatsisf
- adds r4, r0, 0
- ldr r1, _08119948 @ =0x3d1fbe77
- bl __mulsf3
- adds r1, r4, 0
- bl __mulsf3
- bl __fixsfsi
- strh r0, [r5, 0x26]
- ldr r3, _0811994C @ =0x02019000
- ldr r2, _08119950 @ =gUnknown_083FA61E
- ldrb r0, [r3, 0x1]
- subs r0, 0x1
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- lsls r0, 1
- adds r0, r2
- ldrh r0, [r0]
- strh r0, [r3, 0x34]
- ldrb r0, [r3, 0x1]
- cmp r0, 0x12
- bhi _081198DE
- adds r0, 0x1
- strb r0, [r3, 0x1]
-_081198DE:
- movs r1, 0x30
- ldrsh r0, [r5, r1]
- cmp r0, 0x3C
- ble _08119940
- movs r0, 0
- strh r0, [r5, 0x30]
- ldr r3, _08119954 @ =sub_8119780
- str r3, [r5, 0x1C]
- ldr r2, _08119958 @ =gSprites
- movs r0, 0x3A
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r4, r2, 0
- adds r4, 0x1C
- adds r0, r4
- str r3, [r0]
- movs r0, 0x3A
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldr r1, _0811995C @ =0x0000fffe
- strh r1, [r0, 0x30]
- movs r0, 0x38
- 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]
- movs r0, 0x38
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldr r1, _08119960 @ =sub_81197D8
- str r1, [r0]
- movs r0, 0xD6
- bl m4aSongNumStart
-_08119940:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08119948: .4byte 0x3d1fbe77
-_0811994C: .4byte 0x02019000
-_08119950: .4byte gUnknown_083FA61E
-_08119954: .4byte sub_8119780
-_08119958: .4byte gSprites
-_0811995C: .4byte 0x0000fffe
-_08119960: .4byte sub_81197D8
- thumb_func_end sub_8119898
-
- thumb_func_start sub_8119964
-sub_8119964: @ 8119964
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _081199E4
- ldr r3, _08119990 @ =0x02019000
- ldr r1, [r3, 0x38]
- movs r2, 0x2E
- ldrsh r0, [r1, r2]
- cmp r0, 0
- bne _08119998
- movs r0, 0x34
- ldrsh r2, [r1, r0]
- ldr r1, _08119994 @ =gUnknown_083F8DF4
- ldrb r0, [r3, 0x4]
- lsls r0, 30
- lsrs r0, 25
- adds r0, r1
- ldrh r0, [r0, 0x8]
- b _081199AA
- .align 2, 0
-_08119990: .4byte 0x02019000
-_08119994: .4byte gUnknown_083F8DF4
-_08119998:
- movs r0, 0x34
- ldrsh r2, [r1, r0]
- ldr r1, _081199D8 @ =gUnknown_083F8DF4
- ldrb r0, [r3, 0x4]
- lsls r0, 30
- lsrs r0, 25
- adds r0, r1
- ldrh r0, [r0, 0x8]
- adds r0, 0xB4
-_081199AA:
- cmp r2, r0
- bne _08119A78
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- ldrh r0, [r4, 0x3C]
- adds r0, 0x1
- strh r0, [r4, 0x3C]
- movs r0, 0x2B
- bl m4aSongNumStart
- ldr r1, _081199DC @ =0x02019000
- movs r0, 0x1
- strb r0, [r1, 0x1]
- ldr r0, _081199E0 @ =gUnknown_083FA61E
- ldrh r0, [r0]
- strh r0, [r1, 0x34]
- b _08119A78
- .align 2, 0
-_081199D8: .4byte gUnknown_083F8DF4
-_081199DC: .4byte 0x02019000
-_081199E0: .4byte gUnknown_083FA61E
-_081199E4:
- ldr r3, _08119A20 @ =0x02019000
- ldr r2, _08119A24 @ =gUnknown_083FA61E
- ldrb r0, [r3, 0x1]
- subs r0, 0x1
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- lsls r0, 1
- adds r0, r2
- ldrh r0, [r0]
- strh r0, [r3, 0x34]
- ldrb r0, [r3, 0x1]
- cmp r0, 0x12
- bhi _08119A04
- adds r0, 0x1
- strb r0, [r3, 0x1]
-_08119A04:
- ldr r1, [r3, 0x38]
- movs r2, 0x2E
- ldrsh r0, [r1, r2]
- cmp r0, 0
- bne _08119A2C
- movs r0, 0x34
- ldrsh r2, [r1, r0]
- ldr r1, _08119A28 @ =gUnknown_083F8DF4
- ldrb r0, [r3, 0x4]
- lsls r0, 30
- lsrs r0, 25
- adds r0, r1
- ldrh r0, [r0, 0xA]
- b _08119A3E
- .align 2, 0
-_08119A20: .4byte 0x02019000
-_08119A24: .4byte gUnknown_083FA61E
-_08119A28: .4byte gUnknown_083F8DF4
-_08119A2C:
- movs r0, 0x34
- ldrsh r2, [r1, r0]
- ldr r1, _08119A80 @ =gUnknown_083F8DF4
- ldrb r0, [r3, 0x4]
- lsls r0, 30
- lsrs r0, 25
- adds r0, r1
- ldrh r0, [r0, 0xA]
- adds r0, 0xB4
-_08119A3E:
- cmp r2, r0
- bne _08119A78
- ldr r2, _08119A84 @ =gSprites
- movs r0, 0x36
- 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, _08119A88 @ =sub_8119898
- str r1, [r0]
- movs r0, 0x36
- ldrsh r1, [r4, 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]
- ldr r0, _08119A8C @ =SpriteCallbackDummy
- str r0, [r4, 0x1C]
- movs r0, 0
- strh r0, [r4, 0x3C]
-_08119A78:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08119A80: .4byte gUnknown_083F8DF4
-_08119A84: .4byte gSprites
-_08119A88: .4byte sub_8119898
-_08119A8C: .4byte SpriteCallbackDummy
- thumb_func_end sub_8119964
-
- thumb_func_start sub_8119A90
-sub_8119A90: @ 8119A90
- adds r0, 0x3E
- ldrb r3, [r0]
- lsls r1, r3, 29
- lsrs r1, 31
- movs r2, 0x1
- eors r2, r1
- lsls r2, 2
- movs r1, 0x5
- negs r1, r1
- ands r1, r3
- orrs r1, r2
- strb r1, [r0]
- bx lr
- thumb_func_end sub_8119A90
-
- thumb_func_start sub_8119AAC
-sub_8119AAC: @ 8119AAC
- push {r4,r5,lr}
- adds r4, r0, 0
- ldrh r2, [r4, 0x22]
- movs r0, 0x22
- ldrsh r1, [r4, r0]
- movs r0, 0x10
- negs r0, r0
- cmp r1, r0
- ble _08119AC4
- subs r0, r2, 0x1
- strh r0, [r4, 0x22]
- b _08119B12
-_08119AC4:
- ldr r0, _08119B18 @ =SpriteCallbackDummy
- str r0, [r4, 0x1C]
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- subs r2, 0x12
- ldrb r0, [r2]
- movs r1, 0x40
- orrs r0, r1
- strb r0, [r2]
- movs r0, 0x5E
- bl m4aSongNumStop
- adds r0, r4, 0
- bl DestroySprite
- ldr r5, _08119B1C @ =gSprites
- ldr r4, _08119B20 @ =0x02019000
- adds r4, 0x74
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldrb r0, [r0, 0x3]
- lsls r0, 26
- lsrs r0, 27
- bl FreeOamMatrix
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- bl DestroySprite
-_08119B12:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08119B18: .4byte SpriteCallbackDummy
-_08119B1C: .4byte gSprites
-_08119B20: .4byte 0x02019000
- thumb_func_end sub_8119AAC
-
- thumb_func_start sub_8119B24
-sub_8119B24: @ 8119B24
- push {r4,lr}
- adds r4, r0, 0
- ldrh r1, [r4, 0x30]
- movs r2, 0x30
- ldrsh r0, [r4, r2]
- cmp r0, 0
- blt _08119B4E
- subs r1, 0x1
- strh r1, [r4, 0x30]
- ldrh r0, [r4, 0x22]
- subs r0, 0x1
- strh r0, [r4, 0x22]
- lsls r1, 16
- cmp r1, 0
- bne _08119BB8
- adds r0, r4, 0
- adds r0, 0x2B
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _08119BB8
- b _08119B74
-_08119B4E:
- ldrh r1, [r4, 0x34]
- movs r2, 0x34
- ldrsh r0, [r4, r2]
- cmp r0, 0
- blt _08119B84
- subs r0, r1, 0x1
- strh r0, [r4, 0x34]
- adds r0, r4, 0
- adds r0, 0x2C
- ldrb r1, [r0]
- movs r0, 0x3F
- ands r0, r1
- cmp r0, 0
- bne _08119BB8
- adds r0, r4, 0
- adds r0, 0x2B
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _08119B7C
-_08119B74:
- ldrh r0, [r4, 0x26]
- adds r0, 0x1
- strh r0, [r4, 0x26]
- b _08119BB8
-_08119B7C:
- ldrh r0, [r4, 0x26]
- subs r0, 0x1
- strh r0, [r4, 0x26]
- b _08119BB8
-_08119B84:
- movs r0, 0x2B
- bl m4aSongNumStart
- ldr r0, _08119BC0 @ =0x02019000
- ldr r0, [r0, 0x38]
- ldrh r1, [r0, 0x2E]
- adds r1, 0x4
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl StartSpriteAnim
- ldr r0, _08119BC4 @ =sub_8119AAC
- str r0, [r4, 0x1C]
- ldr r2, _08119BC8 @ =gSprites
- movs r0, 0x3A
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- adds r0, 0x2C
- ldrb r2, [r0]
- movs r1, 0x7F
- ands r1, r2
- strb r1, [r0]
-_08119BB8:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08119BC0: .4byte 0x02019000
-_08119BC4: .4byte sub_8119AAC
-_08119BC8: .4byte gSprites
- thumb_func_end sub_8119B24
-
- thumb_func_start sub_8119BCC
-sub_8119BCC: @ 8119BCC
- push {r4,r5,lr}
- sub sp, 0x14
- adds r4, r0, 0
- ldr r1, _08119C44 @ =gUnknown_083FA64A
- mov r0, sp
- movs r2, 0x2
- bl memcpy
- add r5, sp, 0x4
- ldr r1, _08119C48 @ =gUnknown_083FA64C
- adds r0, r5, 0
- movs r2, 0x10
- bl memcpy
- ldrh r0, [r4, 0x30]
- subs r1, r0, 0x1
- strh r1, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x7
- ble _08119C5C
- ldr r0, _08119C4C @ =0x02019000
- ldr r0, [r0, 0x38]
- movs r1, 0x2E
- ldrsh r0, [r0, r1]
- add r0, sp
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- lsls r0, 1
- ldrh r2, [r4, 0x20]
- adds r0, r2
- strh r0, [r4, 0x20]
- bl IsSEPlaying
- lsls r0, 24
- cmp r0, 0
- beq _08119CF6
- movs r1, 0x20
- ldrsh r0, [r4, r1]
- movs r4, 0x74
- subs r4, r0
- lsrs r0, r4, 31
- adds r4, r0
- asrs r4, 1
- negs r4, r4
- ldr r0, _08119C50 @ =gMPlay_SE1
- ldr r5, _08119C54 @ =0x0000ffff
- lsls r4, 24
- asrs r4, 24
- adds r1, r5, 0
- adds r2, r4, 0
- bl m4aMPlayPanpotControl
- ldr r0, _08119C58 @ =gMPlay_SE2
- adds r1, r5, 0
- adds r2, r4, 0
- bl m4aMPlayPanpotControl
- b _08119CF6
- .align 2, 0
-_08119C44: .4byte gUnknown_083FA64A
-_08119C48: .4byte gUnknown_083FA64C
-_08119C4C: .4byte 0x02019000
-_08119C50: .4byte gMPlay_SE1
-_08119C54: .4byte 0x0000ffff
-_08119C58: .4byte gMPlay_SE2
-_08119C5C:
- lsls r0, r1, 16
- cmp r0, 0
- blt _08119CAC
- ldr r0, _08119CA8 @ =0x02019000
- ldr r0, [r0, 0x38]
- movs r2, 0x2E
- ldrsh r0, [r0, r2]
- add r0, sp
- movs r2, 0
- ldrsb r2, [r0, r2]
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- movs r1, 0x7
- subs r0, r1, r0
- lsls r0, 1
- adds r0, r5, r0
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- muls r0, r2
- ldrh r2, [r4, 0x20]
- adds r0, r2
- strh r0, [r4, 0x20]
- movs r2, 0x30
- ldrsh r0, [r4, r2]
- subs r1, r0
- lsls r1, 1
- mov r0, sp
- adds r0, 0x5
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
- b _08119CF6
- .align 2, 0
-_08119CA8: .4byte 0x02019000
-_08119CAC:
- movs r0, 0x5E
- bl m4aSongNumStartOrChange
- ldr r0, _08119CCC @ =0x02019000
- ldr r0, [r0, 0x38]
- movs r2, 0x2E
- ldrsh r0, [r0, r2]
- cmp r0, 0
- bne _08119CD0
- movs r0, 0x98
- lsls r0, 1
- movs r1, 0x3F
- bl PlayCry1
- b _08119CDC
- .align 2, 0
-_08119CCC: .4byte 0x02019000
-_08119CD0:
- movs r0, 0x98
- lsls r0, 1
- movs r1, 0x3F
- negs r1, r1
- bl PlayCry1
-_08119CDC:
- ldr r0, _08119D00 @ =0x02019000
- ldr r0, [r0, 0x38]
- ldrh r1, [r0, 0x2E]
- adds r1, 0x2
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl StartSpriteAnim
- movs r0, 0x2D
- strh r0, [r4, 0x30]
- ldr r0, _08119D04 @ =sub_8119B24
- str r0, [r4, 0x1C]
-_08119CF6:
- add sp, 0x14
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08119D00: .4byte 0x02019000
-_08119D04: .4byte sub_8119B24
- thumb_func_end sub_8119BCC
-
- thumb_func_start sub_8119D08
-sub_8119D08: @ 8119D08
- push {r4,lr}
- sub sp, 0x4
- adds r4, r0, 0
- ldr r1, _08119D64 @ =gUnknown_083FA64A
- mov r0, sp
- movs r2, 0x2
- bl memcpy
- ldrh r0, [r4, 0x30]
- subs r1, r0, 0x1
- strh r1, [r4, 0x30]
- lsls r0, 16
- cmp r0, 0
- blt _08119D70
- ldr r0, _08119D68 @ =0x02019000
- ldr r0, [r0, 0x38]
- movs r1, 0x2E
- ldrsh r0, [r0, r1]
- add r0, sp
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- lsls r0, 1
- ldrh r2, [r4, 0x20]
- adds r0, r2
- strh r0, [r4, 0x20]
- ldr r1, _08119D6C @ =gSprites
- movs r2, 0x3A
- ldrsh r0, [r4, 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]
- b _08119D74
- .align 2, 0
-_08119D64: .4byte gUnknown_083FA64A
-_08119D68: .4byte 0x02019000
-_08119D6C: .4byte gSprites
-_08119D70:
- ldr r0, _08119D7C @ =sub_8119A90
- str r0, [r4, 0x1C]
-_08119D74:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08119D7C: .4byte sub_8119A90
- thumb_func_end sub_8119D08
-
- thumb_func_start sub_8119D80
-sub_8119D80: @ 8119D80
- push {r4,lr}
- adds r4, r0, 0
- ldr r3, _08119DB8 @ =0x02019000
- ldr r1, [r3, 0x38]
- movs r2, 0x2E
- ldrsh r0, [r1, r2]
- cmp r0, 0
- bne _08119DC4
- movs r0, 0x34
- ldrsh r2, [r1, r0]
- ldr r1, _08119DBC @ =gUnknown_083F8DF4
- ldrb r0, [r3, 0x4]
- lsls r0, 30
- lsrs r0, 25
- adds r0, r1
- ldrh r0, [r0, 0x12]
- adds r0, 0x5A
- cmp r2, r0
- bne _08119E26
- ldr r2, _08119DC0 @ =gSprites
- movs r0, 0x3A
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r3, 0x34
- b _08119DEE
- .align 2, 0
-_08119DB8: .4byte 0x02019000
-_08119DBC: .4byte gUnknown_083F8DF4
-_08119DC0: .4byte gSprites
-_08119DC4:
- movs r0, 0x34
- ldrsh r2, [r1, r0]
- ldr r1, _08119E2C @ =gUnknown_083F8DF4
- ldrb r0, [r3, 0x4]
- lsls r0, 30
- lsrs r0, 25
- adds r0, r1
- ldrh r0, [r0, 0x14]
- movs r1, 0x87
- lsls r1, 1
- adds r0, r1
- cmp r2, r0
- bne _08119E26
- ldr r2, _08119E30 @ =gSprites
- movs r0, 0x3A
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r3, 0x2E
-_08119DEE:
- strh r3, [r0, 0x30]
- movs r0, 0x36
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- strh r3, [r0, 0x30]
- movs r0, 0x3A
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r1, _08119E34 @ =sub_8119D08
- str r1, [r0]
- movs r0, 0x36
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldr r1, _08119E38 @ =sub_8119BCC
- str r1, [r0]
- movs r0, 0x2B
- bl m4aSongNumStart
-_08119E26:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08119E2C: .4byte gUnknown_083F8DF4
-_08119E30: .4byte gSprites
-_08119E34: .4byte sub_8119D08
-_08119E38: .4byte sub_8119BCC
- thumb_func_end sub_8119D80
-
- thumb_func_start sub_8119E3C
-sub_8119E3C: @ 8119E3C
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- adds r5, r0, 0
- lsls r1, 24
- lsrs r2, r1, 24
- movs r0, 0
- mov r9, r0
- ldr r6, _08119E60 @ =gUnknown_03005E98
- ldrb r0, [r6]
- cmp r0, 0x1
- beq _08119EE0
- cmp r0, 0x1
- bgt _08119E64
- cmp r0, 0
- beq _08119E6A
- b _08119F74
- .align 2, 0
-_08119E60: .4byte gUnknown_03005E98
-_08119E64:
- cmp r0, 0x2
- beq _08119F60
- b _08119F74
-_08119E6A:
- ldr r4, _08119ECC @ =0x0201c000
- ldrh r0, [r5]
- movs r1, 0
- strh r0, [r4, 0x14]
- ldrb r0, [r5, 0x5]
- strb r0, [r4, 0x16]
- strb r1, [r4, 0x1A]
- strb r1, [r4, 0x1B]
- strb r1, [r4, 0x10]
- movs r0, 0x1C
- strb r0, [r4, 0x12]
- strb r1, [r4, 0x11]
- ldrb r1, [r5, 0x4]
- lsls r1, 19
- negs r1, r1
- asrs r1, 16
- adds r0, r2, 0
- movs r2, 0x1
- bl sub_811A350
- movs r0, 0
- mov r12, r6
- ldr r1, _08119ED0 @ =0x040000d4
- ldr r7, _08119ED4 @ =gUnknown_083FB718
- ldr r2, _08119ED8 @ =0xfffe4000
- adds r6, r4, r2
- ldr r5, _08119EDC @ =0x80000010
-_08119EA0:
- movs r3, 0
- adds r4, r0, 0x1
- lsls r2, r0, 5
-_08119EA6:
- str r7, [r1]
- adds r0, r2, r3
- lsls r0, 5
- adds r0, r6
- str r0, [r1, 0x4]
- str r5, [r1, 0x8]
- ldr r0, [r1, 0x8]
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x1F
- bls _08119EA6
- lsls r0, r4, 24
- lsrs r0, 24
- cmp r0, 0x6
- bls _08119EA0
- mov r1, r12
- b _08119F50
- .align 2, 0
-_08119ECC: .4byte 0x0201c000
-_08119ED0: .4byte 0x040000d4
-_08119ED4: .4byte gUnknown_083FB718
-_08119ED8: .4byte 0xfffe4000
-_08119EDC: .4byte 0x80000010
-_08119EE0:
- ldrb r0, [r5, 0x2]
- lsls r0, 27
- lsrs r7, r0, 16
- ldrb r1, [r5, 0x3]
- lsls r1, 12
- ldrh r0, [r5]
- lsls r0, 18
- lsrs r0, 23
- adds r1, r0
- lsls r1, 16
- lsrs r6, r1, 16
- movs r0, 0
- ldr r2, _08119F58 @ =0x0201c000
- mov r8, r2
- movs r1, 0xC0
- lsls r1, 19
- mov r12, r1
-_08119F02:
- movs r3, 0
- adds r4, r0, 0x1
- lsls r5, r0, 6
-_08119F08:
- lsls r1, r3, 1
- adds r1, r5
- adds r1, r7
- add r1, r12
- adds r2, r6, 0
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- strh r2, [r1]
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x1F
- bls _08119F08
- lsls r0, r4, 24
- lsrs r0, 24
- cmp r0, 0x6
- bls _08119F02
- mov r2, r8
- ldrb r0, [r2, 0x16]
- movs r4, 0
- cmp r0, 0
- beq _08119F4E
- mov r5, r8
-_08119F38:
- adds r0, r4, 0
- movs r1, 0
- bl sub_811A1C8
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- ldrb r0, [r5, 0x16]
- lsls r0, 3
- cmp r4, r0
- blt _08119F38
-_08119F4E:
- ldr r1, _08119F5C @ =gUnknown_03005E98
-_08119F50:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _08119F74
- .align 2, 0
-_08119F58: .4byte 0x0201c000
-_08119F5C: .4byte gUnknown_03005E98
-_08119F60:
- bl sub_811A324
- ldr r0, _08119F84 @ =gUnknown_083FB6F8
- ldrb r1, [r5, 0x3]
- lsls r1, 4
- movs r2, 0x20
- bl LoadPalette
- movs r0, 0x1
- mov r9, r0
-_08119F74:
- mov r0, r9
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08119F84: .4byte gUnknown_083FB6F8
- thumb_func_end sub_8119E3C
-
- thumb_func_start sub_8119F88
-sub_8119F88: @ 8119F88
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl sub_811A324
- adds r0, r4, 0
- bl sub_811A15C
- ldr r1, _08119FC4 @ =0x0201c000
- ldrb r0, [r1, 0x1B]
- cmp r0, 0
- beq _08119FA6
- subs r0, 0x1
- strb r0, [r1, 0x1B]
-_08119FA6:
- ldrb r0, [r1, 0x1A]
- cmp r0, 0
- beq _08119FC8
- subs r0, 0x1
- strb r0, [r1, 0x1A]
- lsls r0, 24
- cmp r0, 0
- bne _08119FC8
- ldrh r0, [r1, 0x18]
- bl sub_811A0A0
- bl sub_811A124
- b _0811A044
- .align 2, 0
-_08119FC4: .4byte 0x0201c000
-_08119FC8:
- ldr r5, _08119FD8 @ =0x0201c000
- ldrb r0, [r5, 0x10]
- cmp r0, 0
- bne _08119FDC
- bl sub_811A124
- b _0811A044
- .align 2, 0
-_08119FD8: .4byte 0x0201c000
-_08119FDC:
- cmp r0, 0x1
- bne _08119FE6
- bl sub_811A0C0
- b _0811A006
-_08119FE6:
- cmp r0, 0x8
- bls _0811A006
- bl IsCryPlaying
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _08119FFE
- bl sub_811A124
- strb r4, [r5, 0x10]
- b _0811A044
-_08119FFE:
- bl sub_811A0C0
- movs r0, 0x1
- strb r0, [r5, 0x10]
-_0811A006:
- ldr r5, _0811A04C @ =0x0201c000
- ldrb r4, [r5, 0x10]
- subs r4, 0x1
- lsls r4, 25
- lsrs r4, 24
- ldrb r0, [r5, 0x16]
- lsls r0, 3
- ldrb r1, [r5, 0x11]
- adds r0, r1
- subs r0, 0x2
- lsls r0, 24
- lsrs r0, 24
- adds r1, r4, r5
- ldrb r1, [r1]
- bl sub_811A1C8
- ldrb r0, [r5, 0x16]
- lsls r0, 3
- ldrb r1, [r5, 0x11]
- adds r0, r1
- subs r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- adds r4, 0x1
- adds r4, r5
- ldrb r1, [r4]
- bl sub_811A1C8
- ldrb r0, [r5, 0x10]
- adds r0, 0x1
- strb r0, [r5, 0x10]
-_0811A044:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0811A04C: .4byte 0x0201c000
- thumb_func_end sub_8119F88
-
- thumb_func_start sub_811A050
-sub_811A050: @ 811A050
- push {r4-r6,lr}
- lsls r0, 16
- lsrs r5, r0, 16
- adds r6, r5, 0
- ldr r0, _0811A08C @ =gMPlay_BGM
- ldr r0, [r0, 0x4]
- cmp r0, 0
- bge _0811A09A
- ldr r4, _0811A090 @ =0x0201c000
- ldrb r0, [r4, 0x1A]
- cmp r0, 0
- bne _0811A09A
- ldrb r0, [r4, 0x1B]
- cmp r0, 0
- bne _0811A09A
- movs r0, 0x4
- strb r0, [r4, 0x1B]
- bl IsCryPlaying
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0811A094
- bl StopCry
- strh r5, [r4, 0x18]
- movs r0, 0x2
- strb r0, [r4, 0x1A]
- b _0811A09A
- .align 2, 0
-_0811A08C: .4byte gMPlay_BGM
-_0811A090: .4byte 0x0201c000
-_0811A094:
- adds r0, r6, 0
- bl sub_811A0A0
-_0811A09A:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_811A050
-
- thumb_func_start sub_811A0A0
-sub_811A0A0: @ 811A0A0
- push {lr}
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0
- movs r2, 0x7D
- movs r3, 0xA
- bl PlayCry2
- ldr r1, _0811A0BC @ =0x0201c000
- movs r0, 0x1
- strb r0, [r1, 0x10]
- pop {r0}
- bx r0
- .align 2, 0
-_0811A0BC: .4byte 0x0201c000
- thumb_func_end sub_811A0A0
-
- thumb_func_start sub_811A0C0
-sub_811A0C0: @ 811A0C0
- push {r4,lr}
- ldr r3, _0811A0D0 @ =gPcmDmaCounter
- movs r0, 0
- ldrsb r0, [r3, r0]
- cmp r0, 0x1
- bgt _0811A0D8
- ldr r0, _0811A0D4 @ =gSoundInfo + 0x350
- b _0811A0F0
- .align 2, 0
-_0811A0D0: .4byte gPcmDmaCounter
-_0811A0D4: .4byte gSoundInfo + 0x350
-_0811A0D8:
- ldr r2, _0811A11C @ =gSoundInfo
- ldrb r1, [r2, 0xB]
- movs r0, 0
- ldrsb r0, [r3, r0]
- subs r0, 0x1
- subs r1, r0
- ldr r0, [r2, 0x10]
- muls r0, r1
- movs r1, 0xD4
- lsls r1, 2
- adds r2, r1
- adds r0, r2
-_0811A0F0:
- movs r1, 0xC6
- lsls r1, 3
- adds r3, r0, r1
- movs r2, 0
- ldr r4, _0811A120 @ =0x0201c000
-_0811A0FA:
- adds r1, r2, r4
- lsls r0, r2, 1
- adds r0, r3
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- lsls r0, 1
- strb r0, [r1]
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0xF
- bls _0811A0FA
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0811A11C: .4byte gSoundInfo
-_0811A120: .4byte 0x0201c000
- thumb_func_end sub_811A0C0
-
- thumb_func_start sub_811A124
-sub_811A124: @ 811A124
- push {r4,lr}
- ldr r4, _0811A158 @ =0x0201c000
- ldrb r0, [r4, 0x16]
- lsls r0, 3
- ldrb r1, [r4, 0x11]
- adds r0, r1
- subs r0, 0x2
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0
- bl sub_811A1C8
- ldrb r0, [r4, 0x16]
- lsls r0, 3
- ldrb r4, [r4, 0x11]
- adds r0, r4
- subs r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0
- bl sub_811A1C8
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0811A158: .4byte 0x0201c000
- thumb_func_end sub_811A124
-
- thumb_func_start sub_811A15C
-sub_811A15C: @ 811A15C
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r4, _0811A1B4 @ =0x0201c000
- ldrb r1, [r4, 0x11]
- movs r2, 0
- bl sub_811A350
- ldrb r0, [r4, 0x11]
- adds r0, 0x2
- strb r0, [r4, 0x11]
- ldrb r0, [r4, 0x11]
- lsrs r0, 3
- ldrb r2, [r4, 0x16]
- adds r1, r0, r2
- adds r2, r1, 0x1
- adds r0, r2, 0
- asrs r0, 5
- lsls r0, 5
- subs r0, r2, r0
- lsls r0, 16
- lsrs r3, r0, 16
- movs r1, 0
- ldr r2, _0811A1B8 @ =0x040000d4
- ldr r6, _0811A1BC @ =gUnknown_083FB718
- ldr r0, _0811A1C0 @ =0xfffe4000
- adds r5, r4, r0
- ldr r4, _0811A1C4 @ =0x80000010
-_0811A194:
- str r6, [r2]
- lsls r0, r1, 5
- adds r0, r3
- lsls r0, 5
- adds r0, r5
- str r0, [r2, 0x4]
- str r4, [r2, 0x8]
- ldr r0, [r2, 0x8]
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x6
- bls _0811A194
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0811A1B4: .4byte 0x0201c000
-_0811A1B8: .4byte 0x040000d4
-_0811A1BC: .4byte gUnknown_083FB718
-_0811A1C0: .4byte 0xfffe4000
-_0811A1C4: .4byte 0x80000010
- thumb_func_end sub_811A15C
-
- thumb_func_start sub_811A1C8
-sub_811A1C8: @ 811A1C8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0xC
- lsls r5, r0, 24
- lsrs r4, r5, 24
- lsls r1, 24
- movs r0, 0xFE
- lsls r0, 23
- adds r1, r0
- lsrs r1, 16
- adds r0, r1, 0
- bl __floatsidf
- ldr r3, _0811A280 @ =0x00000000
- ldr r2, _0811A27C @ =0x40920000
- bl __divdf3
- bl __fixunsdfsi
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0x37
- bls _0811A1FE
- movs r6, 0x37
-_0811A1FE:
- str r6, [sp]
- movs r7, 0x1
- ands r7, r4
- ldr r0, _0811A284 @ =0x0201c000
- mov r10, r0
- lsrs r5, 27
- mov r8, r5
- ldr r0, _0811A288 @ =gUnknown_083FB738
- mov r1, r10
- ldrb r1, [r1, 0x12]
- cmp r6, r1
- bls _0811A298
- adds r0, r7, r0
- ldrb r0, [r0]
- mov r9, r0
- movs r2, 0x7
- ands r2, r4
-_0811A220:
- lsls r1, r6, 1
- lsls r0, r2, 3
- adds r0, r2
- lsls r0, 4
- adds r1, r0
- ldr r3, _0811A28C @ =gUnknown_083FB274
- adds r1, r3
- mov r3, r8
- lsls r0, r3, 5
- ldrh r1, [r1]
- adds r0, r1
- lsls r0, 16
- lsrs r0, 16
- ldr r1, _0811A290 @ =0x02000000
- adds r5, r0, r1
- ldrb r4, [r5]
- mov r3, r9
- ands r4, r3
- strb r4, [r5]
- adds r0, r6, 0
- movs r1, 0x3
- str r2, [sp, 0x8]
- bl __udivsi3
- lsls r0, 24
- lsrs r0, 24
- subs r0, 0x1
- movs r1, 0xF
- ands r0, r1
- lsls r1, r7, 4
- adds r0, r1
- ldr r1, _0811A294 @ =gUnknown_083FB73A
- adds r0, r1
- ldrb r0, [r0]
- orrs r4, r0
- strb r4, [r5]
- subs r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r2, [sp, 0x8]
- ldr r3, _0811A284 @ =0x0201c000
- ldrb r3, [r3, 0x12]
- cmp r6, r3
- bhi _0811A220
- b _0811A2FA
- .align 2, 0
-_0811A27C: .4byte 0x40920000
-_0811A280: .4byte 0x00000000
-_0811A284: .4byte 0x0201c000
-_0811A288: .4byte gUnknown_083FB738
-_0811A28C: .4byte gUnknown_083FB274
-_0811A290: .4byte 0x02000000
-_0811A294: .4byte gUnknown_083FB73A
-_0811A298:
- lsls r1, r7, 4
- str r1, [sp, 0x4]
- adds r0, r7, r0
- ldrb r0, [r0]
- mov r9, r0
- movs r7, 0x7
- ands r7, r4
-_0811A2A6:
- lsls r1, r6, 1
- lsls r0, r7, 3
- adds r0, r7
- lsls r0, 4
- adds r1, r0
- ldr r2, _0811A314 @ =gUnknown_083FB274
- adds r1, r2
- mov r3, r8
- lsls r0, r3, 5
- ldrh r1, [r1]
- adds r0, r1
- lsls r0, 16
- lsrs r0, 16
- ldr r1, _0811A318 @ =0x02000000
- adds r5, r0, r1
- ldrb r4, [r5]
- mov r2, r9
- ands r4, r2
- strb r4, [r5]
- adds r0, r6, 0
- movs r1, 0x3
- bl __udivsi3
- lsls r0, 24
- lsrs r0, 24
- subs r0, 0x1
- movs r1, 0xF
- ands r0, r1
- ldr r3, [sp, 0x4]
- adds r0, r3
- ldr r1, _0811A31C @ =gUnknown_083FB73A
- adds r0, r1
- ldrb r0, [r0]
- orrs r4, r0
- strb r4, [r5]
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r2, _0811A320 @ =0x0201c000
- ldrb r2, [r2, 0x12]
- cmp r6, r2
- bcc _0811A2A6
-_0811A2FA:
- mov r3, sp
- ldrb r0, [r3]
- mov r3, r10
- strb r0, [r3, 0x12]
- 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
-_0811A314: .4byte gUnknown_083FB274
-_0811A318: .4byte 0x02000000
-_0811A31C: .4byte gUnknown_083FB73A
-_0811A320: .4byte 0x0201c000
- thumb_func_end sub_811A1C8
-
- thumb_func_start sub_811A324
-sub_811A324: @ 811A324
- ldr r2, _0811A344 @ =0x040000d4
- ldr r0, _0811A348 @ =0x02000000
- str r0, [r2]
- movs r1, 0xE0
- lsls r1, 9
- adds r0, r1
- ldrh r0, [r0, 0x14]
- movs r1, 0xC0
- lsls r1, 19
- adds r0, r1
- str r0, [r2, 0x4]
- ldr r0, _0811A34C @ =0x80000e00
- str r0, [r2, 0x8]
- ldr r0, [r2, 0x8]
- bx lr
- .align 2, 0
-_0811A344: .4byte 0x040000d4
-_0811A348: .4byte 0x02000000
-_0811A34C: .4byte 0x80000e00
- thumb_func_end sub_811A324
-
- thumb_func_start sub_811A350
-sub_811A350: @ 811A350
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- adds r3, r0, 0
- lsls r1, 16
- lsrs r1, 16
- lsls r2, 24
- lsrs r2, 24
- cmp r0, 0x1
- beq _0811A38C
- cmp r0, 0x1
- bgt _0811A36E
- cmp r0, 0
- beq _0811A378
- b _0811A3C4
-_0811A36E:
- cmp r3, 0x2
- beq _0811A3A0
- cmp r3, 0x3
- beq _0811A3B4
- b _0811A3C4
-_0811A378:
- cmp r2, 0
- beq _0811A384
- ldr r0, _0811A380 @ =REG_BG0VOFS
- b _0811A3C2
- .align 2, 0
-_0811A380: .4byte REG_BG0VOFS
-_0811A384:
- ldr r0, _0811A388 @ =REG_BG0HOFS
- b _0811A3C2
- .align 2, 0
-_0811A388: .4byte REG_BG0HOFS
-_0811A38C:
- cmp r2, 0
- beq _0811A398
- ldr r0, _0811A394 @ =REG_BG1VOFS
- b _0811A3C2
- .align 2, 0
-_0811A394: .4byte REG_BG1VOFS
-_0811A398:
- ldr r0, _0811A39C @ =REG_BG1HOFS
- b _0811A3C2
- .align 2, 0
-_0811A39C: .4byte REG_BG1HOFS
-_0811A3A0:
- cmp r2, 0
- beq _0811A3AC
- ldr r0, _0811A3A8 @ =REG_BG2VOFS
- b _0811A3C2
- .align 2, 0
-_0811A3A8: .4byte REG_BG2VOFS
-_0811A3AC:
- ldr r0, _0811A3B0 @ =REG_BG2HOFS
- b _0811A3C2
- .align 2, 0
-_0811A3B0: .4byte REG_BG2HOFS
-_0811A3B4:
- cmp r2, 0
- beq _0811A3C0
- ldr r0, _0811A3BC @ =REG_BG3VOFS
- b _0811A3C2
- .align 2, 0
-_0811A3BC: .4byte REG_BG3VOFS
-_0811A3C0:
- ldr r0, _0811A3C8 @ =REG_BG3HOFS
-_0811A3C2:
- strh r1, [r0]
-_0811A3C4:
- pop {r0}
- bx r0
- .align 2, 0
-_0811A3C8: .4byte REG_BG3HOFS
- thumb_func_end sub_811A350
-
- thumb_func_start sub_811A3CC
-sub_811A3CC: @ 811A3CC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- adds r4, r0, 0
- movs r0, 0
- str r0, [sp]
- ldr r0, _0811A3F4 @ =gUnknown_03005E98
- ldrb r1, [r0]
- mov r10, r0
- cmp r1, 0x1
- beq _0811A42C
- cmp r1, 0x1
- bgt _0811A3F8
- cmp r1, 0
- beq _0811A3FE
- b _0811A4D6
- .align 2, 0
-_0811A3F4: .4byte gUnknown_03005E98
-_0811A3F8:
- cmp r1, 0x2
- beq _0811A494
- b _0811A4D6
-_0811A3FE:
- ldr r0, _0811A424 @ =gUnknown_083FAF3C
- ldrh r1, [r4]
- movs r2, 0xC0
- lsls r2, 19
- adds r1, r2
- bl LZ77UnCompVram
- ldr r0, _0811A428 @ =gUnknown_083FAF1C
- ldrb r1, [r4, 0x3]
- lsls r1, 4
- movs r2, 0x20
- bl LoadPalette
- mov r1, r10
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _0811A4D6
- .align 2, 0
-_0811A424: .4byte gUnknown_083FAF3C
-_0811A428: .4byte gUnknown_083FAF1C
-_0811A42C:
- ldrb r0, [r4, 0x2]
- lsls r0, 11
- movs r1, 0xC0
- lsls r1, 19
- adds r0, r1
- mov r8, r0
- ldrh r0, [r4]
- lsls r0, 18
- lsrs r0, 23
- mov r12, r0
- movs r5, 0
- ldr r2, _0811A490 @ =gUnknown_083FAE7C
- mov r9, r2
-_0811A446:
- movs r3, 0
- lsls r0, r5, 2
- adds r7, r5, 0x1
- adds r0, r5
- lsls r6, r0, 1
-_0811A450:
- ldrb r0, [r4, 0x5]
- adds r0, r5, r0
- ldrb r2, [r4, 0x4]
- adds r2, r3, r2
- lsls r2, 1
- lsls r0, 6
- adds r2, r0
- add r2, r8
- adds r1, r6, r3
- lsls r1, 1
- add r1, r9
- ldrb r0, [r4, 0x3]
- lsls r0, 12
- ldrh r1, [r1]
- orrs r0, r1
- add r0, r12
- strh r0, [r2]
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x9
- bls _0811A450
- lsls r0, r7, 24
- lsrs r5, r0, 24
- cmp r5, 0x7
- bls _0811A446
- mov r3, r10
- ldrb r0, [r3]
- adds r0, 0x1
- strb r0, [r3]
- b _0811A4D6
- .align 2, 0
-_0811A490: .4byte gUnknown_083FAE7C
-_0811A494:
- ldr r0, _0811A4E8 @ =gCryMeterNeedleSpriteSheets
- bl LoadSpriteSheets
- ldr r0, _0811A4EC @ =gCryMeterNeedleSpritePalettes
- bl LoadSpritePalettes
- ldr r0, _0811A4F0 @ =gSpriteTemplate_83FB774
- ldrb r1, [r4, 0x4]
- lsls r1, 19
- movs r2, 0xA0
- lsls r2, 14
- adds r1, r2
- asrs r1, 16
- ldrb r2, [r4, 0x5]
- lsls r2, 19
- movs r3, 0xE0
- lsls r3, 14
- adds r2, r3
- asrs r2, 16
- movs r3, 0x1
- bl CreateSprite
- ldr r1, _0811A4F4 @ =0x0201c800
- lsls r0, 24
- lsrs r0, 24
- movs r2, 0
- strh r0, [r1, 0x4]
- movs r0, 0x20
- strb r0, [r1]
- strb r0, [r1, 0x1]
- strb r2, [r1, 0x2]
- movs r0, 0x1
- str r0, [sp]
-_0811A4D6:
- ldr r0, [sp]
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0811A4E8: .4byte gCryMeterNeedleSpriteSheets
-_0811A4EC: .4byte gCryMeterNeedleSpritePalettes
-_0811A4F0: .4byte gSpriteTemplate_83FB774
-_0811A4F4: .4byte 0x0201c800
- thumb_func_end sub_811A3CC
-
- thumb_func_start sub_811A4F8
-sub_811A4F8: @ 811A4F8
- push {r4,r5,lr}
- ldr r5, _0811A52C @ =gSprites
- ldr r4, _0811A530 @ =0x0201c800
- ldrh r1, [r4, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldrb r0, [r0, 0x5]
- lsrs r0, 4
- bl GetSpritePaletteTagByPaletteNum
- lsls r0, 16
- lsrs r0, 16
- bl FreeSpritePaletteByTag
- ldrh r1, [r4, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- bl DestroySprite
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0811A52C: .4byte gSprites
-_0811A530: .4byte 0x0201c800
- thumb_func_end sub_811A4F8
-
- thumb_func_start sub_811A534
-sub_811A534: @ 811A534
- push {r4-r7,lr}
- sub sp, 0x14
- adds r7, r0, 0
- ldr r3, _0811A578 @ =gSprites
- ldr r5, _0811A57C @ =0x0201c800
- ldrh r1, [r5, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrb r2, [r0, 0x1]
- movs r1, 0x4
- negs r1, r1
- ands r1, r2
- movs r2, 0x1
- orrs r1, r2
- strb r1, [r0, 0x1]
- ldrh r1, [r5, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- movs r1, 0
- strh r1, [r0, 0x6]
- ldr r0, _0811A580 @ =0xfffff800
- adds r1, r5, r0
- ldrb r0, [r1, 0x10]
- cmp r0, 0x2
- beq _0811A5AA
- cmp r0, 0x2
- bgt _0811A584
- cmp r0, 0
- beq _0811A58A
- b _0811A5F4
- .align 2, 0
-_0811A578: .4byte gSprites
-_0811A57C: .4byte 0x0201c800
-_0811A580: .4byte 0xfffff800
-_0811A584:
- cmp r0, 0x6
- beq _0811A5E2
- b _0811A5F4
-_0811A58A:
- movs r0, 0x20
- strb r0, [r5, 0x1]
- movs r0, 0
- ldrsb r0, [r5, r0]
- cmp r0, 0
- ble _0811A5A4
- ldrb r0, [r5, 0x2]
- add r4, sp, 0xC
- cmp r0, 0x1
- beq _0811A5F6
- subs r0, 0x1
- strb r0, [r5, 0x2]
- b _0811A5F6
-_0811A5A4:
- movs r0, 0x5
- strb r0, [r5, 0x2]
- b _0811A5F4
-_0811A5AA:
- movs r3, 0
- movs r2, 0
- add r4, sp, 0xC
- adds r5, r1, 0
-_0811A5B2:
- lsls r1, r3, 24
- asrs r1, 24
- adds r0, r2, r5
- ldrb r0, [r0]
- cmp r1, r0
- bge _0811A5C0
- adds r3, r0, 0
-_0811A5C0:
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0xF
- bls _0811A5B2
- lsls r0, r3, 24
- asrs r0, 24
- movs r1, 0xD0
- muls r0, r1
- cmp r0, 0
- bge _0811A5D8
- adds r0, 0xFF
-_0811A5D8:
- lsls r0, 16
- asrs r0, 24
- bl sub_811A6D8
- b _0811A5F6
-_0811A5E2:
- ldr r1, _0811A620 @ =0xfffff80a
- adds r0, r5, r1
- ldrb r1, [r0]
- movs r0, 0xD0
- muls r0, r1
- lsls r0, 16
- asrs r0, 24
- bl sub_811A6D8
-_0811A5F4:
- add r4, sp, 0xC
-_0811A5F6:
- ldr r0, _0811A624 @ =0x0201c800
- ldrb r3, [r0]
- movs r2, 0
- ldrsb r2, [r0, r2]
- ldrb r6, [r0, 0x1]
- movs r1, 0x1
- ldrsb r1, [r0, r1]
- adds r5, r0, 0
- cmp r2, r1
- beq _0811A63C
- cmp r2, r1
- bge _0811A628
- ldrb r0, [r5, 0x2]
- adds r0, r3, r0
- strb r0, [r5]
- lsls r0, 24
- asrs r0, 24
- cmp r0, r1
- ble _0811A63C
- b _0811A636
- .align 2, 0
-_0811A620: .4byte 0xfffff80a
-_0811A624: .4byte 0x0201c800
-_0811A628:
- ldrb r0, [r5, 0x2]
- subs r0, r3, r0
- strb r0, [r5]
- lsls r0, 24
- asrs r0, 24
- cmp r0, r1
- bge _0811A63C
-_0811A636:
- strb r6, [r5]
- movs r0, 0
- strb r0, [r5, 0x1]
-_0811A63C:
- ldr r2, _0811A6CC @ =0xffff0000
- ldr r0, [sp, 0x4]
- ands r0, r2
- movs r1, 0x80
- lsls r1, 1
- orrs r0, r1
- ldr r1, _0811A6D0 @ =0x0000ffff
- ands r0, r1
- movs r1, 0x80
- lsls r1, 17
- orrs r0, r1
- str r0, [sp, 0x4]
- movs r1, 0
- ldrsb r1, [r5, r1]
- lsls r1, 24
- lsrs r1, 16
- ldr r0, [sp, 0x8]
- ands r0, r2
- orrs r0, r1
- str r0, [sp, 0x8]
- add r0, sp, 0x4
- adds r1, r4, 0
- movs r2, 0x1
- movs r3, 0x2
- bl ObjAffineSet
- add r0, sp, 0xC
- ldrh r1, [r0]
- ldrh r2, [r4, 0x2]
- ldrh r3, [r4, 0x4]
- ldrh r0, [r4, 0x6]
- str r0, [sp]
- movs r0, 0
- bl SetOamMatrix
- ldr r2, _0811A6D4 @ =gSineTable
- movs r0, 0
- ldrsb r0, [r5, r0]
- adds r0, 0x7F
- movs r1, 0xFF
- ands r0, r1
- lsls r1, r0, 1
- adds r1, r2
- adds r0, 0x40
- lsls r0, 1
- adds r0, r2
- ldrh r2, [r0]
- movs r0, 0
- ldrsh r1, [r1, r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 3
- cmp r0, 0
- bge _0811A6AA
- adds r0, 0xFF
-_0811A6AA:
- asrs r0, 8
- strh r0, [r7, 0x24]
- lsls r1, r2, 16
- asrs r1, 16
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 3
- cmp r0, 0
- bge _0811A6BE
- adds r0, 0xFF
-_0811A6BE:
- asrs r0, 8
- strh r0, [r7, 0x26]
- add sp, 0x14
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0811A6CC: .4byte 0xffff0000
-_0811A6D0: .4byte 0x0000ffff
-_0811A6D4: .4byte gSineTable
- thumb_func_end sub_811A534
-
- thumb_func_start sub_811A6D8
-sub_811A6D8: @ 811A6D8
- push {lr}
- lsls r0, 24
- asrs r0, 24
- movs r1, 0x20
- subs r2, r1, r0
- movs r0, 0xFF
- ands r2, r0
- adds r0, r2, 0
- subs r0, 0x21
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xBE
- bhi _0811A6F4
- movs r2, 0xE0
-_0811A6F4:
- ldr r1, _0811A700 @ =0x0201c800
- strb r2, [r1, 0x1]
- movs r0, 0x5
- strb r0, [r1, 0x2]
- pop {r0}
- bx r0
- .align 2, 0
-_0811A700: .4byte 0x0201c800
- thumb_func_end sub_811A6D8
-
- thumb_func_start sub_811A704
-sub_811A704: @ 811A704
- push {r4,lr}
- adds r4, r1, 0
- adds r3, r2, 0
- lsls r4, 24
- lsls r3, 24
- movs r1, 0x80
- lsls r1, 18
- adds r4, r1
- lsrs r4, 24
- movs r1, 0x80
- lsls r1, 17
- adds r3, r1
- lsrs r3, 24
- movs r1, 0x4
- adds r2, r4, 0
- bl sub_811A798
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_811A704
-
- thumb_func_start sub_811A72C
-sub_811A72C: @ 811A72C
- 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, 0x90
- lsls r0, 20
- adds r4, r0
- lsrs r4, 24
- lsrs r5, r3, 24
- movs r0, 0xC0
- lsls r0, 18
- adds r3, r0
- 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_811A704
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_811A72C
-
- thumb_func_start sub_811A770
-sub_811A770: @ 811A770
- push {r4,lr}
- adds r2, r0, 0
- adds r3, r1, 0
- lsls r2, 24
- lsls r3, 24
- lsrs r0, r2, 24
- movs r1, 0x90
- lsls r1, 20
- adds r2, r1
- lsrs r2, 24
- lsrs r1, r3, 24
- movs r4, 0xC0
- lsls r4, 18
- adds r3, r4
- lsrs r3, 24
- bl MenuZeroFillWindowRect
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_811A770
-
- thumb_func_start sub_811A798
-sub_811A798: @ 811A798
- push {r4-r7,lr}
- sub sp, 0x10
- adds r4, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r5, r1, 0
- lsls r2, 24
- lsrs r6, r2, 24
- lsls r3, 24
- lsrs r7, r3, 24
- mov r0, sp
- adds r1, r4, 0
- bl ConvertIntToDecimalString
- lsls r1, r5, 1
- adds r1, r5
- lsls r1, 1
- adds r1, 0x21
- adds r0, r5, 0x2
- lsls r0, 3
- subs r1, r0
- lsls r1, 24
- lsrs r0, r1, 27
- subs r0, r6, r0
- lsls r0, 24
- lsrs r6, r0, 24
- movs r0, 0xE0
- lsls r0, 19
- ands r0, r1
- lsrs r1, r0, 24
- ldr r4, _0811A824 @ =gStringVar1
- cmp r1, 0
- beq _0811A7EA
- movs r0, 0xFC
- strb r0, [r4]
- movs r0, 0x11
- strb r0, [r4, 0x1]
- movs r0, 0x8
- subs r0, r1
- strb r0, [r4, 0x2]
- adds r4, 0x3
-_0811A7EA:
- movs r0, 0xFC
- strb r0, [r4]
- movs r0, 0x11
- strb r0, [r4, 0x1]
- mov r0, sp
- bl StringLength
- lsls r0, 16
- lsrs r0, 16
- subs r0, r5, r0
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 1
- strb r1, [r4, 0x2]
- adds r4, 0x3
- adds r0, r4, 0
- mov r1, sp
- bl StringCopy
- ldr r0, _0811A828 @ =gOtherText_Coins2
- adds r1, r6, 0
- adds r2, r7, 0
- bl MenuPrint
- add sp, 0x10
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0811A824: .4byte gStringVar1
-_0811A828: .4byte gOtherText_Coins2
- thumb_func_end sub_811A798
-
- thumb_func_start GetCoins
-GetCoins: @ 811A82C
- ldr r0, _0811A838 @ =gSaveBlock1
- ldr r1, _0811A83C @ =0x00000494
- adds r0, r1
- ldrh r0, [r0]
- bx lr
- .align 2, 0
-_0811A838: .4byte gSaveBlock1
-_0811A83C: .4byte 0x00000494
- thumb_func_end GetCoins
-
- thumb_func_start GiveCoins
-GiveCoins: @ 811A840
- push {r4,lr}
- lsls r0, 16
- lsrs r4, r0, 16
- bl GetCoins
- lsls r0, 16
- ldr r1, _0811A858 @ =0x270e0000
- cmp r0, r1
- bls _0811A85C
- movs r0, 0
- b _0811A88C
- .align 2, 0
-_0811A858: .4byte 0x270e0000
-_0811A85C:
- ldr r0, _0811A874 @ =gSaveBlock1
- ldr r1, _0811A878 @ =0x00000494
- adds r3, r0, r1
- ldrh r1, [r3]
- adds r2, r4, r1
- lsls r0, r2, 16
- lsrs r0, 16
- cmp r1, r0
- bls _0811A880
- ldr r0, _0811A87C @ =0x0000270f
- strh r0, [r3]
- b _0811A88A
- .align 2, 0
-_0811A874: .4byte gSaveBlock1
-_0811A878: .4byte 0x00000494
-_0811A87C: .4byte 0x0000270f
-_0811A880:
- strh r2, [r3]
- ldr r1, _0811A894 @ =0x0000270f
- cmp r0, r1
- bls _0811A88A
- strh r1, [r3]
-_0811A88A:
- movs r0, 0x1
-_0811A88C:
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0811A894: .4byte 0x0000270f
- thumb_func_end GiveCoins
-
- thumb_func_start TakeCoins
-TakeCoins: @ 811A898
- push {r4,lr}
- lsls r0, 16
- lsrs r4, r0, 16
- bl GetCoins
- lsls r0, 16
- lsrs r0, 16
- cmp r0, r4
- bcs _0811A8AE
- movs r0, 0
- b _0811A8BC
-_0811A8AE:
- ldr r1, _0811A8C4 @ =gSaveBlock1
- ldr r0, _0811A8C8 @ =0x00000494
- adds r1, r0
- ldrh r0, [r1]
- subs r0, r4
- strh r0, [r1]
- movs r0, 0x1
-_0811A8BC:
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0811A8C4: .4byte gSaveBlock1
-_0811A8C8: .4byte 0x00000494
- thumb_func_end TakeCoins
-
- thumb_func_start sub_811A8CC
-sub_811A8CC: @ 811A8CC
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- lsls r2, 24
- lsrs r5, r2, 24
- bl sub_811A920
- adds r4, r0, 0
- cmp r4, 0
- bne _0811A8E8
-_0811A8E4:
- movs r0, 0
- b _0811A91A
-_0811A8E8:
- ldr r6, _0811A8EC @ =0x0000ffff
- b _0811A8FE
- .align 2, 0
-_0811A8EC: .4byte 0x0000ffff
-_0811A8F0:
- subs r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
-_0811A8F6:
- adds r4, 0x4
- ldr r0, [r4]
- cmp r0, 0
- beq _0811A8E4
-_0811A8FE:
- ldr r1, [r4]
- ldrh r0, [r1, 0x4]
- cmp r0, r6
- beq _0811A912
- bl FlagGet
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0811A8F6
-_0811A912:
- cmp r5, 0
- bne _0811A8F0
- ldr r0, [r4]
- ldr r0, [r0]
-_0811A91A:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_811A8CC
-
- thumb_func_start sub_811A920
-sub_811A920: @ 811A920
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- lsls r1, 24
- lsrs r6, r1, 24
- movs r2, 0
- ldr r0, _0811A964 @ =gLandmarkLists
- ldrb r1, [r0]
- adds r4, r0, 0
- cmp r1, 0x58
- beq _0811A990
- adds r1, r4, 0
-_0811A938:
- lsls r0, r2, 3
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, r3
- bhi _0811A990
- cmp r0, r3
- beq _0811A956
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- lsls r0, r2, 3
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x58
- bne _0811A938
-_0811A956:
- lsls r0, r2, 3
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x58
- bne _0811A970
- b _0811A990
- .align 2, 0
-_0811A964: .4byte gLandmarkLists
-_0811A968:
- adds r0, r4, 0x4
- adds r0, r1, r0
- ldr r0, [r0]
- b _0811A992
-_0811A970:
- cmp r0, r3
- bne _0811A990
- ldr r5, _0811A998 @ =gLandmarkLists
-_0811A976:
- lsls r1, r2, 3
- adds r0, r1, r5
- ldrb r0, [r0, 0x1]
- cmp r0, r6
- beq _0811A968
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- lsls r0, r2, 3
- adds r0, r4
- ldrb r0, [r0]
- cmp r0, r3
- beq _0811A976
-_0811A990:
- movs r0, 0
-_0811A992:
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_0811A998: .4byte gLandmarkLists
- thumb_func_end sub_811A920
-
- thumb_func_start SetUpFieldMove_Strength
-SetUpFieldMove_Strength: @ 811A99C
- push {lr}
- bl sub_81474C8
- lsls r0, 24
- cmp r0, 0
- beq _0811A9D4
- ldr r1, _0811A9BC @ =gScriptResult
- ldr r0, _0811A9C0 @ =gUnknown_03005CE0
- ldrb r0, [r0]
- strh r0, [r1]
- ldr r1, _0811A9C4 @ =gUnknown_0300485C
- ldr r0, _0811A9C8 @ =sub_808AB90
- str r0, [r1]
- ldr r1, _0811A9CC @ =gUnknown_03005CE4
- ldr r0, _0811A9D0 @ =sub_811AA38
- b _0811A9F8
- .align 2, 0
-_0811A9BC: .4byte gScriptResult
-_0811A9C0: .4byte gUnknown_03005CE0
-_0811A9C4: .4byte gUnknown_0300485C
-_0811A9C8: .4byte sub_808AB90
-_0811A9CC: .4byte gUnknown_03005CE4
-_0811A9D0: .4byte sub_811AA38
-_0811A9D4:
- movs r0, 0x57
- bl npc_before_player_of_type
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0811A9E6
- movs r0, 0
- b _0811A9FC
-_0811A9E6:
- ldr r1, _0811AA00 @ =gScriptResult
- ldr r0, _0811AA04 @ =gUnknown_03005CE0
- ldrb r0, [r0]
- strh r0, [r1]
- ldr r1, _0811AA08 @ =gUnknown_0300485C
- ldr r0, _0811AA0C @ =sub_808AB90
- str r0, [r1]
- ldr r1, _0811AA10 @ =gUnknown_03005CE4
- ldr r0, _0811AA14 @ =sub_811AA18
-_0811A9F8:
- str r0, [r1]
- movs r0, 0x1
-_0811A9FC:
- pop {r1}
- bx r1
- .align 2, 0
-_0811AA00: .4byte gScriptResult
-_0811AA04: .4byte gUnknown_03005CE0
-_0811AA08: .4byte gUnknown_0300485C
-_0811AA0C: .4byte sub_808AB90
-_0811AA10: .4byte gUnknown_03005CE4
-_0811AA14: .4byte sub_811AA18
- thumb_func_end SetUpFieldMove_Strength
-
- thumb_func_start sub_811AA18
-sub_811AA18: @ 811AA18
- push {lr}
- ldr r1, _0811AA2C @ =gUnknown_0202FF84
- ldr r0, _0811AA30 @ =gUnknown_03005CE0
- ldrb r0, [r0]
- str r0, [r1]
- ldr r0, _0811AA34 @ =UseStrengthScript
- bl ScriptContext1_SetupScript
- pop {r0}
- bx r0
- .align 2, 0
-_0811AA2C: .4byte gUnknown_0202FF84
-_0811AA30: .4byte gUnknown_03005CE0
-_0811AA34: .4byte UseStrengthScript
- thumb_func_end sub_811AA18
-
- thumb_func_start sub_811AA38
-sub_811AA38: @ 811AA38
- push {lr}
- ldr r0, _0811AA4C @ =gUnknown_0202FF84
- ldr r1, _0811AA50 @ =gUnknown_03005CE0
- ldrb r1, [r1]
- str r1, [r0]
- movs r0, 0x28
- bl FieldEffectStart
- pop {r0}
- bx r0
- .align 2, 0
-_0811AA4C: .4byte gUnknown_0202FF84
-_0811AA50: .4byte gUnknown_03005CE0
- thumb_func_end sub_811AA38
-
- thumb_func_start FldEff_UseStrength
-FldEff_UseStrength: @ 811AA54
- push {lr}
- bl oei_task_add
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0811AA88 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r2, _0811AA8C @ =sub_811AA9C
- lsrs r0, r2, 16
- strh r0, [r1, 0x18]
- strh r2, [r1, 0x1A]
- ldr r0, _0811AA90 @ =gUnknown_0202FF84
- ldr r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0811AA94 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0811AA98 @ =gStringVar1
- bl GetMonNickname
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_0811AA88: .4byte gTasks
-_0811AA8C: .4byte sub_811AA9C
-_0811AA90: .4byte gUnknown_0202FF84
-_0811AA94: .4byte gPlayerParty
-_0811AA98: .4byte gStringVar1
- thumb_func_end FldEff_UseStrength
-
- thumb_func_start sub_811AA9C
-sub_811AA9C: @ 811AA9C
- push {lr}
- bl sub_81474C8
- lsls r0, 24
- cmp r0, 0
- beq _0811AAAE
- bl sub_8147514
- b _0811AAB8
-_0811AAAE:
- movs r0, 0x28
- bl FieldEffectActiveListRemove
- bl EnableBothScriptContexts
-_0811AAB8:
- pop {r0}
- bx r0
- thumb_func_end sub_811AA9C
-
- thumb_func_start sub_811AABC
-sub_811AABC: @ 811AABC
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0811AAD0 @ =gMain
- ldr r1, _0811AAD4 @ =sub_8054398
- str r1, [r2, 0x4]
- bl sub_811AB20
- pop {r0}
- bx r0
- .align 2, 0
-_0811AAD0: .4byte gMain
-_0811AAD4: .4byte sub_8054398
- thumb_func_end sub_811AABC
-
- thumb_func_start sub_811AAD8
-sub_811AAD8: @ 811AAD8
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl sub_811AB20
- pop {r0}
- bx r0
- thumb_func_end sub_811AAD8
-
- thumb_func_start sub_811AAE8
-sub_811AAE8: @ 811AAE8
- push {lr}
- ldr r0, _0811AB0C @ =sub_811AB50
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r1, _0811AB10 @ =gTasks
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r0, r1
- movs r1, 0x26
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _0811AB14
- movs r0, 0
- b _0811AB1C
- .align 2, 0
-_0811AB0C: .4byte sub_811AB50
-_0811AB10: .4byte gTasks
-_0811AB14:
- adds r0, r2, 0
- bl DestroyTask
- movs r0, 0x1
-_0811AB1C:
- pop {r1}
- bx r1
- thumb_func_end sub_811AAE8
-
- thumb_func_start sub_811AB20
-sub_811AB20: @ 811AB20
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _0811AB48 @ =sub_811AB50
- movs r1, 0x2
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0811AB4C @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- strh r4, [r1, 0xA]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0811AB48: .4byte sub_811AB50
-_0811AB4C: .4byte gTasks
- thumb_func_end sub_811AB20
-
- thumb_func_start sub_811AB50
-sub_811AB50: @ 811AB50
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r5, _0811AB80 @ =gUnknown_083FD794
- ldr r2, _0811AB84 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r4, r1, r2
-_0811AB62:
- 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 _0811AB62
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0811AB80: .4byte gUnknown_083FD794
-_0811AB84: .4byte gTasks
- thumb_func_end sub_811AB50
-
- thumb_func_start sub_811AB88
-sub_811AB88: @ 811AB88
- push {r4,lr}
- adds r4, r0, 0
- bl sub_807DE10
- ldr r0, _0811ABB4 @ =gPlttBufferFaded
- ldr r1, _0811ABB8 @ =gPlttBufferUnfaded
- ldr r2, _0811ABBC @ =0x04000100
- bl CpuSet
- ldr r1, _0811ABC0 @ =gUnknown_083FD70C
- movs r2, 0xA
- ldrsh r0, [r4, r2]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- cmp r0, 0
- bne _0811ABC4
- movs r0, 0x2
- strh r0, [r4, 0x8]
- movs r0, 0x1
- b _0811ABD2
- .align 2, 0
-_0811ABB4: .4byte gPlttBufferFaded
-_0811ABB8: .4byte gPlttBufferUnfaded
-_0811ABBC: .4byte 0x04000100
-_0811ABC0: .4byte gUnknown_083FD70C
-_0811ABC4:
- movs r1, 0x4
- bl CreateTask
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- movs r0, 0
-_0811ABD2:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_811AB88
-
- thumb_func_start sub_811ABD8
-sub_811ABD8: @ 811ABD8
- push {r4,lr}
- adds r4, r0, 0
- ldr r1, _0811ABF8 @ =gUnknown_083FD70C
- movs r2, 0xA
- ldrsh r0, [r4, r2]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- beq _0811ABFC
- movs r0, 0
- b _0811AC04
- .align 2, 0
-_0811ABF8: .4byte gUnknown_083FD70C
-_0811ABFC:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- movs r0, 0x1
-_0811AC04:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_811ABD8
-
- thumb_func_start sub_811AC0C
-sub_811AC0C: @ 811AC0C
- push {r4,lr}
- adds r4, r0, 0
- ldr r1, _0811AC30 @ =gBattleTransitionFuncs
- movs r2, 0xA
- ldrsh r0, [r4, r2]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0
- bl CreateTask
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0811AC30: .4byte gBattleTransitionFuncs
- thumb_func_end sub_811AC0C
-
- thumb_func_start sub_811AC34
-sub_811AC34: @ 811AC34
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0
- strh r0, [r4, 0x26]
- ldr r1, _0811AC60 @ =gBattleTransitionFuncs
- movs r2, 0xA
- ldrsh r0, [r4, r2]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- bne _0811AC58
- movs r0, 0x1
- strh r0, [r4, 0x26]
-_0811AC58:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0811AC60: .4byte gBattleTransitionFuncs
- thumb_func_end sub_811AC34
-
- thumb_func_start sub_811AC64
-sub_811AC64: @ 811AC64
- push {r4,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- adds r4, r0, 0
- ldr r1, _0811AC98 @ =gTasks
- 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, 0
- bne _0811AC9C
- adds r0, r2, 0x1
- strh r0, [r1, 0x8]
- movs r0, 0x2
- str r0, [sp]
- movs r0, 0
- movs r1, 0
- movs r2, 0x3
- movs r3, 0x2
- bl sub_811D4C8
- b _0811ACAC
- .align 2, 0
-_0811AC98: .4byte gTasks
-_0811AC9C:
- bl sub_811D52C
- lsls r0, 24
- cmp r0, 0
- beq _0811ACAC
- adds r0, r4, 0
- bl DestroyTask
-_0811ACAC:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_811AC64
-
- thumb_func_start sub_811ACB4
-sub_811ACB4: @ 811ACB4
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r5, _0811ACE4 @ =gUnknown_083FD7A4
- ldr r2, _0811ACE8 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r4, r1, r2
-_0811ACC6:
- 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 _0811ACC6
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0811ACE4: .4byte gUnknown_083FD7A4
-_0811ACE8: .4byte gTasks
- thumb_func_end sub_811ACB4
-
- thumb_func_start sub_811ACEC
-sub_811ACEC: @ 811ACEC
- ldr r2, _0811AD18 @ =REG_MOSAIC
- movs r1, 0
- strh r1, [r2]
- subs r2, 0x42
- ldrh r1, [r2]
- movs r3, 0x40
- orrs r1, r3
- strh r1, [r2]
- adds r2, 0x2
- ldrh r1, [r2]
- orrs r1, r3
- strh r1, [r2]
- adds r2, 0x2
- ldrh r1, [r2]
- orrs r1, r3
- strh r1, [r2]
- ldrh r1, [r0, 0x8]
- adds r1, 0x1
- strh r1, [r0, 0x8]
- movs r0, 0x1
- bx lr
- .align 2, 0
-_0811AD18: .4byte REG_MOSAIC
- thumb_func_end sub_811ACEC
-
- thumb_func_start sub_811AD1C
-sub_811AD1C: @ 811AD1C
- push {r4,lr}
- sub sp, 0x4
- adds r4, r0, 0
- ldrh r0, [r4, 0xA]
- movs r1, 0xA
- ldrsh r2, [r4, r1]
- cmp r2, 0
- beq _0811AD32
- subs r0, 0x1
- strh r0, [r4, 0xA]
- b _0811AD70
-_0811AD32:
- movs r0, 0x4
- strh r0, [r4, 0xA]
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xA
- bne _0811AD54
- movs r1, 0x1
- negs r1, r1
- str r2, [sp]
- adds r0, r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
-_0811AD54:
- ldr r2, _0811AD7C @ =REG_MOSAIC
- ldrh r0, [r4, 0xC]
- movs r1, 0xF
- ands r1, r0
- lsls r0, r1, 4
- adds r0, r1
- strh r0, [r2]
- movs r1, 0xC
- ldrsh r0, [r4, r1]
- cmp r0, 0xE
- ble _0811AD70
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_0811AD70:
- movs r0, 0
- add sp, 0x4
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0811AD7C: .4byte REG_MOSAIC
- thumb_func_end sub_811AD1C
-
- thumb_func_start sub_811AD80
-sub_811AD80: @ 811AD80
- push {lr}
- ldr r0, _0811ADA4 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0811AD9C
- ldr r0, _0811ADA8 @ =sub_811ACB4
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
-_0811AD9C:
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_0811ADA4: .4byte gPaletteFade
-_0811ADA8: .4byte sub_811ACB4
- thumb_func_end sub_811AD80
-
- thumb_func_start sub_811ADAC
-sub_811ADAC: @ 811ADAC
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r5, _0811ADDC @ =gUnknown_083FD7B0
- ldr r2, _0811ADE0 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r4, r1, r2
-_0811ADBE:
- 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 _0811ADBE
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0811ADDC: .4byte gUnknown_083FD7B0
-_0811ADE0: .4byte gTasks
- thumb_func_end sub_811ADAC
-
- thumb_func_start sub_811ADE4
-sub_811ADE4: @ 811ADE4
- push {r4,r5,lr}
- sub sp, 0x8
- adds r5, r0, 0
- bl sub_811D658
- bl dp12_8087EA4
- movs r0, 0x1
- negs r0, r0
- movs r4, 0
- str r4, [sp]
- movs r1, 0x4
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r0, _0811AE54 @ =gUnknown_03005560
- ldr r1, _0811AE58 @ =0x0200c000
- movs r2, 0x14
- ldrsh r1, [r1, r2]
- str r4, [sp]
- movs r2, 0xA0
- str r2, [sp, 0x4]
- movs r2, 0
- movs r3, 0x2
- bl sub_811D6E8
- ldr r0, _0811AE5C @ =sub_811AEE0
- bl SetVBlankCallback
- ldr r0, _0811AE60 @ =sub_811AF18
- bl SetHBlankCallback
- ldr r3, _0811AE64 @ =0x04000208
- ldrh r2, [r3]
- strh r4, [r3]
- ldr r4, _0811AE68 @ =0x04000200
- ldrh r0, [r4]
- movs r1, 0x3
- orrs r0, r1
- strh r0, [r4]
- strh r2, [r3]
- ldr r2, _0811AE6C @ =REG_DISPSTAT
- ldrh r0, [r2]
- movs r1, 0x18
- orrs r0, r1
- strh r0, [r2]
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
- movs r0, 0
- add sp, 0x8
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0811AE54: .4byte gUnknown_03005560
-_0811AE58: .4byte 0x0200c000
-_0811AE5C: .4byte sub_811AEE0
-_0811AE60: .4byte sub_811AF18
-_0811AE64: .4byte 0x04000208
-_0811AE68: .4byte 0x04000200
-_0811AE6C: .4byte REG_DISPSTAT
- thumb_func_end sub_811ADE4
-
- thumb_func_start sub_811AE70
-sub_811AE70: @ 811AE70
- push {r4,r5,lr}
- sub sp, 0x8
- ldr r4, _0811AED0 @ =0x0200c000
- ldrb r1, [r4]
- movs r1, 0
- strb r1, [r4]
- ldrh r1, [r0, 0xA]
- adds r1, 0x4
- strh r1, [r0, 0xA]
- ldrh r1, [r0, 0xC]
- adds r1, 0x8
- strh r1, [r0, 0xC]
- ldr r3, _0811AED4 @ =gUnknown_03004DE0
- movs r2, 0x14
- ldrsh r1, [r4, r2]
- movs r5, 0xA
- ldrsh r2, [r0, r5]
- movs r5, 0xC
- ldrsh r0, [r0, r5]
- str r0, [sp]
- movs r0, 0xA0
- str r0, [sp, 0x4]
- adds r0, r3, 0
- movs r3, 0x2
- bl sub_811D6E8
- ldr r0, _0811AED8 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0811AEBE
- ldr r0, _0811AEDC @ =sub_811ADAC
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
-_0811AEBE:
- ldrb r0, [r4]
- adds r0, 0x1
- ldrb r1, [r4]
- strb r0, [r4]
- movs r0, 0
- add sp, 0x8
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0811AED0: .4byte 0x0200c000
-_0811AED4: .4byte gUnknown_03004DE0
-_0811AED8: .4byte gPaletteFade
-_0811AEDC: .4byte sub_811ADAC
- thumb_func_end sub_811AE70
-
- thumb_func_start sub_811AEE0
-sub_811AEE0: @ 811AEE0
- push {lr}
- bl sub_811D67C
- ldr r0, _0811AF08 @ =0x0200c000
- ldrb r0, [r0]
- cmp r0, 0
- beq _0811AF02
- ldr r1, _0811AF0C @ =0x040000d4
- ldr r0, _0811AF10 @ =gUnknown_03004DE0
- str r0, [r1]
- movs r2, 0xF0
- lsls r2, 3
- adds r0, r2
- str r0, [r1, 0x4]
- ldr r0, _0811AF14 @ =0x800000a0
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
-_0811AF02:
- pop {r0}
- bx r0
- .align 2, 0
-_0811AF08: .4byte 0x0200c000
-_0811AF0C: .4byte 0x040000d4
-_0811AF10: .4byte gUnknown_03004DE0
-_0811AF14: .4byte 0x800000a0
- thumb_func_end sub_811AEE0
-
- thumb_func_start sub_811AF18
-sub_811AF18: @ 811AF18
- ldr r1, _0811AF38 @ =gUnknown_03004DE0
- ldr r0, _0811AF3C @ =REG_VCOUNT
- ldrh r0, [r0]
- lsls r0, 1
- movs r2, 0xF0
- lsls r2, 3
- adds r1, r2
- adds r0, r1
- ldrh r1, [r0]
- ldr r0, _0811AF40 @ =REG_BG1HOFS
- strh r1, [r0]
- adds r0, 0x4
- strh r1, [r0]
- adds r0, 0x4
- strh r1, [r0]
- bx lr
- .align 2, 0
-_0811AF38: .4byte gUnknown_03004DE0
-_0811AF3C: .4byte REG_VCOUNT
-_0811AF40: .4byte REG_BG1HOFS
- thumb_func_end sub_811AF18
-
- thumb_func_start sub_811AF44
-sub_811AF44: @ 811AF44
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r5, _0811AF74 @ =gUnknown_083FD7B8
- ldr r2, _0811AF78 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r4, r1, r2
-_0811AF56:
- 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 _0811AF56
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0811AF74: .4byte gUnknown_083FD7B8
-_0811AF78: .4byte gTasks
- thumb_func_end sub_811AF44
-
- thumb_func_start sub_811AF7C
-sub_811AF7C: @ 811AF7C
- push {r4,r5,lr}
- sub sp, 0x4
- adds r5, r0, 0
- bl sub_811D658
- bl dp12_8087EA4
- movs r0, 0x1
- negs r0, r0
- movs r4, 0
- str r4, [sp]
- movs r1, 0x4
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, _0811AFE4 @ =0x0200c000
- ldr r0, _0811AFE8 @ =gUnknown_03005560
- movs r2, 0x16
- ldrsh r1, [r1, r2]
- movs r2, 0xA0
- lsls r2, 1
- bl memset
- ldr r0, _0811AFEC @ =sub_811B08C
- bl SetVBlankCallback
- ldr r0, _0811AFF0 @ =sub_811B0C4
- bl SetHBlankCallback
- ldr r3, _0811AFF4 @ =0x04000208
- ldrh r2, [r3]
- strh r4, [r3]
- ldr r4, _0811AFF8 @ =0x04000200
- ldrh r0, [r4]
- movs r1, 0x3
- orrs r0, r1
- strh r0, [r4]
- strh r2, [r3]
- ldr r2, _0811AFFC @ =REG_DISPSTAT
- ldrh r0, [r2]
- movs r1, 0x18
- orrs r0, r1
- strh r0, [r2]
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
- movs r0, 0
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0811AFE4: .4byte 0x0200c000
-_0811AFE8: .4byte gUnknown_03005560
-_0811AFEC: .4byte sub_811B08C
-_0811AFF0: .4byte sub_811B0C4
-_0811AFF4: .4byte 0x04000208
-_0811AFF8: .4byte 0x04000200
-_0811AFFC: .4byte REG_DISPSTAT
- thumb_func_end sub_811AF7C
-
- thumb_func_start sub_811B000
-sub_811B000: @ 811B000
- push {r4-r7,lr}
- ldr r2, _0811B07C @ =0x0200c000
- ldrb r1, [r2]
- movs r1, 0
- strb r1, [r2]
- ldrh r4, [r0, 0xA]
- ldrh r2, [r0, 0xC]
- lsls r3, r2, 16
- asrs r3, 24
- movs r5, 0x84
- lsls r5, 5
- adds r1, r4, r5
- strh r1, [r0, 0xA]
- movs r1, 0xC0
- lsls r1, 1
- adds r2, r1
- strh r2, [r0, 0xC]
- movs r5, 0
- lsls r7, r3, 16
-_0811B026:
- lsrs r0, r4, 8
- asrs r1, r7, 16
- bl Sin
- ldr r2, _0811B080 @ =gUnknown_03004DE0
- lsls r1, r5, 1
- adds r1, r2
- ldr r6, _0811B07C @ =0x0200c000
- ldrh r2, [r6, 0x16]
- adds r0, r2
- strh r0, [r1]
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- movs r1, 0x84
- lsls r1, 5
- adds r0, r4, r1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r5, 0x9F
- bls _0811B026
- ldr r0, _0811B084 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0811B06A
- ldr r0, _0811B088 @ =sub_811AF44
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
-_0811B06A:
- ldrb r0, [r6]
- adds r0, 0x1
- ldrb r1, [r6]
- strb r0, [r6]
- movs r0, 0
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0811B07C: .4byte 0x0200c000
-_0811B080: .4byte gUnknown_03004DE0
-_0811B084: .4byte gPaletteFade
-_0811B088: .4byte sub_811AF44
- thumb_func_end sub_811B000
-
- thumb_func_start sub_811B08C
-sub_811B08C: @ 811B08C
- push {lr}
- bl sub_811D67C
- ldr r0, _0811B0B4 @ =0x0200c000
- ldrb r0, [r0]
- cmp r0, 0
- beq _0811B0AE
- ldr r1, _0811B0B8 @ =0x040000d4
- ldr r0, _0811B0BC @ =gUnknown_03004DE0
- str r0, [r1]
- movs r2, 0xF0
- lsls r2, 3
- adds r0, r2
- str r0, [r1, 0x4]
- ldr r0, _0811B0C0 @ =0x800000a0
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
-_0811B0AE:
- pop {r0}
- bx r0
- .align 2, 0
-_0811B0B4: .4byte 0x0200c000
-_0811B0B8: .4byte 0x040000d4
-_0811B0BC: .4byte gUnknown_03004DE0
-_0811B0C0: .4byte 0x800000a0
- thumb_func_end sub_811B08C
-
- thumb_func_start sub_811B0C4
-sub_811B0C4: @ 811B0C4
- ldr r1, _0811B0E4 @ =gUnknown_03004DE0
- ldr r0, _0811B0E8 @ =REG_VCOUNT
- ldrh r0, [r0]
- lsls r0, 1
- movs r2, 0xF0
- lsls r2, 3
- adds r1, r2
- adds r0, r1
- ldrh r1, [r0]
- ldr r0, _0811B0EC @ =REG_BG1VOFS
- strh r1, [r0]
- adds r0, 0x4
- strh r1, [r0]
- adds r0, 0x4
- strh r1, [r0]
- bx lr
- .align 2, 0
-_0811B0E4: .4byte gUnknown_03004DE0
-_0811B0E8: .4byte REG_VCOUNT
-_0811B0EC: .4byte REG_BG1VOFS
- thumb_func_end sub_811B0C4
-
- thumb_func_start sub_811B0F0
-sub_811B0F0: @ 811B0F0
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r5, _0811B120 @ =gUnknown_083FD7C0
- ldr r2, _0811B124 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r4, r1, r2
-_0811B102:
- 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 _0811B102
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0811B120: .4byte gUnknown_083FD7C0
-_0811B124: .4byte gTasks
- thumb_func_end sub_811B0F0
-
- thumb_func_start sub_811B128
-sub_811B128: @ 811B128
- push {r4-r6,lr}
- sub sp, 0xC
- adds r4, r0, 0
- bl sub_811D658
- bl dp12_8087EA4
- movs r2, 0
- movs r3, 0x10
- strh r3, [r4, 0xA]
- strh r2, [r4, 0xC]
- strh r2, [r4, 0x10]
- movs r0, 0x80
- lsls r0, 7
- strh r0, [r4, 0x12]
- ldr r1, _0811B1BC @ =0x0200c000
- movs r0, 0x3F
- strh r0, [r1, 0x2]
- strh r2, [r1, 0x4]
- movs r0, 0xF0
- strh r0, [r1, 0x6]
- movs r0, 0xA0
- strh r0, [r1, 0x8]
- ldr r0, _0811B1C0 @ =0x00003f41
- strh r0, [r1, 0xE]
- lsls r3, 8
- strh r3, [r1, 0x10]
- movs r1, 0
- add r5, sp, 0x4
- add r6, sp, 0x8
- ldr r3, _0811B1C4 @ =gUnknown_03005560
- movs r2, 0xF0
-_0811B168:
- lsls r0, r1, 1
- adds r0, r3
- strh r2, [r0]
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0x9F
- bls _0811B168
- ldr r0, _0811B1C8 @ =sub_811B520
- bl SetVBlankCallback
- adds r0, r5, 0
- adds r1, r6, 0
- bl sub_811D6A8
- mov r1, sp
- movs r0, 0
- strh r0, [r1]
- ldr r1, [sp, 0x4]
- ldr r2, _0811B1CC @ =0x01000400
- mov r0, sp
- bl CpuSet
- ldr r0, _0811B1D0 @ =gUnknown_083FBB88
- ldr r1, [sp, 0x8]
- movs r2, 0xB0
- lsls r2, 2
- bl CpuSet
- ldr r0, _0811B1D4 @ =gFieldEffectObjectPalette10
- movs r1, 0xF0
- movs r2, 0x20
- bl LoadPalette
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- movs r0, 0
- add sp, 0xC
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_0811B1BC: .4byte 0x0200c000
-_0811B1C0: .4byte 0x00003f41
-_0811B1C4: .4byte gUnknown_03005560
-_0811B1C8: .4byte sub_811B520
-_0811B1CC: .4byte 0x01000400
-_0811B1D0: .4byte gUnknown_083FBB88
-_0811B1D4: .4byte gFieldEffectObjectPalette10
- thumb_func_end sub_811B128
-
- thumb_func_start sub_811B1D8
-sub_811B1D8: @ 811B1D8
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x10
- adds r7, r0, 0
- ldr r5, _0811B260 @ =gUnknown_083FDB44
- add r1, sp, 0xC
- add r0, sp, 0x8
- bl sub_811D6A8
- movs r1, 0
- ldr r0, [sp, 0x8]
- mov r9, r0
- ldr r6, _0811B264 @ =gUnknown_03004DE0
- mov r8, r6
- movs r0, 0xF0
- lsls r0, 8
- mov r12, r0
-_0811B1FE:
- movs r0, 0
- lsls r3, r1, 16
- asrs r4, r3, 11
-_0811B204:
- lsls r2, r0, 16
- asrs r2, 16
- adds r1, r4, r2
- lsls r1, 1
- add r1, r9
- ldrh r0, [r5]
- mov r6, r12
- orrs r0, r6
- strh r0, [r1]
- adds r2, 0x1
- lsls r2, 16
- adds r5, 0x2
- lsrs r0, r2, 16
- asrs r2, 16
- cmp r2, 0x1D
- ble _0811B204
- movs r1, 0x80
- lsls r1, 9
- adds r0, r3, r1
- lsrs r1, r0, 16
- asrs r0, 16
- cmp r0, 0x13
- ble _0811B1FE
- movs r6, 0x10
- ldrsh r2, [r7, r6]
- movs r1, 0x12
- ldrsh r0, [r7, r1]
- str r0, [sp]
- movs r0, 0xA0
- str r0, [sp, 0x4]
- mov r0, r8
- movs r1, 0
- movs r3, 0x84
- bl sub_811D6E8
- ldrh r0, [r7, 0x8]
- adds r0, 0x1
- strh r0, [r7, 0x8]
- movs r0, 0x1
- add sp, 0x10
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0811B260: .4byte gUnknown_083FDB44
-_0811B264: .4byte gUnknown_03004DE0
- thumb_func_end sub_811B1D8
-
- thumb_func_start sub_811B268
-sub_811B268: @ 811B268
- push {r4,lr}
- sub sp, 0x8
- adds r2, r0, 0
- ldr r1, _0811B2E8 @ =0x0200c000
- ldrb r0, [r1]
- movs r0, 0
- strb r0, [r1]
- ldrh r3, [r2, 0xE]
- movs r4, 0xE
- ldrsh r0, [r2, r4]
- adds r4, r1, 0
- cmp r0, 0
- beq _0811B28C
- subs r0, r3, 0x1
- strh r0, [r2, 0xE]
- lsls r0, 16
- cmp r0, 0
- bne _0811B296
-_0811B28C:
- ldrh r0, [r2, 0xC]
- adds r0, 0x1
- strh r0, [r2, 0xC]
- movs r0, 0x2
- strh r0, [r2, 0xE]
-_0811B296:
- ldrh r0, [r2, 0xA]
- lsls r0, 8
- ldrh r1, [r2, 0xC]
- orrs r0, r1
- strh r0, [r4, 0x10]
- lsls r1, 16
- asrs r1, 16
- cmp r1, 0xF
- ble _0811B2AE
- ldrh r0, [r2, 0x8]
- adds r0, 0x1
- strh r0, [r2, 0x8]
-_0811B2AE:
- ldrh r0, [r2, 0x10]
- adds r0, 0x8
- strh r0, [r2, 0x10]
- ldr r0, _0811B2EC @ =0xffffff00
- adds r1, r0, 0
- ldrh r3, [r2, 0x12]
- adds r1, r3
- strh r1, [r2, 0x12]
- ldr r0, _0811B2F0 @ =gUnknown_03004DE0
- movs r3, 0x10
- ldrsh r2, [r2, r3]
- lsls r1, 16
- asrs r1, 24
- str r1, [sp]
- movs r1, 0xA0
- str r1, [sp, 0x4]
- movs r1, 0
- movs r3, 0x84
- bl sub_811D6E8
- ldrb r0, [r4]
- adds r0, 0x1
- ldrb r1, [r4]
- strb r0, [r4]
- movs r0, 0
- add sp, 0x8
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0811B2E8: .4byte 0x0200c000
-_0811B2EC: .4byte 0xffffff00
-_0811B2F0: .4byte gUnknown_03004DE0
- thumb_func_end sub_811B268
-
- thumb_func_start sub_811B2F4
-sub_811B2F4: @ 811B2F4
- push {r4,r5,lr}
- sub sp, 0x8
- adds r3, r0, 0
- ldr r1, _0811B374 @ =0x0200c000
- ldrb r0, [r1]
- movs r0, 0
- strb r0, [r1]
- ldrh r2, [r3, 0xE]
- movs r4, 0xE
- ldrsh r0, [r3, r4]
- adds r4, r1, 0
- cmp r0, 0
- beq _0811B318
- subs r0, r2, 0x1
- strh r0, [r3, 0xE]
- lsls r0, 16
- cmp r0, 0
- bne _0811B322
-_0811B318:
- ldrh r0, [r3, 0xA]
- subs r0, 0x1
- strh r0, [r3, 0xA]
- movs r0, 0x2
- strh r0, [r3, 0xE]
-_0811B322:
- ldrh r0, [r3, 0xA]
- lsls r1, r0, 8
- ldrh r2, [r3, 0xC]
- orrs r1, r2
- strh r1, [r4, 0x10]
- lsls r0, 16
- cmp r0, 0
- bne _0811B338
- ldrh r0, [r3, 0x8]
- adds r0, 0x1
- strh r0, [r3, 0x8]
-_0811B338:
- ldrh r0, [r3, 0x10]
- adds r0, 0x8
- strh r0, [r3, 0x10]
- ldr r5, _0811B378 @ =0xffffff00
- adds r1, r5, 0
- ldrh r0, [r3, 0x12]
- adds r1, r0
- strh r1, [r3, 0x12]
- ldr r0, _0811B37C @ =gUnknown_03004DE0
- movs r5, 0x10
- ldrsh r2, [r3, r5]
- lsls r1, 16
- asrs r1, 24
- str r1, [sp]
- movs r1, 0xA0
- str r1, [sp, 0x4]
- movs r1, 0
- movs r3, 0x84
- bl sub_811D6E8
- ldrb r0, [r4]
- adds r0, 0x1
- ldrb r1, [r4]
- strb r0, [r4]
- movs r0, 0
- add sp, 0x8
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0811B374: .4byte 0x0200c000
-_0811B378: .4byte 0xffffff00
-_0811B37C: .4byte gUnknown_03004DE0
- thumb_func_end sub_811B2F4
-
- thumb_func_start sub_811B380
-sub_811B380: @ 811B380
- push {r4-r7,lr}
- sub sp, 0x8
- adds r4, r0, 0
- ldr r5, _0811B3E0 @ =0x0200c000
- ldrb r0, [r5]
- movs r7, 0
- strb r7, [r5]
- ldrh r0, [r4, 0x10]
- adds r0, 0x8
- strh r0, [r4, 0x10]
- ldr r0, _0811B3E4 @ =0xffffff00
- adds r1, r0, 0
- ldrh r3, [r4, 0x12]
- adds r1, r3
- strh r1, [r4, 0x12]
- ldr r0, _0811B3E8 @ =gUnknown_03004DE0
- movs r3, 0x10
- ldrsh r2, [r4, r3]
- lsls r1, 16
- asrs r1, 24
- str r1, [sp]
- movs r6, 0xA0
- str r6, [sp, 0x4]
- movs r1, 0
- movs r3, 0x84
- bl sub_811D6E8
- movs r1, 0x12
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bgt _0811B3CE
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- strh r6, [r4, 0xA]
- movs r0, 0x80
- lsls r0, 1
- strh r0, [r4, 0xC]
- strh r7, [r4, 0xE]
-_0811B3CE:
- ldrb r0, [r5]
- adds r0, 0x1
- ldrb r1, [r5]
- strb r0, [r5]
- movs r0, 0
- add sp, 0x8
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0811B3E0: .4byte 0x0200c000
-_0811B3E4: .4byte 0xffffff00
-_0811B3E8: .4byte gUnknown_03004DE0
- thumb_func_end sub_811B380
-
- thumb_func_start sub_811B3EC
-sub_811B3EC: @ 811B3EC
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _0811B488 @ =0x0200c000
- ldrb r1, [r0]
- movs r3, 0
- strb r3, [r0]
- ldrh r2, [r4, 0xC]
- movs r0, 0xC
- ldrsh r1, [r4, r0]
- ldr r0, _0811B48C @ =0x000003ff
- cmp r1, r0
- bgt _0811B40A
- adds r0, r2, 0
- adds r0, 0x80
- strh r0, [r4, 0xC]
-_0811B40A:
- ldrh r1, [r4, 0xA]
- movs r2, 0xA
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _0811B426
- ldrh r0, [r4, 0xC]
- lsls r0, 16
- asrs r0, 24
- subs r0, r1, r0
- strh r0, [r4, 0xA]
- lsls r0, 16
- cmp r0, 0
- bge _0811B426
- strh r3, [r4, 0xA]
-_0811B426:
- ldr r0, _0811B490 @ =gUnknown_03004DE0
- movs r1, 0xA
- ldrsh r3, [r4, r1]
- movs r1, 0x78
- movs r2, 0x50
- bl sub_811D764
- movs r2, 0xA
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bne _0811B462
- ldr r1, _0811B494 @ =0x040000b0
- ldrh r2, [r1, 0xA]
- ldr r0, _0811B498 @ =0x0000c5ff
- ands r0, r2
- strh r0, [r1, 0xA]
- ldrh r2, [r1, 0xA]
- ldr r0, _0811B49C @ =0x00007fff
- ands r0, r2
- strh r0, [r1, 0xA]
- ldrh r0, [r1, 0xA]
- bl sub_811D6D4
- ldr r0, _0811B4A0 @ =sub_811B0F0
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
-_0811B462:
- ldrh r1, [r4, 0xE]
- movs r2, 0xE
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bne _0811B476
- adds r0, r1, 0x1
- strh r0, [r4, 0xE]
- ldr r0, _0811B4A4 @ =sub_811B54C
- bl SetVBlankCallback
-_0811B476:
- ldr r0, _0811B488 @ =0x0200c000
- ldrb r1, [r0]
- adds r1, 0x1
- ldrb r2, [r0]
- strb r1, [r0]
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0811B488: .4byte 0x0200c000
-_0811B48C: .4byte 0x000003ff
-_0811B490: .4byte gUnknown_03004DE0
-_0811B494: .4byte 0x040000b0
-_0811B498: .4byte 0x0000c5ff
-_0811B49C: .4byte 0x00007fff
-_0811B4A0: .4byte sub_811B0F0
-_0811B4A4: .4byte sub_811B54C
- thumb_func_end sub_811B3EC
-
- thumb_func_start sub_811B4A8
-sub_811B4A8: @ 811B4A8
- push {lr}
- ldr r1, _0811B500 @ =0x040000b0
- ldrh r2, [r1, 0xA]
- ldr r0, _0811B504 @ =0x0000c5ff
- ands r0, r2
- strh r0, [r1, 0xA]
- ldrh r2, [r1, 0xA]
- ldr r0, _0811B508 @ =0x00007fff
- ands r0, r2
- strh r0, [r1, 0xA]
- ldrh r0, [r1, 0xA]
- bl sub_811D67C
- ldr r2, _0811B50C @ =0x0200c000
- ldrb r0, [r2]
- cmp r0, 0
- beq _0811B4DE
- ldr r1, _0811B510 @ =0x040000d4
- ldr r0, _0811B514 @ =gUnknown_03004DE0
- str r0, [r1]
- movs r3, 0xF0
- lsls r3, 3
- adds r0, r3
- str r0, [r1, 0x4]
- ldr r0, _0811B518 @ =0x800000a0
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
-_0811B4DE:
- ldr r1, _0811B51C @ =REG_WININ
- ldrh r0, [r2, 0x2]
- strh r0, [r1]
- adds r1, 0x2
- ldrh r0, [r2, 0x4]
- strh r0, [r1]
- subs r1, 0x6
- ldrh r0, [r2, 0x8]
- strh r0, [r1]
- adds r1, 0xC
- ldrh r0, [r2, 0xE]
- strh r0, [r1]
- adds r1, 0x2
- ldrh r0, [r2, 0x10]
- strh r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_0811B500: .4byte 0x040000b0
-_0811B504: .4byte 0x0000c5ff
-_0811B508: .4byte 0x00007fff
-_0811B50C: .4byte 0x0200c000
-_0811B510: .4byte 0x040000d4
-_0811B514: .4byte gUnknown_03004DE0
-_0811B518: .4byte 0x800000a0
-_0811B51C: .4byte REG_WININ
- thumb_func_end sub_811B4A8
-
- thumb_func_start sub_811B520
-sub_811B520: @ 811B520
- push {lr}
- bl sub_811B4A8
- ldr r1, _0811B53C @ =0x040000b0
- ldr r0, _0811B540 @ =gUnknown_03005560
- str r0, [r1]
- ldr r0, _0811B544 @ =REG_BG0HOFS
- str r0, [r1, 0x4]
- ldr r0, _0811B548 @ =0xa2400001
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- pop {r0}
- bx r0
- .align 2, 0
-_0811B53C: .4byte 0x040000b0
-_0811B540: .4byte gUnknown_03005560
-_0811B544: .4byte REG_BG0HOFS
-_0811B548: .4byte 0xa2400001
- thumb_func_end sub_811B520
-
- thumb_func_start sub_811B54C
-sub_811B54C: @ 811B54C
- push {lr}
- bl sub_811B4A8
- ldr r1, _0811B568 @ =0x040000b0
- ldr r0, _0811B56C @ =gUnknown_03005560
- str r0, [r1]
- ldr r0, _0811B570 @ =REG_WIN0H
- str r0, [r1, 0x4]
- ldr r0, _0811B574 @ =0xa2400001
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- pop {r0}
- bx r0
- .align 2, 0
-_0811B568: .4byte 0x040000b0
-_0811B56C: .4byte gUnknown_03005560
-_0811B570: .4byte REG_WIN0H
-_0811B574: .4byte 0xa2400001
- thumb_func_end sub_811B54C
-
- thumb_func_start sub_811B578
-sub_811B578: @ 811B578
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r5, _0811B5A8 @ =gUnknown_083FD7D8
- ldr r2, _0811B5AC @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r4, r1, r2
-_0811B58A:
- 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 _0811B58A
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0811B5A8: .4byte gUnknown_083FD7D8
-_0811B5AC: .4byte gTasks
- thumb_func_end sub_811B578
-
- thumb_func_start sub_811B5B0
-sub_811B5B0: @ 811B5B0
- push {r4,lr}
- sub sp, 0xC
- adds r4, r0, 0
- add r0, sp, 0x4
- add r1, sp, 0x8
- bl sub_811D6A8
- ldr r0, _0811B5F0 @ =gUnknown_083FC108
- ldr r1, [sp, 0x8]
- movs r2, 0x20
- bl CpuSet
- movs r0, 0
- str r0, [sp]
- ldr r1, [sp, 0x4]
- ldr r2, _0811B5F4 @ =0x05000200
- mov r0, sp
- bl CpuSet
- ldr r0, _0811B5F8 @ =gFieldEffectObjectPalette10
- movs r1, 0xF0
- movs r2, 0x20
- bl LoadPalette
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- movs r0, 0
- add sp, 0xC
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0811B5F0: .4byte gUnknown_083FC108
-_0811B5F4: .4byte 0x05000200
-_0811B5F8: .4byte gFieldEffectObjectPalette10
- thumb_func_end sub_811B5B0
-
- thumb_func_start sub_811B5FC
-sub_811B5FC: @ 811B5FC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x10
- adds r7, r0, 0
- ldr r1, _0811B67C @ =gUnknown_083FD7E4
- mov r0, sp
- movs r2, 0x4
- bl memcpy
- add r4, sp, 0x4
- ldr r1, _0811B680 @ =gUnknown_083FD7E8
- adds r0, r4, 0
- movs r2, 0xA
- bl memcpy
- bl Random
- movs r5, 0x1
- ands r5, r0
- movs r1, 0
- mov r8, r4
- ldr r6, _0811B684 @ =gUnknown_0202FF84
-_0811B62A:
- lsls r5, 16
- asrs r5, 16
- lsls r0, r5, 1
- add r0, sp
- movs r2, 0
- ldrsh r0, [r0, r2]
- str r0, [r6]
- lsls r4, r1, 16
- asrs r4, 16
- lsls r0, r4, 5
- adds r0, 0x10
- str r0, [r6, 0x4]
- str r5, [r6, 0x8]
- lsls r0, r4, 1
- add r0, r8
- movs r1, 0
- ldrsh r0, [r0, r1]
- str r0, [r6, 0xC]
- movs r0, 0x2D
- bl FieldEffectStart
- adds r4, 0x1
- lsls r4, 16
- movs r0, 0x1
- eors r5, r0
- lsls r5, 16
- lsrs r5, 16
- lsrs r1, r4, 16
- asrs r4, 16
- cmp r4, 0x4
- ble _0811B62A
- ldrh r0, [r7, 0x8]
- adds r0, 0x1
- strh r0, [r7, 0x8]
- movs r0, 0
- add sp, 0x10
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0811B67C: .4byte gUnknown_083FD7E4
-_0811B680: .4byte gUnknown_083FD7E8
-_0811B684: .4byte gUnknown_0202FF84
- thumb_func_end sub_811B5FC
-
- thumb_func_start sub_811B688
-sub_811B688: @ 811B688
- push {lr}
- movs r0, 0x2D
- bl FieldEffectActiveListContains
- lsls r0, 24
- cmp r0, 0
- bne _0811B6A8
- bl sub_811D6D4
- ldr r0, _0811B6B0 @ =sub_811B578
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
-_0811B6A8:
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_0811B6B0: .4byte sub_811B578
- thumb_func_end sub_811B688
-
- thumb_func_start FldEff_Pokeball
-FldEff_Pokeball: @ 811B6B4
- push {r4,r5,lr}
- ldr r0, _0811B710 @ =gSpriteTemplate_83FD98C
- ldr r5, _0811B714 @ =gUnknown_0202FF84
- movs r2, 0
- ldrsh r1, [r5, r2]
- movs r3, 0x4
- ldrsh r2, [r5, r3]
- movs r3, 0
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0811B718 @ =gSprites
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- adds r4, r1
- ldrb r1, [r4, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r1
- strb r0, [r4, 0x5]
- 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, [r5, 0x8]
- strh r0, [r4, 0x2E]
- ldr r0, [r5, 0xC]
- strh r0, [r4, 0x30]
- ldr r0, _0811B71C @ =0x0000ffff
- strh r0, [r4, 0x32]
- adds r0, r4, 0
- bl InitSpriteAffineAnim
- ldrb r1, [r5, 0x8]
- adds r0, r4, 0
- bl StartSpriteAffineAnim
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0811B710: .4byte gSpriteTemplate_83FD98C
-_0811B714: .4byte gUnknown_0202FF84
-_0811B718: .4byte gSprites
-_0811B71C: .4byte 0x0000ffff
- thumb_func_end FldEff_Pokeball
-
- thumb_func_start sub_811B720
-sub_811B720: @ 811B720
- push {r4-r6,lr}
- sub sp, 0x4
- adds r4, r0, 0
- ldr r1, _0811B740 @ =gUnknown_083FD7F2
- mov r0, sp
- movs r2, 0x4
- bl memcpy
- ldrh r1, [r4, 0x30]
- movs r2, 0x30
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _0811B744
- subs r0, r1, 0x1
- strh r0, [r4, 0x30]
- b _0811B7D6
- .align 2, 0
-_0811B740: .4byte gUnknown_083FD7F2
-_0811B744:
- ldrh r0, [r4, 0x20]
- lsls r1, r0, 16
- lsrs r0, r1, 16
- cmp r0, 0xF0
- bhi _0811B7B2
- asrs r0, r1, 19
- lsls r0, 16
- ldrh r1, [r4, 0x22]
- lsls r1, 16
- asrs r1, 19
- lsls r1, 16
- lsrs r1, 16
- lsrs r2, r0, 16
- asrs r5, r0, 16
- movs r3, 0x32
- ldrsh r0, [r4, r3]
- cmp r5, r0
- beq _0811B7B2
- strh r2, [r4, 0x32]
- ldr r0, _0811B7E0 @ =REG_BG0CNT
- ldrh r2, [r0]
- lsrs r2, 8
- movs r0, 0x1F
- ands r2, r0
- lsls r2, 11
- movs r0, 0xC0
- lsls r0, 19
- adds r2, r0
- lsls r1, 16
- asrs r1, 16
- subs r0, r1, 0x2
- lsls r0, 5
- adds r0, r5
- lsls r0, 1
- adds r0, r2
- ldr r6, _0811B7E4 @ =0x0000f001
- adds r3, r6, 0
- strh r3, [r0]
- subs r0, r1, 0x1
- lsls r0, 5
- adds r0, r5
- lsls r0, 1
- adds r0, r2
- strh r3, [r0]
- lsls r0, r1, 5
- adds r0, r5
- lsls r0, 1
- adds r0, r2
- strh r3, [r0]
- adds r1, 0x1
- lsls r1, 5
- adds r1, r5
- lsls r1, 1
- adds r1, r2
- strh r3, [r1]
-_0811B7B2:
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- lsls r0, 1
- add r0, sp
- ldrh r0, [r0]
- ldrh r2, [r4, 0x20]
- adds r0, r2
- strh r0, [r4, 0x20]
- adds r0, 0xF
- lsls r0, 16
- movs r1, 0x87
- lsls r1, 17
- cmp r0, r1
- bls _0811B7D6
- adds r0, r4, 0
- movs r1, 0x2D
- bl FieldEffectStop
-_0811B7D6:
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0811B7E0: .4byte REG_BG0CNT
-_0811B7E4: .4byte 0x0000f001
- thumb_func_end sub_811B720
-
- thumb_func_start sub_811B7E8
-sub_811B7E8: @ 811B7E8
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r5, _0811B818 @ =gUnknown_083FD7F8
- ldr r2, _0811B81C @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r4, r1, r2
-_0811B7FA:
- 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 _0811B7FA
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0811B818: .4byte gUnknown_083FD7F8
-_0811B81C: .4byte gTasks
- thumb_func_end sub_811B7E8
-
- thumb_func_start sub_811B820
-sub_811B820: @ 811B820
- push {r4,lr}
- adds r4, r0, 0
- bl sub_811D658
- bl dp12_8087EA4
- ldr r1, _0811B870 @ =0x0200c000
- movs r0, 0
- strh r0, [r1, 0x2]
- movs r0, 0x3F
- strh r0, [r1, 0x4]
- ldr r0, _0811B874 @ =0x0000f0f1
- strh r0, [r1, 0x6]
- movs r0, 0xA0
- strh r0, [r1, 0x8]
- movs r1, 0
- ldr r3, _0811B878 @ =gUnknown_03005560
- ldr r2, _0811B87C @ =0x0000f3f4
-_0811B844:
- lsls r0, r1, 1
- adds r0, r3
- strh r2, [r0]
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0x9F
- bls _0811B844
- ldr r0, _0811B880 @ =sub_811BC2C
- bl SetVBlankCallback
- ldr r1, _0811B870 @ =0x0200c000
- movs r0, 0x78
- strh r0, [r1, 0x2C]
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- movs r0, 0x1
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0811B870: .4byte 0x0200c000
-_0811B874: .4byte 0x0000f0f1
-_0811B878: .4byte gUnknown_03005560
-_0811B87C: .4byte 0x0000f3f4
-_0811B880: .4byte sub_811BC2C
- thumb_func_end sub_811B820
-
- thumb_func_start sub_811B884
-sub_811B884: @ 811B884
- push {r4-r6,lr}
- sub sp, 0xC
- adds r6, r0, 0
- ldr r4, _0811B904 @ =0x0200c000
- ldrb r0, [r4]
- movs r0, 0
- strb r0, [r4]
- adds r0, r4, 0
- adds r0, 0x24
- movs r1, 0x2C
- ldrsh r3, [r4, r1]
- movs r1, 0x1
- negs r1, r1
- str r1, [sp]
- movs r1, 0x1
- str r1, [sp, 0x4]
- str r1, [sp, 0x8]
- movs r1, 0x78
- movs r2, 0x50
- bl sub_811D8FC
- ldr r5, _0811B908 @ =gUnknown_03004DE0
-_0811B8B0:
- movs r3, 0x2A
- ldrsh r2, [r4, r3]
- lsls r2, 1
- adds r2, r5
- ldrh r0, [r4, 0x28]
- adds r0, 0x1
- movs r3, 0xF0
- lsls r3, 7
- adds r1, r3, 0
- orrs r0, r1
- strh r0, [r2]
- adds r0, r4, 0
- adds r0, 0x24
- movs r1, 0x1
- movs r2, 0x1
- bl sub_811D978
- lsls r0, 24
- cmp r0, 0
- beq _0811B8B0
- ldr r2, _0811B904 @ =0x0200c000
- ldrh r0, [r2, 0x2C]
- adds r0, 0x10
- strh r0, [r2, 0x2C]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xEF
- ble _0811B8F2
- movs r0, 0
- strh r0, [r2, 0x2E]
- ldrh r0, [r6, 0x8]
- adds r0, 0x1
- strh r0, [r6, 0x8]
-_0811B8F2:
- ldrb r0, [r2]
- adds r0, 0x1
- ldrb r1, [r2]
- strb r0, [r2]
- movs r0, 0
- add sp, 0xC
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_0811B904: .4byte 0x0200c000
-_0811B908: .4byte gUnknown_03004DE0
- thumb_func_end sub_811B884
-
- thumb_func_start sub_811B90C
-sub_811B90C: @ 811B90C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x10
- adds r7, r0, 0
- add r1, sp, 0xC
- movs r0, 0
- strb r0, [r1]
- ldr r4, _0811B988 @ =0x0200c000
- ldrb r0, [r4]
- movs r0, 0
- strb r0, [r4]
- adds r0, r4, 0
- adds r0, 0x24
- movs r2, 0x2E
- ldrsh r1, [r4, r2]
- str r1, [sp]
- movs r1, 0x1
- str r1, [sp, 0x4]
- str r1, [sp, 0x8]
- movs r1, 0x78
- movs r2, 0x50
- movs r3, 0xF0
- bl sub_811D8FC
- adds r6, r4, 0
- ldr r5, _0811B98C @ =gUnknown_03004DE0
- mov r8, r5
- add r5, sp, 0xC
-_0811B946:
- movs r1, 0x78
- ldrh r0, [r4, 0x28]
- adds r0, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- movs r2, 0x2E
- ldrsh r0, [r4, r2]
- cmp r0, 0x4F
- ble _0811B95C
- ldrh r1, [r4, 0x28]
- movs r3, 0xF0
-_0811B95C:
- movs r0, 0x2A
- ldrsh r2, [r4, r0]
- lsls r2, 1
- add r2, r8
- lsls r1, 16
- asrs r1, 8
- lsls r0, r3, 16
- asrs r3, r0, 16
- orrs r3, r1
- strh r3, [r2]
- ldrb r0, [r5]
- cmp r0, 0
- bne _0811B990
- adds r0, r4, 0
- adds r0, 0x24
- movs r1, 0x1
- movs r2, 0x1
- bl sub_811D978
- strb r0, [r5]
- b _0811B946
- .align 2, 0
-_0811B988: .4byte 0x0200c000
-_0811B98C: .4byte gUnknown_03004DE0
-_0811B990:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x8
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r1, r0, 16
- cmp r1, 0x9F
- ble _0811B9AA
- movs r0, 0xF0
- strh r0, [r4, 0x2C]
- ldrh r0, [r7, 0x8]
- adds r0, 0x1
- strh r0, [r7, 0x8]
- b _0811B9D0
-_0811B9AA:
- movs r2, 0x2A
- ldrsh r0, [r4, r2]
- cmp r0, r1
- bge _0811B9D0
- ldr r4, _0811B9E8 @ =gUnknown_03004DE0
- ldr r2, _0811B9EC @ =0x0200c000
-_0811B9B6:
- ldrh r0, [r2, 0x2A]
- adds r0, 0x1
- strh r0, [r2, 0x2A]
- lsls r0, 16
- asrs r0, 15
- adds r0, r4
- strh r3, [r0]
- movs r5, 0x2A
- ldrsh r1, [r2, r5]
- movs r5, 0x2E
- ldrsh r0, [r2, r5]
- cmp r1, r0
- blt _0811B9B6
-_0811B9D0:
- ldrb r0, [r6]
- adds r0, 0x1
- ldrb r1, [r6]
- strb r0, [r6]
- movs r0, 0
- add sp, 0x10
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0811B9E8: .4byte gUnknown_03004DE0
-_0811B9EC: .4byte 0x0200c000
- thumb_func_end sub_811B90C
-
- thumb_func_start sub_811B9F0
-sub_811B9F0: @ 811B9F0
- push {r4-r6,lr}
- sub sp, 0xC
- adds r6, r0, 0
- ldr r4, _0811BA68 @ =0x0200c000
- ldrb r0, [r4]
- movs r0, 0
- strb r0, [r4]
- adds r0, r4, 0
- adds r0, 0x24
- movs r1, 0x2C
- ldrsh r3, [r4, r1]
- movs r1, 0xA0
- str r1, [sp]
- movs r1, 0x1
- str r1, [sp, 0x4]
- str r1, [sp, 0x8]
- movs r1, 0x78
- movs r2, 0x50
- bl sub_811D8FC
- ldr r5, _0811BA6C @ =gUnknown_03004DE0
-_0811BA1A:
- movs r0, 0x2A
- ldrsh r2, [r4, r0]
- lsls r2, 1
- adds r2, r5
- ldrh r0, [r4, 0x28]
- lsls r0, 8
- movs r1, 0xF0
- orrs r0, r1
- strh r0, [r2]
- adds r0, r4, 0
- adds r0, 0x24
- movs r1, 0x1
- movs r2, 0x1
- bl sub_811D978
- lsls r0, 24
- cmp r0, 0
- beq _0811BA1A
- ldr r2, _0811BA68 @ =0x0200c000
- ldrh r0, [r2, 0x2C]
- subs r0, 0x10
- strh r0, [r2, 0x2C]
- lsls r0, 16
- cmp r0, 0
- bgt _0811BA56
- movs r0, 0xA0
- strh r0, [r2, 0x2E]
- ldrh r0, [r6, 0x8]
- adds r0, 0x1
- strh r0, [r6, 0x8]
-_0811BA56:
- ldrb r0, [r2]
- adds r0, 0x1
- ldrb r1, [r2]
- strb r0, [r2]
- movs r0, 0
- add sp, 0xC
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_0811BA68: .4byte 0x0200c000
-_0811BA6C: .4byte gUnknown_03004DE0
- thumb_func_end sub_811B9F0
-
- thumb_func_start sub_811BA70
-sub_811BA70: @ 811BA70
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- mov r8, r0
- add r1, sp, 0xC
- movs r0, 0
- strb r0, [r1]
- ldr r4, _0811BAF0 @ =0x0200c000
- ldrb r0, [r4]
- movs r0, 0
- strb r0, [r4]
- adds r0, r4, 0
- adds r0, 0x24
- movs r2, 0x2E
- ldrsh r1, [r4, r2]
- str r1, [sp]
- movs r1, 0x1
- str r1, [sp, 0x4]
- str r1, [sp, 0x8]
- movs r1, 0x78
- movs r2, 0x50
- movs r3, 0
- bl sub_811D8FC
- ldr r3, _0811BAF4 @ =gUnknown_03004DE0
- mov r9, r3
- mov r10, r4
- add r6, sp, 0xC
-_0811BAAE:
- movs r5, 0x2A
- ldrsh r0, [r4, r5]
- lsls r0, 1
- mov r7, r9
- adds r5, r0, r7
- ldrb r1, [r5]
- ldrh r2, [r4, 0x28]
- adds r3, r2, 0
- movs r7, 0x2E
- ldrsh r0, [r4, r7]
- cmp r0, 0x50
- bgt _0811BACA
- movs r2, 0x78
- adds r1, r3, 0
-_0811BACA:
- lsls r0, r2, 16
- asrs r0, 8
- lsls r1, 16
- asrs r1, 16
- orrs r1, r0
- movs r3, 0
- strh r1, [r5]
- ldrb r0, [r6]
- cmp r0, 0
- bne _0811BAF8
- adds r0, r4, 0
- adds r0, 0x24
- movs r1, 0x1
- movs r2, 0x1
- bl sub_811D978
- strb r0, [r6]
- b _0811BAAE
- .align 2, 0
-_0811BAF0: .4byte 0x0200c000
-_0811BAF4: .4byte gUnknown_03004DE0
-_0811BAF8:
- ldrh r0, [r4, 0x2E]
- subs r0, 0x8
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r2, r0, 16
- cmp r2, 0
- bgt _0811BB12
- strh r3, [r4, 0x2C]
- mov r1, r8
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- b _0811BB3A
-_0811BB12:
- movs r3, 0x2A
- ldrsh r0, [r4, r3]
- cmp r0, r2
- ble _0811BB3A
- ldr r4, _0811BB58 @ =gUnknown_03004DE0
- ldr r2, _0811BB5C @ =0x0200c000
- adds r3, r1, 0
-_0811BB20:
- ldrh r0, [r2, 0x2A]
- subs r0, 0x1
- strh r0, [r2, 0x2A]
- lsls r0, 16
- asrs r0, 15
- adds r0, r4
- strh r3, [r0]
- movs r5, 0x2A
- ldrsh r1, [r2, r5]
- movs r7, 0x2E
- ldrsh r0, [r2, r7]
- cmp r1, r0
- bgt _0811BB20
-_0811BB3A:
- mov r1, r10
- ldrb r0, [r1]
- adds r0, 0x1
- ldrb r1, [r1]
- mov r2, r10
- strb r0, [r2]
- movs r0, 0
- 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
-_0811BB58: .4byte gUnknown_03004DE0
-_0811BB5C: .4byte 0x0200c000
- thumb_func_end sub_811BA70
-
- thumb_func_start sub_811BB60
-sub_811BB60: @ 811BB60
- push {r4-r6,lr}
- sub sp, 0xC
- adds r6, r0, 0
- ldr r4, _0811BBE4 @ =0x0200c000
- ldrb r0, [r4]
- movs r1, 0
- strb r1, [r4]
- adds r0, r4, 0
- adds r0, 0x24
- movs r2, 0x2C
- ldrsh r3, [r4, r2]
- str r1, [sp]
- movs r1, 0x1
- str r1, [sp, 0x4]
- str r1, [sp, 0x8]
- movs r1, 0x78
- movs r2, 0x50
- bl sub_811D8FC
- ldr r5, _0811BBE8 @ =gUnknown_03004DE0
-_0811BB88:
- movs r2, 0x78
- ldrh r3, [r4, 0x28]
- movs r1, 0x28
- ldrsh r0, [r4, r1]
- cmp r0, 0x77
- ble _0811BB98
- movs r2, 0
- movs r3, 0xF0
-_0811BB98:
- movs r0, 0x2A
- ldrsh r1, [r4, r0]
- lsls r1, 1
- adds r1, r5
- lsls r2, 8
- lsls r0, r3, 16
- asrs r0, 16
- orrs r0, r2
- strh r0, [r1]
- adds r0, r4, 0
- adds r0, 0x24
- movs r1, 0x1
- movs r2, 0x1
- bl sub_811D978
- lsls r0, 24
- cmp r0, 0
- beq _0811BB88
- ldr r2, _0811BBE4 @ =0x0200c000
- ldrh r0, [r2, 0x2C]
- adds r0, 0x10
- strh r0, [r2, 0x2C]
- movs r1, 0x28
- ldrsh r0, [r2, r1]
- cmp r0, 0x78
- ble _0811BBD2
- ldrh r0, [r6, 0x8]
- adds r0, 0x1
- strh r0, [r6, 0x8]
-_0811BBD2:
- ldrb r0, [r2]
- adds r0, 0x1
- ldrb r1, [r2]
- strb r0, [r2]
- movs r0, 0
- add sp, 0xC
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_0811BBE4: .4byte 0x0200c000
-_0811BBE8: .4byte gUnknown_03004DE0
- thumb_func_end sub_811BB60
-
- thumb_func_start sub_811BBEC
-sub_811BBEC: @ 811BBEC
- push {lr}
- ldr r1, _0811BC1C @ =0x040000b0
- ldrh r2, [r1, 0xA]
- ldr r0, _0811BC20 @ =0x0000c5ff
- ands r0, r2
- strh r0, [r1, 0xA]
- ldrh r2, [r1, 0xA]
- ldr r0, _0811BC24 @ =0x00007fff
- ands r0, r2
- strh r0, [r1, 0xA]
- ldrh r0, [r1, 0xA]
- bl sub_811D6D4
- ldr r0, _0811BC28 @ =sub_811B7E8
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_0811BC1C: .4byte 0x040000b0
-_0811BC20: .4byte 0x0000c5ff
-_0811BC24: .4byte 0x00007fff
-_0811BC28: .4byte sub_811B7E8
- thumb_func_end sub_811BBEC
-
- thumb_func_start sub_811BC2C
-sub_811BC2C: @ 811BC2C
- push {r4,lr}
- ldr r4, _0811BC94 @ =0x040000b0
- ldrh r1, [r4, 0xA]
- ldr r0, _0811BC98 @ =0x0000c5ff
- ands r0, r1
- strh r0, [r4, 0xA]
- ldrh r1, [r4, 0xA]
- ldr r0, _0811BC9C @ =0x00007fff
- ands r0, r1
- strh r0, [r4, 0xA]
- ldrh r0, [r4, 0xA]
- bl sub_811D67C
- ldr r2, _0811BCA0 @ =0x0200c000
- ldrb r0, [r2]
- cmp r0, 0
- beq _0811BC62
- ldr r1, _0811BCA4 @ =0x040000d4
- ldr r0, _0811BCA8 @ =gUnknown_03004DE0
- str r0, [r1]
- movs r3, 0xF0
- lsls r3, 3
- adds r0, r3
- str r0, [r1, 0x4]
- ldr r0, _0811BCAC @ =0x800000a0
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
-_0811BC62:
- ldr r1, _0811BCB0 @ =REG_WININ
- ldrh r0, [r2, 0x2]
- strh r0, [r1]
- adds r1, 0x2
- ldrh r0, [r2, 0x4]
- strh r0, [r1]
- subs r1, 0x6
- ldrh r0, [r2, 0x8]
- strh r0, [r1]
- ldr r2, _0811BCB4 @ =REG_WIN0H
- ldr r0, _0811BCA8 @ =gUnknown_03004DE0
- movs r1, 0xF0
- lsls r1, 3
- adds r0, r1
- ldrh r1, [r0]
- strh r1, [r2]
- str r0, [r4]
- str r2, [r4, 0x4]
- ldr r0, _0811BCB8 @ =0xa2400001
- str r0, [r4, 0x8]
- ldr r0, [r4, 0x8]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0811BC94: .4byte 0x040000b0
-_0811BC98: .4byte 0x0000c5ff
-_0811BC9C: .4byte 0x00007fff
-_0811BCA0: .4byte 0x0200c000
-_0811BCA4: .4byte 0x040000d4
-_0811BCA8: .4byte gUnknown_03004DE0
-_0811BCAC: .4byte 0x800000a0
-_0811BCB0: .4byte REG_WININ
-_0811BCB4: .4byte REG_WIN0H
-_0811BCB8: .4byte 0xa2400001
- thumb_func_end sub_811BC2C
-
- thumb_func_start sub_811BCBC
-sub_811BCBC: @ 811BCBC
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r5, _0811BCEC @ =gUnknown_083FD814
- ldr r2, _0811BCF0 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r4, r1, r2
-_0811BCCE:
- 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 _0811BCCE
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0811BCEC: .4byte gUnknown_083FD814
-_0811BCF0: .4byte gTasks
- thumb_func_end sub_811BCBC
-
- thumb_func_start sub_811BCF4
-sub_811BCF4: @ 811BCF4
- push {r4,r5,lr}
- adds r5, r0, 0
- bl sub_811D658
- bl dp12_8087EA4
- movs r2, 0
- ldr r4, _0811BD48 @ =gUnknown_03005560
- ldr r3, _0811BD4C @ =0x0200c000
-_0811BD06:
- lsls r0, r2, 1
- adds r0, r4
- ldrh r1, [r3, 0x16]
- strh r1, [r0]
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x9F
- bls _0811BD06
- ldr r0, _0811BD50 @ =sub_811BE3C
- bl SetVBlankCallback
- ldr r0, _0811BD54 @ =sub_811BE74
- bl SetHBlankCallback
- ldr r2, _0811BD58 @ =0x04000200
- ldrh r0, [r2]
- movs r1, 0x2
- orrs r0, r1
- strh r0, [r2]
- ldr r2, _0811BD5C @ =REG_DISPSTAT
- ldrh r0, [r2]
- movs r1, 0x10
- orrs r0, r1
- strh r0, [r2]
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
- movs r0, 0x1
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0811BD48: .4byte gUnknown_03005560
-_0811BD4C: .4byte 0x0200c000
-_0811BD50: .4byte sub_811BE3C
-_0811BD54: .4byte sub_811BE74
-_0811BD58: .4byte 0x04000200
-_0811BD5C: .4byte REG_DISPSTAT
- thumb_func_end sub_811BCF4
-
- thumb_func_start sub_811BD60
-sub_811BD60: @ 811BD60
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- adds r6, r0, 0
- ldr r1, _0811BE28 @ =0x0200c000
- ldrb r0, [r1]
- movs r0, 0
- strb r0, [r1]
- ldrh r2, [r6, 0xC]
- lsls r1, r2, 16
- asrs r0, r1, 24
- lsls r0, 16
- lsrs r3, r0, 16
- ldrh r4, [r6, 0xA]
- movs r0, 0xC0
- lsls r0, 1
- mov r8, r0
- movs r5, 0x80
- lsls r5, 3
- adds r0, r4, r5
- strh r0, [r6, 0xA]
- ldr r0, _0811BE2C @ =0x1fff0000
- cmp r1, r0
- bgt _0811BD9A
- movs r1, 0xC0
- lsls r1, 1
- adds r0, r2, r1
- strh r0, [r6, 0xC]
-_0811BD9A:
- movs r5, 0
- lsls r7, r3, 16
-_0811BD9E:
- lsrs r0, r4, 8
- asrs r1, r7, 16
- bl Sin
- ldr r1, _0811BE30 @ =gUnknown_03004DE0
- lsls r2, r5, 1
- adds r2, r1
- ldr r1, _0811BE28 @ =0x0200c000
- ldrh r1, [r1, 0x16]
- adds r0, r1
- strh r0, [r2]
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- mov r1, r8
- adds r0, r4, r1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r5, 0x9F
- bls _0811BD9E
- ldrh r0, [r6, 0xE]
- adds r0, 0x1
- strh r0, [r6, 0xE]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x51
- bne _0811BDEC
- ldrh r0, [r6, 0x10]
- adds r0, 0x1
- strh r0, [r6, 0x10]
- movs r0, 0x1
- negs r0, r0
- movs r1, 0x2
- negs r1, r1
- movs r2, 0
- str r2, [sp]
- movs r3, 0x10
- bl BeginNormalPaletteFade
-_0811BDEC:
- movs r5, 0x10
- ldrsh r0, [r6, r5]
- cmp r0, 0
- beq _0811BE0E
- ldr r0, _0811BE34 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0811BE0E
- ldr r0, _0811BE38 @ =sub_811BCBC
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
-_0811BE0E:
- ldr r0, _0811BE28 @ =0x0200c000
- ldrb r1, [r0]
- adds r1, 0x1
- ldrb r2, [r0]
- strb r1, [r0]
- movs r0, 0
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0811BE28: .4byte 0x0200c000
-_0811BE2C: .4byte 0x1fff0000
-_0811BE30: .4byte gUnknown_03004DE0
-_0811BE34: .4byte gPaletteFade
-_0811BE38: .4byte sub_811BCBC
- thumb_func_end sub_811BD60
-
- thumb_func_start sub_811BE3C
-sub_811BE3C: @ 811BE3C
- push {lr}
- bl sub_811D67C
- ldr r0, _0811BE64 @ =0x0200c000
- ldrb r0, [r0]
- cmp r0, 0
- beq _0811BE5E
- ldr r1, _0811BE68 @ =0x040000d4
- ldr r0, _0811BE6C @ =gUnknown_03004DE0
- str r0, [r1]
- movs r2, 0xF0
- lsls r2, 3
- adds r0, r2
- str r0, [r1, 0x4]
- ldr r0, _0811BE70 @ =0x800000a0
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
-_0811BE5E:
- pop {r0}
- bx r0
- .align 2, 0
-_0811BE64: .4byte 0x0200c000
-_0811BE68: .4byte 0x040000d4
-_0811BE6C: .4byte gUnknown_03004DE0
-_0811BE70: .4byte 0x800000a0
- thumb_func_end sub_811BE3C
-
- thumb_func_start sub_811BE74
-sub_811BE74: @ 811BE74
- ldr r1, _0811BE94 @ =gUnknown_03004DE0
- ldr r0, _0811BE98 @ =REG_VCOUNT
- ldrh r0, [r0]
- lsls r0, 1
- movs r2, 0xF0
- lsls r2, 3
- adds r1, r2
- adds r0, r1
- ldrh r1, [r0]
- ldr r0, _0811BE9C @ =REG_BG1VOFS
- strh r1, [r0]
- adds r0, 0x4
- strh r1, [r0]
- adds r0, 0x4
- strh r1, [r0]
- bx lr
- .align 2, 0
-_0811BE94: .4byte gUnknown_03004DE0
-_0811BE98: .4byte REG_VCOUNT
-_0811BE9C: .4byte REG_BG1VOFS
- thumb_func_end sub_811BE74
-
- thumb_func_start sub_811BEA0
-sub_811BEA0: @ 811BEA0
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r5, _0811BED0 @ =gUnknown_083FD81C
- ldr r2, _0811BED4 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r4, r1, r2
-_0811BEB2:
- 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 _0811BEB2
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0811BED0: .4byte gUnknown_083FD81C
-_0811BED4: .4byte gTasks
- thumb_func_end sub_811BEA0
-
- thumb_func_start sub_811BED8
-sub_811BED8: @ 811BED8
- push {r4,lr}
- adds r4, r0, 0
- bl sub_811D658
- bl dp12_8087EA4
- ldr r1, _0811BF20 @ =0x0200c000
- movs r2, 0
- movs r0, 0x3F
- strh r0, [r1, 0x2]
- strh r2, [r1, 0x4]
- movs r0, 0xF0
- strh r0, [r1, 0x6]
- movs r0, 0xA0
- strh r0, [r1, 0x8]
- movs r1, 0
- ldr r3, _0811BF24 @ =gUnknown_03005560
- movs r2, 0xF2
-_0811BEFC:
- lsls r0, r1, 1
- adds r0, r3
- strh r2, [r0]
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x9F
- bls _0811BEFC
- ldr r0, _0811BF28 @ =sub_811C004
- bl SetVBlankCallback
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- movs r0, 0x1
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0811BF20: .4byte 0x0200c000
-_0811BF24: .4byte gUnknown_03005560
-_0811BF28: .4byte sub_811C004
- thumb_func_end sub_811BED8
-
- thumb_func_start sub_811BF2C
-sub_811BF2C: @ 811BF2C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r4, r0, 0
- ldr r1, _0811BFBC @ =0x0200c000
- ldrb r0, [r1]
- movs r0, 0
- strb r0, [r1]
- ldr r7, _0811BFC0 @ =gUnknown_03004DE0
- ldrh r0, [r4, 0xC]
- ldrb r5, [r4, 0xC]
- adds r0, 0x10
- strh r0, [r4, 0xC]
- ldrh r0, [r4, 0xA]
- adds r0, 0x8
- strh r0, [r4, 0xA]
- movs r6, 0
- movs r0, 0x1
- mov r8, r0
-_0811BF52:
- adds r0, r5, 0
- movs r1, 0x28
- bl Sin
- ldrh r1, [r4, 0xA]
- adds r0, r1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r0, 0
- bge _0811BF68
- movs r1, 0
-_0811BF68:
- lsls r0, r1, 16
- asrs r0, 16
- cmp r0, 0xF0
- ble _0811BF72
- movs r1, 0xF0
-_0811BF72:
- lsls r0, r1, 16
- asrs r0, 16
- lsls r1, r0, 8
- movs r2, 0xF1
- orrs r1, r2
- strh r1, [r7]
- cmp r0, 0xEF
- bgt _0811BF86
- movs r0, 0
- mov r8, r0
-_0811BF86:
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- adds r0, r5, 0x4
- lsls r0, 24
- lsrs r5, r0, 24
- adds r7, 0x2
- cmp r6, 0x9F
- bls _0811BF52
- mov r1, r8
- cmp r1, 0
- beq _0811BFA4
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_0811BFA4:
- ldr r0, _0811BFBC @ =0x0200c000
- ldrb r1, [r0]
- adds r1, 0x1
- ldrb r2, [r0]
- strb r1, [r0]
- movs r0, 0
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0811BFBC: .4byte 0x0200c000
-_0811BFC0: .4byte gUnknown_03004DE0
- thumb_func_end sub_811BF2C
-
- thumb_func_start sub_811BFC4
-sub_811BFC4: @ 811BFC4
- push {lr}
- ldr r1, _0811BFF4 @ =0x040000b0
- ldrh r2, [r1, 0xA]
- ldr r0, _0811BFF8 @ =0x0000c5ff
- ands r0, r2
- strh r0, [r1, 0xA]
- ldrh r2, [r1, 0xA]
- ldr r0, _0811BFFC @ =0x00007fff
- ands r0, r2
- strh r0, [r1, 0xA]
- ldrh r0, [r1, 0xA]
- bl sub_811D6D4
- ldr r0, _0811C000 @ =sub_811BEA0
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_0811BFF4: .4byte 0x040000b0
-_0811BFF8: .4byte 0x0000c5ff
-_0811BFFC: .4byte 0x00007fff
-_0811C000: .4byte sub_811BEA0
- thumb_func_end sub_811BFC4
-
- thumb_func_start sub_811C004
-sub_811C004: @ 811C004
- push {r4,lr}
- ldr r4, _0811C060 @ =0x040000b0
- ldrh r1, [r4, 0xA]
- ldr r0, _0811C064 @ =0x0000c5ff
- ands r0, r1
- strh r0, [r4, 0xA]
- ldrh r1, [r4, 0xA]
- ldr r0, _0811C068 @ =0x00007fff
- ands r0, r1
- strh r0, [r4, 0xA]
- ldrh r0, [r4, 0xA]
- bl sub_811D67C
- ldr r2, _0811C06C @ =0x0200c000
- ldrb r0, [r2]
- cmp r0, 0
- beq _0811C03A
- ldr r1, _0811C070 @ =0x040000d4
- ldr r0, _0811C074 @ =gUnknown_03004DE0
- str r0, [r1]
- movs r3, 0xF0
- lsls r3, 3
- adds r0, r3
- str r0, [r1, 0x4]
- ldr r0, _0811C078 @ =0x800000a0
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
-_0811C03A:
- ldr r1, _0811C07C @ =REG_WININ
- ldrh r0, [r2, 0x2]
- strh r0, [r1]
- adds r1, 0x2
- ldrh r0, [r2, 0x4]
- strh r0, [r1]
- subs r1, 0x6
- ldrh r0, [r2, 0x8]
- strh r0, [r1]
- ldr r0, _0811C080 @ =gUnknown_03005560
- str r0, [r4]
- ldr r0, _0811C084 @ =REG_WIN0H
- str r0, [r4, 0x4]
- ldr r0, _0811C088 @ =0xa2400001
- str r0, [r4, 0x8]
- ldr r0, [r4, 0x8]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0811C060: .4byte 0x040000b0
-_0811C064: .4byte 0x0000c5ff
-_0811C068: .4byte 0x00007fff
-_0811C06C: .4byte 0x0200c000
-_0811C070: .4byte 0x040000d4
-_0811C074: .4byte gUnknown_03004DE0
-_0811C078: .4byte 0x800000a0
-_0811C07C: .4byte REG_WININ
-_0811C080: .4byte gUnknown_03005560
-_0811C084: .4byte REG_WIN0H
-_0811C088: .4byte 0xa2400001
- thumb_func_end sub_811C004
-
- thumb_func_start sub_811C08C
-sub_811C08C: @ 811C08C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0811C0A8 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r2, 0
- strh r2, [r1, 0x26]
- bl sub_811C12C
- pop {r0}
- bx r0
- .align 2, 0
-_0811C0A8: .4byte gTasks
- thumb_func_end sub_811C08C
-
- thumb_func_start sub_811C0AC
-sub_811C0AC: @ 811C0AC
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0811C0C8 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r2, 0x1
- strh r2, [r1, 0x26]
- bl sub_811C12C
- pop {r0}
- bx r0
- .align 2, 0
-_0811C0C8: .4byte gTasks
- thumb_func_end sub_811C0AC
-
- thumb_func_start sub_811C0CC
-sub_811C0CC: @ 811C0CC
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0811C0E8 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r2, 0x2
- strh r2, [r1, 0x26]
- bl sub_811C12C
- pop {r0}
- bx r0
- .align 2, 0
-_0811C0E8: .4byte gTasks
- thumb_func_end sub_811C0CC
-
- thumb_func_start sub_811C0EC
-sub_811C0EC: @ 811C0EC
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0811C108 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r2, 0x3
- strh r2, [r1, 0x26]
- bl sub_811C12C
- pop {r0}
- bx r0
- .align 2, 0
-_0811C108: .4byte gTasks
- thumb_func_end sub_811C0EC
-
- thumb_func_start sub_811C10C
-sub_811C10C: @ 811C10C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0811C128 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r2, 0x4
- strh r2, [r1, 0x26]
- bl sub_811C12C
- pop {r0}
- bx r0
- .align 2, 0
-_0811C128: .4byte gTasks
- thumb_func_end sub_811C10C
-
- thumb_func_start sub_811C12C
-sub_811C12C: @ 811C12C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r5, _0811C15C @ =gUnknown_083FD828
- ldr r2, _0811C160 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r4, r1, r2
-_0811C13E:
- 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 _0811C13E
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0811C15C: .4byte gUnknown_083FD828
-_0811C160: .4byte gTasks
- thumb_func_end sub_811C12C
-
- thumb_func_start sub_811C164
-sub_811C164: @ 811C164
- push {r4,lr}
- adds r4, r0, 0
- bl sub_811D658
- bl dp12_8087EA4
- adds r0, r4, 0
- bl sub_811C7B0
- movs r0, 0
- strh r0, [r4, 0xA]
- movs r0, 0x1
- strh r0, [r4, 0xC]
- movs r0, 0xEF
- strh r0, [r4, 0xE]
- ldr r1, _0811C1BC @ =0x0200c000
- movs r0, 0x3F
- strh r0, [r1, 0x2]
- movs r0, 0x3E
- strh r0, [r1, 0x4]
- movs r0, 0xA0
- strh r0, [r1, 0x8]
- movs r1, 0
- ldr r3, _0811C1C0 @ =gUnknown_03005560
- ldr r2, _0811C1C4 @ =0x0000f0f1
-_0811C196:
- lsls r0, r1, 1
- adds r0, r3
- strh r2, [r0]
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x9F
- bls _0811C196
- ldr r0, _0811C1C8 @ =sub_811C670
- bl SetVBlankCallback
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0811C1BC: .4byte 0x0200c000
-_0811C1C0: .4byte gUnknown_03005560
-_0811C1C4: .4byte 0x0000f0f1
-_0811C1C8: .4byte sub_811C670
- thumb_func_end sub_811C164
-
- thumb_func_start sub_811C1CC
-sub_811C1CC: @ 811C1CC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x8
- mov r8, r0
- ldr r6, _0811C284 @ =gUnknown_083FDFF4
- add r1, sp, 0x4
- mov r0, sp
- bl sub_811D6A8
- ldr r0, _0811C288 @ =gUnknown_083FC348
- ldr r1, [sp, 0x4]
- movs r2, 0xF0
- bl CpuSet
- ldr r1, _0811C28C @ =gUnknown_083FDB00
- mov r2, r8
- movs r3, 0x26
- ldrsh r0, [r2, r3]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0xF0
- movs r2, 0x20
- bl LoadPalette
- ldr r1, _0811C290 @ =gUnknown_083FDB14
- ldr r0, _0811C294 @ =gSaveBlock2
- ldrb r0, [r0, 0x8]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0xFA
- movs r2, 0xC
- bl LoadPalette
- movs r1, 0
- ldr r5, [sp]
- ldr r0, _0811C298 @ =sub_811C77C
- mov r12, r0
- movs r2, 0xF0
- lsls r2, 8
- adds r7, r2, 0
-_0811C222:
- movs r0, 0
- lsls r3, r1, 16
- asrs r4, r3, 11
-_0811C228:
- lsls r2, r0, 16
- asrs r2, 16
- adds r1, r4, r2
- lsls r1, 1
- adds r1, r5
- ldrh r0, [r6]
- orrs r0, r7
- strh r0, [r1]
- adds r2, 0x1
- lsls r2, 16
- adds r6, 0x2
- lsrs r0, r2, 16
- asrs r2, 16
- cmp r2, 0x1F
- ble _0811C228
- movs r1, 0x80
- lsls r1, 9
- adds r0, r3, r1
- lsrs r1, r0, 16
- asrs r0, 16
- cmp r0, 0x13
- ble _0811C222
- ldr r2, _0811C29C @ =0x04000200
- ldrh r0, [r2]
- movs r1, 0x2
- orrs r0, r1
- strh r0, [r2]
- ldr r2, _0811C2A0 @ =REG_DISPSTAT
- ldrh r0, [r2]
- movs r1, 0x10
- orrs r0, r1
- strh r0, [r2]
- mov r0, r12
- bl SetHBlankCallback
- mov r2, r8
- ldrh r0, [r2, 0x8]
- adds r0, 0x1
- strh r0, [r2, 0x8]
- movs r0, 0
- add sp, 0x8
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0811C284: .4byte gUnknown_083FDFF4
-_0811C288: .4byte gUnknown_083FC348
-_0811C28C: .4byte gUnknown_083FDB00
-_0811C290: .4byte gUnknown_083FDB14
-_0811C294: .4byte gSaveBlock2
-_0811C298: .4byte sub_811C77C
-_0811C29C: .4byte 0x04000200
-_0811C2A0: .4byte REG_DISPSTAT
- thumb_func_end sub_811C1CC
-
- thumb_func_start sub_811C2A4
-sub_811C2A4: @ 811C2A4
- push {r4-r7,lr}
- adds r4, r0, 0
- ldr r1, _0811C384 @ =0x0200c000
- ldrb r0, [r1]
- movs r0, 0
- strb r0, [r1]
- ldr r7, _0811C388 @ =gUnknown_03004DE0
- ldrh r0, [r4, 0xA]
- ldrb r5, [r4, 0xA]
- adds r0, 0x10
- strh r0, [r4, 0xA]
- movs r6, 0
-_0811C2BC:
- adds r0, r5, 0
- movs r1, 0x10
- bl Sin
- ldrh r1, [r4, 0xC]
- adds r0, r1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r0, 0
- bge _0811C2D2
- movs r2, 0x1
-_0811C2D2:
- lsls r0, r2, 16
- asrs r0, 16
- cmp r0, 0xF0
- ble _0811C2DC
- movs r2, 0xF0
-_0811C2DC:
- strh r2, [r7]
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- adds r7, 0x2
- adds r0, r5, 0
- adds r0, 0x10
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r6, 0x4F
- bls _0811C2BC
- cmp r6, 0x9F
- bhi _0811C334
-_0811C2F6:
- adds r0, r5, 0
- movs r1, 0x10
- bl Sin
- ldrh r1, [r4, 0xE]
- subs r1, r0
- lsls r1, 16
- lsrs r2, r1, 16
- cmp r1, 0
- bge _0811C30C
- movs r2, 0
-_0811C30C:
- lsls r0, r2, 16
- asrs r0, 16
- cmp r0, 0xEF
- ble _0811C316
- movs r2, 0xEF
-_0811C316:
- lsls r0, r2, 16
- asrs r0, 8
- movs r1, 0xF0
- orrs r0, r1
- strh r0, [r7]
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- adds r7, 0x2
- adds r0, r5, 0
- adds r0, 0x10
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r6, 0x9F
- bls _0811C2F6
-_0811C334:
- ldrh r1, [r4, 0xC]
- adds r1, 0x8
- strh r1, [r4, 0xC]
- ldrh r0, [r4, 0xE]
- subs r0, 0x8
- strh r0, [r4, 0xE]
- lsls r1, 16
- asrs r1, 16
- cmp r1, 0xF0
- ble _0811C34C
- movs r0, 0xF0
- strh r0, [r4, 0xC]
-_0811C34C:
- movs r1, 0xE
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bge _0811C358
- movs r0, 0
- strh r0, [r4, 0xE]
-_0811C358:
- ldr r0, [r4, 0xC]
- cmp r0, 0xF0
- bne _0811C364
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_0811C364:
- ldr r1, _0811C384 @ =0x0200c000
- ldrh r0, [r1, 0x18]
- subs r0, 0x8
- strh r0, [r1, 0x18]
- ldrh r0, [r1, 0x1A]
- adds r0, 0x8
- strh r0, [r1, 0x1A]
- ldrb r0, [r1]
- adds r0, 0x1
- ldrb r2, [r1]
- strb r0, [r1]
- movs r0, 0
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0811C384: .4byte 0x0200c000
-_0811C388: .4byte gUnknown_03004DE0
- thumb_func_end sub_811C2A4
-
- thumb_func_start sub_811C38C
-sub_811C38C: @ 811C38C
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r0, _0811C3F8 @ =0x0200c000
- ldrb r1, [r0]
- movs r1, 0
- strb r1, [r0]
- ldr r2, _0811C3FC @ =gUnknown_03004DE0
- adds r5, r0, 0
- movs r3, 0xF0
-_0811C39E:
- strh r3, [r2]
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- adds r2, 0x2
- cmp r1, 0x9F
- bls _0811C39E
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- movs r1, 0
- strh r0, [r4, 0x8]
- strh r1, [r4, 0xA]
- strh r1, [r4, 0xC]
- strh r1, [r4, 0xE]
- ldrh r0, [r5, 0x18]
- subs r0, 0x8
- strh r0, [r5, 0x18]
- ldrh r0, [r5, 0x1A]
- adds r0, 0x8
- strh r0, [r5, 0x1A]
- movs r1, 0x22
- ldrsh r0, [r4, r1]
- movs r1, 0
- bl sub_811CA10
- movs r1, 0x24
- ldrsh r0, [r4, r1]
- movs r1, 0x1
- bl sub_811CA10
- movs r1, 0x22
- ldrsh r0, [r4, r1]
- bl sub_811CA28
- movs r0, 0x68
- bl PlaySE
- ldrb r0, [r5]
- adds r0, 0x1
- ldrb r1, [r5]
- strb r0, [r5]
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0811C3F8: .4byte 0x0200c000
-_0811C3FC: .4byte gUnknown_03004DE0
- thumb_func_end sub_811C38C
-
- thumb_func_start sub_811C400
-sub_811C400: @ 811C400
- push {r4,lr}
- adds r4, r0, 0
- ldr r1, _0811C438 @ =0x0200c000
- ldrh r0, [r1, 0x18]
- subs r0, 0x8
- strh r0, [r1, 0x18]
- ldrh r0, [r1, 0x1A]
- adds r0, 0x8
- strh r0, [r1, 0x1A]
- movs r1, 0x22
- ldrsh r0, [r4, r1]
- bl sub_811CA44
- lsls r0, 16
- cmp r0, 0
- beq _0811C42E
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- movs r1, 0x24
- ldrsh r0, [r4, r1]
- bl sub_811CA28
-_0811C42E:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0811C438: .4byte 0x0200c000
- thumb_func_end sub_811C400
-
- thumb_func_start sub_811C43C
-sub_811C43C: @ 811C43C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r6, r0, 0
- ldr r7, _0811C4D0 @ =0x0200c000
- ldrh r0, [r7, 0x18]
- subs r0, 0x8
- movs r1, 0
- mov r8, r1
- strh r0, [r7, 0x18]
- ldrh r0, [r7, 0x1A]
- adds r0, 0x8
- strh r0, [r7, 0x1A]
- movs r1, 0x24
- ldrsh r0, [r6, r1]
- bl sub_811CA44
- lsls r0, 16
- cmp r0, 0
- beq _0811C4C4
- ldrb r0, [r7]
- movs r0, 0
- strb r0, [r7]
- movs r0, 0
- bl SetVBlankCallback
- ldr r1, _0811C4D4 @ =0x040000b0
- ldrh r2, [r1, 0xA]
- ldr r0, _0811C4D8 @ =0x0000c5ff
- ands r0, r2
- strh r0, [r1, 0xA]
- ldrh r2, [r1, 0xA]
- ldr r0, _0811C4DC @ =0x00007fff
- ands r0, r2
- strh r0, [r1, 0xA]
- ldrh r0, [r1, 0xA]
- ldr r4, _0811C4E0 @ =gUnknown_03004DE0
- movs r5, 0xA0
- lsls r5, 1
- adds r0, r4, 0
- movs r1, 0
- adds r2, r5, 0
- bl memset
- movs r0, 0xF0
- lsls r0, 3
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0
- adds r2, r5, 0
- bl memset
- ldr r1, _0811C4E4 @ =REG_WIN0H
- movs r0, 0xF0
- strh r0, [r1]
- ldr r0, _0811C4E8 @ =REG_BLDY
- mov r1, r8
- strh r1, [r0]
- ldrh r0, [r6, 0x8]
- adds r0, 0x1
- strh r0, [r6, 0x8]
- strh r1, [r6, 0xE]
- strh r1, [r6, 0x10]
- movs r0, 0xBF
- strh r0, [r7, 0xE]
- ldr r0, _0811C4EC @ =sub_811C700
- bl SetVBlankCallback
-_0811C4C4:
- movs r0, 0
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0811C4D0: .4byte 0x0200c000
-_0811C4D4: .4byte 0x040000b0
-_0811C4D8: .4byte 0x0000c5ff
-_0811C4DC: .4byte 0x00007fff
-_0811C4E0: .4byte gUnknown_03004DE0
-_0811C4E4: .4byte REG_WIN0H
-_0811C4E8: .4byte REG_BLDY
-_0811C4EC: .4byte sub_811C700
- thumb_func_end sub_811C43C
-
- thumb_func_start sub_811C4F0
-sub_811C4F0: @ 811C4F0
- push {r4-r7,lr}
- adds r4, r0, 0
- ldr r1, _0811C5AC @ =0x0200c000
- ldrb r0, [r1]
- movs r0, 0
- strb r0, [r1]
- movs r6, 0x1
- ldrh r0, [r1, 0x18]
- subs r0, 0x8
- strh r0, [r1, 0x18]
- ldrh r0, [r1, 0x1A]
- adds r0, 0x8
- strh r0, [r1, 0x1A]
- ldrh r2, [r4, 0x10]
- movs r3, 0x10
- ldrsh r0, [r4, r3]
- adds r7, r1, 0
- cmp r0, 0x4F
- bgt _0811C51A
- adds r0, r2, 0x2
- strh r0, [r4, 0x10]
-_0811C51A:
- movs r1, 0x10
- ldrsh r0, [r4, r1]
- cmp r0, 0x50
- ble _0811C526
- movs r0, 0x50
- strh r0, [r4, 0x10]
-_0811C526:
- ldrh r0, [r4, 0xE]
- adds r0, 0x1
- strh r0, [r4, 0xE]
- movs r1, 0x1
- ands r0, r1
- ldrh r2, [r4, 0x10]
- cmp r0, 0
- beq _0811C58C
- movs r3, 0
- lsls r0, r2, 16
- movs r6, 0
- cmp r0, 0
- blt _0811C58C
- movs r2, 0x50
- mov r12, r2
- ldr r5, _0811C5B0 @ =gUnknown_03004DE0
-_0811C546:
- lsls r0, r3, 16
- asrs r2, r0, 16
- mov r3, r12
- subs r1, r3, r2
- adds r0, r2, 0
- adds r0, 0x50
- lsls r0, 16
- lsrs r3, r0, 16
- lsls r1, 16
- asrs r1, 15
- adds r1, r5
- ldrh r0, [r1]
- cmp r0, 0xF
- bhi _0811C568
- movs r6, 0x1
- adds r0, 0x1
- strh r0, [r1]
-_0811C568:
- lsls r0, r3, 16
- asrs r0, 15
- adds r1, r0, r5
- ldrh r0, [r1]
- cmp r0, 0xF
- bhi _0811C57A
- movs r6, 0x1
- adds r0, 0x1
- strh r0, [r1]
-_0811C57A:
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- asrs r0, 16
- movs r2, 0x10
- ldrsh r1, [r4, r2]
- ldrh r2, [r4, 0x10]
- cmp r0, r1
- ble _0811C546
-_0811C58C:
- cmp r2, 0x50
- bne _0811C59A
- cmp r6, 0
- bne _0811C59A
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_0811C59A:
- ldrb r0, [r7]
- adds r0, 0x1
- ldrb r1, [r7]
- strb r0, [r7]
- movs r0, 0
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0811C5AC: .4byte 0x0200c000
-_0811C5B0: .4byte gUnknown_03004DE0
- thumb_func_end sub_811C4F0
-
- thumb_func_start sub_811C5B4
-sub_811C5B4: @ 811C5B4
- push {r4-r6,lr}
- adds r5, r0, 0
- ldr r4, _0811C5E0 @ =0x0200c000
- ldrb r0, [r4]
- movs r6, 0
- strb r6, [r4]
- movs r0, 0x1
- negs r0, r0
- ldr r2, _0811C5E4 @ =0x00007fff
- movs r1, 0x10
- bl BlendPalettes
- movs r0, 0xFF
- strh r0, [r4, 0xE]
- strh r6, [r5, 0xE]
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
- movs r0, 0x1
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_0811C5E0: .4byte 0x0200c000
-_0811C5E4: .4byte 0x00007fff
- thumb_func_end sub_811C5B4
-
- thumb_func_start sub_811C5E8
-sub_811C5E8: @ 811C5E8
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r5, _0811C628 @ =0x0200c000
- ldrb r0, [r5]
- movs r0, 0
- strb r0, [r5]
- ldrh r0, [r4, 0xE]
- adds r0, 0x1
- strh r0, [r4, 0xE]
- ldr r0, _0811C62C @ =gUnknown_03004DE0
- movs r2, 0xE
- ldrsh r1, [r4, r2]
- movs r2, 0xA0
- lsls r2, 1
- bl memset
- movs r1, 0xE
- ldrsh r0, [r4, r1]
- cmp r0, 0xF
- ble _0811C616
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_0811C616:
- ldrb r0, [r5]
- adds r0, 0x1
- ldrb r1, [r5]
- strb r0, [r5]
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0811C628: .4byte 0x0200c000
-_0811C62C: .4byte gUnknown_03004DE0
- thumb_func_end sub_811C5E8
-
- thumb_func_start sub_811C630
-sub_811C630: @ 811C630
- push {r4,lr}
- adds r4, r0, 0
- ldr r1, _0811C664 @ =0x040000b0
- ldrh r2, [r1, 0xA]
- ldr r0, _0811C668 @ =0x0000c5ff
- ands r0, r2
- strh r0, [r1, 0xA]
- ldrh r2, [r1, 0xA]
- ldr r0, _0811C66C @ =0x00007fff
- ands r0, r2
- strh r0, [r1, 0xA]
- ldrh r0, [r1, 0xA]
- bl sub_811D6D4
- ldr r0, [r4]
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0811C664: .4byte 0x040000b0
-_0811C668: .4byte 0x0000c5ff
-_0811C66C: .4byte 0x00007fff
- thumb_func_end sub_811C630
-
- thumb_func_start sub_811C670
-sub_811C670: @ 811C670
- push {r4,lr}
- ldr r4, _0811C6D4 @ =0x040000b0
- ldrh r1, [r4, 0xA]
- ldr r0, _0811C6D8 @ =0x0000c5ff
- ands r0, r1
- strh r0, [r4, 0xA]
- ldrh r1, [r4, 0xA]
- ldr r0, _0811C6DC @ =0x00007fff
- ands r0, r1
- strh r0, [r4, 0xA]
- ldrh r0, [r4, 0xA]
- bl sub_811D67C
- ldr r2, _0811C6E0 @ =0x0200c000
- ldrb r0, [r2]
- cmp r0, 0
- beq _0811C6A6
- ldr r1, _0811C6E4 @ =0x040000d4
- ldr r0, _0811C6E8 @ =gUnknown_03004DE0
- str r0, [r1]
- movs r3, 0xF0
- lsls r3, 3
- adds r0, r3
- str r0, [r1, 0x4]
- ldr r0, _0811C6EC @ =0x800000a0
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
-_0811C6A6:
- ldr r1, _0811C6F0 @ =REG_BG0VOFS
- ldrh r0, [r2, 0x1C]
- strh r0, [r1]
- adds r1, 0x36
- ldrh r0, [r2, 0x2]
- strh r0, [r1]
- adds r1, 0x2
- ldrh r0, [r2, 0x4]
- strh r0, [r1]
- subs r1, 0x6
- ldrh r0, [r2, 0x8]
- strh r0, [r1]
- ldr r0, _0811C6F4 @ =gUnknown_03005560
- str r0, [r4]
- ldr r0, _0811C6F8 @ =REG_WIN0H
- str r0, [r4, 0x4]
- ldr r0, _0811C6FC @ =0xa2400001
- str r0, [r4, 0x8]
- ldr r0, [r4, 0x8]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0811C6D4: .4byte 0x040000b0
-_0811C6D8: .4byte 0x0000c5ff
-_0811C6DC: .4byte 0x00007fff
-_0811C6E0: .4byte 0x0200c000
-_0811C6E4: .4byte 0x040000d4
-_0811C6E8: .4byte gUnknown_03004DE0
-_0811C6EC: .4byte 0x800000a0
-_0811C6F0: .4byte REG_BG0VOFS
-_0811C6F4: .4byte gUnknown_03005560
-_0811C6F8: .4byte REG_WIN0H
-_0811C6FC: .4byte 0xa2400001
- thumb_func_end sub_811C670
-
- thumb_func_start sub_811C700
-sub_811C700: @ 811C700
- push {r4,lr}
- ldr r4, _0811C750 @ =0x040000b0
- ldrh r1, [r4, 0xA]
- ldr r0, _0811C754 @ =0x0000c5ff
- ands r0, r1
- strh r0, [r4, 0xA]
- ldrh r1, [r4, 0xA]
- ldr r0, _0811C758 @ =0x00007fff
- ands r0, r1
- strh r0, [r4, 0xA]
- ldrh r0, [r4, 0xA]
- bl sub_811D67C
- ldr r2, _0811C75C @ =0x0200c000
- ldrb r0, [r2]
- cmp r0, 0
- beq _0811C736
- ldr r1, _0811C760 @ =0x040000d4
- ldr r0, _0811C764 @ =gUnknown_03004DE0
- str r0, [r1]
- movs r3, 0xF0
- lsls r3, 3
- adds r0, r3
- str r0, [r1, 0x4]
- ldr r0, _0811C768 @ =0x800000a0
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
-_0811C736:
- ldr r1, _0811C76C @ =REG_BLDCNT
- ldrh r0, [r2, 0xE]
- strh r0, [r1]
- ldr r0, _0811C770 @ =gUnknown_03005560
- str r0, [r4]
- ldr r0, _0811C774 @ =REG_BLDY
- str r0, [r4, 0x4]
- ldr r0, _0811C778 @ =0xa2400001
- str r0, [r4, 0x8]
- ldr r0, [r4, 0x8]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0811C750: .4byte 0x040000b0
-_0811C754: .4byte 0x0000c5ff
-_0811C758: .4byte 0x00007fff
-_0811C75C: .4byte 0x0200c000
-_0811C760: .4byte 0x040000d4
-_0811C764: .4byte gUnknown_03004DE0
-_0811C768: .4byte 0x800000a0
-_0811C76C: .4byte REG_BLDCNT
-_0811C770: .4byte gUnknown_03005560
-_0811C774: .4byte REG_BLDY
-_0811C778: .4byte 0xa2400001
- thumb_func_end sub_811C700
-
- thumb_func_start sub_811C77C
-sub_811C77C: @ 811C77C
- push {lr}
- ldr r0, _0811C790 @ =REG_VCOUNT
- ldrh r0, [r0]
- cmp r0, 0x4F
- bhi _0811C79C
- ldr r0, _0811C794 @ =REG_BG0HOFS
- ldr r1, _0811C798 @ =0x0200c000
- ldrh r1, [r1, 0x18]
- b _0811C7A2
- .align 2, 0
-_0811C790: .4byte REG_VCOUNT
-_0811C794: .4byte REG_BG0HOFS
-_0811C798: .4byte 0x0200c000
-_0811C79C:
- ldr r0, _0811C7A8 @ =REG_BG0HOFS
- ldr r1, _0811C7AC @ =0x0200c000
- ldrh r1, [r1, 0x1A]
-_0811C7A2:
- strh r1, [r0]
- pop {r0}
- bx r0
- .align 2, 0
-_0811C7A8: .4byte REG_BG0HOFS
-_0811C7AC: .4byte 0x0200c000
- thumb_func_end sub_811C77C
-
- thumb_func_start sub_811C7B0
-sub_811C7B0: @ 811C7B0
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- sub sp, 0x4
- adds r4, r0, 0
- ldr r0, _0811C8EC @ =gUnknown_083FD850
- movs r2, 0x26
- ldrsh r1, [r4, r2]
- mov r8, r1
- add r0, r8
- ldrb r0, [r0]
- ldr r2, _0811C8F0 @ =gUnknown_083FD86A
- lsls r1, 2
- mov r8, r1
- adds r1, r2
- ldrh r1, [r1]
- subs r1, 0x20
- lsls r1, 16
- asrs r1, 16
- adds r2, 0x2
- add r2, r8
- ldrh r2, [r2]
- adds r2, 0x2A
- lsls r2, 16
- asrs r2, 16
- ldr r5, _0811C8F4 @ =0x0200c03c
- str r5, [sp]
- movs r3, 0
- bl CreateTrainerSprite_BirchSpeech
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x22]
- ldr r0, _0811C8F8 @ =gSaveBlock2
- ldrb r0, [r0, 0x8]
- movs r1, 0x88
- lsls r1, 1
- str r5, [sp]
- movs r2, 0x6A
- movs r3, 0
- bl CreateTrainerSprite_BirchSpeech
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x24]
- movs r3, 0x22
- ldrsh r0, [r4, r3]
- lsls r5, r0, 4
- adds r5, r0
- lsls r5, 2
- ldr r1, _0811C8FC @ =gSprites
- adds r5, r1
- movs r2, 0x24
- ldrsh r0, [r4, r2]
- lsls r6, r0, 4
- adds r6, r0
- lsls r6, 2
- adds r6, r1
- ldr r0, _0811C900 @ =sub_811C90C
- str r0, [r5, 0x1C]
- str r0, [r6, 0x1C]
- ldrb r0, [r5, 0x1]
- movs r1, 0x3
- orrs r0, r1
- strb r0, [r5, 0x1]
- ldrb r0, [r6, 0x1]
- orrs r0, r1
- strb r0, [r6, 0x1]
- bl AllocOamMatrix
- lsls r0, 24
- lsrs r0, 24
- movs r3, 0x1F
- mov r9, r3
- mov r4, r9
- ands r0, r4
- lsls r0, 1
- ldrb r2, [r5, 0x3]
- movs r4, 0x3F
- negs r4, r4
- adds r1, r4, 0
- ands r1, r2
- orrs r1, r0
- strb r1, [r5, 0x3]
- bl AllocOamMatrix
- lsls r0, 24
- lsrs r0, 24
- mov r1, r9
- ands r0, r1
- lsls r0, 1
- ldrb r1, [r6, 0x3]
- ands r4, r1
- orrs r4, r0
- strb r4, [r6, 0x3]
- ldrb r2, [r5, 0x1]
- movs r1, 0x3F
- adds r0, r1, 0
- ands r0, r2
- movs r2, 0x40
- orrs r0, r2
- strb r0, [r5, 0x1]
- ldrb r0, [r6, 0x1]
- ands r1, r0
- orrs r1, r2
- strb r1, [r6, 0x1]
- ldrb r0, [r5, 0x3]
- movs r1, 0xC0
- orrs r0, r1
- strb r0, [r5, 0x3]
- ldrb r0, [r6, 0x3]
- orrs r0, r1
- strb r0, [r6, 0x3]
- adds r0, r5, 0
- movs r1, 0x1
- movs r2, 0x3
- movs r3, 0x3
- bl CalcCenterToCornerVec
- adds r0, r6, 0
- movs r1, 0x1
- movs r2, 0x3
- movs r3, 0x3
- bl CalcCenterToCornerVec
- ldrb r0, [r5, 0x3]
- lsls r0, 26
- lsrs r0, 27
- ldr r2, _0811C904 @ =gUnknown_083FD856
- mov r3, r8
- adds r1, r3, r2
- movs r4, 0
- ldrsh r1, [r1, r4]
- adds r2, 0x2
- add r8, r2
- mov r3, r8
- movs r4, 0
- ldrsh r2, [r3, r4]
- movs r3, 0
- bl SetOamMatrixRotationScaling
- ldrb r0, [r6, 0x3]
- lsls r0, 26
- lsrs r0, 27
- ldr r1, _0811C908 @ =0xfffffe00
- movs r2, 0x80
- lsls r2, 2
- movs r3, 0
- bl SetOamMatrixRotationScaling
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0811C8EC: .4byte gUnknown_083FD850
-_0811C8F0: .4byte gUnknown_083FD86A
-_0811C8F4: .4byte 0x0200c03c
-_0811C8F8: .4byte gSaveBlock2
-_0811C8FC: .4byte gSprites
-_0811C900: .4byte sub_811C90C
-_0811C904: .4byte gUnknown_083FD856
-_0811C908: .4byte 0xfffffe00
- thumb_func_end sub_811C7B0
-
- thumb_func_start sub_811C90C
-sub_811C90C: @ 811C90C
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r5, _0811C930 @ =gUnknown_083FD880
-_0811C912:
- 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 _0811C912
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0811C930: .4byte gUnknown_083FD880
- thumb_func_end sub_811C90C
-
- thumb_func_start sub_811C934
-sub_811C934: @ 811C934
- movs r0, 0
- bx lr
- thumb_func_end sub_811C934
-
- thumb_func_start sub_811C938
-sub_811C938: @ 811C938
- push {r4,r5,lr}
- sub sp, 0x8
- adds r5, r0, 0
- ldr r1, _0811C97C @ =gUnknown_083FD89C
- mov r0, sp
- movs r2, 0x4
- bl memcpy
- add r4, sp, 0x4
- ldr r1, _0811C980 @ =gUnknown_083FD8A0
- adds r0, r4, 0
- movs r2, 0x4
- bl memcpy
- ldrh r0, [r5, 0x2E]
- adds r0, 0x1
- strh r0, [r5, 0x2E]
- movs r1, 0x3C
- ldrsh r0, [r5, r1]
- lsls r0, 1
- add r0, sp
- ldrh r0, [r0]
- strh r0, [r5, 0x30]
- movs r1, 0x3C
- ldrsh r0, [r5, r1]
- lsls r0, 1
- adds r4, r0
- ldrh r0, [r4]
- strh r0, [r5, 0x32]
- movs r0, 0x1
- add sp, 0x8
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0811C97C: .4byte gUnknown_083FD89C
-_0811C980: .4byte gUnknown_083FD8A0
- thumb_func_end sub_811C938
-
- thumb_func_start sub_811C984
-sub_811C984: @ 811C984
- push {lr}
- adds r1, r0, 0
- ldrh r0, [r1, 0x30]
- ldrh r3, [r1, 0x20]
- adds r2, r0, r3
- strh r2, [r1, 0x20]
- movs r3, 0x3C
- ldrsh r0, [r1, r3]
- cmp r0, 0
- beq _0811C9A2
- lsls r0, r2, 16
- asrs r0, 16
- cmp r0, 0x84
- bgt _0811C9B0
- b _0811C9AA
-_0811C9A2:
- lsls r0, r2, 16
- asrs r0, 16
- cmp r0, 0x67
- ble _0811C9B0
-_0811C9AA:
- ldrh r0, [r1, 0x2E]
- adds r0, 0x1
- strh r0, [r1, 0x2E]
-_0811C9B0:
- movs r0, 0
- pop {r1}
- bx r1
- thumb_func_end sub_811C984
-
- thumb_func_start sub_811C9B8
-sub_811C9B8: @ 811C9B8
- push {lr}
- adds r2, r0, 0
- ldrh r3, [r2, 0x32]
- ldrh r0, [r2, 0x30]
- adds r1, r3, r0
- strh r1, [r2, 0x30]
- ldrh r0, [r2, 0x20]
- adds r0, r1
- strh r0, [r2, 0x20]
- lsls r1, 16
- cmp r1, 0
- bne _0811C9DE
- ldrh r0, [r2, 0x2E]
- adds r0, 0x1
- strh r0, [r2, 0x2E]
- negs r0, r3
- strh r0, [r2, 0x32]
- movs r0, 0x1
- strh r0, [r2, 0x3A]
-_0811C9DE:
- movs r0, 0
- pop {r1}
- bx r1
- thumb_func_end sub_811C9B8
-
- thumb_func_start sub_811C9E4
-sub_811C9E4: @ 811C9E4
- push {lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x32]
- ldrh r1, [r2, 0x30]
- adds r0, r1
- strh r0, [r2, 0x30]
- ldrh r1, [r2, 0x20]
- adds r1, r0
- strh r1, [r2, 0x20]
- adds r1, 0x1F
- lsls r1, 16
- movs r0, 0x97
- lsls r0, 17
- cmp r1, r0
- bls _0811CA08
- ldrh r0, [r2, 0x2E]
- adds r0, 0x1
- strh r0, [r2, 0x2E]
-_0811CA08:
- movs r0, 0
- pop {r1}
- bx r1
- thumb_func_end sub_811C9E4
-
- thumb_func_start sub_811CA10
-sub_811CA10: @ 811CA10
- ldr r3, _0811CA24 @ =gSprites
- lsls r0, 16
- asrs r0, 16
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r3
- strh r1, [r2, 0x3C]
- bx lr
- .align 2, 0
-_0811CA24: .4byte gSprites
- thumb_func_end sub_811CA10
-
- thumb_func_start sub_811CA28
-sub_811CA28: @ 811CA28
- ldr r2, _0811CA40 @ =gSprites
- lsls r0, 16
- asrs r0, 16
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldrh r0, [r1, 0x2E]
- adds r0, 0x1
- strh r0, [r1, 0x2E]
- bx lr
- .align 2, 0
-_0811CA40: .4byte gSprites
- thumb_func_end sub_811CA28
-
- thumb_func_start sub_811CA44
-sub_811CA44: @ 811CA44
- ldr r2, _0811CA58 @ =gSprites
- lsls r0, 16
- asrs r0, 16
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- movs r2, 0x3A
- ldrsh r0, [r1, r2]
- bx lr
- .align 2, 0
-_0811CA58: .4byte gSprites
- thumb_func_end sub_811CA44
-
- thumb_func_start sub_811CA5C
-sub_811CA5C: @ 811CA5C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r5, _0811CA8C @ =gUnknown_083FD8A4
- ldr r2, _0811CA90 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r4, r1, r2
-_0811CA6E:
- 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 _0811CA6E
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0811CA8C: .4byte gUnknown_083FD8A4
-_0811CA90: .4byte gTasks
- thumb_func_end sub_811CA5C
-
- thumb_func_start sub_811CA94
-sub_811CA94: @ 811CA94
- push {r4-r6,lr}
- adds r4, r0, 0
- bl sub_811D658
- bl dp12_8087EA4
- movs r2, 0
- movs r0, 0x80
- lsls r0, 1
- strh r0, [r4, 0xC]
- movs r0, 0x1
- strh r0, [r4, 0xE]
- ldr r1, _0811CB08 @ =0x0200c000
- movs r0, 0x3F
- strh r0, [r1, 0x2]
- strh r2, [r1, 0x4]
- movs r0, 0xA0
- strh r0, [r1, 0x8]
- ldr r3, _0811CB0C @ =gUnknown_03005560
- adds r6, r1, 0
- movs r5, 0xF0
-_0811CABE:
- lsls r0, r2, 1
- adds r0, r3
- ldrh r1, [r6, 0x14]
- strh r1, [r0]
- adds r0, r2, 0
- adds r0, 0xA0
- lsls r0, 1
- adds r0, r3
- strh r5, [r0]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0x9F
- bls _0811CABE
- ldr r2, _0811CB10 @ =0x04000200
- ldrh r0, [r2]
- movs r1, 0x2
- orrs r0, r1
- strh r0, [r2]
- ldr r2, _0811CB14 @ =REG_DISPSTAT
- ldrh r0, [r2]
- movs r1, 0x10
- orrs r0, r1
- strh r0, [r2]
- ldr r0, _0811CB18 @ =sub_811CC28
- bl SetVBlankCallback
- ldr r0, _0811CB1C @ =sub_811CCB0
- bl SetHBlankCallback
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- movs r0, 0x1
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_0811CB08: .4byte 0x0200c000
-_0811CB0C: .4byte gUnknown_03005560
-_0811CB10: .4byte 0x04000200
-_0811CB14: .4byte REG_DISPSTAT
-_0811CB18: .4byte sub_811CC28
-_0811CB1C: .4byte sub_811CCB0
- thumb_func_end sub_811CA94
-
- thumb_func_start sub_811CB20
-sub_811CB20: @ 811CB20
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r2, r0, 0
- ldr r1, _0811CB98 @ =0x0200c000
- ldrb r0, [r1]
- movs r0, 0
- strb r0, [r1]
- ldrh r0, [r2, 0xC]
- lsls r0, 16
- asrs r0, 24
- ldrh r3, [r2, 0xA]
- adds r0, r3
- strh r0, [r2, 0xA]
- lsls r0, 16
- asrs r0, 16
- mov r12, r1
- cmp r0, 0xF0
- ble _0811CB4A
- movs r0, 0xF0
- strh r0, [r2, 0xA]
-_0811CB4A:
- ldrh r4, [r2, 0xC]
- movs r0, 0xC
- ldrsh r1, [r2, r0]
- ldr r0, _0811CB9C @ =0x00000fff
- ldrh r3, [r2, 0xE]
- cmp r1, r0
- bgt _0811CB5C
- adds r0, r4, r3
- strh r0, [r2, 0xC]
-_0811CB5C:
- lsls r0, r3, 16
- asrs r0, 16
- cmp r0, 0x7F
- bgt _0811CB68
- lsls r0, r3, 1
- strh r0, [r2, 0xE]
-_0811CB68:
- movs r5, 0
- ldr r7, _0811CBA0 @ =gUnknown_03004DE0
- movs r1, 0xA0
- lsls r1, 1
- adds r1, r7
- mov r8, r1
- mov r6, r12
-_0811CB76:
- lsls r0, r5, 1
- adds r3, r0, r7
- mov r1, r8
- adds r4, r0, r1
- movs r0, 0x1
- ands r0, r5
- cmp r0, 0
- beq _0811CBA4
- ldrh r0, [r2, 0xA]
- ldrh r1, [r6, 0x14]
- adds r0, r1
- strh r0, [r3]
- ldrh r1, [r2, 0xA]
- movs r0, 0xF0
- subs r0, r1
- b _0811CBB4
- .align 2, 0
-_0811CB98: .4byte 0x0200c000
-_0811CB9C: .4byte 0x00000fff
-_0811CBA0: .4byte gUnknown_03004DE0
-_0811CBA4:
- ldrh r0, [r6, 0x14]
- ldrh r1, [r2, 0xA]
- subs r0, r1
- strh r0, [r3]
- ldrh r0, [r2, 0xA]
- lsls r0, 8
- movs r1, 0xF1
- orrs r0, r1
-_0811CBB4:
- strh r0, [r4]
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x9F
- bls _0811CB76
- movs r3, 0xA
- ldrsh r0, [r2, r3]
- cmp r0, 0xEF
- ble _0811CBCE
- ldrh r0, [r2, 0x8]
- adds r0, 0x1
- strh r0, [r2, 0x8]
-_0811CBCE:
- mov r1, r12
- ldrb r0, [r1]
- adds r0, 0x1
- ldrb r1, [r1]
- mov r2, r12
- strb r0, [r2]
- movs r0, 0
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_811CB20
-
- thumb_func_start sub_811CBE8
-sub_811CBE8: @ 811CBE8
- push {lr}
- ldr r1, _0811CC18 @ =0x040000b0
- ldrh r2, [r1, 0xA]
- ldr r0, _0811CC1C @ =0x0000c5ff
- ands r0, r2
- strh r0, [r1, 0xA]
- ldrh r2, [r1, 0xA]
- ldr r0, _0811CC20 @ =0x00007fff
- ands r0, r2
- strh r0, [r1, 0xA]
- ldrh r0, [r1, 0xA]
- bl sub_811D6D4
- ldr r0, _0811CC24 @ =sub_811CA5C
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_0811CC18: .4byte 0x040000b0
-_0811CC1C: .4byte 0x0000c5ff
-_0811CC20: .4byte 0x00007fff
-_0811CC24: .4byte sub_811CA5C
- thumb_func_end sub_811CBE8
-
- thumb_func_start sub_811CC28
-sub_811CC28: @ 811CC28
- push {r4,lr}
- ldr r4, _0811CC84 @ =0x040000b0
- ldrh r1, [r4, 0xA]
- ldr r0, _0811CC88 @ =0x0000c5ff
- ands r0, r1
- strh r0, [r4, 0xA]
- ldrh r1, [r4, 0xA]
- ldr r0, _0811CC8C @ =0x00007fff
- ands r0, r1
- strh r0, [r4, 0xA]
- ldrh r0, [r4, 0xA]
- bl sub_811D67C
- ldr r2, _0811CC90 @ =REG_WININ
- ldr r1, _0811CC94 @ =0x0200c000
- ldrh r0, [r1, 0x2]
- strh r0, [r2]
- adds r2, 0x2
- ldrh r0, [r1, 0x4]
- strh r0, [r2]
- subs r2, 0x6
- ldrh r0, [r1, 0x8]
- strh r0, [r2]
- ldrb r0, [r1]
- cmp r0, 0
- beq _0811CC70
- ldr r1, _0811CC98 @ =0x040000d4
- ldr r0, _0811CC9C @ =gUnknown_03004DE0
- str r0, [r1]
- movs r2, 0xF0
- lsls r2, 3
- adds r0, r2
- str r0, [r1, 0x4]
- ldr r0, _0811CCA0 @ =0x80000140
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
-_0811CC70:
- ldr r0, _0811CCA4 @ =gUnknown_030056A0
- str r0, [r4]
- ldr r0, _0811CCA8 @ =REG_WIN0H
- str r0, [r4, 0x4]
- ldr r0, _0811CCAC @ =0xa2400001
- str r0, [r4, 0x8]
- ldr r0, [r4, 0x8]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0811CC84: .4byte 0x040000b0
-_0811CC88: .4byte 0x0000c5ff
-_0811CC8C: .4byte 0x00007fff
-_0811CC90: .4byte REG_WININ
-_0811CC94: .4byte 0x0200c000
-_0811CC98: .4byte 0x040000d4
-_0811CC9C: .4byte gUnknown_03004DE0
-_0811CCA0: .4byte 0x80000140
-_0811CCA4: .4byte gUnknown_030056A0
-_0811CCA8: .4byte REG_WIN0H
-_0811CCAC: .4byte 0xa2400001
- thumb_func_end sub_811CC28
-
- thumb_func_start sub_811CCB0
-sub_811CCB0: @ 811CCB0
- ldr r1, _0811CCD0 @ =gUnknown_03004DE0
- ldr r0, _0811CCD4 @ =REG_VCOUNT
- ldrh r0, [r0]
- lsls r0, 1
- movs r2, 0xF0
- lsls r2, 3
- adds r1, r2
- adds r0, r1
- ldrh r1, [r0]
- ldr r0, _0811CCD8 @ =REG_BG1HOFS
- strh r1, [r0]
- adds r0, 0x4
- strh r1, [r0]
- adds r0, 0x4
- strh r1, [r0]
- bx lr
- .align 2, 0
-_0811CCD0: .4byte gUnknown_03004DE0
-_0811CCD4: .4byte REG_VCOUNT
-_0811CCD8: .4byte REG_BG1HOFS
- thumb_func_end sub_811CCB0
-
- thumb_func_start sub_811CCDC
-sub_811CCDC: @ 811CCDC
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r5, _0811CD0C @ =gUnknown_083FD8B0
- ldr r2, _0811CD10 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r4, r1, r2
-_0811CCEE:
- 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 _0811CCEE
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0811CD0C: .4byte gUnknown_083FD8B0
-_0811CD10: .4byte gTasks
- thumb_func_end sub_811CCDC
-
- thumb_func_start sub_811CD14
-sub_811CD14: @ 811CD14
- push {r4,r5,lr}
- adds r5, r0, 0
- bl sub_811D658
- bl dp12_8087EA4
- ldr r1, _0811CD88 @ =0x0200c000
- movs r2, 0
- movs r0, 0xBF
- strh r0, [r1, 0xE]
- strh r2, [r1, 0x12]
- movs r0, 0x1E
- strh r0, [r1, 0x2]
- movs r0, 0x3F
- strh r0, [r1, 0x4]
- movs r0, 0xA0
- strh r0, [r1, 0x8]
- movs r1, 0
- ldr r2, _0811CD8C @ =gUnknown_03005560
- movs r4, 0
- movs r3, 0xF0
-_0811CD3E:
- lsls r0, r1, 1
- adds r0, r2
- strh r4, [r0]
- adds r0, r1, 0
- adds r0, 0xA0
- lsls r0, 1
- adds r0, r2
- strh r3, [r0]
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0x9F
- bls _0811CD3E
- ldr r2, _0811CD90 @ =0x04000200
- ldrh r0, [r2]
- movs r1, 0x2
- orrs r0, r1
- strh r0, [r2]
- ldr r2, _0811CD94 @ =REG_DISPSTAT
- ldrh r0, [r2]
- movs r1, 0x10
- orrs r0, r1
- strh r0, [r2]
- ldr r0, _0811CD98 @ =sub_811CFAC
- bl SetHBlankCallback
- ldr r0, _0811CD9C @ =sub_811CEE4
- bl SetVBlankCallback
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0811CD88: .4byte 0x0200c000
-_0811CD8C: .4byte gUnknown_03005560
-_0811CD90: .4byte 0x04000200
-_0811CD94: .4byte REG_DISPSTAT
-_0811CD98: .4byte sub_811CFAC
-_0811CD9C: .4byte sub_811CEE4
- thumb_func_end sub_811CD14
-
- thumb_func_start sub_811CDA0
-sub_811CDA0: @ 811CDA0
- push {r4-r6,lr}
- sub sp, 0x10
- adds r6, r0, 0
- ldr r1, _0811CE08 @ =gUnknown_083FD8C4
- mov r0, sp
- movs r2, 0x10
- bl memcpy
- movs r5, 0
- movs r4, 0
-_0811CDB4:
- ldr r0, _0811CE0C @ =sub_811CFD0
- bl CreateInvisibleSprite
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- ldr r0, _0811CE10 @ =gSprites
- adds r2, r1, r0
- movs r0, 0xF0
- strh r0, [r2, 0x20]
- strh r4, [r2, 0x22]
- lsls r1, r5, 16
- asrs r1, 16
- lsls r0, r1, 1
- add r0, sp
- ldrh r0, [r0]
- strh r0, [r2, 0x38]
- adds r1, 0x1
- lsls r1, 16
- lsls r0, r4, 16
- movs r3, 0xA0
- lsls r3, 13
- adds r0, r3
- lsrs r4, r0, 16
- lsrs r5, r1, 16
- asrs r1, 16
- cmp r1, 0x7
- ble _0811CDB4
- ldrh r0, [r2, 0x3A]
- adds r0, 0x1
- strh r0, [r2, 0x3A]
- ldrh r0, [r6, 0x8]
- adds r0, 0x1
- strh r0, [r6, 0x8]
- movs r0, 0
- add sp, 0x10
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_0811CE08: .4byte gUnknown_083FD8C4
-_0811CE0C: .4byte sub_811CFD0
-_0811CE10: .4byte gSprites
- thumb_func_end sub_811CDA0
-
- thumb_func_start sub_811CE14
-sub_811CE14: @ 811CE14
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _0811CE44 @ =0x0200c000
- ldrb r1, [r0]
- movs r1, 0
- strb r1, [r0]
- movs r1, 0x20
- ldrsh r0, [r0, r1]
- cmp r0, 0x7
- ble _0811CE3A
- movs r0, 0x1
- negs r0, r0
- ldr r2, _0811CE48 @ =0x00007fff
- movs r1, 0x10
- bl BlendPalettes
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_0811CE3A:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0811CE44: .4byte 0x0200c000
-_0811CE48: .4byte 0x00007fff
- thumb_func_end sub_811CE14
-
- thumb_func_start sub_811CE4C
-sub_811CE4C: @ 811CE4C
- push {r4-r6,lr}
- adds r6, r0, 0
- ldr r4, _0811CE9C @ =0x0200c000
- ldrb r0, [r4]
- movs r5, 0
- strb r5, [r4]
- ldr r1, _0811CEA0 @ =0x040000b0
- ldrh r2, [r1, 0xA]
- ldr r0, _0811CEA4 @ =0x0000c5ff
- ands r0, r2
- strh r0, [r1, 0xA]
- ldrh r2, [r1, 0xA]
- ldr r0, _0811CEA8 @ =0x00007fff
- ands r0, r2
- strh r0, [r1, 0xA]
- ldrh r0, [r1, 0xA]
- movs r0, 0
- bl SetVBlankCallback
- movs r0, 0
- bl SetHBlankCallback
- movs r0, 0xF0
- strh r0, [r4, 0x6]
- strh r5, [r4, 0x12]
- movs r0, 0xFF
- strh r0, [r4, 0xE]
- movs r0, 0x3F
- strh r0, [r4, 0x2]
- ldr r0, _0811CEAC @ =sub_811CF74
- bl SetVBlankCallback
- ldrh r0, [r6, 0x8]
- adds r0, 0x1
- strh r0, [r6, 0x8]
- movs r0, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_0811CE9C: .4byte 0x0200c000
-_0811CEA0: .4byte 0x040000b0
-_0811CEA4: .4byte 0x0000c5ff
-_0811CEA8: .4byte 0x00007fff
-_0811CEAC: .4byte sub_811CF74
- thumb_func_end sub_811CE4C
-
- thumb_func_start sub_811CEB0
-sub_811CEB0: @ 811CEB0
- push {lr}
- ldr r1, _0811CEDC @ =0x0200c000
- ldrh r0, [r1, 0x12]
- adds r0, 0x1
- strh r0, [r1, 0x12]
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x10
- bls _0811CED4
- bl sub_811D6D4
- ldr r0, _0811CEE0 @ =sub_811CCDC
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
-_0811CED4:
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_0811CEDC: .4byte 0x0200c000
-_0811CEE0: .4byte sub_811CCDC
- thumb_func_end sub_811CEB0
-
- thumb_func_start sub_811CEE4
-sub_811CEE4: @ 811CEE4
- push {r4,lr}
- ldr r4, _0811CF48 @ =0x040000b0
- ldrh r1, [r4, 0xA]
- ldr r0, _0811CF4C @ =0x0000c5ff
- ands r0, r1
- strh r0, [r4, 0xA]
- ldrh r1, [r4, 0xA]
- ldr r0, _0811CF50 @ =0x00007fff
- ands r0, r1
- strh r0, [r4, 0xA]
- ldrh r0, [r4, 0xA]
- bl sub_811D67C
- ldr r2, _0811CF54 @ =REG_BLDCNT
- ldr r1, _0811CF58 @ =0x0200c000
- ldrh r0, [r1, 0xE]
- strh r0, [r2]
- subs r2, 0x8
- ldrh r0, [r1, 0x2]
- strh r0, [r2]
- adds r2, 0x2
- ldrh r0, [r1, 0x4]
- strh r0, [r2]
- subs r2, 0x6
- ldrh r0, [r1, 0x6]
- strh r0, [r2]
- ldrb r0, [r1]
- cmp r0, 0
- beq _0811CF32
- ldr r1, _0811CF5C @ =0x040000d4
- ldr r0, _0811CF60 @ =gUnknown_03004DE0
- str r0, [r1]
- movs r2, 0xF0
- lsls r2, 3
- adds r0, r2
- str r0, [r1, 0x4]
- ldr r0, _0811CF64 @ =0x80000140
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
-_0811CF32:
- ldr r0, _0811CF68 @ =gUnknown_030056A0
- str r0, [r4]
- ldr r0, _0811CF6C @ =REG_WIN0H
- str r0, [r4, 0x4]
- ldr r0, _0811CF70 @ =0xa2400001
- str r0, [r4, 0x8]
- ldr r0, [r4, 0x8]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0811CF48: .4byte 0x040000b0
-_0811CF4C: .4byte 0x0000c5ff
-_0811CF50: .4byte 0x00007fff
-_0811CF54: .4byte REG_BLDCNT
-_0811CF58: .4byte 0x0200c000
-_0811CF5C: .4byte 0x040000d4
-_0811CF60: .4byte gUnknown_03004DE0
-_0811CF64: .4byte 0x80000140
-_0811CF68: .4byte gUnknown_030056A0
-_0811CF6C: .4byte REG_WIN0H
-_0811CF70: .4byte 0xa2400001
- thumb_func_end sub_811CEE4
-
- thumb_func_start sub_811CF74
-sub_811CF74: @ 811CF74
- push {lr}
- bl sub_811D67C
- ldr r1, _0811CFA4 @ =REG_BLDY
- ldr r2, _0811CFA8 @ =0x0200c000
- ldrh r0, [r2, 0x12]
- strh r0, [r1]
- subs r1, 0x4
- ldrh r0, [r2, 0xE]
- strh r0, [r1]
- subs r1, 0x8
- ldrh r0, [r2, 0x2]
- strh r0, [r1]
- adds r1, 0x2
- ldrh r0, [r2, 0x4]
- strh r0, [r1]
- subs r1, 0xA
- ldrh r0, [r2, 0x6]
- strh r0, [r1]
- adds r1, 0x4
- ldrh r0, [r2, 0x8]
- strh r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_0811CFA4: .4byte REG_BLDY
-_0811CFA8: .4byte 0x0200c000
- thumb_func_end sub_811CF74
-
- thumb_func_start sub_811CFAC
-sub_811CFAC: @ 811CFAC
- ldr r2, _0811CFC4 @ =REG_BLDY
- ldr r1, _0811CFC8 @ =gUnknown_03004DE0
- ldr r0, _0811CFCC @ =REG_VCOUNT
- ldrh r0, [r0]
- lsls r0, 1
- movs r3, 0xF0
- lsls r3, 3
- adds r1, r3
- adds r0, r1
- ldrh r0, [r0]
- strh r0, [r2]
- bx lr
- .align 2, 0
-_0811CFC4: .4byte REG_BLDY
-_0811CFC8: .4byte gUnknown_03004DE0
-_0811CFCC: .4byte REG_VCOUNT
- thumb_func_end sub_811CFAC
-
- thumb_func_start sub_811CFD0
-sub_811CFD0: @ 811CFD0
- push {r4-r6,lr}
- adds r3, r0, 0
- ldrh r1, [r3, 0x38]
- movs r2, 0x38
- ldrsh r0, [r3, r2]
- cmp r0, 0
- beq _0811CFF8
- subs r0, r1, 0x1
- strh r0, [r3, 0x38]
- movs r1, 0x3A
- ldrsh r0, [r3, r1]
- cmp r0, 0
- beq _0811D0AA
- ldr r0, _0811CFF4 @ =0x0200c000
- ldrb r1, [r0]
- movs r1, 0x1
- strb r1, [r0]
- b _0811D0AA
- .align 2, 0
-_0811CFF4: .4byte 0x0200c000
-_0811CFF8:
- movs r2, 0x22
- ldrsh r1, [r3, r2]
- lsls r1, 1
- ldr r0, _0811D0B0 @ =gUnknown_03004DE0
- adds r6, r1, r0
- movs r2, 0xA0
- lsls r2, 1
- adds r0, r2
- adds r5, r1, r0
- movs r4, 0
-_0811D00C:
- lsls r1, r4, 1
- adds r2, r1, r6
- ldrh r0, [r3, 0x2E]
- lsls r0, 16
- asrs r0, 24
- strh r0, [r2]
- adds r1, r5
- ldrh r0, [r3, 0x20]
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r1]
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x13
- bls _0811D00C
- movs r1, 0x20
- ldrsh r0, [r3, r1]
- ldrh r2, [r3, 0x20]
- cmp r0, 0
- bne _0811D046
- movs r0, 0x2E
- ldrsh r1, [r3, r0]
- movs r0, 0x80
- lsls r0, 5
- cmp r1, r0
- bne _0811D046
- movs r0, 0x1
- strh r0, [r3, 0x30]
-_0811D046:
- adds r1, r2, 0
- subs r1, 0x10
- strh r1, [r3, 0x20]
- ldrh r0, [r3, 0x2E]
- adds r0, 0x80
- strh r0, [r3, 0x2E]
- lsls r1, 16
- cmp r1, 0
- bge _0811D05C
- movs r0, 0
- strh r0, [r3, 0x20]
-_0811D05C:
- movs r1, 0x2E
- ldrsh r0, [r3, r1]
- movs r1, 0x80
- lsls r1, 5
- cmp r0, r1
- ble _0811D06A
- strh r1, [r3, 0x2E]
-_0811D06A:
- movs r0, 0x3A
- ldrsh r2, [r3, r0]
- cmp r2, 0
- beq _0811D07A
- ldr r0, _0811D0B4 @ =0x0200c000
- ldrb r1, [r0]
- movs r1, 0x1
- strb r1, [r0]
-_0811D07A:
- movs r1, 0x30
- ldrsh r0, [r3, r1]
- cmp r0, 0
- beq _0811D0AA
- ldr r4, _0811D0B4 @ =0x0200c000
- cmp r2, 0
- beq _0811D09E
- movs r2, 0x20
- ldrsh r0, [r4, r2]
- cmp r0, 0x6
- ble _0811D0AA
- ldrh r0, [r3, 0x32]
- adds r1, r0, 0x1
- strh r1, [r3, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x7
- ble _0811D0AA
-_0811D09E:
- ldrh r0, [r4, 0x20]
- adds r0, 0x1
- strh r0, [r4, 0x20]
- adds r0, r3, 0
- bl DestroySprite
-_0811D0AA:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0811D0B0: .4byte gUnknown_03004DE0
-_0811D0B4: .4byte 0x0200c000
- thumb_func_end sub_811CFD0
-
- thumb_func_start sub_811D0B8
-sub_811D0B8: @ 811D0B8
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r5, _0811D0E8 @ =gUnknown_083FD8D4
- ldr r2, _0811D0EC @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r4, r1, r2
-_0811D0CA:
- 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 _0811D0CA
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0811D0E8: .4byte gUnknown_083FD8D4
-_0811D0EC: .4byte gTasks
- thumb_func_end sub_811D0B8
-
- thumb_func_start sub_811D0F0
-sub_811D0F0: @ 811D0F0
- push {r4,lr}
- sub sp, 0xC
- adds r4, r0, 0
- add r0, sp, 0x4
- add r1, sp, 0x8
- bl sub_811D6A8
- ldr r0, _0811D138 @ =gUnknown_083FD528
- ldr r1, [sp, 0x8]
- movs r2, 0x10
- bl CpuSet
- mov r1, sp
- movs r2, 0xF0
- lsls r2, 8
- adds r0, r2, 0
- strh r0, [r1]
- ldr r1, [sp, 0x4]
- ldr r2, _0811D13C @ =0x01000400
- mov r0, sp
- bl CpuSet
- ldr r0, _0811D140 @ =gFieldEffectObjectPalette10
- movs r1, 0xF0
- movs r2, 0x20
- bl LoadPalette
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- movs r0, 0
- add sp, 0xC
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0811D138: .4byte gUnknown_083FD528
-_0811D13C: .4byte 0x01000400
-_0811D140: .4byte gFieldEffectObjectPalette10
- thumb_func_end sub_811D0F0
-
- thumb_func_start sub_811D144
-sub_811D144: @ 811D144
- push {r4,lr}
- sub sp, 0x4
- adds r4, r0, 0
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _0811D186
- mov r0, sp
- bl sub_811D690
- movs r0, 0x3
- strh r0, [r4, 0xA]
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
- movs r1, 0xC
- ldrsh r0, [r4, r1]
- lsls r0, 5
- ldr r1, _0811D198 @ =gUnknown_083FD528
- adds r0, r1
- ldr r1, [sp]
- movs r2, 0x10
- bl CpuSet
- movs r1, 0xC
- ldrsh r0, [r4, r1]
- cmp r0, 0xD
- ble _0811D186
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- movs r0, 0x10
- strh r0, [r4, 0xA]
-_0811D186:
- ldrh r0, [r4, 0xA]
- subs r0, 0x1
- strh r0, [r4, 0xA]
- movs r0, 0
- add sp, 0x4
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0811D198: .4byte gUnknown_083FD528
- thumb_func_end sub_811D144
-
- thumb_func_start sub_811D19C
-sub_811D19C: @ 811D19C
- push {lr}
- ldrh r1, [r0, 0xA]
- subs r1, 0x1
- strh r1, [r0, 0xA]
- lsls r1, 16
- cmp r1, 0
- bne _0811D1BC
- bl sub_811D6D4
- ldr r0, _0811D1C4 @ =sub_811D0B8
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
-_0811D1BC:
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_0811D1C4: .4byte sub_811D0B8
- thumb_func_end sub_811D19C
-
- thumb_func_start sub_811D1C8
-sub_811D1C8: @ 811D1C8
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r5, _0811D1F8 @ =gUnknown_083FD8E0
- ldr r2, _0811D1FC @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r4, r1, r2
-_0811D1DA:
- 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 _0811D1DA
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0811D1F8: .4byte gUnknown_083FD8E0
-_0811D1FC: .4byte gTasks
- thumb_func_end sub_811D1C8
-
- thumb_func_start sub_811D200
-sub_811D200: @ 811D200
- push {r4,r5,lr}
- adds r5, r0, 0
- bl sub_811D658
- bl dp12_8087EA4
- ldr r1, _0811D254 @ =0x0200c000
- movs r2, 0
- movs r0, 0x3F
- strh r0, [r1, 0x2]
- strh r2, [r1, 0x4]
- movs r0, 0xA0
- strh r0, [r1, 0x8]
- movs r1, 0
- ldr r2, _0811D258 @ =gUnknown_03004DE0
- movs r3, 0xF0
- adds r4, r2, 0
-_0811D222:
- lsls r0, r1, 1
- adds r0, r2
- strh r3, [r0]
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0x9F
- bls _0811D222
- movs r0, 0xF0
- lsls r0, 3
- adds r1, r4, r0
- adds r0, r4, 0
- movs r2, 0xA0
- bl CpuSet
- ldr r0, _0811D25C @ =sub_811D438
- bl SetVBlankCallback
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
- movs r0, 0x1
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0811D254: .4byte 0x0200c000
-_0811D258: .4byte gUnknown_03004DE0
-_0811D25C: .4byte sub_811D438
- thumb_func_end sub_811D200
-
- thumb_func_start sub_811D260
-sub_811D260: @ 811D260
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- sub sp, 0xC
- mov r8, r0
- ldr r0, _0811D2D0 @ =0x0200c024
- ldr r6, _0811D2D4 @ =gUnknown_083FD8F4
- mov r2, r8
- movs r3, 0xA
- ldrsh r1, [r2, r3]
- lsls r4, r1, 2
- adds r4, r1
- lsls r4, 1
- adds r1, r4, r6
- movs r5, 0
- ldrsh r1, [r1, r5]
- adds r2, r6, 0x2
- adds r2, r4, r2
- movs r3, 0
- ldrsh r2, [r2, r3]
- adds r3, r6, 0x4
- adds r3, r4, r3
- movs r5, 0
- ldrsh r3, [r3, r5]
- adds r5, r6, 0x6
- adds r4, r5
- movs r5, 0
- ldrsh r4, [r4, r5]
- str r4, [sp]
- movs r4, 0x1
- str r4, [sp, 0x4]
- str r4, [sp, 0x8]
- bl sub_811D8FC
- mov r0, r8
- movs r2, 0xA
- ldrsh r1, [r0, r2]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 1
- adds r6, 0x8
- adds r0, r6
- ldrh r0, [r0]
- mov r3, r8
- strh r0, [r3, 0xC]
- ldrh r0, [r3, 0x8]
- adds r0, 0x1
- strh r0, [r3, 0x8]
- movs r0, 0x1
- add sp, 0xC
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_0811D2D0: .4byte 0x0200c024
-_0811D2D4: .4byte gUnknown_083FD8F4
- thumb_func_end sub_811D260
-
- thumb_func_start sub_811D2D8
-sub_811D2D8: @ 811D2D8
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- adds r7, r0, 0
- ldr r0, _0811D324 @ =0x0200c000
- ldrb r1, [r0]
- movs r1, 0
- strb r1, [r0]
- mov r8, r1
- mov r12, r1
- adds r6, r0, 0
- ldr r0, _0811D328 @ =gUnknown_03004DE0
- mov r9, r0
-_0811D2F4:
- ldr r1, _0811D328 @ =gUnknown_03004DE0
- movs r2, 0x2A
- ldrsh r0, [r6, r2]
- lsls r0, 1
- adds r0, r1
- ldrh r0, [r0]
- lsrs r3, r0, 8
- movs r4, 0xFF
- ands r4, r0
- movs r1, 0xC
- ldrsh r0, [r7, r1]
- cmp r0, 0
- bne _0811D32C
- movs r2, 0x28
- ldrsh r0, [r6, r2]
- cmp r3, r0
- bge _0811D318
- ldrh r3, [r6, 0x28]
-_0811D318:
- lsls r0, r3, 16
- lsls r1, r4, 16
- cmp r0, r1
- ble _0811D344
- lsrs r3, r1, 16
- b _0811D344
- .align 2, 0
-_0811D324: .4byte 0x0200c000
-_0811D328: .4byte gUnknown_03004DE0
-_0811D32C:
- lsls r0, r4, 16
- asrs r0, 16
- movs r2, 0x28
- ldrsh r1, [r6, r2]
- cmp r0, r1
- ble _0811D33A
- ldrh r4, [r6, 0x28]
-_0811D33A:
- lsls r0, r4, 16
- lsls r1, r3, 16
- cmp r0, r1
- bgt _0811D344
- lsrs r4, r1, 16
-_0811D344:
- ldr r5, _0811D368 @ =0x0200c000
- movs r0, 0x2A
- ldrsh r2, [r5, r0]
- lsls r2, 1
- add r2, r9
- lsls r1, r3, 16
- asrs r1, 8
- lsls r0, r4, 16
- asrs r0, 16
- orrs r0, r1
- strh r0, [r2]
- mov r1, r12
- cmp r1, 0
- beq _0811D36C
- ldrh r0, [r7, 0x8]
- adds r0, 0x1
- strh r0, [r7, 0x8]
- b _0811D392
- .align 2, 0
-_0811D368: .4byte 0x0200c000
-_0811D36C:
- adds r0, r5, 0
- adds r0, 0x24
- movs r1, 0x1
- movs r2, 0x1
- bl sub_811D978
- lsls r0, 24
- lsrs r0, 24
- mov r12, r0
- mov r2, r8
- lsls r0, r2, 16
- movs r1, 0x80
- lsls r1, 9
- adds r0, r1
- lsrs r2, r0, 16
- mov r8, r2
- asrs r0, 16
- cmp r0, 0xF
- ble _0811D2F4
-_0811D392:
- ldr r0, _0811D3AC @ =0x0200c000
- ldrb r1, [r0]
- adds r1, 0x1
- ldrb r2, [r0]
- strb r1, [r0]
- movs r0, 0
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0811D3AC: .4byte 0x0200c000
- thumb_func_end sub_811D2D8
-
- thumb_func_start sub_811D3B0
-sub_811D3B0: @ 811D3B0
- push {lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0xA]
- adds r0, 0x1
- strh r0, [r2, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x6
- ble _0811D3FC
- ldr r1, _0811D3EC @ =0x040000b0
- ldrh r2, [r1, 0xA]
- ldr r0, _0811D3F0 @ =0x0000c5ff
- ands r0, r2
- strh r0, [r1, 0xA]
- ldrh r2, [r1, 0xA]
- ldr r0, _0811D3F4 @ =0x00007fff
- ands r0, r2
- strh r0, [r1, 0xA]
- ldrh r0, [r1, 0xA]
- bl sub_811D6D4
- ldr r0, _0811D3F8 @ =sub_811D1C8
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
- movs r0, 0
- b _0811D414
- .align 2, 0
-_0811D3EC: .4byte 0x040000b0
-_0811D3F0: .4byte 0x0000c5ff
-_0811D3F4: .4byte 0x00007fff
-_0811D3F8: .4byte sub_811D1C8
-_0811D3FC:
- ldrh r0, [r2, 0x8]
- adds r0, 0x1
- strh r0, [r2, 0x8]
- ldr r1, _0811D418 @ =gUnknown_083FD93A
- movs r3, 0xA
- ldrsh r0, [r2, r3]
- subs r0, 0x1
- lsls r0, 1
- adds r0, r1
- ldrh r0, [r0]
- strh r0, [r2, 0xE]
- movs r0, 0x1
-_0811D414:
- pop {r1}
- bx r1
- .align 2, 0
-_0811D418: .4byte gUnknown_083FD93A
- thumb_func_end sub_811D3B0
-
- thumb_func_start sub_811D41C
-sub_811D41C: @ 811D41C
- push {lr}
- adds r1, r0, 0
- ldrh r0, [r1, 0xE]
- subs r0, 0x1
- strh r0, [r1, 0xE]
- lsls r0, 16
- cmp r0, 0
- beq _0811D430
- movs r0, 0
- b _0811D434
-_0811D430:
- movs r0, 0x1
- strh r0, [r1, 0x8]
-_0811D434:
- pop {r1}
- bx r1
- thumb_func_end sub_811D41C
-
- thumb_func_start sub_811D438
-sub_811D438: @ 811D438
- push {r4,lr}
- ldr r4, _0811D4A0 @ =0x040000b0
- ldrh r1, [r4, 0xA]
- ldr r0, _0811D4A4 @ =0x0000c5ff
- ands r0, r1
- strh r0, [r4, 0xA]
- ldrh r1, [r4, 0xA]
- ldr r0, _0811D4A8 @ =0x00007fff
- ands r0, r1
- strh r0, [r4, 0xA]
- ldrh r0, [r4, 0xA]
- bl sub_811D67C
- ldr r2, _0811D4AC @ =0x0200c000
- ldrb r0, [r2]
- cmp r0, 0
- beq _0811D46E
- ldr r1, _0811D4B0 @ =0x040000d4
- ldr r0, _0811D4B4 @ =gUnknown_03004DE0
- str r0, [r1]
- movs r3, 0xF0
- lsls r3, 3
- adds r0, r3
- str r0, [r1, 0x4]
- ldr r0, _0811D4B8 @ =0x800000a0
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
-_0811D46E:
- ldr r1, _0811D4BC @ =REG_WININ
- ldrh r0, [r2, 0x2]
- strh r0, [r1]
- adds r1, 0x2
- ldrh r0, [r2, 0x4]
- strh r0, [r1]
- subs r1, 0x6
- ldrh r0, [r2, 0x8]
- strh r0, [r1]
- ldr r2, _0811D4C0 @ =REG_WIN0H
- ldr r0, _0811D4B4 @ =gUnknown_03004DE0
- movs r1, 0xF0
- lsls r1, 3
- adds r0, r1
- ldrh r1, [r0]
- strh r1, [r2]
- str r0, [r4]
- str r2, [r4, 0x4]
- ldr r0, _0811D4C4 @ =0xa2400001
- str r0, [r4, 0x8]
- ldr r0, [r4, 0x8]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0811D4A0: .4byte 0x040000b0
-_0811D4A4: .4byte 0x0000c5ff
-_0811D4A8: .4byte 0x00007fff
-_0811D4AC: .4byte 0x0200c000
-_0811D4B0: .4byte 0x040000d4
-_0811D4B4: .4byte gUnknown_03004DE0
-_0811D4B8: .4byte 0x800000a0
-_0811D4BC: .4byte REG_WININ
-_0811D4C0: .4byte REG_WIN0H
-_0811D4C4: .4byte 0xa2400001
- thumb_func_end sub_811D438
-
- thumb_func_start sub_811D4C8
-sub_811D4C8: @ 811D4C8
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- sub sp, 0x4
- mov r8, r0
- adds r4, r1, 0
- adds r5, r2, 0
- adds r6, r3, 0
- ldr r3, [sp, 0x18]
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- lsls r4, 16
- lsrs r4, 16
- lsls r5, 16
- lsrs r5, 16
- lsls r6, 16
- lsrs r6, 16
- lsls r3, 16
- lsrs r3, 16
- ldr r0, _0811D524 @ =sub_811D54C
- movs r1, 0x3
- str r3, [sp]
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0811D528 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- mov r0, r8
- strh r0, [r1, 0xA]
- strh r4, [r1, 0xC]
- strh r5, [r1, 0xE]
- strh r6, [r1, 0x10]
- ldr r3, [sp]
- strh r3, [r1, 0x12]
- strh r0, [r1, 0x14]
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0811D524: .4byte sub_811D54C
-_0811D528: .4byte gTasks
- thumb_func_end sub_811D4C8
-
- thumb_func_start sub_811D52C
-sub_811D52C: @ 811D52C
- push {lr}
- ldr r0, _0811D540 @ =sub_811D54C
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- beq _0811D544
- movs r0, 0
- b _0811D546
- .align 2, 0
-_0811D540: .4byte sub_811D54C
-_0811D544:
- movs r0, 0x1
-_0811D546:
- pop {r1}
- bx r1
- thumb_func_end sub_811D52C
-
- thumb_func_start sub_811D54C
-sub_811D54C: @ 811D54C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r5, _0811D57C @ =gUnknown_083FD948
- ldr r2, _0811D580 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r4, r1, r2
-_0811D55E:
- 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 _0811D55E
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0811D57C: .4byte gUnknown_083FD948
-_0811D580: .4byte gTasks
- thumb_func_end sub_811D54C
-
- thumb_func_start sub_811D584
-sub_811D584: @ 811D584
- push {r4,lr}
- adds r4, r0, 0
- ldrh r1, [r4, 0x14]
- movs r2, 0x14
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _0811D59C
- subs r0, r1, 0x1
- strh r0, [r4, 0x14]
- lsls r0, 16
- cmp r0, 0
- bne _0811D5C0
-_0811D59C:
- ldrh r0, [r4, 0xA]
- strh r0, [r4, 0x14]
- ldrh r0, [r4, 0x10]
- ldrh r1, [r4, 0x16]
- adds r0, r1
- strh r0, [r4, 0x16]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x10
- ble _0811D5B4
- movs r0, 0x10
- strh r0, [r4, 0x16]
-_0811D5B4:
- movs r0, 0x1
- negs r0, r0
- ldrb r1, [r4, 0x16]
- ldr r2, _0811D5DC @ =0x00002d6b
- bl BlendPalettes
-_0811D5C0:
- movs r2, 0x16
- ldrsh r0, [r4, r2]
- cmp r0, 0xF
- ble _0811D5D2
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- ldrh r0, [r4, 0xC]
- strh r0, [r4, 0x14]
-_0811D5D2:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0811D5DC: .4byte 0x00002d6b
- thumb_func_end sub_811D584
-
- thumb_func_start sub_811D5E0
-sub_811D5E0: @ 811D5E0
- push {r4,lr}
- adds r4, r0, 0
- ldrh r1, [r4, 0x14]
- movs r2, 0x14
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _0811D5F8
- subs r0, r1, 0x1
- strh r0, [r4, 0x14]
- lsls r0, 16
- cmp r0, 0
- bne _0811D61A
-_0811D5F8:
- ldrh r0, [r4, 0xC]
- strh r0, [r4, 0x14]
- ldrh r0, [r4, 0x16]
- ldrh r1, [r4, 0x12]
- subs r0, r1
- strh r0, [r4, 0x16]
- lsls r0, 16
- cmp r0, 0
- bge _0811D60E
- movs r0, 0
- strh r0, [r4, 0x16]
-_0811D60E:
- movs r0, 0x1
- negs r0, r0
- ldrb r1, [r4, 0x16]
- ldr r2, _0811D640 @ =0x00002d6b
- bl BlendPalettes
-_0811D61A:
- movs r0, 0x16
- ldrsh r1, [r4, r0]
- cmp r1, 0
- bne _0811D64E
- ldrh r0, [r4, 0xE]
- subs r0, 0x1
- strh r0, [r4, 0xE]
- lsls r0, 16
- cmp r0, 0
- bne _0811D648
- ldr r0, _0811D644 @ =sub_811D54C
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
- b _0811D64E
- .align 2, 0
-_0811D640: .4byte 0x00002d6b
-_0811D644: .4byte sub_811D54C
-_0811D648:
- ldrh r0, [r4, 0xA]
- strh r0, [r4, 0x14]
- strh r1, [r4, 0x8]
-_0811D64E:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_811D5E0
-
- thumb_func_start sub_811D658
-sub_811D658: @ 811D658
- push {lr}
- ldr r0, _0811D674 @ =gUnknown_083FD708
- ldr r0, [r0]
- movs r1, 0
- movs r2, 0x3C
- bl memset
- ldr r0, _0811D678 @ =0x0200c014
- adds r1, r0, 0x2
- bl sub_8057B14
- pop {r0}
- bx r0
- .align 2, 0
-_0811D674: .4byte gUnknown_083FD708
-_0811D678: .4byte 0x0200c014
- thumb_func_end sub_811D658
-
- thumb_func_start sub_811D67C
-sub_811D67C: @ 811D67C
- push {lr}
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- pop {r0}
- bx r0
- thumb_func_end sub_811D67C
-
- thumb_func_start sub_811D690
-sub_811D690: @ 811D690
- ldr r1, _0811D6A4 @ =REG_BG0CNT
- ldrh r1, [r1]
- lsrs r1, 2
- lsls r1, 30
- lsrs r1, 16
- movs r2, 0xC0
- lsls r2, 19
- adds r1, r2
- str r1, [r0]
- bx lr
- .align 2, 0
-_0811D6A4: .4byte REG_BG0CNT
- thumb_func_end sub_811D690
-
- thumb_func_start sub_811D6A8
-sub_811D6A8: @ 811D6A8
- push {r4,lr}
- ldr r3, _0811D6D0 @ =REG_BG0CNT
- ldrh r2, [r3]
- lsrs r2, 8
- ldrh r3, [r3]
- lsrs r3, 2
- lsls r2, 27
- lsrs r2, 16
- lsls r3, 30
- lsrs r3, 16
- movs r4, 0xC0
- lsls r4, 19
- adds r2, r4
- str r2, [r0]
- adds r3, r4
- str r3, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0811D6D0: .4byte REG_BG0CNT
- thumb_func_end sub_811D6A8
-
- thumb_func_start sub_811D6D4
-sub_811D6D4: @ 811D6D4
- push {lr}
- movs r0, 0x1
- negs r0, r0
- movs r1, 0x10
- movs r2, 0
- bl BlendPalettes
- pop {r0}
- bx r0
- thumb_func_end sub_811D6D4
-
- thumb_func_start sub_811D6E8
-sub_811D6E8: @ 811D6E8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- mov r10, r0
- ldr r0, [sp, 0x20]
- ldr r4, [sp, 0x24]
- lsls r1, 16
- lsrs r7, r1, 16
- lsls r2, 16
- lsrs r2, 16
- lsls r3, 16
- lsrs r3, 16
- lsls r0, 16
- lsrs r1, r0, 16
- lsls r4, 16
- movs r6, 0
- lsrs r5, r4, 16
- cmp r4, 0
- ble _0811D750
- lsls r0, r7, 16
- asrs r0, 16
- mov r9, r0
- lsls r1, 16
- mov r8, r1
- lsls r0, r3, 16
- asrs r7, r0, 16
-_0811D720:
- lsls r4, r2, 16
- asrs r4, 16
- movs r0, 0xFF
- ands r0, r4
- mov r2, r8
- asrs r1, r2, 16
- bl Sin
- lsls r1, r6, 1
- add r1, r10
- add r0, r9
- strh r0, [r1]
- lsls r1, r5, 16
- ldr r0, _0811D760 @ =0xffff0000
- adds r1, r0
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- adds r4, r7
- lsls r4, 16
- lsrs r2, r4, 16
- lsrs r5, r1, 16
- cmp r1, 0
- bgt _0811D720
-_0811D750:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0811D760: .4byte 0xffff0000
- thumb_func_end sub_811D6E8
-
- thumb_func_start sub_811D764
-sub_811D764: @ 811D764
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x14
- mov r9, r0
- adds r5, r2, 0
- adds r4, r3, 0
- lsls r1, 16
- lsrs r1, 16
- str r1, [sp]
- lsls r5, 16
- lsrs r5, 16
- lsls r4, 16
- lsrs r4, 16
- movs r2, 0xA0
- lsls r2, 1
- movs r1, 0xA
- bl memset
- movs r1, 0
- lsls r4, 16
- asrs r4, 16
- str r4, [sp, 0x4]
- lsls r5, 16
- asrs r5, 16
- str r5, [sp, 0x8]
-_0811D79C:
- lsls r5, r1, 16
- asrs r0, r5, 16
- mov r10, r0
- ldr r1, [sp, 0x4]
- bl Sin
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- mov r0, r10
- ldr r1, [sp, 0x4]
- bl Cos
- ldr r2, [sp]
- lsls r1, r2, 16
- asrs r1, 16
- lsls r4, 16
- asrs r4, 16
- subs r2, r1, r4
- lsls r2, 16
- adds r1, r4
- lsls r1, 16
- lsrs r6, r1, 16
- lsls r0, 16
- asrs r0, 16
- ldr r3, [sp, 0x8]
- subs r1, r3, r0
- lsls r1, 16
- lsrs r7, r1, 16
- adds r0, r3, r0
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- lsrs r1, r2, 16
- str r5, [sp, 0x10]
- cmp r2, 0
- bge _0811D7E8
- movs r1, 0
-_0811D7E8:
- lsls r0, r6, 16
- asrs r0, 16
- cmp r0, 0xF0
- ble _0811D7F2
- movs r6, 0xF0
-_0811D7F2:
- lsls r0, r7, 16
- cmp r0, 0
- bge _0811D7FA
- movs r7, 0
-_0811D7FA:
- mov r2, r8
- lsls r0, r2, 16
- asrs r0, 16
- cmp r0, 0x9F
- ble _0811D808
- movs r3, 0x9F
- mov r8, r3
-_0811D808:
- lsls r0, r1, 24
- lsrs r0, 16
- orrs r6, r0
- lsls r0, r7, 16
- asrs r0, 16
- str r0, [sp, 0xC]
- lsls r0, 1
- add r0, r9
- strh r6, [r0]
- mov r0, r8
- lsls r4, r0, 16
- asrs r0, r4, 15
- add r0, r9
- strh r6, [r0]
- mov r0, r10
- adds r0, 0x1
- lsls r0, 16
- asrs r0, 16
- ldr r1, [sp, 0x4]
- bl Cos
- lsls r0, 16
- asrs r0, 16
- ldr r2, [sp, 0x8]
- subs r1, r2, r0
- lsls r1, 16
- adds r0, r2, r0
- lsls r0, 16
- lsrs r2, r0, 16
- lsrs r3, r1, 16
- cmp r1, 0
- bge _0811D84A
- movs r3, 0
-_0811D84A:
- lsls r0, r2, 16
- asrs r0, 16
- cmp r0, 0x9F
- ble _0811D854
- movs r2, 0x9F
-_0811D854:
- lsls r0, r3, 16
- asrs r1, r0, 16
- adds r3, r0, 0
- lsls r5, r2, 16
- ldr r0, [sp, 0xC]
- cmp r0, r1
- ble _0811D878
- adds r2, r1, 0
-_0811D864:
- lsls r1, r7, 16
- ldr r0, _0811D8F8 @ =0xffff0000
- adds r1, r0
- asrs r0, r1, 15
- add r0, r9
- strh r6, [r0]
- lsrs r7, r1, 16
- asrs r1, 16
- cmp r1, r2
- bgt _0811D864
-_0811D878:
- lsls r1, r7, 16
- asrs r0, r3, 16
- cmp r1, r3
- bge _0811D896
- adds r2, r0, 0
-_0811D882:
- movs r3, 0x80
- lsls r3, 9
- adds r0, r1, r3
- asrs r1, r0, 15
- add r1, r9
- strh r6, [r1]
- adds r1, r0, 0
- asrs r0, r1, 16
- cmp r0, r2
- blt _0811D882
-_0811D896:
- asrs r0, r5, 16
- cmp r4, r5
- ble _0811D8B4
- adds r1, r0, 0
-_0811D89E:
- ldr r2, _0811D8F8 @ =0xffff0000
- adds r0, r4, r2
- lsrs r3, r0, 16
- mov r8, r3
- asrs r0, 15
- add r0, r9
- strh r6, [r0]
- lsls r4, r3, 16
- asrs r0, r4, 16
- cmp r0, r1
- bgt _0811D89E
-_0811D8B4:
- mov r0, r8
- lsls r4, r0, 16
- asrs r0, r5, 16
- cmp r4, r5
- bge _0811D8D4
- adds r2, r0, 0
-_0811D8C0:
- movs r1, 0x80
- lsls r1, 9
- adds r0, r4, r1
- asrs r1, r0, 15
- add r1, r9
- strh r6, [r1]
- adds r4, r0, 0
- asrs r0, r4, 16
- cmp r0, r2
- blt _0811D8C0
-_0811D8D4:
- ldr r2, [sp, 0x10]
- movs r3, 0x80
- lsls r3, 9
- adds r0, r2, r3
- lsrs r1, r0, 16
- asrs r0, 16
- cmp r0, 0x3F
- bgt _0811D8E6
- b _0811D79C
-_0811D8E6:
- 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
-_0811D8F8: .4byte 0xffff0000
- thumb_func_end sub_811D764
-
- thumb_func_start sub_811D8FC
-sub_811D8FC: @ 811D8FC
- push {r4-r7,lr}
- adds r6, r0, 0
- ldr r0, [sp, 0x14]
- ldr r5, [sp, 0x18]
- ldr r4, [sp, 0x1C]
- lsls r1, 16
- lsrs r1, 16
- lsls r2, 16
- lsrs r2, 16
- lsls r3, 16
- lsrs r3, 16
- lsls r0, 16
- lsrs r0, 16
- adds r7, r0, 0
- lsls r5, 16
- lsrs r5, 16
- lsls r4, 16
- lsrs r4, 16
- strh r1, [r6]
- strh r2, [r6, 0x2]
- strh r1, [r6, 0x4]
- strh r2, [r6, 0x6]
- strh r3, [r6, 0x8]
- strh r7, [r6, 0xA]
- strh r5, [r6, 0xC]
- strh r4, [r6, 0xE]
- lsls r3, 16
- asrs r3, 16
- lsls r1, 16
- asrs r1, 16
- subs r3, r1
- strh r3, [r6, 0x10]
- lsls r0, r3, 16
- cmp r0, 0
- bge _0811D94E
- negs r0, r3
- strh r0, [r6, 0x10]
- lsls r0, r5, 16
- asrs r0, 16
- negs r0, r0
- strh r0, [r6, 0xC]
-_0811D94E:
- lsls r0, r7, 16
- asrs r0, 16
- lsls r1, r2, 16
- asrs r1, 16
- subs r1, r0, r1
- strh r1, [r6, 0x12]
- lsls r0, r1, 16
- cmp r0, 0
- bge _0811D96C
- negs r0, r1
- strh r0, [r6, 0x12]
- lsls r0, r4, 16
- asrs r0, 16
- negs r0, r0
- strh r0, [r6, 0xE]
-_0811D96C:
- movs r0, 0
- strh r0, [r6, 0x14]
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_811D8FC
-
- thumb_func_start sub_811D978
-sub_811D978: @ 811D978
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- adds r3, r0, 0
- lsls r1, 24
- lsrs r1, 24
- mov r9, r1
- lsls r2, 24
- lsrs r2, 24
- mov r10, r2
- ldrh r0, [r3, 0x10]
- mov r8, r0
- movs r1, 0x10
- ldrsh r6, [r3, r1]
- ldrh r2, [r3, 0x12]
- mov r12, r2
- movs r4, 0x12
- ldrsh r5, [r3, r4]
- cmp r6, r5
- ble _0811D9C8
- ldrh r0, [r3, 0xC]
- ldrh r2, [r3, 0x4]
- adds r1, r0, r2
- strh r1, [r3, 0x4]
- ldrh r2, [r3, 0x14]
- add r2, r12
- strh r2, [r3, 0x14]
- lsls r1, r2, 16
- asrs r1, 16
- adds r4, r0, 0
- ldrh r7, [r3, 0xE]
- cmp r1, r6
- ble _0811D9EE
- ldrh r1, [r3, 0x6]
- adds r0, r7, r1
- strh r0, [r3, 0x6]
- mov r1, r8
- b _0811D9EA
-_0811D9C8:
- ldrh r0, [r3, 0xE]
- ldrh r2, [r3, 0x6]
- adds r1, r0, r2
- strh r1, [r3, 0x6]
- ldrh r2, [r3, 0x14]
- add r2, r8
- strh r2, [r3, 0x14]
- lsls r1, r2, 16
- asrs r1, 16
- ldrh r4, [r3, 0xC]
- adds r7, r0, 0
- cmp r1, r5
- ble _0811D9EE
- ldrh r1, [r3, 0x4]
- adds r0, r4, r1
- strh r0, [r3, 0x4]
- mov r1, r12
-_0811D9EA:
- subs r0, r2, r1
- strh r0, [r3, 0x14]
-_0811D9EE:
- movs r5, 0
- lsls r0, r4, 16
- asrs r2, r0, 16
- cmp r2, 0
- ble _0811DA06
- movs r4, 0x4
- ldrsh r1, [r3, r4]
- movs r4, 0x8
- ldrsh r0, [r3, r4]
- ldrh r4, [r3, 0x8]
- cmp r1, r0
- bge _0811DA18
-_0811DA06:
- cmp r2, 0
- bge _0811DA26
- movs r0, 0x4
- ldrsh r1, [r3, r0]
- movs r2, 0x8
- ldrsh r0, [r3, r2]
- ldrh r4, [r3, 0x8]
- cmp r1, r0
- bgt _0811DA26
-_0811DA18:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- mov r0, r9
- cmp r0, 0
- beq _0811DA26
- strh r4, [r3, 0x4]
-_0811DA26:
- lsls r0, r7, 16
- asrs r2, r0, 16
- cmp r2, 0
- ble _0811DA3C
- movs r4, 0x6
- ldrsh r1, [r3, r4]
- movs r4, 0xA
- ldrsh r0, [r3, r4]
- ldrh r4, [r3, 0xA]
- cmp r1, r0
- bge _0811DA4E
-_0811DA3C:
- cmp r2, 0
- bge _0811DA5C
- movs r0, 0x6
- ldrsh r1, [r3, r0]
- movs r2, 0xA
- ldrsh r0, [r3, r2]
- ldrh r4, [r3, 0xA]
- cmp r1, r0
- bgt _0811DA5C
-_0811DA4E:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- mov r0, r10
- cmp r0, 0
- beq _0811DA5C
- strh r4, [r3, 0x6]
-_0811DA5C:
- cmp r5, 0x2
- beq _0811DA64
- movs r0, 0
- b _0811DA66
-_0811DA64:
- movs r0, 0x1
-_0811DA66:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_811D978
-
- thumb_func_start nullsub_74
-nullsub_74: @ 811DA74
- bx lr
- thumb_func_end nullsub_74
-
- thumb_func_start sub_811DA78
-sub_811DA78: @ 811DA78
- ldr r1, _0811DA88 @ =gUnknown_03004330
- ldr r0, _0811DA8C @ =gUnknown_02024A60
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0811DA90 @ =sub_811DA94
- str r1, [r0]
- bx lr
- .align 2, 0
-_0811DA88: .4byte gUnknown_03004330
-_0811DA8C: .4byte gUnknown_02024A60
-_0811DA90: .4byte sub_811DA94
- thumb_func_end sub_811DA78
-
- thumb_func_start sub_811DA94
-sub_811DA94: @ 811DA94
- push {lr}
- ldr r2, _0811DAC8 @ =gUnknown_02024A64
- ldr r1, _0811DACC @ =gBitTable
- ldr r0, _0811DAD0 @ =gUnknown_02024A60
- ldrb r3, [r0]
- lsls r0, r3, 2
- adds r0, r1
- ldr r1, [r2]
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- beq _0811DAE0
- ldr r0, _0811DAD4 @ =gUnknown_02023A60
- lsls r1, r3, 9
- adds r1, r0
- ldrb r0, [r1]
- cmp r0, 0x38
- bhi _0811DADC
- ldr r0, _0811DAD8 @ =gUnknown_083FE4F4
- ldrb r1, [r1]
- lsls r1, 2
- adds r1, r0
- ldr r0, [r1]
- bl _call_via_r0
- b _0811DAE0
- .align 2, 0
-_0811DAC8: .4byte gUnknown_02024A64
-_0811DACC: .4byte gBitTable
-_0811DAD0: .4byte gUnknown_02024A60
-_0811DAD4: .4byte gUnknown_02023A60
-_0811DAD8: .4byte gUnknown_083FE4F4
-_0811DADC:
- bl dp01_tbl3_exec_completed
-_0811DAE0:
- pop {r0}
- bx r0
- thumb_func_end sub_811DA94
-
- thumb_func_start sub_811DAE4
-sub_811DAE4: @ 811DAE4
- push {lr}
- ldr r2, _0811DB0C @ =gSprites
- ldr r1, _0811DB10 @ =gUnknown_02024BE0
- ldr r0, _0811DB14 @ =gUnknown_02024A60
- ldrb r0, [r0]
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r1, [r0]
- ldr r0, _0811DB18 @ =SpriteCallbackDummy
- cmp r1, r0
- bne _0811DB08
- bl dp01_tbl3_exec_completed
-_0811DB08:
- pop {r0}
- bx r0
- .align 2, 0
-_0811DB0C: .4byte gSprites
-_0811DB10: .4byte gUnknown_02024BE0
-_0811DB14: .4byte gUnknown_02024A60
-_0811DB18: .4byte SpriteCallbackDummy
- thumb_func_end sub_811DAE4
-
- thumb_func_start sub_811DB1C
-sub_811DB1C: @ 811DB1C
- push {r4-r6,lr}
- ldr r6, _0811DB74 @ =gSprites
- ldr r5, _0811DB78 @ =gUnknown_02024BE0
- ldr r4, _0811DB7C @ =gUnknown_02024A60
- ldrb r0, [r4]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r6, 0
- adds r1, 0x1C
- adds r0, r1
- ldr r1, [r0]
- ldr r0, _0811DB80 @ =SpriteCallbackDummy
- cmp r1, r0
- bne _0811DB6C
- movs r0, 0
- bl nullsub_10
- ldrb r0, [r4]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- bl FreeSpriteOamMatrix
- ldrb r0, [r4]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- bl DestroySprite
- bl dp01_tbl3_exec_completed
-_0811DB6C:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0811DB74: .4byte gSprites
-_0811DB78: .4byte gUnknown_02024BE0
-_0811DB7C: .4byte gUnknown_02024A60
-_0811DB80: .4byte SpriteCallbackDummy
- thumb_func_end sub_811DB1C
-
- thumb_func_start sub_811DB84
-sub_811DB84: @ 811DB84
- push {lr}
- ldr r3, _0811DBB8 @ =gUnknown_02024A60
- ldrb r0, [r3]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- ldr r2, _0811DBBC @ =0x02017810
- adds r1, r2
- ldrb r0, [r1, 0x9]
- subs r0, 0x1
- strb r0, [r1, 0x9]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- bne _0811DBB4
- ldrb r0, [r3]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- movs r0, 0
- strb r0, [r1, 0x9]
- bl dp01_tbl3_exec_completed
-_0811DBB4:
- pop {r0}
- bx r0
- .align 2, 0
-_0811DBB8: .4byte gUnknown_02024A60
-_0811DBBC: .4byte 0x02017810
- thumb_func_end sub_811DB84
-
- thumb_func_start sub_811DBC0
-sub_811DBC0: @ 811DBC0
- push {r4-r6,lr}
- movs r6, 0
- bl battle_type_is_double
- lsls r0, 24
- cmp r0, 0
- beq _0811DBE4
- bl battle_type_is_double
- lsls r0, 24
- cmp r0, 0
- beq _0811DC18
- ldr r0, _0811DC04 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0811DC18
-_0811DBE4:
- ldr r2, _0811DC08 @ =gSprites
- ldr r1, _0811DC0C @ =gUnknown_03004340
- ldr r0, _0811DC10 @ =gUnknown_02024A60
- ldrb r0, [r0]
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r1, [r0]
- ldr r0, _0811DC14 @ =SpriteCallbackDummy
- cmp r1, r0
- bne _0811DC50
- b _0811DC4E
- .align 2, 0
-_0811DC04: .4byte gUnknown_020239F8
-_0811DC08: .4byte gSprites
-_0811DC0C: .4byte gUnknown_03004340
-_0811DC10: .4byte gUnknown_02024A60
-_0811DC14: .4byte SpriteCallbackDummy
-_0811DC18:
- ldr r2, _0811DC84 @ =gSprites
- ldr r5, _0811DC88 @ =gUnknown_03004340
- ldr r0, _0811DC8C @ =gUnknown_02024A60
- ldrb r3, [r0]
- adds r0, r3, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r4, r2, 0
- adds r4, 0x1C
- adds r0, r4
- ldr r2, [r0]
- ldr r0, _0811DC90 @ =SpriteCallbackDummy
- cmp r2, r0
- bne _0811DC50
- movs r0, 0x2
- eors r3, r0
- adds r0, r3, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldr r0, [r0]
- cmp r0, r2
- bne _0811DC50
-_0811DC4E:
- movs r6, 0x1
-_0811DC50:
- bl IsCryPlayingOrClearCrySongs
- lsls r0, 24
- cmp r0, 0
- beq _0811DC5C
- movs r6, 0
-_0811DC5C:
- cmp r6, 0
- beq _0811DC7E
- ldr r2, _0811DC8C @ =gUnknown_02024A60
- ldrb r1, [r2]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _0811DC94 @ =0x02017810
- adds r0, r1
- movs r1, 0x3
- strb r1, [r0, 0x9]
- ldr r1, _0811DC98 @ =gUnknown_03004330
- ldrb r0, [r2]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0811DC9C @ =sub_811DB84
- str r1, [r0]
-_0811DC7E:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0811DC84: .4byte gSprites
-_0811DC88: .4byte gUnknown_03004340
-_0811DC8C: .4byte gUnknown_02024A60
-_0811DC90: .4byte SpriteCallbackDummy
-_0811DC94: .4byte 0x02017810
-_0811DC98: .4byte gUnknown_03004330
-_0811DC9C: .4byte sub_811DB84
- thumb_func_end sub_811DBC0
-
- thumb_func_start sub_811DCA0
-sub_811DCA0: @ 811DCA0
- push {r4-r7,lr}
- ldr r6, _0811DDBC @ =gUnknown_02024A60
- ldrb r2, [r6]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- ldr r4, _0811DDC0 @ =0x02017810
- adds r3, r0, r4
- ldrb r1, [r3]
- movs r5, 0x8
- adds r0, r5, 0
- ands r0, r1
- cmp r0, 0
- bne _0811DDB4
- movs r7, 0x2
- adds r1, r7, 0
- eors r1, r2
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r1, [r0]
- adds r0, r5, 0
- ands r0, r1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0
- bne _0811DDB4
- ldrb r0, [r3, 0x9]
- adds r0, 0x1
- strb r0, [r3, 0x9]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0811DDB4
- ldrb r0, [r6]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- strb r2, [r1, 0x9]
- bl battle_type_is_double
- lsls r0, 24
- cmp r0, 0
- beq _0811DD56
- ldr r0, _0811DDC4 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- bne _0811DD56
- ldr r1, _0811DDC8 @ =gUnknown_0300434C
- ldrb r0, [r6]
- eors r0, r7
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0811DDCC @ =gSprites
- adds r0, r1
- bl DestroySprite
- ldr r4, _0811DDD0 @ =gUnknown_03004340
- ldrb r0, [r6]
- adds r1, r7, 0
- eors r1, r0
- adds r0, r1, r4
- ldrb r0, [r0]
- ldr r2, _0811DDD4 @ =gUnknown_02024A6A
- lsls r1, 1
- adds r1, r2
- ldrh r2, [r1]
- movs r1, 0x64
- muls r1, r2
- ldr r2, _0811DDD8 @ =gPlayerParty
- adds r1, r2
- movs r2, 0
- bl sub_8045A5C
- ldrb r0, [r6]
- eors r0, r7
- bl sub_804777C
- ldrb r0, [r6]
- eors r0, r7
- adds r0, r4
- ldrb r0, [r0]
- bl sub_8043DFC
-_0811DD56:
- ldr r1, _0811DDC8 @ =gUnknown_0300434C
- ldr r4, _0811DDBC @ =gUnknown_02024A60
- ldrb r0, [r4]
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0811DDCC @ =gSprites
- adds r0, r1
- bl DestroySprite
- ldr r5, _0811DDD0 @ =gUnknown_03004340
- ldrb r1, [r4]
- adds r0, r1, r5
- ldrb r0, [r0]
- ldr r2, _0811DDD4 @ =gUnknown_02024A6A
- lsls r1, 1
- adds r1, r2
- ldrh r2, [r1]
- movs r1, 0x64
- muls r1, r2
- ldr r2, _0811DDD8 @ =gPlayerParty
- adds r1, r2
- movs r2, 0
- bl sub_8045A5C
- ldrb r0, [r4]
- bl sub_804777C
- ldrb r0, [r4]
- adds r0, r5
- ldrb r0, [r0]
- bl sub_8043DFC
- ldr r2, _0811DDDC @ =0x02017840
- ldrb r1, [r2, 0x9]
- movs r0, 0x2
- negs r0, r0
- ands r0, r1
- strb r0, [r2, 0x9]
- ldr r1, _0811DDE0 @ =gUnknown_03004330
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0811DDE4 @ =sub_811DBC0
- str r1, [r0]
-_0811DDB4:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0811DDBC: .4byte gUnknown_02024A60
-_0811DDC0: .4byte 0x02017810
-_0811DDC4: .4byte gUnknown_020239F8
-_0811DDC8: .4byte gUnknown_0300434C
-_0811DDCC: .4byte gSprites
-_0811DDD0: .4byte gUnknown_03004340
-_0811DDD4: .4byte gUnknown_02024A6A
-_0811DDD8: .4byte gPlayerParty
-_0811DDDC: .4byte 0x02017840
-_0811DDE0: .4byte gUnknown_03004330
-_0811DDE4: .4byte sub_811DBC0
- thumb_func_end sub_811DCA0
-
- thumb_func_start sub_811DDE8
-sub_811DDE8: @ 811DDE8
- push {lr}
- ldr r2, _0811DE1C @ =gSprites
- ldr r1, _0811DE20 @ =gUnknown_02024BE0
- ldr r0, _0811DE24 @ =gUnknown_02024A60
- ldrb r0, [r0]
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r0, r2
- adds r0, r1, 0
- adds r0, 0x3F
- ldrb r0, [r0]
- lsls r0, 27
- cmp r0, 0
- bge _0811DE16
- movs r2, 0x24
- ldrsh r0, [r1, r2]
- cmp r0, 0
- bne _0811DE16
- bl dp01_tbl3_exec_completed
-_0811DE16:
- pop {r0}
- bx r0
- .align 2, 0
-_0811DE1C: .4byte gSprites
-_0811DE20: .4byte gUnknown_02024BE0
-_0811DE24: .4byte gUnknown_02024A60
- thumb_func_end sub_811DDE8
-
- thumb_func_start bx_t3_healthbar_update
-bx_t3_healthbar_update: @ 811DE28
- push {r4-r6,lr}
- ldr r5, _0811DE68 @ =gUnknown_02024A60
- ldrb r0, [r5]
- ldr r6, _0811DE6C @ =gUnknown_03004340
- adds r1, r0, r6
- ldrb r1, [r1]
- movs r2, 0
- movs r3, 0
- bl sub_8045C78
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- ldrb r0, [r5]
- adds r0, r6
- ldrb r0, [r0]
- bl sub_8043DFC
- lsls r4, 16
- asrs r1, r4, 16
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _0811DE70
- ldrb r0, [r5]
- adds r0, r6
- ldrb r0, [r0]
- movs r2, 0
- bl sub_80440EC
- b _0811DE8A
- .align 2, 0
-_0811DE68: .4byte gUnknown_02024A60
-_0811DE6C: .4byte gUnknown_03004340
-_0811DE70:
- ldr r2, _0811DE90 @ =gUnknown_02024A6A
- ldrb r1, [r5]
- lsls r0, r1, 1
- adds r0, r2
- ldrh r2, [r0]
- movs r0, 0x64
- muls r0, r2
- ldr r2, _0811DE94 @ =gPlayerParty
- adds r0, r2
- bl sub_80324F8
- bl dp01_tbl3_exec_completed
-_0811DE8A:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0811DE90: .4byte gUnknown_02024A6A
-_0811DE94: .4byte gPlayerParty
- thumb_func_end bx_t3_healthbar_update
-
- thumb_func_start sub_811DE98
-sub_811DE98: @ 811DE98
- push {r4-r6,lr}
- ldr r6, _0811DF1C @ =gSprites
- ldr r5, _0811DF20 @ =gUnknown_02024BE0
- ldr r4, _0811DF24 @ =gUnknown_02024A60
- ldrb r2, [r4]
- adds r0, r2, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- movs r3, 0x22
- ldrsh r1, [r0, r3]
- movs r3, 0x26
- ldrsh r0, [r0, r3]
- adds r1, r0
- cmp r1, 0xA0
- ble _0811DF14
- ldr r1, _0811DF28 @ =gUnknown_02024A6A
- lsls r0, r2, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0811DF2C @ =gPlayerParty
- adds r0, r1
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- bl nullsub_9
- ldrb r0, [r4]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- ldrb r0, [r0, 0x3]
- lsls r0, 26
- lsrs r0, 27
- bl FreeOamMatrix
- ldrb r0, [r4]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- bl DestroySprite
- ldr r1, _0811DF30 @ =gUnknown_03004340
- ldrb r0, [r4]
- adds r0, r1
- ldrb r0, [r0]
- bl sub_8043DB0
- bl dp01_tbl3_exec_completed
-_0811DF14:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0811DF1C: .4byte gSprites
-_0811DF20: .4byte gUnknown_02024BE0
-_0811DF24: .4byte gUnknown_02024A60
-_0811DF28: .4byte gUnknown_02024A6A
-_0811DF2C: .4byte gPlayerParty
-_0811DF30: .4byte gUnknown_03004340
- thumb_func_end sub_811DE98
-
- thumb_func_start sub_811DF34
-sub_811DF34: @ 811DF34
- push {r4-r6,lr}
- ldr r6, _0811DF8C @ =gUnknown_02024A60
- ldrb r2, [r6]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- ldr r1, _0811DF90 @ =0x02017810
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- bne _0811DF84
- ldr r5, _0811DF94 @ =gUnknown_02024BE0
- adds r0, r2, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r4, _0811DF98 @ =gSprites
- adds r0, r4
- bl FreeSpriteOamMatrix
- ldrb r0, [r6]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- bl DestroySprite
- ldr r1, _0811DF9C @ =gUnknown_03004340
- ldrb r0, [r6]
- adds r0, r1
- ldrb r0, [r0]
- bl sub_8043DB0
- bl dp01_tbl3_exec_completed
-_0811DF84:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0811DF8C: .4byte gUnknown_02024A60
-_0811DF90: .4byte 0x02017810
-_0811DF94: .4byte gUnknown_02024BE0
-_0811DF98: .4byte gSprites
-_0811DF9C: .4byte gUnknown_03004340
- thumb_func_end sub_811DF34
-
- thumb_func_start sub_811DFA0
-sub_811DFA0: @ 811DFA0
- push {lr}
- ldr r0, _0811DFB4 @ =gUnknown_03004210
- ldrh r0, [r0, 0x16]
- cmp r0, 0
- bne _0811DFAE
- bl dp01_tbl3_exec_completed
-_0811DFAE:
- pop {r0}
- bx r0
- .align 2, 0
-_0811DFB4: .4byte gUnknown_03004210
- thumb_func_end sub_811DFA0
-
- thumb_func_start bx_blink_t3
-bx_blink_t3: @ 811DFB8
- push {r4,lr}
- ldr r1, _0811DFF4 @ =gUnknown_02024BE0
- ldr r0, _0811DFF8 @ =gUnknown_02024A60
- ldrb r0, [r0]
- adds r0, r1
- ldrb r1, [r0]
- ldr r2, _0811DFFC @ =gSprites
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r4, r0, r2
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- cmp r0, 0x20
- bne _0811E004
- movs r3, 0
- movs r0, 0
- strh r0, [r4, 0x30]
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- subs r0, 0x5
- ands r0, r1
- strb r0, [r2]
- ldr r0, _0811E000 @ =gUnknown_02024E6D
- strb r3, [r0]
- bl dp01_tbl3_exec_completed
- b _0811E02E
- .align 2, 0
-_0811DFF4: .4byte gUnknown_02024BE0
-_0811DFF8: .4byte gUnknown_02024A60
-_0811DFFC: .4byte gSprites
-_0811E000: .4byte gUnknown_02024E6D
-_0811E004:
- ldrh r0, [r4, 0x30]
- movs r1, 0x3
- ands r0, r1
- cmp r0, 0
- bne _0811E028
- 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]
-_0811E028:
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
-_0811E02E:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end bx_blink_t3
-
- thumb_func_start sub_811E034
-sub_811E034: @ 811E034
- push {r4,lr}
- ldr r2, _0811E084 @ =gSprites
- ldr r0, _0811E088 @ =gUnknown_03004340
- ldr r4, _0811E08C @ =gUnknown_02024A60
- ldrb r3, [r4]
- adds r0, r3, r0
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r1, [r0]
- ldr r0, _0811E090 @ =SpriteCallbackDummy
- cmp r1, r0
- bne _0811E07C
- lsls r0, r3, 2
- ldr r1, _0811E094 @ =0x02017800
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _0811E070
- adds r0, r3, 0
- adds r1, r3, 0
- adds r2, r3, 0
- movs r3, 0x6
- bl move_anim_start_t4
-_0811E070:
- ldr r0, _0811E098 @ =gUnknown_03004330
- ldrb r1, [r4]
- lsls r1, 2
- adds r1, r0
- ldr r0, _0811E09C @ =sub_811E0A0
- str r0, [r1]
-_0811E07C:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0811E084: .4byte gSprites
-_0811E088: .4byte gUnknown_03004340
-_0811E08C: .4byte gUnknown_02024A60
-_0811E090: .4byte SpriteCallbackDummy
-_0811E094: .4byte 0x02017800
-_0811E098: .4byte gUnknown_03004330
-_0811E09C: .4byte sub_811E0A0
- thumb_func_end sub_811E034
-
- thumb_func_start sub_811E0A0
-sub_811E0A0: @ 811E0A0
- push {lr}
- ldr r0, _0811E0C4 @ =gUnknown_02024A60
- ldrb r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _0811E0C8 @ =0x02017810
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- bne _0811E0BE
- bl dp01_tbl3_exec_completed
-_0811E0BE:
- pop {r0}
- bx r0
- .align 2, 0
-_0811E0C4: .4byte gUnknown_02024A60
-_0811E0C8: .4byte 0x02017810
- thumb_func_end sub_811E0A0
-
- thumb_func_start sub_811E0CC
-sub_811E0CC: @ 811E0CC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r7, _0811E190 @ =gUnknown_02024A60
- ldrb r1, [r7]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r3, _0811E194 @ =0x02017810
- adds r2, r0, r3
- ldrb r1, [r2, 0x1]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0811E186
- ldrb r1, [r2]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r2]
- ldrb r0, [r7]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r3
- ldrb r2, [r1, 0x1]
- movs r0, 0x2
- negs r0, r0
- ands r0, r2
- strb r0, [r1, 0x1]
- ldr r4, _0811E198 @ =0x000027f9
- adds r0, r4, 0
- bl FreeSpriteTilesByTag
- adds r0, r4, 0
- bl FreeSpritePaletteByTag
- ldr r0, _0811E19C @ =c3_0802FDF4
- movs r1, 0xA
- bl CreateTask
- ldr r0, _0811E1A0 @ =gUnknown_02024A6A
- mov r8, r0
- ldrb r1, [r7]
- lsls r0, r1, 1
- add r0, r8
- ldrh r0, [r0]
- movs r6, 0x64
- muls r0, r6
- ldr r5, _0811E1A4 @ =gPlayerParty
- adds r0, r5
- bl sub_80324F8
- ldr r1, _0811E1A8 @ =gUnknown_02024BE0
- ldrb r0, [r7]
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0811E1AC @ =gSprites
- adds r0, r1
- movs r1, 0
- bl StartSpriteAnim
- ldr r4, _0811E1B0 @ =gUnknown_03004340
- ldrb r1, [r7]
- adds r0, r1, r4
- ldrb r0, [r0]
- lsls r1, 1
- add r1, r8
- ldrh r1, [r1]
- muls r1, r6
- adds r1, r5
- movs r2, 0
- bl sub_8045A5C
- ldrb r0, [r7]
- bl sub_804777C
- ldrb r0, [r7]
- adds r0, r4
- ldrb r0, [r0]
- bl sub_8043DFC
- ldrb r0, [r7]
- bl sub_8031F88
- ldr r1, _0811E1B4 @ =gUnknown_03004330
- ldrb r0, [r7]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0811E1B8 @ =sub_811E034
- str r1, [r0]
-_0811E186:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0811E190: .4byte gUnknown_02024A60
-_0811E194: .4byte 0x02017810
-_0811E198: .4byte 0x000027f9
-_0811E19C: .4byte c3_0802FDF4
-_0811E1A0: .4byte gUnknown_02024A6A
-_0811E1A4: .4byte gPlayerParty
-_0811E1A8: .4byte gUnknown_02024BE0
-_0811E1AC: .4byte gSprites
-_0811E1B0: .4byte gUnknown_03004340
-_0811E1B4: .4byte gUnknown_03004330
-_0811E1B8: .4byte sub_811E034
- thumb_func_end sub_811E0CC
-
- thumb_func_start sub_811E1BC
-sub_811E1BC: @ 811E1BC
- push {r4-r6,lr}
- ldr r4, _0811E234 @ =gUnknown_02024A60
- ldrb r2, [r4]
- lsls r3, r2, 1
- adds r0, r3, r2
- lsls r0, 2
- ldr r6, _0811E238 @ =0x02017810
- adds r0, r6
- ldrb r1, [r0]
- movs r0, 0x88
- ands r0, r1
- cmp r0, 0
- bne _0811E1EA
- ldr r0, _0811E23C @ =gUnknown_02024A6A
- adds r0, r3, r0
- ldrh r1, [r0]
- movs r0, 0x64
- muls r1, r0
- ldr r0, _0811E240 @ =gPlayerParty
- adds r1, r0
- adds r0, r2, 0
- bl sub_8141828
-_0811E1EA:
- ldr r5, _0811E244 @ =gSprites
- ldr r0, _0811E248 @ =gUnknown_0300434C
- ldrb r2, [r4]
- adds r0, r2, r0
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r3, r0, 2
- adds r0, r5, 0
- adds r0, 0x1C
- adds r0, r3, r0
- ldr r1, [r0]
- ldr r0, _0811E24C @ =SpriteCallbackDummy
- cmp r1, r0
- bne _0811E22C
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- adds r0, r6
- ldrb r1, [r0]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- bne _0811E22C
- adds r0, r3, r5
- bl DestroySprite
- ldr r1, _0811E250 @ =gUnknown_03004330
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0811E254 @ =sub_811E0CC
- str r1, [r0]
-_0811E22C:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0811E234: .4byte gUnknown_02024A60
-_0811E238: .4byte 0x02017810
-_0811E23C: .4byte gUnknown_02024A6A
-_0811E240: .4byte gPlayerParty
-_0811E244: .4byte gSprites
-_0811E248: .4byte gUnknown_0300434C
-_0811E24C: .4byte SpriteCallbackDummy
-_0811E250: .4byte gUnknown_03004330
-_0811E254: .4byte sub_811E0CC
- thumb_func_end sub_811E1BC
-
- thumb_func_start sub_811E258
-sub_811E258: @ 811E258
- push {lr}
- ldr r0, _0811E288 @ =gReceivedRemoteLinkPlayers
- ldrb r0, [r0]
- cmp r0, 0
- bne _0811E284
- movs r0, 0x5A
- bl m4aSongNumStop
- ldr r3, _0811E28C @ =gMain
- ldr r0, _0811E290 @ =0x0000043d
- adds r2, r3, r0
- ldrb r1, [r2]
- movs r0, 0x3
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- ldr r0, _0811E294 @ =gUnknown_030042D0
- ldr r0, [r0]
- str r0, [r3]
- ldr r0, _0811E298 @ =c2_8011A1C
- bl SetMainCallback2
-_0811E284:
- pop {r0}
- bx r0
- .align 2, 0
-_0811E288: .4byte gReceivedRemoteLinkPlayers
-_0811E28C: .4byte gMain
-_0811E290: .4byte 0x0000043d
-_0811E294: .4byte gUnknown_030042D0
-_0811E298: .4byte c2_8011A1C
- thumb_func_end sub_811E258
-
- thumb_func_start sub_811E29C
-sub_811E29C: @ 811E29C
- push {lr}
- ldr r0, _0811E2CC @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0811E302
- ldr r0, _0811E2D0 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0811E2E0
- bl sub_800832C
- ldr r1, _0811E2D4 @ =gUnknown_03004330
- ldr r0, _0811E2D8 @ =gUnknown_02024A60
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0811E2DC @ =sub_811E258
- str r1, [r0]
- b _0811E302
- .align 2, 0
-_0811E2CC: .4byte gPaletteFade
-_0811E2D0: .4byte gUnknown_020239F8
-_0811E2D4: .4byte gUnknown_03004330
-_0811E2D8: .4byte gUnknown_02024A60
-_0811E2DC: .4byte sub_811E258
-_0811E2E0:
- movs r0, 0x5A
- bl m4aSongNumStop
- ldr r2, _0811E308 @ =gMain
- ldr r0, _0811E30C @ =0x0000043d
- adds r3, r2, r0
- ldrb r1, [r3]
- movs r0, 0x3
- negs r0, r0
- ands r0, r1
- strb r0, [r3]
- ldr r0, _0811E310 @ =gUnknown_030042D0
- ldr r0, [r0]
- str r0, [r2]
- ldr r0, [r2, 0x8]
- bl SetMainCallback2
-_0811E302:
- pop {r0}
- bx r0
- .align 2, 0
-_0811E308: .4byte gMain
-_0811E30C: .4byte 0x0000043d
-_0811E310: .4byte gUnknown_030042D0
- thumb_func_end sub_811E29C
-
- thumb_func_start dp01_tbl3_exec_completed
-dp01_tbl3_exec_completed: @ 811E314
- push {r4,lr}
- sub sp, 0x4
- ldr r1, _0811E354 @ =gUnknown_03004330
- ldr r4, _0811E358 @ =gUnknown_02024A60
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0811E35C @ =sub_811DA94
- str r1, [r0]
- ldr r0, _0811E360 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0811E368
- bl GetMultiplayerId
- mov r1, sp
- strb r0, [r1]
- movs r0, 0x2
- movs r1, 0x4
- mov r2, sp
- bl dp01_prepare_buffer_wireless_probably
- ldr r1, _0811E364 @ =gUnknown_02023A60
- ldrb r0, [r4]
- lsls r0, 9
- adds r0, r1
- movs r1, 0x38
- strb r1, [r0]
- b _0811E37A
- .align 2, 0
-_0811E354: .4byte gUnknown_03004330
-_0811E358: .4byte gUnknown_02024A60
-_0811E35C: .4byte sub_811DA94
-_0811E360: .4byte gUnknown_020239F8
-_0811E364: .4byte gUnknown_02023A60
-_0811E368:
- ldr r2, _0811E384 @ =gUnknown_02024A64
- ldr r1, _0811E388 @ =gBitTable
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, [r0]
- ldr r0, [r2]
- bics r0, r1
- str r0, [r2]
-_0811E37A:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0811E384: .4byte gUnknown_02024A64
-_0811E388: .4byte gBitTable
- thumb_func_end dp01_tbl3_exec_completed
-
- thumb_func_start sub_811E38C
-sub_811E38C: @ 811E38C
- push {lr}
- ldr r0, _0811E3B0 @ =gUnknown_02024A60
- ldrb r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _0811E3B4 @ =0x02017810
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- bne _0811E3AA
- bl dp01_tbl3_exec_completed
-_0811E3AA:
- pop {r0}
- bx r0
- .align 2, 0
-_0811E3B0: .4byte gUnknown_02024A60
-_0811E3B4: .4byte 0x02017810
- thumb_func_end sub_811E38C
-
- thumb_func_start sub_811E3B8
-sub_811E3B8: @ 811E3B8
- push {lr}
- ldr r0, _0811E3DC @ =gUnknown_02024A60
- ldrb r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _0811E3E0 @ =0x02017810
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- bne _0811E3D6
- bl dp01_tbl3_exec_completed
-_0811E3D6:
- pop {r0}
- bx r0
- .align 2, 0
-_0811E3DC: .4byte gUnknown_02024A60
-_0811E3E0: .4byte 0x02017810
- thumb_func_end sub_811E3B8
-
- thumb_func_start dp01t_00_3_getattr
-dp01t_00_3_getattr: @ 811E3E4
- push {r4-r6,lr}
- sub sp, 0x100
- movs r6, 0
- ldr r1, _0811E410 @ =gUnknown_02023A60
- ldr r0, _0811E414 @ =gUnknown_02024A60
- ldrb r2, [r0]
- lsls r0, r2, 9
- adds r1, 0x2
- adds r1, r0, r1
- ldrb r0, [r1]
- cmp r0, 0
- bne _0811E41C
- ldr r0, _0811E418 @ =gUnknown_02024A6A
- lsls r1, r2, 1
- adds r1, r0
- ldrb r0, [r1]
- mov r1, sp
- bl dp01_getattr_by_ch1_for_player_pokemon
- adds r6, r0, 0
- b _0811E43E
- .align 2, 0
-_0811E410: .4byte gUnknown_02023A60
-_0811E414: .4byte gUnknown_02024A60
-_0811E418: .4byte gUnknown_02024A6A
-_0811E41C:
- ldrb r4, [r1]
- movs r5, 0
-_0811E420:
- movs r0, 0x1
- ands r0, r4
- cmp r0, 0
- beq _0811E436
- lsls r0, r5, 24
- lsrs r0, 24
- mov r2, sp
- adds r1, r2, r6
- bl dp01_getattr_by_ch1_for_player_pokemon
- adds r6, r0
-_0811E436:
- lsrs r4, 1
- adds r5, 0x1
- cmp r5, 0x5
- ble _0811E420
-_0811E43E:
- lsls r1, r6, 16
- lsrs r1, 16
- movs r0, 0x1
- mov r2, sp
- bl dp01_build_cmdbuf_x1D_1D_numargs_varargs
- bl dp01_tbl3_exec_completed
- add sp, 0x100
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end dp01t_00_3_getattr
-
- thumb_func_start dp01_getattr_by_ch1_for_player_pokemon
-dp01_getattr_by_ch1_for_player_pokemon: @ 811E458
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x90
- adds r7, r1, 0
- lsls r0, 24
- lsrs r5, r0, 24
- movs r6, 0
- ldr r2, _0811E48C @ =gUnknown_02023A60
- ldr r3, _0811E490 @ =gUnknown_02024A60
- ldrb r0, [r3]
- lsls r0, 9
- adds r1, r2, 0x1
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x3B
- bls _0811E482
- bl _0811EBEE
-_0811E482:
- lsls r0, 2
- ldr r1, _0811E494 @ =_0811E498
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0811E48C: .4byte gUnknown_02023A60
-_0811E490: .4byte gUnknown_02024A60
-_0811E494: .4byte _0811E498
- .align 2, 0
-_0811E498:
- .4byte _0811E588
- .4byte _0811E7AC
- .4byte _0811E7BC
- .4byte _0811E7CC
- .4byte _0811E834
- .4byte _0811E834
- .4byte _0811E834
- .4byte _0811E834
- .4byte _0811E850
- .4byte _0811E88C
- .4byte _0811E88C
- .4byte _0811E88C
- .4byte _0811E88C
- .4byte _0811EBEE
- .4byte _0811EBEE
- .4byte _0811EBEE
- .4byte _0811EBEE
- .4byte _0811E8A8
- .4byte _0811E8B8
- .4byte _0811E8E8
- .4byte _0811E8F8
- .4byte _0811E908
- .4byte _0811E918
- .4byte _0811E928
- .4byte _0811E938
- .4byte _0811E948
- .4byte _0811E958
- .4byte _0811E968
- .4byte _0811E978
- .4byte _0811E988
- .4byte _0811E998
- .4byte _0811E9A8
- .4byte _0811E9F8
- .4byte _0811EA08
- .4byte _0811EA18
- .4byte _0811EA28
- .4byte _0811EA38
- .4byte _0811EA48
- .4byte _0811EA58
- .4byte _0811EA68
- .4byte _0811EA78
- .4byte _0811EAAC
- .4byte _0811EABC
- .4byte _0811EACC
- .4byte _0811EADC
- .4byte _0811EAEC
- .4byte _0811EAFC
- .4byte _0811EB0C
- .4byte _0811EB1C
- .4byte _0811EB3C
- .4byte _0811EB4C
- .4byte _0811EB5C
- .4byte _0811EB6C
- .4byte _0811EB7C
- .4byte _0811EB8C
- .4byte _0811EB9C
- .4byte _0811EBAC
- .4byte _0811EBBC
- .4byte _0811EBCC
- .4byte _0811EBDC
-_0811E588:
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, _0811E79C @ =gPlayerParty
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- mov r1, sp
- strh r0, [r1]
- adds r0, r4, 0
- movs r1, 0xC
- bl GetMonData
- mov r1, sp
- strh r0, [r1, 0x2E]
- movs r6, 0
- add r0, sp, 0x24
- mov r9, r0
- movs r1, 0x3B
- add r1, sp
- mov r10, r1
- mov r2, sp
- adds r2, 0x2B
- str r2, [sp, 0x80]
- mov r0, sp
- adds r0, 0x2A
- str r0, [sp, 0x7C]
- mov r1, sp
- adds r1, 0x68
- str r1, [sp, 0x8C]
- adds r2, 0x5
- str r2, [sp, 0x84]
- adds r0, 0x12
- str r0, [sp, 0x88]
- mov r8, r4
- add r4, sp, 0xC
-_0811E5D4:
- adds r1, r6, 0
- adds r1, 0xD
- mov r0, r8
- bl GetMonData
- strh r0, [r4]
- adds r1, r6, 0
- adds r1, 0x11
- mov r0, r8
- bl GetMonData
- mov r2, r9
- adds r1, r2, r6
- strb r0, [r1]
- adds r4, 0x2
- adds r6, 0x1
- cmp r6, 0x3
- ble _0811E5D4
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, _0811E79C @ =gPlayerParty
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0x15
- bl GetMonData
- mov r1, r10
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0x20
- bl GetMonData
- ldr r2, [sp, 0x80]
- strb r0, [r2]
- adds r0, r4, 0
- movs r1, 0x19
- bl GetMonData
- str r0, [sp, 0x44]
- adds r0, r4, 0
- movs r1, 0x27
- bl GetMonData
- mov r3, sp
- movs r5, 0x1F
- ands r0, r5
- ldrb r2, [r3, 0x14]
- movs r1, 0x20
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r3, 0x14]
- adds r0, r4, 0
- movs r1, 0x28
- bl GetMonData
- mov r3, sp
- movs r6, 0x1F
- ands r0, r6
- lsls r0, 5
- ldrh r2, [r3, 0x14]
- ldr r1, _0811E7A0 @ =0xfffffc1f
- ands r1, r2
- orrs r1, r0
- strh r1, [r3, 0x14]
- adds r0, r4, 0
- movs r1, 0x29
- bl GetMonData
- mov r3, sp
- ands r0, r5
- lsls r0, 2
- ldrb r2, [r3, 0x15]
- movs r1, 0x7D
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r3, 0x15]
- adds r0, r4, 0
- movs r1, 0x2A
- bl GetMonData
- movs r1, 0x1F
- ands r1, r0
- lsls r1, 15
- ldr r0, [sp, 0x14]
- ldr r2, _0811E7A4 @ =0xfff07fff
- ands r0, r2
- orrs r0, r1
- str r0, [sp, 0x14]
- adds r0, r4, 0
- movs r1, 0x2B
- bl GetMonData
- mov r3, sp
- ands r0, r6
- lsls r0, 4
- ldrh r2, [r3, 0x16]
- ldr r1, _0811E7A8 @ =0xfffffe0f
- ands r1, r2
- orrs r1, r0
- strh r1, [r3, 0x16]
- adds r0, r4, 0
- movs r1, 0x2C
- bl GetMonData
- mov r3, sp
- ands r0, r5
- lsls r0, 1
- ldrb r2, [r3, 0x17]
- movs r1, 0x3F
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r3, 0x17]
- adds r0, r4, 0
- movs r1, 0
- bl GetMonData
- str r0, [sp, 0x48]
- adds r0, r4, 0
- movs r1, 0x37
- bl GetMonData
- str r0, [sp, 0x4C]
- adds r0, r4, 0
- movs r1, 0x38
- bl GetMonData
- ldr r1, [sp, 0x7C]
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- mov r1, sp
- strh r0, [r1, 0x28]
- adds r0, r4, 0
- movs r1, 0x3A
- bl GetMonData
- mov r1, sp
- strh r0, [r1, 0x2C]
- adds r0, r4, 0
- movs r1, 0x3B
- bl GetMonData
- mov r1, sp
- strh r0, [r1, 0x2]
- adds r0, r4, 0
- movs r1, 0x3C
- bl GetMonData
- mov r1, sp
- strh r0, [r1, 0x4]
- adds r0, r4, 0
- movs r1, 0x3D
- bl GetMonData
- mov r1, sp
- strh r0, [r1, 0x6]
- adds r0, r4, 0
- movs r1, 0x3E
- bl GetMonData
- mov r1, sp
- strh r0, [r1, 0x8]
- adds r0, r4, 0
- movs r1, 0x3F
- bl GetMonData
- mov r1, sp
- strh r0, [r1, 0xA]
- adds r0, r4, 0
- movs r1, 0x2D
- bl GetMonData
- mov r3, sp
- movs r1, 0x1
- ands r0, r1
- lsls r0, 6
- ldrb r2, [r3, 0x17]
- movs r1, 0x41
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r3, 0x17]
- adds r0, r4, 0
- movs r1, 0x2E
- bl GetMonData
- mov r3, sp
- lsls r0, 7
- ldrb r2, [r3, 0x17]
- movs r1, 0x7F
- ands r1, r2
- orrs r1, r0
- strb r1, [r3, 0x17]
- adds r0, r4, 0
- movs r1, 0x1
- bl GetMonData
- str r0, [sp, 0x54]
- adds r0, r4, 0
- movs r1, 0x2
- ldr r2, [sp, 0x8C]
- bl GetMonData
- ldr r0, [sp, 0x84]
- ldr r1, [sp, 0x8C]
- bl StringCopy10
- adds r0, r4, 0
- movs r1, 0x7
- ldr r2, [sp, 0x88]
- bl GetMonData
- mov r2, sp
- movs r6, 0
-_0811E78C:
- adds r0, r7, r6
- adds r1, r2, r6
- ldrb r1, [r1]
- strb r1, [r0]
- adds r6, 0x1
- cmp r6, 0x57
- bls _0811E78C
- b _0811EBEE
- .align 2, 0
-_0811E79C: .4byte gPlayerParty
-_0811E7A0: .4byte 0xfffffc1f
-_0811E7A4: .4byte 0xfff07fff
-_0811E7A8: .4byte 0xfffffe0f
-_0811E7AC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811E7B8 @ =gPlayerParty
- adds r0, r1
- movs r1, 0xB
- b _0811EB26
- .align 2, 0
-_0811E7B8: .4byte gPlayerParty
-_0811E7BC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811E7C8 @ =gPlayerParty
- adds r0, r1
- movs r1, 0xC
- b _0811EB26
- .align 2, 0
-_0811E7C8: .4byte gPlayerParty
-_0811E7CC:
- movs r6, 0
- add r2, sp, 0x58
- mov r9, r2
- add r0, sp, 0x60
- mov r10, r0
- movs r0, 0x64
- adds r1, r5, 0
- muls r1, r0
- ldr r0, _0811E830 @ =gPlayerParty
- adds r4, r1, r0
- mov r8, r9
-_0811E7E2:
- adds r1, r6, 0
- adds r1, 0xD
- adds r0, r4, 0
- bl GetMonData
- mov r1, r8
- strh r0, [r1]
- adds r1, r6, 0
- adds r1, 0x11
- adds r0, r4, 0
- bl GetMonData
- mov r2, r10
- adds r1, r2, r6
- strb r0, [r1]
- movs r0, 0x2
- add r8, r0
- adds r6, 0x1
- cmp r6, 0x3
- ble _0811E7E2
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811E830 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x15
- bl GetMonData
- mov r1, r9
- strb r0, [r1, 0xC]
- mov r2, r9
- movs r6, 0
-_0811E820:
- adds r0, r7, r6
- adds r1, r2, r6
- ldrb r1, [r1]
- strb r1, [r0]
- adds r6, 0x1
- cmp r6, 0xF
- bls _0811E820
- b _0811EBEE
- .align 2, 0
-_0811E830: .4byte gPlayerParty
-_0811E834:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811E84C @ =gPlayerParty
- adds r0, r1
- ldrb r1, [r3]
- lsls r1, 9
- adds r2, 0x1
- adds r1, r2
- ldrb r1, [r1]
- adds r1, 0x9
- b _0811EB26
- .align 2, 0
-_0811E84C: .4byte gPlayerParty
-_0811E850:
- movs r6, 0
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r2, _0811E888 @ =gPlayerParty
- mov r8, r2
-_0811E85C:
- adds r1, r6, 0
- adds r1, 0x11
- mov r2, r8
- adds r0, r4, r2
- bl GetMonData
- adds r1, r7, r6
- strb r0, [r1]
- adds r6, 0x1
- cmp r6, 0x3
- ble _0811E85C
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811E888 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x15
- bl GetMonData
- adds r1, r7, r6
- strb r0, [r1]
- adds r6, 0x1
- b _0811EBEE
- .align 2, 0
-_0811E888: .4byte gPlayerParty
-_0811E88C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811E8A4 @ =gPlayerParty
- adds r0, r1
- ldrb r1, [r3]
- lsls r1, 9
- adds r2, 0x1
- adds r1, r2
- ldrb r1, [r1]
- adds r1, 0x8
- b _0811EBE6
- .align 2, 0
-_0811E8A4: .4byte gPlayerParty
-_0811E8A8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811E8B4 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x1
- b _0811E8C2
- .align 2, 0
-_0811E8B4: .4byte gPlayerParty
-_0811E8B8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811E8E4 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x19
-_0811E8C2:
- bl GetMonData
- adds r1, r0, 0
- strb r1, [r7]
- movs r0, 0xFF
- lsls r0, 8
- ands r0, r1
- lsrs r0, 8
- strb r0, [r7, 0x1]
- movs r0, 0xFF
- lsls r0, 16
- ands r0, r1
- lsrs r0, 16
- strb r0, [r7, 0x2]
- movs r6, 0x3
- b _0811EBEE
- .align 2, 0
-_0811E8E4: .4byte gPlayerParty
-_0811E8E8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811E8F4 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x1A
- b _0811EBE6
- .align 2, 0
-_0811E8F4: .4byte gPlayerParty
-_0811E8F8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811E904 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x1B
- b _0811EBE6
- .align 2, 0
-_0811E904: .4byte gPlayerParty
-_0811E908:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811E914 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x1C
- b _0811EBE6
- .align 2, 0
-_0811E914: .4byte gPlayerParty
-_0811E918:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811E924 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x1D
- b _0811EBE6
- .align 2, 0
-_0811E924: .4byte gPlayerParty
-_0811E928:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811E934 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x1E
- b _0811EBE6
- .align 2, 0
-_0811E934: .4byte gPlayerParty
-_0811E938:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811E944 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x1F
- b _0811EBE6
- .align 2, 0
-_0811E944: .4byte gPlayerParty
-_0811E948:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811E954 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x20
- b _0811EBE6
- .align 2, 0
-_0811E954: .4byte gPlayerParty
-_0811E958:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811E964 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x22
- b _0811EBE6
- .align 2, 0
-_0811E964: .4byte gPlayerParty
-_0811E968:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811E974 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x23
- b _0811EBE6
- .align 2, 0
-_0811E974: .4byte gPlayerParty
-_0811E978:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811E984 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x24
- b _0811EBE6
- .align 2, 0
-_0811E984: .4byte gPlayerParty
-_0811E988:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811E994 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x25
- b _0811EBE6
- .align 2, 0
-_0811E994: .4byte gPlayerParty
-_0811E998:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811E9A4 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x26
- b _0811EBE6
- .align 2, 0
-_0811E9A4: .4byte gPlayerParty
-_0811E9A8:
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, _0811E9F4 @ =gPlayerParty
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0x27
- bl GetMonData
- strb r0, [r7]
- adds r0, r4, 0
- movs r1, 0x28
- bl GetMonData
- strb r0, [r7, 0x1]
- adds r0, r4, 0
- movs r1, 0x29
- bl GetMonData
- strb r0, [r7, 0x2]
- adds r0, r4, 0
- movs r1, 0x2A
- bl GetMonData
- strb r0, [r7, 0x3]
- adds r0, r4, 0
- movs r1, 0x2B
- bl GetMonData
- strb r0, [r7, 0x4]
- adds r0, r4, 0
- movs r1, 0x2C
- bl GetMonData
- strb r0, [r7, 0x5]
- movs r6, 0x6
- b _0811EBEE
- .align 2, 0
-_0811E9F4: .4byte gPlayerParty
-_0811E9F8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811EA04 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x27
- b _0811EBE6
- .align 2, 0
-_0811EA04: .4byte gPlayerParty
-_0811EA08:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811EA14 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x28
- b _0811EBE6
- .align 2, 0
-_0811EA14: .4byte gPlayerParty
-_0811EA18:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811EA24 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x29
- b _0811EBE6
- .align 2, 0
-_0811EA24: .4byte gPlayerParty
-_0811EA28:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811EA34 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x2A
- b _0811EBE6
- .align 2, 0
-_0811EA34: .4byte gPlayerParty
-_0811EA38:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811EA44 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x2B
- b _0811EBE6
- .align 2, 0
-_0811EA44: .4byte gPlayerParty
-_0811EA48:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811EA54 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x2C
- b _0811EBE6
- .align 2, 0
-_0811EA54: .4byte gPlayerParty
-_0811EA58:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811EA64 @ =gPlayerParty
- adds r0, r1
- movs r1, 0
- b _0811EA82
- .align 2, 0
-_0811EA64: .4byte gPlayerParty
-_0811EA68:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811EA74 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x9
- b _0811EB26
- .align 2, 0
-_0811EA74: .4byte gPlayerParty
-_0811EA78:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811EAA8 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x37
-_0811EA82:
- bl GetMonData
- adds r1, r0, 0
- strb r1, [r7]
- movs r0, 0xFF
- lsls r0, 8
- ands r0, r1
- lsrs r0, 8
- strb r0, [r7, 0x1]
- movs r0, 0xFF
- lsls r0, 16
- ands r0, r1
- lsrs r0, 16
- strb r0, [r7, 0x2]
- lsrs r0, r1, 24
- strb r0, [r7, 0x3]
- movs r6, 0x4
- b _0811EBEE
- .align 2, 0
-_0811EAA8: .4byte gPlayerParty
-_0811EAAC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811EAB8 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x38
- b _0811EBE6
- .align 2, 0
-_0811EAB8: .4byte gPlayerParty
-_0811EABC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811EAC8 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x39
- b _0811EB26
- .align 2, 0
-_0811EAC8: .4byte gPlayerParty
-_0811EACC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811EAD8 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x3A
- b _0811EB26
- .align 2, 0
-_0811EAD8: .4byte gPlayerParty
-_0811EADC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811EAE8 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x3B
- b _0811EB26
- .align 2, 0
-_0811EAE8: .4byte gPlayerParty
-_0811EAEC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811EAF8 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x3C
- b _0811EB26
- .align 2, 0
-_0811EAF8: .4byte gPlayerParty
-_0811EAFC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811EB08 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x3D
- b _0811EB26
- .align 2, 0
-_0811EB08: .4byte gPlayerParty
-_0811EB0C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811EB18 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x3E
- b _0811EB26
- .align 2, 0
-_0811EB18: .4byte gPlayerParty
-_0811EB1C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811EB38 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x3F
-_0811EB26:
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- strb r0, [r7]
- lsrs r0, 8
- strb r0, [r7, 0x1]
- movs r6, 0x2
- b _0811EBEE
- .align 2, 0
-_0811EB38: .4byte gPlayerParty
-_0811EB3C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811EB48 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x16
- b _0811EBE6
- .align 2, 0
-_0811EB48: .4byte gPlayerParty
-_0811EB4C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811EB58 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x17
- b _0811EBE6
- .align 2, 0
-_0811EB58: .4byte gPlayerParty
-_0811EB5C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811EB68 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x18
- b _0811EBE6
- .align 2, 0
-_0811EB68: .4byte gPlayerParty
-_0811EB6C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811EB78 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x21
- b _0811EBE6
- .align 2, 0
-_0811EB78: .4byte gPlayerParty
-_0811EB7C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811EB88 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x2F
- b _0811EBE6
- .align 2, 0
-_0811EB88: .4byte gPlayerParty
-_0811EB8C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811EB98 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x30
- b _0811EBE6
- .align 2, 0
-_0811EB98: .4byte gPlayerParty
-_0811EB9C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811EBA8 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x32
- b _0811EBE6
- .align 2, 0
-_0811EBA8: .4byte gPlayerParty
-_0811EBAC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811EBB8 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x33
- b _0811EBE6
- .align 2, 0
-_0811EBB8: .4byte gPlayerParty
-_0811EBBC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811EBC8 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x34
- b _0811EBE6
- .align 2, 0
-_0811EBC8: .4byte gPlayerParty
-_0811EBCC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811EBD8 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x35
- b _0811EBE6
- .align 2, 0
-_0811EBD8: .4byte gPlayerParty
-_0811EBDC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811EC00 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x36
-_0811EBE6:
- bl GetMonData
- strb r0, [r7]
- movs r6, 0x1
-_0811EBEE:
- adds r0, r6, 0
- add sp, 0x90
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0811EC00: .4byte gPlayerParty
- thumb_func_end dp01_getattr_by_ch1_for_player_pokemon
-
- thumb_func_start sub_811EC04
-sub_811EC04: @ 811EC04
- push {lr}
- bl dp01_tbl3_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_811EC04
-
- thumb_func_start sub_811EC10
-sub_811EC10: @ 811EC10
- push {r4,r5,lr}
- ldr r1, _0811EC34 @ =gUnknown_02023A60
- ldr r0, _0811EC38 @ =gUnknown_02024A60
- ldrb r2, [r0]
- lsls r0, r2, 9
- adds r1, 0x2
- adds r1, r0, r1
- ldrb r0, [r1]
- cmp r0, 0
- bne _0811EC40
- ldr r0, _0811EC3C @ =gUnknown_02024A6A
- lsls r1, r2, 1
- adds r1, r0
- ldrb r0, [r1]
- bl sub_811EC68
- b _0811EC5E
- .align 2, 0
-_0811EC34: .4byte gUnknown_02023A60
-_0811EC38: .4byte gUnknown_02024A60
-_0811EC3C: .4byte gUnknown_02024A6A
-_0811EC40:
- ldrb r4, [r1]
- movs r5, 0
-_0811EC44:
- movs r0, 0x1
- ands r0, r4
- cmp r0, 0
- beq _0811EC52
- adds r0, r5, 0
- bl sub_811EC68
-_0811EC52:
- lsrs r4, 1
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x5
- bls _0811EC44
-_0811EC5E:
- bl dp01_tbl3_exec_completed
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_811EC10
-
- thumb_func_start sub_811EC68
-sub_811EC68: @ 811EC68
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x34
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _0811ECA0 @ =gUnknown_02024A60
- ldrb r0, [r0]
- lsls r0, 9
- ldr r2, _0811ECA4 @ =gUnknown_02023A63
- adds r3, r0, r2
- adds r6, r3, 0
- subs r1, r2, 0x2
- adds r0, r1
- ldrb r0, [r0]
- adds r7, r2, 0
- cmp r0, 0x3B
- bls _0811EC94
- bl _0811F62E
-_0811EC94:
- lsls r0, 2
- ldr r1, _0811ECA8 @ =_0811ECAC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0811ECA0: .4byte gUnknown_02024A60
-_0811ECA4: .4byte gUnknown_02023A63
-_0811ECA8: .4byte _0811ECAC
- .align 2, 0
-_0811ECAC:
- .4byte _0811ED9C
- .4byte _0811EF34
- .4byte _0811EF54
- .4byte _0811EF74
- .4byte _0811EFCC
- .4byte _0811EFCC
- .4byte _0811EFCC
- .4byte _0811EFCC
- .4byte _0811EFF4
- .4byte _0811F058
- .4byte _0811F058
- .4byte _0811F058
- .4byte _0811F058
- .4byte _0811F62E
- .4byte _0811F62E
- .4byte _0811F62E
- .4byte _0811F62E
- .4byte _0811F088
- .4byte _0811F0A8
- .4byte _0811F0C8
- .4byte _0811F0E8
- .4byte _0811F108
- .4byte _0811F128
- .4byte _0811F148
- .4byte _0811F168
- .4byte _0811F188
- .4byte _0811F1A8
- .4byte _0811F1C8
- .4byte _0811F1E8
- .4byte _0811F208
- .4byte _0811F228
- .4byte _0811F248
- .4byte _0811F2B8
- .4byte _0811F2D8
- .4byte _0811F2F8
- .4byte _0811F318
- .4byte _0811F338
- .4byte _0811F358
- .4byte _0811F378
- .4byte _0811F398
- .4byte _0811F3B8
- .4byte _0811F3D8
- .4byte _0811F3F8
- .4byte _0811F418
- .4byte _0811F438
- .4byte _0811F458
- .4byte _0811F478
- .4byte _0811F498
- .4byte _0811F4B8
- .4byte _0811F4D8
- .4byte _0811F4F8
- .4byte _0811F518
- .4byte _0811F538
- .4byte _0811F558
- .4byte _0811F578
- .4byte _0811F598
- .4byte _0811F5B8
- .4byte _0811F5D8
- .4byte _0811F5F8
- .4byte _0811F618
-_0811ED9C:
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, _0811EF30 @ =gPlayerParty
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0xB
- adds r2, r6, 0
- bl SetMonData
- adds r2, r6, 0
- adds r2, 0x2E
- adds r0, r4, 0
- movs r1, 0xC
- bl SetMonData
- movs r0, 0
- mov r8, r0
- movs r0, 0x3B
- adds r0, r6
- mov r10, r0
- adds r0, r6, 0
- adds r0, 0x2B
- str r0, [sp, 0x20]
- adds r0, 0x19
- str r0, [sp, 0x28]
- adds r0, 0x4
- str r0, [sp, 0x2C]
- adds r0, 0x4
- str r0, [sp, 0x30]
- subs r0, 0x22
- str r0, [sp, 0x1C]
- subs r0, 0x2
- str r0, [sp, 0x18]
- adds r0, 0x4
- str r0, [sp, 0x24]
- adds r0, r6, 0x2
- str r0, [sp, 0x4]
- adds r0, r6, 0x4
- str r0, [sp, 0x8]
- adds r0, r6, 0x6
- str r0, [sp, 0xC]
- adds r0, 0x2
- str r0, [sp, 0x10]
- adds r0, 0x2
- str r0, [sp, 0x14]
- mov r9, r4
- adds r7, r6, 0
- adds r7, 0x24
- adds r4, r6, 0
- adds r4, 0xC
-_0811EE02:
- mov r1, r8
- adds r1, 0xD
- mov r0, r9
- adds r2, r4, 0
- bl SetMonData
- mov r1, r8
- adds r1, 0x11
- mov r0, r9
- adds r2, r7, 0
- bl SetMonData
- adds r7, 0x1
- adds r4, 0x2
- movs r0, 0x1
- add r8, r0
- mov r0, r8
- cmp r0, 0x3
- ble _0811EE02
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, _0811EF30 @ =gPlayerParty
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0x15
- mov r2, r10
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x20
- ldr r2, [sp, 0x20]
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x19
- ldr r2, [sp, 0x28]
- bl SetMonData
- ldrb r0, [r6, 0x14]
- lsls r0, 27
- lsrs r0, 27
- mov r1, sp
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0x27
- mov r2, sp
- bl SetMonData
- mov r1, sp
- ldrh r0, [r6, 0x14]
- lsls r0, 22
- lsrs r0, 27
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0x28
- mov r2, sp
- bl SetMonData
- mov r1, sp
- ldrb r0, [r6, 0x15]
- lsls r0, 25
- lsrs r0, 27
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0x29
- mov r2, sp
- bl SetMonData
- mov r1, sp
- ldr r0, [r6, 0x14]
- lsls r0, 12
- lsrs r0, 27
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0x2A
- mov r2, sp
- bl SetMonData
- mov r1, sp
- ldrh r0, [r6, 0x16]
- lsls r0, 23
- lsrs r0, 27
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0x2B
- mov r2, sp
- bl SetMonData
- mov r1, sp
- ldrb r0, [r6, 0x17]
- lsls r0, 26
- lsrs r0, 27
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0x2C
- mov r2, sp
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0
- ldr r2, [sp, 0x2C]
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x37
- ldr r2, [sp, 0x30]
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x38
- ldr r2, [sp, 0x1C]
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x39
- ldr r2, [sp, 0x18]
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x3A
- ldr r2, [sp, 0x24]
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x3B
- ldr r2, [sp, 0x4]
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x3C
- ldr r2, [sp, 0x8]
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x3D
- ldr r2, [sp, 0xC]
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x3E
- ldr r2, [sp, 0x10]
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x3F
- ldr r2, [sp, 0x14]
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811EF30: .4byte gPlayerParty
-_0811EF34:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811EF4C @ =gPlayerParty
- adds r0, r1
- ldr r1, _0811EF50 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0xB
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811EF4C: .4byte gPlayerParty
-_0811EF50: .4byte gUnknown_02024A60
-_0811EF54:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811EF6C @ =gPlayerParty
- adds r0, r1
- ldr r1, _0811EF70 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0xC
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811EF6C: .4byte gPlayerParty
-_0811EF70: .4byte gUnknown_02024A60
-_0811EF74:
- movs r0, 0
- mov r8, r0
- movs r0, 0xC
- adds r0, r3
- mov r9, r0
- movs r0, 0x64
- adds r1, r5, 0
- muls r1, r0
- ldr r0, _0811EFC8 @ =gPlayerParty
- adds r7, r1, r0
- adds r6, r3, 0
- adds r6, 0x8
- adds r4, r3, 0
-_0811EF8E:
- mov r1, r8
- adds r1, 0xD
- adds r0, r7, 0
- adds r2, r4, 0
- bl SetMonData
- mov r1, r8
- adds r1, 0x11
- adds r0, r7, 0
- adds r2, r6, 0
- bl SetMonData
- adds r6, 0x1
- adds r4, 0x2
- movs r0, 0x1
- add r8, r0
- mov r0, r8
- cmp r0, 0x3
- ble _0811EF8E
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811EFC8 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x15
- mov r2, r9
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811EFC8: .4byte gPlayerParty
-_0811EFCC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811EFE8 @ =gPlayerParty
- adds r0, r1
- ldr r3, _0811EFEC @ =gUnknown_02023A60
- ldr r1, _0811EFF0 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r1, r3, 0x1
- adds r1, r2, r1
- ldrb r1, [r1]
- adds r1, 0x9
- b _0811F070
- .align 2, 0
-_0811EFE8: .4byte gPlayerParty
-_0811EFEC: .4byte gUnknown_02023A60
-_0811EFF0: .4byte gUnknown_02024A60
-_0811EFF4:
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, _0811F050 @ =gPlayerParty
- adds r4, r0
- ldr r5, _0811F054 @ =gUnknown_02024A60
- ldrb r2, [r5]
- lsls r2, 9
- adds r2, r7
- adds r0, r4, 0
- movs r1, 0x11
- bl SetMonData
- ldrb r2, [r5]
- lsls r2, 9
- adds r0, r7, 0x1
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0x12
- bl SetMonData
- ldrb r2, [r5]
- lsls r2, 9
- adds r0, r7, 0x2
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0x13
- bl SetMonData
- ldrb r2, [r5]
- lsls r2, 9
- adds r0, r7, 0x3
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0x14
- bl SetMonData
- ldrb r2, [r5]
- lsls r2, 9
- adds r0, r7, 0x4
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0x15
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811F050: .4byte gPlayerParty
-_0811F054: .4byte gUnknown_02024A60
-_0811F058:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811F07C @ =gPlayerParty
- adds r0, r1
- ldr r3, _0811F080 @ =gUnknown_02023A60
- ldr r1, _0811F084 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r1, r3, 0x1
- adds r1, r2, r1
- ldrb r1, [r1]
- adds r1, 0x8
-_0811F070:
- adds r3, 0x3
- adds r2, r3
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811F07C: .4byte gPlayerParty
-_0811F080: .4byte gUnknown_02023A60
-_0811F084: .4byte gUnknown_02024A60
-_0811F088:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811F0A0 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0811F0A4 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x1
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811F0A0: .4byte gPlayerParty
-_0811F0A4: .4byte gUnknown_02024A60
-_0811F0A8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811F0C0 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0811F0C4 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x19
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811F0C0: .4byte gPlayerParty
-_0811F0C4: .4byte gUnknown_02024A60
-_0811F0C8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811F0E0 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0811F0E4 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x1A
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811F0E0: .4byte gPlayerParty
-_0811F0E4: .4byte gUnknown_02024A60
-_0811F0E8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811F100 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0811F104 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x1B
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811F100: .4byte gPlayerParty
-_0811F104: .4byte gUnknown_02024A60
-_0811F108:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811F120 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0811F124 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x1C
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811F120: .4byte gPlayerParty
-_0811F124: .4byte gUnknown_02024A60
-_0811F128:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811F140 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0811F144 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x1D
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811F140: .4byte gPlayerParty
-_0811F144: .4byte gUnknown_02024A60
-_0811F148:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811F160 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0811F164 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x1E
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811F160: .4byte gPlayerParty
-_0811F164: .4byte gUnknown_02024A60
-_0811F168:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811F180 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0811F184 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x1F
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811F180: .4byte gPlayerParty
-_0811F184: .4byte gUnknown_02024A60
-_0811F188:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811F1A0 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0811F1A4 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x20
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811F1A0: .4byte gPlayerParty
-_0811F1A4: .4byte gUnknown_02024A60
-_0811F1A8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811F1C0 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0811F1C4 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x22
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811F1C0: .4byte gPlayerParty
-_0811F1C4: .4byte gUnknown_02024A60
-_0811F1C8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811F1E0 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0811F1E4 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x23
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811F1E0: .4byte gPlayerParty
-_0811F1E4: .4byte gUnknown_02024A60
-_0811F1E8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811F200 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0811F204 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x24
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811F200: .4byte gPlayerParty
-_0811F204: .4byte gUnknown_02024A60
-_0811F208:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811F220 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0811F224 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x25
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811F220: .4byte gPlayerParty
-_0811F224: .4byte gUnknown_02024A60
-_0811F228:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811F240 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0811F244 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x26
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811F240: .4byte gPlayerParty
-_0811F244: .4byte gUnknown_02024A60
-_0811F248:
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, _0811F2B0 @ =gPlayerParty
- adds r4, r0
- ldr r5, _0811F2B4 @ =gUnknown_02024A60
- ldrb r2, [r5]
- lsls r2, 9
- adds r2, r7
- adds r0, r4, 0
- movs r1, 0x27
- bl SetMonData
- ldrb r2, [r5]
- lsls r2, 9
- adds r0, r7, 0x1
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0x28
- bl SetMonData
- ldrb r2, [r5]
- lsls r2, 9
- adds r0, r7, 0x2
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0x29
- bl SetMonData
- ldrb r2, [r5]
- lsls r2, 9
- adds r0, r7, 0x3
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0x2A
- bl SetMonData
- ldrb r2, [r5]
- lsls r2, 9
- adds r0, r7, 0x4
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0x2B
- bl SetMonData
- ldrb r2, [r5]
- lsls r2, 9
- adds r0, r7, 0x5
- adds r2, r0
- adds r0, r4, 0
- b _0811F368
- .align 2, 0
-_0811F2B0: .4byte gPlayerParty
-_0811F2B4: .4byte gUnknown_02024A60
-_0811F2B8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811F2D0 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0811F2D4 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x27
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811F2D0: .4byte gPlayerParty
-_0811F2D4: .4byte gUnknown_02024A60
-_0811F2D8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811F2F0 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0811F2F4 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x28
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811F2F0: .4byte gPlayerParty
-_0811F2F4: .4byte gUnknown_02024A60
-_0811F2F8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811F310 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0811F314 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x29
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811F310: .4byte gPlayerParty
-_0811F314: .4byte gUnknown_02024A60
-_0811F318:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811F330 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0811F334 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x2A
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811F330: .4byte gPlayerParty
-_0811F334: .4byte gUnknown_02024A60
-_0811F338:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811F350 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0811F354 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x2B
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811F350: .4byte gPlayerParty
-_0811F354: .4byte gUnknown_02024A60
-_0811F358:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811F370 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0811F374 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
-_0811F368:
- movs r1, 0x2C
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811F370: .4byte gPlayerParty
-_0811F374: .4byte gUnknown_02024A60
-_0811F378:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811F390 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0811F394 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811F390: .4byte gPlayerParty
-_0811F394: .4byte gUnknown_02024A60
-_0811F398:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811F3B0 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0811F3B4 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x9
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811F3B0: .4byte gPlayerParty
-_0811F3B4: .4byte gUnknown_02024A60
-_0811F3B8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811F3D0 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0811F3D4 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x37
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811F3D0: .4byte gPlayerParty
-_0811F3D4: .4byte gUnknown_02024A60
-_0811F3D8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811F3F0 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0811F3F4 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x38
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811F3F0: .4byte gPlayerParty
-_0811F3F4: .4byte gUnknown_02024A60
-_0811F3F8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811F410 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0811F414 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x39
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811F410: .4byte gPlayerParty
-_0811F414: .4byte gUnknown_02024A60
-_0811F418:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811F430 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0811F434 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x3A
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811F430: .4byte gPlayerParty
-_0811F434: .4byte gUnknown_02024A60
-_0811F438:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811F450 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0811F454 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x3B
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811F450: .4byte gPlayerParty
-_0811F454: .4byte gUnknown_02024A60
-_0811F458:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811F470 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0811F474 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x3C
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811F470: .4byte gPlayerParty
-_0811F474: .4byte gUnknown_02024A60
-_0811F478:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811F490 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0811F494 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x3D
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811F490: .4byte gPlayerParty
-_0811F494: .4byte gUnknown_02024A60
-_0811F498:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811F4B0 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0811F4B4 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x3E
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811F4B0: .4byte gPlayerParty
-_0811F4B4: .4byte gUnknown_02024A60
-_0811F4B8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811F4D0 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0811F4D4 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x3F
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811F4D0: .4byte gPlayerParty
-_0811F4D4: .4byte gUnknown_02024A60
-_0811F4D8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811F4F0 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0811F4F4 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x16
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811F4F0: .4byte gPlayerParty
-_0811F4F4: .4byte gUnknown_02024A60
-_0811F4F8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811F510 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0811F514 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x17
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811F510: .4byte gPlayerParty
-_0811F514: .4byte gUnknown_02024A60
-_0811F518:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811F530 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0811F534 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x18
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811F530: .4byte gPlayerParty
-_0811F534: .4byte gUnknown_02024A60
-_0811F538:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811F550 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0811F554 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x21
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811F550: .4byte gPlayerParty
-_0811F554: .4byte gUnknown_02024A60
-_0811F558:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811F570 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0811F574 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x2F
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811F570: .4byte gPlayerParty
-_0811F574: .4byte gUnknown_02024A60
-_0811F578:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811F590 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0811F594 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x30
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811F590: .4byte gPlayerParty
-_0811F594: .4byte gUnknown_02024A60
-_0811F598:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811F5B0 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0811F5B4 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x32
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811F5B0: .4byte gPlayerParty
-_0811F5B4: .4byte gUnknown_02024A60
-_0811F5B8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811F5D0 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0811F5D4 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x33
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811F5D0: .4byte gPlayerParty
-_0811F5D4: .4byte gUnknown_02024A60
-_0811F5D8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811F5F0 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0811F5F4 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x34
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811F5F0: .4byte gPlayerParty
-_0811F5F4: .4byte gUnknown_02024A60
-_0811F5F8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811F610 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0811F614 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x35
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811F610: .4byte gPlayerParty
-_0811F614: .4byte gUnknown_02024A60
-_0811F618:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811F658 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0811F65C @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x36
- bl SetMonData
-_0811F62E:
- ldr r2, _0811F660 @ =gUnknown_02024A6A
- ldr r0, _0811F65C @ =gUnknown_02024A60
- ldrb r1, [r0]
- lsls r0, r1, 1
- adds r0, r2
- ldrh r2, [r0]
- movs r0, 0x64
- muls r0, r2
- ldr r2, _0811F658 @ =gPlayerParty
- adds r0, r2
- bl sub_80324F8
- add sp, 0x34
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0811F658: .4byte gPlayerParty
-_0811F65C: .4byte gUnknown_02024A60
-_0811F660: .4byte gUnknown_02024A6A
- thumb_func_end sub_811EC68
-
- thumb_func_start sub_811F664
-sub_811F664: @ 811F664
- push {r4-r7,lr}
- ldr r1, _0811F6C8 @ =gUnknown_02024A6A
- ldr r7, _0811F6CC @ =gUnknown_02024A60
- ldrb r2, [r7]
- lsls r0, r2, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- adds r3, r1, 0
- muls r3, r0
- ldr r4, _0811F6D0 @ =gUnknown_02023A60
- lsls r2, 9
- adds r0, r4, 0x1
- adds r0, r2, r0
- ldrb r0, [r0]
- ldr r1, _0811F6D4 @ =gPlayerParty
- adds r0, r1
- adds r5, r3, r0
- movs r3, 0
- adds r0, r4, 0x2
- adds r2, r0
- ldrb r2, [r2]
- cmp r3, r2
- bcs _0811F6BC
- adds r6, r4, 0
- adds r2, r7, 0
- adds r4, r0, 0
-_0811F69A:
- adds r1, r5, r3
- ldrb r0, [r2]
- lsls r0, 9
- adds r0, 0x3
- adds r0, r3, r0
- adds r0, r6
- ldrb r0, [r0]
- strb r0, [r1]
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- ldrb r0, [r2]
- lsls r0, 9
- adds r0, r4
- ldrb r0, [r0]
- cmp r3, r0
- bcc _0811F69A
-_0811F6BC:
- bl dp01_tbl3_exec_completed
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0811F6C8: .4byte gUnknown_02024A6A
-_0811F6CC: .4byte gUnknown_02024A60
-_0811F6D0: .4byte gUnknown_02023A60
-_0811F6D4: .4byte gPlayerParty
- thumb_func_end sub_811F664
-
- thumb_func_start sub_811F6D8
-sub_811F6D8: @ 811F6D8
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- ldr r0, _0811F7CC @ =gUnknown_02024A6A
- mov r8, r0
- ldr r6, _0811F7D0 @ =gUnknown_02024A60
- ldrb r1, [r6]
- lsls r0, r1, 1
- add r0, r8
- ldrh r0, [r0]
- movs r5, 0x64
- muls r0, r5
- ldr r4, _0811F7D4 @ =gPlayerParty
- adds r0, r4
- bl sub_80318FC
- ldrb r0, [r6]
- lsls r0, 1
- add r0, r8
- ldrh r0, [r0]
- muls r0, r5
- adds r0, r4
- movs r1, 0xB
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- ldrb r0, [r6]
- bl battle_get_per_side_status
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl GetMonSpriteTemplate_803C56C
- ldr r0, _0811F7D8 @ =gUnknown_02024E8C
- mov r8, r0
- ldrb r0, [r6]
- movs r1, 0x2
- bl sub_8077ABC
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldrb r0, [r6]
- bl sub_8077F68
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldrb r0, [r6]
- bl sub_8079E90
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- mov r0, r8
- adds r1, r5, 0
- adds r2, r4, 0
- bl CreateSprite
- ldr r4, _0811F7DC @ =gUnknown_02024BE0
- ldrb r1, [r6]
- adds r1, r4
- strb r0, [r1]
- ldr r5, _0811F7E0 @ =gSprites
- ldrb r0, [r6]
- adds r0, r4
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldr r1, _0811F7E4 @ =0x0000ff10
- strh r1, [r0, 0x24]
- ldrb r2, [r6]
- adds r0, r2, r4
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- strh r2, [r0, 0x2E]
- ldrb r3, [r6]
- adds r0, r3, r4
- ldrb r0, [r0]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- lsls r3, 4
- ldrb r2, [r1, 0x5]
- movs r0, 0xF
- ands r0, r2
- orrs r0, r3
- strb r0, [r1, 0x5]
- ldrb r2, [r6]
- adds r4, r2, r4
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldr r1, _0811F7E8 @ =gUnknown_02024E84
- adds r2, r1
- ldrb r1, [r2]
- bl StartSpriteAnim
- ldr r1, _0811F7EC @ =gUnknown_03004330
- ldrb r0, [r6]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0811F7F0 @ =sub_811DDE8
- str r1, [r0]
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0811F7CC: .4byte gUnknown_02024A6A
-_0811F7D0: .4byte gUnknown_02024A60
-_0811F7D4: .4byte gPlayerParty
-_0811F7D8: .4byte gUnknown_02024E8C
-_0811F7DC: .4byte gUnknown_02024BE0
-_0811F7E0: .4byte gSprites
-_0811F7E4: .4byte 0x0000ff10
-_0811F7E8: .4byte gUnknown_02024E84
-_0811F7EC: .4byte gUnknown_03004330
-_0811F7F0: .4byte sub_811DDE8
- thumb_func_end sub_811F6D8
-
- thumb_func_start sub_811F7F4
-sub_811F7F4: @ 811F7F4
- push {r4-r6,lr}
- ldr r5, _0811F84C @ =gUnknown_02024A60
- ldrb r0, [r5]
- ldr r4, _0811F850 @ =gUnknown_02023A60
- lsls r1, r0, 9
- adds r6, r4, 0x2
- adds r1, r6
- ldrb r1, [r1]
- bl sub_8032AA8
- ldr r2, _0811F854 @ =gUnknown_02024A6A
- ldrb r0, [r5]
- lsls r1, r0, 1
- adds r1, r2
- lsls r0, 9
- adds r4, 0x1
- adds r0, r4
- ldrb r0, [r0]
- strh r0, [r1]
- ldrb r1, [r5]
- lsls r0, r1, 1
- adds r0, r2
- ldrh r2, [r0]
- movs r0, 0x64
- muls r0, r2
- ldr r2, _0811F858 @ =gPlayerParty
- adds r0, r2
- bl sub_80318FC
- ldrb r0, [r5]
- lsls r1, r0, 9
- adds r1, r6
- ldrb r1, [r1]
- bl sub_811F864
- ldr r1, _0811F85C @ =gUnknown_03004330
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0811F860 @ =sub_811E1BC
- str r1, [r0]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0811F84C: .4byte gUnknown_02024A60
-_0811F850: .4byte gUnknown_02023A60
-_0811F854: .4byte gUnknown_02024A6A
-_0811F858: .4byte gPlayerParty
-_0811F85C: .4byte gUnknown_03004330
-_0811F860: .4byte sub_811E1BC
- thumb_func_end sub_811F7F4
-
- thumb_func_start sub_811F864
-sub_811F864: @ 811F864
- push {r4-r6,lr}
- mov r6, r10
- mov r5, r9
- mov r4, r8
- push {r4-r6}
- adds r6, r0, 0
- lsls r6, 24
- lsrs r6, 24
- lsls r1, 24
- lsrs r1, 24
- adds r0, r6, 0
- bl sub_8032AA8
- ldr r0, _0811F9A8 @ =gUnknown_02024A6A
- lsls r2, r6, 1
- adds r2, r0
- ldr r0, _0811F9AC @ =gUnknown_02023A60
- lsls r1, r6, 9
- adds r0, 0x1
- adds r1, r0
- ldrb r0, [r1]
- strh r0, [r2]
- ldrh r1, [r2]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0811F9B0 @ =gPlayerParty
- adds r0, r1
- movs r1, 0xB
- bl GetMonData
- mov r8, r0
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- ldr r0, _0811F9B4 @ =sub_80312F0
- bl object_new_hidden_with_callback
- ldr r1, _0811F9B8 @ =gUnknown_0300434C
- mov r9, r1
- add r9, r6
- mov r1, r9
- strb r0, [r1]
- adds r0, r6, 0
- bl battle_get_per_side_status
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- mov r0, r8
- bl GetMonSpriteTemplate_803C56C
- ldr r0, _0811F9BC @ =gUnknown_02024E8C
- mov r10, r0
- adds r0, r6, 0
- movs r1, 0x2
- bl sub_8077ABC
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- adds r0, r6, 0
- bl sub_8077F68
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r6, 0
- bl sub_8079E90
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- mov r0, r10
- adds r1, r5, 0
- adds r2, r4, 0
- bl CreateSprite
- ldr r4, _0811F9C0 @ =gUnknown_02024BE0
- adds r4, r6, r4
- strb r0, [r4]
- ldr r5, _0811F9C4 @ =gSprites
- mov r0, r9
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldrb r1, [r4]
- strh r1, [r0, 0x30]
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- strh r6, [r0, 0x2E]
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- mov r1, r8
- strh r1, [r0, 0x32]
- ldrb r0, [r4]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- lsls r3, r6, 4
- ldrb r2, [r1, 0x5]
- movs r0, 0xF
- ands r0, r2
- orrs r0, r3
- strb r0, [r1, 0x5]
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldr r1, _0811F9C8 @ =gUnknown_02024E84
- adds r6, r1
- ldrb r1, [r6]
- bl StartSpriteAnim
- ldrb r1, [r4]
- 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]
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r5, 0
- adds r1, 0x1C
- adds r0, r1
- ldr r1, _0811F9CC @ =SpriteCallbackDummy
- str r1, [r0]
- movs r0, 0
- movs r1, 0xFF
- bl sub_8046400
- mov r1, r9
- ldrb r2, [r1]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r5
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r1, 0x2E]
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0811F9A8: .4byte gUnknown_02024A6A
-_0811F9AC: .4byte gUnknown_02023A60
-_0811F9B0: .4byte gPlayerParty
-_0811F9B4: .4byte sub_80312F0
-_0811F9B8: .4byte gUnknown_0300434C
-_0811F9BC: .4byte gUnknown_02024E8C
-_0811F9C0: .4byte gUnknown_02024BE0
-_0811F9C4: .4byte gSprites
-_0811F9C8: .4byte gUnknown_02024E84
-_0811F9CC: .4byte SpriteCallbackDummy
- thumb_func_end sub_811F864
-
- thumb_func_start sub_811F9D0
-sub_811F9D0: @ 811F9D0
- push {r4-r6,lr}
- ldr r1, _0811FA00 @ =gUnknown_02023A60
- ldr r6, _0811FA04 @ =gUnknown_02024A60
- ldrb r2, [r6]
- lsls r0, r2, 9
- adds r1, 0x1
- adds r0, r1
- ldrb r3, [r0]
- cmp r3, 0
- bne _0811FA14
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- ldr r1, _0811FA08 @ =0x02017810
- adds r0, r1
- strb r3, [r0, 0x4]
- ldr r1, _0811FA0C @ =gUnknown_03004330
- ldrb r0, [r6]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0811FA10 @ =sub_811FA5C
- str r1, [r0]
- b _0811FA4A
- .align 2, 0
-_0811FA00: .4byte gUnknown_02023A60
-_0811FA04: .4byte gUnknown_02024A60
-_0811FA08: .4byte 0x02017810
-_0811FA0C: .4byte gUnknown_03004330
-_0811FA10: .4byte sub_811FA5C
-_0811FA14:
- ldr r5, _0811FA50 @ =gUnknown_02024BE0
- adds r0, r2, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r4, _0811FA54 @ =gSprites
- adds r0, r4
- bl FreeSpriteOamMatrix
- ldrb r0, [r6]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- bl DestroySprite
- ldr r1, _0811FA58 @ =gUnknown_03004340
- ldrb r0, [r6]
- adds r0, r1
- ldrb r0, [r0]
- bl sub_8043DB0
- bl dp01_tbl3_exec_completed
-_0811FA4A:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0811FA50: .4byte gUnknown_02024BE0
-_0811FA54: .4byte gSprites
-_0811FA58: .4byte gUnknown_03004340
- thumb_func_end sub_811F9D0
-
- thumb_func_start sub_811FA5C
-sub_811FA5C: @ 811FA5C
- push {r4,r5,lr}
- ldr r5, _0811FA78 @ =gUnknown_02024A60
- ldrb r2, [r5]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- ldr r4, _0811FA7C @ =0x02017810
- adds r3, r0, r4
- ldrb r0, [r3, 0x4]
- cmp r0, 0
- beq _0811FA80
- cmp r0, 0x1
- beq _0811FAAC
- b _0811FAD4
- .align 2, 0
-_0811FA78: .4byte gUnknown_02024A60
-_0811FA7C: .4byte 0x02017810
-_0811FA80:
- lsls r0, r2, 2
- adds r1, r4, 0
- subs r1, 0x10
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _0811FA9C
- adds r0, r2, 0
- adds r1, r2, 0
- movs r3, 0x5
- bl move_anim_start_t4
-_0811FA9C:
- ldrb r0, [r5]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- movs r0, 0x1
- strb r0, [r1, 0x4]
- b _0811FAD4
-_0811FAAC:
- ldrb r1, [r3]
- movs r0, 0x40
- ands r0, r1
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _0811FAD4
- strb r0, [r3, 0x4]
- ldrb r2, [r5]
- adds r0, r2, 0
- adds r1, r2, 0
- movs r3, 0x1
- bl move_anim_start_t4
- ldr r1, _0811FADC @ =gUnknown_03004330
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0811FAE0 @ =sub_811DF34
- str r1, [r0]
-_0811FAD4:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0811FADC: .4byte gUnknown_03004330
-_0811FAE0: .4byte sub_811DF34
- thumb_func_end sub_811FA5C
-
- thumb_func_start sub_811FAE4
-sub_811FAE4: @ 811FAE4
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- ldr r0, _0811FB14 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0811FB24
- ldr r6, _0811FB18 @ =gUnknown_02024A60
- ldrb r0, [r6]
- bl battle_get_per_side_status
- movs r1, 0x2
- ands r1, r0
- ldr r5, _0811FB1C @ =0x0000fff0
- cmp r1, 0
- beq _0811FB0A
- movs r5, 0x10
-_0811FB0A:
- ldr r4, _0811FB20 @ =gLinkPlayers
- ldrb r0, [r6]
- bl sub_803FC34
- b _0811FB34
- .align 2, 0
-_0811FB14: .4byte gUnknown_020239F8
-_0811FB18: .4byte gUnknown_02024A60
-_0811FB1C: .4byte 0x0000fff0
-_0811FB20: .4byte gLinkPlayers
-_0811FB24:
- movs r5, 0
- ldr r4, _0811FC08 @ =gLinkPlayers
- bl GetMultiplayerId
- movs r1, 0x1
- eors r0, r1
- lsls r0, 24
- lsrs r0, 24
-_0811FB34:
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r1, r4
- ldrb r4, [r1, 0x13]
- ldr r6, _0811FC0C @ =gUnknown_02024A60
- ldrb r1, [r6]
- adds r0, r4, 0
- bl sub_8031AF4
- ldrb r0, [r6]
- bl battle_get_per_side_status
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl GetMonSpriteTemplate_803C5A0
- ldr r0, _0811FC10 @ =gUnknown_02024E8C
- mov r8, r0
- lsls r5, 16
- movs r0, 0xA0
- lsls r0, 15
- adds r5, r0
- asrs r5, 16
- ldr r0, _0811FC14 @ =gTrainerBackPicCoords
- lsls r4, 2
- adds r4, r0
- ldrb r0, [r4]
- movs r4, 0x8
- subs r4, r0
- lsls r4, 18
- movs r0, 0xA0
- lsls r0, 15
- adds r4, r0
- asrs r4, 16
- ldrb r0, [r6]
- bl sub_8079E90
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- mov r0, r8
- adds r1, r5, 0
- adds r2, r4, 0
- bl CreateSprite
- ldr r5, _0811FC18 @ =gUnknown_02024BE0
- ldrb r1, [r6]
- adds r1, r5
- strb r0, [r1]
- ldr r4, _0811FC1C @ =gSprites
- ldrb r3, [r6]
- adds r0, r3, r5
- ldrb r0, [r0]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- lsls r3, 4
- ldrb r2, [r1, 0x5]
- movs r0, 0xF
- ands r0, r2
- orrs r0, r3
- strb r0, [r1, 0x5]
- ldrb r0, [r6]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0xF0
- strh r1, [r0, 0x24]
- ldrb r0, [r6]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldr r1, _0811FC20 @ =0x0000fffe
- strh r1, [r0, 0x2E]
- ldrb r0, [r6]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r4, 0x1C
- adds r0, r4
- ldr r1, _0811FC24 @ =sub_80313A0
- str r1, [r0]
- ldr r1, _0811FC28 @ =gUnknown_03004330
- ldrb r0, [r6]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0811FC2C @ =sub_811DAE4
- str r1, [r0]
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0811FC08: .4byte gLinkPlayers
-_0811FC0C: .4byte gUnknown_02024A60
-_0811FC10: .4byte gUnknown_02024E8C
-_0811FC14: .4byte gTrainerBackPicCoords
-_0811FC18: .4byte gUnknown_02024BE0
-_0811FC1C: .4byte gSprites
-_0811FC20: .4byte 0x0000fffe
-_0811FC24: .4byte sub_80313A0
-_0811FC28: .4byte gUnknown_03004330
-_0811FC2C: .4byte sub_811DAE4
- thumb_func_end sub_811FAE4
-
- thumb_func_start sub_811FC30
-sub_811FC30: @ 811FC30
- push {lr}
- bl dp01_tbl3_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_811FC30
-
- thumb_func_start sub_811FC3C
-sub_811FC3C: @ 811FC3C
- push {r4-r6,lr}
- ldr r6, _0811FCC8 @ =gUnknown_02024BE0
- ldr r4, _0811FCCC @ =gUnknown_02024A60
- ldrb r0, [r4]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r5, _0811FCD0 @ =gSprites
- adds r0, r5
- bl oamt_add_pos2_onto_pos1
- ldrb r0, [r4]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r1, 0x23
- strh r1, [r0, 0x2E]
- ldrb r0, [r4]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldr r1, _0811FCD4 @ =0x0000ffd8
- strh r1, [r0, 0x32]
- ldrb r0, [r4]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldrh r1, [r0, 0x22]
- strh r1, [r0, 0x36]
- ldrb r0, [r4]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r5, 0
- adds r1, 0x1C
- adds r0, r1
- ldr r1, _0811FCD8 @ =sub_8078B34
- str r1, [r0]
- ldrb r0, [r4]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldr r1, _0811FCDC @ =SpriteCallbackDummy
- bl oamt_set_x3A_32
- ldr r1, _0811FCE0 @ =gUnknown_03004330
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0811FCE4 @ =sub_811DB1C
- str r1, [r0]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0811FCC8: .4byte gUnknown_02024BE0
-_0811FCCC: .4byte gUnknown_02024A60
-_0811FCD0: .4byte gSprites
-_0811FCD4: .4byte 0x0000ffd8
-_0811FCD8: .4byte sub_8078B34
-_0811FCDC: .4byte SpriteCallbackDummy
-_0811FCE0: .4byte gUnknown_03004330
-_0811FCE4: .4byte sub_811DB1C
- thumb_func_end sub_811FC3C
-
- thumb_func_start sub_811FCE8
-sub_811FCE8: @ 811FCE8
- push {r4,r5,lr}
- ldr r5, _0811FD2C @ =gUnknown_02024A60
- ldrb r2, [r5]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- ldr r4, _0811FD30 @ =0x02017810
- adds r3, r0, r4
- ldrb r0, [r3, 0x4]
- cmp r0, 0
- bne _0811FD34
- lsls r0, r2, 2
- adds r1, r4, 0
- subs r1, 0x10
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _0811FD1A
- adds r0, r2, 0
- adds r1, r2, 0
- movs r3, 0x5
- bl move_anim_start_t4
-_0811FD1A:
- ldrb r0, [r5]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- ldrb r0, [r1, 0x4]
- adds r0, 0x1
- strb r0, [r1, 0x4]
- b _0811FDAA
- .align 2, 0
-_0811FD2C: .4byte gUnknown_02024A60
-_0811FD30: .4byte 0x02017810
-_0811FD34:
- ldrb r1, [r3]
- movs r0, 0x40
- ands r0, r1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _0811FDAA
- strb r4, [r3, 0x4]
- ldr r2, _0811FDB0 @ =gUnknown_02024A6A
- ldrb r1, [r5]
- lsls r0, r1, 1
- adds r0, r2
- ldrh r2, [r0]
- movs r0, 0x64
- muls r0, r2
- ldr r2, _0811FDB4 @ =gPlayerParty
- adds r0, r2
- bl sub_80324F8
- movs r1, 0x40
- negs r1, r1
- movs r0, 0x10
- bl PlaySE12WithPanning
- ldr r2, _0811FDB8 @ =gSprites
- ldr r3, _0811FDBC @ =gUnknown_02024BE0
- ldrb r0, [r5]
- adds r0, r3
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- strh r4, [r0, 0x30]
- ldrb r0, [r5]
- adds r0, r3
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0x5
- strh r1, [r0, 0x32]
- ldrb r0, [r5]
- adds r0, r3
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r1, _0811FDC0 @ =sub_80105EC
- str r1, [r0]
- ldr r1, _0811FDC4 @ =gUnknown_03004330
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0811FDC8 @ =sub_811DE98
- str r1, [r0]
-_0811FDAA:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0811FDB0: .4byte gUnknown_02024A6A
-_0811FDB4: .4byte gPlayerParty
-_0811FDB8: .4byte gSprites
-_0811FDBC: .4byte gUnknown_02024BE0
-_0811FDC0: .4byte sub_80105EC
-_0811FDC4: .4byte gUnknown_03004330
-_0811FDC8: .4byte sub_811DE98
- thumb_func_end sub_811FCE8
-
- thumb_func_start sub_811FDCC
-sub_811FDCC: @ 811FDCC
- push {lr}
- bl dp01_tbl3_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_811FDCC
-
- thumb_func_start sub_811FDD8
-sub_811FDD8: @ 811FDD8
- push {lr}
- bl dp01_tbl3_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_811FDD8
-
- thumb_func_start sub_811FDE4
-sub_811FDE4: @ 811FDE4
- push {lr}
- bl dp01_tbl3_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_811FDE4
-
- thumb_func_start sub_811FDF0
-sub_811FDF0: @ 811FDF0
- push {lr}
- bl dp01_tbl3_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_811FDF0
-
- thumb_func_start sub_811FDFC
-sub_811FDFC: @ 811FDFC
- push {r4-r6,lr}
- ldr r6, _0811FEE0 @ =gUnknown_02024A60
- ldrb r0, [r6]
- bl mplay_80342A4
- lsls r0, 24
- cmp r0, 0
- beq _0811FE0E
- b _0811FF1E
-_0811FE0E:
- ldr r0, _0811FEE4 @ =gUnknown_02023A60
- mov r12, r0
- ldrb r2, [r6]
- lsls r2, 9
- adds r0, 0x1
- adds r0, r2, r0
- ldrb r0, [r0]
- mov r1, r12
- adds r1, 0x2
- adds r1, r2, r1
- ldrb r1, [r1]
- lsls r1, 8
- orrs r0, r1
- ldr r5, _0811FEE8 @ =gUnknown_0202F7C4
- mov r1, r12
- adds r1, 0x3
- adds r2, r1
- ldrb r1, [r2]
- strb r1, [r5]
- ldr r4, _0811FEEC @ =gUnknown_0202F7BC
- ldrb r2, [r6]
- lsls r2, 9
- mov r1, r12
- adds r1, 0x4
- adds r1, r2, r1
- ldrb r3, [r1]
- mov r1, r12
- adds r1, 0x5
- adds r2, r1
- ldrb r1, [r2]
- lsls r1, 8
- orrs r3, r1
- strh r3, [r4]
- ldr r4, _0811FEF0 @ =gUnknown_0202F7B8
- ldrb r2, [r6]
- lsls r2, 9
- mov r1, r12
- adds r1, 0x6
- adds r1, r2, r1
- ldrb r3, [r1]
- mov r1, r12
- adds r1, 0x7
- adds r1, r2, r1
- ldrb r1, [r1]
- lsls r1, 8
- orrs r3, r1
- mov r1, r12
- adds r1, 0x8
- adds r1, r2, r1
- ldrb r1, [r1]
- lsls r1, 16
- orrs r3, r1
- mov r1, r12
- adds r1, 0x9
- adds r2, r1
- ldrb r1, [r2]
- lsls r1, 24
- orrs r3, r1
- str r3, [r4]
- ldr r3, _0811FEF4 @ =gUnknown_0202F7BE
- ldrb r1, [r6]
- lsls r1, 9
- mov r2, r12
- adds r2, 0xA
- adds r1, r2
- ldrb r1, [r1]
- strb r1, [r3]
- ldr r4, _0811FEF8 @ =gUnknown_0202F7C0
- ldrb r2, [r6]
- lsls r2, 9
- mov r1, r12
- adds r1, 0xC
- adds r1, r2, r1
- ldrb r3, [r1]
- mov r1, r12
- adds r1, 0xD
- adds r2, r1
- ldrb r1, [r2]
- lsls r1, 8
- orrs r3, r1
- strh r3, [r4]
- ldr r3, _0811FEFC @ =gUnknown_0202F7B4
- ldrb r2, [r6]
- lsls r2, 9
- mov r1, r12
- adds r1, 0x10
- adds r2, r1
- str r2, [r3]
- ldr r3, _0811FF00 @ =gUnknown_02024E70
- ldrb r1, [r6]
- lsls r1, 2
- adds r1, r3
- ldr r2, [r2]
- str r2, [r1]
- ldrb r1, [r5]
- bl sub_8031720
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0
- beq _0811FF04
- bl dp01_tbl3_exec_completed
- b _0811FF1E
- .align 2, 0
-_0811FEE0: .4byte gUnknown_02024A60
-_0811FEE4: .4byte gUnknown_02023A60
-_0811FEE8: .4byte gUnknown_0202F7C4
-_0811FEEC: .4byte gUnknown_0202F7BC
-_0811FEF0: .4byte gUnknown_0202F7B8
-_0811FEF4: .4byte gUnknown_0202F7BE
-_0811FEF8: .4byte gUnknown_0202F7C0
-_0811FEFC: .4byte gUnknown_0202F7B4
-_0811FF00: .4byte gUnknown_02024E70
-_0811FF04:
- ldrb r1, [r6]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _0811FF24 @ =0x02017810
- adds r0, r1
- strb r2, [r0, 0x4]
- ldr r1, _0811FF28 @ =gUnknown_03004330
- ldrb r0, [r6]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0811FF2C @ =sub_811FF30
- str r1, [r0]
-_0811FF1E:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0811FF24: .4byte 0x02017810
-_0811FF28: .4byte gUnknown_03004330
-_0811FF2C: .4byte sub_811FF30
- thumb_func_end sub_811FDFC
-
- thumb_func_start sub_811FF30
-sub_811FF30: @ 811FF30
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- ldr r2, _0811FF74 @ =gUnknown_02023A60
- ldr r5, _0811FF78 @ =gUnknown_02024A60
- ldrb r3, [r5]
- lsls r1, r3, 9
- adds r0, r2, 0x1
- mov r9, r0
- adds r0, r1, r0
- ldrb r4, [r0]
- adds r6, r2, 0x2
- mov r8, r6
- adds r0, r1, r6
- ldrb r0, [r0]
- lsls r0, 8
- orrs r4, r0
- adds r2, 0xB
- adds r1, r2
- ldrb r7, [r1]
- lsls r0, r3, 1
- adds r0, r3
- lsls r0, 2
- ldr r6, _0811FF7C @ =0x02017810
- adds r0, r6
- ldrb r2, [r0, 0x4]
- cmp r2, 0x1
- beq _0811FFBE
- cmp r2, 0x1
- bgt _0811FF80
- cmp r2, 0
- beq _0811FF8A
- b _08120088
- .align 2, 0
-_0811FF74: .4byte gUnknown_02023A60
-_0811FF78: .4byte gUnknown_02024A60
-_0811FF7C: .4byte 0x02017810
-_0811FF80:
- cmp r2, 0x2
- beq _0811FFE4
- cmp r2, 0x3
- beq _08120050
- b _08120088
-_0811FF8A:
- lsls r1, r3, 2
- adds r0, r6, 0
- subs r0, 0x10
- adds r1, r0
- ldrb r2, [r1]
- movs r0, 0xC
- ands r0, r2
- cmp r0, 0x4
- bne _0811FFAE
- movs r0, 0x8
- orrs r0, r2
- strb r0, [r1]
- ldrb r2, [r5]
- adds r0, r2, 0
- adds r1, r2, 0
- movs r3, 0x5
- bl move_anim_start_t4
-_0811FFAE:
- ldrb r0, [r5]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r6
- movs r0, 0x1
- strb r0, [r1, 0x4]
- b _08120088
-_0811FFBE:
- ldrb r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- bne _08120088
- movs r0, 0
- bl sub_80326EC
- adds r0, r4, 0
- bl move_anim_start_t1
- ldrb r0, [r5]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r6
- movs r0, 0x2
- strb r0, [r1, 0x4]
- b _08120088
-_0811FFE4:
- ldr r0, _08120040 @ =gUnknown_0202F7AC
- ldr r0, [r0]
- bl _call_via_r0
- ldr r0, _08120044 @ =gUnknown_0202F7B1
- ldrb r0, [r0]
- cmp r0, 0
- bne _08120088
- movs r0, 0x1
- bl sub_80326EC
- ldrb r2, [r5]
- lsls r0, r2, 2
- adds r4, r6, 0
- subs r4, 0x10
- adds r0, r4
- ldrb r1, [r0]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _0812002C
- cmp r7, 0x1
- bhi _0812002C
- adds r0, r2, 0
- adds r1, r2, 0
- movs r3, 0x6
- bl move_anim_start_t4
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r4
- ldrb r2, [r0]
- movs r1, 0x9
- negs r1, r1
- ands r1, r2
- strb r1, [r0]
-_0812002C:
- ldr r0, _08120048 @ =gUnknown_02024A60
- ldrb r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _0812004C @ =0x02017810
- adds r0, r1
- movs r1, 0x3
- strb r1, [r0, 0x4]
- b _08120088
- .align 2, 0
-_08120040: .4byte gUnknown_0202F7AC
-_08120044: .4byte gUnknown_0202F7B1
-_08120048: .4byte gUnknown_02024A60
-_0812004C: .4byte 0x02017810
-_08120050:
- ldrb r1, [r0]
- movs r0, 0x40
- ands r0, r1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _08120088
- bl sub_8031F24
- ldrb r0, [r5]
- lsls r2, r0, 9
- mov r3, r9
- adds r1, r2, r3
- ldrb r1, [r1]
- add r2, r8
- ldrb r2, [r2]
- lsls r2, 8
- orrs r1, r2
- bl sub_80324BC
- ldrb r1, [r5]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- strb r4, [r0, 0x4]
- bl dp01_tbl3_exec_completed
-_08120088:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_811FF30
-
- thumb_func_start sub_8120094
-sub_8120094: @ 8120094
- push {r4,lr}
- sub sp, 0x4
- ldr r0, _081200D8 @ =gUnknown_030042A4
- movs r1, 0
- strh r1, [r0]
- ldr r0, _081200DC @ =gUnknown_030042A0
- strh r1, [r0]
- ldr r4, _081200E0 @ =gUnknown_02024A60
- ldrb r0, [r4]
- lsls r0, 9
- ldr r1, _081200E4 @ =gUnknown_02023A62
- adds r0, r1
- ldrh r0, [r0]
- bl sub_8120AA8
- ldr r0, _081200E8 @ =gUnknown_03004210
- ldr r1, _081200EC @ =gUnknown_020238CC
- movs r2, 0xF
- str r2, [sp]
- movs r2, 0x90
- movs r3, 0x2
- bl sub_8002EB0
- ldr r1, _081200F0 @ =gUnknown_03004330
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, _081200F4 @ =sub_811DFA0
- str r1, [r0]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081200D8: .4byte gUnknown_030042A4
-_081200DC: .4byte gUnknown_030042A0
-_081200E0: .4byte gUnknown_02024A60
-_081200E4: .4byte gUnknown_02023A62
-_081200E8: .4byte gUnknown_03004210
-_081200EC: .4byte gUnknown_020238CC
-_081200F0: .4byte gUnknown_03004330
-_081200F4: .4byte sub_811DFA0
- thumb_func_end sub_8120094
-
- thumb_func_start sub_81200F8
-sub_81200F8: @ 81200F8
- push {lr}
- bl dp01_tbl3_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_81200F8
-
- thumb_func_start sub_8120104
-sub_8120104: @ 8120104
- push {lr}
- bl dp01_tbl3_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8120104
-
- thumb_func_start sub_8120110
-sub_8120110: @ 8120110
- push {lr}
- bl dp01_tbl3_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8120110
-
- thumb_func_start sub_812011C
-sub_812011C: @ 812011C
- push {lr}
- bl dp01_tbl3_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_812011C
-
- thumb_func_start sub_8120128
-sub_8120128: @ 8120128
- push {lr}
- bl dp01_tbl3_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8120128
-
- thumb_func_start sub_8120134
-sub_8120134: @ 8120134
- push {lr}
- bl dp01_tbl3_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8120134
-
- thumb_func_start sub_8120140
-sub_8120140: @ 8120140
- push {lr}
- bl dp01_tbl3_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8120140
-
- thumb_func_start sub_812014C
-sub_812014C: @ 812014C
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x4
- movs r0, 0
- bl load_gfxc_health_bar
- ldr r3, _081201C4 @ =gUnknown_02023A60
- ldr r0, _081201C8 @ =gUnknown_02024A60
- mov r9, r0
- ldrb r4, [r0]
- lsls r2, r4, 9
- adds r0, r3, 0x2
- adds r0, r2, r0
- ldrb r1, [r0]
- adds r3, 0x3
- adds r2, r3
- ldrb r0, [r2]
- lsls r0, 8
- orrs r1, r0
- lsls r1, 16
- asrs r7, r1, 16
- ldr r0, _081201CC @ =0x00007fff
- cmp r7, r0
- beq _081201DC
- ldr r6, _081201D0 @ =gUnknown_02024A6A
- lsls r0, r4, 1
- adds r0, r6
- ldrh r0, [r0]
- movs r5, 0x64
- muls r0, r5
- ldr r4, _081201D4 @ =gPlayerParty
- adds r0, r4
- movs r1, 0x3A
- bl GetMonData
- mov r8, r0
- mov r1, r9
- ldrb r0, [r1]
- lsls r0, 1
- adds r0, r6
- ldrh r0, [r0]
- muls r0, r5
- adds r0, r4
- movs r1, 0x39
- bl GetMonData
- adds r3, r0, 0
- mov r1, r9
- ldrb r0, [r1]
- ldr r1, _081201D8 @ =gUnknown_03004340
- adds r1, r0, r1
- ldrb r1, [r1]
- str r7, [sp]
- mov r2, r8
- bl sub_8043D84
- b _08120206
- .align 2, 0
-_081201C4: .4byte gUnknown_02023A60
-_081201C8: .4byte gUnknown_02024A60
-_081201CC: .4byte 0x00007fff
-_081201D0: .4byte gUnknown_02024A6A
-_081201D4: .4byte gPlayerParty
-_081201D8: .4byte gUnknown_03004340
-_081201DC:
- ldr r1, _08120224 @ =gUnknown_02024A6A
- lsls r0, r4, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08120228 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x3A
- bl GetMonData
- adds r2, r0, 0
- mov r1, r9
- ldrb r0, [r1]
- ldr r1, _0812022C @ =gUnknown_03004340
- adds r1, r0, r1
- ldrb r1, [r1]
- str r7, [sp]
- movs r3, 0
- bl sub_8043D84
-_08120206:
- ldr r1, _08120230 @ =gUnknown_03004330
- ldr r0, _08120234 @ =gUnknown_02024A60
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08120238 @ =bx_t3_healthbar_update
- str r1, [r0]
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08120224: .4byte gUnknown_02024A6A
-_08120228: .4byte gPlayerParty
-_0812022C: .4byte gUnknown_03004340
-_08120230: .4byte gUnknown_03004330
-_08120234: .4byte gUnknown_02024A60
-_08120238: .4byte bx_t3_healthbar_update
- thumb_func_end sub_812014C
-
- thumb_func_start sub_812023C
-sub_812023C: @ 812023C
- push {lr}
- bl dp01_tbl3_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_812023C
-
- thumb_func_start sub_8120248
-sub_8120248: @ 8120248
- push {r4,lr}
- ldr r4, _081202A0 @ =gUnknown_02024A60
- ldrb r0, [r4]
- bl mplay_80342A4
- lsls r0, 24
- cmp r0, 0
- bne _08120298
- ldr r0, _081202A4 @ =gUnknown_03004340
- ldrb r1, [r4]
- adds r0, r1, r0
- ldrb r0, [r0]
- ldr r2, _081202A8 @ =gUnknown_02024A6A
- lsls r1, 1
- adds r1, r2
- ldrh r2, [r1]
- movs r1, 0x64
- muls r1, r2
- ldr r2, _081202AC @ =gPlayerParty
- adds r1, r2
- movs r2, 0x9
- bl sub_8045A5C
- ldrb r0, [r4]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- ldr r0, _081202B0 @ =0x02017810
- adds r1, r0
- ldrb r2, [r1]
- movs r0, 0x11
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- ldr r1, _081202B4 @ =gUnknown_03004330
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, _081202B8 @ =sub_811E38C
- str r1, [r0]
-_08120298:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081202A0: .4byte gUnknown_02024A60
-_081202A4: .4byte gUnknown_03004340
-_081202A8: .4byte gUnknown_02024A6A
-_081202AC: .4byte gPlayerParty
-_081202B0: .4byte 0x02017810
-_081202B4: .4byte gUnknown_03004330
-_081202B8: .4byte sub_811E38C
- thumb_func_end sub_8120248
-
- thumb_func_start sub_81202BC
-sub_81202BC: @ 81202BC
- push {r4,r5,lr}
- ldr r5, _08120314 @ =gUnknown_02024A60
- ldrb r0, [r5]
- bl mplay_80342A4
- lsls r0, 24
- cmp r0, 0
- bne _0812030C
- ldr r4, _08120318 @ =gUnknown_02023A60
- ldrb r3, [r5]
- lsls r3, 9
- adds r0, r4, 0x1
- adds r0, r3, r0
- ldrb r0, [r0]
- adds r1, r4, 0x2
- adds r1, r3, r1
- ldrb r1, [r1]
- adds r2, r4, 0x3
- adds r2, r3, r2
- ldrb r2, [r2]
- lsls r2, 8
- orrs r1, r2
- adds r2, r4, 0x4
- adds r2, r3, r2
- ldrb r2, [r2]
- lsls r2, 16
- orrs r1, r2
- adds r4, 0x5
- adds r3, r4
- ldrb r2, [r3]
- lsls r2, 24
- orrs r1, r2
- bl move_anim_start_t2_for_situation
- ldr r1, _0812031C @ =gUnknown_03004330
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08120320 @ =sub_811E38C
- str r1, [r0]
-_0812030C:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08120314: .4byte gUnknown_02024A60
-_08120318: .4byte gUnknown_02023A60
-_0812031C: .4byte gUnknown_03004330
-_08120320: .4byte sub_811E38C
- thumb_func_end sub_81202BC
-
- thumb_func_start sub_8120324
-sub_8120324: @ 8120324
- push {lr}
- bl dp01_tbl3_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8120324
-
- thumb_func_start sub_8120330
-sub_8120330: @ 8120330
- push {lr}
- bl dp01_tbl3_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8120330
-
- thumb_func_start sub_812033C
-sub_812033C: @ 812033C
- push {lr}
- bl dp01_tbl3_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_812033C
-
- thumb_func_start sub_8120348
-sub_8120348: @ 8120348
- push {lr}
- bl dp01_tbl3_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8120348
-
- thumb_func_start sub_8120354
-sub_8120354: @ 8120354
- push {lr}
- bl dp01_tbl3_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8120354
-
- thumb_func_start sub_8120360
-sub_8120360: @ 8120360
- push {lr}
- bl dp01_tbl3_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8120360
-
- thumb_func_start sub_812036C
-sub_812036C: @ 812036C
- push {lr}
- bl dp01_tbl3_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_812036C
-
- thumb_func_start sub_8120378
-sub_8120378: @ 8120378
- push {lr}
- bl dp01_tbl3_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8120378
-
- thumb_func_start sub_8120384
-sub_8120384: @ 8120384
- push {lr}
- bl dp01_tbl3_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8120384
-
- thumb_func_start sub_8120390
-sub_8120390: @ 8120390
- push {lr}
- ldr r2, _081203A8 @ =gUnknown_020238C8
- ldrb r1, [r2]
- movs r0, 0x80
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- bl dp01_tbl3_exec_completed
- pop {r0}
- bx r0
- .align 2, 0
-_081203A8: .4byte gUnknown_020238C8
- thumb_func_end sub_8120390
-
- thumb_func_start sub_81203AC
-sub_81203AC: @ 81203AC
- push {lr}
- ldr r3, _081203D8 @ =gUnknown_020238C8
- ldr r1, _081203DC @ =gUnknown_02023A60
- ldr r0, _081203E0 @ =gUnknown_02024A60
- ldrb r0, [r0]
- lsls r0, 9
- adds r1, 0x1
- adds r0, r1
- ldrb r0, [r0]
- movs r1, 0x7F
- ands r1, r0
- ldrb r2, [r3]
- movs r0, 0x80
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
- bl dp01_tbl3_exec_completed
- pop {r0}
- bx r0
- .align 2, 0
-_081203D8: .4byte gUnknown_020238C8
-_081203DC: .4byte gUnknown_02023A60
-_081203E0: .4byte gUnknown_02024A60
- thumb_func_end sub_81203AC
-
- thumb_func_start sub_81203E4
-sub_81203E4: @ 81203E4
- push {lr}
- ldr r2, _081203F8 @ =gUnknown_020238C8
- ldrb r1, [r2]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r2]
- bl dp01_tbl3_exec_completed
- pop {r0}
- bx r0
- .align 2, 0
-_081203F8: .4byte gUnknown_020238C8
- thumb_func_end sub_81203E4
-
- thumb_func_start sub_81203FC
-sub_81203FC: @ 81203FC
- push {lr}
- ldr r3, _08120420 @ =gUnknown_020238C8
- ldr r1, [r3]
- lsls r1, 24
- lsrs r1, 31
- movs r0, 0x1
- eors r1, r0
- lsls r1, 7
- ldrb r2, [r3]
- movs r0, 0x7F
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
- bl dp01_tbl3_exec_completed
- pop {r0}
- bx r0
- .align 2, 0
-_08120420: .4byte gUnknown_020238C8
- thumb_func_end sub_81203FC
-
- thumb_func_start dp01t_29_3_blink
-dp01t_29_3_blink: @ 8120424
- push {r4,lr}
- ldr r3, _0812044C @ =gSprites
- ldr r2, _08120450 @ =gUnknown_02024BE0
- ldr r4, _08120454 @ =gUnknown_02024A60
- ldrb r0, [r4]
- adds r0, r2
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- adds r0, 0x3E
- ldrb r0, [r0]
- lsls r0, 29
- cmp r0, 0
- bge _08120458
- bl dp01_tbl3_exec_completed
- b _08120482
- .align 2, 0
-_0812044C: .4byte gSprites
-_08120450: .4byte gUnknown_02024BE0
-_08120454: .4byte gUnknown_02024A60
-_08120458:
- ldr r1, _08120488 @ =gUnknown_02024E6D
- movs r0, 0x1
- strb r0, [r1]
- ldrb r0, [r4]
- adds r0, r2
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- movs r1, 0
- strh r1, [r0, 0x30]
- ldrb r0, [r4]
- bl sub_8047858
- ldr r1, _0812048C @ =gUnknown_03004330
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08120490 @ =bx_blink_t3
- str r1, [r0]
-_08120482:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08120488: .4byte gUnknown_02024E6D
-_0812048C: .4byte gUnknown_03004330
-_08120490: .4byte bx_blink_t3
- thumb_func_end dp01t_29_3_blink
-
- thumb_func_start sub_8120494
-sub_8120494: @ 8120494
- push {lr}
- bl dp01_tbl3_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8120494
-
- thumb_func_start sub_81204A0
-sub_81204A0: @ 81204A0
- push {r4,lr}
- ldr r4, _081204DC @ =gUnknown_02024A60
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- movs r3, 0x3F
- cmp r0, 0
- bne _081204B4
- movs r3, 0xC0
-_081204B4:
- ldr r2, _081204E0 @ =gUnknown_02023A60
- ldrb r1, [r4]
- lsls r1, 9
- adds r0, r2, 0x1
- adds r0, r1, r0
- ldrb r0, [r0]
- adds r2, 0x2
- adds r1, r2
- ldrb r1, [r1]
- lsls r1, 8
- orrs r0, r1
- lsls r1, r3, 24
- asrs r1, 24
- bl PlaySE12WithPanning
- bl dp01_tbl3_exec_completed
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081204DC: .4byte gUnknown_02024A60
-_081204E0: .4byte gUnknown_02023A60
- thumb_func_end sub_81204A0
-
- thumb_func_start sub_81204E4
-sub_81204E4: @ 81204E4
- push {lr}
- ldr r2, _0812050C @ =gUnknown_02023A60
- ldr r0, _08120510 @ =gUnknown_02024A60
- ldrb r1, [r0]
- lsls r1, 9
- adds r0, r2, 0x1
- adds r0, r1, r0
- ldrb r0, [r0]
- adds r2, 0x2
- adds r1, r2
- ldrb r1, [r1]
- lsls r1, 8
- orrs r0, r1
- bl PlayFanfare
- bl dp01_tbl3_exec_completed
- pop {r0}
- bx r0
- .align 2, 0
-_0812050C: .4byte gUnknown_02023A60
-_08120510: .4byte gUnknown_02024A60
- thumb_func_end sub_81204E4
-
- thumb_func_start sub_8120514
-sub_8120514: @ 8120514
- push {lr}
- ldr r1, _08120548 @ =gUnknown_02024A6A
- ldr r0, _0812054C @ =gUnknown_02024A60
- ldrb r0, [r0]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08120550 @ =gPlayerParty
- adds r0, r1
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x19
- negs r1, r1
- movs r2, 0x5
- bl PlayCry3
- bl dp01_tbl3_exec_completed
- pop {r0}
- bx r0
- .align 2, 0
-_08120548: .4byte gUnknown_02024A6A
-_0812054C: .4byte gUnknown_02024A60
-_08120550: .4byte gPlayerParty
- thumb_func_end sub_8120514
-
- thumb_func_start dp01t_2E_3_battle_intro
-dp01t_2E_3_battle_intro: @ 8120554
- push {lr}
- ldr r1, _0812057C @ =gUnknown_02023A60
- ldr r0, _08120580 @ =gUnknown_02024A60
- ldrb r0, [r0]
- lsls r0, 9
- adds r1, 0x1
- adds r0, r1
- ldrb r0, [r0]
- bl sub_80E43C0
- ldr r2, _08120584 @ =gUnknown_02024DE8
- ldrh r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strh r0, [r2]
- bl dp01_tbl3_exec_completed
- pop {r0}
- bx r0
- .align 2, 0
-_0812057C: .4byte gUnknown_02023A60
-_08120580: .4byte gUnknown_02024A60
-_08120584: .4byte gUnknown_02024DE8
- thumb_func_end dp01t_2E_3_battle_intro
-
- thumb_func_start sub_8120588
-sub_8120588: @ 8120588
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r6, _081206DC @ =gUnknown_02024BE0
- ldr r7, _081206E0 @ =gUnknown_02024A60
- ldrb r0, [r7]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r5, _081206E4 @ =gSprites
- adds r0, r5
- bl oamt_add_pos2_onto_pos1
- ldrb r0, [r7]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r1, 0x32
- strh r1, [r0, 0x2E]
- ldrb r0, [r7]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldr r1, _081206E8 @ =0x0000ffd8
- strh r1, [r0, 0x32]
- ldrb r0, [r7]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldrh r1, [r0, 0x22]
- strh r1, [r0, 0x36]
- ldrb r0, [r7]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r5, 0
- adds r1, 0x1C
- adds r0, r1
- ldr r1, _081206EC @ =sub_8078B34
- str r1, [r0]
- ldrb r2, [r7]
- adds r0, r2, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- strh r2, [r0, 0x38]
- ldrb r0, [r7]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldr r1, _081206F0 @ =sub_8030E38
- bl oamt_set_x3A_32
- ldrb r0, [r7]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r1, 0x1
- bl StartSpriteAnim
- ldr r0, _081206F4 @ =0x0000d6f9
- bl AllocSpritePalette
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _081206F8 @ =gTrainerBackPicPaletteTable
- mov r8, r0
- ldrb r0, [r7]
- bl sub_803FC34
- ldr r2, _081206FC @ =gLinkPlayers
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r1, r2
- ldrb r0, [r1, 0x13]
- lsls r0, 3
- add r0, r8
- ldr r0, [r0]
- lsls r4, 4
- movs r2, 0x80
- lsls r2, 1
- adds r1, r4, r2
- movs r2, 0x20
- bl LoadCompressedPalette
- ldrb r0, [r7]
- adds r0, r6
- ldrb r0, [r0]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- ldrb r2, [r1, 0x5]
- movs r0, 0xF
- ands r0, r2
- orrs r0, r4
- strb r0, [r1, 0x5]
- ldr r0, _08120700 @ =sub_812071C
- movs r1, 0x5
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r4, _08120704 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r4
- ldrb r0, [r7]
- strh r0, [r1, 0x8]
- ldrb r3, [r7]
- lsls r0, r3, 1
- adds r0, r3
- lsls r0, 2
- ldr r2, _08120708 @ =0x02017810
- adds r0, r2
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _081206BA
- ldr r0, _0812070C @ =gUnknown_02024E68
- adds r0, r3, r0
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r4
- ldr r1, _08120710 @ =sub_8044CA0
- str r1, [r0]
-_081206BA:
- adds r2, 0x30
- ldrb r0, [r2, 0x9]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2, 0x9]
- ldr r1, _08120714 @ =gUnknown_03004330
- ldrb r0, [r7]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08120718 @ =nullsub_74
- str r1, [r0]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_081206DC: .4byte gUnknown_02024BE0
-_081206E0: .4byte gUnknown_02024A60
-_081206E4: .4byte gSprites
-_081206E8: .4byte 0x0000ffd8
-_081206EC: .4byte sub_8078B34
-_081206F0: .4byte sub_8030E38
-_081206F4: .4byte 0x0000d6f9
-_081206F8: .4byte gTrainerBackPicPaletteTable
-_081206FC: .4byte gLinkPlayers
-_08120700: .4byte sub_812071C
-_08120704: .4byte gTasks
-_08120708: .4byte 0x02017810
-_0812070C: .4byte gUnknown_02024E68
-_08120710: .4byte sub_8044CA0
-_08120714: .4byte gUnknown_03004330
-_08120718: .4byte nullsub_74
- thumb_func_end sub_8120588
-
- thumb_func_start sub_812071C
-sub_812071C: @ 812071C
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldr r1, _08120744 @ =gTasks
- lsls r0, 2
- add r0, r8
- lsls r0, 3
- adds r1, r0, r1
- ldrh r2, [r1, 0xA]
- movs r3, 0xA
- ldrsh r0, [r1, r3]
- cmp r0, 0x17
- bgt _08120748
- adds r0, r2, 0x1
- strh r0, [r1, 0xA]
- b _08120804
- .align 2, 0
-_08120744: .4byte gTasks
-_08120748:
- ldr r7, _08120788 @ =gUnknown_02024A60
- ldrb r0, [r7]
- mov r9, r0
- ldrh r0, [r1, 0x8]
- strb r0, [r7]
- bl battle_type_is_double
- lsls r0, 24
- cmp r0, 0
- beq _08120768
- ldr r0, _0812078C @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08120798
-_08120768:
- ldr r0, _08120790 @ =gUnknown_02023A60
- ldrb r1, [r7]
- lsls r2, r1, 9
- adds r0, 0x1
- adds r2, r0
- ldr r0, _08120794 @ =gUnknown_02024A6A
- lsls r1, 1
- adds r1, r0
- ldrh r0, [r1]
- strb r0, [r2]
- ldrb r0, [r7]
- movs r1, 0
- bl sub_811F864
- b _081207EC
- .align 2, 0
-_08120788: .4byte gUnknown_02024A60
-_0812078C: .4byte gUnknown_020239F8
-_08120790: .4byte gUnknown_02023A60
-_08120794: .4byte gUnknown_02024A6A
-_08120798:
- ldr r4, _08120810 @ =gUnknown_02023A60
- ldrb r0, [r7]
- lsls r1, r0, 9
- adds r4, 0x1
- adds r1, r4
- ldr r5, _08120814 @ =gUnknown_02024A6A
- lsls r0, 1
- adds r0, r5
- ldrh r0, [r0]
- strb r0, [r1]
- ldrb r0, [r7]
- movs r1, 0
- bl sub_811F864
- ldrb r0, [r7]
- movs r6, 0x2
- eors r0, r6
- strb r0, [r7]
- ldrb r0, [r7]
- lsls r1, r0, 9
- adds r1, r4
- lsls r0, 1
- adds r0, r5
- ldrh r0, [r0]
- strb r0, [r1]
- ldrb r1, [r7]
- lsls r0, r1, 1
- adds r0, r5
- ldrh r2, [r0]
- movs r0, 0x64
- muls r0, r2
- ldr r2, _08120818 @ =gPlayerParty
- adds r0, r2
- bl sub_80318FC
- ldrb r0, [r7]
- movs r1, 0
- bl sub_811F864
- ldrb r0, [r7]
- eors r0, r6
- strb r0, [r7]
-_081207EC:
- ldr r1, _0812081C @ =gUnknown_03004330
- ldr r2, _08120820 @ =gUnknown_02024A60
- ldrb r0, [r2]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08120824 @ =sub_811DCA0
- str r1, [r0]
- mov r3, r9
- strb r3, [r2]
- mov r0, r8
- bl DestroyTask
-_08120804:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08120810: .4byte gUnknown_02023A60
-_08120814: .4byte gUnknown_02024A6A
-_08120818: .4byte gPlayerParty
-_0812081C: .4byte gUnknown_03004330
-_08120820: .4byte gUnknown_02024A60
-_08120824: .4byte sub_811DCA0
- thumb_func_end sub_812071C
-
- thumb_func_start dp01t_30_3_80EB11C
-dp01t_30_3_80EB11C: @ 8120828
- push {r4-r6,lr}
- ldr r1, _08120850 @ =gUnknown_02023A60
- ldr r0, _08120854 @ =gUnknown_02024A60
- ldrb r2, [r0]
- lsls r0, r2, 9
- adds r1, 0x1
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _08120858
- adds r0, r2, 0
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _08120858
- bl dp01_tbl3_exec_completed
- b _081208C0
- .align 2, 0
-_08120850: .4byte gUnknown_02023A60
-_08120854: .4byte gUnknown_02024A60
-_08120858:
- ldr r5, _081208C8 @ =gUnknown_02024A60
- ldrb r1, [r5]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r6, _081208CC @ =0x02017810
- adds r0, r6
- ldrb r1, [r0]
- movs r2, 0x1
- orrs r1, r2
- strb r1, [r0]
- ldrb r0, [r5]
- lsls r3, r0, 9
- ldr r4, _081208D0 @ =gUnknown_02023A64
- adds r1, r3, r4
- subs r2, r4, 0x3
- adds r2, r3, r2
- ldrb r2, [r2]
- subs r4, 0x2
- adds r3, r4
- ldrb r3, [r3]
- bl sub_8044804
- ldr r2, _081208D4 @ =gUnknown_02024E68
- ldrb r1, [r5]
- adds r1, r2
- movs r2, 0
- strb r0, [r1]
- ldrb r1, [r5]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- strb r2, [r0, 0x5]
- ldrb r1, [r5]
- lsls r0, r1, 9
- adds r0, r4
- ldrb r0, [r0]
- cmp r0, 0
- beq _081208B4
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- movs r1, 0x5D
- strb r1, [r0, 0x5]
-_081208B4:
- ldr r0, _081208D8 @ =gUnknown_03004330
- ldrb r1, [r5]
- lsls r1, 2
- adds r1, r0
- ldr r0, _081208DC @ =sub_81208E0
- str r0, [r1]
-_081208C0:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_081208C8: .4byte gUnknown_02024A60
-_081208CC: .4byte 0x02017810
-_081208D0: .4byte gUnknown_02023A64
-_081208D4: .4byte gUnknown_02024E68
-_081208D8: .4byte gUnknown_03004330
-_081208DC: .4byte sub_81208E0
- thumb_func_end dp01t_30_3_80EB11C
-
- thumb_func_start sub_81208E0
-sub_81208E0: @ 81208E0
- push {r4,lr}
- ldr r4, _08120918 @ =gUnknown_02024A60
- ldrb r1, [r4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r3, _0812091C @ =0x02017810
- adds r0, r3
- ldrb r1, [r0, 0x5]
- adds r2, r1, 0x1
- strb r2, [r0, 0x5]
- lsls r1, 24
- lsrs r1, 24
- cmp r1, 0x5C
- bls _08120910
- ldrb r0, [r4]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r3
- movs r0, 0
- strb r0, [r1, 0x5]
- bl dp01_tbl3_exec_completed
-_08120910:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08120918: .4byte gUnknown_02024A60
-_0812091C: .4byte 0x02017810
- thumb_func_end sub_81208E0
-
- thumb_func_start sub_8120920
-sub_8120920: @ 8120920
- push {lr}
- ldr r0, _08120958 @ =gUnknown_02024A60
- ldrb r3, [r0]
- lsls r0, r3, 1
- adds r0, r3
- lsls r0, 2
- ldr r1, _0812095C @ =0x02017810
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0812094E
- ldr r2, _08120960 @ =gTasks
- ldr r0, _08120964 @ =gUnknown_02024E68
- adds r0, r3, r0
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldr r1, _08120968 @ =sub_8044CA0
- str r1, [r0]
-_0812094E:
- bl dp01_tbl3_exec_completed
- pop {r0}
- bx r0
- .align 2, 0
-_08120958: .4byte gUnknown_02024A60
-_0812095C: .4byte 0x02017810
-_08120960: .4byte gTasks
-_08120964: .4byte gUnknown_02024E68
-_08120968: .4byte sub_8044CA0
- thumb_func_end sub_8120920
-
- thumb_func_start sub_812096C
-sub_812096C: @ 812096C
- push {lr}
- bl dp01_tbl3_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_812096C
-
- thumb_func_start sub_8120978
-sub_8120978: @ 8120978
- push {r4,lr}
- ldr r4, _081209C8 @ =gUnknown_02024A60
- ldrb r0, [r4]
- bl sub_8078874
- lsls r0, 24
- cmp r0, 0
- beq _081209BE
- ldr r3, _081209CC @ =gSprites
- ldr r0, _081209D0 @ =gUnknown_02024BE0
- ldrb r1, [r4]
- adds r0, r1, r0
- ldrb r0, [r0]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r3
- ldr r0, _081209D4 @ =gUnknown_02023A60
- lsls r1, 9
- adds r0, 0x1
- adds r1, r0
- adds r2, 0x3E
- movs r0, 0x1
- ldrb r1, [r1]
- ands r1, r0
- lsls r1, 2
- ldrb r3, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2]
- ldrb r0, [r4]
- bl sub_8031F88
-_081209BE:
- bl dp01_tbl3_exec_completed
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081209C8: .4byte gUnknown_02024A60
-_081209CC: .4byte gSprites
-_081209D0: .4byte gUnknown_02024BE0
-_081209D4: .4byte gUnknown_02023A60
- thumb_func_end sub_8120978
-
- thumb_func_start sub_81209D8
-sub_81209D8: @ 81209D8
- push {r4-r6,lr}
- sub sp, 0x4
- ldr r6, _08120A1C @ =gUnknown_02024A60
- ldrb r0, [r6]
- bl mplay_80342A4
- lsls r0, 24
- cmp r0, 0
- bne _08120A30
- ldr r5, _08120A20 @ =gUnknown_02023A60
- ldrb r2, [r6]
- lsls r1, r2, 9
- adds r0, r5, 0x1
- adds r0, r1, r0
- ldrb r3, [r0]
- adds r0, r5, 0x2
- adds r0, r1, r0
- ldrb r4, [r0]
- adds r5, 0x3
- adds r1, r5
- ldrb r0, [r1]
- lsls r0, 8
- orrs r4, r0
- str r4, [sp]
- adds r0, r2, 0
- adds r1, r2, 0
- bl move_anim_start_t3
- lsls r0, 24
- cmp r0, 0
- beq _08120A24
- bl dp01_tbl3_exec_completed
- b _08120A30
- .align 2, 0
-_08120A1C: .4byte gUnknown_02024A60
-_08120A20: .4byte gUnknown_02023A60
-_08120A24:
- ldr r0, _08120A38 @ =gUnknown_03004330
- ldrb r1, [r6]
- lsls r1, 2
- adds r1, r0
- ldr r0, _08120A3C @ =sub_811E3B8
- str r0, [r1]
-_08120A30:
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08120A38: .4byte gUnknown_03004330
-_08120A3C: .4byte sub_811E3B8
- thumb_func_end sub_81209D8
-
- thumb_func_start sub_8120A40
-sub_8120A40: @ 8120A40
- push {lr}
- bl dp01_tbl3_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8120A40
-
- thumb_func_start sub_8120A4C
-sub_8120A4C: @ 8120A4C
- push {lr}
- bl dp01_tbl3_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8120A4C
-
- thumb_func_start sub_8120A58
-sub_8120A58: @ 8120A58
- push {r4,lr}
- ldr r2, _08120A90 @ =gUnknown_02024D26
- ldr r1, _08120A94 @ =gUnknown_02023A60
- ldr r4, _08120A98 @ =gUnknown_02024A60
- ldrb r0, [r4]
- lsls r0, 9
- adds r1, 0x1
- adds r0, r1
- ldrb r0, [r0]
- strb r0, [r2]
- movs r0, 0x5
- bl FadeOutMapMusic
- movs r0, 0x3
- bl BeginFastPaletteFade
- bl dp01_tbl3_exec_completed
- ldr r1, _08120A9C @ =gUnknown_03004330
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08120AA0 @ =sub_811E29C
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08120A90: .4byte gUnknown_02024D26
-_08120A94: .4byte gUnknown_02023A60
-_08120A98: .4byte gUnknown_02024A60
-_08120A9C: .4byte gUnknown_03004330
-_08120AA0: .4byte sub_811E29C
- thumb_func_end sub_8120A58
-
- thumb_func_start nullsub_75
-nullsub_75: @ 8120AA4
- bx lr
- thumb_func_end nullsub_75
-
- thumb_func_start sub_8120AA8
-sub_8120AA8: @ 8120AA8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 16
- lsrs r7, r0, 16
- movs r6, 0
- ldr r5, _08120B70 @ =gUnknown_02039270
- ldr r4, _08120B74 @ =gUnknown_02024A60
- ldrb r1, [r4]
- lsls r1, 9
- ldr r0, _08120B78 @ =gUnknown_02023A64
- adds r1, r0
- str r1, [r5]
- ldr r2, _08120B7C @ =gUnknown_02024C04
- ldrh r0, [r1, 0x4]
- strh r0, [r2]
- ldr r2, _08120B80 @ =byte_2024C06
- ldrb r0, [r1, 0x6]
- strb r0, [r2]
- ldr r3, _08120B84 @ =0x02000000
- ldrb r0, [r1, 0x7]
- mov r8, r0
- ldr r2, _08120B88 @ =0x00016003
- adds r0, r3, r2
- mov r2, r8
- strb r2, [r0]
- ldrb r0, [r1, 0x8]
- mov r8, r0
- ldr r2, _08120B8C @ =0x0001605e
- adds r0, r3, r2
- mov r2, r8
- strb r2, [r0]
- ldrb r0, [r1, 0x9]
- mov r8, r0
- ldr r2, _08120B90 @ =0x000160c1
- adds r0, r3, r2
- mov r2, r8
- strb r2, [r0]
- ldr r2, _08120B94 @ =gUnknown_02024C0B
- ldrb r0, [r1, 0xA]
- strb r0, [r2]
- ldrb r1, [r1, 0xB]
- ldr r2, _08120B98 @ =0x000160a0
- adds r0, r3, r2
- strb r1, [r0]
- movs r2, 0
- mov r9, r3
- ldr r3, _08120B9C @ =gUnknown_030041C0
- mov r10, r3
- ldr r3, _08120BA0 @ =gUnknown_0203926C
-_08120B10:
- adds r0, r2, r3
- ldr r1, [r5]
- adds r1, 0xC
- adds r1, r2
- ldrb r1, [r1]
- strb r1, [r0]
- adds r2, 0x1
- cmp r2, 0x3
- ble _08120B10
- movs r2, 0
- ldr r0, _08120B9C @ =gUnknown_030041C0
- mov r8, r0
- ldr r3, _08120B70 @ =gUnknown_02039270
- ldr r1, _08120BA4 @ =gUnknown_03004290
- mov r12, r1
- ldr r5, _08120BA8 @ =gUnknown_030042B0
-_08120B30:
- mov r0, r8
- adds r1, r2, r0
- ldr r0, [r3]
- adds r0, 0x10
- adds r0, r2
- ldrb r0, [r0]
- strb r0, [r1]
- mov r0, r12
- adds r1, r2, r0
- ldr r0, [r3]
- adds r0, 0x20
- adds r0, r2
- ldrb r0, [r0]
- strb r0, [r1]
- adds r1, r2, r5
- ldr r0, [r3]
- adds r0, 0x30
- adds r0, r2
- ldrb r0, [r0]
- strb r0, [r1]
- adds r2, 0x1
- cmp r2, 0xF
- ble _08120B30
- cmp r7, 0x5
- bls _08120B64
- b _08120F50
-_08120B64:
- lsls r0, r7, 2
- ldr r1, _08120BAC @ =_08120BB0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08120B70: .4byte gUnknown_02039270
-_08120B74: .4byte gUnknown_02024A60
-_08120B78: .4byte gUnknown_02023A64
-_08120B7C: .4byte gUnknown_02024C04
-_08120B80: .4byte byte_2024C06
-_08120B84: .4byte 0x02000000
-_08120B88: .4byte 0x00016003
-_08120B8C: .4byte 0x0001605e
-_08120B90: .4byte 0x000160c1
-_08120B94: .4byte gUnknown_02024C0B
-_08120B98: .4byte 0x000160a0
-_08120B9C: .4byte gUnknown_030041C0
-_08120BA0: .4byte gUnknown_0203926C
-_08120BA4: .4byte gUnknown_03004290
-_08120BA8: .4byte gUnknown_030042B0
-_08120BAC: .4byte _08120BB0
- .align 2, 0
-_08120BB0:
- .4byte _08120BC8
- .4byte _08120C40
- .4byte _08120CCC
- .4byte _08120D5C
- .4byte _08120DE8
- .4byte _08120E50
-_08120BC8:
- ldr r0, _08120BEC @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _08120C00
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08120BF8
- movs r0, 0x40
- ands r0, r1
- ldr r6, _08120BF0 @ =gUnknown_084005C7
- cmp r0, 0
- bne _08120BE8
- b _08120F70
-_08120BE8:
- ldr r6, _08120BF4 @ =gUnknown_084005DB
- b _08120F70
- .align 2, 0
-_08120BEC: .4byte gUnknown_020239F8
-_08120BF0: .4byte gUnknown_084005C7
-_08120BF4: .4byte gUnknown_084005DB
-_08120BF8:
- ldr r6, _08120BFC @ =gUnknown_084005AA
- b _08120F70
- .align 2, 0
-_08120BFC: .4byte gUnknown_084005AA
-_08120C00:
- movs r0, 0x80
- lsls r0, 6
- ands r0, r1
- cmp r0, 0
- beq _08120C14
- ldr r6, _08120C10 @ =gUnknown_08400568
- b _08120F70
- .align 2, 0
-_08120C10: .4byte gUnknown_08400568
-_08120C14:
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08120C24
- ldr r6, _08120C20 @ =gUnknown_08400590
- b _08120F70
- .align 2, 0
-_08120C20: .4byte gUnknown_08400590
-_08120C24:
- movs r0, 0x80
- lsls r0, 2
- ands r0, r1
- ldr r6, _08120C38 @ =gUnknown_08400555
- cmp r0, 0
- bne _08120C32
- b _08120F70
-_08120C32:
- ldr r6, _08120C3C @ =gUnknown_0840057B
- b _08120F70
- .align 2, 0
-_08120C38: .4byte gUnknown_08400555
-_08120C3C: .4byte gUnknown_0840057B
-_08120C40:
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _08120C7C
- ldr r0, _08120C68 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08120C74
- movs r0, 0x40
- ands r0, r1
- ldr r6, _08120C6C @ =gUnknown_084006A4
- cmp r0, 0
- bne _08120C64
- b _08120F70
-_08120C64:
- ldr r6, _08120C70 @ =gUnknown_084006F1
- b _08120F70
- .align 2, 0
-_08120C68: .4byte gUnknown_020239F8
-_08120C6C: .4byte gUnknown_084006A4
-_08120C70: .4byte gUnknown_084006F1
-_08120C74:
- ldr r6, _08120C78 @ =gUnknown_0840069C
- b _08120F70
- .align 2, 0
-_08120C78: .4byte gUnknown_0840069C
-_08120C7C:
- ldr r0, _08120C94 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08120CB4
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08120C9C
- ldr r6, _08120C98 @ =gUnknown_0840065C
- b _08120F70
- .align 2, 0
-_08120C94: .4byte gUnknown_020239F8
-_08120C98: .4byte gUnknown_0840065C
-_08120C9C:
- movs r0, 0x2
- ands r0, r1
- ldr r6, _08120CAC @ =gUnknown_08400608
- cmp r0, 0
- bne _08120CA8
- b _08120F70
-_08120CA8:
- ldr r6, _08120CB0 @ =gUnknown_08400645
- b _08120F70
- .align 2, 0
-_08120CAC: .4byte gUnknown_08400608
-_08120CB0: .4byte gUnknown_08400645
-_08120CB4:
- movs r0, 0x2
- ands r0, r1
- ldr r6, _08120CC4 @ =gUnknown_084005F5
- cmp r0, 0
- bne _08120CC0
- b _08120F70
-_08120CC0:
- ldr r6, _08120CC8 @ =gUnknown_08400635
- b _08120F70
- .align 2, 0
-_08120CC4: .4byte gUnknown_084005F5
-_08120CC8: .4byte gUnknown_08400635
-_08120CCC:
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _08120D24
- ldr r0, _08120CE8 @ =0x02000000
- ldr r1, _08120CEC @ =0x000160c1
- adds r0, r1
- ldrb r2, [r0]
- cmp r2, 0
- bne _08120CF4
- ldr r6, _08120CF0 @ =gUnknown_08400709
- b _08120F70
- .align 2, 0
-_08120CE8: .4byte 0x02000000
-_08120CEC: .4byte 0x000160c1
-_08120CF0: .4byte gUnknown_08400709
-_08120CF4:
- cmp r2, 0x1
- beq _08120D04
- ldr r0, _08120D08 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08120D10
-_08120D04:
- ldr r6, _08120D0C @ =gUnknown_08400727
- b _08120F70
- .align 2, 0
-_08120D08: .4byte gUnknown_020239F8
-_08120D0C: .4byte gUnknown_08400727
-_08120D10:
- ldr r6, _08120D1C @ =gUnknown_08400749
- cmp r2, 0x2
- beq _08120D18
- b _08120F70
-_08120D18:
- ldr r6, _08120D20 @ =gUnknown_08400736
- b _08120F70
- .align 2, 0
-_08120D1C: .4byte gUnknown_08400749
-_08120D20: .4byte gUnknown_08400736
-_08120D24:
- ldr r0, _08120D44 @ =gTrainerBattleOpponent
- ldrh r1, [r0]
- movs r0, 0x80
- lsls r0, 4
- cmp r1, r0
- bne _08120D54
- ldr r0, _08120D48 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x40
- ands r0, r1
- ldr r6, _08120D4C @ =gUnknown_08400771
- cmp r0, 0
- bne _08120D40
- b _08120F70
-_08120D40:
- ldr r6, _08120D50 @ =gUnknown_08400781
- b _08120F70
- .align 2, 0
-_08120D44: .4byte gTrainerBattleOpponent
-_08120D48: .4byte gUnknown_020239F8
-_08120D4C: .4byte gUnknown_08400771
-_08120D50: .4byte gUnknown_08400781
-_08120D54:
- ldr r6, _08120D58 @ =gUnknown_0840075E
- b _08120F70
- .align 2, 0
-_08120D58: .4byte gUnknown_0840075E
-_08120D5C:
- ldr r0, _08120D88 @ =0x00016003
- add r0, r9
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _08120DB8
- ldr r0, _08120D8C @ =0x000160c1
- add r0, r9
- ldrb r3, [r0]
- cmp r3, 0
- beq _08120D82
- ldr r0, _08120D90 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08120D98
-_08120D82:
- ldr r6, _08120D94 @ =gUnknown_084006B3
- b _08120F70
- .align 2, 0
-_08120D88: .4byte 0x00016003
-_08120D8C: .4byte 0x000160c1
-_08120D90: .4byte gUnknown_020239F8
-_08120D94: .4byte gUnknown_084006B3
-_08120D98:
- cmp r3, 0x1
- bne _08120DA4
- ldr r6, _08120DA0 @ =gUnknown_084006BB
- b _08120F70
- .align 2, 0
-_08120DA0: .4byte gUnknown_084006BB
-_08120DA4:
- ldr r6, _08120DB0 @ =gUnknown_084006D5
- cmp r3, 0x2
- beq _08120DAC
- b _08120F70
-_08120DAC:
- ldr r6, _08120DB4 @ =gUnknown_084006C6
- b _08120F70
- .align 2, 0
-_08120DB0: .4byte gUnknown_084006D5
-_08120DB4: .4byte gUnknown_084006C6
-_08120DB8:
- ldr r0, _08120DD4 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08120DE0
- movs r0, 0x40
- ands r0, r1
- ldr r6, _08120DD8 @ =gUnknown_0840067C
- cmp r0, 0
- bne _08120DD0
- b _08120F70
-_08120DD0:
- ldr r6, _08120DDC @ =gUnknown_0840068C
- b _08120F70
- .align 2, 0
-_08120DD4: .4byte gUnknown_020239F8
-_08120DD8: .4byte gUnknown_0840067C
-_08120DDC: .4byte gUnknown_0840068C
-_08120DE0:
- ldr r6, _08120DE4 @ =gUnknown_08400622
- b _08120F70
- .align 2, 0
-_08120DE4: .4byte gUnknown_08400622
-_08120DE8:
- mov r0, r10
- bl sub_8121D1C
- ldr r0, _08120E14 @ =gUnknown_02039270
- ldr r2, [r0]
- ldrh r1, [r2]
- movs r0, 0xB1
- lsls r0, 1
- cmp r1, r0
- bls _08120E28
- ldr r0, _08120E18 @ =gUnknown_03004290
- ldr r2, _08120E1C @ =gUnknown_08401674
- ldr r1, _08120E20 @ =0x02000000
- ldr r3, _08120E24 @ =0x000160a0
- adds r1, r3
- ldrb r1, [r1]
- lsls r1, 2
- adds r1, r2
- ldr r1, [r1]
- bl StringCopy
- b _08120E38
- .align 2, 0
-_08120E14: .4byte gUnknown_02039270
-_08120E18: .4byte gUnknown_03004290
-_08120E1C: .4byte gUnknown_08401674
-_08120E20: .4byte 0x02000000
-_08120E24: .4byte 0x000160a0
-_08120E28:
- ldr r0, _08120E44 @ =gUnknown_03004290
- ldrh r2, [r2]
- movs r1, 0xD
- muls r1, r2
- ldr r2, _08120E48 @ =gMoveNames
- adds r1, r2
- bl StringCopy
-_08120E38:
- ldr r0, _08120E44 @ =gUnknown_03004290
- bl sub_8121D74
- ldr r6, _08120E4C @ =gUnknown_084007BD
- b _08120F70
- .align 2, 0
-_08120E44: .4byte gUnknown_03004290
-_08120E48: .4byte gMoveNames
-_08120E4C: .4byte gUnknown_084007BD
-_08120E50:
- ldr r5, _08120E90 @ =gUnknown_030041C0
- ldrb r1, [r5]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08120EB8
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r5]
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08120E7C
- ldrb r1, [r5]
- cmp r1, 0x3
- beq _08120E7C
- movs r0, 0x3
- eors r0, r1
- strb r0, [r5]
-_08120E7C:
- ldr r0, _08120E90 @ =gUnknown_030041C0
- ldrb r0, [r0]
- subs r0, 0x2
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bhi _08120E98
- ldr r6, _08120E94 @ =gUnknown_083FFEFC
- b _08120F70
- .align 2, 0
-_08120E90: .4byte gUnknown_030041C0
-_08120E94: .4byte gUnknown_083FFEFC
-_08120E98:
- ldr r0, _08120EAC @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x40
- ands r0, r1
- ldr r6, _08120EB0 @ =gUnknown_083FFFEA
- cmp r0, 0
- beq _08120F70
- ldr r6, _08120EB4 @ =gUnknown_083FFFF7
- b _08120F70
- .align 2, 0
-_08120EAC: .4byte gUnknown_020239F8
-_08120EB0: .4byte gUnknown_083FFFEA
-_08120EB4: .4byte gUnknown_083FFFF7
-_08120EB8:
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08120ED2
- ldrb r1, [r5]
- cmp r1, 0x3
- beq _08120ED2
- movs r0, 0x3
- eors r0, r1
- strb r0, [r5]
-_08120ED2:
- ldr r0, _08120EF0 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08120F18
- ldr r0, _08120EF4 @ =gUnknown_030041C0
- ldrb r0, [r0]
- cmp r0, 0x2
- beq _08120F08
- cmp r0, 0x2
- bgt _08120EF8
- cmp r0, 0x1
- beq _08120EFE
- b _08120F70
- .align 2, 0
-_08120EF0: .4byte gUnknown_020239F8
-_08120EF4: .4byte gUnknown_030041C0
-_08120EF8:
- cmp r0, 0x3
- beq _08120F10
- b _08120F70
-_08120EFE:
- ldr r6, _08120F04 @ =gUnknown_083FFF6A
- b _08120F70
- .align 2, 0
-_08120F04: .4byte gUnknown_083FFF6A
-_08120F08:
- ldr r6, _08120F0C @ =gUnknown_083FFF99
- b _08120F70
- .align 2, 0
-_08120F0C: .4byte gUnknown_083FFF99
-_08120F10:
- ldr r6, _08120F14 @ =gUnknown_083FFFCB
- b _08120F70
- .align 2, 0
-_08120F14: .4byte gUnknown_083FFFCB
-_08120F18:
- ldr r0, _08120F2C @ =gUnknown_030041C0
- ldrb r0, [r0]
- cmp r0, 0x2
- beq _08120F40
- cmp r0, 0x2
- bgt _08120F30
- cmp r0, 0x1
- beq _08120F36
- b _08120F70
- .align 2, 0
-_08120F2C: .4byte gUnknown_030041C0
-_08120F30:
- cmp r0, 0x3
- beq _08120F48
- b _08120F70
-_08120F36:
- ldr r6, _08120F3C @ =gUnknown_083FFF56
- b _08120F70
- .align 2, 0
-_08120F3C: .4byte gUnknown_083FFF56
-_08120F40:
- ldr r6, _08120F44 @ =gUnknown_083FFF81
- b _08120F70
- .align 2, 0
-_08120F44: .4byte gUnknown_083FFF81
-_08120F48:
- ldr r6, _08120F4C @ =gUnknown_083FFFB3
- b _08120F70
- .align 2, 0
-_08120F4C: .4byte gUnknown_083FFFB3
-_08120F50:
- movs r0, 0xB5
- lsls r0, 1
- cmp r7, r0
- bls _08120F64
- ldr r1, _08120F60 @ =gUnknown_020238CC
- movs r0, 0xFF
- strb r0, [r1]
- b _08120F76
- .align 2, 0
-_08120F60: .4byte gUnknown_020238CC
-_08120F64:
- ldr r1, _08120F84 @ =gUnknown_08400F8C
- adds r0, r7, 0
- subs r0, 0xC
- lsls r0, 2
- adds r0, r1
- ldr r6, [r0]
-_08120F70:
- adds r0, r6, 0
- bl get_battle_strings_
-_08120F76:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08120F84: .4byte gUnknown_08400F8C
- thumb_func_end sub_8120AA8
-
- thumb_func_start get_battle_strings_
-get_battle_strings_: @ 8120F88
- push {lr}
- ldr r1, _08120F94 @ =gUnknown_020238CC
- bl sub_8120FFC
- pop {r1}
- bx r1
- .align 2, 0
-_08120F94: .4byte gUnknown_020238CC
- thumb_func_end get_battle_strings_
-
- thumb_func_start sub_8120F98
-sub_8120F98: @ 8120F98
- push {r4,r5,lr}
- sub sp, 0x8
- adds r4, r0, 0
- ldr r1, _08120FB0 @ =gUnknown_084017A8
- mov r0, sp
- movs r2, 0x8
- bl memcpy
- mov r2, sp
- movs r3, 0
- b _08120FC0
- .align 2, 0
-_08120FB0: .4byte gUnknown_084017A8
-_08120FB4:
- strb r1, [r2]
- adds r4, 0x1
- adds r2, 0x1
- adds r3, 0x1
- cmp r3, 0x7
- bhi _08120FC8
-_08120FC0:
- ldrb r1, [r4]
- adds r0, r1, 0
- cmp r0, 0xFF
- bne _08120FB4
-_08120FC8:
- ldr r5, [sp]
- ldr r4, [sp, 0x4]
- movs r3, 0
- ldr r2, _08120FE4 @ =gUnknown_081FA6D4
-_08120FD0:
- ldr r1, [r2]
- ldr r0, [r1]
- cmp r5, r0
- bne _08120FE8
- ldr r0, [r1, 0x4]
- cmp r4, r0
- bne _08120FE8
- ldr r0, [r2, 0x4]
- b _08120FF2
- .align 2, 0
-_08120FE4: .4byte gUnknown_081FA6D4
-_08120FE8:
- adds r2, 0x8
- adds r3, 0x1
- cmp r3, 0x6
- bls _08120FD0
- movs r0, 0
-_08120FF2:
- add sp, 0x8
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8120F98
-
- thumb_func_start sub_8120FFC
-sub_8120FFC: @ 8120FFC
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0xC
- mov r9, r0
- mov r8, r1
- movs r6, 0
- movs r4, 0
- bl GetMultiplayerId
- lsls r0, 24
- lsrs r7, r0, 24
- mov r0, r9
- ldrb r1, [r0]
- bl _08121A40
-_0812101E:
- cmp r1, 0xFD
- beq _08121026
- bl _08121A30
-_08121026:
- movs r1, 0x1
- add r9, r1
- mov r2, r9
- ldrb r0, [r2]
- cmp r0, 0x2A
- bls _08121036
- bl _081219E6
-_08121036:
- lsls r0, 2
- ldr r1, _08121040 @ =_08121044
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08121040: .4byte _08121044
- .align 2, 0
-_08121044:
- .4byte _081210F0
- .4byte _0812111E
- .4byte _0812115A
- .4byte _08121180
- .4byte _081211A4
- .4byte _081211C8
- .4byte _081211EC
- .4byte _08121218
- .4byte _08121248
- .4byte _08121278
- .4byte _081212A8
- .4byte _0812133C
- .4byte _081213A8
- .4byte _0812141C
- .4byte _08121490
- .4byte _08121504
- .4byte _08121578
- .4byte _081215F8
- .4byte _08121620
- .4byte _08121660
- .4byte _081216EC
- .4byte _081216F4
- .4byte _08121704
- .4byte _08121714
- .4byte _0812172C
- .4byte _0812174C
- .4byte _081217C0
- .4byte _08121830
- .4byte _08121840
- .4byte _08121854
- .4byte _08121868
- .4byte _0812188C
- .4byte _081218B0
- .4byte _081218B8
- .4byte _081218C0
- .4byte _0812195C
- .4byte _081219A4
- .4byte _081219AC
- .4byte _0812197C
- .4byte _08121984
- .4byte _081219CC
- .4byte _081219D4
- .4byte _08121134
-_081210F0:
- ldr r5, _08121100 @ =gUnknown_030041C0
- ldrb r0, [r5]
- cmp r0, 0xFD
- bne _08121108
- ldr r4, _08121104 @ =gStringVar1
- adds r0, r5, 0
- b _08121140
- .align 2, 0
-_08121100: .4byte gUnknown_030041C0
-_08121104: .4byte gStringVar1
-_08121108:
- adds r0, r5, 0
- bl sub_8120F98
- adds r4, r0, 0
- cmp r4, 0
- beq _08121118
- bl _081219E6
-_08121118:
- adds r4, r5, 0
- bl _081219E6
-_0812111E:
- ldr r1, _0812112C @ =gUnknown_03004290
- ldrb r0, [r1]
- cmp r0, 0xFD
- bne _08121154
- ldr r4, _08121130 @ =gStringVar2
- b _0812113E
- .align 2, 0
-_0812112C: .4byte gUnknown_03004290
-_08121130: .4byte gStringVar2
-_08121134:
- ldr r1, _0812114C @ =gUnknown_030042B0
- ldrb r0, [r1]
- cmp r0, 0xFD
- bne _08121154
- ldr r4, _08121150 @ =gStringVar3
-_0812113E:
- adds r0, r1, 0
-_08121140:
- adds r1, r4, 0
- bl sub_8121A68
- bl _081219E6
- .align 2, 0
-_0812114C: .4byte gUnknown_030042B0
-_08121150: .4byte gStringVar3
-_08121154:
- adds r4, r1, 0
- bl _081219E6
-_0812115A:
- movs r0, 0
- bl battle_get_side_with_given_state
- ldr r1, _08121178 @ =gUnknown_02024A6A
- lsls r0, 24
- lsrs r0, 23
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0812117C @ =gPlayerParty
- adds r0, r1
- bl _0812190E
- .align 2, 0
-_08121178: .4byte gUnknown_02024A6A
-_0812117C: .4byte gPlayerParty
-_08121180:
- movs r0, 0x1
- bl battle_get_side_with_given_state
- ldr r1, _0812119C @ =gUnknown_02024A6A
- lsls r0, 24
- lsrs r0, 23
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _081211A0 @ =gEnemyParty
- adds r0, r1
- b _0812190E
- .align 2, 0
-_0812119C: .4byte gUnknown_02024A6A
-_081211A0: .4byte gEnemyParty
-_081211A4:
- movs r0, 0x2
- bl battle_get_side_with_given_state
- ldr r1, _081211C0 @ =gUnknown_02024A6A
- lsls r0, 24
- lsrs r0, 23
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _081211C4 @ =gPlayerParty
- adds r0, r1
- b _0812190E
- .align 2, 0
-_081211C0: .4byte gUnknown_02024A6A
-_081211C4: .4byte gPlayerParty
-_081211C8:
- movs r0, 0x3
- bl battle_get_side_with_given_state
- ldr r1, _081211E4 @ =gUnknown_02024A6A
- lsls r0, 24
- lsrs r0, 23
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _081211E8 @ =gEnemyParty
- adds r0, r1
- b _0812190E
- .align 2, 0
-_081211E4: .4byte gUnknown_02024A6A
-_081211E8: .4byte gEnemyParty
-_081211EC:
- ldr r2, _0812120C @ =gUnknown_02024A6A
- ldr r1, _08121210 @ =gLinkPlayers
- lsls r0, r7, 3
- subs r0, r7
- lsls r0, 2
- adds r0, r1
- ldrh r0, [r0, 0x18]
- lsls r0, 1
- adds r0, r2
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08121214 @ =gPlayerParty
- adds r0, r1
- b _0812190E
- .align 2, 0
-_0812120C: .4byte gUnknown_02024A6A
-_08121210: .4byte gLinkPlayers
-_08121214: .4byte gPlayerParty
-_08121218:
- ldr r2, _0812123C @ =gUnknown_02024A6A
- ldr r1, _08121240 @ =gLinkPlayers
- lsls r0, r7, 3
- subs r0, r7
- lsls r0, 2
- adds r0, r1
- ldrh r1, [r0, 0x18]
- movs r0, 0x1
- eors r0, r1
- lsls r0, 1
- adds r0, r2
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08121244 @ =gEnemyParty
- adds r0, r1
- b _0812190E
- .align 2, 0
-_0812123C: .4byte gUnknown_02024A6A
-_08121240: .4byte gLinkPlayers
-_08121244: .4byte gEnemyParty
-_08121248:
- ldr r2, _0812126C @ =gUnknown_02024A6A
- ldr r1, _08121270 @ =gLinkPlayers
- lsls r0, r7, 3
- subs r0, r7
- lsls r0, 2
- adds r0, r1
- ldrh r1, [r0, 0x18]
- movs r0, 0x2
- eors r0, r1
- lsls r0, 1
- adds r0, r2
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08121274 @ =gPlayerParty
- adds r0, r1
- b _0812190E
- .align 2, 0
-_0812126C: .4byte gUnknown_02024A6A
-_08121270: .4byte gLinkPlayers
-_08121274: .4byte gPlayerParty
-_08121278:
- ldr r2, _0812129C @ =gUnknown_02024A6A
- ldr r1, _081212A0 @ =gLinkPlayers
- lsls r0, r7, 3
- subs r0, r7
- lsls r0, 2
- adds r0, r1
- ldrh r1, [r0, 0x18]
- movs r0, 0x3
- eors r0, r1
- lsls r0, 1
- adds r0, r2
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _081212A4 @ =gEnemyParty
- adds r0, r1
- b _0812190E
- .align 2, 0
-_0812129C: .4byte gUnknown_02024A6A
-_081212A0: .4byte gLinkPlayers
-_081212A4: .4byte gEnemyParty
-_081212A8:
- ldr r4, _081212CC @ =gUnknown_02024C07
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- adds r2, r4, 0
- cmp r0, 0
- beq _0812131C
- ldr r0, _081212D0 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x8
- ands r0, r1
- ldr r4, _081212D4 @ =gUnknown_08400791
- cmp r0, 0
- beq _081212E6
- ldr r4, _081212D8 @ =gUnknown_08400797
- b _081212E6
- .align 2, 0
-_081212CC: .4byte gUnknown_02024C07
-_081212D0: .4byte gUnknown_020239F8
-_081212D4: .4byte gUnknown_08400791
-_081212D8: .4byte gUnknown_08400797
-_081212DC:
- mov r3, r8
- adds r0, r3, r6
- strb r1, [r0]
- adds r6, 0x1
- adds r4, 0x1
-_081212E6:
- ldrb r1, [r4]
- adds r0, r1, 0
- cmp r0, 0xFF
- bne _081212DC
- ldrb r0, [r2]
- bl battle_get_per_side_status
- adds r1, r0, 0
- movs r0, 0x1
- ands r0, r1
- bl battle_get_side_with_given_state
- ldr r1, _08121314 @ =gUnknown_02024A6A
- lsls r0, 24
- lsrs r0, 23
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08121318 @ =gEnemyParty
- adds r0, r1
- b _0812190E
- .align 2, 0
-_08121314: .4byte gUnknown_02024A6A
-_08121318: .4byte gEnemyParty
-_0812131C:
- ldrb r0, [r2]
- bl battle_get_per_side_status
- adds r1, r0, 0
- movs r0, 0x1
- ands r0, r1
- bl battle_get_side_with_given_state
- ldr r1, _08121338 @ =gUnknown_02024A6A
- lsls r0, 24
- lsrs r0, 23
- adds r0, r1
- ldrh r1, [r0]
- b _0812193A
- .align 2, 0
-_08121338: .4byte gUnknown_02024A6A
-_0812133C:
- ldr r4, _08121370 @ =gUnknown_02024C07
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _0812137C
- ldrb r0, [r4]
- bl battle_get_per_side_status
- adds r1, r0, 0
- movs r0, 0x1
- ands r0, r1
- bl battle_get_side_with_given_state
- ldr r1, _08121374 @ =gUnknown_02024A6A
- lsls r0, 24
- lsrs r0, 23
- adds r0, 0x4
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08121378 @ =gPlayerParty
- adds r0, r1
- b _0812190E
- .align 2, 0
-_08121370: .4byte gUnknown_02024C07
-_08121374: .4byte gUnknown_02024A6A
-_08121378: .4byte gPlayerParty
-_0812137C:
- ldrb r0, [r4]
- bl battle_get_per_side_status
- adds r1, r0, 0
- movs r0, 0x1
- ands r0, r1
- bl battle_get_side_with_given_state
- ldr r1, _081213A0 @ =gUnknown_02024A6A
- lsls r0, 24
- lsrs r0, 23
- adds r0, 0x4
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _081213A4 @ =gEnemyParty
- b _08121940
- .align 2, 0
-_081213A0: .4byte gUnknown_02024A6A
-_081213A4: .4byte gEnemyParty
-_081213A8:
- ldr r5, _081213F4 @ =gUnknown_02024C07
- ldrb r0, [r5]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _0812140C
- ldr r0, _081213F8 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x8
- ands r0, r1
- ldr r4, _081213FC @ =gUnknown_08400791
- cmp r0, 0
- beq _081213C6
- ldr r4, _08121400 @ =gUnknown_08400797
-_081213C6:
- ldrb r1, [r4]
- adds r0, r1, 0
- ldr r3, _08121404 @ =gUnknown_02024A6A
- ldr r2, _08121408 @ =gEnemyParty
- mov r12, r2
- adds r2, r5, 0
- cmp r0, 0xFF
- beq _081213E8
-_081213D6:
- mov r5, r8
- adds r0, r5, r6
- strb r1, [r0]
- adds r6, 0x1
- adds r4, 0x1
- ldrb r1, [r4]
- adds r0, r1, 0
- cmp r0, 0xFF
- bne _081213D6
-_081213E8:
- ldrb r0, [r2]
- lsls r0, 1
- adds r0, r3
- ldrh r1, [r0]
- b _08121908
- .align 2, 0
-_081213F4: .4byte gUnknown_02024C07
-_081213F8: .4byte gUnknown_020239F8
-_081213FC: .4byte gUnknown_08400791
-_08121400: .4byte gUnknown_08400797
-_08121404: .4byte gUnknown_02024A6A
-_08121408: .4byte gEnemyParty
-_0812140C:
- ldr r1, _08121418 @ =gUnknown_02024A6A
- ldrb r0, [r5]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- b _0812193A
- .align 2, 0
-_08121418: .4byte gUnknown_02024A6A
-_0812141C:
- ldr r5, _08121468 @ =gUnknown_02024C08
- ldrb r0, [r5]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _08121480
- ldr r0, _0812146C @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x8
- ands r0, r1
- ldr r4, _08121470 @ =gUnknown_08400791
- cmp r0, 0
- beq _0812143A
- ldr r4, _08121474 @ =gUnknown_08400797
-_0812143A:
- ldrb r1, [r4]
- adds r0, r1, 0
- ldr r3, _08121478 @ =gUnknown_02024A6A
- ldr r2, _0812147C @ =gEnemyParty
- mov r12, r2
- adds r2, r5, 0
- cmp r0, 0xFF
- beq _0812145C
-_0812144A:
- mov r5, r8
- adds r0, r5, r6
- strb r1, [r0]
- adds r6, 0x1
- adds r4, 0x1
- ldrb r1, [r4]
- adds r0, r1, 0
- cmp r0, 0xFF
- bne _0812144A
-_0812145C:
- ldrb r0, [r2]
- lsls r0, 1
- adds r0, r3
- ldrh r1, [r0]
- b _08121908
- .align 2, 0
-_08121468: .4byte gUnknown_02024C08
-_0812146C: .4byte gUnknown_020239F8
-_08121470: .4byte gUnknown_08400791
-_08121474: .4byte gUnknown_08400797
-_08121478: .4byte gUnknown_02024A6A
-_0812147C: .4byte gEnemyParty
-_08121480:
- ldr r1, _0812148C @ =gUnknown_02024A6A
- ldrb r0, [r5]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- b _0812193A
- .align 2, 0
-_0812148C: .4byte gUnknown_02024A6A
-_08121490:
- ldr r5, _081214DC @ =gUnknown_02024C0A
- ldrb r0, [r5]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _081214F4
- ldr r0, _081214E0 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x8
- ands r0, r1
- ldr r4, _081214E4 @ =gUnknown_08400791
- cmp r0, 0
- beq _081214AE
- ldr r4, _081214E8 @ =gUnknown_08400797
-_081214AE:
- ldrb r1, [r4]
- adds r0, r1, 0
- ldr r3, _081214EC @ =gUnknown_02024A6A
- ldr r2, _081214F0 @ =gEnemyParty
- mov r12, r2
- adds r2, r5, 0
- cmp r0, 0xFF
- beq _081214D0
-_081214BE:
- mov r5, r8
- adds r0, r5, r6
- strb r1, [r0]
- adds r6, 0x1
- adds r4, 0x1
- ldrb r1, [r4]
- adds r0, r1, 0
- cmp r0, 0xFF
- bne _081214BE
-_081214D0:
- ldrb r0, [r2]
- lsls r0, 1
- adds r0, r3
- ldrh r1, [r0]
- b _08121908
- .align 2, 0
-_081214DC: .4byte gUnknown_02024C0A
-_081214E0: .4byte gUnknown_020239F8
-_081214E4: .4byte gUnknown_08400791
-_081214E8: .4byte gUnknown_08400797
-_081214EC: .4byte gUnknown_02024A6A
-_081214F0: .4byte gEnemyParty
-_081214F4:
- ldr r1, _08121500 @ =gUnknown_02024A6A
- ldrb r0, [r5]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- b _0812193A
- .align 2, 0
-_08121500: .4byte gUnknown_02024A6A
-_08121504:
- ldr r5, _08121550 @ =gUnknown_02024A60
- ldrb r0, [r5]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _08121568
- ldr r0, _08121554 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x8
- ands r0, r1
- ldr r4, _08121558 @ =gUnknown_08400791
- cmp r0, 0
- beq _08121522
- ldr r4, _0812155C @ =gUnknown_08400797
-_08121522:
- ldrb r1, [r4]
- adds r0, r1, 0
- ldr r3, _08121560 @ =gUnknown_02024A6A
- ldr r2, _08121564 @ =gEnemyParty
- mov r12, r2
- adds r2, r5, 0
- cmp r0, 0xFF
- beq _08121544
-_08121532:
- mov r5, r8
- adds r0, r5, r6
- strb r1, [r0]
- adds r6, 0x1
- adds r4, 0x1
- ldrb r1, [r4]
- adds r0, r1, 0
- cmp r0, 0xFF
- bne _08121532
-_08121544:
- ldrb r0, [r2]
- lsls r0, 1
- adds r0, r3
- ldrh r1, [r0]
- b _08121908
- .align 2, 0
-_08121550: .4byte gUnknown_02024A60
-_08121554: .4byte gUnknown_020239F8
-_08121558: .4byte gUnknown_08400791
-_0812155C: .4byte gUnknown_08400797
-_08121560: .4byte gUnknown_02024A6A
-_08121564: .4byte gEnemyParty
-_08121568:
- ldr r1, _08121574 @ =gUnknown_02024A6A
- ldrb r0, [r5]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- b _0812193A
- .align 2, 0
-_08121574: .4byte gUnknown_02024A6A
-_08121578:
- ldr r4, _081215CC @ =0x02000000
- ldr r0, _081215D0 @ =0x00016003
- adds r5, r4, r0
- ldrb r0, [r5]
- bl battle_side_get_owner
- lsls r0, 24
- adds r2, r4, 0
- cmp r0, 0
- beq _081215E8
- ldr r0, _081215D4 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x8
- ands r0, r1
- ldr r4, _081215D8 @ =gUnknown_08400791
- cmp r0, 0
- beq _0812159C
- ldr r4, _081215DC @ =gUnknown_08400797
-_0812159C:
- ldrb r1, [r4]
- adds r0, r1, 0
- ldr r3, _081215E0 @ =gUnknown_02024A6A
- ldr r5, _081215E4 @ =gEnemyParty
- mov r12, r5
- cmp r0, 0xFF
- beq _081215BC
-_081215AA:
- mov r5, r8
- adds r0, r5, r6
- strb r1, [r0]
- adds r6, 0x1
- adds r4, 0x1
- ldrb r1, [r4]
- adds r0, r1, 0
- cmp r0, 0xFF
- bne _081215AA
-_081215BC:
- ldr r1, _081215D0 @ =0x00016003
- adds r0, r2, r1
- ldrb r0, [r0]
- lsls r0, 1
- adds r0, r3
- ldrh r1, [r0]
- b _08121908
- .align 2, 0
-_081215CC: .4byte 0x02000000
-_081215D0: .4byte 0x00016003
-_081215D4: .4byte gUnknown_020239F8
-_081215D8: .4byte gUnknown_08400791
-_081215DC: .4byte gUnknown_08400797
-_081215E0: .4byte gUnknown_02024A6A
-_081215E4: .4byte gEnemyParty
-_081215E8:
- ldr r1, _081215F4 @ =gUnknown_02024A6A
- ldrb r0, [r5]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- b _0812193A
- .align 2, 0
-_081215F4: .4byte gUnknown_02024A6A
-_081215F8:
- ldr r0, _08121610 @ =gUnknown_02039270
- ldr r2, [r0]
- ldrh r1, [r2]
- movs r0, 0xB1
- lsls r0, 1
- cmp r1, r0
- bls _0812161C
- ldr r0, _08121614 @ =0x02000000
- ldr r2, _08121618 @ =0x000160a0
- adds r0, r2
- b _08121634
- .align 2, 0
-_08121610: .4byte gUnknown_02039270
-_08121614: .4byte 0x02000000
-_08121618: .4byte 0x000160a0
-_0812161C:
- ldrh r1, [r2]
- b _08121652
-_08121620:
- ldr r0, _08121640 @ =gUnknown_02039270
- ldr r2, [r0]
- ldrh r1, [r2, 0x2]
- movs r0, 0xB1
- lsls r0, 1
- cmp r1, r0
- bls _08121650
- ldr r0, _08121644 @ =0x02000000
- ldr r3, _08121648 @ =0x000160a0
- adds r0, r3
-_08121634:
- ldrb r0, [r0]
- lsls r0, 2
- ldr r1, _0812164C @ =gUnknown_08401674
- adds r4, r0, r1
- b _081219E6
- .align 2, 0
-_08121640: .4byte gUnknown_02039270
-_08121644: .4byte 0x02000000
-_08121648: .4byte 0x000160a0
-_0812164C: .4byte gUnknown_08401674
-_08121650:
- ldrh r1, [r2, 0x2]
-_08121652:
- movs r0, 0xD
- muls r1, r0
- ldr r0, _0812165C @ =gMoveNames
- adds r4, r1, r0
- b _081219E6
- .align 2, 0
-_0812165C: .4byte gMoveNames
-_08121660:
- ldr r0, _081216AC @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _081216D8
- ldr r1, _081216B0 @ =gUnknown_02024C04
- ldrh r0, [r1]
- cmp r0, 0xAF
- bne _081216D4
- ldr r2, _081216B4 @ =gLinkPlayers
- ldr r0, _081216B8 @ =0x02000000
- ldr r5, _081216BC @ =0x000160cb
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r2
- ldr r1, _081216C0 @ =gUnknown_02024C0B
- ldrb r2, [r1]
- ldrh r0, [r0, 0x18]
- cmp r0, r2
- bne _081216CC
- lsls r1, r2, 3
- subs r1, r2
- lsls r1, 2
- ldr r0, _081216C4 @ =gEnigmaBerries
- adds r1, r0
- mov r0, sp
- bl StringCopy
- ldr r1, _081216C8 @ =gUnknown_08400A85
- mov r0, sp
- bl StringAppend
- mov r4, sp
- b _081219E6
- .align 2, 0
-_081216AC: .4byte gUnknown_020239F8
-_081216B0: .4byte gUnknown_02024C04
-_081216B4: .4byte gLinkPlayers
-_081216B8: .4byte 0x02000000
-_081216BC: .4byte 0x000160cb
-_081216C0: .4byte gUnknown_02024C0B
-_081216C4: .4byte gEnigmaBerries
-_081216C8: .4byte gUnknown_08400A85
-_081216CC:
- ldr r4, _081216D0 @ =gUnknown_08400A78
- b _081219E6
- .align 2, 0
-_081216D0: .4byte gUnknown_08400A78
-_081216D4:
- ldrh r0, [r1]
- b _081216DC
-_081216D8:
- ldr r0, _081216E8 @ =gUnknown_02024C04
- ldrh r0, [r0]
-_081216DC:
- mov r1, sp
- bl CopyItemName
- mov r4, sp
- b _081219E6
- .align 2, 0
-_081216E8: .4byte gUnknown_02024C04
-_081216EC:
- ldr r0, _081216F0 @ =byte_2024C06
- b _08121734
- .align 2, 0
-_081216F0: .4byte byte_2024C06
-_081216F4:
- ldr r1, _081216FC @ =gUnknown_0203926C
- ldr r0, _08121700 @ =gUnknown_02024C07
- b _08121730
- .align 2, 0
-_081216FC: .4byte gUnknown_0203926C
-_08121700: .4byte gUnknown_02024C07
-_08121704:
- ldr r1, _0812170C @ =gUnknown_0203926C
- ldr r0, _08121710 @ =gUnknown_02024C08
- b _08121730
- .align 2, 0
-_0812170C: .4byte gUnknown_0203926C
-_08121710: .4byte gUnknown_02024C08
-_08121714:
- ldr r1, _08121720 @ =gUnknown_0203926C
- ldr r0, _08121724 @ =0x02000000
- ldr r2, _08121728 @ =0x00016003
- adds r0, r2
- b _08121730
- .align 2, 0
-_08121720: .4byte gUnknown_0203926C
-_08121724: .4byte 0x02000000
-_08121728: .4byte 0x00016003
-_0812172C:
- ldr r1, _08121740 @ =gUnknown_0203926C
- ldr r0, _08121744 @ =gUnknown_02024C0A
-_08121730:
- ldrb r0, [r0]
- adds r0, r1
-_08121734:
- ldrb r1, [r0]
- movs r0, 0xD
- muls r1, r0
- ldr r0, _08121748 @ =gAbilityNames
- adds r4, r1, r0
- b _081219E6
- .align 2, 0
-_08121740: .4byte gUnknown_0203926C
-_08121744: .4byte gUnknown_02024C0A
-_08121748: .4byte gAbilityNames
-_0812174C:
- ldr r3, _08121764 @ =gTrainerBattleOpponent
- ldrh r1, [r3]
- movs r0, 0x80
- lsls r0, 3
- cmp r1, r0
- bne _08121768
- bl GetSecretBaseTrainerNameIndex
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0xD
- b _081217AE
- .align 2, 0
-_08121764: .4byte gTrainerBattleOpponent
-_08121768:
- ldr r0, _08121784 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x80
- lsls r0, 1
- ands r0, r1
- cmp r0, 0
- beq _08121788
- bl get_trainer_class_name_index
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0xD
- b _081217AE
- .align 2, 0
-_08121784: .4byte gUnknown_020239F8
-_08121788:
- movs r0, 0x80
- lsls r0, 4
- ands r0, r1
- cmp r0, 0
- beq _0812179E
- bl sub_8135FD8
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0xD
- b _081217AE
-_0812179E:
- ldr r2, _081217B8 @ =gTrainers
- ldrh r1, [r3]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldrb r1, [r0, 0x1]
- movs r0, 0xD
-_081217AE:
- muls r1, r0
- ldr r0, _081217BC @ =gTrainerClassNames
- adds r4, r1, r0
- b _081219E6
- .align 2, 0
-_081217B8: .4byte gTrainers
-_081217BC: .4byte gTrainerClassNames
-_081217C0:
- ldr r2, _081217E4 @ =gTrainerBattleOpponent
- ldrh r1, [r2]
- movs r0, 0x80
- lsls r0, 3
- cmp r1, r0
- bne _081217EC
- mov r0, sp
- movs r1, 0xFF
- movs r2, 0x8
- bl memset
- ldr r1, _081217E8 @ =0x02017002
- mov r0, sp
- movs r2, 0x7
- bl memcpy
- mov r4, sp
- b _081219E6
- .align 2, 0
-_081217E4: .4byte gTrainerBattleOpponent
-_081217E8: .4byte 0x02017002
-_081217EC:
- ldr r0, _08121804 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x80
- lsls r0, 1
- ands r0, r1
- cmp r0, 0
- beq _08121808
- mov r0, sp
- bl get_trainer_name
- mov r4, sp
- b _081219E6
- .align 2, 0
-_08121804: .4byte gUnknown_020239F8
-_08121808:
- movs r0, 0x80
- lsls r0, 4
- ands r0, r1
- cmp r0, 0
- beq _0812181C
- mov r0, sp
- bl sub_8135FF4
- mov r4, sp
- b _081219E6
-_0812181C:
- ldrh r0, [r2]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _0812182C @ =gTrainers + 0x4
- adds r4, r1, r0
- b _081219E6
- .align 2, 0
-_0812182C: .4byte gTrainers + 0x4
-_08121830:
- lsls r0, r7, 3
- subs r0, r7
- lsls r0, 2
- ldr r1, _0812183C @ =gLinkPlayers + 0x8
- adds r4, r0, r1
- b _081219E6
- .align 2, 0
-_0812183C: .4byte gLinkPlayers + 0x8
-_08121840:
- ldr r4, _08121850 @ =gLinkPlayers
- lsls r0, r7, 3
- subs r0, r7
- lsls r0, 2
- adds r0, r4
- ldrh r1, [r0, 0x18]
- movs r0, 0x2
- b _08121876
- .align 2, 0
-_08121850: .4byte gLinkPlayers
-_08121854:
- ldr r4, _08121864 @ =gLinkPlayers
- lsls r0, r7, 3
- subs r0, r7
- lsls r0, 2
- adds r0, r4
- ldrh r1, [r0, 0x18]
- movs r0, 0x1
- b _08121876
- .align 2, 0
-_08121864: .4byte gLinkPlayers
-_08121868:
- ldr r4, _08121888 @ =gLinkPlayers
- lsls r0, r7, 3
- subs r0, r7
- lsls r0, 2
- adds r0, r4
- ldrh r1, [r0, 0x18]
- movs r0, 0x3
-_08121876:
- eors r0, r1
- bl sub_803FC34
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r4, 0x8
- adds r4, r1, r4
- b _081219E6
- .align 2, 0
-_08121888: .4byte gLinkPlayers
-_0812188C:
- ldr r0, _081218A4 @ =0x02000000
- ldr r3, _081218A8 @ =0x00016003
- adds r0, r3
- ldrb r0, [r0]
- bl sub_803FC34
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- ldr r0, _081218AC @ =gLinkPlayers + 0x8
- adds r4, r1, r0
- b _081219E6
- .align 2, 0
-_081218A4: .4byte 0x02000000
-_081218A8: .4byte 0x00016003
-_081218AC: .4byte gLinkPlayers + 0x8
-_081218B0:
- ldr r4, _081218B4 @ =gSaveBlock2
- b _081219E6
- .align 2, 0
-_081218B4: .4byte gSaveBlock2
-_081218B8:
- bl sub_8082830
- adds r4, r0, 0
- b _081219E6
-_081218C0:
- ldr r5, _08121918 @ =0x02000000
- ldr r1, _0812191C @ =0x00016003
- adds r0, r5, r1
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _08121934
- ldr r0, _08121920 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x8
- ands r0, r1
- ldr r4, _08121924 @ =gUnknown_08400791
- cmp r0, 0
- beq _081218E2
- ldr r4, _08121928 @ =gUnknown_08400797
-_081218E2:
- ldrb r1, [r4]
- adds r0, r1, 0
- ldr r2, _0812192C @ =gEnemyParty
- mov r12, r2
- adds r2, r5, 0
- cmp r0, 0xFF
- beq _08121902
-_081218F0:
- mov r3, r8
- adds r0, r3, r6
- strb r1, [r0]
- adds r6, 0x1
- adds r4, 0x1
- ldrb r1, [r4]
- adds r0, r1, 0
- cmp r0, 0xFF
- bne _081218F0
-_08121902:
- ldr r5, _08121930 @ =0x0001605e
- adds r0, r2, r5
- ldrb r1, [r0]
-_08121908:
- movs r0, 0x64
- muls r0, r1
- add r0, r12
-_0812190E:
- movs r1, 0x2
- mov r2, sp
- bl GetMonData
- b _0812194A
- .align 2, 0
-_08121918: .4byte 0x02000000
-_0812191C: .4byte 0x00016003
-_08121920: .4byte gUnknown_020239F8
-_08121924: .4byte gUnknown_08400791
-_08121928: .4byte gUnknown_08400797
-_0812192C: .4byte gEnemyParty
-_08121930: .4byte 0x0001605e
-_08121934:
- ldr r1, _08121954 @ =0x0001605e
- adds r0, r5, r1
- ldrb r1, [r0]
-_0812193A:
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08121958 @ =gPlayerParty
-_08121940:
- adds r0, r1
- movs r1, 0x2
- mov r2, sp
- bl GetMonData
-_0812194A:
- mov r0, sp
- bl StringGetEnd10
- mov r4, sp
- b _081219E6
- .align 2, 0
-_08121954: .4byte 0x0001605e
-_08121958: .4byte gPlayerParty
-_0812195C:
- ldr r0, _08121970 @ =0x0000084b
- bl FlagGet
- lsls r0, 24
- ldr r4, _08121974 @ =gUnknown_084009ED
- cmp r0, 0
- beq _081219E6
- ldr r4, _08121978 @ =gUnknown_084009F7
- b _081219E6
- .align 2, 0
-_08121970: .4byte 0x0000084b
-_08121974: .4byte gUnknown_084009ED
-_08121978: .4byte gUnknown_084009F7
-_0812197C:
- ldr r0, _08121980 @ =gUnknown_02024C07
- b _08121986
- .align 2, 0
-_08121980: .4byte gUnknown_02024C07
-_08121984:
- ldr r0, _08121998 @ =gUnknown_02024C08
-_08121986:
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- ldr r4, _0812199C @ =gUnknown_084007A7
- cmp r0, 0
- bne _081219E6
- ldr r4, _081219A0 @ =gUnknown_084007AC
- b _081219E6
- .align 2, 0
-_08121998: .4byte gUnknown_02024C08
-_0812199C: .4byte gUnknown_084007A7
-_081219A0: .4byte gUnknown_084007AC
-_081219A4:
- ldr r0, _081219A8 @ =gUnknown_02024C07
- b _081219AE
- .align 2, 0
-_081219A8: .4byte gUnknown_02024C07
-_081219AC:
- ldr r0, _081219C0 @ =gUnknown_02024C08
-_081219AE:
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- ldr r4, _081219C4 @ =gUnknown_0840079C
- cmp r0, 0
- bne _081219E6
- ldr r4, _081219C8 @ =gUnknown_084007A1
- b _081219E6
- .align 2, 0
-_081219C0: .4byte gUnknown_02024C08
-_081219C4: .4byte gUnknown_0840079C
-_081219C8: .4byte gUnknown_084007A1
-_081219CC:
- ldr r0, _081219D0 @ =gUnknown_02024C07
- b _081219D6
- .align 2, 0
-_081219D0: .4byte gUnknown_02024C07
-_081219D4:
- ldr r0, _08121A24 @ =gUnknown_02024C08
-_081219D6:
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- ldr r4, _08121A28 @ =gUnknown_084007B2
- cmp r0, 0
- bne _081219E6
- ldr r4, _08121A2C @ =gUnknown_084007B7
-_081219E6:
- ldrb r1, [r4]
- adds r0, r1, 0
- mov r3, r9
- ldrb r2, [r3]
- adds r3, 0x1
- cmp r0, 0xFF
- beq _08121A06
-_081219F4:
- mov r5, r8
- adds r0, r5, r6
- strb r1, [r0]
- adds r6, 0x1
- adds r4, 0x1
- ldrb r1, [r4]
- adds r0, r1, 0
- cmp r0, 0xFF
- bne _081219F4
-_08121A06:
- lsls r0, r2, 24
- lsrs r0, 24
- cmp r0, 0x21
- bne _08121A3C
- mov r0, r8
- adds r1, r0, r6
- movs r0, 0xFC
- strb r0, [r1]
- adds r6, 0x1
- mov r2, r8
- adds r1, r2, r6
- movs r0, 0x9
- strb r0, [r1]
- adds r6, 0x1
- b _08121A3C
- .align 2, 0
-_08121A24: .4byte gUnknown_02024C08
-_08121A28: .4byte gUnknown_084007B2
-_08121A2C: .4byte gUnknown_084007B7
-_08121A30:
- mov r3, r8
- adds r0, r3, r6
- strb r1, [r0]
- adds r6, 0x1
- mov r3, r9
- adds r3, 0x1
-_08121A3C:
- mov r9, r3
- ldrb r1, [r3]
-_08121A40:
- adds r0, r1, 0
- cmp r0, 0xFF
- beq _08121A4A
- bl _0812101E
-_08121A4A:
- mov r5, r8
- adds r1, r5, r6
- mov r2, r9
- ldrb r0, [r2]
- strb r0, [r1]
- adds r6, 0x1
- adds r0, r6, 0
- add sp, 0xC
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_8120FFC
-
- thumb_func_start sub_8121A68
-sub_8121A68: @ 8121A68
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0xC
- adds r7, r0, 0
- adds r6, r1, 0
- movs r5, 0x1
- movs r0, 0
- mov r8, r0
- movs r0, 0xFF
- strb r0, [r6]
- ldrb r0, [r7, 0x1]
- cmp r0, 0xFF
- bne _08121A86
- b _08121D0E
-_08121A86:
- adds r0, r7, r5
- ldrb r1, [r0]
- adds r4, r0, 0
- cmp r1, 0xA
- bls _08121A92
- b _08121D04
-_08121A92:
- lsls r0, r1, 2
- ldr r1, _08121A9C @ =_08121AA0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08121A9C: .4byte _08121AA0
- .align 2, 0
-_08121AA0:
- .4byte _08121ACC
- .4byte _08121AE8
- .4byte _08121B3C
- .4byte _08121B54
- .4byte _08121B64
- .4byte _08121BDC
- .4byte _08121BF0
- .4byte _08121C02
- .4byte _08121C48
- .4byte _08121C5C
- .4byte _08121C78
-_08121ACC:
- adds r0, r5, r7
- ldrb r1, [r0, 0x1]
- ldrb r0, [r0, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldr r0, _08121AE4 @ =gUnknown_08400F8C
- subs r1, 0xC
- lsls r1, 2
- adds r1, r0
- ldr r1, [r1]
- b _08121CE2
- .align 2, 0
-_08121AE4: .4byte gUnknown_08400F8C
-_08121AE8:
- ldrb r0, [r4, 0x1]
- cmp r0, 0x2
- beq _08121B04
- cmp r0, 0x2
- bgt _08121AF8
- cmp r0, 0x1
- beq _08121AFE
- b _08121B26
-_08121AF8:
- cmp r0, 0x4
- beq _08121B0C
- b _08121B26
-_08121AFE:
- ldrb r4, [r4, 0x3]
- mov r8, r4
- b _08121B26
-_08121B04:
- ldrb r1, [r4, 0x3]
- ldrb r0, [r4, 0x4]
- lsls r0, 8
- b _08121B22
-_08121B0C:
- ldrb r0, [r4, 0x3]
- mov r8, r0
- ldrb r0, [r4, 0x4]
- lsls r0, 8
- mov r1, r8
- orrs r1, r0
- ldrb r0, [r4, 0x5]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r4, 0x6]
- lsls r0, 24
-_08121B22:
- orrs r1, r0
- mov r8, r1
-_08121B26:
- adds r4, r5, r7
- ldrb r3, [r4, 0x2]
- adds r0, r6, 0
- mov r1, r8
- movs r2, 0
- bl ConvertIntToDecimalStringN
- adds r0, r5, 0x3
- ldrb r4, [r4, 0x1]
- adds r5, r0, r4
- b _08121D04
-_08121B3C:
- adds r0, r5, r7
- ldrb r1, [r0, 0x1]
- ldrb r0, [r0, 0x2]
- lsls r0, 8
- orrs r1, r0
- movs r0, 0xD
- muls r1, r0
- ldr r0, _08121B50 @ =gMoveNames
- adds r1, r0
- b _08121CE2
- .align 2, 0
-_08121B50: .4byte gMoveNames
-_08121B54:
- adds r0, r5, r7
- ldrb r0, [r0, 0x1]
- lsls r1, r0, 3
- subs r1, r0
- ldr r0, _08121B60 @ =gTypeNames
- b _08121C66
- .align 2, 0
-_08121B60: .4byte gTypeNames
-_08121B64:
- ldrb r0, [r4, 0x1]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _08121B88
- ldrb r1, [r4, 0x2]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08121B84 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x2
- mov r2, sp
- bl GetMonData
- b _08121BC4
- .align 2, 0
-_08121B84: .4byte gPlayerParty
-_08121B88:
- ldr r0, _08121BA0 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _08121BA8
- ldr r1, _08121BA4 @ =gUnknown_08400797
- adds r0, r6, 0
- bl StringAppend
- b _08121BB0
- .align 2, 0
-_08121BA0: .4byte gUnknown_020239F8
-_08121BA4: .4byte gUnknown_08400797
-_08121BA8:
- ldr r1, _08121BD4 @ =gUnknown_08400791
- adds r0, r6, 0
- bl StringAppend
-_08121BB0:
- adds r0, r5, r7
- ldrb r1, [r0, 0x2]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08121BD8 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x2
- mov r2, sp
- bl GetMonData
-_08121BC4:
- mov r0, sp
- bl StringGetEnd10
- adds r0, r6, 0
- mov r1, sp
- bl StringAppend
- b _08121D02
- .align 2, 0
-_08121BD4: .4byte gUnknown_08400791
-_08121BD8: .4byte gEnemyParty
-_08121BDC:
- ldr r1, _08121BEC @ =gUnknown_08400F58
- adds r0, r5, r7
- ldrb r0, [r0, 0x1]
- lsls r0, 2
- adds r0, r1
- ldr r1, [r0]
- b _08121C68
- .align 2, 0
-_08121BEC: .4byte gUnknown_08400F58
-_08121BF0:
- adds r0, r5, r7
- ldrb r1, [r0, 0x1]
- ldrb r0, [r0, 0x2]
- lsls r0, 8
- orrs r1, r0
- adds r0, r6, 0
- bl GetSpeciesName
- b _08121D02
-_08121C02:
- adds r4, r5, r7
- ldrb r0, [r4, 0x1]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _08121C28
- ldrb r1, [r4, 0x2]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08121C24 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x2
- adds r2, r6, 0
- bl GetMonData
- b _08121C3A
- .align 2, 0
-_08121C24: .4byte gPlayerParty
-_08121C28:
- ldrb r1, [r4, 0x2]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08121C44 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x2
- adds r2, r6, 0
- bl GetMonData
-_08121C3A:
- adds r0, r6, 0
- bl StringGetEnd10
- b _08121D02
- .align 2, 0
-_08121C44: .4byte gEnemyParty
-_08121C48:
- ldr r1, _08121C58 @ =gUnknown_08400F78
- adds r0, r5, r7
- ldrb r0, [r0, 0x1]
- lsls r0, 2
- adds r0, r1
- ldr r1, [r0]
- b _08121C68
- .align 2, 0
-_08121C58: .4byte gUnknown_08400F78
-_08121C5C:
- adds r0, r5, r7
- ldrb r1, [r0, 0x1]
- movs r0, 0xD
- muls r1, r0
- ldr r0, _08121C74 @ =gAbilityNames
-_08121C66:
- adds r1, r0
-_08121C68:
- adds r0, r6, 0
- bl StringAppend
- adds r5, 0x2
- b _08121D04
- .align 2, 0
-_08121C74: .4byte gAbilityNames
-_08121C78:
- adds r0, r5, r7
- ldrb r2, [r0, 0x1]
- ldrb r0, [r0, 0x2]
- lsls r0, 8
- orrs r2, r0
- ldr r0, _08121CC4 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08121CFA
- cmp r2, 0xAF
- bne _08121CF0
- ldr r2, _08121CC8 @ =gLinkPlayers
- ldr r0, _08121CCC @ =0x02000000
- ldr r1, _08121CD0 @ =0x000160cb
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r2
- ldr r1, _08121CD4 @ =gUnknown_02024C0B
- ldrb r2, [r1]
- ldrh r0, [r0, 0x18]
- cmp r0, r2
- bne _08121CE0
- lsls r1, r2, 3
- subs r1, r2
- lsls r1, 2
- ldr r0, _08121CD8 @ =gEnigmaBerries
- adds r1, r0
- adds r0, r6, 0
- bl StringCopy
- ldr r1, _08121CDC @ =gUnknown_08400A85
- b _08121CE2
- .align 2, 0
-_08121CC4: .4byte gUnknown_020239F8
-_08121CC8: .4byte gLinkPlayers
-_08121CCC: .4byte 0x02000000
-_08121CD0: .4byte 0x000160cb
-_08121CD4: .4byte gUnknown_02024C0B
-_08121CD8: .4byte gEnigmaBerries
-_08121CDC: .4byte gUnknown_08400A85
-_08121CE0:
- ldr r1, _08121CEC @ =gUnknown_08400A78
-_08121CE2:
- adds r0, r6, 0
- bl StringAppend
- b _08121D02
- .align 2, 0
-_08121CEC: .4byte gUnknown_08400A78
-_08121CF0:
- adds r0, r2, 0
- adds r1, r6, 0
- bl CopyItemName
- b _08121D02
-_08121CFA:
- adds r0, r2, 0
- adds r1, r6, 0
- bl CopyItemName
-_08121D02:
- adds r5, 0x3
-_08121D04:
- adds r0, r7, r5
- ldrb r0, [r0]
- cmp r0, 0xFF
- beq _08121D0E
- b _08121A86
-_08121D0E:
- add sp, 0xC
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8121A68
-
- thumb_func_start sub_8121D1C
-sub_8121D1C: @ 8121D1C
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r2, 0
- ldr r5, _08121D50 @ =gUnknown_02039270
- ldr r3, _08121D54 @ =gUnknown_084016BC
-_08121D26:
- cmp r2, 0x4
- beq _08121D3C
- ldrh r1, [r3]
- cmp r1, 0
- bne _08121D32
- adds r2, 0x1
-_08121D32:
- ldr r0, [r5]
- adds r3, 0x2
- ldrh r0, [r0]
- cmp r1, r0
- bne _08121D26
-_08121D3C:
- cmp r2, 0
- blt _08121D68
- cmp r2, 0x2
- bgt _08121D5C
- ldr r1, _08121D58 @ =gUnknown_08400E5E
- adds r0, r4, 0
- bl StringCopy
- b _08121D68
- .align 2, 0
-_08121D50: .4byte gUnknown_02039270
-_08121D54: .4byte gUnknown_084016BC
-_08121D58: .4byte gUnknown_08400E5E
-_08121D5C:
- cmp r2, 0x4
- bgt _08121D68
- ldr r1, _08121D70 @ =gUnknown_08400E62
- adds r0, r4, 0
- bl StringCopy
-_08121D68:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08121D70: .4byte gUnknown_08400E62
- thumb_func_end sub_8121D1C
-
- thumb_func_start sub_8121D74
-sub_8121D74: @ 8121D74
- push {r4,r5,lr}
- adds r3, r0, 0
- movs r4, 0
- b _08121D7E
-_08121D7C:
- adds r3, 0x1
-_08121D7E:
- ldrb r0, [r3]
- cmp r0, 0xFF
- bne _08121D7C
- ldr r1, _08121DB4 @ =gUnknown_084016BC
- ldr r5, _08121DB8 @ =gUnknown_02039270
- movs r0, 0
- lsls r0, 1
- adds r2, r0, r1
-_08121D8E:
- cmp r4, 0x4
- beq _08121DA8
- ldrh r1, [r2]
- cmp r1, 0
- bne _08121D9A
- adds r4, 0x1
-_08121D9A:
- ldr r0, [r5]
- adds r2, 0x2
- ldrh r0, [r0]
- cmp r1, r0
- bne _08121D8E
- cmp r4, 0x4
- bhi _08121E04
-_08121DA8:
- lsls r0, r4, 2
- ldr r1, _08121DBC @ =_08121DC0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08121DB4: .4byte gUnknown_084016BC
-_08121DB8: .4byte gUnknown_02039270
-_08121DBC: .4byte _08121DC0
- .align 2, 0
-_08121DC0:
- .4byte _08121DD4
- .4byte _08121DDC
- .4byte _08121DE4
- .4byte _08121DEC
- .4byte _08121DFC
-_08121DD4:
- ldr r1, _08121DD8 @ =gUnknown_084007C8
- b _08121DEE
- .align 2, 0
-_08121DD8: .4byte gUnknown_084007C8
-_08121DDC:
- ldr r1, _08121DE0 @ =gUnknown_084007CA
- b _08121DEE
- .align 2, 0
-_08121DE0: .4byte gUnknown_084007CA
-_08121DE4:
- ldr r1, _08121DE8 @ =gUnknown_084007CC
- b _08121DEE
- .align 2, 0
-_08121DE8: .4byte gUnknown_084007CC
-_08121DEC:
- ldr r1, _08121DF8 @ =gUnknown_084007CE
-_08121DEE:
- adds r0, r3, 0
- bl StringCopy
- b _08121E04
- .align 2, 0
-_08121DF8: .4byte gUnknown_084007CE
-_08121DFC:
- ldr r1, _08121E0C @ =gUnknown_084007D0
- adds r0, r3, 0
- bl StringCopy
-_08121E04:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08121E0C: .4byte gUnknown_084007D0
- thumb_func_end sub_8121D74
-
- thumb_func_start sub_8121E10
-sub_8121E10: @ 8121E10
- push {lr}
- bl sub_8121E58
- ldr r0, _08121E2C @ =0x0201b000
- ldr r1, _08121E30 @ =0x00000263
- adds r0, r1
- movs r1, 0
- strb r1, [r0]
- movs r0, 0x4
- bl OpenPartyMenu
- pop {r0}
- bx r0
- .align 2, 0
-_08121E2C: .4byte 0x0201b000
-_08121E30: .4byte 0x00000263
- thumb_func_end sub_8121E10
-
- thumb_func_start sub_8121E34
-sub_8121E34: @ 8121E34
- push {lr}
- bl sub_8121E58
- ldr r0, _08121E50 @ =0x0201b000
- ldr r1, _08121E54 @ =0x00000263
- adds r0, r1
- movs r1, 0x1
- strb r1, [r0]
- movs r0, 0x4
- movs r1, 0
- bl OpenPartyMenu
- pop {r0}
- bx r0
- .align 2, 0
-_08121E50: .4byte 0x0201b000
-_08121E54: .4byte 0x00000263
- thumb_func_end sub_8121E34
-
- thumb_func_start sub_8121E58
-sub_8121E58: @ 8121E58
- push {lr}
- movs r1, 0
- ldr r3, _08121E74 @ =gUnknown_02039270
- movs r2, 0
-_08121E60:
- adds r0, r1, r3
- strb r2, [r0]
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x2
- bls _08121E60
- pop {r0}
- bx r0
- .align 2, 0
-_08121E74: .4byte gUnknown_02039270
- thumb_func_end sub_8121E58
-
- thumb_func_start sub_8121E78
-sub_8121E78: @ 8121E78
- push {r4-r6,lr}
- ldr r1, _08121E98 @ =0x0201b000
- 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 _08121E8E
- b _08122026
-_08121E8E:
- lsls r0, 2
- ldr r1, _08121E9C @ =_08121EA0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08121E98: .4byte 0x0201b000
-_08121E9C: .4byte _08121EA0
- .align 2, 0
-_08121EA0:
- .4byte _08121EC0
- .4byte _08121F00
- .4byte _08121F14
- .4byte _08121F28
- .4byte _08121F54
- .4byte _08121F68
- .4byte _08121F6E
- .4byte _08121FF8
-_08121EC0:
- ldr r0, _08121EE8 @ =0x00000266
- adds r5, r4, r0
- movs r1, 0
- ldrsh r3, [r5, r1]
- ldr r0, _08121EEC @ =gPlayerPartyCount
- ldrb r0, [r0]
- cmp r3, r0
- bge _08121EF4
- movs r2, 0x98
- lsls r2, 2
- adds r0, r4, r2
- ldrb r0, [r0]
- ldrb r1, [r5]
- movs r2, 0x64
- muls r2, r3
- ldr r3, _08121EF0 @ =gPlayerParty
- adds r2, r3
- bl sub_806D90C
- b _08122020
- .align 2, 0
-_08121EE8: .4byte 0x00000266
-_08121EEC: .4byte gPlayerPartyCount
-_08121EF0: .4byte gPlayerParty
-_08121EF4:
- movs r0, 0
- strh r0, [r5]
- movs r0, 0x99
- lsls r0, 2
- adds r1, r4, r0
- b _08121FE8
-_08121F00:
- bl sub_806DA98
- ldr r1, _08121F10 @ =0x0201b000
- movs r2, 0x99
- lsls r2, 2
- adds r1, r2
- b _08121FE8
- .align 2, 0
-_08121F10: .4byte 0x0201b000
-_08121F14:
- 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 _08121FE8
-_08121F28:
- movs r1, 0x98
- lsls r1, 2
- adds r0, r4, r1
- ldrb r0, [r0]
- ldr r2, _08121F50 @ =0x00000266
- adds r5, r4, r2
- ldrb r1, [r5]
- bl sub_806BD58
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08122020
- movs r0, 0
- strh r0, [r5]
- movs r0, 0x99
- lsls r0, 2
- adds r1, r4, r0
- b _08121FE8
- .align 2, 0
-_08121F50: .4byte 0x00000266
-_08121F54:
- bl sub_806E334
- ldr r1, _08121F64 @ =0x0201b000
- movs r2, 0x99
- lsls r2, 2
- adds r1, r2
- b _08121FE8
- .align 2, 0
-_08121F64: .4byte 0x0201b000
-_08121F68:
- bl sub_806E0C4
- b _08121FE0
-_08121F6E:
- movs r5, 0
- b _08121FD8
-_08121F72:
- movs r4, 0
- adds r6, r5, 0x1
- b _08121F7E
-_08121F78:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
-_08121F7E:
- cmp r4, 0x2
- bhi _08121FA0
- ldr r0, _08121FC4 @ =gUnknown_02039270
- adds r0, r4, r0
- ldrb r0, [r0]
- cmp r0, r6
- bne _08121F78
- lsls r1, r4, 3
- subs r1, r4
- lsls r1, 25
- movs r2, 0xE0
- lsls r2, 21
- adds r1, r2
- lsrs r1, 24
- adds r0, r5, 0
- bl sub_806BC3C
-_08121FA0:
- cmp r4, 0x3
- bne _08121FD4
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08121FC8 @ =gPlayerParty
- adds r0, r1
- bl sub_8122030
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08121FCC
- adds r0, r5, 0
- movs r1, 0x70
- bl sub_806BC3C
- b _08121FD4
- .align 2, 0
-_08121FC4: .4byte gUnknown_02039270
-_08121FC8: .4byte gPlayerParty
-_08121FCC:
- adds r0, r5, 0
- movs r1, 0x7E
- bl sub_806BC3C
-_08121FD4:
- lsls r0, r6, 24
- lsrs r5, r0, 24
-_08121FD8:
- ldr r0, _08121FF0 @ =gPlayerPartyCount
- ldrb r0, [r0]
- cmp r5, r0
- bcc _08121F72
-_08121FE0:
- ldr r1, _08121FF4 @ =0x0201b000
- movs r0, 0x99
- lsls r0, 2
- adds r1, r0
-_08121FE8:
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- b _08122026
- .align 2, 0
-_08121FF0: .4byte gPlayerPartyCount
-_08121FF4: .4byte 0x0201b000
-_08121FF8:
- ldr r1, _0812201C @ =0x00000266
- adds r5, r4, r1
- ldrb r0, [r5]
- bl sub_806B58C
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08122020
- movs r1, 0
- strh r1, [r5]
- movs r2, 0x99
- lsls r2, 2
- adds r0, r4, r2
- strh r1, [r0]
- movs r0, 0x1
- b _08122028
- .align 2, 0
-_0812201C: .4byte 0x00000266
-_08122020:
- ldrh r0, [r5]
- adds r0, 0x1
- strh r0, [r5]
-_08122026:
- movs r0, 0
-_08122028:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_8121E78
-
- thumb_func_start sub_8122030
-sub_8122030: @ 8122030
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- bne _0812207C
- ldr r0, _08122058 @ =0x0201b000
- ldr r1, _0812205C @ =0x00000263
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _08122060
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- beq _0812207C
- b _081220B6
- .align 2, 0
-_08122058: .4byte 0x0201b000
-_0812205C: .4byte 0x00000263
-_08122060:
- ldr r0, _08122080 @ =gSaveBlock2
- ldr r1, _08122084 @ =0x00000554
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _08122088
- adds r0, r4, 0
- movs r1, 0x38
- bl GetMonData
- cmp r0, 0x32
- bls _08122088
-_0812207C:
- movs r0, 0
- b _081220B8
- .align 2, 0
-_08122080: .4byte gSaveBlock2
-_08122084: .4byte 0x00000554
-_08122088:
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r3, r0, 16
- ldr r1, _081220C0 @ =gBattleTowerBanlist
- movs r0, 0
- lsls r0, 1
- adds r2, r0, r1
- ldrh r0, [r2]
- ldr r1, _081220C4 @ =0x0000ffff
- cmp r0, r1
- beq _081220B6
- adds r4, r1, 0
- adds r1, r2, 0
-_081220A8:
- ldrh r0, [r1]
- cmp r0, r3
- beq _0812207C
- adds r1, 0x2
- ldrh r0, [r1]
- cmp r0, r4
- bne _081220A8
-_081220B6:
- movs r0, 0x1
-_081220B8:
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_081220C0: .4byte gBattleTowerBanlist
-_081220C4: .4byte 0x0000ffff
- thumb_func_end sub_8122030
-
- thumb_func_start sub_81220C8
-sub_81220C8: @ 81220C8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r1, _081220EC @ =0x0201b000
- ldr r2, _081220F0 @ =0x00000263
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0
- beq _081221A2
- ldr r0, _081220F4 @ =gUnknown_02039270
- ldrb r0, [r0, 0x2]
- cmp r0, 0
- bne _08122100
- movs r0, 0x11
- b _081221A4
- .align 2, 0
-_081220EC: .4byte 0x0201b000
-_081220F0: .4byte 0x00000263
-_081220F4: .4byte gUnknown_02039270
-_081220F8:
- movs r0, 0x12
- b _081221A4
-_081220FC:
- movs r0, 0x13
- b _081221A4
-_08122100:
- movs r5, 0
-_08122102:
- ldr r4, _081221B4 @ =gUnknown_02039270
- adds r4, r5, r4
- ldrb r0, [r4]
- movs r1, 0x64
- muls r0, r1
- ldr r2, _081221B8 @ =gUnknown_030042FC
- adds r0, r2
- movs r1, 0xB
- bl GetMonData
- ldr r1, _081221BC @ =0x0201b000
- ldr r2, _081221C0 @ =0x00000282
- adds r6, r1, r2
- strh r0, [r6]
- ldrb r0, [r4]
- movs r1, 0x64
- muls r0, r1
- ldr r2, _081221B8 @ =gUnknown_030042FC
- adds r0, r2
- movs r1, 0xC
- bl GetMonData
- ldr r1, _081221C4 @ =0x0201b280
- strh r0, [r1]
- adds r1, r5, 0x1
- lsls r0, r1, 24
- lsrs r5, r0, 24
- mov r10, r1
- cmp r5, 0x2
- bhi _08122198
- ldr r2, _081221C8 @ =0xfffffd7e
- adds r2, r6
- mov r9, r2
- movs r0, 0x64
- mov r8, r0
- ldr r7, _081221B8 @ =gUnknown_030042FC
-_0812214A:
- ldr r0, _081221C0 @ =0x00000282
- add r0, r9
- movs r1, 0
- ldrsh r4, [r0, r1]
- ldr r0, _081221B4 @ =gUnknown_02039270
- adds r6, r5, r0
- ldrb r0, [r6]
- mov r2, r8
- muls r2, r0
- adds r0, r2, 0
- adds r0, r7
- movs r1, 0xB
- bl GetMonData
- cmp r4, r0
- beq _081220F8
- movs r1, 0xA0
- lsls r1, 2
- add r1, r9
- movs r2, 0
- ldrsh r0, [r1, r2]
- cmp r0, 0
- beq _0812218E
- adds r4, r0, 0
- ldrb r0, [r6]
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- adds r0, r7
- movs r1, 0xC
- bl GetMonData
- cmp r4, r0
- beq _081220FC
-_0812218E:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x2
- bls _0812214A
-_08122198:
- mov r2, r10
- lsls r0, r2, 24
- lsrs r5, r0, 24
- cmp r5, 0x1
- bls _08122102
-_081221A2:
- movs r0, 0xFF
-_081221A4:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_081221B4: .4byte gUnknown_02039270
-_081221B8: .4byte gUnknown_030042FC
-_081221BC: .4byte 0x0201b000
-_081221C0: .4byte 0x00000282
-_081221C4: .4byte 0x0201b280
-_081221C8: .4byte 0xfffffd7e
- thumb_func_end sub_81220C8
-
- thumb_func_start sub_81221CC
-sub_81221CC: @ 81221CC
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- movs r1, 0
- ldr r3, _081221E4 @ =gUnknown_02039270
-_081221D6:
- adds r0, r1, r3
- ldrb r0, [r0]
- cmp r0, r2
- bne _081221E8
- movs r0, 0x1
- b _081221F4
- .align 2, 0
-_081221E4: .4byte gUnknown_02039270
-_081221E8:
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x2
- bls _081221D6
- movs r0, 0
-_081221F4:
- pop {r1}
- bx r1
- thumb_func_end sub_81221CC
-
- thumb_func_start sub_81221F8
-sub_81221F8: @ 81221F8
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- movs r0, 0x5
- movs r1, 0x1
- bl sub_806D538
- ldr r5, _08122248 @ =gUnknown_03005CE0
- ldrb r1, [r5]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0812224C @ =gPlayerParty
- adds r0, r1
- bl sub_8122030
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08122284
- ldrb r0, [r5]
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- bl sub_81221CC
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x1
- bne _0812225C
- ldr r1, _08122250 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- strh r2, [r0, 0x10]
- ldr r1, _08122254 @ =gUnknown_084017D8
- ldr r2, _08122258 @ =gUnknown_084017B0
- movs r0, 0x1
- b _08122270
- .align 2, 0
-_08122248: .4byte gUnknown_03005CE0
-_0812224C: .4byte gPlayerParty
-_08122250: .4byte gTasks
-_08122254: .4byte gUnknown_084017D8
-_08122258: .4byte gUnknown_084017B0
-_0812225C:
- ldr r1, _08122278 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0x10]
- ldr r1, _0812227C @ =gUnknown_084017D8
- ldr r2, _08122280 @ =gUnknown_084017B0
- movs r0, 0
-_08122270:
- movs r3, 0
- bl sub_806E750
- b _0812229E
- .align 2, 0
-_08122278: .4byte gTasks
-_0812227C: .4byte gUnknown_084017D8
-_08122280: .4byte gUnknown_084017B0
-_08122284:
- ldr r1, _081222A4 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r1, 0x2
- strh r1, [r0, 0x10]
- ldr r1, _081222A8 @ =gUnknown_084017D8
- ldr r2, _081222AC @ =gUnknown_084017B0
- movs r0, 0x2
- movs r3, 0
- bl sub_806E750
-_0812229E:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_081222A4: .4byte gTasks
-_081222A8: .4byte gUnknown_084017D8
-_081222AC: .4byte gUnknown_084017B0
- thumb_func_end sub_81221F8
-
- thumb_func_start sub_81222B0
-sub_81222B0: @ 81222B0
- push {r4,r5,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _081222DC @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0
- bne _0812237C
- adds r0, r4, 0
- bl sub_806BE38
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- beq _081222E0
- cmp r0, 0x2
- beq _08122354
- b _0812237C
- .align 2, 0
-_081222DC: .4byte gPaletteFade
-_081222E0:
- movs r0, 0x5
- bl PlaySE
- adds r0, r4, 0
- bl sub_806CA38
- ldr r1, _08122320 @ =gUnknown_03005CE0
- strb r0, [r1]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x6
- beq _08122334
- ldrb r1, [r1]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08122324 @ =gPlayerParty
- adds r0, r1
- ldr r1, _08122328 @ =gStringVar1
- bl GetMonNickname
- adds r0, r4, 0
- bl sub_81221F8
- ldr r1, _0812232C @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _08122330 @ =sub_812238C
- str r1, [r0]
- b _08122342
- .align 2, 0
-_08122320: .4byte gUnknown_03005CE0
-_08122324: .4byte gPlayerParty
-_08122328: .4byte gStringVar1
-_0812232C: .4byte gTasks
-_08122330: .4byte sub_812238C
-_08122334:
- ldr r0, _0812234C @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _08122350 @ =sub_81224A8
- str r0, [r1]
-_08122342:
- adds r0, r4, 0
- bl sub_808B5B4
- b _0812237C
- .align 2, 0
-_0812234C: .4byte gTasks
-_08122350: .4byte sub_81224A8
-_08122354:
- movs r0, 0x5
- bl PlaySE
- bl sub_8121E58
- movs r0, 0x1
- negs r0, r0
- str r5, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, _08122384 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _08122388 @ =sub_8122450
- str r1, [r0]
-_0812237C:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08122384: .4byte gTasks
-_08122388: .4byte sub_8122450
- thumb_func_end sub_81222B0
-
- thumb_func_start sub_812238C
-sub_812238C: @ 812238C
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r7, r0, 24
- adds r4, r7, 0
- ldr r0, _081223C8 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r3, 0x80
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- bne _0812244A
- ldr r2, _081223CC @ =gMain
- ldrh r1, [r2, 0x30]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _081223D0
- bl GetMenuCursorPos
- lsls r0, 24
- cmp r0, 0
- beq _0812244A
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- negs r0, r0
- bl MoveMenuCursor
- b _0812244A
- .align 2, 0
-_081223C8: .4byte gPaletteFade
-_081223CC: .4byte gMain
-_081223D0:
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- beq _081223F2
- bl GetMenuCursorPos
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- beq _0812244A
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- bl MoveMenuCursor
- b _0812244A
-_081223F2:
- ldrh r1, [r2, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0812243C
- movs r0, 0x5
- bl PlaySE
- ldr r1, _08122430 @ =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r1
- ldrb r4, [r0, 0x10]
- ldr r5, _08122434 @ =gUnknown_084017D8
- ldr r6, _08122438 @ =gUnknown_084017B0
- bl GetMenuCursorPos
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- adds r0, r4, 0
- adds r1, r5, 0
- adds r2, r6, 0
- bl sub_806E81C
- adds r1, r0, 0
- adds r0, r7, 0
- bl _call_via_r1
- b _0812244A
- .align 2, 0
-_08122430: .4byte gTasks
-_08122434: .4byte gUnknown_084017D8
-_08122438: .4byte gUnknown_084017B0
-_0812243C:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0812244A
- adds r0, r4, 0
- bl sub_8122838
-_0812244A:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_812238C
-
- thumb_func_start sub_8122450
-sub_8122450: @ 8122450
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _08122478 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08122470
- ldr r0, _0812247C @ =gMain
- ldr r0, [r0, 0x8]
- bl SetMainCallback2
- adds r0, r4, 0
- bl DestroyTask
-_08122470:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08122478: .4byte gPaletteFade
-_0812247C: .4byte gMain
- thumb_func_end sub_8122450
-
- thumb_func_start sub_8122480
-sub_8122480: @ 8122480
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _081224A4 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0812249A
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _081224A0
-_0812249A:
- adds r0, r2, 0
- bl sub_8122838
-_081224A0:
- pop {r0}
- bx r0
- .align 2, 0
-_081224A4: .4byte gMain
- thumb_func_end sub_8122480
-
- thumb_func_start sub_81224A8
-sub_81224A8: @ 81224A8
- push {r4,r5,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r4, r0, 24
- adds r5, r4, 0
- bl sub_81220C8
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- beq _081224D0
- movs r1, 0
- bl sub_806D538
- ldr r0, _081224CC @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- b _08122518
- .align 2, 0
-_081224CC: .4byte gTasks
-_081224D0:
- ldr r0, _081224F8 @ =gUnknown_02039270
- ldrb r0, [r0]
- cmp r0, 0
- beq _08122504
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, _081224FC @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _08122500 @ =sub_8122450
- str r1, [r0]
- b _08122520
- .align 2, 0
-_081224F8: .4byte gUnknown_02039270
-_081224FC: .4byte gTasks
-_08122500: .4byte sub_8122450
-_08122504:
- movs r0, 0x20
- bl PlaySE
- movs r0, 0xE
- movs r1, 0
- bl sub_806D538
- ldr r0, _08122528 @ =gTasks
- lsls r1, r5, 2
- adds r1, r5
-_08122518:
- lsls r1, 3
- adds r1, r0
- ldr r0, _0812252C @ =sub_8122480
- str r0, [r1]
-_08122520:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08122528: .4byte gTasks
-_0812252C: .4byte sub_8122480
- thumb_func_end sub_81224A8
-
- thumb_func_start sub_8122530
-sub_8122530: @ 8122530
- push {r4,r5,lr}
- ldr r5, _08122578 @ =0x0201b260
- ldr r4, _0812257C @ =gUnknown_020384F0
-_08122536:
- bl sub_806B124
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08122590
- ldrb r0, [r5]
- ldrb r1, [r4]
- bl sub_806C994
- ldrb r0, [r5]
- movs r1, 0
- bl sub_806C658
- ldrb r1, [r4]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08122580 @ =gPlayerParty
- adds r0, r1
- ldr r1, _08122584 @ =gStringVar1
- bl GetMonNickname
- ldr r1, _08122588 @ =gUnknown_03005CE0
- ldrb r0, [r4]
- strb r0, [r1]
- ldrb r0, [r5]
- bl sub_81221F8
- ldr r0, _0812258C @ =sub_806AEDC
- bl SetMainCallback2
- b _0812259C
- .align 2, 0
-_08122578: .4byte 0x0201b260
-_0812257C: .4byte gUnknown_020384F0
-_08122580: .4byte gPlayerParty
-_08122584: .4byte gStringVar1
-_08122588: .4byte gUnknown_03005CE0
-_0812258C: .4byte sub_806AEDC
-_08122590:
- bl sub_80F9344
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08122536
-_0812259C:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8122530
-
- thumb_func_start sub_81225A4
-sub_81225A4: @ 81225A4
- push {lr}
- ldr r2, _081225C8 @ =gPaletteFade
- ldrb r0, [r2, 0x8]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2, 0x8]
- ldr r2, _081225CC @ =sub_812238C
- movs r0, 0x4
- movs r1, 0xFF
- movs r3, 0x5
- bl sub_806AF4C
- ldr r0, _081225D0 @ =sub_8122530
- bl SetMainCallback2
- pop {r0}
- bx r0
- .align 2, 0
-_081225C8: .4byte gPaletteFade
-_081225CC: .4byte sub_812238C
-_081225D0: .4byte sub_8122530
- thumb_func_end sub_81225A4
-
- thumb_func_start sub_81225D4
-sub_81225D4: @ 81225D4
- push {r4,r5,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r0, _0812263C @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0
- bne _08122632
- ldr r2, _08122640 @ =gSprites
- ldr r1, _08122644 @ =gTasks
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- adds r0, r1
- ldrh r1, [r0, 0xE]
- lsls r1, 16
- asrs r1, 24
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r4, [r0, 0x2E]
- lsls r4, 24
- lsrs r4, 24
- adds r0, r3, 0
- bl DestroyTask
- ldr r0, _08122648 @ =0x0201b000
- ldr r1, _0812264C @ =0x00000262
- adds r0, r1
- movs r1, 0x1
- strb r1, [r0]
- ldr r0, _08122650 @ =gPlayerParty
- ldr r1, _08122654 @ =gPlayerPartyCount
- ldrb r2, [r1]
- subs r2, 0x1
- lsls r2, 24
- lsrs r2, 24
- ldr r3, _08122658 @ =sub_81225A4
- str r5, [sp]
- adds r1, r4, 0
- bl sub_809D8BC
-_08122632:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0812263C: .4byte gPaletteFade
-_08122640: .4byte gSprites
-_08122644: .4byte gTasks
-_08122648: .4byte 0x0201b000
-_0812264C: .4byte 0x00000262
-_08122650: .4byte gPlayerParty
-_08122654: .4byte gPlayerPartyCount
-_08122658: .4byte sub_81225A4
- thumb_func_end sub_81225D4
-
- thumb_func_start sub_812265C
-sub_812265C: @ 812265C
- 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, _0812268C @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _08122690 @ =sub_81225D4
- str r1, [r0]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0812268C: .4byte gTasks
-_08122690: .4byte sub_81225D4
- thumb_func_end sub_812265C
-
- thumb_func_start sub_8122694
-sub_8122694: @ 8122694
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- movs r4, 0
- ldr r3, _081226D4 @ =gUnknown_02039270
- ldr r2, _081226D8 @ =gUnknown_03005CE0
-_081226A0:
- adds r1, r4, r3
- ldrb r0, [r1]
- cmp r0, 0
- bne _081226DC
- ldrb r0, [r2]
- adds r0, 0x1
- strb r0, [r1]
- ldrb r0, [r2]
- lsls r1, r4, 3
- subs r1, r4
- lsls r1, 25
- movs r2, 0xE0
- lsls r2, 21
- adds r1, r2
- lsrs r1, 24
- bl sub_806BC3C
- cmp r4, 0x2
- bne _081226CC
- adds r0, r5, 0
- bl sub_806C890
-_081226CC:
- adds r0, r5, 0
- bl sub_8122838
- b _08122716
- .align 2, 0
-_081226D4: .4byte gUnknown_02039270
-_081226D8: .4byte gUnknown_03005CE0
-_081226DC:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x2
- bls _081226A0
- movs r0, 0x20
- bl PlaySE
- movs r0, 0x14
- movs r1, 0xA
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- bl sub_8072DEC
- bl sub_806D5A4
- ldr r0, _0812271C @ =gOtherText_NoMoreThreePoke
- movs r1, 0x1
- bl sub_806E834
- ldr r1, _08122720 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, _08122724 @ =sub_8122728
- str r1, [r0]
-_08122716:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0812271C: .4byte gOtherText_NoMoreThreePoke
-_08122720: .4byte gTasks
-_08122724: .4byte sub_8122728
- thumb_func_end sub_8122694
-
- thumb_func_start sub_8122728
-sub_8122728: @ 8122728
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _08122768 @ =gUnknown_0202E8F6
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _08122760
- ldr r0, _0812276C @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0812274A
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08122760
-_0812274A:
- movs r0, 0
- movs r1, 0xE
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- bl sub_8072DEC
- adds r0, r4, 0
- bl sub_8122838
-_08122760:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08122768: .4byte gUnknown_0202E8F6
-_0812276C: .4byte gMain
- thumb_func_end sub_8122728
-
- thumb_func_start sub_8122770
-sub_8122770: @ 8122770
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- movs r4, 0
- ldr r5, _08122798 @ =gUnknown_03005CE0
- ldr r3, _0812279C @ =gUnknown_02039270
-_0812277C:
- adds r2, r4, r3
- ldrb r1, [r2]
- ldrb r0, [r5]
- adds r0, 0x1
- cmp r1, r0
- bne _081227B4
- movs r1, 0
- strb r1, [r2]
- cmp r4, 0
- beq _081227A0
- cmp r4, 0x1
- beq _081227AC
- b _081227BE
- .align 2, 0
-_08122798: .4byte gUnknown_03005CE0
-_0812279C: .4byte gUnknown_02039270
-_081227A0:
- ldrb r0, [r3, 0x1]
- strb r0, [r3]
- ldrb r0, [r3, 0x2]
- strb r0, [r3, 0x1]
- strb r4, [r3, 0x2]
- b _081227BE
-_081227AC:
- ldrb r0, [r3, 0x2]
- strb r0, [r3, 0x1]
- strb r1, [r3, 0x2]
- b _081227BE
-_081227B4:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x2
- bls _0812277C
-_081227BE:
- ldrb r0, [r5]
- movs r1, 0x70
- bl sub_806BC3C
- ldr r4, _081227F8 @ =gUnknown_02039270
- ldrb r0, [r4]
- cmp r0, 0
- beq _081227DA
- subs r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x1C
- bl sub_806BC3C
-_081227DA:
- ldrb r0, [r4, 0x1]
- cmp r0, 0
- beq _081227EC
- subs r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x2A
- bl sub_806BC3C
-_081227EC:
- adds r0, r6, 0
- bl sub_8122838
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_081227F8: .4byte gUnknown_02039270
- thumb_func_end sub_8122770
-
- thumb_func_start sub_81227FC
-sub_81227FC: @ 81227FC
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x14
- movs r1, 0xA
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- bl sub_8072DEC
- movs r0, 0
- movs r1, 0
- bl sub_806D538
- ldr r1, _08122830 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _08122834 @ =sub_81222B0
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08122830: .4byte gTasks
-_08122834: .4byte sub_81222B0
- thumb_func_end sub_81227FC
-
- thumb_func_start sub_8122838
-sub_8122838: @ 8122838
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x5
- bl PlaySE
- adds r0, r4, 0
- bl sub_81227FC
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8122838
-
- thumb_func_start sub_8122854
-sub_8122854: @ 8122854
- push {r4,lr}
- ldr r1, _08122874 @ =0x0201b000
- movs r2, 0x99
- lsls r2, 2
- adds r0, r1, r2
- movs r2, 0
- ldrsh r0, [r0, r2]
- adds r4, r1, 0
- cmp r0, 0x4
- bhi _081228E0
- lsls r0, 2
- ldr r1, _08122878 @ =_0812287C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08122874: .4byte 0x0201b000
-_08122878: .4byte _0812287C
- .align 2, 0
-_0812287C:
- .4byte _08122890
- .4byte _081228A4
- .4byte _081228AA
- .4byte _081228BE
- .4byte _081228D8
-_08122890:
- movs r1, 0x98
- lsls r1, 2
- adds r0, r4, r1
- ldrb r0, [r0]
- bl sub_81228E8
- movs r2, 0x99
- lsls r2, 2
- adds r1, r4, r2
- b _081228CA
-_081228A4:
- bl sub_806DA98
- b _081228C2
-_081228AA:
- movs r1, 0x98
- lsls r1, 2
- adds r0, r4, r1
- ldrb r0, [r0]
- bl sub_8122950
- movs r2, 0x99
- lsls r2, 2
- adds r1, r4, r2
- b _081228CA
-_081228BE:
- bl sub_81229B8
-_081228C2:
- ldr r1, _081228D4 @ =0x0201b000
- movs r0, 0x99
- lsls r0, 2
- adds r1, r0
-_081228CA:
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- b _081228E0
- .align 2, 0
-_081228D4: .4byte 0x0201b000
-_081228D8:
- bl sub_806B908
- movs r0, 0x1
- b _081228E2
-_081228E0:
- movs r0, 0
-_081228E2:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8122854
-
- thumb_func_start sub_81228E8
-sub_81228E8: @ 81228E8
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- movs r5, 0
-_081228F0:
- movs r0, 0x64
- adds r1, r5, 0
- muls r1, r0
- ldr r0, _08122948 @ =gPlayerParty
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _08122912
- adds r0, r6, 0
- adds r1, r5, 0
- movs r2, 0x3
- adds r3, r4, 0
- bl sub_806D880
-_08122912:
- ldr r0, _0812294C @ =gUnknown_02023A00
- lsls r1, r5, 5
- adds r3, r1, r0
- ldrh r0, [r3]
- cmp r0, 0
- beq _08122936
- adds r4, r5, 0x3
- lsls r4, 24
- lsrs r4, 24
- adds r0, r6, 0
- adds r1, r4, 0
- movs r2, 0x3
- bl sub_806D99C
- adds r0, r6, 0
- adds r1, r4, 0
- bl sub_806D50C
-_08122936:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x2
- bls _081228F0
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08122948: .4byte gPlayerParty
-_0812294C: .4byte gUnknown_02023A00
- thumb_func_end sub_81228E8
-
- thumb_func_start sub_8122950
-sub_8122950: @ 8122950
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- movs r5, 0
-_08122958:
- movs r0, 0x64
- adds r1, r5, 0
- muls r1, r0
- ldr r0, _081229B0 @ =gPlayerParty
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _08122984
- adds r0, r4, 0
- movs r1, 0xC
- bl GetMonData
- adds r2, r0, 0
- lsls r2, 16
- lsrs r2, 16
- adds r0, r6, 0
- adds r1, r5, 0
- bl sub_806DCD4
-_08122984:
- ldr r0, _081229B4 @ =gUnknown_02023A00
- lsls r1, r5, 5
- adds r2, r1, r0
- ldrh r0, [r2]
- cmp r0, 0
- beq _0812299E
- adds r1, r5, 0x3
- lsls r1, 24
- lsrs r1, 24
- ldrh r2, [r2, 0x2]
- adds r0, r6, 0
- bl sub_806DCD4
-_0812299E:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x2
- bls _08122958
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_081229B0: .4byte gPlayerParty
-_081229B4: .4byte gUnknown_02023A00
- thumb_func_end sub_8122950
-
- thumb_func_start sub_81229B8
-sub_81229B8: @ 81229B8
- push {r4-r7,lr}
- movs r5, 0
- movs r7, 0x64
- ldr r6, _08122A00 @ =gPlayerParty
-_081229C0:
- adds r0, r5, 0
- muls r0, r7
- adds r4, r0, r6
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _08122A36
- adds r0, r5, 0
- movs r1, 0x3
- adds r2, r4, 0
- bl sub_806E4A4
- adds r0, r4, 0
- bl sub_80A1CD8
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- beq _08122A04
- cmp r0, 0x6
- beq _08122A04
- subs r2, r0, 0x1
- lsls r2, 24
- lsrs r2, 24
- adds r0, r5, 0
- movs r1, 0x3
- bl sub_806E104
- b _08122A12
- .align 2, 0
-_08122A00: .4byte gPlayerParty
-_08122A04:
- adds r2, r5, 0
- muls r2, r7
- adds r2, r6
- adds r0, r5, 0
- movs r1, 0x3
- bl sub_806E294
-_08122A12:
- adds r4, r5, 0
- muls r4, r7
- adds r4, r6
- adds r0, r5, 0
- movs r1, 0x3
- adds r2, r4, 0
- bl sub_806E3C0
- adds r0, r5, 0
- movs r1, 0x3
- adds r2, r4, 0
- bl sub_806E050
- adds r0, r5, 0
- movs r1, 0x3
- adds r2, r4, 0
- bl sub_806E630
-_08122A36:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x2
- bls _081229C0
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_81229B8
-
- thumb_func_start sub_8122A48
-sub_8122A48: @ 8122A48
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r0, _08122AA0 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08122A98
- ldr r0, _08122AA4 @ =gTasks
- lsls r4, r6, 2
- adds r4, r6
- lsls r4, 3
- adds r4, r0
- movs r0, 0x1E
- strh r0, [r4, 0x8]
- ldr r5, _08122AA8 @ =gUnknown_02023A00
- ldrh r1, [r5]
- adds r0, r6, 0
- movs r2, 0
- bl sub_806D4AC
- ldrh r1, [r5, 0x20]
- adds r0, r6, 0
- movs r2, 0x1
- bl sub_806D4AC
- adds r5, 0x40
- ldrh r1, [r5]
- adds r0, r6, 0
- movs r2, 0x2
- bl sub_806D4AC
- ldr r0, _08122AAC @ =sub_8122AB8
- str r0, [r4]
- ldr r0, _08122AB0 @ =0x0201b000
- ldr r1, _08122AB4 @ =0x00000261
- adds r0, r1
- movs r1, 0x1
- strb r1, [r0]
-_08122A98:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08122AA0: .4byte gPaletteFade
-_08122AA4: .4byte gTasks
-_08122AA8: .4byte gUnknown_02023A00
-_08122AAC: .4byte sub_8122AB8
-_08122AB0: .4byte 0x0201b000
-_08122AB4: .4byte 0x00000261
- thumb_func_end sub_8122A48
-
- thumb_func_start sub_8122AB8
-sub_8122AB8: @ 8122AB8
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _08122AFC @ =gUnknown_02023A00
- ldrh r1, [r0, 0x20]
- adds r0, 0x40
- ldrh r2, [r0]
- adds r0, r4, 0
- bl sub_806D3B4
- ldr r1, _08122B00 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r1, r0, r1
- movs r2, 0x8
- ldrsh r0, [r1, r2]
- cmp r0, 0
- bne _08122AF4
- ldr r0, _08122B04 @ =sub_8122B10
- str r0, [r1]
- ldr r0, _08122B08 @ =0x0201b000
- ldr r1, _08122B0C @ =0x00000261
- adds r0, r1
- movs r1, 0x2
- strb r1, [r0]
- movs r0, 0x78
- bl PlaySE
-_08122AF4:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08122AFC: .4byte gUnknown_02023A00
-_08122B00: .4byte gTasks
-_08122B04: .4byte sub_8122B10
-_08122B08: .4byte 0x0201b000
-_08122B0C: .4byte 0x00000261
- thumb_func_end sub_8122AB8
-
- thumb_func_start sub_8122B10
-sub_8122B10: @ 8122B10
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x4]
- movs r0, 0
- mov r8, r0
- ldr r1, _08122B5C @ =gUnknown_02023A00
- mov r10, r1
- ldr r2, _08122B60 @ =gStringVar1
- mov r9, r2
-_08122B2E:
- mov r1, r8
- lsls r0, r1, 5
- mov r2, r10
- adds r6, r0, r2
- ldrh r1, [r6]
- adds r7, r0, 0
- cmp r1, 0
- beq _08122BDA
- mov r4, r8
- adds r4, 0x3
- lsls r0, r4, 24
- lsrs r5, r0, 24
- ldrh r2, [r6, 0x10]
- ldrh r3, [r6, 0x12]
- adds r0, r5, 0
- movs r1, 0x3
- bl sub_806E420
- ldrh r0, [r6, 0x10]
- cmp r0, 0
- bne _08122B64
- movs r2, 0x7
- b _08122B76
- .align 2, 0
-_08122B5C: .4byte gUnknown_02023A00
-_08122B60: .4byte gStringVar1
-_08122B64:
- ldr r1, _08122B88 @ =gUnknown_02023A14
- adds r0, r7, r1
- ldr r0, [r0]
- bl pokemon_ailments_get_primary
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0
- beq _08122B8C
-_08122B76:
- lsls r0, r4, 24
- lsrs r0, 24
- subs r2, 0x1
- lsls r2, 24
- lsrs r2, 24
- movs r1, 0x3
- bl sub_806E104
- b _08122B96
- .align 2, 0
-_08122B88: .4byte gUnknown_02023A14
-_08122B8C:
- ldrb r2, [r6, 0xF]
- adds r0, r5, 0
- movs r1, 0x3
- bl sub_806E1F4
-_08122B96:
- mov r2, r10
- adds r6, r7, r2
- ldrh r0, [r6]
- ldrb r1, [r6, 0x1C]
- lsls r4, 24
- lsrs r4, 24
- ldr r2, _08122C0C @ =gUnknown_02023A04
- adds r5, r7, r2
- str r5, [sp]
- movs r2, 0x3
- adds r3, r4, 0
- bl sub_806E35C
- mov r0, r9
- adds r1, r5, 0
- bl StringCopy
- mov r0, r9
- bl StringGetEnd10
- mov r0, r9
- bl sub_814A568
- adds r0, r4, 0
- movs r1, 0x3
- mov r2, r9
- bl box_print
- ldrh r2, [r6, 0x10]
- ldrh r3, [r6, 0x12]
- adds r0, r4, 0
- movs r1, 0x3
- bl sub_806E574
-_08122BDA:
- mov r0, r8
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- cmp r0, 0x2
- bls _08122B2E
- ldr r1, _08122C10 @ =gTasks
- ldr r2, [sp, 0x4]
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r0, r1
- ldr r1, _08122C14 @ =sub_8122C18
- str r1, [r0]
- movs r1, 0
- strh r1, [r0, 0x8]
- 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
-_08122C0C: .4byte gUnknown_02023A04
-_08122C10: .4byte gTasks
-_08122C14: .4byte sub_8122C18
- thumb_func_end sub_8122B10
-
- thumb_func_start sub_8122C18
-sub_8122C18: @ 8122C18
- push {r4,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08122C58 @ =gTasks
- 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
- movs r1, 0x80
- lsls r1, 17
- cmp r0, r1
- bne _08122C4E
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r0, _08122C5C @ =sub_8122450
- str r0, [r4]
-_08122C4E:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08122C58: .4byte gTasks
-_08122C5C: .4byte sub_8122450
- thumb_func_end sub_8122C18
-
- thumb_func_start unref_sub_8122C60
-unref_sub_8122C60: @ 8122C60
- push {r4,r5,lr}
- ldr r1, _08122C80 @ =0x0201b000
- 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 _08122C76
- b _08122D8A
-_08122C76:
- lsls r0, 2
- ldr r1, _08122C84 @ =_08122C88
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08122C80: .4byte 0x0201b000
-_08122C84: .4byte _08122C88
- .align 2, 0
-_08122C88:
- .4byte _08122CA8
- .4byte _08122CE8
- .4byte _08122CEE
- .4byte _08122D02
- .4byte _08122D2C
- .4byte _08122D32
- .4byte _08122D44
- .4byte _08122D5C
-_08122CA8:
- ldr r0, _08122CD0 @ =0x00000266
- adds r5, r4, r0
- movs r1, 0
- ldrsh r3, [r5, r1]
- ldr r0, _08122CD4 @ =gPlayerPartyCount
- ldrb r0, [r0]
- cmp r3, r0
- bge _08122CDC
- movs r2, 0x98
- lsls r2, 2
- adds r0, r4, r2
- ldrb r0, [r0]
- ldrb r1, [r5]
- movs r2, 0x64
- muls r2, r3
- ldr r3, _08122CD8 @ =gPlayerParty
- adds r2, r3
- bl sub_806D90C
- b _08122D84
- .align 2, 0
-_08122CD0: .4byte 0x00000266
-_08122CD4: .4byte gPlayerPartyCount
-_08122CD8: .4byte gPlayerParty
-_08122CDC:
- movs r0, 0
- strh r0, [r5]
- movs r0, 0x99
- lsls r0, 2
- adds r1, r4, r0
- b _08122D50
-_08122CE8:
- bl sub_806DA98
- b _08122D48
-_08122CEE:
- 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 _08122D50
-_08122D02:
- movs r1, 0x98
- lsls r1, 2
- adds r0, r4, r1
- ldrb r0, [r0]
- ldr r2, _08122D28 @ =0x00000266
- adds r5, r4, r2
- ldrb r1, [r5]
- bl sub_806BD58
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08122D84
- movs r0, 0
- strh r0, [r5]
- movs r0, 0x99
- lsls r0, 2
- adds r1, r4, r0
- b _08122D50
- .align 2, 0
-_08122D28: .4byte 0x00000266
-_08122D2C:
- bl sub_806E334
- b _08122D48
-_08122D32:
- bl sub_806E0C4
- ldr r1, _08122D40 @ =0x0201b000
- movs r0, 0x99
- lsls r0, 2
- adds r1, r0
- b _08122D50
- .align 2, 0
-_08122D40: .4byte 0x0201b000
-_08122D44:
- bl sub_806BCE8
-_08122D48:
- ldr r1, _08122D58 @ =0x0201b000
- movs r2, 0x99
- lsls r2, 2
- adds r1, r2
-_08122D50:
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- b _08122D8A
- .align 2, 0
-_08122D58: .4byte 0x0201b000
-_08122D5C:
- ldr r0, _08122D80 @ =0x00000266
- adds r5, r4, r0
- ldrb r0, [r5]
- bl sub_806B58C
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08122D84
- movs r1, 0
- strh r1, [r5]
- movs r2, 0x99
- lsls r2, 2
- adds r0, r4, r2
- strh r1, [r0]
- movs r0, 0x1
- b _08122D8C
- .align 2, 0
-_08122D80: .4byte 0x00000266
-_08122D84:
- ldrh r0, [r5]
- adds r0, 0x1
- strh r0, [r5]
-_08122D8A:
- movs r0, 0
-_08122D8C:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end unref_sub_8122C60
-
- thumb_func_start sub_8122D94
-sub_8122D94: @ 8122D94
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _08122DCC @ =gUnknown_03005CE0
- ldrb r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08122DD0 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x2D
- bl GetMonData
- adds r2, r0, 0
- cmp r2, 0
- bne _08122DE0
- ldr r1, _08122DD4 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- strh r2, [r0, 0x10]
- ldr r1, _08122DD8 @ =gUnknown_08401810
- ldr r2, _08122DDC @ =gUnknown_084017F0
- movs r0, 0
- movs r3, 0
- bl sub_806E750
- b _08122DFA
- .align 2, 0
-_08122DCC: .4byte gUnknown_03005CE0
-_08122DD0: .4byte gPlayerParty
-_08122DD4: .4byte gTasks
-_08122DD8: .4byte gUnknown_08401810
-_08122DDC: .4byte gUnknown_084017F0
-_08122DE0:
- ldr r1, _08122E00 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r1, 0x1
- strh r1, [r0, 0x10]
- ldr r1, _08122E04 @ =gUnknown_08401810
- ldr r2, _08122E08 @ =gUnknown_084017F0
- movs r0, 0x1
- movs r3, 0
- bl sub_806E750
-_08122DFA:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08122E00: .4byte gTasks
-_08122E04: .4byte gUnknown_08401810
-_08122E08: .4byte gUnknown_084017F0
- thumb_func_end sub_8122D94
-
- thumb_func_start sub_8122E0C
-sub_8122E0C: @ 8122E0C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _08122E34 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08122E9C
- adds r0, r4, 0
- bl sub_806BD80
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- beq _08122E38
- cmp r0, 0x2
- beq _08122E84
- b _08122E9C
- .align 2, 0
-_08122E34: .4byte gPaletteFade
-_08122E38:
- movs r0, 0x5
- bl PlaySE
- adds r0, r4, 0
- bl sub_806CA38
- ldr r1, _08122E70 @ =gUnknown_03005CE0
- strb r0, [r1]
- ldrb r1, [r1]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08122E74 @ =gPlayerParty
- adds r0, r1
- ldr r1, _08122E78 @ =gStringVar1
- bl GetMonNickname
- adds r0, r4, 0
- bl sub_8122D94
- ldr r1, _08122E7C @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _08122E80 @ =sub_8122EAC
- str r1, [r0]
- b _08122E9C
- .align 2, 0
-_08122E70: .4byte gUnknown_03005CE0
-_08122E74: .4byte gPlayerParty
-_08122E78: .4byte gStringVar1
-_08122E7C: .4byte gTasks
-_08122E80: .4byte sub_8122EAC
-_08122E84:
- movs r0, 0x5
- bl PlaySE
- ldr r1, _08122EA4 @ =gUnknown_03005CE0
- movs r0, 0xFF
- strb r0, [r1]
- ldr r1, _08122EA8 @ =gUnknown_0202E8CC
- movs r0, 0xFF
- strh r0, [r1]
- adds r0, r4, 0
- bl sub_8123138
-_08122E9C:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08122EA4: .4byte gUnknown_03005CE0
-_08122EA8: .4byte gUnknown_0202E8CC
- thumb_func_end sub_8122E0C
-
- thumb_func_start sub_8122EAC
-sub_8122EAC: @ 8122EAC
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r7, r0, 24
- adds r4, r7, 0
- ldr r0, _08122EE8 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r3, 0x80
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- bne _08122F6A
- ldr r2, _08122EEC @ =gMain
- ldrh r1, [r2, 0x30]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08122EF0
- bl GetMenuCursorPos
- lsls r0, 24
- cmp r0, 0
- beq _08122F6A
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- negs r0, r0
- bl MoveMenuCursor
- b _08122F6A
- .align 2, 0
-_08122EE8: .4byte gPaletteFade
-_08122EEC: .4byte gMain
-_08122EF0:
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- beq _08122F12
- bl GetMenuCursorPos
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- beq _08122F6A
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- bl MoveMenuCursor
- b _08122F6A
-_08122F12:
- ldrh r1, [r2, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08122F5C
- movs r0, 0x5
- bl PlaySE
- ldr r1, _08122F50 @ =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r1
- ldrb r4, [r0, 0x10]
- ldr r5, _08122F54 @ =gUnknown_08401810
- ldr r6, _08122F58 @ =gUnknown_084017F0
- bl GetMenuCursorPos
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- adds r0, r4, 0
- adds r1, r5, 0
- adds r2, r6, 0
- bl sub_806E81C
- adds r1, r0, 0
- adds r0, r7, 0
- bl _call_via_r1
- b _08122F6A
- .align 2, 0
-_08122F50: .4byte gTasks
-_08122F54: .4byte gUnknown_08401810
-_08122F58: .4byte gUnknown_084017F0
-_08122F5C:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08122F6A
- adds r0, r4, 0
- bl sub_81230F4
-_08122F6A:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8122EAC
-
- thumb_func_start sub_8122F70
-sub_8122F70: @ 8122F70
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08122F88 @ =gUnknown_0202E8CC
- ldr r1, _08122F8C @ =gUnknown_03005CE0
- ldrb r1, [r1]
- strh r1, [r2]
- bl sub_8123138
- pop {r0}
- bx r0
- .align 2, 0
-_08122F88: .4byte gUnknown_0202E8CC
-_08122F8C: .4byte gUnknown_03005CE0
- thumb_func_end sub_8122F70
-
- thumb_func_start sub_8122F90
-sub_8122F90: @ 8122F90
- push {r4,r5,lr}
- ldr r5, _08122FD8 @ =0x0201b260
- ldr r4, _08122FDC @ =gUnknown_020384F0
-_08122F96:
- bl sub_806B124
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08122FF0
- ldrb r0, [r5]
- ldrb r1, [r4]
- bl sub_806C994
- ldrb r0, [r5]
- movs r1, 0
- bl sub_806BF74
- ldrb r1, [r4]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08122FE0 @ =gPlayerParty
- adds r0, r1
- ldr r1, _08122FE4 @ =gStringVar1
- bl GetMonNickname
- ldr r1, _08122FE8 @ =gUnknown_03005CE0
- ldrb r0, [r4]
- strb r0, [r1]
- ldrb r0, [r5]
- bl sub_8122D94
- ldr r0, _08122FEC @ =sub_806AEDC
- bl SetMainCallback2
- b _08122FFC
- .align 2, 0
-_08122FD8: .4byte 0x0201b260
-_08122FDC: .4byte gUnknown_020384F0
-_08122FE0: .4byte gPlayerParty
-_08122FE4: .4byte gStringVar1
-_08122FE8: .4byte gUnknown_03005CE0
-_08122FEC: .4byte sub_806AEDC
-_08122FF0:
- bl sub_80F9344
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08122F96
-_08122FFC:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8122F90
-
- thumb_func_start sub_8123004
-sub_8123004: @ 8123004
- push {lr}
- ldr r2, _08123028 @ =gPaletteFade
- ldrb r0, [r2, 0x8]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2, 0x8]
- ldr r2, _0812302C @ =sub_8122EAC
- movs r0, 0x6
- movs r1, 0xFF
- movs r3, 0x5
- bl sub_806AF4C
- ldr r0, _08123030 @ =sub_8122F90
- bl SetMainCallback2
- pop {r0}
- bx r0
- .align 2, 0
-_08123028: .4byte gPaletteFade
-_0812302C: .4byte sub_8122EAC
-_08123030: .4byte sub_8122F90
- thumb_func_end sub_8123004
-
- thumb_func_start sub_8123034
-sub_8123034: @ 8123034
- push {r4,r5,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r0, _0812309C @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0
- bne _08123092
- ldr r2, _081230A0 @ =gSprites
- ldr r1, _081230A4 @ =gTasks
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- adds r0, r1
- ldrh r1, [r0, 0xE]
- lsls r1, 16
- asrs r1, 24
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r4, [r0, 0x2E]
- lsls r4, 24
- lsrs r4, 24
- adds r0, r3, 0
- bl DestroyTask
- ldr r0, _081230A8 @ =0x0201b000
- ldr r1, _081230AC @ =0x00000262
- adds r0, r1
- movs r1, 0x1
- strb r1, [r0]
- ldr r0, _081230B0 @ =gPlayerParty
- ldr r1, _081230B4 @ =gPlayerPartyCount
- ldrb r2, [r1]
- subs r2, 0x1
- lsls r2, 24
- lsrs r2, 24
- ldr r3, _081230B8 @ =sub_8123004
- str r5, [sp]
- adds r1, r4, 0
- bl sub_809D8BC
-_08123092:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0812309C: .4byte gPaletteFade
-_081230A0: .4byte gSprites
-_081230A4: .4byte gTasks
-_081230A8: .4byte 0x0201b000
-_081230AC: .4byte 0x00000262
-_081230B0: .4byte gPlayerParty
-_081230B4: .4byte gPlayerPartyCount
-_081230B8: .4byte sub_8123004
- thumb_func_end sub_8123034
-
- thumb_func_start sub_81230BC
-sub_81230BC: @ 81230BC
- 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, _081230EC @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _081230F0 @ =sub_8123034
- str r1, [r0]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081230EC: .4byte gTasks
-_081230F0: .4byte sub_8123034
- thumb_func_end sub_81230BC
-
- thumb_func_start sub_81230F4
-sub_81230F4: @ 81230F4
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x14
- movs r1, 0xA
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- bl sub_8072DEC
- movs r0, 0xF
- movs r1, 0
- bl sub_806D538
- ldr r1, _08123130 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _08123134 @ =sub_8122E0C
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08123130: .4byte gTasks
-_08123134: .4byte sub_8122E0C
- thumb_func_end sub_81230F4
-
- thumb_func_start sub_8123138
-sub_8123138: @ 8123138
- 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, _08123168 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0812316C @ =sub_8123170
- str r1, [r0]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08123168: .4byte gTasks
-_0812316C: .4byte sub_8123170
- thumb_func_end sub_8123138
-
- thumb_func_start sub_8123170
-sub_8123170: @ 8123170
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0812319C @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08123194
- ldr r0, _081231A0 @ =gUnknown_0300485C
- ldr r1, _081231A4 @ =sub_81231AC
- str r1, [r0]
- ldr r0, _081231A8 @ =c2_exit_to_overworld_2_switch
- bl SetMainCallback2
- adds r0, r4, 0
- bl DestroyTask
-_08123194:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0812319C: .4byte gPaletteFade
-_081231A0: .4byte gUnknown_0300485C
-_081231A4: .4byte sub_81231AC
-_081231A8: .4byte c2_exit_to_overworld_2_switch
- thumb_func_end sub_8123170
-
- thumb_func_start sub_81231AC
-sub_81231AC: @ 81231AC
- push {lr}
- bl pal_fill_black
- ldr r0, _081231C0 @ =sub_81231C4
- movs r1, 0xA
- bl CreateTask
- pop {r0}
- bx r0
- .align 2, 0
-_081231C0: .4byte sub_81231C4
- thumb_func_end sub_81231AC
-
- thumb_func_start sub_81231C4
-sub_81231C4: @ 81231C4
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_807D770
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _081231E4
- adds r0, r4, 0
- bl DestroyTask
- bl ScriptContext2_Disable
- bl EnableBothScriptContexts
-_081231E4:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_81231C4
-
- thumb_func_start sub_81231EC
-sub_81231EC: @ 81231EC
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _08123210 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0812320A
- ldr r0, _08123214 @ =sub_8123244
- bl SetMainCallback2
- adds r0, r4, 0
- bl DestroyTask
-_0812320A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08123210: .4byte gPaletteFade
-_08123214: .4byte sub_8123244
- thumb_func_end sub_81231EC
-
- thumb_func_start sub_8123218
-sub_8123218: @ 8123218
- push {lr}
- sub sp, 0x4
- bl ScriptContext2_Enable
- ldr r0, _08123240 @ =sub_81231EC
- movs r1, 0x1
- 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
-_08123240: .4byte sub_81231EC
- thumb_func_end sub_8123218
-
- thumb_func_start sub_8123244
-sub_8123244: @ 8123244
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x10
- ldr r1, _08123268 @ =gMain
- ldr r2, _0812326C @ =0x0000043c
- adds r0, r1, r2
- ldrb r0, [r0]
- mov r9, r1
- cmp r0, 0x8
- bhi _08123298
- lsls r0, 2
- ldr r1, _08123270 @ =_08123274
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08123268: .4byte gMain
-_0812326C: .4byte 0x0000043c
-_08123270: .4byte _08123274
- .align 2, 0
-_08123274:
- .4byte _08123298
- .4byte _08123384
- .4byte _081233E8
- .4byte _08123484
- .4byte _081234A0
- .4byte _08123504
- .4byte _08123598
- .4byte _08123678
- .4byte _081236B0
-_08123298:
- movs r0, 0
- bl SetVBlankCallback
- bl remove_some_task
- movs r3, 0xC0
- lsls r3, 19
- movs r4, 0xC0
- lsls r4, 9
- add r0, sp, 0xC
- mov r9, r0
- add r2, sp, 0x8
- movs r6, 0
- ldr r1, _08123368 @ =0x040000d4
- movs r5, 0x80
- lsls r5, 5
- ldr r7, _0812336C @ =0x81000800
- movs r0, 0x81
- lsls r0, 24
- mov r8, r0
-_081232C0:
- strh r6, [r2]
- add r0, sp, 0x8
- 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 _081232C0
- strh r6, [r2]
- add r2, sp, 0x8
- str r2, [r1]
- str r3, [r1, 0x4]
- lsrs r0, r4, 1
- mov r2, r8
- 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, 0xC]
- ldr r2, _08123368 @ =0x040000d4
- mov r1, r9
- 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
- add r0, sp, 0x8
- strh r4, [r0]
- str r0, [r2]
- str r1, [r2, 0x4]
- lsrs r3, 1
- movs r4, 0x81
- lsls r4, 24
- orrs r3, r4
- str r3, [r2, 0x8]
- ldr r0, [r2, 0x8]
- ldr r1, _08123370 @ =gUnknown_02039274
- ldr r0, _08123374 @ =0x02017000
- str r0, [r1]
- adds r3, r0, 0
- ldr r5, _08123378 @ =0x000010fc
- ldr r0, _0812337C @ =gMain
- mov r9, r0
- add r1, sp, 0x8
- movs r7, 0
- movs r6, 0x80
- lsls r6, 5
- ldr r0, _0812336C @ =0x81000800
- mov r8, r0
-_08123338:
- strh r7, [r1]
- add r0, sp, 0x8
- str r0, [r2]
- str r3, [r2, 0x4]
- mov r0, r8
- str r0, [r2, 0x8]
- ldr r0, [r2, 0x8]
- adds r3, r6
- subs r5, r6
- cmp r5, r6
- bhi _08123338
- strh r7, [r1]
- add r1, sp, 0x8
- str r1, [r2]
- str r3, [r2, 0x4]
- lsrs r0, r5, 1
- orrs r0, r4
- str r0, [r2, 0x8]
- ldr r0, [r2, 0x8]
- ldr r1, _08123380 @ =0x0000043c
- add r1, r9
- ldrb r0, [r1]
- adds r0, 0x1
- b _0812370C
- .align 2, 0
-_08123368: .4byte 0x040000d4
-_0812336C: .4byte 0x81000800
-_08123370: .4byte gUnknown_02039274
-_08123374: .4byte 0x02017000
-_08123378: .4byte 0x000010fc
-_0812337C: .4byte gMain
-_08123380: .4byte 0x0000043c
-_08123384:
- bl ResetSpriteData
- bl ResetTasks
- bl FreeAllSpritePalettes
- bl ResetPaletteFade
- bl sub_807C828
- movs r4, 0
- ldr r0, _081233D4 @ =gUnknown_08396FC4
- ldr r0, [r0]
- adds r1, r0, 0
- adds r1, 0xF0
- movs r2, 0
-_081233A4:
- lsls r0, r4, 2
- adds r0, r1, r0
- str r2, [r0]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x13
- bls _081233A4
- bl InitMapMusic
- bl ResetMapMusic
- ldr r2, _081233D8 @ =gSpriteCoordOffsetX
- ldr r1, _081233DC @ =gSpriteCoordOffsetY
- movs r0, 0
- strh r0, [r1]
- strh r0, [r2]
- ldr r1, _081233E0 @ =gMain
- ldr r2, _081233E4 @ =0x0000043c
- adds r1, r2
- ldrb r0, [r1]
- adds r0, 0x1
- b _0812370C
- .align 2, 0
-_081233D4: .4byte gUnknown_08396FC4
-_081233D8: .4byte gSpriteCoordOffsetX
-_081233DC: .4byte gSpriteCoordOffsetY
-_081233E0: .4byte gMain
-_081233E4: .4byte 0x0000043c
-_081233E8:
- movs r4, 0
- ldr r5, _08123454 @ =gUnknown_08401CF8
-_081233EC:
- lsls r0, r4, 3
- adds r0, r5
- bl LoadCompressedObjectPic
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x2
- bls _081233EC
- ldr r0, _08123458 @ =gUnknown_08401D18
- bl LoadSpritePalettes
- ldr r0, _0812345C @ =gCableCarMtChimneyTilemap
- ldr r4, _08123460 @ =0x02019000
- adds r1, r4, 0
- bl sub_800D238
- ldr r0, _08123464 @ =gCableCarTreeTilemap
- movs r2, 0xB4
- lsls r2, 1
- adds r1, r4, r2
- bl sub_800D238
- ldr r0, _08123468 @ =gCableCarMountainTilemap
- movs r2, 0xA5
- lsls r2, 3
- adds r1, r4, r2
- bl sub_800D238
- ldr r0, _0812346C @ =gCableCarPylonStemTilemap
- ldr r1, _08123470 @ =0x000009d8
- adds r4, r1
- adds r1, r4, 0
- bl sub_800D238
- ldr r0, _08123474 @ =gCableCarBG_Pal
- movs r1, 0
- movs r2, 0x80
- bl LoadPalette
- ldr r0, _08123478 @ =gCableCarBG_Gfx
- movs r1, 0xC0
- lsls r1, 19
- bl LZ77UnCompVram
- ldr r1, _0812347C @ =gMain
- ldr r2, _08123480 @ =0x0000043c
- adds r1, r2
- ldrb r0, [r1]
- adds r0, 0x1
- b _0812370C
- .align 2, 0
-_08123454: .4byte gUnknown_08401CF8
-_08123458: .4byte gUnknown_08401D18
-_0812345C: .4byte gCableCarMtChimneyTilemap
-_08123460: .4byte 0x02019000
-_08123464: .4byte gCableCarTreeTilemap
-_08123468: .4byte gCableCarMountainTilemap
-_0812346C: .4byte gCableCarPylonStemTilemap
-_08123470: .4byte 0x000009d8
-_08123474: .4byte gCableCarBG_Pal
-_08123478: .4byte gCableCarBG_Gfx
-_0812347C: .4byte gMain
-_08123480: .4byte 0x0000043c
-_08123484:
- bl sub_8124118
- bl RunTasks
- ldr r1, _08123498 @ =gMain
- ldr r0, _0812349C @ =0x0000043c
- adds r1, r0
- ldrb r0, [r1]
- adds r0, 0x1
- b _0812370C
- .align 2, 0
-_08123498: .4byte gMain
-_0812349C: .4byte 0x0000043c
-_081234A0:
- ldr r0, _081234B4 @ =gUnknown_02039274
- ldr r0, [r0]
- ldrb r0, [r0, 0x2]
- cmp r0, 0x7
- bne _081234BC
- ldr r1, _081234B8 @ =0x0000043c
- add r1, r9
- ldrb r0, [r1]
- adds r0, 0x1
- b _0812370C
- .align 2, 0
-_081234B4: .4byte gUnknown_02039274
-_081234B8: .4byte 0x0000043c
-_081234BC:
- ldr r0, _081234FC @ =gUnknown_08396FC4
- ldr r0, [r0]
- adds r1, r0, 0
- adds r1, 0xF0
- ldr r0, [r1]
- cmp r0, 0
- bne _081234CC
- b _0812370E
-_081234CC:
- movs r4, 0
- adds r3, r1, 0
- movs r5, 0xD
- negs r5, r5
-_081234D4:
- lsls r0, r4, 2
- adds r0, r3, r0
- ldr r2, [r0]
- cmp r2, 0
- beq _081234E6
- ldrb r1, [r2, 0x5]
- adds r0, r5, 0
- ands r0, r1
- strb r0, [r2, 0x5]
-_081234E6:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x13
- bls _081234D4
- ldr r1, _08123500 @ =0x0000043c
- add r1, r9
- ldrb r0, [r1]
- adds r0, 0x1
- b _0812370C
- .align 2, 0
-_081234FC: .4byte gUnknown_08396FC4
-_08123500: .4byte 0x0000043c
-_08123504:
- ldr r0, _08123578 @ =0x0600e800
- ldr r5, _0812357C @ =0x02019168
- movs r1, 0x20
- str r1, [sp]
- movs r1, 0xF
- str r1, [sp, 0x4]
- adds r1, r5, 0
- movs r2, 0
- movs r3, 0x11
- bl sub_8124F08
- ldr r0, _08123580 @ =0x0600f000
- movs r2, 0xF0
- lsls r2, 2
- adds r1, r5, r2
- movs r2, 0x1E
- str r2, [sp]
- movs r2, 0x14
- mov r9, r2
- str r2, [sp, 0x4]
- movs r2, 0
- movs r3, 0
- bl sub_8124F08
- ldr r0, _08123584 @ =gUnknown_02039274
- mov r8, r0
- ldr r0, [r0]
- ldr r6, _08123588 @ =0x000008fc
- adds r0, r6
- ldr r1, _0812358C @ =gCableCarPylonHookTilemapEntries
- movs r2, 0x5
- str r2, [sp]
- movs r4, 0x2
- str r4, [sp, 0x4]
- movs r2, 0
- movs r3, 0
- bl sub_8124F08
- mov r1, r8
- ldr r0, [r1]
- adds r0, r6
- movs r2, 0x87
- lsls r2, 4
- adds r5, r2
- str r4, [sp]
- mov r1, r9
- str r1, [sp, 0x4]
- adds r1, r5, 0
- movs r2, 0
- movs r3, 0x2
- bl sub_8124F08
- ldr r1, _08123590 @ =gMain
- ldr r2, _08123594 @ =0x0000043c
- adds r1, r2
- ldrb r0, [r1]
- adds r0, 0x1
- b _0812370C
- .align 2, 0
-_08123578: .4byte 0x0600e800
-_0812357C: .4byte 0x02019168
-_08123580: .4byte 0x0600f000
-_08123584: .4byte gUnknown_02039274
-_08123588: .4byte 0x000008fc
-_0812358C: .4byte gCableCarPylonHookTilemapEntries
-_08123590: .4byte gMain
-_08123594: .4byte 0x0000043c
-_08123598:
- ldr r0, _08123664 @ =gUnknown_0202E8CC
- ldrb r0, [r0]
- bl sub_81248AC
- ldr r0, _08123668 @ =gUnknown_02039274
- mov r8, r0
- ldr r0, [r0]
- adds r0, 0xFC
- ldr r4, _0812366C @ =0x02019090
- movs r6, 0xC
- str r6, [sp]
- movs r5, 0x3
- str r5, [sp, 0x4]
- adds r1, r4, 0
- movs r2, 0
- movs r3, 0xE
- bl sub_8124F08
- mov r1, r8
- ldr r0, [r1]
- adds r0, 0xFC
- adds r1, r4, 0
- adds r1, 0x48
- str r6, [sp]
- str r5, [sp, 0x4]
- movs r2, 0xC
- movs r3, 0x11
- bl sub_8124F08
- mov r2, r8
- ldr r0, [r2]
- adds r0, 0xFC
- adds r1, r4, 0
- adds r1, 0x90
- str r6, [sp]
- str r5, [sp, 0x4]
- movs r2, 0x18
- movs r3, 0x14
- bl sub_8124F08
- mov r1, r8
- ldr r0, [r1]
- adds r0, 0xFC
- movs r2, 0x90
- negs r2, r2
- adds r2, r4
- mov r9, r2
- str r6, [sp]
- str r5, [sp, 0x4]
- mov r1, r9
- movs r2, 0
- movs r3, 0x11
- bl sub_8124F08
- mov r1, r8
- ldr r0, [r1]
- adds r0, 0xFC
- subs r4, 0x48
- str r6, [sp]
- str r5, [sp, 0x4]
- adds r1, r4, 0
- movs r2, 0
- movs r3, 0x14
- bl sub_8124F08
- mov r2, r8
- ldr r0, [r2]
- adds r0, 0xFC
- str r6, [sp]
- str r5, [sp, 0x4]
- mov r1, r9
- movs r2, 0xC
- movs r3, 0x14
- bl sub_8124F08
- mov r1, r8
- ldr r0, [r1]
- adds r0, 0xFC
- str r6, [sp]
- str r5, [sp, 0x4]
- adds r1, r4, 0
- movs r2, 0xC
- movs r3, 0x17
- bl sub_8124F08
- mov r2, r8
- ldr r0, [r2]
- adds r0, 0xFC
- str r6, [sp]
- str r5, [sp, 0x4]
- mov r1, r9
- movs r2, 0x18
- movs r3, 0x17
- bl sub_8124F08
- ldr r1, _08123670 @ =gMain
- ldr r0, _08123674 @ =0x0000043c
- adds r1, r0
- ldrb r0, [r1]
- adds r0, 0x1
- b _0812370C
- .align 2, 0
-_08123664: .4byte gUnknown_0202E8CC
-_08123668: .4byte gUnknown_02039274
-_0812366C: .4byte 0x02019090
-_08123670: .4byte gMain
-_08123674: .4byte 0x0000043c
-_08123678:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r1, 0x3
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r0, _081236A4 @ =0x000001a9
- movs r1, 0x1
- bl FadeInNewBGM
- movs r0, 0x1
- bl sub_8123FBC
- ldr r1, _081236A8 @ =gMain
- ldr r2, _081236AC @ =0x0000043c
- adds r1, r2
- ldrb r0, [r1]
- adds r0, 0x1
- b _0812370C
- .align 2, 0
-_081236A4: .4byte 0x000001a9
-_081236A8: .4byte gMain
-_081236AC: .4byte 0x0000043c
-_081236B0:
- ldr r3, _081236E4 @ =0x04000208
- ldrh r2, [r3]
- movs r0, 0
- strh r0, [r3]
- ldr r4, _081236E8 @ =0x04000200
- ldrh r0, [r4]
- movs r1, 0x1
- orrs r0, r1
- strh r0, [r4]
- strh r2, [r3]
- ldr r0, _081236EC @ =sub_8123C40
- bl SetVBlankCallback
- ldr r0, _081236F0 @ =mainloop
- bl SetMainCallback2
- ldr r0, _081236F4 @ =sub_8123878
- movs r1, 0
- bl CreateTask
- ldr r0, _081236F8 @ =gUnknown_0202E8CC
- ldrh r0, [r0]
- cmp r0, 0
- bne _08123700
- ldr r0, _081236FC @ =sub_81239E4
- b _08123702
- .align 2, 0
-_081236E4: .4byte 0x04000208
-_081236E8: .4byte 0x04000200
-_081236EC: .4byte sub_8123C40
-_081236F0: .4byte mainloop
-_081236F4: .4byte sub_8123878
-_081236F8: .4byte gUnknown_0202E8CC
-_081236FC: .4byte sub_81239E4
-_08123700:
- ldr r0, _0812371C @ =sub_8123AF8
-_08123702:
- movs r1, 0x1
- bl CreateTask
- ldr r1, _08123720 @ =gUnknown_02039274
- ldr r1, [r1]
-_0812370C:
- strb r0, [r1]
-_0812370E:
- add sp, 0x10
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0812371C: .4byte sub_8123AF8
-_08123720: .4byte gUnknown_02039274
- thumb_func_end sub_8123244
-
- thumb_func_start mainloop
-mainloop: @ 8123724
- push {lr}
- bl RunTasks
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
- bl MapMusicMain
- pop {r0}
- bx r0
- thumb_func_end mainloop
-
- thumb_func_start sub_8123740
-sub_8123740: @ 8123740
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x8
- movs r4, 0
- movs r0, 0
- bl sub_8123FBC
- ldr r0, _08123854 @ =gSpriteCoordOffsetX
- strh r4, [r0]
- movs r0, 0
- bl sub_807C9B4
- add r7, sp, 0x4
- ldr r0, _08123858 @ =gUnknown_08396FC4
- ldr r0, [r0]
- adds r1, r0, 0
- adds r1, 0xF0
- movs r2, 0
-_08123766:
- lsls r0, r4, 2
- adds r0, r1, r0
- str r2, [r0]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x13
- bls _08123766
- bl ResetTasks
- bl ResetSpriteData
- bl ResetPaletteFade
- ldr r2, _0812385C @ =0x02000000
- movs r3, 0x80
- lsls r3, 10
- movs r5, 0
- ldr r1, _08123860 @ =0x040000d4
- movs r4, 0x80
- lsls r4, 5
- ldr r6, _08123864 @ =0x85000400
- movs r0, 0x85
- lsls r0, 24
- mov r12, r0
-_08123798:
- 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 _08123798
- str r5, [sp]
- mov r0, sp
- str r0, [r1]
- str r2, [r1, 0x4]
- lsrs r0, r3, 2
- mov r2, r12
- orrs r0, r2
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- ldr r1, _08123868 @ =gUnknown_02039274
- movs r0, 0
- str r0, [r1]
- movs r3, 0xC0
- lsls r3, 19
- movs r4, 0xC0
- lsls r4, 9
- adds r2, r7, 0
- movs r6, 0
- ldr r1, _08123860 @ =0x040000d4
- movs r5, 0x80
- lsls r5, 5
- ldr r0, _0812386C @ =0x81000800
- mov r12, r0
- movs r0, 0x81
- lsls r0, 24
- mov r8, r0
-_081237E0:
- strh r6, [r2]
- str r2, [r1]
- str r3, [r1, 0x4]
- mov r0, r12
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- adds r3, r5
- subs r4, r5
- cmp r4, r5
- bhi _081237E0
- strh r6, [r7]
- str r7, [r1]
- str r3, [r1, 0x4]
- lsrs r0, r4, 1
- mov r2, r8
- 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]
- ldr r2, _08123860 @ =0x040000d4
- mov r1, sp
- 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 r0, 0xA0
- lsls r0, 19
- strh r4, [r7]
- str r7, [r2]
- str r0, [r2, 0x4]
- lsrs r3, 1
- movs r0, 0x81
- lsls r0, 24
- orrs r3, r0
- str r3, [r2, 0x8]
- ldr r0, [r2, 0x8]
- bl warp_in
- ldr r0, _08123870 @ =gUnknown_0300485C
- str r4, [r0]
- ldr r0, _08123874 @ =CB2_LoadMap
- bl SetMainCallback2
- add sp, 0x8
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08123854: .4byte gSpriteCoordOffsetX
-_08123858: .4byte gUnknown_08396FC4
-_0812385C: .4byte 0x02000000
-_08123860: .4byte 0x040000d4
-_08123864: .4byte 0x85000400
-_08123868: .4byte gUnknown_02039274
-_0812386C: .4byte 0x81000800
-_08123870: .4byte gUnknown_0300485C
-_08123874: .4byte CB2_LoadMap
- thumb_func_end sub_8123740
-
- thumb_func_start sub_8123878
-sub_8123878: @ 8123878
- push {r4-r7,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r6, r0, 24
- movs r4, 0
- ldr r5, _081238A4 @ =gUnknown_02039274
- ldr r3, [r5]
- ldrh r0, [r3, 0x6]
- adds r0, 0x1
- strh r0, [r3, 0x6]
- ldrb r2, [r3, 0x1]
- adds r7, r5, 0
- cmp r2, 0x2
- beq _0812397E
- cmp r2, 0x2
- bgt _081238A8
- cmp r2, 0
- beq _081238B6
- cmp r2, 0x1
- beq _081238D0
- b _081239D6
- .align 2, 0
-_081238A4: .4byte gUnknown_02039274
-_081238A8:
- cmp r2, 0x3
- bne _081238AE
- b _081239A4
-_081238AE:
- cmp r2, 0xFF
- bne _081238B4
- b _081239BC
-_081238B4:
- b _081239D6
-_081238B6:
- lsls r0, 16
- lsrs r0, 16
- ldrh r1, [r3, 0x4]
- cmp r0, r1
- beq _081238C2
- b _081239D6
-_081238C2:
- ldrb r0, [r3, 0x2]
- bl DoWeatherEffect
- ldr r1, [r5]
- movs r0, 0x1
- strb r0, [r1, 0x1]
- b _081239D6
-_081238D0:
- ldrb r0, [r3, 0x2]
- cmp r0, 0x2
- beq _08123924
- cmp r0, 0x7
- beq _081238DC
- b _081239D6
-_081238DC:
- ldr r0, _08123920 @ =gUnknown_08396FC4
- ldr r0, [r0]
- adds r2, r0, 0
- adds r2, 0xF0
- ldr r0, [r2]
- cmp r0, 0
- beq _081239D6
- ldrb r1, [r0, 0x5]
- movs r0, 0xC
- ands r0, r1
- cmp r0, 0
- beq _081239D6
- adds r3, r2, 0
- movs r5, 0xD
- negs r5, r5
-_081238FA:
- lsls r0, r4, 2
- adds r0, r3, r0
- ldr r2, [r0]
- cmp r2, 0
- beq _0812390C
- ldrb r1, [r2, 0x5]
- adds r0, r5, 0
- ands r0, r1
- strb r0, [r2, 0x5]
-_0812390C:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x13
- bls _081238FA
- ldr r1, [r7]
- movs r0, 0x2
- strb r0, [r1, 0x1]
- b _081239D6
- .align 2, 0
-_08123920: .4byte gUnknown_08396FC4
-_08123924:
- ldr r0, _08123938 @ =gUnknown_08396FC4
- ldr r2, [r0]
- movs r1, 0xDA
- lsls r1, 3
- adds r0, r2, r1
- ldrb r0, [r0]
- cmp r0, 0x2
- bne _0812393C
- strb r0, [r3, 0x1]
- b _081239D6
- .align 2, 0
-_08123938: .4byte gUnknown_08396FC4
-_0812393C:
- ldrh r1, [r3, 0x6]
- ldrh r0, [r3, 0x4]
- adds r0, 0x8
- cmp r1, r0
- blt _081239D6
- adds r6, r2, 0
- adds r6, 0xF0
- movs r5, 0x1
- movs r7, 0x5
- negs r7, r7
-_08123950:
- lsls r0, r4, 2
- adds r0, r6, r0
- ldr r0, [r0]
- cmp r0, 0
- beq _08123972
- adds r3, r0, 0
- adds r3, 0x3E
- ldrb r2, [r3]
- lsls r1, r2, 29
- lsrs r1, 31
- eors r1, r5
- ands r1, r5
- lsls r1, 2
- adds r0, r7, 0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
-_08123972:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x13
- bls _08123950
- b _081239D6
-_0812397E:
- lsls r1, r0, 16
- ldr r0, _081239A0 @ =0x023a0000
- cmp r1, r0
- bne _081239D6
- movs r0, 0x3
- strb r0, [r3, 0x1]
- subs r0, 0x4
- str r4, [sp]
- movs r1, 0x3
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- movs r0, 0x4
- bl FadeOutBGM
- b _081239D6
- .align 2, 0
-_081239A0: .4byte 0x023a0000
-_081239A4:
- ldr r0, _081239B8 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _081239D6
- movs r0, 0xFF
- strb r0, [r3, 0x1]
- b _081239D6
- .align 2, 0
-_081239B8: .4byte gPaletteFade
-_081239BC:
- movs r0, 0
- bl SetVBlankCallback
- adds r0, r6, 0
- bl DestroyTask
- ldr r0, [r5]
- ldrb r0, [r0]
- bl DestroyTask
- ldr r0, _081239E0 @ =sub_8123740
- bl SetMainCallback2
-_081239D6:
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_081239E0: .4byte sub_8123740
- thumb_func_end sub_8123878
-
- thumb_func_start sub_81239E4
-sub_81239E4: @ 81239E4
- push {r4-r6,lr}
- sub sp, 0x8
- ldr r6, _08123A38 @ =gUnknown_02039274
- ldr r1, [r6]
- ldrb r0, [r1, 0x1]
- cmp r0, 0xFF
- beq _08123AC0
- ldrb r0, [r1, 0x14]
- subs r0, 0x1
- strb r0, [r1, 0x14]
- ldr r1, [r6]
- ldrh r0, [r1, 0x6]
- movs r3, 0x1
- ands r0, r3
- cmp r0, 0
- bne _08123A0A
- ldrb r0, [r1, 0x15]
- subs r0, 0x1
- strb r0, [r1, 0x15]
-_08123A0A:
- ldr r2, [r6]
- ldrh r0, [r2, 0x6]
- movs r1, 0x7
- ands r0, r1
- cmp r0, 0
- bne _08123A24
- ldrb r0, [r2, 0xC]
- subs r0, 0x1
- strb r0, [r2, 0xC]
- ldr r1, [r6]
- ldrb r0, [r1, 0xD]
- subs r0, 0x1
- strb r0, [r1, 0xD]
-_08123A24:
- ldr r0, [r6]
- ldrb r1, [r0, 0x14]
- cmp r1, 0x20
- beq _08123A74
- cmp r1, 0x20
- bgt _08123A3C
- cmp r1, 0x10
- beq _08123A90
- b _08123AC0
- .align 2, 0
-_08123A38: .4byte gUnknown_02039274
-_08123A3C:
- cmp r1, 0x28
- beq _08123A60
- cmp r1, 0xAF
- bne _08123AC0
- ldr r1, _08123A5C @ =0x000008fc
- adds r0, r1
- movs r1, 0x2
- str r1, [sp]
- movs r1, 0xA
- str r1, [sp, 0x4]
- movs r1, 0
- movs r2, 0
- movs r3, 0x16
- bl sub_8124E7C
- b _08123AC0
- .align 2, 0
-_08123A5C: .4byte 0x000008fc
-_08123A60:
- ldr r1, _08123A70 @ =0x000008fc
- adds r0, r1
- movs r1, 0x2
- str r1, [sp]
- str r1, [sp, 0x4]
- movs r1, 0
- movs r2, 0x3
- b _08123A82
- .align 2, 0
-_08123A70: .4byte 0x000008fc
-_08123A74:
- ldr r1, _08123A8C @ =0x000008fc
- adds r0, r1
- str r3, [sp]
- movs r1, 0x2
- str r1, [sp, 0x4]
- movs r1, 0
- movs r2, 0x2
-_08123A82:
- movs r3, 0
- bl sub_8124E7C
- b _08123AC0
- .align 2, 0
-_08123A8C: .4byte 0x000008fc
-_08123A90:
- ldr r5, _08123AE8 @ =0x000008fc
- adds r0, r5
- ldr r1, _08123AEC @ =gCableCarPylonHookTilemapEntries
- movs r2, 0x5
- str r2, [sp]
- movs r4, 0x2
- str r4, [sp, 0x4]
- movs r2, 0
- movs r3, 0
- bl sub_8124F08
- ldr r0, [r6]
- adds r0, r5
- ldr r1, _08123AF0 @ =0x020199d8
- str r4, [sp]
- movs r2, 0x1E
- str r2, [sp, 0x4]
- movs r2, 0
- movs r3, 0x2
- bl sub_8124F08
- ldr r1, [r6]
- movs r0, 0x40
- strb r0, [r1, 0x15]
-_08123AC0:
- bl sub_812453C
- ldr r3, _08123AF4 @ =gSpriteCoordOffsetX
- movs r0, 0
- ldrsh r2, [r3, r0]
- adds r1, r2, 0x1
- adds r0, r1, 0
- cmp r1, 0
- bge _08123AD6
- adds r0, r2, 0
- adds r0, 0x80
-_08123AD6:
- asrs r0, 7
- lsls r0, 7
- subs r0, r1, r0
- strh r0, [r3]
- add sp, 0x8
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08123AE8: .4byte 0x000008fc
-_08123AEC: .4byte gCableCarPylonHookTilemapEntries
-_08123AF0: .4byte 0x020199d8
-_08123AF4: .4byte gSpriteCoordOffsetX
- thumb_func_end sub_81239E4
-
- thumb_func_start sub_8123AF8
-sub_8123AF8: @ 8123AF8
- push {r4-r6,lr}
- sub sp, 0x8
- ldr r6, _08123B4C @ =gUnknown_02039274
- ldr r1, [r6]
- ldrb r0, [r1, 0x1]
- cmp r0, 0xFF
- beq _08123BEE
- ldrb r0, [r1, 0x14]
- adds r0, 0x1
- strb r0, [r1, 0x14]
- ldr r2, [r6]
- ldrh r0, [r2, 0x6]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- bne _08123B1E
- ldrb r0, [r2, 0x15]
- adds r0, 0x1
- strb r0, [r2, 0x15]
-_08123B1E:
- ldr r2, [r6]
- ldrh r0, [r2, 0x6]
- movs r1, 0x7
- ands r0, r1
- cmp r0, 0
- bne _08123B38
- ldrb r0, [r2, 0xC]
- adds r0, 0x1
- strb r0, [r2, 0xC]
- ldr r1, [r6]
- ldrb r0, [r1, 0xD]
- adds r0, 0x1
- strb r0, [r1, 0xD]
-_08123B38:
- ldr r3, [r6]
- ldrb r0, [r3, 0x14]
- cmp r0, 0x20
- beq _08123BB0
- cmp r0, 0x20
- bgt _08123B50
- cmp r0, 0x10
- beq _08123B78
- b _08123BEE
- .align 2, 0
-_08123B4C: .4byte gUnknown_02039274
-_08123B50:
- cmp r0, 0x28
- beq _08123BDC
- cmp r0, 0xB0
- bne _08123BEE
- ldr r1, _08123B70 @ =0x000008fc
- adds r0, r3, r1
- ldr r1, _08123B74 @ =0x020199d8
- movs r2, 0x2
- str r2, [sp]
- movs r2, 0x1E
- str r2, [sp, 0x4]
- movs r2, 0
- movs r3, 0x2
- bl sub_8124F08
- b _08123BEE
- .align 2, 0
-_08123B70: .4byte 0x000008fc
-_08123B74: .4byte 0x020199d8
-_08123B78:
- ldr r5, _08123BAC @ =0x000008fc
- adds r0, r3, r5
- movs r1, 0x3
- str r1, [sp]
- movs r4, 0x2
- str r4, [sp, 0x4]
- movs r1, 0
- movs r2, 0x2
- movs r3, 0
- bl sub_8124E7C
- ldr r0, [r6]
- adds r0, r5
- str r4, [sp]
- movs r1, 0xA
- str r1, [sp, 0x4]
- movs r1, 0
- movs r2, 0
- movs r3, 0x16
- bl sub_8124E7C
- ldr r1, [r6]
- movs r0, 0xC0
- strb r0, [r1, 0x15]
- b _08123BEE
- .align 2, 0
-_08123BAC: .4byte 0x000008fc
-_08123BB0:
- ldr r1, _08123BD4 @ =gCableCarPylonHookTilemapEntries + 0x4
- ldrh r2, [r1]
- movs r4, 0x90
- lsls r4, 4
- adds r0, r3, r4
- strh r2, [r0]
- ldrh r2, [r1, 0x2]
- adds r4, 0x2
- adds r0, r3, r4
- strh r2, [r0]
- ldrh r2, [r1, 0xA]
- adds r4, 0x3E
- adds r0, r3, r4
- strh r2, [r0]
- ldrh r1, [r1, 0xC]
- ldr r2, _08123BD8 @ =0x00000942
- b _08123BEA
- .align 2, 0
-_08123BD4: .4byte gCableCarPylonHookTilemapEntries + 0x4
-_08123BD8: .4byte 0x00000942
-_08123BDC:
- ldr r2, _08123C08 @ =gCableCarPylonHookTilemapEntries + 0x8
- ldrh r1, [r2]
- ldr r4, _08123C0C @ =0x00000904
- adds r0, r3, r4
- strh r1, [r0]
- ldrh r1, [r2, 0xA]
- ldr r2, _08123C10 @ =0x00000944
-_08123BEA:
- adds r0, r3, r2
- strh r1, [r0]
-_08123BEE:
- bl sub_8124598
- ldr r0, _08123C14 @ =gUnknown_02039274
- ldr r1, [r0]
- ldrh r0, [r1, 0x6]
- ldrh r1, [r1, 0x4]
- cmp r0, r1
- bcs _08123C1C
- ldr r4, _08123C18 @ =gSpriteCoordOffsetX
- movs r1, 0
- ldrsh r0, [r4, r1]
- b _08123C26
- .align 2, 0
-_08123C08: .4byte gCableCarPylonHookTilemapEntries + 0x8
-_08123C0C: .4byte 0x00000904
-_08123C10: .4byte 0x00000944
-_08123C14: .4byte gUnknown_02039274
-_08123C18: .4byte gSpriteCoordOffsetX
-_08123C1C:
- ldr r0, _08123C38 @ =gUnknown_08396FC4
- ldr r4, [r0]
- ldr r2, _08123C3C @ =0x000006fc
- adds r4, r2
- ldrh r0, [r4]
-_08123C26:
- adds r0, 0xF7
- movs r1, 0xF8
- bl __modsi3
- strh r0, [r4]
- add sp, 0x8
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08123C38: .4byte gUnknown_08396FC4
-_08123C3C: .4byte 0x000006fc
- thumb_func_end sub_8123AF8
-
- thumb_func_start sub_8123C40
-sub_8123C40: @ 8123C40
- push {r4,lr}
- ldr r1, _08123C9C @ =0x040000d4
- ldr r0, _08123CA0 @ =gUnknown_02039274
- ldr r2, [r0]
- adds r0, r2, 0
- adds r0, 0xFC
- str r0, [r1]
- ldr r0, _08123CA4 @ =0x0600e000
- str r0, [r1, 0x4]
- ldr r3, _08123CA8 @ =0x80000400
- str r3, [r1, 0x8]
- ldr r0, [r1, 0x8]
- ldr r4, _08123CAC @ =0x000008fc
- adds r0, r2, r4
- str r0, [r1]
- ldr r0, _08123CB0 @ =0x0600f800
- str r0, [r1, 0x4]
- str r3, [r1, 0x8]
- ldr r0, [r1, 0x8]
- subs r1, 0xB8
- ldrb r0, [r2, 0x14]
- strh r0, [r1]
- adds r1, 0x2
- ldrb r0, [r2, 0x15]
- strh r0, [r1]
- subs r1, 0xA
- ldrb r0, [r2, 0xC]
- strh r0, [r1]
- adds r1, 0x2
- ldrb r0, [r2, 0xD]
- strh r0, [r1]
- subs r1, 0x6
- ldrb r0, [r2, 0x8]
- strh r0, [r1]
- adds r1, 0x2
- ldrb r0, [r2, 0x9]
- strh r0, [r1]
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08123C9C: .4byte 0x040000d4
-_08123CA0: .4byte gUnknown_02039274
-_08123CA4: .4byte 0x0600e000
-_08123CA8: .4byte 0x80000400
-_08123CAC: .4byte 0x000008fc
-_08123CB0: .4byte 0x0600f800
- thumb_func_end sub_8123C40
-
- thumb_func_start nullsub_76
-nullsub_76: @ 8123CB4
- bx lr
- thumb_func_end nullsub_76
-
- thumb_func_start sub_8123CB8
-sub_8123CB8: @ 8123CB8
- push {r4-r6,lr}
- adds r5, r0, 0
- ldr r0, _08123D20 @ =gUnknown_02039274
- ldr r6, [r0]
- ldrb r0, [r6, 0x1]
- cmp r0, 0xFF
- beq _08123D84
- ldr r0, _08123D24 @ =gUnknown_0202E8CC
- ldrh r0, [r0]
- cmp r0, 0
- bne _08123D34
- movs r0, 0x6
- ldrsh r4, [r6, r0]
- adds r0, r4, 0
- bl __floatsisf
- cmp r4, 0
- bge _08123CE2
- ldr r1, _08123D28 @ =0x47800000
- bl __addsf3
-_08123CE2:
- ldr r1, _08123D2C @ =0x3e0f5c29
- bl __mulsf3
- bl __fixunssfsi
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r5, 0x2E]
- subs r1, r0
- strh r1, [r5, 0x20]
- movs r1, 0x6
- ldrsh r4, [r6, r1]
- adds r0, r4, 0
- bl __floatsisf
- cmp r4, 0
- bge _08123D0A
- ldr r1, _08123D28 @ =0x47800000
- bl __addsf3
-_08123D0A:
- ldr r1, _08123D30 @ =0x3d89374c
- bl __mulsf3
- bl __fixunssfsi
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r5, 0x30]
- subs r1, r0
- strh r1, [r5, 0x22]
- b _08123D84
- .align 2, 0
-_08123D20: .4byte gUnknown_02039274
-_08123D24: .4byte gUnknown_0202E8CC
-_08123D28: .4byte 0x47800000
-_08123D2C: .4byte 0x3e0f5c29
-_08123D30: .4byte 0x3d89374c
-_08123D34:
- movs r0, 0x6
- ldrsh r4, [r6, r0]
- adds r0, r4, 0
- bl __floatsisf
- cmp r4, 0
- bge _08123D48
- ldr r1, _08123D8C @ =0x47800000
- bl __addsf3
-_08123D48:
- ldr r1, _08123D90 @ =0x3e0f5c29
- bl __mulsf3
- bl __fixunssfsi
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r5, 0x2E]
- adds r0, r1
- strh r0, [r5, 0x20]
- movs r0, 0x6
- ldrsh r4, [r6, r0]
- adds r0, r4, 0
- bl __floatsisf
- cmp r4, 0
- bge _08123D70
- ldr r1, _08123D8C @ =0x47800000
- bl __addsf3
-_08123D70:
- ldr r1, _08123D94 @ =0x3d89374c
- bl __mulsf3
- bl __fixunssfsi
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r5, 0x30]
- adds r0, r1
- strh r0, [r5, 0x22]
-_08123D84:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08123D8C: .4byte 0x47800000
-_08123D90: .4byte 0x3e0f5c29
-_08123D94: .4byte 0x3d89374c
- thumb_func_end sub_8123CB8
-
- thumb_func_start sub_8123D98
-sub_8123D98: @ 8123D98
- push {r4-r6,lr}
- adds r5, r0, 0
- ldr r0, _08123E04 @ =gUnknown_02039274
- ldr r6, [r0]
- ldrb r0, [r6, 0x1]
- cmp r0, 0xFF
- bne _08123DA8
- b _08123EB0
-_08123DA8:
- ldr r0, _08123E08 @ =gUnknown_0202E8CC
- ldrh r0, [r0]
- cmp r0, 0
- bne _08123E18
- movs r0, 0x6
- ldrsh r4, [r6, r0]
- adds r0, r4, 0
- bl __floatsisf
- cmp r4, 0
- bge _08123DC4
- ldr r1, _08123E0C @ =0x47800000
- bl __addsf3
-_08123DC4:
- ldr r1, _08123E10 @ =0x3e0f5c29
- bl __mulsf3
- bl __fixunssfsi
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r5, 0x2E]
- subs r1, r0
- strh r1, [r5, 0x20]
- movs r1, 0x6
- ldrsh r4, [r6, r1]
- adds r0, r4, 0
- bl __floatsisf
- cmp r4, 0
- bge _08123DEC
- ldr r1, _08123E0C @ =0x47800000
- bl __addsf3
-_08123DEC:
- ldr r1, _08123E14 @ =0x3d89374c
- bl __mulsf3
- bl __fixunssfsi
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r5, 0x30]
- subs r1, r0
- strh r1, [r5, 0x22]
- b _08123E68
- .align 2, 0
-_08123E04: .4byte gUnknown_02039274
-_08123E08: .4byte gUnknown_0202E8CC
-_08123E0C: .4byte 0x47800000
-_08123E10: .4byte 0x3e0f5c29
-_08123E14: .4byte 0x3d89374c
-_08123E18:
- movs r0, 0x6
- ldrsh r4, [r6, r0]
- adds r0, r4, 0
- bl __floatsisf
- cmp r4, 0
- bge _08123E2C
- ldr r1, _08123E8C @ =0x47800000
- bl __addsf3
-_08123E2C:
- ldr r1, _08123E90 @ =0x3e0f5c29
- bl __mulsf3
- bl __fixunssfsi
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r5, 0x2E]
- adds r0, r1
- strh r0, [r5, 0x20]
- movs r0, 0x6
- ldrsh r4, [r6, r0]
- adds r0, r4, 0
- bl __floatsisf
- cmp r4, 0
- bge _08123E54
- ldr r1, _08123E8C @ =0x47800000
- bl __addsf3
-_08123E54:
- ldr r1, _08123E94 @ =0x3d89374c
- bl __mulsf3
- bl __fixunssfsi
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r5, 0x30]
- adds r0, r1
- strh r0, [r5, 0x22]
-_08123E68:
- movs r0, 0x32
- ldrsh r2, [r5, r0]
- cmp r2, 0
- bne _08123E98
- movs r0, 0x11
- strh r0, [r5, 0x26]
- ldrh r0, [r5, 0x34]
- adds r1, r0, 0x1
- strh r1, [r5, 0x34]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x9
- ble _08123EB0
- strh r2, [r5, 0x34]
- ldrh r0, [r5, 0x32]
- adds r0, 0x1
- strh r0, [r5, 0x32]
- b _08123EB0
- .align 2, 0
-_08123E8C: .4byte 0x47800000
-_08123E90: .4byte 0x3e0f5c29
-_08123E94: .4byte 0x3d89374c
-_08123E98:
- movs r2, 0
- movs r0, 0x10
- strh r0, [r5, 0x26]
- ldrh r0, [r5, 0x34]
- adds r1, r0, 0x1
- strh r1, [r5, 0x34]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x9
- ble _08123EB0
- strh r2, [r5, 0x34]
- strh r2, [r5, 0x32]
-_08123EB0:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_8123D98
-
- thumb_func_start sub_8123EB8
-sub_8123EB8: @ 8123EB8
- push {lr}
- adds r2, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r2, r1]
- cmp r0, 0
- bne _08123EE8
- adds r0, r2, 0
- adds r0, 0x28
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- lsls r0, 1
- ldrh r3, [r2, 0x20]
- adds r0, r3
- strh r0, [r2, 0x20]
- ldrh r1, [r2, 0x22]
- adds r1, 0x10
- adds r0, r2, 0
- adds r0, 0x29
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- adds r0, r1
- strh r0, [r2, 0x22]
-_08123EE8:
- ldrh r0, [r2, 0x2E]
- adds r0, 0x1
- strh r0, [r2, 0x2E]
- lsls r0, 16
- asrs r0, 16
- movs r3, 0x32
- ldrsh r1, [r2, r3]
- cmp r0, r1
- blt _08123F3E
- movs r0, 0x30
- ldrsh r1, [r2, r0]
- cmp r1, 0
- beq _08123F08
- cmp r1, 0x1
- beq _08123F12
- b _08123F30
-_08123F08:
- ldrh r0, [r2, 0x20]
- adds r0, 0x1
- strh r0, [r2, 0x20]
- ldrh r0, [r2, 0x2E]
- b _08123F22
-_08123F12:
- ldrh r0, [r2, 0x2E]
- ands r0, r1
- cmp r0, 0
- beq _08123F30
- ldrh r0, [r2, 0x20]
- adds r0, 0x1
- strh r0, [r2, 0x20]
- ldrh r0, [r2, 0x20]
-_08123F22:
- movs r1, 0x3
- ands r0, r1
- cmp r0, 0
- bne _08123F30
- ldrh r0, [r2, 0x22]
- adds r0, 0x1
- strh r0, [r2, 0x22]
-_08123F30:
- movs r1, 0x22
- ldrsh r0, [r2, r1]
- cmp r0, 0xA0
- ble _08123F3E
- adds r0, r2, 0
- bl DestroySprite
-_08123F3E:
- pop {r0}
- bx r0
- thumb_func_end sub_8123EB8
-
- thumb_func_start sub_8123F44
-sub_8123F44: @ 8123F44
- push {lr}
- adds r2, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r2, r1]
- cmp r0, 0
- bne _08123F62
- ldrh r1, [r2, 0x22]
- adds r1, 0x10
- adds r0, r2, 0
- adds r0, 0x29
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- adds r0, r1
- strh r0, [r2, 0x22]
-_08123F62:
- ldrh r0, [r2, 0x2E]
- adds r0, 0x1
- strh r0, [r2, 0x2E]
- lsls r0, 16
- asrs r0, 16
- movs r3, 0x32
- ldrsh r1, [r2, r3]
- cmp r0, r1
- blt _08123FB8
- movs r0, 0x30
- ldrsh r1, [r2, r0]
- cmp r1, 0
- beq _08123F82
- cmp r1, 0x1
- beq _08123F8C
- b _08123FAA
-_08123F82:
- ldrh r0, [r2, 0x20]
- subs r0, 0x1
- strh r0, [r2, 0x20]
- ldrh r0, [r2, 0x2E]
- b _08123F9C
-_08123F8C:
- ldrh r0, [r2, 0x2E]
- ands r0, r1
- cmp r0, 0
- beq _08123FAA
- ldrh r0, [r2, 0x20]
- subs r0, 0x1
- strh r0, [r2, 0x20]
- ldrh r0, [r2, 0x20]
-_08123F9C:
- movs r1, 0x3
- ands r0, r1
- cmp r0, 0
- bne _08123FAA
- ldrh r0, [r2, 0x22]
- subs r0, 0x1
- strh r0, [r2, 0x22]
-_08123FAA:
- movs r1, 0x22
- ldrsh r0, [r2, r1]
- cmp r0, 0x4F
- bgt _08123FB8
- adds r0, r2, 0
- bl DestroySprite
-_08123FB8:
- pop {r0}
- bx r0
- thumb_func_end sub_8123F44
-
- thumb_func_start sub_8123FBC
-sub_8123FBC: @ 8123FBC
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- beq _08123FCA
- cmp r0, 0x1
- beq _08124024
-_08123FCA:
- ldr r1, _08124020 @ =REG_WININ
- movs r0, 0
- strh r0, [r1]
- adds r1, 0x2
- strh r0, [r1]
- subs r1, 0xA
- strh r0, [r1]
- adds r1, 0x2
- strh r0, [r1]
- adds r1, 0x2
- strh r0, [r1]
- adds r1, 0x2
- strh r0, [r1]
- subs r1, 0x46
- strh r0, [r1]
- adds r1, 0xE
- strh r0, [r1]
- subs r1, 0x2
- strh r0, [r1]
- subs r1, 0x2
- strh r0, [r1]
- subs r1, 0x2
- strh r0, [r1]
- adds r1, 0x14
- strh r0, [r1]
- adds r1, 0x2
- strh r0, [r1]
- subs r1, 0x6
- strh r0, [r1]
- adds r1, 0x2
- strh r0, [r1]
- subs r1, 0x6
- strh r0, [r1]
- adds r1, 0x2
- strh r0, [r1]
- subs r1, 0x6
- strh r0, [r1]
- adds r1, 0x2
- strh r0, [r1]
- adds r1, 0x3E
- strh r0, [r1]
- b _081240EE
- .align 2, 0
-_08124020: .4byte REG_WININ
-_08124024:
- ldr r0, _08124060 @ =REG_WININ
- movs r3, 0
- strh r3, [r0]
- adds r0, 0x2
- strh r3, [r0]
- subs r0, 0xA
- strh r3, [r0]
- adds r0, 0x2
- strh r3, [r0]
- adds r0, 0x2
- strh r3, [r0]
- adds r0, 0x2
- strh r3, [r0]
- ldr r0, _08124064 @ =gUnknown_0202E8CC
- ldrh r0, [r0]
- cmp r0, 0
- bne _0812406C
- ldr r1, _08124068 @ =gUnknown_02039274
- ldr r2, [r1]
- movs r0, 0xB0
- strb r0, [r2, 0x14]
- ldr r2, [r1]
- movs r0, 0x10
- strb r0, [r2, 0x15]
- ldr r0, [r1]
- strb r3, [r0, 0xC]
- ldr r2, [r1]
- movs r0, 0x50
- b _08124082
- .align 2, 0
-_08124060: .4byte REG_WININ
-_08124064: .4byte gUnknown_0202E8CC
-_08124068: .4byte gUnknown_02039274
-_0812406C:
- ldr r1, _081240F4 @ =gUnknown_02039274
- ldr r2, [r1]
- movs r0, 0x60
- strb r0, [r2, 0x14]
- ldr r2, [r1]
- movs r0, 0xE8
- strb r0, [r2, 0x15]
- ldr r0, [r1]
- strb r3, [r0, 0xC]
- ldr r2, [r1]
- movs r0, 0x4
-_08124082:
- strb r0, [r2, 0xD]
- ldr r0, [r1]
- strb r3, [r0, 0x9]
- ldr r0, [r1]
- strb r3, [r0, 0x9]
- adds r2, r1, 0
- ldr r1, _081240F8 @ =REG_BG3HOFS
- ldr r2, [r2]
- ldrb r0, [r2, 0x14]
- strh r0, [r1]
- adds r1, 0x2
- ldrb r0, [r2, 0x15]
- strh r0, [r1]
- ldr r0, _081240FC @ =REG_BG2HOFS
- movs r1, 0
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- ldr r1, _08124100 @ =REG_BG1HOFS
- ldrb r0, [r2, 0xC]
- strh r0, [r1]
- adds r1, 0x2
- ldrb r0, [r2, 0xD]
- strh r0, [r1]
- subs r1, 0x6
- ldrb r0, [r2, 0x8]
- strh r0, [r1]
- adds r1, 0x2
- ldrb r0, [r2, 0x9]
- strh r0, [r1]
- subs r1, 0xA
- ldr r2, _08124104 @ =0x00003c01
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- ldr r3, _08124108 @ =0x00003d02
- adds r0, r3, 0
- strh r0, [r1]
- adds r1, 0x2
- ldr r2, _0812410C @ =0x00003e03
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, _08124110 @ =REG_BG3CNT
- movs r3, 0xFC
- lsls r3, 6
- adds r2, r3, 0
- strh r2, [r0]
- subs r1, 0xC
- movs r3, 0xFA
- lsls r3, 5
- adds r0, r3, 0
- strh r0, [r1]
- ldr r0, _08124114 @ =REG_BLDCNT
- strh r2, [r0]
-_081240EE:
- pop {r0}
- bx r0
- .align 2, 0
-_081240F4: .4byte gUnknown_02039274
-_081240F8: .4byte REG_BG3HOFS
-_081240FC: .4byte REG_BG2HOFS
-_08124100: .4byte REG_BG1HOFS
-_08124104: .4byte 0x00003c01
-_08124108: .4byte 0x00003d02
-_0812410C: .4byte 0x00003e03
-_08124110: .4byte REG_BG3CNT
-_08124114: .4byte REG_BLDCNT
- thumb_func_end sub_8123FBC
-
- thumb_func_start sub_8124118
-sub_8124118: @ 8124118
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x24
- ldr r1, _0812422C @ =gCableCarPlayerGraphicsIDs
- add r0, sp, 0x8
- movs r2, 0x2
- bl memcpy
- bl Random
- lsls r0, 16
- lsrs r0, 16
- mov r9, r0
- add r6, sp, 0xC
- ldr r1, _08124230 @ =gMtChimneyHikerGraphicsIDs
- adds r0, r6, 0
- movs r2, 0x4
- bl memcpy
- add r5, sp, 0x10
- ldr r1, _08124234 @ =gMtChimneyHikerCoords
- adds r0, r5, 0
- movs r2, 0x8
- bl memcpy
- add r4, sp, 0x18
- ldr r1, _08124238 @ =gMtChimneyHikerMovementDelayTable
- adds r0, r4, 0
- movs r2, 0x4
- bl memcpy
- ldr r0, _0812423C @ =gUnknown_08401D9C
- ldr r1, [r0, 0x4]
- ldr r0, [r0]
- str r0, [sp, 0x1C]
- str r1, [sp, 0x20]
- ldr r0, _08124240 @ =gUnknown_0202E8CC
- ldrh r0, [r0]
- mov r8, r6
- mov r10, r5
- cmp r0, 0
- beq _08124176
- cmp r0, 0x1
- beq _08124258
-_08124176:
- ldr r0, _08124244 @ =gSaveBlock2
- ldrb r0, [r0, 0x8]
- add r0, sp
- adds r0, 0x8
- ldrb r0, [r0]
- ldr r1, _08124248 @ =sub_8123D98
- movs r2, 0x66
- str r2, [sp]
- movs r2, 0xC8
- movs r3, 0x49
- bl AddPseudoFieldObject
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0x40
- beq _081241BE
- ldr r0, _0812424C @ =gSprites
- lsls r1, r6, 4
- adds r1, r6
- lsls r1, 2
- adds r1, r0
- ldrb r2, [r1, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- movs r2, 0x8
- orrs r0, r2
- strb r0, [r1, 0x5]
- movs r0, 0x8
- strh r0, [r1, 0x24]
- movs r0, 0x10
- strh r0, [r1, 0x26]
- movs r0, 0xC8
- strh r0, [r1, 0x2E]
- movs r0, 0x49
- strh r0, [r1, 0x30]
-_081241BE:
- ldr r4, _08124250 @ =gSpriteTemplate_8401D40
- adds r0, r4, 0
- movs r1, 0xB0
- movs r2, 0x2B
- movs r3, 0x67
- bl CreateSprite
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r5, _0812424C @ =gSprites
- lsls r0, r6, 4
- adds r0, r6
- lsls r0, 2
- adds r0, r5
- movs r1, 0x20
- strh r1, [r0, 0x26]
- strh r1, [r0, 0x24]
- movs r1, 0xB0
- strh r1, [r0, 0x2E]
- movs r1, 0x2B
- strh r1, [r0, 0x30]
- adds r4, 0x18
- adds r0, r4, 0
- movs r1, 0xC8
- movs r2, 0x63
- movs r3, 0x65
- bl CreateSprite
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r0, r6, 4
- adds r0, r6
- lsls r0, 2
- adds r0, r5
- movs r1, 0x8
- strh r1, [r0, 0x24]
- movs r1, 0x4
- strh r1, [r0, 0x26]
- movs r1, 0xC8
- strh r1, [r0, 0x2E]
- movs r1, 0x63
- strh r1, [r0, 0x30]
- ldr r2, _08124254 @ =gUnknown_02039274
- ldr r1, [r2]
- movs r0, 0x7
- strb r0, [r1, 0x2]
- ldr r1, [r2]
- movs r0, 0xAF
- lsls r0, 1
- strh r0, [r1, 0x4]
- movs r0, 0x2
- bl sub_807C9B4
- b _0812431E
- .align 2, 0
-_0812422C: .4byte gCableCarPlayerGraphicsIDs
-_08124230: .4byte gMtChimneyHikerGraphicsIDs
-_08124234: .4byte gMtChimneyHikerCoords
-_08124238: .4byte gMtChimneyHikerMovementDelayTable
-_0812423C: .4byte gUnknown_08401D9C
-_08124240: .4byte gUnknown_0202E8CC
-_08124244: .4byte gSaveBlock2
-_08124248: .4byte sub_8123D98
-_0812424C: .4byte gSprites
-_08124250: .4byte gSpriteTemplate_8401D40
-_08124254: .4byte gUnknown_02039274
-_08124258:
- ldr r7, _081243EC @ =gUnknown_02039274
- ldr r0, [r7]
- adds r0, 0xFC
- ldr r1, _081243F0 @ =0x02019048
- movs r2, 0xC
- str r2, [sp]
- movs r2, 0x3
- str r2, [sp, 0x4]
- movs r2, 0x18
- movs r3, 0x1A
- bl sub_8124F08
- ldr r0, _081243F4 @ =gSaveBlock2
- ldrb r0, [r0, 0x8]
- add r0, sp
- adds r0, 0x8
- ldrb r0, [r0]
- ldr r1, _081243F8 @ =sub_8123D98
- movs r2, 0x66
- str r2, [sp]
- movs r2, 0x80
- movs r3, 0x27
- bl AddPseudoFieldObject
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0x40
- beq _081242B8
- ldr r0, _081243FC @ =gSprites
- lsls r1, r6, 4
- adds r1, r6
- lsls r1, 2
- adds r1, r0
- ldrb r2, [r1, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- movs r2, 0x8
- orrs r0, r2
- strb r0, [r1, 0x5]
- movs r0, 0x8
- strh r0, [r1, 0x24]
- movs r0, 0x10
- strh r0, [r1, 0x26]
- movs r0, 0x80
- strh r0, [r1, 0x2E]
- movs r0, 0x27
- strh r0, [r1, 0x30]
-_081242B8:
- ldr r4, _08124400 @ =gSpriteTemplate_8401D40
- adds r0, r4, 0
- movs r1, 0x68
- movs r2, 0x9
- movs r3, 0x67
- bl CreateSprite
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r5, _081243FC @ =gSprites
- lsls r0, r6, 4
- adds r0, r6
- lsls r0, 2
- adds r0, r5
- movs r1, 0x20
- strh r1, [r0, 0x26]
- strh r1, [r0, 0x24]
- movs r1, 0x68
- strh r1, [r0, 0x2E]
- movs r1, 0x9
- strh r1, [r0, 0x30]
- adds r4, 0x18
- adds r0, r4, 0
- movs r1, 0x80
- movs r2, 0x41
- movs r3, 0x65
- bl CreateSprite
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r0, r6, 4
- adds r0, r6
- lsls r0, 2
- adds r0, r5
- movs r1, 0x8
- strh r1, [r0, 0x24]
- movs r1, 0x4
- strh r1, [r0, 0x26]
- movs r1, 0x80
- strh r1, [r0, 0x2E]
- movs r1, 0x41
- strh r1, [r0, 0x30]
- ldr r1, [r7]
- movs r0, 0x2
- strb r0, [r1, 0x2]
- ldr r1, [r7]
- ldr r0, _08124404 @ =0x00000109
- strh r0, [r1, 0x4]
- movs r0, 0x7
- bl sub_807C9B4
-_0812431E:
- movs r4, 0
- ldr r5, _081243FC @ =gSprites
-_08124322:
- lsls r1, r4, 20
- movs r0, 0xC0
- lsls r0, 15
- adds r1, r0
- asrs r1, 16
- lsls r2, r4, 19
- ldr r3, _08124408 @ =0xfff80000
- adds r2, r3
- asrs r2, 16
- ldr r0, _0812440C @ =gSpriteTemplate_8401D70
- movs r3, 0x68
- bl CreateSprite
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r0, r6, 4
- adds r0, r6
- lsls r0, 2
- adds r0, r5
- movs r1, 0x8
- strh r1, [r0, 0x24]
- strh r1, [r0, 0x26]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x8
- bls _08124322
- movs r0, 0x3F
- mov r4, r9
- ands r0, r4
- cmp r0, 0
- bne _08124458
- mov r0, r9
- movs r1, 0x3
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 16
- add r0, r8
- ldrb r0, [r0]
- ldr r5, _08124410 @ =gUnknown_0202E8CC
- ldrh r4, [r5]
- lsls r4, 2
- add r1, sp, 0x1C
- adds r1, r4, r1
- ldr r1, [r1]
- mov r3, r10
- adds r2, r3, r4
- movs r3, 0
- ldrsh r2, [r2, r3]
- mov r3, sp
- adds r3, 0x12
- adds r3, r4
- movs r4, 0
- ldrsh r3, [r3, r4]
- movs r4, 0x6A
- str r4, [sp]
- bl AddPseudoFieldObject
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0x40
- beq _08124458
- ldr r1, _081243FC @ =gSprites
- lsls r2, r6, 4
- adds r0, r2, r6
- lsls r0, 2
- adds r4, r0, r1
- ldrb r1, [r4, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r1
- movs r1, 0x8
- orrs r0, r1
- strb r0, [r4, 0x5]
- adds r0, r4, 0
- adds r0, 0x28
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- negs r0, r0
- strh r0, [r4, 0x24]
- adds r0, r4, 0
- adds r0, 0x29
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- negs r0, r0
- strh r0, [r4, 0x26]
- ldrh r0, [r5]
- mov r8, r2
- cmp r0, 0
- bne _0812441A
- movs r7, 0x1
- mov r5, r9
- ands r5, r7
- cmp r5, 0
- beq _08124414
- adds r0, r4, 0
- movs r1, 0x6
- b _08124428
- .align 2, 0
-_081243EC: .4byte gUnknown_02039274
-_081243F0: .4byte 0x02019048
-_081243F4: .4byte gSaveBlock2
-_081243F8: .4byte sub_8123D98
-_081243FC: .4byte gSprites
-_08124400: .4byte gSpriteTemplate_8401D40
-_08124404: .4byte 0x00000109
-_08124408: .4byte 0xfff80000
-_0812440C: .4byte gSpriteTemplate_8401D70
-_08124410: .4byte gUnknown_0202E8CC
-_08124414:
- adds r0, r4, 0
- movs r1, 0x7
- b _0812443A
-_0812441A:
- movs r7, 0x1
- mov r5, r9
- ands r5, r7
- cmp r5, 0
- beq _08124436
- adds r0, r4, 0
- movs r1, 0x7
-_08124428:
- bl StartSpriteAnim
- strh r7, [r4, 0x30]
- ldrh r0, [r4, 0x22]
- adds r0, 0x2
- strh r0, [r4, 0x22]
- b _08124440
-_08124436:
- adds r0, r4, 0
- movs r1, 0x6
-_0812443A:
- bl StartSpriteAnim
- strh r5, [r4, 0x30]
-_08124440:
- ldr r0, _08124468 @ =gSprites
- mov r2, r8
- adds r1, r2, r6
- lsls r1, 2
- adds r1, r0
- movs r0, 0x3
- mov r3, r9
- ands r0, r3
- add r0, sp
- adds r0, 0x18
- ldrb r0, [r0]
- strh r0, [r1, 0x32]
-_08124458:
- 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
-_08124468: .4byte gSprites
- thumb_func_end sub_8124118
-
- thumb_func_start sub_812446C
-sub_812446C: @ 812446C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- movs r3, 0
- mov r9, r3
- ldr r2, _08124530 @ =gUnknown_02039274
- ldr r0, [r2]
- ldrb r1, [r0, 0x1B]
- adds r1, 0x2
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 26
- lsrs r0, 24
- mov r12, r0
-_0812448E:
- movs r6, 0
- lsls r0, r3, 1
- adds r1, r3, 0x3
- adds r2, r3, 0x6
- adds r4, r3, 0x1
- str r4, [sp]
- adds r0, r3
- lsls r0, 3
- mov r10, r0
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 3
- mov r8, r0
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 3
- str r0, [sp, 0x4]
-_081244B0:
- ldr r7, _08124530 @ =gUnknown_02039274
- ldr r5, [r7]
- lsls r3, r6, 1
- mov r0, r10
- adds r2, r3, r0
- adds r4, r5, 0
- adds r4, 0x22
- adds r2, r4, r2
- mov r1, r12
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r12, r0
- lsls r1, 1
- ldr r7, _08124534 @ =0x02019000
- adds r1, r7
- ldrh r0, [r1]
- strh r0, [r2]
- mov r0, r8
- adds r1, r3, r0
- adds r1, r4, r1
- mov r7, r9
- lsls r2, r7, 1
- ldr r7, _08124534 @ =0x02019000
- adds r0, r2, r7
- ldrh r0, [r0]
- strh r0, [r1]
- ldr r0, [sp, 0x4]
- adds r3, r0
- adds r4, r3
- ldr r1, _08124538 @ =0x02019048
- adds r2, r1
- ldrh r0, [r2]
- strh r0, [r4]
- mov r0, r9
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0xB
- bls _081244B0
- ldr r4, [sp]
- lsls r0, r4, 24
- lsrs r3, r0, 24
- cmp r3, 0x2
- bls _0812448E
- ldrb r0, [r5, 0x1B]
- adds r0, 0x1
- movs r1, 0x3
- bl __modsi3
- strb r0, [r5, 0x1B]
- 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
-_08124530: .4byte gUnknown_02039274
-_08124534: .4byte 0x02019000
-_08124538: .4byte 0x02019048
- thumb_func_end sub_812446C
-
- thumb_func_start sub_812453C
-sub_812453C: @ 812453C
- push {r4,r5,lr}
- ldr r5, _08124594 @ =gUnknown_02039274
- ldr r4, [r5]
- ldrb r0, [r4, 0x1C]
- adds r0, 0x1
- movs r1, 0x60
- bl __modsi3
- strb r0, [r4, 0x1C]
- ldr r1, [r5]
- ldrb r0, [r1, 0x1F]
- ldrb r2, [r1, 0x1D]
- subs r0, r2
- strb r0, [r1, 0x8]
- ldr r2, [r5]
- adds r0, r2, 0
- adds r0, 0x20
- ldrb r0, [r0]
- ldrb r1, [r2, 0x1E]
- subs r0, r1
- strb r0, [r2, 0x9]
- ldr r1, [r5]
- ldrb r0, [r1, 0x1D]
- adds r0, 0x1
- strb r0, [r1, 0x1D]
- ldr r2, [r5]
- ldrb r0, [r2, 0x1D]
- movs r1, 0x3
- ands r0, r1
- cmp r0, 0
- bne _08124580
- ldrb r0, [r2, 0x1E]
- adds r0, 0x1
- strb r0, [r2, 0x1E]
-_08124580:
- ldr r0, [r5]
- ldrb r0, [r0, 0x1D]
- cmp r0, 0x10
- bls _0812458C
- bl sub_81245F4
-_0812458C:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08124594: .4byte gUnknown_02039274
- thumb_func_end sub_812453C
-
- thumb_func_start sub_8124598
-sub_8124598: @ 8124598
- push {r4,r5,lr}
- ldr r5, _081245F0 @ =gUnknown_02039274
- ldr r4, [r5]
- ldrb r0, [r4, 0x1C]
- adds r0, 0x1
- movs r1, 0x60
- bl __modsi3
- strb r0, [r4, 0x1C]
- ldr r1, [r5]
- ldrb r0, [r1, 0x1D]
- ldrb r2, [r1, 0x1F]
- adds r0, r2
- strb r0, [r1, 0x8]
- ldr r1, [r5]
- adds r2, r1, 0
- adds r2, 0x20
- ldrb r0, [r1, 0x1E]
- ldrb r2, [r2]
- adds r0, r2
- strb r0, [r1, 0x9]
- ldr r1, [r5]
- ldrb r0, [r1, 0x1D]
- adds r0, 0x1
- strb r0, [r1, 0x1D]
- ldr r2, [r5]
- ldrb r0, [r2, 0x1D]
- movs r1, 0x3
- ands r0, r1
- cmp r0, 0
- bne _081245DC
- ldrb r0, [r2, 0x1E]
- adds r0, 0x1
- strb r0, [r2, 0x1E]
-_081245DC:
- ldr r0, [r5]
- ldrb r0, [r0, 0x1D]
- cmp r0, 0x10
- bls _081245E8
- bl sub_812476C
-_081245E8:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_081245F0: .4byte gUnknown_02039274
- thumb_func_end sub_8124598
-
- thumb_func_start sub_81245F4
-sub_81245F4: @ 81245F4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- movs r0, 0
- mov r12, r0
- ldr r2, _0812475C @ =gUnknown_02039274
- ldr r0, [r2]
- mov r1, r12
- strb r1, [r0, 0x1E]
- strb r1, [r0, 0x1D]
- ldr r1, [r2]
- ldrb r0, [r1, 0x8]
- strb r0, [r1, 0x1F]
- ldr r0, [r2]
- ldrb r1, [r0, 0x9]
- adds r0, 0x20
- strb r1, [r0]
- ldr r4, [r2]
- ldrb r1, [r4, 0x19]
- adds r3, r1, 0
- adds r3, 0x1E
- adds r0, r3, 0
- mov r9, r2
- asrs r0, 5
- lsls r0, 5
- subs r0, r3, r0
- strb r0, [r4, 0x19]
- mov r2, r9
- ldr r1, [r2]
- ldrb r0, [r1, 0x18]
- subs r0, 0x2
- strb r0, [r1, 0x18]
- ldr r0, [r2]
- ldrb r1, [r0, 0x1A]
- adds r2, r1, 0
- adds r2, 0x17
- adds r0, r2, 0
- ldr r3, _08124760 @ =gUnknown_0203927A
- mov r10, r3
- asrs r0, 5
- lsls r0, 5
- subs r0, r2, r0
- mov r4, r10
- strb r0, [r4]
- ldr r7, _08124764 @ =gUnknown_02039278
- ldr r0, _08124768 @ =gUnknown_02039279
- mov r8, r0
-_08124658:
- mov r1, r9
- ldr r3, [r1]
- ldrb r0, [r3, 0x19]
- strb r0, [r7]
- mov r2, r10
- ldrb r0, [r2]
- mov r4, r12
- adds r1, r0, r4
- adds r0, r1, 0
- asrs r0, 5
- lsls r0, 5
- subs r0, r1, r0
- mov r1, r8
- strb r0, [r1]
- ldrb r2, [r7]
- lsls r2, 1
- ldrb r0, [r1]
- lsls r0, 6
- adds r2, r0
- adds r6, r3, 0
- adds r6, 0xFC
- adds r2, r6, r2
- ldrb r1, [r3, 0x18]
- lsls r1, 1
- mov r4, r12
- lsls r0, r4, 1
- add r0, r12
- lsls r5, r0, 3
- adds r1, r5
- adds r4, r3, 0
- adds r4, 0x22
- adds r1, r4, r1
- ldrh r0, [r1]
- strh r0, [r2]
- ldrb r1, [r7]
- adds r2, r1, 0x1
- adds r0, r2, 0
- asrs r0, 5
- lsls r0, 5
- subs r0, r2, r0
- strb r0, [r7]
- ldrb r1, [r7]
- lsls r1, 1
- mov r2, r8
- ldrb r0, [r2]
- lsls r0, 6
- adds r1, r0
- adds r1, r6, r1
- ldrb r0, [r3, 0x18]
- adds r0, 0x1
- lsls r0, 1
- adds r0, r5
- adds r0, r4, r0
- ldrh r0, [r0]
- strh r0, [r1]
- mov r0, r12
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r12, r0
- cmp r0, 0x8
- bls _08124658
- ldr r4, _08124764 @ =gUnknown_02039278
- mov r5, r9
- ldr r3, [r5]
- ldrb r1, [r3, 0x19]
- adds r2, r1, 0
- adds r2, 0x1E
- adds r0, r2, 0
- asrs r0, 5
- lsls r0, 5
- subs r0, r2, r0
- strb r0, [r4]
- adds r0, r3, 0
- adds r0, 0xFC
- ldrb r2, [r4]
- movs r1, 0x2
- str r1, [sp]
- movs r6, 0x20
- str r6, [sp, 0x4]
- movs r1, 0
- movs r3, 0
- bl sub_8124E7C
- ldr r1, [r5]
- ldrb r0, [r1, 0x18]
- cmp r0, 0
- bne _0812474C
- ldrb r2, [r1, 0x1A]
- adds r3, r2, 0
- adds r3, 0x1D
- adds r0, r3, 0
- asrs r0, 5
- lsls r0, 5
- subs r0, r3, r0
- strb r0, [r1, 0x1A]
- mov r3, r9
- ldr r1, [r3]
- movs r0, 0xC
- strb r0, [r1, 0x18]
- bl sub_812446C
- mov r4, r9
- ldr r1, [r4]
- ldrb r3, [r1, 0x1A]
- adds r4, r3, 0x1
- adds r0, r4, 0
- asrs r0, 5
- lsls r0, 5
- subs r0, r4, r0
- ldr r2, _08124764 @ =gUnknown_02039278
- strb r0, [r2]
- adds r0, r1, 0
- adds r0, 0xFC
- ldrb r3, [r2]
- str r6, [sp]
- movs r1, 0x9
- str r1, [sp, 0x4]
- movs r1, 0
- movs r2, 0
- bl sub_8124E7C
-_0812474C:
- 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
-_0812475C: .4byte gUnknown_02039274
-_08124760: .4byte gUnknown_0203927A
-_08124764: .4byte gUnknown_02039278
-_08124768: .4byte gUnknown_02039279
- thumb_func_end sub_81245F4
-
- thumb_func_start sub_812476C
-sub_812476C: @ 812476C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- movs r0, 0
- mov r12, r0
- ldr r2, _0812489C @ =gUnknown_02039274
- ldr r0, [r2]
- mov r1, r12
- strb r1, [r0, 0x1E]
- strb r1, [r0, 0x1D]
- ldr r1, [r2]
- ldrb r0, [r1, 0x8]
- strb r0, [r1, 0x1F]
- ldr r0, [r2]
- ldrb r1, [r0, 0x9]
- adds r0, 0x20
- strb r1, [r0]
- ldr r4, [r2]
- ldrb r1, [r4, 0x19]
- adds r3, r1, 0x2
- adds r0, r3, 0
- mov r9, r2
- asrs r0, 5
- lsls r0, 5
- subs r0, r3, r0
- strb r0, [r4, 0x19]
- mov r2, r9
- ldr r1, [r2]
- ldrb r0, [r1, 0x18]
- adds r0, 0x2
- strb r0, [r1, 0x18]
- ldr r1, _081248A0 @ =gUnknown_0203927D
- ldr r0, [r2]
- ldrb r0, [r0, 0x1A]
- strb r0, [r1]
- ldr r4, _081248A4 @ =gUnknown_0203927C
- mov r10, r4
- ldr r7, _081248A8 @ =gUnknown_0203927B
- mov r8, r10
-_081247C0:
- mov r0, r9
- ldr r3, [r0]
- ldrb r0, [r3, 0x19]
- strb r0, [r7]
- ldr r1, _081248A0 @ =gUnknown_0203927D
- ldrb r0, [r1]
- mov r2, r12
- adds r1, r0, r2
- adds r0, r1, 0
- asrs r0, 5
- lsls r0, 5
- subs r0, r1, r0
- mov r4, r8
- strb r0, [r4]
- ldrb r2, [r7]
- lsls r2, 1
- ldrb r0, [r4]
- lsls r0, 6
- adds r2, r0
- adds r6, r3, 0
- adds r6, 0xFC
- adds r2, r6, r2
- ldrb r1, [r3, 0x18]
- lsls r1, 1
- mov r4, r12
- lsls r0, r4, 1
- add r0, r12
- lsls r5, r0, 3
- adds r1, r5
- adds r4, r3, 0
- adds r4, 0x22
- adds r1, r4, r1
- ldrh r0, [r1]
- strh r0, [r2]
- ldrb r1, [r7]
- adds r2, r1, 0x1
- adds r0, r2, 0
- asrs r0, 5
- lsls r0, 5
- subs r0, r2, r0
- strb r0, [r7]
- ldrb r1, [r7]
- lsls r1, 1
- mov r2, r8
- ldrb r0, [r2]
- lsls r0, 6
- adds r1, r0
- adds r1, r6, r1
- ldrb r0, [r3, 0x18]
- adds r0, 0x1
- lsls r0, 1
- adds r0, r5
- adds r0, r4, r0
- ldrh r0, [r0]
- strh r0, [r1]
- mov r0, r12
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r12, r0
- cmp r0, 0x8
- bls _081247C0
- mov r4, r9
- ldr r1, [r4]
- ldrb r2, [r1, 0x1A]
- adds r3, r2, 0
- adds r3, 0x17
- adds r0, r3, 0
- asrs r0, 5
- lsls r0, 5
- subs r0, r3, r0
- mov r2, r10
- strb r0, [r2]
- adds r0, r1, 0
- adds r0, 0xFC
- ldrb r2, [r1, 0x19]
- mov r1, r10
- ldrb r3, [r1]
- movs r1, 0x2
- str r1, [sp]
- movs r1, 0x9
- str r1, [sp, 0x4]
- movs r1, 0
- bl sub_8124E7C
- ldr r1, [r4]
- ldrb r0, [r1, 0x18]
- cmp r0, 0xA
- bne _0812488C
- ldrb r2, [r1, 0x1A]
- adds r3, r2, 0x3
- adds r0, r3, 0
- asrs r0, 5
- lsls r0, 5
- subs r0, r3, r0
- strb r0, [r1, 0x1A]
- mov r2, r9
- ldr r1, [r2]
- movs r0, 0xFE
- strb r0, [r1, 0x18]
- bl sub_812446C
-_0812488C:
- 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
-_0812489C: .4byte gUnknown_02039274
-_081248A0: .4byte gUnknown_0203927D
-_081248A4: .4byte gUnknown_0203927C
-_081248A8: .4byte gUnknown_0203927B
- thumb_func_end sub_812476C
-
- thumb_func_start sub_81248AC
-sub_81248AC: @ 81248AC
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- beq _081248BA
- cmp r0, 0x1
- beq _081248E4
-_081248BA:
- ldr r1, _081248E0 @ =gUnknown_02039274
- ldr r2, [r1]
- movs r3, 0
- movs r0, 0x2
- strb r0, [r2, 0x1B]
- ldr r0, [r1]
- strb r3, [r0, 0x19]
- ldr r2, [r1]
- movs r0, 0x14
- strb r0, [r2, 0x1A]
- ldr r1, [r1]
- movs r0, 0xC
- strb r0, [r1, 0x18]
- bl sub_812446C
- bl sub_81245F4
- b _08124906
- .align 2, 0
-_081248E0: .4byte gUnknown_02039274
-_081248E4:
- ldr r1, _08124914 @ =gUnknown_02039274
- ldr r2, [r1]
- movs r0, 0x2
- strb r0, [r2, 0x1B]
- ldr r2, [r1]
- movs r0, 0x1C
- strb r0, [r2, 0x19]
- ldr r2, [r1]
- movs r0, 0x14
- strb r0, [r2, 0x1A]
- ldr r1, [r1]
- movs r0, 0x4
- strb r0, [r1, 0x18]
- bl sub_812446C
- bl sub_812476C
-_08124906:
- ldr r0, _08124914 @ =gUnknown_02039274
- ldr r1, [r0]
- movs r0, 0
- strb r0, [r1, 0x1C]
- pop {r0}
- bx r0
- .align 2, 0
-_08124914: .4byte gUnknown_02039274
- thumb_func_end sub_81248AC
-
- thumb_func_start sub_8124918
-sub_8124918: @ 8124918
- push {lr}
- movs r1, 0
- strb r1, [r0]
- strh r1, [r0, 0x2]
- adds r0, 0x4
- movs r2, 0xC0
- bl memset
- pop {r0}
- bx r0
- thumb_func_end sub_8124918
-
- thumb_func_start sub_812492C
-sub_812492C: @ 812492C
- push {r4-r7,lr}
- adds r3, r0, 0
- lsls r1, 24
- lsrs r6, r1, 24
- cmp r6, 0xF
- bhi _08124948
- lsls r0, r6, 1
- adds r0, r6
- lsls r0, 2
- adds r5, r3, r0
- ldrb r7, [r5, 0x4]
- lsrs r0, r7, 7
- cmp r0, 0
- beq _0812494C
-_08124948:
- movs r0, 0xFF
- b _081249AA
-_0812494C:
- ldrh r0, [r2]
- movs r4, 0
- strh r0, [r5, 0x8]
- ldrh r0, [r2, 0x2]
- strh r0, [r5, 0xA]
- ldrb r0, [r2, 0x4]
- strb r0, [r5, 0xC]
- ldrb r0, [r2, 0x5]
- strb r0, [r5, 0xD]
- ldrb r0, [r2, 0x6]
- strb r0, [r5, 0xE]
- ldrb r3, [r2, 0x7]
- lsls r0, r3, 27
- lsrs r0, 27
- ldrb r2, [r5, 0xF]
- movs r1, 0x20
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- movs r0, 0x60
- ands r0, r3
- movs r2, 0x61
- negs r2, r2
- ands r1, r2
- orrs r1, r0
- lsls r3, 24
- asrs r3, 31
- lsls r3, 7
- movs r0, 0x7F
- ands r1, r0
- orrs r1, r3
- strb r1, [r5, 0xF]
- subs r0, 0xFF
- ands r0, r7
- movs r2, 0x80
- orrs r0, r2
- strb r0, [r5, 0x4]
- strb r4, [r5, 0x6]
- strb r4, [r5, 0x5]
- lsls r1, 24
- cmp r1, 0
- bge _081249A4
- movs r0, 0xFF
- b _081249A6
-_081249A4:
- movs r0, 0x1
-_081249A6:
- strb r0, [r5, 0x7]
- adds r0, r6, 0
-_081249AA:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_812492C
-
- thumb_func_start unref_sub_81249B0
-unref_sub_81249B0: @ 81249B0
- push {r4,lr}
- adds r2, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r4, r1, 0
- cmp r4, 0xF
- bhi _081249DC
- lsls r0, r4, 1
- adds r0, r4
- lsls r0, 2
- adds r1, r2, r0
- ldrb r0, [r1, 0x4]
- lsrs r0, 7
- cmp r0, 0
- beq _081249DC
- adds r0, r1, 0x4
- movs r1, 0
- movs r2, 0xC
- bl memset
- adds r0, r4, 0
- b _081249DE
-_081249DC:
- movs r0, 0xFF
-_081249DE:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end unref_sub_81249B0
-
- thumb_func_start sub_81249E4
-sub_81249E4: @ 81249E4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- adds r5, r0, 0
- movs r0, 0
- mov r12, r0
- ldrb r1, [r5, 0x8]
- cmp r12, r1
- bcc _081249FC
- b _08124B94
-_081249FC:
- movs r7, 0x1F
- ldr r0, _08124A2C @ =0xfffffc1f
- mov r10, r0
- movs r1, 0x7D
- negs r1, r1
- mov r9, r1
- movs r0, 0x1F
- mov r8, r0
-_08124A0C:
- ldrh r0, [r5, 0x6]
- add r0, r12
- lsls r0, 1
- ldr r1, _08124A30 @ =gPlttBufferFaded
- adds r3, r0, r1
- ldr r1, _08124A34 @ =gPlttBufferUnfaded
- adds r6, r0, r1
- ldrb r0, [r5]
- lsls r0, 25
- lsrs r0, 25
- cmp r0, 0x1
- beq _08124A38
- cmp r0, 0x2
- beq _08124A96
- b _08124B82
- .align 2, 0
-_08124A2C: .4byte 0xfffffc1f
-_08124A30: .4byte gPlttBufferFaded
-_08124A34: .4byte gPlttBufferUnfaded
-_08124A38:
- ldr r0, [r3]
- lsls r2, r0, 27
- lsrs r0, r2, 27
- movs r1, 0x3
- ldrsb r1, [r5, r1]
- adds r0, r1
- cmp r0, 0x1F
- bhi _08124A5A
- lsrs r0, r2, 27
- adds r0, r1
- ands r0, r7
- ldrb r2, [r3]
- movs r1, 0x20
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r3]
-_08124A5A:
- ldr r0, [r3]
- lsls r2, r0, 22
- lsrs r0, r2, 27
- movs r1, 0x3
- ldrsb r1, [r5, r1]
- adds r0, r1
- cmp r0, 0x1F
- bhi _08124A7E
- lsrs r0, r2, 27
- adds r0, r1
- mov r1, r8
- ands r0, r1
- lsls r0, 5
- ldrh r2, [r3]
- mov r1, r10
- ands r1, r2
- orrs r1, r0
- strh r1, [r3]
-_08124A7E:
- ldr r0, [r3]
- lsls r2, r0, 17
- lsrs r0, r2, 27
- movs r1, 0x3
- ldrsb r1, [r5, r1]
- adds r0, r1
- cmp r0, 0x1F
- bls _08124A90
- b _08124B82
-_08124A90:
- lsrs r0, r2, 27
- adds r0, r1
- b _08124B74
-_08124A96:
- movs r0, 0x3
- ldrsb r0, [r5, r0]
- cmp r0, 0
- bge _08124B08
- ldr r0, [r3]
- lsls r4, r0, 27
- lsrs r1, r4, 27
- movs r2, 0x3
- ldrsb r2, [r5, r2]
- adds r1, r2
- ldr r0, [r6]
- lsls r0, 27
- lsrs r0, 27
- cmp r1, r0
- blt _08124AC6
- lsrs r0, r4, 27
- adds r0, r2
- ands r0, r7
- ldrb r2, [r3]
- movs r1, 0x20
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r3]
-_08124AC6:
- ldr r0, [r3]
- lsls r4, r0, 22
- lsrs r1, r4, 27
- movs r2, 0x3
- ldrsb r2, [r5, r2]
- adds r1, r2
- ldr r0, [r6]
- lsls r0, 22
- lsrs r0, 27
- cmp r1, r0
- blt _08124AF0
- lsrs r0, r4, 27
- adds r0, r2
- mov r1, r8
- ands r0, r1
- lsls r0, 5
- ldrh r2, [r3]
- mov r1, r10
- ands r1, r2
- orrs r1, r0
- strh r1, [r3]
-_08124AF0:
- ldr r0, [r3]
- lsls r4, r0, 17
- lsrs r1, r4, 27
- movs r2, 0x3
- ldrsb r2, [r5, r2]
- adds r1, r2
- ldr r0, [r6]
- lsls r0, 17
- lsrs r0, 27
- cmp r1, r0
- blt _08124B82
- b _08124B70
-_08124B08:
- ldr r0, [r3]
- lsls r4, r0, 27
- lsrs r1, r4, 27
- movs r2, 0x3
- ldrsb r2, [r5, r2]
- adds r1, r2
- ldr r0, [r6]
- lsls r0, 27
- lsrs r0, 27
- cmp r1, r0
- bgt _08124B30
- lsrs r0, r4, 27
- adds r0, r2
- ands r0, r7
- ldrb r2, [r3]
- movs r1, 0x20
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r3]
-_08124B30:
- ldr r0, [r3]
- lsls r4, r0, 22
- lsrs r1, r4, 27
- movs r2, 0x3
- ldrsb r2, [r5, r2]
- adds r1, r2
- ldr r0, [r6]
- lsls r0, 22
- lsrs r0, 27
- cmp r1, r0
- bgt _08124B5A
- lsrs r0, r4, 27
- adds r0, r2
- mov r1, r8
- ands r0, r1
- lsls r0, 5
- ldrh r2, [r3]
- mov r1, r10
- ands r1, r2
- orrs r1, r0
- strh r1, [r3]
-_08124B5A:
- ldr r0, [r3]
- lsls r4, r0, 17
- lsrs r1, r4, 27
- movs r2, 0x3
- ldrsb r2, [r5, r2]
- adds r1, r2
- ldr r0, [r6]
- lsls r0, 17
- lsrs r0, 27
- cmp r1, r0
- bgt _08124B82
-_08124B70:
- lsrs r0, r4, 27
- adds r0, r2
-_08124B74:
- ands r0, r7
- lsls r0, 2
- ldrb r2, [r3, 0x1]
- mov r1, r9
- ands r1, r2
- orrs r1, r0
- strb r1, [r3, 0x1]
-_08124B82:
- mov r0, r12
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r12, r0
- ldrb r0, [r5, 0x8]
- cmp r12, r0
- bcs _08124B94
- b _08124A0C
-_08124B94:
- ldrb r1, [r5, 0x2]
- adds r0, r1, 0x1
- strb r0, [r5, 0x2]
- ldrb r0, [r5, 0xB]
- lsls r0, 27
- lsls r1, 24
- asrs r0, 3
- cmp r1, r0
- beq _08124BAA
- movs r0, 0
- b _08124BDE
-_08124BAA:
- movs r0, 0
- strb r0, [r5, 0x2]
- movs r0, 0x3
- ldrsb r0, [r5, r0]
- negs r0, r0
- strb r0, [r5, 0x3]
- ldrb r2, [r5]
- movs r1, 0x7F
- movs r0, 0x7F
- ands r0, r2
- cmp r0, 0x1
- bne _08124BCA
- lsls r0, r2, 25
- lsrs r0, 25
- adds r0, 0x1
- b _08124BD0
-_08124BCA:
- lsls r0, r2, 25
- lsrs r0, 25
- subs r0, 0x1
-_08124BD0:
- ands r0, r1
- movs r1, 0x80
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r5]
- movs r0, 0x1
-_08124BDE:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_81249E4
-
- thumb_func_start sub_8124BEC
-sub_8124BEC: @ 8124BEC
- push {r4,r5,lr}
- adds r3, r0, 0
- movs r2, 0
- ldrb r0, [r3]
- lsls r0, 25
- lsrs r0, 25
- cmp r0, 0x1
- beq _08124C02
- cmp r0, 0x2
- beq _08124C30
- b _08124C6A
-_08124C02:
- ldrb r0, [r3, 0x8]
- cmp r2, r0
- bcs _08124C22
- ldr r4, _08124C2C @ =gPlttBufferFaded
-_08124C0A:
- ldrh r0, [r3, 0x6]
- adds r0, r2
- lsls r0, 1
- adds r0, r4
- ldrh r1, [r3, 0x4]
- strh r1, [r0]
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- ldrb r0, [r3, 0x8]
- cmp r2, r0
- bcc _08124C0A
-_08124C22:
- ldrb r2, [r3]
- lsls r1, r2, 25
- lsrs r1, 25
- adds r1, 0x1
- b _08124C5C
- .align 2, 0
-_08124C2C: .4byte gPlttBufferFaded
-_08124C30:
- ldrb r0, [r3, 0x8]
- cmp r2, r0
- bcs _08124C54
- ldr r5, _08124C74 @ =gPlttBufferFaded
- ldr r4, _08124C78 @ =gPlttBufferUnfaded
-_08124C3A:
- ldrh r0, [r3, 0x6]
- adds r0, r2
- lsls r0, 1
- adds r1, r0, r5
- adds r0, r4
- ldrh r0, [r0]
- strh r0, [r1]
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- ldrb r0, [r3, 0x8]
- cmp r2, r0
- bcc _08124C3A
-_08124C54:
- ldrb r2, [r3]
- lsls r1, r2, 25
- lsrs r1, 25
- subs r1, 0x1
-_08124C5C:
- movs r0, 0x7F
- ands r1, r0
- movs r0, 0x80
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
-_08124C6A:
- movs r0, 0x1
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_08124C74: .4byte gPlttBufferFaded
-_08124C78: .4byte gPlttBufferUnfaded
- thumb_func_end sub_8124BEC
-
- thumb_func_start task_tutorial_controls_fadein
-task_tutorial_controls_fadein: @ 8124C7C
- push {r4-r6,lr}
- adds r4, r0, 0
- movs r5, 0
- ldrb r0, [r4]
- cmp r0, 0
- beq _08124CE0
-_08124C88:
- ldrh r0, [r4, 0x2]
- asrs r0, r5
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08124CD6
- lsls r1, r5, 1
- adds r0, r1, r5
- lsls r3, r0, 2
- adds r2, r4, r3
- ldrb r0, [r2, 0x5]
- subs r0, 0x1
- strb r0, [r2, 0x5]
- lsls r0, 24
- lsrs r0, 24
- adds r6, r1, 0
- cmp r0, 0xFF
- bne _08124CD6
- ldrh r0, [r2, 0x8]
- movs r2, 0x80
- lsls r2, 8
- adds r1, r2, 0
- ands r0, r1
- cmp r0, 0
- beq _08124CC4
- adds r0, r3, 0x4
- adds r0, r4, r0
- bl sub_81249E4
- b _08124CCC
-_08124CC4:
- adds r0, r3, 0x4
- adds r0, r4, r0
- bl sub_8124BEC
-_08124CCC:
- adds r0, r6, r5
- lsls r0, 2
- adds r0, r4, r0
- ldrb r1, [r0, 0xD]
- strb r1, [r0, 0x5]
-_08124CD6:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0xF
- bls _08124C88
-_08124CE0:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end task_tutorial_controls_fadein
-
- thumb_func_start sub_8124CE8
-sub_8124CE8: @ 8124CE8
- push {r4-r7,lr}
- adds r3, r0, 0
- lsls r1, 16
- lsrs r6, r1, 16
- movs r4, 0
- ldrb r0, [r3]
- adds r0, 0x1
- strb r0, [r3]
- movs r5, 0x1
- movs r7, 0x80
- negs r7, r7
-_08124CFE:
- adds r0, r6, 0
- asrs r0, r4
- ands r0, r5
- cmp r0, 0
- beq _08124D2C
- lsls r0, r4, 1
- adds r0, r4
- lsls r0, 2
- adds r2, r3, r0
- ldrb r0, [r2, 0x4]
- lsrs r0, 7
- cmp r0, 0
- beq _08124D2C
- adds r0, r5, 0
- lsls r0, r4
- ldrh r1, [r3, 0x2]
- orrs r0, r1
- strh r0, [r3, 0x2]
- ldrb r1, [r2, 0x4]
- adds r0, r7, 0
- ands r0, r1
- orrs r0, r5
- strb r0, [r2, 0x4]
-_08124D2C:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0xF
- bls _08124CFE
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8124CE8
-
- thumb_func_start sub_8124D3C
-sub_8124D3C: @ 8124D3C
- push {r4-r7,lr}
- sub sp, 0x4
- adds r6, r0, 0
- lsls r1, 16
- lsrs r7, r1, 16
- movs r5, 0
- movs r3, 0x1
-_08124D4A:
- ldrh r0, [r6, 0x2]
- asrs r0, r5
- ands r0, r3
- cmp r0, 0
- beq _08124DB2
- lsls r0, r5, 1
- adds r0, r5
- lsls r0, 2
- adds r4, r6, r0
- ldrb r0, [r4, 0x4]
- lsrs r0, 7
- cmp r0, 0
- beq _08124DB2
- adds r0, r7, 0
- asrs r0, r5
- ands r0, r3
- cmp r0, 0
- beq _08124DB2
- ldrh r1, [r4, 0xA]
- lsls r1, 1
- ldr r0, _08124DA8 @ =gPlttBufferFaded
- adds r0, r1, r0
- ldr r2, _08124DAC @ =gPlttBufferUnfaded
- adds r1, r2
- ldrb r2, [r4, 0xC]
- lsls r2, 1
- str r3, [sp]
- bl memcpy
- ldrb r0, [r4, 0x4]
- movs r2, 0x80
- negs r2, r2
- adds r1, r2, 0
- ands r0, r1
- strb r0, [r4, 0x4]
- movs r0, 0
- strb r0, [r4, 0x6]
- strb r0, [r4, 0x5]
- ldrb r0, [r4, 0xF]
- lsls r0, 24
- ldr r3, [sp]
- cmp r0, 0
- bge _08124DB0
- movs r0, 0xFF
- strb r0, [r4, 0x7]
- b _08124DB2
- .align 2, 0
-_08124DA8: .4byte gPlttBufferFaded
-_08124DAC: .4byte gPlttBufferUnfaded
-_08124DB0:
- strb r3, [r4, 0x7]
-_08124DB2:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0xF
- bls _08124D4A
- ldr r0, _08124DC8 @ =0x0000ffff
- cmp r7, r0
- bne _08124DCC
- movs r0, 0
- strb r0, [r6]
- b _08124DD0
- .align 2, 0
-_08124DC8: .4byte 0x0000ffff
-_08124DCC:
- ldrh r0, [r6, 0x2]
- bics r0, r7
-_08124DD0:
- strh r0, [r6, 0x2]
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8124D3C
-
- thumb_func_start sub_8124DDC
-sub_8124DDC: @ 8124DDC
- push {r4-r7,lr}
- adds r6, r0, 0
- ldr r0, [sp, 0x14]
- ldr r4, [sp, 0x18]
- lsls r1, 16
- lsrs r7, r1, 16
- lsls r2, 24
- lsrs r2, 24
- lsls r3, 24
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r4, 24
- lsrs r4, 24
- movs r1, 0
- lsrs r3, 19
- adds r3, r2
- lsls r3, 1
- adds r6, r3
- cmp r1, r4
- bcs _08124E26
-_08124E04:
- lsls r0, r1, 6
- adds r2, r6, r0
- movs r0, 0
- adds r3, r1, 0x1
- cmp r0, r5
- bcs _08124E1E
-_08124E10:
- strh r7, [r2]
- adds r2, 0x2
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- cmp r0, r5
- bcc _08124E10
-_08124E1E:
- lsls r0, r3, 24
- lsrs r1, r0, 24
- cmp r1, r4
- bcc _08124E04
-_08124E26:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8124DDC
-
- thumb_func_start sub_8124E2C
-sub_8124E2C: @ 8124E2C
- push {r4-r7,lr}
- adds r7, r0, 0
- ldr r0, [sp, 0x14]
- ldr r4, [sp, 0x18]
- lsls r2, 24
- lsrs r2, 24
- lsls r3, 24
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r4, 24
- lsrs r6, r4, 24
- movs r4, 0
- lsrs r3, 19
- adds r3, r2
- lsls r3, 1
- adds r7, r3
- cmp r4, r6
- bcs _08124E76
-_08124E50:
- lsls r0, r4, 6
- adds r2, r7, r0
- movs r3, 0
- adds r4, 0x1
- cmp r3, r5
- bcs _08124E6E
-_08124E5C:
- ldrh r0, [r1]
- strh r0, [r2]
- adds r1, 0x2
- adds r2, 0x2
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, r5
- bcc _08124E5C
-_08124E6E:
- lsls r0, r4, 24
- lsrs r4, r0, 24
- cmp r4, r6
- bcc _08124E50
-_08124E76:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8124E2C
-
- thumb_func_start sub_8124E7C
-sub_8124E7C: @ 8124E7C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- mov r10, r0
- ldr r0, [sp, 0x24]
- ldr r4, [sp, 0x28]
- lsls r1, 16
- lsrs r1, 16
- mov r9, r1
- lsls r2, 24
- lsrs r2, 24
- str r2, [sp]
- lsls r3, 24
- lsls r0, 24
- lsrs r7, r0, 24
- lsls r4, 24
- lsrs r4, 24
- mov r8, r4
- movs r0, 0
- lsrs r4, r3, 24
- cmp r0, r8
- bcs _08124EF6
-_08124EAE:
- ldr r2, [sp]
- movs r3, 0
- adds r6, r4, 0x1
- adds r0, 0x1
- mov r12, r0
- cmp r3, r7
- bcs _08124EE0
- lsls r5, r4, 6
-_08124EBE:
- lsls r0, r2, 1
- adds r0, r5
- add r0, r10
- mov r1, r9
- strh r1, [r0]
- adds r1, r2, 0x1
- adds r0, r1, 0
- asrs r0, 5
- lsls r0, 5
- subs r0, r1, r0
- lsls r0, 24
- lsrs r2, r0, 24
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, r7
- bcc _08124EBE
-_08124EE0:
- adds r0, r6, 0
- asrs r0, 5
- lsls r0, 5
- subs r0, r6, r0
- lsls r0, 24
- lsrs r4, r0, 24
- mov r1, r12
- lsls r0, r1, 24
- lsrs r0, 24
- cmp r0, r8
- bcc _08124EAE
-_08124EF6:
- 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_8124E7C
-
- thumb_func_start sub_8124F08
-sub_8124F08: @ 8124F08
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- mov r10, r0
- ldr r0, [sp, 0x24]
- ldr r4, [sp, 0x28]
- lsls r2, 24
- lsrs r2, 24
- str r2, [sp]
- lsls r3, 24
- lsls r0, 24
- lsrs r0, 24
- mov r12, r0
- lsls r4, 24
- lsrs r4, 24
- mov r9, r4
- movs r0, 0
- adds r5, r1, 0
- lsrs r4, r3, 24
- cmp r0, r9
- bcs _08124F82
-_08124F38:
- ldr r2, [sp]
- movs r3, 0
- adds r7, r4, 0x1
- adds r0, 0x1
- mov r8, r0
- cmp r3, r12
- bcs _08124F6C
- lsls r6, r4, 6
-_08124F48:
- lsls r0, r2, 1
- adds r0, r6
- add r0, r10
- ldrh r1, [r5]
- strh r1, [r0]
- adds r5, 0x2
- adds r1, r2, 0x1
- adds r0, r1, 0
- asrs r0, 5
- lsls r0, 5
- subs r0, r1, r0
- lsls r0, 24
- lsrs r2, r0, 24
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, r12
- bcc _08124F48
-_08124F6C:
- adds r0, r7, 0
- asrs r0, 5
- lsls r0, 5
- subs r0, r7, r0
- lsls r0, 24
- lsrs r4, r0, 24
- mov r1, r8
- lsls r0, r1, 24
- lsrs r0, 24
- cmp r0, r9
- bcc _08124F38
-_08124F82:
- 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_8124F08
-
- thumb_func_start unref_sub_8124F94
-unref_sub_8124F94: @ 8124F94
- sub sp, 0x4
- movs r3, 0
- strb r3, [r0, 0x1]
- strb r3, [r0]
- strh r3, [r0, 0x2]
- movs r1, 0xC0
- lsls r1, 19
- str r1, [r0, 0x4]
- mov r1, sp
- strh r3, [r1]
- ldr r2, _08124FCC @ =0x040000d4
- str r1, [r2]
- adds r1, r0, 0
- adds r1, 0x8
- str r1, [r2, 0x4]
- ldr r1, _08124FD0 @ =0x81000040
- str r1, [r2, 0x8]
- ldr r1, [r2, 0x8]
- mov r1, sp
- strh r3, [r1]
- str r1, [r2]
- adds r0, 0x88
- str r0, [r2, 0x4]
- ldr r0, _08124FD4 @ =0x810000c0
- str r0, [r2, 0x8]
- ldr r0, [r2, 0x8]
- add sp, 0x4
- bx lr
- .align 2, 0
-_08124FCC: .4byte 0x040000d4
-_08124FD0: .4byte 0x81000040
-_08124FD4: .4byte 0x810000c0
- thumb_func_end unref_sub_8124F94
-
- thumb_func_start unref_sub_8124FD8
-unref_sub_8124FD8: @ 8124FD8
- push {r4-r7,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- ldr r7, _08124FE4 @ =0x040000d4
- b _0812508A
- .align 2, 0
-_08124FE4: .4byte 0x040000d4
-_08124FE8:
- ldrb r0, [r4, 0x1]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r0, r4, 0
- adds r0, 0x88
- adds r0, r1
- str r3, [r0]
- ldrb r1, [r4, 0x1]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r4, r0
- ldrb r1, [r5, 0x6]
- adds r0, 0x8E
- strb r1, [r0]
- ldrb r1, [r4, 0x1]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r4, r0
- ldrb r1, [r5, 0x4]
- adds r0, 0x8C
- strb r1, [r0]
- ldrb r1, [r4, 0x1]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r4, r0
- ldrb r1, [r5, 0x5]
- adds r0, 0x8D
- strb r1, [r0]
- ldrb r1, [r5, 0x4]
- ldrb r0, [r5, 0x5]
- adds r6, r1, 0
- muls r6, r0
- ldrh r2, [r4, 0x2]
- adds r1, r2, r6
- movs r0, 0x80
- lsls r0, 3
- cmp r1, r0
- ble _08125040
- movs r0, 0x2
- b _0812509C
-_08125040:
- ldrh r0, [r5, 0x8]
- cmp r0, 0
- bne _08125060
- str r3, [r7]
- ldrh r1, [r4, 0x2]
- lsls r1, 6
- ldr r0, [r4, 0x4]
- adds r0, r1
- str r0, [r7, 0x4]
- lsls r0, r6, 4
- movs r1, 0x80
- lsls r1, 24
- orrs r0, r1
- str r0, [r7, 0x8]
- ldr r0, [r7, 0x8]
- b _0812506C
-_08125060:
- lsls r0, r2, 6
- ldr r1, [r4, 0x4]
- adds r1, r0
- adds r0, r3, 0
- bl sub_800D238
-_0812506C:
- ldrb r1, [r4, 0x1]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r4, r0
- ldrh r1, [r4, 0x2]
- adds r0, 0x90
- strh r1, [r0]
- ldrh r0, [r4, 0x2]
- adds r0, r6, r0
- strh r0, [r4, 0x2]
- ldrb r0, [r4, 0x1]
- adds r0, 0x1
- strb r0, [r4, 0x1]
- adds r5, 0xC
-_0812508A:
- ldrb r0, [r4, 0x1]
- cmp r0, 0x1F
- bhi _0812509A
- ldr r3, [r5]
- cmp r3, 0
- bne _08124FE8
- movs r0, 0
- b _0812509C
-_0812509A:
- movs r0, 0x1
-_0812509C:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end unref_sub_8124FD8
-
- thumb_func_start unref_sub_81250A4
-unref_sub_81250A4: @ 81250A4
- push {r4,r5,lr}
- sub sp, 0x20
- adds r4, r0, 0
- adds r5, r1, 0
- b _081250FC
-_081250AE:
- ldrb r1, [r4]
- lsls r1, 3
- adds r0, r4, 0
- adds r0, 0x8
- adds r0, r1
- str r2, [r0]
- ldrb r0, [r4]
- lsls r0, 3
- adds r0, r4, r0
- ldrb r1, [r5, 0x4]
- strb r1, [r0, 0xC]
- ldrb r0, [r5, 0x5]
- cmp r0, 0
- bne _081250D8
- ldrb r1, [r4]
- lsls r1, 4
- adds r0, r2, 0
- movs r2, 0x20
- bl LoadPalette
- b _081250EC
-_081250D8:
- adds r0, r2, 0
- mov r1, sp
- bl sub_800D238
- ldrb r1, [r4]
- lsls r1, 4
- mov r0, sp
- movs r2, 0x20
- bl LoadPalette
-_081250EC:
- ldrb r0, [r4]
- lsls r1, r0, 3
- adds r1, r4, r1
- strb r0, [r1, 0xD]
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- adds r5, 0x8
-_081250FC:
- ldrb r0, [r4]
- cmp r0, 0xF
- bhi _0812510C
- ldr r2, [r5]
- cmp r2, 0
- bne _081250AE
- movs r0, 0
- b _0812510E
-_0812510C:
- movs r0, 0x1
-_0812510E:
- add sp, 0x20
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end unref_sub_81250A4
-
- thumb_func_start unref_sub_8125118
-unref_sub_8125118: @ 8125118
- push {r4-r7,lr}
- ldr r4, _0812514C @ =0xfffffe00
- add sp, r4
- adds r5, r0, 0
- adds r6, r1, 0
- movs r2, 0x80
- lsls r2, 2
- mov r0, sp
- movs r1, 0
- bl memset
- ldrb r7, [r6, 0x5]
- ldr r0, [r6]
- mov r1, sp
- bl sub_800D238
- ldrb r4, [r5]
- cmp r4, r7
- bcs _08125186
-_0812513E:
- ldrb r0, [r5]
- adds r0, r4
- cmp r0, 0xF
- ble _08125150
- movs r0, 0x1
- b _08125188
- .align 2, 0
-_0812514C: .4byte 0xfffffe00
-_08125150:
- lsls r2, r4, 3
- adds r0, r5, 0
- adds r0, 0x8
- adds r0, r2
- ldr r1, [r6]
- str r1, [r0]
- adds r2, r5, r2
- ldrb r0, [r6, 0x4]
- adds r0, r4, r0
- strb r0, [r2, 0xC]
- ldrb r0, [r5]
- strb r0, [r2, 0xD]
- lsls r0, r4, 5
- add r0, sp
- ldrb r1, [r5]
- lsls r1, 4
- movs r2, 0x20
- bl LoadPalette
- ldrb r0, [r5]
- adds r0, 0x1
- strb r0, [r5]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, r7
- bcc _0812513E
-_08125186:
- movs r0, 0
-_08125188:
- movs r3, 0x80
- lsls r3, 2
- add sp, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end unref_sub_8125118
-
.align 2, 0 @ Don't pad with nop.
diff --git a/asm/roulette.s b/asm/roulette.s
new file mode 100644
index 000000000..f26f66698
--- /dev/null
+++ b/asm/roulette.s
@@ -0,0 +1,9659 @@
+ .include "constants/gba_constants.s"
+ .include "constants/species_constants.s"
+ .include "asm/macros.s"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_81150FC
+sub_81150FC: @ 81150FC
+ push {lr}
+ bl RunTasks
+ bl AnimateSprites
+ bl BuildOamBuffer
+ ldr r0, _08115120 @ =0x02019000
+ adds r1, r0, 0
+ adds r1, 0xB8
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _0811511C
+ adds r0, r1, 0
+ bl task_tutorial_controls_fadein
+_0811511C:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08115120: .4byte 0x02019000
+ thumb_func_end sub_81150FC
+
+ thumb_func_start sub_8115124
+sub_8115124: @ 8115124
+ push {r4,lr}
+ sub sp, 0x4
+ bl LoadOam
+ bl ProcessSpriteCopyRequests
+ bl TransferPlttBuffer
+ bl sub_8117434
+ ldr r2, _08115188 @ =REG_BG1HOFS
+ ldr r3, _0811518C @ =0x02019000
+ ldrh r1, [r3, 0x26]
+ movs r4, 0x80
+ lsls r4, 2
+ adds r0, r4, 0
+ subs r0, r1
+ strh r0, [r2]
+ ldrb r0, [r3, 0x1]
+ cmp r0, 0
+ beq _08115154
+ ldr r1, _08115190 @ =REG_BLDALPHA
+ ldrh r0, [r3, 0x34]
+ strh r0, [r1]
+_08115154:
+ movs r1, 0x2A
+ ldrsh r0, [r3, r1]
+ cmp r0, 0
+ beq _08115170
+ ldr r1, _08115194 @ =0x040000d4
+ ldr r0, _08115198 @ =gBG1TilemapBuffer + 0x1C0
+ str r0, [r1]
+ ldr r0, _0811519C @ =0x060021c0
+ str r0, [r1, 0x4]
+ ldr r0, _081151A0 @ =0x800001a0
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ movs r0, 0
+ strh r0, [r3, 0x2A]
+_08115170:
+ movs r2, 0x28
+ ldrsh r0, [r3, r2]
+ cmp r0, 0x1
+ beq _081151A4
+ cmp r0, 0x1
+ ble _0811521A
+ cmp r0, 0x2
+ beq _081151D4
+ cmp r0, 0xFF
+ beq _081151F8
+ b _0811521A
+ .align 2, 0
+_08115188: .4byte REG_BG1HOFS
+_0811518C: .4byte 0x02019000
+_08115190: .4byte REG_BLDALPHA
+_08115194: .4byte 0x040000d4
+_08115198: .4byte gBG1TilemapBuffer + 0x1C0
+_0811519C: .4byte 0x060021c0
+_081151A0: .4byte 0x800001a0
+_081151A4:
+ ldr r1, _081151C4 @ =REG_BG0CNT
+ movs r4, 0xF8
+ lsls r4, 5
+ adds r0, r4, 0
+ strh r0, [r1]
+ adds r1, 0xCC
+ ldr r0, _081151C8 @ =gBG2TilemapBuffer + 0x1C0
+ str r0, [r1]
+ ldr r0, _081151CC @ =0x0600f9c0
+ str r0, [r1, 0x4]
+ ldr r0, _081151D0 @ =0x800001a0
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ movs r0, 0x2
+ b _08115218
+ .align 2, 0
+_081151C4: .4byte REG_BG0CNT
+_081151C8: .4byte gBG2TilemapBuffer + 0x1C0
+_081151CC: .4byte 0x0600f9c0
+_081151D0: .4byte 0x800001a0
+_081151D4:
+ ldr r1, _081151E8 @ =0x040000d4
+ ldr r0, _081151EC @ =gBG2TilemapBuffer + 0x1C0
+ str r0, [r1]
+ ldr r0, _081151F0 @ =0x0600f9c0
+ str r0, [r1, 0x4]
+ ldr r0, _081151F4 @ =0x800001a0
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ b _0811521A
+ .align 2, 0
+_081151E8: .4byte 0x040000d4
+_081151EC: .4byte gBG2TilemapBuffer + 0x1C0
+_081151F0: .4byte 0x0600f9c0
+_081151F4: .4byte 0x800001a0
+_081151F8:
+ ldr r1, _08115224 @ =REG_BG0CNT
+ ldr r2, _08115228 @ =0x00001f08
+ adds r0, r2, 0
+ strh r0, [r1]
+ mov r1, sp
+ movs r0, 0
+ strh r0, [r1]
+ ldr r1, _0811522C @ =0x040000d4
+ mov r4, sp
+ str r4, [r1]
+ ldr r0, _08115230 @ =0x0600f9c0
+ str r0, [r1, 0x4]
+ ldr r0, _08115234 @ =0x810001a0
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ movs r0, 0
+_08115218:
+ strh r0, [r3, 0x28]
+_0811521A:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08115224: .4byte REG_BG0CNT
+_08115228: .4byte 0x00001f08
+_0811522C: .4byte 0x040000d4
+_08115230: .4byte 0x0600f9c0
+_08115234: .4byte 0x810001a0
+ thumb_func_end sub_8115124
+
+ thumb_func_start sub_8115238
+sub_8115238: @ 8115238
+ push {r4-r6,lr}
+ sub sp, 0x8
+ ldr r1, _081152C0 @ =gUnknown_083F8EC4
+ mov r0, sp
+ movs r2, 0x6
+ bl memcpy
+ ldr r5, _081152C4 @ =0x02019000
+ movs r2, 0xBE
+ lsls r2, 1
+ adds r0, r5, 0
+ movs r1, 0
+ bl memset
+ ldr r0, _081152C8 @ =gUnknown_0202E8CC
+ ldrh r2, [r0]
+ movs r0, 0x1
+ ands r0, r2
+ ldrb r1, [r5, 0x4]
+ movs r3, 0x4
+ negs r3, r3
+ ands r3, r1
+ orrs r3, r0
+ strb r3, [r5, 0x4]
+ movs r0, 0x80
+ ands r0, r2
+ cmp r0, 0
+ beq _08115276
+ movs r0, 0x80
+ orrs r3, r0
+ strb r3, [r5, 0x4]
+_08115276:
+ ldr r3, _081152CC @ =gUnknown_083F8DF4
+ ldrb r2, [r5, 0x4]
+ lsls r1, r2, 30
+ lsrs r0, r1, 25
+ adds r0, r3
+ ldrb r0, [r0, 0x3]
+ adds r4, r5, 0
+ adds r4, 0x22
+ strb r0, [r4]
+ lsrs r0, r1, 25
+ adds r0, r3
+ ldrb r0, [r0, 0x4]
+ adds r3, r5, 0
+ adds r3, 0x23
+ strb r0, [r3]
+ ldr r0, _081152D0 @ =gUnknown_083F8DF0
+ lsrs r1, 30
+ lsls r2, 24
+ lsrs r2, 31
+ lsls r2, 1
+ adds r1, r2
+ adds r1, r0
+ ldrb r2, [r1]
+ strb r2, [r5, 0x19]
+ ldrb r1, [r5, 0x1A]
+ movs r0, 0xF
+ ands r0, r1
+ movs r1, 0x10
+ orrs r0, r1
+ strb r0, [r5, 0x1A]
+ cmp r2, 0x1
+ bne _081152DC
+ ldr r4, _081152D4 @ =gPlttBufferUnfaded
+ ldr r3, _081152D8 @ =gPlttBufferFaded
+ mov r0, sp
+ ldrh r2, [r0]
+ b _081152E4
+ .align 2, 0
+_081152C0: .4byte gUnknown_083F8EC4
+_081152C4: .4byte 0x02019000
+_081152C8: .4byte gUnknown_0202E8CC
+_081152CC: .4byte gUnknown_083F8DF4
+_081152D0: .4byte gUnknown_083F8DF0
+_081152D4: .4byte gPlttBufferUnfaded
+_081152D8: .4byte gPlttBufferFaded
+_081152DC:
+ ldr r4, _08115348 @ =gPlttBufferUnfaded
+ ldr r3, _0811534C @ =gPlttBufferFaded
+ mov r0, sp
+ ldrh r2, [r0, 0x2]
+_081152E4:
+ adds r0, r3, 0
+ adds r0, 0xA2
+ strh r2, [r0]
+ ldr r1, _08115350 @ =0x0000ffff
+ adds r0, r1, 0
+ ands r0, r2
+ strh r0, [r3]
+ ands r0, r1
+ adds r2, r4, 0
+ adds r2, 0xA2
+ strh r0, [r2]
+ ands r0, r1
+ strh r0, [r4]
+ ldr r0, _08115354 @ =0x020190b8
+ bl sub_8124918
+ movs r4, 0
+ ldr r5, _08115358 @ =gUnknown_083F8E34
+_08115308:
+ lsls r2, r4, 3
+ adds r2, r5
+ ldr r0, _08115354 @ =0x020190b8
+ adds r1, r4, 0
+ bl sub_812492C
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0xC
+ bls _08115308
+ movs r4, 0
+ ldr r5, _0811535C @ =0x02019000
+_08115322:
+ movs r0, 0x64
+ muls r0, r4
+ ldr r1, _08115360 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x41
+ bl GetMonData
+ adds r1, r0, 0
+ movs r0, 0x98
+ lsls r0, 1
+ cmp r1, r0
+ beq _08115364
+ adds r0, 0x2
+ cmp r1, r0
+ bne _0811536C
+ ldrb r0, [r5, 0x2]
+ movs r1, 0x1
+ b _08115368
+ .align 2, 0
+_08115348: .4byte gPlttBufferUnfaded
+_0811534C: .4byte gPlttBufferFaded
+_08115350: .4byte 0x0000ffff
+_08115354: .4byte 0x020190b8
+_08115358: .4byte gUnknown_083F8E34
+_0811535C: .4byte 0x02019000
+_08115360: .4byte gPlayerParty
+_08115364:
+ ldrb r0, [r5, 0x2]
+ movs r1, 0x2
+_08115368:
+ orrs r0, r1
+ strb r0, [r5, 0x2]
+_0811536C:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x5
+ bls _08115322
+ bl RtcCalcLocalTime
+ add sp, 0x8
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8115238
+
+ thumb_func_start sub_8115384
+sub_8115384: @ 8115384
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r1, _081153A4 @ =gMain
+ ldr r2, _081153A8 @ =0x0000043c
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ adds r2, r1, 0
+ cmp r0, 0x7
+ bls _08115398
+ b _081155FE
+_08115398:
+ lsls r0, 2
+ ldr r1, _081153AC @ =_081153B0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_081153A4: .4byte gMain
+_081153A8: .4byte 0x0000043c
+_081153AC: .4byte _081153B0
+ .align 2, 0
+_081153B0:
+ .4byte _081153D0
+ .4byte _08115444
+ .4byte _08115460
+ .4byte _08115494
+ .4byte _081154CC
+ .4byte _081154FC
+ .4byte _0811556C
+ .4byte _0811558C
+_081153D0:
+ movs r0, 0
+ bl SetVBlankCallback
+ bl remove_some_task
+ bl sub_80F9438
+ bl sub_80F9368
+ ldr r1, _08115420 @ =REG_BG2CNT
+ ldr r3, _08115424 @ =0x00004686
+ adds r0, r3, 0
+ strh r0, [r1]
+ subs r1, 0x2
+ ldr r2, _08115428 @ =0x00004401
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x46
+ movs r3, 0x90
+ lsls r3, 6
+ adds r0, r3, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r2, _0811542C @ =0x0000060a
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r0, _08115430 @ =gUnknown_08E8096C
+ movs r1, 0xC0
+ lsls r1, 19
+ bl LZ77UnCompVram
+ ldr r0, _08115434 @ =gUnknown_08E81098
+ ldr r1, _08115438 @ =0x06004000
+ bl LZ77UnCompVram
+ ldr r1, _0811543C @ =gMain
+ ldr r3, _08115440 @ =0x0000043c
+ adds r1, r3
+ b _0811557A
+ .align 2, 0
+_08115420: .4byte REG_BG2CNT
+_08115424: .4byte 0x00004686
+_08115428: .4byte 0x00004401
+_0811542C: .4byte 0x0000060a
+_08115430: .4byte gUnknown_08E8096C
+_08115434: .4byte gUnknown_08E81098
+_08115438: .4byte 0x06004000
+_0811543C: .4byte gMain
+_08115440: .4byte 0x0000043c
+_08115444:
+ bl ResetPaletteFade
+ bl ResetSpriteData
+ bl ResetTasks
+ ldr r1, _08115458 @ =gMain
+ ldr r0, _0811545C @ =0x0000043c
+ adds r1, r0
+ b _0811557A
+ .align 2, 0
+_08115458: .4byte gMain
+_0811545C: .4byte 0x0000043c
+_08115460:
+ ldr r0, _08115480 @ =gWindowConfig_81E6C3C
+ bl SetUpWindowConfig
+ ldr r0, _08115484 @ =gWindowConfig_81E6CE4
+ bl InitMenuWindow
+ ldr r0, _08115488 @ =gUnknown_083F86BC
+ movs r2, 0xE0
+ lsls r2, 1
+ movs r1, 0
+ bl LoadPalette
+ ldr r1, _0811548C @ =gMain
+ ldr r2, _08115490 @ =0x0000043c
+ adds r1, r2
+ b _0811557A
+ .align 2, 0
+_08115480: .4byte gWindowConfig_81E6C3C
+_08115484: .4byte gWindowConfig_81E6CE4
+_08115488: .4byte gUnknown_083F86BC
+_0811548C: .4byte gMain
+_08115490: .4byte 0x0000043c
+_08115494:
+ bl sub_8115238
+ bl sub_80F9020
+ ldr r0, _081154B4 @ =gUnknown_083F88BC
+ ldr r1, _081154B8 @ =0x02018800
+ bl LZ77UnCompWram
+ ldr r0, _081154BC @ =gUnknown_083F8A60
+ ldr r1, _081154C0 @ =0x06003000
+ bl LZ77UnCompVram
+ ldr r1, _081154C4 @ =gMain
+ ldr r3, _081154C8 @ =0x0000043c
+ adds r1, r3
+ b _0811557A
+ .align 2, 0
+_081154B4: .4byte gUnknown_083F88BC
+_081154B8: .4byte 0x02018800
+_081154BC: .4byte gUnknown_083F8A60
+_081154C0: .4byte 0x06003000
+_081154C4: .4byte gMain
+_081154C8: .4byte 0x0000043c
+_081154CC:
+ movs r0, 0
+ bl sub_8117838
+ bl sub_811857C
+ bl sub_81184D8
+ bl sub_8117F2C
+ bl sub_8117900
+ bl sub_8117BBC
+ bl sub_8117DF4
+ ldr r1, _081154F4 @ =gMain
+ ldr r0, _081154F8 @ =0x0000043c
+ adds r1, r0
+ b _0811557A
+ .align 2, 0
+_081154F4: .4byte gMain
+_081154F8: .4byte 0x0000043c
+_081154FC:
+ bl AnimateSprites
+ bl BuildOamBuffer
+ ldr r0, _08115550 @ =gSaveBlock1
+ ldr r1, _08115554 @ =0x00000494
+ adds r0, r1
+ ldrh r0, [r0]
+ bl sub_81180F4
+ movs r0, 0x6
+ bl sub_81182F8
+ movs r0, 0
+ bl sub_811829C
+ movs r0, 0
+ bl sub_8117158
+ movs r0, 0
+ movs r1, 0xE
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuDrawTextWindow
+ ldr r0, _08115558 @ =gUnknown_081C4157
+ movs r1, 0x1
+ movs r2, 0xF
+ bl MenuPrint
+ ldr r1, _0811555C @ =gSpriteCoordOffsetX
+ movs r2, 0x3C
+ negs r2, r2
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r1, _08115560 @ =gSpriteCoordOffsetY
+ movs r0, 0
+ strh r0, [r1]
+ ldr r1, _08115564 @ =gMain
+ ldr r3, _08115568 @ =0x0000043c
+ adds r1, r3
+ b _0811557A
+ .align 2, 0
+_08115550: .4byte gSaveBlock1
+_08115554: .4byte 0x00000494
+_08115558: .4byte gUnknown_081C4157
+_0811555C: .4byte gSpriteCoordOffsetX
+_08115560: .4byte gSpriteCoordOffsetY
+_08115564: .4byte gMain
+_08115568: .4byte 0x0000043c
+_0811556C:
+ movs r1, 0x80
+ lsls r1, 19
+ ldr r3, _08115584 @ =0x00001741
+ adds r0, r3, 0
+ strh r0, [r1]
+ ldr r0, _08115588 @ =0x0000043c
+ adds r1, r2, r0
+_0811557A:
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _081155FE
+ .align 2, 0
+_08115584: .4byte 0x00001741
+_08115588: .4byte 0x0000043c
+_0811558C:
+ ldr r3, _08115608 @ =0x04000208
+ ldrh r2, [r3]
+ movs r0, 0
+ strh r0, [r3]
+ ldr r4, _0811560C @ =0x04000200
+ ldrh r0, [r4]
+ movs r1, 0x1
+ orrs r0, r1
+ strh r0, [r4]
+ strh r2, [r3]
+ ldr r2, _08115610 @ =REG_DISPSTAT
+ ldrh r0, [r2]
+ movs r1, 0x8
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r0, _08115614 @ =sub_8115124
+ bl SetVBlankCallback
+ movs r0, 0x1
+ str r0, [sp]
+ movs r0, 0xFF
+ movs r1, 0
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginHardwarePaletteFade
+ ldr r0, _08115618 @ =sub_81156BC
+ movs r1, 0
+ bl CreateTask
+ ldr r4, _0811561C @ =0x02019000
+ adds r1, r4, 0
+ adds r1, 0xA4
+ strb r0, [r1]
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _08115620 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ movs r0, 0x6
+ strh r0, [r1, 0x14]
+ ldr r0, _08115624 @ =gSaveBlock1
+ ldr r2, _08115628 @ =0x00000494
+ adds r0, r2
+ ldrh r0, [r0]
+ strh r0, [r1, 0x22]
+ ldr r0, _0811562C @ =sub_8115634
+ movs r1, 0x1
+ bl CreateTask
+ adds r4, 0xA5
+ strb r0, [r4]
+ ldr r0, _08115630 @ =sub_81150FC
+ bl SetMainCallback2
+_081155FE:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08115608: .4byte 0x04000208
+_0811560C: .4byte 0x04000200
+_08115610: .4byte REG_DISPSTAT
+_08115614: .4byte sub_8115124
+_08115618: .4byte sub_81156BC
+_0811561C: .4byte 0x02019000
+_08115620: .4byte gTasks
+_08115624: .4byte gSaveBlock1
+_08115628: .4byte 0x00000494
+_0811562C: .4byte sub_8115634
+_08115630: .4byte sub_81150FC
+ thumb_func_end sub_8115384
+
+ thumb_func_start sub_8115634
+sub_8115634: @ 8115634
+ push {r4-r6,lr}
+ ldr r0, _081156B8 @ =0x02019000
+ adds r3, r0, 0
+ adds r3, 0x21
+ ldrb r1, [r3]
+ adds r2, r1, 0x1
+ strb r2, [r3]
+ adds r2, r0, 0
+ adds r2, 0x23
+ lsls r1, 24
+ lsrs r1, 24
+ adds r6, r0, 0
+ ldrb r2, [r2]
+ cmp r1, r2
+ bne _08115674
+ movs r0, 0
+ strb r0, [r3]
+ adds r2, r6, 0
+ adds r2, 0x22
+ ldrb r1, [r2]
+ ldrh r0, [r6, 0x24]
+ subs r0, r1
+ strh r0, [r6, 0x24]
+ lsls r0, 16
+ cmp r0, 0
+ bge _08115674
+ ldrb r1, [r2]
+ movs r2, 0xB4
+ lsls r2, 1
+ adds r0, r2, 0
+ subs r0, r1
+ strh r0, [r6, 0x24]
+_08115674:
+ adds r4, r6, 0
+ ldrh r0, [r4, 0x24]
+ bl Sin2
+ lsls r0, 16
+ lsrs r5, r0, 16
+ ldrh r0, [r4, 0x24]
+ bl Cos2
+ lsls r0, 16
+ lsrs r1, r0, 16
+ lsls r0, r5, 16
+ asrs r0, 16
+ cmp r0, 0
+ bge _08115694
+ adds r0, 0xF
+_08115694:
+ lsls r0, 12
+ lsrs r5, r0, 16
+ lsls r0, r1, 16
+ asrs r0, 16
+ cmp r0, 0
+ bge _081156A2
+ adds r0, 0xF
+_081156A2:
+ asrs r0, 4
+ strh r0, [r6, 0x32]
+ strh r0, [r6, 0x2C]
+ strh r5, [r6, 0x2E]
+ lsls r0, r5, 16
+ asrs r0, 16
+ negs r0, r0
+ strh r0, [r6, 0x30]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081156B8: .4byte 0x02019000
+ thumb_func_end sub_8115634
+
+ thumb_func_start sub_81156BC
+sub_81156BC: @ 81156BC
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl UpdatePaletteFade
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0
+ bne _08115716
+ ldr r2, _0811571C @ =REG_BLDCNT
+ ldrh r0, [r2]
+ movs r5, 0x90
+ lsls r5, 6
+ adds r1, r5, 0
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r1, _08115720 @ =REG_BLDALPHA
+ ldr r2, _08115724 @ =0x00000808
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r1, _08115728 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ strh r3, [r0, 0x14]
+ adds r0, r4, 0
+ bl sub_8116CAC
+ bl sub_8116CF8
+ bl sub_81185E8
+ movs r0, 0
+ bl sub_8117158
+ movs r0, 0x6
+ bl sub_81182F8
+ ldr r1, _0811572C @ =sub_81159BC
+ ldr r2, _08115730 @ =0x0000ffff
+ adds r0, r4, 0
+ movs r3, 0x3
+ bl sub_8116C34
+_08115716:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811571C: .4byte REG_BLDCNT
+_08115720: .4byte REG_BLDALPHA
+_08115724: .4byte 0x00000808
+_08115728: .4byte gTasks
+_0811572C: .4byte sub_81159BC
+_08115730: .4byte 0x0000ffff
+ thumb_func_end sub_81156BC
+
+ thumb_func_start sub_8115734
+sub_8115734: @ 8115734
+ 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 r0, _08115770 @ =0x00002d9e
+ bl sub_814AAF8
+ movs r0, 0
+ movs r1, 0xE
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuDrawTextWindow
+ ldr r0, _08115774 @ =gUnknown_081C41E3
+ movs r1, 0x1
+ movs r2, 0xF
+ bl MenuPrint
+ ldr r1, _08115778 @ =gUnknown_083F8EBC
+ adds r0, r4, 0
+ bl sub_80F914C
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08115770: .4byte 0x00002d9e
+_08115774: .4byte gUnknown_081C41E3
+_08115778: .4byte gUnknown_083F8EBC
+ thumb_func_end sub_8115734
+
+ thumb_func_start sub_811577C
+sub_811577C: @ 811577C
+ 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, _081157A4 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _081157A8 @ =sub_81159BC
+ str r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081157A4: .4byte gTasks
+_081157A8: .4byte sub_81159BC
+ thumb_func_end sub_811577C
+
+ thumb_func_start sub_81157AC
+sub_81157AC: @ 81157AC
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _081157CC @ =0x02019000
+ adds r0, 0xA5
+ ldrb r0, [r0]
+ bl DestroyTask
+ adds r0, r4, 0
+ bl sub_8116AB0
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081157CC: .4byte 0x02019000
+ thumb_func_end sub_81157AC
+
+ thumb_func_start sub_81157D0
+sub_81157D0: @ 81157D0
+ push {r4-r7,lr}
+ sub sp, 0x8
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0xF
+ bhi _081158C8
+ lsls r0, r4, 2
+ ldr r1, _081157E8 @ =_081157EC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_081157E8: .4byte _081157EC
+ .align 2, 0
+_081157EC:
+ .4byte _0811582C
+ .4byte _08115848
+ .4byte _08115848
+ .4byte _08115848
+ .4byte _08115848
+ .4byte _08115884
+ .4byte _081158C8
+ .4byte _081158C8
+ .4byte _081158C8
+ .4byte _081158C8
+ .4byte _08115884
+ .4byte _081158C8
+ .4byte _081158C8
+ .4byte _081158C8
+ .4byte _081158C8
+ .4byte _08115884
+_0811582C:
+ ldr r0, _08115844 @ =gBG2TilemapBuffer
+ movs r1, 0x10
+ str r1, [sp]
+ movs r1, 0xD
+ str r1, [sp, 0x4]
+ movs r1, 0
+ movs r2, 0xE
+ movs r3, 0x7
+ bl sub_8124DDC
+ b _08115918
+ .align 2, 0
+_08115844: .4byte gBG2TilemapBuffer
+_08115848:
+ lsls r0, r4, 1
+ adds r0, r4
+ adds r0, 0xE
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r5, _0811587C @ =gBG2TilemapBuffer
+ movs r0, 0x10
+ str r0, [sp]
+ movs r4, 0xD
+ str r4, [sp, 0x4]
+ adds r0, r5, 0
+ movs r1, 0
+ movs r2, 0xE
+ movs r3, 0x7
+ bl sub_8124DDC
+ ldr r1, _08115880 @ =0x02018a32
+ movs r0, 0x3
+ str r0, [sp]
+ str r4, [sp, 0x4]
+ adds r0, r5, 0
+ adds r2, r7, 0
+ movs r3, 0x7
+ bl sub_8124E2C
+ b _08115918
+ .align 2, 0
+_0811587C: .4byte gBG2TilemapBuffer
+_08115880: .4byte 0x02018a32
+_08115884:
+ subs r0, r4, 0x1
+ movs r1, 0x5
+ bl __divsi3
+ lsls r1, r0, 1
+ adds r1, r0
+ adds r1, 0xA
+ lsls r1, 24
+ lsrs r6, r1, 24
+ ldr r5, _081158C0 @ =gBG2TilemapBuffer
+ movs r4, 0x10
+ str r4, [sp]
+ movs r0, 0xD
+ str r0, [sp, 0x4]
+ adds r0, r5, 0
+ movs r1, 0
+ movs r2, 0xE
+ movs r3, 0x7
+ bl sub_8124DDC
+ ldr r1, _081158C4 @ =0x02018a80
+ str r4, [sp]
+ movs r0, 0x3
+ str r0, [sp, 0x4]
+ adds r0, r5, 0
+ movs r2, 0xE
+ adds r3, r6, 0
+ bl sub_8124E2C
+ b _08115918
+ .align 2, 0
+_081158C0: .4byte gBG2TilemapBuffer
+_081158C4: .4byte 0x02018a80
+_081158C8:
+ adds r0, r4, 0
+ movs r1, 0x5
+ bl __umodsi3
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 1
+ adds r1, r0
+ adds r1, 0xE
+ lsls r1, 24
+ lsrs r7, r1, 24
+ subs r0, r4, 0x1
+ movs r1, 0x5
+ bl __divsi3
+ lsls r1, r0, 1
+ adds r1, r0
+ adds r1, 0x7
+ lsls r1, 24
+ lsrs r6, r1, 24
+ ldr r4, _08115920 @ =gBG2TilemapBuffer
+ movs r0, 0x10
+ str r0, [sp]
+ movs r0, 0xD
+ str r0, [sp, 0x4]
+ adds r0, r4, 0
+ movs r1, 0
+ movs r2, 0xE
+ movs r3, 0x7
+ bl sub_8124DDC
+ ldr r1, _08115924 @ =0x02018a20
+ movs r0, 0x3
+ str r0, [sp]
+ str r0, [sp, 0x4]
+ adds r0, r4, 0
+ adds r2, r7, 0
+ adds r3, r6, 0
+ bl sub_8124E2C
+_08115918:
+ add sp, 0x8
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08115920: .4byte gBG2TilemapBuffer
+_08115924: .4byte 0x02018a20
+ thumb_func_end sub_81157D0
+
+ thumb_func_start sub_8115928
+sub_8115928: @ 8115928
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r1, 24
+ cmp r1, 0
+ bne _0811594C
+ ldr r1, _08115948 @ =gTasks
+ lsls r4, r5, 2
+ adds r0, r4, r5
+ lsls r0, 3
+ adds r0, r1
+ ldrb r0, [r0, 0x10]
+ bl sub_811829C
+ b _08115960
+ .align 2, 0
+_08115948: .4byte gTasks
+_0811594C:
+ ldr r0, _08115974 @ =0x02019000
+ ldrb r1, [r0, 0x1A]
+ lsls r1, 28
+ lsrs r1, 28
+ adds r0, 0x1B
+ adds r1, r0
+ ldrb r0, [r1]
+ bl sub_811829C
+ lsls r4, r5, 2
+_08115960:
+ ldr r0, _08115978 @ =gTasks
+ adds r1, r4, r5
+ lsls r1, 3
+ adds r1, r0
+ ldrb r0, [r1, 0x10]
+ bl sub_81157D0
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08115974: .4byte 0x02019000
+_08115978: .4byte gTasks
+ thumb_func_end sub_8115928
+
+ thumb_func_start sub_811597C
+sub_811597C: @ 811597C
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r5, _081159B0 @ =0x02019000
+ movs r6, 0
+ movs r1, 0x1
+ strh r1, [r5, 0x28]
+ ldr r1, _081159B4 @ =gTasks
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ adds r4, r1
+ ldrb r0, [r4, 0x10]
+ bl sub_81157D0
+ adds r1, r5, 0
+ adds r1, 0x23
+ movs r0, 0x2
+ strb r0, [r1]
+ adds r5, 0x21
+ strb r6, [r5]
+ ldr r0, _081159B8 @ =sub_8115E14
+ str r0, [r4]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081159B0: .4byte 0x02019000
+_081159B4: .4byte gTasks
+_081159B8: .4byte sub_8115E14
+ thumb_func_end sub_811597C
+
+ thumb_func_start sub_81159BC
+sub_81159BC: @ 81159BC
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r3, _08115A10 @ =0x02019000
+ ldr r1, [r3, 0x8]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _08115A1C
+ movs r2, 0xB
+ ldr r5, _08115A14 @ =gUnknown_083F8C00
+ adds r0, r5, 0
+ adds r0, 0xE4
+ ldr r0, [r0]
+ ands r1, r0
+ ldr r0, _08115A18 @ =gTasks
+ mov r12, r0
+ lsls r7, r6, 2
+ cmp r1, 0
+ beq _08115A5A
+ adds r4, r3, 0
+ adds r3, r5, 0
+ adds r3, 0x8
+_081159EA:
+ lsls r0, r2, 16
+ movs r1, 0x80
+ lsls r1, 9
+ adds r0, r1
+ lsrs r2, r0, 16
+ asrs r1, r0, 16
+ cmp r1, 0xD
+ bgt _08115A5A
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ ldr r1, [r4, 0x8]
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ bne _081159EA
+ b _08115A5A
+ .align 2, 0
+_08115A10: .4byte 0x02019000
+_08115A14: .4byte gUnknown_083F8C00
+_08115A18: .4byte gTasks
+_08115A1C:
+ movs r2, 0x6
+ ldr r5, _08115A88 @ =gUnknown_083F8C00
+ adds r0, r5, 0
+ adds r0, 0x80
+ ldr r0, [r0]
+ ands r1, r0
+ ldr r0, _08115A8C @ =gTasks
+ mov r12, r0
+ lsls r7, r6, 2
+ cmp r1, 0
+ beq _08115A5A
+ adds r4, r3, 0
+ adds r3, r5, 0
+ adds r3, 0x8
+_08115A38:
+ lsls r0, r2, 16
+ movs r1, 0x80
+ lsls r1, 9
+ adds r0, r1
+ lsrs r2, r0, 16
+ asrs r1, r0, 16
+ cmp r1, 0x9
+ bgt _08115A5A
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ ldr r1, [r4, 0x8]
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ bne _08115A38
+_08115A5A:
+ adds r4, r7, r6
+ lsls r4, 3
+ add r4, r12
+ movs r5, 0
+ strh r2, [r4, 0x10]
+ adds r0, r6, 0
+ bl sub_8116CAC
+ ldrb r0, [r4, 0x10]
+ bl sub_8117158
+ ldrb r0, [r4, 0x10]
+ bl sub_811829C
+ ldrb r0, [r4, 0x10]
+ bl sub_8116EF8
+ strh r5, [r4, 0xA]
+ ldr r0, _08115A90 @ =sub_811597C
+ str r0, [r4]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08115A88: .4byte gUnknown_083F8C00
+_08115A8C: .4byte gTasks
+_08115A90: .4byte sub_811597C
+ thumb_func_end sub_81159BC
+
+ thumb_func_start sub_8115A94
+sub_8115A94: @ 8115A94
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ adds r4, r0, 0
+ lsls r1, 24
+ lsrs r5, r1, 24
+ movs r6, 0
+ movs r7, 0
+ ldr r1, _08115ADC @ =gUnknown_083F8ECA
+ mov r0, sp
+ movs r2, 0x4
+ bl memcpy
+ ldrb r0, [r4]
+ mov r8, r0
+ cmp r5, 0
+ blt _08115B08
+ cmp r5, 0x1
+ bgt _08115AE0
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ movs r1, 0x5
+ bl __modsi3
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r2, 0xF0
+ lsls r2, 20
+ adds r1, r0, r2
+ lsrs r7, r1, 24
+ cmp r0, 0
+ bne _08115B08
+ movs r6, 0x5
+ b _08115B08
+ .align 2, 0
+_08115ADC: .4byte gUnknown_083F8ECA
+_08115AE0:
+ cmp r5, 0x3
+ bgt _08115B08
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ movs r1, 0x5
+ bl __divsi3
+ lsls r0, 16
+ asrs r0, 16
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 24
+ lsrs r6, r1, 24
+ movs r2, 0x80
+ lsls r2, 19
+ adds r0, r1, r2
+ lsrs r7, r0, 24
+ cmp r1, 0
+ bne _08115B08
+ movs r6, 0x1
+_08115B08:
+ mov r1, sp
+ adds r0, r1, r5
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ ldrh r2, [r4]
+ adds r0, r2
+ strh r0, [r4]
+ lsls r1, r6, 24
+ asrs r3, r1, 24
+ lsls r0, 16
+ asrs r0, 16
+ lsls r2, r7, 24
+ cmp r0, r3
+ bge _08115B2A
+ asrs r0, r2, 24
+ strh r0, [r4]
+_08115B2A:
+ movs r0, 0
+ ldrsh r1, [r4, r0]
+ asrs r0, r2, 24
+ cmp r1, r0
+ ble _08115B36
+ strh r3, [r4]
+_08115B36:
+ mov r1, r8
+ lsls r0, r1, 24
+ movs r2, 0
+ ldrsh r1, [r4, r2]
+ asrs r0, 24
+ cmp r1, r0
+ bne _08115B48
+ movs r0, 0
+ b _08115B4A
+_08115B48:
+ movs r0, 0x1
+_08115B4A:
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8115A94
+
+ thumb_func_start sub_8115B58
+sub_8115B58: @ 8115B58
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ lsls r0, 24
+ lsrs r7, r0, 24
+ movs r0, 0
+ mov r8, r0
+ movs r5, 0
+ ldr r4, _08115D30 @ =gMain
+ ldrh r1, [r4, 0x2E]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _08115B94
+ movs r5, 0x1
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ ldr r1, _08115D34 @ =gTasks + 0x8
+ adds r0, r1
+ adds r0, 0x8
+ movs r1, 0
+ bl sub_8115A94
+ lsls r0, 24
+ cmp r0, 0
+ bne _08115B94
+ b _08115D20
+_08115B94:
+ ldrh r1, [r4, 0x2E]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _08115BBA
+ movs r5, 0x1
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ ldr r1, _08115D34 @ =gTasks + 0x8
+ adds r0, r1
+ adds r0, 0x8
+ movs r1, 0x1
+ bl sub_8115A94
+ lsls r0, 24
+ cmp r0, 0
+ bne _08115BBA
+ b _08115D20
+_08115BBA:
+ ldrh r1, [r4, 0x2E]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _08115BE0
+ movs r5, 0x1
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ ldr r1, _08115D34 @ =gTasks + 0x8
+ adds r0, r1
+ adds r0, 0x8
+ movs r1, 0x2
+ bl sub_8115A94
+ lsls r0, 24
+ cmp r0, 0
+ bne _08115BE0
+ b _08115D20
+_08115BE0:
+ ldrh r1, [r4, 0x2E]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _08115C06
+ movs r5, 0x1
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ ldr r1, _08115D34 @ =gTasks + 0x8
+ adds r0, r1
+ adds r0, 0x8
+ movs r1, 0x3
+ bl sub_8115A94
+ lsls r0, 24
+ cmp r0, 0
+ bne _08115C06
+ b _08115D20
+_08115C06:
+ cmp r5, 0
+ bne _08115C0C
+ b _08115D20
+_08115C0C:
+ ldr r0, _08115D38 @ =gTasks
+ lsls r6, r7, 2
+ adds r4, r6, r7
+ lsls r4, 3
+ adds r4, r0
+ ldrb r0, [r4, 0x10]
+ bl sub_8117158
+ adds r0, r7, 0
+ movs r1, 0
+ bl sub_8115928
+ mov r1, r8
+ strh r1, [r4, 0xA]
+ movs r0, 0x5
+ bl PlaySE
+ ldr r5, _08115D3C @ =0x020190b8
+ ldr r1, _08115D40 @ =0x0000ffff
+ adds r0, r5, 0
+ bl sub_8124D3C
+ adds r3, r5, 0
+ adds r3, 0xB8
+ ldrb r2, [r3]
+ movs r1, 0x7F
+ adds r0, r1, 0
+ ands r0, r2
+ strb r0, [r3]
+ subs r3, 0xC
+ ldrb r2, [r3]
+ adds r0, r1, 0
+ ands r0, r2
+ strb r0, [r3]
+ adds r2, r5, 0
+ adds r2, 0xA0
+ ldrb r0, [r2]
+ ands r1, r0
+ strb r1, [r2]
+ ldrb r0, [r4, 0x10]
+ bl sub_8116EF8
+ movs r4, 0
+ mov r12, r6
+ ldr r6, _08115D44 @ =gSprites
+ movs r2, 0x7C
+ negs r2, r2
+ adds r2, r5
+ mov r10, r2
+ movs r0, 0x8
+ adds r0, r6
+ mov r8, r0
+ ldr r1, _08115D48 @ =0xfffffc00
+ mov r9, r1
+ ldr r2, _08115D4C @ =0x000003ff
+ adds r5, r2, 0
+_08115C7C:
+ adds r0, r4, 0
+ adds r0, 0x29
+ add r0, r10
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r3, r0, r6
+ adds r2, r3, 0
+ adds r2, 0x40
+ add r0, r8
+ ldr r0, [r0]
+ ldr r0, [r0]
+ ldrh r1, [r0]
+ ldrh r2, [r2]
+ adds r1, r2
+ ands r1, r5
+ ldrh r2, [r3, 0x4]
+ mov r0, r9
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r3, 0x4]
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x3
+ bls _08115C7C
+ ldr r0, _08115D38 @ =gTasks
+ mov r2, r12
+ adds r1, r2, r7
+ lsls r1, 3
+ adds r1, r0
+ ldrh r3, [r1, 0x10]
+ subs r0, r3, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x3
+ bhi _08115D20
+ ldr r2, _08115D50 @ =gUnknown_083F8C00
+ movs r0, 0x10
+ ldrsh r1, [r1, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r2, 0x8
+ adds r0, r2
+ ldr r2, _08115D54 @ =0x02019000
+ ldr r1, [r2, 0x8]
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ bne _08115D20
+ subs r0, r3, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ adds r0, r2, 0
+ add r0, r8
+ adds r0, 0x65
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _08115D44 @ =gSprites
+ adds r3, r0, r1
+ adds r2, r3, 0
+ adds r2, 0x40
+ adds r1, 0x8
+ adds r0, r1
+ ldr r0, [r0]
+ ldr r0, [r0]
+ ldrh r1, [r0, 0x4]
+ ldrh r2, [r2]
+ adds r1, r2
+ ldr r2, _08115D4C @ =0x000003ff
+ adds r0, r2, 0
+ ands r1, r0
+ ldrh r2, [r3, 0x4]
+ ldr r0, _08115D48 @ =0xfffffc00
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r3, 0x4]
+_08115D20:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08115D30: .4byte gMain
+_08115D34: .4byte gTasks + 0x8
+_08115D38: .4byte gTasks
+_08115D3C: .4byte 0x020190b8
+_08115D40: .4byte 0x0000ffff
+_08115D44: .4byte gSprites
+_08115D48: .4byte 0xfffffc00
+_08115D4C: .4byte 0x000003ff
+_08115D50: .4byte gUnknown_083F8C00
+_08115D54: .4byte 0x02019000
+ thumb_func_end sub_8115B58
+
+ thumb_func_start sub_8115D58
+sub_8115D58: @ 8115D58
+ push {lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldr r1, _08115D70 @ =0x02019000
+ movs r0, 0xFF
+ strh r0, [r1, 0x28]
+ ldrb r0, [r1, 0x19]
+ cmp r0, 0x1
+ bne _08115D74
+ adds r2, r1, 0
+ adds r2, 0x23
+ b _08115D7A
+ .align 2, 0
+_08115D70: .4byte 0x02019000
+_08115D74:
+ adds r2, r1, 0
+ adds r2, 0x23
+ movs r0, 0
+_08115D7A:
+ strb r0, [r2]
+ adds r1, 0x21
+ movs r0, 0
+ strb r0, [r1]
+ ldr r1, _08115D98 @ =gTasks
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0x20
+ strh r1, [r0, 0xA]
+ ldr r1, _08115D9C @ =sub_8115ECC
+ str r1, [r0]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08115D98: .4byte gTasks
+_08115D9C: .4byte sub_8115ECC
+ thumb_func_end sub_8115D58
+
+ thumb_func_start sub_8115DA0
+sub_8115DA0: @ 8115DA0
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r4, _08115E08 @ =0x02019000
+ ldrb r2, [r4, 0x1A]
+ lsls r2, 28
+ lsrs r2, 28
+ adds r5, r4, 0
+ adds r5, 0x1B
+ adds r2, r5
+ ldr r3, _08115E0C @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r6, r1, r3
+ ldrh r0, [r6, 0x10]
+ strb r0, [r2]
+ ldrb r0, [r4, 0x1A]
+ lsls r0, 28
+ lsrs r0, 28
+ adds r0, r5
+ ldrb r0, [r0]
+ bl sub_8117380
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r6, 0xC]
+ ldrb r0, [r4, 0x1A]
+ lsls r0, 28
+ lsrs r0, 28
+ adds r0, r5
+ ldrb r0, [r0]
+ bl sub_811829C
+ ldrb r1, [r4, 0x19]
+ ldrh r0, [r6, 0x22]
+ subs r0, r1
+ strh r0, [r6, 0x22]
+ lsls r0, 16
+ cmp r0, 0
+ bge _08115DF6
+ movs r0, 0
+ strh r0, [r6, 0x22]
+_08115DF6:
+ ldrh r0, [r6, 0x22]
+ bl sub_81180F4
+ ldr r0, _08115E10 @ =sub_8115D58
+ str r0, [r6]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08115E08: .4byte 0x02019000
+_08115E0C: .4byte gTasks
+_08115E10: .4byte sub_8115D58
+ thumb_func_end sub_8115DA0
+
+ thumb_func_start sub_8115E14
+sub_8115E14: @ 8115E14
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r0, r5, 0
+ bl sub_8115B58
+ ldr r1, _08115E3C @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r4, r0, r1
+ movs r1, 0xA
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1E
+ beq _08115E4A
+ cmp r0, 0x1E
+ bgt _08115E40
+ cmp r0, 0
+ beq _08115E46
+ b _08115E5E
+ .align 2, 0
+_08115E3C: .4byte gTasks
+_08115E40:
+ cmp r0, 0x3B
+ beq _08115E58
+ b _08115E5E
+_08115E46:
+ ldrb r0, [r4, 0x10]
+ b _08115E4C
+_08115E4A:
+ movs r0, 0
+_08115E4C:
+ bl sub_81157D0
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ b _08115E6E
+_08115E58:
+ movs r0, 0
+ strh r0, [r4, 0xA]
+ b _08115E6E
+_08115E5E:
+ ldr r0, _08115EA8 @ =gTasks
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0xA]
+ adds r0, 0x1
+ strh r0, [r1, 0xA]
+_08115E6E:
+ ldr r0, _08115EAC @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08115EC2
+ ldr r3, _08115EB0 @ =0x02019000
+ ldr r2, _08115EB4 @ =gUnknown_083F8C00
+ ldr r1, _08115EA8 @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r4, r0, r1
+ movs r0, 0x10
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r2, 0x8
+ adds r0, r2
+ ldr r1, [r3, 0x8]
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ beq _08115EB8
+ movs r0, 0x16
+ bl PlaySE
+ b _08115EC2
+ .align 2, 0
+_08115EA8: .4byte gTasks
+_08115EAC: .4byte gMain
+_08115EB0: .4byte 0x02019000
+_08115EB4: .4byte gUnknown_083F8C00
+_08115EB8:
+ movs r0, 0x5F
+ bl m4aSongNumStart
+ ldr r0, _08115EC8 @ =sub_8115DA0
+ str r0, [r4]
+_08115EC2:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08115EC8: .4byte sub_8115DA0
+ thumb_func_end sub_8115E14
+
+ thumb_func_start sub_8115ECC
+sub_8115ECC: @ 8115ECC
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _08115F20 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r4, r1, r2
+ ldrh r0, [r4, 0xA]
+ subs r1, r0, 0x1
+ strh r1, [r4, 0xA]
+ lsls r0, 16
+ cmp r0, 0
+ ble _08115F34
+ lsls r0, r1, 16
+ asrs r0, 16
+ cmp r0, 0x2
+ ble _08115EF8
+ ldr r1, _08115F24 @ =gSpriteCoordOffsetX
+ ldrh r0, [r1]
+ adds r0, 0x2
+ strh r0, [r1]
+_08115EF8:
+ ldr r1, _08115F28 @ =0x02019000
+ ldrh r0, [r1, 0x26]
+ adds r0, 0x4
+ strh r0, [r1, 0x26]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x68
+ bne _08115F4C
+ ldr r2, _08115F2C @ =gSprites
+ adds r0, r1, 0
+ adds r0, 0x55
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r2, 0x1C
+ adds r0, r2
+ ldr r1, _08115F30 @ =SpriteCallbackDummy
+ str r1, [r0]
+ b _08115F4C
+ .align 2, 0
+_08115F20: .4byte gTasks
+_08115F24: .4byte gSpriteCoordOffsetX
+_08115F28: .4byte 0x02019000
+_08115F2C: .4byte gSprites
+_08115F30: .4byte SpriteCallbackDummy
+_08115F34:
+ movs r0, 0x1
+ movs r1, 0xFF
+ bl sub_8117AA8
+ movs r0, 0x1
+ movs r1, 0xFF
+ bl sub_8117C60
+ ldr r0, _08115F54 @ =sub_8116100
+ str r0, [r4]
+ movs r0, 0
+ strh r0, [r4, 0xA]
+_08115F4C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08115F54: .4byte sub_8116100
+ thumb_func_end sub_8115ECC
+
+ thumb_func_start sub_8115F58
+sub_8115F58: @ 8115F58
+ push {r4,lr}
+ lsls r0, 16
+ lsrs r3, r0, 16
+ lsls r1, 16
+ lsrs r1, 16
+ ldr r0, _08115F74 @ =0x02019000
+ ldrb r2, [r0, 0x2]
+ adds r4, r0, 0
+ cmp r2, 0x2
+ bgt _08115F78
+ cmp r2, 0x1
+ bge _08115F7E
+ b _08116048
+ .align 2, 0
+_08115F74: .4byte 0x02019000
+_08115F78:
+ cmp r2, 0x3
+ beq _08115FE0
+ b _08116048
+_08115F7E:
+ ldr r0, _08115FA8 @ =gLocalTime
+ ldrb r0, [r0, 0x2]
+ subs r0, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x5
+ bhi _08115FB0
+ cmp r3, 0xB
+ bls _08115F98
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0811605E
+_08115F98:
+ ldr r0, _08115FAC @ =gUnknown_083F8DF4
+ ldrb r1, [r4, 0x4]
+ lsls r1, 30
+ lsrs r1, 25
+ adds r1, r0
+ ldrb r0, [r1, 0x2]
+ lsrs r0, 1
+ b _081160F4
+ .align 2, 0
+_08115FA8: .4byte gLocalTime
+_08115FAC: .4byte gUnknown_083F8DF4
+_08115FB0:
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0
+ bne _08115FCC
+ ldr r0, _08115FC8 @ =gUnknown_083F8DF4
+ ldrb r1, [r4, 0x4]
+ lsls r1, 30
+ lsrs r1, 25
+ adds r1, r0
+ ldrb r0, [r1, 0x2]
+ lsrs r0, 1
+ b _081160F4
+ .align 2, 0
+_08115FC8: .4byte gUnknown_083F8DF4
+_08115FCC:
+ ldr r0, _08115FDC @ =gUnknown_083F8DF4
+ ldrb r1, [r4, 0x4]
+ lsls r1, 30
+ lsrs r1, 25
+ adds r1, r0
+ ldrb r0, [r1, 0x2]
+ b _081160F4
+ .align 2, 0
+_08115FDC: .4byte gUnknown_083F8DF4
+_08115FE0:
+ ldr r0, _0811600C @ =gLocalTime
+ ldrb r0, [r0, 0x2]
+ subs r0, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x6
+ bhi _08116014
+ cmp r3, 0x5
+ bls _08115FFA
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0811605E
+_08115FFA:
+ ldr r0, _08116010 @ =gUnknown_083F8DF4
+ ldrb r1, [r4, 0x4]
+ lsls r1, 30
+ lsrs r1, 25
+ adds r1, r0
+ ldrb r0, [r1, 0x2]
+ lsrs r0, 1
+ b _081160F4
+ .align 2, 0
+_0811600C: .4byte gLocalTime
+_08116010: .4byte gUnknown_083F8DF4
+_08116014:
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08116034
+ cmp r3, 0x6
+ bls _08116034
+ ldr r0, _08116030 @ =gUnknown_083F8DF4
+ ldrb r1, [r4, 0x4]
+ lsls r1, 30
+ lsrs r1, 25
+ adds r1, r0
+ ldrb r0, [r1, 0x2]
+ lsrs r0, 2
+ b _081160F4
+ .align 2, 0
+_08116030: .4byte gUnknown_083F8DF4
+_08116034:
+ ldr r0, _08116044 @ =gUnknown_083F8DF4
+ ldrb r1, [r4, 0x4]
+ lsls r1, 30
+ lsrs r1, 25
+ adds r1, r0
+ ldrb r0, [r1, 0x2]
+ lsrs r0, 1
+ b _081160F4
+ .align 2, 0
+_08116044: .4byte gUnknown_083F8DF4
+_08116048:
+ ldr r0, _08116064 @ =gLocalTime
+ ldrb r0, [r0, 0x2]
+ subs r0, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x5
+ bhi _0811607C
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0
+ bne _08116068
+_0811605E:
+ movs r0, 0x1
+ b _081160F4
+ .align 2, 0
+_08116064: .4byte gLocalTime
+_08116068:
+ ldr r0, _08116078 @ =gUnknown_083F8DF4
+ ldrb r1, [r4, 0x4]
+ lsls r1, 30
+ lsrs r1, 25
+ adds r1, r0
+ ldrb r0, [r1, 0x2]
+ lsrs r0, 1
+ b _081160F4
+ .align 2, 0
+_08116078: .4byte gUnknown_083F8DF4
+_0811607C:
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0
+ bne _081160B0
+ cmp r3, 0xC
+ bls _0811609C
+ ldr r0, _08116098 @ =gUnknown_083F8DF4
+ ldrb r1, [r4, 0x4]
+ lsls r1, 30
+ lsrs r1, 25
+ adds r1, r0
+ ldrb r0, [r1, 0x2]
+ lsrs r0, 1
+ b _081160F4
+ .align 2, 0
+_08116098: .4byte gUnknown_083F8DF4
+_0811609C:
+ ldr r0, _081160AC @ =gUnknown_083F8DF4
+ ldrb r1, [r4, 0x4]
+ lsls r1, 30
+ lsrs r1, 25
+ adds r1, r0
+ ldrb r0, [r1, 0x2]
+ b _081160F4
+ .align 2, 0
+_081160AC: .4byte gUnknown_083F8DF4
+_081160B0:
+ movs r0, 0x80
+ lsls r0, 8
+ ands r0, r1
+ cmp r0, 0
+ beq _081160E4
+ cmp r3, 0xC
+ bls _081160D0
+ ldr r0, _081160CC @ =gUnknown_083F8DF4
+ ldrb r1, [r4, 0x4]
+ lsls r1, 30
+ lsrs r1, 25
+ adds r1, r0
+ ldrb r0, [r1, 0x2]
+ b _081160F4
+ .align 2, 0
+_081160CC: .4byte gUnknown_083F8DF4
+_081160D0:
+ ldr r0, _081160E0 @ =gUnknown_083F8DF4
+ ldrb r1, [r4, 0x4]
+ lsls r1, 30
+ lsrs r1, 25
+ adds r1, r0
+ ldrb r0, [r1, 0x1]
+ b _081160F4
+ .align 2, 0
+_081160E0: .4byte gUnknown_083F8DF4
+_081160E4:
+ ldr r0, _081160FC @ =gUnknown_083F8DF4
+ ldrb r1, [r4, 0x4]
+ lsls r1, 30
+ lsrs r1, 25
+ adds r1, r0
+ ldrb r0, [r1, 0x1]
+ lsls r0, 25
+ lsrs r0, 24
+_081160F4:
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_081160FC: .4byte gUnknown_083F8DF4
+ thumb_func_end sub_8115F58
+
+ thumb_func_start sub_8116100
+sub_8116100: @ 8116100
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ movs r4, 0
+ ldr r1, _08116188 @ =gUnknown_083F8ECE
+ mov r0, sp
+ movs r2, 0x8
+ bl memcpy
+ bl Random
+ lsls r0, 16
+ lsrs r7, r0, 16
+ adds r0, r7, 0
+ movs r1, 0x64
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r6, r0, 16
+ ldr r3, _0811618C @ =0x02019000
+ ldr r1, _08116190 @ =gTasks
+ mov r2, r9
+ lsls r0, r2, 2
+ add r0, r9
+ lsls r0, 3
+ adds r0, r1
+ ldrh r2, [r0, 0x14]
+ adds r1, r3, 0
+ adds r1, 0x7C
+ strb r2, [r1]
+ adds r1, 0x3
+ strb r4, [r1]
+ subs r1, 0x1
+ strb r4, [r1]
+ subs r1, 0x1
+ strb r4, [r1]
+ ldrh r0, [r0, 0x18]
+ adds r1, r7, 0
+ bl sub_8115F58
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r1, r4, 24
+ adds r0, r7, 0
+ bl __modsi3
+ lsrs r4, 25
+ subs r0, r4
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _08116194 @ =gLocalTime
+ ldrb r0, [r0, 0x2]
+ lsls r0, 24
+ asrs r0, 24
+ movs r5, 0x1
+ cmp r0, 0xC
+ bgt _08116180
+ movs r5, 0
+_08116180:
+ cmp r6, 0x4F
+ bhi _08116198
+ lsls r0, r5, 25
+ b _081161A2
+ .align 2, 0
+_08116188: .4byte gUnknown_083F8ECE
+_0811618C: .4byte 0x02019000
+_08116190: .4byte gTasks
+_08116194: .4byte gLocalTime
+_08116198:
+ lsls r1, r5, 24
+ asrs r1, 24
+ movs r0, 0x1
+ subs r0, r1
+ lsls r0, 25
+_081161A2:
+ lsrs r5, r0, 24
+ ldr r6, _081162D8 @ =0x02019000
+ ldrb r0, [r6, 0x4]
+ lsls r0, 30
+ mov r10, r0
+ lsrs r0, 25
+ ldr r1, _081162DC @ =gUnknown_083F8DF4
+ adds r0, r1
+ lsls r4, 24
+ asrs r4, 24
+ ldrh r0, [r0, 0x1A]
+ adds r4, r0
+ adds r0, r6, 0
+ adds r0, 0x80
+ strh r4, [r0]
+ lsls r4, 16
+ asrs r4, 16
+ adds r0, r4, 0
+ bl __floatsisf
+ cmp r4, 0
+ bge _081161D4
+ ldr r1, _081162E0 @ =0x47800000
+ bl __addsf3
+_081161D4:
+ ldr r1, _081162E4 @ =0x40a00000
+ bl __divsf3
+ bl __fixunssfsi
+ lsls r0, 16
+ lsrs r4, r0, 16
+ lsls r0, r4, 1
+ adds r0, r4
+ mov r8, r0
+ adds r0, r6, 0
+ adds r0, 0x82
+ mov r2, r8
+ strh r2, [r0]
+ adds r0, 0x2
+ strh r4, [r0]
+ adds r0, 0x2
+ strh r4, [r0]
+ movs r0, 0x1
+ ands r0, r7
+ lsls r1, r5, 24
+ asrs r1, 24
+ adds r0, r1
+ lsls r0, 1
+ add r0, sp
+ movs r1, 0
+ ldrsh r4, [r0, r1]
+ adds r0, r4, 0
+ bl __floatsisf
+ cmp r4, 0
+ bge _0811621A
+ ldr r1, _081162E0 @ =0x47800000
+ bl __addsf3
+_0811621A:
+ ldr r2, _081162E8 @ =0x02019088
+ str r0, [r2]
+ adds r7, r6, 0
+ adds r7, 0x8C
+ mov r1, r10
+ lsrs r0, r1, 25
+ ldr r2, _081162DC @ =gUnknown_083F8DF4
+ adds r0, r2
+ movs r1, 0x18
+ ldrsh r4, [r0, r1]
+ adds r0, r4, 0
+ bl __floatsisf
+ adds r5, r0, 0
+ cmp r4, 0
+ bge _08116242
+ ldr r1, _081162E0 @ =0x47800000
+ bl __addsf3
+ adds r5, r0, 0
+_08116242:
+ str r5, [r7]
+ adds r7, r6, 0
+ adds r7, 0x90
+ ldr r1, _081162EC @ =0x3f000000
+ adds r0, r5, 0
+ bl __mulsf3
+ adds r1, r5, 0
+ bl __subsf3
+ adds r5, r0, 0
+ mov r2, r8
+ lsls r0, r2, 16
+ asrs r4, r0, 16
+ adds r0, r4, 0
+ bl __floatsisf
+ adds r2, r0, 0
+ cmp r4, 0
+ bge _08116272
+ ldr r1, _081162E0 @ =0x47800000
+ bl __addsf3
+ adds r2, r0, 0
+_08116272:
+ adds r0, r5, 0
+ adds r1, r2, 0
+ bl __divsf3
+ str r0, [r7]
+ adds r1, r6, 0
+ adds r1, 0x94
+ ldr r0, _081162F0 @ =0x42880000
+ str r0, [r1]
+ adds r1, 0x8
+ ldr r0, _081162F4 @ =0x00000000
+ str r0, [r1]
+ adds r5, r6, 0
+ adds r5, 0x98
+ adds r0, r4, 0
+ bl __floatsisf
+ adds r2, r0, 0
+ cmp r4, 0
+ bge _081162A2
+ ldr r1, _081162E0 @ =0x47800000
+ bl __addsf3
+ adds r2, r0, 0
+_081162A2:
+ ldr r0, _081162F8 @ =0x41000000
+ adds r1, r2, 0
+ bl __divsf3
+ bl __negsf2
+ str r0, [r5]
+ adds r1, r6, 0
+ adds r1, 0xA0
+ ldr r0, _081162FC @ =0x42100000
+ str r0, [r1]
+ ldr r1, _08116300 @ =gTasks
+ mov r2, r9
+ lsls r0, r2, 2
+ add r0, r9
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _08116304 @ =sub_8116308
+ str r1, [r0]
+ 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
+_081162D8: .4byte 0x02019000
+_081162DC: .4byte gUnknown_083F8DF4
+_081162E0: .4byte 0x47800000
+_081162E4: .4byte 0x40a00000
+_081162E8: .4byte 0x02019088
+_081162EC: .4byte 0x3f000000
+_081162F0: .4byte 0x42880000
+_081162F4: .4byte 0x00000000
+_081162F8: .4byte 0x41000000
+_081162FC: .4byte 0x42100000
+_08116300: .4byte gTasks
+_08116304: .4byte sub_8116308
+ thumb_func_end sub_8116100
+
+ thumb_func_start sub_8116308
+sub_8116308: @ 8116308
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r3, _08116368 @ =0x02019000
+ ldrb r1, [r3, 0x3]
+ movs r2, 0x80
+ orrs r1, r2
+ strb r1, [r3, 0x3]
+ adds r2, r3, 0
+ adds r2, 0x7C
+ adds r1, r3, 0
+ adds r1, 0x3C
+ ldrb r2, [r2]
+ adds r1, r2
+ ldrb r2, [r1]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ ldr r2, _0811636C @ =gSprites
+ adds r1, r2
+ str r1, [r3, 0x38]
+ ldr r2, _08116370 @ =sub_81191F4
+ str r2, [r1, 0x1C]
+ ldr r1, _08116374 @ =gTasks
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ adds r4, r1
+ ldrh r1, [r4, 0x14]
+ adds r1, 0x1
+ strh r1, [r4, 0x14]
+ ldrh r0, [r4, 0x18]
+ adds r0, 0x1
+ strh r0, [r4, 0x18]
+ movs r0, 0x6
+ subs r0, r1
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_81182F8
+ movs r0, 0x5C
+ bl m4aSongNumStart
+ ldr r0, _08116378 @ =sub_811637C
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08116368: .4byte 0x02019000
+_0811636C: .4byte gSprites
+_08116370: .4byte sub_81191F4
+_08116374: .4byte gTasks
+_08116378: .4byte sub_811637C
+ thumb_func_end sub_8116308
+
+ thumb_func_start sub_811637C
+sub_811637C: @ 811637C
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r4, _081163B0 @ =0x02019000
+ adds r0, r4, 0
+ adds r0, 0x7D
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08116464
+ ldrb r1, [r4, 0x3]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _081163B4
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _08116464
+ movs r0, 0x41
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x21
+ negs r1, r1
+ ands r0, r1
+ strb r0, [r4, 0x3]
+ b _08116464
+ .align 2, 0
+_081163B0: .4byte 0x02019000
+_081163B4:
+ ldr r2, _08116428 @ =gTasks
+ lsls r1, r5, 2
+ adds r0, r1, r5
+ lsls r0, 3
+ adds r6, r0, r2
+ movs r2, 0xA
+ ldrsh r0, [r6, r2]
+ adds r7, r1, 0
+ cmp r0, 0
+ bne _08116400
+ adds r0, r4, 0
+ adds r0, 0x7E
+ ldrb r1, [r0]
+ adds r0, r5, 0
+ bl sub_8116D54
+ lsls r0, 24
+ lsrs r0, 24
+ ldrb r1, [r4, 0x1A]
+ lsls r1, 28
+ lsrs r1, 28
+ adds r2, r4, 0
+ adds r2, 0x1B
+ adds r1, r2
+ ldrb r1, [r1]
+ bl sub_8116E5C
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r6, 0x12]
+ cmp r0, 0x1
+ bne _08116400
+ adds r0, r4, 0
+ adds r0, 0xB8
+ movs r1, 0x80
+ lsls r1, 5
+ bl sub_8124CE8
+_08116400:
+ ldr r0, _08116428 @ =gTasks
+ adds r1, r7, r5
+ lsls r1, 3
+ adds r4, r1, r0
+ movs r1, 0xA
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x3C
+ bgt _08116430
+ ldr r0, _0811642C @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08116420
+ movs r0, 0x3C
+ strh r0, [r4, 0xA]
+_08116420:
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ b _08116464
+ .align 2, 0
+_08116428: .4byte gTasks
+_0811642C: .4byte gMain
+_08116430:
+ ldr r1, _0811646C @ =0x02019000
+ ldrb r0, [r1, 0x1A]
+ lsls r0, 28
+ lsrs r0, 28
+ adds r1, 0x1B
+ adds r0, r1
+ ldrb r0, [r0]
+ bl sub_8117158
+ ldrh r1, [r4, 0x20]
+ lsls r1, 24
+ lsrs r1, 24
+ movs r0, 0
+ bl sub_8117AA8
+ ldrb r1, [r4, 0x14]
+ subs r1, 0x1
+ lsls r1, 24
+ lsrs r1, 24
+ movs r0, 0
+ bl sub_8117C60
+ movs r0, 0x20
+ strh r0, [r4, 0xA]
+ ldr r0, _08116470 @ =sub_8116474
+ str r0, [r4]
+_08116464:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811646C: .4byte 0x02019000
+_08116470: .4byte sub_8116474
+ thumb_func_end sub_811637C
+
+ thumb_func_start sub_8116474
+sub_8116474: @ 8116474
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _081164C8 @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r4, r0, r1
+ ldrh r0, [r4, 0xA]
+ subs r1, r0, 0x1
+ strh r1, [r4, 0xA]
+ lsls r0, 16
+ cmp r0, 0
+ ble _081164DC
+ lsls r0, r1, 16
+ asrs r0, 16
+ cmp r0, 0x2
+ ble _081164A0
+ ldr r1, _081164CC @ =gSpriteCoordOffsetX
+ ldrh r0, [r1]
+ subs r0, 0x2
+ strh r0, [r1]
+_081164A0:
+ ldr r1, _081164D0 @ =0x02019000
+ ldrh r0, [r1, 0x26]
+ subs r0, 0x4
+ strh r0, [r1, 0x26]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x68
+ bne _08116504
+ ldr r2, _081164D4 @ =gSprites
+ adds r0, r1, 0
+ adds r0, 0x55
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r2, 0x1C
+ adds r0, r2
+ ldr r1, _081164D8 @ =sub_81184CC
+ str r1, [r0]
+ b _08116504
+ .align 2, 0
+_081164C8: .4byte gTasks
+_081164CC: .4byte gSpriteCoordOffsetX
+_081164D0: .4byte 0x02019000
+_081164D4: .4byte gSprites
+_081164D8: .4byte sub_81184CC
+_081164DC:
+ ldrh r0, [r4, 0x20]
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8117D68
+ movs r1, 0x12
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ bne _081164F2
+ movs r0, 0x79
+ b _081164F4
+_081164F2:
+ movs r0, 0x3D
+_081164F4:
+ strh r0, [r4, 0xA]
+ ldr r0, _0811650C @ =gTasks
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _08116510 @ =sub_8116514
+ str r0, [r1]
+_08116504:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811650C: .4byte gTasks
+_08116510: .4byte sub_8116514
+ thumb_func_end sub_8116474
+
+ thumb_func_start sub_8116514
+sub_8116514: @ 8116514
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r1, _08116564 @ =gTasks
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r4, r0, r1
+ ldrh r0, [r4, 0xA]
+ subs r1, r0, 0x1
+ strh r1, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _08116584
+ movs r0, 0xA
+ ldrsh r1, [r4, r0]
+ adds r0, r1, 0
+ cmp r1, 0
+ bge _0811653E
+ adds r0, 0xF
+_0811653E:
+ asrs r0, 4
+ lsls r0, 4
+ subs r0, r1, r0
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0
+ beq _08116568
+ cmp r0, 0x8
+ bne _08116590
+ movs r0, 0
+ movs r1, 0xFF
+ bl sub_8117AA8
+ movs r0, 0
+ movs r1, 0xFF
+ bl sub_8117C60
+ b _08116590
+ .align 2, 0
+_08116564: .4byte gTasks
+_08116568:
+ ldrh r1, [r4, 0x20]
+ lsls r1, 24
+ lsrs r1, 24
+ movs r0, 0
+ bl sub_8117AA8
+ ldrb r1, [r4, 0x14]
+ subs r1, 0x1
+ lsls r1, 24
+ lsrs r1, 24
+ movs r0, 0
+ bl sub_8117C60
+ b _08116590
+_08116584:
+ ldr r1, _08116598 @ =sub_8116638
+ adds r0, r2, 0
+ movs r2, 0x1E
+ movs r3, 0
+ bl sub_8116C34
+_08116590:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08116598: .4byte sub_8116638
+ thumb_func_end sub_8116514
+
+ thumb_func_start sub_811659C
+sub_811659C: @ 811659C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _081165F4 @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r4, r0, r1
+ movs r1, 0x12
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _08116600
+ cmp r0, 0
+ blt _08116600
+ cmp r0, 0x2
+ bgt _08116600
+ bl IsFanfareTaskInactive
+ lsls r0, 24
+ cmp r0, 0
+ beq _08116624
+ movs r0, 0x1D
+ bl sub_8053108
+ ldrh r1, [r4, 0x1E]
+ adds r1, 0x1
+ strh r1, [r4, 0x1E]
+ lsls r1, 16
+ asrs r1, 16
+ cmp r0, r1
+ bcs _081165E4
+ movs r0, 0x1E
+ ldrsh r1, [r4, r0]
+ movs r0, 0x1D
+ bl sav12_xor_set
+_081165E4:
+ ldr r1, _081165F8 @ =sub_811677C
+ ldr r2, _081165FC @ =0x0000ffff
+ adds r0, r5, 0
+ movs r3, 0x3
+ bl sub_8116C34
+ b _08116624
+ .align 2, 0
+_081165F4: .4byte gTasks
+_081165F8: .4byte sub_811677C
+_081165FC: .4byte 0x0000ffff
+_08116600:
+ bl IsSEPlaying
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0
+ bne _08116624
+ ldr r1, _0811662C @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ strh r2, [r0, 0x1E]
+ ldr r1, _08116630 @ =sub_81167F4
+ ldr r2, _08116634 @ =0x0000ffff
+ adds r0, r5, 0
+ movs r3, 0x3
+ bl sub_8116C34
+_08116624:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811662C: .4byte gTasks
+_08116630: .4byte sub_81167F4
+_08116634: .4byte 0x0000ffff
+ thumb_func_end sub_811659C
+
+ thumb_func_start sub_8116638
+sub_8116638: @ 8116638
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r1, _08116678 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ movs r2, 0x12
+ ldrsh r1, [r0, r2]
+ cmp r1, 0
+ beq _081166A8
+ cmp r1, 0
+ blt _081166A8
+ cmp r1, 0x2
+ bgt _081166A8
+ movs r1, 0xC
+ ldrsh r0, [r0, r1]
+ cmp r0, 0xC
+ bne _08116684
+ ldr r0, _0811667C @ =0x00000185
+ bl PlayFanfare
+ movs r0, 0
+ movs r1, 0xE
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuDrawTextWindow
+ ldr r0, _08116680 @ =gUnknown_081C41A5
+ b _0811669A
+ .align 2, 0
+_08116678: .4byte gTasks
+_0811667C: .4byte 0x00000185
+_08116680: .4byte gUnknown_081C41A5
+_08116684:
+ movs r0, 0xC3
+ lsls r0, 1
+ bl PlayFanfare
+ movs r0, 0
+ movs r1, 0xE
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuDrawTextWindow
+ ldr r0, _081166A4 @ =gUnknown_081C4199
+_0811669A:
+ movs r1, 0x1
+ movs r2, 0xF
+ bl MenuPrint
+ b _081166C4
+ .align 2, 0
+_081166A4: .4byte gUnknown_081C4199
+_081166A8:
+ movs r0, 0x20
+ bl m4aSongNumStart
+ movs r0, 0
+ movs r1, 0xE
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuDrawTextWindow
+ ldr r0, _081166DC @ =gUnknown_081C41AE
+ movs r1, 0x1
+ movs r2, 0xF
+ bl MenuPrint
+_081166C4:
+ ldr r1, _081166E0 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0
+ strh r1, [r0, 0xA]
+ ldr r1, _081166E4 @ =sub_811659C
+ str r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081166DC: .4byte gUnknown_081C41AE
+_081166E0: .4byte gTasks
+_081166E4: .4byte sub_811659C
+ thumb_func_end sub_8116638
+
+ thumb_func_start sub_81166E8
+sub_81166E8: @ 81166E8
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r1, _0811670C @ =gTasks
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r4, r0, r1
+ movs r0, 0x16
+ ldrsh r5, [r4, r0]
+ cmp r5, 0
+ beq _08116710
+ cmp r5, 0x3
+ beq _08116740
+ ldrh r0, [r4, 0x16]
+ adds r0, 0x1
+ b _08116748
+ .align 2, 0
+_0811670C: .4byte gTasks
+_08116710:
+ ldrh r0, [r4, 0x22]
+ adds r0, 0x1
+ strh r0, [r4, 0x22]
+ movs r0, 0x15
+ bl m4aSongNumStart
+ ldrh r0, [r4, 0x22]
+ bl sub_81180F4
+ movs r2, 0x22
+ ldrsh r1, [r4, r2]
+ ldr r0, _08116730 @ =0x0000270e
+ cmp r1, r0
+ ble _08116734
+ strh r5, [r4, 0xA]
+ b _0811674A
+ .align 2, 0
+_08116730: .4byte 0x0000270e
+_08116734:
+ ldrh r0, [r4, 0xA]
+ subs r0, 0x1
+ strh r0, [r4, 0xA]
+ ldrh r0, [r4, 0x16]
+ adds r0, 0x1
+ b _08116748
+_08116740:
+ movs r0, 0x15
+ bl m4aSongNumStop
+ movs r0, 0
+_08116748:
+ strh r0, [r4, 0x16]
+_0811674A:
+ ldr r0, _08116770 @ =gTasks
+ lsls r1, r6, 2
+ adds r1, r6
+ lsls r1, 3
+ adds r1, r0
+ movs r2, 0xA
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ bne _08116768
+ ldr r1, _08116774 @ =sub_81167F4
+ ldr r2, _08116778 @ =0x0000ffff
+ adds r0, r6, 0
+ movs r3, 0x3
+ bl sub_8116C34
+_08116768:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08116770: .4byte gTasks
+_08116774: .4byte sub_81167F4
+_08116778: .4byte 0x0000ffff
+ thumb_func_end sub_81166E8
+
+ thumb_func_start sub_811677C
+sub_811677C: @ 811677C
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r3, _081167DC @ =gStringVar1
+ ldr r6, _081167E0 @ =0x02019000
+ ldrb r2, [r6, 0x19]
+ ldr r1, _081167E4 @ =gTasks
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ adds r4, r1
+ movs r1, 0xC
+ ldrsh r0, [r4, r1]
+ adds r1, r2, 0
+ muls r1, r0
+ adds r0, r3, 0
+ movs r2, 0
+ movs r3, 0x2
+ bl ConvertIntToDecimalStringN
+ ldr r5, _081167E8 @ =gStringVar4
+ ldr r1, _081167EC @ =gUnknown_081C41BD
+ adds r0, r5, 0
+ bl StringExpandPlaceholders
+ movs r0, 0
+ movs r1, 0xE
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuDrawTextWindow
+ adds r0, r5, 0
+ movs r1, 0x1
+ movs r2, 0xF
+ bl MenuPrint
+ ldrb r1, [r6, 0x19]
+ movs r2, 0xC
+ ldrsh r0, [r4, r2]
+ muls r0, r1
+ movs r1, 0
+ strh r0, [r4, 0xA]
+ strh r1, [r4, 0x16]
+ ldr r0, _081167F0 @ =sub_81166E8
+ str r0, [r4]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081167DC: .4byte gStringVar1
+_081167E0: .4byte 0x02019000
+_081167E4: .4byte gTasks
+_081167E8: .4byte gStringVar4
+_081167EC: .4byte gUnknown_081C41BD
+_081167F0: .4byte sub_81166E8
+ thumb_func_end sub_811677C
+
+ thumb_func_start sub_81167F4
+sub_81167F4: @ 81167F4
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ ldr r4, _08116868 @ =0x020190b8
+ ldr r1, _0811686C @ =0x0000ffff
+ adds r0, r4, 0
+ bl sub_8124D3C
+ adds r3, r4, 0
+ adds r3, 0xB8
+ ldrb r2, [r3]
+ movs r1, 0x7F
+ adds r0, r1, 0
+ ands r0, r2
+ strb r0, [r3]
+ subs r3, 0xC
+ ldrb r2, [r3]
+ adds r0, r1, 0
+ ands r0, r2
+ strb r0, [r3]
+ adds r2, r4, 0
+ adds r2, 0xA0
+ ldrb r0, [r2]
+ ands r1, r0
+ strb r1, [r2]
+ ldr r6, _08116870 @ =gSprites
+ ldr r2, _08116874 @ =gUnknown_083F8C00
+ ldr r0, _08116878 @ =gTasks
+ lsls r3, r5, 2
+ adds r3, r5
+ lsls r3, 3
+ adds r3, r0
+ movs r0, 0x20
+ ldrsh r1, [r3, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0]
+ adds r4, r0
+ subs r4, 0x75
+ ldrb r1, [r4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+ ldr r0, _0811687C @ =sub_8116880
+ str r0, [r3]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08116868: .4byte 0x020190b8
+_0811686C: .4byte 0x0000ffff
+_08116870: .4byte gSprites
+_08116874: .4byte gUnknown_083F8C00
+_08116878: .4byte gTasks
+_0811687C: .4byte sub_8116880
+ thumb_func_end sub_81167F4
+
+ thumb_func_start sub_8116880
+sub_8116880: @ 8116880
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r5, 0
+ ldr r1, _08116954 @ =gTasks
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r0, r1
+ movs r2, 0
+ strh r5, [r0, 0x10]
+ ldr r4, _08116958 @ =0x02019000
+ ldrb r0, [r4, 0x1A]
+ lsls r0, 28
+ lsrs r0, 28
+ adds r1, r4, 0
+ adds r1, 0x1B
+ adds r0, r1
+ strb r2, [r0]
+ movs r0, 0
+ bl sub_8117158
+ ldr r3, _0811695C @ =gSprites
+ adds r0, r4, 0
+ adds r0, 0x6C
+ ldrb r1, [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]
+ adds r7, r3, 0
+ movs r0, 0x3C
+ adds r0, r4
+ mov r10, r0
+ movs r1, 0x8
+ adds r1, r7
+ mov r8, r1
+ ldr r0, _08116960 @ =0xfffffc00
+ mov r9, r0
+ ldr r1, _08116964 @ =0x000003ff
+ mov r12, r1
+_081168E4:
+ adds r0, r5, 0
+ adds r0, 0x29
+ add r0, r10
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r3, r0, r7
+ adds r2, r3, 0
+ adds r2, 0x40
+ add r0, r8
+ ldr r0, [r0]
+ ldr r0, [r0]
+ ldrh r1, [r0]
+ ldrh r2, [r2]
+ adds r1, r2
+ mov r0, r12
+ ands r1, r0
+ ldrh r2, [r3, 0x4]
+ mov r0, r9
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r3, 0x4]
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x3
+ bls _081168E4
+ ldr r0, _08116954 @ =gTasks
+ lsls r1, r6, 2
+ adds r1, r6
+ lsls r1, 3
+ adds r2, r1, r0
+ movs r1, 0x22
+ ldrsh r0, [r2, r1]
+ ldrb r4, [r4, 0x19]
+ cmp r0, r4
+ blt _081169BC
+ movs r1, 0x14
+ ldrsh r0, [r2, r1]
+ cmp r0, 0x6
+ bne _08116970
+ movs r0, 0
+ movs r1, 0xE
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuDrawTextWindow
+ ldr r0, _08116968 @ =gUnknown_081C41F1
+ movs r1, 0x1
+ movs r2, 0xF
+ bl MenuPrint
+ ldr r1, _0811696C @ =dp01t_12_3_battle_menu
+ b _08116992
+ .align 2, 0
+_08116954: .4byte gTasks
+_08116958: .4byte 0x02019000
+_0811695C: .4byte gSprites
+_08116960: .4byte 0xfffffc00
+_08116964: .4byte 0x000003ff
+_08116968: .4byte gUnknown_081C41F1
+_0811696C: .4byte dp01t_12_3_battle_menu
+_08116970:
+ movs r0, 0x22
+ ldrsh r1, [r2, r0]
+ ldr r0, _081169A0 @ =0x0000270f
+ cmp r1, r0
+ bne _081169B0
+ movs r0, 0
+ movs r1, 0xE
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuDrawTextWindow
+ ldr r0, _081169A4 @ =gUnknown_081C4231
+ movs r1, 0x1
+ movs r2, 0xF
+ bl MenuPrint
+ ldr r1, _081169A8 @ =sub_8115734
+_08116992:
+ ldr r2, _081169AC @ =0x0000ffff
+ adds r0, r6, 0
+ movs r3, 0x3
+ bl sub_8116C34
+ b _081169DE
+ .align 2, 0
+_081169A0: .4byte 0x0000270f
+_081169A4: .4byte gUnknown_081C4231
+_081169A8: .4byte sub_8115734
+_081169AC: .4byte 0x0000ffff
+_081169B0:
+ ldr r0, _081169B8 @ =sub_8115734
+ str r0, [r2]
+ b _081169DE
+ .align 2, 0
+_081169B8: .4byte sub_8115734
+_081169BC:
+ movs r0, 0
+ movs r1, 0xE
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuDrawTextWindow
+ ldr r0, _081169EC @ =gUnknown_081C41D2
+ movs r1, 0x1
+ movs r2, 0xF
+ bl MenuPrint
+ ldr r1, _081169F0 @ =sub_81157AC
+ adds r0, r6, 0
+ movs r2, 0x3C
+ movs r3, 0x3
+ bl sub_8116C34
+_081169DE:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081169EC: .4byte gUnknown_081C41D2
+_081169F0: .4byte sub_81157AC
+ thumb_func_end sub_8116880
+
+ thumb_func_start dp01t_12_3_battle_menu
+dp01t_12_3_battle_menu: @ 81169F4
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r4, 0
+ ldr r1, _08116A84 @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ strh r4, [r0, 0x14]
+ adds r0, r5, 0
+ bl sub_8116CAC
+ bl sub_8116CF8
+ bl sub_81185E8
+ movs r0, 0
+ bl sub_8117158
+ movs r0, 0x6
+ bl sub_81182F8
+ ldr r7, _08116A88 @ =gSprites
+ ldr r3, _08116A8C @ =0x0201903c
+ movs r6, 0x5
+ negs r6, r6
+_08116A2A:
+ adds r0, r4, 0x7
+ adds r0, r3
+ ldrb r0, [r0]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r7
+ adds r1, 0x3E
+ ldrb r2, [r1]
+ adds r0, r6, 0
+ ands r0, r2
+ strb r0, [r1]
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0xB
+ bls _08116A2A
+ ldr r1, _08116A84 @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r2, r0, r1
+ movs r0, 0x22
+ ldrsh r1, [r2, r0]
+ ldr r0, _08116A90 @ =0x0000270f
+ cmp r1, r0
+ bne _08116AA0
+ movs r0, 0
+ movs r1, 0xE
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuDrawTextWindow
+ ldr r0, _08116A94 @ =gUnknown_081C4231
+ movs r1, 0x1
+ movs r2, 0xF
+ bl MenuPrint
+ ldr r1, _08116A98 @ =sub_8115734
+ ldr r2, _08116A9C @ =0x0000ffff
+ adds r0, r5, 0
+ movs r3, 0x3
+ bl sub_8116C34
+ b _08116AA4
+ .align 2, 0
+_08116A84: .4byte gTasks
+_08116A88: .4byte gSprites
+_08116A8C: .4byte 0x0201903c
+_08116A90: .4byte 0x0000270f
+_08116A94: .4byte gUnknown_081C4231
+_08116A98: .4byte sub_8115734
+_08116A9C: .4byte 0x0000ffff
+_08116AA0:
+ ldr r0, _08116AAC @ =sub_8115734
+ str r0, [r2]
+_08116AA4:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08116AAC: .4byte sub_8115734
+ thumb_func_end dp01t_12_3_battle_menu
+
+ thumb_func_start sub_8116AB0
+sub_8116AB0: @ 8116AB0
+ push {r4,r5,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r4, _08116AF0 @ =0x020190b8
+ ldr r1, _08116AF4 @ =0x0000ffff
+ adds r0, r4, 0
+ bl sub_8124D3C
+ adds r0, r4, 0
+ bl sub_8124918
+ ldr r1, _08116AF8 @ =gSaveBlock1
+ ldr r2, _08116AFC @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r2
+ ldrh r0, [r0, 0x22]
+ ldr r2, _08116B00 @ =0x00000494
+ adds r1, r2
+ strh r0, [r1]
+ subs r4, 0xB8
+ lsls r0, 16
+ lsrs r0, 16
+ ldrb r4, [r4, 0x19]
+ cmp r0, r4
+ bcs _08116B08
+ ldr r1, _08116B04 @ =gUnknown_0202E8CC
+ movs r0, 0x1
+ b _08116B0C
+ .align 2, 0
+_08116AF0: .4byte 0x020190b8
+_08116AF4: .4byte 0x0000ffff
+_08116AF8: .4byte gSaveBlock1
+_08116AFC: .4byte gTasks
+_08116B00: .4byte 0x00000494
+_08116B04: .4byte gUnknown_0202E8CC
+_08116B08:
+ ldr r1, _08116B34 @ =gUnknown_0202E8CC
+ movs r0, 0
+_08116B0C:
+ strh r0, [r1]
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0xFF
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginHardwarePaletteFade
+ ldr r1, _08116B38 @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _08116B3C @ =sub_8116B40
+ str r1, [r0]
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08116B34: .4byte gUnknown_0202E8CC
+_08116B38: .4byte gTasks
+_08116B3C: .4byte sub_8116B40
+ thumb_func_end sub_8116AB0
+
+ thumb_func_start sub_8116B40
+sub_8116B40: @ 8116B40
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ bl UpdatePaletteFade
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ bne _08116B9E
+ movs r0, 0
+ bl SetVBlankCallback
+ ldr r0, _08116BA4 @ =0x02019000
+ movs r2, 0xBE
+ lsls r2, 1
+ movs r1, 0
+ bl memset
+ ldr r1, _08116BA8 @ =gSpriteCoordOffsetX
+ ldr r0, _08116BAC @ =gSpriteCoordOffsetY
+ strh r4, [r0]
+ strh r4, [r1]
+ bl sub_80F9368
+ bl FreeAllSpritePalettes
+ bl ResetPaletteFade
+ bl ResetSpriteData
+ bl sub_80F9020
+ ldr r0, _08116BB0 @ =REG_BLDCNT
+ strh r4, [r0]
+ adds r0, 0x2
+ strh r4, [r0]
+ adds r0, 0x2
+ strh r4, [r0]
+ ldr r1, _08116BB4 @ =gUnknown_0300485C
+ ldr r0, _08116BB8 @ =sub_8080990
+ str r0, [r1]
+ ldr r0, _08116BBC @ =c2_exit_to_overworld_2_switch
+ bl SetMainCallback2
+ adds r0, r5, 0
+ bl DestroyTask
+_08116B9E:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08116BA4: .4byte 0x02019000
+_08116BA8: .4byte gSpriteCoordOffsetX
+_08116BAC: .4byte gSpriteCoordOffsetY
+_08116BB0: .4byte REG_BLDCNT
+_08116BB4: .4byte gUnknown_0300485C
+_08116BB8: .4byte sub_8080990
+_08116BBC: .4byte c2_exit_to_overworld_2_switch
+ thumb_func_end sub_8116B40
+
+ thumb_func_start sub_8116BC0
+sub_8116BC0: @ 8116BC0
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldr r0, _08116C24 @ =0x02019000
+ adds r7, r0, 0
+ adds r7, 0xA8
+ ldrh r1, [r7]
+ adds r6, r0, 0
+ cmp r1, 0
+ beq _08116BE4
+ ldr r0, _08116C28 @ =gMain
+ adds r2, r6, 0
+ adds r2, 0xAA
+ ldrh r1, [r0, 0x2E]
+ ldrh r0, [r2]
+ ands r0, r1
+ cmp r0, 0
+ beq _08116C0E
+_08116BE4:
+ ldr r1, _08116C2C @ =gTasks
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r0, 3
+ adds r0, r1
+ adds r5, r6, 0
+ adds r5, 0xAC
+ ldr r1, [r5]
+ str r1, [r0]
+ adds r4, r6, 0
+ adds r4, 0xAA
+ ldrh r0, [r4]
+ cmp r0, 0
+ beq _08116C06
+ movs r0, 0x5
+ bl PlaySE
+_08116C06:
+ movs r0, 0
+ str r0, [r5]
+ strh r0, [r4]
+ strh r0, [r7]
+_08116C0E:
+ adds r2, r6, 0
+ adds r2, 0xA8
+ ldrh r1, [r2]
+ ldr r0, _08116C30 @ =0x0000ffff
+ cmp r1, r0
+ beq _08116C1E
+ subs r0, r1, 0x1
+ strh r0, [r2]
+_08116C1E:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08116C24: .4byte 0x02019000
+_08116C28: .4byte gMain
+_08116C2C: .4byte gTasks
+_08116C30: .4byte 0x0000ffff
+ thumb_func_end sub_8116BC0
+
+ thumb_func_start sub_8116C34
+sub_8116C34: @ 8116C34
+ push {r4-r7,lr}
+ adds r5, r1, 0
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r2, 16
+ lsrs r4, r2, 16
+ lsls r3, 16
+ lsrs r3, 16
+ ldr r0, _08116C84 @ =0x02019000
+ mov r12, r0
+ mov r2, r12
+ adds r2, 0xB4
+ ldr r1, _08116C88 @ =gTasks
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r0, r1
+ ldr r0, [r0]
+ str r0, [r2]
+ mov r2, r12
+ adds r7, r1, 0
+ cmp r5, 0
+ bne _08116C64
+ adds r5, r0, 0
+_08116C64:
+ adds r0, r2, 0
+ adds r0, 0xAC
+ str r5, [r0]
+ subs r0, 0x4
+ strh r4, [r0]
+ ldr r0, _08116C8C @ =0x0000ffff
+ cmp r4, r0
+ bne _08116C90
+ cmp r3, 0
+ bne _08116C90
+ adds r1, r2, 0
+ adds r1, 0xAA
+ ldrh r0, [r1]
+ orrs r4, r0
+ strh r4, [r1]
+ b _08116C96
+ .align 2, 0
+_08116C84: .4byte 0x02019000
+_08116C88: .4byte gTasks
+_08116C8C: .4byte 0x0000ffff
+_08116C90:
+ adds r0, r2, 0
+ adds r0, 0xAA
+ strh r3, [r0]
+_08116C96:
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r0, r7
+ ldr r1, _08116CA8 @ =sub_8116BC0
+ str r1, [r0]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08116CA8: .4byte sub_8116BC0
+ thumb_func_end sub_8116C34
+
+ thumb_func_start sub_8116CAC
+sub_8116CAC: @ 8116CAC
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r2, 0
+ ldr r0, _08116CF0 @ =0x02019000
+ strb r2, [r0]
+ movs r1, 0
+ strb r1, [r0, 0x3]
+ adds r3, r0, 0
+ ldr r6, _08116CF4 @ =gTasks
+ adds r4, r3, 0
+ adds r4, 0x1B
+_08116CC4:
+ adds r0, r2, r4
+ strb r1, [r0]
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x5
+ bls _08116CC4
+ ldrb r1, [r3, 0x1A]
+ movs r0, 0x10
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r3, 0x1A]
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r6
+ movs r1, 0
+ strh r1, [r0, 0xA]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08116CF0: .4byte 0x02019000
+_08116CF4: .4byte gTasks
+ thumb_func_end sub_8116CAC
+
+ thumb_func_start sub_8116CF8
+sub_8116CF8: @ 8116CF8
+ push {lr}
+ ldr r1, _08116D48 @ =0x02019000
+ movs r0, 0
+ str r0, [r1, 0x8]
+ movs r2, 0
+ adds r1, 0xC
+ movs r3, 0
+_08116D06:
+ adds r0, r2, r1
+ strb r3, [r0]
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x5
+ bls _08116D06
+ movs r2, 0
+ ldr r3, _08116D4C @ =0x02019012
+ movs r1, 0
+_08116D1A:
+ adds r0, r2, r3
+ strb r1, [r0]
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x3
+ bls _08116D1A
+ movs r2, 0
+ ldr r3, _08116D50 @ =0x02019016
+ movs r1, 0
+_08116D2E:
+ adds r0, r2, r3
+ strb r1, [r0]
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x2
+ bls _08116D2E
+ movs r0, 0x1
+ movs r1, 0xFF
+ bl sub_8117C60
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08116D48: .4byte 0x02019000
+_08116D4C: .4byte 0x02019012
+_08116D50: .4byte 0x02019016
+ thumb_func_end sub_8116CF8
+
+ thumb_func_start sub_8116D54
+sub_8116D54: @ 8116D54
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x1C
+ lsls r0, 24
+ lsrs r3, r0, 24
+ lsls r1, 24
+ lsrs r5, r1, 24
+ mov r1, sp
+ ldr r0, _08116D88 @ =gUnknown_083F8ED8
+ ldm r0!, {r2,r4,r6}
+ stm r1!, {r2,r4,r6}
+ ldr r0, [r0]
+ str r0, [r1]
+ add r2, sp, 0x10
+ adds r1, r2, 0
+ ldr r0, _08116D8C @ =gUnknown_083F8EE8
+ ldm r0!, {r4,r6,r7}
+ stm r1!, {r4,r6,r7}
+ mov r9, r2
+ cmp r5, 0xB
+ bls _08116D90
+ movs r0, 0
+ b _08116E38
+ .align 2, 0
+_08116D88: .4byte gUnknown_083F8ED8
+_08116D8C: .4byte gUnknown_083F8EE8
+_08116D90:
+ ldr r6, _08116E48 @ =0x02019000
+ ldr r1, _08116E4C @ =gTasks
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r0, 3
+ adds r0, r1
+ movs r7, 0x14
+ ldrsh r2, [r0, r7]
+ adds r2, r6, r2
+ ldr r4, _08116E50 @ =gUnknown_083F8D90
+ lsls r5, 3
+ adds r3, r5, r4
+ ldrb r1, [r3, 0x2]
+ strb r1, [r2, 0xB]
+ ldrb r1, [r3, 0x2]
+ strh r1, [r0, 0x20]
+ adds r0, r4, 0x4
+ adds r0, r5, r0
+ ldr r1, [r6, 0x8]
+ ldr r0, [r0]
+ orrs r1, r0
+ str r1, [r6, 0x8]
+ movs r3, 0
+ mov r8, r4
+ mov r12, r5
+ adds r5, r0, 0
+ adds r4, r6, 0
+ adds r4, 0x12
+_08116DC8:
+ lsls r0, r3, 2
+ mov r1, sp
+ adds r2, r1, r0
+ ldr r0, [r2]
+ ands r0, r5
+ cmp r0, 0
+ beq _08116DDE
+ adds r1, r3, r4
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+_08116DDE:
+ adds r0, r3, r4
+ ldrb r0, [r0]
+ cmp r0, 0x2
+ bls _08116DEE
+ ldr r0, [r6, 0x8]
+ ldr r1, [r2]
+ orrs r0, r1
+ str r0, [r6, 0x8]
+_08116DEE:
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x3
+ bls _08116DC8
+ movs r2, 0
+ ldr r0, _08116E54 @ =gUnknown_083F8D94
+ add r0, r12
+ ldr r7, [r0]
+ ldr r4, _08116E58 @ =0x02019016
+ mov r5, r9
+_08116E04:
+ lsls r0, r2, 2
+ adds r3, r5, r0
+ ldr r0, [r3]
+ ands r0, r7
+ cmp r0, 0
+ beq _08116E18
+ adds r1, r2, r4
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+_08116E18:
+ adds r0, r2, r4
+ ldrb r0, [r0]
+ cmp r0, 0x3
+ bls _08116E28
+ ldr r0, [r6, 0x8]
+ ldr r1, [r3]
+ orrs r0, r1
+ str r0, [r6, 0x8]
+_08116E28:
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x2
+ bls _08116E04
+ mov r0, r12
+ add r0, r8
+ ldrb r0, [r0, 0x2]
+_08116E38:
+ add sp, 0x1C
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08116E48: .4byte 0x02019000
+_08116E4C: .4byte gTasks
+_08116E50: .4byte gUnknown_083F8D90
+_08116E54: .4byte gUnknown_083F8D94
+_08116E58: .4byte 0x02019016
+ thumb_func_end sub_8116D54
+
+ thumb_func_start sub_8116E5C
+sub_8116E5C: @ 8116E5C
+ push {lr}
+ lsls r0, 24
+ lsls r1, 24
+ lsrs r2, r1, 24
+ lsrs r3, r0, 24
+ movs r1, 0xFF
+ lsls r1, 24
+ adds r0, r1
+ lsrs r0, 24
+ cmp r0, 0x12
+ bhi _08116EF0
+ cmp r2, 0xF
+ bhi _08116EEC
+ lsls r0, r2, 2
+ ldr r1, _08116E80 @ =_08116E84
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08116E80: .4byte _08116E84
+ .align 2, 0
+_08116E84:
+ .4byte _08116EC4
+ .4byte _08116EC8
+ .4byte _08116EC8
+ .4byte _08116EC8
+ .4byte _08116EC8
+ .4byte _08116EDC
+ .4byte _08116EEC
+ .4byte _08116EEC
+ .4byte _08116EEC
+ .4byte _08116EEC
+ .4byte _08116EDC
+ .4byte _08116EEC
+ .4byte _08116EEC
+ .4byte _08116EEC
+ .4byte _08116EEC
+ .4byte _08116EDC
+_08116EC4:
+ movs r0, 0x3
+ b _08116EF2
+_08116EC8:
+ adds r0, r2, 0x5
+ cmp r3, r0
+ beq _08116EE8
+ adds r0, 0x5
+ cmp r3, r0
+ beq _08116EE8
+ adds r0, 0x5
+ cmp r3, r0
+ bne _08116EF0
+ b _08116EE8
+_08116EDC:
+ adds r0, r2, 0x1
+ cmp r3, r0
+ blt _08116EF0
+ adds r0, r2, 0x4
+ cmp r3, r0
+ bgt _08116EF0
+_08116EE8:
+ movs r0, 0x1
+ b _08116EF2
+_08116EEC:
+ cmp r3, r2
+ beq _08116EE8
+_08116EF0:
+ movs r0, 0
+_08116EF2:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8116E5C
+
+ thumb_func_start sub_8116EF8
+sub_8116EF8: @ 8116EF8
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x20
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r0, 0
+ str r0, [sp, 0x18]
+ cmp r6, 0xA
+ beq _08116F1E
+ cmp r6, 0xA
+ bgt _08116F1A
+ cmp r6, 0x5
+ beq _08116F1E
+ b _08116F7C
+_08116F1A:
+ cmp r6, 0xF
+ bne _08116F7C
+_08116F1E:
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r0, r6, 0x5
+ ldr r7, _08116F70 @ =0x020190b8
+ cmp r4, r0
+ bge _08116F5E
+ adds r1, r7, 0
+ subs r1, 0xB8
+ ldr r3, _08116F74 @ =gUnknown_083F8C00
+ ldr r5, [r1, 0x8]
+ adds r6, r3, 0
+ adds r6, 0x8
+ adds r2, r0, 0
+_08116F3A:
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r1, r0, 2
+ adds r0, r1, r6
+ ldr r0, [r0]
+ ands r0, r5
+ cmp r0, 0
+ bne _08116F54
+ adds r0, r1, r3
+ ldrh r0, [r0, 0x10]
+ ldr r1, [sp, 0x18]
+ orrs r1, r0
+ str r1, [sp, 0x18]
+_08116F54:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, r2
+ blt _08116F3A
+_08116F5E:
+ ldr r0, _08116F78 @ =0x0000dfff
+ ldr r2, [sp, 0x18]
+ ands r2, r0
+ str r2, [sp, 0x18]
+ adds r0, r7, 0
+ adds r1, r2, 0
+ bl sub_8124CE8
+ b _0811713C
+ .align 2, 0
+_08116F70: .4byte 0x020190b8
+_08116F74: .4byte gUnknown_083F8C00
+_08116F78: .4byte 0x0000dfff
+_08116F7C:
+ mov r0, sp
+ ldr r1, _08116FC8 @ =gUnknown_083F8E9C
+ ldm r1!, {r2-r4}
+ stm r0!, {r2-r4}
+ ldm r1!, {r2-r4}
+ stm r0!, {r2-r4}
+ subs r0, r6, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ movs r3, 0x1
+ mov r10, r3
+ cmp r0, 0x3
+ bhi _08116F9A
+ movs r4, 0x3
+ mov r10, r4
+_08116F9A:
+ adds r0, r6, 0
+ movs r1, 0x5
+ bl __udivsi3
+ lsls r0, 24
+ lsrs r0, 8
+ ldr r1, _08116FCC @ =0xffff0000
+ adds r0, r1
+ lsrs r7, r0, 16
+ adds r0, r6, 0
+ movs r1, 0x5
+ bl __umodsi3
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x2
+ beq _08116FF8
+ cmp r0, 0x2
+ bgt _08116FD4
+ cmp r0, 0x1
+ beq _08116FE4
+ ldr r4, _08116FD0 @ =0x02019000
+ b _0811703A
+ .align 2, 0
+_08116FC8: .4byte gUnknown_083F8E9C
+_08116FCC: .4byte 0xffff0000
+_08116FD0: .4byte 0x02019000
+_08116FD4:
+ cmp r0, 0x3
+ beq _0811700C
+ cmp r0, 0x4
+ beq _08117020
+ ldr r4, _08116FE0 @ =0x02019000
+ b _0811703A
+ .align 2, 0
+_08116FE0: .4byte 0x02019000
+_08116FE4:
+ ldr r3, _08116FF0 @ =gSprites
+ ldr r2, _08116FF4 @ =0x02019000
+ adds r0, r2, 0
+ adds r0, 0x43
+ b _08117028
+ .align 2, 0
+_08116FF0: .4byte gSprites
+_08116FF4: .4byte 0x02019000
+_08116FF8:
+ ldr r3, _08117004 @ =gSprites
+ ldr r2, _08117008 @ =0x02019000
+ adds r0, r2, 0
+ adds r0, 0x44
+ b _08117028
+ .align 2, 0
+_08117004: .4byte gSprites
+_08117008: .4byte 0x02019000
+_0811700C:
+ ldr r3, _08117018 @ =gSprites
+ ldr r2, _0811701C @ =0x02019000
+ adds r0, r2, 0
+ adds r0, 0x45
+ b _08117028
+ .align 2, 0
+_08117018: .4byte gSprites
+_0811701C: .4byte 0x02019000
+_08117020:
+ ldr r3, _08117088 @ =gSprites
+ ldr r2, _0811708C @ =0x02019000
+ adds r0, r2, 0
+ adds r0, 0x46
+_08117028:
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ ldrb r0, [r0, 0x5]
+ lsrs r0, 4
+ lsls r7, r0, 4
+ adds r4, r2, 0
+_0811703A:
+ mov r2, r10
+ cmp r2, 0x1
+ bne _08117094
+ ldr r1, _08117090 @ =gUnknown_083F8C00
+ lsls r2, r6, 2
+ adds r0, r2, r6
+ lsls r0, 2
+ adds r1, 0x8
+ adds r0, r1
+ ldr r1, [r4, 0x8]
+ ldr r0, [r0]
+ ands r1, r0
+ str r2, [sp, 0x1C]
+ cmp r1, 0
+ bne _0811713C
+ adds r0, r6, 0
+ movs r1, 0x5
+ bl __udivsi3
+ lsls r0, 24
+ lsrs r0, 24
+ subs r1, r0, 0x1
+ lsls r1, 3
+ mov r3, sp
+ adds r2, r3, r1
+ ldrh r1, [r2, 0x2]
+ adds r1, r7, r1
+ strh r1, [r2, 0x2]
+ adds r1, r4, 0
+ adds r1, 0xB8
+ lsls r0, 3
+ subs r0, 0x8
+ adds r2, r3, r0
+ adds r0, r1, 0
+ movs r1, 0xD
+ bl sub_812492C
+ b _08117122
+ .align 2, 0
+_08117088: .4byte gSprites
+_0811708C: .4byte 0x02019000
+_08117090: .4byte gUnknown_083F8C00
+_08117094:
+ movs r4, 0
+ lsls r0, r6, 2
+ str r0, [sp, 0x1C]
+ ldr r1, _0811714C @ =0x02019000
+ mov r8, r1
+ ldr r2, _08117150 @ =gUnknown_083F8C00
+ mov r9, r2
+_081170A2:
+ lsls r0, r4, 2
+ adds r0, r4
+ adds r0, r6, r0
+ adds r0, 0x5
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r5, r0, 2
+ mov r0, r9
+ adds r0, 0x8
+ adds r0, r5, r0
+ mov r3, r8
+ ldr r1, [r3, 0x8]
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ bne _0811710E
+ adds r0, r2, 0
+ movs r1, 0x5
+ bl __udivsi3
+ lsls r0, 24
+ lsrs r0, 24
+ subs r1, r0, 0x1
+ lsls r1, 3
+ mov r3, sp
+ adds r2, r3, r1
+ ldrh r1, [r2, 0x2]
+ adds r1, r7, r1
+ strh r1, [r2, 0x2]
+ adds r1, r4, 0
+ adds r1, 0xD
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r0, 3
+ subs r0, 0x8
+ adds r2, r3, r0
+ mov r0, r8
+ adds r0, 0xB8
+ bl sub_812492C
+ mov r0, r10
+ cmp r0, 0x3
+ bne _08117104
+ mov r1, r9
+ adds r0, r5, r1
+ ldrh r0, [r0, 0x10]
+ str r0, [sp, 0x18]
+_08117104:
+ mov r0, r10
+ subs r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r10, r0
+_0811710E:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x2
+ bls _081170A2
+ mov r2, r10
+ cmp r2, 0x2
+ beq _08117122
+ movs r3, 0
+ str r3, [sp, 0x18]
+_08117122:
+ ldr r0, _08117154 @ =0x020190b8
+ ldr r2, _08117150 @ =gUnknown_083F8C00
+ ldr r4, [sp, 0x1C]
+ adds r1, r4, r6
+ lsls r1, 2
+ adds r1, r2
+ ldrh r1, [r1, 0x10]
+ ldr r2, [sp, 0x18]
+ orrs r2, r1
+ str r2, [sp, 0x18]
+ adds r1, r2, 0
+ bl sub_8124CE8
+_0811713C:
+ 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
+_0811714C: .4byte 0x02019000
+_08117150: .4byte gUnknown_083F8C00
+_08117154: .4byte 0x020190b8
+ thumb_func_end sub_8116EF8
+
+ thumb_func_start sub_8117158
+sub_8117158: @ 8117158
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x24
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r4, _0811719C @ =0x02019000
+ movs r0, 0x1
+ strh r0, [r4, 0x2A]
+ movs r0, 0
+ movs r1, 0
+ bl sub_8117AA8
+ ldr r0, _081171A0 @ =gBG1TilemapBuffer
+ ldr r1, _081171A4 @ =0xfffff800
+ adds r4, r1
+ movs r1, 0x10
+ str r1, [sp]
+ movs r1, 0xD
+ str r1, [sp, 0x4]
+ adds r1, r4, 0
+ movs r2, 0xE
+ movs r3, 0x7
+ bl sub_8124E2C
+ cmp r5, 0xF
+ bhi _08117250
+ lsls r0, r5, 2
+ ldr r1, _081171A8 @ =_081171AC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0811719C: .4byte 0x02019000
+_081171A0: .4byte gBG1TilemapBuffer
+_081171A4: .4byte 0xfffff800
+_081171A8: .4byte _081171AC
+ .align 2, 0
+_081171AC:
+ .4byte _08117360
+ .4byte _081171EC
+ .4byte _081171EC
+ .4byte _081171EC
+ .4byte _081171EC
+ .4byte _08117220
+ .4byte _08117250
+ .4byte _08117250
+ .4byte _08117250
+ .4byte _08117250
+ .4byte _08117220
+ .4byte _08117250
+ .4byte _08117250
+ .4byte _08117250
+ .4byte _08117250
+ .4byte _08117220
+_081171EC:
+ movs r0, 0x4
+ str r0, [sp, 0x18]
+ add r1, sp, 0x8
+ movs r0, 0
+ strb r0, [r1]
+ adds r0, r1, 0
+ ldrb r0, [r0]
+ cmp r0, 0x3
+ bhi _08117258
+ add r4, sp, 0x10
+ adds r3, r1, 0
+_08117202:
+ ldrb r2, [r3]
+ adds r2, r4
+ ldrb r1, [r3]
+ lsls r0, r1, 2
+ adds r0, r1
+ adds r0, r5, r0
+ strb r0, [r2]
+ ldrb r0, [r3]
+ adds r0, 0x1
+ strb r0, [r3]
+ ldrb r0, [r3]
+ ldr r1, [sp, 0x18]
+ cmp r0, r1
+ bcc _08117202
+ b _08117258
+_08117220:
+ movs r0, 0x5
+ str r0, [sp, 0x18]
+ add r1, sp, 0x8
+ movs r0, 0
+ strb r0, [r1]
+ adds r0, r1, 0
+ ldrb r0, [r0]
+ cmp r0, 0x4
+ bhi _08117258
+ add r3, sp, 0x10
+ adds r2, r1, 0
+_08117236:
+ ldrb r1, [r2]
+ adds r1, r3
+ ldrb r0, [r2]
+ adds r0, r5, r0
+ strb r0, [r1]
+ ldrb r0, [r2]
+ adds r0, 0x1
+ strb r0, [r2]
+ ldrb r0, [r2]
+ ldr r1, [sp, 0x18]
+ cmp r0, r1
+ bcc _08117236
+ b _08117258
+_08117250:
+ movs r0, 0x1
+ str r0, [sp, 0x18]
+ add r0, sp, 0x10
+ strb r5, [r0]
+_08117258:
+ add r1, sp, 0x8
+ movs r0, 0
+ strb r0, [r1]
+ adds r0, r1, 0
+ ldrb r0, [r0]
+ ldr r1, [sp, 0x18]
+ cmp r0, r1
+ bcs _08117360
+ mov r0, sp
+ adds r0, 0xE
+ str r0, [sp, 0x1C]
+ add r1, sp, 0x10
+ mov r9, r1
+ add r0, sp, 0x8
+ mov r12, r0
+ mov r1, sp
+ adds r1, 0xA
+ str r1, [sp, 0x20]
+_0811727C:
+ mov r1, r12
+ ldrb r0, [r1]
+ add r0, r9
+ ldrb r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _08117370 @ =gUnknown_083F8C00
+ adds r0, r1
+ ldrb r0, [r0, 0x6]
+ ldr r1, [sp, 0x1C]
+ strb r0, [r1]
+ mov r1, r12
+ ldrb r0, [r1]
+ add r0, r9
+ ldrb r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _08117370 @ =gUnknown_083F8C00
+ adds r0, r1
+ ldrb r0, [r0, 0x3]
+ ldr r1, [sp, 0x20]
+ strh r0, [r1]
+ mov r4, sp
+ adds r4, 0x9
+ movs r0, 0
+ strb r0, [r4]
+ ldrb r0, [r4]
+ cmp r0, 0x2
+ bhi _08117350
+ add r5, sp, 0xC
+ ldr r7, [sp, 0x20]
+ ldr r0, _08117374 @ =gBG1TilemapBuffer
+ mov r8, r0
+ ldr r6, [sp, 0x1C]
+ ldr r1, _08117378 @ =0x020189a0
+ mov r10, r1
+_081172C8:
+ mov r1, r12
+ ldrb r0, [r1]
+ add r0, r9
+ ldrb r0, [r0]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 2
+ ldr r0, _08117370 @ =gUnknown_083F8C00
+ adds r1, r0
+ adds r3, r4, 0
+ ldrb r0, [r4]
+ ldrb r1, [r1, 0x4]
+ adds r0, r1
+ lsls r0, 5
+ strh r0, [r5]
+ ldrh r0, [r7]
+ ldrh r2, [r5]
+ adds r2, r0
+ lsls r2, 1
+ add r2, r8
+ ldrb r0, [r6]
+ ldrb r1, [r4]
+ adds r1, r0
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 1
+ add r0, r10
+ ldrh r0, [r0]
+ strh r0, [r2]
+ ldrh r0, [r7]
+ ldrh r2, [r5]
+ adds r2, r0
+ adds r2, 0x1
+ lsls r2, 1
+ add r2, r8
+ ldrb r0, [r6]
+ ldrb r1, [r4]
+ adds r1, r0
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 1
+ mov r1, r10
+ adds r1, 0x2
+ adds r0, r1
+ ldrh r0, [r0]
+ strh r0, [r2]
+ ldrh r0, [r7]
+ ldrh r2, [r5]
+ adds r2, r0
+ adds r2, 0x2
+ lsls r2, 1
+ add r2, r8
+ ldrb r0, [r6]
+ ldrb r1, [r4]
+ adds r1, r0
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 1
+ ldr r1, _0811737C @ =0x020189a4
+ adds r0, r1
+ ldrh r0, [r0]
+ strh r0, [r2]
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+ ldrb r0, [r3]
+ cmp r0, 0x2
+ bls _081172C8
+_08117350:
+ mov r1, r12
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ ldrb r0, [r1]
+ ldr r1, [sp, 0x18]
+ cmp r0, r1
+ bcc _0811727C
+_08117360:
+ 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
+_08117370: .4byte gUnknown_083F8C00
+_08117374: .4byte gBG1TilemapBuffer
+_08117378: .4byte 0x020189a0
+_0811737C: .4byte 0x020189a4
+ thumb_func_end sub_8117158
+
+ thumb_func_start sub_8117380
+sub_8117380: @ 8117380
+ push {r4,lr}
+ sub sp, 0x8
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r1, _081173B8 @ =gUnknown_083F8EF4
+ mov r0, sp
+ movs r2, 0x5
+ bl memcpy
+ cmp r4, 0x13
+ bls _08117398
+ movs r4, 0
+_08117398:
+ ldr r3, _081173BC @ =gUnknown_083F8C00
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r2, r0, 2
+ adds r0, r2, r3
+ ldrb r0, [r0, 0x1]
+ lsls r0, 28
+ lsrs r0, 28
+ cmp r0, 0x4
+ beq _081173EC
+ cmp r0, 0x4
+ bgt _081173C0
+ cmp r0, 0x3
+ beq _081173C6
+ b _08117428
+ .align 2, 0
+_081173B8: .4byte gUnknown_083F8EF4
+_081173BC: .4byte gUnknown_083F8C00
+_081173C0:
+ cmp r0, 0xC
+ beq _0811740C
+ b _08117428
+_081173C6:
+ adds r0, r4, 0
+ movs r1, 0x5
+ bl __udivsi3
+ subs r0, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _081173E8 @ =0x02019000
+ adds r0, 0x16
+ adds r1, r4, r0
+ ldrb r0, [r1]
+ cmp r0, 0x3
+ bhi _08117428
+ ldrb r0, [r1]
+ adds r0, 0x1
+ b _08117402
+ .align 2, 0
+_081173E8: .4byte 0x02019000
+_081173EC:
+ subs r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _08117408 @ =0x02019000
+ adds r0, 0x12
+ adds r1, r4, r0
+ ldrb r0, [r1]
+ cmp r0, 0x2
+ bhi _08117428
+ ldrb r0, [r1]
+ adds r0, 0x2
+_08117402:
+ add r0, sp
+ ldrb r0, [r0]
+ b _0811742A
+ .align 2, 0
+_08117408: .4byte 0x02019000
+_0811740C:
+ ldr r1, _08117424 @ =0x02019000
+ adds r0, r3, 0
+ adds r0, 0x8
+ adds r0, r2, r0
+ ldr r1, [r1, 0x8]
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ bne _08117428
+ mov r0, sp
+ ldrb r0, [r0, 0x4]
+ b _0811742A
+ .align 2, 0
+_08117424: .4byte 0x02019000
+_08117428:
+ movs r0, 0
+_0811742A:
+ add sp, 0x8
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8117380
+
+ thumb_func_start sub_8117434
+sub_8117434: @ 8117434
+ push {r4-r6,lr}
+ ldr r1, _081174AC @ =REG_BG2PA
+ ldr r4, _081174B0 @ =0x02019000
+ ldrh r0, [r4, 0x2C]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldrh r0, [r4, 0x2E]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldrh r0, [r4, 0x30]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldrh r0, [r4, 0x32]
+ strh r0, [r1]
+ movs r0, 0x2E
+ ldrsh r2, [r4, r0]
+ ldr r0, _081174B4 @ =gSpriteCoordOffsetY
+ movs r3, 0
+ ldrsh r1, [r0, r3]
+ adds r1, 0x50
+ adds r0, r2, 0
+ muls r0, r1
+ movs r2, 0xE8
+ lsls r2, 7
+ subs r2, r0
+ movs r6, 0x2C
+ ldrsh r5, [r4, r6]
+ ldr r0, _081174B8 @ =gSpriteCoordOffsetX
+ movs r6, 0
+ ldrsh r3, [r0, r6]
+ adds r3, 0x74
+ adds r0, r5, 0
+ muls r0, r3
+ subs r2, r0
+ movs r5, 0x32
+ ldrsh r0, [r4, r5]
+ muls r0, r1
+ movs r1, 0xA8
+ lsls r1, 7
+ subs r1, r0
+ movs r6, 0x30
+ ldrsh r0, [r4, r6]
+ muls r0, r3
+ subs r1, r0
+ ldr r0, _081174BC @ =REG_BG2X_L
+ strh r2, [r0]
+ adds r0, 0x2
+ ldr r3, _081174C0 @ =0x0fff0000
+ ands r2, r3
+ asrs r2, 16
+ strh r2, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x2
+ ands r1, r3
+ asrs r1, 16
+ strh r1, [r0]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081174AC: .4byte REG_BG2PA
+_081174B0: .4byte 0x02019000
+_081174B4: .4byte gSpriteCoordOffsetY
+_081174B8: .4byte gSpriteCoordOffsetX
+_081174BC: .4byte REG_BG2X_L
+_081174C0: .4byte 0x0fff0000
+ thumb_func_end sub_8117434
+
+ thumb_func_start sub_81174C4
+sub_81174C4: @ 81174C4
+ push {lr}
+ lsls r0, 16
+ asrs r0, 16
+ lsls r1, 16
+ asrs r1, 16
+ muls r0, r1
+ adds r1, r0, 0
+ cmp r0, 0
+ bge _081174D8
+ adds r1, 0xFF
+_081174D8:
+ lsls r0, r1, 8
+ asrs r0, 16
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81174C4
+
+ thumb_func_start sub_81174E0
+sub_81174E0: @ 81174E0
+ push {lr}
+ adds r1, r0, 0
+ movs r0, 0x80
+ lsls r0, 9
+ lsls r1, 16
+ asrs r1, 16
+ bl __divsi3
+ lsls r0, 16
+ asrs r0, 16
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81174E0
+
+ thumb_func_start sub_81174F8
+sub_81174F8: @ 81174F8
+ 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 r0, _08117520 @ =0x00002d9e
+ bl sub_814AAF8
+ ldr r1, _08117524 @ =gUnknown_083F8EB4
+ adds r0, r4, 0
+ bl sub_80F914C
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08117520: .4byte 0x00002d9e
+_08117524: .4byte gUnknown_083F8EB4
+ thumb_func_end sub_81174F8
+
+ thumb_func_start sub_8117528
+sub_8117528: @ 8117528
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _08117554 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0811754C
+ movs r0, 0
+ bl SetVBlankCallback
+ ldr r0, _08117558 @ =sub_8115384
+ bl SetMainCallback2
+ adds r0, r4, 0
+ bl DestroyTask
+_0811754C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08117554: .4byte gPaletteFade
+_08117558: .4byte sub_8115384
+ thumb_func_end sub_8117528
+
+ thumb_func_start sub_811755C
+sub_811755C: @ 811755C
+ push {r4,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x14
+ movs r1, 0x8
+ movs r2, 0x1A
+ movs r3, 0xD
+ bl MenuZeroFillWindowRect
+ bl MenuZeroFillScreen
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r2, _081175B4 @ =gPaletteFade
+ ldrb r1, [r2, 0x8]
+ lsls r1, 26
+ lsrs r1, 26
+ ldrb r3, [r2, 0x4]
+ movs r0, 0x40
+ negs r0, r0
+ ands r0, r3
+ orrs r0, r1
+ strb r0, [r2, 0x4]
+ bl UpdatePaletteFade
+ ldr r1, _081175B8 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _081175BC @ =sub_8117528
+ str r1, [r0]
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081175B4: .4byte gPaletteFade
+_081175B8: .4byte gTasks
+_081175BC: .4byte sub_8117528
+ thumb_func_end sub_811755C
+
+ thumb_func_start sub_81175C0
+sub_81175C0: @ 81175C0
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl MenuZeroFillScreen
+ bl ScriptContext2_Disable
+ adds r0, r4, 0
+ bl DestroyTask
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81175C0
+
+ thumb_func_start sub_81175DC
+sub_81175DC: @ 81175DC
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r4, r0, 0
+ ldr r1, _08117624 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldrh r1, [r0, 0x8]
+ adds r2, r1, 0x1
+ strh r2, [r0, 0x8]
+ ldr r0, _08117628 @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0
+ bne _08117608
+ lsls r0, r2, 16
+ asrs r0, 16
+ cmp r0, 0x3C
+ ble _0811761C
+_08117608:
+ ldr r1, _0811762C @ =gUnknown_0202E8CC
+ movs r0, 0x1
+ strh r0, [r1]
+ bl MenuZeroFillScreen
+ bl ScriptContext2_Disable
+ adds r0, r4, 0
+ bl DestroyTask
+_0811761C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08117624: .4byte gTasks
+_08117628: .4byte gMain
+_0811762C: .4byte gUnknown_0202E8CC
+ thumb_func_end sub_81175DC
+
+ thumb_func_start sub_8117630
+sub_8117630: @ 8117630
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r2, _0811768C @ =gUnknown_083F8DF0
+ ldr r0, _08117690 @ =gUnknown_0202E8CC
+ ldrh r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ lsrs r1, 7
+ lsls r1, 1
+ adds r0, r1
+ adds r0, r2
+ ldrb r1, [r0]
+ ldr r0, _08117694 @ =gStringVar1
+ movs r2, 0x2
+ movs r3, 0x1
+ bl ConvertIntToDecimalStringN
+ ldr r5, _08117698 @ =gStringVar4
+ ldr r1, _0811769C @ =gUnknown_081C40DF
+ adds r0, r5, 0
+ bl StringExpandPlaceholders
+ movs r0, 0
+ movs r1, 0xE
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuDrawTextWindow
+ adds r0, r5, 0
+ movs r1, 0x1
+ movs r2, 0xF
+ bl MenuPrint
+ ldr r1, _081176A0 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _081176A4 @ =sub_81174F8
+ str r1, [r0]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811768C: .4byte gUnknown_083F8DF0
+_08117690: .4byte gUnknown_0202E8CC
+_08117694: .4byte gStringVar1
+_08117698: .4byte gStringVar4
+_0811769C: .4byte gUnknown_081C40DF
+_081176A0: .4byte gTasks
+_081176A4: .4byte sub_81174F8
+ thumb_func_end sub_8117630
+
+ thumb_func_start Task_Roulette_0
+Task_Roulette_0: @ 81176A8
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r0, _08117758 @ =gStringVar1
+ mov r10, r0
+ ldr r1, _0811775C @ =gTasks
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r6, r0, r1
+ movs r0, 0x22
+ ldrsh r1, [r6, r0]
+ mov r0, r10
+ movs r2, 0x1
+ movs r3, 0x4
+ bl ConvertIntToDecimalStringN
+ ldr r5, _08117760 @ =gStringVar4
+ ldr r1, _08117764 @ =gOtherText_Coins
+ adds r0, r5, 0
+ bl StringExpandPlaceholders
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x9
+ movs r3, 0x3
+ bl MenuDrawTextWindow
+ adds r0, r5, 0
+ movs r1, 0x9
+ movs r2, 0x1
+ bl MenuPrint_RightAligned
+ ldr r2, _08117768 @ =gUnknown_083F8DF0
+ ldr r1, _0811776C @ =gUnknown_0202E8CC
+ mov r8, r1
+ ldrh r1, [r1]
+ movs r0, 0x1
+ mov r9, r0
+ ands r0, r1
+ lsrs r1, 7
+ lsls r1, 1
+ adds r0, r1
+ adds r0, r2
+ ldrb r4, [r0]
+ mov r0, r10
+ adds r1, r4, 0
+ movs r2, 0x2
+ movs r3, 0x1
+ bl ConvertIntToDecimalStringN
+ movs r1, 0x22
+ ldrsh r0, [r6, r1]
+ cmp r0, r4
+ blt _081177BC
+ mov r0, r8
+ ldrh r1, [r0]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _0811777C
+ mov r0, r9
+ ands r0, r1
+ cmp r0, 0
+ beq _0811777C
+ movs r0, 0
+ movs r1, 0xE
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuDrawTextWindow
+ ldr r0, _08117770 @ =gUnknown_081C4139
+ movs r1, 0x1
+ movs r2, 0xF
+ bl MenuPrint
+ ldr r1, _08117774 @ =sub_8117630
+ ldr r2, _08117778 @ =0x0000ffff
+ adds r0, r7, 0
+ movs r3, 0x3
+ bl sub_8116C34
+ b _081177E4
+ .align 2, 0
+_08117758: .4byte gStringVar1
+_0811775C: .4byte gTasks
+_08117760: .4byte gStringVar4
+_08117764: .4byte gOtherText_Coins
+_08117768: .4byte gUnknown_083F8DF0
+_0811776C: .4byte gUnknown_0202E8CC
+_08117770: .4byte gUnknown_081C4139
+_08117774: .4byte sub_8117630
+_08117778: .4byte 0x0000ffff
+_0811777C:
+ ldr r4, _081177AC @ =gStringVar4
+ ldr r1, _081177B0 @ =gUnknown_081C40DF
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ movs r0, 0
+ movs r1, 0xE
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuDrawTextWindow
+ adds r0, r4, 0
+ movs r1, 0x1
+ movs r2, 0xF
+ bl MenuPrint
+ ldr r1, _081177B4 @ =gTasks
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _081177B8 @ =sub_81174F8
+ str r1, [r0]
+ b _081177E4
+ .align 2, 0
+_081177AC: .4byte gStringVar4
+_081177B0: .4byte gUnknown_081C40DF
+_081177B4: .4byte gTasks
+_081177B8: .4byte sub_81174F8
+_081177BC:
+ ldr r1, _081177F4 @ =gUnknown_081C411C
+ adds r0, r5, 0
+ bl StringExpandPlaceholders
+ movs r0, 0
+ movs r1, 0xE
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuDrawTextWindow
+ adds r0, r5, 0
+ movs r1, 0x1
+ movs r2, 0xF
+ bl MenuPrint
+ ldr r0, _081177F8 @ =sub_81175DC
+ str r0, [r6]
+ movs r0, 0
+ strh r0, [r6, 0x22]
+ strh r0, [r6, 0x8]
+_081177E4:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081177F4: .4byte gUnknown_081C411C
+_081177F8: .4byte sub_81175DC
+ thumb_func_end Task_Roulette_0
+
+ thumb_func_start PlayRoulette
+PlayRoulette: @ 81177FC
+ push {lr}
+ bl ScriptContext2_Enable
+ ldr r0, _08117828 @ =sub_81176A8
+ movs r1, 0
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0811782C @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldr r0, _08117830 @ =gSaveBlock1
+ ldr r2, _08117834 @ =0x00000494
+ adds r0, r2
+ ldrh r0, [r0]
+ strh r0, [r1, 0x22]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08117828: .4byte Task_Roulette_0
+_0811782C: .4byte gTasks
+_08117830: .4byte gSaveBlock1
+_08117834: .4byte 0x00000494
+ thumb_func_end PlayRoulette
+
+ thumb_func_start sub_8117838
+sub_8117838: @ 8117838
+ push {r4,lr}
+ lsls r0, 24
+ cmp r0, 0
+ bne _08117884
+ bl FreeAllSpritePalettes
+ ldr r0, _08117870 @ =gUnknown_083F9E30
+ bl LoadSpritePalettes
+ ldr r0, _08117874 @ =gUnknown_083F92A8
+ ldr r4, _08117878 @ =0x02017000
+ adds r1, r4, 0
+ bl LZ77UnCompWram
+ ldr r0, _0811787C @ =gUnknown_083F90FC
+ movs r2, 0xE0
+ lsls r2, 4
+ adds r1, r4, r2
+ bl LZ77UnCompWram
+ ldr r0, _08117880 @ =gUnknown_083F9D3C
+ movs r1, 0x80
+ lsls r1, 5
+ adds r4, r1
+ adds r1, r4, 0
+ bl LZ77UnCompWram
+ b _08117888
+ .align 2, 0
+_08117870: .4byte gUnknown_083F9E30
+_08117874: .4byte gUnknown_083F92A8
+_08117878: .4byte 0x02017000
+_0811787C: .4byte gUnknown_083F90FC
+_08117880: .4byte gUnknown_083F9D3C
+_08117884:
+ bl FreeAllSpritePalettes
+_08117888:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8117838
+
+ thumb_func_start sub_8117890
+sub_8117890: @ 8117890
+ push {r4-r6,lr}
+ adds r4, r1, 0
+ adds r6, r2, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r1, [r0, 0x4]
+ ldrb r3, [r1]
+ movs r1, 0x74
+ movs r2, 0x50
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ adds r5, r0, 0
+ ldr r0, _081178F4 @ =gSprites
+ lsls r1, r5, 4
+ adds r1, r5
+ lsls r1, 2
+ adds r1, r0
+ ldrh r0, [r6]
+ strh r0, [r1, 0x2E]
+ strh r4, [r1, 0x30]
+ adds r3, r1, 0
+ adds r3, 0x3E
+ ldrb r0, [r3]
+ movs r2, 0x2
+ orrs r0, r2
+ strb r0, [r3]
+ adds r1, 0x2C
+ ldrb r0, [r1]
+ movs r2, 0x40
+ orrs r0, r2
+ movs r2, 0x80
+ orrs r0, r2
+ strb r0, [r1]
+ ldrh r2, [r6]
+ adds r0, r2, 0
+ adds r0, 0x1E
+ strh r0, [r6]
+ lsls r0, 16
+ ldr r1, _081178F8 @ =0x01670000
+ cmp r0, r1
+ bls _081178EC
+ ldr r1, _081178FC @ =0xfffffeb6
+ adds r0, r2, r1
+ strh r0, [r6]
+_081178EC:
+ adds r0, r5, 0
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_081178F4: .4byte gSprites
+_081178F8: .4byte 0x01670000
+_081178FC: .4byte 0xfffffeb6
+ thumb_func_end sub_8117890
+
+ thumb_func_start sub_8117900
+sub_8117900: @ 8117900
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x8
+ ldr r4, _08117A50 @ =gUnknown_083F9F54
+ ldr r0, [r4]
+ ldr r5, _08117A54 @ =0x02000000
+ adds r1, r5, 0
+ bl LZ77UnCompWram
+ str r5, [sp]
+ mov r6, sp
+ ldrh r1, [r4, 0x6]
+ lsls r1, 16
+ ldrh r0, [r4, 0x4]
+ orrs r0, r1
+ str r0, [sp, 0x4]
+ mov r0, sp
+ bl LoadSpriteSheet
+ ldr r4, _08117A58 @ =gUnknown_083F9F5C
+ ldr r0, [r4]
+ adds r1, r5, 0
+ bl LZ77UnCompWram
+ str r5, [sp]
+ ldrh r0, [r4, 0x4]
+ strh r0, [r6, 0x4]
+ ldrh r0, [r4, 0x6]
+ strh r0, [r6, 0x6]
+ mov r0, sp
+ bl LoadSpriteSheet
+ movs r7, 0
+ ldr r0, _08117A5C @ =0x0001903c
+ adds r0, r5
+ mov r9, r0
+ ldr r0, _08117A60 @ =gSprites
+ mov r8, r0
+_08117950:
+ lsls r0, r7, 1
+ adds r0, r7
+ lsls r0, 27
+ lsrs r4, r0, 24
+ movs r6, 0
+ lsls r5, r7, 2
+_0811795C:
+ lsls r1, r6, 1
+ adds r1, r6
+ lsls r1, 3
+ ldr r0, _08117A64 @ =gSpriteTemplate_83FA07C
+ adds r0, r1, r0
+ adds r1, 0x94
+ adds r2, r4, 0
+ adds r2, 0x5C
+ movs r3, 0x1E
+ bl CreateSprite
+ adds r1, r6, 0
+ adds r1, 0x1D
+ adds r1, r5, r1
+ add r1, r9
+ strb r0, [r1]
+ lsls r0, 24
+ lsrs r1, r0, 24
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ add r0, r8
+ adds r0, 0x2C
+ ldrb r1, [r0]
+ movs r2, 0x40
+ orrs r1, r2
+ strb r1, [r0]
+ adds r0, r4, 0
+ adds r0, 0x18
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x47
+ bls _081179A0
+ movs r4, 0
+_081179A0:
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, 0x3
+ bls _0811795C
+ adds r0, r7, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+ cmp r7, 0x2
+ bls _08117950
+ movs r7, 0
+ ldr r5, _08117A68 @ =0x0201903c
+ ldr r4, _08117A60 @ =gSprites
+_081179BA:
+ lsls r1, r7, 1
+ adds r1, r7
+ lsls r1, 3
+ ldr r0, _08117A6C @ =gSpriteTemplate_83F9FD4
+ adds r0, r1, r0
+ adds r1, 0x94
+ lsls r1, 16
+ asrs r1, 16
+ movs r2, 0x46
+ movs r3, 0x1E
+ bl CreateSprite
+ adds r1, r7, 0
+ adds r1, 0x29
+ adds r1, r5
+ strb r0, [r1]
+ lsls r0, 24
+ lsrs r1, r0, 24
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ adds r0, 0x2C
+ ldrb r1, [r0]
+ movs r2, 0x40
+ orrs r1, r2
+ strb r1, [r0]
+ adds r0, r7, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+ cmp r7, 0x3
+ bls _081179BA
+ movs r7, 0
+ ldr r5, _08117A68 @ =0x0201903c
+ ldr r4, _08117A60 @ =gSprites
+_08117A00:
+ lsls r2, r7, 1
+ adds r2, r7
+ lsls r2, 3
+ ldr r0, _08117A70 @ =gSpriteTemplate_83FA034
+ adds r0, r2, r0
+ adds r2, 0x5C
+ lsls r2, 16
+ asrs r2, 16
+ movs r1, 0x7E
+ movs r3, 0x1E
+ bl CreateSprite
+ adds r1, r7, 0
+ adds r1, 0x2D
+ adds r1, r5
+ strb r0, [r1]
+ lsls r0, 24
+ lsrs r1, r0, 24
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ adds r0, 0x2C
+ ldrb r1, [r0]
+ movs r2, 0x40
+ orrs r1, r2
+ strb r1, [r0]
+ adds r0, r7, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+ cmp r7, 0x2
+ bls _08117A00
+ add sp, 0x8
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08117A50: .4byte gUnknown_083F9F54
+_08117A54: .4byte 0x02000000
+_08117A58: .4byte gUnknown_083F9F5C
+_08117A5C: .4byte 0x0001903c
+_08117A60: .4byte gSprites
+_08117A64: .4byte gSpriteTemplate_83FA07C
+_08117A68: .4byte 0x0201903c
+_08117A6C: .4byte gSpriteTemplate_83F9FD4
+_08117A70: .4byte gSpriteTemplate_83FA034
+ thumb_func_end sub_8117900
+
+ thumb_func_start unref_sub_8117A74
+unref_sub_8117A74: @ 8117A74
+ push {r4,r5,lr}
+ movs r4, 0
+ ldr r5, _08117AA0 @ =0x0201903c
+_08117A7A:
+ adds r0, r4, 0
+ adds r0, 0x1D
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _08117AA4 @ =gSprites
+ adds r0, r1
+ bl DestroySprite
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0xB
+ bls _08117A7A
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08117AA0: .4byte 0x0201903c
+_08117AA4: .4byte gSprites
+ thumb_func_end unref_sub_8117A74
+
+ thumb_func_start sub_8117AA8
+sub_8117AA8: @ 8117AA8
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ mov r8, r1
+ cmp r0, 0
+ beq _08117AF8
+ cmp r0, 0x1
+ bne _08117BA8
+ movs r3, 0
+ ldr r5, _08117AF0 @ =gSprites
+ ldr r4, _08117AF4 @ =0x0201903c
+ movs r2, 0x4
+_08117ACA:
+ adds r0, r3, 0
+ adds r0, 0x1D
+ adds r0, r4
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ orrs r1, r2
+ strb r1, [r0]
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x12
+ bls _08117ACA
+ b _08117BA8
+ .align 2, 0
+_08117AF0: .4byte gSprites
+_08117AF4: .4byte 0x0201903c
+_08117AF8:
+ movs r3, 0
+ ldr r0, _08117B48 @ =gUnknown_083F8D90
+ mov r12, r0
+ ldr r7, _08117B4C @ =0x02019000
+ movs r1, 0x4
+ add r1, r12
+ mov r9, r1
+ ldr r5, _08117B50 @ =gSprites
+ adds r4, r7, 0
+ adds r4, 0x3C
+ movs r6, 0x5
+ negs r6, r6
+_08117B10:
+ lsls r2, r3, 3
+ mov r1, r9
+ adds r0, r2, r1
+ ldr r1, [r7, 0x8]
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ beq _08117B54
+ mov r1, r12
+ adds r0, r2, r1
+ ldrb r0, [r0, 0x2]
+ cmp r0, r8
+ beq _08117B54
+ adds r0, r3, 0
+ adds r0, 0x1D
+ adds r0, r4
+ 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]
+ b _08117B6E
+ .align 2, 0
+_08117B48: .4byte gUnknown_083F8D90
+_08117B4C: .4byte 0x02019000
+_08117B50: .4byte gSprites
+_08117B54:
+ adds r0, r3, 0
+ adds r0, 0x1D
+ adds r0, r4
+ ldrb r0, [r0]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r5
+ adds r1, 0x3E
+ ldrb r2, [r1]
+ adds r0, r6, 0
+ ands r0, r2
+ strb r0, [r1]
+_08117B6E:
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0xB
+ bls _08117B10
+ cmp r3, 0x12
+ bhi _08117BA8
+ ldr r6, _08117BB4 @ =gSprites
+ ldr r4, _08117BB8 @ =0x0201903c
+ movs r5, 0x5
+ negs r5, r5
+_08117B84:
+ adds r0, r3, 0
+ adds r0, 0x1D
+ adds r0, r4
+ ldrb r0, [r0]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r6
+ adds r1, 0x3E
+ ldrb r2, [r1]
+ adds r0, r5, 0
+ ands r0, r2
+ strb r0, [r1]
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x12
+ bls _08117B84
+_08117BA8:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08117BB4: .4byte gSprites
+_08117BB8: .4byte 0x0201903c
+ thumb_func_end sub_8117AA8
+
+ thumb_func_start sub_8117BBC
+sub_8117BBC: @ 8117BBC
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ movs r5, 0
+ ldr r0, _08117C50 @ =0x0201903c
+ mov r8, r0
+ ldr r4, _08117C54 @ =gSprites
+ movs r6, 0x4
+_08117BCC:
+ ldr r0, _08117C58 @ =gSpriteTemplate_83FA40C
+ movs r1, 0x74
+ movs r2, 0x14
+ movs r3, 0xA
+ bl CreateSprite
+ adds r3, r5, 0
+ adds r3, 0x31
+ add r3, r8
+ strb r0, [r3]
+ ldrb r1, [r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ orrs r1, r6
+ strb r1, [r0]
+ ldrb r1, [r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ movs r1, 0x1
+ strh r1, [r0, 0x2E]
+ 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, _08117C5C @ =sub_81184CC
+ str r1, [r0]
+ ldrb r1, [r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrb r1, [r0, 0x5]
+ movs r7, 0xD
+ negs r7, r7
+ adds r2, r7, 0
+ ands r1, r2
+ orrs r1, r6
+ strb r1, [r0, 0x5]
+ ldrb r1, [r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ movs r1, 0x8
+ bl StartSpriteAnim
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x5
+ bls _08117BCC
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08117C50: .4byte 0x0201903c
+_08117C54: .4byte gSprites
+_08117C58: .4byte gSpriteTemplate_83FA40C
+_08117C5C: .4byte sub_81184CC
+ thumb_func_end sub_8117BBC
+
+ thumb_func_start sub_8117C60
+sub_8117C60: @ 8117C60
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ lsls r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ mov r9, r1
+ movs r5, 0
+ cmp r0, 0
+ beq _08117CAC
+ ldr r4, _08117CA4 @ =gSprites
+ ldr r3, _08117CA8 @ =0x0201903c
+ movs r2, 0x4
+_08117C7E:
+ adds r0, r5, 0
+ adds r0, 0x31
+ adds r0, r3
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ orrs r1, r2
+ strb r1, [r0]
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x5
+ bls _08117C7E
+ b _08117D58
+ .align 2, 0
+_08117CA4: .4byte gSprites
+_08117CA8: .4byte 0x0201903c
+_08117CAC:
+ ldr r0, _08117CEC @ =0x02019000
+ mov r12, r0
+ ldr r6, _08117CF0 @ =gSprites
+ movs r0, 0x3C
+ add r0, r12
+ mov r8, r0
+ ldr r7, _08117CF4 @ =gUnknown_083F8C00
+ movs r0, 0x5
+ negs r0, r0
+ mov r10, r0
+_08117CC0:
+ mov r0, r12
+ adds r0, 0xC
+ adds r4, r5, r0
+ ldrb r0, [r4]
+ cmp r0, 0
+ beq _08117CD0
+ cmp r5, r9
+ bne _08117CF8
+_08117CD0:
+ adds r0, r5, 0
+ adds r0, 0x31
+ add r0, r8
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+ b _08117D4E
+ .align 2, 0
+_08117CEC: .4byte 0x02019000
+_08117CF0: .4byte gSprites
+_08117CF4: .4byte gUnknown_083F8C00
+_08117CF8:
+ adds r3, r5, 0
+ adds r3, 0x31
+ add r3, r8
+ ldrb r0, [r3]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r6
+ adds r1, 0x3E
+ ldrb r2, [r1]
+ mov r0, r10
+ ands r0, r2
+ strb r0, [r1]
+ ldrb r0, [r3]
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r2, r6
+ ldrb r1, [r4]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r7
+ ldrb r0, [r0, 0x3]
+ adds r0, 0x1
+ lsls r0, 3
+ adds r0, 0x4
+ strh r0, [r2, 0x20]
+ ldrb r0, [r3]
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r2, r6
+ ldrb r1, [r4]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r7
+ ldrb r0, [r0, 0x4]
+ adds r0, 0x1
+ lsls r0, 3
+ adds r0, 0x3
+ strh r0, [r2, 0x22]
+_08117D4E:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x5
+ bls _08117CC0
+_08117D58:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8117C60
+
+ thumb_func_start sub_8117D68
+sub_8117D68: @ 8117D68
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0
+ bne _08117D98
+ ldr r2, _08117D90 @ =gSprites
+ ldr r0, _08117D94 @ =0x02019000
+ adds r0, 0x6C
+ 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]
+ b _08117DE2
+ .align 2, 0
+_08117D90: .4byte gSprites
+_08117D94: .4byte 0x02019000
+_08117D98:
+ ldr r4, _08117DE8 @ =gSprites
+ ldr r3, _08117DEC @ =0x02019000
+ adds r3, 0x6C
+ 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 r0, [r3]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ ldr r0, _08117DF0 @ =gUnknown_083F8C00
+ lsls r2, r5, 2
+ adds r2, r5
+ lsls r2, 2
+ adds r2, r0
+ ldrb r0, [r2, 0x3]
+ adds r0, 0x2
+ lsls r0, 3
+ strh r0, [r1, 0x20]
+ ldrb r0, [r3]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ ldrb r0, [r2, 0x4]
+ adds r0, 0x2
+ lsls r0, 3
+ strh r0, [r1, 0x22]
+_08117DE2:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08117DE8: .4byte gSprites
+_08117DEC: .4byte 0x02019000
+_08117DF0: .4byte gUnknown_083F8C00
+ thumb_func_end sub_8117D68
+
+ thumb_func_start sub_8117DF4
+sub_8117DF4: @ 8117DF4
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0xC
+ ldr r4, _08117E84 @ =gUnknown_083F9EE8
+ ldr r0, [r4]
+ ldr r5, _08117E88 @ =0x02000000
+ adds r1, r5, 0
+ bl LZ77UnCompWram
+ str r5, [sp, 0x4]
+ add r0, sp, 0x4
+ ldrh r2, [r4, 0x6]
+ lsls r2, 16
+ ldrh r1, [r4, 0x4]
+ orrs r1, r2
+ str r1, [r0, 0x4]
+ bl LoadSpriteSheet
+ movs r1, 0xF
+ mov r0, sp
+ strh r1, [r0]
+ movs r0, 0
+ ldr r1, _08117E8C @ =0x0001903c
+ adds r1, r5
+ mov r8, r1
+ ldr r7, _08117E90 @ =gSprites
+_08117E2A:
+ movs r4, 0
+ adds r6, r0, 0x1
+ lsls r5, r0, 2
+_08117E30:
+ adds r1, r5, r4
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 3
+ ldr r1, _08117E94 @ =gSpriteTemplate_83FA0DC
+ adds r0, r1
+ movs r1, 0x28
+ mov r2, sp
+ bl sub_8117890
+ adds r1, r4, 0x7
+ adds r1, r5, r1
+ add r1, r8
+ strb r0, [r1]
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r7
+ adds r1, 0x2C
+ ldrb r0, [r1]
+ movs r2, 0x40
+ orrs r0, r2
+ movs r2, 0x80
+ orrs r0, r2
+ strb r0, [r1]
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x3
+ bls _08117E30
+ lsls r0, r6, 24
+ lsrs r0, 24
+ cmp r0, 0x2
+ bls _08117E2A
+ add sp, 0xC
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08117E84: .4byte gUnknown_083F9EE8
+_08117E88: .4byte 0x02000000
+_08117E8C: .4byte 0x0001903c
+_08117E90: .4byte gSprites
+_08117E94: .4byte gSpriteTemplate_83FA0DC
+ thumb_func_end sub_8117DF4
+
+ thumb_func_start sub_8117E98
+sub_8117E98: @ 8117E98
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ ldr r0, _08117F1C @ =0x02019000
+ ldrh r1, [r6, 0x2E]
+ ldrh r0, [r0, 0x24]
+ adds r1, r0
+ lsls r1, 16
+ lsrs r4, r1, 16
+ asrs r1, 16
+ ldr r0, _08117F20 @ =0x00000167
+ cmp r1, r0
+ ble _08117EB8
+ ldr r2, _08117F24 @ =0xfffffe98
+ adds r0, r1, r2
+ lsls r0, 16
+ lsrs r4, r0, 16
+_08117EB8:
+ adds r0, r4, 0
+ bl Sin2
+ lsls r0, 16
+ lsrs r5, r0, 16
+ adds r0, r4, 0
+ bl Cos2
+ lsls r2, r5, 16
+ asrs r2, 16
+ movs r3, 0x30
+ ldrsh r1, [r6, r3]
+ muls r1, r2
+ asrs r1, 12
+ strh r1, [r6, 0x24]
+ lsls r0, 16
+ asrs r4, r0, 16
+ negs r1, r4
+ movs r3, 0x30
+ ldrsh r0, [r6, r3]
+ muls r0, r1
+ asrs r0, 12
+ strh r0, [r6, 0x26]
+ ldrb r0, [r6, 0x3]
+ lsls r0, 26
+ lsrs r3, r0, 27
+ cmp r2, 0
+ bge _08117EF2
+ adds r2, 0xF
+_08117EF2:
+ lsls r0, r2, 12
+ lsrs r5, r0, 16
+ ldr r1, _08117F28 @ =gOamMatrices
+ lsls r0, r3, 3
+ adds r1, r0, r1
+ adds r0, r4, 0
+ cmp r0, 0
+ bge _08117F04
+ adds r0, 0xF
+_08117F04:
+ asrs r0, 4
+ strh r0, [r1, 0x6]
+ strh r0, [r1]
+ strh r5, [r1, 0x2]
+ lsls r0, r5, 16
+ asrs r0, 16
+ negs r0, r0
+ strh r0, [r1, 0x4]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08117F1C: .4byte 0x02019000
+_08117F20: .4byte 0x00000167
+_08117F24: .4byte 0xfffffe98
+_08117F28: .4byte gOamMatrices
+ thumb_func_end sub_8117E98
+
+ thumb_func_start sub_8117F2C
+sub_8117F2C: @ 8117F2C
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x8
+ movs r5, 0
+ ldr r7, _081180C8 @ =0x02000000
+ mov r6, sp
+_08117F3A:
+ ldr r0, _081180CC @ =gUnknown_083FA21C
+ lsls r4, r5, 3
+ adds r4, r0
+ ldr r0, [r4]
+ adds r1, r7, 0
+ bl LZ77UnCompWram
+ str r7, [sp]
+ ldrh r2, [r4, 0x4]
+ ldr r0, _081180D0 @ =0xffff0000
+ ldr r1, [r6, 0x4]
+ ands r1, r0
+ orrs r1, r2
+ str r1, [r6, 0x4]
+ ldrh r2, [r4, 0x6]
+ lsls r2, 16
+ ldr r0, _081180D4 @ =0x0000ffff
+ ands r0, r1
+ orrs r0, r2
+ str r0, [r6, 0x4]
+ mov r0, sp
+ bl LoadSpriteSheet
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x4
+ bls _08117F3A
+ ldr r0, _081180D8 @ =gSpriteTemplate_83FA2B0
+ movs r1, 0xD0
+ movs r2, 0x10
+ movs r3, 0x4
+ bl CreateSprite
+ ldr r4, _081180DC @ =0x02019000
+ adds r1, r4, 0
+ adds r1, 0x50
+ strb r0, [r1]
+ ldr r3, _081180E0 @ =gSprites
+ ldrb r1, [r1]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ adds r0, 0x2C
+ ldrb r1, [r0]
+ movs r2, 0x40
+ orrs r1, r2
+ strb r1, [r0]
+ movs r5, 0
+ adds r4, 0x3C
+ adds r7, r3, 0
+_08117FA2:
+ lsls r1, r5, 19
+ movs r0, 0xC4
+ lsls r0, 16
+ adds r1, r0
+ asrs r1, 16
+ ldr r0, _081180E4 @ =gSpriteTemplate_83FA2C8
+ movs r2, 0x18
+ movs r3, 0
+ bl CreateSprite
+ adds r3, r5, 0
+ adds r3, 0x15
+ adds r3, r4
+ strb r0, [r3]
+ ldrb r1, [r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r7
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+ ldrb r1, [r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r7
+ adds r0, 0x2C
+ ldrb r1, [r0]
+ movs r6, 0x40
+ orrs r1, r6
+ strb r1, [r0]
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x3
+ bls _08117FA2
+ ldr r0, _081180E8 @ =gSpriteTemplate_83FA2E0
+ movs r1, 0x78
+ movs r2, 0x44
+ movs r3, 0x4
+ bl CreateSprite
+ ldr r3, _081180DC @ =0x02019000
+ adds r1, r3, 0
+ adds r1, 0x55
+ strb r0, [r1]
+ ldr r2, _081180E0 @ =gSprites
+ ldrb r1, [r1]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ adds r0, 0x2C
+ ldrb r1, [r0]
+ orrs r1, r6
+ strb r1, [r0]
+ movs r5, 0
+ adds r3, 0x3C
+ mov r8, r3
+ adds r4, r2, 0
+_08118020:
+ lsls r1, r5, 20
+ movs r0, 0xC0
+ lsls r0, 16
+ adds r1, r0
+ asrs r1, 16
+ ldr r0, _081180EC @ =gSpriteTemplate_83FA2F8
+ movs r2, 0x24
+ movs r3, 0x4
+ bl CreateSprite
+ adds r2, r5, 0
+ adds r2, 0x1A
+ add r2, r8
+ strb r0, [r2]
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r7, 0x4
+ orrs r1, r7
+ strb r1, [r0]
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ adds r0, 0x2C
+ ldrb r1, [r0]
+ movs r6, 0x40
+ orrs r1, r6
+ strb r1, [r0]
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x2
+ bls _08118020
+ ldr r0, _081180F0 @ =gSpriteTemplate_83FA310
+ movs r1, 0x98
+ movs r2, 0x60
+ movs r3, 0x9
+ bl CreateSprite
+ ldr r3, _081180DC @ =0x02019000
+ adds r3, 0x6C
+ strb r0, [r3]
+ ldr r4, _081180E0 @ =gSprites
+ ldrb r0, [r3]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ ldrb r2, [r1, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r7
+ strb r0, [r1, 0x5]
+ ldrb r1, [r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ adds r0, 0x2C
+ ldrb r1, [r0]
+ orrs r1, r6
+ strb r1, [r0]
+ ldrb r1, [r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ orrs r1, r7
+ strb r1, [r0]
+ add sp, 0x8
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081180C8: .4byte 0x02000000
+_081180CC: .4byte gUnknown_083FA21C
+_081180D0: .4byte 0xffff0000
+_081180D4: .4byte 0x0000ffff
+_081180D8: .4byte gSpriteTemplate_83FA2B0
+_081180DC: .4byte 0x02019000
+_081180E0: .4byte gSprites
+_081180E4: .4byte gSpriteTemplate_83FA2C8
+_081180E8: .4byte gSpriteTemplate_83FA2E0
+_081180EC: .4byte gSpriteTemplate_83FA2F8
+_081180F0: .4byte gSpriteTemplate_83FA310
+ thumb_func_end sub_8117F2C
+
+ thumb_func_start sub_81180F4
+sub_81180F4: @ 81180F4
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ lsls r0, 16
+ lsrs r7, r0, 16
+ movs r0, 0xFA
+ lsls r0, 2
+ mov r8, r0
+ movs r4, 0
+ movs r6, 0
+ ldr r1, _081181D4 @ =0x02019000
+ mov r9, r1
+ ldr r0, _081181D8 @ =gSprites
+ mov r10, r0
+_08118114:
+ adds r0, r7, 0
+ mov r1, r8
+ bl __udivsi3
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r3, r6, 0
+ adds r3, 0x15
+ mov r0, r9
+ adds r0, 0x3C
+ adds r0, r3, r0
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _081181D8 @ =gSprites
+ adds r0, r1
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+ adds r0, r3, 0
+ cmp r5, 0
+ bne _0811814E
+ cmp r4, 0
+ bne _0811814E
+ cmp r6, 0x3
+ bne _081181A2
+_0811814E:
+ mov r3, r9
+ adds r3, 0x3C
+ adds r3, r0, r3
+ ldrb r1, [r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ add r0, r10
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r4, 0x5
+ negs r4, r4
+ adds r2, r4, 0
+ ands r1, r2
+ strb r1, [r0]
+ ldrb r1, [r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ mov r1, r10
+ adds r3, r0, r1
+ adds r4, r3, 0
+ adds r4, 0x40
+ ldr r1, _081181DC @ =gSprites + 0x8
+ adds r0, r1
+ ldr r0, [r0]
+ ldr r1, [r0]
+ lsls r0, r5, 2
+ adds r0, r1
+ ldrh r2, [r0]
+ ldrh r4, [r4]
+ adds r2, r4
+ ldr r4, _081181E0 @ =0x000003ff
+ adds r0, r4, 0
+ ands r2, r0
+ ldrh r0, [r3, 0x4]
+ ldr r4, _081181E4 @ =0xfffffc00
+ adds r1, r4, 0
+ ands r0, r1
+ orrs r0, r2
+ strh r0, [r3, 0x4]
+ movs r4, 0x1
+_081181A2:
+ adds r0, r7, 0
+ mov r1, r8
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r7, r0, 16
+ mov r0, r8
+ movs r1, 0xA
+ bl __udivsi3
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, 0x3
+ bls _08118114
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081181D4: .4byte 0x02019000
+_081181D8: .4byte gSprites
+_081181DC: .4byte gSprites + 0x8
+_081181E0: .4byte 0x000003ff
+_081181E4: .4byte 0xfffffc00
+ thumb_func_end sub_81180F4
+
+ thumb_func_start sub_81181E8
+sub_81181E8: @ 81181E8
+ push {r4,lr}
+ sub sp, 0x8
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r1, _08118220 @ =gUnknown_083FA608
+ mov r0, sp
+ movs r2, 0x5
+ bl memcpy
+ cmp r4, 0x13
+ bls _08118200
+ movs r4, 0
+_08118200:
+ ldr r3, _08118224 @ =gUnknown_083F8C00
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r2, r0, 2
+ adds r0, r2, r3
+ ldrb r0, [r0, 0x1]
+ lsls r0, 28
+ lsrs r0, 28
+ cmp r0, 0x4
+ beq _08118254
+ cmp r0, 0x4
+ bgt _08118228
+ cmp r0, 0x3
+ beq _0811822E
+ b _08118290
+ .align 2, 0
+_08118220: .4byte gUnknown_083FA608
+_08118224: .4byte gUnknown_083F8C00
+_08118228:
+ cmp r0, 0xC
+ beq _08118274
+ b _08118290
+_0811822E:
+ adds r0, r4, 0
+ movs r1, 0x5
+ bl __udivsi3
+ subs r0, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _08118250 @ =0x02019000
+ adds r0, 0x16
+ adds r1, r4, r0
+ ldrb r0, [r1]
+ cmp r0, 0x3
+ bhi _08118290
+ ldrb r0, [r1]
+ adds r0, 0x1
+ b _0811826A
+ .align 2, 0
+_08118250: .4byte 0x02019000
+_08118254:
+ subs r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _08118270 @ =0x02019000
+ adds r0, 0x12
+ adds r1, r4, r0
+ ldrb r0, [r1]
+ cmp r0, 0x2
+ bhi _08118290
+ ldrb r0, [r1]
+ adds r0, 0x2
+_0811826A:
+ add r0, sp
+ ldrb r0, [r0]
+ b _08118292
+ .align 2, 0
+_08118270: .4byte 0x02019000
+_08118274:
+ ldr r1, _0811828C @ =0x02019000
+ adds r0, r3, 0
+ adds r0, 0x8
+ adds r0, r2, r0
+ ldr r1, [r1, 0x8]
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ bne _08118290
+ mov r0, sp
+ ldrb r0, [r0, 0x4]
+ b _08118292
+ .align 2, 0
+_0811828C: .4byte 0x02019000
+_08118290:
+ movs r0, 0
+_08118292:
+ add sp, 0x8
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81181E8
+
+ thumb_func_start sub_811829C
+sub_811829C: @ 811829C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _081182E8 @ =0x02019000
+ adds r1, 0x55
+ ldrb r2, [r1]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ ldr r2, _081182EC @ =gSprites
+ adds r4, r1, r2
+ bl sub_81181E8
+ adds r3, r4, 0
+ adds r3, 0x2B
+ strb r0, [r3]
+ adds r2, r4, 0
+ adds r2, 0x40
+ ldr r1, [r4, 0x8]
+ ldrb r0, [r3]
+ ldr r1, [r1]
+ lsls r0, 2
+ adds r0, r1
+ ldrh r1, [r0]
+ ldrh r2, [r2]
+ adds r1, r2
+ ldr r2, _081182F0 @ =0x000003ff
+ adds r0, r2, 0
+ ands r1, r0
+ ldrh r2, [r4, 0x4]
+ ldr r0, _081182F4 @ =0xfffffc00
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r4, 0x4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081182E8: .4byte 0x02019000
+_081182EC: .4byte gSprites
+_081182F0: .4byte 0x000003ff
+_081182F4: .4byte 0xfffffc00
+ thumb_func_end sub_811829C
+
+ thumb_func_start sub_81182F8
+sub_81182F8: @ 81182F8
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ movs r5, 0
+ ldr r0, _08118320 @ =0x02019000
+ ldrb r1, [r0, 0x19]
+ adds r3, r0, 0
+ cmp r1, 0x1
+ bne _08118310
+ movs r5, 0x2
+_08118310:
+ cmp r2, 0x6
+ bls _08118316
+ b _08118464
+_08118316:
+ lsls r0, r2, 2
+ ldr r1, _08118324 @ =_08118328
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08118320: .4byte 0x02019000
+_08118324: .4byte _08118328
+ .align 2, 0
+_08118328:
+ .4byte _08118464
+ .4byte _08118420
+ .4byte _081183F8
+ .4byte _081183EC
+ .4byte _081183C4
+ .4byte _081183B8
+ .4byte _08118344
+_08118344:
+ movs r4, 0
+ ldr r5, _081183A8 @ =gSprites
+ ldr r0, _081183AC @ =0x0201903c
+ mov r8, r0
+ movs r2, 0x5
+ negs r2, r2
+ mov r12, r2
+ adds r6, r5, 0
+ adds r6, 0x8
+ ldr r7, _081183B0 @ =0xfffffc00
+_08118358:
+ adds r3, r4, 0
+ adds r3, 0x1A
+ add r3, r8
+ ldrb r0, [r3]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r5
+ adds r1, 0x3E
+ ldrb r2, [r1]
+ mov r0, r12
+ ands r0, r2
+ strb r0, [r1]
+ ldrb r1, [r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r3, r0, r5
+ adds r2, r3, 0
+ adds r2, 0x40
+ adds r0, r6
+ ldr r0, [r0]
+ ldr r0, [r0]
+ ldrh r1, [r0]
+ ldrh r2, [r2]
+ adds r1, r2
+ ldr r2, _081183B4 @ =0x000003ff
+ adds r0, r2, 0
+ ands r1, r0
+ ldrh r2, [r3, 0x4]
+ adds r0, r7, 0
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r3, 0x4]
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x2
+ bls _08118358
+ b _081184B2
+ .align 2, 0
+_081183A8: .4byte gSprites
+_081183AC: .4byte 0x0201903c
+_081183B0: .4byte 0xfffffc00
+_081183B4: .4byte 0x000003ff
+_081183B8:
+ ldr r2, _081183C0 @ =gSprites
+ adds r0, r3, 0
+ adds r0, 0x58
+ b _08118426
+ .align 2, 0
+_081183C0: .4byte gSprites
+_081183C4:
+ ldr r2, _081183E8 @ =gSprites
+ adds r0, r3, 0
+ adds r0, 0x58
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r3, r0, r2
+ adds r4, r3, 0
+ adds r4, 0x40
+ adds r2, 0x8
+ adds r0, r2
+ ldr r0, [r0]
+ ldr r1, [r0]
+ lsls r0, r5, 2
+ adds r0, r1
+ ldrh r1, [r0, 0x8]
+ b _08118442
+ .align 2, 0
+_081183E8: .4byte gSprites
+_081183EC:
+ ldr r2, _081183F4 @ =gSprites
+ adds r0, r3, 0
+ adds r0, 0x57
+ b _08118426
+ .align 2, 0
+_081183F4: .4byte gSprites
+_081183F8:
+ ldr r2, _0811841C @ =gSprites
+ adds r0, r3, 0
+ adds r0, 0x57
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r3, r0, r2
+ adds r4, r3, 0
+ adds r4, 0x40
+ adds r2, 0x8
+ adds r0, r2
+ ldr r0, [r0]
+ ldr r1, [r0]
+ lsls r0, r5, 2
+ adds r0, r1
+ ldrh r1, [r0, 0x8]
+ b _08118442
+ .align 2, 0
+_0811841C: .4byte gSprites
+_08118420:
+ ldr r2, _08118458 @ =gSprites
+ adds r0, r3, 0
+ adds r0, 0x56
+_08118426:
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r3, r0, r2
+ adds r4, r3, 0
+ adds r4, 0x40
+ adds r2, 0x8
+ adds r0, r2
+ ldr r0, [r0]
+ ldr r1, [r0]
+ lsls r0, r5, 2
+ adds r0, r1
+ ldrh r1, [r0, 0x4]
+_08118442:
+ ldrh r4, [r4]
+ adds r1, r4
+ ldr r2, _0811845C @ =0x000003ff
+ adds r0, r2, 0
+ ands r1, r0
+ ldrh r2, [r3, 0x4]
+ ldr r0, _08118460 @ =0xfffffc00
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r3, 0x4]
+ b _081184B2
+ .align 2, 0
+_08118458: .4byte gSprites
+_0811845C: .4byte 0x000003ff
+_08118460: .4byte 0xfffffc00
+_08118464:
+ movs r4, 0
+ lsls r6, r5, 2
+ ldr r5, _081184BC @ =gSprites
+ ldr r0, _081184C0 @ =0x0201903c
+ mov r8, r0
+ adds r7, r5, 0
+ adds r7, 0x8
+ ldr r2, _081184C4 @ =0xfffffc00
+ mov r12, r2
+_08118476:
+ adds r0, r4, 0
+ adds r0, 0x1A
+ add r0, r8
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r3, r0, r5
+ adds r2, r3, 0
+ adds r2, 0x40
+ adds r0, r7
+ ldr r0, [r0]
+ ldr r0, [r0]
+ adds r0, r6, r0
+ ldrh r1, [r0, 0x8]
+ ldrh r2, [r2]
+ adds r1, r2
+ ldr r2, _081184C8 @ =0x000003ff
+ adds r0, r2, 0
+ ands r1, r0
+ ldrh r2, [r3, 0x4]
+ mov r0, r12
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r3, 0x4]
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x2
+ bls _08118476
+_081184B2:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081184BC: .4byte gSprites
+_081184C0: .4byte 0x0201903c
+_081184C4: .4byte 0xfffffc00
+_081184C8: .4byte 0x000003ff
+ thumb_func_end sub_81182F8
+
+ thumb_func_start sub_81184CC
+sub_81184CC: @ 81184CC
+ ldr r1, _081184D4 @ =0x02019000
+ ldrh r1, [r1, 0x26]
+ strh r1, [r0, 0x24]
+ bx lr
+ .align 2, 0
+_081184D4: .4byte 0x02019000
+ thumb_func_end sub_81184CC
+
+ thumb_func_start sub_81184D8
+sub_81184D8: @ 81184D8
+ push {r4,r5,lr}
+ sub sp, 0x8
+ ldr r4, _08118544 @ =gUnknown_083FA42C
+ ldr r0, [r4]
+ ldr r5, _08118548 @ =0x02000000
+ adds r1, r5, 0
+ bl LZ77UnCompWram
+ str r5, [sp]
+ ldrh r1, [r4, 0x6]
+ lsls r1, 16
+ ldrh r0, [r4, 0x4]
+ orrs r0, r1
+ str r0, [sp, 0x4]
+ mov r0, sp
+ bl LoadSpriteSheet
+ ldr r0, _0811854C @ =gSpriteTemplate_83FA434
+ movs r1, 0x74
+ movs r2, 0x50
+ movs r3, 0x51
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _08118550 @ =gSprites
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ movs r0, 0xC8
+ lsls r0, 9
+ adds r5, r0
+ ldrh r0, [r5, 0x24]
+ movs r2, 0
+ strh r0, [r1, 0x2E]
+ strh r2, [r1, 0x30]
+ adds r3, r1, 0
+ adds r3, 0x2C
+ ldrb r0, [r3]
+ movs r2, 0x40
+ orrs r0, r2
+ movs r2, 0x80
+ orrs r0, r2
+ strb r0, [r3]
+ adds r1, 0x3E
+ ldrb r0, [r1]
+ movs r2, 0x2
+ orrs r0, r2
+ strb r0, [r1]
+ add sp, 0x8
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08118544: .4byte gUnknown_083FA42C
+_08118548: .4byte 0x02000000
+_0811854C: .4byte gSpriteTemplate_83FA434
+_08118550: .4byte gSprites
+ thumb_func_end sub_81184D8
+
+ thumb_func_start sub_8118554
+sub_8118554: @ 8118554
+ ldrb r0, [r0, 0x3]
+ lsls r0, 26
+ lsrs r0, 27
+ ldr r1, _08118574 @ =gOamMatrices
+ lsls r0, 3
+ adds r0, r1
+ ldr r2, _08118578 @ =0x02019000
+ ldrh r1, [r2, 0x2C]
+ strh r1, [r0, 0x6]
+ ldrh r1, [r2, 0x2C]
+ strh r1, [r0]
+ ldrh r1, [r2, 0x2E]
+ strh r1, [r0, 0x2]
+ ldrh r1, [r2, 0x30]
+ strh r1, [r0, 0x4]
+ bx lr
+ .align 2, 0
+_08118574: .4byte gOamMatrices
+_08118578: .4byte 0x02019000
+ thumb_func_end sub_8118554
+
+ thumb_func_start sub_811857C
+sub_811857C: @ 811857C
+ push {r4-r6,lr}
+ movs r4, 0
+ ldr r6, _081185DC @ =0x0201903c
+ ldr r5, _081185E0 @ =gSprites
+_08118584:
+ movs r3, 0x39
+ subs r3, r4
+ lsls r3, 24
+ lsrs r3, 24
+ ldr r0, _081185E4 @ =gSpriteTemplate_83FA40C
+ movs r1, 0x74
+ movs r2, 0x50
+ bl CreateSprite
+ adds r3, r4, r6
+ strb r0, [r3]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x40
+ beq _081185CA
+ ldrb r1, [r3]
+ 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]
+ ldrb r1, [r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x2
+ orrs r1, r2
+ strb r1, [r0]
+_081185CA:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x5
+ bls _08118584
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081185DC: .4byte 0x0201903c
+_081185E0: .4byte gSprites
+_081185E4: .4byte gSpriteTemplate_83FA40C
+ thumb_func_end sub_811857C
+
+ thumb_func_start sub_81185E8
+sub_81185E8: @ 81185E8
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ ldr r0, _08118660 @ =0x02019000
+ adds r0, 0x3C
+ ldrb r5, [r0]
+ movs r6, 0
+ ldr r7, _08118664 @ =gSprites
+ movs r0, 0x1C
+ adds r0, r7
+ mov r10, r0
+ movs r1, 0x2E
+ adds r1, r7
+ mov r9, r1
+ mov r8, r6
+_0811860A:
+ lsls r4, r5, 4
+ adds r4, r5
+ lsls r4, 2
+ adds r0, r4, r7
+ adds r3, r0, 0
+ adds r3, 0x3E
+ ldrb r1, [r3]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r3]
+ mov r1, r10
+ adds r2, r4, r1
+ ldr r1, _08118668 @ =SpriteCallbackDummy
+ str r1, [r2]
+ movs r1, 0
+ bl StartSpriteAnim
+ movs r1, 0
+ adds r2, r5, 0x1
+ adds r3, r6, 0x1
+_08118632:
+ lsls r0, r1, 1
+ adds r0, r4
+ add r0, r9
+ mov r5, r8
+ strh r5, [r0]
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x7
+ bls _08118632
+ lsls r0, r2, 24
+ lsrs r5, r0, 24
+ lsls r0, r3, 24
+ lsrs r6, r0, 24
+ cmp r6, 0x5
+ bls _0811860A
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08118660: .4byte 0x02019000
+_08118664: .4byte gSprites
+_08118668: .4byte SpriteCallbackDummy
+ thumb_func_end sub_81185E8
+
+ thumb_func_start sub_811866C
+sub_811866C: @ 811866C
+ push {r4,r5,lr}
+ adds r3, r0, 0
+ ldr r0, _0811869C @ =0x02019000
+ ldrh r4, [r0, 0x24]
+ movs r2, 0x24
+ ldrsh r1, [r0, r2]
+ ldrh r2, [r3, 0x34]
+ movs r5, 0x34
+ ldrsh r0, [r3, r5]
+ cmp r1, r0
+ ble _081186A8
+ movs r1, 0xB4
+ lsls r1, 1
+ adds r0, r2, r1
+ subs r2, r0, r4
+ strh r2, [r3, 0x3A]
+ lsls r1, r2, 16
+ ldr r0, _081186A0 @ =0x01670000
+ cmp r1, r0
+ ble _081186AC
+ ldr r5, _081186A4 @ =0xfffffe98
+ adds r0, r2, r5
+ b _081186AA
+ .align 2, 0
+_0811869C: .4byte 0x02019000
+_081186A0: .4byte 0x01670000
+_081186A4: .4byte 0xfffffe98
+_081186A8:
+ subs r0, r2, r4
+_081186AA:
+ strh r0, [r3, 0x3A]
+_081186AC:
+ movs r1, 0x3A
+ ldrsh r0, [r3, r1]
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_811866C
+
+ thumb_func_start sub_81186B8
+sub_81186B8: @ 81186B8
+ push {r4,lr}
+ bl sub_811866C
+ ldr r4, _081186E0 @ =0x02019000
+ lsls r0, 16
+ asrs r0, 16
+ bl __floatsisf
+ ldr r1, _081186E4 @ =0x41f00000
+ bl __divsf3
+ bl __fixunssfsi
+ adds r4, 0x7E
+ strb r0, [r4]
+ ldrb r0, [r4]
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_081186E0: .4byte 0x02019000
+_081186E4: .4byte 0x41f00000
+ thumb_func_end sub_81186B8
+
+ thumb_func_start sub_81186E8
+sub_81186E8: @ 81186E8
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_811866C
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x1E
+ bl __modsi3
+ lsls r0, 16
+ asrs r1, r0, 16
+ cmp r1, 0xE
+ bne _08118708
+ movs r0, 0
+ strh r0, [r4, 0x32]
+ b _0811871E
+_08118708:
+ cmp r1, 0xD
+ bgt _08118710
+ movs r0, 0xE
+ b _08118712
+_08118710:
+ movs r0, 0x2B
+_08118712:
+ subs r0, r1
+ lsls r0, 16
+ lsrs r0, 16
+ strh r0, [r4, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+_0811871E:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81186E8
+
+ thumb_func_start sub_8118724
+sub_8118724: @ 8118724
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r6, r0, 0
+ ldr r5, _08118770 @ =0x02019000
+ adds r4, r5, 0
+ adds r4, 0x8C
+ adds r1, r5, 0
+ adds r1, 0x90
+ ldr r0, [r4]
+ ldr r1, [r1]
+ bl __addsf3
+ adds r1, r0, 0
+ str r1, [r4]
+ movs r0, 0x88
+ adds r0, r5
+ mov r8, r0
+ ldr r0, [r0]
+ bl __addsf3
+ adds r4, r0, 0
+ mov r1, r8
+ str r4, [r1]
+ ldr r7, _08118774 @ =0x43b40000
+ adds r1, r7, 0
+ bl __gesf2
+ cmp r0, 0
+ blt _08118778
+ adds r0, r4, 0
+ adds r1, r7, 0
+ bl __subsf3
+ mov r2, r8
+ str r0, [r2]
+ b _08118790
+ .align 2, 0
+_08118770: .4byte 0x02019000
+_08118774: .4byte 0x43b40000
+_08118778:
+ ldr r1, _08118824 @ =0x00000000
+ adds r0, r4, 0
+ bl __ltsf2
+ cmp r0, 0
+ bge _08118790
+ adds r0, r4, 0
+ adds r1, r7, 0
+ bl __addsf3
+ mov r1, r8
+ str r0, [r1]
+_08118790:
+ adds r0, r5, 0
+ adds r0, 0x88
+ ldr r0, [r0]
+ bl __fixsfsi
+ strh r0, [r6, 0x34]
+ adds r4, r5, 0
+ adds r4, 0x98
+ adds r1, r5, 0
+ adds r1, 0x9C
+ ldr r0, [r4]
+ ldr r1, [r1]
+ bl __addsf3
+ adds r1, r0, 0
+ str r1, [r4]
+ subs r4, 0x4
+ ldr r0, [r4]
+ bl __addsf3
+ str r0, [r4]
+ bl __fixsfsi
+ strh r0, [r6, 0x36]
+ ldrh r0, [r6, 0x34]
+ bl Sin2
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ ldrh r0, [r6, 0x34]
+ bl Cos2
+ lsls r4, 16
+ asrs r4, 16
+ movs r2, 0x36
+ ldrsh r1, [r6, r2]
+ muls r1, r4
+ asrs r1, 12
+ strh r1, [r6, 0x24]
+ lsls r0, 16
+ asrs r0, 16
+ negs r0, r0
+ movs r2, 0x36
+ ldrsh r1, [r6, r2]
+ muls r0, r1
+ asrs r0, 12
+ strh r0, [r6, 0x26]
+ bl IsSEPlaying
+ lsls r0, 24
+ cmp r0, 0
+ beq _08118818
+ ldr r0, _08118828 @ =gMPlay_SE1
+ ldr r4, _0811882C @ =0x0000ffff
+ ldrh r2, [r6, 0x24]
+ lsls r2, 24
+ asrs r2, 24
+ adds r1, r4, 0
+ bl m4aMPlayPanpotControl
+ ldr r0, _08118830 @ =gMPlay_SE2
+ ldrh r2, [r6, 0x24]
+ lsls r2, 24
+ asrs r2, 24
+ adds r1, r4, 0
+ bl m4aMPlayPanpotControl
+_08118818:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08118824: .4byte 0x00000000
+_08118828: .4byte gMPlay_SE1
+_0811882C: .4byte 0x0000ffff
+_08118830: .4byte gMPlay_SE2
+ thumb_func_end sub_8118724
+
+ thumb_func_start sub_8118834
+sub_8118834: @ 8118834
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r1, _0811888C @ =0x02019000
+ ldrh r0, [r5, 0x3A]
+ ldrh r1, [r1, 0x24]
+ adds r2, r0, r1
+ strh r2, [r5, 0x34]
+ lsls r1, r2, 16
+ ldr r0, _08118890 @ =0x01670000
+ cmp r1, r0
+ ble _08118850
+ ldr r1, _08118894 @ =0xfffffe98
+ adds r0, r2, r1
+ strh r0, [r5, 0x34]
+_08118850:
+ ldrh r0, [r5, 0x34]
+ bl Sin2
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ ldrh r0, [r5, 0x34]
+ bl Cos2
+ lsls r4, 16
+ asrs r4, 16
+ movs r2, 0x36
+ ldrsh r1, [r5, r2]
+ muls r1, r4
+ asrs r1, 12
+ strh r1, [r5, 0x24]
+ lsls r0, 16
+ asrs r0, 16
+ negs r0, r0
+ movs r2, 0x36
+ ldrsh r1, [r5, r2]
+ muls r0, r1
+ ldr r1, _08118898 @ =gSpriteCoordOffsetY
+ asrs r0, 12
+ ldrh r1, [r1]
+ adds r0, r1
+ strh r0, [r5, 0x26]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811888C: .4byte 0x02019000
+_08118890: .4byte 0x01670000
+_08118894: .4byte 0xfffffe98
+_08118898: .4byte gSpriteCoordOffsetY
+ thumb_func_end sub_8118834
+
+ thumb_func_start sub_811889C
+sub_811889C: @ 811889C
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ bl sub_8118724
+ ldrh r0, [r5, 0x32]
+ adds r0, 0x1
+ strh r0, [r5, 0x32]
+ ldrh r0, [r5, 0x36]
+ adds r0, 0x84
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0xD4
+ bls _081188C2
+ adds r2, r5, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ b _081188CE
+_081188C2:
+ adds r2, r5, 0
+ adds r2, 0x3E
+ ldrb r1, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+_081188CE:
+ strb r0, [r2]
+ movs r1, 0x32
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x1D
+ ble _0811898E
+ movs r1, 0x2E
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ bne _08118908
+ ldr r6, _08118900 @ =0x02019000
+ adds r4, r6, 0
+ adds r4, 0x94
+ adds r0, r6, 0
+ adds r0, 0xA0
+ ldr r0, [r0]
+ ldr r1, _08118904 @ =0x40000000
+ bl __subsf3
+ adds r1, r0, 0
+ ldr r0, [r4]
+ bl __lesf2
+ cmp r0, 0
+ bgt _0811898E
+ b _08118926
+ .align 2, 0
+_08118900: .4byte 0x02019000
+_08118904: .4byte 0x40000000
+_08118908:
+ ldr r6, _08118994 @ =0x02019000
+ adds r4, r6, 0
+ adds r4, 0x94
+ adds r0, r6, 0
+ adds r0, 0xA0
+ ldr r0, [r0]
+ ldr r1, _08118998 @ =0x40000000
+ bl __subsf3
+ adds r1, r0, 0
+ ldr r0, [r4]
+ bl __gesf2
+ cmp r0, 0
+ blt _0811898E
+_08118926:
+ adds r1, r6, 0
+ adds r1, 0x7D
+ movs r0, 0xFF
+ strb r0, [r1]
+ ldrb r1, [r6, 0x3]
+ movs r0, 0x7F
+ ands r0, r1
+ strb r0, [r6, 0x3]
+ adds r0, r5, 0
+ adds r0, 0x2B
+ ldrb r1, [r0]
+ adds r1, 0x3
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r5, 0
+ bl StartSpriteAnim
+ adds r0, r5, 0
+ bl sub_81186B8
+ movs r0, 0x1E
+ strh r0, [r5, 0x36]
+ adds r0, r5, 0
+ bl sub_811866C
+ movs r1, 0x3A
+ ldrsh r0, [r5, r1]
+ movs r1, 0x1E
+ bl __divsi3
+ lsls r0, 16
+ asrs r0, 16
+ lsls r1, r0, 4
+ subs r1, r0
+ lsls r1, 1
+ adds r1, 0xF
+ strh r1, [r5, 0x3A]
+ ldr r0, _0811899C @ =sub_8118834
+ str r0, [r5, 0x1C]
+ movs r0, 0x47
+ bl m4aSongNumStartOrChange
+ adds r2, r6, 0
+ adds r2, 0x9C
+ adds r1, r6, 0
+ adds r1, 0x98
+ ldr r0, _081189A0 @ =0x00000000
+ str r0, [r1]
+ str r0, [r2]
+ subs r1, 0xC
+ ldr r0, _081189A4 @ =0xbf800000
+ str r0, [r1]
+_0811898E:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08118994: .4byte 0x02019000
+_08118998: .4byte 0x40000000
+_0811899C: .4byte sub_8118834
+_081189A0: .4byte 0x00000000
+_081189A4: .4byte 0xbf800000
+ thumb_func_end sub_811889C
+
+ thumb_func_start sub_81189A8
+sub_81189A8: @ 81189A8
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ adds r7, r0, 0
+ bl sub_8118724
+ movs r1, 0x34
+ ldrsh r0, [r7, r1]
+ cmp r0, 0
+ beq _081189C6
+ cmp r0, 0xB4
+ beq _08118A2C
+ b _08118B0C
+_081189C6:
+ movs r1, 0x2E
+ ldrsh r0, [r7, r1]
+ cmp r0, 0x1
+ bne _081189D0
+ b _08118B0C
+_081189D0:
+ movs r1, 0x3C
+ ldrsh r0, [r7, r1]
+ bl __floatsisf
+ mov r8, r0
+ ldr r0, _08118A24 @ =gUnknown_083F8DF4
+ mov r9, r0
+ ldr r1, _08118A28 @ =0x02019000
+ mov r10, r1
+ ldrb r4, [r1, 0x4]
+ lsls r4, 30
+ lsrs r0, r4, 25
+ add r0, r9
+ ldrb r0, [r0, 0x1]
+ bl __floatsisf
+ adds r1, r0, 0
+ mov r0, r8
+ bl __mulsf3
+ adds r6, r0, 0
+ lsrs r0, r4, 25
+ add r0, r9
+ ldrb r0, [r0, 0x2]
+ subs r0, 0x1
+ bl __floatsisf
+ adds r1, r0, 0
+ adds r0, r6, 0
+ bl __addsf3
+ adds r5, r0, 0
+ lsrs r4, 25
+ add r4, r9
+ ldrh r0, [r4, 0xC]
+ bl __floatsisf
+ adds r1, r0, 0
+ mov r0, r8
+ bl __divsf3
+ b _08118A8A
+ .align 2, 0
+_08118A24: .4byte gUnknown_083F8DF4
+_08118A28: .4byte 0x02019000
+_08118A2C:
+ movs r1, 0x2E
+ ldrsh r0, [r7, r1]
+ cmp r0, 0
+ beq _08118B0C
+ movs r1, 0x3C
+ ldrsh r0, [r7, r1]
+ bl __floatsisf
+ mov r8, r0
+ ldr r0, _08118B1C @ =gUnknown_083F8DF4
+ mov r9, r0
+ ldr r1, _08118B20 @ =0x02019000
+ mov r10, r1
+ ldrb r4, [r1, 0x4]
+ lsls r4, 30
+ lsrs r0, r4, 25
+ add r0, r9
+ ldrb r0, [r0, 0x1]
+ bl __floatsisf
+ adds r1, r0, 0
+ mov r0, r8
+ bl __mulsf3
+ adds r6, r0, 0
+ lsrs r0, r4, 25
+ add r0, r9
+ ldrb r0, [r0, 0x2]
+ subs r0, 0x1
+ bl __floatsisf
+ adds r1, r0, 0
+ adds r0, r6, 0
+ bl __addsf3
+ adds r5, r0, 0
+ lsrs r4, 25
+ add r4, r9
+ ldrh r0, [r4, 0xC]
+ bl __floatsisf
+ adds r1, r0, 0
+ mov r0, r8
+ bl __divsf3
+ bl __negsf2
+_08118A8A:
+ adds r2, r0, 0
+ mov r6, r10
+ adds r1, r6, 0
+ adds r1, 0xA0
+ adds r0, r6, 0
+ adds r0, 0x94
+ ldr r0, [r0]
+ str r0, [r1]
+ adds r0, r6, 0
+ adds r0, 0x98
+ str r2, [r0]
+ movs r0, 0x9C
+ adds r0, r6
+ mov r8, r0
+ adds r0, r2, 0
+ adds r1, r2, 0
+ bl __addsf3
+ adds r1, r5, 0
+ bl __divsf3
+ adds r4, r0, 0
+ adds r0, r5, 0
+ adds r1, r5, 0
+ bl __mulsf3
+ adds r1, r0, 0
+ ldr r0, _08118B24 @ =0x40000000
+ bl __divsf3
+ adds r1, r0, 0
+ adds r0, r4, 0
+ bl __addsf3
+ bl __negsf2
+ mov r1, r8
+ str r0, [r1]
+ adds r1, r6, 0
+ adds r1, 0x8C
+ ldr r0, _08118B28 @ =0x00000000
+ str r0, [r1]
+ adds r2, r7, 0
+ adds r2, 0x2C
+ ldrb r1, [r2]
+ movs r0, 0x41
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+ adds r0, r7, 0
+ adds r0, 0x2A
+ movs r2, 0
+ strb r2, [r0]
+ adds r3, r7, 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]
+ ldr r0, _08118B2C @ =sub_811889C
+ str r0, [r7, 0x1C]
+ strh r2, [r7, 0x32]
+_08118B0C:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08118B1C: .4byte gUnknown_083F8DF4
+_08118B20: .4byte 0x02019000
+_08118B24: .4byte 0x40000000
+_08118B28: .4byte 0x00000000
+_08118B2C: .4byte sub_811889C
+ thumb_func_end sub_81189A8
+
+ thumb_func_start sub_8118B30
+sub_8118B30: @ 8118B30
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ movs r1, 0x32
+ ldrsh r0, [r5, r1]
+ bl __floatsisf
+ adds r4, r0, 0
+ ldr r1, _08118BCC @ =0x3d4ccccd
+ bl __mulsf3
+ adds r1, r4, 0
+ bl __mulsf3
+ bl __fixsfsi
+ adds r1, r0, 0
+ subs r1, 0x2D
+ strh r1, [r5, 0x26]
+ ldrh r0, [r5, 0x32]
+ adds r0, 0x1
+ strh r0, [r5, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1D
+ ble _08118BC6
+ lsls r0, r1, 16
+ cmp r0, 0
+ blt _08118BC6
+ ldr r4, _08118BD0 @ =0x02019000
+ adds r1, r4, 0
+ adds r1, 0x7D
+ movs r0, 0xFF
+ strb r0, [r1]
+ ldrb r1, [r4, 0x3]
+ movs r0, 0x7F
+ ands r0, r1
+ strb r0, [r4, 0x3]
+ adds r0, r5, 0
+ adds r0, 0x2B
+ ldrb r1, [r0]
+ adds r1, 0x3
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r5, 0
+ bl StartSpriteAnim
+ adds r0, r5, 0
+ bl sub_81186B8
+ movs r0, 0x1E
+ strh r0, [r5, 0x36]
+ adds r0, r5, 0
+ bl sub_811866C
+ movs r1, 0x3A
+ ldrsh r0, [r5, r1]
+ movs r1, 0x1E
+ bl __divsi3
+ lsls r0, 16
+ asrs r0, 16
+ lsls r1, r0, 4
+ subs r1, r0
+ lsls r1, 1
+ adds r1, 0xF
+ strh r1, [r5, 0x3A]
+ ldr r0, _08118BD4 @ =sub_8118834
+ str r0, [r5, 0x1C]
+ movs r0, 0x47
+ bl m4aSongNumStartOrChange
+ ldrb r0, [r4, 0x3]
+ movs r1, 0x40
+ orrs r0, r1
+ strb r0, [r4, 0x3]
+_08118BC6:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08118BCC: .4byte 0x3d4ccccd
+_08118BD0: .4byte 0x02019000
+_08118BD4: .4byte sub_8118834
+ thumb_func_end sub_8118B30
+
+ thumb_func_start sub_8118BD8
+sub_8118BD8: @ 8118BD8
+ push {r4,lr}
+ adds r3, r0, 0
+ ldrh r0, [r3, 0x32]
+ adds r1, r0, 0x1
+ strh r1, [r3, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x2C
+ bgt _08118C1C
+ ldrh r4, [r3, 0x26]
+ subs r0, r4, 0x1
+ strh r0, [r3, 0x26]
+ lsls r0, r1, 16
+ asrs r0, 16
+ cmp r0, 0x2D
+ bne _08118CA2
+ ldr r2, _08118C14 @ =gSprites
+ ldr r0, _08118C18 @ =0x02019000
+ adds r0, 0x73
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ adds r0, 0x2B
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _08118CA2
+ strh r4, [r3, 0x26]
+ b _08118CA2
+ .align 2, 0
+_08118C14: .4byte gSprites
+_08118C18: .4byte 0x02019000
+_08118C1C:
+ lsls r0, r1, 16
+ asrs r0, 16
+ movs r2, 0x3C
+ ldrsh r1, [r3, r2]
+ cmp r0, r1
+ bge _08118C68
+ ldr r2, _08118C58 @ =gSprites
+ ldr r0, _08118C5C @ =0x02019000
+ adds r0, 0x73
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r0, r2
+ adds r0, r1, 0
+ adds r0, 0x2C
+ ldrb r0, [r0]
+ lsls r0, 26
+ cmp r0, 0
+ bne _08118CA2
+ adds r0, r1, 0
+ adds r0, 0x2B
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _08118C60
+ ldrh r0, [r3, 0x26]
+ adds r0, 0x1
+ strh r0, [r3, 0x26]
+ b _08118CA2
+ .align 2, 0
+_08118C58: .4byte gSprites
+_08118C5C: .4byte 0x02019000
+_08118C60:
+ ldrh r0, [r3, 0x26]
+ subs r0, 0x1
+ strh r0, [r3, 0x26]
+ b _08118CA2
+_08118C68:
+ adds r2, r3, 0
+ adds r2, 0x2C
+ ldrb r1, [r2]
+ movs r0, 0x41
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+ adds r1, r3, 0
+ adds r1, 0x2A
+ movs r2, 0
+ movs r0, 0x1
+ strb r0, [r1]
+ movs r0, 0x3F
+ adds r0, r3
+ mov r12, r0
+ ldrb r0, [r0]
+ movs r1, 0x4
+ orrs r0, r1
+ movs r1, 0x11
+ negs r1, r1
+ ands r0, r1
+ mov r1, r12
+ strb r0, [r1]
+ strh r2, [r3, 0x32]
+ ldr r0, _08118CA8 @ =sub_8118B30
+ str r0, [r3, 0x1C]
+ movs r0, 0x3D
+ bl m4aSongNumStart
+_08118CA2:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08118CA8: .4byte sub_8118B30
+ thumb_func_end sub_8118BD8
+
+ thumb_func_start sub_8118CAC
+sub_8118CAC: @ 8118CAC
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_8118724
+ movs r0, 0x34
+ ldrsh r1, [r4, r0]
+ cmp r1, 0x5A
+ beq _08118CC6
+ movs r0, 0x87
+ lsls r0, 1
+ cmp r1, r0
+ beq _08118CD0
+ b _08118CE0
+_08118CC6:
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ beq _08118CE0
+ b _08118CD8
+_08118CD0:
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _08118CE0
+_08118CD8:
+ ldr r0, _08118CE8 @ =sub_8118BD8
+ str r0, [r4, 0x1C]
+ movs r0, 0
+ strh r0, [r4, 0x32]
+_08118CE0:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08118CE8: .4byte sub_8118BD8
+ thumb_func_end sub_8118CAC
+
+ thumb_func_start sub_8118CEC
+sub_8118CEC: @ 8118CEC
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_8118724
+ ldr r0, _08118D10 @ =0x02019000
+ ldrb r0, [r0, 0x3]
+ lsls r0, 27
+ lsrs r0, 27
+ cmp r0, 0
+ beq _08118D04
+ cmp r0, 0x1
+ beq _08118D18
+_08118D04:
+ adds r0, r4, 0
+ bl sub_8119224
+ ldr r0, _08118D14 @ =sub_81189A8
+ b _08118D20
+ .align 2, 0
+_08118D10: .4byte 0x02019000
+_08118D14: .4byte sub_81189A8
+_08118D18:
+ adds r0, r4, 0
+ bl sub_81193D4
+ ldr r0, _08118D28 @ =sub_8118CAC
+_08118D20:
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08118D28: .4byte sub_8118CAC
+ thumb_func_end sub_8118CEC
+
+ thumb_func_start prev_quest_read_x24_hm_usage
+prev_quest_read_x24_hm_usage: @ 8118D2C
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ bl sub_8118724
+ ldrh r0, [r5, 0x32]
+ subs r0, 0x1
+ strh r0, [r5, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xF
+ bne _08118D50
+ ldr r4, _08118DB8 @ =0x02019000
+ adds r4, 0x98
+ ldr r0, [r4]
+ ldr r1, _08118DBC @ =0xbf800000
+ bl __mulsf3
+ str r0, [r4]
+_08118D50:
+ movs r1, 0x32
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ bne _08118DDC
+ movs r1, 0x2E
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ bne _08118DC4
+ ldr r1, _08118DB8 @ =0x02019000
+ adds r2, r1, 0
+ adds r2, 0x7D
+ movs r0, 0xFF
+ strb r0, [r2]
+ ldrb r2, [r1, 0x3]
+ movs r0, 0x7F
+ ands r0, r2
+ strb r0, [r1, 0x3]
+ adds r0, r5, 0
+ adds r0, 0x2B
+ ldrb r1, [r0]
+ adds r1, 0x3
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r5, 0
+ bl StartSpriteAnim
+ adds r0, r5, 0
+ bl sub_81186B8
+ movs r0, 0x1E
+ strh r0, [r5, 0x36]
+ adds r0, r5, 0
+ bl sub_811866C
+ movs r1, 0x3A
+ ldrsh r0, [r5, r1]
+ movs r1, 0x1E
+ bl __divsi3
+ lsls r0, 16
+ asrs r0, 16
+ lsls r1, r0, 4
+ subs r1, r0
+ lsls r1, 1
+ adds r1, 0xF
+ strh r1, [r5, 0x3A]
+ ldr r0, _08118DC0 @ =sub_8118834
+ str r0, [r5, 0x1C]
+ movs r0, 0x47
+ bl m4aSongNumStartOrChange
+ b _08118DDC
+ .align 2, 0
+_08118DB8: .4byte 0x02019000
+_08118DBC: .4byte 0xbf800000
+_08118DC0: .4byte sub_8118834
+_08118DC4:
+ adds r0, r5, 0
+ adds r0, 0x2C
+ ldrb r1, [r0]
+ movs r2, 0x40
+ orrs r1, r2
+ strb r1, [r0]
+ movs r0, 0x38
+ bl m4aSongNumStart
+ adds r0, r5, 0
+ bl sub_811952C
+_08118DDC:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end prev_quest_read_x24_hm_usage
+
+ thumb_func_start sub_8118DE4
+sub_8118DE4: @ 8118DE4
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ adds r7, r0, 0
+ bl sub_8118724
+ movs r0, 0
+ strh r0, [r7, 0x32]
+ adds r0, r7, 0
+ bl sub_81186B8
+ ldr r1, _08118E70 @ =gUnknown_083F8D90
+ ldr r6, _08118E74 @ =0x02019000
+ movs r0, 0x7E
+ adds r0, r6
+ mov r8, r0
+ ldrb r0, [r0]
+ lsls r0, 3
+ adds r1, 0x4
+ adds r0, r1
+ ldr r0, [r0]
+ ldr r1, [r6, 0x8]
+ ands r0, r1
+ cmp r0, 0
+ bne _08118E7C
+ adds r1, r6, 0
+ adds r1, 0x7D
+ movs r0, 0xFF
+ strb r0, [r1]
+ ldrb r1, [r6, 0x3]
+ movs r0, 0x7F
+ ands r0, r1
+ strb r0, [r6, 0x3]
+ adds r0, r7, 0
+ adds r0, 0x2B
+ ldrb r1, [r0]
+ adds r1, 0x3
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r7, 0
+ bl StartSpriteAnim
+ adds r0, r7, 0
+ bl sub_81186B8
+ movs r0, 0x1E
+ strh r0, [r7, 0x36]
+ adds r0, r7, 0
+ bl sub_811866C
+ movs r1, 0x3A
+ ldrsh r0, [r7, r1]
+ movs r1, 0x1E
+ bl __divsi3
+ lsls r0, 16
+ asrs r0, 16
+ lsls r1, r0, 4
+ subs r1, r0
+ lsls r1, 1
+ adds r1, 0xF
+ strh r1, [r7, 0x3A]
+ ldr r0, _08118E78 @ =sub_8118834
+ str r0, [r7, 0x1C]
+ movs r0, 0x47
+ bl m4aSongNumStartOrChange
+ b _08118F74
+ .align 2, 0
+_08118E70: .4byte gUnknown_083F8D90
+_08118E74: .4byte 0x02019000
+_08118E78: .4byte sub_8118834
+_08118E7C:
+ movs r0, 0x38
+ bl m4aSongNumStart
+ bl Random
+ movs r2, 0x1
+ mov r9, r2
+ mov r1, r9
+ ands r1, r0
+ mov r9, r1
+ cmp r1, 0
+ beq _08118EC0
+ adds r1, r6, 0
+ adds r1, 0x8C
+ ldr r0, _08118EB8 @ =0x00000000
+ str r0, [r1]
+ mov r2, r8
+ ldrb r0, [r2]
+ adds r0, 0x1
+ movs r1, 0xC
+ bl __modsi3
+ lsls r1, r0, 24
+ lsrs r2, r1, 24
+ adds r1, r6, 0
+ adds r1, 0x7F
+ strb r0, [r1]
+ ldr r5, _08118EBC @ =gUnknown_083F8DF4
+ b _08118EF4
+ .align 2, 0
+_08118EB8: .4byte 0x00000000
+_08118EBC: .4byte gUnknown_083F8DF4
+_08118EC0:
+ adds r4, r6, 0
+ adds r4, 0x8C
+ ldr r5, _08118F1C @ =gUnknown_083F8DF4
+ ldrb r0, [r6, 0x4]
+ lsls r0, 30
+ lsrs r0, 25
+ adds r1, r5, 0
+ adds r1, 0x1C
+ adds r0, r1
+ ldr r1, [r0]
+ adds r0, r1, 0
+ bl __addsf3
+ str r0, [r4]
+ mov r0, r8
+ ldrb r4, [r0]
+ adds r0, r4, 0
+ adds r0, 0xB
+ movs r1, 0xC
+ bl __modsi3
+ lsls r0, 24
+ lsrs r2, r0, 24
+ adds r0, r6, 0
+ adds r0, 0x7F
+ strb r4, [r0]
+_08118EF4:
+ ldr r0, _08118F20 @ =gUnknown_083F8D90
+ lsls r1, r2, 3
+ adds r0, 0x4
+ adds r1, r0
+ ldr r2, _08118F24 @ =0x02019000
+ ldr r1, [r1]
+ ldr r0, [r2, 0x8]
+ ands r1, r0
+ cmp r1, 0
+ beq _08118F28
+ movs r0, 0x1
+ strh r0, [r7, 0x2E]
+ ldrb r0, [r2, 0x4]
+ lsls r0, 30
+ lsrs r0, 25
+ adds r0, r5
+ ldrb r0, [r0, 0x2]
+ strh r0, [r7, 0x32]
+ b _08118F64
+ .align 2, 0
+_08118F1C: .4byte gUnknown_083F8DF4
+_08118F20: .4byte gUnknown_083F8D90
+_08118F24: .4byte 0x02019000
+_08118F28:
+ strh r1, [r7, 0x2E]
+ ldrb r1, [r2, 0x4]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0
+ beq _08118F40
+ lsls r0, r1, 30
+ lsrs r0, 25
+ adds r0, r5
+ ldrb r0, [r0, 0x1]
+ strh r0, [r7, 0x32]
+ b _08118F64
+_08118F40:
+ lsls r0, r1, 30
+ lsrs r0, 25
+ adds r0, r5
+ ldrb r0, [r0, 0x2]
+ strh r0, [r7, 0x32]
+ mov r1, r9
+ cmp r1, 0
+ beq _08118F5C
+ adds r1, r2, 0
+ adds r1, 0x8C
+ ldr r0, _08118F58 @ =0x3f000000
+ b _08118F62
+ .align 2, 0
+_08118F58: .4byte 0x3f000000
+_08118F5C:
+ adds r1, r2, 0
+ adds r1, 0x8C
+ ldr r0, _08118F80 @ =0xbfc00000
+_08118F62:
+ str r0, [r1]
+_08118F64:
+ adds r1, r2, 0
+ adds r1, 0x98
+ ldr r0, _08118F84 @ =0x3dae147b
+ str r0, [r1]
+ ldr r0, _08118F88 @ =prev_quest_read_x24_hm_usage
+ str r0, [r7, 0x1C]
+ movs r0, 0x5
+ strh r0, [r7, 0x30]
+_08118F74:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08118F80: .4byte 0xbfc00000
+_08118F84: .4byte 0x3dae147b
+_08118F88: .4byte prev_quest_read_x24_hm_usage
+ thumb_func_end sub_8118DE4
+
+ thumb_func_start sub_8118F8C
+sub_8118F8C: @ 8118F8C
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ adds r6, r0, 0
+ bl sub_8118724
+ ldr r5, _08119018 @ =0x02019000
+ movs r0, 0x8C
+ adds r0, r5
+ mov r8, r0
+ ldr r0, [r0]
+ ldr r1, _0811901C @ =0x3f000000
+ bl __gtsf2
+ cmp r0, 0
+ bgt _0811906E
+ adds r0, r6, 0
+ bl sub_81186B8
+ adds r0, r6, 0
+ bl sub_81186E8
+ lsls r0, 16
+ cmp r0, 0
+ bne _08119030
+ adds r1, r5, 0
+ adds r1, 0x90
+ ldr r0, _08119020 @ =0x00000000
+ str r0, [r1]
+ ldr r1, _08119024 @ =gUnknown_083F8DF4
+ mov r9, r1
+ ldrb r0, [r5, 0x4]
+ lsls r7, r0, 30
+ lsrs r0, r7, 25
+ add r0, r9
+ movs r4, 0x3
+ ldrsb r4, [r0, r4]
+ adds r0, r4, 0
+ bl __floatsisf
+ adds r5, r0, 0
+ cmp r4, 0
+ bge _08118FEC
+ ldr r1, _08119028 @ =0x43800000
+ bl __addsf3
+ adds r5, r0, 0
+_08118FEC:
+ lsrs r0, r7, 25
+ add r0, r9
+ ldrb r0, [r0, 0x4]
+ adds r0, 0x1
+ bl __floatsisf
+ adds r1, r0, 0
+ adds r0, r5, 0
+ bl __divsf3
+ adds r1, r0, 0
+ mov r2, r8
+ ldr r0, [r2]
+ bl __subsf3
+ mov r1, r8
+ str r0, [r1]
+ movs r0, 0x4
+ strh r0, [r6, 0x30]
+ ldr r0, _0811902C @ =sub_8118DE4
+ str r0, [r6, 0x1C]
+ b _0811906E
+ .align 2, 0
+_08119018: .4byte 0x02019000
+_0811901C: .4byte 0x3f000000
+_08119020: .4byte 0x00000000
+_08119024: .4byte gUnknown_083F8DF4
+_08119028: .4byte 0x43800000
+_0811902C: .4byte sub_8118DE4
+_08119030:
+ adds r6, r5, 0
+ adds r6, 0x90
+ ldr r0, [r6]
+ ldr r4, _0811907C @ =0x00000000
+ adds r1, r4, 0
+ bl __nesf2
+ cmp r0, 0
+ beq _0811906E
+ mov r2, r8
+ ldr r0, [r2]
+ adds r1, r4, 0
+ bl __ltsf2
+ cmp r0, 0
+ bge _0811906E
+ str r4, [r6]
+ mov r0, r8
+ str r4, [r0]
+ adds r4, r5, 0
+ adds r4, 0x98
+ ldr r0, [r4]
+ bl __extendsfdf2
+ ldr r2, _08119080 @ =0x3ff33333
+ ldr r3, _08119084 @ =0x33333333
+ bl __divdf3
+ bl __truncdfsf2
+ str r0, [r4]
+_0811906E:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811907C: .4byte 0x00000000
+_08119080: .4byte 0x3ff33333
+_08119084: .4byte 0x33333333
+ thumb_func_end sub_8118F8C
+
+ thumb_func_start sub_8119088
+sub_8119088: @ 8119088
+ push {r4-r7,lr}
+ adds r6, r0, 0
+ bl sub_8118724
+ ldr r5, _08119120 @ =0x02019000
+ adds r0, r5, 0
+ adds r0, 0x94
+ ldr r0, [r0]
+ ldr r1, _08119124 @ =0x42200000
+ bl __gtsf2
+ cmp r0, 0
+ bgt _0811911A
+ adds r7, r5, 0
+ adds r7, 0x98
+ adds r0, r5, 0
+ adds r0, 0x86
+ movs r1, 0
+ ldrsh r4, [r0, r1]
+ adds r0, r4, 0
+ bl __floatsisf
+ adds r2, r0, 0
+ cmp r4, 0
+ bge _081190C2
+ ldr r1, _08119128 @ =0x47800000
+ bl __addsf3
+ adds r2, r0, 0
+_081190C2:
+ ldr r0, _0811912C @ =0x40800000
+ adds r1, r2, 0
+ bl __divsf3
+ bl __negsf2
+ str r0, [r7]
+ adds r7, r5, 0
+ adds r7, 0x90
+ adds r5, 0x8C
+ adds r0, r4, 0
+ bl __floatsisf
+ adds r2, r0, 0
+ cmp r4, 0
+ bge _081190EA
+ ldr r1, _08119128 @ =0x47800000
+ bl __addsf3
+ adds r2, r0, 0
+_081190EA:
+ ldr r0, [r5]
+ adds r1, r2, 0
+ bl __divsf3
+ bl __negsf2
+ str r0, [r7]
+ adds r1, r6, 0
+ adds r1, 0x2A
+ movs r0, 0x2
+ strb r0, [r1]
+ adds r2, r6, 0
+ adds r2, 0x3F
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ movs r1, 0x11
+ negs r1, r1
+ ands r0, r1
+ strb r0, [r2]
+ movs r0, 0x3
+ strh r0, [r6, 0x30]
+ ldr r0, _08119130 @ =sub_8118F8C
+ str r0, [r6, 0x1C]
+_0811911A:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08119120: .4byte 0x02019000
+_08119124: .4byte 0x42200000
+_08119128: .4byte 0x47800000
+_0811912C: .4byte 0x40800000
+_08119130: .4byte sub_8118F8C
+ thumb_func_end sub_8119088
+
+ thumb_func_start sub_8119134
+sub_8119134: @ 8119134
+ push {r4-r7,lr}
+ adds r6, r0, 0
+ bl sub_8118724
+ ldr r4, _081191DC @ =0x02019000
+ adds r0, r4, 0
+ adds r0, 0x94
+ ldr r0, [r0]
+ ldr r1, _081191E0 @ =0x42700000
+ bl __gtsf2
+ cmp r0, 0
+ bgt _081191D4
+ movs r0, 0x5D
+ bl m4aSongNumStartOrChange
+ adds r7, r4, 0
+ adds r7, 0x98
+ adds r0, r4, 0
+ adds r0, 0x84
+ movs r1, 0
+ ldrsh r5, [r0, r1]
+ adds r0, r5, 0
+ bl __floatsisf
+ adds r2, r0, 0
+ cmp r5, 0
+ bge _08119174
+ ldr r1, _081191E4 @ =0x47800000
+ bl __addsf3
+ adds r2, r0, 0
+_08119174:
+ ldr r0, _081191E8 @ =0x41a00000
+ adds r1, r2, 0
+ bl __divsf3
+ bl __negsf2
+ str r0, [r7]
+ adds r7, r4, 0
+ adds r7, 0x90
+ adds r0, r4, 0
+ adds r0, 0x8C
+ ldr r1, [r0]
+ ldr r0, _081191EC @ =0x3f800000
+ bl __subsf3
+ adds r4, r0, 0
+ adds r0, r5, 0
+ bl __floatsisf
+ adds r2, r0, 0
+ cmp r5, 0
+ bge _081191A8
+ ldr r1, _081191E4 @ =0x47800000
+ bl __addsf3
+ adds r2, r0, 0
+_081191A8:
+ adds r0, r4, 0
+ adds r1, r2, 0
+ bl __divsf3
+ str r0, [r7]
+ adds r1, r6, 0
+ adds r1, 0x2A
+ movs r0, 0x1
+ strb r0, [r1]
+ adds r2, r6, 0
+ adds r2, 0x3F
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ movs r1, 0x11
+ negs r1, r1
+ ands r0, r1
+ strb r0, [r2]
+ movs r0, 0x2
+ strh r0, [r6, 0x30]
+ ldr r0, _081191F0 @ =sub_8119088
+ str r0, [r6, 0x1C]
+_081191D4:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081191DC: .4byte 0x02019000
+_081191E0: .4byte 0x42700000
+_081191E4: .4byte 0x47800000
+_081191E8: .4byte 0x41a00000
+_081191EC: .4byte 0x3f800000
+_081191F0: .4byte sub_8119088
+ thumb_func_end sub_8119134
+
+ thumb_func_start sub_81191F4
+sub_81191F4: @ 81191F4
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0
+ movs r0, 0x1
+ strh r0, [r4, 0x30]
+ strh r1, [r4, 0x32]
+ adds r0, r4, 0
+ bl sub_8118724
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r1, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+ ldr r0, _08119220 @ =sub_8119134
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08119220: .4byte sub_8119134
+ thumb_func_end sub_81191F4
+
+ thumb_func_start sub_8119224
+sub_8119224: @ 8119224
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ adds r7, r0, 0
+ ldr r1, _081193B8 @ =gUnknown_083FA60E
+ mov r0, sp
+ movs r2, 0x8
+ bl memcpy
+ ldrh r0, [r7, 0x3C]
+ subs r0, 0x2
+ lsls r0, 16
+ lsrs r0, 16
+ mov r9, r0
+ ldr r5, _081193BC @ =0x02019000
+ ldr r0, _081193C0 @ =gSpriteTemplate_83FA50C
+ movs r2, 0xC
+ negs r2, r2
+ movs r1, 0x24
+ movs r3, 0x32
+ bl CreateSprite
+ adds r1, r5, 0
+ adds r1, 0x73
+ strb r0, [r1]
+ ldr r4, _081193C4 @ =gSpriteTemplate_83FA5C0
+ movs r0, 0x2E
+ ldrsh r2, [r7, r0]
+ lsls r2, 2
+ mov r1, sp
+ adds r0, r1, r2
+ movs r3, 0
+ ldrsh r1, [r0, r3]
+ mov r0, sp
+ adds r0, 0x2
+ adds r0, r2
+ movs r3, 0
+ ldrsh r2, [r0, r3]
+ adds r0, r4, 0
+ movs r3, 0x3B
+ bl CreateSprite
+ adds r1, r5, 0
+ adds r1, 0x74
+ strb r0, [r1]
+ adds r4, 0x18
+ adds r0, r4, 0
+ movs r1, 0x24
+ movs r2, 0x8C
+ movs r3, 0x33
+ bl CreateSprite
+ adds r1, r5, 0
+ adds r1, 0x75
+ strb r0, [r1]
+ ldr r3, _081193C8 @ =gSprites
+ ldrb r1, [r1]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ ldrb r2, [r0, 0x1]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r2
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0, 0x1]
+ movs r6, 0
+ adds r4, r3, 0
+ mov r12, r5
+ ldr r0, _081193CC @ =gUnknown_083F8DF4
+ mov r8, r0
+ mov r10, r12
+_081192BE:
+ mov r1, r12
+ adds r3, r1, r6
+ adds r3, 0x73
+ ldrb r0, [r3]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ adds r1, 0x3E
+ ldrb r2, [r1]
+ movs r0, 0x3
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1]
+ ldrb r1, [r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+ ldrb r1, [r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ adds r0, 0x2C
+ ldrb r1, [r0]
+ movs r2, 0x40
+ orrs r1, r2
+ strb r1, [r0]
+ ldrb r1, [r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ adds r0, 0x2C
+ ldrb r1, [r0]
+ movs r2, 0x80
+ orrs r1, r2
+ strb r1, [r0]
+ ldrb r1, [r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ mov r1, r12
+ adds r1, 0x73
+ ldrb r1, [r1]
+ strh r1, [r0, 0x36]
+ ldrb r1, [r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ mov r5, r12
+ adds r5, 0x74
+ ldrb r1, [r5]
+ strh r1, [r0, 0x38]
+ ldrb r1, [r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ mov r1, r12
+ adds r1, 0x75
+ ldrb r1, [r1]
+ strh r1, [r0, 0x3A]
+ ldrb r1, [r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ mov r1, r9
+ strh r1, [r0, 0x32]
+ ldrb r0, [r3]
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r2, r4
+ movs r0, 0x3C
+ ldrsh r3, [r7, r0]
+ mov r0, r12
+ ldrb r1, [r0, 0x4]
+ lsls r1, 30
+ lsrs r0, r1, 25
+ add r0, r8
+ ldrb r0, [r0, 0x1]
+ muls r3, r0
+ lsrs r1, 25
+ add r1, r8
+ ldrb r0, [r1, 0x2]
+ ldr r1, _081193D0 @ =0x0000ffff
+ adds r0, r1
+ adds r3, r0
+ strh r3, [r2, 0x34]
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r2, _081193C8 @ =gSprites
+ cmp r6, 0x2
+ bls _081192BE
+ ldrb r1, [r5]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x2
+ orrs r1, r2
+ strb r1, [r0]
+ mov r3, r10
+ str r7, [r3, 0x38]
+ 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
+_081193B8: .4byte gUnknown_083FA60E
+_081193BC: .4byte 0x02019000
+_081193C0: .4byte gSpriteTemplate_83FA50C
+_081193C4: .4byte gSpriteTemplate_83FA5C0
+_081193C8: .4byte gSprites
+_081193CC: .4byte gUnknown_083F8DF4
+_081193D0: .4byte 0x0000ffff
+ thumb_func_end sub_8119224
+
+ thumb_func_start sub_81193D4
+sub_81193D4: @ 81193D4
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x8
+ adds r7, r0, 0
+ movs r0, 0
+ mov r8, r0
+ ldr r1, _08119514 @ =gUnknown_083FA616
+ mov r0, sp
+ movs r2, 0x8
+ bl memcpy
+ ldrh r0, [r7, 0x3C]
+ subs r0, 0x2
+ lsls r0, 16
+ lsrs r0, 16
+ mov r9, r0
+ ldr r0, _08119518 @ =gSpriteTemplate_83FA524
+ movs r1, 0x2E
+ ldrsh r2, [r7, r1]
+ lsls r2, 2
+ mov r3, sp
+ adds r1, r3, r2
+ movs r3, 0
+ ldrsh r1, [r1, r3]
+ mov r4, sp
+ adds r4, 0x2
+ adds r2, r4, r2
+ movs r3, 0
+ ldrsh r2, [r2, r3]
+ movs r3, 0x32
+ bl CreateSprite
+ ldr r6, _0811951C @ =0x02019000
+ adds r1, r6, 0
+ adds r1, 0x73
+ strb r0, [r1]
+ ldrb r1, [r1]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r5, _08119520 @ =gSprites
+ adds r0, r5
+ ldrh r1, [r7, 0x2E]
+ lsls r1, 24
+ lsrs r1, 24
+ bl StartSpriteAnim
+ ldr r0, _08119524 @ =gSpriteTemplate_83FA5F0
+ movs r1, 0x2E
+ ldrsh r2, [r7, r1]
+ lsls r2, 2
+ mov r3, sp
+ adds r1, r3, r2
+ movs r3, 0
+ ldrsh r1, [r1, r3]
+ adds r4, r2
+ movs r3, 0
+ ldrsh r2, [r4, r3]
+ movs r3, 0x33
+ bl CreateSprite
+ adds r4, r6, 0
+ adds r4, 0x74
+ strb r0, [r4]
+ ldrb r1, [r4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ adds r0, 0x2C
+ ldrb r1, [r0]
+ movs r2, 0x80
+ orrs r1, r2
+ strb r1, [r0]
+ ldrb r1, [r4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ adds r0, 0x2C
+ ldrb r1, [r0]
+ movs r2, 0x40
+ orrs r1, r2
+ strb r1, [r0]
+ mov r0, r9
+ lsls r2, r0, 16
+ asrs r2, 16
+ ldr r3, _08119528 @ =gUnknown_083F8DF4
+ ldrb r1, [r6, 0x4]
+ lsls r1, 30
+ lsrs r0, r1, 25
+ adds r0, r3
+ ldrb r0, [r0, 0x1]
+ muls r2, r0
+ lsrs r1, 25
+ adds r1, r3
+ ldrh r0, [r1, 0x10]
+ adds r0, 0x2D
+ adds r2, r0
+ strh r2, [r7, 0x3C]
+ adds r3, r6, 0
+_081194A2:
+ mov r1, r8
+ adds r2, r6, r1
+ adds r2, 0x73
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ adds r1, r6, 0
+ adds r1, 0x73
+ ldrb r1, [r1]
+ strh r1, [r0, 0x36]
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldrb r1, [r4]
+ strh r1, [r0, 0x38]
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldrb r1, [r4]
+ strh r1, [r0, 0x3A]
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ mov r1, r9
+ strh r1, [r0, 0x32]
+ ldrb r0, [r2]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r5
+ ldrh r0, [r7, 0x3C]
+ subs r0, 0x2D
+ strh r0, [r1, 0x34]
+ mov r0, r8
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ cmp r0, 0x1
+ bls _081194A2
+ str r7, [r3, 0x38]
+ add sp, 0x8
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08119514: .4byte gUnknown_083FA616
+_08119518: .4byte gSpriteTemplate_83FA524
+_0811951C: .4byte 0x02019000
+_08119520: .4byte gSprites
+_08119524: .4byte gSpriteTemplate_83FA5F0
+_08119528: .4byte gUnknown_083F8DF4
+ thumb_func_end sub_81193D4
+
+ thumb_func_start sub_811952C
+sub_811952C: @ 811952C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x14
+ mov r8, r0
+ movs r0, 0
+ mov r10, r0
+ movs r1, 0x5
+ mov r9, r1
+ movs r2, 0
+ str r2, [sp, 0xC]
+ mov r0, sp
+ movs r1, 0
+ movs r2, 0xA
+ bl memset
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ str r0, [sp, 0x10]
+ ldr r7, _08119610 @ =0x02019000
+ adds r0, r7, 0
+ adds r0, 0x7D
+ movs r6, 0x1
+ strb r6, [r0]
+ ldrb r4, [r7, 0x3]
+ movs r0, 0x20
+ orrs r4, r0
+ movs r0, 0x41
+ negs r0, r0
+ ands r4, r0
+ strb r4, [r7, 0x3]
+ adds r1, r7, 0
+ adds r1, 0x7E
+ movs r0, 0xFF
+ strb r0, [r1]
+ adds r5, r7, 0
+ adds r5, 0x88
+ mov r3, r8
+ movs r1, 0x34
+ ldrsh r0, [r3, r1]
+ bl __floatsisf
+ str r0, [r5]
+ adds r1, r7, 0
+ adds r1, 0x98
+ ldr r0, _08119614 @ =0x00000000
+ str r0, [r1]
+ adds r3, r7, 0
+ adds r3, 0x8C
+ ldr r2, _08119618 @ =gUnknown_083F8DF4
+ ldrb r0, [r7, 0x4]
+ lsls r0, 30
+ lsrs r1, r0, 25
+ adds r2, 0x1C
+ adds r1, r2
+ ldr r1, [r1]
+ str r1, [r3]
+ lsrs r0, 30
+ lsls r1, r0, 4
+ subs r1, r0
+ lsls r1, 1
+ adds r1, 0x21
+ lsls r4, 27
+ lsrs r4, 27
+ subs r6, r4
+ lsls r0, r6, 4
+ subs r0, r6
+ adds r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ mov r5, r10
+ mov r3, r8
+ movs r0, 0x34
+ ldrsh r2, [r3, r0]
+_081195C8:
+ cmp r1, r2
+ bge _081195D4
+ adds r0, r1, 0
+ adds r0, 0x5A
+ cmp r2, r0
+ ble _08119638
+_081195D4:
+ cmp r5, 0x3
+ beq _0811961C
+ adds r0, r1, 0
+ adds r0, 0x5A
+ lsls r0, 16
+ lsrs r1, r0, 16
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x3
+ bls _081195C8
+_081195EA:
+ ldr r0, _08119610 @ =0x02019000
+ ldrb r1, [r0, 0x3]
+ movs r0, 0x1F
+ ands r0, r1
+ cmp r0, 0
+ beq _08119664
+ mov r1, r8
+ movs r2, 0x2E
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ beq _08119658
+ movs r0, 0x98
+ lsls r0, 1
+ movs r1, 0x3F
+ negs r1, r1
+ bl PlayCry1
+ b _08119670
+ .align 2, 0
+_08119610: .4byte 0x02019000
+_08119614: .4byte 0x00000000
+_08119618: .4byte gUnknown_083F8DF4
+_0811961C:
+ movs r0, 0x1
+ mov r3, r8
+ strh r0, [r3, 0x2E]
+ ldr r2, _08119634 @ =0x02019000
+ ldrb r1, [r2, 0x3]
+ subs r0, 0x21
+ ands r0, r1
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r2, 0x3]
+ b _081195EA
+ .align 2, 0
+_08119634: .4byte 0x02019000
+_08119638:
+ lsrs r0, r5, 1
+ mov r1, r8
+ strh r0, [r1, 0x2E]
+ ldr r3, _08119654 @ =0x02019000
+ movs r1, 0x1
+ ands r1, r5
+ ldrb r2, [r3, 0x3]
+ movs r0, 0x20
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3, 0x3]
+ b _081195EA
+ .align 2, 0
+_08119654: .4byte 0x02019000
+_08119658:
+ movs r0, 0x98
+ lsls r0, 1
+ movs r1, 0x3F
+ bl PlayCry1
+ b _08119670
+_08119664:
+ movs r0, 0x99
+ lsls r0, 1
+ movs r1, 0x3F
+ negs r1, r1
+ bl PlayCry1
+_08119670:
+ movs r5, 0x2
+ ldr r4, _081196A0 @ =0x02019000
+ adds r0, r4, 0
+ adds r0, 0x7F
+ ldrb r0, [r0]
+ adds r0, 0x2
+ movs r1, 0xC
+ bl __modsi3
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldrb r1, [r4, 0x3]
+ movs r0, 0x1F
+ ands r0, r1
+ cmp r0, 0x1
+ bne _081196A4
+ ldrb r1, [r4, 0x4]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0x1
+ bne _081196A4
+ mov r0, r9
+ adds r0, 0x6
+ b _081196A8
+ .align 2, 0
+_081196A0: .4byte 0x02019000
+_081196A4:
+ mov r2, r9
+ adds r0, r2, r5
+_081196A8:
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ cmp r5, r9
+ bcs _0811970E
+ ldr r6, _08119734 @ =0x02019000
+ ldr r7, _08119738 @ =gUnknown_083F8C0C
+_081196B6:
+ lsls r0, r3, 3
+ ldr r1, _0811973C @ =gUnknown_083F8D94
+ adds r0, r1
+ ldr r1, [r6, 0x8]
+ ldr r2, [r0]
+ ands r1, r2
+ cmp r1, 0
+ bne _081196F8
+ mov r0, r10
+ adds r1, r0, 0x1
+ lsls r1, 24
+ lsrs r1, 24
+ mov r10, r1
+ add r0, sp
+ strb r5, [r0]
+ ldr r0, [sp, 0xC]
+ cmp r0, 0
+ bne _081196F8
+ ldrb r0, [r6, 0x1A]
+ lsls r0, 28
+ lsrs r0, 28
+ ldr r1, _08119740 @ =0x0201901b
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r7
+ ldr r0, [r0]
+ ands r2, r0
+ cmp r2, 0
+ beq _081196F8
+ str r5, [sp, 0xC]
+_081196F8:
+ adds r0, r3, 0x1
+ movs r1, 0xC
+ bl __modsi3
+ lsls r0, 24
+ lsrs r3, r0, 24
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, r9
+ bcc _081196B6
+_0811970E:
+ ldrb r0, [r4, 0x3]
+ lsls r0, 27
+ lsrs r0, 27
+ adds r0, 0x1
+ ldrb r1, [r4, 0x2]
+ ands r0, r1
+ cmp r0, 0
+ beq _08119756
+ ldr r2, [sp, 0xC]
+ cmp r2, 0
+ beq _08119744
+ movs r0, 0xFF
+ ldr r3, [sp, 0x10]
+ ands r0, r3
+ cmp r0, 0xBF
+ bhi _08119744
+ mov r0, r8
+ strh r2, [r0, 0x3C]
+ b _08119766
+ .align 2, 0
+_08119734: .4byte 0x02019000
+_08119738: .4byte gUnknown_083F8C0C
+_0811973C: .4byte gUnknown_083F8D94
+_08119740: .4byte 0x0201901b
+_08119744:
+ ldr r0, [sp, 0x10]
+ mov r1, r10
+ bl __modsi3
+ add r0, sp
+ ldrb r0, [r0]
+ mov r1, r8
+ strh r0, [r1, 0x3C]
+ b _08119766
+_08119756:
+ ldr r0, [sp, 0x10]
+ mov r1, r10
+ bl __modsi3
+ add r0, sp
+ ldrb r0, [r0]
+ mov r2, r8
+ strh r0, [r2, 0x3C]
+_08119766:
+ ldr r3, _0811977C @ =sub_8118CEC
+ mov r0, r8
+ str r3, [r0, 0x1C]
+ 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
+_0811977C: .4byte sub_8118CEC
+ thumb_func_end sub_811952C
+
+ thumb_func_start sub_8119780
+sub_8119780: @ 8119780
+ push {r4,lr}
+ adds r2, r0, 0
+ ldrh r0, [r2, 0x30]
+ adds r1, r0, 0x1
+ strh r1, [r2, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ movs r3, 0x34
+ ldrsh r1, [r2, r3]
+ cmp r0, r1
+ blt _081197CA
+ ldrh r0, [r2, 0x20]
+ subs r0, 0x2
+ strh r0, [r2, 0x20]
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x10
+ negs r1, r1
+ cmp r0, r1
+ bge _081197CA
+ ldr r4, _081197D0 @ =0x02019000
+ ldrb r1, [r4, 0x3]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ bne _081197BA
+ movs r0, 0x40
+ orrs r0, r1
+ strb r0, [r4, 0x3]
+_081197BA:
+ adds r0, r2, 0
+ bl DestroySprite
+ movs r0, 0
+ strb r0, [r4, 0x1]
+ ldr r0, _081197D4 @ =gUnknown_083FA61E
+ ldrh r0, [r0]
+ strh r0, [r4, 0x34]
+_081197CA:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081197D0: .4byte 0x02019000
+_081197D4: .4byte gUnknown_083FA61E
+ thumb_func_end sub_8119780
+
+ thumb_func_start sub_81197D8
+sub_81197D8: @ 81197D8
+ push {r4,lr}
+ sub sp, 0x18
+ adds r4, r0, 0
+ ldr r1, _08119854 @ =gUnknown_083FA632
+ mov r0, sp
+ movs r2, 0x18
+ bl memcpy
+ ldrh r0, [r4, 0x30]
+ adds r2, r0, 0x1
+ strh r2, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ movs r3, 0x34
+ ldrsh r1, [r4, r3]
+ cmp r0, r1
+ bge _0811985C
+ movs r0, 0x1
+ ands r2, r0
+ cmp r2, 0
+ beq _08119836
+ ldr r3, _08119858 @ =gSpriteCoordOffsetY
+ movs r0, 0x3C
+ ldrsh r2, [r4, r0]
+ lsls r2, 1
+ movs r1, 0x32
+ ldrsh r0, [r4, r1]
+ lsrs r1, r0, 31
+ adds r0, r1
+ asrs r0, 1
+ lsls r0, 3
+ adds r2, r0
+ mov r1, sp
+ adds r0, r1, r2
+ ldrh r0, [r0]
+ strh r0, [r3]
+ movs r3, 0x3C
+ ldrsh r2, [r4, r3]
+ adds r1, r2, 0x1
+ adds r0, r1, 0
+ cmp r1, 0
+ bge _0811982E
+ adds r0, r2, 0x4
+_0811982E:
+ asrs r0, 2
+ lsls r0, 2
+ subs r0, r1, r0
+ strh r0, [r4, 0x3C]
+_08119836:
+ 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 _08119884
+ .align 2, 0
+_08119854: .4byte gUnknown_083FA632
+_08119858: .4byte gSpriteCoordOffsetY
+_0811985C:
+ ldr r1, _0811988C @ =gSpriteCoordOffsetY
+ movs r0, 0
+ strh r0, [r1]
+ ldr r2, _08119890 @ =gSprites
+ ldr r0, _08119894 @ =0x02019000
+ adds r0, 0x73
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ adds r0, 0x2C
+ ldrb r2, [r0]
+ movs r1, 0x41
+ negs r1, r1
+ ands r1, r2
+ strb r1, [r0]
+ adds r0, r4, 0
+ bl DestroySprite
+_08119884:
+ add sp, 0x18
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811988C: .4byte gSpriteCoordOffsetY
+_08119890: .4byte gSprites
+_08119894: .4byte 0x02019000
+ thumb_func_end sub_81197D8
+
+ thumb_func_start sub_8119898
+sub_8119898: @ 8119898
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldrh r0, [r5, 0x30]
+ adds r0, 0x1
+ strh r0, [r5, 0x30]
+ movs r1, 0x30
+ ldrsh r0, [r5, r1]
+ bl __floatsisf
+ adds r4, r0, 0
+ ldr r1, _08119948 @ =0x3d1fbe77
+ bl __mulsf3
+ adds r1, r4, 0
+ bl __mulsf3
+ bl __fixsfsi
+ strh r0, [r5, 0x26]
+ ldr r3, _0811994C @ =0x02019000
+ ldr r2, _08119950 @ =gUnknown_083FA61E
+ ldrb r0, [r3, 0x1]
+ subs r0, 0x1
+ lsrs r1, r0, 31
+ adds r0, r1
+ asrs r0, 1
+ lsls r0, 1
+ adds r0, r2
+ ldrh r0, [r0]
+ strh r0, [r3, 0x34]
+ ldrb r0, [r3, 0x1]
+ cmp r0, 0x12
+ bhi _081198DE
+ adds r0, 0x1
+ strb r0, [r3, 0x1]
+_081198DE:
+ movs r1, 0x30
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x3C
+ ble _08119940
+ movs r0, 0
+ strh r0, [r5, 0x30]
+ ldr r3, _08119954 @ =sub_8119780
+ str r3, [r5, 0x1C]
+ ldr r2, _08119958 @ =gSprites
+ movs r0, 0x3A
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r4, r2, 0
+ adds r4, 0x1C
+ adds r0, r4
+ str r3, [r0]
+ movs r0, 0x3A
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldr r1, _0811995C @ =0x0000fffe
+ strh r1, [r0, 0x30]
+ movs r0, 0x38
+ 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]
+ movs r0, 0x38
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldr r1, _08119960 @ =sub_81197D8
+ str r1, [r0]
+ movs r0, 0xD6
+ bl m4aSongNumStart
+_08119940:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08119948: .4byte 0x3d1fbe77
+_0811994C: .4byte 0x02019000
+_08119950: .4byte gUnknown_083FA61E
+_08119954: .4byte sub_8119780
+_08119958: .4byte gSprites
+_0811995C: .4byte 0x0000fffe
+_08119960: .4byte sub_81197D8
+ thumb_func_end sub_8119898
+
+ thumb_func_start sub_8119964
+sub_8119964: @ 8119964
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x3C
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _081199E4
+ ldr r3, _08119990 @ =0x02019000
+ ldr r1, [r3, 0x38]
+ movs r2, 0x2E
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ bne _08119998
+ movs r0, 0x34
+ ldrsh r2, [r1, r0]
+ ldr r1, _08119994 @ =gUnknown_083F8DF4
+ ldrb r0, [r3, 0x4]
+ lsls r0, 30
+ lsrs r0, 25
+ adds r0, r1
+ ldrh r0, [r0, 0x8]
+ b _081199AA
+ .align 2, 0
+_08119990: .4byte 0x02019000
+_08119994: .4byte gUnknown_083F8DF4
+_08119998:
+ movs r0, 0x34
+ ldrsh r2, [r1, r0]
+ ldr r1, _081199D8 @ =gUnknown_083F8DF4
+ ldrb r0, [r3, 0x4]
+ lsls r0, 30
+ lsrs r0, 25
+ adds r0, r1
+ ldrh r0, [r0, 0x8]
+ adds r0, 0xB4
+_081199AA:
+ cmp r2, r0
+ bne _08119A78
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r1, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+ ldrh r0, [r4, 0x3C]
+ adds r0, 0x1
+ strh r0, [r4, 0x3C]
+ movs r0, 0x2B
+ bl m4aSongNumStart
+ ldr r1, _081199DC @ =0x02019000
+ movs r0, 0x1
+ strb r0, [r1, 0x1]
+ ldr r0, _081199E0 @ =gUnknown_083FA61E
+ ldrh r0, [r0]
+ strh r0, [r1, 0x34]
+ b _08119A78
+ .align 2, 0
+_081199D8: .4byte gUnknown_083F8DF4
+_081199DC: .4byte 0x02019000
+_081199E0: .4byte gUnknown_083FA61E
+_081199E4:
+ ldr r3, _08119A20 @ =0x02019000
+ ldr r2, _08119A24 @ =gUnknown_083FA61E
+ ldrb r0, [r3, 0x1]
+ subs r0, 0x1
+ lsrs r1, r0, 31
+ adds r0, r1
+ asrs r0, 1
+ lsls r0, 1
+ adds r0, r2
+ ldrh r0, [r0]
+ strh r0, [r3, 0x34]
+ ldrb r0, [r3, 0x1]
+ cmp r0, 0x12
+ bhi _08119A04
+ adds r0, 0x1
+ strb r0, [r3, 0x1]
+_08119A04:
+ ldr r1, [r3, 0x38]
+ movs r2, 0x2E
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ bne _08119A2C
+ movs r0, 0x34
+ ldrsh r2, [r1, r0]
+ ldr r1, _08119A28 @ =gUnknown_083F8DF4
+ ldrb r0, [r3, 0x4]
+ lsls r0, 30
+ lsrs r0, 25
+ adds r0, r1
+ ldrh r0, [r0, 0xA]
+ b _08119A3E
+ .align 2, 0
+_08119A20: .4byte 0x02019000
+_08119A24: .4byte gUnknown_083FA61E
+_08119A28: .4byte gUnknown_083F8DF4
+_08119A2C:
+ movs r0, 0x34
+ ldrsh r2, [r1, r0]
+ ldr r1, _08119A80 @ =gUnknown_083F8DF4
+ ldrb r0, [r3, 0x4]
+ lsls r0, 30
+ lsrs r0, 25
+ adds r0, r1
+ ldrh r0, [r0, 0xA]
+ adds r0, 0xB4
+_08119A3E:
+ cmp r2, r0
+ bne _08119A78
+ ldr r2, _08119A84 @ =gSprites
+ movs r0, 0x36
+ 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, _08119A88 @ =sub_8119898
+ str r1, [r0]
+ movs r0, 0x36
+ ldrsh r1, [r4, 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]
+ ldr r0, _08119A8C @ =SpriteCallbackDummy
+ str r0, [r4, 0x1C]
+ movs r0, 0
+ strh r0, [r4, 0x3C]
+_08119A78:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08119A80: .4byte gUnknown_083F8DF4
+_08119A84: .4byte gSprites
+_08119A88: .4byte sub_8119898
+_08119A8C: .4byte SpriteCallbackDummy
+ thumb_func_end sub_8119964
+
+ thumb_func_start sub_8119A90
+sub_8119A90: @ 8119A90
+ adds r0, 0x3E
+ ldrb r3, [r0]
+ lsls r1, r3, 29
+ lsrs r1, 31
+ movs r2, 0x1
+ eors r2, r1
+ lsls r2, 2
+ movs r1, 0x5
+ negs r1, r1
+ ands r1, r3
+ orrs r1, r2
+ strb r1, [r0]
+ bx lr
+ thumb_func_end sub_8119A90
+
+ thumb_func_start sub_8119AAC
+sub_8119AAC: @ 8119AAC
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldrh r2, [r4, 0x22]
+ movs r0, 0x22
+ ldrsh r1, [r4, r0]
+ movs r0, 0x10
+ negs r0, r0
+ cmp r1, r0
+ ble _08119AC4
+ subs r0, r2, 0x1
+ strh r0, [r4, 0x22]
+ b _08119B12
+_08119AC4:
+ ldr r0, _08119B18 @ =SpriteCallbackDummy
+ str r0, [r4, 0x1C]
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ subs r2, 0x12
+ ldrb r0, [r2]
+ movs r1, 0x40
+ orrs r0, r1
+ strb r0, [r2]
+ movs r0, 0x5E
+ bl m4aSongNumStop
+ adds r0, r4, 0
+ bl DestroySprite
+ ldr r5, _08119B1C @ =gSprites
+ ldr r4, _08119B20 @ =0x02019000
+ adds r4, 0x74
+ ldrb r1, [r4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldrb r0, [r0, 0x3]
+ lsls r0, 26
+ lsrs r0, 27
+ bl FreeOamMatrix
+ ldrb r1, [r4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ bl DestroySprite
+_08119B12:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08119B18: .4byte SpriteCallbackDummy
+_08119B1C: .4byte gSprites
+_08119B20: .4byte 0x02019000
+ thumb_func_end sub_8119AAC
+
+ thumb_func_start sub_8119B24
+sub_8119B24: @ 8119B24
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r1, [r4, 0x30]
+ movs r2, 0x30
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ blt _08119B4E
+ subs r1, 0x1
+ strh r1, [r4, 0x30]
+ ldrh r0, [r4, 0x22]
+ subs r0, 0x1
+ strh r0, [r4, 0x22]
+ lsls r1, 16
+ cmp r1, 0
+ bne _08119BB8
+ adds r0, r4, 0
+ adds r0, 0x2B
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _08119BB8
+ b _08119B74
+_08119B4E:
+ ldrh r1, [r4, 0x34]
+ movs r2, 0x34
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ blt _08119B84
+ subs r0, r1, 0x1
+ strh r0, [r4, 0x34]
+ adds r0, r4, 0
+ adds r0, 0x2C
+ ldrb r1, [r0]
+ movs r0, 0x3F
+ ands r0, r1
+ cmp r0, 0
+ bne _08119BB8
+ adds r0, r4, 0
+ adds r0, 0x2B
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _08119B7C
+_08119B74:
+ ldrh r0, [r4, 0x26]
+ adds r0, 0x1
+ strh r0, [r4, 0x26]
+ b _08119BB8
+_08119B7C:
+ ldrh r0, [r4, 0x26]
+ subs r0, 0x1
+ strh r0, [r4, 0x26]
+ b _08119BB8
+_08119B84:
+ movs r0, 0x2B
+ bl m4aSongNumStart
+ ldr r0, _08119BC0 @ =0x02019000
+ ldr r0, [r0, 0x38]
+ ldrh r1, [r0, 0x2E]
+ adds r1, 0x4
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl StartSpriteAnim
+ ldr r0, _08119BC4 @ =sub_8119AAC
+ str r0, [r4, 0x1C]
+ ldr r2, _08119BC8 @ =gSprites
+ movs r0, 0x3A
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ adds r0, 0x2C
+ ldrb r2, [r0]
+ movs r1, 0x7F
+ ands r1, r2
+ strb r1, [r0]
+_08119BB8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08119BC0: .4byte 0x02019000
+_08119BC4: .4byte sub_8119AAC
+_08119BC8: .4byte gSprites
+ thumb_func_end sub_8119B24
+
+ thumb_func_start sub_8119BCC
+sub_8119BCC: @ 8119BCC
+ push {r4,r5,lr}
+ sub sp, 0x14
+ adds r4, r0, 0
+ ldr r1, _08119C44 @ =gUnknown_083FA64A
+ mov r0, sp
+ movs r2, 0x2
+ bl memcpy
+ add r5, sp, 0x4
+ ldr r1, _08119C48 @ =gUnknown_083FA64C
+ adds r0, r5, 0
+ movs r2, 0x10
+ bl memcpy
+ ldrh r0, [r4, 0x30]
+ subs r1, r0, 0x1
+ strh r1, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x7
+ ble _08119C5C
+ ldr r0, _08119C4C @ =0x02019000
+ ldr r0, [r0, 0x38]
+ movs r1, 0x2E
+ ldrsh r0, [r0, r1]
+ add r0, sp
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ lsls r0, 1
+ ldrh r2, [r4, 0x20]
+ adds r0, r2
+ strh r0, [r4, 0x20]
+ bl IsSEPlaying
+ lsls r0, 24
+ cmp r0, 0
+ beq _08119CF6
+ movs r1, 0x20
+ ldrsh r0, [r4, r1]
+ movs r4, 0x74
+ subs r4, r0
+ lsrs r0, r4, 31
+ adds r4, r0
+ asrs r4, 1
+ negs r4, r4
+ ldr r0, _08119C50 @ =gMPlay_SE1
+ ldr r5, _08119C54 @ =0x0000ffff
+ lsls r4, 24
+ asrs r4, 24
+ adds r1, r5, 0
+ adds r2, r4, 0
+ bl m4aMPlayPanpotControl
+ ldr r0, _08119C58 @ =gMPlay_SE2
+ adds r1, r5, 0
+ adds r2, r4, 0
+ bl m4aMPlayPanpotControl
+ b _08119CF6
+ .align 2, 0
+_08119C44: .4byte gUnknown_083FA64A
+_08119C48: .4byte gUnknown_083FA64C
+_08119C4C: .4byte 0x02019000
+_08119C50: .4byte gMPlay_SE1
+_08119C54: .4byte 0x0000ffff
+_08119C58: .4byte gMPlay_SE2
+_08119C5C:
+ lsls r0, r1, 16
+ cmp r0, 0
+ blt _08119CAC
+ ldr r0, _08119CA8 @ =0x02019000
+ ldr r0, [r0, 0x38]
+ movs r2, 0x2E
+ ldrsh r0, [r0, r2]
+ add r0, sp
+ movs r2, 0
+ ldrsb r2, [r0, r2]
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ movs r1, 0x7
+ subs r0, r1, r0
+ lsls r0, 1
+ adds r0, r5, r0
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ muls r0, r2
+ ldrh r2, [r4, 0x20]
+ adds r0, r2
+ strh r0, [r4, 0x20]
+ movs r2, 0x30
+ ldrsh r0, [r4, r2]
+ subs r1, r0
+ lsls r1, 1
+ mov r0, sp
+ adds r0, 0x5
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r4, 0x22]
+ b _08119CF6
+ .align 2, 0
+_08119CA8: .4byte 0x02019000
+_08119CAC:
+ movs r0, 0x5E
+ bl m4aSongNumStartOrChange
+ ldr r0, _08119CCC @ =0x02019000
+ ldr r0, [r0, 0x38]
+ movs r2, 0x2E
+ ldrsh r0, [r0, r2]
+ cmp r0, 0
+ bne _08119CD0
+ movs r0, 0x98
+ lsls r0, 1
+ movs r1, 0x3F
+ bl PlayCry1
+ b _08119CDC
+ .align 2, 0
+_08119CCC: .4byte 0x02019000
+_08119CD0:
+ movs r0, 0x98
+ lsls r0, 1
+ movs r1, 0x3F
+ negs r1, r1
+ bl PlayCry1
+_08119CDC:
+ ldr r0, _08119D00 @ =0x02019000
+ ldr r0, [r0, 0x38]
+ ldrh r1, [r0, 0x2E]
+ adds r1, 0x2
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl StartSpriteAnim
+ movs r0, 0x2D
+ strh r0, [r4, 0x30]
+ ldr r0, _08119D04 @ =sub_8119B24
+ str r0, [r4, 0x1C]
+_08119CF6:
+ add sp, 0x14
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08119D00: .4byte 0x02019000
+_08119D04: .4byte sub_8119B24
+ thumb_func_end sub_8119BCC
+
+ thumb_func_start sub_8119D08
+sub_8119D08: @ 8119D08
+ push {r4,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ ldr r1, _08119D64 @ =gUnknown_083FA64A
+ mov r0, sp
+ movs r2, 0x2
+ bl memcpy
+ ldrh r0, [r4, 0x30]
+ subs r1, r0, 0x1
+ strh r1, [r4, 0x30]
+ lsls r0, 16
+ cmp r0, 0
+ blt _08119D70
+ ldr r0, _08119D68 @ =0x02019000
+ ldr r0, [r0, 0x38]
+ movs r1, 0x2E
+ ldrsh r0, [r0, r1]
+ add r0, sp
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ lsls r0, 1
+ ldrh r2, [r4, 0x20]
+ adds r0, r2
+ strh r0, [r4, 0x20]
+ ldr r1, _08119D6C @ =gSprites
+ movs r2, 0x3A
+ ldrsh r0, [r4, 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]
+ b _08119D74
+ .align 2, 0
+_08119D64: .4byte gUnknown_083FA64A
+_08119D68: .4byte 0x02019000
+_08119D6C: .4byte gSprites
+_08119D70:
+ ldr r0, _08119D7C @ =sub_8119A90
+ str r0, [r4, 0x1C]
+_08119D74:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08119D7C: .4byte sub_8119A90
+ thumb_func_end sub_8119D08
+
+ thumb_func_start sub_8119D80
+sub_8119D80: @ 8119D80
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r3, _08119DB8 @ =0x02019000
+ ldr r1, [r3, 0x38]
+ movs r2, 0x2E
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ bne _08119DC4
+ movs r0, 0x34
+ ldrsh r2, [r1, r0]
+ ldr r1, _08119DBC @ =gUnknown_083F8DF4
+ ldrb r0, [r3, 0x4]
+ lsls r0, 30
+ lsrs r0, 25
+ adds r0, r1
+ ldrh r0, [r0, 0x12]
+ adds r0, 0x5A
+ cmp r2, r0
+ bne _08119E26
+ ldr r2, _08119DC0 @ =gSprites
+ movs r0, 0x3A
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ movs r3, 0x34
+ b _08119DEE
+ .align 2, 0
+_08119DB8: .4byte 0x02019000
+_08119DBC: .4byte gUnknown_083F8DF4
+_08119DC0: .4byte gSprites
+_08119DC4:
+ movs r0, 0x34
+ ldrsh r2, [r1, r0]
+ ldr r1, _08119E2C @ =gUnknown_083F8DF4
+ ldrb r0, [r3, 0x4]
+ lsls r0, 30
+ lsrs r0, 25
+ adds r0, r1
+ ldrh r0, [r0, 0x14]
+ movs r1, 0x87
+ lsls r1, 1
+ adds r0, r1
+ cmp r2, r0
+ bne _08119E26
+ ldr r2, _08119E30 @ =gSprites
+ movs r0, 0x3A
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ movs r3, 0x2E
+_08119DEE:
+ strh r3, [r0, 0x30]
+ movs r0, 0x36
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ strh r3, [r0, 0x30]
+ movs r0, 0x3A
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r2, 0x1C
+ adds r0, r2
+ ldr r1, _08119E34 @ =sub_8119D08
+ str r1, [r0]
+ movs r0, 0x36
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldr r1, _08119E38 @ =sub_8119BCC
+ str r1, [r0]
+ movs r0, 0x2B
+ bl m4aSongNumStart
+_08119E26:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08119E2C: .4byte gUnknown_083F8DF4
+_08119E30: .4byte gSprites
+_08119E34: .4byte sub_8119D08
+_08119E38: .4byte sub_8119BCC
+ thumb_func_end sub_8119D80
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/roulette_util.s b/asm/roulette_util.s
new file mode 100644
index 000000000..569a42712
--- /dev/null
+++ b/asm/roulette_util.s
@@ -0,0 +1,780 @@
+ .include "constants/gba_constants.s"
+ .include "constants/species_constants.s"
+ .include "asm/macros.s"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_8124918
+sub_8124918: @ 8124918
+ push {lr}
+ movs r1, 0
+ strb r1, [r0]
+ strh r1, [r0, 0x2]
+ adds r0, 0x4
+ movs r2, 0xC0
+ bl memset
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8124918
+
+ thumb_func_start sub_812492C
+sub_812492C: @ 812492C
+ push {r4-r7,lr}
+ adds r3, r0, 0
+ lsls r1, 24
+ lsrs r6, r1, 24
+ cmp r6, 0xF
+ bhi _08124948
+ lsls r0, r6, 1
+ adds r0, r6
+ lsls r0, 2
+ adds r5, r3, r0
+ ldrb r7, [r5, 0x4]
+ lsrs r0, r7, 7
+ cmp r0, 0
+ beq _0812494C
+_08124948:
+ movs r0, 0xFF
+ b _081249AA
+_0812494C:
+ ldrh r0, [r2]
+ movs r4, 0
+ strh r0, [r5, 0x8]
+ ldrh r0, [r2, 0x2]
+ strh r0, [r5, 0xA]
+ ldrb r0, [r2, 0x4]
+ strb r0, [r5, 0xC]
+ ldrb r0, [r2, 0x5]
+ strb r0, [r5, 0xD]
+ ldrb r0, [r2, 0x6]
+ strb r0, [r5, 0xE]
+ ldrb r3, [r2, 0x7]
+ lsls r0, r3, 27
+ lsrs r0, 27
+ ldrb r2, [r5, 0xF]
+ movs r1, 0x20
+ negs r1, r1
+ ands r1, r2
+ orrs r1, r0
+ movs r0, 0x60
+ ands r0, r3
+ movs r2, 0x61
+ negs r2, r2
+ ands r1, r2
+ orrs r1, r0
+ lsls r3, 24
+ asrs r3, 31
+ lsls r3, 7
+ movs r0, 0x7F
+ ands r1, r0
+ orrs r1, r3
+ strb r1, [r5, 0xF]
+ subs r0, 0xFF
+ ands r0, r7
+ movs r2, 0x80
+ orrs r0, r2
+ strb r0, [r5, 0x4]
+ strb r4, [r5, 0x6]
+ strb r4, [r5, 0x5]
+ lsls r1, 24
+ cmp r1, 0
+ bge _081249A4
+ movs r0, 0xFF
+ b _081249A6
+_081249A4:
+ movs r0, 0x1
+_081249A6:
+ strb r0, [r5, 0x7]
+ adds r0, r6, 0
+_081249AA:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_812492C
+
+ thumb_func_start unref_sub_81249B0
+unref_sub_81249B0: @ 81249B0
+ push {r4,lr}
+ adds r2, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r4, r1, 0
+ cmp r4, 0xF
+ bhi _081249DC
+ lsls r0, r4, 1
+ adds r0, r4
+ lsls r0, 2
+ adds r1, r2, r0
+ ldrb r0, [r1, 0x4]
+ lsrs r0, 7
+ cmp r0, 0
+ beq _081249DC
+ adds r0, r1, 0x4
+ movs r1, 0
+ movs r2, 0xC
+ bl memset
+ adds r0, r4, 0
+ b _081249DE
+_081249DC:
+ movs r0, 0xFF
+_081249DE:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end unref_sub_81249B0
+
+ thumb_func_start sub_81249E4
+sub_81249E4: @ 81249E4
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ adds r5, r0, 0
+ movs r0, 0
+ mov r12, r0
+ ldrb r1, [r5, 0x8]
+ cmp r12, r1
+ bcc _081249FC
+ b _08124B94
+_081249FC:
+ movs r7, 0x1F
+ ldr r0, _08124A2C @ =0xfffffc1f
+ mov r10, r0
+ movs r1, 0x7D
+ negs r1, r1
+ mov r9, r1
+ movs r0, 0x1F
+ mov r8, r0
+_08124A0C:
+ ldrh r0, [r5, 0x6]
+ add r0, r12
+ lsls r0, 1
+ ldr r1, _08124A30 @ =gPlttBufferFaded
+ adds r3, r0, r1
+ ldr r1, _08124A34 @ =gPlttBufferUnfaded
+ adds r6, r0, r1
+ ldrb r0, [r5]
+ lsls r0, 25
+ lsrs r0, 25
+ cmp r0, 0x1
+ beq _08124A38
+ cmp r0, 0x2
+ beq _08124A96
+ b _08124B82
+ .align 2, 0
+_08124A2C: .4byte 0xfffffc1f
+_08124A30: .4byte gPlttBufferFaded
+_08124A34: .4byte gPlttBufferUnfaded
+_08124A38:
+ ldr r0, [r3]
+ lsls r2, r0, 27
+ lsrs r0, r2, 27
+ movs r1, 0x3
+ ldrsb r1, [r5, r1]
+ adds r0, r1
+ cmp r0, 0x1F
+ bhi _08124A5A
+ lsrs r0, r2, 27
+ adds r0, r1
+ ands r0, r7
+ ldrb r2, [r3]
+ movs r1, 0x20
+ negs r1, r1
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r3]
+_08124A5A:
+ ldr r0, [r3]
+ lsls r2, r0, 22
+ lsrs r0, r2, 27
+ movs r1, 0x3
+ ldrsb r1, [r5, r1]
+ adds r0, r1
+ cmp r0, 0x1F
+ bhi _08124A7E
+ lsrs r0, r2, 27
+ adds r0, r1
+ mov r1, r8
+ ands r0, r1
+ lsls r0, 5
+ ldrh r2, [r3]
+ mov r1, r10
+ ands r1, r2
+ orrs r1, r0
+ strh r1, [r3]
+_08124A7E:
+ ldr r0, [r3]
+ lsls r2, r0, 17
+ lsrs r0, r2, 27
+ movs r1, 0x3
+ ldrsb r1, [r5, r1]
+ adds r0, r1
+ cmp r0, 0x1F
+ bls _08124A90
+ b _08124B82
+_08124A90:
+ lsrs r0, r2, 27
+ adds r0, r1
+ b _08124B74
+_08124A96:
+ movs r0, 0x3
+ ldrsb r0, [r5, r0]
+ cmp r0, 0
+ bge _08124B08
+ ldr r0, [r3]
+ lsls r4, r0, 27
+ lsrs r1, r4, 27
+ movs r2, 0x3
+ ldrsb r2, [r5, r2]
+ adds r1, r2
+ ldr r0, [r6]
+ lsls r0, 27
+ lsrs r0, 27
+ cmp r1, r0
+ blt _08124AC6
+ lsrs r0, r4, 27
+ adds r0, r2
+ ands r0, r7
+ ldrb r2, [r3]
+ movs r1, 0x20
+ negs r1, r1
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r3]
+_08124AC6:
+ ldr r0, [r3]
+ lsls r4, r0, 22
+ lsrs r1, r4, 27
+ movs r2, 0x3
+ ldrsb r2, [r5, r2]
+ adds r1, r2
+ ldr r0, [r6]
+ lsls r0, 22
+ lsrs r0, 27
+ cmp r1, r0
+ blt _08124AF0
+ lsrs r0, r4, 27
+ adds r0, r2
+ mov r1, r8
+ ands r0, r1
+ lsls r0, 5
+ ldrh r2, [r3]
+ mov r1, r10
+ ands r1, r2
+ orrs r1, r0
+ strh r1, [r3]
+_08124AF0:
+ ldr r0, [r3]
+ lsls r4, r0, 17
+ lsrs r1, r4, 27
+ movs r2, 0x3
+ ldrsb r2, [r5, r2]
+ adds r1, r2
+ ldr r0, [r6]
+ lsls r0, 17
+ lsrs r0, 27
+ cmp r1, r0
+ blt _08124B82
+ b _08124B70
+_08124B08:
+ ldr r0, [r3]
+ lsls r4, r0, 27
+ lsrs r1, r4, 27
+ movs r2, 0x3
+ ldrsb r2, [r5, r2]
+ adds r1, r2
+ ldr r0, [r6]
+ lsls r0, 27
+ lsrs r0, 27
+ cmp r1, r0
+ bgt _08124B30
+ lsrs r0, r4, 27
+ adds r0, r2
+ ands r0, r7
+ ldrb r2, [r3]
+ movs r1, 0x20
+ negs r1, r1
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r3]
+_08124B30:
+ ldr r0, [r3]
+ lsls r4, r0, 22
+ lsrs r1, r4, 27
+ movs r2, 0x3
+ ldrsb r2, [r5, r2]
+ adds r1, r2
+ ldr r0, [r6]
+ lsls r0, 22
+ lsrs r0, 27
+ cmp r1, r0
+ bgt _08124B5A
+ lsrs r0, r4, 27
+ adds r0, r2
+ mov r1, r8
+ ands r0, r1
+ lsls r0, 5
+ ldrh r2, [r3]
+ mov r1, r10
+ ands r1, r2
+ orrs r1, r0
+ strh r1, [r3]
+_08124B5A:
+ ldr r0, [r3]
+ lsls r4, r0, 17
+ lsrs r1, r4, 27
+ movs r2, 0x3
+ ldrsb r2, [r5, r2]
+ adds r1, r2
+ ldr r0, [r6]
+ lsls r0, 17
+ lsrs r0, 27
+ cmp r1, r0
+ bgt _08124B82
+_08124B70:
+ lsrs r0, r4, 27
+ adds r0, r2
+_08124B74:
+ ands r0, r7
+ lsls r0, 2
+ ldrb r2, [r3, 0x1]
+ mov r1, r9
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r3, 0x1]
+_08124B82:
+ mov r0, r12
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r12, r0
+ ldrb r0, [r5, 0x8]
+ cmp r12, r0
+ bcs _08124B94
+ b _08124A0C
+_08124B94:
+ ldrb r1, [r5, 0x2]
+ adds r0, r1, 0x1
+ strb r0, [r5, 0x2]
+ ldrb r0, [r5, 0xB]
+ lsls r0, 27
+ lsls r1, 24
+ asrs r0, 3
+ cmp r1, r0
+ beq _08124BAA
+ movs r0, 0
+ b _08124BDE
+_08124BAA:
+ movs r0, 0
+ strb r0, [r5, 0x2]
+ movs r0, 0x3
+ ldrsb r0, [r5, r0]
+ negs r0, r0
+ strb r0, [r5, 0x3]
+ ldrb r2, [r5]
+ movs r1, 0x7F
+ movs r0, 0x7F
+ ands r0, r2
+ cmp r0, 0x1
+ bne _08124BCA
+ lsls r0, r2, 25
+ lsrs r0, 25
+ adds r0, 0x1
+ b _08124BD0
+_08124BCA:
+ lsls r0, r2, 25
+ lsrs r0, 25
+ subs r0, 0x1
+_08124BD0:
+ ands r0, r1
+ movs r1, 0x80
+ negs r1, r1
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r5]
+ movs r0, 0x1
+_08124BDE:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81249E4
+
+ thumb_func_start sub_8124BEC
+sub_8124BEC: @ 8124BEC
+ push {r4,r5,lr}
+ adds r3, r0, 0
+ movs r2, 0
+ ldrb r0, [r3]
+ lsls r0, 25
+ lsrs r0, 25
+ cmp r0, 0x1
+ beq _08124C02
+ cmp r0, 0x2
+ beq _08124C30
+ b _08124C6A
+_08124C02:
+ ldrb r0, [r3, 0x8]
+ cmp r2, r0
+ bcs _08124C22
+ ldr r4, _08124C2C @ =gPlttBufferFaded
+_08124C0A:
+ ldrh r0, [r3, 0x6]
+ adds r0, r2
+ lsls r0, 1
+ adds r0, r4
+ ldrh r1, [r3, 0x4]
+ strh r1, [r0]
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldrb r0, [r3, 0x8]
+ cmp r2, r0
+ bcc _08124C0A
+_08124C22:
+ ldrb r2, [r3]
+ lsls r1, r2, 25
+ lsrs r1, 25
+ adds r1, 0x1
+ b _08124C5C
+ .align 2, 0
+_08124C2C: .4byte gPlttBufferFaded
+_08124C30:
+ ldrb r0, [r3, 0x8]
+ cmp r2, r0
+ bcs _08124C54
+ ldr r5, _08124C74 @ =gPlttBufferFaded
+ ldr r4, _08124C78 @ =gPlttBufferUnfaded
+_08124C3A:
+ ldrh r0, [r3, 0x6]
+ adds r0, r2
+ lsls r0, 1
+ adds r1, r0, r5
+ adds r0, r4
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldrb r0, [r3, 0x8]
+ cmp r2, r0
+ bcc _08124C3A
+_08124C54:
+ ldrb r2, [r3]
+ lsls r1, r2, 25
+ lsrs r1, 25
+ subs r1, 0x1
+_08124C5C:
+ movs r0, 0x7F
+ ands r1, r0
+ movs r0, 0x80
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+_08124C6A:
+ movs r0, 0x1
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08124C74: .4byte gPlttBufferFaded
+_08124C78: .4byte gPlttBufferUnfaded
+ thumb_func_end sub_8124BEC
+
+ thumb_func_start task_tutorial_controls_fadein
+task_tutorial_controls_fadein: @ 8124C7C
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ movs r5, 0
+ ldrb r0, [r4]
+ cmp r0, 0
+ beq _08124CE0
+_08124C88:
+ ldrh r0, [r4, 0x2]
+ asrs r0, r5
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08124CD6
+ lsls r1, r5, 1
+ adds r0, r1, r5
+ lsls r3, r0, 2
+ adds r2, r4, r3
+ ldrb r0, [r2, 0x5]
+ subs r0, 0x1
+ strb r0, [r2, 0x5]
+ lsls r0, 24
+ lsrs r0, 24
+ adds r6, r1, 0
+ cmp r0, 0xFF
+ bne _08124CD6
+ ldrh r0, [r2, 0x8]
+ movs r2, 0x80
+ lsls r2, 8
+ adds r1, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _08124CC4
+ adds r0, r3, 0x4
+ adds r0, r4, r0
+ bl sub_81249E4
+ b _08124CCC
+_08124CC4:
+ adds r0, r3, 0x4
+ adds r0, r4, r0
+ bl sub_8124BEC
+_08124CCC:
+ adds r0, r6, r5
+ lsls r0, 2
+ adds r0, r4, r0
+ ldrb r1, [r0, 0xD]
+ strb r1, [r0, 0x5]
+_08124CD6:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0xF
+ bls _08124C88
+_08124CE0:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end task_tutorial_controls_fadein
+
+ thumb_func_start sub_8124CE8
+sub_8124CE8: @ 8124CE8
+ push {r4-r7,lr}
+ adds r3, r0, 0
+ lsls r1, 16
+ lsrs r6, r1, 16
+ movs r4, 0
+ ldrb r0, [r3]
+ adds r0, 0x1
+ strb r0, [r3]
+ movs r5, 0x1
+ movs r7, 0x80
+ negs r7, r7
+_08124CFE:
+ adds r0, r6, 0
+ asrs r0, r4
+ ands r0, r5
+ cmp r0, 0
+ beq _08124D2C
+ lsls r0, r4, 1
+ adds r0, r4
+ lsls r0, 2
+ adds r2, r3, r0
+ ldrb r0, [r2, 0x4]
+ lsrs r0, 7
+ cmp r0, 0
+ beq _08124D2C
+ adds r0, r5, 0
+ lsls r0, r4
+ ldrh r1, [r3, 0x2]
+ orrs r0, r1
+ strh r0, [r3, 0x2]
+ ldrb r1, [r2, 0x4]
+ adds r0, r7, 0
+ ands r0, r1
+ orrs r0, r5
+ strb r0, [r2, 0x4]
+_08124D2C:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0xF
+ bls _08124CFE
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8124CE8
+
+ thumb_func_start sub_8124D3C
+sub_8124D3C: @ 8124D3C
+ push {r4-r7,lr}
+ sub sp, 0x4
+ adds r6, r0, 0
+ lsls r1, 16
+ lsrs r7, r1, 16
+ movs r5, 0
+ movs r3, 0x1
+_08124D4A:
+ ldrh r0, [r6, 0x2]
+ asrs r0, r5
+ ands r0, r3
+ cmp r0, 0
+ beq _08124DB2
+ lsls r0, r5, 1
+ adds r0, r5
+ lsls r0, 2
+ adds r4, r6, r0
+ ldrb r0, [r4, 0x4]
+ lsrs r0, 7
+ cmp r0, 0
+ beq _08124DB2
+ adds r0, r7, 0
+ asrs r0, r5
+ ands r0, r3
+ cmp r0, 0
+ beq _08124DB2
+ ldrh r1, [r4, 0xA]
+ lsls r1, 1
+ ldr r0, _08124DA8 @ =gPlttBufferFaded
+ adds r0, r1, r0
+ ldr r2, _08124DAC @ =gPlttBufferUnfaded
+ adds r1, r2
+ ldrb r2, [r4, 0xC]
+ lsls r2, 1
+ str r3, [sp]
+ bl memcpy
+ ldrb r0, [r4, 0x4]
+ movs r2, 0x80
+ negs r2, r2
+ adds r1, r2, 0
+ ands r0, r1
+ strb r0, [r4, 0x4]
+ movs r0, 0
+ strb r0, [r4, 0x6]
+ strb r0, [r4, 0x5]
+ ldrb r0, [r4, 0xF]
+ lsls r0, 24
+ ldr r3, [sp]
+ cmp r0, 0
+ bge _08124DB0
+ movs r0, 0xFF
+ strb r0, [r4, 0x7]
+ b _08124DB2
+ .align 2, 0
+_08124DA8: .4byte gPlttBufferFaded
+_08124DAC: .4byte gPlttBufferUnfaded
+_08124DB0:
+ strb r3, [r4, 0x7]
+_08124DB2:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0xF
+ bls _08124D4A
+ ldr r0, _08124DC8 @ =0x0000ffff
+ cmp r7, r0
+ bne _08124DCC
+ movs r0, 0
+ strb r0, [r6]
+ b _08124DD0
+ .align 2, 0
+_08124DC8: .4byte 0x0000ffff
+_08124DCC:
+ ldrh r0, [r6, 0x2]
+ bics r0, r7
+_08124DD0:
+ strh r0, [r6, 0x2]
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8124D3C
+
+ thumb_func_start sub_8124DDC
+sub_8124DDC: @ 8124DDC
+ push {r4-r7,lr}
+ adds r6, r0, 0
+ ldr r0, [sp, 0x14]
+ ldr r4, [sp, 0x18]
+ lsls r1, 16
+ lsrs r7, r1, 16
+ lsls r2, 24
+ lsrs r2, 24
+ lsls r3, 24
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r4, 24
+ lsrs r4, 24
+ movs r1, 0
+ lsrs r3, 19
+ adds r3, r2
+ lsls r3, 1
+ adds r6, r3
+ cmp r1, r4
+ bcs _08124E26
+_08124E04:
+ lsls r0, r1, 6
+ adds r2, r6, r0
+ movs r0, 0
+ adds r3, r1, 0x1
+ cmp r0, r5
+ bcs _08124E1E
+_08124E10:
+ strh r7, [r2]
+ adds r2, 0x2
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, r5
+ bcc _08124E10
+_08124E1E:
+ lsls r0, r3, 24
+ lsrs r1, r0, 24
+ cmp r1, r4
+ bcc _08124E04
+_08124E26:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8124DDC
+
+ thumb_func_start sub_8124E2C
+sub_8124E2C: @ 8124E2C
+ push {r4-r7,lr}
+ adds r7, r0, 0
+ ldr r0, [sp, 0x14]
+ ldr r4, [sp, 0x18]
+ lsls r2, 24
+ lsrs r2, 24
+ lsls r3, 24
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r4, 24
+ lsrs r6, r4, 24
+ movs r4, 0
+ lsrs r3, 19
+ adds r3, r2
+ lsls r3, 1
+ adds r7, r3
+ cmp r4, r6
+ bcs _08124E76
+_08124E50:
+ lsls r0, r4, 6
+ adds r2, r7, r0
+ movs r3, 0
+ adds r4, 0x1
+ cmp r3, r5
+ bcs _08124E6E
+_08124E5C:
+ ldrh r0, [r1]
+ strh r0, [r2]
+ adds r1, 0x2
+ adds r2, 0x2
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, r5
+ bcc _08124E5C
+_08124E6E:
+ lsls r0, r4, 24
+ lsrs r4, r0, 24
+ cmp r4, r6
+ bcc _08124E50
+_08124E76:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8124E2C
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/unused_8124F94.s b/asm/unused_8124F94.s
new file mode 100644
index 000000000..56b90ca23
--- /dev/null
+++ b/asm/unused_8124F94.s
@@ -0,0 +1,285 @@
+ .include "constants/gba_constants.s"
+ .include "constants/species_constants.s"
+ .include "asm/macros.s"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start unref_sub_8124F94
+unref_sub_8124F94: @ 8124F94
+ sub sp, 0x4
+ movs r3, 0
+ strb r3, [r0, 0x1]
+ strb r3, [r0]
+ strh r3, [r0, 0x2]
+ movs r1, 0xC0
+ lsls r1, 19
+ str r1, [r0, 0x4]
+ mov r1, sp
+ strh r3, [r1]
+ ldr r2, _08124FCC @ =0x040000d4
+ str r1, [r2]
+ adds r1, r0, 0
+ adds r1, 0x8
+ str r1, [r2, 0x4]
+ ldr r1, _08124FD0 @ =0x81000040
+ str r1, [r2, 0x8]
+ ldr r1, [r2, 0x8]
+ mov r1, sp
+ strh r3, [r1]
+ str r1, [r2]
+ adds r0, 0x88
+ str r0, [r2, 0x4]
+ ldr r0, _08124FD4 @ =0x810000c0
+ str r0, [r2, 0x8]
+ ldr r0, [r2, 0x8]
+ add sp, 0x4
+ bx lr
+ .align 2, 0
+_08124FCC: .4byte 0x040000d4
+_08124FD0: .4byte 0x81000040
+_08124FD4: .4byte 0x810000c0
+ thumb_func_end unref_sub_8124F94
+
+ thumb_func_start unref_sub_8124FD8
+unref_sub_8124FD8: @ 8124FD8
+ push {r4-r7,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ ldr r7, _08124FE4 @ =0x040000d4
+ b _0812508A
+ .align 2, 0
+_08124FE4: .4byte 0x040000d4
+_08124FE8:
+ ldrb r0, [r4, 0x1]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ adds r0, r4, 0
+ adds r0, 0x88
+ adds r0, r1
+ str r3, [r0]
+ ldrb r1, [r4, 0x1]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4, r0
+ ldrb r1, [r5, 0x6]
+ adds r0, 0x8E
+ strb r1, [r0]
+ ldrb r1, [r4, 0x1]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4, r0
+ ldrb r1, [r5, 0x4]
+ adds r0, 0x8C
+ strb r1, [r0]
+ ldrb r1, [r4, 0x1]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4, r0
+ ldrb r1, [r5, 0x5]
+ adds r0, 0x8D
+ strb r1, [r0]
+ ldrb r1, [r5, 0x4]
+ ldrb r0, [r5, 0x5]
+ adds r6, r1, 0
+ muls r6, r0
+ ldrh r2, [r4, 0x2]
+ adds r1, r2, r6
+ movs r0, 0x80
+ lsls r0, 3
+ cmp r1, r0
+ ble _08125040
+ movs r0, 0x2
+ b _0812509C
+_08125040:
+ ldrh r0, [r5, 0x8]
+ cmp r0, 0
+ bne _08125060
+ str r3, [r7]
+ ldrh r1, [r4, 0x2]
+ lsls r1, 6
+ ldr r0, [r4, 0x4]
+ adds r0, r1
+ str r0, [r7, 0x4]
+ lsls r0, r6, 4
+ movs r1, 0x80
+ lsls r1, 24
+ orrs r0, r1
+ str r0, [r7, 0x8]
+ ldr r0, [r7, 0x8]
+ b _0812506C
+_08125060:
+ lsls r0, r2, 6
+ ldr r1, [r4, 0x4]
+ adds r1, r0
+ adds r0, r3, 0
+ bl sub_800D238
+_0812506C:
+ ldrb r1, [r4, 0x1]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4, r0
+ ldrh r1, [r4, 0x2]
+ adds r0, 0x90
+ strh r1, [r0]
+ ldrh r0, [r4, 0x2]
+ adds r0, r6, r0
+ strh r0, [r4, 0x2]
+ ldrb r0, [r4, 0x1]
+ adds r0, 0x1
+ strb r0, [r4, 0x1]
+ adds r5, 0xC
+_0812508A:
+ ldrb r0, [r4, 0x1]
+ cmp r0, 0x1F
+ bhi _0812509A
+ ldr r3, [r5]
+ cmp r3, 0
+ bne _08124FE8
+ movs r0, 0
+ b _0812509C
+_0812509A:
+ movs r0, 0x1
+_0812509C:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end unref_sub_8124FD8
+
+ thumb_func_start unref_sub_81250A4
+unref_sub_81250A4: @ 81250A4
+ push {r4,r5,lr}
+ sub sp, 0x20
+ adds r4, r0, 0
+ adds r5, r1, 0
+ b _081250FC
+_081250AE:
+ ldrb r1, [r4]
+ lsls r1, 3
+ adds r0, r4, 0
+ adds r0, 0x8
+ adds r0, r1
+ str r2, [r0]
+ ldrb r0, [r4]
+ lsls r0, 3
+ adds r0, r4, r0
+ ldrb r1, [r5, 0x4]
+ strb r1, [r0, 0xC]
+ ldrb r0, [r5, 0x5]
+ cmp r0, 0
+ bne _081250D8
+ ldrb r1, [r4]
+ lsls r1, 4
+ adds r0, r2, 0
+ movs r2, 0x20
+ bl LoadPalette
+ b _081250EC
+_081250D8:
+ adds r0, r2, 0
+ mov r1, sp
+ bl sub_800D238
+ ldrb r1, [r4]
+ lsls r1, 4
+ mov r0, sp
+ movs r2, 0x20
+ bl LoadPalette
+_081250EC:
+ ldrb r0, [r4]
+ lsls r1, r0, 3
+ adds r1, r4, r1
+ strb r0, [r1, 0xD]
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+ adds r5, 0x8
+_081250FC:
+ ldrb r0, [r4]
+ cmp r0, 0xF
+ bhi _0812510C
+ ldr r2, [r5]
+ cmp r2, 0
+ bne _081250AE
+ movs r0, 0
+ b _0812510E
+_0812510C:
+ movs r0, 0x1
+_0812510E:
+ add sp, 0x20
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end unref_sub_81250A4
+
+ thumb_func_start unref_sub_8125118
+unref_sub_8125118: @ 8125118
+ push {r4-r7,lr}
+ ldr r4, _0812514C @ =0xfffffe00
+ add sp, r4
+ adds r5, r0, 0
+ adds r6, r1, 0
+ movs r2, 0x80
+ lsls r2, 2
+ mov r0, sp
+ movs r1, 0
+ bl memset
+ ldrb r7, [r6, 0x5]
+ ldr r0, [r6]
+ mov r1, sp
+ bl sub_800D238
+ ldrb r4, [r5]
+ cmp r4, r7
+ bcs _08125186
+_0812513E:
+ ldrb r0, [r5]
+ adds r0, r4
+ cmp r0, 0xF
+ ble _08125150
+ movs r0, 0x1
+ b _08125188
+ .align 2, 0
+_0812514C: .4byte 0xfffffe00
+_08125150:
+ lsls r2, r4, 3
+ adds r0, r5, 0
+ adds r0, 0x8
+ adds r0, r2
+ ldr r1, [r6]
+ str r1, [r0]
+ adds r2, r5, r2
+ ldrb r0, [r6, 0x4]
+ adds r0, r4, r0
+ strb r0, [r2, 0xC]
+ ldrb r0, [r5]
+ strb r0, [r2, 0xD]
+ lsls r0, r4, 5
+ add r0, sp
+ ldrb r1, [r5]
+ lsls r1, 4
+ movs r2, 0x20
+ bl LoadPalette
+ ldrb r0, [r5]
+ adds r0, 0x1
+ strb r0, [r5]
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, r7
+ bcc _0812513E
+_08125186:
+ movs r0, 0
+_08125188:
+ movs r3, 0x80
+ lsls r3, 2
+ add sp, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end unref_sub_8125118
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/ld_script.txt b/ld_script.txt
index 9031badf6..0a0dbea63 100644
--- a/ld_script.txt
+++ b/ld_script.txt
@@ -149,6 +149,22 @@ SECTIONS {
src/starter_choose.o(.text);
src/wallclock.o(.text);
asm/rom6.o(.text);
+ asm/battle_records.o(.text);
+ asm/pokedex_area_screen.o(.text);
+ asm/evolution_scene.o(.text);
+ asm/roulette.o(.text);
+ asm/pokedex_cry_screen.o(.text);
+ asm/coins.o(.text);
+ asm/landmark.o(.text);
+ asm/fldeff_strength.o(.text);
+ asm/battle_transition.o(.text);
+ asm/battle_811DA74.o(.text);
+ asm/battle_message.o(.text);
+ asm/choose_party.o(.text);
+ asm/cable_car.o(.text);
+ asm/roulette_util.o(.text);
+ asm/cable_car_util.o(.text);
+ asm/unused_8124F94.o(.text);
src/save.o(.text);
asm/mystery_event_script.o(.text);
asm/field_effect_helpers.o(.text);