From e4ee89d5a66cb3c627e3fc600c22f7808b52f835 Mon Sep 17 00:00:00 2001 From: theo Date: Sun, 7 Jun 2020 21:34:18 -0700 Subject: [PATCH] updated symbols --- asm/anju.s | 2 +- asm/bigGoron.s | 2 +- asm/bladeBrothers.s | 4 +- asm/bowUse.s | 2 +- asm/brocco.s | 2 +- asm/carpenter.s | 2 +- asm/cartOfLonLonMilk.s | 57 - asm/castorWildsStatue.s | 22 +- asm/cat.s | 2 +- asm/clothesRack.s | 12 +- asm/code_08000108.s | 4 +- asm/code_08016DF8.s | 6 +- asm/code_08019444.s | 16 +- asm/code_0801D79C.s | 18 +- asm/code_08023E10.s | 14 +- asm/code_08028E40.s | 6 +- asm/code_08029A94.s | 4 +- asm/code_0802B234.s | 60 +- asm/code_08033FFC.s | 132 +- asm/code_0804B9F8.s | 60 +- asm/code_0805436C.s | 4 +- asm/code_08056418.s | 12 +- asm/code_0805E744.s | 4 +- asm/code_0806ED78.s | 4 +- asm/code_0806FA6C.s | 16 +- asm/code_080732D0.s | 12 +- asm/code_08076C80.s | 4 +- asm/code_08077B98.s | 6 +- asm/code_0807B9B8.s | 6 +- asm/code_0807CC3C.s | 2 +- asm/code_08080974.s | 47239 +------------------------------------- asm/code_080874A0.s | 45777 ++++++++++++++++++++++++++++++++++++ asm/code_0809D498.s | 98 +- asm/code_080A29BC.s | 16 +- asm/code_080A5574.s | 54 +- asm/cow.s | 2 +- asm/createFx.s | 4 +- asm/cucco.s | 2 +- asm/cuccoChick.s | 2 +- asm/dampe.s | 2 +- asm/din.s | 2 +- asm/dog.s | 4 +- asm/drLeft.s | 1 - asm/emma.s | 56 - asm/epona.s | 2 +- asm/ezloCap.s | 2 +- asm/farore.s | 2 +- asm/festari.s | 2 +- asm/forestMinish.s | 2 +- asm/gentari.s | 2 +- asm/ghostBrothers.s | 2 +- asm/gina.s | 2 +- asm/goron.s | 4 +- asm/greatFairy.s | 1314 ++ asm/gregal.s | 2 +- asm/hurdyGurdyMan.s | 2 +- asm/kid.s | 14 +- asm/kingDaltus.s | 2 +- asm/librari.s | 2 +- asm/mailbox.s | 118 - asm/malon.s | 2 +- asm/mama.s | 2 +- asm/mayorHagen.s | 2 +- asm/melari.s | 4 +- asm/ministerPotho.s | 2 +- asm/mountainMinish.s | 6 +- asm/mutoh.s | 2 +- asm/nayru.s | 2 +- asm/percy.s | 4 +- asm/pina.s | 2 +- asm/postman.s | 4 +- asm/sittingPerson.s | 2 +- asm/smith.s | 4 +- asm/stamp.s | 190 - asm/sturgeon.s | 4 +- asm/talon.s | 2 +- asm/teachers.s | 2 +- asm/tingleSiblings.s | 6 +- asm/townMinish.s | 2 +- asm/townsperson.s | 4 +- asm/windTribespeople.s | 2 +- data/data_8.s | 32 +- include/cutscene.h | 16 + include/entity.h | 35 +- linker.ld | 11 +- src/emma.c | 46 + src/greatFairy.c | 54 + src/mailbox.c | 82 + src/milkCart.c | 31 + src/ocarina.c | 17 +- src/stamp.c | 126 + src/textbox.c | 4 +- 92 files changed, 47920 insertions(+), 48014 deletions(-) delete mode 100644 asm/cartOfLonLonMilk.s create mode 100644 asm/code_080874A0.s delete mode 100644 asm/emma.s create mode 100644 asm/greatFairy.s delete mode 100644 asm/mailbox.s delete mode 100644 asm/stamp.s create mode 100644 include/cutscene.h create mode 100644 src/emma.c create mode 100644 src/greatFairy.c create mode 100644 src/mailbox.c create mode 100644 src/milkCart.c create mode 100644 src/stamp.c diff --git a/asm/anju.s b/asm/anju.s index 49e0ed39..5362cafa 100644 --- a/asm/anju.s +++ b/asm/anju.s @@ -72,7 +72,7 @@ _0806C338: b _0806C350 _0806C342: adds r0, r4, #0 - bl sub_0806F148 + bl UpdateFuseInteraction cmp r0, #0 beq _0806C350 movs r0, #1 diff --git a/asm/bigGoron.s b/asm/bigGoron.s index c7666deb..ca81ae61 100644 --- a/asm/bigGoron.s +++ b/asm/bigGoron.s @@ -1030,7 +1030,7 @@ _0806D690: ldrsb r1, [r4, r1] adds r0, r5, #0 movs r2, #0x40 - bl CreateFX + bl CreateFx adds r1, r0, #0 cmp r1, #0 beq _0806D6C0 diff --git a/asm/bladeBrothers.s b/asm/bladeBrothers.s index 71c4826b..c5effab6 100644 --- a/asm/bladeBrothers.s +++ b/asm/bladeBrothers.s @@ -240,7 +240,7 @@ _08068B6C: sub_08068B70: @ 0x08068B70 push {r4, lr} adds r4, r0, #0 - bl sub_0806F148 + bl UpdateFuseInteraction cmp r0, #0 beq _08068B80 movs r0, #1 @@ -311,7 +311,7 @@ sub_08068BEC: @ 0x08068BEC adds r4, r0, #0 movs r1, #0x44 movs r2, #0 - bl CreateFX + bl CreateFx adds r2, r0, #0 cmp r2, #0 beq _08068C22 diff --git a/asm/bowUse.s b/asm/bowUse.s index 7b52cb09..12724f0e 100644 --- a/asm/bowUse.s +++ b/asm/bowUse.s @@ -80,7 +80,7 @@ _080191F0: adds r0, r4, #0 movs r1, #0x14 movs r2, #0 - bl CreateFX + bl CreateFx _0801920E: ldrb r0, [r4, #0xb] cmp r0, #0 diff --git a/asm/brocco.s b/asm/brocco.s index d3a60bff..e357359c 100644 --- a/asm/brocco.s +++ b/asm/brocco.s @@ -216,7 +216,7 @@ _080636A4: b _080636D4 _080636BA: adds r0, r4, #0 - bl sub_0806F148 + bl UpdateFuseInteraction cmp r0, #0 beq _080636D4 movs r0, #1 diff --git a/asm/carpenter.s b/asm/carpenter.s index 82f531a3..ddd2ad28 100644 --- a/asm/carpenter.s +++ b/asm/carpenter.s @@ -92,7 +92,7 @@ _080671F4: b _08067224 _0806720A: adds r0, r4, #0 - bl sub_0806F148 + bl UpdateFuseInteraction cmp r0, #0 beq _08067224 movs r0, #1 diff --git a/asm/cartOfLonLonMilk.s b/asm/cartOfLonLonMilk.s deleted file mode 100644 index 6163580c..00000000 --- a/asm/cartOfLonLonMilk.s +++ /dev/null @@ -1,57 +0,0 @@ - .include "asm/macros.inc" - - .include "constants/constants.inc" - - .syntax unified - - .text - - - thumb_func_start sub_08065B4C -sub_08065B4C: @ 0x08065B4C - push {r4, lr} - adds r4, r0, #0 - ldr r1, _08065B68 @ =gUnk_08110118 - ldrb r0, [r4, #0xc] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - adds r0, r4, #0 - bl sub_0806ED78 - pop {r4, pc} - .align 2, 0 -_08065B68: .4byte gUnk_08110118 - - thumb_func_start sub_08065B6C -sub_08065B6C: @ 0x08065B6C - push {lr} - ldrb r1, [r0, #0xc] - adds r1, #1 - strb r1, [r0, #0xc] - ldrb r2, [r0, #0x18] - movs r1, #4 - rsbs r1, r1, #0 - ands r1, r2 - movs r2, #1 - orrs r1, r2 - strb r1, [r0, #0x18] - ldr r2, _08065B98 @ =0xFFFF8000 - adds r1, r2, #0 - ldrh r2, [r0, #0x30] - adds r1, r1, r2 - strh r1, [r0, #0x30] - movs r1, #6 - strb r1, [r0, #0x14] - movs r1, #3 - bl LoadAnimation - pop {pc} - .align 2, 0 -_08065B98: .4byte 0xFFFF8000 - - thumb_func_start sub_08065B9C -sub_08065B9C: @ 0x08065B9C - push {lr} - bl sub_080042B8 - pop {pc} diff --git a/asm/castorWildsStatue.s b/asm/castorWildsStatue.s index 145e29ac..8ccf2c46 100644 --- a/asm/castorWildsStatue.s +++ b/asm/castorWildsStatue.s @@ -133,21 +133,21 @@ sub_08067418: @ 0x08067418 adds r4, #0x38 ldrb r2, [r4] adds r0, r5, #0 - bl sub_0800015E + bl UpdateCollisionLayer ldrh r1, [r7] ldrb r2, [r4] adds r0, r5, #0 - bl sub_0800015E + bl UpdateCollisionLayer ldrh r1, [r7] adds r1, #0x3f ldrb r2, [r4] adds r0, r5, #0 - bl sub_0800015E + bl UpdateCollisionLayer ldrh r1, [r7] adds r1, #0x40 ldrb r2, [r4] adds r0, r5, #0 - bl sub_0800015E + bl UpdateCollisionLayer b _080674F8 .align 2, 0 _08067488: .4byte gRoomControls @@ -186,19 +186,19 @@ _08067494: ldr r1, _08067504 @ =0x00000E81 adds r0, r4, #0 movs r2, #1 - bl sub_0800015E + bl UpdateCollisionLayer ldr r1, _08067508 @ =0x00000E82 adds r0, r4, #0 movs r2, #1 - bl sub_0800015E + bl UpdateCollisionLayer ldr r1, _0806750C @ =0x00000E83 adds r0, r4, #0 movs r2, #1 - bl sub_0800015E + bl UpdateCollisionLayer ldr r1, _08067510 @ =0x00000EC3 adds r0, r4, #0 movs r2, #1 - bl sub_0800015E + bl UpdateCollisionLayer _080674F8: adds r0, r6, #0 bl sub_0807DD50 @@ -239,7 +239,7 @@ _0806753A: adds r0, r5, #0 movs r1, #2 movs r2, #0 - bl CreateFX + bl CreateFx adds r1, r0, #0 cmp r1, #0 beq _08067560 @@ -326,7 +326,7 @@ _080675EC: adds r0, r4, #0 movs r1, #2 movs r2, #0 - bl CreateFX + bl CreateFx adds r3, r0, #0 cmp r3, #0 beq _08067646 @@ -379,7 +379,7 @@ _08067656: adds r0, r4, #0 movs r1, #4 movs r2, #0 - bl CreateFX + bl CreateFx adds r3, r0, #0 cmp r3, #0 beq _080676B0 diff --git a/asm/cat.s b/asm/cat.s index f4173a25..5dd60ec4 100644 --- a/asm/cat.s +++ b/asm/cat.s @@ -396,7 +396,7 @@ _08067A94: sub_08067A98: @ 0x08067A98 push {r4, lr} adds r4, r0, #0 - bl sub_0806F148 + bl UpdateFuseInteraction cmp r0, #0 beq _08067AAA adds r0, r4, #0 diff --git a/asm/clothesRack.s b/asm/clothesRack.s index f5f4fad6..c7d258fb 100644 --- a/asm/clothesRack.s +++ b/asm/clothesRack.s @@ -76,7 +76,7 @@ _0806DDC4: mov r0, sb ldrb r2, [r0] mov r0, sl - bl sub_0800015E + bl UpdateCollisionLayer mov r2, r8 ldrh r1, [r2, #6] adds r1, #0x18 @@ -92,7 +92,7 @@ _0806DDC4: mov r0, sb ldrb r2, [r0] mov r0, sl - bl sub_0800015E + bl UpdateCollisionLayer mov r2, r8 ldrh r1, [r2, #6] adds r1, #0x18 @@ -109,7 +109,7 @@ _0806DDC4: mov r0, sb ldrb r2, [r0] mov r0, sl - bl sub_0800015E + bl UpdateCollisionLayer mov r2, r8 ldrh r1, [r2, #6] subs r1, #0x18 @@ -126,7 +126,7 @@ _0806DDC4: mov r0, sb ldrb r2, [r0] mov r0, sl - bl sub_0800015E + bl UpdateCollisionLayer mov r2, r8 ldrh r1, [r2, #6] subs r1, #0x18 @@ -142,7 +142,7 @@ _0806DDC4: mov r0, sb ldrb r2, [r0] mov r0, sl - bl sub_0800015E + bl UpdateCollisionLayer mov r1, r8 ldrh r0, [r1, #6] subs r0, #0x18 @@ -160,7 +160,7 @@ _0806DDC4: ldrb r2, [r0] mov r0, sl adds r1, r5, #0 - bl sub_0800015E + bl UpdateCollisionLayer pop {r3, r4, r5} mov r8, r3 mov sb, r4 diff --git a/asm/code_08000108.s b/asm/code_08000108.s index 619c4c91..5ef1a5a1 100644 --- a/asm/code_08000108.s +++ b/asm/code_08000108.s @@ -54,8 +54,8 @@ sub_08000152: @ 0x08000152 ldrh r0, [r3, r0] lsrs r2, r2, #2 - non_word_aligned_thumb_func_start sub_0800015E -sub_0800015E: @ 0x0800015E + non_word_aligned_thumb_func_start UpdateCollisionLayer +UpdateCollisionLayer: @ 0x0800015E push {r4, r5, r6, r7, lr} lsls r3, r2, #3 ldr r4, _08000208 @ =gUnk_08000228 diff --git a/asm/code_08016DF8.s b/asm/code_08016DF8.s index 3af3f1cc..1da0cbae 100644 --- a/asm/code_08016DF8.s +++ b/asm/code_08016DF8.s @@ -506,7 +506,7 @@ _080171D6: adds r1, #0x55 adds r0, r5, #0 movs r2, #0 - bl CreateFX + bl CreateFx _080171EA: pop {r4, r5} pop {r0} @@ -1506,7 +1506,7 @@ sub_08017940: @ 0x08017940 adds r0, r4, #0 movs r1, #0x2c movs r2, #0 - bl CreateFX + bl CreateFx adds r2, r0, #0 cmp r2, #0 beq _080179CC @@ -1600,7 +1600,7 @@ sub_080179EC: @ 0x080179EC ldrb r1, [r1] adds r0, r5, #0 movs r2, #0 - bl CreateFX + bl CreateFx adds r4, r0, #0 cmp r4, #0 beq _08017A84 diff --git a/asm/code_08019444.s b/asm/code_08019444.s index 2ae044e1..cb055db3 100644 --- a/asm/code_08019444.s +++ b/asm/code_08019444.s @@ -35,7 +35,7 @@ sub_08019468: @ 0x08019468 adds r0, r1, #0 movs r1, #0x50 movs r2, #0 - bl CreateFX + bl CreateFx _0801947E: pop {pc} @@ -228,7 +228,7 @@ _080195B0: adds r0, r4, #0 movs r1, #0x19 movs r2, #0 - bl CreateFX + bl CreateFx bl sub_0805E780 _08019602: adds r0, r4, #0 @@ -239,7 +239,7 @@ _08019602: adds r0, r4, #0 movs r1, #0x19 movs r2, #0 - bl CreateFX + bl CreateFx bl sub_0805E780 _0801961A: adds r0, r4, #0 @@ -1814,7 +1814,7 @@ _0801A1D4: adds r1, #0x38 ldrb r2, [r1] adds r1, r7, #0 - bl sub_0800015E + bl UpdateCollisionLayer movs r0, #0xa0 strb r0, [r6, #6] movs r0, #5 @@ -1859,7 +1859,7 @@ _0801A23C: adds r4, #0x38 ldrb r2, [r4] adds r1, r7, #0 - bl sub_0800015E + bl UpdateCollisionLayer ldrb r2, [r4] movs r0, #0xd adds r1, r7, #0 @@ -1876,7 +1876,7 @@ _0801A28C: adds r1, #0x38 ldrb r2, [r1] adds r1, r7, #0 - bl sub_0800015E + bl UpdateCollisionLayer movs r0, #4 b _0801A2A6 .align 2, 0 @@ -3549,7 +3549,7 @@ _0801AF2E: ldrsh r1, [r4, r2] adds r1, r6, r1 adds r2, r5, #0 - bl sub_0800015E + bl UpdateCollisionLayer adds r4, #4 movs r1, #0 ldrsh r0, [r4, r1] @@ -3686,7 +3686,7 @@ _0801B026: lsls r1, r7, #6 adds r1, r1, r2 movs r2, #1 - bl sub_0800015E + bl UpdateCollisionLayer _0801B03E: adds r3, r4, #0 adds r2, r5, #0 diff --git a/asm/code_0801D79C.s b/asm/code_0801D79C.s index dea9fdfc..7a35f562 100644 --- a/asm/code_0801D79C.s +++ b/asm/code_0801D79C.s @@ -6946,7 +6946,7 @@ sub_08020AD0: @ 0x08020AD0 ldr r0, _08020B64 @ =0x00004034 ldrb r2, [r6] adds r1, r5, #0 - bl sub_0800015E + bl UpdateCollisionLayer movs r0, #1 b _08020B6A .align 2, 0 @@ -8549,7 +8549,7 @@ sub_080216FC: @ 0x080216FC adds r0, r2, #0 movs r1, #3 movs r2, #0x80 - bl CreateFX + bl CreateFx bl sub_0805E780 _0802171A: pop {pc} @@ -9769,11 +9769,11 @@ sub_08022004: @ 0x08022004 adds r2, r4, #0 adds r2, #0x38 ldrb r2, [r2] - bl sub_0800015E + bl UpdateCollisionLayer adds r0, r4, #0 movs r1, #5 movs r2, #0 - bl CreateFX + bl CreateFx adds r0, r4, #0 bl sub_08049CF4 bl sub_0805E780 @@ -9912,7 +9912,7 @@ _08022124: adds r0, r5, #0 movs r1, #0x11 movs r2, #0 - bl CreateFX + bl CreateFx adds r1, r0, #0 cmp r1, #0 beq _08022148 @@ -10037,7 +10037,7 @@ sub_080221C0: @ 0x080221C0 ldrh r0, [r0] ldrb r2, [r5] adds r1, r4, #0 - bl sub_0800015E + bl UpdateCollisionLayer pop {r4, r5, r6, pc} .align 2, 0 _08022220: .4byte gRoomControls @@ -10127,7 +10127,7 @@ _080222F2: adds r0, r4, #0 movs r1, #4 movs r2, #0 - bl CreateFX + bl CreateFx movs r0, #1 movs r1, #1 bl CreateEnemy @@ -12327,7 +12327,7 @@ sub_08023330: @ 0x08023330 adds r0, r5, #0 movs r1, #4 movs r2, #0 - bl CreateFX + bl CreateFx _08023394: pop {r4, r5, pc} .align 2, 0 @@ -12389,7 +12389,7 @@ _080233C0: adds r0, r5, #0 movs r1, #4 movs r2, #0 - bl CreateFX + bl CreateFx b _0802349C _08023412: movs r0, #0x28 diff --git a/asm/code_08023E10.s b/asm/code_08023E10.s index 5d48426a..c822d24a 100644 --- a/asm/code_08023E10.s +++ b/asm/code_08023E10.s @@ -1278,7 +1278,7 @@ _0802475E: adds r2, r4, #0 adds r2, #0x38 ldrb r2, [r2] - bl sub_0800015E + bl UpdateCollisionLayer adds r0, r4, #0 bl sub_0805E7BC ldrh r0, [r5, #0x36] @@ -3825,7 +3825,7 @@ sub_08025AE8: @ 0x08025AE8 adds r4, r0, #0 movs r1, #0x22 movs r2, #0 - bl CreateFX + bl CreateFx adds r1, r0, #0 cmp r1, #0 beq _08025B00 @@ -3836,7 +3836,7 @@ _08025B00: adds r0, r4, #0 movs r1, #0x23 movs r2, #0 - bl CreateFX + bl CreateFx adds r1, r0, #0 cmp r1, #0 beq _08025B16 @@ -4904,7 +4904,7 @@ _080262EC: movs r1, #0xb2 lsls r1, r1, #2 movs r2, #1 - bl sub_0800015E + bl UpdateCollisionLayer _0802631A: pop {r4, r5, r6, pc} .align 2, 0 @@ -8306,7 +8306,7 @@ sub_08027C9C: @ 0x08027C9C adds r0, r5, #0 movs r1, #0x48 movs r2, #0 - bl CreateFX + bl CreateFx adds r4, r0, #0 cmp r4, #0 beq _08027D1E @@ -9515,7 +9515,7 @@ _080285BC: adds r0, r4, #0 movs r1, #2 movs r2, #0x40 - bl CreateFX + bl CreateFx _080285D6: adds r1, r4, #0 adds r1, #0x7b @@ -10008,7 +10008,7 @@ sub_08028934: @ 0x08028934 adds r0, r4, #0 movs r1, #3 movs r2, #0 - bl CreateFX + bl CreateFx adds r1, r0, #0 cmp r1, #0 beq _08028982 diff --git a/asm/code_08028E40.s b/asm/code_08028E40.s index 8eda2aee..600782fe 100644 --- a/asm/code_08028E40.s +++ b/asm/code_08028E40.s @@ -44,7 +44,7 @@ _08028E80: .4byte gTextBox sub_08028E84: @ 0x08028E84 push {r4, lr} adds r4, r0, #0 - bl sub_0806F148 + bl UpdateFuseInteraction cmp r0, #0 beq _08028E98 movs r0, #4 @@ -299,7 +299,7 @@ sub_08028FFC: @ 0x08028FFC adds r2, r4, #0 adds r2, #0x38 ldrb r2, [r2] - bl sub_0800015E + bl UpdateCollisionLayer pop {r4, pc} .align 2, 0 _08029074: .4byte 0x00004022 @@ -351,7 +351,7 @@ _080290AE: adds r2, r4, #0 adds r2, #0x38 ldrb r2, [r2] - bl sub_0800015E + bl UpdateCollisionLayer _080290DE: pop {r4, pc} diff --git a/asm/code_08029A94.s b/asm/code_08029A94.s index f5fc38b0..e4c4fa0f 100644 --- a/asm/code_08029A94.s +++ b/asm/code_08029A94.s @@ -104,7 +104,7 @@ sub_08029B2C: @ 0x08029B2C adds r0, r4, #0 movs r1, #0x48 movs r2, #0 - bl CreateFX + bl CreateFx adds r0, r4, #0 bl sub_0805E7BC b _08029B8A @@ -289,7 +289,7 @@ sub_08029C98: @ 0x08029C98 adds r0, r4, #0 movs r1, #0x48 movs r2, #0 - bl CreateFX + bl CreateFx adds r0, r4, #0 bl sub_0805E7BC b _08029CC6 diff --git a/asm/code_0802B234.s b/asm/code_0802B234.s index 02913fe4..b6f22a93 100644 --- a/asm/code_0802B234.s +++ b/asm/code_0802B234.s @@ -136,7 +136,7 @@ sub_0802B2E0: @ 0x0802B2E0 adds r0, r4, #0 movs r1, #2 movs r2, #0 - bl CreateFX + bl CreateFx adds r1, r0, #0 cmp r1, #0 beq _0802B334 @@ -2447,7 +2447,7 @@ _0802C408: adds r0, r4, #0 movs r1, #0x15 movs r2, #0 - bl CreateFX + bl CreateFx adds r2, r0, #0 cmp r2, #0 beq _0802C420 @@ -4415,7 +4415,7 @@ _0802D2F8: ldr r0, [r0] movs r1, #0x48 movs r2, #0 - bl CreateFX + bl CreateFx cmp r0, #0 beq _0802D32E adds r2, r0, #0 @@ -6411,7 +6411,7 @@ _0802E23A: ldr r0, [r1, #0x3c] movs r1, #0xc movs r2, #0 - bl CreateFX + bl CreateFx movs r0, #0x92 lsls r0, r0, #1 bl PlaySFX @@ -6681,7 +6681,7 @@ _0802E452: ldr r0, [r6, #0x3c] movs r1, #0xc movs r2, #0 - bl CreateFX + bl CreateFx movs r0, #0x7d bl PlaySFX _0802E46E: @@ -8974,7 +8974,7 @@ _0802F536: adds r2, r4, #0 adds r2, #0x38 ldrb r2, [r2] - bl sub_0800015E + bl UpdateCollisionLayer _0802F556: pop {r4, pc} .align 2, 0 @@ -9221,7 +9221,7 @@ _0802F6F0: adds r2, r4, #0 adds r2, #0x38 ldrb r2, [r2] - bl sub_0800015E + bl UpdateCollisionLayer ldrb r1, [r4, #0x15] lsrs r1, r1, #3 adds r0, r4, #0 @@ -9434,7 +9434,7 @@ sub_0802F888: @ 0x0802F888 ldr r0, _0802F8E0 @ =0x00004071 ldrh r1, [r5] ldrb r2, [r6] - bl sub_0800015E + bl UpdateCollisionLayer pop {r4, r5, r6, pc} .align 2, 0 _0802F8DC: .4byte gRoomControls @@ -9800,7 +9800,7 @@ _0802FB88: adds r2, r4, #0 adds r2, #0x38 ldrb r2, [r2] - bl sub_0800015E + bl UpdateCollisionLayer _0802FBB0: pop {r4, pc} .align 2, 0 @@ -10019,7 +10019,7 @@ _0802FD18: adds r2, r4, #0 adds r2, #0x38 ldrb r2, [r2] - bl sub_0800015E + bl UpdateCollisionLayer movs r0, #0xab lsls r0, r0, #1 bl sub_08004488 @@ -10170,7 +10170,7 @@ _0802FE6A: adds r2, r4, #0 adds r2, #0x38 ldrb r2, [r2] - bl sub_0800015E + bl UpdateCollisionLayer _0802FE8A: pop {r4, pc} .align 2, 0 @@ -10389,7 +10389,7 @@ _0802FFF0: adds r2, r4, #0 adds r2, #0x38 ldrb r2, [r2] - bl sub_0800015E + bl UpdateCollisionLayer movs r0, #0xab lsls r0, r0, #1 bl sub_08004488 @@ -11465,7 +11465,7 @@ sub_080307EC: @ 0x080307EC ldr r0, _08030830 @ =0x00004022 ldrb r2, [r6] adds r1, r4, #0 - bl sub_0800015E + bl UpdateCollisionLayer pop {r4, r5, r6, pc} .align 2, 0 _0803082C: .4byte gRoomControls @@ -11496,7 +11496,7 @@ sub_08030834: @ 0x08030834 adds r0, #0x38 ldrb r2, [r0] adds r0, r5, #0 - bl sub_0800015E + bl UpdateCollisionLayer pop {r4, r5, r6, pc} .align 2, 0 _08030868: .4byte gRoomControls @@ -11605,7 +11605,7 @@ _0803093C: mov r3, r8 ldrb r2, [r3] adds r1, r4, #0 - bl sub_0800015E + bl UpdateCollisionLayer b _0803098A .align 2, 0 _0803094C: .4byte 0x00004022 @@ -11636,7 +11636,7 @@ _08030950: mov r0, r8 ldrb r2, [r0] mov r0, sl - bl sub_0800015E + bl UpdateCollisionLayer _0803098A: adds r2, r5, #0 adds r2, #0x29 @@ -11902,7 +11902,7 @@ _08030B52: adds r0, r4, #0 movs r1, #0x51 movs r2, #0 - bl CreateFX + bl CreateFx _08030B6A: adds r0, r4, #0 bl sub_0804A7D4 @@ -12447,19 +12447,19 @@ sub_08030F00: @ 0x08030F00 ldrb r2, [r6] adds r0, r5, #0 adds r1, r4, #0 - bl sub_0800015E + bl UpdateCollisionLayer ldrb r2, [r6] adds r0, r5, #0 mov r1, sl - bl sub_0800015E + bl UpdateCollisionLayer ldrb r2, [r6] adds r0, r5, #0 mov r1, sb - bl sub_0800015E + bl UpdateCollisionLayer ldrb r2, [r6] adds r0, r5, #0 mov r1, r8 - bl sub_0800015E + bl UpdateCollisionLayer pop {r3, r4, r5} mov r8, r3 mov sb, r4 @@ -12498,27 +12498,27 @@ sub_08030FB4: @ 0x08030FB4 adds r5, #0x38 ldrb r2, [r5] adds r1, r4, #0 - bl sub_0800015E + bl UpdateCollisionLayer adds r0, r6, #0 adds r0, #0x82 ldrh r0, [r0] adds r1, r4, #1 ldrb r2, [r5] - bl sub_0800015E + bl UpdateCollisionLayer adds r0, r6, #0 adds r0, #0x84 ldrh r0, [r0] adds r1, r4, #0 adds r1, #0x40 ldrb r2, [r5] - bl sub_0800015E + bl UpdateCollisionLayer adds r0, r6, #0 adds r0, #0x86 ldrh r0, [r0] adds r4, #0x41 ldrb r2, [r5] adds r1, r4, #0 - bl sub_0800015E + bl UpdateCollisionLayer pop {r4, r5, r6, pc} .align 2, 0 _08031020: .4byte gRoomControls @@ -15691,7 +15691,7 @@ sub_08032794: @ 0x08032794 adds r4, r0, #0 movs r1, #0x11 movs r2, #0x40 - bl CreateFX + bl CreateFx adds r5, r0, #0 cmp r5, #0 beq _080327C2 @@ -17147,7 +17147,7 @@ _08033238: adds r0, r5, #0 movs r1, #2 movs r2, #0x40 - bl CreateFX + bl CreateFx adds r4, r0, #0 cmp r4, #0 beq _08033278 @@ -17633,7 +17633,7 @@ _080335EE: adds r0, r4, #0 movs r1, #2 movs r2, #0 - bl CreateFX + bl CreateFx adds r1, r0, #0 cmp r1, #0 beq _08033624 @@ -18041,7 +18041,7 @@ sub_08033890: @ 0x08033890 ldr r0, _08033954 @ =0x00004022 ldrh r1, [r4] ldrb r2, [r5] - bl sub_0800015E + bl UpdateCollisionLayer ldrb r1, [r6, #0xa] movs r0, #0x7d movs r2, #0 @@ -18486,7 +18486,7 @@ _08033C68: ldrh r1, [r5] ldr r3, [sp, #8] ldrb r2, [r3] - bl sub_0800015E + bl UpdateCollisionLayer adds r0, r4, #0 movs r1, #0 bl UpdateSprite diff --git a/asm/code_08033FFC.s b/asm/code_08033FFC.s index 9026bdf9..9123ab0c 100644 --- a/asm/code_08033FFC.s +++ b/asm/code_08033FFC.s @@ -519,7 +519,7 @@ _080343C4: ldrb r1, [r1] adds r0, r5, #0 movs r2, #0 - bl CreateFX + bl CreateFx adds r2, r0, #0 cmp r2, #0 beq _08034414 @@ -1803,7 +1803,7 @@ sub_08034CC4: @ 0x08034CC4 adds r2, r5, #0 adds r2, #0x38 ldrb r2, [r2] - bl sub_0800015E + bl UpdateCollisionLayer movs r0, #0x37 movs r1, #2 bl CreateEnemy @@ -1893,7 +1893,7 @@ sub_08034DC8: @ 0x08034DC8 adds r0, r4, #0 movs r1, #0x51 movs r2, #0 - bl CreateFX + bl CreateFx movs r1, #0x2e ldrsh r0, [r4, r1] ldr r2, _08034E14 @ =gRoomControls @@ -2052,7 +2052,7 @@ sub_08034EE4: @ 0x08034EE4 ldrb r1, [r1] adds r0, r5, #0 movs r2, #0 - bl CreateFX + bl CreateFx adds r3, r0, #0 cmp r3, #0 beq _08034F46 @@ -3050,14 +3050,14 @@ _08035616: adds r0, r7, #0 movs r1, #0x48 movs r2, #0 - bl CreateFX + bl CreateFx adds r0, r7, #0 adds r0, #0x84 ldr r0, [r0] ldr r0, [r0, #0x20] movs r1, #0x48 movs r2, #0 - bl CreateFX + bl CreateFx _080356B2: adds r1, r7, #0 adds r1, #0x82 @@ -6541,7 +6541,7 @@ sub_080370A4: @ 0x080370A4 adds r2, r5, #0 adds r2, #0x38 ldrb r2, [r2] - bl sub_0800015E + bl UpdateCollisionLayer b _0803711E .align 2, 0 _0803710C: .4byte gRoomControls @@ -6650,7 +6650,7 @@ sub_0803718C: @ 0x0803718C adds r2, r5, #0 adds r2, #0x38 ldrb r2, [r2] - bl sub_0800015E + bl UpdateCollisionLayer _080371DA: adds r0, r5, #0 bl sub_0806F520 @@ -6734,7 +6734,7 @@ sub_08037220: @ 0x08037220 lsls r0, r0, #7 ldrb r2, [r6] adds r1, r4, #0 - bl sub_0800015E + bl UpdateCollisionLayer adds r0, r5, #0 movs r1, #5 bl UpdateSprite @@ -6775,7 +6775,7 @@ sub_08037280: @ 0x08037280 adds r2, r5, #0 adds r2, #0x38 ldrb r2, [r2] - bl sub_0800015E + bl UpdateCollisionLayer adds r0, r5, #0 bl sub_08037408 _080372CC: @@ -6860,7 +6860,7 @@ sub_080372E8: @ 0x080372E8 adds r2, r5, #0 adds r2, #0x38 ldrb r2, [r2] - bl sub_0800015E + bl UpdateCollisionLayer _0803736E: pop {r4, r5, r6, pc} .align 2, 0 @@ -6954,7 +6954,7 @@ sub_08037408: @ 0x08037408 push {lr} movs r1, #5 movs r2, #0 - bl CreateFX + bl CreateFx bl sub_0805E780 pop {pc} @@ -6991,7 +6991,7 @@ sub_08037418: @ 0x08037418 ldrh r0, [r0] ldrb r2, [r6] adds r1, r4, #0 - bl sub_0800015E + bl UpdateCollisionLayer bl sub_0805E780 _08037460: pop {r4, r5, r6, pc} @@ -9458,7 +9458,7 @@ sub_080386B8: @ 0x080386B8 adds r0, r4, #0 movs r1, #2 movs r2, #0 - bl CreateFX + bl CreateFx adds r1, r0, #0 cmp r1, #0 beq _08038720 @@ -9565,7 +9565,7 @@ _080387D8: adds r0, r4, #0 movs r1, #2 movs r2, #0 - bl CreateFX + bl CreateFx adds r1, r0, #0 cmp r1, #0 beq _080387EE @@ -10950,7 +10950,7 @@ sub_08039260: @ 0x08039260 ldrb r1, [r1] adds r0, r4, #0 movs r2, #0 - bl CreateFX + bl CreateFx adds r2, r0, #0 cmp r2, #0 beq _0803928E @@ -11932,7 +11932,7 @@ sub_080399C4: @ 0x080399C4 adds r4, r0, #0 movs r1, #0x11 movs r2, #0 - bl CreateFX + bl CreateFx adds r1, r0, #0 cmp r1, #0 beq _080399E2 @@ -11946,7 +11946,7 @@ _080399E2: adds r0, r4, #0 movs r1, #0x11 movs r2, #0 - bl CreateFX + bl CreateFx adds r1, r0, #0 cmp r1, #0 beq _080399FE @@ -12100,7 +12100,7 @@ sub_08039AD4: @ 0x08039AD4 adds r1, #0x38 ldrb r2, [r1] adds r1, r5, #0 - bl sub_0800015E + bl UpdateCollisionLayer b _08039B26 .align 2, 0 _08039B18: .4byte 0x0000FFFF @@ -12268,7 +12268,7 @@ sub_08039BF8: @ 0x08039BF8 adds r2, r5, #0 adds r2, #0x38 ldrb r2, [r2] - bl sub_0800015E + bl UpdateCollisionLayer b _08039C72 .align 2, 0 _08039C60: .4byte gRoomControls @@ -12375,7 +12375,7 @@ sub_08039CE0: @ 0x08039CE0 adds r2, r5, #0 adds r2, #0x38 ldrb r2, [r2] - bl sub_0800015E + bl UpdateCollisionLayer _08039D2A: adds r0, r5, #0 bl sub_0806F520 @@ -12461,7 +12461,7 @@ sub_08039D74: @ 0x08039D74 ldr r0, _08039DD4 @ =0x00004060 ldrb r2, [r6] adds r1, r4, #0 - bl sub_0800015E + bl UpdateCollisionLayer adds r0, r5, #0 movs r1, #0 bl UpdateSprite @@ -12505,7 +12505,7 @@ sub_08039DD8: @ 0x08039DD8 adds r2, r5, #0 adds r2, #0x38 ldrb r2, [r2] - bl sub_0800015E + bl UpdateCollisionLayer adds r0, r5, #0 bl sub_0803A0E0 _08039E28: @@ -12578,7 +12578,7 @@ _08039E74: adds r2, r5, #0 adds r2, #0x38 ldrb r2, [r2] - bl sub_0800015E + bl UpdateCollisionLayer adds r0, r5, #0 bl sub_0805E7BC _08039EC6: @@ -12643,7 +12643,7 @@ sub_08039EE4: @ 0x08039EE4 mov r2, ip adds r2, #0x38 ldrb r2, [r2] - bl sub_0800015E + bl UpdateCollisionLayer pop {r4, r5, r6, pc} .align 2, 0 _08039F40: .4byte gUnk_080FD340 @@ -12777,7 +12777,7 @@ sub_08039FAC: @ 0x08039FAC adds r2, r5, #0 adds r2, #0x38 ldrb r2, [r2] - bl sub_0800015E + bl UpdateCollisionLayer _0803A03A: pop {r4, r5, r6, pc} .align 2, 0 @@ -12880,7 +12880,7 @@ sub_0803A0E0: @ 0x0803A0E0 adds r2, r0, #0 adds r0, r4, #0 movs r1, #0x3c - bl CreateFX + bl CreateFx bl sub_0805E780 pop {r4, pc} .align 2, 0 @@ -12918,7 +12918,7 @@ sub_0803A100: @ 0x0803A100 ldrh r0, [r0] ldrb r2, [r6] adds r1, r4, #0 - bl sub_0800015E + bl UpdateCollisionLayer bl sub_0805E780 _0803A148: pop {r4, r5, r6, pc} @@ -15122,7 +15122,7 @@ _0803B1D4: adds r0, r5, #0 movs r1, #0x51 movs r2, #0 - bl CreateFX + bl CreateFx adds r4, r0, #0 cmp r4, #0 beq _0803B23A @@ -18044,7 +18044,7 @@ _0803C7A2: adds r0, r4, #0 movs r1, #2 movs r2, #0 - bl CreateFX + bl CreateFx adds r2, r0, #0 cmp r2, #0 beq _0803C7FA @@ -18659,7 +18659,7 @@ sub_0803CC08: @ 0x0803CC08 adds r0, r4, #0 movs r1, #2 movs r2, #0 - bl CreateFX + bl CreateFx adds r1, r0, #0 cmp r1, #0 beq _0803CC56 @@ -18673,7 +18673,7 @@ _0803CC56: adds r0, r4, #0 movs r1, #2 movs r2, #0 - bl CreateFX + bl CreateFx adds r1, r0, #0 cmp r1, #0 beq _0803CC72 @@ -18687,7 +18687,7 @@ _0803CC72: adds r0, r4, #0 movs r1, #2 movs r2, #0 - bl CreateFX + bl CreateFx adds r1, r0, #0 cmp r1, #0 beq _0803CC8E @@ -18701,7 +18701,7 @@ _0803CC8E: adds r0, r4, #0 movs r1, #2 movs r2, #0 - bl CreateFX + bl CreateFx adds r1, r0, #0 cmp r1, #0 beq _0803CCAA @@ -18937,7 +18937,7 @@ sub_0803CE3C: @ 0x0803CE3C adds r4, r0, #0 movs r1, #2 movs r2, #0 - bl CreateFX + bl CreateFx movs r0, #2 strb r0, [r4, #0xc] movs r0, #0x3c @@ -20387,7 +20387,7 @@ _0803D918: adds r0, r2, #0 movs r1, #2 movs r2, #0 - bl CreateFX + bl CreateFx adds r4, r0, #0 cmp r4, #0 beq _0803D968 @@ -21979,7 +21979,7 @@ sub_0803E4D8: @ 0x0803E4D8 ldr r0, _0803E524 @ =0x00004074 ldrb r2, [r5] adds r1, r4, #0 - bl sub_0800015E + bl UpdateCollisionLayer _0803E518: pop {r4, r5, pc} .align 2, 0 @@ -23756,7 +23756,7 @@ sub_0803F20C: @ 0x0803F20C adds r0, r4, #0 movs r1, #2 movs r2, #0 - bl CreateFX + bl CreateFx cmp r0, #0 beq _0803F23E adds r2, r0, #0 @@ -25706,7 +25706,7 @@ _080400C2: adds r0, r4, #0 movs r1, #0x55 movs r2, #0 - bl CreateFX + bl CreateFx adds r5, r0, #0 cmp r5, #0 beq _08040120 @@ -27119,7 +27119,7 @@ _08040B4E: adds r0, r5, #0 movs r1, #2 movs r2, #0 - bl CreateFX + bl CreateFx bl sub_0805E780 _08040B5C: ldr r4, _08040B80 @ =gUnk_080D0DC4 @@ -27473,7 +27473,7 @@ sub_08040DF4: @ 0x08040DF4 adds r0, r4, #0 movs r1, #2 movs r2, #0 - bl CreateFX + bl CreateFx cmp r0, #0 beq _08040E26 adds r2, r0, #0 @@ -29601,7 +29601,7 @@ sub_08041E78: @ 0x08041E78 adds r0, r4, #0 movs r1, #0x51 movs r2, #0 - bl CreateFX + bl CreateFx adds r2, r0, #0 cmp r2, #0 beq _08041ECE @@ -32893,7 +32893,7 @@ sub_080436C0: @ 0x080436C0 ldr r0, [r0, #4] movs r1, #0x51 movs r2, #0 - bl CreateFX + bl CreateFx ldr r0, [r4, #0x64] ldr r0, [r0, #4] str r5, [r0, #0x64] @@ -32923,7 +32923,7 @@ sub_08043700: @ 0x08043700 ldr r0, [r0, #8] movs r1, #0x51 movs r2, #0 - bl CreateFX + bl CreateFx ldr r0, [r4, #0x64] ldr r0, [r0, #8] str r5, [r0, #0x64] @@ -32953,7 +32953,7 @@ sub_08043738: @ 0x08043738 ldr r0, [r0, #0xc] movs r1, #0x51 movs r2, #0 - bl CreateFX + bl CreateFx ldr r0, [r4, #0x64] ldr r0, [r0, #0xc] str r5, [r0, #0x64] @@ -33748,7 +33748,7 @@ sub_08043D08: @ 0x08043D08 adds r0, r4, #0 movs r1, #0x51 movs r2, #0 - bl CreateFX + bl CreateFx adds r2, r0, #0 cmp r2, #0 beq _08043D78 @@ -36438,7 +36438,7 @@ _08045142: mov r0, r8 movs r1, #2 movs r2, #0 - bl CreateFX + bl CreateFx adds r6, r0, #0 cmp r6, #0 beq _0804515A @@ -36933,7 +36933,7 @@ _080454EE: mov r0, r8 movs r1, #2 movs r2, #0 - bl CreateFX + bl CreateFx adds r6, r0, #0 cmp r6, #0 beq _08045506 @@ -37889,7 +37889,7 @@ sub_08045BC8: @ 0x08045BC8 adds r0, r4, #0 movs r1, #3 movs r2, #0 - bl CreateFX + bl CreateFx adds r1, r0, #0 cmp r1, #0 beq _08045C16 @@ -38495,7 +38495,7 @@ _0804608A: adds r0, r7, #0 movs r1, #2 movs r2, #0x40 - bl CreateFX + bl CreateFx adds r1, r0, #0 cmp r1, #0 beq _080460AE @@ -38534,7 +38534,7 @@ _080460AE: adds r0, r7, #0 movs r1, #0x43 movs r2, #0x40 - bl CreateFX + bl CreateFx adds r1, r0, #0 cmp r1, #0 beq _08046102 @@ -39387,7 +39387,7 @@ _0804674C: adds r0, r4, #0 movs r1, #0x2c movs r2, #0 - bl CreateFX + bl CreateFx adds r2, r0, #0 cmp r2, #0 beq _080467CC @@ -42136,7 +42136,7 @@ sub_08047BF0: @ 0x08047BF0 adds r0, r5, #0 movs r1, #0x51 movs r2, #0 - bl CreateFX + bl CreateFx adds r4, r0, #0 cmp r4, #0 beq _08047C74 @@ -42229,7 +42229,7 @@ _08047CDC: adds r0, r4, #0 movs r1, #0x51 movs r2, #0 - bl CreateFX + bl CreateFx b _08047D10 _08047CF2: cmp r0, #0x1e @@ -42245,7 +42245,7 @@ _08047CF2: adds r0, r4, #0 movs r1, #0x51 movs r2, #0 - bl CreateFX + bl CreateFx _08047D10: adds r0, r5, #0 adds r0, #0x78 @@ -43344,7 +43344,7 @@ sub_080484E8: @ 0x080484E8 adds r0, r4, #0 movs r1, #0x1f movs r2, #0x40 - bl CreateFX + bl CreateFx ldr r2, [r4, #0x50] adds r2, #0x7b movs r0, #0x10 @@ -44156,7 +44156,7 @@ sub_08048B2C: @ 0x08048B2C adds r0, r4, #0 movs r1, #2 movs r2, #0x40 - bl CreateFX + bl CreateFx _08048B52: ldrb r0, [r4, #0x18] movs r1, #4 @@ -44273,7 +44273,7 @@ _08048BFC: adds r0, r4, #0 movs r1, #2 movs r2, #0x40 - bl CreateFX + bl CreateFx b _08048CEA .align 2, 0 _08048C30: .4byte gUnk_080D2010 @@ -44925,19 +44925,19 @@ sub_08049100: @ 0x08049100 adds r0, r4, #0 movs r1, #0xa movs r2, #2 - bl sub_0800015E + bl UpdateCollisionLayer adds r0, r4, #0 movs r1, #0x4a movs r2, #2 - bl sub_0800015E + bl UpdateCollisionLayer adds r0, r4, #0 movs r1, #0x8a movs r2, #2 - bl sub_0800015E + bl UpdateCollisionLayer adds r0, r4, #0 movs r1, #0xca movs r2, #2 - bl sub_0800015E + bl UpdateCollisionLayer bl sub_0805E780 b _0804916E .align 2, 0 @@ -45975,7 +45975,7 @@ _080498FC: movs r1, #0x4a _0804990E: movs r2, #2 - bl sub_0800015E + bl UpdateCollisionLayer movs r0, #0x71 bl PlaySFX b _0804993E @@ -45991,7 +45991,7 @@ _08049920: ldr r0, _08049940 @ =0x00004081 movs r1, #0xa movs r2, #2 - bl sub_0800015E + bl UpdateCollisionLayer movs r0, #0x71 bl PlaySFX _0804993E: @@ -46203,7 +46203,7 @@ sub_08049AB0: @ 0x08049AB0 adds r0, r2, #0 movs r1, #0x48 movs r2, #0 - bl CreateFX + bl CreateFx adds r4, r0, #0 cmp r4, #0 beq _08049B18 @@ -48265,7 +48265,7 @@ sub_0804A9FC: @ 0x0804A9FC bne _0804AA16 adds r0, r4, #0 movs r2, #0 - bl CreateFX + bl CreateFx cmp r0, #0 beq _0804AA16 str r0, [r4, #0x68] diff --git a/asm/code_0804B9F8.s b/asm/code_0804B9F8.s index f9d86636..22f29d21 100644 --- a/asm/code_0804B9F8.s +++ b/asm/code_0804B9F8.s @@ -535,23 +535,23 @@ sub_0804BD50: @ 0x0804BD50 ldr r1, _0804BD9C @ =0x0000014D adds r0, r4, #0 movs r2, #1 - bl sub_0800015E + bl UpdateCollisionLayer movs r1, #0x86 lsls r1, r1, #1 adds r0, r4, #0 movs r2, #1 - bl sub_0800015E + bl UpdateCollisionLayer adds r4, #0x1e movs r1, #0xa6 lsls r1, r1, #1 adds r0, r4, #0 movs r2, #1 - bl sub_0800015E + bl UpdateCollisionLayer movs r1, #0xc6 lsls r1, r1, #1 adds r0, r4, #0 movs r2, #1 - bl sub_0800015E + bl UpdateCollisionLayer ldr r0, _0804BDA0 @ =gUnk_080D7D34 bl LoadRoomEntityList _0804BD94: @@ -1016,11 +1016,11 @@ _0804C090: ldr r1, _0804C0F4 @ =0x00000A47 adds r0, r4, #0 movs r2, #1 - bl sub_0800015E + bl UpdateCollisionLayer ldr r1, _0804C0F8 @ =0x00000C47 adds r0, r4, #0 movs r2, #1 - bl sub_0800015E + bl UpdateCollisionLayer movs r0, #0x62 bl GetProgressFlag cmp r0, #0 @@ -6853,7 +6853,7 @@ _0804E168: ldrh r0, [r4, #4] ldrh r1, [r4, #2] movs r2, #1 - bl sub_0800015E + bl UpdateCollisionLayer _0804E17A: adds r4, #6 _0804E17C: @@ -6881,7 +6881,7 @@ _0804E1A0: ldrh r0, [r4, #4] ldrh r1, [r4, #2] movs r2, #1 - bl sub_0800015E + bl UpdateCollisionLayer _0804E1B2: adds r4, #6 _0804E1B4: @@ -6910,7 +6910,7 @@ _0804E1D8: ldrh r0, [r4, #4] ldrh r1, [r4, #2] movs r2, #1 - bl sub_0800015E + bl UpdateCollisionLayer _0804E1EA: adds r4, #6 _0804E1EC: @@ -8059,71 +8059,71 @@ _0804EA14: lsls r1, r1, #3 adds r0, r4, #0 movs r2, #1 - bl sub_0800015E + bl UpdateCollisionLayer ldr r1, _0804EAD8 @ =0x00000591 adds r0, r4, #0 movs r2, #1 - bl sub_0800015E + bl UpdateCollisionLayer ldr r1, _0804EADC @ =0x00000592 adds r0, r4, #0 movs r2, #1 - bl sub_0800015E + bl UpdateCollisionLayer ldr r1, _0804EAE0 @ =0x00000593 adds r0, r4, #0 movs r2, #1 - bl sub_0800015E + bl UpdateCollisionLayer ldr r1, _0804EAE4 @ =0x00000594 adds r0, r4, #0 movs r2, #1 - bl sub_0800015E + bl UpdateCollisionLayer movs r1, #0xba lsls r1, r1, #3 adds r0, r4, #0 movs r2, #1 - bl sub_0800015E + bl UpdateCollisionLayer movs r1, #0xc2 lsls r1, r1, #3 adds r0, r4, #0 movs r2, #1 - bl sub_0800015E + bl UpdateCollisionLayer movs r1, #0xca lsls r1, r1, #3 adds r0, r4, #0 movs r2, #1 - bl sub_0800015E + bl UpdateCollisionLayer ldr r1, _0804EAE8 @ =0x000005D4 adds r0, r4, #0 movs r2, #1 - bl sub_0800015E + bl UpdateCollisionLayer ldr r1, _0804EAEC @ =0x00000614 adds r0, r4, #0 movs r2, #1 - bl sub_0800015E + bl UpdateCollisionLayer ldr r1, _0804EAF0 @ =0x00000654 adds r0, r4, #0 movs r2, #1 - bl sub_0800015E + bl UpdateCollisionLayer movs r1, #0xd2 lsls r1, r1, #3 adds r0, r4, #0 movs r2, #1 - bl sub_0800015E + bl UpdateCollisionLayer ldr r1, _0804EAF4 @ =0x00000691 adds r0, r4, #0 movs r2, #1 - bl sub_0800015E + bl UpdateCollisionLayer ldr r1, _0804EAF8 @ =0x00000692 adds r0, r4, #0 movs r2, #1 - bl sub_0800015E + bl UpdateCollisionLayer ldr r1, _0804EAFC @ =0x00000693 adds r0, r4, #0 movs r2, #1 - bl sub_0800015E + bl UpdateCollisionLayer ldr r1, _0804EB00 @ =0x00000694 adds r0, r4, #0 movs r2, #1 - bl sub_0800015E + bl UpdateCollisionLayer pop {r4, pc} .align 2, 0 _0804EAC4: .4byte gUnk_080F3C64 @@ -9473,11 +9473,11 @@ _0804F406: ldr r0, _0804F450 @ =0x00004072 ldr r1, _0804F454 @ =0x00000D88 movs r2, #1 - bl sub_0800015E + bl UpdateCollisionLayer ldr r0, _0804F458 @ =0x00004096 ldr r1, _0804F45C @ =0x00000DC8 movs r2, #1 - bl sub_0800015E + bl UpdateCollisionLayer _0804F42A: ldr r0, _0804F460 @ =gUnk_02002A40 ldrb r0, [r0, #8] @@ -9734,7 +9734,7 @@ sub_0804F680: @ 0x0804F680 adds r5, r2, #0 movs r1, #2 movs r2, #0 - bl CreateFX + bl CreateFx adds r2, r0, #0 cmp r2, #0 beq _0804F6A2 @@ -9877,7 +9877,7 @@ sub_0804F79C: @ 0x0804F79C adds r4, r0, #0 movs r1, #0x35 movs r2, #0 - bl CreateFX + bl CreateFx adds r2, r0, #0 cmp r2, #0 beq _0804F7D0 @@ -9902,7 +9902,7 @@ _0804F7D0: adds r0, r4, #0 movs r1, #0x35 movs r2, #0 - bl CreateFX + bl CreateFx adds r2, r0, #0 cmp r2, #0 beq _0804F802 diff --git a/asm/code_0805436C.s b/asm/code_0805436C.s index b85131cc..11a6482c 100644 --- a/asm/code_0805436C.s +++ b/asm/code_0805436C.s @@ -1545,7 +1545,7 @@ sub_08054EFC: @ 0x08054EFC subs r1, #0x40 ldr r0, _08054F60 @ =0x00004074 movs r2, #1 - bl sub_0800015E + bl UpdateCollisionLayer adds r1, r4, #0 adds r1, #0x38 movs r0, #2 @@ -1555,7 +1555,7 @@ sub_08054EFC: @ 0x08054EFC adds r0, r4, #0 movs r1, #0x35 movs r2, #0 - bl CreateFX + bl CreateFx adds r1, r0, #0 cmp r1, #0 beq _08054F54 diff --git a/asm/code_08056418.s b/asm/code_08056418.s index 677b3574..ca631417 100644 --- a/asm/code_08056418.s +++ b/asm/code_08056418.s @@ -2697,17 +2697,17 @@ _080578E0: adds r1, #0x3f adds r0, r6, #0 movs r2, #1 - bl sub_0800015E + bl UpdateCollisionLayer ldrh r1, [r4] adds r1, #0x40 adds r0, r6, #0 movs r2, #1 - bl sub_0800015E + bl UpdateCollisionLayer ldrh r1, [r4] adds r1, #0x41 adds r0, r6, #0 movs r2, #1 - bl sub_0800015E + bl UpdateCollisionLayer adds r4, #8 _08057906: adds r0, r4, #0 @@ -12689,7 +12689,7 @@ sub_0805C61C: @ 0x0805C61C movs r2, #0x38 ldrsh r1, [r4, r2] movs r2, #1 - bl sub_0800015E + bl UpdateCollisionLayer b _0805C674 .align 2, 0 _0805C668: .4byte gRoomControls @@ -12721,7 +12721,7 @@ _0805C694: ldrsh r1, [r4, r2] adds r0, r5, #0 movs r2, #1 - bl sub_0800015E + bl UpdateCollisionLayer bl sub_0805E780 _0805C6B2: pop {r4, r5, pc} @@ -14197,7 +14197,7 @@ sub_0805D1FC: @ 0x0805D1FC ldr r0, _0805D240 @ =0x00004014 ldr r1, _0805D244 @ =0x000005C3 movs r2, #1 - bl sub_0800015E + bl UpdateCollisionLayer ldr r3, _0805D248 @ =gRoomControls ldrh r0, [r3, #8] adds r0, #0xc8 diff --git a/asm/code_0805E744.s b/asm/code_0805E744.s index bcf6f182..54442d2b 100644 --- a/asm/code_0805E744.s +++ b/asm/code_0805E744.s @@ -2912,7 +2912,7 @@ _0805FCA4: adds r0, r4, #0 movs r1, #0x19 movs r2, #0 - bl CreateFX + bl CreateFx bl sub_0805E780 _0805FCF6: adds r0, r4, #0 @@ -2923,7 +2923,7 @@ _0805FCF6: adds r0, r4, #0 movs r1, #0x19 movs r2, #0 - bl CreateFX + bl CreateFx bl sub_0805E780 b _0805FD20 .align 2, 0 diff --git a/asm/code_0806ED78.s b/asm/code_0806ED78.s index 5d8a4231..e0a45468 100644 --- a/asm/code_0806ED78.s +++ b/asm/code_0806ED78.s @@ -557,8 +557,8 @@ sub_0806F118: @ 0x0806F118 _0806F140: .4byte gUnk_08001A7C _0806F144: .4byte gLinkState - thumb_func_start sub_0806F148 -sub_0806F148: @ 0x0806F148 + thumb_func_start UpdateFuseInteraction +UpdateFuseInteraction: @ 0x0806F148 push {r4, lr} bl sub_0801E00C movs r4, #1 diff --git a/asm/code_0806FA6C.s b/asm/code_0806FA6C.s index f8c67025..ef02a815 100644 --- a/asm/code_0806FA6C.s +++ b/asm/code_0806FA6C.s @@ -1226,7 +1226,7 @@ _08070280: lsls r2, r2, #6 orrs r1, r2 ldrb r2, [r4] - bl sub_0800015E + bl UpdateCollisionLayer b _0807037A .align 2, 0 _08070354: .4byte gRoomControls @@ -1399,7 +1399,7 @@ sub_08070458: @ 0x08070458 adds r0, #0x38 ldrb r2, [r0] adds r0, r5, #0 - bl sub_0800015E + bl UpdateCollisionLayer _0807049E: adds r0, r4, #0 movs r1, #0x13 @@ -3195,7 +3195,7 @@ _080712C4: adds r0, r4, #0 movs r1, #0xb movs r2, #0 - bl CreateFX + bl CreateFx ldr r0, [r5, #0x30] movs r1, #8 ands r0, r1 @@ -4968,7 +4968,7 @@ sub_08072008: @ 0x08072008 adds r0, r3, #0 movs r1, #0xd movs r2, #0 - bl CreateFX + bl CreateFx bl sub_080791BC pop {pc} .align 2, 0 @@ -5421,7 +5421,7 @@ sub_08072354: @ 0x08072354 adds r0, r4, #0 movs r1, #0xc movs r2, #0 - bl CreateFX + bl CreateFx movs r0, #0xd3 lsls r0, r0, #1 bl PlaySFX @@ -5903,7 +5903,7 @@ _0807274C: ldr r0, _080727A4 @ =gLinkEntity movs r1, #0x11 movs r2, #0x40 - bl CreateFX + bl CreateFx movs r0, #4 strb r0, [r4, #0xe] _0807277E: @@ -6268,7 +6268,7 @@ _08072A14: lsls r2, r2, #6 orrs r1, r2 ldrb r2, [r6] - bl sub_0800015E + bl UpdateCollisionLayer bl sub_08077B2C adds r0, r5, #0 bl sub_08072A60 @@ -6456,7 +6456,7 @@ _08072B82: adds r2, r5, #0 adds r2, #0x38 ldrb r2, [r2] - bl sub_0800015E + bl UpdateCollisionLayer ldrb r0, [r5, #0x14] lsls r0, r0, #2 strb r0, [r5, #0x15] diff --git a/asm/code_080732D0.s b/asm/code_080732D0.s index 30112e98..c6545e66 100644 --- a/asm/code_080732D0.s +++ b/asm/code_080732D0.s @@ -2688,7 +2688,7 @@ _080746DC: adds r0, r4, #0 movs r1, #0x52 movs r2, #0 - bl CreateFX + bl CreateFx b _08074714 .align 2, 0 _08074700: .4byte gLinkState @@ -2753,7 +2753,7 @@ _0807476C: adds r0, r4, #0 movs r1, #0x52 movs r2, #0 - bl CreateFX + bl CreateFx adds r1, r4, #0 adds r1, #0x3d movs r0, #0x20 @@ -2869,7 +2869,7 @@ _08074840: adds r0, r6, #0 movs r1, #0xb movs r2, #0 - bl CreateFX + bl CreateFx _08074862: ldr r0, _080748B0 @ =0x000001A5 bl PlaySFX @@ -5177,7 +5177,7 @@ _08075962: adds r0, r4, #0 movs r1, #0x11 movs r2, #0x40 - bl CreateFX + bl CreateFx b _080759B2 .align 2, 0 _08075990: .4byte gLinkEntity @@ -7113,7 +7113,7 @@ _0807684A: adds r0, r4, #0 movs r1, #0x52 movs r2, #0 - bl CreateFX + bl CreateFx b _080768DA .align 2, 0 _08076880: .4byte gLinkState @@ -7121,7 +7121,7 @@ _08076884: adds r0, r4, #0 movs r1, #0x11 movs r2, #0x40 - bl CreateFX + bl CreateFx adds r5, r0, #0 cmp r5, #0 beq _080768DA diff --git a/asm/code_08076C80.s b/asm/code_08076C80.s index a8ae34cc..285100a9 100644 --- a/asm/code_08076C80.s +++ b/asm/code_08076C80.s @@ -928,7 +928,7 @@ _080773BC: adds r0, r5, #0 movs r1, #0x1d movs r2, #0 - bl CreateFX + bl CreateFx adds r3, r0, #0 cmp r3, #0 beq _080773F6 @@ -953,7 +953,7 @@ _080773F6: adds r0, r5, #0 movs r1, #0x1d movs r2, #0 - bl CreateFX + bl CreateFx adds r3, r0, #0 cmp r3, #0 beq _08077432 diff --git a/asm/code_08077B98.s b/asm/code_08077B98.s index ae59dc1f..4fadd1aa 100644 --- a/asm/code_08077B98.s +++ b/asm/code_08077B98.s @@ -6485,7 +6485,7 @@ _0807ABF4: adds r2, r4, #0 adds r2, #0x38 ldrb r2, [r2] - bl sub_0800015E + bl UpdateCollisionLayer _0807AC44: pop {r3, r4, r5} mov r8, r3 @@ -6980,7 +6980,7 @@ sub_0807AFE8: @ 0x0807AFE8 ldr r0, _0807B00C @ =gLinkEntity movs r1, #0x43 movs r2, #0 - bl CreateFX + bl CreateFx adds r1, r0, #0 cmp r1, #0 beq _0807B004 @@ -7534,7 +7534,7 @@ _0807B410: adds r0, r5, #0 adds r1, r4, #0 adds r2, r6, #0 - bl sub_0800015E + bl UpdateCollisionLayer b _0807B430 .align 2, 0 _0807B424: .4byte 0x00003FFF diff --git a/asm/code_0807B9B8.s b/asm/code_0807B9B8.s index cc472823..92bed6cb 100644 --- a/asm/code_0807B9B8.s +++ b/asm/code_0807B9B8.s @@ -261,7 +261,7 @@ _0807BBBC: adds r1, r5, r4 ldr r0, _0807BBE0 @ =0x00004072 mov r2, sl - bl sub_0800015E + bl UpdateCollisionLayer adds r4, #1 cmp r4, r8 blo _0807BBBC @@ -1354,7 +1354,7 @@ _0807C49A: adds r1, r4, #0 movs r2, #1 str r3, [sp, #4] - bl sub_0800015E + bl UpdateCollisionLayer ldr r3, [sp, #4] _0807C4AC: ldrh r0, [r6] @@ -1363,7 +1363,7 @@ _0807C4AC: adds r1, r4, #0 movs r2, #2 str r3, [sp, #4] - bl sub_0800015E + bl UpdateCollisionLayer ldr r3, [sp, #4] _0807C4BE: adds r7, #2 diff --git a/asm/code_0807CC3C.s b/asm/code_0807CC3C.s index af756955..b88ed809 100644 --- a/asm/code_0807CC3C.s +++ b/asm/code_0807CC3C.s @@ -5575,7 +5575,7 @@ sub_0807F36C: @ 0x0807F36C adds r5, r0, #0 movs r1, #0x41 movs r2, #0 - bl CreateFX + bl CreateFx adds r4, r0, #0 cmp r4, #0 beq _0807F3C2 diff --git a/asm/code_08080974.s b/asm/code_08080974.s index 8cba1b46..1d07ec85 100644 --- a/asm/code_08080974.s +++ b/asm/code_08080974.s @@ -519,7 +519,7 @@ _08080DB4: adds r0, r4, #0 movs r1, #7 movs r2, #0 - bl CreateFX + bl CreateFx adds r1, r0, #0 cmp r1, #0 beq _08080E00 @@ -2425,7 +2425,7 @@ sub_08081C30: @ 0x08081C30 adds r2, r4, #0 adds r2, #0x38 ldrb r2, [r2] - bl sub_0800015E + bl UpdateCollisionLayer _08081C5A: adds r0, r4, #0 bl sub_08081CB0 @@ -2766,7 +2766,7 @@ _08081EB4: adds r0, r7, #0 adds r1, r6, #0 adds r2, r5, #0 - bl sub_0800015E + bl UpdateCollisionLayer _08081EE8: pop {r4, r5, r6, r7, pc} .align 2, 0 @@ -2805,7 +2805,7 @@ sub_08081F24: @ 0x08081F24 adds r4, r0, #0 movs r1, #0x11 movs r2, #0x40 - bl CreateFX + bl CreateFx adds r2, r0, #0 cmp r2, #0 beq _08081F50 @@ -2826,7 +2826,7 @@ _08081F50: adds r0, r4, #0 movs r1, #0x11 movs r2, #0x40 - bl CreateFX + bl CreateFx adds r2, r0, #0 cmp r2, #0 beq _08081F7A @@ -2899,7 +2899,7 @@ _08081FA4: adds r0, r1, #0 ldrh r1, [r6] ldrb r2, [r5] - bl sub_0800015E + bl UpdateCollisionLayer _08081FEC: movs r0, #0 b _08081FF6 @@ -3317,7 +3317,7 @@ _080822D6: orrs r1, r0 ldrb r2, [r5] mov r0, r8 - bl sub_0800015E + bl UpdateCollisionLayer adds r0, r4, #0 movs r1, #5 bl UpdateSprite @@ -3385,7 +3385,7 @@ _0808234C: adds r2, r5, #0 adds r2, #0x38 ldrb r2, [r2] - bl sub_0800015E + bl UpdateCollisionLayer movs r1, #0 movs r0, #5 strb r0, [r5, #0xc] @@ -3474,7 +3474,7 @@ _08082400: adds r2, r5, #0 adds r2, #0x38 ldrb r2, [r2] - bl sub_0800015E + bl UpdateCollisionLayer ldr r0, _08082444 @ =0x0000010F bl sub_08004488 b _080824F6 @@ -3506,7 +3506,7 @@ _08082448: adds r2, r5, #0 adds r2, #0x38 ldrb r2, [r2] - bl sub_0800015E + bl UpdateCollisionLayer bl sub_0805E780 b _080824F6 .align 2, 0 @@ -3519,7 +3519,7 @@ _08082484: adds r0, r5, #0 movs r1, #0 movs r2, #0 - bl CreateFX + bl CreateFx b _080824D8 _0808249A: ldr r0, _080824E4 @ =0x00004005 @@ -3551,7 +3551,7 @@ _0808249A: adds r2, r5, #0 adds r2, #0x38 ldrb r2, [r2] - bl sub_0800015E + bl UpdateCollisionLayer _080824D8: adds r0, r5, #0 movs r1, #0 @@ -3627,7 +3627,7 @@ sub_08082510: @ 0x08082510 adds r2, r5, #0 adds r2, #0x38 ldrb r2, [r2] - bl sub_0800015E + bl UpdateCollisionLayer ldrb r0, [r5, #0xd] adds r0, #1 strb r0, [r5, #0xd] @@ -3684,7 +3684,7 @@ _080825C4: movs r1, #0xc _080825C8: movs r2, #0 - bl CreateFX + bl CreateFx b _080825E0 _080825D0: ldr r1, _080825DC @ =gLinkEntity @@ -3820,7 +3820,7 @@ _080826AC: lsls r2, r2, #6 orrs r1, r2 ldrb r2, [r6] - bl sub_0800015E + bl UpdateCollisionLayer adds r0, r5, #0 bl sub_08078930 _080826DC: @@ -3897,7 +3897,7 @@ _0808272A: adds r2, r5, #0 adds r2, #0x38 ldrb r2, [r2] - bl sub_0800015E + bl UpdateCollisionLayer b _08082776 .align 2, 0 _08082768: .4byte gLinkState @@ -3946,7 +3946,7 @@ sub_08082778: @ 0x08082778 adds r2, r5, #0 adds r2, #0x38 ldrb r2, [r2] - bl sub_0800015E + bl UpdateCollisionLayer _080827C4: ldr r0, _080827EC @ =gLinkState ldrb r1, [r0, #0x1c] @@ -4043,7 +4043,7 @@ sub_08082850: @ 0x08082850 adds r2, r0, #0 adds r0, r4, #0 movs r1, #5 - bl CreateFX + bl CreateFx cmp r0, #0 beq _08082874 str r5, [r0, #0x50] @@ -5627,7 +5627,7 @@ sub_080834B4: @ 0x080834B4 ldrh r1, [r1] adds r2, #0x38 ldrb r2, [r2] - bl sub_0800015E + bl UpdateCollisionLayer ldr r0, _080834E8 @ =0x0000010B bl sub_08004488 _080834E6: @@ -5899,7 +5899,7 @@ sub_080836A0: @ 0x080836A0 ldrh r1, [r1] adds r2, #0x38 ldrb r2, [r2] - bl sub_0800015E + bl UpdateCollisionLayer pop {pc} .align 2, 0 _080836D8: .4byte 0x00004022 @@ -5914,7 +5914,7 @@ sub_080836DC: @ 0x080836DC adds r2, r5, #0 adds r2, #0x38 ldrb r2, [r2] - bl sub_0800015E + bl UpdateCollisionLayer movs r0, #7 strb r0, [r5, #0xe] ldrb r1, [r5, #0x18] @@ -6085,7 +6085,7 @@ sub_08083814: @ 0x08083814 adds r0, r5, #0 movs r1, #0x11 movs r2, #0x40 - bl CreateFX + bl CreateFx adds r2, r0, #0 cmp r2, #0 beq _08083842 @@ -6103,7 +6103,7 @@ _08083842: adds r0, r5, #0 movs r1, #0x11 movs r2, #0x40 - bl CreateFX + bl CreateFx adds r2, r0, #0 cmp r2, #0 beq _08083866 @@ -7255,7 +7255,7 @@ sub_080840A8: @ 0x080840A8 adds r0, r5, #0 movs r1, #0x11 movs r2, #0 - bl CreateFX + bl CreateFx adds r5, r0, #0 cmp r5, #0 beq _08084138 @@ -7593,7 +7593,7 @@ sub_0808434C: @ 0x0808434C adds r2, r5, #0 adds r2, #0x38 ldrb r2, [r2] - bl sub_0800015E + bl UpdateCollisionLayer ldrb r0, [r5, #0xa] cmp r0, #1 beq _080843C8 @@ -7643,7 +7643,7 @@ sub_080843F8: @ 0x080843F8 adds r0, r2, #0 movs r1, #0xd movs r2, #0 - bl CreateFX + bl CreateFx ldr r0, _08084424 @ =0x0000010D bl sub_08004488 _08084420: @@ -7722,7 +7722,7 @@ _08084472: adds r0, r4, #0 movs r1, #0 movs r2, #0x40 - bl CreateFX + bl CreateFx movs r0, #0x93 lsls r0, r0, #1 bl PlaySFX @@ -8071,7 +8071,7 @@ _08084734: adds r0, r5, #0 movs r1, #0x24 movs r2, #0 - bl CreateFX + bl CreateFx adds r2, r0, #0 cmp r2, #0 beq _0808475E @@ -8266,7 +8266,7 @@ sub_0808483C: @ 0x0808483C ldrh r1, [r5] adds r4, #0x38 ldrb r2, [r4] - bl sub_0800015E + bl UpdateCollisionLayer movs r0, #0x89 lsls r0, r0, #1 bl PlaySFX @@ -8560,7 +8560,7 @@ _08084AF8: adds r0, r4, #0 movs r1, #0x30 movs r2, #0 - bl CreateFX + bl CreateFx ldr r0, [r4, #0x54] bl sub_0805E7BC ldr r0, _08084B18 @ =0x0000018F @@ -8964,7 +8964,7 @@ _08084D7E: lsls r2, r2, #6 orrs r1, r2 ldrb r2, [r6] - bl sub_0800015E + bl UpdateCollisionLayer ldrb r0, [r7, #0xa] lsls r0, r0, #2 add r0, r8 @@ -9165,7 +9165,7 @@ _08084F9E: _08084FA4: ldrb r1, [r0, #0xe] movs r2, #0x80 - bl CreateFX + bl CreateFx b _08084FB8 _08084FAE: ldrb r1, [r0, #0xb] @@ -9375,44 +9375,44 @@ sub_080850FC: @ 0x080850FC subs r1, #0x41 adds r0, r5, #0 adds r2, r6, #0 - bl sub_0800015E + bl UpdateCollisionLayer adds r1, r4, #0 subs r1, #0x40 adds r0, r5, #0 adds r2, r6, #0 - bl sub_0800015E + bl UpdateCollisionLayer adds r1, r4, #0 subs r1, #0x3f adds r0, r5, #0 adds r2, r6, #0 - bl sub_0800015E + bl UpdateCollisionLayer subs r1, r4, #1 adds r0, r5, #0 adds r2, r6, #0 - bl sub_0800015E + bl UpdateCollisionLayer adds r0, r5, #0 adds r1, r4, #0 adds r2, r6, #0 - bl sub_0800015E + bl UpdateCollisionLayer adds r1, r4, #1 adds r0, r5, #0 adds r2, r6, #0 - bl sub_0800015E + bl UpdateCollisionLayer adds r1, r4, #0 adds r1, #0x3f adds r0, r5, #0 adds r2, r6, #0 - bl sub_0800015E + bl UpdateCollisionLayer adds r1, r4, #0 adds r1, #0x40 adds r0, r5, #0 adds r2, r6, #0 - bl sub_0800015E + bl UpdateCollisionLayer adds r4, #0x41 adds r0, r5, #0 adds r1, r4, #0 adds r2, r6, #0 - bl sub_0800015E + bl UpdateCollisionLayer pop {r4, r5, r6, pc} .align 2, 0 _0808518C: .4byte gRoomControls @@ -9728,7 +9728,7 @@ sub_08085394: @ 0x08085394 adds r6, #0x38 ldrb r2, [r6] mov r0, sl - bl sub_0800015E + bl UpdateCollisionLayer mov r1, sb ldrh r0, [r1] adds r1, r7, #0 @@ -9737,7 +9737,7 @@ sub_08085394: @ 0x08085394 ldrb r2, [r6] mov r0, sl adds r1, r4, #0 - bl sub_0800015E + bl UpdateCollisionLayer add r5, sb ldrh r1, [r5] adds r0, r7, #0 @@ -9747,7 +9747,7 @@ sub_08085394: @ 0x08085394 ldrb r2, [r6] mov r0, sl adds r1, r4, #0 - bl sub_0800015E + bl UpdateCollisionLayer pop {r3, r4, r5} mov r8, r3 mov sb, r4 @@ -9792,20 +9792,20 @@ sub_0808543C: @ 0x0808543C adds r5, r7, #0 adds r5, #0x38 ldrb r2, [r5] - bl sub_0800015E + bl UpdateCollisionLayer adds r0, r7, #0 adds r0, #0x76 ldrh r0, [r0] ldrb r2, [r5] adds r1, r4, #0 - bl sub_0800015E + bl UpdateCollisionLayer adds r0, r7, #0 adds r0, #0x78 ldrh r0, [r0] adds r4, r4, r6 ldrb r2, [r5] adds r1, r4, #0 - bl sub_0800015E + bl UpdateCollisionLayer pop {r4, r5, r6, r7, pc} .align 2, 0 _080854A0: .4byte gUnk_080B4488 @@ -12722,47148 +12722,3 @@ sub_08086A6C: @ 0x08086A6C strh r0, [r4, #0x24] pop {r4, pc} .align 2, 0 - - thumb_func_start sub_08086A90 -sub_08086A90: @ 0x08086A90 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _08086AA4 - ldrb r0, [r4, #0xa] - movs r1, #0xb - bl __modsi3 - strb r0, [r4, #0xb] -_08086AA4: - ldr r0, _08086AB8 @ =gUnk_081206D0 - ldrb r1, [r4, #0xb] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 - pop {r4, pc} - .align 2, 0 -_08086AB8: .4byte gUnk_081206D0 - - thumb_func_start sub_08086ABC -sub_08086ABC: @ 0x08086ABC - push {r4, lr} - adds r4, r0, #0 - ldr r1, _08086AE4 @ =gUnk_081206FC - ldrb r0, [r4, #0xc] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - ldr r3, _08086AE8 @ =gLinkEntity - movs r1, #0x32 - ldrsh r0, [r3, r1] - ldr r2, _08086AEC @ =gRoomControls - ldrh r1, [r2, #8] - subs r0, r0, r1 - cmp r0, #0xa7 - bgt _08086AF0 - str r4, [r2, #0x30] - b _08086AF2 - .align 2, 0 -_08086AE4: .4byte gUnk_081206FC -_08086AE8: .4byte gLinkEntity -_08086AEC: .4byte gRoomControls -_08086AF0: - str r3, [r2, #0x30] -_08086AF2: - movs r0, #2 - strb r0, [r2, #0xe] - pop {r4, pc} - - thumb_func_start sub_08086AF8 -sub_08086AF8: @ 0x08086AF8 - push {r4, lr} - adds r4, r0, #0 - bl sub_08087380 - movs r0, #0 - strb r0, [r4, #0xe] - adds r4, #0x84 - movs r0, #0x91 - lsls r0, r0, #1 - strh r0, [r4] - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08086B10 -sub_08086B10: @ 0x08086B10 - push {r4, r5, r6, lr} - adds r4, r0, #0 - movs r0, #0 - bl sub_0807CC3C - cmp r0, #0 - beq _08086B9A - adds r1, r4, #0 - adds r1, #0x84 - ldrh r0, [r1] - cmp r0, #0 - beq _08086B2C - subs r0, #1 - strh r0, [r1] -_08086B2C: - ldrh r1, [r1] - cmp r1, #0x96 - beq _08086B62 - cmp r1, #0x96 - bgt _08086B40 - cmp r1, #0 - beq _08086B5C - cmp r1, #0x82 - beq _08086B62 - b _08086B9A -_08086B40: - cmp r1, #0xd2 - beq _08086B62 - cmp r1, #0xd2 - bgt _08086B4E - cmp r1, #0xaa - beq _08086B62 - b _08086B9A -_08086B4E: - ldr r0, _08086B58 @ =0x00000121 - cmp r1, r0 - beq _08086B62 - b _08086B9A - .align 2, 0 -_08086B58: .4byte 0x00000121 -_08086B5C: - movs r0, #2 - strb r0, [r4, #0xc] - b _08086B9A -_08086B62: - adds r0, r4, #0 - movs r1, #6 - movs r2, #0 - bl sub_080873AC - adds r5, r0, #0 - cmp r5, #0 - beq _08086B9A - ldr r3, _08086B9C @ =gUnk_08120714 - ldrb r1, [r4, #0xe] - lsls r0, r1, #1 - adds r0, r0, r3 - movs r6, #0 - ldrsh r2, [r0, r6] - lsls r2, r2, #0x10 - adds r1, #1 - lsls r1, r1, #1 - adds r1, r1, r3 - movs r0, #0 - ldrsh r3, [r1, r0] - lsls r3, r3, #0x10 - adds r0, r4, #0 - adds r1, r5, #0 - bl PositionRelative - ldrb r0, [r4, #0xe] - adds r0, #2 - strb r0, [r4, #0xe] -_08086B9A: - pop {r4, r5, r6, pc} - .align 2, 0 -_08086B9C: .4byte gUnk_08120714 - - thumb_func_start sub_08086BA0 -sub_08086BA0: @ 0x08086BA0 - push {r4, lr} - adds r4, r0, #0 - movs r1, #7 - movs r2, #0 - bl sub_080873AC - adds r1, r0, #0 - cmp r1, #0 - beq _08086BC2 - movs r3, #0x80 - lsls r3, r3, #0xc - adds r0, r4, #0 - movs r2, #0 - bl PositionRelative - movs r0, #3 - strb r0, [r4, #0xc] -_08086BC2: - pop {r4, pc} - - thumb_func_start sub_08086BC4 -sub_08086BC4: @ 0x08086BC4 - push {r4, lr} - adds r4, r0, #0 - ldr r0, _08086C10 @ =gUnk_02034350 - ldr r0, [r0, #0x68] - movs r1, #1 - ands r0, r1 - cmp r0, #0 - beq _08086C0C - adds r0, r4, #0 - movs r1, #2 - movs r2, #0 - bl sub_080873AC - adds r1, r0, #0 - cmp r1, #0 - beq _08086C0C - adds r0, r4, #0 - bl CopyPosition - movs r0, #6 - movs r1, #4 - bl DoFade - ldr r0, _08086C14 @ =0x00000145 - bl PlaySFX - movs r0, #4 - strb r0, [r4, #0xc] - movs r0, #0x3c - strb r0, [r4, #0xe] - ldrb r1, [r4, #0x18] - subs r0, #0x40 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] -_08086C0C: - pop {r4, pc} - .align 2, 0 -_08086C10: .4byte gUnk_02034350 -_08086C14: .4byte 0x00000145 - - thumb_func_start sub_08086C18 -sub_08086C18: @ 0x08086C18 - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_08004274 - ldrb r0, [r4, #0xe] - adds r5, r0, #0 - cmp r5, #0 - beq _08086C2E - subs r0, #1 - strb r0, [r4, #0xe] - b _08086C52 -_08086C2E: - adds r0, r4, #0 - movs r1, #1 - movs r2, #0 - bl sub_080873AC - adds r1, r0, #0 - cmp r1, #0 - beq _08086C52 - ldr r3, _08086C54 @ =0xFFEC0000 - adds r0, r4, #0 - movs r2, #0 - bl PositionRelative - movs r0, #5 - strb r0, [r4, #0xc] - movs r0, #0x78 - strb r0, [r4, #0xe] - strb r5, [r4, #0xf] -_08086C52: - pop {r4, r5, pc} - .align 2, 0 -_08086C54: .4byte 0xFFEC0000 - - thumb_func_start sub_08086C58 -sub_08086C58: @ 0x08086C58 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _08086C68 - subs r0, #1 - strb r0, [r4, #0xe] - b _08086C90 -_08086C68: - ldrb r0, [r4, #0xf] - cmp r0, #0 - bne _08086C90 - adds r0, r4, #0 - movs r1, #9 - movs r2, #0 - bl sub_080873AC - adds r5, r0, #0 - cmp r5, #0 - beq _08086C90 - ldr r3, _08086C98 @ =0xFFB40000 - adds r0, r4, #0 - adds r1, r5, #0 - movs r2, #0 - bl PositionRelative - str r4, [r5, #0x50] - movs r0, #1 - strb r0, [r4, #0xf] -_08086C90: - adds r0, r4, #0 - bl sub_08004274 - pop {r4, r5, pc} - .align 2, 0 -_08086C98: .4byte 0xFFB40000 - - thumb_func_start sub_08086C9C -sub_08086C9C: @ 0x08086C9C - push {lr} - ldr r2, _08086CB0 @ =gUnk_08120728 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08086CB0: .4byte gUnk_08120728 - - thumb_func_start sub_08086CB4 -sub_08086CB4: @ 0x08086CB4 - push {r4, lr} - adds r4, r0, #0 - bl sub_08087380 - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #5 - orrs r0, r1 - strb r0, [r2] - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] - ldrb r1, [r4, #0x19] - movs r0, #0xd - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #4 - orrs r0, r1 - strb r0, [r4, #0x19] - ldr r1, _08086D10 @ =gLCDControls - adds r2, r1, #0 - adds r2, #0x66 - movs r0, #0xf4 - lsls r0, r0, #4 - strh r0, [r2] - adds r1, #0x68 - ldr r0, _08086D14 @ =0x00000809 - strh r0, [r1] - movs r1, #0x80 - lsls r1, r1, #3 - strh r1, [r4, #0x24] - movs r2, #0x80 - lsls r2, r2, #1 - adds r0, r4, #0 - movs r3, #0 - bl sub_0805EC9C - pop {r4, pc} - .align 2, 0 -_08086D10: .4byte gLCDControls -_08086D14: .4byte 0x00000809 - - thumb_func_start sub_08086D18 -sub_08086D18: @ 0x08086D18 - push {lr} - adds r3, r0, #0 - ldrh r0, [r3, #0x24] - subs r0, #0x20 - strh r0, [r3, #0x24] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r2, #0x80 - lsls r2, r2, #1 - cmp r0, r2 - bne _08086D58 - movs r0, #2 - strb r0, [r3, #0xc] - adds r0, r3, #0 - bl sub_0805EC60 - ldr r2, _08086D50 @ =gUnk_02034350 - ldr r0, [r2, #0x68] - movs r1, #0x20 - orrs r0, r1 - str r0, [r2, #0x68] - ldr r2, _08086D54 @ =gUnk_02033280 - ldr r0, [r2] - movs r1, #4 - orrs r0, r1 - str r0, [r2] - b _08086D64 - .align 2, 0 -_08086D50: .4byte gUnk_02034350 -_08086D54: .4byte gUnk_02033280 -_08086D58: - movs r0, #0x24 - ldrsh r1, [r3, r0] - adds r0, r3, #0 - movs r3, #0 - bl sub_0805EC9C -_08086D64: - pop {pc} - .align 2, 0 - - thumb_func_start nullsub_116 -nullsub_116: @ 0x08086D68 - bx lr - .align 2, 0 - - thumb_func_start sub_08086D6C -sub_08086D6C: @ 0x08086D6C - push {lr} - ldr r2, _08086D80 @ =gUnk_08120734 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08086D80: .4byte gUnk_08120734 - - thumb_func_start sub_08086D84 -sub_08086D84: @ 0x08086D84 - push {r4, lr} - adds r4, r0, #0 - bl sub_08087380 - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] - adds r4, #0x29 - ldrb r1, [r4] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #6 - orrs r0, r1 - strb r0, [r4] - pop {r4, pc} - - thumb_func_start sub_08086DAC -sub_08086DAC: @ 0x08086DAC - push {lr} - bl sub_08004274 - pop {pc} - - thumb_func_start sub_08086DB4 -sub_08086DB4: @ 0x08086DB4 - push {lr} - ldr r2, _08086DC8 @ =gUnk_0812073C - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08086DC8: .4byte gUnk_0812073C - - thumb_func_start sub_08086DCC -sub_08086DCC: @ 0x08086DCC - push {r4, r5, lr} - adds r5, r0, #0 - movs r1, #4 - movs r2, #0 - bl sub_080873AC - adds r4, r0, #0 - cmp r4, #0 - beq _08086E00 - adds r0, r5, #0 - adds r1, r4, #0 - bl CopyPosition - str r5, [r4, #0x50] - adds r0, r5, #0 - bl sub_08087380 - ldrb r1, [r5, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r5, #0x18] - movs r0, #0 - strb r0, [r5, #0xf] -_08086E00: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_08086E04 -sub_08086E04: @ 0x08086E04 - push {r4, lr} - adds r4, r0, #0 - bl sub_08004274 - ldr r0, [r4, #0x34] - ldr r1, _08086E2C @ =0xFFFF8000 - adds r0, r0, r1 - str r0, [r4, #0x34] - movs r0, #0x36 - ldrsh r1, [r4, r0] - movs r0, #0x14 - rsbs r0, r0, #0 - cmp r1, r0 - bne _08086E34 - movs r0, #2 - strb r0, [r4, #0xc] - ldr r0, _08086E30 @ =0x00000141 - bl PlaySFX - b _08086E62 - .align 2, 0 -_08086E2C: .4byte 0xFFFF8000 -_08086E30: .4byte 0x00000141 -_08086E34: - movs r0, #0xa - rsbs r0, r0, #0 - cmp r1, r0 - bne _08086E62 - ldrb r0, [r4, #0xf] - cmp r0, #0 - bne _08086E62 - adds r0, r4, #0 - movs r1, #5 - movs r2, #0 - bl sub_080873AC - adds r1, r0, #0 - cmp r1, #0 - beq _08086E62 - movs r3, #0x80 - lsls r3, r3, #0xb - adds r0, r4, #0 - movs r2, #0 - bl PositionRelative - movs r0, #1 - strb r0, [r4, #0xf] -_08086E62: - pop {r4, pc} - - thumb_func_start sub_08086E64 -sub_08086E64: @ 0x08086E64 - push {r4, lr} - adds r4, r0, #0 - bl sub_08004274 - adds r0, r4, #0 - bl sub_080873D0 - ldr r0, _08086E88 @ =gUnk_02034350 - ldr r0, [r0, #0x68] - movs r1, #1 - ands r0, r1 - cmp r0, #0 - beq _08086E84 - adds r0, r4, #0 - bl sub_0805E7BC -_08086E84: - pop {r4, pc} - .align 2, 0 -_08086E88: .4byte gUnk_02034350 - - thumb_func_start sub_08086E8C -sub_08086E8C: @ 0x08086E8C - push {lr} - ldr r2, _08086EA0 @ =gUnk_08120748 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08086EA0: .4byte gUnk_08120748 - - thumb_func_start sub_08086EA4 -sub_08086EA4: @ 0x08086EA4 - push {r4, lr} - adds r4, r0, #0 - bl sub_08087380 - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #6 - orrs r0, r1 - strb r0, [r2] - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08086ED0 -sub_08086ED0: @ 0x08086ED0 - push {r4, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x50] - adds r1, r4, #0 - bl CopyPosition - movs r0, #0x36 - ldrsh r1, [r4, r0] - movs r0, #0x14 - rsbs r0, r0, #0 - cmp r1, r0 - bne _08086F0C - movs r0, #2 - strb r0, [r4, #0xc] - movs r0, #0x5a - strb r0, [r4, #0xe] - movs r0, #0x80 - lsls r0, r0, #5 - strh r0, [r4, #0x24] - ldrb r0, [r4, #0x19] - movs r1, #3 - orrs r0, r1 - strb r0, [r4, #0x19] - movs r2, #0x80 - lsls r2, r2, #1 - adds r0, r4, #0 - adds r1, r2, #0 - movs r3, #0 - bl sub_0805EC9C -_08086F0C: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08086F10 -sub_08086F10: @ 0x08086F10 - push {lr} - adds r3, r0, #0 - ldrb r0, [r3, #0xe] - subs r0, #1 - strb r0, [r3, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08086F3C - ldr r2, _08086F38 @ =gUnk_02034350 - ldr r0, [r2, #0x68] - movs r1, #1 - orrs r0, r1 - str r0, [r2, #0x68] - movs r0, #3 - strb r0, [r3, #0xc] - adds r0, r3, #0 - bl sub_0805EC60 - b _08086F52 - .align 2, 0 -_08086F38: .4byte gUnk_02034350 -_08086F3C: - ldrh r2, [r3, #0x24] - subs r2, #0x18 - strh r2, [r3, #0x24] - movs r1, #0x80 - lsls r1, r1, #1 - lsls r2, r2, #0x10 - asrs r2, r2, #0x14 - adds r0, r3, #0 - movs r3, #0 - bl sub_0805EC9C -_08086F52: - pop {pc} - - thumb_func_start sub_08086F54 -sub_08086F54: @ 0x08086F54 - push {lr} - ldr r2, _08086F68 @ =gUnk_08120758 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08086F68: .4byte gUnk_08120758 - - thumb_func_start sub_08086F6C -sub_08086F6C: @ 0x08086F6C - push {r4, lr} - adds r4, r0, #0 - bl sub_08087380 - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] - movs r0, #0 - strh r0, [r4, #0x36] - adds r4, #0x29 - ldrb r1, [r4] - subs r0, #8 - ands r0, r1 - movs r1, #5 - orrs r0, r1 - strb r0, [r4] - movs r0, #0xa0 - lsls r0, r0, #1 - bl PlaySFX - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08086FA0 -sub_08086FA0: @ 0x08086FA0 - push {r4, lr} - adds r4, r0, #0 - bl sub_08004274 - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08086FBC - adds r0, r4, #0 - bl sub_0805E7BC -_08086FBC: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08086FC0 -sub_08086FC0: @ 0x08086FC0 - push {lr} - ldr r2, _08086FD4 @ =gUnk_08120760 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08086FD4: .4byte gUnk_08120760 - - thumb_func_start sub_08086FD8 -sub_08086FD8: @ 0x08086FD8 - push {r4, lr} - adds r4, r0, #0 - bl sub_08087380 - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] - adds r4, #0x29 - ldrb r1, [r4] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #6 - orrs r0, r1 - strb r0, [r4] - pop {r4, pc} - - thumb_func_start sub_08087000 -sub_08087000: @ 0x08087000 - push {lr} - adds r2, r0, #0 - ldr r0, _08087018 @ =gUnk_02034350 - ldr r0, [r0, #0x68] - movs r1, #2 - ands r0, r1 - cmp r0, #0 - beq _0808701C - adds r0, r2, #0 - bl sub_0805E7BC - b _08087022 - .align 2, 0 -_08087018: .4byte gUnk_02034350 -_0808701C: - adds r0, r2, #0 - bl sub_08004274 -_08087022: - pop {pc} - - thumb_func_start sub_08087024 -sub_08087024: @ 0x08087024 - push {lr} - ldr r2, _08087038 @ =gUnk_08120768 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08087038: .4byte gUnk_08120768 - - thumb_func_start sub_0808703C -sub_0808703C: @ 0x0808703C - push {r4, lr} - adds r4, r0, #0 - bl sub_08087380 - movs r0, #0x78 - strb r0, [r4, #0xe] - ldrb r1, [r4, #0x18] - subs r0, #0x7c - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] - adds r4, #0x29 - ldrb r1, [r4] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #5 - orrs r0, r1 - strb r0, [r4] - movs r0, #0xf9 - bl PlaySFX - pop {r4, pc} - - thumb_func_start sub_0808706C -sub_0808706C: @ 0x0808706C - push {r4, lr} - adds r4, r0, #0 - bl sub_08004274 - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _08087080 - subs r0, #1 - strb r0, [r4, #0xe] - b _080870AA -_08087080: - adds r0, r4, #0 - movs r1, #3 - movs r2, #0 - bl sub_080873AC - adds r1, r0, #0 - cmp r1, #0 - beq _080870AA - ldr r3, _080870AC @ =0xFFF80000 - adds r0, r4, #0 - movs r2, #0 - bl PositionRelative - ldr r2, _080870B0 @ =gUnk_02034350 - ldr r0, [r2, #0x68] - movs r1, #2 - orrs r0, r1 - str r0, [r2, #0x68] - adds r0, r4, #0 - bl sub_0805E7BC -_080870AA: - pop {r4, pc} - .align 2, 0 -_080870AC: .4byte 0xFFF80000 -_080870B0: .4byte gUnk_02034350 - - thumb_func_start sub_080870B4 -sub_080870B4: @ 0x080870B4 - push {lr} - ldr r2, _080870C8 @ =gUnk_08120770 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_080870C8: .4byte gUnk_08120770 - - thumb_func_start sub_080870CC -sub_080870CC: @ 0x080870CC - push {r4, lr} - adds r4, r0, #0 - bl sub_08087380 - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] - adds r4, #0x29 - ldrb r1, [r4] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #5 - orrs r0, r1 - strb r0, [r4] - pop {r4, pc} - - thumb_func_start sub_080870F4 -sub_080870F4: @ 0x080870F4 - push {r4, lr} - adds r4, r0, #0 - bl sub_08004274 - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08087110 - adds r0, r4, #0 - bl sub_0805E7BC -_08087110: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08087114 -sub_08087114: @ 0x08087114 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xb] - cmp r0, #0 - bne _08087134 - ldr r0, _08087130 @ =gUnk_08120778 - ldrb r1, [r4, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 - b _0808714A - .align 2, 0 -_08087130: .4byte gUnk_08120778 -_08087134: - ldr r0, _0808714C @ =gUnk_08120788 - ldrb r1, [r4, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 - adds r0, r4, #0 - bl sub_08004274 -_0808714A: - pop {r4, pc} - .align 2, 0 -_0808714C: .4byte gUnk_08120788 - - thumb_func_start sub_08087150 -sub_08087150: @ 0x08087150 - push {r4, lr} - adds r4, r0, #0 - bl sub_08087380 - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] - ldrb r2, [r4, #0x1b] - movs r1, #0x3f - adds r0, r1, #0 - ands r0, r2 - strb r0, [r4, #0x1b] - ldrb r0, [r4, #0x19] - ands r1, r0 - strb r1, [r4, #0x19] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #3 - orrs r0, r1 - strb r0, [r2] - movs r0, #0x80 - strh r0, [r4, #0x24] - movs r0, #0x10 - strb r0, [r4, #0x15] - ldr r0, _080871A0 @ =gUnk_0812079C - ldrb r0, [r0] - movs r1, #0xf - ands r1, r0 - lsls r0, r0, #4 - orrs r0, r1 - strb r0, [r4, #0x1a] - pop {r4, pc} - .align 2, 0 -_080871A0: .4byte gUnk_0812079C - - thumb_func_start nullsub_516 -nullsub_516: @ 0x080871A4 - bx lr - .align 2, 0 - - thumb_func_start sub_080871A8 -sub_080871A8: @ 0x080871A8 - push {lr} - adds r1, r0, #0 - ldrb r0, [r1, #0xe] - subs r0, #1 - strb r0, [r1, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080871CA - movs r0, #3 - strb r0, [r1, #0xc] - movs r0, #0x3c - strb r0, [r1, #0xe] - ldr r2, _080871CC @ =gUnk_02034350 - ldr r0, [r2, #0x68] - movs r1, #4 - orrs r0, r1 - str r0, [r2, #0x68] -_080871CA: - pop {pc} - .align 2, 0 -_080871CC: .4byte gUnk_02034350 - - thumb_func_start sub_080871D0 -sub_080871D0: @ 0x080871D0 - push {lr} - adds r3, r0, #0 - ldrb r0, [r3, #0xe] - subs r0, #1 - strb r0, [r3, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080871F0 - ldr r0, _080871F4 @ =gUnk_02034350 - ldr r1, [r0, #0x68] - movs r2, #8 - orrs r1, r2 - str r1, [r0, #0x68] - adds r0, r3, #0 - bl sub_0805E7BC -_080871F0: - pop {pc} - .align 2, 0 -_080871F4: .4byte gUnk_02034350 - - thumb_func_start sub_080871F8 -sub_080871F8: @ 0x080871F8 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r3, [r4, #0x54] - movs r0, #0x2e - ldrsh r1, [r3, r0] - movs r2, #0x2e - ldrsh r0, [r4, r2] - cmp r1, r0 - bne _0808721E - movs r5, #0x32 - ldrsh r0, [r3, r5] - subs r0, #0x20 - movs r2, #0x32 - ldrsh r1, [r4, r2] - cmp r0, r1 - bne _0808721E - movs r0, #2 - strb r0, [r4, #0xc] - b _0808723C -_0808721E: - movs r5, #0x2e - ldrsh r0, [r4, r5] - movs r2, #0x32 - ldrsh r1, [r4, r2] - movs r5, #0x2e - ldrsh r2, [r3, r5] - movs r5, #0x32 - ldrsh r3, [r3, r5] - subs r3, #0x20 - bl sub_080045D4 - strb r0, [r4, #0x15] - adds r0, r4, #0 - bl sub_0806F69C -_0808723C: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_08087240 -sub_08087240: @ 0x08087240 - push {lr} - adds r2, r0, #0 - ldr r0, _08087260 @ =gUnk_02034350 - ldr r0, [r0, #0x68] - movs r1, #4 - ands r0, r1 - cmp r0, #0 - beq _0808725C - movs r0, #3 - strb r0, [r2, #0xc] - movs r0, #0x14 - strb r0, [r2, #0xe] - movs r0, #0x10 - strb r0, [r2, #0x15] -_0808725C: - pop {pc} - .align 2, 0 -_08087260: .4byte gUnk_02034350 - - thumb_func_start sub_08087264 -sub_08087264: @ 0x08087264 - push {lr} - adds r1, r0, #0 - ldrb r0, [r1, #0xe] - cmp r0, #0 - beq _08087278 - subs r0, #1 - strb r0, [r1, #0xe] - adds r0, r1, #0 - bl sub_0806F69C -_08087278: - pop {pc} - .align 2, 0 - - thumb_func_start sub_0808727C -sub_0808727C: @ 0x0808727C - push {lr} - adds r1, r0, #0 - ldrb r0, [r1, #0xe] - subs r0, #1 - strb r0, [r1, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08087292 - adds r0, r1, #0 - bl sub_0805E7BC -_08087292: - pop {pc} - - thumb_func_start sub_08087294 -sub_08087294: @ 0x08087294 - push {lr} - ldr r2, _080872A8 @ =gUnk_081207A4 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_080872A8: .4byte gUnk_081207A4 - - thumb_func_start sub_080872AC -sub_080872AC: @ 0x080872AC - push {r4, lr} - adds r4, r0, #0 - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] - ldrb r1, [r4, #0x1b] - movs r2, #0x3f - adds r0, r2, #0 - ands r0, r1 - movs r1, #0x40 - orrs r0, r1 - strb r0, [r4, #0x1b] - ldrb r0, [r4, #0x19] - ands r2, r0 - strb r2, [r4, #0x19] - ldrh r1, [r4, #0x2e] - adds r0, r4, #0 - adds r0, #0x68 - strh r1, [r0] - ldrh r0, [r4, #0x32] - adds r1, r4, #0 - adds r1, #0x6a - strh r0, [r1] - bl Random - movs r1, #0x1f - ands r0, r1 - strb r0, [r4, #0x15] - movs r0, #0x20 - strh r0, [r4, #0x24] - adds r0, r4, #0 - bl sub_08087380 - pop {r4, pc} - - thumb_func_start sub_080872F8 -sub_080872F8: @ 0x080872F8 - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_0806F69C - adds r0, r4, #0 - bl sub_08004274 - adds r2, r4, #0 - adds r2, #0x68 - ldrh r0, [r2] - ldrh r1, [r4, #0x2e] - subs r0, r0, r1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0xc - bhi _0808732A - adds r0, r4, #0 - adds r0, #0x6a - ldrh r0, [r0] - ldrh r1, [r4, #0x32] - subs r0, r0, r1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0xc - bls _0808735C -_0808732A: - movs r1, #0x2e - ldrsh r0, [r4, r1] - movs r3, #0x32 - ldrsh r1, [r4, r3] - movs r5, #0 - ldrsh r2, [r2, r5] - adds r3, r4, #0 - adds r3, #0x6a - movs r5, #0 - ldrsh r3, [r3, r5] - bl sub_080045D4 - strb r0, [r4, #0x15] - bl Random - ldr r2, _08087378 @ =gUnk_081207AC - movs r1, #3 - ands r1, r0 - adds r1, r1, r2 - ldrb r0, [r1] - ldrb r1, [r4, #0x15] - adds r0, r0, r1 - movs r1, #0x1f - ands r0, r1 - strb r0, [r4, #0x15] -_0808735C: - ldr r1, _0808737C @ =gUnk_080C9160 - ldrb r0, [r4, #0xe] - adds r0, #0x40 - lsls r0, r0, #1 - adds r0, r0, r1 - movs r3, #0 - ldrsh r0, [r0, r3] - asrs r0, r0, #6 - subs r0, #8 - strh r0, [r4, #0x36] - ldrb r0, [r4, #0xe] - adds r0, #1 - strb r0, [r4, #0xe] - pop {r4, r5, pc} - .align 2, 0 -_08087378: .4byte gUnk_081207AC -_0808737C: .4byte gUnk_080C9160 - - thumb_func_start sub_08087380 -sub_08087380: @ 0x08087380 - push {r4, lr} - adds r4, r0, #0 - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r0, [r4, #0xa] - movs r1, #0xb - bl __modsi3 - strb r0, [r4, #0xb] - adds r1, r4, #0 - adds r1, #0x38 - movs r0, #2 - strb r0, [r1] - ldrb r1, [r4, #0xb] - adds r0, r4, #0 - bl UpdateSprite - adds r0, r4, #0 - movs r1, #2 - bl sub_0805E3A0 - pop {r4, pc} - - thumb_func_start sub_080873AC -sub_080873AC: @ 0x080873AC - push {r4, r5, r6, lr} - adds r5, r1, #0 - adds r6, r2, #0 - ldrb r0, [r0, #0xa] - movs r4, #0xb - movs r1, #0xb - bl __divsi3 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r1, r0, #0 - muls r1, r4, r1 - adds r1, r1, r5 - movs r0, #0x1b - adds r2, r6, #0 - bl CreateObject - pop {r4, r5, r6, pc} - - thumb_func_start sub_080873D0 -sub_080873D0: @ 0x080873D0 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _080873DE - subs r0, #1 - b _080873F6 -_080873DE: - adds r0, r4, #0 - movs r1, #8 - movs r2, #0 - bl sub_080873AC - adds r1, r0, #0 - cmp r1, #0 - beq _080873F8 - adds r0, r4, #0 - bl CopyPosition - movs r0, #0x30 -_080873F6: - strb r0, [r4, #0xe] -_080873F8: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080873FC -sub_080873FC: @ 0x080873FC - push {lr} - movs r0, #0xf7 - bl PlaySFX - ldr r1, _0808740C @ =gRoomControls - movs r0, #0 - str r0, [r1, #0x30] - b _08087414 - .align 2, 0 -_0808740C: .4byte gRoomControls -_08087410: - bl sub_0805E7BC -_08087414: - movs r0, #6 - movs r1, #0x1b - movs r2, #6 - bl sub_0805EB00 - cmp r0, #0 - bne _08087410 - pop {pc} - - thumb_func_start sub_08087424 -sub_08087424: @ 0x08087424 - push {r4, r5, lr} - adds r5, r1, #0 - bl sub_080791D0 - movs r0, #0x64 - movs r1, #0 - movs r2, #0 - bl CreateObject - adds r4, r0, #0 - cmp r4, #0 - beq _0808744E - ldr r0, _0808745C @ =gLinkEntity - str r0, [r4, #0x50] - adds r1, r4, #0 - bl CopyPosition - adds r0, r4, #0 - movs r1, #2 - bl sub_0805E3A0 -_0808744E: - ldr r1, [r5, #4] - cmp r1, #0 - beq _08087460 - cmp r1, #1 - beq _0808746C - b _08087474 - .align 2, 0 -_0808745C: .4byte gLinkEntity -_08087460: - ldr r0, _08087468 @ =gUnk_02002A40 - adds r0, #0xad - b _08087472 - .align 2, 0 -_08087468: .4byte gUnk_02002A40 -_0808746C: - ldr r0, _08087478 @ =gUnk_02002A40 - adds r0, #0xac - movs r1, #0 -_08087472: - strb r1, [r0] -_08087474: - pop {r4, r5, pc} - .align 2, 0 -_08087478: .4byte gUnk_02002A40 - - thumb_func_start sub_0808747C -sub_0808747C: @ 0x0808747C - push {r4, lr} - sub sp, #4 - adds r4, r1, #0 - movs r0, #0 - str r0, [sp] - movs r0, #6 - movs r1, #0xf - movs r2, #6 - movs r3, #0xb - bl sub_0805EB2C - cmp r0, #0 - beq _08087498 - movs r0, #1 -_08087498: - str r0, [r4, #0x14] - add sp, #4 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080874A0 -sub_080874A0: @ 0x080874A0 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _080874AE - movs r0, #1 - strb r0, [r4, #0xc] -_080874AE: - adds r0, r4, #0 - adds r0, #0x80 - movs r1, #0 - ldrsh r0, [r0, r1] - adds r1, r4, #0 - adds r1, #0x82 - movs r2, #0 - ldrsh r1, [r1, r2] - movs r2, #0x10 - movs r3, #0x10 - bl sub_0800290E - cmp r0, #0 - bne _080874DC - ldr r2, [r4, #0x50] - movs r1, #1 - ldrb r4, [r4, #0xb] - lsls r1, r4 - ldr r0, [r2, #0x20] - bics r0, r1 - str r0, [r2, #0x20] - bl sub_0805E780 -_080874DC: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080874E0 -sub_080874E0: @ 0x080874E0 - push {lr} - ldr r2, _080874F4 @ =gUnk_081208A0 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_080874F4: .4byte gUnk_081208A0 - - thumb_func_start sub_080874F8 -sub_080874F8: @ 0x080874F8 - push {lr} - bl sub_0805E780 - pop {pc} - - thumb_func_start nullsub_117 -nullsub_117: @ 0x08087500 - bx lr - .align 2, 0 - - thumb_func_start sub_08087504 -sub_08087504: @ 0x08087504 - push {r4, lr} - adds r4, r0, #0 - bl sub_0805E3B0 - cmp r0, #0 - bne _08087520 - ldr r0, _08087524 @ =gUnk_081208B8 - ldrb r1, [r4, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 -_08087520: - pop {r4, pc} - .align 2, 0 -_08087524: .4byte gUnk_081208B8 - - thumb_func_start sub_08087528 -sub_08087528: @ 0x08087528 - push {r4, lr} - adds r4, r0, #0 - movs r0, #1 - strb r0, [r4, #0xc] - ldr r0, _08087590 @ =gLinkEntity - ldrb r0, [r0, #0x14] - lsrs r0, r0, #1 - strb r0, [r4, #0x14] - ldrb r1, [r4, #0x19] - movs r2, #0x3f - adds r0, r2, #0 - ands r0, r1 - movs r1, #0x80 - orrs r0, r1 - strb r0, [r4, #0x19] - adds r3, r4, #0 - adds r3, #0x29 - ldrb r1, [r3] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #3 - orrs r0, r1 - strb r0, [r3] - ldrb r1, [r4, #0x1b] - lsrs r0, r1, #6 - subs r0, #1 - lsls r0, r0, #6 - ands r2, r1 - orrs r2, r0 - strb r2, [r4, #0x1b] - ldrb r0, [r4, #0xb] - cmp r0, #0 - beq _08087594 - ldrb r1, [r4, #0x1a] - movs r0, #0x10 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x1a] - ldrb r0, [r4, #0x14] - cmp r0, #1 - bne _08087588 - ldrb r0, [r4, #0x18] - movs r1, #0x40 - orrs r0, r1 - strb r0, [r4, #0x18] -_08087588: - adds r0, r4, #0 - bl sub_08087640 - b _080875DC - .align 2, 0 -_08087590: .4byte gLinkEntity -_08087594: - ldr r0, _080875B4 @ =gUnk_02033A90 - ldrb r0, [r0, #1] - movs r1, #4 - cmp r0, #0x10 - bne _080875A2 - movs r1, #0xb5 - lsls r1, r1, #1 -_080875A2: - adds r0, r4, #0 - bl sub_0801D2B4 - ldrb r0, [r4, #0x14] - cmp r0, #1 - beq _080875B8 - cmp r0, #3 - bne _080875CE - b _080875C0 - .align 2, 0 -_080875B4: .4byte gUnk_02033A90 -_080875B8: - ldrb r0, [r4, #0x18] - movs r1, #0x40 - orrs r0, r1 - strb r0, [r4, #0x18] -_080875C0: - ldrb r0, [r4, #0xa] - cmp r0, #0x40 - bne _080875DC - ldrh r0, [r4, #0x32] - adds r0, #4 - strh r0, [r4, #0x32] - b _080875DC -_080875CE: - ldrb r0, [r4, #0xa] - cmp r0, #0x40 - bne _080875DC - ldrb r0, [r4, #0x18] - movs r1, #0x40 - orrs r0, r1 - strb r0, [r4, #0x18] -_080875DC: - adds r0, r4, #0 - movs r1, #3 - bl sub_0805E3A0 - ldrb r1, [r4, #0xb] - lsls r1, r1, #2 - ldrb r0, [r4, #0x14] - adds r1, r1, r0 - adds r0, r4, #0 - bl UpdateSprite - pop {r4, pc} - - thumb_func_start sub_080875F4 -sub_080875F4: @ 0x080875F4 - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_08004274 - adds r5, r4, #0 - adds r5, #0x5a - ldrb r1, [r5] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0808760E - bl sub_0805E780 -_0808760E: - ldrb r0, [r4, #0xb] - cmp r0, #0 - beq _08087638 - ldr r0, _0808763C @ =gLinkEntity - adds r0, #0x29 - ldrb r1, [r0] - lsls r1, r1, #0x1d - lsrs r1, r1, #0x1d - ldrb r0, [r5] - subs r0, #1 - subs r1, r1, r0 - adds r3, r4, #0 - adds r3, #0x29 - movs r0, #7 - ands r1, r0 - ldrb r2, [r3] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] -_08087638: - pop {r4, r5, pc} - .align 2, 0 -_0808763C: .4byte gLinkEntity - - thumb_func_start sub_08087640 -sub_08087640: @ 0x08087640 - push {r4, r5, r6, lr} - adds r4, r0, #0 - movs r0, #0x2e - ldrsh r5, [r4, r0] - movs r1, #0x32 - ldrsh r6, [r4, r1] - ldrb r1, [r4, #0x14] - lsls r1, r1, #1 - ldr r0, _08087684 @ =gUnk_081208C0 - adds r1, r1, r0 - movs r0, #0 - ldrsb r0, [r1, r0] - ldrh r2, [r4, #0x2e] - adds r0, r0, r2 - strh r0, [r4, #0x2e] - movs r0, #1 - ldrsb r0, [r1, r0] - ldrh r1, [r4, #0x32] - adds r0, r0, r1 - strh r0, [r4, #0x32] - ldr r0, _08087688 @ =gRoomControls - ldrh r1, [r0, #4] - ldr r0, _0808768C @ =0x00000403 - movs r2, #0x16 - cmp r1, r0 - bne _08087676 - movs r2, #0x17 -_08087676: - adds r0, r4, #0 - adds r1, r2, #0 - bl sub_0805457C - strh r5, [r4, #0x2e] - strh r6, [r4, #0x32] - pop {r4, r5, r6, pc} - .align 2, 0 -_08087684: .4byte gUnk_081208C0 -_08087688: .4byte gRoomControls -_0808768C: .4byte 0x00000403 - - thumb_func_start sub_08087690 -sub_08087690: @ 0x08087690 - push {lr} - ldr r2, _080876A4 @ =gUnk_08120A0C - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_080876A4: .4byte gUnk_08120A0C - - thumb_func_start sub_080876A8 -sub_080876A8: @ 0x080876A8 - push {lr} - mov ip, r0 - movs r0, #1 - mov r1, ip - strb r0, [r1, #0xc] - movs r0, #0xb0 - lsls r0, r0, #0xa - str r0, [r1, #0x20] - ldrb r2, [r1, #0x14] - lsls r0, r2, #2 - movs r1, #0x10 - eors r0, r1 - mov r3, ip - strb r0, [r3, #0x15] - lsls r2, r2, #0x18 - cmp r2, #0 - bne _080876E2 - adds r3, #0x29 - ldrb r2, [r3] - lsls r1, r2, #0x1d - lsrs r1, r1, #0x1d - subs r1, #1 - movs r0, #7 - ands r1, r0 - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] -_080876E2: - ldr r1, _08087760 @ =gUnk_08120A20 - mov r2, ip - ldrb r0, [r2, #0x14] - adds r0, r0, r1 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - ldrh r3, [r2, #0x2e] - adds r0, r0, r3 - strh r0, [r2, #0x2e] - ldrb r0, [r2, #0x14] - adds r0, #1 - adds r0, r0, r1 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - ldrh r1, [r2, #0x32] - adds r0, r0, r1 - strh r0, [r2, #0x32] - ldr r3, _08087764 @ =gUnk_08120A18 - ldrb r0, [r2, #0xf] - lsls r0, r0, #2 - adds r0, r0, r3 - ldrb r1, [r0, #3] - mov r0, ip - adds r0, #0x60 - strh r1, [r0] - ldrb r0, [r2, #0xf] - lsls r0, r0, #2 - adds r0, r0, r3 - ldrb r1, [r0, #1] - movs r0, #0xf - ands r1, r0 - ldrb r2, [r2, #0x1a] - movs r0, #0x10 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - mov r2, ip - strb r0, [r2, #0x1a] - ldrb r0, [r2, #0xf] - lsls r0, r0, #2 - adds r0, r0, r3 - ldrb r0, [r0, #2] - str r0, [r2, #0x6c] - ldr r0, _08087768 @ =gLinkEntity - adds r0, #0x38 - ldrb r1, [r0] - mov r0, ip - adds r0, #0x38 - strb r1, [r0] - movs r0, #0x80 - lsls r0, r0, #1 - strh r0, [r2, #0x24] - ldrb r0, [r2, #0xf] - lsls r0, r0, #2 - adds r0, r0, r3 - ldrb r1, [r0] - mov r0, ip - bl UpdateSprite - pop {pc} - .align 2, 0 -_08087760: .4byte gUnk_08120A20 -_08087764: .4byte gUnk_08120A18 -_08087768: .4byte gLinkEntity - - thumb_func_start sub_0808776C -sub_0808776C: @ 0x0808776C - push {r4, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x6c] - cmp r0, #0 - beq _08087788 - subs r0, #1 - str r0, [r4, #0x6c] - ldr r0, _08087784 @ =gLinkState - adds r0, #0x3d - ldrb r0, [r0] - b _08087798 - .align 2, 0 -_08087784: .4byte gLinkState -_08087788: - adds r0, r4, #0 - bl sub_080AEFE0 - movs r1, #0xa0 - lsls r1, r1, #6 - adds r0, r4, #0 - bl sub_08003FC4 -_08087798: - cmp r0, #0 - bne _080877A0 - movs r0, #2 - strb r0, [r4, #0xc] -_080877A0: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080877A4 -sub_080877A4: @ 0x080877A4 - push {r4, lr} - adds r4, r0, #0 - bl sub_080002D0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r1, r0, #0 - cmp r0, #0x25 - beq _080877D0 - cmp r0, #0x25 - bgt _080877C4 - cmp r0, #0x21 - beq _080877CA - cmp r0, #0x24 - beq _080877D6 - b _080877E2 -_080877C4: - cmp r1, #0x30 - beq _080877D6 - b _080877E2 -_080877CA: - adds r0, r4, #0 - movs r1, #0 - b _080877DA -_080877D0: - adds r0, r4, #0 - movs r1, #0xc - b _080877DA -_080877D6: - adds r0, r4, #0 - movs r1, #0xb -_080877DA: - movs r2, #0 - bl CreateFX - b _08087804 -_080877E2: - ldrb r0, [r4, #0xb] - cmp r0, #0 - beq _08087804 - cmp r0, #0xf - bne _080877F8 - ldrb r1, [r4, #0xe] - adds r0, r4, #0 - movs r2, #0x80 - bl CreateFX - b _08087804 -_080877F8: - ldrb r1, [r4, #0xb] - ldrb r2, [r4, #0xe] - adds r0, r4, #0 - movs r3, #0 - bl CreateObjectWithParent -_08087804: - bl sub_0805E780 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0808780C -sub_0808780C: @ 0x0808780C - push {lr} - ldr r2, _08087820 @ =gUnk_08120A28 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08087820: .4byte gUnk_08120A28 - - thumb_func_start sub_08087824 -sub_08087824: @ 0x08087824 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x38 - ldrb r0, [r0] - cmp r0, #0 - bne _08087836 - adds r0, r4, #0 - bl sub_08016A30 -_08087836: - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r4, #0x10] - adds r1, r4, #0 - adds r1, #0x3c - movs r0, #0x13 - strb r0, [r1] - adds r1, #9 - movs r0, #0xff - strb r0, [r1] - subs r1, #6 - movs r0, #0xa9 - strb r0, [r1] - adds r1, #1 - movs r0, #0x16 - strb r0, [r1] - ldr r0, _08087884 @ =gUnk_08120A54 - ldr r0, [r0] - str r0, [r4, #0x48] - subs r1, #5 - movs r0, #0x8b - strb r0, [r1] - adds r0, r4, #0 - bl sub_080878CC - adds r0, r4, #0 - movs r1, #1 - bl UpdateSprite - adds r0, r4, #0 - bl sub_0801766C - movs r0, #0xfd - bl sub_08004488 - pop {r4, pc} - .align 2, 0 -_08087884: .4byte gUnk_08120A54 - - thumb_func_start sub_08087888 -sub_08087888: @ 0x08087888 - push {r4, lr} - adds r4, r0, #0 - bl sub_08004274 - adds r2, r4, #0 - adds r2, #0x5a - ldrb r1, [r2] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080878A4 - bl sub_0805E780 - b _080878C8 -_080878A4: - lsls r0, r1, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #4 - bhi _080878C0 - ldr r0, _080878BC @ =gUnk_08120A54 - ldrb r1, [r2] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r0, [r1] - str r0, [r4, #0x48] - b _080878C8 - .align 2, 0 -_080878BC: .4byte gUnk_08120A54 -_080878C0: - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] -_080878C8: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080878CC -sub_080878CC: @ 0x080878CC - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x10 - adds r7, r0, #0 - movs r1, #0x2e - ldrsh r0, [r7, r1] - str r0, [sp] - movs r0, #0x32 - ldrsh r2, [r7, r0] - str r2, [sp, #4] - adds r0, r7, #0 - adds r0, #0x38 - ldrb r0, [r0] - mov r8, r0 - movs r0, #0x10 - rsbs r0, r0, #0 - mov r1, r8 - lsls r1, r1, #0x18 - str r1, [sp, #8] -_080878F8: - movs r2, #0x10 - rsbs r2, r2, #0 - mov sb, r2 - ldr r1, [sp] - adds r1, r1, r0 - mov sl, r1 - adds r0, #0x10 - str r0, [sp, #0xc] - mov r6, sl -_0808790A: - ldr r2, _0808795C @ =gRoomControls - ldrh r0, [r2, #6] - subs r0, r6, r0 - lsrs r4, r0, #4 - movs r0, #0x3f - ands r4, r0 - ldr r5, [sp, #4] - add r5, sb - ldrh r0, [r2, #8] - subs r0, r5, r0 - lsrs r0, r0, #4 - movs r1, #0x3f - ands r0, r1 - lsls r0, r0, #6 - orrs r4, r0 - adds r0, r4, #0 - ldr r2, [sp, #8] - lsrs r1, r2, #0x18 - bl sub_080002C8 - cmp r0, #0x2e - bne _08087970 - adds r0, r4, #0 - mov r1, r8 - bl sub_080002B0 - adds r1, r0, #0 - movs r0, #0xda - lsls r0, r0, #2 - cmp r1, r0 - bhi _08087960 - subs r0, #1 - cmp r1, r0 - blo _08087960 - adds r0, r7, #0 - movs r1, #3 - adds r2, r6, #0 - adds r3, r5, #0 - bl sub_08008796 - b _0808797C - .align 2, 0 -_0808795C: .4byte gRoomControls -_08087960: - ldr r0, _0808796C @ =0x00004022 - adds r1, r4, #0 - mov r2, r8 - bl sub_0800015E - b _0808797C - .align 2, 0 -_0808796C: .4byte 0x00004022 -_08087970: - adds r0, r7, #0 - movs r1, #3 - mov r2, sl - adds r3, r5, #0 - bl sub_08008796 -_0808797C: - movs r0, #0x10 - add sb, r0 - mov r1, sb - cmp r1, #0x10 - ble _0808790A - ldr r0, [sp, #0xc] - cmp r0, #0x10 - ble _080878F8 - add sp, #0x10 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_08087998 -sub_08087998: @ 0x08087998 - push {r4, lr} - adds r4, r0, #0 - ldr r0, _080879C0 @ =gUnk_08120A68 - ldrb r1, [r4, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 - adds r0, r4, #0 - bl sub_08004274 - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _080879C4 - subs r0, #1 - strb r0, [r4, #0xe] - b _080879EA - .align 2, 0 -_080879C0: .4byte gUnk_08120A68 -_080879C4: - adds r0, r4, #0 - adds r0, #0x58 - ldrb r0, [r0] - cmp r0, #0xa - bne _080879D8 - adds r0, r4, #0 - movs r1, #0xd - bl UpdateSprite - b _080879EA -_080879D8: - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080879EA - bl sub_0805E780 -_080879EA: - movs r1, #0x24 - ldrsh r0, [r4, r1] - cmp r0, #0 - beq _08087A0C - adds r0, r4, #0 - bl sub_0806F69C - ldrh r1, [r4, #0x24] - movs r2, #0x24 - ldrsh r0, [r4, r2] - cmp r0, #0x10 - ble _08087A08 - adds r0, r1, #0 - subs r0, #0x10 - b _08087A0A -_08087A08: - movs r0, #0 -_08087A0A: - strh r0, [r4, #0x24] -_08087A0C: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08087A10 -sub_08087A10: @ 0x08087A10 - push {r4, lr} - adds r4, r0, #0 - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r0, [r4, #0xb] - cmp r0, #0 - beq _08087A26 - adds r0, r4, #0 - movs r1, #3 - bl sub_0801D2B4 -_08087A26: - ldrb r0, [r4, #0xa] - cmp r0, #2 - bls _08087A3C - ldr r0, _08087A4C @ =gUnk_08120A78 - ldrb r1, [r4, #0xa] - subs r1, #3 - adds r1, r1, r0 - ldrb r1, [r1] - adds r0, r4, #0 - bl sub_0801D2B4 -_08087A3C: - ldrb r0, [r4, #0xa] - cmp r0, #4 - bhi _08087AF0 - lsls r0, r0, #2 - ldr r1, _08087A50 @ =_08087A54 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08087A4C: .4byte gUnk_08120A78 -_08087A50: .4byte _08087A54 -_08087A54: @ jump table - .4byte _08087A76 @ case 0 - .4byte _08087AF0 @ case 1 - .4byte _08087AA0 @ case 2 - .4byte _08087A76 @ case 3 - .4byte _08087A68 @ case 4 -_08087A68: - adds r1, r4, #0 - adds r1, #0x38 - movs r0, #2 - strb r0, [r1] - adds r0, r4, #0 - bl UpdateSpriteOrderAndFlip -_08087A76: - ldrb r1, [r4, #0x10] - movs r0, #0x80 - movs r2, #0 - orrs r0, r1 - strb r0, [r4, #0x10] - adds r1, r4, #0 - adds r1, #0x45 - movs r0, #1 - strb r0, [r1] - subs r1, #9 - movs r0, #7 - strb r0, [r1] - adds r1, #3 - movs r0, #0xaa - strb r0, [r1] - subs r1, #4 - movs r0, #0xe - strb r0, [r1] - ldr r0, _08087AE4 @ =gUnk_08120A8C - str r0, [r4, #0x48] - strb r2, [r4, #0x1c] -_08087AA0: - bl Random - ldr r2, _08087AE8 @ =gUnk_08120A7A - movs r3, #3 - adds r1, r0, #0 - ands r1, r3 - adds r1, r1, r2 - ldrb r1, [r1] - strb r1, [r4, #0xe] - lsrs r2, r0, #8 - ands r2, r3 - movs r1, #0x10 - ands r1, r0 - cmp r1, #0 - beq _08087AC0 - rsbs r2, r2, #0 -_08087AC0: - ldrh r0, [r4, #0x2e] - adds r0, r0, r2 - strh r0, [r4, #0x2e] - ldrh r0, [r4, #0x32] - adds r0, r0, r2 - strh r0, [r4, #0x32] - ldr r0, _08087AEC @ =gLinkEntity - adds r0, #0x38 - ldrb r1, [r0] - adds r0, r4, #0 - adds r0, #0x38 - strb r1, [r0] - adds r0, r4, #0 - movs r1, #0xa - bl UpdateSprite - b _08087AF8 - .align 2, 0 -_08087AE4: .4byte gUnk_08120A8C -_08087AE8: .4byte gUnk_08120A7A -_08087AEC: .4byte gLinkEntity -_08087AF0: - adds r0, r4, #0 - movs r1, #0x10 - bl UpdateSprite -_08087AF8: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08087AFC -sub_08087AFC: @ 0x08087AFC - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x41 - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08087B56 - movs r0, #0x7f - ands r0, r1 - cmp r0, #0x16 - beq _08087B3C - cmp r0, #0x16 - bgt _08087B1E - cmp r0, #0x13 - beq _08087B4E - b _08087B56 -_08087B1E: - cmp r0, #0x1c - bgt _08087B56 - cmp r0, #0x1b - blt _08087B56 - ldr r1, [r4, #0x4c] - adds r0, r1, #0 - adds r0, #0x84 - ldr r0, [r0] - adds r1, #0x80 - ldr r1, [r1] - ldr r2, [r4, #0x2c] - ldr r3, [r4, #0x30] - bl sub_080045D4 - b _08087B44 -_08087B3C: - ldr r0, [r4, #0x4c] - adds r1, r4, #0 - bl sub_080045C4 -_08087B44: - strb r0, [r4, #0x15] - movs r0, #0x80 - lsls r0, r0, #1 - strh r0, [r4, #0x24] - b _08087B56 -_08087B4E: - movs r1, #0 - movs r0, #3 - strb r0, [r4, #0xc] - strb r1, [r4, #0xd] -_08087B56: - pop {r4, pc} - - thumb_func_start sub_08087B58 -sub_08087B58: @ 0x08087B58 - push {lr} - adds r2, r0, #0 - adds r0, #0x41 - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08087B80 - ldr r0, _08087B7C @ =gUnk_08120A80 - ldrb r1, [r2, #0xd] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r2, #0 - bl _call_via_r1 - b _08087B84 - .align 2, 0 -_08087B7C: .4byte gUnk_08120A80 -_08087B80: - movs r0, #1 - strb r0, [r2, #0xc] -_08087B84: - pop {pc} - .align 2, 0 - - thumb_func_start sub_08087B88 -sub_08087B88: @ 0x08087B88 - adds r2, r0, #0 - adds r2, #0x46 - movs r1, #0x80 - lsls r1, r1, #1 - strh r1, [r2] - movs r1, #1 - strb r1, [r0, #0xd] - strb r1, [r0, #0x1d] - bx lr - .align 2, 0 - - thumb_func_start sub_08087B9C -sub_08087B9C: @ 0x08087B9C - push {lr} - bl sub_0806F3E4 - cmp r0, #0 - beq _08087BAA - bl sub_0805E780 -_08087BAA: - pop {pc} - - thumb_func_start sub_08087BAC -sub_08087BAC: @ 0x08087BAC - push {lr} - ldr r2, _08087BC0 @ =gUnk_08120A94 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08087BC0: .4byte gUnk_08120A94 - - thumb_func_start sub_08087BC4 -sub_08087BC4: @ 0x08087BC4 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xa] - adds r0, #1 - movs r5, #0 - strb r0, [r4, #0xc] - ldrb r0, [r4, #0xa] - cmp r0, #1 - beq _08087C04 - cmp r0, #1 - bgt _08087BE0 - cmp r0, #0 - beq _08087BEA - b _08087CA6 -_08087BE0: - cmp r0, #2 - beq _08087C64 - cmp r0, #3 - beq _08087C7C - b _08087CA6 -_08087BEA: - movs r0, #0x5e - bl sub_0807CBD0 - cmp r0, #0 - beq _08087C16 - adds r1, r4, #0 - adds r1, #0x7a - movs r0, #1 - strb r0, [r1] - adds r0, r4, #0 - bl sub_080787B4 - b _08087C1C -_08087C04: - movs r0, #0x22 - movs r1, #3 - movs r2, #0 - bl CreateObject - cmp r0, #0 - beq _08087C16 - str r4, [r0, #0x50] - str r0, [r4, #0x54] -_08087C16: - adds r0, r4, #0 - adds r0, #0x7a - strb r5, [r0] -_08087C1C: - ldrb r0, [r4, #0x19] - movs r1, #0xc0 - orrs r0, r1 - strb r0, [r4, #0x19] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r0, [r2] - movs r1, #7 - orrs r0, r1 - strb r0, [r2] - movs r0, #0x2e - ldrsh r1, [r4, r0] - ldr r2, _08087C60 @ =gRoomControls - ldrh r0, [r2, #6] - subs r1, r1, r0 - asrs r1, r1, #4 - movs r3, #0x3f - ands r1, r3 - movs r5, #0x32 - ldrsh r0, [r4, r5] - ldrh r2, [r2, #8] - subs r0, r0, r2 - asrs r0, r0, #4 - ands r0, r3 - lsls r0, r0, #6 - orrs r1, r0 - adds r0, r4, #0 - adds r0, #0x78 - strh r1, [r0] - adds r0, r4, #0 - bl sub_08087F58 - b _08087CA6 - .align 2, 0 -_08087C60: .4byte gRoomControls -_08087C64: - adds r0, r4, #0 - adds r0, #0x7a - strb r5, [r0] - adds r0, r4, #0 - movs r1, #7 - bl sub_0805E3A0 - adds r0, r4, #0 - movs r1, #1 - bl UpdateSprite - b _08087CA6 -_08087C7C: - movs r0, #0x1e - strb r0, [r4, #0xe] - strb r5, [r4, #0xf] - adds r1, r4, #0 - adds r1, #0x81 - movs r0, #1 - strb r0, [r1] - adds r0, r4, #0 - adds r0, #0x7a - strb r5, [r0] - adds r0, #1 - strb r5, [r0] - adds r0, #5 - strb r5, [r0] - adds r0, r4, #0 - bl sub_0808804C - adds r0, r4, #0 - movs r1, #6 - bl sub_0805E3A0 -_08087CA6: - pop {r4, r5, pc} - - thumb_func_start sub_08087CA8 -sub_08087CA8: @ 0x08087CA8 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r4, #0 - adds r5, #0x7a - ldrb r0, [r5] - cmp r0, #1 - beq _08087CCA - cmp r0, #1 - bgt _08087D02 - cmp r0, #0 - bne _08087D02 - movs r0, #1 - strb r0, [r5] - adds r0, r4, #0 - bl sub_080787B4 - b _08087D1A -_08087CCA: - adds r1, r4, #0 - adds r1, #0x39 - movs r0, #0 - ldrsb r0, [r1, r0] - cmp r0, #0 - beq _08087D1A - movs r0, #0 - strb r0, [r1] - bl sub_080791D0 - movs r0, #0x5e - bl sub_0807CBD0 - cmp r0, #0 - beq _08087CFA - movs r0, #2 - strb r0, [r5] - bl sub_0807CD10 - movs r0, #7 - movs r1, #0xff - bl sub_080A7138 - b _08087D1A -_08087CFA: - movs r0, #5 - bl sub_0807CD10 - b _08087D1A -_08087D02: - movs r0, #2 - bl sub_0807CC3C - cmp r0, #0 - bne _08087D1A - adds r1, r4, #0 - adds r1, #0x7a - movs r0, #1 - strb r0, [r1] - adds r0, r4, #0 - bl sub_080787B4 -_08087D1A: - pop {r4, r5, pc} - - thumb_func_start sub_08087D1C -sub_08087D1C: @ 0x08087D1C - push {r4, r5, lr} - adds r5, r0, #0 - adds r4, r5, #0 - adds r4, #0x7a - ldrb r0, [r4] - cmp r0, #1 - beq _08087D60 - cmp r0, #1 - bgt _08087D34 - cmp r0, #0 - beq _08087D3A - b _08087DB0 -_08087D34: - cmp r0, #2 - beq _08087D5A - b _08087DB0 -_08087D3A: - movs r0, #0 - bl sub_0807CC3C - cmp r0, #0 - beq _08087DB0 - movs r0, #0x5e - bl sub_0807CBD0 - cmp r0, #0 - beq _08087D54 - movs r0, #1 - strb r0, [r4] - b _08087DB0 -_08087D54: - movs r0, #2 - strb r0, [r4] - b _08087DB0 -_08087D5A: - movs r0, #0x5e - bl sub_0807CCB4 -_08087D60: - adds r1, r5, #0 - adds r1, #0x7a - movs r0, #0 - strb r0, [r1] - ldr r0, [r5, #0x54] - bl sub_08088328 - movs r0, #0 - bl sub_0807CD8C - movs r0, #0x22 - movs r1, #2 - movs r2, #0 - bl CreateObject - adds r4, r0, #0 - cmp r4, #0 - beq _08087DAA - str r5, [r4, #0x50] - adds r0, r5, #0 - adds r0, #0x7d - ldrb r0, [r0] - strb r0, [r4, #0xf] - ldr r1, _08087DB4 @ =gUnk_080FC3E4 - ldrb r0, [r4, #0xf] - lsls r0, r0, #3 - adds r0, r0, r1 - ldrb r0, [r0, #7] - strb r0, [r4, #0xb] - movs r2, #0x80 - lsls r2, r2, #0xc - movs r3, #0xe0 - lsls r3, r3, #0xb - adds r0, r5, #0 - adds r1, r4, #0 - bl PositionRelative -_08087DAA: - ldr r0, _08087DB8 @ =0x00000111 - bl sub_08004488 -_08087DB0: - pop {r4, r5, pc} - .align 2, 0 -_08087DB4: .4byte gUnk_080FC3E4 -_08087DB8: .4byte 0x00000111 - - thumb_func_start sub_08087DBC -sub_08087DBC: @ 0x08087DBC - push {r4, lr} - adds r4, r0, #0 - bl sub_08004274 - adds r2, r4, #0 - adds r2, #0x7a - ldrb r0, [r2] - cmp r0, #1 - beq _08087E10 - cmp r0, #1 - bgt _08087E3C - cmp r0, #0 - bne _08087E3C - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08087E5A - movs r0, #1 - strb r0, [r2] - movs r0, #0x28 - strb r0, [r4, #0xe] - ldr r1, _08087E0C @ =gUnk_08120AA8 - ldrb r0, [r4, #0xb] - adds r0, r0, r1 - ldrb r1, [r0] - adds r0, r4, #0 - bl sub_0801D2B4 - adds r0, r4, #0 - movs r1, #2 - bl UpdateSprite - movs r0, #0x88 - lsls r0, r0, #1 - bl PlaySFX - b _08087E5A - .align 2, 0 -_08087E0C: .4byte gUnk_08120AA8 -_08087E10: - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08087E5A - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08087E5A - movs r0, #2 - strb r0, [r2] - bl sub_0807CD10 - ldrb r1, [r4, #0xf] - movs r0, #7 - bl sub_080A7138 - b _08087E5A -_08087E3C: - movs r0, #2 - bl sub_0807CC3C - cmp r0, #0 - bne _08087E5A - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #0x18] - movs r0, #4 - bl sub_0807CD8C - bl sub_0805E780 -_08087E5A: - pop {r4, pc} - - thumb_func_start sub_08087E5C -sub_08087E5C: @ 0x08087E5C - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - adds r5, r4, #0 - adds r5, #0x7a - ldrb r1, [r5] - cmp r1, #1 - beq _08087EAC - cmp r1, #1 - bgt _08087E74 - cmp r1, #0 - beq _08087E7A - b _08087F4E -_08087E74: - cmp r1, #2 - beq _08087F24 - b _08087F4E -_08087E7A: - adds r0, r4, #0 - adds r0, #0x7b - ldrb r0, [r0] - cmp r0, #4 - bne _08087EA4 - movs r0, #1 - bl sub_0807CC3C - cmp r0, #0 - beq _08087F4E - movs r0, #1 - strb r0, [r5] - adds r1, r4, #0 - adds r1, #0x81 - strb r0, [r1] - bl sub_0807CD8C - adds r0, r4, #0 - bl sub_0808826C - b _08087F1C -_08087EA4: - adds r0, r4, #0 - bl sub_080880D8 - b _08087F4E -_08087EAC: - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _08087EB6 - subs r0, #1 - strb r0, [r4, #0xe] -_08087EB6: - ldr r6, _08087ED4 @ =gUnk_03000FF0 - ldrh r0, [r6, #2] - ands r1, r0 - cmp r1, #0 - beq _08087ED8 - movs r0, #0x6a - bl PlaySFX - movs r0, #2 - strb r0, [r5] - movs r0, #0x3c - strb r0, [r4, #0xe] - bl sub_08050384 - b _08087F4E - .align 2, 0 -_08087ED4: .4byte gUnk_03000FF0 -_08087ED8: - adds r2, r4, #0 - adds r2, #0x81 - ldrb r7, [r2] - ldrh r1, [r6] - movs r0, #0x80 - lsls r0, r0, #1 - ands r0, r1 - movs r3, #1 - adds r5, r2, #0 - cmp r0, #0 - beq _08087EF0 - movs r3, #0xa -_08087EF0: - ldrh r1, [r6, #4] - ldr r0, _08087F00 @ =0xFFFFFEFF - ands r1, r0 - cmp r1, #0x40 - beq _08087F04 - cmp r1, #0x80 - beq _08087F0E - b _08087F16 - .align 2, 0 -_08087F00: .4byte 0xFFFFFEFF -_08087F04: - adds r0, r4, #0 - adds r1, r3, #0 - bl sub_08087F94 - b _08087F16 -_08087F0E: - rsbs r1, r3, #0 - adds r0, r4, #0 - bl sub_08087F94 -_08087F16: - ldrb r5, [r5] - cmp r7, r5 - beq _08087F4E -_08087F1C: - adds r0, r4, #0 - bl sub_080882A8 - b _08087F4E -_08087F24: - movs r0, #0 - strb r0, [r5] - adds r1, r4, #0 - adds r1, #0x7b - movs r0, #4 - strb r0, [r1] - movs r0, #3 - bl sub_0807CD10 - ldr r0, _08087F50 @ =0x0000431A - bl TextboxTryNoOverlap - ldr r1, _08087F54 @ =gTextBox - movs r0, #1 - strb r0, [r1, #6] - movs r0, #0xc - strb r0, [r1, #7] - adds r0, r4, #0 - adds r0, #0x81 - ldrb r0, [r0] - str r0, [r1, #0x10] -_08087F4E: - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08087F50: .4byte 0x0000431A -_08087F54: .4byte gTextBox - - thumb_func_start sub_08087F58 -sub_08087F58: @ 0x08087F58 - push {r4, r5, lr} - ldrb r1, [r0, #0xa] - cmp r1, #1 - bgt _08087F8C - cmp r1, #0 - blt _08087F8C - ldr r5, _08087F90 @ =0x00004022 - adds r4, r0, #0 - adds r4, #0x78 - ldrh r1, [r4] - subs r1, #1 - adds r0, r5, #0 - movs r2, #1 - bl sub_0800015E - ldrh r1, [r4] - adds r0, r5, #0 - movs r2, #1 - bl sub_0800015E - ldrh r1, [r4] - adds r1, #1 - adds r0, r5, #0 - movs r2, #1 - bl sub_0800015E -_08087F8C: - pop {r4, r5, pc} - .align 2, 0 -_08087F90: .4byte 0x00004022 - - thumb_func_start sub_08087F94 -sub_08087F94: @ 0x08087F94 - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - adds r4, r1, #0 - movs r0, #0x5f - bl sub_0807CBD0 - cmp r0, #0 - bne _08088014 - adds r0, r5, #0 - adds r0, #0x83 - movs r1, #0 - ldrsb r1, [r0, r1] - mov ip, r1 - adds r3, r1, r4 - adds r7, r0, #0 - cmp r4, #0 - bge _08087FEA - adds r2, r5, #0 - adds r2, #0x82 - movs r0, #0 - ldrsb r0, [r2, r0] - cmp r3, r0 - bge _08087FD6 - movs r1, #0 - ldrsb r1, [r7, r1] - ldrb r3, [r2] - cmp r1, r0 - beq _08088014 - strb r3, [r7] - adds r1, r5, #0 - adds r1, #0x81 - movs r0, #1 - b _08087FE0 -_08087FD6: - strb r3, [r7] - adds r1, r5, #0 - adds r1, #0x81 - ldrb r0, [r1] - adds r0, r0, r4 -_08087FE0: - strb r0, [r1] - movs r0, #0x69 - bl PlaySFX - b _08088032 -_08087FEA: - adds r1, r5, #0 - adds r1, #0x81 - ldrb r6, [r1] - adds r2, r6, r4 - ldr r0, _0808801C @ =gUnk_02002A40 - adds r0, #0xc2 - ldrh r0, [r0] - cmp r2, r0 - ble _08088008 - cmp r0, r6 - beq _08088014 - adds r2, r0, #0 - subs r4, r2, r6 - mov r0, ip - adds r3, r0, r4 -_08088008: - cmp r3, #0x64 - ble _08088028 - movs r0, #0 - ldrsb r0, [r7, r0] - cmp r0, #0x64 - bne _08088020 -_08088014: - adds r0, r5, #0 - bl sub_08088034 - b _08088032 - .align 2, 0 -_0808801C: .4byte gUnk_02002A40 -_08088020: - movs r3, #0x64 - mov r0, ip - subs r4, r3, r0 - adds r2, r6, r4 -_08088028: - strb r3, [r7] - strb r2, [r1] - movs r0, #0x69 - bl PlaySFX -_08088032: - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_08088034 -sub_08088034: @ 0x08088034 - push {lr} - adds r1, r0, #0 - ldrb r0, [r1, #0xe] - cmp r0, #0 - bne _08088048 - movs r0, #0x14 - strb r0, [r1, #0xe] - movs r0, #0x6d - bl PlaySFX -_08088048: - pop {pc} - .align 2, 0 - - thumb_func_start sub_0808804C -sub_0808804C: @ 0x0808804C - push {r4, r5, lr} - adds r5, r0, #0 - movs r4, #0 - ldr r0, _08088060 @ =gUnk_02002A40 - ldrb r0, [r0, #6] - cmp r0, #0 - beq _08088064 - movs r4, #9 - b _080880D0 - .align 2, 0 -_08088060: .4byte gUnk_02002A40 -_08088064: - movs r0, #6 - bl GetProgressFlag - cmp r0, #0 - beq _08088072 - movs r4, #7 - b _080880D0 -_08088072: - movs r0, #0x80 - lsls r0, r0, #4 - movs r1, #0x77 - bl GetProgressFlagWithOffset - cmp r0, #0 - beq _08088084 - movs r4, #6 - b _080880D0 -_08088084: - movs r0, #0xc0 - lsls r0, r0, #2 - movs r1, #0x32 - bl GetProgressFlagWithOffset - cmp r0, #0 - beq _08088096 - movs r4, #5 - b _080880D0 -_08088096: - movs r0, #5 - bl GetProgressFlag - cmp r0, #0 - beq _080880A4 - movs r4, #4 - b _080880D0 -_080880A4: - movs r0, #4 - bl GetProgressFlag - cmp r0, #0 - beq _080880B2 - movs r4, #3 - b _080880D0 -_080880B2: - movs r0, #0x80 - lsls r0, r0, #1 - movs r1, #0x9c - bl GetProgressFlagWithOffset - cmp r0, #0 - beq _080880C4 - movs r4, #2 - b _080880D0 -_080880C4: - movs r0, #3 - bl GetProgressFlag - cmp r0, #0 - beq _080880D0 - movs r4, #1 -_080880D0: - adds r0, r5, #0 - adds r0, #0x7c - strb r4, [r0] - pop {r4, r5, pc} - - thumb_func_start sub_080880D8 -sub_080880D8: @ 0x080880D8 - push {r4, r5, r6, r7, lr} - adds r7, r0, #0 - adds r0, #0x7b - ldrb r1, [r0] - ldr r0, _08088158 @ =gUnk_08120AAC - adds r6, r1, r0 - ldrb r4, [r6] - ldrb r0, [r6, #1] - cmp r4, r0 - bhs _0808810A - adds r5, r7, #0 - adds r5, #0x80 -_080880F0: - adds r0, r7, #0 - adds r1, r4, #0 - bl sub_08088160 - cmp r0, #0 - beq _08088102 - ldrb r0, [r5] - adds r0, #1 - strb r0, [r5] -_08088102: - adds r4, #1 - ldrb r0, [r6, #1] - cmp r4, r0 - blo _080880F0 -_0808810A: - adds r1, r7, #0 - adds r1, #0x7b - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #4 - bne _08088156 - ldr r5, _0808815C @ =gUnk_02002A40 - adds r0, r7, #0 - adds r0, #0x80 - ldrb r1, [r5, #9] - adds r4, r0, #0 - ldrb r0, [r4] - cmp r1, r0 - beq _0808813A - cmp r1, #0 - beq _08088136 - movs r0, #6 - bl sub_0807CD10 -_08088136: - ldrb r0, [r4] - strb r0, [r5, #9] -_0808813A: - movs r0, #0x5f - bl sub_0807CBD0 - cmp r0, #0 - beq _08088156 - ldr r0, _0808815C @ =gUnk_02002A40 - adds r0, #0xb0 - ldrb r1, [r4] - ldrb r0, [r0] - cmp r1, r0 - beq _08088156 - movs r0, #0x5f - bl sub_0807CD34 -_08088156: - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08088158: .4byte gUnk_08120AAC -_0808815C: .4byte gUnk_02002A40 - - thumb_func_start sub_08088160 -sub_08088160: @ 0x08088160 - push {r4, lr} - adds r2, r0, #0 - lsls r1, r1, #3 - ldr r0, _08088188 @ =gUnk_080FC3E4 - adds r1, r1, r0 - movs r4, #0 - adds r0, r2, #0 - adds r0, #0x7c - ldrb r0, [r0] - ldrb r3, [r1, #6] - cmp r0, r3 - bhs _08088266 - ldrb r0, [r1, #6] - cmp r0, #0x10 - beq _0808819E - cmp r0, #0x10 - bgt _0808818C - cmp r0, #8 - beq _08088194 - b _08088268 - .align 2, 0 -_08088188: .4byte gUnk_080FC3E4 -_0808818C: - cmp r0, #0x20 - beq _080881A6 - cmp r0, #0x40 - bne _08088268 -_08088194: - ldr r0, [r1] - ldrh r1, [r1, #4] - bl GetProgressFlagWithOffset - b _08088262 -_0808819E: - ldrh r0, [r1, #4] - bl sub_0801E7F4 - b _08088262 -_080881A6: - ldrh r0, [r1, #4] - cmp r0, #5 - bhi _08088268 - lsls r0, r0, #2 - ldr r1, _080881B8 @ =_080881BC - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080881B8: .4byte _080881BC -_080881BC: @ jump table - .4byte _080881D4 @ case 0 - .4byte _080881F0 @ case 1 - .4byte _080881FE @ case 2 - .4byte _0808821A @ case 3 - .4byte _08088236 @ case 4 - .4byte _08088252 @ case 5 -_080881D4: - movs r0, #0x20 - bl sub_0801E7F4 - cmp r0, #0 - bne _08088266 - movs r0, #0x10 - bl sub_0801E7F4 - cmp r0, #0 - bne _08088266 - movs r0, #0x19 -_080881EA: - bl sub_0801E7F4 - b _08088262 -_080881F0: - adds r0, r2, #0 - adds r0, #0x7c - ldrb r0, [r0] - cmp r0, #4 - bls _08088268 - movs r0, #0x28 - b _080881EA -_080881FE: - movs r0, #0x54 - bl sub_0801E7F4 - cmp r0, #0 - bne _08088266 - movs r0, #0x56 - bl sub_0801E7F4 - cmp r0, #0 - bne _08088266 - movs r0, #0x3d - bl sub_0801E7F4 - b _08088262 -_0808821A: - movs r0, #0x3b - bl sub_0801E7F4 - cmp r0, #0 - bne _08088266 - movs r0, #0x4a - bl sub_0801E7F4 - cmp r0, #0 - bne _08088266 - movs r0, #0xd - bl sub_0801E7F4 - b _08088262 -_08088236: - movs r0, #0x49 - bl sub_0801E7F4 - cmp r0, #0 - bne _08088266 - movs r0, #0x55 - bl sub_0801E7F4 - cmp r0, #0 - bne _08088266 - movs r0, #0x3c - bl sub_0801E7F4 - b _08088262 -_08088252: - adds r0, r2, #0 - adds r0, #0x7c - ldrb r0, [r0] - cmp r0, #1 - bls _08088268 - movs r0, #0x12 - bl GetProgressFlag -_08088262: - cmp r0, #0 - beq _08088268 -_08088266: - movs r4, #1 -_08088268: - adds r0, r4, #0 - pop {r4, pc} - - thumb_func_start sub_0808826C -sub_0808826C: @ 0x0808826C - push {r4, r5, lr} - adds r5, r0, #0 - movs r4, #0x64 - adds r0, #0x80 - ldrb r1, [r0] - ldr r0, _080882A4 @ =gUnk_02002A40 - adds r0, #0xb0 - ldrb r0, [r0] - subs r0, r1, r0 - muls r4, r0, r4 - adds r0, r4, #0 - bl __divsi3 - adds r4, r0, #0 - cmp r4, #0 - bne _08088298 - movs r0, #0x5f - bl sub_0807CBD0 - cmp r0, #0 - bne _08088298 - movs r4, #1 -_08088298: - adds r0, r5, #0 - adds r0, #0x83 - strb r4, [r0] - subs r0, #1 - strb r4, [r0] - pop {r4, r5, pc} - .align 2, 0 -_080882A4: .4byte gUnk_02002A40 - - thumb_func_start sub_080882A8 -sub_080882A8: @ 0x080882A8 - push {r4, r5, r6, lr} - adds r6, r0, #0 - bl sub_08050384 - adds r0, r6, #0 - adds r0, #0x81 - ldrb r0, [r0] - ldr r4, _080882F4 @ =gUnk_020227E8 - ldr r5, _080882F8 @ =0x00202020 - adds r1, r4, #0 - adds r2, r5, #0 - bl sub_08057044 - adds r0, r6, #0 - adds r0, #0x83 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - adds r4, #8 - adds r1, r4, #0 - adds r2, r5, #0 - bl sub_08057044 - movs r0, #0x80 - lsls r0, r0, #0x12 - ldrb r0, [r0, #7] - cmp r0, #0 - bne _08088304 - ldr r1, _080882FC @ =gUnk_08120AE4 - ldrb r0, [r6, #0xb] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r0, [r0] - ldr r1, _08088300 @ =gUnk_08120AB4 - bl sub_0805F46C - b _08088314 - .align 2, 0 -_080882F4: .4byte gUnk_020227E8 -_080882F8: .4byte 0x00202020 -_080882FC: .4byte gUnk_08120AE4 -_08088300: .4byte gUnk_08120AB4 -_08088304: - ldr r1, _0808831C @ =gUnk_08120AE4 - ldrb r0, [r6, #0xb] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r0, [r0] - ldr r1, _08088320 @ =gUnk_08120ACC - bl sub_0805F46C -_08088314: - ldr r1, _08088324 @ =gLCDControls - movs r0, #1 - strh r0, [r1, #0xe] - pop {r4, r5, r6, pc} - .align 2, 0 -_0808831C: .4byte gUnk_08120AE4 -_08088320: .4byte gUnk_08120ACC -_08088324: .4byte gLCDControls - - thumb_func_start sub_08088328 -sub_08088328: @ 0x08088328 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r6, r0, #0 - movs r4, #0x7f -_08088332: - bl Random - adds r5, r0, #0 - ands r5, r4 - cmp r5, #0x63 - bhi _08088332 - adds r0, r6, #0 - adds r0, #0x81 - ldrb r0, [r0] - rsbs r0, r0, #0 - bl sub_080542C0 - bl Random - movs r1, #0x7f - ands r1, r0 - adds r4, r1, #1 - adds r7, r4, #0 - adds r0, r6, #0 - bl sub_08088424 - adds r0, r6, #0 - adds r0, #0x83 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r5, r0 - bhs _080883A4 - movs r5, #0 - movs r0, #0x7d - adds r0, r0, r6 - mov r8, r0 -_08088372: - cmp r5, #0 - bne _080883E2 - cmp r4, #0x88 - bls _0808837C - movs r4, #1 -_0808837C: - adds r0, r6, #0 - adds r1, r4, #0 - bl sub_08088160 - cmp r0, #0 - beq _0808839C - ldr r0, _08088398 @ =gUnk_02002B0E - adds r1, r4, #0 - bl sub_0801D5A8 - cmp r0, #0 - bne _0808839C - movs r5, #1 - b _0808839E - .align 2, 0 -_08088398: .4byte gUnk_02002B0E -_0808839C: - adds r4, #1 -_0808839E: - cmp r7, r4 - bne _08088372 - b _080883DE -_080883A4: - movs r5, #1 - movs r0, #0x7d - adds r0, r0, r6 - mov r8, r0 -_080883AC: - cmp r5, #0 - beq _08088414 - cmp r4, #0x88 - bls _080883B6 - movs r4, #1 -_080883B6: - adds r0, r6, #0 - adds r1, r4, #0 - bl sub_08088160 - cmp r0, #0 - beq _080883D8 - ldr r0, _080883D4 @ =gUnk_02002B0E - adds r1, r4, #0 - bl sub_0801D5A8 - cmp r0, #0 - beq _080883D8 - movs r5, #0 - b _080883DA - .align 2, 0 -_080883D4: .4byte gUnk_02002B0E -_080883D8: - adds r4, #1 -_080883DA: - cmp r7, r4 - bne _080883AC -_080883DE: - cmp r5, #0 - beq _08088414 -_080883E2: - ldr r0, _08088404 @ =gUnk_02002A40 - adds r0, #0xb0 - ldrb r1, [r0] - adds r1, #1 - strb r1, [r0] - adds r0, r6, #0 - adds r0, #0x80 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - ldrb r0, [r0] - cmp r1, r0 - beq _08088408 - movs r0, #7 - bl sub_0807CD10 - b _08088414 - .align 2, 0 -_08088404: .4byte gUnk_02002A40 -_08088408: - movs r0, #0x5f - bl sub_0807CCB4 - movs r0, #8 - bl sub_0807CD10 -_08088414: - mov r0, r8 - strb r4, [r0] - ldr r0, [r6, #0x50] - adds r0, #0x7d - strb r4, [r0] - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_08088424 -sub_08088424: @ 0x08088424 - push {lr} - adds r1, r0, #0 - ldr r0, _08088440 @ =gUnk_02002A40 - adds r0, #0xb0 - ldrb r0, [r0] - cmp r0, #0x31 - bhi _08088444 - adds r1, #0x83 - movs r0, #0 - ldrsb r0, [r1, r0] - cmp r0, #0xe - bgt _08088476 - movs r0, #0xf - b _08088474 - .align 2, 0 -_08088440: .4byte gUnk_02002A40 -_08088444: - cmp r0, #0x4f - bhi _08088456 - adds r1, #0x83 - movs r0, #0 - ldrsb r0, [r1, r0] - cmp r0, #0xb - bgt _08088476 - movs r0, #0xc - b _08088474 -_08088456: - cmp r0, #0x6d - bhi _08088468 - adds r1, #0x83 - movs r0, #0 - ldrsb r0, [r1, r0] - cmp r0, #8 - bgt _08088476 - movs r0, #9 - b _08088474 -_08088468: - adds r1, #0x83 - movs r0, #0 - ldrsb r0, [r1, r0] - cmp r0, #5 - bgt _08088476 - movs r0, #6 -_08088474: - strb r0, [r1] -_08088476: - pop {pc} - - thumb_func_start sub_08088478 -sub_08088478: @ 0x08088478 - push {r4, lr} - movs r4, #0 - movs r0, #8 - bl sub_0807CC3C - cmp r0, #0 - bne _080884A4 - movs r0, #7 - bl sub_0807CC3C - cmp r0, #0 - bne _0808849C - ldr r1, _08088498 @ =0x00004322 - movs r4, #1 - b _080884D2 - .align 2, 0 -_08088498: .4byte 0x00004322 -_0808849C: - ldr r1, _080884A0 @ =0x00004325 - b _080884D2 - .align 2, 0 -_080884A0: .4byte 0x00004325 -_080884A4: - ldr r1, _080884C0 @ =gUnk_02002A40 - adds r0, r1, #0 - adds r0, #0xb0 - ldrb r0, [r0] - cmp r0, #0x82 - beq _080884C8 - cmp r0, #0x88 - bne _080884D0 - adds r1, #0xb1 - movs r0, #0xff - strb r0, [r1] - ldr r1, _080884C4 @ =0x00004329 - b _080884D2 - .align 2, 0 -_080884C0: .4byte gUnk_02002A40 -_080884C4: .4byte 0x00004329 -_080884C8: - ldrb r0, [r1, #6] - ldr r1, _080884F4 @ =0x00004328 - cmp r0, #0 - beq _080884D2 -_080884D0: - ldr r1, _080884F8 @ =0x00004327 -_080884D2: - adds r0, r1, #0 - bl TextboxTryNoOverlap - ldr r1, _080884FC @ =gTextBox - movs r0, #1 - strb r0, [r1, #6] - movs r0, #0xc - strb r0, [r1, #7] - cmp r4, #0 - beq _080884EA - movs r0, #5 - str r0, [r1, #0x10] -_080884EA: - ldr r1, _08088500 @ =gLinkEntity - movs r0, #6 - strb r0, [r1, #0x14] - pop {r4, pc} - .align 2, 0 -_080884F4: .4byte 0x00004328 -_080884F8: .4byte 0x00004327 -_080884FC: .4byte gTextBox -_08088500: .4byte gLinkEntity - - thumb_func_start sub_08088504 -sub_08088504: @ 0x08088504 - push {lr} - ldr r0, _08088518 @ =gUnk_02002A40 - adds r0, #0xb0 - ldrb r0, [r0] - cmp r0, #0x82 - beq _08088520 - cmp r0, #0x88 - bne _08088528 - ldr r0, _0808851C @ =0x0000432F - b _0808852A - .align 2, 0 -_08088518: .4byte gUnk_02002A40 -_0808851C: .4byte 0x0000432F -_08088520: - ldr r0, _08088524 @ =0x00004314 - b _0808852A - .align 2, 0 -_08088524: .4byte 0x00004314 -_08088528: - ldr r0, _0808853C @ =0x00004311 -_0808852A: - bl TextboxTryNoOverlap - ldr r0, _08088540 @ =gTextBox - movs r1, #1 - strb r1, [r0, #6] - movs r1, #0xc - strb r1, [r0, #7] - pop {pc} - .align 2, 0 -_0808853C: .4byte 0x00004311 -_08088540: .4byte gTextBox - - thumb_func_start sub_08088544 -sub_08088544: @ 0x08088544 - push {lr} - ldr r0, _08088568 @ =gUnk_02002A40 - adds r0, #0xb0 - ldrb r0, [r0] - ldr r1, _0808856C @ =0x00004315 - cmp r0, #0x82 - beq _08088554 - subs r1, #7 -_08088554: - adds r0, r1, #0 - bl TextboxTryNoOverlap - ldr r0, _08088570 @ =gTextBox - movs r1, #1 - strb r1, [r0, #6] - movs r1, #0xc - strb r1, [r0, #7] - pop {pc} - .align 2, 0 -_08088568: .4byte gUnk_02002A40 -_0808856C: .4byte 0x00004315 -_08088570: .4byte gTextBox - - thumb_func_start sub_08088574 -sub_08088574: @ 0x08088574 - push {lr} - movs r0, #9 - bl sub_0807CC3C - cmp r0, #0 - beq _08088594 - movs r0, #0x5f - bl sub_0807CBD0 - ldr r1, _08088590 @ =0x0000430C - cmp r0, #0 - beq _08088596 - adds r1, #7 - b _08088596 - .align 2, 0 -_08088590: .4byte 0x0000430C -_08088594: - ldr r1, _080885A8 @ =0x0000430B -_08088596: - adds r0, r1, #0 - bl TextboxTryNoOverlap - ldr r0, _080885AC @ =gTextBox - movs r1, #1 - strb r1, [r0, #6] - movs r1, #0xc - strb r1, [r0, #7] - pop {pc} - .align 2, 0 -_080885A8: .4byte 0x0000430B -_080885AC: .4byte gTextBox - - thumb_func_start sub_080885B0 -sub_080885B0: @ 0x080885B0 - push {lr} - movs r0, #8 - bl sub_0807CC3C - cmp r0, #0 - bne _080885E8 - movs r0, #7 - bl sub_0807CC3C - cmp r0, #0 - bne _0808860A - movs r0, #5 - bl ModRupees - ldr r0, _080885E0 @ =0x00004326 - bl TextboxTryNoOverlap - ldr r1, _080885E4 @ =gTextBox - movs r0, #1 - strb r0, [r1, #6] - movs r0, #0xc - strb r0, [r1, #7] - b _0808860A - .align 2, 0 -_080885E0: .4byte 0x00004326 -_080885E4: .4byte gTextBox -_080885E8: - ldr r1, _08088618 @ =gUnk_02002A40 - adds r0, r1, #0 - adds r0, #0xb1 - ldrb r0, [r0] - cmp r0, #0 - beq _0808860A - adds r1, #0xbb - movs r0, #1 - strb r0, [r1] - movs r0, #0x3e - movs r1, #0 - movs r2, #0 - bl sub_080A7C00 - movs r0, #0x59 - bl sub_0807CD04 -_0808860A: - movs r0, #8 - bl sub_0807CD8C - movs r0, #7 - bl sub_0807CD8C - pop {pc} - .align 2, 0 -_08088618: .4byte gUnk_02002A40 - - thumb_func_start sub_0808861C -sub_0808861C: @ 0x0808861C - push {r4, lr} - adds r4, r1, #0 - movs r0, #0xa8 - movs r1, #0x54 - movs r2, #0xc - movs r3, #8 - bl sub_0800293E - str r0, [r4, #0x14] - ldr r1, _08088650 @ =gLinkEntity - ldrb r0, [r1, #0x14] - cmp r0, #0 - bne _0808863E - movs r2, #0x36 - ldrsh r0, [r1, r2] - cmp r0, #0 - beq _08088642 -_0808863E: - movs r0, #0 - str r0, [r4, #0x14] -_08088642: - ldr r2, _08088654 @ =gUnk_02033280 - ldrb r1, [r2, #7] - movs r0, #1 - orrs r0, r1 - strb r0, [r2, #7] - pop {r4, pc} - .align 2, 0 -_08088650: .4byte gLinkEntity -_08088654: .4byte gUnk_02033280 - - thumb_func_start sub_08088658 -sub_08088658: @ 0x08088658 - push {r4, lr} - adds r4, r1, #0 - movs r0, #0x78 - movs r1, #0x78 - movs r2, #0x10 - movs r3, #8 - bl sub_0800293E - str r0, [r4, #0x14] - ldr r0, _08088684 @ =gLinkEntity - movs r1, #0x36 - ldrsh r0, [r0, r1] - cmp r0, #0 - beq _08088678 - movs r0, #0 - str r0, [r4, #0x14] -_08088678: - ldr r2, _08088688 @ =gUnk_02033280 - ldrb r1, [r2, #7] - movs r0, #1 - orrs r0, r1 - strb r0, [r2, #7] - pop {r4, pc} - .align 2, 0 -_08088684: .4byte gLinkEntity -_08088688: .4byte gUnk_02033280 - - thumb_func_start sub_0808868C -sub_0808868C: @ 0x0808868C - push {lr} - ldr r2, _080886A0 @ =gUnk_08120B20 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_080886A0: .4byte gUnk_08120B20 - - thumb_func_start sub_080886A4 -sub_080886A4: @ 0x080886A4 - push {r4, r5, r6, lr} - adds r4, r0, #0 - ldrb r1, [r4, #0xa] - movs r6, #3 - adds r0, r6, #0 - ands r0, r1 - strb r0, [r4, #0x14] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #6 - orrs r0, r1 - strb r0, [r2] - adds r1, r4, #0 - adds r1, #0x3c - movs r0, #7 - strb r0, [r1] - adds r1, #4 - movs r0, #0x48 - strb r0, [r1] - adds r0, r4, #0 - adds r0, #0x3f - movs r5, #1 - strb r5, [r0] - subs r1, #5 - movs r0, #2 - strb r0, [r1] - ldr r0, _08088700 @ =gUnk_080FD168 - str r0, [r4, #0x48] - adds r0, r4, #0 - adds r0, #0x84 - ldrh r0, [r0] - bl sub_0807CBE4 - cmp r0, #0 - beq _08088704 - strb r6, [r4, #0xc] - ldrb r1, [r4, #0x14] - adds r1, #4 - adds r0, r4, #0 - bl UpdateSprite - b _08088716 - .align 2, 0 -_08088700: .4byte gUnk_080FD168 -_08088704: - strb r5, [r4, #0xc] - ldrb r0, [r4, #0x10] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r4, #0x10] - ldrb r1, [r4, #0x14] - adds r0, r4, #0 - bl UpdateSprite -_08088716: - pop {r4, r5, r6, pc} - - thumb_func_start sub_08088718 -sub_08088718: @ 0x08088718 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x41 - ldrb r0, [r0] - cmp r0, #0x95 - beq _08088728 - cmp r0, #0x8e - bne _0808875A -_08088728: - ldr r0, [r4, #0x4c] - ldrb r1, [r0, #0x15] - adds r1, #4 - movs r0, #0x18 - ands r1, r0 - asrs r1, r1, #3 - ldrb r2, [r4, #0x14] - movs r0, #3 - ands r0, r2 - cmp r1, r0 - bne _0808875A - movs r0, #2 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - ldr r0, _0808875C @ =0x00000111 - bl sub_08004488 - adds r0, r4, #0 - adds r0, #0x86 - ldrh r0, [r0] - bl sub_0807CCC8 -_0808875A: - pop {r4, pc} - .align 2, 0 -_0808875C: .4byte 0x00000111 - - thumb_func_start sub_08088760 -sub_08088760: @ 0x08088760 - push {r4, lr} - adds r4, r0, #0 - bl sub_08004274 - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0808878E - movs r0, #3 - strb r0, [r4, #0xc] - ldrb r0, [r4, #0xe] - lsls r0, r0, #1 - adds r1, r4, #0 - adds r1, #0x70 - strh r0, [r1] - ldrb r1, [r4, #0x14] - adds r1, #4 - adds r0, r4, #0 - bl UpdateSprite -_0808878E: - pop {r4, pc} - - thumb_func_start sub_08088790 -sub_08088790: @ 0x08088790 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _080887D6 - adds r0, r4, #0 - adds r0, #0x86 - adds r2, r4, #0 - adds r2, #0x84 - ldrh r1, [r0] - adds r5, r0, #0 - ldrh r0, [r2] - cmp r1, r0 - beq _080887BC - ldrh r0, [r2] - bl sub_0807CBE4 - cmp r0, #0 - beq _080887BC - movs r0, #0 - strb r0, [r4, #0xe] - b _080887D6 -_080887BC: - adds r1, r4, #0 - adds r1, #0x70 - ldrh r0, [r1] - subs r0, #1 - strh r0, [r1] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _080887D6 - movs r0, #4 - strb r0, [r4, #0xc] - ldrh r0, [r5] - bl sub_0807CD48 -_080887D6: - pop {r4, r5, pc} - - thumb_func_start sub_080887D8 -sub_080887D8: @ 0x080887D8 - push {r4, lr} - adds r4, r0, #0 - bl sub_08004274 - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08088802 - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r4, #0x10] - ldrb r1, [r4, #0x14] - adds r0, r4, #0 - bl UpdateSprite -_08088802: - pop {r4, pc} - - thumb_func_start sub_08088804 -sub_08088804: @ 0x08088804 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xf] - cmp r0, #0 - beq _08088828 - subs r0, #1 - strb r0, [r4, #0xf] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08088828 - ldrb r0, [r4, #0x14] - adds r1, r4, #0 - adds r1, #0x72 - strb r0, [r1] - ldrb r1, [r4, #0x14] - adds r0, r4, #0 - bl UpdateSprite -_08088828: - ldr r0, _0808883C @ =gUnk_08120BE0 - ldrb r1, [r4, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 - pop {r4, pc} - .align 2, 0 -_0808883C: .4byte gUnk_08120BE0 - - thumb_func_start sub_08088840 -sub_08088840: @ 0x08088840 - movs r3, #1 - movs r1, #1 - strb r1, [r0, #0xc] - ldrb r2, [r0, #0x18] - subs r1, #5 - ands r1, r2 - orrs r1, r3 - strb r1, [r0, #0x18] - adds r3, r0, #0 - adds r3, #0x29 - ldrb r1, [r3] - movs r2, #7 - orrs r1, r2 - strb r1, [r3] - ldr r1, _08088868 @ =gUnk_080FD1D4 - str r1, [r0, #0x48] - ldrb r1, [r0, #0x14] - adds r0, #0x72 - strb r1, [r0] - bx lr - .align 2, 0 -_08088868: .4byte gUnk_080FD1D4 - - thumb_func_start sub_0808886C -sub_0808886C: @ 0x0808886C - push {r4, r5, lr} - adds r5, r0, #0 - bl sub_08088938 - adds r4, r0, #0 - adds r0, r5, #0 - bl sub_080889A8 - adds r4, r4, r0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldrb r1, [r5, #0xa] - adds r0, r1, #2 - cmp r0, r4 - bgt _080888B8 - movs r1, #0 - movs r0, #2 - strb r0, [r5, #0xc] - strb r1, [r5, #0xf] - movs r0, #4 - strb r0, [r5, #0x14] - strh r1, [r5, #0x36] - adds r0, r5, #0 - movs r1, #4 - bl UpdateSprite - adds r0, r5, #0 - adds r0, #0x86 - ldrh r0, [r0] - bl sub_0807CCC8 - ldr r0, _080888B4 @ =0x0000016B - bl sub_08004488 - b _080888F2 - .align 2, 0 -_080888B4: .4byte 0x0000016B -_080888B8: - ldrb r0, [r5, #0x14] - cmp r4, r0 - bls _080888E4 - adds r0, r1, #1 - cmp r0, r4 - bne _080888D2 - movs r0, #4 - strb r0, [r5, #0xf] - adds r1, r4, #1 - adds r0, r5, #0 - bl UpdateSprite - b _080888DA -_080888D2: - adds r0, r5, #0 - adds r1, r4, #0 - bl UpdateSprite -_080888DA: - movs r0, #0x86 - lsls r0, r0, #1 - bl sub_08004488 - b _080888F0 -_080888E4: - cmp r4, r0 - bhs _080888F0 - adds r0, r5, #0 - adds r1, r4, #0 - bl UpdateSprite -_080888F0: - strb r4, [r5, #0x14] -_080888F2: - pop {r4, r5, pc} - - thumb_func_start sub_080888F4 -sub_080888F4: @ 0x080888F4 - push {r4, r5, lr} - adds r5, r0, #0 - adds r0, #0x70 - ldrh r0, [r0] - cmp r0, #0 - beq _08088934 - adds r0, r5, #0 - bl sub_08088938 - adds r4, r0, #0 - adds r0, r5, #0 - bl sub_080889A8 - adds r4, r4, r0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldrb r0, [r5, #0xa] - adds r0, #2 - cmp r0, r4 - ble _08088934 - movs r0, #1 - strb r0, [r5, #0xc] - strb r4, [r5, #0x14] - adds r0, r5, #0 - adds r0, #0x86 - ldrh r0, [r0] - bl sub_0807CD48 - adds r0, r5, #0 - adds r1, r4, #0 - bl UpdateSprite -_08088934: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_08088938 -sub_08088938: @ 0x08088938 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - movs r5, #0 - ldrh r1, [r0, #0x2e] - subs r1, #8 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - mov ip, r1 - ldrh r1, [r0, #0x32] - subs r1, #8 - lsls r1, r1, #0x10 - lsrs r7, r1, #0x10 - movs r4, #0 - ldr r1, _080889A0 @ =gUnk_02034350 - ldr r2, _080889A4 @ =gUnk_08120BEC - mov r8, r2 - adds r3, r1, #0 - adds r3, #0xac - adds r6, r0, #0 - adds r6, #0x72 -_08088962: - ldr r2, [r3] - cmp r2, #0 - beq _08088990 - ldrh r0, [r2, #0x2e] - mov r1, ip - subs r0, r0, r1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0x10 - bhi _08088990 - ldrh r0, [r2, #0x32] - subs r0, r0, r7 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0x10 - bhi _08088990 - ldrb r0, [r6] - add r0, r8 - ldrb r1, [r0] - adds r0, r2, #0 - adds r0, #0x63 - strb r1, [r0] - adds r5, #1 -_08088990: - adds r3, #4 - adds r4, #1 - cmp r4, #7 - bls _08088962 - adds r0, r5, #0 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_080889A0: .4byte gUnk_02034350 -_080889A4: .4byte gUnk_08120BEC - - thumb_func_start sub_080889A8 -sub_080889A8: @ 0x080889A8 - push {r4, r5, r6, lr} - adds r4, r0, #0 - movs r5, #0 - bl sub_08017850 - cmp r0, #0 - beq _080889CA - ldr r1, _08088A40 @ =gLinkEntity - ldr r2, _08088A44 @ =gUnk_08120BEC - adds r0, r4, #0 - adds r0, #0x72 - ldrb r0, [r0] - adds r0, r0, r2 - ldrb r0, [r0] - adds r1, #0x63 - strb r0, [r1] - movs r5, #1 -_080889CA: - ldr r0, _08088A48 @ =gLinkState - ldr r0, [r0, #0x30] - movs r1, #0x80 - lsls r1, r1, #0xf - ands r0, r1 - cmp r0, #0 - beq _08088A3A - ldr r6, _08088A4C @ =gUnk_03004040 - ldr r1, [r6] - adds r0, r4, #0 - bl sub_080177A0 - cmp r0, #0 - beq _080889FA - ldr r1, [r6] - ldr r2, _08088A44 @ =gUnk_08120BEC - adds r0, r4, #0 - adds r0, #0x72 - ldrb r0, [r0] - adds r0, r0, r2 - ldrb r0, [r0] - adds r1, #0x63 - strb r0, [r1] - adds r5, #1 -_080889FA: - ldr r1, [r6, #4] - adds r0, r4, #0 - bl sub_080177A0 - cmp r0, #0 - beq _08088A1A - ldr r1, [r6, #4] - ldr r2, _08088A44 @ =gUnk_08120BEC - adds r0, r4, #0 - adds r0, #0x72 - ldrb r0, [r0] - adds r0, r0, r2 - ldrb r0, [r0] - adds r1, #0x63 - strb r0, [r1] - adds r5, #1 -_08088A1A: - ldr r1, [r6, #8] - adds r0, r4, #0 - bl sub_080177A0 - cmp r0, #0 - beq _08088A3A - ldr r1, [r6, #8] - ldr r2, _08088A44 @ =gUnk_08120BEC - adds r0, r4, #0 - adds r0, #0x72 - ldrb r0, [r0] - adds r0, r0, r2 - ldrb r0, [r0] - adds r1, #0x63 - strb r0, [r1] - adds r5, #1 -_08088A3A: - adds r0, r5, #0 - pop {r4, r5, r6, pc} - .align 2, 0 -_08088A40: .4byte gLinkEntity -_08088A44: .4byte gUnk_08120BEC -_08088A48: .4byte gLinkState -_08088A4C: .4byte gUnk_03004040 - - thumb_func_start sub_08088A50 -sub_08088A50: @ 0x08088A50 - push {lr} - ldr r2, _08088A64 @ =gUnk_08120C34 - ldrb r1, [r0, #0xa] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08088A64: .4byte gUnk_08120C34 - - thumb_func_start sub_08088A68 -sub_08088A68: @ 0x08088A68 - push {r4, r5, r6, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _08088AE4 - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r0, [r4, #0x18] - movs r2, #3 - orrs r0, r2 - strb r0, [r4, #0x18] - ldrb r1, [r4, #0x11] - movs r0, #0x10 - rsbs r0, r0, #0 - ands r0, r1 - orrs r0, r2 - strb r0, [r4, #0x11] - movs r0, #0x17 - bl GetProgressFlag - cmp r0, #0 - beq _08088AA0 - ldr r0, _08088A9C @ =gUnk_02002A40 - ldrb r0, [r0, #7] - adds r0, #1 - b _08088AA4 - .align 2, 0 -_08088A9C: .4byte gUnk_02002A40 -_08088AA0: - ldr r0, _08088AD8 @ =gUnk_02002A40 - ldrb r0, [r0, #7] -_08088AA4: - strb r0, [r4, #0x1e] - adds r0, r4, #0 - bl sub_08088BE0 - movs r1, #0x2e - ldrsh r0, [r4, r1] - ldr r2, _08088ADC @ =gRoomControls - ldrh r1, [r2, #6] - subs r0, r0, r1 - movs r3, #0x32 - ldrsh r1, [r4, r3] - ldrh r2, [r2, #8] - subs r1, r1, r2 - movs r2, #0x80 - movs r3, #0x60 - bl sub_0800293E - cmp r0, #0 - beq _08088B82 - ldr r0, _08088AE0 @ =gUnk_02034350 - ldr r1, [r0, #0x68] - movs r2, #4 - orrs r1, r2 - str r1, [r0, #0x68] - b _08088B82 - .align 2, 0 -_08088AD8: .4byte gUnk_02002A40 -_08088ADC: .4byte gRoomControls -_08088AE0: .4byte gUnk_02034350 -_08088AE4: - ldr r5, _08088B70 @ =gUnk_02034350 - ldr r1, [r5, #0x68] - movs r6, #1 - adds r0, r1, #0 - ands r0, r6 - cmp r0, #0 - beq _08088B06 - movs r0, #2 - rsbs r0, r0, #0 - ands r1, r0 - str r1, [r5, #0x68] - strb r6, [r4, #0xe] - ldr r0, _08088B74 @ =gUnk_08120C1C - str r0, [r4, #0x68] - movs r0, #0x8a - bl PlaySFX -_08088B06: - ldr r1, [r5, #0x68] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _08088B24 - movs r0, #3 - rsbs r0, r0, #0 - ands r1, r0 - str r1, [r5, #0x68] - strb r6, [r4, #0xe] - ldr r0, _08088B78 @ =gUnk_08120C25 - str r0, [r4, #0x68] - movs r0, #0x89 - bl PlaySFX -_08088B24: - ldr r1, [r5, #0x68] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - beq _08088B42 - movs r0, #5 - rsbs r0, r0, #0 - ands r1, r0 - str r1, [r5, #0x68] - strb r6, [r4, #0xe] - ldr r0, _08088B7C @ =gUnk_08120C2E - str r0, [r4, #0x68] - movs r0, #0x8a - bl PlaySFX -_08088B42: - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _08088B82 - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - cmp r3, #0 - bne _08088B82 - ldr r1, [r4, #0x68] - ldrb r0, [r1] - adds r2, r4, #0 - adds r2, #0x63 - strb r0, [r2] - adds r1, #1 - ldrb r0, [r1] - cmp r0, #0xff - beq _08088B80 - movs r0, #8 - strb r0, [r4, #0xe] - str r1, [r4, #0x68] - b _08088B82 - .align 2, 0 -_08088B70: .4byte gUnk_02034350 -_08088B74: .4byte gUnk_08120C1C -_08088B78: .4byte gUnk_08120C25 -_08088B7C: .4byte gUnk_08120C2E -_08088B80: - strb r3, [r2] -_08088B82: - adds r5, r4, #0 - adds r5, #0x29 - ldrb r1, [r5] - movs r6, #8 - rsbs r6, r6, #0 - adds r0, r6, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r5] - movs r1, #0x2e - ldrsh r0, [r4, r1] - subs r0, #0x50 - movs r2, #0x32 - ldrsh r1, [r4, r2] - subs r1, #0x50 - movs r2, #0xa0 - movs r3, #0x30 - bl sub_0806FBFC - cmp r0, #0 - beq _08088BBA - ldrb r0, [r5] - adds r1, r6, #0 - ands r1, r0 - movs r0, #5 - orrs r1, r0 - strb r1, [r5] -_08088BBA: - movs r3, #0x2e - ldrsh r0, [r4, r3] - subs r0, #0x50 - movs r2, #0x32 - ldrsh r1, [r4, r2] - adds r1, #0x30 - movs r2, #0xa0 - movs r3, #0x30 - bl sub_0806FBFC - cmp r0, #0 - beq _08088BDE - ldrb r0, [r5] - adds r1, r6, #0 - ands r1, r0 - movs r0, #5 - orrs r1, r0 - strb r1, [r5] -_08088BDE: - pop {r4, r5, r6, pc} - - thumb_func_start sub_08088BE0 -sub_08088BE0: @ 0x08088BE0 - push {r4, lr} - adds r4, r0, #0 - movs r0, #0x15 - bl sub_0807CBD0 - cmp r0, #0 - bne _08088C1C - movs r3, #0x78 - rsbs r3, r3, #0 - adds r0, r4, #0 - movs r1, #2 - movs r2, #0 - bl sub_08088C78 - adds r0, r4, #0 - movs r1, #4 - movs r2, #0x15 - movs r3, #0 - bl sub_08088C78 - adds r2, r0, #0 - cmp r2, #0 - beq _08088C1C - ldr r0, _08088C74 @ =gRoomControls - ldrh r1, [r0, #6] - adds r1, #0x48 - strh r1, [r2, #0x2e] - ldrh r0, [r0, #8] - adds r0, #0xc8 - strh r0, [r2, #0x32] -_08088C1C: - movs r0, #0x16 - bl sub_0807CBD0 - cmp r0, #0 - bne _08088C58 - adds r0, r4, #0 - movs r1, #2 - movs r2, #1 - movs r3, #0x78 - bl sub_08088C78 - adds r0, r4, #0 - movs r1, #4 - movs r2, #0x16 - movs r3, #0 - bl sub_08088C78 - adds r2, r0, #0 - cmp r2, #0 - beq _08088C58 - ldr r0, _08088C74 @ =gRoomControls - movs r3, #0xc4 - lsls r3, r3, #1 - adds r1, r3, #0 - ldrh r3, [r0, #6] - adds r1, r1, r3 - strh r1, [r2, #0x2e] - ldrh r0, [r0, #8] - adds r0, #0xc8 - strh r0, [r2, #0x32] -_08088C58: - movs r3, #0x78 - rsbs r3, r3, #0 - adds r0, r4, #0 - movs r1, #1 - movs r2, #0 - bl sub_08088C78 - adds r0, r4, #0 - movs r1, #1 - movs r2, #1 - movs r3, #0x78 - bl sub_08088C78 - pop {r4, pc} - .align 2, 0 -_08088C74: .4byte gRoomControls - - thumb_func_start sub_08088C78 -sub_08088C78: @ 0x08088C78 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r3, #0 - movs r0, #0x25 - bl CreateObject - adds r1, r0, #0 - cmp r1, #0 - beq _08088C96 - ldrh r0, [r4, #0x2e] - adds r0, r0, r5 - strh r0, [r1, #0x2e] - ldrh r0, [r4, #0x32] - strh r0, [r1, #0x32] - str r4, [r1, #0x50] -_08088C96: - adds r0, r1, #0 - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_08088C9C -sub_08088C9C: @ 0x08088C9C - push {r4, lr} - adds r4, r0, #0 - ldr r1, _08088CEC @ =gUnk_08120C48 - ldr r0, [r4, #0x50] - adds r0, #0x29 - ldrb r0, [r0] - lsls r0, r0, #0x1d - lsrs r0, r0, #0x1d - adds r0, r0, r1 - ldrb r0, [r0] - adds r3, r4, #0 - adds r3, #0x29 - movs r1, #7 - ands r1, r0 - ldrb r2, [r3] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - ldr r0, [r4, #0x50] - adds r0, #0x63 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - lsrs r1, r0, #0x1f - adds r0, r0, r1 - asrs r0, r0, #1 - adds r1, r4, #0 - adds r1, #0x63 - strb r0, [r1] - ldrb r0, [r4, #0xc] - cmp r0, #1 - beq _08088D4C - cmp r0, #1 - bgt _08088CF0 - cmp r0, #0 - beq _08088CFA - b _08088DB0 - .align 2, 0 -_08088CEC: .4byte gUnk_08120C48 -_08088CF0: - cmp r0, #2 - beq _08088D5A - cmp r0, #3 - beq _08088D7A - b _08088DB0 -_08088CFA: - movs r2, #1 - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - subs r0, #5 - ands r0, r1 - orrs r0, r2 - strb r0, [r4, #0x18] - ldrb r2, [r4, #0xb] - adds r0, r2, #4 - strb r0, [r4, #0x1e] - ldrb r1, [r4, #0x11] - movs r0, #0x10 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #3 - orrs r0, r1 - strb r0, [r4, #0x11] - lsls r2, r2, #0x18 - movs r0, #0x16 - cmp r2, #0 - bne _08088D28 - movs r0, #0x15 -_08088D28: - strb r0, [r4, #0xf] - ldrb r0, [r4, #0xf] - bl sub_0807CBD0 - cmp r0, #0 - beq _08088DB0 - ldr r1, _08088D48 @ =gUnk_08120C50 - ldrb r0, [r4, #0xb] - adds r0, r0, r1 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - ldrh r1, [r4, #0x2e] - adds r0, r0, r1 - strh r0, [r4, #0x2e] - b _08088DAC - .align 2, 0 -_08088D48: .4byte gUnk_08120C50 -_08088D4C: - ldrb r0, [r4, #0xf] - bl sub_0807CBD0 - cmp r0, #0 - beq _08088DB0 - movs r0, #2 - b _08088DAE -_08088D5A: - ldr r2, _08088D98 @ =gUnk_02034350 - ldr r1, [r2, #0x68] - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - beq _08088DB0 - movs r0, #0x21 - rsbs r0, r0, #0 - ands r1, r0 - str r1, [r2, #0x68] - movs r0, #3 - strb r0, [r4, #0xc] - movs r0, #4 - strb r0, [r4, #0xd] - movs r0, #1 - strb r0, [r4, #0xe] -_08088D7A: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08088DB0 - movs r0, #8 - strb r0, [r4, #0xe] - movs r0, #0x2e - ldrsh r1, [r4, r0] - ldrb r0, [r4, #0xb] - cmp r0, #0 - beq _08088D9C - subs r0, r1, #2 - b _08088D9E - .align 2, 0 -_08088D98: .4byte gUnk_02034350 -_08088D9C: - adds r0, r1, #2 -_08088D9E: - strh r0, [r4, #0x2e] - ldrb r0, [r4, #0xd] - subs r0, #1 - strb r0, [r4, #0xd] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08088DB0 -_08088DAC: - movs r0, #4 -_08088DAE: - strb r0, [r4, #0xc] -_08088DB0: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08088DB4 -sub_08088DB4: @ 0x08088DB4 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #1 - beq _08088E28 - cmp r0, #1 - bgt _08088DC8 - cmp r0, #0 - beq _08088DEC - b _08088E50 -_08088DC8: - cmp r0, #4 - bgt _08088E50 - ldr r0, _08088DE8 @ =gUnk_02034350 - ldr r0, [r0, #0x68] - movs r1, #8 - ands r0, r1 - cmp r0, #0 - beq _08088E6E - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08088E6E - b _08088E3E - .align 2, 0 -_08088DE8: .4byte gUnk_02034350 -_08088DEC: - movs r2, #1 - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - subs r0, #5 - ands r0, r1 - orrs r0, r2 - strb r0, [r4, #0x18] - ldrb r0, [r4, #0xb] - lsls r0, r0, #2 - adds r0, #6 - strb r0, [r4, #0x1e] - adds r1, r4, #0 - adds r1, #0x38 - movs r0, #2 - strb r0, [r1] - adds r0, r4, #0 - movs r1, #3 - bl sub_0805E3A0 - ldrb r0, [r4, #0xb] - movs r1, #0x16 - cmp r0, #0 - bne _08088E1E - movs r1, #0x15 -_08088E1E: - strb r1, [r4, #0xb] - adds r0, r4, #0 - bl UpdateSpriteOrderAndFlip - b _08088E6E -_08088E28: - ldrb r0, [r4, #0xb] - bl sub_0807CBD0 - cmp r0, #0 - beq _08088E6E - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] - movs r0, #0xa - strb r0, [r4, #0xe] - b _08088E6E -_08088E3E: - movs r0, #0x1e - strb r0, [r4, #0xe] - ldrb r0, [r4, #0x1e] - adds r0, #1 - strb r0, [r4, #0x1e] - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] - b _08088E6E -_08088E50: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08088E6E - ldr r0, _08088E70 @ =gUnk_02034350 - ldr r1, [r0, #0x68] - movs r2, #9 - rsbs r2, r2, #0 - ands r1, r2 - str r1, [r0, #0x68] - adds r0, r4, #0 - bl sub_0805E7BC -_08088E6E: - pop {r4, pc} - .align 2, 0 -_08088E70: .4byte gUnk_02034350 - - thumb_func_start sub_08088E74 -sub_08088E74: @ 0x08088E74 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _08088E94 - movs r0, #1 - strb r0, [r4, #0xc] - adds r1, r4, #0 - adds r1, #0x38 - movs r0, #2 - strb r0, [r1] - ldr r2, _08088EB0 @ =gUnk_02034350 - ldr r0, [r2, #0x68] - movs r1, #8 - orrs r0, r1 - str r0, [r2, #0x68] -_08088E94: - adds r0, r4, #0 - bl sub_0806FB38 - cmp r0, #0 - beq _08088EB4 - ldr r0, _08088EB0 @ =gUnk_02034350 - ldr r1, [r0, #0x68] - movs r2, #0x10 - orrs r1, r2 - str r1, [r0, #0x68] - adds r0, r4, #0 - bl sub_0805E7BC - b _08088F14 - .align 2, 0 -_08088EB0: .4byte gUnk_02034350 -_08088EB4: - ldr r0, _08088F18 @ =gUnk_030010A0 - ldr r0, [r0] - movs r1, #7 - ands r0, r1 - cmp r0, #0 - bne _08088F14 - adds r0, r4, #0 - movs r1, #0x2a - movs r2, #0 - movs r3, #0x1e - bl CreateObjectWithParent - adds r4, r0, #0 - cmp r4, #0 - beq _08088F14 - ldrb r1, [r4, #0x11] - movs r0, #0x10 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #3 - orrs r0, r1 - strb r0, [r4, #0x11] - ldrb r2, [r4, #0x19] - movs r1, #0x3f - adds r0, r1, #0 - ands r0, r2 - strb r0, [r4, #0x19] - adds r3, r4, #0 - adds r3, #0x29 - ldrb r2, [r3] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r3] - ldrb r0, [r4, #0x1b] - ands r1, r0 - strb r1, [r4, #0x1b] - bl Random - ldr r2, _08088F1C @ =gUnk_08120C52 - movs r1, #3 - ands r1, r0 - adds r1, r1, r2 - movs r0, #0 - ldrsb r0, [r1, r0] - ldrh r1, [r4, #0x32] - adds r0, r0, r1 - strh r0, [r4, #0x32] -_08088F14: - pop {r4, pc} - .align 2, 0 -_08088F18: .4byte gUnk_030010A0 -_08088F1C: .4byte gUnk_08120C52 - - thumb_func_start sub_08088F20 -sub_08088F20: @ 0x08088F20 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #1 - beq _08088F62 - cmp r0, #1 - bgt _08088F34 - cmp r0, #0 - beq _08088F3E - b _08089020 -_08088F34: - cmp r0, #2 - beq _08088FEC - cmp r0, #3 - beq _08089004 - b _08089020 -_08088F3E: - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x11] - subs r0, #0x11 - ands r0, r1 - movs r1, #3 - orrs r0, r1 - strb r0, [r4, #0x11] - ldrb r0, [r4, #0xb] - bl sub_0807CBD0 - cmp r0, #0 - bne _08088F5A - b _0808908E -_08088F5A: - adds r0, r4, #0 - bl sub_0805E7BC - b _0808908E -_08088F62: - ldrb r0, [r4, #0xb] - bl sub_0807CBD0 - cmp r0, #0 - bne _08088F6E - b _0808908E -_08088F6E: - movs r5, #2 - strb r5, [r4, #0xc] - movs r0, #0x1e - strb r0, [r4, #0xe] - movs r1, #0x87 - lsls r1, r1, #1 - adds r0, r4, #0 - bl sub_0805E4E0 - movs r0, #0x2a - movs r1, #1 - movs r2, #0 - bl CreateObject - adds r2, r0, #0 - cmp r2, #0 - beq _08088FBC - ldrb r1, [r2, #0x11] - movs r0, #0x10 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #3 - orrs r0, r1 - strb r0, [r2, #0x11] - ldrh r0, [r4, #0x2e] - strh r0, [r2, #0x2e] - ldrh r0, [r4, #0x32] - strh r0, [r2, #0x32] - adds r0, r2, #0 - adds r0, #0x38 - strb r5, [r0] - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #2 - orrs r0, r1 - strb r0, [r2] -_08088FBC: - movs r0, #0x2e - ldrsh r1, [r4, r0] - ldr r2, _08088FE8 @ =gRoomControls - ldrh r0, [r2, #6] - subs r1, r1, r0 - asrs r1, r1, #4 - movs r3, #0x3f - ands r1, r3 - movs r5, #0x32 - ldrsh r0, [r4, r5] - ldrh r2, [r2, #8] - subs r0, r0, r2 - asrs r0, r0, #4 - ands r0, r3 - lsls r0, r0, #6 - orrs r1, r0 - movs r0, #0x76 - movs r2, #2 - bl sub_0807B314 - b _0808908E - .align 2, 0 -_08088FE8: .4byte gRoomControls -_08088FEC: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0808908E - adds r0, r4, #0 - bl sub_08089094 - movs r0, #3 - strb r0, [r4, #0xc] - b _0808908E -_08089004: - ldr r0, _0808901C @ =gUnk_02034350 - ldr r0, [r0, #0x68] - movs r1, #0x10 - ands r0, r1 - cmp r0, #0 - beq _0808908E - movs r0, #4 - strb r0, [r4, #0xc] - movs r0, #0x78 - strb r0, [r4, #0xe] - b _0808908E - .align 2, 0 -_0808901C: .4byte gUnk_02034350 -_08089020: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x5a - bne _0808905C - movs r0, #0x15 - movs r1, #2 - bl sub_0807CC60 - cmp r0, #0 - beq _08089048 - ldr r0, _08089044 @ =gUnk_02034350 - ldr r1, [r0, #0x68] - movs r2, #2 - b _0808904E - .align 2, 0 -_08089044: .4byte gUnk_02034350 -_08089048: - ldr r0, _08089090 @ =gUnk_02034350 - ldr r1, [r0, #0x68] - movs r2, #1 -_0808904E: - orrs r1, r2 - str r1, [r0, #0x68] - adds r2, r0, #0 - ldr r0, [r2, #0x68] - movs r1, #0x20 - orrs r0, r1 - str r0, [r2, #0x68] -_0808905C: - ldrb r0, [r4, #0xe] - cmp r0, #0 - bne _0808908E - ldr r2, _08089090 @ =gUnk_02034350 - ldr r0, [r2, #0x68] - movs r1, #0x11 - rsbs r1, r1, #0 - ands r0, r1 - str r0, [r2, #0x68] - movs r0, #0x15 - movs r1, #2 - bl sub_0807CC60 - cmp r0, #0 - beq _08089088 - adds r0, r4, #0 - movs r1, #0x3c - bl sub_0805E4E0 - movs r0, #0x72 - bl PlaySFX -_08089088: - adds r0, r4, #0 - bl sub_0805E7BC -_0808908E: - pop {r4, r5, pc} - .align 2, 0 -_08089090: .4byte gUnk_02034350 - - thumb_func_start sub_08089094 -sub_08089094: @ 0x08089094 - push {r4, r5, lr} - adds r5, r0, #0 - movs r1, #0x2e - ldrsh r0, [r5, r1] - ldr r1, _080890C4 @ =gRoomControls - ldrh r1, [r1, #6] - subs r0, r0, r1 - cmp r0, #0xff - bgt _080890CC - ldr r4, _080890C8 @ =gUnk_08120C56 - movs r2, #8 - rsbs r2, r2, #0 - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_080890EC - adds r4, #4 - adds r0, r5, #0 - adds r1, r4, #0 - movs r2, #4 - bl sub_080890EC - b _080890E6 - .align 2, 0 -_080890C4: .4byte gRoomControls -_080890C8: .4byte gUnk_08120C56 -_080890CC: - ldr r4, _080890E8 @ =gUnk_08120C5E - movs r2, #8 - rsbs r2, r2, #0 - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_080890EC - adds r4, #4 - adds r0, r5, #0 - adds r1, r4, #0 - movs r2, #4 - bl sub_080890EC -_080890E6: - pop {r4, r5, pc} - .align 2, 0 -_080890E8: .4byte gUnk_08120C5E - - thumb_func_start sub_080890EC -sub_080890EC: @ 0x080890EC - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - adds r7, r1, #0 - adds r6, r2, #0 - movs r0, #0x25 - movs r1, #3 - movs r2, #0 - bl CreateObject - adds r4, r0, #0 - cmp r4, #0 - beq _08089132 - movs r1, #3 - bl sub_0805E3A0 - ldrh r0, [r5, #0x2e] - strh r0, [r4, #0x2e] - ldrh r0, [r5, #0x32] - adds r0, r0, r6 - strh r0, [r4, #0x32] - str r5, [r4, #0x50] - movs r0, #0x2e - ldrsh r1, [r4, r0] - movs r2, #0 - ldrsh r0, [r7, r2] - adds r1, r1, r0 - movs r3, #0x32 - ldrsh r2, [r4, r3] - movs r3, #2 - ldrsh r0, [r7, r3] - adds r2, r2, r0 - adds r0, r4, #0 - movs r3, #0x5a - bl sub_0806FB00 -_08089132: - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_08089134 -sub_08089134: @ 0x08089134 - push {r4, r5, lr} - adds r5, r0, #0 - ldrb r0, [r5, #0xc] - cmp r0, #0 - bne _0808919C - movs r2, #1 - movs r3, #1 - strb r3, [r5, #0xc] - ldrb r1, [r5, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - orrs r0, r2 - strb r0, [r5, #0x18] - ldrb r0, [r5, #0xa] - strb r0, [r5, #0x1e] - movs r0, #0x10 - strb r0, [r5, #0xe] - strb r3, [r5, #0xf] - ldrb r0, [r5, #0xa] - lsls r3, r0, #1 - adds r3, r3, r0 - ldr r0, _080891D4 @ =gUnk_08120C80 - adds r3, r3, r0 - ldrb r1, [r3] - lsls r1, r1, #6 - ldrb r4, [r5, #0x19] - movs r2, #0x3f - adds r0, r2, #0 - ands r0, r4 - orrs r0, r1 - strb r0, [r5, #0x19] - ldrb r0, [r3, #1] - movs r1, #0x29 - adds r1, r1, r5 - mov ip, r1 - movs r1, #7 - ands r1, r0 - mov r0, ip - ldrb r4, [r0] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r4 - orrs r0, r1 - mov r1, ip - strb r0, [r1] - ldrb r0, [r3, #2] - lsls r0, r0, #6 - ldrb r1, [r5, #0x1b] - ands r2, r1 - orrs r2, r0 - strb r2, [r5, #0x1b] -_0808919C: - ldrb r0, [r5, #0xa] - cmp r0, #4 - bne _080891D0 - ldrb r0, [r5, #0xe] - subs r0, #1 - strb r0, [r5, #0xe] - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - cmp r3, #0 - bne _080891D0 - movs r0, #0x10 - strb r0, [r5, #0xe] - ldr r2, _080891D8 @ =gUnk_08120C92 - ldrb r0, [r5, #0xf] - adds r1, r0, #1 - strb r1, [r5, #0xf] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r0, r0, r2 - ldrb r0, [r0] - strb r0, [r5, #0x1e] - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - cmp r1, #3 - bne _080891D0 - strb r3, [r5, #0xf] -_080891D0: - pop {r4, r5, pc} - .align 2, 0 -_080891D4: .4byte gUnk_08120C80 -_080891D8: .4byte gUnk_08120C92 - - thumb_func_start sub_080891DC -sub_080891DC: @ 0x080891DC - push {lr} - ldr r2, _080891F0 @ =gUnk_08120C98 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_080891F0: .4byte gUnk_08120C98 - - thumb_func_start sub_080891F4 -sub_080891F4: @ 0x080891F4 - push {r4, lr} - adds r4, r0, #0 - bl sub_0808965C - cmp r0, #0 - beq _08089236 - movs r3, #0 - movs r2, #1 - strb r2, [r4, #0xc] - movs r0, #0x80 - strh r0, [r4, #0x24] - ldrb r1, [r4, #0x11] - subs r0, #0x90 - ands r0, r1 - movs r1, #3 - orrs r0, r1 - strb r0, [r4, #0x11] - ldr r0, _08089238 @ =gUnk_080FD1F4 - str r0, [r4, #0x48] - strb r2, [r4, #0x16] - adds r0, r4, #0 - adds r0, #0x86 - strh r3, [r0] - adds r0, r4, #0 - bl sub_08089454 - adds r0, r4, #0 - bl sub_080894C8 - adds r0, r4, #0 - movs r1, #0 - bl UpdateSprite -_08089236: - pop {r4, pc} - .align 2, 0 -_08089238: .4byte gUnk_080FD1F4 - - thumb_func_start sub_0808923C -sub_0808923C: @ 0x0808923C - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_0800442E - cmp r0, #0 - bne _080892C0 - adds r0, r4, #0 - adds r0, #0x84 - ldrh r0, [r0] - adds r1, r4, #0 - adds r1, #0x38 - ldrb r1, [r1] - bl sub_080002B0 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - ldr r0, _08089278 @ =0x0000400B - cmp r5, r0 - beq _080892BA - adds r0, r5, #0 - bl sub_0808968C - cmp r0, #1 - beq _0808927C - cmp r0, #1 - blo _08089294 - cmp r0, #2 - beq _080892B2 - b _080892C0 - .align 2, 0 -_08089278: .4byte 0x0000400B -_0808927C: - movs r1, #3 - movs r0, #3 - strb r0, [r4, #0xc] - adds r0, r5, #0 - subs r0, #0xc - ands r0, r1 - lsls r0, r0, #3 - strb r0, [r4, #0x15] - adds r0, r4, #0 - bl sub_08089538 - b _080892C0 -_08089294: - movs r0, #0xf - movs r1, #4 - movs r2, #0 - bl CreateObject - adds r1, r0, #0 - cmp r1, #0 - beq _080892AA - adds r0, r4, #0 - bl CopyPosition -_080892AA: - adds r0, r4, #0 - bl sub_080894FC - b _080892C0 -_080892B2: - adds r0, r4, #0 - adds r0, #0x80 - strh r5, [r0] - b _080892C0 -_080892BA: - adds r0, r4, #0 - bl sub_08078930 -_080892C0: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_080892C4 -sub_080892C4: @ 0x080892C4 - push {lr} - adds r2, r0, #0 - adds r0, #0x86 - ldrh r0, [r0] - cmp r0, #0 - beq _080892D8 - adds r0, r2, #0 - bl sub_080895C0 - b _080892F6 -_080892D8: - ldr r0, _080892F8 @ =gLinkState - ldrb r0, [r0, #5] - cmp r0, #0 - bne _080892E4 - movs r0, #6 - strb r0, [r2, #0xd] -_080892E4: - ldr r0, _080892FC @ =gUnk_08120CAC - ldrb r1, [r2, #0xd] - subs r1, #5 - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r2, #0 - bl _call_via_r1 -_080892F6: - pop {pc} - .align 2, 0 -_080892F8: .4byte gLinkState -_080892FC: .4byte gUnk_08120CAC - - thumb_func_start sub_08089300 -sub_08089300: @ 0x08089300 - push {r4, r5, lr} - adds r5, r0, #0 - adds r1, r5, #0 - adds r1, #0x83 - ldrb r0, [r1] - cmp r0, #0 - bne _0808932C - movs r0, #1 - strb r0, [r1] - ldr r1, _0808935C @ =gLinkEntity - ldrb r0, [r1, #0x14] - ldr r2, _08089360 @ =gUnk_08120CB4 - adds r0, r0, r2 - movs r2, #0 - ldrsb r2, [r0, r2] - lsls r2, r2, #0x10 - movs r3, #1 - ldrsb r3, [r0, r3] - lsls r3, r3, #0x10 - adds r0, r5, #0 - bl PositionRelative -_0808932C: - adds r0, r5, #0 - adds r0, #0x84 - ldrh r0, [r0] - adds r1, r5, #0 - adds r1, #0x38 - ldrb r1, [r1] - bl sub_080002B0 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - ldr r0, _08089364 @ =0x0000400B - cmp r4, r0 - beq _080893A0 - adds r0, r4, #0 - bl sub_0808968C - cmp r0, #1 - beq _08089368 - cmp r0, #1 - blo _0808937C - cmp r0, #2 - beq _0808939A - b _080893A0 - .align 2, 0 -_0808935C: .4byte gLinkEntity -_08089360: .4byte gUnk_08120CB4 -_08089364: .4byte 0x0000400B -_08089368: - adds r0, r4, #0 - subs r0, #0xc - movs r1, #3 - ands r0, r1 - lsls r0, r0, #3 - strb r0, [r5, #0x15] - adds r0, r5, #0 - bl sub_08089538 - b _080893A0 -_0808937C: - movs r0, #0xf - movs r1, #4 - movs r2, #0 - bl CreateObject - adds r1, r0, #0 - cmp r1, #0 - beq _08089392 - adds r0, r5, #0 - bl CopyPosition -_08089392: - adds r0, r5, #0 - bl sub_080894FC - b _080893D6 -_0808939A: - adds r0, r5, #0 - adds r0, #0x80 - strh r4, [r0] -_080893A0: - bl sub_080896B0 - cmp r0, #0 - beq _080893D6 - ldr r2, _080893D8 @ =gLinkState - movs r3, #0 - movs r0, #0x10 - strb r0, [r2, #0xc] - adds r1, r2, #0 - adds r1, #0x38 - movs r0, #0x20 - strb r0, [r1] - ldr r0, [r2, #0x30] - movs r1, #1 - orrs r0, r1 - str r0, [r2, #0x30] - ldr r0, _080893DC @ =gLinkEntity - strh r3, [r0, #0x2c] - strh r3, [r0, #0x30] - ldrb r0, [r0, #0x14] - movs r1, #4 - eors r0, r1 - lsls r0, r0, #2 - strb r0, [r5, #0x15] - adds r0, r5, #0 - bl sub_08089538 -_080893D6: - pop {r4, r5, pc} - .align 2, 0 -_080893D8: .4byte gLinkState -_080893DC: .4byte gLinkEntity - - thumb_func_start sub_080893E0 -sub_080893E0: @ 0x080893E0 - movs r2, #0 - movs r1, #1 - strb r1, [r0, #0xc] - adds r0, #0x83 - strb r2, [r0] - bx lr - - thumb_func_start sub_080893EC -sub_080893EC: @ 0x080893EC - push {r4, lr} - adds r4, r0, #0 - bl sub_080895C0 - cmp r0, #0 - beq _080893FC - movs r0, #1 - strb r0, [r4, #0xc] -_080893FC: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08089400 -sub_08089400: @ 0x08089400 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08089424 - ldrb r2, [r4, #0x18] - lsls r1, r2, #0x1e - lsrs r1, r1, #0x1e - movs r0, #1 - eors r1, r0 - subs r0, #5 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #0x18] - b _0808944E -_08089424: - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] - movs r0, #1 - strb r0, [r4, #0xc] - ldr r0, _08089450 @ =0x0000400B - adds r1, r4, #0 - adds r1, #0x84 - ldrh r1, [r1] - adds r2, r4, #0 - adds r2, #0x38 - ldrb r2, [r2] - bl sub_0800015E - adds r0, r4, #0 - bl sub_080894C8 -_0808944E: - pop {r4, pc} - .align 2, 0 -_08089450: .4byte 0x0000400B - - thumb_func_start sub_08089454 -sub_08089454: @ 0x08089454 - push {r4, r5, r6, lr} - adds r5, r0, #0 - movs r0, #0x2e - ldrsh r1, [r5, r0] - ldr r2, _080894C0 @ =gRoomControls - ldrh r0, [r2, #6] - subs r1, r1, r0 - asrs r1, r1, #4 - movs r3, #0x3f - ands r1, r3 - movs r4, #0x32 - ldrsh r0, [r5, r4] - ldrh r2, [r2, #8] - subs r0, r0, r2 - asrs r0, r0, #4 - ands r0, r3 - lsls r0, r0, #6 - orrs r1, r0 - adds r6, r5, #0 - adds r6, #0x84 - strh r1, [r6] - ldrh r0, [r6] - adds r4, r5, #0 - adds r4, #0x38 - ldrb r1, [r4] - bl sub_080001DA - adds r1, r5, #0 - adds r1, #0x80 - strh r0, [r1] - ldr r5, _080894C4 @ =0x0000400B - ldrh r1, [r6] - ldrb r2, [r4] - adds r0, r5, #0 - bl sub_0800015E - ldrb r0, [r4] - cmp r0, #2 - bne _080894BC - ldrh r0, [r6] - movs r1, #1 - bl sub_080002B0 - movs r1, #0xc4 - lsls r1, r1, #2 - cmp r0, r1 - bne _080894BC - ldrh r1, [r6] - adds r0, r5, #0 - movs r2, #1 - bl sub_0800015E -_080894BC: - pop {r4, r5, r6, pc} - .align 2, 0 -_080894C0: .4byte gRoomControls -_080894C4: .4byte 0x0000400B - - thumb_func_start sub_080894C8 -sub_080894C8: @ 0x080894C8 - push {r4, lr} - adds r3, r0, #0 - movs r2, #0 - ldr r1, _080894E0 @ =gUnk_02034350 - adds r4, r1, #0 - adds r4, #0xac - ldr r0, [r4] - mov ip, r1 - cmp r0, #0 - bne _080894E4 - str r3, [r4] - b _080894FA - .align 2, 0 -_080894E0: .4byte gUnk_02034350 -_080894E4: - adds r2, #1 - cmp r2, #7 - bhi _080894FA - lsls r0, r2, #2 - mov r1, ip - adds r1, #0xac - adds r1, r0, r1 - ldr r0, [r1] - cmp r0, #0 - bne _080894E4 - str r3, [r1] -_080894FA: - pop {r4, pc} - - thumb_func_start sub_080894FC -sub_080894FC: @ 0x080894FC - push {r4, lr} - adds r3, r0, #0 - movs r2, #0 - ldr r1, _08089514 @ =gUnk_02034350 - adds r4, r1, #0 - adds r4, #0xac - ldr r0, [r4] - mov ip, r1 - cmp r3, r0 - bne _08089518 - str r2, [r4] - b _08089530 - .align 2, 0 -_08089514: .4byte gUnk_02034350 -_08089518: - adds r2, #1 - cmp r2, #7 - bhi _08089530 - lsls r0, r2, #2 - mov r1, ip - adds r1, #0xac - adds r1, r0, r1 - ldr r0, [r1] - cmp r3, r0 - bne _08089518 - movs r0, #0 - str r0, [r1] -_08089530: - adds r0, r3, #0 - bl sub_0805E7BC - pop {r4, pc} - - thumb_func_start sub_08089538 -sub_08089538: @ 0x08089538 - push {r4, r5, r6, lr} - adds r5, r0, #0 - adds r1, r5, #0 - adds r1, #0x86 - movs r0, #0x20 - strh r0, [r1] - adds r0, #0xef - bl sub_08004488 - adds r0, r5, #0 - adds r0, #0x80 - ldrh r0, [r0] - adds r6, r5, #0 - adds r6, #0x84 - ldrh r1, [r6] - adds r4, r5, #0 - adds r4, #0x38 - ldrb r2, [r4] - bl sub_0800015E - ldrb r0, [r4] - cmp r0, #2 - bne _08089580 - ldrh r0, [r6] - movs r1, #1 - bl sub_080002B0 - ldr r1, _080895B8 @ =0x0000400B - cmp r0, r1 - bne _08089580 - movs r0, #0xc4 - lsls r0, r0, #2 - ldrh r1, [r6] - movs r2, #1 - bl sub_08000152 -_08089580: - adds r2, r5, #0 - adds r2, #0x84 - ldr r1, _080895BC @ =gUnk_080B4488 - ldrb r0, [r5, #0x15] - lsrs r0, r0, #3 - lsls r0, r0, #1 - adds r0, r0, r1 - movs r1, #0 - ldrsh r0, [r0, r1] - ldrh r2, [r2] - adds r0, r0, r2 - adds r1, r5, #0 - adds r1, #0x38 - ldrb r1, [r1] - bl sub_080002B0 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0x79 - beq _080895AC - cmp r0, #0x77 - bne _080895B4 -_080895AC: - adds r1, r5, #0 - adds r1, #0x63 - movs r0, #0xfe - strb r0, [r1] -_080895B4: - pop {r4, r5, r6, pc} - .align 2, 0 -_080895B8: .4byte 0x0000400B -_080895BC: .4byte gUnk_080B4488 - - thumb_func_start sub_080895C0 -sub_080895C0: @ 0x080895C0 - push {r4, lr} - adds r4, r0, #0 - bl sub_0806F69C - adds r1, r4, #0 - adds r1, #0x86 - ldrh r0, [r1] - subs r0, #1 - strh r0, [r1] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _0808964C - adds r0, r4, #0 - bl sub_0800442E - cmp r0, #0 - bne _0808964C - adds r1, r4, #0 - adds r1, #0x63 - movs r0, #0 - strb r0, [r1] - adds r0, r4, #0 - bl sub_080002D0 - cmp r0, #0 - bne _080895FE - adds r0, r4, #0 - bl sub_08089454 - movs r0, #1 - b _08089654 -_080895FE: - movs r0, #0xf - movs r1, #4 - movs r2, #0 - bl CreateObject - adds r1, r0, #0 - cmp r1, #0 - beq _08089614 - adds r0, r4, #0 - bl CopyPosition -_08089614: - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #0x18] - ldr r2, _08089658 @ =gUnk_08120CBC - ldrb r1, [r4, #0x15] - lsrs r1, r1, #2 - lsls r0, r1, #1 - adds r0, r0, r2 - ldrh r0, [r0] - ldrh r3, [r4, #0x2e] - adds r0, r0, r3 - strh r0, [r4, #0x2e] - adds r1, #1 - lsls r1, r1, #1 - adds r1, r1, r2 - ldrh r0, [r1] - ldrh r1, [r4, #0x32] - adds r0, r0, r1 - strh r0, [r4, #0x32] - adds r0, r4, #0 - bl sub_08089454 - movs r0, #4 - strb r0, [r4, #0xc] - movs r0, #0x3c - strb r0, [r4, #0xe] -_0808964C: - adds r0, r4, #0 - bl sub_0800445C - movs r0, #0 -_08089654: - pop {r4, pc} - .align 2, 0 -_08089658: .4byte gUnk_08120CBC - - thumb_func_start sub_0808965C -sub_0808965C: @ 0x0808965C - push {lr} - adds r2, r0, #0 - ldr r3, _08089678 @ =gRoomControls - ldrb r0, [r3, #4] - cmp r0, #0x3f - bls _08089680 - ldr r1, _0808967C @ =gUnk_08120CCC - subs r0, #0x40 - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r1, [r0] - adds r0, r2, #0 - b _08089684 - .align 2, 0 -_08089678: .4byte gRoomControls -_0808967C: .4byte gUnk_08120CCC -_08089680: - adds r0, r2, #0 - movs r1, #0xe9 -_08089684: - bl sub_080ADF80 - pop {pc} - .align 2, 0 - - thumb_func_start sub_0808968C -sub_0808968C: @ 0x0808968C - push {lr} - adds r2, r0, #0 - ldr r1, _08089694 @ =gUnk_08120D6C - b _080896A4 - .align 2, 0 -_08089694: .4byte gUnk_08120D6C -_08089698: - ldrh r0, [r1] - cmp r0, r2 - bne _080896A2 - ldrh r0, [r1, #2] - b _080896AC -_080896A2: - adds r1, #4 -_080896A4: - ldrh r0, [r1] - cmp r0, #0 - bne _08089698 - movs r0, #0 -_080896AC: - pop {pc} - .align 2, 0 - - thumb_func_start sub_080896B0 -sub_080896B0: @ 0x080896B0 - push {r4, r5, r6, r7, lr} - ldr r0, _08089750 @ =gLinkState - ldrb r1, [r0, #5] - movs r0, #0x1f - ands r0, r1 - cmp r0, #0x12 - bne _08089768 - ldr r6, _08089754 @ =gLinkEntity - adds r0, r6, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _08089768 - ldrb r3, [r6, #0x14] - movs r2, #6 - ands r2, r3 - lsls r2, r2, #1 - ldr r0, _08089758 @ =gUnk_080B4468 - adds r2, r2, r0 - ldr r0, _0808975C @ =gUnk_080B4488 - lsrs r3, r3, #1 - lsls r3, r3, #1 - adds r3, r3, r0 - movs r0, #0x2e - ldrsh r1, [r6, r0] - movs r4, #0 - ldrsh r0, [r2, r4] - adds r1, r1, r0 - ldr r5, _08089760 @ =gRoomControls - ldrh r0, [r5, #6] - subs r1, r1, r0 - asrs r1, r1, #4 - movs r4, #0x3f - ands r1, r4 - movs r7, #0x32 - ldrsh r0, [r6, r7] - movs r7, #2 - ldrsh r2, [r2, r7] - adds r0, r0, r2 - ldrh r2, [r5, #8] - subs r0, r0, r2 - asrs r0, r0, #4 - ands r0, r4 - lsls r0, r0, #6 - orrs r1, r0 - movs r0, #0 - ldrsh r7, [r3, r0] - subs r1, r1, r7 - lsls r4, r1, #0x10 - lsrs r0, r4, #0x10 - adds r5, r6, #0 - adds r5, #0x38 - ldrb r1, [r5] - bl sub_080002C8 - adds r1, r0, #0 - subs r0, #0x26 - cmp r0, #1 - bls _08089768 - cmp r1, #0x29 - beq _08089768 - ldrb r0, [r5] - bl sub_0808094C - asrs r1, r4, #0x10 - ldr r2, _08089764 @ =0x00002004 - adds r0, r0, r2 - adds r2, r0, r1 - ldrb r2, [r2] - subs r1, r1, r7 - adds r0, r0, r1 - ldrb r0, [r0] - cmp r2, #0 - bne _08089768 - cmp r0, #0 - bne _08089768 - movs r0, #1 - b _0808976A - .align 2, 0 -_08089750: .4byte gLinkState -_08089754: .4byte gLinkEntity -_08089758: .4byte gUnk_080B4468 -_0808975C: .4byte gUnk_080B4488 -_08089760: .4byte gRoomControls -_08089764: .4byte 0x00002004 -_08089768: - movs r0, #0 -_0808976A: - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_0808976C -sub_0808976C: @ 0x0808976C - push {r4, r5, r6, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _080897D0 - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r0, [r4, #0x18] - movs r1, #3 - orrs r0, r1 - strb r0, [r4, #0x18] - ldrb r0, [r4, #0xb] - strb r0, [r4, #0x1e] - ldrb r0, [r4, #0x1b] - movs r1, #0xc0 - orrs r0, r1 - strb r0, [r4, #0x1b] - ldrb r0, [r4, #0x19] - orrs r0, r1 - strb r0, [r4, #0x19] - ldrb r0, [r4, #0xa] - cmp r0, #3 - bne _080897AE - adds r2, r4, #0 - adds r2, #0x29 - ldrb r0, [r2] - movs r1, #8 - rsbs r1, r1, #0 - ands r1, r0 - movs r0, #6 - orrs r1, r0 - strb r1, [r2] - b _080897BA -_080897AE: - adds r2, r4, #0 - adds r2, #0x29 - ldrb r0, [r2] - movs r1, #7 - orrs r0, r1 - strb r0, [r2] -_080897BA: - ldrh r0, [r4, #0x2e] - adds r1, r4, #0 - adds r1, #0x68 - strh r0, [r1] - ldrh r0, [r4, #0x32] - adds r1, #2 - strh r0, [r1] - adds r0, r4, #0 - movs r1, #6 - bl sub_0805E3A0 -_080897D0: - ldrb r1, [r4, #0x10] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - bne _08089840 - movs r0, #0x2e - ldrsh r1, [r4, r0] - ldr r2, _08089844 @ =gRoomControls - movs r3, #0xa - ldrsh r0, [r2, r3] - subs r5, r1, r0 - adds r3, r5, #0 - subs r3, #0x78 - movs r6, #0x32 - ldrsh r1, [r4, r6] - movs r6, #0xc - ldrsh r0, [r2, r6] - subs r1, r1, r0 - adds r2, r1, #0 - subs r2, #0x50 - adds r0, r3, #0 - cmp r0, #0 - bge _08089802 - adds r0, r5, #0 - subs r0, #0x75 -_08089802: - asrs r3, r0, #2 - adds r0, r2, #0 - cmp r0, #0 - bge _0808980E - adds r0, r1, #0 - subs r0, #0x4d -_0808980E: - asrs r2, r0, #2 - movs r0, #0x10 - rsbs r0, r0, #0 - cmp r3, r0 - bge _0808981A - adds r3, r0, #0 -_0808981A: - cmp r3, #0x10 - ble _08089820 - movs r3, #0x10 -_08089820: - cmp r2, r0 - bge _08089826 - adds r2, r0, #0 -_08089826: - cmp r2, #0x10 - ble _0808982C - movs r2, #0x10 -_0808982C: - adds r0, r4, #0 - adds r0, #0x68 - ldrh r0, [r0] - adds r0, r0, r3 - strh r0, [r4, #0x2e] - adds r0, r4, #0 - adds r0, #0x6a - ldrh r0, [r0] - adds r0, r0, r2 - strh r0, [r4, #0x32] -_08089840: - pop {r4, r5, r6, pc} - .align 2, 0 -_08089844: .4byte gRoomControls - - thumb_func_start sub_08089848 -sub_08089848: @ 0x08089848 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _08089870 @ =gUnk_08120D90 - ldrb r0, [r4, #0xc] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - bl Random - movs r1, #1 - ands r1, r0 - adds r1, #1 - adds r0, r4, #0 - bl sub_08004276 - pop {r4, pc} - .align 2, 0 -_08089870: .4byte gUnk_08120D90 - - thumb_func_start sub_08089874 -sub_08089874: @ 0x08089874 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r1, [r4, #0x10] - movs r3, #1 - adds r0, r3, #0 - ands r0, r1 - cmp r0, #0 - beq _08089940 - adds r0, r4, #0 - adds r0, #0x38 - movs r2, #3 - strb r2, [r0] - ldrb r1, [r4, #0xb] - adds r5, r0, #0 - cmp r1, #0 - bne _08089900 - ldrb r0, [r4, #0xa] - cmp r0, #0x80 - bne _080898B4 - strb r2, [r4, #0xc] - ldrb r0, [r4, #0x19] - movs r1, #0xc0 - orrs r0, r1 - strb r0, [r4, #0x19] - adds r0, r4, #0 - movs r1, #0 - bl UpdateSprite - adds r0, r4, #0 - bl sub_08089AE0 - b _08089940 -_080898B4: - str r1, [r4, #0x50] - adds r0, r4, #0 - movs r1, #0x29 - movs r2, #0 - movs r3, #0xff - bl CreateObjectWithParent - ldrb r0, [r4, #0xa] - cmp r0, #0 - beq _080898FA -_080898C8: - ldrb r3, [r4, #0xa] - adds r0, r4, #0 - movs r1, #0x29 - movs r2, #0 - bl CreateObjectWithParent - adds r1, r0, #0 - str r1, [r4, #0x54] - cmp r1, #0 - beq _080898EE - ldr r0, [r4, #0x50] - str r0, [r1, #0x50] - ldr r1, [r4, #0x50] - cmp r1, #0 - beq _080898EA - ldr r0, [r4, #0x54] - str r0, [r1, #0x54] -_080898EA: - ldr r0, [r4, #0x54] - str r0, [r4, #0x50] -_080898EE: - ldrb r0, [r4, #0xa] - subs r0, #1 - strb r0, [r4, #0xa] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080898C8 -_080898FA: - bl sub_0805E780 - b _08089940 -_08089900: - strb r3, [r4, #0xc] - ldr r0, [r4, #0x50] - cmp r0, #0 - bne _08089912 - adds r0, r4, #0 - movs r1, #0 - bl UpdateSprite - b _0808991A -_08089912: - adds r0, r4, #0 - movs r1, #1 - bl UpdateSprite -_0808991A: - ldrb r0, [r4, #0xb] - cmp r0, #0xff - bne _08089934 - movs r0, #1 - strb r0, [r5] - adds r0, r4, #0 - bl sub_08016A30 - adds r0, r4, #0 - movs r1, #0x15 - bl sub_0801D2B4 - b _08089940 -_08089934: - ldrb r1, [r4, #0xb] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - rsbs r0, r0, #0 - strh r0, [r4, #0x36] -_08089940: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_08089944 -sub_08089944: @ 0x08089944 - push {r4, r5, r6, lr} - adds r4, r0, #0 - ldrb r3, [r4, #0xb] - cmp r3, #0xff - bne _08089964 - adds r2, r4, #0 - adds r2, #0x29 - ldrb r0, [r2] - movs r1, #7 - orrs r0, r1 - strb r0, [r2] - ldrb r0, [r4, #0x19] - movs r1, #0xc0 - orrs r0, r1 - strb r0, [r4, #0x19] - b _08089A76 -_08089964: - ldrb r1, [r4, #0x1b] - movs r2, #0x3f - adds r0, r2, #0 - ands r0, r1 - movs r1, #0x40 - orrs r0, r1 - strb r0, [r4, #0x1b] - ldrb r0, [r4, #0x19] - ands r2, r0 - strb r2, [r4, #0x19] - cmp r3, #1 - beq _08089984 - ldr r0, [r4, #0x54] - ldrb r0, [r0, #0xc] - cmp r0, #2 - bne _08089A76 -_08089984: - ldr r0, _08089998 @ =gLinkEntity - movs r1, #0x36 - ldrsh r2, [r0, r1] - movs r1, #0x24 - rsbs r1, r1, #0 - adds r6, r0, #0 - cmp r2, r1 - bge _0808999C - movs r0, #1 - b _0808999E - .align 2, 0 -_08089998: .4byte gLinkEntity -_0808999C: - movs r0, #0 -_0808999E: - strb r0, [r4, #0xe] - ldrb r0, [r4, #0xb] - subs r0, #1 - lsls r1, r0, #3 - adds r1, r1, r0 - lsls r1, r1, #2 - ldrh r0, [r4, #0x32] - subs r0, r0, r1 - strh r0, [r4, #0x32] - adds r5, r6, #0 - adds r0, r4, #0 - adds r1, r5, #0 - movs r2, #0xf - movs r3, #0xf - bl sub_080041A0 - cmp r0, #0 - beq _08089A62 - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _08089A62 - movs r0, #2 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x1b] - movs r0, #0x3f - ands r0, r1 - movs r1, #0x80 - orrs r0, r1 - strb r0, [r4, #0x1b] - ldrb r0, [r4, #0x19] - movs r1, #0xc0 - orrs r0, r1 - strb r0, [r4, #0x19] - ldrb r0, [r4, #0xb] - cmp r0, #1 - beq _080899EC - ldr r1, [r4, #0x54] - movs r0, #1 - strb r0, [r1, #0xc] -_080899EC: - ldr r1, _08089A78 @ =gLinkState - movs r0, #1 - strb r0, [r1, #0x14] - ldrh r0, [r5, #0x32] - subs r0, #0x24 - strh r0, [r5, #0x32] - ldrh r0, [r5, #0x36] - adds r0, #0x24 - strh r0, [r5, #0x36] - adds r0, r5, #0 - bl sub_0807AA80 - ldrb r0, [r4, #0xf] - cmp r0, #0 - bne _08089A62 - adds r0, r5, #0 - movs r1, #2 - movs r2, #0 - bl CreateFX - adds r1, r0, #0 - cmp r1, #0 - beq _08089A20 - ldrh r0, [r1, #0x2e] - adds r0, #8 - strh r0, [r1, #0x2e] -_08089A20: - adds r0, r5, #0 - movs r1, #2 - movs r2, #0 - bl CreateFX - adds r1, r0, #0 - cmp r1, #0 - beq _08089A36 - ldrh r0, [r1, #0x2e] - subs r0, #8 - strh r0, [r1, #0x2e] -_08089A36: - adds r0, r5, #0 - movs r1, #2 - movs r2, #0 - bl CreateFX - adds r1, r0, #0 - cmp r1, #0 - beq _08089A4C - ldrh r0, [r1, #0x32] - adds r0, #8 - strh r0, [r1, #0x32] -_08089A4C: - adds r0, r6, #0 - movs r1, #2 - movs r2, #0 - bl CreateFX - adds r1, r0, #0 - cmp r1, #0 - beq _08089A62 - ldrh r0, [r1, #0x32] - subs r0, #8 - strh r0, [r1, #0x32] -_08089A62: - ldrb r0, [r4, #0xb] - subs r0, #1 - lsls r1, r0, #3 - adds r1, r1, r0 - lsls r1, r1, #2 - ldrh r0, [r4, #0x32] - adds r1, r1, r0 - strh r1, [r4, #0x32] - ldrb r0, [r4, #0xe] - strb r0, [r4, #0xf] -_08089A76: - pop {r4, r5, r6, pc} - .align 2, 0 -_08089A78: .4byte gLinkState - - thumb_func_start sub_08089A7C -sub_08089A7C: @ 0x08089A7C - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xb] - lsls r1, r0, #3 - adds r1, r1, r0 - lsls r1, r1, #2 - ldrh r0, [r4, #0x32] - subs r0, r0, r1 - strh r0, [r4, #0x32] - ldr r5, _08089AB0 @ =gLinkEntity - adds r0, r4, #0 - adds r1, r5, #0 - movs r2, #0xf - movs r3, #0xf - bl sub_080041A0 - cmp r0, #0 - beq _08089AB8 - ldr r2, _08089AB4 @ =gLinkState - movs r0, #1 - strb r0, [r2, #0x14] - ldr r0, [r2, #0x30] - movs r1, #2 - orrs r0, r1 - str r0, [r2, #0x30] - b _08089AD0 - .align 2, 0 -_08089AB0: .4byte gLinkEntity -_08089AB4: .4byte gLinkState -_08089AB8: - movs r2, #1 - strb r2, [r4, #0xc] - ldrh r1, [r4, #0x36] - ldrh r3, [r5, #0x36] - adds r0, r1, r3 - strh r0, [r5, #0x36] - ldrh r0, [r5, #0x32] - subs r0, r0, r1 - strh r0, [r5, #0x32] - adds r0, r5, #0 - adds r0, #0x38 - strb r2, [r0] -_08089AD0: - ldrb r1, [r4, #0xb] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - ldrh r1, [r4, #0x32] - adds r0, r0, r1 - strh r0, [r4, #0x32] - pop {r4, r5, pc} - - thumb_func_start sub_08089AE0 -sub_08089AE0: @ 0x08089AE0 - push {lr} - ldr r1, _08089AF8 @ =gLinkEntity - movs r2, #0xf - movs r3, #0xf - bl sub_080041A0 - cmp r0, #0 - beq _08089AF6 - ldr r1, _08089AFC @ =gLinkState - movs r0, #1 - strb r0, [r1, #0x14] -_08089AF6: - pop {pc} - .align 2, 0 -_08089AF8: .4byte gLinkEntity -_08089AFC: .4byte gLinkState - - thumb_func_start sub_08089B00 -sub_08089B00: @ 0x08089B00 - push {lr} - ldr r2, _08089B14 @ =gUnk_08120DD0 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08089B14: .4byte gUnk_08120DD0 - - thumb_func_start sub_08089B18 -sub_08089B18: @ 0x08089B18 - push {r4, r5, r6, lr} - adds r4, r0, #0 - movs r2, #1 - movs r6, #1 - strb r6, [r4, #0xc] - ldrb r1, [r4, #0x18] - movs r5, #4 - rsbs r5, r5, #0 - adds r0, r5, #0 - ands r0, r1 - orrs r0, r2 - strb r0, [r4, #0x18] - ldrb r0, [r4, #0xb] - cmp r0, #0 - beq _08089B38 - strb r0, [r4, #0xe] -_08089B38: - adds r0, r4, #0 - movs r1, #0 - bl UpdateSprite - ldrb r0, [r4, #0xa] - cmp r0, #2 - beq _08089B66 - cmp r0, #2 - bgt _08089B50 - cmp r0, #1 - beq _08089B5A - b _08089B96 -_08089B50: - cmp r0, #3 - beq _08089B72 - cmp r0, #4 - beq _08089B7C - b _08089B96 -_08089B5A: - ldrh r0, [r4, #0x32] - subs r0, #8 - strh r0, [r4, #0x32] - movs r0, #0x28 - strb r0, [r4, #0xe] - b _08089B96 -_08089B66: - movs r0, #0xf - strb r0, [r4, #0xe] - adds r0, r4, #0 - bl sub_08004168 - b _08089B96 -_08089B72: - ldr r0, [r4, #0x50] - adds r1, r4, #0 - bl CopyPosition - b _08089B96 -_08089B7C: - adds r0, r4, #0 - adds r0, #0x86 - ldrh r0, [r0] - bl sub_0807CBE4 - cmp r0, #0 - bne _08089B96 - ldrb r1, [r4, #0x18] - adds r0, r5, #0 - ands r0, r1 - strb r0, [r4, #0x18] - strb r6, [r4, #0xd] - b _08089B9E -_08089B96: - movs r0, #0x92 - lsls r0, r0, #1 - bl sub_08004488 -_08089B9E: - pop {r4, r5, r6, pc} - - thumb_func_start sub_08089BA0 -sub_08089BA0: @ 0x08089BA0 - push {r4, r5, r6, lr} - adds r5, r0, #0 - bl sub_08004274 - ldrb r0, [r5, #0xa] - cmp r0, #4 - bhi _08089BD0 - lsls r0, r0, #2 - ldr r1, _08089BB8 @ =_08089BBC - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08089BB8: .4byte _08089BBC -_08089BBC: @ jump table - .4byte _08089BD0 @ case 0 - .4byte _08089BD6 @ case 1 - .4byte _08089BD6 @ case 2 - .4byte _08089C4C @ case 3 - .4byte _08089C72 @ case 4 -_08089BD0: - ldrb r0, [r5, #0xb] - cmp r0, #0 - beq _08089CBA -_08089BD6: - ldrb r0, [r5, #0xe] - subs r0, #1 - strb r0, [r5, #0xe] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xff - bne _08089CBA - ldrb r0, [r5, #0xa] - cmp r0, #2 - bne _08089C42 - ldr r0, [r5, #0x54] - ldrh r0, [r0, #6] - movs r2, #0x2e - ldrsh r1, [r5, r2] - ldr r3, _08089C48 @ =gRoomControls - ldrh r2, [r3, #6] - subs r1, r1, r2 - asrs r1, r1, #4 - movs r4, #0x3f - ands r1, r4 - movs r6, #0x32 - ldrsh r2, [r5, r6] - ldrh r3, [r3, #8] - subs r2, r2, r3 - asrs r2, r2, #4 - ands r2, r4 - lsls r2, r2, #6 - orrs r1, r2 - adds r2, r5, #0 - adds r2, #0x38 - ldrb r2, [r2] - bl sub_0807B7D8 - adds r0, r5, #0 - movs r1, #0 - movs r2, #0x10 - bl sub_0807AB44 - subs r4, #0x4f - adds r0, r5, #0 - movs r1, #0 - adds r2, r4, #0 - bl sub_0807AB44 - adds r0, r5, #0 - movs r1, #0x10 - movs r2, #0 - bl sub_0807AB44 - adds r0, r5, #0 - adds r1, r4, #0 - movs r2, #0 - bl sub_0807AB44 -_08089C42: - bl sub_0805E780 - b _08089CBA - .align 2, 0 -_08089C48: .4byte gRoomControls -_08089C4C: - ldr r0, [r5, #0x50] - ldr r0, [r0, #4] - cmp r0, #0 - bne _08089C58 - bl sub_0805E780 -_08089C58: - ldrb r0, [r5, #0xe] - subs r0, #1 - strb r0, [r5, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08089C68 - bl sub_0805E780 -_08089C68: - ldr r0, [r5, #0x50] - adds r1, r5, #0 - bl CopyPosition - b _08089CBA -_08089C72: - adds r0, r5, #0 - adds r0, #0x86 - ldrh r0, [r0] - bl sub_0807CBE4 - adds r1, r0, #0 - ldrb r0, [r5, #0xd] - cmp r0, #0 - bne _08089C96 - cmp r1, #0 - bne _08089CBA - movs r0, #1 - strb r0, [r5, #0xd] - ldrb r1, [r5, #0x18] - subs r0, #5 - ands r0, r1 - strb r0, [r5, #0x18] - b _08089CBA -_08089C96: - cmp r1, #0 - beq _08089CBA - movs r0, #0 - strb r0, [r5, #0xd] - ldrb r1, [r5, #0x18] - subs r0, #4 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r5, #0x18] - adds r0, r5, #0 - movs r1, #0 - bl UpdateSprite - movs r0, #0x92 - lsls r0, r0, #1 - bl sub_08004488 -_08089CBA: - pop {r4, r5, r6, pc} - - thumb_func_start sub_08089CBC -sub_08089CBC: @ 0x08089CBC - push {r4, lr} - adds r4, r0, #0 - ldrb r1, [r4, #0xc] - cmp r1, #0 - bne _08089CDC - movs r0, #1 - strb r0, [r4, #0xc] - str r1, [r4, #0x34] - ldrb r0, [r4, #0x19] - movs r1, #0xc0 - orrs r0, r1 - strb r0, [r4, #0x19] - adds r0, r4, #0 - movs r1, #9 - bl UpdateSprite -_08089CDC: - ldr r1, [r4, #0x50] - ldr r0, [r1, #0x34] - cmp r0, #0 - bne _08089CEA - bl sub_0805E780 - b _08089D02 -_08089CEA: - movs r2, #0x36 - ldrsh r0, [r1, r2] - movs r2, #0x90 - lsls r2, r2, #1 - subs r2, r2, r0 - adds r0, r1, #0 - adds r0, #0x7e - ldrh r3, [r0] - adds r0, r4, #0 - adds r1, r2, #0 - bl sub_0805EC9C -_08089D02: - pop {r4, pc} - - thumb_func_start sub_08089D04 -sub_08089D04: @ 0x08089D04 - push {lr} - ldr r2, _08089D18 @ =gUnk_08120DF4 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08089D18: .4byte gUnk_08120DF4 - - thumb_func_start sub_08089D1C -sub_08089D1C: @ 0x08089D1C - push {r4, r5, r6, lr} - adds r5, r0, #0 - ldrb r1, [r5, #0x19] - movs r4, #0x3f - adds r0, r4, #0 - ands r0, r1 - movs r6, #0x80 - orrs r0, r6 - strb r0, [r5, #0x19] - ldrb r1, [r5, #0x1b] - adds r0, r4, #0 - ands r0, r1 - movs r1, #0x40 - orrs r0, r1 - strb r0, [r5, #0x1b] - adds r0, r5, #0 - movs r1, #4 - bl sub_0805E3A0 - ldrb r0, [r5, #0xa] - cmp r0, #7 - bne _08089D90 - ldrb r1, [r5, #0x10] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _08089D54 - b _08089F06 -_08089D54: - ldrb r0, [r5, #0xb] - cmp r0, #0 - bne _08089D74 - ldrb r0, [r5, #0xe] - cmp r0, #0 - beq _08089D74 - bl sub_0807CBD0 - cmp r0, #0 - bne _08089D6A - b _08089F06 -_08089D6A: - ldrb r1, [r5, #0x1b] - adds r0, r4, #0 - ands r0, r1 - orrs r0, r6 - strb r0, [r5, #0x1b] -_08089D74: - ldr r4, _08089D8C @ =gUnk_08120E3C - ldrb r0, [r5, #0xb] - lsls r0, r0, #2 - adds r0, r0, r4 - ldrb r1, [r0] - adds r0, r5, #0 - bl UpdateSprite - ldrb r0, [r5, #0xb] - lsls r0, r0, #2 - adds r0, r0, r4 - b _08089DCE - .align 2, 0 -_08089D8C: .4byte gUnk_08120E3C -_08089D90: - cmp r0, #0 - beq _08089DAC - ldr r0, _08089DA8 @ =gUnk_08120E14 - ldrb r1, [r5, #0xa] - lsls r1, r1, #2 - adds r1, r1, r0 - ldrb r1, [r1] - adds r0, r5, #0 - bl UpdateSprite - b _08089DC6 - .align 2, 0 -_08089DA8: .4byte gUnk_08120E14 -_08089DAC: - adds r0, r5, #0 - movs r1, #1 - movs r2, #2 - bl sub_080AE008 - ldr r0, _08089E08 @ =gUnk_08120E14 - ldrb r1, [r5, #0xa] - lsls r1, r1, #2 - adds r1, r1, r0 - ldrb r1, [r1] - adds r0, r5, #0 - bl LoadAnimation -_08089DC6: - ldr r1, _08089E08 @ =gUnk_08120E14 - ldrb r0, [r5, #0xa] - lsls r0, r0, #2 - adds r0, r0, r1 -_08089DCE: - ldrb r0, [r0, #1] - adds r3, r5, #0 - adds r3, #0x29 - movs r1, #7 - ands r1, r0 - ldrb r2, [r3] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - movs r2, #1 - movs r0, #1 - strb r0, [r5, #0xc] - ldrb r1, [r5, #0x18] - subs r0, #5 - ands r0, r1 - orrs r0, r2 - strb r0, [r5, #0x18] - ldrb r0, [r5, #0xa] - cmp r0, #1 - bge _08089DFC - b _08089F00 -_08089DFC: - cmp r0, #6 - ble _08089E0C - cmp r0, #7 - beq _08089E1C - b _08089F00 - .align 2, 0 -_08089E08: .4byte gUnk_08120E14 -_08089E0C: - adds r0, r5, #0 - adds r0, #0x60 - movs r2, #0 - movs r1, #0xe0 - lsls r1, r1, #1 - strh r1, [r0] - strb r2, [r5, #0xe] - b _08089F00 -_08089E1C: - ldrb r1, [r5, #0xb] - cmp r1, #3 - bgt _08089E2C - cmp r1, #2 - bge _08089EEC - cmp r1, #0 - beq _08089E32 - b _08089F00 -_08089E2C: - cmp r1, #4 - beq _08089EF8 - b _08089F00 -_08089E32: - movs r0, #0x10 - str r0, [r5, #0x6c] - strb r1, [r5, #0xe] -_08089E38: - movs r0, #0x2c - movs r1, #7 - movs r2, #1 - bl CreateObject - adds r1, r0, #0 - str r1, [r5, #0x54] - cmp r1, #0 - beq _08089EC8 - ldrh r0, [r5, #0x2e] - strh r0, [r1, #0x2e] - ldr r2, [r5, #0x54] - ldr r1, [r5, #0x6c] - ldrh r0, [r5, #0x32] - subs r0, r0, r1 - strh r0, [r2, #0x32] - movs r0, #3 - strb r0, [r5, #0xf] -_08089E5C: - ldrb r0, [r5, #0xe] - lsls r0, r0, #2 - ldr r1, _08089EE4 @ =gUnk_08120DFC - adds r4, r0, r1 - ldrb r2, [r4] - subs r2, #2 - movs r0, #0x2c - movs r1, #7 - bl CreateObject - adds r1, r0, #0 - str r1, [r5, #0x54] - cmp r1, #0 - beq _08089EAA - movs r0, #1 - ldrsb r0, [r4, r0] - ldrh r2, [r5, #0x2e] - adds r0, r0, r2 - strh r0, [r1, #0x2e] - ldr r2, [r5, #0x54] - ldr r1, [r5, #0x6c] - ldrh r0, [r5, #0x32] - subs r0, r0, r1 - movs r1, #2 - ldrsb r1, [r4, r1] - subs r0, r0, r1 - strh r0, [r2, #0x32] - ldr r3, [r5, #0x54] - ldrb r2, [r4, #3] - movs r0, #1 - ands r2, r0 - lsls r2, r2, #6 - ldrb r0, [r3, #0x18] - movs r4, #0x41 - rsbs r4, r4, #0 - adds r1, r4, #0 - ands r0, r1 - orrs r0, r2 - strb r0, [r3, #0x18] -_08089EAA: - ldrb r0, [r5, #0xe] - adds r2, r0, #1 - strb r2, [r5, #0xe] - ldrb r0, [r5, #0xf] - subs r0, #1 - strb r0, [r5, #0xf] - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - bne _08089E5C - lsls r0, r2, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #5 - bls _08089EC8 - strb r1, [r5, #0xe] -_08089EC8: - ldr r0, [r5, #0x6c] - adds r0, #0x38 - str r0, [r5, #0x6c] - ldrh r1, [r5, #0x32] - subs r1, r1, r0 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - ldr r0, _08089EE8 @ =gRoomControls - ldrh r0, [r0, #8] - cmp r1, r0 - bge _08089E38 - movs r0, #1 - strb r0, [r5, #0xe] - b _08089F00 - .align 2, 0 -_08089EE4: .4byte gUnk_08120DFC -_08089EE8: .4byte gRoomControls -_08089EEC: - ldrb r0, [r5, #0x19] - movs r1, #0x3f - ands r1, r0 - movs r0, #0x40 - orrs r1, r0 - strb r1, [r5, #0x19] -_08089EF8: - adds r1, r5, #0 - adds r1, #0x38 - movs r0, #3 - strb r0, [r1] -_08089F00: - adds r0, r5, #0 - bl sub_08089F08 -_08089F06: - pop {r4, r5, r6, pc} - - thumb_func_start sub_08089F08 -sub_08089F08: @ 0x08089F08 - push {lr} - ldr r2, _08089F1C @ =gUnk_08120E50 - ldrb r1, [r0, #0xa] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08089F1C: .4byte gUnk_08120E50 - - thumb_func_start sub_08089F20 -sub_08089F20: @ 0x08089F20 - push {lr} - ldr r2, _08089F34 @ =gUnk_08120E78 - ldrb r1, [r0, #0xd] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08089F34: .4byte gUnk_08120E78 - - thumb_func_start sub_08089F38 -sub_08089F38: @ 0x08089F38 - push {r4, lr} - adds r4, r0, #0 - bl sub_080042B8 - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08089F6C - ldrb r0, [r4, #0xe] - cmp r0, #1 - bhi _08089F5A - adds r0, #1 - strb r0, [r4, #0xe] - b _08089F6C -_08089F5A: - adds r0, r4, #0 - movs r1, #1 - bl LoadAnimation - movs r0, #0x10 - strb r0, [r4, #0xe] - ldrb r0, [r4, #0xd] - adds r0, #1 - strb r0, [r4, #0xd] -_08089F6C: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08089F70 -sub_08089F70: @ 0x08089F70 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xff - bne _08089F8E - movs r0, #0x10 - strb r0, [r4, #0xe] - movs r0, #0xcc - lsls r0, r0, #1 - bl PlaySFX -_08089F8E: - adds r0, r4, #0 - bl sub_080042B8 - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08089FEC - movs r0, #0x2c - movs r1, #1 - movs r2, #0 - bl CreateObject - adds r1, r0, #0 - str r1, [r4, #0x54] - cmp r1, #0 - beq _08089FBE - ldrh r0, [r4, #0x2e] - strh r0, [r1, #0x2e] - ldr r1, [r4, #0x54] - ldrh r0, [r4, #0x32] - strh r0, [r1, #0x32] -_08089FBE: - movs r0, #0x2c - movs r1, #2 - movs r2, #0 - bl CreateObject - adds r1, r0, #0 - str r1, [r4, #0x54] - cmp r1, #0 - beq _08089FDC - ldrh r0, [r4, #0x2e] - strh r0, [r1, #0x2e] - ldr r1, [r4, #0x54] - ldrh r0, [r4, #0x32] - subs r0, #0x10 - strh r0, [r1, #0x32] -_08089FDC: - ldrb r0, [r4, #0x18] - movs r1, #4 - rsbs r1, r1, #0 - ands r1, r0 - strb r1, [r4, #0x18] - ldrb r0, [r4, #0xd] - adds r0, #1 - strb r0, [r4, #0xd] -_08089FEC: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08089FF0 -sub_08089FF0: @ 0x08089FF0 - push {lr} - adds r1, r0, #0 - ldrb r0, [r1, #0xe] - subs r0, #1 - strb r0, [r1, #0xe] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xff - bne _0808A00E - movs r0, #0x10 - strb r0, [r1, #0xe] - movs r0, #0xcc - lsls r0, r0, #1 - bl PlaySFX -_0808A00E: - pop {pc} - - thumb_func_start sub_0808A010 -sub_0808A010: @ 0x0808A010 - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_08004274 - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0808A07E - ldrb r0, [r4, #0xe] - lsls r0, r0, #2 - ldr r1, _0808A0BC @ =gUnk_08120DFC - adds r5, r0, r1 - ldrb r1, [r5] - movs r0, #0x2c - movs r2, #0 - bl CreateObject - adds r1, r0, #0 - str r1, [r4, #0x54] - cmp r1, #0 - beq _0808A06C - movs r0, #1 - ldrsb r0, [r5, r0] - ldrh r2, [r4, #0x2e] - adds r0, r0, r2 - strh r0, [r1, #0x2e] - ldr r2, [r4, #0x54] - movs r1, #2 - ldrsb r1, [r5, r1] - ldrh r0, [r4, #0x32] - subs r0, r0, r1 - strh r0, [r2, #0x32] - ldr r3, [r4, #0x54] - ldrb r1, [r5, #3] - movs r0, #1 - ands r1, r0 - lsls r1, r1, #6 - ldrb r2, [r3, #0x18] - movs r0, #0x41 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3, #0x18] -_0808A06C: - ldrb r0, [r4, #0xe] - adds r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #5 - bls _0808A07E - movs r0, #0 - strb r0, [r4, #0xe] -_0808A07E: - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0808A0BA - movs r0, #0x2c - movs r1, #3 - movs r2, #0 - bl CreateObject - adds r1, r0, #0 - str r1, [r4, #0x54] - cmp r1, #0 - beq _0808A0A8 - ldrh r0, [r4, #0x2e] - strh r0, [r1, #0x2e] - ldr r1, [r4, #0x54] - ldrh r0, [r4, #0x32] - strh r0, [r1, #0x32] -_0808A0A8: - ldrh r0, [r4, #0x32] - subs r0, #0x38 - strh r0, [r4, #0x32] - lsls r0, r0, #0x10 - cmp r0, #0 - bge _0808A0BA - adds r0, r4, #0 - bl sub_0805E7BC -_0808A0BA: - pop {r4, r5, pc} - .align 2, 0 -_0808A0BC: .4byte gUnk_08120DFC - - thumb_func_start sub_0808A0C0 -sub_0808A0C0: @ 0x0808A0C0 - push {lr} - adds r2, r0, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _0808A0D6 - adds r0, r2, #0 - bl sub_08004274 -_0808A0D6: - pop {pc} - - thumb_func_start nullsub_517 -nullsub_517: @ 0x0808A0D8 - bx lr - .align 2, 0 - - thumb_func_start sub_0808A0DC -sub_0808A0DC: @ 0x0808A0DC - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r5, r0, #0 - ldrb r0, [r5, #0xb] - cmp r0, #1 - bne _0808A0EC - b _0808A202 -_0808A0EC: - cmp r0, #1 - bgt _0808A0F6 - cmp r0, #0 - beq _0808A120 - b _0808A202 -_0808A0F6: - cmp r0, #4 - ble _0808A0FC - b _0808A202 -_0808A0FC: - ldr r0, _0808A118 @ =gLinkState - ldrb r0, [r0, #0x12] - cmp r0, #0x1e - bne _0808A1DA - ldr r1, _0808A11C @ =gLinkEntity - adds r0, r5, #0 - movs r2, #0 - movs r3, #8 - bl sub_080041A0 - cmp r0, #0 - beq _0808A1DC - b _0808A1B0 - .align 2, 0 -_0808A118: .4byte gLinkState -_0808A11C: .4byte gLinkEntity -_0808A120: - ldrb r0, [r5, #0xe] - cmp r0, #0 - beq _0808A202 - ldr r4, _0808A1A8 @ =gRoomControls - ldrh r0, [r4, #8] - str r0, [r5, #0x6c] - movs r2, #0x2e - ldrsh r1, [r5, r2] - ldrh r2, [r4, #6] - subs r1, r1, r2 - asrs r1, r1, #4 - movs r3, #0x3f - ands r1, r3 - ldrh r2, [r4, #8] - subs r0, r0, r2 - lsrs r0, r0, #4 - ands r0, r3 - lsls r0, r0, #6 - orrs r1, r0 - adds r0, r5, #0 - adds r0, #0x70 - strh r1, [r0] - adds r6, r4, #0 - mov r8, r3 - adds r4, r0, #0 - ldr r7, _0808A1AC @ =0x00004017 -_0808A154: - movs r0, #0x2e - ldrsh r1, [r5, r0] - ldrh r0, [r6, #6] - subs r1, r1, r0 - asrs r1, r1, #4 - mov r2, r8 - ands r1, r2 - ldrh r2, [r6, #8] - ldr r0, [r5, #0x6c] - subs r0, r0, r2 - lsrs r0, r0, #4 - mov r2, r8 - ands r0, r2 - lsls r0, r0, #6 - orrs r1, r0 - strh r1, [r4] - ldrh r1, [r4] - adds r0, r7, #0 - movs r2, #2 - bl sub_0800015E - ldrh r1, [r4] - adds r0, r7, #0 - movs r2, #1 - bl sub_0800015E - ldr r0, [r5, #0x6c] - adds r2, r0, #0 - adds r2, #0x10 - str r2, [r5, #0x6c] - ldrh r0, [r6, #8] - ldrh r1, [r6, #0x20] - adds r0, r0, r1 - cmp r2, r0 - bhs _0808A1A2 - movs r1, #0x32 - ldrsh r0, [r5, r1] - cmp r2, r0 - bls _0808A154 -_0808A1A2: - movs r0, #0 - strb r0, [r5, #0xe] - b _0808A202 - .align 2, 0 -_0808A1A8: .4byte gRoomControls -_0808A1AC: .4byte 0x00004017 -_0808A1B0: - adds r3, r5, #0 - adds r3, #0x58 - ldrb r2, [r3] - ldrb r1, [r5, #0xb] - subs r1, #1 - lsls r0, r1, #1 - adds r0, r0, r1 - adds r0, #1 - cmp r2, r0 - bne _0808A1DE - ldrb r0, [r5, #0xe] - cmp r0, #0 - bne _0808A1DE - movs r0, #1 - strb r0, [r5, #0xe] - ldrb r1, [r3] - adds r1, #1 - adds r0, r5, #0 - bl UpdateSprite - b _0808A1DE -_0808A1DA: - movs r0, #0 -_0808A1DC: - strb r0, [r5, #0xe] -_0808A1DE: - adds r0, r5, #0 - bl sub_08004274 - adds r0, r5, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0808A202 - ldrb r0, [r5, #0xb] - subs r0, #1 - lsls r1, r0, #1 - adds r1, r1, r0 - adds r1, #1 - adds r0, r5, #0 - bl UpdateSprite -_0808A202: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_0808A208 -sub_0808A208: @ 0x0808A208 - push {lr} - ldr r2, _0808A21C @ =gUnk_08120E84 - ldrb r1, [r0, #0xd] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0808A21C: .4byte gUnk_08120E84 - - thumb_func_start sub_0808A220 -sub_0808A220: @ 0x0808A220 - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - ldrb r1, [r4, #0x1b] - movs r6, #0x3f - adds r0, r6, #0 - ands r0, r1 - movs r5, #0x80 - orrs r0, r5 - strb r0, [r4, #0x1b] - movs r0, #0x2e - ldrsh r1, [r4, r0] - ldr r2, _0808A2E4 @ =gRoomControls - ldrh r0, [r2, #6] - subs r1, r1, r0 - asrs r1, r1, #4 - movs r3, #0x3f - ands r1, r3 - movs r7, #0x32 - ldrsh r0, [r4, r7] - ldrh r2, [r2, #8] - subs r0, r0, r2 - asrs r0, r0, #4 - ands r0, r3 - lsls r0, r0, #6 - orrs r1, r0 - adds r2, r4, #0 - adds r2, #0x70 - strh r1, [r2] - ldr r0, _0808A2E8 @ =0x00004017 - ldrh r1, [r2] - movs r2, #1 - bl sub_0800015E - movs r7, #1 - strb r7, [r4, #0xd] - adds r0, r4, #0 - movs r1, #0x15 - movs r2, #0 - movs r3, #0 - bl CreateObjectWithParent - adds r3, r0, #0 - cmp r3, #0 - beq _0808A2D4 - ldrh r0, [r4, #0x32] - adds r0, #0x38 - strh r0, [r3, #0x32] - ldrh r0, [r4, #0x12] - strh r0, [r3, #0x12] - adds r0, r4, #0 - adds r0, #0x60 - ldrh r1, [r0] - adds r0, r3, #0 - adds r0, #0x60 - strh r1, [r0] - ldrb r1, [r4, #0x1a] - lsls r1, r1, #0x1c - lsrs r1, r1, #0x1c - ldrb r2, [r3, #0x1a] - movs r0, #0x10 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3, #0x1a] - adds r1, r3, #0 - adds r1, #0x58 - movs r0, #2 - strb r0, [r1] - movs r0, #0x80 - strb r0, [r3, #0xe] - strb r7, [r3, #0xa] - ldrb r1, [r3, #0x19] - adds r0, r6, #0 - ands r0, r1 - orrs r0, r5 - strb r0, [r3, #0x19] - adds r2, r3, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #6 - orrs r0, r1 - strb r0, [r2] - ldrb r1, [r3, #0x1b] - adds r0, r6, #0 - ands r0, r1 - orrs r0, r5 - strb r0, [r3, #0x1b] -_0808A2D4: - adds r0, r4, #0 - movs r1, #0x2c - movs r2, #9 - movs r3, #0 - bl CreateObjectWithParent - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0808A2E4: .4byte gRoomControls -_0808A2E8: .4byte 0x00004017 - - thumb_func_start nullsub_518 -nullsub_518: @ 0x0808A2EC - bx lr - .align 2, 0 - - thumb_func_start sub_0808A2F0 -sub_0808A2F0: @ 0x0808A2F0 - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - ldrb r0, [r5, #0xd] - cmp r0, #0 - bne _0808A316 - movs r0, #1 - strb r0, [r5, #0xd] - ldrh r0, [r5, #0x32] - adds r0, #0x28 - strh r0, [r5, #0x32] - movs r2, #0x18 - rsbs r2, r2, #0 - adds r0, r5, #0 - movs r1, #0 - bl sub_0800029C - adds r1, r5, #0 - adds r1, #0x72 - strh r0, [r1] -_0808A316: - ldr r3, _0808A38C @ =gLinkEntity - ldrb r1, [r3, #0x1b] - lsrs r1, r1, #6 - lsls r1, r1, #6 - ldrb r2, [r5, #0x1b] - movs r7, #0x3f - adds r0, r7, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r5, #0x1b] - ldrb r1, [r3, #0x19] - lsrs r1, r1, #6 - lsls r1, r1, #6 - ldrb r2, [r5, #0x19] - adds r0, r7, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r5, #0x19] - ldr r0, _0808A390 @ =gLinkState - ldrb r0, [r0, #0x12] - cmp r0, #0x1e - bne _0808A39C - adds r2, r5, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2] - movs r2, #0x18 - rsbs r2, r2, #0 - adds r0, r5, #0 - movs r1, #0 - bl sub_0800029C - ldr r3, _0808A394 @ =0x00004014 - cmp r0, r3 - beq _0808A3EC - movs r0, #0x2e - ldrsh r1, [r5, r0] - ldr r2, _0808A398 @ =gRoomControls - ldrh r0, [r2, #6] - subs r1, r1, r0 - asrs r1, r1, #4 - ands r1, r7 - movs r4, #0x32 - ldrsh r0, [r5, r4] - ldrh r2, [r2, #8] - adds r2, #0x18 - subs r0, r0, r2 - asrs r0, r0, #4 - ands r0, r7 - lsls r0, r0, #6 - orrs r1, r0 - adds r0, r3, #0 - movs r2, #1 - bl sub_0800015E - b _0808A3EC - .align 2, 0 -_0808A38C: .4byte gLinkEntity -_0808A390: .4byte gLinkState -_0808A394: .4byte 0x00004014 -_0808A398: .4byte gRoomControls -_0808A39C: - adds r2, r5, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #5 - orrs r0, r1 - strb r0, [r2] - adds r6, r5, #0 - adds r6, #0x72 - ldrh r4, [r6] - movs r2, #0x18 - rsbs r2, r2, #0 - adds r0, r5, #0 - movs r1, #0 - bl sub_0800029C - cmp r4, r0 - beq _0808A3EC - ldrh r0, [r6] - movs r2, #0x2e - ldrsh r1, [r5, r2] - ldr r3, _0808A3F0 @ =gRoomControls - ldrh r2, [r3, #6] - subs r1, r1, r2 - asrs r1, r1, #4 - ands r1, r7 - movs r4, #0x32 - ldrsh r2, [r5, r4] - ldrh r3, [r3, #8] - adds r3, #0x18 - subs r2, r2, r3 - asrs r2, r2, #4 - ands r2, r7 - lsls r2, r2, #6 - orrs r1, r2 - movs r2, #1 - bl sub_0800015E -_0808A3EC: - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0808A3F0: .4byte gRoomControls - - thumb_func_start sub_0808A3F4 -sub_0808A3F4: @ 0x0808A3F4 - push {lr} - ldr r2, _0808A408 @ =gUnk_08121060 - ldrb r1, [r0, #0xa] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0808A408: .4byte gUnk_08121060 - - thumb_func_start sub_0808A40C -sub_0808A40C: @ 0x0808A40C - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0808A41E - movs r0, #1 - strb r0, [r4, #0xc] - movs r0, #0x28 - strb r0, [r4, #0xe] -_0808A41E: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0808A466 - bl Random - movs r1, #0x1f - ands r0, r1 - movs r1, #0x40 - subs r1, r1, r0 - strb r1, [r4, #0xe] - movs r0, #0x2d - movs r1, #1 - movs r2, #0 - bl CreateObject - adds r5, r0, #0 - cmp r5, #0 - beq _0808A466 - adds r0, r4, #0 - adds r1, r5, #0 - bl CopyPosition - bl Random - ldr r2, _0808A468 @ =gUnk_08121068 - movs r1, #7 - ands r1, r0 - adds r1, r1, r2 - movs r0, #0 - ldrsb r0, [r1, r0] - ldrh r1, [r5, #0x2e] - adds r0, r0, r1 - strh r0, [r5, #0x2e] -_0808A466: - pop {r4, r5, pc} - .align 2, 0 -_0808A468: .4byte gUnk_08121068 - - thumb_func_start sub_0808A46C -sub_0808A46C: @ 0x0808A46C - push {lr} - ldr r2, _0808A480 @ =gUnk_08121070 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0808A480: .4byte gUnk_08121070 - - thumb_func_start sub_0808A484 -sub_0808A484: @ 0x0808A484 - push {r4, lr} - movs r3, #1 - movs r1, #1 - strb r1, [r0, #0xc] - ldrb r2, [r0, #0x18] - subs r1, #5 - ands r1, r2 - orrs r1, r3 - strb r1, [r0, #0x18] - movs r1, #0x40 - strh r1, [r0, #0x24] - movs r1, #6 - strb r1, [r0, #0x15] - ldrb r3, [r0, #0x19] - movs r2, #0x3f - adds r1, r2, #0 - ands r1, r3 - movs r4, #0x40 - orrs r1, r4 - strb r1, [r0, #0x19] - movs r1, #0x29 - adds r1, r1, r0 - mov ip, r1 - ldrb r3, [r1] - movs r1, #8 - rsbs r1, r1, #0 - ands r1, r3 - mov r3, ip - strb r1, [r3] - ldrb r1, [r0, #0x1b] - ands r2, r1 - orrs r2, r4 - strb r2, [r0, #0x1b] - movs r1, #0x28 - bl UpdateSprite - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0808A4D0 -sub_0808A4D0: @ 0x0808A4D0 - push {r4, lr} - adds r4, r0, #0 - bl sub_08004274 - adds r0, r4, #0 - bl sub_0806F69C - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0808A4F2 - adds r0, r4, #0 - bl sub_0805E7BC -_0808A4F2: - pop {r4, pc} - - thumb_func_start sub_0808A4F4 -sub_0808A4F4: @ 0x0808A4F4 - push {lr} - ldr r2, _0808A508 @ =gUnk_08121078 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0808A508: .4byte gUnk_08121078 - - thumb_func_start sub_0808A50C -sub_0808A50C: @ 0x0808A50C - push {lr} - ldrb r2, [r0, #0x18] - movs r1, #4 - rsbs r1, r1, #0 - ands r1, r2 - movs r2, #1 - orrs r1, r2 - strb r1, [r0, #0x18] - ldrb r1, [r0, #0xc] - adds r1, #1 - strb r1, [r0, #0xc] - ldrb r2, [r0, #0x19] - movs r1, #0x3f - ands r1, r2 - movs r2, #0x80 - orrs r1, r2 - strb r1, [r0, #0x19] - adds r3, r0, #0 - adds r3, #0x29 - ldrb r2, [r3] - movs r1, #8 - rsbs r1, r1, #0 - ands r1, r2 - movs r2, #4 - orrs r1, r2 - movs r2, #0x39 - rsbs r2, r2, #0 - ands r1, r2 - movs r2, #0x18 - orrs r1, r2 - strb r1, [r3] - bl sub_0808A644 - pop {pc} - - thumb_func_start sub_0808A550 -sub_0808A550: @ 0x0808A550 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x74 - ldrh r0, [r0] - adds r1, r4, #0 - adds r1, #0x38 - ldrb r1, [r1] - bl sub_080002B0 - adds r1, r0, #0 - ldr r0, _0808A58C @ =0x0000401F - cmp r1, r0 - bhi _0808A5CC - subs r0, #3 - cmp r1, r0 - blo _0808A5CC - adds r0, r1, #0 - subs r0, #0x1c - lsls r1, r0, #1 - strb r1, [r4, #0x14] - lsls r1, r0, #3 - strb r1, [r4, #0x15] - lsls r0, r0, #0x19 - lsrs r0, r0, #0x18 - cmp r0, #2 - bne _0808A590 - ldrb r0, [r4, #0x18] - movs r1, #0x40 - orrs r0, r1 - b _0808A598 - .align 2, 0 -_0808A58C: .4byte 0x0000401F -_0808A590: - ldrb r1, [r4, #0x18] - movs r0, #0x41 - rsbs r0, r0, #0 - ands r0, r1 -_0808A598: - strb r0, [r4, #0x18] - adds r0, r4, #0 - adds r0, #0x70 - ldrh r0, [r0] - adds r1, r4, #0 - adds r1, #0x74 - ldrh r1, [r1] - adds r2, r4, #0 - adds r2, #0x38 - ldrb r2, [r2] - bl sub_0800015E - movs r0, #2 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x14] - lsrs r1, r1, #1 - adds r1, #1 - adds r0, r4, #0 - bl UpdateSprite - ldr r0, _0808A5C8 @ =0x0000010F - bl sub_08004488 - b _0808A5DE - .align 2, 0 -_0808A5C8: .4byte 0x0000010F -_0808A5CC: - adds r0, r4, #0 - adds r0, #0x58 - ldrb r0, [r0] - cmp r0, #0 - beq _0808A5DE - adds r0, r4, #0 - movs r1, #0 - bl UpdateSprite -_0808A5DE: - pop {r4, pc} - - thumb_func_start sub_0808A5E0 -sub_0808A5E0: @ 0x0808A5E0 - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_0800445C - ldr r2, _0808A618 @ =gUnk_08121088 - adds r5, r4, #0 - adds r5, #0x5a - ldrb r1, [r5] - movs r0, #0xf - ands r0, r1 - lsls r0, r0, #1 - adds r0, r0, r2 - ldrh r0, [r0] - strh r0, [r4, #0x24] - adds r0, r4, #0 - bl sub_0806F69C - adds r0, r4, #0 - bl sub_08004274 - ldrb r1, [r5] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0808A616 - movs r0, #0 - strb r0, [r4, #0xc] -_0808A616: - pop {r4, r5, pc} - .align 2, 0 -_0808A618: .4byte gUnk_08121088 - - thumb_func_start sub_0808A61C -sub_0808A61C: @ 0x0808A61C - push {lr} - adds r2, r0, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _0808A634 - adds r0, r2, #0 - bl sub_08004274 - b _0808A640 -_0808A634: - adds r0, r2, #0 - adds r0, #0x29 - ldrb r1, [r0] - movs r2, #7 - orrs r1, r2 - strb r1, [r0] -_0808A640: - pop {pc} - .align 2, 0 - - thumb_func_start sub_0808A644 -sub_0808A644: @ 0x0808A644 - push {r4, r5, r6, lr} - adds r4, r0, #0 - movs r0, #0x2e - ldrsh r1, [r4, r0] - ldr r2, _0808A6D0 @ =gRoomControls - ldrh r0, [r2, #6] - subs r1, r1, r0 - asrs r1, r1, #4 - movs r3, #0x3f - ands r1, r3 - movs r5, #0x32 - ldrsh r0, [r4, r5] - ldrh r2, [r2, #8] - subs r0, r0, r2 - asrs r0, r0, #4 - ands r0, r3 - lsls r0, r0, #6 - orrs r1, r0 - adds r5, r4, #0 - adds r5, #0x74 - strh r1, [r5] - ldrh r0, [r5] - adds r6, r4, #0 - adds r6, #0x38 - ldrb r1, [r6] - bl sub_080001DA - adds r1, r4, #0 - adds r1, #0x70 - strh r0, [r1] - ldrh r0, [r5] - ldrb r1, [r6] - bl sub_080002E0 - adds r1, r4, #0 - adds r1, #0x72 - strb r0, [r1] - ldrh r0, [r5] - ldrb r1, [r6] - bl sub_080002C8 - cmp r0, #0x19 - beq _0808A69E - cmp r0, #0xf0 - bne _0808A6E2 -_0808A69E: - ldr r0, _0808A6D4 @ =0x00004015 - ldrh r1, [r5] - ldrb r2, [r6] - bl sub_0800015E - movs r0, #3 - strb r0, [r4, #0xc] - adds r5, r4, #0 - adds r5, #0x86 - ldrh r0, [r5] - bl sub_0807CBE4 - cmp r0, #0 - bne _0808A6D8 - ldrh r0, [r5] - bl sub_0807CCC8 - movs r0, #0xcd - bl PlaySFX - adds r0, r4, #0 - movs r1, #5 - bl UpdateSprite - b _0808A6EC - .align 2, 0 -_0808A6D0: .4byte gRoomControls -_0808A6D4: .4byte 0x00004015 -_0808A6D8: - adds r0, r4, #0 - movs r1, #6 - bl UpdateSprite - b _0808A6EC -_0808A6E2: - ldr r0, _0808A6F0 @ =0x0000401B - ldrh r1, [r5] - ldrb r2, [r6] - bl sub_0800015E -_0808A6EC: - pop {r4, r5, r6, pc} - .align 2, 0 -_0808A6F0: .4byte 0x0000401B - - thumb_func_start sub_0808A6F4 -sub_0808A6F4: @ 0x0808A6F4 - push {lr} - adds r2, r0, #0 - adds r0, #0x3d - movs r1, #0 - ldrsb r1, [r0, r1] - cmp r1, #0 - bne _0808A706 - adds r0, #0x33 - strh r1, [r0] -_0808A706: - ldr r0, _0808A718 @ =gUnk_08121178 - ldrb r1, [r2, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r2, #0 - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0808A718: .4byte gUnk_08121178 - - thumb_func_start sub_0808A71C -sub_0808A71C: @ 0x0808A71C - push {r4, r5, lr} - adds r4, r0, #0 - movs r5, #1 - strb r5, [r4, #0xc] - ldrb r1, [r4, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r4, #0x10] - adds r1, r4, #0 - adds r1, #0x3c - movs r0, #7 - strb r0, [r1] - adds r1, #3 - movs r0, #0x8f - strb r0, [r1] - subs r1, #4 - movs r0, #0xa - strb r0, [r1] - ldr r0, _0808A75C @ =gUnk_08121180 - str r0, [r4, #0x48] - ldrb r0, [r4, #0xa] - cmp r0, #0 - bne _0808A764 - adds r0, r4, #0 - adds r0, #0x86 - ldrh r0, [r0] - bl sub_0807CBE4 - cmp r0, #0 - beq _0808A760 - strb r5, [r4, #0xa] - b _0808A76E - .align 2, 0 -_0808A75C: .4byte gUnk_08121180 -_0808A760: - strb r0, [r4, #0xa] - b _0808A76E -_0808A764: - adds r0, r4, #0 - adds r0, #0x86 - ldrh r0, [r0] - bl sub_0807CCC8 -_0808A76E: - adds r0, r4, #0 - bl sub_0808A7D8 - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_0808A778 -sub_0808A778: @ 0x0808A778 - push {r4, r5, lr} - adds r5, r0, #0 - adds r0, #0x41 - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0808A7D0 - adds r1, r5, #0 - adds r1, #0x70 - ldrh r0, [r1] - cmp r0, #0 - bne _0808A7D0 - movs r0, #1 - strh r0, [r1] - ldrb r0, [r5, #0xa] - movs r1, #1 - eors r0, r1 - strb r0, [r5, #0xa] - adds r1, r5, #0 - adds r1, #0x3d - movs r0, #0xe8 - strb r0, [r1] - adds r0, r5, #0 - bl sub_0808A7D8 - adds r4, r5, #0 - adds r4, #0x86 - ldrh r0, [r4] - bl sub_0807CBE4 - cmp r0, #0 - beq _0808A7C2 - ldrh r0, [r4] - bl sub_0807CD48 - b _0808A7C8 -_0808A7C2: - ldrh r0, [r4] - bl sub_0807CCC8 -_0808A7C8: - ldr r1, _0808A7D4 @ =0x00000117 - adds r0, r5, #0 - bl sub_0800449C -_0808A7D0: - pop {r4, r5, pc} - .align 2, 0 -_0808A7D4: .4byte 0x00000117 - - thumb_func_start sub_0808A7D8 -sub_0808A7D8: @ 0x0808A7D8 - push {r4, r5, r6, lr} - adds r5, r0, #0 - ldrb r0, [r5, #0xa] - cmp r0, #0 - beq _0808A818 - movs r0, #0xde - lsls r0, r0, #2 - movs r2, #0x2e - ldrsh r1, [r5, r2] - ldr r3, _0808A814 @ =gRoomControls - ldrh r2, [r3, #6] - subs r1, r1, r2 - asrs r1, r1, #4 - movs r4, #0x3f - ands r1, r4 - movs r6, #0x32 - ldrsh r2, [r5, r6] - ldrh r3, [r3, #8] - subs r2, r2, r3 - asrs r2, r2, #4 - ands r2, r4 - lsls r2, r2, #6 - orrs r1, r2 - adds r2, r5, #0 - adds r2, #0x38 - ldrb r2, [r2] - bl sub_0807B7D8 - b _0808A844 - .align 2, 0 -_0808A814: .4byte gRoomControls -_0808A818: - ldr r0, _0808A848 @ =0x00000377 - movs r2, #0x2e - ldrsh r1, [r5, r2] - ldr r3, _0808A84C @ =gRoomControls - ldrh r2, [r3, #6] - subs r1, r1, r2 - asrs r1, r1, #4 - movs r4, #0x3f - ands r1, r4 - movs r6, #0x32 - ldrsh r2, [r5, r6] - ldrh r3, [r3, #8] - subs r2, r2, r3 - asrs r2, r2, #4 - ands r2, r4 - lsls r2, r2, #6 - orrs r1, r2 - adds r2, r5, #0 - adds r2, #0x38 - ldrb r2, [r2] - bl sub_0807B7D8 -_0808A844: - pop {r4, r5, r6, pc} - .align 2, 0 -_0808A848: .4byte 0x00000377 -_0808A84C: .4byte gRoomControls - - thumb_func_start sub_0808A850 -sub_0808A850: @ 0x0808A850 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _0808A86C @ =gUnk_08121188 - ldrb r0, [r4, #0xc] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - adds r0, r4, #0 - bl sub_08080CB4 - pop {r4, pc} - .align 2, 0 -_0808A86C: .4byte gUnk_08121188 - - thumb_func_start sub_0808A870 -sub_0808A870: @ 0x0808A870 - push {r4, r5, lr} - adds r5, r0, #0 - ldrb r0, [r5, #0xa] - cmp r0, #1 - beq _0808A8BE - cmp r0, #1 - bgt _0808A884 - cmp r0, #0 - beq _0808A896 - b _0808A8C4 -_0808A884: - cmp r0, #3 - bgt _0808A8C4 - adds r0, r5, #0 - bl sub_0808A968 - adds r0, r5, #0 - bl sub_0808A8E0 - b _0808A8C4 -_0808A896: - adds r0, r5, #0 - adds r0, #0x38 - ldrb r0, [r0] - bl sub_0808094C - adds r4, r0, #0 - adds r0, r5, #0 - bl sub_0806F798 - lsls r0, r0, #1 - adds r0, #4 - adds r4, r4, r0 - str r4, [r5, #0x6c] - ldrh r1, [r4] - adds r0, r5, #0 - adds r0, #0x68 - strh r1, [r0] - movs r0, #1 - strb r0, [r5, #0xc] - b _0808A8C4 -_0808A8BE: - adds r0, r5, #0 - bl sub_0808A968 -_0808A8C4: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_0808A8C8 -sub_0808A8C8: @ 0x0808A8C8 - push {lr} - adds r2, r0, #0 - adds r0, #0x68 - ldr r1, [r2, #0x6c] - ldrh r0, [r0] - ldrh r1, [r1] - cmp r0, r1 - beq _0808A8DE - adds r0, r2, #0 - bl sub_0808A968 -_0808A8DE: - pop {pc} - - thumb_func_start sub_0808A8E0 -sub_0808A8E0: @ 0x0808A8E0 - push {r4, lr} - adds r4, r0, #0 - ldrb r2, [r4, #0xa] - cmp r2, #0 - beq _0808A8F0 - cmp r2, #1 - beq _0808A930 - b _0808A954 -_0808A8F0: - ldr r0, [r4, #0x70] - cmp r0, #0 - beq _0808A930 - ldr r3, [r4, #0x20] - cmp r3, #0 - bge _0808A926 - movs r0, #0x36 - ldrsh r1, [r4, r0] - movs r0, #8 - rsbs r0, r0, #0 - cmp r1, r0 - ble _0808A90C - str r2, [r4, #0x70] - b _0808A926 -_0808A90C: - ldr r0, _0808A918 @ =0xFFFFC000 - cmp r3, r0 - bge _0808A920 - ldr r0, _0808A91C @ =0xFFFFFC00 - b _0808A924 - .align 2, 0 -_0808A918: .4byte 0xFFFFC000 -_0808A91C: .4byte 0xFFFFFC00 -_0808A920: - movs r0, #0x80 - lsls r0, r0, #3 -_0808A924: - str r0, [r4, #0x70] -_0808A926: - ldr r1, [r4, #0x70] - adds r0, r4, #0 - bl sub_08003FC4 - b _0808A962 -_0808A930: - ldr r2, _0808A964 @ =gUnk_08121194 - ldrb r0, [r4, #0xf] - adds r1, r0, #1 - strb r1, [r4, #0xf] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x1b - movs r1, #7 - ands r0, r1 - adds r0, r0, r2 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - strh r0, [r4, #0x36] - adds r0, r4, #0 - bl sub_08017850 - cmp r0, #0 - beq _0808A962 -_0808A954: - ldrb r1, [r4, #0xb] - movs r0, #0x5c - movs r2, #0 - bl sub_080A7C00 - bl sub_0805E780 -_0808A962: - pop {r4, pc} - .align 2, 0 -_0808A964: .4byte gUnk_08121194 - - thumb_func_start sub_0808A968 -sub_0808A968: @ 0x0808A968 - push {r4, lr} - adds r4, r0, #0 - movs r0, #2 - strb r0, [r4, #0xc] - movs r0, #0x1e - strb r0, [r4, #0xe] - ldrb r1, [r4, #0x18] - subs r0, #0x22 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] - movs r0, #0xa0 - lsls r0, r0, #0xa - str r0, [r4, #0x20] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #0x39 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #0x18 - orrs r0, r1 - strb r0, [r2] - ldrb r1, [r4, #0x18] - movs r0, #0x31 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #0x18] - adds r2, #0x13 - ldrb r1, [r2] - movs r0, #0x10 - orrs r0, r1 - strb r0, [r2] - ldr r0, _0808A9C0 @ =gUnk_08121C58 - str r0, [r4, #0x48] - adds r0, r4, #0 - movs r1, #2 - bl sub_0805E3A0 - movs r0, #0xa0 - lsls r0, r0, #6 - str r0, [r4, #0x70] - pop {r4, pc} - .align 2, 0 -_0808A9C0: .4byte gUnk_08121C58 - - thumb_func_start sub_0808A9C4 -sub_0808A9C4: @ 0x0808A9C4 - push {lr} - ldr r2, _0808A9D8 @ =gUnk_0812119C - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0808A9D8: .4byte gUnk_0812119C - - thumb_func_start sub_0808A9DC -sub_0808A9DC: @ 0x0808A9DC - movs r1, #1 - strb r1, [r0, #0xc] - ldrb r1, [r0, #0xa] - strb r1, [r0, #0x1e] - ldrb r1, [r0, #0x19] - movs r2, #0xc0 - orrs r1, r2 - strb r1, [r0, #0x19] - adds r0, #0x29 - ldrb r1, [r0] - movs r2, #7 - orrs r1, r2 - strb r1, [r0] - bx lr - - thumb_func_start nullsub_519 -nullsub_519: @ 0x0808A9F8 - bx lr - .align 2, 0 - - thumb_func_start sub_0808A9FC -sub_0808A9FC: @ 0x0808A9FC - push {r4, lr} - adds r4, r0, #0 - ldr r1, _0808AA18 @ =gUnk_081211A4 - ldrb r0, [r4, #0xc] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - adds r4, #0x41 - movs r0, #0 - strb r0, [r4] - pop {r4, pc} - .align 2, 0 -_0808AA18: .4byte gUnk_081211A4 - - thumb_func_start sub_0808AA1C -sub_0808AA1C: @ 0x0808AA1C - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - movs r4, #0 - movs r6, #1 - strb r6, [r5, #0xc] - bl sub_08052660 - cmp r0, #0 - bne _0808AA36 - adds r0, r5, #0 - movs r1, #0 - bl sub_0801D2B4 -_0808AA36: - ldrb r0, [r5, #0xa] - cmp r0, #1 - beq _0808AACC - cmp r0, #1 - bgt _0808AA46 - cmp r0, #0 - beq _0808AA4C - b _0808AB5E -_0808AA46: - cmp r0, #2 - beq _0808AB20 - b _0808AB5E -_0808AA4C: - adds r2, r5, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #4 - orrs r0, r1 - strb r0, [r2] - ldr r0, _0808AAC0 @ =gUnk_080FD224 - str r0, [r5, #0x48] - strb r6, [r5, #0x16] - ldr r0, _0808AAC4 @ =0x00004022 - movs r2, #0x2e - ldrsh r1, [r5, r2] - ldr r3, _0808AAC8 @ =gRoomControls - ldrh r2, [r3, #6] - subs r1, r1, r2 - asrs r1, r1, #4 - movs r4, #0x3f - ands r1, r4 - movs r7, #0x32 - ldrsh r2, [r5, r7] - ldrh r3, [r3, #8] - subs r2, r2, r3 - asrs r2, r2, #4 - ands r2, r4 - lsls r2, r2, #6 - orrs r1, r2 - adds r2, r5, #0 - adds r2, #0x38 - ldrb r2, [r2] - bl sub_0800015E - adds r0, r5, #0 - adds r0, #0x45 - strb r6, [r0] - adds r1, r5, #0 - adds r1, #0x3c - movs r0, #7 - strb r0, [r1] - adds r1, #3 - movs r0, #0x6e - strb r0, [r1] - subs r1, #4 - movs r0, #0xe - strb r0, [r1] - strb r6, [r5, #0x1c] - ldrb r0, [r5, #0x10] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r5, #0x10] - adds r1, r5, #0 - adds r1, #0x63 - movs r0, #4 - strb r0, [r1] - b _0808AB5E - .align 2, 0 -_0808AAC0: .4byte gUnk_080FD224 -_0808AAC4: .4byte 0x00004022 -_0808AAC8: .4byte gRoomControls -_0808AACC: - adds r2, r5, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #4 - orrs r0, r1 - strb r0, [r2] - ldrb r0, [r5, #0xb] - cmp r0, #0 - beq _0808AB10 - ldr r0, _0808AB1C @ =gUnk_080FD224 - str r0, [r5, #0x48] - ldrb r0, [r5, #0x10] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r5, #0x10] - adds r0, r5, #0 - adds r0, #0x45 - strb r6, [r0] - adds r1, r5, #0 - adds r1, #0x3c - movs r0, #7 - strb r0, [r1] - adds r1, #3 - movs r0, #0x6e - strb r0, [r1] - subs r1, #4 - movs r0, #4 - strb r0, [r1] - strb r6, [r5, #0x1c] - movs r0, #3 - strb r0, [r5, #0xc] -_0808AB10: - ldrb r1, [r5, #0x14] - adds r1, #9 - adds r0, r5, #0 - bl UpdateSprite - b _0808AB5E - .align 2, 0 -_0808AB1C: .4byte gUnk_080FD224 -_0808AB20: - adds r2, r5, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #5 - orrs r0, r1 - strb r0, [r2] - ldrb r0, [r5, #0x19] - movs r1, #3 - orrs r0, r1 - strb r0, [r5, #0x19] - ldrb r1, [r5, #0x14] - adds r0, r6, #0 - ands r0, r1 - cmp r0, #0 - beq _0808AB52 - movs r0, #0x80 - lsls r0, r0, #2 - str r0, [r5, #0x74] - movs r0, #0x80 - lsls r0, r0, #1 - str r0, [r5, #0x78] - b _0808AB5E -_0808AB52: - movs r0, #0x80 - lsls r0, r0, #2 - str r0, [r5, #0x78] - movs r0, #0x80 - lsls r0, r0, #1 - str r0, [r5, #0x74] -_0808AB5E: - adds r0, r5, #0 - bl sub_0808AB68 - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_0808AB68 -sub_0808AB68: @ 0x0808AB68 - push {lr} - ldr r2, _0808AB7C @ =gUnk_081211B4 - ldrb r1, [r0, #0xa] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0808AB7C: .4byte gUnk_081211B4 - - thumb_func_start sub_0808AB80 -sub_0808AB80: @ 0x0808AB80 - push {lr} - ldr r2, _0808AB94 @ =gUnk_081211C0 - ldrb r1, [r0, #0xd] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0808AB94: .4byte gUnk_081211C0 - - thumb_func_start sub_0808AB98 -sub_0808AB98: @ 0x0808AB98 - push {lr} - adds r3, r0, #0 - ldr r2, [r3, #0x50] - ldrh r1, [r2, #0xc] - ldr r0, _0808ABB0 @ =0x00000201 - cmp r1, r0 - bne _0808ABB4 - movs r0, #0 - str r0, [r2, #0x54] - bl sub_0805E780 - b _0808ABC2 - .align 2, 0 -_0808ABB0: .4byte 0x00000201 -_0808ABB4: - ldrb r0, [r2, #0xc] - cmp r0, #2 - bne _0808ABC2 - adds r0, r3, #0 - movs r1, #0 - bl sub_0808B168 -_0808ABC2: - pop {pc} - - thumb_func_start sub_0808ABC4 -sub_0808ABC4: @ 0x0808ABC4 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x50] - ldrh r1, [r0, #0xc] - ldr r0, _0808AC38 @ =0x00000201 - cmp r1, r0 - bne _0808ABD6 - bl sub_0805E780 -_0808ABD6: - ldr r0, [r4, #0x54] - ldr r1, [r4, #0x50] - bl sub_0808B1F0 - adds r2, r0, #0 - cmp r2, #7 - bhi _0808ABE6 - movs r2, #0 -_0808ABE6: - ldrb r3, [r4, #0x14] - lsls r1, r3, #2 - ldr r0, _0808AC3C @ =gUnk_081211CC - adds r5, r1, r0 - cmp r2, #0x1f - bhi _0808AC5A - cmp r2, #0 - beq _0808ABF8 - subs r2, #6 -_0808ABF8: - ldrh r0, [r5] - str r0, [r4, #0x70] - ldr r1, [r4, #0x50] - movs r0, #2 - ldrsb r0, [r5, r0] - ldrh r3, [r1, #0x2e] - adds r0, r0, r3 - strh r0, [r4, #0x2e] - movs r0, #3 - ldrsb r0, [r5, r0] - ldrh r1, [r1, #0x32] - adds r0, r0, r1 - strh r0, [r4, #0x32] - ldrb r1, [r4, #0x14] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0808AC40 - lsls r1, r2, #4 - movs r0, #0x80 - lsls r0, r0, #2 - subs r0, r0, r1 - str r0, [r4, #0x74] - lsls r0, r2, #3 - movs r1, #0x90 - lsls r1, r1, #1 - adds r0, r0, r1 - str r0, [r4, #0x78] - movs r0, #0xf - strb r0, [r4, #0x1e] - b _0808ACDE - .align 2, 0 -_0808AC38: .4byte 0x00000201 -_0808AC3C: .4byte gUnk_081211CC -_0808AC40: - lsls r1, r2, #4 - movs r0, #0x80 - lsls r0, r0, #2 - subs r0, r0, r1 - str r0, [r4, #0x78] - lsls r0, r2, #3 - movs r3, #0x90 - lsls r3, r3, #1 - adds r0, r0, r3 - str r0, [r4, #0x74] - movs r0, #0x14 - strb r0, [r4, #0x1e] - b _0808ACDE -_0808AC5A: - movs r0, #1 - ands r3, r0 - cmp r3, #0 - beq _0808AC9E - adds r1, r2, #0 - subs r1, #0x20 - lsls r1, r1, #2 - adds r0, #0xff - subs r0, r0, r1 - str r0, [r4, #0x74] - lsls r0, r2, #3 - movs r1, #0xa0 - lsls r1, r1, #1 - adds r0, r0, r1 - str r0, [r4, #0x78] - movs r0, #0x10 - strb r0, [r4, #0x1e] - ldrb r1, [r4, #0x14] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _0808AC92 - ldr r0, [r4, #0x50] - lsrs r1, r2, #1 - ldrh r0, [r0, #0x2e] - subs r0, r0, r1 - strh r0, [r4, #0x2e] - b _0808ACDE -_0808AC92: - ldr r1, [r4, #0x50] - lsrs r0, r2, #1 - ldrh r1, [r1, #0x2e] - adds r0, r0, r1 - strh r0, [r4, #0x2e] - b _0808ACDE -_0808AC9E: - adds r1, r2, #0 - subs r1, #0x20 - lsls r1, r1, #2 - movs r0, #0x80 - lsls r0, r0, #1 - subs r0, r0, r1 - str r0, [r4, #0x78] - lsls r0, r2, #3 - movs r3, #0xa0 - lsls r3, r3, #1 - adds r0, r0, r3 - str r0, [r4, #0x74] - movs r0, #0x15 - strb r0, [r4, #0x1e] - ldrb r1, [r4, #0x14] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _0808ACCE - ldr r0, [r4, #0x50] - lsrs r1, r2, #1 - ldrh r0, [r0, #0x32] - adds r1, r1, r0 - b _0808ACD6 -_0808ACCE: - ldr r0, [r4, #0x50] - lsrs r2, r2, #1 - ldrh r1, [r0, #0x32] - subs r1, r1, r2 -_0808ACD6: - movs r0, #3 - ldrsb r0, [r5, r0] - adds r0, r0, r1 - strh r0, [r4, #0x32] -_0808ACDE: - ldr r1, [r4, #0x74] - ldr r2, [r4, #0x78] - ldr r3, [r4, #0x70] - adds r0, r4, #0 - bl sub_0805EC9C - pop {r4, r5, pc} - - thumb_func_start sub_0808ACEC -sub_0808ACEC: @ 0x0808ACEC - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x58 - ldrb r0, [r0] - cmp r0, #0 - beq _0808AD00 - adds r0, r4, #0 - movs r1, #0 - bl UpdateSprite -_0808AD00: - adds r0, r4, #0 - adds r0, #0x41 - ldrb r1, [r0] - movs r0, #0x7f - ands r0, r1 - subs r0, #4 - cmp r0, #0x12 - bhi _0808AD92 - lsls r0, r0, #2 - ldr r1, _0808AD1C @ =_0808AD20 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0808AD1C: .4byte _0808AD20 -_0808AD20: @ jump table - .4byte _0808AD6C @ case 0 - .4byte _0808AD6C @ case 1 - .4byte _0808AD6C @ case 2 - .4byte _0808AD92 @ case 3 - .4byte _0808AD6C @ case 4 - .4byte _0808AD6C @ case 5 - .4byte _0808AD6C @ case 6 - .4byte _0808AD6C @ case 7 - .4byte _0808AD6C @ case 8 - .4byte _0808AD6C @ case 9 - .4byte _0808AD92 @ case 10 - .4byte _0808AD92 @ case 11 - .4byte _0808AD6C @ case 12 - .4byte _0808AD6C @ case 13 - .4byte _0808AD6C @ case 14 - .4byte _0808AD88 @ case 15 - .4byte _0808AD6C @ case 16 - .4byte _0808AD92 @ case 17 - .4byte _0808AD6C @ case 18 -_0808AD6C: - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - adds r0, r4, #0 - adds r0, #0x3e - ldrb r0, [r0] - bl sub_0806F5A4 - strb r0, [r4, #0x14] - movs r0, #2 - strb r0, [r4, #0xd] - strb r0, [r4, #0xe] - b _0808AD9E -_0808AD88: - movs r1, #0 - movs r0, #3 - strb r0, [r4, #0xc] - strb r1, [r4, #0xd] - b _0808AD9E -_0808AD92: - movs r0, #0 - strb r0, [r4, #0xf] - strb r0, [r4, #0xe] - adds r0, r4, #0 - bl sub_08078930 -_0808AD9E: - pop {r4, pc} - - thumb_func_start sub_0808ADA0 -sub_0808ADA0: @ 0x0808ADA0 - push {r4, lr} - adds r4, r0, #0 - ldr r1, [r4, #0x54] - bl sub_0808B1F0 - cmp r0, #7 - bls _0808ADB4 - ldr r1, [r4, #0x54] - cmp r1, #0 - bne _0808ADE2 -_0808ADB4: - ldrb r0, [r4, #0xd] - adds r0, #1 - strb r0, [r4, #0xd] - movs r2, #2 - movs r0, #2 - strb r0, [r4, #0xe] - ldrb r1, [r4, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r4, #0x10] - ldrb r0, [r4, #0x14] - eors r0, r2 - strb r0, [r4, #0x14] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #4 - orrs r0, r1 - strb r0, [r2] - b _0808ADEE -_0808ADE2: - movs r0, #0x80 - lsls r0, r0, #3 - strh r0, [r1, #0x24] - ldr r0, [r4, #0x54] - bl sub_0806F69C -_0808ADEE: - pop {r4, pc} - - thumb_func_start sub_0808ADF0 -sub_0808ADF0: @ 0x0808ADF0 - push {r4, lr} - adds r4, r0, #0 - ldrb r2, [r4, #0x14] - adds r1, r2, #0 - adds r1, #0xd - adds r0, #0x58 - ldrb r0, [r0] - cmp r1, r0 - bne _0808AE26 - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0808AE1E - movs r0, #0 - strb r0, [r4, #0xd] - ldrb r1, [r4, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r4, #0x10] - b _0808AE80 -_0808AE1E: - adds r0, r4, #0 - bl sub_08004274 - b _0808AE80 -_0808AE26: - adds r1, r2, #1 - cmp r1, r0 - beq _0808AE54 - adds r0, r4, #0 - bl UpdateSprite - ldrb r0, [r4, #0x14] - cmp r0, #3 - bne _0808AE42 - ldrb r1, [r4, #0x18] - movs r0, #0x41 - rsbs r0, r0, #0 - ands r0, r1 - b _0808AE48 -_0808AE42: - ldrb r0, [r4, #0x18] - movs r1, #0x40 - orrs r0, r1 -_0808AE48: - strb r0, [r4, #0x18] - movs r0, #0x97 - lsls r0, r0, #1 - bl PlaySFX - b _0808AE80 -_0808AE54: - adds r0, r4, #0 - bl sub_08004274 - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0808AE80 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xff - bne _0808AE80 - ldrb r1, [r4, #0x14] - adds r1, #0xd - adds r0, r4, #0 - bl UpdateSprite -_0808AE80: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0808AE84 -sub_0808AE84: @ 0x0808AE84 - push {lr} - adds r2, r0, #0 - ldr r0, _0808AEA8 @ =gLinkState - ldrb r0, [r0, #5] - cmp r0, #0 - bne _0808AE94 - movs r0, #6 - strb r0, [r2, #0xd] -_0808AE94: - ldr r0, _0808AEAC @ =gUnk_081211DC - ldrb r1, [r2, #0xd] - subs r1, #5 - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r2, #0 - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0808AEA8: .4byte gLinkState -_0808AEAC: .4byte gUnk_081211DC - - thumb_func_start sub_0808AEB0 -sub_0808AEB0: @ 0x0808AEB0 - push {r4, r5, r6, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _0808AF68 - ldr r1, [r4, #0x54] - adds r0, r4, #0 - bl sub_0808B1F0 - adds r6, r0, #0 - ldr r5, _0808AF10 @ =gLinkState - adds r2, r5, #0 - adds r2, #0x90 - ldr r1, _0808AF14 @ =gUnk_081211E4 - ldrb r0, [r4, #0x14] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r1, [r2] - ldrh r0, [r0] - ands r0, r1 - cmp r0, #0 - beq _0808AF20 - adds r0, r4, #0 - bl sub_08004274 - cmp r6, #0x3f - bhi _0808AF08 - ldr r0, _0808AF18 @ =gLinkEntity - ldrb r2, [r4, #0x15] - movs r1, #0x40 - bl sub_080044AE - ldr r0, [r4, #0x7c] - subs r0, #1 - str r0, [r4, #0x7c] - movs r1, #1 - rsbs r1, r1, #0 - cmp r0, r1 - bne _0808AF08 - movs r0, #4 - str r0, [r4, #0x7c] - ldr r0, _0808AF1C @ =0x0000012F - bl PlaySFX -_0808AF08: - movs r0, #1 - strb r0, [r4, #0xf] - b _0808AFD0 - .align 2, 0 -_0808AF10: .4byte gLinkState -_0808AF14: .4byte gUnk_081211E4 -_0808AF18: .4byte gLinkEntity -_0808AF1C: .4byte 0x0000012F -_0808AF20: - ldrb r0, [r4, #0xf] - cmp r0, #0 - beq _0808AFD0 - ldr r2, _0808AF64 @ =gLinkEntity - ldrb r0, [r2, #0xc] - cmp r0, #1 - bne _0808AFD0 - adds r0, r5, #0 - adds r0, #0x26 - ldrb r0, [r0] - cmp r0, #0 - bne _0808AFD0 - movs r0, #0x1b - strb r0, [r5, #0xc] - adds r0, r5, #0 - adds r0, #0x38 - strb r6, [r0] - ldrb r0, [r4, #0x15] - movs r1, #0x10 - eors r0, r1 - adds r1, r5, #0 - adds r1, #0x39 - strb r0, [r1] - adds r0, r4, #0 - adds r1, r2, #0 - bl sub_0808B1F0 - adds r1, r5, #0 - adds r1, #0x3a - strb r0, [r1] - ldrb r0, [r4, #0xd] - adds r0, #1 - strb r0, [r4, #0xd] - b _0808AFD0 - .align 2, 0 -_0808AF64: .4byte gLinkEntity -_0808AF68: - movs r6, #1 - strb r6, [r4, #0xe] - str r6, [r4, #0x7c] - ldr r5, _0808AFC8 @ =gLinkEntity - ldrb r0, [r5, #0x14] - lsrs r0, r0, #1 - movs r1, #2 - eors r0, r1 - strb r0, [r4, #0x14] - lsls r0, r0, #3 - strb r0, [r4, #0x15] - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - ldrb r0, [r5, #0x18] - movs r1, #0x40 - ands r1, r0 - ldrb r2, [r4, #0x18] - movs r0, #0x41 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #0x18] - ldrb r1, [r4, #0x14] - adds r1, #5 - adds r0, r4, #0 - bl UpdateSprite - adds r0, r4, #0 - movs r1, #0 - bl sub_0808B21C - cmp r0, #0 - beq _0808AFB6 - ldr r0, [r4, #0x54] - movs r1, #0 - bl sub_0808B168 -_0808AFB6: - ldrb r1, [r4, #0x14] - adds r0, r6, #0 - ands r0, r1 - cmp r0, #0 - beq _0808AFCC - ldrh r0, [r4, #0x32] - strh r0, [r5, #0x32] - b _0808AFD0 - .align 2, 0 -_0808AFC8: .4byte gLinkEntity -_0808AFCC: - ldrh r0, [r4, #0x2e] - strh r0, [r5, #0x2e] -_0808AFD0: - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_0808AFD4 -sub_0808AFD4: @ 0x0808AFD4 - push {lr} - movs r1, #1 - strb r1, [r0, #0xc] - strb r1, [r0, #0xd] - ldr r2, [r0, #0x54] - ldrb r0, [r0, #0x15] - movs r1, #0x10 - eors r0, r1 - strb r0, [r2, #0x15] - movs r0, #0x98 - lsls r0, r0, #1 - bl PlaySFX - pop {pc} - - thumb_func_start sub_0808AFF0 -sub_0808AFF0: @ 0x0808AFF0 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r1, _0808B054 @ =gUnk_081211EC - ldrb r0, [r4, #0xd] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - ldr r0, _0808B058 @ =gLinkState - ldrb r1, [r0, #0x1c] - movs r0, #0xf - ands r0, r1 - cmp r0, #1 - bne _0808B01E - adds r0, r4, #0 - adds r0, #0x41 - ldrb r1, [r0] - movs r0, #0x7f - ands r0, r1 - cmp r0, #0x13 - beq _0808B050 -_0808B01E: - ldrb r5, [r4, #0xa] - cmp r5, #1 - bne _0808B050 - ldr r0, [r4, #0x50] - strb r5, [r0, #0xc] - ldr r0, [r4, #0x50] - strb r5, [r0, #0xd] - ldr r2, [r4, #0x50] - ldrb r0, [r2, #0x15] - movs r1, #0x10 - eors r0, r1 - strb r0, [r4, #0x15] - ldrb r3, [r2, #0x10] - movs r1, #0x7f - adds r0, r1, #0 - ands r0, r3 - strb r0, [r2, #0x10] - ldrb r0, [r4, #0x10] - ands r1, r0 - strb r1, [r4, #0x10] - strb r5, [r4, #0xc] - movs r0, #0x98 - lsls r0, r0, #1 - bl PlaySFX -_0808B050: - pop {r4, r5, pc} - .align 2, 0 -_0808B054: .4byte gUnk_081211EC -_0808B058: .4byte gLinkState - - thumb_func_start sub_0808B05C -sub_0808B05C: @ 0x0808B05C - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xa] - cmp r0, #0 - bne _0808B0AE - ldr r2, _0808B0B8 @ =gLinkEntity - ldrb r0, [r2, #0x14] - lsrs r0, r0, #1 - movs r1, #2 - eors r0, r1 - strb r0, [r4, #0x14] - lsls r0, r0, #3 - strb r0, [r4, #0x15] - ldrb r0, [r2, #0x18] - movs r1, #0x40 - ands r1, r0 - ldrb r2, [r4, #0x18] - movs r0, #0x41 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #0x18] - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - ldrb r1, [r4, #0x14] - adds r1, #5 - adds r0, r4, #0 - bl UpdateSprite - adds r0, r4, #0 - movs r1, #1 - bl sub_0808B21C - cmp r0, #0 - beq _0808B0AE - ldr r0, [r4, #0x54] - movs r1, #1 - bl sub_0808B168 -_0808B0AE: - ldrb r0, [r4, #0xd] - adds r0, #1 - strb r0, [r4, #0xd] - pop {r4, pc} - .align 2, 0 -_0808B0B8: .4byte gLinkEntity - - thumb_func_start sub_0808B0BC -sub_0808B0BC: @ 0x0808B0BC - push {r4, r5, r6, r7, lr} - sub sp, #0x88 - adds r5, r0, #0 - ldr r1, [r5, #0x50] - bl sub_0808B1F0 - adds r7, r0, #0 - ldrb r0, [r5, #0xa] - cmp r0, #0 - beq _0808B0D6 - cmp r0, #1 - beq _0808B0DE - b _0808B162 -_0808B0D6: - adds r0, r5, #0 - bl sub_08004274 - b _0808B162 -_0808B0DE: - ldr r6, _0808B148 @ =gLinkEntity - ldrb r0, [r6, #0x14] - movs r1, #0xe - ands r1, r0 - ldr r0, _0808B14C @ =gUnk_08126EE4 - adds r1, r1, r0 - mov r2, sp - movs r0, #0 - ldrsb r0, [r1, r0] - ldrh r3, [r6, #0x2e] - adds r0, r0, r3 - strh r0, [r2, #0x2e] - movs r0, #1 - ldrsb r0, [r1, r0] - ldrh r1, [r6, #0x32] - adds r0, r0, r1 - strh r0, [r2, #0x32] - mov r0, sp - adds r1, r5, #0 - movs r2, #7 - movs r3, #7 - bl sub_0800419C - cmp r0, #0 - beq _0808B154 - ldrb r0, [r6, #0xc] - cmp r0, #1 - bne _0808B162 - ldr r4, _0808B150 @ =gLinkState - adds r0, r4, #0 - adds r0, #0x26 - ldrb r0, [r0] - cmp r0, #0 - bne _0808B162 - movs r0, #0x1b - strb r0, [r4, #0xc] - adds r0, r4, #0 - adds r0, #0x38 - strb r7, [r0] - ldrb r0, [r5, #0x15] - movs r1, #0x10 - eors r0, r1 - adds r1, r4, #0 - adds r1, #0x39 - strb r0, [r1] - ldr r0, [r5, #0x50] - adds r1, r6, #0 - bl sub_0808B1F0 - adds r1, r4, #0 - adds r1, #0x3a - strb r0, [r1] - b _0808B162 - .align 2, 0 -_0808B148: .4byte gLinkEntity -_0808B14C: .4byte gUnk_08126EE4 -_0808B150: .4byte gLinkState -_0808B154: - movs r0, #0x40 - strh r0, [r5, #0x24] - cmp r7, #0x3f - bhi _0808B162 - adds r0, r5, #0 - bl sub_0806F69C -_0808B162: - add sp, #0x88 - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_0808B168 -sub_0808B168: @ 0x0808B168 - push {r4, r5, lr} - adds r3, r0, #0 - cmp r1, #0 - beq _0808B188 - ldrb r0, [r3, #0x14] - movs r1, #2 - eors r1, r0 - lsls r1, r1, #1 - ldr r0, _0808B184 @ =gUnk_081211F4 - adds r2, r1, r0 - adds r1, r2, #1 - ldr r4, [r3, #0x50] - adds r5, r4, #0 - b _0808B1CE - .align 2, 0 -_0808B184: .4byte gUnk_081211F4 -_0808B188: - ldrb r1, [r3, #0x14] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0808B1B8 - ldr r5, _0808B1AC @ =gLinkEntity - ldr r4, [r3, #0x50] - ldrb r1, [r3, #0x14] - lsls r2, r1, #1 - ldr r0, _0808B1B0 @ =gUnk_081211FC - adds r2, r2, r0 - movs r0, #2 - eors r1, r0 - lsls r1, r1, #1 - ldr r0, _0808B1B4 @ =gUnk_081211F5 - adds r1, r1, r0 - b _0808B1CE - .align 2, 0 -_0808B1AC: .4byte gLinkEntity -_0808B1B0: .4byte gUnk_081211FC -_0808B1B4: .4byte gUnk_081211F5 -_0808B1B8: - ldr r5, [r3, #0x50] - ldr r4, _0808B1E4 @ =gLinkEntity - movs r0, #2 - eors r0, r1 - lsls r0, r0, #1 - ldr r1, _0808B1E8 @ =gUnk_081211F4 - adds r2, r0, r1 - ldrb r0, [r3, #0x14] - lsls r0, r0, #1 - ldr r1, _0808B1EC @ =gUnk_081211FD - adds r1, r0, r1 -_0808B1CE: - movs r0, #0 - ldrsb r0, [r2, r0] - ldrh r5, [r5, #0x2e] - adds r0, r0, r5 - strh r0, [r3, #0x2e] - movs r0, #0 - ldrsb r0, [r1, r0] - ldrh r4, [r4, #0x32] - adds r0, r0, r4 - strh r0, [r3, #0x32] - pop {r4, r5, pc} - .align 2, 0 -_0808B1E4: .4byte gLinkEntity -_0808B1E8: .4byte gUnk_081211F4 -_0808B1EC: .4byte gUnk_081211FD - - thumb_func_start sub_0808B1F0 -sub_0808B1F0: @ 0x0808B1F0 - push {lr} - adds r2, r0, #0 - adds r3, r1, #0 - ldrb r1, [r2, #0x14] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0808B20A - movs r0, #0x2e - ldrsh r1, [r2, r0] - movs r2, #0x2e - ldrsh r0, [r3, r2] - b _0808B212 -_0808B20A: - movs r0, #0x32 - ldrsh r1, [r2, r0] - movs r2, #0x32 - ldrsh r0, [r3, r2] -_0808B212: - subs r0, r1, r0 - cmp r0, #0 - bge _0808B21A - rsbs r0, r0, #0 -_0808B21A: - pop {pc} - - thumb_func_start sub_0808B21C -sub_0808B21C: @ 0x0808B21C - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - adds r2, r4, #0 - adds r2, #0x29 - ldrb r0, [r2] - movs r1, #8 - rsbs r1, r1, #0 - ands r1, r0 - movs r0, #6 - orrs r1, r0 - strb r1, [r2] - adds r0, r4, #0 - movs r1, #0x32 - movs r2, #1 - movs r3, #0 - bl CreateObjectWithParent - adds r1, r0, #0 - str r1, [r4, #0x54] - cmp r1, #0 - beq _0808B26E - ldrb r0, [r4, #0x14] - strb r0, [r1, #0x14] - ldr r1, [r4, #0x54] - ldrb r0, [r4, #0x15] - strb r0, [r1, #0x15] - ldr r3, [r4, #0x54] - ldrb r0, [r4, #0x18] - movs r1, #0x40 - ands r1, r0 - ldrb r2, [r3, #0x18] - movs r0, #0x41 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3, #0x18] - ldr r0, [r4, #0x54] - str r4, [r0, #0x50] - ldr r0, [r4, #0x54] - strb r5, [r0, #0xb] -_0808B26E: - adds r0, r4, #0 - movs r1, #0x32 - movs r2, #2 - movs r3, #0 - bl CreateObjectWithParent - adds r1, r0, #0 - str r1, [r4, #0x50] - cmp r1, #0 - bne _0808B286 - movs r0, #0 - b _0808B292 -_0808B286: - ldrb r0, [r4, #0x14] - strb r0, [r1, #0x14] - ldr r1, [r4, #0x50] - ldr r0, [r4, #0x54] - str r0, [r1, #0x54] - movs r0, #1 -_0808B292: - pop {r4, r5, pc} - - thumb_func_start sub_0808B294 -sub_0808B294: @ 0x0808B294 - push {lr} - ldr r2, _0808B2A8 @ =gUnk_08121300 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0808B2A8: .4byte gUnk_08121300 - - thumb_func_start sub_0808B2AC -sub_0808B2AC: @ 0x0808B2AC - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xb] - cmp r0, #0 - bne _0808B2C4 - adds r0, r4, #0 - bl sub_0808B41C - adds r0, r4, #0 - bl sub_0808B3AC - b _0808B2CA -_0808B2C4: - adds r0, r4, #0 - bl sub_0808B42C -_0808B2CA: - pop {r4, pc} - - thumb_func_start sub_0808B2CC -sub_0808B2CC: @ 0x0808B2CC - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xb] - cmp r0, #0 - bne _0808B2E6 - adds r0, r4, #0 - adds r0, #0x86 - ldrh r0, [r0] - bl sub_0807CBE4 - cmp r0, #0 - beq _0808B31C - b _0808B2F4 -_0808B2E6: - adds r0, r4, #0 - adds r0, #0x86 - ldrh r0, [r0] - bl sub_0807CBE4 - cmp r0, #0 - bne _0808B31C -_0808B2F4: - movs r0, #2 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #3 - bl UpdateSprite - adds r0, r4, #0 - adds r0, #0x72 - ldrh r0, [r0] - adds r1, r4, #0 - adds r1, #0x70 - ldrh r1, [r1] - adds r2, r4, #0 - adds r2, #0x38 - ldrb r2, [r2] - bl sub_0800015E - ldr r0, _0808B320 @ =0x000001A5 - bl sub_08004488 -_0808B31C: - pop {r4, pc} - .align 2, 0 -_0808B320: .4byte 0x000001A5 - - thumb_func_start sub_0808B324 -sub_0808B324: @ 0x0808B324 - push {r4, lr} - adds r4, r0, #0 - bl sub_08004274 - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0808B340 - adds r0, r4, #0 - bl sub_0808B42C -_0808B340: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0808B344 -sub_0808B344: @ 0x0808B344 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xb] - cmp r0, #0 - bne _0808B35E - adds r0, r4, #0 - adds r0, #0x86 - ldrh r0, [r0] - bl sub_0807CBE4 - cmp r0, #0 - bne _0808B384 - b _0808B36C -_0808B35E: - adds r0, r4, #0 - adds r0, #0x86 - ldrh r0, [r0] - bl sub_0807CBE4 - cmp r0, #0 - beq _0808B384 -_0808B36C: - movs r0, #4 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #2 - bl UpdateSprite - adds r0, r4, #0 - bl sub_0808B3AC - ldr r0, _0808B388 @ =0x000001A5 - bl sub_08004488 -_0808B384: - pop {r4, pc} - .align 2, 0 -_0808B388: .4byte 0x000001A5 - - thumb_func_start sub_0808B38C -sub_0808B38C: @ 0x0808B38C - push {r4, lr} - adds r4, r0, #0 - bl sub_08004274 - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0808B3A8 - adds r0, r4, #0 - bl sub_0808B41C -_0808B3A8: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0808B3AC -sub_0808B3AC: @ 0x0808B3AC - push {r4, r5, r6, lr} - adds r6, r0, #0 - adds r2, r6, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #4 - orrs r0, r1 - strb r0, [r2] - movs r0, #0x2e - ldrsh r1, [r6, r0] - ldr r2, _0808B414 @ =gRoomControls - ldrh r0, [r2, #6] - subs r1, r1, r0 - asrs r1, r1, #4 - movs r3, #0x3f - ands r1, r3 - movs r4, #0x32 - ldrsh r0, [r6, r4] - ldrh r2, [r2, #8] - subs r0, r0, r2 - asrs r0, r0, #4 - ands r0, r3 - lsls r0, r0, #6 - orrs r1, r0 - adds r4, r6, #0 - adds r4, #0x70 - strh r1, [r4] - ldrh r0, [r4] - adds r5, r6, #0 - adds r5, #0x38 - ldrb r1, [r5] - bl sub_080001DA - adds r1, r6, #0 - adds r1, #0x72 - strh r0, [r1] - ldrh r0, [r4] - ldrb r1, [r5] - bl sub_080002E0 - adds r1, r6, #0 - adds r1, #0x74 - strb r0, [r1] - ldr r0, _0808B418 @ =0x0000400B - ldrh r1, [r4] - ldrb r2, [r5] - bl sub_0800015E - pop {r4, r5, r6, pc} - .align 2, 0 -_0808B414: .4byte gRoomControls -_0808B418: .4byte 0x0000400B - - thumb_func_start sub_0808B41C -sub_0808B41C: @ 0x0808B41C - push {lr} - movs r1, #1 - strb r1, [r0, #0xc] - movs r1, #0 - bl UpdateSprite - pop {pc} - .align 2, 0 - - thumb_func_start sub_0808B42C -sub_0808B42C: @ 0x0808B42C - push {lr} - movs r1, #3 - strb r1, [r0, #0xc] - adds r3, r0, #0 - adds r3, #0x29 - ldrb r1, [r3] - movs r2, #7 - orrs r1, r2 - strb r1, [r3] - movs r1, #1 - bl UpdateSprite - pop {pc} - .align 2, 0 - - thumb_func_start sub_0808B448 -sub_0808B448: @ 0x0808B448 - push {lr} - adds r2, r0, #0 - adds r0, #0x70 - ldrb r0, [r0] - cmp r0, #0 - bne _0808B46C - ldr r0, _0808B468 @ =gUnk_08121368 - ldrb r1, [r2, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r2, #0 - bl _call_via_r1 - b _0808B472 - .align 2, 0 -_0808B468: .4byte gUnk_08121368 -_0808B46C: - adds r0, r2, #0 - bl sub_0808B73C -_0808B472: - pop {pc} - - thumb_func_start sub_0808B474 -sub_0808B474: @ 0x0808B474 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0 - movs r0, #1 - strb r0, [r4, #0xc] - strb r1, [r4, #0xf] - ldr r1, _0808B4D8 @ =gUnk_08121380 - ldrb r0, [r4, #0xa] - adds r0, r0, r1 - ldrb r1, [r0] - movs r0, #0xf - ands r1, r0 - ldrb r3, [r4, #0x1a] - movs r2, #0x10 - rsbs r2, r2, #0 - adds r0, r2, #0 - ands r0, r3 - orrs r0, r1 - strb r0, [r4, #0x1a] - adds r3, r4, #0 - adds r3, #0x29 - ldrb r1, [r3] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #6 - orrs r0, r1 - strb r0, [r3] - ldr r0, _0808B4DC @ =gUnk_080FD168 - str r0, [r4, #0x48] - ldrb r0, [r4, #0x11] - ands r2, r0 - movs r0, #3 - orrs r2, r0 - strb r2, [r4, #0x11] - adds r0, r4, #0 - movs r1, #0 - bl UpdateSprite - adds r0, r4, #0 - adds r0, #0x86 - ldrh r0, [r0] - bl sub_0807CBE4 - cmp r0, #0 - beq _0808B4E0 - adds r0, r4, #0 - bl sub_0808B830 - b _0808B4F8 - .align 2, 0 -_0808B4D8: .4byte gUnk_08121380 -_0808B4DC: .4byte gUnk_080FD168 -_0808B4E0: - bl sub_08052660 - cmp r0, #0 - beq _0808B4F8 - ldrb r0, [r4, #0xa] - bl sub_0807CAEC - cmp r0, #0 - beq _0808B4F8 - adds r0, r4, #0 - bl sub_0808B830 -_0808B4F8: - adds r0, r4, #0 - bl sub_0808B7C8 - cmp r0, #0 - beq _0808B528 - movs r2, #4 - strb r2, [r4, #0xc] - movs r0, #0x60 - strb r0, [r4, #0xf] - ldr r1, _0808B52C @ =gLinkEntity - ldrh r0, [r4, #0x2e] - strh r0, [r1, #0x2e] - ldrh r0, [r4, #0x32] - strh r0, [r1, #0x32] - strb r2, [r1, #0x14] - movs r0, #0x89 - lsls r0, r0, #1 - bl sub_08004488 - ldrb r1, [r4, #0xf] - adds r1, #0x10 - adds r0, r4, #0 - bl sub_0805E4E0 -_0808B528: - pop {r4, pc} - .align 2, 0 -_0808B52C: .4byte gLinkEntity - - thumb_func_start sub_0808B530 -sub_0808B530: @ 0x0808B530 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x86 - ldrh r0, [r0] - bl sub_0807CBE4 - cmp r0, #0 - beq _0808B562 - adds r0, r4, #0 - bl sub_0808B830 - bl sub_08052660 - cmp r0, #0 - beq _0808B554 - ldrb r0, [r4, #0xa] - bl sub_0807CAC8 -_0808B554: - movs r0, #2 - strb r0, [r4, #0xc] - movs r0, #0x3c - strb r0, [r4, #0xf] - adds r0, #0xd6 - bl sub_08004488 -_0808B562: - pop {r4, pc} - - thumb_func_start sub_0808B564 -sub_0808B564: @ 0x0808B564 - push {lr} - adds r3, r0, #0 - ldrb r0, [r3, #0xf] - subs r1, r0, #1 - strb r1, [r3, #0xf] - lsls r0, r1, #0x18 - cmp r0, #0 - bne _0808B57A - movs r0, #3 - strb r0, [r3, #0xc] - b _0808B58E -_0808B57A: - lsls r0, r1, #0x18 - lsrs r0, r0, #0x19 - movs r1, #1 - bics r1, r0 - ldrb r2, [r3, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3, #0x18] -_0808B58E: - pop {pc} - - thumb_func_start sub_0808B590 -sub_0808B590: @ 0x0808B590 - push {r4, lr} - adds r4, r0, #0 - bl sub_08004274 - adds r0, r4, #0 - bl sub_0808B7C8 - cmp r0, #0 - beq _0808B5E4 - ldrb r0, [r4, #0xe] - cmp r0, #0 - bne _0808B5E6 - movs r0, #5 - strb r0, [r4, #0xc] - movs r0, #0x60 - strb r0, [r4, #0xf] - bl sub_08077B20 - ldr r1, _0808B5DC @ =gLinkEntity - ldrh r0, [r4, #0x2e] - strh r0, [r1, #0x2e] - ldrh r0, [r4, #0x32] - strh r0, [r1, #0x32] - movs r0, #4 - strb r0, [r1, #0x14] - ldrb r2, [r1, #0x10] - movs r0, #0x7f - ands r0, r2 - strb r0, [r1, #0x10] - ldrb r1, [r4, #0xf] - adds r1, #0x10 - adds r0, r4, #0 - bl sub_0805E4E0 - ldr r0, _0808B5E0 @ =0x00000113 - bl PlaySFX - b _0808B5E6 - .align 2, 0 -_0808B5DC: .4byte gLinkEntity -_0808B5E0: .4byte 0x00000113 -_0808B5E4: - strb r0, [r4, #0xe] -_0808B5E6: - pop {r4, pc} - - thumb_func_start sub_0808B5E8 -sub_0808B5E8: @ 0x0808B5E8 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xf] - subs r1, r0, #1 - strb r1, [r4, #0xf] - lsls r0, r1, #0x18 - cmp r0, #0 - bne _0808B610 - movs r0, #3 - strb r0, [r4, #0xc] - movs r0, #1 - strb r0, [r4, #0xe] - ldr r1, _0808B60C @ =gLinkEntity - movs r0, #4 - strb r0, [r1, #0x14] - movs r0, #0x10 - strb r0, [r1, #0x15] - b _0808B67E - .align 2, 0 -_0808B60C: .4byte gLinkEntity -_0808B610: - movs r5, #0 - movs r0, #0x60 - ands r0, r1 - cmp r0, #0x20 - beq _0808B644 - cmp r0, #0x20 - bgt _0808B624 - cmp r0, #0 - beq _0808B64E - b _0808B66E -_0808B624: - cmp r0, #0x40 - bne _0808B66E - lsls r0, r1, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x58 - bne _0808B638 - movs r0, #0x8a - lsls r0, r0, #1 - bl PlaySFX -_0808B638: - ldrb r1, [r4, #0xf] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _0808B66E - b _0808B672 -_0808B644: - movs r0, #3 - ands r1, r0 - cmp r1, #0 - bne _0808B66E - b _0808B672 -_0808B64E: - movs r0, #7 - ands r0, r1 - cmp r0, #0 - bne _0808B66E - ldr r0, _0808B668 @ =gLinkEntity - ldrb r0, [r0, #0x14] - cmp r0, #4 - bne _0808B66C - lsls r0, r1, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x18 - bls _0808B66E - b _0808B672 - .align 2, 0 -_0808B668: .4byte gLinkEntity -_0808B66C: - movs r5, #1 -_0808B66E: - cmp r5, #0 - beq _0808B67E -_0808B672: - ldr r0, _0808B680 @ =gLinkEntity - ldrb r1, [r0, #0x14] - adds r1, #2 - movs r2, #6 - ands r1, r2 - strb r1, [r0, #0x14] -_0808B67E: - pop {r4, r5, pc} - .align 2, 0 -_0808B680: .4byte gLinkEntity - - thumb_func_start sub_0808B684 -sub_0808B684: @ 0x0808B684 - push {lr} - mov ip, r0 - ldrb r0, [r0, #0xf] - subs r1, r0, #1 - mov r0, ip - strb r1, [r0, #0xf] - lsls r0, r1, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0 - bne _0808B6E8 - ldr r3, _0808B6E4 @ =gUnk_030010A0 - movs r0, #1 - strb r0, [r3, #8] - strb r2, [r3, #9] - mov r0, ip - adds r0, #0x7c - ldrb r0, [r0] - strb r0, [r3, #0xc] - mov r0, ip - adds r0, #0x7d - ldrb r0, [r0] - strb r0, [r3, #0xd] - mov r0, ip - adds r0, #0x84 - ldrh r1, [r0] - movs r0, #0x3f - ands r0, r1 - lsls r0, r0, #4 - adds r0, #8 - movs r2, #0 - strh r0, [r3, #0x10] - movs r0, #0xfc - lsls r0, r0, #4 - ands r0, r1 - lsrs r0, r0, #2 - adds r0, #8 - strh r0, [r3, #0x12] - strb r2, [r3, #0x14] - movs r0, #4 - strb r0, [r3, #0xe] - strb r2, [r3, #0xf] - mov r1, ip - ldrb r0, [r1, #0xa] - cmp r0, #2 - bne _0808B736 - strb r0, [r3, #9] - b _0808B736 - .align 2, 0 -_0808B6E4: .4byte gUnk_030010A0 -_0808B6E8: - movs r0, #0x60 - ands r0, r1 - cmp r0, #0x20 - beq _0808B702 - cmp r0, #0x20 - bgt _0808B6FA - cmp r0, #0 - beq _0808B706 - b _0808B724 -_0808B6FA: - cmp r0, #0x40 - bne _0808B724 - movs r0, #7 - b _0808B710 -_0808B702: - movs r0, #3 - b _0808B710 -_0808B706: - lsls r0, r1, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x10 - bls _0808B718 - movs r0, #1 -_0808B710: - ands r1, r0 - cmp r1, #0 - bne _0808B724 - b _0808B72A -_0808B718: - ldr r2, _0808B738 @ =gLinkEntity - ldrb r1, [r2, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2, #0x18] -_0808B724: - movs r0, #0 - cmp r0, #0 - beq _0808B736 -_0808B72A: - ldr r0, _0808B738 @ =gLinkEntity - ldrb r1, [r0, #0x14] - adds r1, #2 - movs r2, #6 - ands r1, r2 - strb r1, [r0, #0x14] -_0808B736: - pop {pc} - .align 2, 0 -_0808B738: .4byte gLinkEntity - - thumb_func_start sub_0808B73C -sub_0808B73C: @ 0x0808B73C - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0808B766 - movs r0, #1 - strb r0, [r4, #0xc] - ldr r0, [r4, #0x50] - ldrb r1, [r0, #0x1a] - lsls r1, r1, #0x1c - lsrs r1, r1, #0x1c - ldrb r2, [r4, #0x1a] - movs r0, #0x10 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #0x1a] - adds r0, r4, #0 - movs r1, #1 - bl UpdateSprite -_0808B766: - ldr r5, _0808B78C @ =gLinkEntity - movs r0, #0x2e - ldrsh r1, [r5, r0] - movs r0, #0x32 - ldrsh r2, [r5, r0] - adds r0, r4, #0 - movs r3, #0x28 - bl sub_0806FCB8 - cmp r0, #0 - beq _0808B790 - ldrb r0, [r4, #0x18] - movs r1, #4 - rsbs r1, r1, #0 - ands r1, r0 - movs r0, #1 - orrs r1, r0 - strb r1, [r4, #0x18] - b _0808B7C0 - .align 2, 0 -_0808B78C: .4byte gLinkEntity -_0808B790: - movs r0, #0x2e - ldrsh r1, [r5, r0] - movs r0, #0x32 - ldrsh r2, [r5, r0] - adds r0, r4, #0 - movs r3, #0x2e - bl sub_0806FCB8 - cmp r0, #0 - beq _0808B7B6 - ldrb r2, [r4, #0x18] - lsls r1, r2, #0x1e - lsrs r1, r1, #0x1e - movs r0, #1 - eors r1, r0 - subs r0, #5 - ands r0, r2 - orrs r0, r1 - b _0808B7BE -_0808B7B6: - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 -_0808B7BE: - strb r0, [r4, #0x18] -_0808B7C0: - adds r0, r4, #0 - bl sub_08004274 - pop {r4, r5, pc} - - thumb_func_start sub_0808B7C8 -sub_0808B7C8: @ 0x0808B7C8 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r2, _0808B824 @ =gLinkState - ldr r0, [r2, #0x30] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - bne _0808B82C - adds r0, r2, #0 - adds r0, #0xa8 - ldrb r0, [r0] - cmp r0, #0x12 - beq _0808B82C - ldr r4, _0808B828 @ =gLinkEntity - adds r0, r4, #0 - adds r0, #0x45 - ldrb r0, [r0] - cmp r0, #0 - beq _0808B82C - bl sub_08079F8C - cmp r0, #0 - beq _0808B82C - adds r0, r5, #0 - adds r1, r4, #0 - movs r2, #5 - movs r3, #5 - bl sub_080041A0 - cmp r0, #0 - beq _0808B82C - movs r1, #0x36 - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _0808B82C - ldrb r0, [r5, #0xe] - cmp r0, #0 - bne _0808B81E - ldrb r0, [r4, #0xc] - cmp r0, #0x1b - bne _0808B81E - bl sub_080791D0 -_0808B81E: - movs r0, #1 - b _0808B82E - .align 2, 0 -_0808B824: .4byte gLinkState -_0808B828: .4byte gLinkEntity -_0808B82C: - movs r0, #0 -_0808B82E: - pop {r4, r5, pc} - - thumb_func_start sub_0808B830 -sub_0808B830: @ 0x0808B830 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0 - movs r0, #3 - strb r0, [r4, #0xc] - strb r1, [r4, #0xe] - ldrb r1, [r4, #0x18] - subs r0, #7 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] - movs r0, #0x34 - movs r1, #0 - movs r2, #0 - bl CreateObject - adds r2, r0, #0 - cmp r2, #0 - beq _0808B86A - adds r1, r2, #0 - adds r1, #0x70 - movs r0, #1 - strb r0, [r1] - str r4, [r2, #0x50] - adds r0, r4, #0 - adds r1, r2, #0 - bl CopyPosition -_0808B86A: - pop {r4, pc} - - thumb_func_start sub_0808B86C -sub_0808B86C: @ 0x0808B86C - push {lr} - ldr r2, _0808B880 @ =gUnk_081213C4 - ldrb r1, [r0, #0xa] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0808B880: .4byte gUnk_081213C4 - - thumb_func_start sub_0808B884 -sub_0808B884: @ 0x0808B884 - push {lr} - ldr r2, _0808B898 @ =gUnk_081213D0 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0808B898: .4byte gUnk_081213D0 - - thumb_func_start sub_0808B89C -sub_0808B89C: @ 0x0808B89C - push {r4, lr} - adds r4, r0, #0 - movs r0, #2 - strb r0, [r4, #0xc] - strb r0, [r4, #0xb] - adds r1, r4, #0 - adds r1, #0x38 - strb r0, [r1] - adds r0, r4, #0 - bl UpdateSpriteOrderAndFlip - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r2] - movs r0, #0xb4 - strb r0, [r4, #0xe] - ldrb r1, [r4, #0xb] - adds r0, r4, #0 - bl UpdateSprite - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0808B8D4 -sub_0808B8D4: @ 0x0808B8D4 - push {r4, lr} - adds r4, r0, #0 - bl sub_08004274 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0808B904 - movs r0, #0xb4 - strb r0, [r4, #0xe] - ldrb r0, [r4, #0xb] - adds r0, #1 - strb r0, [r4, #0xb] - ldrb r0, [r4, #0xb] - movs r1, #3 - bl __modsi3 - strb r0, [r4, #0xb] - ldrb r1, [r4, #0xb] - adds r0, r4, #0 - bl UpdateSprite -_0808B904: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0808B908 -sub_0808B908: @ 0x0808B908 - push {lr} - bl sub_08004274 - pop {pc} - - thumb_func_start sub_0808B910 -sub_0808B910: @ 0x0808B910 - push {lr} - ldr r2, _0808B92C @ =gUnk_081213DC - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - ldr r2, _0808B930 @ =gLinkState - ldrb r1, [r2, #0x1a] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r2, #0x1a] - pop {pc} - .align 2, 0 -_0808B92C: .4byte gUnk_081213DC -_0808B930: .4byte gLinkState - - thumb_func_start sub_0808B934 -sub_0808B934: @ 0x0808B934 - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - movs r7, #0 - movs r0, #0xc0 - lsls r0, r0, #2 - strh r0, [r4, #0x24] - strb r7, [r4, #0x1e] - ldrh r1, [r4, #0x2e] - adds r0, r4, #0 - adds r0, #0x70 - strh r1, [r0] - ldrh r0, [r4, #0x32] - adds r1, r4, #0 - adds r1, #0x72 - strh r0, [r1] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #5 - orrs r0, r1 - strb r0, [r2] - movs r0, #0x2e - ldrsh r1, [r4, r0] - ldr r2, _0808B9B8 @ =gRoomControls - ldrh r0, [r2, #6] - subs r1, r1, r0 - asrs r1, r1, #4 - movs r3, #0x3f - ands r1, r3 - movs r5, #0x32 - ldrsh r0, [r4, r5] - ldrh r2, [r2, #8] - subs r0, r0, r2 - asrs r0, r0, #4 - ands r0, r3 - lsls r0, r0, #6 - orrs r1, r0 - adds r5, r4, #0 - adds r5, #0x76 - strh r1, [r5] - ldrh r0, [r5] - adds r6, r4, #0 - adds r6, #0x38 - ldrb r1, [r6] - bl sub_080001DA - adds r1, r4, #0 - adds r1, #0x74 - strh r0, [r1] - ldrb r0, [r4, #0xe] - cmp r0, #0 - bne _0808B9C0 - movs r0, #1 - strb r0, [r4, #0xc] - movs r0, #0x78 - strb r0, [r4, #0xf] - ldr r0, _0808B9BC @ =0x00004022 - ldrh r1, [r5] - ldrb r2, [r6] - bl sub_0800015E - b _0808B9D2 - .align 2, 0 -_0808B9B8: .4byte gRoomControls -_0808B9BC: .4byte 0x00004022 -_0808B9C0: - movs r0, #3 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - subs r0, #7 - ands r0, r1 - movs r1, #0x80 - orrs r0, r1 - strb r0, [r4, #0x18] - strb r7, [r4, #0xe] -_0808B9D2: - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_0808B9D4 -sub_0808B9D4: @ 0x0808B9D4 - push {r4, lr} - adds r4, r0, #0 - movs r0, #0 - bl sub_0807CC3C - cmp r0, #0 - beq _0808BA0A - movs r1, #0 - movs r0, #2 - strb r0, [r4, #0xc] - movs r0, #7 - strb r0, [r4, #0xe] - strb r1, [r4, #0x15] - adds r0, r4, #0 - adds r0, #0x74 - ldrh r0, [r0] - adds r1, r4, #0 - adds r1, #0x76 - ldrh r1, [r1] - adds r2, r4, #0 - adds r2, #0x38 - ldrb r2, [r2] - bl sub_0800015E - ldr r0, _0808BA0C @ =0x0000010B - bl sub_08004488 -_0808BA0A: - pop {r4, pc} - .align 2, 0 -_0808BA0C: .4byte 0x0000010B - - thumb_func_start sub_0808BA10 -sub_0808BA10: @ 0x0808BA10 - push {r4, lr} - adds r4, r0, #0 - bl sub_0806F69C - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0808BA44 - movs r0, #5 - strb r0, [r4, #0xc] - movs r0, #8 - strb r0, [r4, #0xe] - ldrb r1, [r4, #0x18] - subs r0, #0xc - ands r0, r1 - strb r0, [r4, #0x18] - adds r0, r4, #0 - adds r0, #0x70 - ldrh r0, [r0] - strh r0, [r4, #0x2e] - adds r0, r4, #0 - adds r0, #0x72 - ldrh r0, [r0] - strh r0, [r4, #0x32] -_0808BA44: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0808BA48 -sub_0808BA48: @ 0x0808BA48 - push {r4, lr} - adds r4, r0, #0 - movs r1, #2 - bl sub_08083734 - cmp r0, #0 - beq _0808BA68 - movs r0, #4 - strb r0, [r4, #0xc] - adds r0, r4, #0 - adds r0, #0x76 - ldrh r2, [r0] - adds r0, r4, #0 - movs r1, #2 - bl sub_080836DC -_0808BA68: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0808BA6C -sub_0808BA6C: @ 0x0808BA6C - push {r4, lr} - adds r4, r0, #0 - bl sub_0806F69C - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0808BAA4 - movs r0, #5 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #2 - bl sub_08083814 - ldr r0, _0808BAA8 @ =0x0000010B - bl sub_08004488 - ldr r0, _0808BAAC @ =0x00004022 - adds r1, r4, #0 - adds r1, #0x76 - ldrh r1, [r1] - adds r2, r4, #0 - adds r2, #0x38 - ldrb r2, [r2] - bl sub_0800015E -_0808BAA4: - pop {r4, pc} - .align 2, 0 -_0808BAA8: .4byte 0x0000010B -_0808BAAC: .4byte 0x00004022 - - thumb_func_start nullsub_520 -nullsub_520: @ 0x0808BAB0 - bx lr - .align 2, 0 - - thumb_func_start sub_0808BAB4 -sub_0808BAB4: @ 0x0808BAB4 - push {lr} - ldr r2, _0808BAC8 @ =gUnk_081213F4 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0808BAC8: .4byte gUnk_081213F4 - - thumb_func_start sub_0808BACC -sub_0808BACC: @ 0x0808BACC - push {r4, lr} - adds r2, r0, #0 - movs r4, #1 - strb r4, [r2, #0xc] - movs r3, #0x10 - strb r3, [r2, #0xe] - ldrh r0, [r2, #0x36] - subs r0, #0x10 - strh r0, [r2, #0x36] - ldrb r0, [r2, #0xb] - cmp r0, #0 - bne _0808BAEA - movs r0, #2 - strb r0, [r2, #0x1e] - b _0808BAFC -_0808BAEA: - movs r0, #0 - strb r0, [r2, #0x1e] - ldr r0, [r2, #0x50] - ldrh r1, [r0, #0x2e] - adds r0, r3, #0 - ands r0, r1 - cmp r0, #0 - beq _0808BAFC - strb r4, [r2, #0x1e] -_0808BAFC: - adds r0, r2, #0 - bl sub_080A29BC - pop {r4, pc} - - thumb_func_start sub_0808BB04 -sub_0808BB04: @ 0x0808BB04 - push {lr} - ldrb r1, [r0, #0xe] - subs r1, #1 - strb r1, [r0, #0xe] - lsls r1, r1, #0x18 - cmp r1, #0 - bne _0808BB16 - bl sub_0805E780 -_0808BB16: - pop {pc} - - thumb_func_start sub_0808BB18 -sub_0808BB18: @ 0x0808BB18 - push {lr} - ldr r2, _0808BB2C @ =gUnk_08121440 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0808BB2C: .4byte gUnk_08121440 - - thumb_func_start sub_0808BB30 -sub_0808BB30: @ 0x0808BB30 - push {r4, lr} - adds r4, r0, #0 - movs r0, #0x17 - bl GetProgressFlag - adds r1, r0, #0 - cmp r1, #0 - beq _0808BB4C - movs r0, #0x4a - bl sub_0801D7EC - bl sub_0805E780 - b _0808BBD4 -_0808BB4C: - movs r3, #1 - strb r3, [r4, #0xc] - ldrb r0, [r4, #0x10] - movs r2, #0x80 - orrs r0, r2 - strb r0, [r4, #0x10] - movs r0, #0x78 - strb r0, [r4, #0xe] - strb r1, [r4, #0xf] - ldrb r0, [r4, #0x19] - movs r1, #0xc0 - orrs r0, r1 - strb r0, [r4, #0x19] - movs r0, #0x29 - adds r0, r0, r4 - mov ip, r0 - ldrb r1, [r0] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #4 - orrs r0, r1 - mov r1, ip - strb r0, [r1] - ldrb r1, [r4, #0x1b] - movs r0, #0x3f - ands r0, r1 - orrs r0, r2 - strb r0, [r4, #0x1b] - movs r0, #0xc0 - lsls r0, r0, #2 - strh r0, [r4, #0x24] - adds r0, r4, #0 - adds r0, #0x3f - strb r3, [r0] - adds r1, r4, #0 - adds r1, #0x3c - movs r0, #7 - strb r0, [r1] - adds r1, #4 - movs r0, #0x48 - strb r0, [r1] - subs r1, #5 - movs r0, #4 - strb r0, [r1] - ldr r0, _0808BBD8 @ =gUnk_080FD150 - str r0, [r4, #0x48] - movs r0, #2 - strb r0, [r4, #0x1e] - ldr r0, _0808BBDC @ =gLinkEntity - adds r0, #0x38 - ldrb r1, [r0] - adds r0, r4, #0 - adds r0, #0x38 - strb r1, [r0] - adds r0, r4, #0 - bl sub_0808BDB0 - ldr r0, [r4, #0x50] - ldr r1, [r0, #0x20] - movs r2, #0xb8 - lsls r2, r2, #1 - adds r0, r2, #0 - subs r0, r0, r1 - strh r0, [r4, #0x32] - adds r0, r4, #0 - bl sub_0808BBE0 -_0808BBD4: - pop {r4, pc} - .align 2, 0 -_0808BBD8: .4byte gUnk_080FD150 -_0808BBDC: .4byte gLinkEntity - - thumb_func_start sub_0808BBE0 -sub_0808BBE0: @ 0x0808BBE0 - push {lr} - adds r3, r0, #0 - movs r1, #0x32 - ldrsh r0, [r3, r1] - ldr r1, _0808BC20 @ =gRoomControls - movs r2, #0xc - ldrsh r1, [r1, r2] - subs r1, r0, r1 - cmp r1, #0x9f - bhi _0808BC2C - adds r0, r1, #0 - cmp r1, #0 - bge _0808BBFC - adds r0, #0xf -_0808BBFC: - asrs r1, r0, #4 - ldr r0, _0808BC24 @ =gUnk_08121474 - adds r0, r1, r0 - ldrb r0, [r0] - adds r2, r3, #0 - adds r2, #0x63 - strb r0, [r2] - lsls r0, r1, #2 - ldr r1, _0808BC28 @ =gUnk_0812144C - adds r0, r0, r1 - ldrh r1, [r0] - ldrh r2, [r0, #2] - adds r0, r3, #0 - movs r3, #0 - bl sub_0805EC9C - b _0808BC38 - .align 2, 0 -_0808BC20: .4byte gRoomControls -_0808BC24: .4byte gUnk_08121474 -_0808BC28: .4byte gUnk_0812144C -_0808BC2C: - adds r2, r3, #0 - adds r2, #0x41 - ldrb r1, [r2] - movs r0, #0x7f - ands r0, r1 - strb r0, [r2] -_0808BC38: - pop {pc} - .align 2, 0 - - thumb_func_start sub_0808BC3C -sub_0808BC3C: @ 0x0808BC3C - push {r4, r5, r6, lr} - adds r5, r0, #0 - ldr r2, _0808BC98 @ =gRoomControls - ldrh r0, [r2, #6] - adds r0, #0x78 - movs r4, #0 - strh r0, [r5, #0x2e] - ldr r0, [r5, #0x50] - ldr r1, [r0, #0x20] - ldr r0, _0808BC9C @ =0xFFFFFE90 - adds r1, r1, r0 - ldrh r0, [r2, #8] - subs r0, r0, r1 - strh r0, [r5, #0x32] - adds r0, r5, #0 - bl sub_0808BBE0 - adds r0, r5, #0 - adds r0, #0x41 - ldrb r0, [r0] - cmp r0, #0x93 - bne _0808BCE4 - ldrb r0, [r5, #0xe] - subs r2, r0, #1 - strb r2, [r5, #0xe] - ldrb r1, [r5, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r5, #0x18] - lsls r0, r2, #0x18 - cmp r0, #0 - bne _0808BCA0 - movs r0, #0x17 - bl sub_0807CD04 - movs r0, #2 - strb r0, [r5, #0xc] - movs r0, #0x80 - strb r0, [r5, #0xf] - adds r0, r5, #0 - adds r0, #0x63 - strb r4, [r0] - b _0808BCFE - .align 2, 0 -_0808BC98: .4byte gRoomControls -_0808BC9C: .4byte 0xFFFFFE90 -_0808BCA0: - movs r6, #1 - ands r2, r6 - cmp r2, #0 - beq _0808BCCA - bl Random - movs r4, #3 - ands r0, r4 - ldr r1, _0808BCDC @ =0x0000FFFE - adds r0, r0, r1 - ldrh r1, [r5, #0x2e] - adds r0, r0, r1 - strh r0, [r5, #0x2e] - bl Random - ands r0, r4 - ldr r1, _0808BCE0 @ =0x0000FFFF - adds r0, r0, r1 - ldrh r1, [r5, #0x32] - adds r0, r0, r1 - strh r0, [r5, #0x32] -_0808BCCA: - ldrb r0, [r5, #0xf] - cmp r0, #1 - beq _0808BCFE - strb r6, [r5, #0xf] - movs r0, #0x4a - bl sub_0801D7EC - b _0808BCFE - .align 2, 0 -_0808BCDC: .4byte 0x0000FFFE -_0808BCE0: .4byte 0x0000FFFF -_0808BCE4: - movs r0, #0x78 - strb r0, [r5, #0xe] - ldrb r1, [r5, #0x18] - subs r0, #0x7c - ands r0, r1 - strb r0, [r5, #0x18] - ldrb r0, [r5, #0xf] - cmp r0, #0 - beq _0808BCFE - strb r4, [r5, #0xf] - movs r0, #0x49 - bl sub_0801D7EC -_0808BCFE: - pop {r4, r5, r6, pc} - - thumb_func_start sub_0808BD00 -sub_0808BD00: @ 0x0808BD00 - push {lr} - movs r0, #0x17 - bl sub_0807CD04 - movs r0, #0x72 - bl PlaySFX - bl sub_0805E780 - pop {pc} - - thumb_func_start sub_0808BD14 -sub_0808BD14: @ 0x0808BD14 - push {r4, r5, lr} - adds r5, r0, #0 - ldrb r0, [r5, #0xf] - cmp r0, #0 - beq _0808BD34 - subs r0, #8 - strb r0, [r5, #0xf] - ldrb r0, [r5, #0xf] - movs r2, #0x80 - lsls r2, r2, #2 - subs r2, r2, r0 - adds r0, r5, #0 - adds r1, r2, #0 - movs r3, #0 - bl sub_0805EC9C -_0808BD34: - adds r0, r5, #0 - adds r0, #0x41 - ldrb r0, [r0] - cmp r0, #0x93 - bne _0808BD74 - ldr r4, _0808BD70 @ =gLinkEntity - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_080045C4 - strb r0, [r5, #0x15] - adds r0, r5, #0 - bl sub_0806F69C - movs r0, #0x2e - ldrsh r1, [r4, r0] - movs r0, #0x32 - ldrsh r2, [r4, r0] - subs r2, #6 - adds r0, r5, #0 - movs r3, #0x1c - bl sub_0806FCB8 - cmp r0, #0 - beq _0808BDAE - adds r0, r5, #0 - bl sub_0808BD00 - b _0808BDAE - .align 2, 0 -_0808BD70: .4byte gLinkEntity -_0808BD74: - ldrb r1, [r5, #0x10] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0808BD8A - movs r0, #0x7f - ands r0, r1 - strb r0, [r5, #0x10] - movs r0, #0x1e - strb r0, [r5, #0xe] - b _0808BDAE -_0808BD8A: - ldrb r2, [r5, #0x18] - lsls r1, r2, #0x1e - lsrs r1, r1, #0x1e - movs r0, #1 - eors r1, r0 - subs r0, #5 - ands r0, r2 - orrs r0, r1 - strb r0, [r5, #0x18] - ldrb r0, [r5, #0xe] - subs r0, #1 - strb r0, [r5, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0808BDAE - adds r0, r5, #0 - bl sub_0808BD00 -_0808BDAE: - pop {r4, r5, pc} - - thumb_func_start sub_0808BDB0 -sub_0808BDB0: @ 0x0808BDB0 - push {r4, r5, r6, lr} - adds r3, r0, #0 - ldr r4, _0808BDD4 @ =gUnk_03003DA0 - ldr r2, [r4, #4] - movs r0, #0 - str r0, [r3, #0x50] - cmp r2, r4 - beq _0808BDE6 - ldr r6, _0808BDD8 @ =0x0000FFFF - ldr r5, _0808BDDC @ =0x00000C09 -_0808BDC4: - ldrh r1, [r2, #8] - adds r0, r6, #0 - ands r0, r1 - cmp r0, r5 - bne _0808BDE0 - str r2, [r3, #0x50] - b _0808BDE6 - .align 2, 0 -_0808BDD4: .4byte gUnk_03003DA0 -_0808BDD8: .4byte 0x0000FFFF -_0808BDDC: .4byte 0x00000C09 -_0808BDE0: - ldr r2, [r2, #4] - cmp r2, r4 - bne _0808BDC4 -_0808BDE6: - pop {r4, r5, r6, pc} - - thumb_func_start sub_0808BDE8 -sub_0808BDE8: @ 0x0808BDE8 - push {lr} - ldr r2, _0808BDFC @ =gUnk_08121480 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0808BDFC: .4byte gUnk_08121480 - - thumb_func_start sub_0808BE00 -sub_0808BE00: @ 0x0808BE00 - push {r4, r5, lr} - adds r5, r0, #0 - adds r0, #0x38 - ldrb r0, [r0] - bl sub_0808094C - adds r4, r0, #0 - adds r0, r5, #0 - bl sub_0806F798 - lsls r0, r0, #1 - adds r0, #4 - adds r4, r4, r0 - str r4, [r5, #0x78] - ldrh r1, [r4] - adds r0, r5, #0 - adds r0, #0x70 - strh r1, [r0] - movs r0, #1 - strb r0, [r5, #0xc] - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_0808BE2C -sub_0808BE2C: @ 0x0808BE2C - push {r4, lr} - adds r2, r0, #0 - ldr r0, _0808BE78 @ =gUnk_02002A40 - ldr r1, _0808BE7C @ =0x0000024E - adds r4, r0, r1 - ldrb r0, [r4] - cmp r0, #0 - beq _0808BE74 - adds r0, r2, #0 - adds r0, #0x70 - ldr r1, [r2, #0x78] - ldrh r0, [r0] - ldrh r1, [r1] - cmp r0, r1 - beq _0808BE74 - adds r0, r2, #0 - movs r1, #0x58 - movs r2, #0 - bl sub_080A2A20 - adds r1, r0, #0 - cmp r1, #0 - beq _0808BE6C - ldr r0, _0808BE80 @ =gLinkEntity - ldrb r0, [r0, #0x14] - lsls r0, r0, #2 - strb r0, [r1, #0x15] - movs r0, #0x80 - strh r0, [r1, #0x24] - movs r0, #0x80 - lsls r0, r0, #0xa - str r0, [r1, #0x20] -_0808BE6C: - movs r0, #1 - strb r0, [r4] - bl sub_0805E780 -_0808BE74: - pop {r4, pc} - .align 2, 0 -_0808BE78: .4byte gUnk_02002A40 -_0808BE7C: .4byte 0x0000024E -_0808BE80: .4byte gLinkEntity - - thumb_func_start sub_0808BE84 -sub_0808BE84: @ 0x0808BE84 - push {lr} - ldr r2, _0808BE98 @ =gUnk_08121488 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0808BE98: .4byte gUnk_08121488 - - thumb_func_start sub_0808BE9C -sub_0808BE9C: @ 0x0808BE9C - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r1, [r4, #0x10] - movs r0, #0x80 - movs r2, #0 - orrs r0, r1 - strb r0, [r4, #0x10] - adds r0, r4, #0 - adds r0, #0x3f - movs r5, #1 - strb r5, [r0] - adds r1, r4, #0 - adds r1, #0x3c - movs r0, #0x47 - strb r0, [r1] - adds r1, #4 - movs r0, #0x44 - strb r0, [r1] - subs r1, #5 - movs r0, #0x80 - strb r0, [r1] - adds r0, r4, #0 - adds r0, #0x68 - strb r2, [r0] - ldrb r0, [r4, #0xa] - bl sub_0807CBD0 - cmp r0, #0 - beq _0808BEEE - adds r0, r4, #0 - adds r0, #0x7c - ldrb r0, [r0] - cmp r0, #0 - bne _0808BEF8 - movs r0, #3 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #1 - bl LoadAnimation - b _0808BF10 -_0808BEEE: - adds r0, r4, #0 - adds r0, #0x7c - ldrb r0, [r0] - cmp r0, #0 - bne _0808BF04 -_0808BEF8: - strb r5, [r4, #0xc] - adds r0, r4, #0 - movs r1, #0 - bl LoadAnimation - b _0808BF10 -_0808BF04: - movs r0, #3 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #1 - bl LoadAnimation -_0808BF10: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_0808BF14 -sub_0808BF14: @ 0x0808BF14 - push {r4, lr} - adds r4, r0, #0 - bl sub_0808C128 - cmp r0, #0 - beq _0808BF4C - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - bl sub_0808C13C - adds r0, r4, #0 - adds r0, #0x7c - ldrb r0, [r0] - cmp r0, #0 - bne _0808BF3E - ldrb r0, [r4, #0xa] - bl sub_0807CCB4 - b _0808BF44 -_0808BF3E: - ldrb r0, [r4, #0xa] - bl sub_0807CD34 -_0808BF44: - adds r0, r4, #0 - movs r1, #0 - bl sub_0808C148 -_0808BF4C: - adds r0, r4, #0 - movs r1, #0 - bl sub_0808C01C - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0808BF58 -sub_0808BF58: @ 0x0808BF58 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x80 - lsls r1, r1, #6 - bl sub_08003FC4 - ldrb r0, [r4, #0xd] - cmp r0, #1 - beq _0808BF94 - cmp r0, #1 - bgt _0808BF74 - cmp r0, #0 - beq _0808BF7A - b _0808BFD6 -_0808BF74: - cmp r0, #2 - beq _0808BFB0 - b _0808BFD6 -_0808BF7A: - ldr r1, [r4, #0x20] - ldr r0, _0808BF90 @ =0x00017FFF - cmp r1, r0 - bgt _0808BFD6 - movs r0, #1 - strb r0, [r4, #0xd] - adds r0, r4, #0 - movs r1, #2 - bl LoadAnimation - b _0808BFD6 - .align 2, 0 -_0808BF90: .4byte 0x00017FFF -_0808BF94: - adds r0, r4, #0 - bl sub_080042B8 - movs r1, #0x36 - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _0808BFD6 - ldrb r0, [r4, #0xd] - adds r0, #1 - strb r0, [r4, #0xd] - movs r0, #0x80 - lsls r0, r0, #8 - str r0, [r4, #0x20] - b _0808BFD6 -_0808BFB0: - adds r0, r4, #0 - bl sub_080042B8 - movs r0, #0x36 - ldrsh r1, [r4, r0] - cmp r1, #0 - bne _0808BFD6 - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] - strb r1, [r4, #0xf] - adds r0, r4, #0 - movs r1, #1 - bl LoadAnimation - adds r0, r4, #0 - movs r1, #1 - bl sub_0808C148 -_0808BFD6: - pop {r4, pc} - - thumb_func_start sub_0808BFD8 -sub_0808BFD8: @ 0x0808BFD8 - push {r4, lr} - adds r4, r0, #0 - bl sub_0808C128 - cmp r0, #0 - beq _0808C010 - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - bl sub_0808C13C - adds r0, r4, #0 - adds r0, #0x7c - ldrb r0, [r0] - cmp r0, #0 - bne _0808C002 - ldrb r0, [r4, #0xa] - bl sub_0807CD34 - b _0808C008 -_0808C002: - ldrb r0, [r4, #0xa] - bl sub_0807CCB4 -_0808C008: - adds r0, r4, #0 - movs r1, #0 - bl sub_0808C148 -_0808C010: - adds r0, r4, #0 - movs r1, #1 - bl sub_0808C01C - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0808C01C -sub_0808C01C: @ 0x0808C01C - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r5, r1, #0 - movs r1, #0x2e - ldrsh r0, [r4, r1] - subs r0, #0x18 - movs r2, #0x32 - ldrsh r1, [r4, r2] - subs r1, #0x18 - movs r2, #0x30 - movs r3, #0x30 - bl sub_0806FBFC - cmp r0, #0 - beq _0808C0A6 - ldr r2, _0808C06C @ =gUnk_02033A90 - ldrh r0, [r4, #0x2e] - strh r0, [r2, #0x12] - ldrh r0, [r4, #0x32] - strh r0, [r2, #0x14] - movs r6, #2 - strb r6, [r2, #0x16] - movs r0, #4 - cmp r5, #0 - beq _0808C050 - movs r0, #2 -_0808C050: - strb r0, [r2, #0x17] - cmp r5, #1 - bne _0808C0A6 - ldr r3, _0808C070 @ =gLinkState - ldr r0, [r3, #0x30] - movs r1, #0x20 - ands r0, r1 - cmp r0, #0 - beq _0808C074 - ldrb r0, [r3, #2] - cmp r0, #0 - bne _0808C074 - strb r6, [r2, #0x18] - b _0808C082 - .align 2, 0 -_0808C06C: .4byte gUnk_02033A90 -_0808C070: .4byte gLinkState -_0808C074: - bl sub_08057810 - cmp r0, #0 - beq _0808C082 - ldr r1, _0808C0A8 @ =gUnk_02033A90 - movs r0, #3 - strb r0, [r1, #0x18] -_0808C082: - movs r1, #0x2e - ldrsh r0, [r4, r1] - movs r2, #0x32 - ldrsh r1, [r4, r2] - adds r2, r4, #0 - adds r2, #0x38 - ldrb r2, [r2] - bl sub_080577AC - ldrb r0, [r4, #0xf] - cmp r0, #0 - bne _0808C0A6 - movs r0, #1 - strb r0, [r4, #0xf] - movs r0, #0xa9 - lsls r0, r0, #1 - bl PlaySFX -_0808C0A6: - pop {r4, r5, r6, pc} - .align 2, 0 -_0808C0A8: .4byte gUnk_02033A90 - - thumb_func_start sub_0808C0AC -sub_0808C0AC: @ 0x0808C0AC - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x80 - lsls r1, r1, #6 - bl sub_08003FC4 - ldrb r0, [r4, #0xd] - cmp r0, #1 - beq _0808C0E8 - cmp r0, #1 - bgt _0808C0C8 - cmp r0, #0 - beq _0808C0CE - b _0808C126 -_0808C0C8: - cmp r0, #2 - beq _0808C104 - b _0808C126 -_0808C0CE: - ldr r1, [r4, #0x20] - ldr r0, _0808C0E4 @ =0x00017FFF - cmp r1, r0 - bgt _0808C126 - movs r0, #1 - strb r0, [r4, #0xd] - adds r0, r4, #0 - movs r1, #3 - bl LoadAnimation - b _0808C126 - .align 2, 0 -_0808C0E4: .4byte 0x00017FFF -_0808C0E8: - adds r0, r4, #0 - bl sub_080042B8 - movs r1, #0x36 - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _0808C126 - ldrb r0, [r4, #0xd] - adds r0, #1 - strb r0, [r4, #0xd] - movs r0, #0x80 - lsls r0, r0, #8 - str r0, [r4, #0x20] - b _0808C126 -_0808C104: - adds r0, r4, #0 - bl sub_080042B8 - movs r1, #0x36 - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _0808C126 - movs r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #0 - bl LoadAnimation - adds r0, r4, #0 - movs r1, #1 - bl sub_0808C148 -_0808C126: - pop {r4, pc} - - thumb_func_start sub_0808C128 -sub_0808C128: @ 0x0808C128 - push {lr} - movs r1, #0 - adds r0, #0x41 - ldrb r0, [r0] - cmp r0, #0x9d - bne _0808C136 - movs r1, #1 -_0808C136: - adds r0, r1, #0 - pop {pc} - .align 2, 0 - - thumb_func_start sub_0808C13C -sub_0808C13C: @ 0x0808C13C - movs r1, #0 - strb r1, [r0, #0xd] - movs r1, #0xa0 - lsls r1, r1, #0xa - str r1, [r0, #0x20] - bx lr - - thumb_func_start sub_0808C148 -sub_0808C148: @ 0x0808C148 - push {r4, r5, r6, lr} - adds r6, r0, #0 - movs r2, #0x2e - ldrsh r0, [r6, r2] - ldr r4, _0808C1A4 @ =gRoomControls - ldrh r2, [r4, #6] - subs r0, r0, r2 - asrs r5, r0, #4 - movs r3, #0x3f - ands r5, r3 - movs r2, #0x32 - ldrsh r0, [r6, r2] - ldrh r2, [r4, #8] - subs r0, r0, r2 - asrs r0, r0, #4 - ands r0, r3 - lsls r0, r0, #6 - orrs r5, r0 - cmp r1, #0 - bne _0808C1B8 - ldr r0, _0808C1A8 @ =0x00004092 - subs r1, r5, #1 - adds r4, r6, #0 - adds r4, #0x38 - ldrb r2, [r4] - bl sub_0800015E - ldr r0, _0808C1AC @ =0x00004093 - ldrb r2, [r4] - adds r1, r5, #0 - bl sub_0800015E - ldr r0, _0808C1B0 @ =0x00004094 - adds r1, r5, #0 - adds r1, #0x3f - ldrb r2, [r4] - bl sub_0800015E - ldr r0, _0808C1B4 @ =0x00004095 - adds r1, r5, #0 - adds r1, #0x40 - ldrb r2, [r4] - bl sub_0800015E - b _0808C1E0 - .align 2, 0 -_0808C1A4: .4byte gRoomControls -_0808C1A8: .4byte 0x00004092 -_0808C1AC: .4byte 0x00004093 -_0808C1B0: .4byte 0x00004094 -_0808C1B4: .4byte 0x00004095 -_0808C1B8: - subs r0, r5, #1 - adds r4, r6, #0 - adds r4, #0x38 - ldrb r1, [r4] - bl sub_0807BA8C - ldrb r1, [r4] - adds r0, r5, #0 - bl sub_0807BA8C - adds r0, r5, #0 - adds r0, #0x3f - ldrb r1, [r4] - bl sub_0807BA8C - adds r0, r5, #0 - adds r0, #0x40 - ldrb r1, [r4] - bl sub_0807BA8C -_0808C1E0: - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_0808C1E4 -sub_0808C1E4: @ 0x0808C1E4 - push {lr} - ldr r2, _0808C1F8 @ =gUnk_081214D8 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0808C1F8: .4byte gUnk_081214D8 - - thumb_func_start sub_0808C1FC -sub_0808C1FC: @ 0x0808C1FC - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r2, r4, #0 - adds r2, #0x84 - ldrh r1, [r2] - ldr r0, _0808C2B0 @ =0x0000FFFF - cmp r1, r0 - beq _0808C21A - adds r0, r1, #0 - bl sub_0807CBE4 - cmp r0, #0 - beq _0808C21A - bl sub_0805E780 -_0808C21A: - adds r1, r4, #0 - adds r1, #0x86 - ldrh r0, [r1] - cmp r0, #0 - beq _0808C230 - bl sub_0807CBE4 - cmp r0, #0 - beq _0808C230 - bl sub_0805E780 -_0808C230: - ldrb r0, [r4, #0xa] - lsrs r0, r0, #2 - strb r0, [r4, #0xb] - movs r0, #0xc0 - lsls r0, r0, #2 - strh r0, [r4, #0x24] - ldrh r1, [r4, #0x2e] - adds r0, r4, #0 - adds r0, #0x70 - strh r1, [r0] - ldrh r0, [r4, #0x32] - adds r1, r4, #0 - adds r1, #0x72 - strh r0, [r1] - ldr r0, _0808C2B4 @ =gUnk_080FD180 - str r0, [r4, #0x48] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #5 - orrs r0, r1 - strb r0, [r2] - ldrb r1, [r4, #0xa] - movs r0, #3 - ands r0, r1 - adds r5, r4, #0 - adds r5, #0x76 - strh r0, [r5] - movs r0, #0x2e - ldrsh r1, [r4, r0] - ldr r2, _0808C2B8 @ =gRoomControls - ldrh r0, [r2, #6] - subs r1, r1, r0 - asrs r1, r1, #4 - movs r3, #0x3f - ands r1, r3 - movs r6, #0x32 - ldrsh r0, [r4, r6] - ldrh r2, [r2, #8] - subs r0, r0, r2 - asrs r0, r0, #4 - ands r0, r3 - lsls r0, r0, #6 - orrs r1, r0 - adds r0, r4, #0 - adds r0, #0x74 - strh r1, [r0] - ldrb r0, [r4, #0xa] - movs r1, #0x1f - ands r1, r0 - adds r0, r4, #0 - bl UpdateSprite - ldrb r0, [r4, #0xb] - cmp r0, #1 - beq _0808C2F8 - cmp r0, #1 - bgt _0808C2BC - cmp r0, #0 - beq _0808C2C2 - b _0808C31C - .align 2, 0 -_0808C2B0: .4byte 0x0000FFFF -_0808C2B4: .4byte gUnk_080FD180 -_0808C2B8: .4byte gRoomControls -_0808C2BC: - cmp r0, #2 - beq _0808C306 - b _0808C31C -_0808C2C2: - movs r2, #1 - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - subs r0, #5 - ands r0, r1 - orrs r0, r2 - strb r0, [r4, #0x18] - adds r0, r4, #0 - bl sub_0808C500 - adds r0, r4, #0 - bl sub_08078800 - ldr r1, _0808C2F4 @ =gUnk_0811F740 - ldrh r0, [r5] - adds r0, r0, r1 - ldrb r2, [r0] - adds r0, r4, #0 - movs r1, #0 - movs r3, #0 - bl sub_08078850 - b _0808C31C - .align 2, 0 -_0808C2F4: .4byte gUnk_0811F740 -_0808C2F8: - movs r0, #4 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - subs r0, #8 - ands r0, r1 - strb r0, [r4, #0x18] - b _0808C31C -_0808C306: - movs r2, #1 - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - subs r0, #5 - ands r0, r1 - orrs r0, r2 - strb r0, [r4, #0x18] - adds r0, r4, #0 - bl sub_0808C500 -_0808C31C: - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_0808C320 -sub_0808C320: @ 0x0808C320 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x39 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - beq _0808C344 - movs r0, #2 - strb r0, [r4, #0xc] - adds r0, r4, #0 - bl sub_080788E0 - adds r0, r4, #0 - adds r0, #0x86 - ldrh r0, [r0] - bl sub_0807CCC8 -_0808C344: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0808C348 -sub_0808C348: @ 0x0808C348 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _0808C37C - ldr r0, _0808C374 @ =gUnk_030010A0 - ldr r0, [r0] - movs r1, #3 - ands r0, r1 - cmp r0, #0 - bne _0808C36A - ldr r0, _0808C378 @ =0x00000185 - bl PlaySFX -_0808C36A: - adds r0, r4, #0 - bl sub_08004274 - b _0808C382 - .align 2, 0 -_0808C374: .4byte gUnk_030010A0 -_0808C378: .4byte 0x00000185 -_0808C37C: - adds r0, r4, #0 - bl sub_0808C4BC -_0808C382: - pop {r4, pc} - - thumb_func_start sub_0808C384 -sub_0808C384: @ 0x0808C384 - push {r4, lr} - adds r4, r0, #0 - bl sub_0806F69C - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0808C3B4 - ldrb r0, [r4, #0xa] - cmp r0, #3 - bhi _0808C3B0 - movs r0, #0x40 - movs r1, #0 - movs r2, #1 - bl sub_08078AC0 - ldr r1, _0808C3B8 @ =gLinkEntity - ldrb r0, [r4, #0xa] - lsls r0, r0, #3 - strb r0, [r1, #0x15] -_0808C3B0: - bl sub_0805E780 -_0808C3B4: - pop {r4, pc} - .align 2, 0 -_0808C3B8: .4byte gLinkEntity - - thumb_func_start sub_0808C3BC -sub_0808C3BC: @ 0x0808C3BC - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r4, #0 - adds r5, #0x76 - ldrh r1, [r5] - bl sub_08083734 - cmp r0, #0 - beq _0808C40E - movs r0, #5 - strb r0, [r4, #0xc] - movs r0, #0xc - strb r0, [r4, #0xe] - ldrb r1, [r4, #0x18] - subs r0, #0x10 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] - ldrb r0, [r5] - lsls r0, r0, #3 - movs r1, #0x10 - eors r0, r1 - strb r0, [r4, #0x15] - ldrh r1, [r5] - lsls r1, r1, #1 - ldr r0, _0808C410 @ =gUnk_081214F4 - adds r1, r1, r0 - movs r0, #0 - ldrsb r0, [r1, r0] - ldrh r2, [r4, #0x2e] - adds r0, r0, r2 - strh r0, [r4, #0x2e] - movs r0, #1 - ldrsb r0, [r1, r0] - ldrh r1, [r4, #0x32] - adds r0, r0, r1 - strh r0, [r4, #0x32] - adds r0, r4, #0 - bl sub_0808C500 -_0808C40E: - pop {r4, r5, pc} - .align 2, 0 -_0808C410: .4byte gUnk_081214F4 - - thumb_func_start sub_0808C414 -sub_0808C414: @ 0x0808C414 - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_0806F69C - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - bne _0808C49A - movs r0, #6 - strb r0, [r4, #0xc] - strh r1, [r4, #0x36] - adds r0, r4, #0 - adds r0, #0x70 - ldrh r0, [r0] - strh r0, [r4, #0x2e] - adds r0, r4, #0 - adds r0, #0x72 - ldrh r0, [r0] - strh r0, [r4, #0x32] - adds r0, r4, #0 - adds r0, #0x76 - ldrh r0, [r0] - lsls r0, r0, #2 - ldr r1, _0808C49C @ =gUnk_081214FC - adds r5, r0, r1 - adds r0, r4, #0 - movs r1, #0x11 - movs r2, #0x40 - bl CreateFX - adds r1, r0, #0 - cmp r1, #0 - beq _0808C470 - movs r0, #0 - ldrsb r0, [r5, r0] - ldrh r2, [r1, #0x2e] - adds r0, r0, r2 - strh r0, [r1, #0x2e] - movs r0, #1 - ldrsb r0, [r5, r0] - ldrh r2, [r1, #0x32] - adds r0, r0, r2 - strh r0, [r1, #0x32] -_0808C470: - adds r0, r4, #0 - movs r1, #0x11 - movs r2, #0x40 - bl CreateFX - adds r1, r0, #0 - cmp r1, #0 - beq _0808C494 - movs r0, #2 - ldrsb r0, [r5, r0] - ldrh r2, [r1, #0x2e] - adds r0, r0, r2 - strh r0, [r1, #0x2e] - movs r0, #3 - ldrsb r0, [r5, r0] - ldrh r2, [r1, #0x32] - adds r0, r0, r2 - strh r0, [r1, #0x32] -_0808C494: - ldr r0, _0808C4A0 @ =0x0000010B - bl sub_08004488 -_0808C49A: - pop {r4, r5, pc} - .align 2, 0 -_0808C49C: .4byte gUnk_081214FC -_0808C4A0: .4byte 0x0000010B - - thumb_func_start sub_0808C4A4 -sub_0808C4A4: @ 0x0808C4A4 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x86 - ldrh r0, [r0] - bl sub_0807CBE4 - cmp r0, #0 - beq _0808C4B8 - movs r0, #2 - strb r0, [r4, #0xc] -_0808C4B8: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0808C4BC -sub_0808C4BC: @ 0x0808C4BC - push {lr} - movs r1, #3 - strb r1, [r0, #0xc] - movs r1, #0xc - strb r1, [r0, #0xe] - adds r2, r0, #0 - adds r2, #0x76 - ldrh r1, [r2] - lsls r1, r1, #3 - strb r1, [r0, #0x15] - ldrh r2, [r2] - lsls r2, r2, #1 - ldr r1, _0808C4F8 @ =gUnk_0812150C - adds r2, r2, r1 - movs r1, #0 - ldrsb r1, [r2, r1] - ldrh r3, [r0, #0x2e] - adds r1, r1, r3 - strh r1, [r0, #0x2e] - movs r1, #1 - ldrsb r1, [r2, r1] - ldrh r2, [r0, #0x32] - adds r1, r1, r2 - strh r1, [r0, #0x32] - bl sub_0808C5D0 - ldr r0, _0808C4FC @ =0x0000010B - bl PlaySFX - pop {pc} - .align 2, 0 -_0808C4F8: .4byte gUnk_0812150C -_0808C4FC: .4byte 0x0000010B - - thumb_func_start sub_0808C500 -sub_0808C500: @ 0x0808C500 - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r0, #0x76 - ldrh r0, [r0] - cmp r0, #0 - beq _0808C510 - cmp r0, #2 - bne _0808C570 -_0808C510: - adds r6, r4, #0 - adds r6, #0x74 - ldrh r0, [r6] - subs r0, #1 - adds r5, r4, #0 - adds r5, #0x38 - ldrb r1, [r5] - bl sub_080001DA - adds r1, r4, #0 - adds r1, #0x78 - strh r0, [r1] - ldrh r0, [r6] - ldrb r1, [r5] - bl sub_080001DA - adds r1, r4, #0 - adds r1, #0x7a - strh r0, [r1] - ldrh r0, [r6] - adds r0, #1 - ldrb r1, [r5] - bl sub_080001DA - adds r1, r4, #0 - adds r1, #0x7c - strh r0, [r1] - ldr r4, _0808C56C @ =0x00004022 - ldrh r1, [r6] - subs r1, #1 - ldrb r2, [r5] - adds r0, r4, #0 - bl sub_0800015E - ldrh r1, [r6] - ldrb r2, [r5] - adds r0, r4, #0 - bl sub_0800015E - ldrh r1, [r6] - adds r1, #1 - ldrb r2, [r5] - adds r0, r4, #0 - bl sub_0800015E - b _0808C5CA - .align 2, 0 -_0808C56C: .4byte 0x00004022 -_0808C570: - adds r6, r4, #0 - adds r6, #0x74 - ldrh r0, [r6] - subs r0, #0x40 - adds r5, r4, #0 - adds r5, #0x38 - ldrb r1, [r5] - bl sub_080001DA - adds r1, r4, #0 - adds r1, #0x78 - strh r0, [r1] - ldrh r0, [r6] - ldrb r1, [r5] - bl sub_080001DA - adds r1, r4, #0 - adds r1, #0x7a - strh r0, [r1] - ldrh r0, [r6] - adds r0, #0x40 - ldrb r1, [r5] - bl sub_080001DA - adds r1, r4, #0 - adds r1, #0x7c - strh r0, [r1] - ldr r4, _0808C5CC @ =0x00004022 - ldrh r1, [r6] - subs r1, #0x40 - ldrb r2, [r5] - adds r0, r4, #0 - bl sub_0800015E - ldrh r1, [r6] - ldrb r2, [r5] - adds r0, r4, #0 - bl sub_0800015E - ldrh r1, [r6] - adds r1, #0x40 - ldrb r2, [r5] - adds r0, r4, #0 - bl sub_0800015E -_0808C5CA: - pop {r4, r5, r6, pc} - .align 2, 0 -_0808C5CC: .4byte 0x00004022 - - thumb_func_start sub_0808C5D0 -sub_0808C5D0: @ 0x0808C5D0 - push {r4, r5, r6, lr} - adds r6, r0, #0 - adds r0, #0x76 - ldrh r0, [r0] - cmp r0, #0 - beq _0808C5E0 - cmp r0, #2 - bne _0808C618 -_0808C5E0: - adds r0, r6, #0 - adds r0, #0x78 - ldrh r0, [r0] - adds r5, r6, #0 - adds r5, #0x74 - ldrh r1, [r5] - subs r1, #1 - adds r4, r6, #0 - adds r4, #0x38 - ldrb r2, [r4] - bl sub_0800015E - adds r0, r6, #0 - adds r0, #0x7a - ldrh r0, [r0] - ldrh r1, [r5] - ldrb r2, [r4] - bl sub_0800015E - adds r0, r6, #0 - adds r0, #0x7c - ldrh r0, [r0] - ldrh r1, [r5] - adds r1, #1 - ldrb r2, [r4] - bl sub_0800015E - b _0808C64E -_0808C618: - adds r0, r6, #0 - adds r0, #0x78 - ldrh r0, [r0] - adds r5, r6, #0 - adds r5, #0x74 - ldrh r1, [r5] - subs r1, #0x40 - adds r4, r6, #0 - adds r4, #0x38 - ldrb r2, [r4] - bl sub_0800015E - adds r0, r6, #0 - adds r0, #0x7a - ldrh r0, [r0] - ldrh r1, [r5] - ldrb r2, [r4] - bl sub_0800015E - adds r0, r6, #0 - adds r0, #0x7c - ldrh r0, [r0] - ldrh r1, [r5] - adds r1, #0x40 - ldrb r2, [r4] - bl sub_0800015E -_0808C64E: - pop {r4, r5, r6, pc} - - thumb_func_start sub_0808C650 -sub_0808C650: @ 0x0808C650 - push {r4, lr} - adds r4, r0, #0 - adds r2, r1, #0 - movs r0, #0x3a - movs r1, #0 - bl CreateObject - cmp r0, #0 - beq _0808C670 - str r4, [r0, #0x50] - ldr r1, _0808C66C @ =gUnk_02036BB8 - movs r0, #0 - b _0808C674 - .align 2, 0 -_0808C66C: .4byte gUnk_02036BB8 -_0808C670: - ldr r1, _0808C678 @ =gUnk_02036BB8 - movs r0, #1 -_0808C674: - str r0, [r1] - pop {r4, pc} - .align 2, 0 -_0808C678: .4byte gUnk_02036BB8 - - thumb_func_start sub_0808C67C -sub_0808C67C: @ 0x0808C67C - ldr r0, _0808C684 @ =gUnk_02036BB8 - ldr r0, [r0] - bx lr - .align 2, 0 -_0808C684: .4byte gUnk_02036BB8 - - thumb_func_start sub_0808C688 -sub_0808C688: @ 0x0808C688 - push {lr} - bl sub_0801E104 - ldr r1, _0808C698 @ =gUnk_02036BB8 - movs r0, #1 - str r0, [r1] - pop {pc} - .align 2, 0 -_0808C698: .4byte gUnk_02036BB8 - - thumb_func_start sub_0808C69C -sub_0808C69C: @ 0x0808C69C - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xa] - cmp r0, #0 - bne _0808C6BC - ldr r0, _0808C6B8 @ =gUnk_08121638 - ldrb r1, [r2, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r2, #0 - bl _call_via_r1 - b _0808C6CC - .align 2, 0 -_0808C6B8: .4byte gUnk_08121638 -_0808C6BC: - ldr r0, _0808C6D0 @ =gUnk_08121640 - ldrb r1, [r2, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r2, #0 - bl _call_via_r1 -_0808C6CC: - pop {pc} - .align 2, 0 -_0808C6D0: .4byte gUnk_08121640 - - thumb_func_start sub_0808C6D4 -sub_0808C6D4: @ 0x0808C6D4 - push {r4, r5, lr} - adds r5, r0, #0 - ldrb r1, [r5, #0xb] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _0808C744 @ =gUnk_081215E8 - adds r4, r0, r1 - ldrh r0, [r4, #4] - adds r1, r5, #0 - adds r1, #0x86 - strh r0, [r1] - ldrh r0, [r4, #6] - subs r1, #1 - strb r0, [r1] - ldrh r1, [r4, #8] - adds r0, r5, #0 - adds r0, #0x84 - strb r1, [r0] - ldrh r0, [r4, #0xa] - adds r1, r5, #0 - adds r1, #0x83 - strb r0, [r1] - ldrh r0, [r4, #0xc] - subs r1, #1 - strb r0, [r1] - ldrh r0, [r4, #0xe] - subs r1, #1 - strb r0, [r1] - ldr r0, _0808C748 @ =gLCDControls - adds r0, #0x60 - ldrh r1, [r0] - movs r0, #0xff - lsls r0, r0, #8 - ands r0, r1 - ldrh r1, [r4, #0x10] - orrs r0, r1 - ldrh r1, [r4, #0x12] - bl sub_0801E1B8 - movs r0, #1 - strb r0, [r5, #0xc] - adds r0, r5, #0 - bl sub_0808C74C - ldrh r2, [r4] - movs r0, #0x3a - movs r1, #1 - bl CreateObject - cmp r0, #0 - beq _0808C742 - ldrh r1, [r4, #2] - adds r0, #0x6a - strh r1, [r0] -_0808C742: - pop {r4, r5, pc} - .align 2, 0 -_0808C744: .4byte gUnk_081215E8 -_0808C748: .4byte gLCDControls - - thumb_func_start sub_0808C74C -sub_0808C74C: @ 0x0808C74C - push {r4, r5, r6, lr} - adds r4, r0, #0 - ldr r3, [r4, #0x50] - cmp r3, #0 - beq _0808C76C - ldr r2, _0808C768 @ =gRoomControls - ldrh r0, [r3, #0x2e] - ldrh r1, [r2, #0xa] - subs r0, r0, r1 - strh r0, [r4, #0x2e] - ldrh r0, [r3, #0x32] - ldrh r1, [r2, #0xc] - subs r0, r0, r1 - b _0808C772 - .align 2, 0 -_0808C768: .4byte gRoomControls -_0808C76C: - movs r0, #0x78 - strh r0, [r4, #0x2e] - movs r0, #0x50 -_0808C772: - strh r0, [r4, #0x32] - adds r5, r4, #0 - adds r5, #0x86 - movs r1, #0 - ldrsh r0, [r5, r1] - cmp r0, #0 - bge _0808C79C - movs r2, #0x2e - ldrsh r0, [r4, r2] - movs r3, #0x32 - ldrsh r1, [r4, r3] - movs r2, #0 - movs r3, #0 - bl sub_0801E49C - ldr r1, _0808C83C @ =gUnk_02036BB8 - movs r0, #1 - str r0, [r1] - adds r0, r4, #0 - bl sub_0808C840 -_0808C79C: - movs r6, #0 - ldrsh r0, [r5, r6] - movs r2, #0xfa - lsls r2, r2, #1 - cmp r0, r2 - ble _0808C7C2 - movs r1, #0x2e - ldrsh r0, [r4, r1] - movs r3, #0x32 - ldrsh r1, [r4, r3] - movs r3, #0 - bl sub_0801E49C - ldr r1, _0808C83C @ =gUnk_02036BB8 - movs r0, #1 - str r0, [r1] - adds r0, r4, #0 - bl sub_0808C840 -_0808C7C2: - adds r1, r4, #0 - adds r1, #0x85 - movs r0, #0 - ldrsb r0, [r1, r0] - ldrh r6, [r5] - adds r0, r0, r6 - strh r0, [r5] - adds r0, r4, #0 - adds r0, #0x84 - ldrb r0, [r0] - ldrb r2, [r1] - adds r0, r0, r2 - strb r0, [r1] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0x10 - ble _0808C7E8 - movs r0, #0x10 - strb r0, [r1] -_0808C7E8: - movs r0, #0 - ldrsb r0, [r1, r0] - movs r2, #0x10 - rsbs r2, r2, #0 - cmp r0, r2 - bge _0808C7F6 - strb r2, [r1] -_0808C7F6: - adds r3, r4, #0 - adds r3, #0x83 - adds r1, r4, #0 - adds r1, #0x82 - ldrb r0, [r1] - ldrb r6, [r3] - adds r0, r0, r6 - strb r0, [r3] - adds r0, r4, #0 - adds r0, #0x81 - ldrb r0, [r0] - ldrb r6, [r1] - adds r0, r0, r6 - strb r0, [r1] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0x10 - ble _0808C81E - movs r0, #0x10 - strb r0, [r1] -_0808C81E: - movs r0, #0 - ldrsb r0, [r1, r0] - cmp r0, r2 - bge _0808C828 - strb r2, [r1] -_0808C828: - movs r1, #0x2e - ldrsh r0, [r4, r1] - movs r2, #0x32 - ldrsh r1, [r4, r2] - movs r4, #0 - ldrsh r2, [r5, r4] - ldrb r3, [r3] - bl sub_0801E49C - pop {r4, r5, r6, pc} - .align 2, 0 -_0808C83C: .4byte gUnk_02036BB8 - - thumb_func_start sub_0808C840 -sub_0808C840: @ 0x0808C840 - push {lr} - ldr r0, _0808C854 @ =gLCDControls - adds r0, #0x66 - movs r1, #0 - strh r1, [r0] - bl sub_0801E104 - bl sub_0805E780 - pop {pc} - .align 2, 0 -_0808C854: .4byte gLCDControls - - thumb_func_start sub_0808C858 -sub_0808C858: @ 0x0808C858 - push {lr} - adds r2, r0, #0 - ldrb r1, [r2, #0xb] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _0808C878 - ldr r1, _0808C870 @ =gLCDControls - adds r3, r1, #0 - adds r3, #0x66 - ldr r0, _0808C874 @ =0x00003FBF - b _0808C880 - .align 2, 0 -_0808C870: .4byte gLCDControls -_0808C874: .4byte 0x00003FBF -_0808C878: - ldr r1, _0808C898 @ =gLCDControls - adds r3, r1, #0 - adds r3, #0x66 - ldr r0, _0808C89C @ =0x00003FFF -_0808C880: - strh r0, [r3] - adds r3, r1, #0 - ldrb r1, [r2, #0xb] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0808C8A0 - adds r1, r3, #0 - adds r1, #0x6a - movs r0, #0 - b _0808C8A6 - .align 2, 0 -_0808C898: .4byte gLCDControls -_0808C89C: .4byte 0x00003FFF -_0808C8A0: - adds r1, r3, #0 - adds r1, #0x6a - movs r0, #0x10 -_0808C8A6: - strh r0, [r1] - movs r0, #1 - strb r0, [r2, #0xc] - adds r1, r2, #0 - adds r1, #0x68 - adds r0, #0xff - strh r0, [r1] - pop {pc} - .align 2, 0 - - thumb_func_start sub_0808C8B8 -sub_0808C8B8: @ 0x0808C8B8 - push {lr} - adds r3, r0, #0 - adds r2, r3, #0 - adds r2, #0x68 - adds r1, r3, #0 - adds r1, #0x6a - ldrh r0, [r2] - ldrh r1, [r1] - subs r0, r0, r1 - strh r0, [r2] - lsls r0, r0, #0x10 - cmp r0, #0 - bge _0808C8D6 - movs r0, #0 - strh r0, [r2] -_0808C8D6: - ldrb r1, [r3, #0xb] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0808C8F8 - ldr r0, _0808C8F4 @ =gLCDControls - ldrh r1, [r2] - lsls r1, r1, #0x10 - asrs r1, r1, #0x14 - movs r2, #0x10 - subs r2, r2, r1 - adds r0, #0x6a - strh r2, [r0] - b _0808C904 - .align 2, 0 -_0808C8F4: .4byte gLCDControls -_0808C8F8: - ldr r1, _0808C918 @ =gLCDControls - ldrh r0, [r2] - lsls r0, r0, #0x10 - asrs r0, r0, #0x14 - adds r1, #0x6a - strh r0, [r1] -_0808C904: - adds r0, r3, #0 - adds r0, #0x68 - movs r1, #0 - ldrsh r0, [r0, r1] - cmp r0, #0 - bne _0808C914 - bl sub_0805E780 -_0808C914: - pop {pc} - .align 2, 0 -_0808C918: .4byte gLCDControls - - thumb_func_start sub_0808C91C -sub_0808C91C: @ 0x0808C91C - push {lr} - ldr r2, _0808C930 @ =gUnk_08121668 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0808C930: .4byte gUnk_08121668 - - thumb_func_start sub_0808C934 -sub_0808C934: @ 0x0808C934 - push {lr} - ldr r2, _0808C948 @ =gUnk_08121670 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0808C948: .4byte gUnk_08121670 - - thumb_func_start sub_0808C94C -sub_0808C94C: @ 0x0808C94C - push {lr} - ldr r2, _0808C960 @ =gUnk_08121678 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0808C960: .4byte gUnk_08121678 - - thumb_func_start sub_0808C964 -sub_0808C964: @ 0x0808C964 - push {r4, lr} - adds r4, r0, #0 - ldrb r1, [r4, #0xa] - strb r1, [r4, #0x1e] - ldrb r0, [r4, #9] - cmp r0, #0x76 - bne _0808C982 - ldr r0, _0808CA08 @ =gUnk_02032EC0 - adds r0, #0x20 - ldrb r0, [r0] - cmp r0, #2 - beq _0808C982 - adds r0, r1, #0 - subs r0, #9 - strb r0, [r4, #0xa] -_0808C982: - ldrb r0, [r4, #0xa] - cmp r0, #4 - bls _0808C996 - ldr r0, _0808CA0C @ =gUnk_02033A90 - ldrb r0, [r0, #0x16] - ldrb r1, [r4, #0xb] - cmp r0, r1 - beq _0808C996 - bl sub_0805E780 -_0808C996: - movs r2, #1 - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - subs r0, #5 - ands r0, r1 - orrs r0, r2 - strb r0, [r4, #0x18] - ldrb r2, [r4, #0x1b] - movs r1, #0x3f - adds r0, r1, #0 - ands r0, r2 - movs r2, #0x80 - orrs r0, r2 - strb r0, [r4, #0x1b] - ldrb r0, [r4, #0x19] - ands r1, r0 - orrs r1, r2 - strb r1, [r4, #0x19] - ldrb r0, [r4, #0xb] - adds r3, r4, #0 - adds r3, #0x29 - movs r1, #7 - ands r1, r0 - ldrb r2, [r3] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - ldrb r0, [r4, #9] - cmp r0, #0x75 - beq _0808CA04 - ldrb r2, [r4, #0xa] - subs r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #2 - bhi _0808CA04 - ldrb r0, [r4, #0x19] - movs r1, #3 - orrs r0, r1 - strb r0, [r4, #0x19] - lsls r0, r2, #0x18 - lsrs r0, r0, #0x18 - movs r2, #0x80 - lsls r2, r2, #1 - cmp r0, #1 - bne _0808C9FA - movs r2, #0xe0 -_0808C9FA: - adds r0, r4, #0 - adds r1, r2, #0 - movs r3, #0 - bl sub_0805EC9C -_0808CA04: - pop {r4, pc} - .align 2, 0 -_0808CA08: .4byte gUnk_02032EC0 -_0808CA0C: .4byte gUnk_02033A90 - - thumb_func_start sub_0808CA10 -sub_0808CA10: @ 0x0808CA10 - push {r4, r5, r6, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xa] - cmp r0, #2 - beq _0808CA40 - cmp r0, #2 - bgt _0808CA24 - cmp r0, #1 - beq _0808CA2A - b _0808CA78 -_0808CA24: - cmp r0, #3 - beq _0808CA60 - b _0808CA78 -_0808CA2A: - ldr r2, _0808CA3C @ =gUnk_02018EB0 - ldrb r0, [r2, #0x18] - cmp r0, #0 - beq _0808CA78 - movs r0, #0 - movs r1, #0x20 - strb r1, [r4, #0xe] - strb r0, [r2, #0x18] - b _0808CA50 - .align 2, 0 -_0808CA3C: .4byte gUnk_02018EB0 -_0808CA40: - ldr r2, _0808CA5C @ =gUnk_02018EB0 - ldrb r0, [r2, #0x19] - cmp r0, #0 - beq _0808CA78 - movs r0, #0 - movs r1, #0x20 - strb r1, [r4, #0xe] - strb r0, [r2, #0x19] -_0808CA50: - movs r0, #0x97 - lsls r0, r0, #1 - bl PlaySFX - b _0808CA78 - .align 2, 0 -_0808CA5C: .4byte gUnk_02018EB0 -_0808CA60: - ldr r2, _0808CABC @ =gUnk_02018EB0 - ldrb r0, [r2, #0x1a] - cmp r0, #0 - beq _0808CA78 - movs r0, #0 - movs r1, #0x20 - strb r1, [r4, #0xe] - strb r0, [r2, #0x1a] - movs r0, #0x97 - lsls r0, r0, #1 - bl PlaySFX -_0808CA78: - ldrb r0, [r4, #9] - cmp r0, #0x75 - beq _0808CAE0 - ldrb r1, [r4, #0xa] - subs r0, r1, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r5, r1, #0 - cmp r0, #2 - bhi _0808CAE0 - ldrb r1, [r4, #0xe] - cmp r1, #0 - beq _0808CAE0 - subs r1, #1 - strb r1, [r4, #0xe] - ldrb r0, [r4, #0xf] - adds r2, r0, #1 - strb r2, [r4, #0xf] - lsls r1, r1, #0x18 - cmp r1, #0 - beq _0808CAC4 - ldr r0, _0808CAC0 @ =gUnk_08121648 - movs r1, #0xe - ands r1, r2 - lsls r2, r1, #1 - adds r2, r2, r0 - movs r6, #0 - ldrsh r3, [r2, r6] - adds r1, #1 - lsls r1, r1, #1 - adds r1, r1, r0 - movs r0, #0 - ldrsh r2, [r1, r0] - b _0808CACA - .align 2, 0 -_0808CABC: .4byte gUnk_02018EB0 -_0808CAC0: .4byte gUnk_08121648 -_0808CAC4: - movs r2, #0x80 - lsls r2, r2, #1 - adds r3, r2, #0 -_0808CACA: - lsls r0, r5, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _0808CAD6 - subs r3, #0x20 - subs r2, #0x20 -_0808CAD6: - adds r0, r4, #0 - adds r1, r3, #0 - movs r3, #0 - bl sub_0805EC9C -_0808CAE0: - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_0808CAE4 -sub_0808CAE4: @ 0x0808CAE4 - push {lr} - ldr r2, _0808CAF8 @ =gUnk_08121680 - ldrb r1, [r0, #0xa] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0808CAF8: .4byte gUnk_08121680 - - thumb_func_start sub_0808CAFC -sub_0808CAFC: @ 0x0808CAFC - push {r4, lr} - adds r4, r0, #0 - ldr r1, _0808CB18 @ =gUnk_08121688 - ldrb r0, [r4, #0xc] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - adds r0, r4, #0 - bl sub_0808CB9C - pop {r4, pc} - .align 2, 0 -_0808CB18: .4byte gUnk_08121688 - - thumb_func_start sub_0808CB1C -sub_0808CB1C: @ 0x0808CB1C - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0808CB70 - movs r2, #1 - strb r2, [r4, #0xc] - ldrb r0, [r4, #0x18] - movs r1, #3 - orrs r0, r1 - strb r0, [r4, #0x18] - movs r0, #0xa7 - strh r0, [r4, #0x12] - movs r0, #0xd - strb r0, [r4, #0x1e] - adds r0, r4, #0 - adds r0, #0x60 - strh r2, [r0] - ldrb r1, [r4, #0x1a] - movs r0, #0x10 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #5 - orrs r0, r1 - strb r0, [r4, #0x1a] - ldrb r2, [r4, #0x19] - movs r1, #0x3f - adds r0, r1, #0 - ands r0, r2 - strb r0, [r4, #0x19] - adds r3, r4, #0 - adds r3, #0x29 - ldrb r2, [r3] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r3] - ldrb r0, [r4, #0x1b] - ands r1, r0 - movs r0, #0x80 - orrs r1, r0 - strb r1, [r4, #0x1b] -_0808CB70: - ldr r0, [r4, #0x50] - ldr r1, [r0, #0x2c] - str r1, [r4, #0x2c] - ldr r1, [r0, #0x30] - str r1, [r4, #0x30] - movs r5, #0 - str r5, [r4, #0x34] - adds r1, r4, #0 - bl sub_0806FAD8 - ldrb r0, [r4, #0xd] - cmp r0, #0 - beq _0808CB98 - adds r0, r4, #0 - adds r0, #0x60 - movs r1, #0 - strh r5, [r0] - strb r1, [r4, #0xd] - movs r0, #4 - strb r0, [r4, #0x1e] -_0808CB98: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_0808CB9C -sub_0808CB9C: @ 0x0808CB9C - push {r4, r5, lr} - adds r3, r0, #0 - adds r0, #0x68 - ldrh r1, [r0] - ldrb r4, [r0] - lsrs r5, r1, #8 - movs r2, #0 - ldrb r0, [r3, #0x14] - cmp r0, #4 - bls _0808CBB2 - movs r2, #1 -_0808CBB2: - lsls r2, r2, #6 - ldrb r1, [r3, #0x18] - movs r0, #0x41 - rsbs r0, r0, #0 - ands r0, r1 - orrs r0, r2 - strb r0, [r3, #0x18] - cmp r4, #0xb7 - bhi _0808CBCA - ldrb r0, [r3, #0x14] - lsrs r0, r0, #1 - adds r4, r4, r0 -_0808CBCA: - ldrh r0, [r3, #0x12] - cmp r5, r0 - bne _0808CBDA - adds r0, r3, #0 - adds r0, #0x58 - ldrb r0, [r0] - cmp r4, r0 - beq _0808CBE4 -_0808CBDA: - strh r5, [r3, #0x12] - adds r0, r3, #0 - adds r1, r4, #0 - bl LoadAnimation -_0808CBE4: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_0808CBE8 -sub_0808CBE8: @ 0x0808CBE8 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] - movs r3, #4 - strb r3, [r4, #0x14] - ldrb r2, [r4, #0x19] - movs r1, #0x3f - adds r0, r1, #0 - ands r0, r2 - strb r0, [r4, #0x19] - movs r0, #0x29 - adds r0, r0, r4 - mov ip, r0 - ldrb r2, [r0] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r2 - mov r2, ip - strb r0, [r2] - ldrb r0, [r4, #0x1b] - ands r1, r0 - movs r0, #0x80 - orrs r1, r0 - strb r1, [r4, #0x1b] - adds r1, r4, #0 - adds r1, #0x68 - movs r0, #0x8a - lsls r0, r0, #1 - strh r0, [r1] - subs r1, #0x10 - movs r0, #0xff - strb r0, [r1] - ldr r0, _0808CC80 @ =0x0000FF50 - strh r0, [r4, #0x36] - adds r0, r4, #0 - adds r0, #0x6a - strh r3, [r0] - ldrb r0, [r4, #0x19] - movs r1, #3 - orrs r0, r1 - strb r0, [r4, #0x19] - adds r0, r4, #0 - movs r1, #4 - movs r2, #4 - movs r3, #0 - bl sub_0805EC9C - ldr r0, _0808CC84 @ =gUnk_02018EB0 - str r4, [r0, #0x14] - movs r0, #0 - bl sub_0807A094 - adds r1, r0, #0 - adds r0, r4, #0 - bl sub_0801D2B4 - movs r0, #0x3c - movs r1, #1 - movs r2, #0 - bl CreateObject - cmp r0, #0 - beq _0808CC7C - str r4, [r0, #0x50] - str r0, [r4, #0x54] -_0808CC7C: - pop {r4, pc} - .align 2, 0 -_0808CC80: .4byte 0x0000FF50 -_0808CC84: .4byte gUnk_02018EB0 - - thumb_func_start sub_0808CC88 -sub_0808CC88: @ 0x0808CC88 - push {r4, r5, lr} - adds r5, r0, #0 - adds r4, r5, #0 - adds r4, #0x6a - ldrh r1, [r4] - ldr r0, _0808CCB8 @ =0x000003FF - cmp r1, r0 - bhi _0808CCB4 - adds r0, r1, #4 - strh r0, [r4] - ldrh r2, [r4] - adds r0, r5, #0 - adds r1, r2, #0 - movs r3, #0 - bl sub_0805EC9C - ldrh r1, [r4] - adds r0, r5, #0 - movs r2, #8 - movs r3, #2 - bl sub_0806FCF4 -_0808CCB4: - pop {r4, r5, pc} - .align 2, 0 -_0808CCB8: .4byte 0x000003FF - - thumb_func_start sub_0808CCBC -sub_0808CCBC: @ 0x0808CCBC - push {r4, lr} - adds r4, r0, #0 - bl sub_0808CC88 - movs r1, #0x80 - lsls r1, r1, #5 - adds r0, r4, #0 - bl sub_08003FC4 - cmp r0, #0 - bne _0808CCFA - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] - movs r0, #0x14 - strb r0, [r4, #0x15] - adds r0, #0xec - strh r0, [r4, #0x24] - movs r0, #0xc0 - lsls r0, r0, #0xa - str r0, [r4, #0x20] - ldrb r1, [r4, #0x18] - movs r0, #0x31 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #0x18] - ldr r0, [r4, #0x54] - movs r1, #1 - strb r1, [r0, #0xd] - ldr r0, _0808CCFC @ =gUnk_02018EB0 - strb r1, [r0, #0x18] -_0808CCFA: - pop {r4, pc} - .align 2, 0 -_0808CCFC: .4byte gUnk_02018EB0 - - thumb_func_start sub_0808CD00 -sub_0808CD00: @ 0x0808CD00 - push {r4, lr} - adds r4, r0, #0 - bl sub_0808CC88 - adds r0, r4, #0 - bl sub_080042B8 - movs r1, #0x80 - lsls r1, r1, #6 - adds r0, r4, #0 - bl sub_08003FC4 - cmp r0, #0 - beq _0808CD24 - adds r0, r4, #0 - bl sub_0806F69C - b _0808CD3E -_0808CD24: - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] - movs r0, #0xa - strb r0, [r4, #0x15] - movs r0, #0xc0 - strh r0, [r4, #0x24] - movs r0, #0xa0 - lsls r0, r0, #0xa - str r0, [r4, #0x20] - ldr r1, _0808CD40 @ =gUnk_02018EB0 - movs r0, #1 - strb r0, [r1, #0x19] -_0808CD3E: - pop {r4, pc} - .align 2, 0 -_0808CD40: .4byte gUnk_02018EB0 - - thumb_func_start sub_0808CD44 -sub_0808CD44: @ 0x0808CD44 - push {r4, lr} - adds r4, r0, #0 - bl sub_0808CC88 - adds r0, r4, #0 - bl sub_080042B8 - movs r1, #0x80 - lsls r1, r1, #6 - adds r0, r4, #0 - bl sub_08003FC4 - cmp r0, #0 - beq _0808CD68 - adds r0, r4, #0 - bl sub_0806F69C - b _0808CD82 -_0808CD68: - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] - movs r0, #0x11 - strb r0, [r4, #0x15] - adds r0, #0xef - strh r0, [r4, #0x24] - movs r0, #0x90 - lsls r0, r0, #0xa - str r0, [r4, #0x20] - ldr r1, _0808CD84 @ =gUnk_02018EB0 - movs r0, #1 - strb r0, [r1, #0x1a] -_0808CD82: - pop {r4, pc} - .align 2, 0 -_0808CD84: .4byte gUnk_02018EB0 - - thumb_func_start sub_0808CD88 -sub_0808CD88: @ 0x0808CD88 - push {r4, lr} - adds r4, r0, #0 - bl sub_0808CC88 - movs r1, #0xc0 - lsls r1, r1, #5 - adds r0, r4, #0 - bl sub_08003FC4 - cmp r0, #0 - beq _0808CDB8 - adds r0, r4, #0 - bl sub_080042B8 - adds r0, r4, #0 - bl sub_0806F69C - movs r1, #0x2e - ldrsh r0, [r4, r1] - cmp r0, #0x7f - bgt _0808CDD6 - movs r0, #0x80 - strh r0, [r4, #0x2e] - b _0808CDD6 -_0808CDB8: - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] - movs r0, #0x3c - strb r0, [r4, #0xe] - adds r1, r4, #0 - adds r1, #0x68 - ldr r0, _0808CDD8 @ =0x00000C04 - strh r0, [r1] - ldr r0, [r4, #0x54] - bl sub_0805E7BC - adds r0, r4, #0 - bl sub_0805EC60 -_0808CDD6: - pop {r4, pc} - .align 2, 0 -_0808CDD8: .4byte 0x00000C04 - - thumb_func_start sub_0808CDDC -sub_0808CDDC: @ 0x0808CDDC - push {lr} - adds r1, r0, #0 - ldrb r0, [r1, #0xe] - subs r0, #1 - strb r0, [r1, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0808CDF6 - ldrb r0, [r1, #0xc] - adds r0, #1 - strb r0, [r1, #0xc] - movs r0, #0x10 - strb r0, [r1, #0xe] -_0808CDF6: - pop {pc} - - thumb_func_start sub_0808CDF8 -sub_0808CDF8: @ 0x0808CDF8 - push {lr} - adds r3, r0, #0 - ldrb r0, [r3, #0xe] - subs r0, #1 - strb r0, [r3, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0808CE2C - ldr r0, _0808CE30 @ =gUnk_02033A90 - ldrb r1, [r0, #0x16] - ldrb r0, [r3, #0xc] - adds r0, #1 - adds r0, r0, r1 - strb r0, [r3, #0xc] - ldr r2, _0808CE34 @ =gUnk_081216B4 - lsls r1, r1, #1 - adds r0, r1, r2 - ldrb r0, [r0] - strb r0, [r3, #0x14] - adds r1, #1 - adds r1, r1, r2 - ldrb r0, [r1] - strb r0, [r3, #0x15] - movs r0, #0xa0 - lsls r0, r0, #1 - strh r0, [r3, #0x24] -_0808CE2C: - pop {pc} - .align 2, 0 -_0808CE30: .4byte gUnk_02033A90 -_0808CE34: .4byte gUnk_081216B4 - - thumb_func_start sub_0808CE38 -sub_0808CE38: @ 0x0808CE38 - push {r4, lr} - adds r4, r0, #0 - bl sub_080042B8 - adds r0, r4, #0 - bl sub_0806F69C - movs r1, #0x32 - ldrsh r0, [r4, r1] - cmp r0, #0xc7 - bgt _0808CE52 - movs r0, #0x18 - strb r0, [r4, #0x15] -_0808CE52: - movs r1, #0x2e - ldrsh r0, [r4, r1] - cmp r0, #0x2f - bgt _0808CE60 - ldr r1, _0808CE64 @ =gUnk_02018EB0 - movs r0, #1 - strb r0, [r1, #0x1b] -_0808CE60: - pop {r4, pc} - .align 2, 0 -_0808CE64: .4byte gUnk_02018EB0 - - thumb_func_start sub_0808CE68 -sub_0808CE68: @ 0x0808CE68 - push {r4, lr} - adds r4, r0, #0 - bl sub_080042B8 - adds r0, r4, #0 - bl sub_0806F69C - movs r1, #0x32 - ldrsh r0, [r4, r1] - cmp r0, #0xc7 - bgt _0808CE82 - movs r0, #8 - strb r0, [r4, #0x15] -_0808CE82: - movs r1, #0x2e - ldrsh r0, [r4, r1] - cmp r0, #0xd0 - ble _0808CE90 - ldr r1, _0808CE94 @ =gUnk_02018EB0 - movs r0, #1 - strb r0, [r1, #0x1b] -_0808CE90: - pop {r4, pc} - .align 2, 0 -_0808CE94: .4byte gUnk_02018EB0 - - thumb_func_start sub_0808CE98 -sub_0808CE98: @ 0x0808CE98 - push {r4, lr} - adds r4, r0, #0 - bl sub_080042B8 - adds r0, r4, #0 - bl sub_0806F69C - movs r0, #0x32 - ldrsh r1, [r4, r0] - movs r0, #0x90 - lsls r0, r0, #1 - cmp r1, r0 - ble _0808CEB8 - ldr r1, _0808CEBC @ =gUnk_02018EB0 - movs r0, #1 - strb r0, [r1, #0x1b] -_0808CEB8: - pop {r4, pc} - .align 2, 0 -_0808CEBC: .4byte gUnk_02018EB0 - - thumb_func_start sub_0808CEC0 -sub_0808CEC0: @ 0x0808CEC0 - push {r4, lr} - adds r4, r0, #0 - bl sub_080042B8 - adds r0, r4, #0 - bl sub_0806F69C - movs r1, #0x32 - ldrsh r0, [r4, r1] - cmp r0, #0xc7 - bgt _0808CEDA - movs r0, #0x18 - strb r0, [r4, #0x15] -_0808CEDA: - movs r1, #0x2e - ldrsh r0, [r4, r1] - cmp r0, #0xf - bgt _0808CEE8 - ldr r1, _0808CEEC @ =gUnk_02018EB0 - movs r0, #1 - strb r0, [r1, #0x1b] -_0808CEE8: - pop {r4, pc} - .align 2, 0 -_0808CEEC: .4byte gUnk_02018EB0 - - thumb_func_start sub_0808CEF0 -sub_0808CEF0: @ 0x0808CEF0 - push {lr} - ldr r2, _0808CF04 @ =gUnk_081216BC - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0808CF04: .4byte gUnk_081216BC - - thumb_func_start sub_0808CF08 -sub_0808CF08: @ 0x0808CF08 - push {r4, r5, lr} - adds r4, r0, #0 - movs r0, #1 - strb r0, [r4, #0xc] - ldr r2, _0808CF50 @ =gUnk_02033A90 - ldr r3, _0808CF54 @ =gRoomControls - ldrh r0, [r2, #0x12] - ldrh r1, [r3, #0xa] - subs r0, r0, r1 - strh r0, [r4, #0x2e] - ldrh r0, [r2, #0x14] - ldrh r1, [r3, #0xc] - subs r0, r0, r1 - strh r0, [r4, #0x32] - adds r5, r4, #0 - adds r5, #0x68 - movs r0, #0x80 - strh r0, [r5] - ldrb r1, [r4, #0x11] - subs r0, #0x90 - ands r0, r1 - movs r1, #6 - orrs r0, r1 - strb r0, [r4, #0x11] - ldr r0, _0808CF58 @ =0x00001F17 - movs r1, #0 - bl sub_0801E1B8 - movs r1, #0x2e - ldrsh r0, [r4, r1] - movs r2, #0x32 - ldrsh r1, [r4, r2] - ldrh r2, [r5] - bl sub_0801E1EC - pop {r4, r5, pc} - .align 2, 0 -_0808CF50: .4byte gUnk_02033A90 -_0808CF54: .4byte gRoomControls -_0808CF58: .4byte 0x00001F17 - - thumb_func_start sub_0808CF5C -sub_0808CF5C: @ 0x0808CF5C - push {r4, r5, r6, lr} - adds r5, r0, #0 - adds r2, r5, #0 - adds r2, #0x68 - ldrh r0, [r2] - subs r0, #2 - strh r0, [r2] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0x14 - bls _0808CF82 - movs r1, #0x2e - ldrsh r0, [r5, r1] - movs r3, #0x32 - ldrsh r1, [r5, r3] - ldrh r2, [r2] - bl sub_0801E1EC - b _0808D01E -_0808CF82: - ldr r0, _0808D020 @ =gLCDControls - adds r0, #0x62 - movs r1, #0x10 - strh r1, [r0] - bl sub_0808D030 - movs r0, #0 - bl sub_0801CFA8 - bl sub_080ADD30 - ldr r0, _0808D024 @ =gUnk_02024490 - movs r6, #1 - strb r6, [r0] - ldrb r0, [r5, #0xa] - lsls r4, r0, #1 - adds r4, r4, r0 - lsls r4, r4, #1 - ldr r0, _0808D028 @ =gUnk_081216C8 - adds r4, r4, r0 - ldrh r1, [r4] - adds r0, r5, #0 - bl sub_080ADF80 - ldrh r1, [r4, #2] - adds r0, r5, #0 - bl sub_0801D040 - ldrh r0, [r4, #4] - strh r0, [r5, #0x12] - ldrb r0, [r5, #0xa] - cmp r0, #2 - bne _0808CFC6 - strb r0, [r5, #0x1e] -_0808CFC6: - movs r2, #2 - movs r0, #2 - strb r0, [r5, #0xc] - ldrb r1, [r5, #0x18] - subs r0, #6 - ands r0, r1 - orrs r0, r2 - strb r0, [r5, #0x18] - ldrb r2, [r5, #0x1b] - movs r1, #0x3f - adds r0, r1, #0 - ands r0, r2 - strb r0, [r5, #0x1b] - ldrb r0, [r5, #0x19] - ands r1, r0 - strb r1, [r5, #0x19] - adds r2, r5, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2] - movs r0, #0x1e - strb r0, [r5, #0xe] - movs r0, #0xff - strb r0, [r5, #0xf] - ldrb r0, [r5, #0x19] - movs r1, #3 - orrs r0, r1 - strb r0, [r5, #0x19] - movs r2, #0x80 - lsls r2, r2, #1 - adds r0, r5, #0 - adds r1, r2, #0 - movs r3, #0 - bl sub_0805EC9C - ldr r0, _0808D02C @ =gUnk_02033A90 - strh r6, [r0, #0x10] - movs r0, #5 - movs r1, #8 - bl DoFade -_0808D01E: - pop {r4, r5, r6, pc} - .align 2, 0 -_0808D020: .4byte gLCDControls -_0808D024: .4byte gUnk_02024490 -_0808D028: .4byte gUnk_081216C8 -_0808D02C: .4byte gUnk_02033A90 - - thumb_func_start sub_0808D030 -sub_0808D030: @ 0x0808D030 - push {r4, r5, lr} - ldr r4, _0808D058 @ =gUnk_03000020 - movs r5, #0x80 - adds r0, r4, #0 - subs r0, #0x20 - ldr r1, _0808D05C @ =0x00000B74 - bl sub_0801D630 - movs r1, #0xa8 - lsls r1, r1, #2 - adds r0, r1, #0 -_0808D046: - strh r0, [r4] - adds r4, #8 - subs r5, #1 - cmp r5, #0 - bne _0808D046 - ldr r1, _0808D060 @ =gUnk_03000000 - movs r0, #1 - strb r0, [r1] - pop {r4, r5, pc} - .align 2, 0 -_0808D058: .4byte gUnk_03000020 -_0808D05C: .4byte 0x00000B74 -_0808D060: .4byte gUnk_03000000 - - thumb_func_start sub_0808D064 -sub_0808D064: @ 0x0808D064 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xe] - adds r1, r0, #0 - adds r1, #0xff - strb r1, [r4, #0xe] - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0 - beq _0808D0B4 - adds r0, r4, #0 - adds r0, #0x68 - ldrh r3, [r0] - adds r1, r3, #0 - adds r2, r0, #0 - cmp r1, #0 - beq _0808D08C - subs r0, r3, #2 - strh r0, [r2] - b _0808D08E -_0808D08C: - strh r1, [r2] -_0808D08E: - movs r1, #0x2e - ldrsh r0, [r4, r1] - movs r3, #0x32 - ldrsh r1, [r4, r3] - ldrh r2, [r2] - bl sub_0801E1EC - ldrb r0, [r4, #0xf] - cmp r0, #0x80 - bls _0808D0A6 - subs r0, #8 - strb r0, [r4, #0xf] -_0808D0A6: - ldrb r2, [r4, #0xf] - adds r0, r4, #0 - adds r1, r2, #0 - movs r3, #0 - bl sub_0805EC9C - b _0808D0C2 -_0808D0B4: - ldr r1, _0808D0C4 @ =gUnk_02033A90 - ldrb r0, [r1, #0xe] - adds r0, #1 - strb r0, [r1, #0xe] - strh r2, [r1, #0x10] - bl sub_0805E780 -_0808D0C2: - pop {r4, pc} - .align 2, 0 -_0808D0C4: .4byte gUnk_02033A90 - - thumb_func_start sub_0808D0C8 -sub_0808D0C8: @ 0x0808D0C8 - push {lr} - ldr r2, _0808D0DC @ =gUnk_081216DC - ldrb r1, [r0, #0xa] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0808D0DC: .4byte gUnk_081216DC - - thumb_func_start sub_0808D0E0 -sub_0808D0E0: @ 0x0808D0E0 - push {r4, r5, r6, lr} - adds r5, r0, #0 - ldrb r6, [r5, #0xc] - cmp r6, #1 - beq _0808D12C - cmp r6, #1 - bgt _0808D0F4 - cmp r6, #0 - beq _0808D0FA - b _0808D192 -_0808D0F4: - cmp r6, #2 - beq _0808D150 - b _0808D192 -_0808D0FA: - movs r4, #1 - strb r4, [r5, #0xc] - bl Random - movs r1, #0x1f - ands r0, r1 - movs r1, #0x40 - subs r1, r1, r0 - strb r1, [r5, #0xe] - strb r6, [r5, #0x1e] - strb r6, [r5, #0x14] - ldrb r0, [r5, #0x19] - movs r1, #0xc0 - orrs r0, r1 - strb r0, [r5, #0x19] - adds r2, r5, #0 - adds r2, #0x29 - ldrb r0, [r2] - movs r1, #7 - orrs r0, r1 - strb r0, [r2] - adds r0, r5, #0 - adds r0, #0x38 - strb r4, [r0] - b _0808D192 -_0808D12C: - ldrb r0, [r5, #0xe] - subs r0, #1 - strb r0, [r5, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0808D192 - movs r0, #8 - strb r0, [r5, #0xe] - movs r0, #4 - strb r0, [r5, #0xf] - movs r0, #2 - strb r0, [r5, #0xc] - bl Random - movs r1, #3 - ands r0, r1 - strb r0, [r5, #0x14] - b _0808D192 -_0808D150: - ldrb r0, [r5, #0xe] - subs r0, #1 - strb r0, [r5, #0xe] - movs r1, #0xff - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0808D192 - ldrb r0, [r5, #0xf] - subs r0, #1 - strb r0, [r5, #0xf] - ands r0, r1 - cmp r0, #0 - bne _0808D180 - strb r0, [r5, #0x1e] - movs r0, #1 - strb r0, [r5, #0xc] - bl Random - movs r1, #0x1f - ands r0, r1 - movs r1, #0x40 - subs r1, r1, r0 - strb r1, [r5, #0xe] - b _0808D192 -_0808D180: - movs r0, #8 - strb r0, [r5, #0xe] - ldrb r1, [r5, #0x14] - ldrb r0, [r5, #0x1e] - movs r2, #0 - cmp r0, r1 - beq _0808D190 - adds r2, r1, #0 -_0808D190: - strb r2, [r5, #0x1e] -_0808D192: - pop {r4, r5, r6, pc} - - thumb_func_start sub_0808D194 -sub_0808D194: @ 0x0808D194 - push {r4, r5, r6, lr} - adds r5, r0, #0 - ldrb r1, [r5, #0xc] - cmp r1, #1 - beq _0808D234 - cmp r1, #1 - bgt _0808D1A8 - cmp r1, #0 - beq _0808D1AE - b _0808D234 -_0808D1A8: - cmp r1, #2 - beq _0808D1FC - b _0808D234 -_0808D1AE: - movs r0, #1 - strb r0, [r5, #0xc] - movs r0, #8 - strb r0, [r5, #0xe] - strb r1, [r5, #0xf] - strb r1, [r5, #0x1e] - adds r2, r5, #0 - adds r2, #0x29 - ldrb r0, [r2] - movs r1, #7 - orrs r0, r1 - strb r0, [r2] - ldr r0, _0808D1F4 @ =0x00004069 - movs r2, #0x2e - ldrsh r1, [r5, r2] - ldr r3, _0808D1F8 @ =gRoomControls - ldrh r2, [r3, #6] - subs r1, r1, r2 - asrs r1, r1, #4 - movs r4, #0x3f - ands r1, r4 - movs r6, #0x32 - ldrsh r2, [r5, r6] - ldrh r3, [r3, #8] - subs r2, r2, r3 - asrs r2, r2, #4 - ands r2, r4 - lsls r2, r2, #6 - orrs r1, r2 - subs r1, #0x40 - movs r2, #1 - bl sub_0800015E - b _0808D234 - .align 2, 0 -_0808D1F4: .4byte 0x00004069 -_0808D1F8: .4byte gRoomControls -_0808D1FC: - ldr r0, _0808D274 @ =gUnk_030010A0 - ldr r3, [r0] - movs r0, #3 - ands r3, r0 - cmp r3, #0 - bne _0808D234 - ldr r4, _0808D278 @ =gLCDControls - ldrb r2, [r5, #0xd] - lsls r1, r2, #8 - movs r0, #0x10 - subs r0, r0, r2 - orrs r1, r0 - adds r0, r4, #0 - adds r0, #0x68 - strh r1, [r0] - ldrb r0, [r5, #0xd] - adds r0, #1 - strb r0, [r5, #0xd] - lsls r1, r1, #0x10 - movs r0, #0x80 - lsls r0, r0, #0x15 - cmp r1, r0 - bne _0808D234 - adds r0, r4, #0 - adds r0, #0x66 - strh r3, [r0] - bl sub_0805E780 -_0808D234: - ldrb r0, [r5, #0xe] - subs r0, #1 - strb r0, [r5, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0808D272 - movs r0, #8 - strb r0, [r5, #0xe] - ldrb r0, [r5, #0xa] - cmp r0, #9 - bne _0808D24E - movs r0, #2 - strb r0, [r5, #0xe] -_0808D24E: - ldr r4, _0808D27C @ =gUnk_08121704 - ldrb r0, [r5, #0xf] - adds r1, r0, #1 - strb r1, [r5, #0xf] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x17 - adds r0, r0, r4 - ldrh r1, [r0] - adds r0, r5, #0 - bl sub_0801D2B4 - ldrb r0, [r5, #0xf] - lsls r0, r0, #1 - adds r0, r0, r4 - ldrh r0, [r0] - cmp r0, #0 - bne _0808D272 - strb r0, [r5, #0xf] -_0808D272: - pop {r4, r5, r6, pc} - .align 2, 0 -_0808D274: .4byte gUnk_030010A0 -_0808D278: .4byte gLCDControls -_0808D27C: .4byte gUnk_08121704 - - thumb_func_start sub_0808D280 -sub_0808D280: @ 0x0808D280 - push {r4, lr} - sub sp, #4 - movs r4, #0 - str r4, [sp] - movs r0, #6 - movs r1, #0x3e - movs r2, #6 - movs r3, #9 - bl sub_0805EB2C - adds r2, r0, #0 - cmp r2, #0 - beq _0808D2C4 - movs r0, #2 - strb r0, [r2, #0xc] - strb r4, [r2, #0xd] - ldrb r1, [r2, #0x19] - subs r0, #0xf - ands r0, r1 - movs r1, #4 - orrs r0, r1 - strb r0, [r2, #0x19] - ldr r1, _0808D2C8 @ =gLCDControls - adds r2, r1, #0 - adds r2, #0x66 - movs r0, #0xc8 - lsls r0, r0, #3 - strh r0, [r2] - adds r1, #0x68 - movs r0, #0x10 - strh r0, [r1] - movs r0, #0xf6 - bl PlaySFX -_0808D2C4: - add sp, #4 - pop {r4, pc} - .align 2, 0 -_0808D2C8: .4byte gLCDControls - - thumb_func_start sub_0808D2CC -sub_0808D2CC: @ 0x0808D2CC - push {lr} - sub sp, #4 - movs r0, #0 - str r0, [sp] - movs r0, #6 - movs r1, #0x3e - movs r2, #6 - movs r3, #1 - bl sub_0805EB2C - adds r1, r0, #0 - cmp r1, #0 - beq _0808D2F2 - movs r0, #9 - strb r0, [r1, #0xa] - adds r0, r1, #0 - movs r1, #2 - bl sub_0805E3A0 -_0808D2F2: - add sp, #4 - pop {pc} - .align 2, 0 - - thumb_func_start nullsub_521 -nullsub_521: @ 0x0808D2F8 - bx lr - .align 2, 0 - - thumb_func_start sub_0808D2FC -sub_0808D2FC: @ 0x0808D2FC - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0808D31C - strb r0, [r4, #0xc] - strb r0, [r4, #0x1e] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r0, [r2] - movs r1, #7 - orrs r0, r1 - strb r0, [r2] - adds r0, r4, #0 - bl sub_0807DD64 -_0808D31C: - movs r0, #0x2e - ldrsh r5, [r4, r0] - adds r0, r4, #0 - movs r1, #0 - bl sub_0807DDAC - adds r0, r4, #0 - bl sub_0807DDE4 - ldr r0, _0808D354 @ =gRoomControls - ldrh r0, [r0, #0x16] - cmp r0, #0 - beq _0808D350 - movs r1, #0x2e - ldrsh r0, [r4, r1] - cmp r5, r0 - beq _0808D350 - ldr r0, _0808D358 @ =gUnk_030010A0 - ldr r0, [r0] - movs r1, #8 - ands r0, r1 - cmp r0, #0 - bne _0808D350 - ldr r0, _0808D35C @ =0x0000010F - bl PlaySFX -_0808D350: - pop {r4, r5, pc} - .align 2, 0 -_0808D354: .4byte gRoomControls -_0808D358: .4byte gUnk_030010A0 -_0808D35C: .4byte 0x0000010F - - thumb_func_start sub_0808D360 -sub_0808D360: @ 0x0808D360 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0808D382 - strb r0, [r4, #0xc] - movs r0, #1 - strb r0, [r4, #0x1e] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r0, [r2] - movs r1, #7 - orrs r0, r1 - strb r0, [r2] - adds r0, r4, #0 - bl sub_0807DD64 -_0808D382: - adds r0, r4, #0 - movs r1, #0 - bl sub_0807DDAC - adds r0, r4, #0 - bl sub_0807DDE4 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0808D394 -sub_0808D394: @ 0x0808D394 - push {r4, r5, lr} - adds r5, r0, #0 - ldrb r0, [r5, #0xc] - cmp r0, #0 - bne _0808D3C4 - movs r0, #1 - strb r0, [r5, #0xc] - movs r0, #8 - strb r0, [r5, #0xe] - adds r2, r5, #0 - adds r2, #0x29 - ldrb r0, [r2] - movs r1, #7 - orrs r0, r1 - strb r0, [r2] - ldr r1, _0808D3FC @ =gLCDControls - adds r2, r1, #0 - adds r2, #0x66 - movs r0, #0xc8 - lsls r0, r0, #3 - strh r0, [r2] - adds r1, #0x68 - ldr r0, _0808D400 @ =0x00001003 - strh r0, [r1] -_0808D3C4: - ldrb r0, [r5, #0xe] - subs r0, #1 - strb r0, [r5, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0808D3F8 - movs r0, #2 - strb r0, [r5, #0xe] - ldr r4, _0808D404 @ =gUnk_08121720 - ldrb r0, [r5, #0xf] - adds r1, r0, #1 - strb r1, [r5, #0xf] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x17 - adds r0, r0, r4 - ldrh r1, [r0] - adds r0, r5, #0 - bl sub_0801D28C - ldrb r0, [r5, #0xf] - lsls r0, r0, #1 - adds r0, r0, r4 - ldrh r0, [r0] - cmp r0, #0 - bne _0808D3F8 - strb r0, [r5, #0xf] -_0808D3F8: - pop {r4, r5, pc} - .align 2, 0 -_0808D3FC: .4byte gLCDControls -_0808D400: .4byte 0x00001003 -_0808D404: .4byte gUnk_08121720 - - thumb_func_start sub_0808D408 -sub_0808D408: @ 0x0808D408 - push {lr} - adds r3, r0, #0 - ldrb r0, [r3, #0xc] - cmp r0, #0 - bne _0808D458 - movs r1, #1 - strb r1, [r3, #0xc] - ldrb r0, [r3, #0x19] - movs r2, #0xc0 - orrs r0, r2 - strb r0, [r3, #0x19] - movs r0, #0x29 - adds r0, r0, r3 - mov ip, r0 - ldrb r0, [r0] - movs r2, #7 - orrs r0, r2 - mov r2, ip - strb r0, [r2] - ldrb r2, [r3, #0x19] - movs r0, #0xd - rsbs r0, r0, #0 - ands r0, r2 - movs r2, #4 - orrs r0, r2 - strb r0, [r3, #0x19] - ldrb r0, [r3, #0xb] - strb r0, [r3, #0x1e] - ldrb r0, [r3, #0xb] - subs r1, r1, r0 - lsls r1, r1, #9 - movs r0, #0x80 - lsls r0, r0, #1 - adds r1, r1, r0 - movs r2, #0xc0 - rsbs r2, r2, #0 - adds r0, r3, #0 - movs r3, #0 - bl sub_0805EC9C -_0808D458: - pop {pc} - .align 2, 0 - - thumb_func_start sub_0808D45C -sub_0808D45C: @ 0x0808D45C - push {lr} - ldr r2, _0808D470 @ =gUnk_0812172C - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0808D470: .4byte gUnk_0812172C - - thumb_func_start sub_0808D474 -sub_0808D474: @ 0x0808D474 - push {r4, r5, lr} - adds r5, r0, #0 - adds r2, r5, #0 - adds r2, #0x29 - ldrb r0, [r2] - movs r1, #7 - orrs r0, r1 - strb r0, [r2] - ldrb r0, [r5, #0xb] - strb r0, [r5, #0x1e] - movs r1, #2 - strb r1, [r5, #0xc] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0808D4D4 - movs r0, #0x7c - bl sub_0807CBD0 - adds r1, r0, #0 - cmp r1, #0 - bne _0808D4D4 - movs r0, #1 - strb r0, [r5, #0xc] - strb r1, [r5, #0xe] - ldrb r1, [r5, #0x19] - subs r0, #0xe - ands r0, r1 - movs r1, #4 - orrs r0, r1 - strb r0, [r5, #0x19] - ldr r1, _0808D4CC @ =gLCDControls - adds r2, r1, #0 - adds r2, #0x66 - movs r0, #0xc8 - lsls r0, r0, #3 - strh r0, [r2] - adds r1, #0x68 - movs r0, #0x80 - lsls r0, r0, #5 - strh r0, [r1] - ldr r0, _0808D4D0 @ =0x00000179 - bl PlaySFX - b _0808D50E - .align 2, 0 -_0808D4CC: .4byte gLCDControls -_0808D4D0: .4byte 0x00000179 -_0808D4D4: - movs r0, #8 - strb r0, [r5, #0xe] - movs r1, #0x2e - ldrsh r0, [r5, r1] - ldr r3, _0808D510 @ =gRoomControls - ldrh r1, [r3, #6] - subs r0, r0, r1 - asrs r4, r0, #4 - movs r2, #0x3f - ands r4, r2 - movs r1, #0x32 - ldrsh r0, [r5, r1] - ldrh r1, [r3, #8] - subs r0, r0, r1 - asrs r0, r0, #4 - ands r0, r2 - lsls r0, r0, #6 - orrs r4, r0 - ldrb r0, [r5, #0xb] - cmp r0, #0 - beq _0808D500 - subs r4, #0x40 -_0808D500: - ldr r0, _0808D514 @ =0x00004069 - adds r1, r5, #0 - adds r1, #0x38 - ldrb r2, [r1] - adds r1, r4, #0 - bl sub_0800015E -_0808D50E: - pop {r4, r5, pc} - .align 2, 0 -_0808D510: .4byte gRoomControls -_0808D514: .4byte 0x00004069 - - thumb_func_start sub_0808D518 -sub_0808D518: @ 0x0808D518 - push {r4, r5, r6, lr} - adds r5, r0, #0 - ldr r0, _0808D58C @ =gUnk_030010A0 - ldr r2, [r0] - movs r0, #3 - ands r2, r0 - cmp r2, #0 - bne _0808D58A - ldr r3, _0808D590 @ =gLCDControls - ldrb r0, [r5, #0xe] - movs r1, #0x10 - subs r1, r1, r0 - lsls r1, r1, #8 - orrs r1, r0 - adds r0, r3, #0 - adds r0, #0x68 - strh r1, [r0] - ldrb r0, [r5, #0xe] - adds r0, #1 - strb r0, [r5, #0xe] - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - cmp r1, #0x10 - bne _0808D58A - movs r0, #2 - strb r0, [r5, #0xc] - movs r0, #8 - strb r0, [r5, #0xe] - ldrb r1, [r5, #0x19] - subs r0, #0x15 - ands r0, r1 - strb r0, [r5, #0x19] - adds r0, r3, #0 - adds r0, #0x66 - strh r2, [r0] - ldr r0, _0808D594 @ =0x00004069 - movs r2, #0x2e - ldrsh r1, [r5, r2] - ldr r3, _0808D598 @ =gRoomControls - ldrh r2, [r3, #6] - subs r1, r1, r2 - asrs r1, r1, #4 - movs r4, #0x3f - ands r1, r4 - movs r6, #0x32 - ldrsh r2, [r5, r6] - ldrh r3, [r3, #8] - subs r2, r2, r3 - asrs r2, r2, #4 - ands r2, r4 - lsls r2, r2, #6 - orrs r1, r2 - adds r2, r5, #0 - adds r2, #0x38 - ldrb r2, [r2] - bl sub_0800015E -_0808D58A: - pop {r4, r5, r6, pc} - .align 2, 0 -_0808D58C: .4byte gUnk_030010A0 -_0808D590: .4byte gLCDControls -_0808D594: .4byte 0x00004069 -_0808D598: .4byte gRoomControls - - thumb_func_start sub_0808D59C -sub_0808D59C: @ 0x0808D59C - push {r4, r5, lr} - adds r5, r0, #0 - ldrb r0, [r5, #0xe] - subs r0, #1 - strb r0, [r5, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0808D5D4 - movs r0, #8 - strb r0, [r5, #0xe] - ldr r4, _0808D5D8 @ =gUnk_08121738 - ldrb r0, [r5, #0xf] - adds r1, r0, #1 - strb r1, [r5, #0xf] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x17 - adds r0, r0, r4 - ldrh r1, [r0] - adds r0, r5, #0 - bl sub_0801D2B4 - ldrb r0, [r5, #0xf] - lsls r0, r0, #1 - adds r0, r0, r4 - ldrh r0, [r0] - cmp r0, #0 - bne _0808D5D4 - strb r0, [r5, #0xf] -_0808D5D4: - pop {r4, r5, pc} - .align 2, 0 -_0808D5D8: .4byte gUnk_08121738 - - thumb_func_start sub_0808D5DC -sub_0808D5DC: @ 0x0808D5DC - push {lr} - adds r3, r0, #0 - ldrb r0, [r3, #0xc] - cmp r0, #0 - bne _0808D614 - movs r2, #1 - movs r0, #1 - strb r0, [r3, #0xc] - ldrb r1, [r3, #0x18] - subs r0, #5 - ands r0, r1 - orrs r0, r2 - strb r0, [r3, #0x18] - ldrb r0, [r3, #0x19] - movs r1, #0xc0 - orrs r0, r1 - strb r0, [r3, #0x19] - adds r2, r3, #0 - adds r2, #0x29 - ldrb r0, [r2] - movs r1, #7 - orrs r0, r1 - strb r0, [r2] - ldrb r0, [r3, #0xa] - strb r0, [r3, #0x1e] - adds r0, r3, #0 - bl sub_0808D618 -_0808D614: - pop {pc} - .align 2, 0 - - thumb_func_start sub_0808D618 -sub_0808D618: @ 0x0808D618 - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xa] - ldr r7, _0808D664 @ =gUnk_08121750 - cmp r0, #0 - beq _0808D626 - ldr r7, _0808D668 @ =gUnk_0812176A -_0808D626: - movs r1, #0x2e - ldrsh r0, [r4, r1] - ldr r3, _0808D66C @ =gRoomControls - ldrh r1, [r3, #6] - subs r0, r0, r1 - asrs r5, r0, #4 - movs r2, #0x3f - ands r5, r2 - movs r1, #0x32 - ldrsh r0, [r4, r1] - ldrh r1, [r3, #8] - subs r0, r0, r1 - asrs r0, r0, #4 - ands r0, r2 - lsls r0, r0, #6 - orrs r5, r0 - movs r6, #0 - adds r4, r7, #0 -_0808D64A: - movs r0, #0 - ldrsh r1, [r4, r0] - adds r1, r5, r1 - ldr r0, _0808D670 @ =0x00004074 - movs r2, #1 - bl sub_0800015E - adds r4, #2 - adds r6, #1 - cmp r6, #0xc - bls _0808D64A - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0808D664: .4byte gUnk_08121750 -_0808D668: .4byte gUnk_0812176A -_0808D66C: .4byte gRoomControls -_0808D670: .4byte 0x00004074 - - thumb_func_start sub_0808D674 -sub_0808D674: @ 0x0808D674 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x41 - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0808D750 - movs r0, #0x7f - ands r0, r1 - cmp r0, #0x1f - bhi _0808D750 - lsls r0, r0, #2 - ldr r1, _0808D698 @ =_0808D69C - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0808D698: .4byte _0808D69C -_0808D69C: @ jump table - .4byte _0808D740 @ case 0 - .4byte _0808D740 @ case 1 - .4byte _0808D750 @ case 2 - .4byte _0808D750 @ case 3 - .4byte _0808D740 @ case 4 - .4byte _0808D740 @ case 5 - .4byte _0808D740 @ case 6 - .4byte _0808D750 @ case 7 - .4byte _0808D740 @ case 8 - .4byte _0808D740 @ case 9 - .4byte _0808D740 @ case 10 - .4byte _0808D740 @ case 11 - .4byte _0808D740 @ case 12 - .4byte _0808D750 @ case 13 - .4byte _0808D750 @ case 14 - .4byte _0808D750 @ case 15 - .4byte _0808D750 @ case 16 - .4byte _0808D750 @ case 17 - .4byte _0808D750 @ case 18 - .4byte _0808D748 @ case 19 - .4byte _0808D71C @ case 20 - .4byte _0808D750 @ case 21 - .4byte _0808D750 @ case 22 - .4byte _0808D750 @ case 23 - .4byte _0808D750 @ case 24 - .4byte _0808D750 @ case 25 - .4byte _0808D750 @ case 26 - .4byte _0808D750 @ case 27 - .4byte _0808D750 @ case 28 - .4byte _0808D750 @ case 29 - .4byte _0808D740 @ case 30 - .4byte _0808D73C @ case 31 -_0808D71C: - movs r0, #3 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] - ldr r0, [r4, #0x4c] - str r0, [r4, #0x54] - b _0808D750 -_0808D73C: - bl sub_0805E780 -_0808D740: - adds r0, r4, #0 - bl sub_0808DAD0 - b _0808D750 -_0808D748: - adds r0, r4, #0 - bl sub_0808D76C - b _0808D766 -_0808D750: - ldr r0, _0808D768 @ =gUnk_08121784 - ldrb r1, [r4, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 - adds r0, r4, #0 - bl sub_08080CB4 -_0808D766: - pop {r4, pc} - .align 2, 0 -_0808D768: .4byte gUnk_08121784 - - thumb_func_start sub_0808D76C -sub_0808D76C: @ 0x0808D76C - push {lr} - ldr r2, _0808D780 @ =gUnk_08121798 - ldrb r1, [r0, #0xd] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0808D780: .4byte gUnk_08121798 - - thumb_func_start sub_0808D784 -sub_0808D784: @ 0x0808D784 - movs r3, #1 - movs r1, #1 - strb r1, [r0, #0xd] - strb r1, [r0, #0x1d] - ldrb r2, [r0, #0x18] - subs r1, #5 - ands r1, r2 - orrs r1, r3 - strb r1, [r0, #0x18] - bx lr - - thumb_func_start sub_0808D798 -sub_0808D798: @ 0x0808D798 - push {lr} - bl sub_0806F4E8 - pop {pc} - - thumb_func_start sub_0808D7A0 -sub_0808D7A0: @ 0x0808D7A0 - push {r4, lr} - adds r4, r0, #0 - bl sub_0806F3E4 - cmp r0, #0 - beq _0808D7B2 - adds r0, r4, #0 - bl sub_0808DB2C -_0808D7B2: - pop {r4, pc} - - thumb_func_start sub_0808D7B4 -sub_0808D7B4: @ 0x0808D7B4 - push {r4, lr} - adds r4, r0, #0 - adds r1, r4, #0 - adds r1, #0x38 - movs r0, #3 - strb r0, [r1] - adds r0, r4, #0 - adds r0, #0x3c - movs r2, #0x17 - strb r2, [r0] - adds r1, #8 - movs r0, #0x49 - strb r0, [r1] - subs r1, #1 - movs r0, #7 - strb r0, [r1] - adds r0, r4, #0 - adds r0, #0x3b - strb r2, [r0] - adds r1, #6 - movs r0, #0xff - strb r0, [r1] - ldr r0, _0808D818 @ =gUnk_080FD1A8 - str r0, [r4, #0x48] - movs r0, #1 - strb r0, [r4, #0x1c] - ldrh r1, [r4, #0x2e] - adds r0, r4, #0 - adds r0, #0x74 - strh r1, [r0] - ldrh r0, [r4, #0x32] - adds r1, r4, #0 - adds r1, #0x76 - strh r0, [r1] - adds r0, r4, #0 - movs r1, #6 - bl sub_0805E3A0 - movs r0, #0x9b - lsls r0, r0, #1 - bl sub_08004488 - ldrb r0, [r4, #0xb] - cmp r0, #2 - beq _0808D834 - cmp r0, #2 - bgt _0808D81C - cmp r0, #0 - beq _0808D822 - b _0808D82E - .align 2, 0 -_0808D818: .4byte gUnk_080FD1A8 -_0808D81C: - cmp r0, #3 - beq _0808D83C - b _0808D82E -_0808D822: - movs r0, #0xf0 - lsls r0, r0, #9 - str r0, [r4, #0x20] - ldrh r0, [r4, #0x36] - adds r0, #8 - strh r0, [r4, #0x36] -_0808D82E: - movs r0, #1 - strb r0, [r4, #0xc] - b _0808D842 -_0808D834: - adds r0, r4, #0 - bl sub_0808DAD0 - b _0808D842 -_0808D83C: - adds r0, r4, #0 - bl sub_0808DB2C -_0808D842: - pop {r4, pc} - - thumb_func_start sub_0808D844 -sub_0808D844: @ 0x0808D844 - push {lr} - adds r3, r0, #0 - ldr r0, [r3, #0x34] - ldr r1, _0808D870 @ =0xFFFF2000 - adds r0, r0, r1 - str r0, [r3, #0x34] - adds r0, r3, #0 - adds r0, #0x5a - ldrb r0, [r0] - cmp r0, #0 - beq _0808D88A - ldrb r0, [r3, #0xe] - cmp r0, #0 - beq _0808D874 - adds r2, r3, #0 - adds r2, #0x78 - ldrh r1, [r2] - lsls r0, r1, #4 - subs r0, r0, r1 - lsls r0, r0, #1 - strh r0, [r2] - b _0808D87E - .align 2, 0 -_0808D870: .4byte 0xFFFF2000 -_0808D874: - adds r1, r3, #0 - adds r1, #0x78 - movs r0, #0x96 - lsls r0, r0, #2 - strh r0, [r1] -_0808D87E: - movs r0, #2 - strb r0, [r3, #0xc] - movs r0, #1 - strb r0, [r3, #0xf] - movs r0, #0x80 - strh r0, [r3, #0x24] -_0808D88A: - pop {pc} - - thumb_func_start sub_0808D88C -sub_0808D88C: @ 0x0808D88C - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xf] - subs r0, #1 - strb r0, [r4, #0xf] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0808D910 - bl Random - adds r5, r0, #0 - ldrb r0, [r4, #0x10] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r4, #0x10] - movs r0, #0x20 - strb r0, [r4, #0xf] - ldr r2, _0808D8D0 @ =gUnk_081217A4 - lsrs r0, r5, #8 - movs r1, #1 - ands r0, r1 - adds r0, r0, r2 - ldrb r0, [r0] - strh r0, [r4, #0x24] - adds r0, r4, #0 - bl sub_0808DAA0 - cmp r0, #0 - beq _0808D8D4 - movs r0, #0x1f - ands r5, r0 - strb r5, [r4, #0x15] - b _0808D8EE - .align 2, 0 -_0808D8D0: .4byte gUnk_081217A4 -_0808D8D4: - movs r1, #0x2e - ldrsh r0, [r4, r1] - movs r2, #0x32 - ldrsh r1, [r4, r2] - adds r2, r4, #0 - adds r2, #0x74 - ldrh r2, [r2] - adds r3, r4, #0 - adds r3, #0x76 - ldrh r3, [r3] - bl sub_080045D4 - strb r0, [r4, #0x15] -_0808D8EE: - ldrb r1, [r4, #0x15] - movs r0, #0xf - ands r0, r1 - cmp r0, #0 - beq _0808D910 - movs r0, #0x10 - eors r1, r0 - lsrs r1, r1, #4 - movs r0, #1 - ands r1, r0 - lsls r1, r1, #6 - ldrb r2, [r4, #0x18] - movs r0, #0x41 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #0x18] -_0808D910: - adds r0, r4, #0 - bl sub_080AEFB4 - bl sub_0805E40C - cmp r0, #0 - bne _0808D954 - ldrb r0, [r4, #0xb] - cmp r0, #0 - bne _0808D954 - adds r5, r4, #0 - adds r5, #0x78 - ldrh r0, [r5] - subs r0, #1 - strh r0, [r5] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _0808D93C - adds r0, r4, #0 - movs r1, #0 - bl sub_08081404 -_0808D93C: - ldrh r0, [r5] - cmp r0, #0x77 - bhi _0808D954 - ldrb r2, [r4, #0x18] - lsls r1, r2, #0x1e - lsrs r1, r1, #0x1e - movs r0, #1 - eors r1, r0 - subs r0, #5 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #0x18] -_0808D954: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_0808D958 -sub_0808D958: @ 0x0808D958 - push {r4, lr} - adds r4, r0, #0 - ldr r2, [r4, #0x54] - ldrh r1, [r2, #8] - movs r0, #0xc2 - lsls r0, r0, #2 - cmp r1, r0 - beq _0808D972 - adds r0, r4, #0 - movs r1, #0 - bl sub_08081404 - b _0808D992 -_0808D972: - adds r0, r2, #0 - adds r1, r4, #0 - bl CopyPosition - ldrh r0, [r4, #0x36] - subs r0, #1 - strh r0, [r4, #0x36] - ldr r1, _0808D994 @ =gLinkEntity - adds r0, r4, #0 - bl sub_080177A0 - cmp r0, #0 - beq _0808D992 - adds r0, r4, #0 - bl sub_0808DB2C -_0808D992: - pop {r4, pc} - .align 2, 0 -_0808D994: .4byte gLinkEntity - - thumb_func_start sub_0808D998 -sub_0808D998: @ 0x0808D998 - push {r4, r5, r6, lr} - adds r5, r0, #0 - ldr r6, [r5, #0x54] - ldr r2, _0808DA28 @ =gUnk_080C9160 - ldrb r0, [r5, #0xe] - lsls r0, r0, #1 - adds r0, r0, r2 - movs r3, #0 - ldrsh r1, [r0, r3] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #9 - cmp r0, #0 - bge _0808D9B8 - ldr r1, _0808DA2C @ =0x0000FFFF - adds r0, r0, r1 -_0808D9B8: - asrs r0, r0, #0x10 - ldrh r3, [r6, #0x2e] - adds r0, r0, r3 - strh r0, [r5, #0x2e] - ldrb r0, [r5, #0xe] - adds r0, #0x40 - lsls r0, r0, #1 - adds r0, r0, r2 - movs r2, #0 - ldrsh r1, [r0, r2] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #8 - cmp r0, #0 - bge _0808D9DA - ldr r3, _0808DA2C @ =0x0000FFFF - adds r0, r0, r3 -_0808D9DA: - asrs r1, r0, #0x10 - ldrh r0, [r6, #0x32] - subs r0, r0, r1 - strh r0, [r5, #0x32] - ldrb r3, [r5, #0xe] - adds r0, r3, #0 - adds r0, #8 - strb r0, [r5, #0xe] - ldrh r0, [r6, #0x36] - strh r0, [r5, #0x36] - ldrb r2, [r6, #0x1b] - lsrs r2, r2, #6 - lsls r2, r2, #6 - ldrb r4, [r5, #0x1b] - movs r1, #0x3f - adds r0, r1, #0 - ands r0, r4 - orrs r0, r2 - strb r0, [r5, #0x1b] - ldrb r0, [r6, #0x19] - lsrs r0, r0, #6 - lsls r0, r0, #6 - ldrb r2, [r5, #0x19] - ands r1, r2 - orrs r1, r0 - strb r1, [r5, #0x19] - subs r3, #0x39 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - cmp r3, #0x7e - bhi _0808DA30 - adds r2, r5, #0 - adds r2, #0x29 - ldrb r0, [r2] - movs r1, #8 - rsbs r1, r1, #0 - ands r1, r0 - movs r0, #3 - b _0808DA3E - .align 2, 0 -_0808DA28: .4byte gUnk_080C9160 -_0808DA2C: .4byte 0x0000FFFF -_0808DA30: - adds r2, r5, #0 - adds r2, #0x29 - ldrb r0, [r2] - movs r1, #8 - rsbs r1, r1, #0 - ands r1, r0 - movs r0, #5 -_0808DA3E: - orrs r1, r0 - strb r1, [r2] - ldrb r0, [r5, #0xf] - subs r0, #1 - strb r0, [r5, #0xf] - lsls r0, r0, #0x18 - adds r4, r5, #0 - adds r4, #0x63 - cmp r0, #0 - bne _0808DA70 - movs r0, #6 - strb r0, [r5, #0xf] - ldrb r0, [r4] - subs r0, #1 - strb r0, [r4] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - movs r1, #0x16 - rsbs r1, r1, #0 - cmp r0, r1 - bge _0808DA70 - adds r0, r5, #0 - movs r1, #1 - bl sub_08081404 -_0808DA70: - movs r1, #0 - ldrsb r1, [r4, r1] - movs r0, #0x11 - rsbs r0, r0, #0 - cmp r1, r0 - bge _0808DA8E - ldrb r2, [r5, #0x18] - lsls r1, r2, #0x1e - lsrs r1, r1, #0x1e - movs r0, #1 - eors r1, r0 - subs r0, #5 - ands r0, r2 - orrs r0, r1 - strb r0, [r5, #0x18] -_0808DA8E: - adds r1, r5, #0 - adds r1, #0x87 - ldrb r0, [r1] - cmp r0, #0xa - bls _0808DA9C - movs r0, #0xa - strb r0, [r1] -_0808DA9C: - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_0808DAA0 -sub_0808DAA0: @ 0x0808DAA0 - push {lr} - adds r2, r0, #0 - movs r1, #0x2e - ldrsh r0, [r2, r1] - adds r1, r2, #0 - adds r1, #0x74 - ldrh r1, [r1] - subs r0, r0, r1 - adds r0, #0x30 - cmp r0, #0x60 - bhi _0808DACC - movs r1, #0x32 - ldrsh r0, [r2, r1] - adds r1, r2, #0 - adds r1, #0x76 - ldrh r1, [r1] - subs r0, r0, r1 - adds r0, #0x30 - cmp r0, #0x60 - bhi _0808DACC - movs r0, #1 - b _0808DACE -_0808DACC: - movs r0, #0 -_0808DACE: - pop {pc} - - thumb_func_start sub_0808DAD0 -sub_0808DAD0: @ 0x0808DAD0 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x45 - ldrb r0, [r0] - cmp r0, #0 - bne _0808DAE0 - bl sub_0805E780 -_0808DAE0: - movs r0, #4 - strb r0, [r4, #0xc] - movs r0, #0x80 - strb r0, [r4, #0xe] - movs r0, #6 - strb r0, [r4, #0xf] - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #0x39 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #0x10 - orrs r0, r1 - strb r0, [r2] - adds r1, r4, #0 - adds r1, #0x63 - movs r0, #0xfb - strb r0, [r1] - ldr r0, _0808DB28 @ =gLinkEntity - str r0, [r4, #0x54] - adds r1, r4, #0 - bl CopyPosition - pop {r4, pc} - .align 2, 0 -_0808DB28: .4byte gLinkEntity - - thumb_func_start sub_0808DB2C -sub_0808DB2C: @ 0x0808DB2C - push {lr} - adds r1, r0, #0 - movs r2, #0 - movs r0, #2 - strb r0, [r1, #0xc] - strb r2, [r1, #0xd] - ldrb r2, [r1, #0x10] - movs r0, #0x80 - orrs r0, r2 - strb r0, [r1, #0x10] - adds r2, r1, #0 - adds r2, #0x3b - movs r0, #1 - strb r0, [r2] - ldr r0, _0808DB50 @ =gLinkEntity - bl CopyPosition - pop {pc} - .align 2, 0 -_0808DB50: .4byte gLinkEntity - - thumb_func_start sub_0808DB54 -sub_0808DB54: @ 0x0808DB54 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r7, r0, #0 - ldrb r0, [r7, #0xc] - cmp r0, #1 - beq _0808DBE8 - cmp r0, #1 - bgt _0808DB6C - cmp r0, #0 - beq _0808DB72 - b _0808DC46 -_0808DB6C: - cmp r0, #2 - beq _0808DC2C - b _0808DC46 -_0808DB72: - ldrb r0, [r7, #0xe] - movs r1, #3 - cmp r0, #0 - beq _0808DB7C - movs r1, #1 -_0808DB7C: - strb r1, [r7, #0xc] - adds r1, r7, #0 - adds r1, #0x63 - ldrb r0, [r1] - adds r0, #8 - strb r0, [r1] - adds r0, r7, #0 - movs r1, #0xa - bl UpdateSprite - ldrb r0, [r7, #0xc] - cmp r0, #1 - bne _0808DB9A - ldr r0, _0808DBDC @ =0x0000FF80 - strh r0, [r7, #0x36] -_0808DB9A: - ldrb r0, [r7, #0xb] - cmp r0, #0 - beq _0808DBA2 - b _0808DD72 -_0808DBA2: - ldrh r1, [r7, #0x32] - movs r0, #0x10 - rsbs r0, r0, #0 - ands r0, r1 - adds r0, #0xc - strh r0, [r7, #0x32] - ldr r0, _0808DBE0 @ =0x00004023 - movs r2, #0x2e - ldrsh r1, [r7, r2] - ldr r3, _0808DBE4 @ =gRoomControls - ldrh r2, [r3, #6] - subs r1, r1, r2 - asrs r1, r1, #4 - movs r4, #0x3f - ands r1, r4 - movs r5, #0x32 - ldrsh r2, [r7, r5] - ldrh r3, [r3, #8] - subs r2, r2, r3 - asrs r2, r2, #4 - ands r2, r4 - lsls r2, r2, #6 - orrs r1, r2 - adds r2, r7, #0 - adds r2, #0x38 - ldrb r2, [r2] - bl sub_0800015E - b _0808DD72 - .align 2, 0 -_0808DBDC: .4byte 0x0000FF80 -_0808DBE0: .4byte 0x00004023 -_0808DBE4: .4byte gRoomControls -_0808DBE8: - movs r1, #0x80 - lsls r1, r1, #5 - adds r0, r7, #0 - bl sub_08003FC4 - cmp r0, #0 - beq _0808DBF8 - b _0808DD72 -_0808DBF8: - adds r0, r7, #0 - movs r1, #0x46 - movs r2, #0x40 - bl CreateFX - adds r1, r0, #0 - cmp r1, #0 - beq _0808DC0E - ldrh r0, [r1, #0x32] - adds r0, #8 - strh r0, [r1, #0x32] -_0808DC0E: - movs r0, #0x1e - movs r1, #0 - bl sub_08080964 - ldr r0, _0808DC28 @ =0x0000010B - bl PlaySFX - movs r0, #2 - strb r0, [r7, #0xc] - movs r0, #0x3c - strb r0, [r7, #0xe] - b _0808DD72 - .align 2, 0 -_0808DC28: .4byte 0x0000010B -_0808DC2C: - ldrb r0, [r7, #0xe] - subs r0, #1 - strb r0, [r7, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0808DC3A - b _0808DD72 -_0808DC3A: - movs r0, #3 - strb r0, [r7, #0xc] - movs r0, #0x73 - bl PlaySFX - b _0808DD72 -_0808DC46: - ldrb r0, [r7, #0xb] - cmp r0, #0 - beq _0808DC4E - b _0808DD72 -_0808DC4E: - ldr r0, _0808DCC8 @ =gLinkEntity - movs r2, #0x32 - ldrsh r1, [r0, r2] - movs r3, #0x32 - ldrsh r0, [r7, r3] - cmp r1, r0 - bge _0808DCDC - ldr r0, _0808DCCC @ =gLinkState - ldrb r0, [r0, #0x12] - cmp r0, #0x1e - bne _0808DC66 - b _0808DD72 -_0808DC66: - adds r0, r7, #0 - bl sub_080002A0 - ldr r1, _0808DCD0 @ =0x00004017 - cmp r0, r1 - beq _0808DC74 - b _0808DD72 -_0808DC74: - ldr r0, _0808DCD4 @ =0x00004023 - movs r5, #0x2e - ldrsh r1, [r7, r5] - ldr r4, _0808DCD8 @ =gRoomControls - ldrh r2, [r4, #6] - subs r1, r1, r2 - asrs r1, r1, #4 - movs r5, #0x3f - ands r1, r5 - movs r3, #0x32 - ldrsh r2, [r7, r3] - ldrh r3, [r4, #8] - subs r2, r2, r3 - asrs r2, r2, #4 - ands r2, r5 - lsls r2, r2, #6 - orrs r1, r2 - adds r6, r7, #0 - adds r6, #0x38 - ldrb r2, [r6] - bl sub_0800015E - movs r1, #0x2e - ldrsh r0, [r7, r1] - ldrh r1, [r4, #6] - subs r0, r0, r1 - asrs r0, r0, #4 - ands r0, r5 - movs r2, #0x32 - ldrsh r1, [r7, r2] - ldrh r2, [r4, #8] - adds r2, #0x10 - subs r1, r1, r2 - asrs r1, r1, #4 - ands r1, r5 - lsls r1, r1, #6 - orrs r0, r1 - ldrb r1, [r6] - bl sub_0807BA8C - b _0808DD72 - .align 2, 0 -_0808DCC8: .4byte gLinkEntity -_0808DCCC: .4byte gLinkState -_0808DCD0: .4byte 0x00004017 -_0808DCD4: .4byte 0x00004023 -_0808DCD8: .4byte gRoomControls -_0808DCDC: - adds r0, r7, #0 - bl sub_080002A0 - ldr r3, _0808DD44 @ =0x00004017 - mov r8, r3 - cmp r0, r8 - beq _0808DD72 - movs r5, #0x2e - ldrsh r1, [r7, r5] - ldr r5, _0808DD48 @ =gRoomControls - ldrh r0, [r5, #6] - subs r1, r1, r0 - asrs r1, r1, #4 - movs r6, #0x3f - ands r1, r6 - movs r2, #0x32 - ldrsh r0, [r7, r2] - ldrh r2, [r5, #8] - subs r0, r0, r2 - asrs r0, r0, #4 - ands r0, r6 - lsls r0, r0, #6 - orrs r1, r0 - adds r4, r7, #0 - adds r4, #0x38 - ldrb r2, [r4] - mov r0, r8 - bl sub_0800015E - ldrb r0, [r7, #0xa] - cmp r0, #0 - bne _0808DD4C - movs r3, #0x2e - ldrsh r1, [r7, r3] - ldrh r0, [r5, #6] - subs r1, r1, r0 - asrs r1, r1, #4 - ands r1, r6 - movs r2, #0x32 - ldrsh r0, [r7, r2] - ldrh r2, [r5, #8] - adds r2, #0x10 - subs r0, r0, r2 - asrs r0, r0, #4 - ands r0, r6 - lsls r0, r0, #6 - orrs r1, r0 - ldrb r2, [r4] - mov r0, r8 - bl sub_0800015E - b _0808DD72 - .align 2, 0 -_0808DD44: .4byte 0x00004017 -_0808DD48: .4byte gRoomControls -_0808DD4C: - ldr r0, _0808DD78 @ =0x00004014 - movs r3, #0x2e - ldrsh r1, [r7, r3] - ldrh r2, [r5, #6] - subs r1, r1, r2 - asrs r1, r1, #4 - ands r1, r6 - movs r3, #0x32 - ldrsh r2, [r7, r3] - ldrh r3, [r5, #8] - adds r3, #0x10 - subs r2, r2, r3 - asrs r2, r2, #4 - ands r2, r6 - lsls r2, r2, #6 - orrs r1, r2 - ldrb r2, [r4] - bl sub_0800015E -_0808DD72: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0808DD78: .4byte 0x00004014 - - thumb_func_start sub_0808DD7C -sub_0808DD7C: @ 0x0808DD7C - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xa] - cmp r0, #0 - beq _0808DD9C - ldr r0, _0808DD98 @ =gUnk_081217B0 - ldrb r1, [r2, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r2, #0 - bl _call_via_r1 - b _0808DDAC - .align 2, 0 -_0808DD98: .4byte gUnk_081217B0 -_0808DD9C: - ldr r0, _0808DDB0 @ =gUnk_081217A8 - ldrb r1, [r2, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r2, #0 - bl _call_via_r1 -_0808DDAC: - pop {pc} - .align 2, 0 -_0808DDB0: .4byte gUnk_081217A8 - - thumb_func_start sub_0808DDB4 -sub_0808DDB4: @ 0x0808DDB4 - push {r4, lr} - adds r4, r0, #0 - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r0, [r4, #0xa] - cmp r0, #0 - beq _0808DDDC - movs r0, #0x78 - strb r0, [r4, #0xe] - adds r1, r4, #0 - adds r1, #0x6c - movs r0, #0xf0 - strh r0, [r1] - adds r0, r4, #0 - movs r1, #0 - bl UpdateSprite - adds r0, r4, #0 - bl sub_0808DDE8 -_0808DDDC: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0808DDE0 -sub_0808DDE0: @ 0x0808DDE0 - push {lr} - bl sub_0805E780 - pop {pc} - - thumb_func_start sub_0808DDE8 -sub_0808DDE8: @ 0x0808DDE8 - push {r4, r5, lr} - adds r5, r0, #0 - adds r4, r5, #0 - adds r4, #0x6c - ldrh r0, [r4] - subs r0, #1 - strh r0, [r4] - bl sub_0807953C - cmp r0, #0 - beq _0808DE04 - ldrb r0, [r5, #0xf] - adds r0, #1 - strb r0, [r5, #0xf] -_0808DE04: - ldrb r0, [r5, #0xf] - cmp r0, #0x1e - bhi _0808DE1C - ldr r0, _0808DE8C @ =gLinkState - ldr r0, [r0, #0x30] - ldr r1, _0808DE90 @ =0x00001810 - ands r0, r1 - cmp r0, #0 - bne _0808DE1C - ldrh r0, [r4] - cmp r0, #0 - bne _0808DE2A -_0808DE1C: - ldr r0, _0808DE8C @ =gLinkState - ldr r1, [r0, #0x30] - ldr r2, _0808DE94 @ =0xFFFFFBFF - ands r1, r2 - str r1, [r0, #0x30] - bl sub_0805E780 -_0808DE2A: - ldr r3, _0808DE98 @ =gLinkEntity - ldr r1, _0808DE9C @ =gUnk_081217B8 - ldrb r0, [r3, #0x14] - lsrs r0, r0, #1 - adds r0, r0, r1 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - ldrh r1, [r3, #0x2e] - adds r0, r0, r1 - strh r0, [r5, #0x2e] - ldrh r0, [r3, #0x32] - subs r0, #6 - strh r0, [r5, #0x32] - ldr r0, [r3, #0x34] - str r0, [r5, #0x34] - adds r0, r3, #0 - adds r0, #0x38 - ldrb r1, [r0] - adds r0, r5, #0 - adds r0, #0x38 - strb r1, [r0] - ldrb r2, [r3, #0x19] - lsrs r2, r2, #6 - lsls r2, r2, #6 - ldrb r4, [r5, #0x19] - movs r1, #0x3f - adds r0, r1, #0 - ands r0, r4 - orrs r0, r2 - strb r0, [r5, #0x19] - ldrb r0, [r3, #0x1b] - lsrs r0, r0, #6 - lsls r0, r0, #6 - ldrb r2, [r5, #0x1b] - ands r1, r2 - orrs r1, r0 - strb r1, [r5, #0x1b] - ldr r0, _0808DE8C @ =gLinkState - ldr r0, [r0, #0x30] - movs r1, #0x80 - lsls r1, r1, #3 - ands r0, r1 - cmp r0, #0 - beq _0808DEA0 - adds r0, r5, #0 - bl sub_08004274 - b _0808DEA4 - .align 2, 0 -_0808DE8C: .4byte gLinkState -_0808DE90: .4byte 0x00001810 -_0808DE94: .4byte 0xFFFFFBFF -_0808DE98: .4byte gLinkEntity -_0808DE9C: .4byte gUnk_081217B8 -_0808DEA0: - bl sub_0805E780 -_0808DEA4: - ldr r1, _0808DEC0 @ =gLinkEntity - ldrb r0, [r1, #0x14] - lsrs r0, r0, #1 - cmp r0, #2 - bne _0808DEC4 - adds r0, r1, #0 - movs r1, #3 - adds r2, r5, #0 - bl sub_0806FEBC - ldrh r0, [r5, #0x32] - subs r0, #5 - strh r0, [r5, #0x32] - b _0808DECE - .align 2, 0 -_0808DEC0: .4byte gLinkEntity -_0808DEC4: - adds r0, r1, #0 - movs r1, #0 - adds r2, r5, #0 - bl sub_0806FEBC -_0808DECE: - pop {r4, r5, pc} - - thumb_func_start sub_0808DED0 -sub_0808DED0: @ 0x0808DED0 - push {lr} - ldr r2, _0808DEE4 @ =gUnk_081217BC - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0808DEE4: .4byte gUnk_081217BC - - thumb_func_start sub_0808DEE8 -sub_0808DEE8: @ 0x0808DEE8 - push {r4, r5, lr} - adds r5, r0, #0 - movs r4, #0 - movs r0, #1 - strb r0, [r5, #0xc] - ldrb r1, [r5, #0x10] - movs r0, #0x20 - orrs r0, r1 - strb r0, [r5, #0x10] - adds r2, r5, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2] - ldr r3, _0808DF74 @ =gLinkEntity - ldrb r1, [r3, #0x1b] - lsrs r1, r1, #6 - lsls r1, r1, #6 - ldrb r2, [r5, #0x1b] - movs r0, #0x3f - ands r0, r2 - orrs r0, r1 - strb r0, [r5, #0x1b] - ldrb r0, [r3, #0x14] - lsrs r0, r0, #1 - strb r0, [r5, #0x14] - adds r0, #1 - movs r1, #3 - ands r0, r1 - lsls r0, r0, #3 - strb r0, [r5, #0x15] - movs r3, #6 - movs r0, #6 - strb r0, [r5, #0xf] - movs r0, #0xa0 - lsls r0, r0, #1 - strh r0, [r5, #0x24] - adds r1, r5, #0 - adds r1, #0x60 - movs r0, #0x3c - strh r0, [r1] - ldrb r1, [r5, #0x1a] - movs r2, #0x10 - rsbs r2, r2, #0 - adds r0, r2, #0 - ands r0, r1 - movs r1, #4 - orrs r0, r1 - strb r0, [r5, #0x1a] - adds r0, r5, #0 - adds r0, #0x72 - strh r4, [r0] - subs r0, #6 - strh r4, [r0] - ldrb r0, [r5, #0x11] - ands r2, r0 - orrs r2, r3 - strb r2, [r5, #0x11] - adds r0, r5, #0 - movs r1, #7 - bl UpdateSprite - ldrb r0, [r5, #0xb] - cmp r0, #0 - beq _0808DF78 - movs r0, #0x28 - strb r0, [r5, #0xe] - b _0808DFAA - .align 2, 0 -_0808DF74: .4byte gLinkEntity -_0808DF78: - ldrb r1, [r5, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r5, #0x18] - ldr r0, _0808DF9C @ =gLinkState - adds r0, #0xac - ldrh r1, [r0] - movs r0, #0x80 - lsls r0, r0, #2 - ands r0, r1 - cmp r0, #0 - beq _0808DFA0 - movs r0, #0x28 - b _0808DFA2 - .align 2, 0 -_0808DF9C: .4byte gLinkState -_0808DFA0: - movs r0, #0x50 -_0808DFA2: - strb r0, [r5, #0xe] - adds r0, r5, #0 - bl sub_0808DFAC -_0808DFAA: - pop {r4, r5, pc} - - thumb_func_start sub_0808DFAC -sub_0808DFAC: @ 0x0808DFAC - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xb] - cmp r0, #0 - beq _0808E00E - ldr r1, _0808DFF0 @ =gLinkState - adds r0, r1, #0 - adds r0, #0x21 - ldrb r0, [r0] - cmp r0, #0 - beq _0808DFCC - ldrb r1, [r1, #4] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0808DFD0 -_0808DFCC: - bl sub_0805E780 -_0808DFD0: - ldr r0, _0808DFF0 @ =gLinkState - adds r2, r0, #0 - adds r2, #0x21 - ldrb r0, [r2] - cmp r0, #0x4f - bls _0808DFF8 - ldrb r0, [r4, #0x18] - movs r1, #4 - rsbs r1, r1, #0 - ands r1, r0 - movs r0, #1 - orrs r1, r0 - strb r1, [r4, #0x18] - ldrb r6, [r2] - ldr r7, _0808DFF4 @ =gUnk_081217D8 - b _0808E038 - .align 2, 0 -_0808DFF0: .4byte gLinkState -_0808DFF4: .4byte gUnk_081217D8 -_0808DFF8: - cmp r0, #0 - beq _0808E008 - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #0x18] - b _0808E1BA -_0808E008: - bl sub_0805E780 - b _0808E038 -_0808E00E: - ldr r5, _0808E02C @ =gLinkState - ldrb r0, [r5, #4] - cmp r0, #0 - bne _0808E01A - bl sub_0805E780 -_0808E01A: - ldrb r1, [r5, #0x1b] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0808E034 - ldrb r6, [r5, #0x1b] - ldr r7, _0808E030 @ =gUnk_081217D0 - b _0808E038 - .align 2, 0 -_0808E02C: .4byte gLinkState -_0808E030: .4byte gUnk_081217D0 -_0808E034: - bl sub_0805E780 -_0808E038: - cmp r6, #0 - bne _0808E03E - b _0808E1B6 -_0808E03E: - adds r0, r4, #0 - bl sub_08004274 - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _0808E084 - subs r0, #1 - strb r0, [r4, #0xe] - movs r2, #3 - ldrb r0, [r4, #0xb] - cmp r0, #0 - bne _0808E068 - ldr r0, _0808E080 @ =gLinkState - adds r0, #0xac - ldrh r1, [r0] - movs r0, #0x80 - lsls r0, r0, #2 - ands r0, r1 - cmp r0, #0 - bne _0808E068 - movs r2, #7 -_0808E068: - ldrb r0, [r4, #0xe] - ands r0, r2 - adds r5, r4, #0 - adds r5, #0x6c - adds r6, r4, #0 - adds r6, #0x38 - cmp r0, #0 - bne _0808E0E4 - ldrh r0, [r5] - adds r0, #1 - strh r0, [r5] - b _0808E0E4 - .align 2, 0 -_0808E080: .4byte gLinkState -_0808E084: - adds r5, r4, #0 - adds r5, #0x72 - ldrh r0, [r5] - cmp r0, #0 - beq _0808E0BC - ldr r0, _0808E0B8 @ =gUnk_030010A0 - ldr r1, [r0] - movs r0, #0x1f - ands r1, r0 - subs r5, #6 - adds r6, r4, #0 - adds r6, #0x38 - cmp r1, #0 - bne _0808E0E4 - adds r0, r4, #0 - movs r1, #7 - movs r2, #0 - bl CreateFX - cmp r0, #0 - beq _0808E0E4 - ldrb r1, [r6] - adds r0, #0x38 - strb r1, [r0] - b _0808E0E4 - .align 2, 0 -_0808E0B8: .4byte gUnk_030010A0 -_0808E0BC: - ldr r0, _0808E140 @ =0x00000115 - bl sub_08004488 - adds r0, r4, #0 - movs r1, #0x12 - movs r2, #0 - bl CreateFX - adds r6, r4, #0 - adds r6, #0x38 - cmp r0, #0 - beq _0808E0DA - ldrb r1, [r6] - adds r0, #0x38 - strb r1, [r0] -_0808E0DA: - ldrh r0, [r5] - adds r0, #1 - strh r0, [r5] - adds r5, r4, #0 - adds r5, #0x6c -_0808E0E4: - ldr r2, _0808E144 @ =gLinkEntity - ldrb r1, [r2, #0x19] - lsrs r1, r1, #6 - lsls r1, r1, #6 - ldrb r3, [r4, #0x19] - movs r0, #0x3f - ands r0, r3 - orrs r0, r1 - strb r0, [r4, #0x19] - ldrb r0, [r4, #0x14] - lsls r0, r0, #1 - adds r0, r7, r0 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - ldrh r1, [r2, #0x2e] - adds r0, r0, r1 - strh r0, [r4, #0x2e] - ldrb r0, [r4, #0x14] - lsls r0, r0, #1 - adds r0, r0, r7 - ldrb r0, [r0, #1] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - ldrh r1, [r2, #0x32] - adds r0, r0, r1 - strh r0, [r4, #0x32] - ldrh r0, [r2, #0x36] - strh r0, [r4, #0x36] - adds r2, #0x38 - ldrb r0, [r2] - strb r0, [r6] - ldrb r0, [r4, #0x14] - cmp r0, #1 - beq _0808E148 - cmp r0, #1 - ble _0808E136 - cmp r0, #2 - beq _0808E150 - cmp r0, #3 - beq _0808E15A -_0808E136: - ldrh r0, [r4, #0x32] - ldrh r1, [r5] - subs r0, r0, r1 - strh r0, [r4, #0x32] - b _0808E162 - .align 2, 0 -_0808E140: .4byte 0x00000115 -_0808E144: .4byte gLinkEntity -_0808E148: - ldrh r0, [r5] - ldrh r1, [r4, #0x2e] - adds r0, r0, r1 - b _0808E160 -_0808E150: - ldrh r0, [r5] - ldrh r1, [r4, #0x32] - adds r0, r0, r1 - strh r0, [r4, #0x32] - b _0808E162 -_0808E15A: - ldrh r0, [r4, #0x2e] - ldrh r1, [r5] - subs r0, r0, r1 -_0808E160: - strh r0, [r4, #0x2e] -_0808E162: - ldrb r0, [r4, #0xf] - subs r0, #1 - strb r0, [r4, #0xf] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0808E17A - movs r0, #6 - strb r0, [r4, #0xf] - ldrb r0, [r4, #0x15] - movs r1, #0x10 - eors r0, r1 - strb r0, [r4, #0x15] -_0808E17A: - adds r0, r4, #0 - bl sub_0806F69C - ldrb r0, [r4, #0xb] - cmp r0, #0 - bne _0808E1BA - ldr r0, _0808E1AC @ =gLinkState - ldrb r1, [r0, #0x1b] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - beq _0808E1BA - ldrb r0, [r4, #0x10] - movs r1, #0xdf - ands r1, r0 - strb r1, [r4, #0x10] - movs r0, #6 - bl GetInventoryValue - cmp r0, #1 - bne _0808E1B0 - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] - b _0808E1BA - .align 2, 0 -_0808E1AC: .4byte gLinkState -_0808E1B0: - bl sub_0805E780 - b _0808E1BA -_0808E1B6: - bl sub_0805E780 -_0808E1BA: - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_0808E1BC -sub_0808E1BC: @ 0x0808E1BC - push {r4, lr} - adds r4, r0, #0 - bl sub_08079BD8 - ldrb r0, [r4, #0xc] - adds r0, #1 - movs r2, #0 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] - ldr r0, _0808E204 @ =gLinkEntity - ldrb r0, [r0, #0x14] - strb r0, [r4, #0x14] - adds r0, r4, #0 - adds r0, #0x60 - strh r2, [r0] - ldrb r1, [r4, #0x1a] - movs r0, #0x10 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #4 - orrs r0, r1 - strb r0, [r4, #0x1a] - movs r0, #0xaf - strh r0, [r4, #0x12] - ldrb r1, [r4, #0x14] - lsrs r1, r1, #1 - adds r0, r4, #0 - bl UpdateSprite - pop {r4, pc} - .align 2, 0 -_0808E204: .4byte gLinkEntity - - thumb_func_start sub_0808E208 -sub_0808E208: @ 0x0808E208 - push {r4, lr} - adds r4, r0, #0 - bl sub_08079BD8 - adds r0, r4, #0 - bl sub_08004274 - ldr r0, _0808E240 @ =gLinkState - ldrb r0, [r0, #0x1b] - cmp r0, #0 - beq _0808E248 - ldr r0, _0808E244 @ =gUnk_030010A0 - ldr r0, [r0] - movs r1, #3 - ands r0, r1 - cmp r0, #0 - bne _0808E24C - ldrb r2, [r4, #0x1a] - lsls r1, r2, #0x1c - lsrs r1, r1, #0x1c - movs r0, #4 - eors r1, r0 - subs r0, #0x14 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #0x1a] - b _0808E24C - .align 2, 0 -_0808E240: .4byte gLinkState -_0808E244: .4byte gUnk_030010A0 -_0808E248: - bl sub_0805E780 -_0808E24C: - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0808E260 - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] -_0808E260: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0808E264 -sub_0808E264: @ 0x0808E264 - push {r4, lr} - adds r4, r0, #0 - bl sub_08004274 - adds r4, #0x5a - ldrb r1, [r4] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0808E27C - bl sub_0805E780 -_0808E27C: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0808E280 -sub_0808E280: @ 0x0808E280 - push {lr} - ldr r2, _0808E294 @ =gUnk_08121B8C - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0808E294: .4byte gUnk_08121B8C - - thumb_func_start sub_0808E298 -sub_0808E298: @ 0x0808E298 - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r0, #0x38 - movs r1, #2 - strb r1, [r0] - movs r0, #1 - strb r0, [r4, #0xc] - movs r5, #0 - movs r6, #0 - adds r0, r4, #0 - bl sub_080002A0 - adds r1, r0, #0 - movs r0, #0xd1 - lsls r0, r0, #2 - cmp r1, r0 - beq _0808E2DA - cmp r1, r0 - bhi _0808E2C6 - subs r0, #1 - cmp r1, r0 - beq _0808E2D8 - b _0808E2E2 -_0808E2C6: - ldr r0, _0808E2D4 @ =0x00000345 - cmp r1, r0 - beq _0808E2DE - adds r0, #1 - cmp r1, r0 - beq _0808E2E6 - b _0808E2E2 - .align 2, 0 -_0808E2D4: .4byte 0x00000345 -_0808E2D8: - movs r5, #0x10 -_0808E2DA: - movs r6, #0x10 - b _0808E2E6 -_0808E2DE: - movs r5, #0x10 - b _0808E2E6 -_0808E2E2: - bl sub_0805E780 -_0808E2E6: - ldrh r0, [r4, #0x2e] - adds r0, r0, r5 - movs r2, #0x10 - rsbs r2, r2, #0 - adds r1, r2, #0 - ands r0, r1 - strh r0, [r4, #0x2e] - ldrh r0, [r4, #0x32] - adds r0, r0, r6 - ands r0, r1 - strh r0, [r4, #0x32] - adds r0, r4, #0 - movs r1, #0 - bl UpdateSprite - ldr r1, _0808E314 @ =0x00000347 - adds r0, r4, #0 - bl sub_0808E354 - adds r0, r4, #0 - bl sub_0808E318 - pop {r4, r5, r6, pc} - .align 2, 0 -_0808E314: .4byte 0x00000347 - - thumb_func_start sub_0808E318 -sub_0808E318: @ 0x0808E318 - push {r4, lr} - adds r4, r0, #0 - bl sub_08004274 - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0808E340 - ldr r1, _0808E33C @ =0x00000343 - adds r0, r4, #0 - bl sub_0808E354 - bl sub_0805E780 - b _0808E34E - .align 2, 0 -_0808E33C: .4byte 0x00000343 -_0808E340: - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0808E34E - ldr r0, _0808E350 @ =0x0000018B - bl sub_08004488 -_0808E34E: - pop {r4, pc} - .align 2, 0 -_0808E350: .4byte 0x0000018B - - thumb_func_start sub_0808E354 -sub_0808E354: @ 0x0808E354 - push {r4, r5, r6, lr} - mov r6, r8 - push {r6} - adds r6, r0, #0 - lsls r1, r1, #0x10 - mov r8, r1 - mov r0, r8 - lsrs r0, r0, #0x10 - mov r8, r0 - movs r2, #0x2e - ldrsh r1, [r6, r2] - ldr r5, _0808E410 @ =gRoomControls - ldrh r0, [r5, #6] - adds r0, #0x10 - subs r1, r1, r0 - asrs r1, r1, #4 - movs r4, #0x3f - ands r1, r4 - movs r3, #0x32 - ldrsh r0, [r6, r3] - ldrh r2, [r5, #8] - adds r2, #0x10 - subs r0, r0, r2 - asrs r0, r0, #4 - ands r0, r4 - lsls r0, r0, #6 - orrs r1, r0 - mov r0, r8 - movs r2, #2 - bl sub_0807B7D8 - mov r0, r8 - adds r0, #1 - movs r2, #0x2e - ldrsh r1, [r6, r2] - ldrh r2, [r5, #6] - subs r1, r1, r2 - asrs r1, r1, #4 - ands r1, r4 - movs r3, #0x32 - ldrsh r2, [r6, r3] - ldrh r3, [r5, #8] - adds r3, #0x10 - subs r2, r2, r3 - asrs r2, r2, #4 - ands r2, r4 - lsls r2, r2, #6 - orrs r1, r2 - movs r2, #2 - bl sub_0807B7D8 - mov r0, r8 - adds r0, #2 - movs r2, #0x2e - ldrsh r1, [r6, r2] - ldrh r2, [r5, #6] - adds r2, #0x10 - subs r1, r1, r2 - asrs r1, r1, #4 - ands r1, r4 - movs r3, #0x32 - ldrsh r2, [r6, r3] - ldrh r3, [r5, #8] - subs r2, r2, r3 - asrs r2, r2, #4 - ands r2, r4 - lsls r2, r2, #6 - orrs r1, r2 - movs r2, #2 - bl sub_0807B7D8 - movs r0, #3 - add r8, r0 - movs r2, #0x2e - ldrsh r1, [r6, r2] - ldrh r0, [r5, #6] - subs r1, r1, r0 - asrs r1, r1, #4 - ands r1, r4 - movs r3, #0x32 - ldrsh r0, [r6, r3] - ldrh r2, [r5, #8] - subs r0, r0, r2 - asrs r0, r0, #4 - ands r0, r4 - lsls r0, r0, #6 - orrs r1, r0 - mov r0, r8 - movs r2, #2 - bl sub_0807B7D8 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, pc} - .align 2, 0 -_0808E410: .4byte gRoomControls - - thumb_func_start sub_0808E414 -sub_0808E414: @ 0x0808E414 - push {lr} - ldr r2, _0808E428 @ =gUnk_08121BD8 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0808E428: .4byte gUnk_08121BD8 - - thumb_func_start sub_0808E42C -sub_0808E42C: @ 0x0808E42C - push {lr} - movs r1, #1 - strb r1, [r0, #0xc] - ldrb r2, [r0, #0x11] - subs r1, #0x11 - ands r1, r2 - movs r2, #6 - orrs r1, r2 - strb r1, [r0, #0x11] - ldrb r1, [r0, #0xa] - bl UpdateSprite - pop {pc} - .align 2, 0 - - thumb_func_start sub_0808E448 -sub_0808E448: @ 0x0808E448 - push {r4, lr} - adds r4, r0, #0 - movs r0, #0x10 - bl sub_0805436C - cmp r0, #1 - bls _0808E45A - bl sub_0805E780 -_0808E45A: - adds r0, r4, #0 - bl sub_08004274 - adds r0, r4, #0 - adds r0, #0x5a - ldrb r0, [r0] - cmp r0, #1 - beq _0808E472 - cmp r0, #0x80 - bne _0808E486 - bl sub_0805E780 -_0808E472: - ldrb r2, [r4, #0x18] - lsls r1, r2, #0x1e - lsrs r1, r1, #0x1e - movs r0, #1 - eors r1, r0 - subs r0, #5 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #0x18] - b _0808E494 -_0808E486: - ldrb r0, [r4, #0x18] - movs r1, #4 - rsbs r1, r1, #0 - ands r1, r0 - movs r0, #1 - orrs r1, r0 - strb r1, [r4, #0x18] -_0808E494: - ldrb r0, [r4, #0xa] - cmp r0, #0 - bne _0808E4A2 - ldr r0, [r4, #0x34] - ldr r1, _0808E4A4 @ =0xFFFF8000 - adds r0, r0, r1 - str r0, [r4, #0x34] -_0808E4A2: - pop {r4, pc} - .align 2, 0 -_0808E4A4: .4byte 0xFFFF8000 - - thumb_func_start sub_0808E4A8 -sub_0808E4A8: @ 0x0808E4A8 - push {r4, r5, r6, lr} - adds r4, r0, #0 - ldrb r2, [r4, #0xa] - lsls r1, r2, #1 - ldr r0, _0808E540 @ =gUnk_08121C40 - adds r3, r1, r0 - ldrb r6, [r4, #0xc] - cmp r6, #0 - bne _0808E54C - movs r5, #1 - strb r5, [r4, #0xc] - movs r2, #0 - ldrb r0, [r4, #0xb] - cmp r0, #0 - bne _0808E4C8 - movs r2, #1 -_0808E4C8: - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - orrs r0, r2 - strb r0, [r4, #0x18] - ldrb r0, [r4, #0xa] - strb r0, [r4, #0x1e] - adds r0, r4, #0 - adds r0, #0x38 - strb r5, [r0] - ldrb r1, [r3] - lsls r1, r1, #6 - ldrb r2, [r4, #0x19] - movs r0, #0x3f - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #0x19] - ldrb r0, [r3, #1] - adds r3, r4, #0 - adds r3, #0x29 - movs r1, #7 - ands r1, r0 - ldrb r2, [r3] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - adds r0, r4, #0 - adds r0, #0x76 - strh r6, [r0] - movs r0, #0x2e - ldrsh r1, [r4, r0] - ldr r2, _0808E544 @ =gRoomControls - ldrh r0, [r2, #6] - subs r1, r1, r0 - asrs r1, r1, #4 - movs r3, #0x3f - ands r1, r3 - movs r5, #0x32 - ldrsh r0, [r4, r5] - ldrh r2, [r2, #8] - subs r0, r0, r2 - asrs r0, r0, #4 - ands r0, r3 - lsls r0, r0, #6 - orrs r1, r0 - adds r0, r4, #0 - adds r0, #0x74 - strh r1, [r0] - adds r0, r4, #0 - bl sub_0808E55C - ldr r1, _0808E548 @ =sub_0808E55C - adds r0, r4, #0 - movs r2, #0 - bl sub_08052D74 - b _0808E55A - .align 2, 0 -_0808E540: .4byte gUnk_08121C40 -_0808E544: .4byte gRoomControls -_0808E548: .4byte sub_0808E55C -_0808E54C: - movs r0, #1 - ands r2, r0 - cmp r2, #0 - bne _0808E55A - adds r0, r4, #0 - bl sub_0808E670 -_0808E55A: - pop {r4, r5, r6, pc} - - thumb_func_start sub_0808E55C -sub_0808E55C: @ 0x0808E55C - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - mov r8, r0 - ldrb r0, [r0, #0xa] - cmp r0, #1 - beq _0808E614 - cmp r0, #1 - bgt _0808E576 - cmp r0, #0 - beq _0808E57A - b _0808E63A -_0808E576: - cmp r0, #2 - bne _0808E63A -_0808E57A: - mov r0, r8 - adds r0, #0x74 - ldrh r6, [r0] - ldr r0, _0808E5FC @ =0xFFFFFEFF - adds r7, r6, r0 - ldr r4, _0808E600 @ =0x0000408F - mov r5, r8 - adds r5, #0x38 - ldrb r2, [r5] - adds r0, r4, #0 - adds r1, r7, #0 - bl sub_0800015E - ldr r2, _0808E604 @ =0xFFFFFF00 - adds r1, r6, r2 - ldrb r2, [r5] - adds r0, r4, #0 - bl sub_0800015E - ldr r0, _0808E608 @ =0x0000406C - ldr r2, _0808E60C @ =0xFFFFFEFE - adds r1, r6, r2 - ldrb r2, [r5] - bl sub_0800015E - ldr r0, _0808E610 @ =0x0000406D - adds r1, r6, #0 - subs r1, #0xff - ldrb r2, [r5] - bl sub_0800015E - mov r1, r8 - ldrb r0, [r1, #0xa] - movs r2, #6 - mov sb, r2 - cmp r0, #0 - beq _0808E63A - movs r0, #4 - mov sb, r0 - subs r4, #0x1d - adds r1, r6, #0 - adds r1, #0x3f - ldrb r2, [r5] - adds r0, r4, #0 - bl sub_0800015E - adds r1, r6, #0 - adds r1, #0x40 - ldrb r2, [r5] - adds r0, r4, #0 - bl sub_0800015E - adds r1, r6, #0 - adds r1, #0x7f - ldrb r2, [r5] - adds r0, r4, #0 - bl sub_0800015E - adds r1, r6, #0 - adds r1, #0x80 - ldrb r2, [r5] - adds r0, r4, #0 - bl sub_0800015E - b _0808E63A - .align 2, 0 -_0808E5FC: .4byte 0xFFFFFEFF -_0808E600: .4byte 0x0000408F -_0808E604: .4byte 0xFFFFFF00 -_0808E608: .4byte 0x0000406C -_0808E60C: .4byte 0xFFFFFEFE -_0808E610: .4byte 0x0000406D -_0808E614: - mov r0, r8 - adds r0, #0x74 - ldrh r6, [r0] - subs r7, r6, #1 - ldr r5, _0808E66C @ =0x0000408E - mov r4, r8 - adds r4, #0x38 - ldrb r2, [r4] - adds r0, r5, #0 - adds r1, r7, #0 - bl sub_0800015E - ldrb r2, [r4] - adds r0, r5, #0 - adds r1, r6, #0 - bl sub_0800015E - movs r1, #2 - mov sb, r1 -_0808E63A: - movs r5, #0 - cmp r5, sb - bhs _0808E662 - ldr r6, _0808E66C @ =0x0000408E - mov r4, r8 - adds r4, #0x38 -_0808E646: - adds r7, #0x40 - ldrb r2, [r4] - adds r0, r6, #0 - adds r1, r7, #0 - bl sub_0800015E - adds r1, r7, #1 - ldrb r2, [r4] - adds r0, r6, #0 - bl sub_0800015E - adds r5, #1 - cmp r5, sb - blo _0808E646 -_0808E662: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0808E66C: .4byte 0x0000408E - - thumb_func_start sub_0808E670 -sub_0808E670: @ 0x0808E670 - push {lr} - adds r0, #0x74 - ldrh r0, [r0] - ldr r1, _0808E684 @ =0xFFFFFEFF - adds r0, r0, r1 - movs r1, #1 - bl sub_080002B0 - pop {pc} - .align 2, 0 -_0808E684: .4byte 0xFFFFFEFF - - thumb_func_start sub_0808E688 -sub_0808E688: @ 0x0808E688 - push {lr} - ldr r2, _0808E69C @ =gUnk_08121C48 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0808E69C: .4byte gUnk_08121C48 - - thumb_func_start sub_0808E6A0 -sub_0808E6A0: @ 0x0808E6A0 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x84 - ldrh r0, [r0] - bl sub_0807CBE4 - cmp r0, #0 - beq _0808E6B4 - bl sub_0805E780 -_0808E6B4: - movs r0, #1 - strb r0, [r4, #0xc] - movs r0, #0x62 - strb r0, [r4, #0xa] - ldrb r1, [r4, #0x18] - subs r0, #0x66 - ands r0, r1 - strb r0, [r4, #0x18] - ldr r0, _0808E6E0 @ =gUnk_08121C58 - str r0, [r4, #0x48] - adds r1, r4, #0 - adds r1, #0x38 - movs r2, #3 - movs r0, #3 - strb r0, [r1] - ldrb r1, [r4, #0x11] - subs r0, #0x13 - ands r0, r1 - orrs r0, r2 - strb r0, [r4, #0x11] - pop {r4, pc} - .align 2, 0 -_0808E6E0: .4byte gUnk_08121C58 - - thumb_func_start sub_0808E6E4 -sub_0808E6E4: @ 0x0808E6E4 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x86 - ldrh r0, [r0] - bl sub_0807CBE4 - cmp r0, #0 - beq _0808E712 - movs r0, #2 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - subs r0, #6 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] - ldrb r0, [r4, #0x19] - movs r1, #3 - orrs r0, r1 - strb r0, [r4, #0x19] - adds r0, r4, #0 - bl sub_0808E714 -_0808E712: - pop {r4, pc} - - thumb_func_start sub_0808E714 -sub_0808E714: @ 0x0808E714 - push {r4, lr} - adds r4, r0, #0 - ldrb r3, [r4, #0xf] - lsls r0, r3, #3 - movs r1, #0x80 - lsls r1, r1, #3 - subs r2, r1, r0 - movs r0, #0x80 - lsls r0, r0, #1 - cmp r2, r0 - ble _0808E73A - adds r0, r3, #1 - strb r0, [r4, #0xf] - adds r0, r4, #0 - adds r1, r2, #0 - movs r3, #0 - bl sub_0805EC9C - b _0808E756 -_0808E73A: - movs r0, #3 - strb r0, [r4, #0xc] - adds r2, r4, #0 - adds r2, #0x3c - ldrb r1, [r2] - movs r0, #0x10 - orrs r0, r1 - strb r0, [r2] - adds r0, r4, #0 - bl sub_0805EC60 - ldr r0, _0808E760 @ =0x00000141 - bl PlaySFX -_0808E756: - adds r0, r4, #0 - bl sub_08080CB4 - pop {r4, pc} - .align 2, 0 -_0808E760: .4byte 0x00000141 - - thumb_func_start sub_0808E764 -sub_0808E764: @ 0x0808E764 - push {r4, lr} - adds r4, r0, #0 - bl sub_08080CB4 - ldr r0, _0808E79C @ =gLinkState - ldr r0, [r0, #0x30] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - bne _0808E79A - adds r0, r4, #0 - bl sub_08017850 - cmp r0, #0 - beq _0808E79A - adds r0, r4, #0 - adds r0, #0x84 - ldrh r0, [r0] - bl sub_0807CCC8 - movs r0, #0x62 - movs r1, #0 - movs r2, #0 - bl sub_080A7C00 - bl sub_0805E780 -_0808E79A: - pop {r4, pc} - .align 2, 0 -_0808E79C: .4byte gLinkState - - thumb_func_start sub_0808E7A0 -sub_0808E7A0: @ 0x0808E7A0 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x45 - ldrb r0, [r0] - cmp r0, #0 - bne _0808E7B2 - adds r0, r4, #0 - bl sub_0808EFF0 -_0808E7B2: - ldr r1, _0808E7D4 @ =gUnk_08121C64 - ldrb r0, [r4, #0xa] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - adds r0, r4, #0 - adds r0, #0x58 - ldrb r0, [r0] - cmp r0, #0x3f - bhi _0808E7D2 - adds r0, r4, #0 - bl sub_080042B8 -_0808E7D2: - pop {r4, pc} - .align 2, 0 -_0808E7D4: .4byte gUnk_08121C64 - - thumb_func_start sub_0808E7D8 -sub_0808E7D8: @ 0x0808E7D8 - push {lr} - ldr r2, _0808E7EC @ =gUnk_08121CCC - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0808E7EC: .4byte gUnk_08121CCC - - thumb_func_start sub_0808E7F0 -sub_0808E7F0: @ 0x0808E7F0 - push {r4, lr} - adds r4, r0, #0 - movs r1, #1 - movs r2, #2 - bl sub_080AE008 - ldrb r0, [r4, #0x1a] - movs r1, #0xf - orrs r0, r1 - strb r0, [r4, #0x1a] - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #0x18] - movs r0, #0xff - strb r0, [r4, #0xb] - movs r0, #1 - strb r0, [r4, #0xc] - pop {r4, pc} - - thumb_func_start sub_0808E818 -sub_0808E818: @ 0x0808E818 - push {r4, r5, r6, lr} - adds r4, r0, #0 - bl sub_0808E950 - cmp r0, #0 - bne _0808E840 - movs r1, #1 - rsbs r1, r1, #0 - strb r1, [r4, #0xb] - adds r0, r4, #0 - adds r0, #0x68 - strh r1, [r0] - adds r0, #2 - strh r1, [r0] - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #0x18] - b _0808E94E -_0808E840: - ldr r0, _0808E8C0 @ =gUnk_02019EE0 - ldrb r1, [r0, #6] - ldrb r0, [r4, #0xb] - adds r6, r4, #0 - adds r6, #0x68 - adds r5, r4, #0 - adds r5, #0x70 - cmp r0, r1 - beq _0808E894 - strb r1, [r4, #0xb] - movs r0, #0x14 - bl GetProgressFlag - movs r2, #0x80 - lsls r2, r2, #1 - adds r1, r2, #0 - cmp r0, #0 - bne _0808E86A - movs r0, #0x80 - lsls r0, r0, #3 - adds r1, r0, #0 -_0808E86A: - strh r1, [r6] - movs r0, #4 - strb r0, [r5] - movs r0, #2 - strb r0, [r4, #0x14] - movs r0, #1 - bl sub_0807A094 - ldr r1, _0808E8C4 @ =gUnk_08133368 - subs r0, #0x16 - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - ldr r1, _0808E8C8 @ =0x00FFFFFF - ands r0, r1 - ldr r1, _0808E8CC @ =gUnk_085A2E80 - adds r0, r0, r1 - movs r1, #0x1f - movs r2, #1 - bl sub_0801D754 -_0808E894: - ldr r0, _0808E8D0 @ =gUnk_02032EC0 - ldrb r2, [r0, #2] - cmp r2, #0 - bne _0808E904 - ldr r3, _0808E8D4 @ =gUnk_03000FF0 - ldrh r1, [r3] - movs r0, #0x80 - lsls r0, r0, #2 - ands r0, r1 - cmp r0, #0 - beq _0808E904 - ldrh r1, [r3, #2] - cmp r1, #0x20 - beq _0808E8F2 - cmp r1, #0x20 - bgt _0808E8D8 - cmp r1, #2 - beq _0808E8F8 - cmp r1, #0x10 - beq _0808E8E6 - b _0808E904 - .align 2, 0 -_0808E8C0: .4byte gUnk_02019EE0 -_0808E8C4: .4byte gUnk_08133368 -_0808E8C8: .4byte 0x00FFFFFF -_0808E8CC: .4byte gUnk_085A2E80 -_0808E8D0: .4byte gUnk_02032EC0 -_0808E8D4: .4byte gUnk_03000FF0 -_0808E8D8: - cmp r1, #0x40 - beq _0808E8E2 - cmp r1, #0x80 - beq _0808E8EC - b _0808E904 -_0808E8E2: - strb r2, [r4, #0x14] - b _0808E904 -_0808E8E6: - movs r0, #1 - strb r0, [r4, #0x14] - b _0808E904 -_0808E8EC: - movs r0, #2 - strb r0, [r4, #0x14] - b _0808E904 -_0808E8F2: - movs r0, #3 - strb r0, [r4, #0x14] - b _0808E904 -_0808E8F8: - ldrb r0, [r5] - movs r1, #0 - cmp r0, #0 - bne _0808E902 - movs r1, #4 -_0808E902: - strb r1, [r5] -_0808E904: - movs r2, #0 - ldrb r0, [r4, #0x14] - cmp r0, #3 - bne _0808E90E - movs r2, #1 -_0808E90E: - lsls r2, r2, #6 - ldrb r1, [r4, #0x18] - movs r0, #0x41 - rsbs r0, r0, #0 - ands r0, r1 - orrs r0, r2 - strb r0, [r4, #0x18] - ldrh r0, [r6] - ldrb r1, [r5] - adds r0, r0, r1 - ldrb r2, [r4, #0x14] - adds r1, r0, r2 - adds r2, r4, #0 - adds r2, #0x6a - ldrh r0, [r2] - cmp r0, r1 - beq _0808E940 - strh r1, [r2] - lsrs r0, r1, #8 - strh r0, [r4, #0x12] - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r4, #0 - bl LoadAnimation -_0808E940: - ldrb r0, [r4, #0x18] - movs r1, #4 - rsbs r1, r1, #0 - ands r1, r0 - movs r0, #2 - orrs r1, r0 - strb r1, [r4, #0x18] -_0808E94E: - pop {r4, r5, r6, pc} - - thumb_func_start sub_0808E950 -sub_0808E950: @ 0x0808E950 - push {lr} - movs r2, #0 - ldr r0, _0808E980 @ =gUnk_02032EC0 - ldrb r0, [r0, #2] - cmp r0, #0 - beq _0808E968 - cmp r0, #0 - blt _0808E97C - cmp r0, #7 - bgt _0808E97C - cmp r0, #4 - blt _0808E97C -_0808E968: - ldr r0, _0808E984 @ =gUnk_02019EE0 - adds r1, r0, #0 - adds r1, #8 - ldrb r0, [r0, #6] - adds r1, r1, r0 - movs r0, #0 - ldrsb r0, [r1, r0] - cmp r0, #1 - bne _0808E97C - movs r2, #1 -_0808E97C: - adds r0, r2, #0 - pop {pc} - .align 2, 0 -_0808E980: .4byte gUnk_02032EC0 -_0808E984: .4byte gUnk_02019EE0 - - thumb_func_start sub_0808E988 -sub_0808E988: @ 0x0808E988 - push {r4, r5, lr} - adds r5, r0, #0 - ldrb r0, [r5, #0xc] - cmp r0, #0 - bne _0808E9AA - movs r0, #1 - strb r0, [r5, #0xc] - movs r0, #0xa1 - lsls r0, r0, #1 - strh r0, [r5, #0x12] - movs r0, #0xff - strb r0, [r5, #0xb] - adds r0, r5, #0 - movs r1, #1 - movs r2, #3 - bl sub_080AE008 -_0808E9AA: - bl sub_0808E950 - cmp r0, #0 - beq _0808E9E8 - movs r4, #6 - b _0808E9BC -_0808E9B6: - subs r4, #1 - cmp r4, #0 - beq _0808E9E8 -_0808E9BC: - adds r0, r4, #0 - bl GetInventoryValue - cmp r0, #0 - beq _0808E9B6 - cmp r4, #0 - beq _0808E9E8 - ldrb r0, [r5, #0xb] - cmp r0, r4 - beq _0808E9D8 - adds r0, r5, #0 - adds r1, r4, #0 - bl LoadAnimation -_0808E9D8: - ldrb r0, [r5, #0x18] - movs r1, #4 - rsbs r1, r1, #0 - ands r1, r0 - movs r0, #2 - orrs r1, r0 - strb r1, [r5, #0x18] - b _0808E9F2 -_0808E9E8: - ldrb r1, [r5, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r5, #0x18] -_0808E9F2: - pop {r4, r5, pc} - - thumb_func_start sub_0808E9F4 -sub_0808E9F4: @ 0x0808E9F4 - push {r4, lr} - adds r4, r0, #0 - bl sub_0808E950 - cmp r0, #0 - beq _0808EA1C - ldr r0, _0808EA18 @ =gUnk_02002A40 - ldrb r0, [r0, #6] - cmp r0, #0 - beq _0808EA1C - ldrb r0, [r4, #0x18] - movs r1, #4 - rsbs r1, r1, #0 - ands r1, r0 - movs r0, #2 - orrs r1, r0 - strb r1, [r4, #0x18] - b _0808EA26 - .align 2, 0 -_0808EA18: .4byte gUnk_02002A40 -_0808EA1C: - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #0x18] -_0808EA26: - pop {r4, pc} - - thumb_func_start sub_0808EA28 -sub_0808EA28: @ 0x0808EA28 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xa] - cmp r0, #3 - bne _0808EA56 - movs r0, #0x80 - lsls r0, r0, #0x12 - ldrb r0, [r0, #7] - cmp r0, #1 - bls _0808EA4C - ldrb r0, [r4, #0x18] - movs r1, #4 - rsbs r1, r1, #0 - ands r1, r0 - movs r0, #2 - orrs r1, r0 - strb r1, [r4, #0x18] - b _0808EA56 -_0808EA4C: - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #0x18] -_0808EA56: - ldr r2, _0808EA68 @ =gUnk_02019EE0 - ldrb r1, [r4, #0xa] - ldrb r0, [r2, #6] - cmp r1, r0 - bne _0808EA6C - movs r3, #0xc - movs r2, #1 - b _0808EA88 - .align 2, 0 -_0808EA68: .4byte gUnk_02019EE0 -_0808EA6C: - ldr r0, _0808EA80 @ =gUnk_02032EC0 - ldrb r0, [r0, #2] - cmp r0, #5 - bne _0808EA84 - ldrb r2, [r2, #7] - cmp r1, r2 - bne _0808EA84 - movs r3, #0xd - b _0808EA86 - .align 2, 0 -_0808EA80: .4byte gUnk_02032EC0 -_0808EA84: - movs r3, #0xe -_0808EA86: - movs r2, #2 -_0808EA88: - ldrb r1, [r4, #0x1a] - movs r0, #0x10 - rsbs r0, r0, #0 - ands r0, r1 - orrs r0, r3 - strb r0, [r4, #0x1a] - lsls r2, r2, #6 - ldrb r1, [r4, #0x19] - movs r0, #0x3f - ands r0, r1 - orrs r0, r2 - strb r0, [r4, #0x19] - adds r0, r4, #0 - bl sub_0808EABC - adds r0, r4, #0 - bl sub_0808EF6C - ldr r2, _0808EAB8 @ =gUnk_02019EE0 - ldrb r1, [r2] - orrs r0, r1 - strb r0, [r2] - pop {r4, pc} - .align 2, 0 -_0808EAB8: .4byte gUnk_02019EE0 - - thumb_func_start sub_0808EABC -sub_0808EABC: @ 0x0808EABC - push {r4, r5, lr} - adds r5, r0, #0 - movs r4, #0x48 - rsbs r4, r4, #0 - ldrb r1, [r5, #0xa] - lsls r0, r1, #5 - adds r2, r0, #0 - adds r2, #0x28 - movs r3, #0 - ldr r0, _0808EAEC @ =gUnk_02019EE0 - ldrb r0, [r0, #6] - cmp r0, r1 - bne _0808EAD8 - movs r3, #1 -_0808EAD8: - ldr r0, _0808EAF0 @ =gUnk_02032EC0 - ldrb r0, [r0, #2] - cmp r0, #7 - bhi _0808EB60 - lsls r0, r0, #2 - ldr r1, _0808EAF4 @ =_0808EAF8 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0808EAEC: .4byte gUnk_02019EE0 -_0808EAF0: .4byte gUnk_02032EC0 -_0808EAF4: .4byte _0808EAF8 -_0808EAF8: @ jump table - .4byte _0808EB18 @ case 0 - .4byte _0808EB60 @ case 1 - .4byte _0808EB56 @ case 2 - .4byte _0808EB1C @ case 3 - .4byte _0808EB1C @ case 4 - .4byte _0808EB26 @ case 5 - .4byte _0808EB1C @ case 6 - .4byte _0808EB1C @ case 7 -_0808EB18: - movs r4, #0x18 - b _0808EB68 -_0808EB1C: - cmp r3, #0 - beq _0808EB68 - movs r4, #0x2a - movs r2, #0x38 - b _0808EB68 -_0808EB26: - ldr r3, _0808EB3C @ =gUnk_02000080 - adds r0, r3, #0 - adds r0, #0x10 - ldrb r1, [r5, #0xa] - adds r0, r0, r1 - ldrb r1, [r0] - cmp r1, #0 - bne _0808EB40 - movs r4, #0x2a - movs r2, #0x28 - b _0808EB68 - .align 2, 0 -_0808EB3C: .4byte gUnk_02000080 -_0808EB40: - cmp r1, #0 - blt _0808EB68 - cmp r1, #2 - bgt _0808EB68 - movs r4, #0x14 - movs r2, #0x90 - ldrb r0, [r3, #0x16] - subs r0, r0, r1 - lsls r0, r0, #5 - subs r2, r2, r0 - b _0808EB68 -_0808EB56: - cmp r3, #0 - beq _0808EB68 - movs r4, #0x1a - movs r2, #0x2a - b _0808EB68 -_0808EB60: - cmp r3, #0 - beq _0808EB68 - movs r4, #8 - movs r2, #0x23 -_0808EB68: - adds r0, r5, #0 - adds r0, #0x68 - strh r4, [r0] - adds r0, #2 - strh r2, [r0] - pop {r4, r5, pc} - - thumb_func_start sub_0808EB74 -sub_0808EB74: @ 0x0808EB74 - push {r4, lr} - adds r4, r0, #0 - ldr r0, _0808EBA8 @ =gUnk_02019EE0 - ldrb r0, [r0, #6] - bl sub_0808EC80 - adds r3, r0, #0 - cmp r3, #0 - beq _0808EBAC - ldr r0, [r3, #0x2c] - str r0, [r4, #0x2c] - ldr r0, [r3, #0x30] - str r0, [r4, #0x30] - ldrb r1, [r3, #0x19] - lsrs r1, r1, #6 - lsls r1, r1, #6 - ldrb r2, [r4, #0x19] - movs r0, #0x3f - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #0x19] - adds r0, r3, #0 - adds r1, r4, #0 - bl sub_0806FAD8 - b _0808EBB4 - .align 2, 0 -_0808EBA8: .4byte gUnk_02019EE0 -_0808EBAC: - movs r0, #0xf0 - lsls r0, r0, #8 - strh r0, [r4, #0x2e] - strh r0, [r4, #0x32] -_0808EBB4: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0808EBB8 -sub_0808EBB8: @ 0x0808EBB8 - push {r4, r5, r6, r7, lr} - adds r7, r0, #0 - ldr r0, _0808EBD0 @ =gUnk_02032EC0 - ldrb r0, [r0, #2] - subs r0, #2 - cmp r0, #5 - bhi _0808EC1C - lsls r0, r0, #2 - ldr r1, _0808EBD4 @ =_0808EBD8 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0808EBD0: .4byte gUnk_02032EC0 -_0808EBD4: .4byte _0808EBD8 -_0808EBD8: @ jump table - .4byte _0808EC18 @ case 0 - .4byte _0808EC1C @ case 1 - .4byte _0808EBF0 @ case 2 - .4byte _0808EBFC @ case 3 - .4byte _0808EC00 @ case 4 - .4byte _0808EC14 @ case 5 -_0808EBF0: - ldr r0, _0808EBF8 @ =gUnk_02000080 - ldrb r0, [r0, #1] - adds r1, r0, #4 - b _0808EC1E - .align 2, 0 -_0808EBF8: .4byte gUnk_02000080 -_0808EBFC: - movs r1, #2 - b _0808EC1E -_0808EC00: - ldr r0, _0808EC10 @ =gUnk_02000080 - ldrb r0, [r0, #1] - movs r1, #6 - cmp r0, #0 - bne _0808EC1E - movs r1, #7 - b _0808EC1E - .align 2, 0 -_0808EC10: .4byte gUnk_02000080 -_0808EC14: - movs r1, #4 - b _0808EC1E -_0808EC18: - movs r1, #1 - b _0808EC1E -_0808EC1C: - movs r1, #0 -_0808EC1E: - movs r5, #0xf0 - lsls r5, r5, #8 - adds r6, r5, #0 - cmp r1, #1 - beq _0808EC32 - cmp r1, #1 - blo _0808EC76 - cmp r1, #2 - beq _0808EC42 - b _0808EC4C -_0808EC32: - movs r0, #0x80 - lsls r0, r0, #0x12 - ldrb r0, [r0, #7] - lsls r0, r0, #4 - adds r5, r0, #0 - adds r5, #0x18 - movs r6, #0x70 - b _0808EC76 -_0808EC42: - ldr r0, _0808EC7C @ =gUnk_02019EE0 - ldrb r1, [r0, #7] - cmp r1, #4 - bne _0808EC4C - movs r1, #7 -_0808EC4C: - adds r0, r1, #0 - bl sub_0808EC80 - adds r4, r0, #0 - cmp r4, #0 - beq _0808EC76 - adds r1, r7, #0 - bl sub_0806FAD8 - ldrb r0, [r4, #0x19] - lsrs r0, r0, #6 - lsls r0, r0, #6 - ldrb r2, [r7, #0x19] - movs r1, #0x3f - ands r1, r2 - orrs r1, r0 - strb r1, [r7, #0x19] - movs r0, #0x2e - ldrsh r6, [r4, r0] - movs r0, #0x32 - ldrsh r5, [r4, r0] -_0808EC76: - strh r6, [r7, #0x2e] - strh r5, [r7, #0x32] - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0808EC7C: .4byte gUnk_02019EE0 - - thumb_func_start sub_0808EC80 -sub_0808EC80: @ 0x0808EC80 - push {r4, r5, r6, lr} - adds r4, r0, #0 - ldr r3, _0808ECA4 @ =gUnk_03003DA0 - ldr r2, [r3, #4] - cmp r2, r3 - beq _0808ECB6 - ldr r6, _0808ECA8 @ =0x0000FFFF - ldr r5, _0808ECAC @ =0x00004806 -_0808EC90: - ldrh r1, [r2, #8] - adds r0, r6, #0 - ands r0, r1 - cmp r0, r5 - bne _0808ECB0 - ldrb r0, [r2, #0xa] - cmp r4, r0 - bne _0808ECB0 - adds r0, r2, #0 - b _0808ECB8 - .align 2, 0 -_0808ECA4: .4byte gUnk_03003DA0 -_0808ECA8: .4byte 0x0000FFFF -_0808ECAC: .4byte 0x00004806 -_0808ECB0: - ldr r2, [r2, #4] - cmp r2, r3 - bne _0808EC90 -_0808ECB6: - movs r0, #0 -_0808ECB8: - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_0808ECBC -sub_0808ECBC: @ 0x0808ECBC - push {r4, lr} - adds r3, r0, #0 - ldr r0, _0808ECD8 @ =gUnk_02000080 - ldrb r4, [r0, #1] - ldr r0, _0808ECDC @ =gUnk_02032EC0 - ldrb r0, [r0, #2] - cmp r0, #5 - beq _0808ECEE - cmp r0, #5 - bgt _0808ECE0 - cmp r0, #4 - beq _0808ECEA - b _0808ED04 - .align 2, 0 -_0808ECD8: .4byte gUnk_02000080 -_0808ECDC: .4byte gUnk_02032EC0 -_0808ECE0: - cmp r0, #6 - beq _0808ECFC - cmp r0, #7 - beq _0808ED00 - b _0808ED04 -_0808ECEA: - movs r0, #1 - b _0808ED06 -_0808ECEE: - ldr r0, _0808ECF8 @ =gUnk_02019EE0 - ldrb r4, [r0, #7] - movs r0, #2 - b _0808ED06 - .align 2, 0 -_0808ECF8: .4byte gUnk_02019EE0 -_0808ECFC: - movs r0, #3 - b _0808ED06 -_0808ED00: - movs r0, #4 - b _0808ED06 -_0808ED04: - movs r0, #0 -_0808ED06: - ldrb r2, [r3, #0xa] - subs r2, #4 - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #2 - lsls r0, r2, #1 - adds r0, r0, r2 - ldr r2, _0808ED3C @ =gUnk_08121CD4 - adds r0, r0, r2 - adds r1, r1, r0 - ldrb r2, [r1, #1] - adds r0, r3, #0 - adds r0, #0x68 - strh r2, [r0] - ldrb r0, [r1, #2] - adds r2, r3, #0 - adds r2, #0x6a - strh r0, [r2] - ldrb r0, [r1] - cmp r0, r4 - bne _0808ED40 - ldrb r0, [r3, #0x1a] - movs r1, #0x10 - rsbs r1, r1, #0 - ands r1, r0 - movs r0, #0xd - b _0808ED4A - .align 2, 0 -_0808ED3C: .4byte gUnk_08121CD4 -_0808ED40: - ldrb r0, [r3, #0x1a] - movs r1, #0x10 - rsbs r1, r1, #0 - ands r1, r0 - movs r0, #0xe -_0808ED4A: - orrs r1, r0 - strb r1, [r3, #0x1a] - adds r0, r3, #0 - bl sub_0808EF6C - ldr r2, _0808ED60 @ =gUnk_02019EE0 - ldrb r1, [r2] - orrs r0, r1 - strb r0, [r2] - pop {r4, pc} - .align 2, 0 -_0808ED60: .4byte gUnk_02019EE0 - - thumb_func_start sub_0808ED64 -sub_0808ED64: @ 0x0808ED64 - push {lr} - adds r2, r0, #0 - movs r3, #0xff - ldr r0, _0808ED90 @ =gUnk_02032EC0 - ldrb r0, [r0, #2] - cmp r0, #1 - bne _0808ED8A - ldr r1, _0808ED94 @ =gUnk_02000080 - ldrb r0, [r1, #0x11] - cmp r0, #5 - beq _0808ED8A - ldrb r0, [r1, #0x10] - lsls r0, r0, #4 - adds r0, #0x1c - strh r0, [r2, #0x2e] - ldrb r0, [r1, #0x11] - lsls r0, r0, #4 - adds r3, r0, #0 - adds r3, #0x3a -_0808ED8A: - strh r3, [r2, #0x32] - pop {pc} - .align 2, 0 -_0808ED90: .4byte gUnk_02032EC0 -_0808ED94: .4byte gUnk_02000080 - - thumb_func_start sub_0808ED98 -sub_0808ED98: @ 0x0808ED98 - push {lr} - adds r3, r0, #0 - ldr r0, _0808EDB4 @ =gUnk_02032EC0 - ldrb r0, [r0, #2] - cmp r0, #1 - beq _0808EDB8 - adds r1, r3, #0 - adds r1, #0x68 - movs r0, #0x1b - strh r0, [r1] - movs r1, #0xa - rsbs r1, r1, #0 - b _0808EDCE - .align 2, 0 -_0808EDB4: .4byte gUnk_02032EC0 -_0808EDB8: - ldr r0, _0808EDF8 @ =gUnk_02000080 - ldrb r0, [r0, #0x13] - cmp r0, #5 - bls _0808EDC2 - movs r0, #5 -_0808EDC2: - lsls r0, r0, #3 - adds r0, #0x1b - adds r1, r3, #0 - adds r1, #0x68 - strh r0, [r1] - movs r1, #0x18 -_0808EDCE: - strh r1, [r3, #0x32] - adds r0, r3, #0 - adds r0, #0x6a - strh r1, [r0] - ldrb r0, [r3, #0xf] - adds r0, #1 - strb r0, [r3, #0xf] - ldr r2, _0808EDFC @ =gUnk_08121D10 - ldrb r0, [r3, #0xf] - lsrs r0, r0, #2 - movs r1, #7 - ands r0, r1 - adds r0, r0, r2 - ldrb r0, [r0] - adds r1, r3, #0 - adds r1, #0x63 - strb r0, [r1] - adds r0, r3, #0 - bl sub_0808EF6C - pop {pc} - .align 2, 0 -_0808EDF8: .4byte gUnk_02000080 -_0808EDFC: .4byte gUnk_08121D10 - - thumb_func_start sub_0808EE00 -sub_0808EE00: @ 0x0808EE00 - push {r4, r5, lr} - adds r4, r0, #0 - movs r0, #0x80 - lsls r0, r0, #0x12 - ldrb r0, [r0, #7] - rsbs r2, r0, #0 - orrs r2, r0 - lsrs r2, r2, #0x1f - ldrb r0, [r4, #0xa] - adds r5, r0, #0 - subs r5, #0xa - ldr r1, _0808EE48 @ =gUnk_08121D38 - lsls r0, r2, #3 - adds r0, r5, r0 - adds r0, r0, r1 - ldrb r0, [r0] - strb r0, [r4, #0x1e] - ldr r3, _0808EE4C @ =gUnk_08121D18 - lsls r0, r5, #1 - lsls r1, r2, #4 - adds r0, r0, r1 - adds r0, r0, r3 - ldrh r1, [r0] - strh r1, [r4, #0x2e] - adds r0, r4, #0 - adds r0, #0x68 - strh r1, [r0] - subs r5, r5, r2 - ldr r0, _0808EE50 @ =gUnk_02032EC0 - ldrb r0, [r0, #2] - cmp r0, #1 - beq _0808EE54 - movs r5, #0x80 - movs r1, #0xb0 - b _0808EE56 - .align 2, 0 -_0808EE48: .4byte gUnk_08121D38 -_0808EE4C: .4byte gUnk_08121D18 -_0808EE50: .4byte gUnk_02032EC0 -_0808EE54: - movs r1, #0x8c -_0808EE56: - adds r0, r4, #0 - adds r0, #0x6a - strh r1, [r0] - ldr r1, _0808EE8C @ =gUnk_02000080 - ldrb r0, [r1, #0x11] - movs r2, #9 - cmp r0, #5 - bne _0808EE6E - ldrb r1, [r1, #0x12] - cmp r5, r1 - bne _0808EE6E - movs r2, #0xb -_0808EE6E: - ldrb r1, [r4, #0x1a] - movs r0, #0x10 - rsbs r0, r0, #0 - ands r0, r1 - orrs r0, r2 - strb r0, [r4, #0x1a] - adds r0, r4, #0 - bl sub_0808EF6C - ldr r2, _0808EE90 @ =gUnk_02019EE0 - ldrb r1, [r2] - orrs r0, r1 - strb r0, [r2] - pop {r4, r5, pc} - .align 2, 0 -_0808EE8C: .4byte gUnk_02000080 -_0808EE90: .4byte gUnk_02019EE0 - - thumb_func_start nullsub_522 -nullsub_522: @ 0x0808EE94 - bx lr - .align 2, 0 - - thumb_func_start sub_0808EE98 -sub_0808EE98: @ 0x0808EE98 - push {lr} - adds r3, r0, #0 - ldr r0, _0808EEBC @ =gUnk_02032EC0 - ldrb r1, [r0, #2] - strb r1, [r3, #0xe] - ldr r2, _0808EEC0 @ =gUnk_08121D48 - ldrb r0, [r3, #0xe] - adds r0, r0, r2 - ldrb r0, [r0] - strb r0, [r3, #0x1e] - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - cmp r1, #2 - beq _0808EEC4 - adds r1, r3, #0 - adds r1, #0x68 - movs r0, #0x60 - b _0808EECA - .align 2, 0 -_0808EEBC: .4byte gUnk_02032EC0 -_0808EEC0: .4byte gUnk_08121D48 -_0808EEC4: - adds r1, r3, #0 - adds r1, #0x68 - ldr r0, _0808EED4 @ =0x0000FFA0 -_0808EECA: - strh r0, [r1] - adds r0, r3, #0 - bl sub_0808EF6C - pop {pc} - .align 2, 0 -_0808EED4: .4byte 0x0000FFA0 - - thumb_func_start sub_0808EED8 -sub_0808EED8: @ 0x0808EED8 - push {lr} - adds r2, r0, #0 - ldr r0, _0808EEF0 @ =gUnk_02032EC0 - ldrb r0, [r0, #2] - cmp r0, #3 - beq _0808EEF4 - ldrb r1, [r2, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2, #0x18] - b _0808EF1E - .align 2, 0 -_0808EEF0: .4byte gUnk_02032EC0 -_0808EEF4: - ldrb r1, [r2, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #2 - orrs r0, r1 - strb r0, [r2, #0x18] - ldrb r1, [r2, #0xa] - subs r1, #0x13 - ldr r0, _0808EF20 @ =gUnk_02000080 - ldrb r0, [r0, #1] - movs r3, #3 - cmp r0, r1 - bne _0808EF12 - movs r3, #4 -_0808EF12: - ldrb r1, [r2, #0x1a] - movs r0, #0x10 - rsbs r0, r0, #0 - ands r0, r1 - orrs r0, r3 - strb r0, [r2, #0x1a] -_0808EF1E: - pop {pc} - .align 2, 0 -_0808EF20: .4byte gUnk_02000080 - - thumb_func_start sub_0808EF24 -sub_0808EF24: @ 0x0808EF24 - push {lr} - adds r2, r0, #0 - ldr r0, _0808EF3C @ =gUnk_02032EC0 - ldrb r0, [r0, #2] - cmp r0, #3 - beq _0808EF40 - ldrb r1, [r2, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2, #0x18] - b _0808EF68 - .align 2, 0 -_0808EF3C: .4byte gUnk_02032EC0 -_0808EF40: - ldrb r1, [r2, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #2 - orrs r0, r1 - strb r0, [r2, #0x18] - ldrb r0, [r2, #0xa] - cmp r0, #0x15 - bne _0808EF5C - movs r0, #0x80 - lsls r0, r0, #0x12 - ldrb r1, [r0, #5] - b _0808EF62 -_0808EF5C: - movs r0, #0x80 - lsls r0, r0, #0x12 - ldrb r1, [r0, #6] -_0808EF62: - ldrb r0, [r2, #0x1f] - adds r0, r0, r1 - strb r0, [r2, #0x1e] -_0808EF68: - pop {pc} - .align 2, 0 - - thumb_func_start sub_0808EF6C -sub_0808EF6C: @ 0x0808EF6C - push {r4, r5, r6, lr} - adds r5, r0, #0 - adds r0, #0x68 - movs r2, #0 - ldrsh r1, [r0, r2] - movs r2, #0x2e - ldrsh r0, [r5, r2] - subs r6, r1, r0 - adds r0, r6, #0 - cmp r6, #0 - bge _0808EF84 - rsbs r0, r6, #0 -_0808EF84: - cmp r0, #1 - bhi _0808EF8E - lsls r0, r1, #0x10 - str r0, [r5, #0x2c] - movs r6, #0 -_0808EF8E: - adds r0, r5, #0 - adds r0, #0x6a - movs r2, #0 - ldrsh r1, [r0, r2] - movs r2, #0x32 - ldrsh r0, [r5, r2] - subs r4, r1, r0 - adds r0, r4, #0 - cmp r4, #0 - bge _0808EFA4 - rsbs r0, r4, #0 -_0808EFA4: - cmp r0, #1 - bhi _0808EFAE - lsls r0, r1, #0x10 - str r0, [r5, #0x30] - movs r4, #0 -_0808EFAE: - adds r0, r6, #0 - orrs r0, r4 - cmp r0, #0 - bne _0808EFBA - movs r0, #0 - b _0808EFEC -_0808EFBA: - adds r0, r6, #0 - adds r1, r4, #0 - bl sub_080041EC - adds r1, r0, #0 - adds r0, #0x80 - lsls r1, r1, #4 - adds r1, r0, r1 - adds r0, r5, #0 - adds r0, #0x6c - ldrh r0, [r0] - cmp r0, r1 - bge _0808EFD6 - adds r1, r0, #0 -_0808EFD6: - strh r1, [r5, #0x24] - adds r0, r6, #0 - adds r1, r4, #0 - bl sub_080045DA - lsrs r0, r0, #3 - strb r0, [r5, #0x15] - adds r0, r5, #0 - bl sub_0806F69C - movs r0, #1 -_0808EFEC: - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_0808EFF0 -sub_0808EFF0: @ 0x0808EFF0 - push {r4, r5, lr} - mov ip, r0 - ldrb r1, [r0, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #2 - orrs r0, r1 - mov r1, ip - strb r0, [r1, #0x18] - movs r0, #0x80 - lsls r0, r0, #3 - strh r0, [r1, #0x24] - adds r1, #0x45 - movs r0, #1 - strb r0, [r1] - movs r0, #0xff - mov r3, ip - strb r0, [r3, #0x1e] - adds r1, #0x13 - movs r0, #1 - rsbs r0, r0, #0 - strb r0, [r1] - ldrb r4, [r3, #0xa] - lsls r4, r4, #3 - ldr r0, _0808F094 @ =gUnk_08121D54 - adds r4, r4, r0 - ldrh r0, [r4, #2] - strh r0, [r3, #0x2e] - ldrh r1, [r4, #2] - mov r0, ip - adds r0, #0x68 - strh r1, [r0] - ldrh r0, [r4, #4] - strh r0, [r3, #0x32] - ldrh r0, [r4, #4] - mov r1, ip - adds r1, #0x6a - strh r0, [r1] - ldrb r1, [r4, #6] - lsls r1, r1, #0x1d - lsrs r1, r1, #0x17 - ldrb r3, [r3, #0x19] - movs r2, #0x3f - adds r0, r2, #0 - ands r0, r3 - orrs r0, r1 - mov r1, ip - strb r0, [r1, #0x19] - ldrb r1, [r4, #6] - lsls r1, r1, #0x1a - mov r5, ip - adds r5, #0x29 - lsrs r1, r1, #0x1d - ldrb r3, [r5] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r3 - orrs r0, r1 - strb r0, [r5] - ldrb r0, [r4, #6] - lsrs r0, r0, #6 - lsls r0, r0, #6 - mov r3, ip - ldrb r1, [r3, #0x1b] - ands r2, r1 - orrs r2, r0 - strb r2, [r3, #0x1b] - ldrh r1, [r4] - mov r0, ip - adds r0, #0x6c - strh r1, [r0] - ldrb r1, [r4, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0808F098 - movs r0, #0x7f - ands r1, r0 - strb r1, [r3, #0x1e] - strb r1, [r3, #0x1f] - b _0808F09E - .align 2, 0 -_0808F094: .4byte gUnk_08121D54 -_0808F098: - mov r0, ip - bl LoadAnimation -_0808F09E: - pop {r4, r5, pc} - - thumb_func_start sub_0808F0A0 -sub_0808F0A0: @ 0x0808F0A0 - push {lr} - ldr r2, _0808F0B4 @ =gUnk_08121E5C - ldrb r1, [r0, #0xa] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0808F0B4: .4byte gUnk_08121E5C - - thumb_func_start sub_0808F0B8 -sub_0808F0B8: @ 0x0808F0B8 - push {lr} - ldr r2, _0808F0CC @ =gUnk_08121E88 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0808F0CC: .4byte gUnk_08121E88 - - thumb_func_start sub_0808F0D0 -sub_0808F0D0: @ 0x0808F0D0 - push {r4, r5, r6, lr} - adds r5, r0, #0 - movs r1, #0x49 - movs r2, #2 - movs r3, #0 - bl CreateObjectWithParent - str r0, [r5, #0x54] - cmp r0, #0 - bne _0808F0E8 - bl sub_0805E780 -_0808F0E8: - movs r6, #1 - strb r6, [r5, #0xc] - ldr r0, _0808F148 @ =0x0000FF40 - strh r0, [r5, #0x36] - bl Random - adds r4, r0, #0 - movs r0, #0x3f - ands r4, r0 - bl Random - ands r0, r6 - cmp r0, #0 - beq _0808F106 - rsbs r4, r4, #0 -_0808F106: - ldr r0, [r5, #0x50] - ldrh r0, [r0, #0x2e] - adds r0, r0, r4 - strh r0, [r5, #0x2e] - bl Random - adds r4, r0, #0 - movs r0, #0x1f - ands r4, r0 - bl Random - ands r0, r6 - cmp r0, #0 - beq _0808F124 - rsbs r4, r4, #0 -_0808F124: - ldr r0, [r5, #0x50] - ldrh r0, [r0, #0x32] - adds r0, r0, r4 - strh r0, [r5, #0x32] - movs r0, #0x90 - lsls r0, r0, #2 - str r0, [r5, #0x74] - movs r0, #0xa0 - lsls r0, r0, #1 - str r0, [r5, #0x78] - adds r0, r5, #0 - movs r1, #3 - bl UpdateSprite - adds r0, r5, #0 - bl sub_0808F14C - pop {r4, r5, r6, pc} - .align 2, 0 -_0808F148: .4byte 0x0000FF40 - - thumb_func_start sub_0808F14C -sub_0808F14C: @ 0x0808F14C - push {r4, lr} - adds r4, r0, #0 - bl sub_0808F2B0 - movs r1, #0x80 - lsls r1, r1, #6 - adds r0, r4, #0 - bl sub_08003FC4 - cmp r0, #0 - bne _0808F16E - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] - movs r0, #0x84 - bl PlaySFX -_0808F16E: - pop {r4, pc} - - thumb_func_start sub_0808F170 -sub_0808F170: @ 0x0808F170 - push {r4, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x74] - subs r0, #0x20 - str r0, [r4, #0x74] - ldr r1, [r4, #0x78] - adds r1, #0x20 - str r1, [r4, #0x78] - adds r0, r4, #0 - movs r2, #8 - movs r3, #2 - bl sub_0806FCF4 - ldr r1, [r4, #0x78] - ldr r0, _0808F1A0 @ =0x000001FF - cmp r1, r0 - bls _0808F198 - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] -_0808F198: - adds r0, r4, #0 - bl sub_0808F2B0 - pop {r4, pc} - .align 2, 0 -_0808F1A0: .4byte 0x000001FF - - thumb_func_start sub_0808F1A4 -sub_0808F1A4: @ 0x0808F1A4 - push {r4, lr} - adds r4, r0, #0 - ldr r1, [r4, #0x78] - adds r1, #0x10 - str r1, [r4, #0x78] - ldr r0, [r4, #0x74] - adds r0, #0x10 - str r0, [r4, #0x74] - adds r0, r4, #0 - movs r2, #8 - movs r3, #2 - bl sub_0806FCF4 - ldr r1, [r4, #0x78] - ldr r0, _0808F1D4 @ =0x000003FF - cmp r1, r0 - bls _0808F1D8 - ldr r1, [r4, #0x54] - movs r0, #0xff - strb r0, [r1, #0xc] - bl sub_0805E780 - b _0808F1DE - .align 2, 0 -_0808F1D4: .4byte 0x000003FF -_0808F1D8: - adds r0, r4, #0 - bl sub_0808F2B0 -_0808F1DE: - pop {r4, pc} - - thumb_func_start sub_0808F1E0 -sub_0808F1E0: @ 0x0808F1E0 - push {lr} - ldr r2, _0808F1F4 @ =gUnk_08121E98 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0808F1F4: .4byte gUnk_08121E98 - - thumb_func_start sub_0808F1F8 -sub_0808F1F8: @ 0x0808F1F8 - push {r4, lr} - adds r4, r0, #0 - ldrb r2, [r4, #0x19] - movs r0, #3 - orrs r2, r0 - strb r2, [r4, #0x19] - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] - ldr r3, [r4, #0x50] - ldrb r1, [r3, #0x19] - lsrs r1, r1, #6 - lsls r1, r1, #6 - movs r0, #0x3f - ands r2, r0 - orrs r2, r1 - strb r2, [r4, #0x19] - ldrb r1, [r3, #0x1b] - lsrs r1, r1, #6 - lsls r1, r1, #6 - ldrb r2, [r4, #0x1b] - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #0x1b] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r0, [r2] - movs r1, #7 - orrs r0, r1 - strb r0, [r2] - adds r0, r4, #0 - movs r1, #1 - bl UpdateSprite - adds r0, r4, #0 - bl sub_0808F244 - pop {r4, pc} - - thumb_func_start sub_0808F244 -sub_0808F244: @ 0x0808F244 - push {r4, lr} - adds r4, r0, #0 - ldr r3, [r4, #0x50] - ldrb r1, [r3, #0x18] - lsls r1, r1, #0x1e - lsrs r1, r1, #0x1e - ldrb r2, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #0x18] - ldrh r0, [r3, #0x32] - adds r0, #3 - movs r2, #0 - strh r0, [r4, #0x32] - ldr r1, [r4, #0x54] - adds r0, r1, #0 - adds r0, #0x62 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - ldrh r1, [r1, #0x2e] - adds r0, r0, r1 - strh r0, [r4, #0x2e] - str r2, [r4, #0x34] - movs r0, #0x36 - ldrsh r1, [r3, r0] - movs r0, #0x80 - subs r0, r0, r1 - str r0, [r4, #0x74] - movs r0, #0x36 - ldrsh r1, [r3, r0] - movs r0, #0x80 - lsls r0, r0, #1 - subs r0, r0, r1 - str r0, [r4, #0x78] - adds r3, #0x7f - ldrb r0, [r3] - str r0, [r4, #0x70] - adds r0, r4, #0 - bl sub_0808F2B0 - ldr r0, [r4, #0x50] - adds r0, #0x6d - ldrb r1, [r0] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _0808F2AC - bl sub_0805E780 -_0808F2AC: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0808F2B0 -sub_0808F2B0: @ 0x0808F2B0 - push {lr} - ldr r1, [r0, #0x74] - ldr r2, [r0, #0x78] - ldr r3, [r0, #0x70] - bl sub_0805EC9C - pop {pc} - .align 2, 0 - - thumb_func_start sub_0808F2C0 -sub_0808F2C0: @ 0x0808F2C0 - push {r4, r5, r6, lr} - adds r5, r0, #0 - ldrb r0, [r5, #0xc] - adds r6, r0, #0 - cmp r6, #0 - bne _0808F322 - adds r0, #1 - strb r0, [r5, #0xc] - ldr r4, [r5, #0x50] - ldrb r2, [r4, #0x19] - lsrs r2, r2, #6 - lsls r2, r2, #6 - ldrb r3, [r5, #0x19] - movs r1, #0x3f - adds r0, r1, #0 - ands r0, r3 - orrs r0, r2 - strb r0, [r5, #0x19] - ldrb r0, [r4, #0x1b] - lsrs r0, r0, #6 - lsls r0, r0, #6 - ldrb r2, [r5, #0x1b] - ands r1, r2 - orrs r1, r0 - strb r1, [r5, #0x1b] - ldrb r1, [r5, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r5, #0x18] - adds r2, r5, #0 - adds r2, #0x29 - ldrb r0, [r2] - movs r1, #7 - orrs r0, r1 - strb r0, [r2] - str r6, [r5, #0x34] - ldr r1, [r5, #0x50] - ldrh r0, [r1, #0x32] - adds r0, #3 - strh r0, [r5, #0x32] - ldrh r0, [r1, #0x2e] - strh r0, [r5, #0x2e] - adds r0, r5, #0 - movs r1, #3 - bl UpdateSprite -_0808F322: - ldr r2, [r5, #0x50] - movs r1, #0x36 - ldrsh r0, [r2, r1] - cmp r0, #0 - bne _0808F334 - ldr r0, [r2, #0x74] - str r0, [r5, #0x74] - ldr r0, [r2, #0x78] - b _0808F34C -_0808F334: - movs r0, #0x36 - ldrsh r1, [r2, r0] - movs r0, #0x80 - lsls r0, r0, #2 - subs r0, r0, r1 - str r0, [r5, #0x74] - movs r0, #0x36 - ldrsh r1, [r2, r0] - lsls r1, r1, #1 - movs r0, #0xc0 - lsls r0, r0, #2 - subs r0, r0, r1 -_0808F34C: - str r0, [r5, #0x78] - movs r0, #0 - str r0, [r5, #0x70] - adds r0, r5, #0 - bl sub_0808F2B0 - ldr r1, [r5, #0x78] - adds r0, r5, #0 - movs r2, #8 - movs r3, #2 - bl sub_0806FCF4 - ldrb r0, [r5, #0xc] - cmp r0, #0xff - bne _0808F36E - bl sub_0805E780 -_0808F36E: - pop {r4, r5, r6, pc} - - thumb_func_start sub_0808F370 -sub_0808F370: @ 0x0808F370 - push {r4, lr} - adds r4, r0, #0 - ldrb r1, [r4, #0xc] - cmp r1, #0 - bne _0808F388 - ldr r0, [r4, #0x50] - ldrb r0, [r0, #0xd] - cmp r0, #1 - bne _0808F3DA - strb r0, [r4, #0xc] - str r1, [r4, #0x70] - b _0808F3CC -_0808F388: - ldr r0, [r4, #0x50] - ldrb r0, [r0, #0xd] - subs r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #4 - bhi _0808F3D4 - ldr r0, [r4, #0x70] - cmp r0, #0 - bne _0808F3C4 - ldr r0, [r4, #0x74] - subs r0, #1 - str r0, [r4, #0x74] - movs r1, #1 - rsbs r1, r1, #0 - cmp r0, r1 - bne _0808F3DA - bl Random - ldr r2, _0808F3C0 @ =gUnk_08121EA0 - movs r1, #1 - ands r1, r0 - lsls r1, r1, #1 - adds r1, r1, r2 - ldrh r0, [r1] - str r0, [r4, #0x70] - b _0808F3DA - .align 2, 0 -_0808F3C0: .4byte gUnk_08121EA0 -_0808F3C4: - subs r0, #1 - str r0, [r4, #0x70] - cmp r0, #0 - bne _0808F3DA -_0808F3CC: - adds r0, r4, #0 - bl sub_0808F5EC - b _0808F3DA -_0808F3D4: - movs r0, #0 - strb r0, [r4, #0xc] - str r0, [r4, #0x74] -_0808F3DA: - pop {r4, pc} - - thumb_func_start sub_0808F3DC -sub_0808F3DC: @ 0x0808F3DC - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0808F438 - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] - movs r0, #1 - strb r0, [r4, #0xc] - movs r0, #0x78 - strb r0, [r4, #0xe] - ldrb r1, [r4, #0xa] - adds r1, #1 - adds r0, r4, #0 - bl UpdateSprite - ldrb r0, [r4, #0xa] - cmp r0, #8 - beq _0808F41A - cmp r0, #7 - bne _0808F42E - ldr r0, [r4, #0x54] - adds r1, r4, #0 - bl sub_0806FAD8 - b _0808F494 -_0808F41A: - ldr r0, [r4, #0x54] - adds r0, #0x3f - ldrb r0, [r0] - adds r1, r4, #0 - adds r1, #0x3f - strb r0, [r1] - ldr r0, [r4, #0x54] - adds r0, #0x3f - movs r1, #0x7e - strb r1, [r0] -_0808F42E: - ldr r0, [r4, #0x54] - adds r1, r4, #0 - bl sub_0806FAB0 - b _0808F494 -_0808F438: - ldr r0, [r4, #0x50] - ldr r0, [r0, #0x74] - cmp r0, #0 - bne _0808F456 - ldrb r0, [r4, #0xa] - cmp r0, #8 - bne _0808F452 - ldr r0, [r4, #0x54] - adds r1, r4, #0 - adds r1, #0x3f - ldrb r1, [r1] - adds r0, #0x3f - strb r1, [r0] -_0808F452: - bl sub_0805E780 -_0808F456: - ldrb r0, [r4, #0xa] - cmp r0, #5 - bne _0808F486 - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0808F486 - ldr r0, [r4, #0x54] - movs r1, #0x49 - movs r2, #8 - movs r3, #0 - bl CreateObjectWithParent - adds r1, r0, #0 - cmp r1, #0 - beq _0808F486 - ldr r0, [r4, #0x50] - str r0, [r1, #0x50] - ldr r0, [r4, #0x50] - ldr r0, [r0, #0x50] - str r0, [r1, #0x54] -_0808F486: - adds r0, r4, #0 - bl sub_08004274 - ldr r0, [r4, #0x54] - adds r1, r4, #0 - bl sub_0806FA6C -_0808F494: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0808F498 -sub_0808F498: @ 0x0808F498 - push {r4, r5, r6, lr} - adds r5, r0, #0 - ldrb r0, [r5, #0xc] - cmp r0, #0 - beq _0808F4EC - adds r0, r5, #0 - bl sub_0806F3E4 - cmp r0, #0 - beq _0808F4C2 - ldr r0, _0808F4E4 @ =gUnk_030010A0 - ldr r0, [r0] - movs r1, #0xf - ands r0, r1 - cmp r0, #0 - bne _0808F4BE - movs r0, #0xef - bl PlaySFX -_0808F4BE: - bl sub_0805E780 -_0808F4C2: - ldrb r0, [r5, #0xe] - subs r0, #1 - strb r0, [r5, #0xe] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xff - bne _0808F4D4 - bl sub_0805E780 -_0808F4D4: - ldr r0, _0808F4E8 @ =gLinkState - ldrb r0, [r0, #0x1c] - cmp r0, #1 - beq _0808F550 - bl sub_0805E780 - b _0808F550 - .align 2, 0 -_0808F4E4: .4byte gUnk_030010A0 -_0808F4E8: .4byte gLinkState -_0808F4EC: - movs r0, #1 - strb r0, [r5, #0xc] - movs r0, #0x40 - strb r0, [r5, #0xe] - ldrb r0, [r5, #0xb] - movs r6, #0x2b - cmp r0, #0 - beq _0808F4FE - movs r6, #0x2c -_0808F4FE: - ldr r0, [r5, #0x50] - ldr r0, [r0, #0x48] - ldrb r1, [r0, #6] - ldrh r0, [r5, #0x2e] - subs r0, r0, r1 - strh r0, [r5, #0x2e] - bl Random - ldr r4, [r5, #0x50] - ldr r1, [r4, #0x48] - ldrb r1, [r1, #6] - lsls r1, r1, #1 - bl __modsi3 - ldrh r1, [r5, #0x2e] - adds r1, r1, r0 - strh r1, [r5, #0x2e] - ldr r0, [r4, #0x48] - ldrb r1, [r0, #7] - ldrh r0, [r5, #0x32] - subs r0, r0, r1 - strh r0, [r5, #0x32] - bl Random - ldr r1, [r5, #0x50] - ldr r1, [r1, #0x48] - ldrb r1, [r1, #7] - lsls r1, r1, #1 - bl __modsi3 - ldrh r1, [r5, #0x32] - adds r1, r1, r0 - strh r1, [r5, #0x32] - adds r0, r5, #0 - adds r1, r6, #0 - bl sub_0801D2B4 - adds r0, r5, #0 - movs r1, #4 - bl UpdateSprite -_0808F550: - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_0808F554 -sub_0808F554: @ 0x0808F554 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r0, [r5, #0x50] - adds r1, r5, #0 - bl sub_0806FA6C - adds r1, r5, #0 - adds r1, #0x63 - ldrb r0, [r1] - subs r0, #0x18 - strb r0, [r1] - ldr r0, [r5, #0x50] - adds r1, r0, #0 - adds r1, #0x62 - movs r0, #0 - ldrsb r0, [r1, r0] - cmp r0, #0 - beq _0808F588 - adds r2, r5, #0 - adds r2, #0x62 - lsrs r1, r0, #0x1f - adds r0, r0, r1 - asrs r0, r0, #1 - ldrb r1, [r2] - adds r0, r0, r1 - strb r0, [r2] -_0808F588: - ldrb r0, [r5, #0xc] - cmp r0, #0 - beq _0808F5AC - adds r1, r5, #0 - adds r1, #0x84 - ldr r0, [r1] - cmp r0, #0 - beq _0808F5A4 - subs r0, #1 - str r0, [r1] - cmp r0, #0 - bne _0808F5A4 - bl sub_0805E780 -_0808F5A4: - adds r0, r5, #0 - bl sub_08004274 - b _0808F5E8 -_0808F5AC: - movs r0, #1 - strb r0, [r5, #0xc] - ldr r4, [r5, #0x50] - ldrb r2, [r4, #0x19] - lsrs r2, r2, #6 - lsls r2, r2, #6 - ldrb r3, [r5, #0x19] - movs r1, #0x3f - adds r0, r1, #0 - ands r0, r3 - orrs r0, r2 - strb r0, [r5, #0x19] - ldrb r0, [r4, #0x1b] - lsrs r0, r0, #6 - lsls r0, r0, #6 - ldrb r2, [r5, #0x1b] - ands r1, r2 - orrs r1, r0 - strb r1, [r5, #0x1b] - adds r2, r5, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2] - adds r0, r5, #0 - movs r1, #3 - bl UpdateSprite -_0808F5E8: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_0808F5EC -sub_0808F5EC: @ 0x0808F5EC - push {r4, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x54] - movs r1, #0x49 - movs r2, #5 - movs r3, #0 - bl CreateObjectWithParent - adds r1, r0, #0 - cmp r1, #0 - beq _0808F608 - str r4, [r1, #0x50] - ldr r0, [r4, #0x54] - str r0, [r1, #0x54] -_0808F608: - ldr r0, [r4, #0x54] - movs r1, #0x49 - movs r2, #6 - movs r3, #0 - bl CreateObjectWithParent - adds r1, r0, #0 - cmp r1, #0 - beq _0808F620 - str r4, [r1, #0x50] - ldr r0, [r4, #0x54] - str r0, [r1, #0x54] -_0808F620: - ldr r0, [r4, #0x54] - movs r1, #0x49 - movs r2, #7 - movs r3, #0 - bl CreateObjectWithParent - adds r1, r0, #0 - cmp r1, #0 - beq _0808F638 - str r4, [r1, #0x50] - ldr r0, [r4, #0x54] - str r0, [r1, #0x54] -_0808F638: - movs r0, #0x96 - lsls r0, r0, #2 - str r0, [r4, #0x74] - pop {r4, pc} - - thumb_func_start sub_0808F640 -sub_0808F640: @ 0x0808F640 - push {lr} - ldr r2, _0808F654 @ =gUnk_08121EA4 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0808F654: .4byte gUnk_08121EA4 - - thumb_func_start sub_0808F658 -sub_0808F658: @ 0x0808F658 - push {r4, r5, lr} - adds r5, r0, #0 - movs r2, #1 - movs r0, #1 - strb r0, [r5, #0xc] - ldrb r1, [r5, #0x18] - subs r0, #5 - ands r0, r1 - orrs r0, r2 - strb r0, [r5, #0x18] - ldrb r0, [r5, #0x1b] - movs r1, #0xc0 - orrs r0, r1 - strb r0, [r5, #0x1b] - ldrb r0, [r5, #0x19] - orrs r0, r1 - strb r0, [r5, #0x19] - ldrb r0, [r5, #0xa] - adds r3, r5, #0 - adds r3, #0x29 - movs r1, #7 - ands r1, r0 - ldrb r2, [r3] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - ldrb r0, [r5, #0xa] - strb r0, [r5, #0x1e] - movs r0, #8 - strb r0, [r5, #0x15] - ldr r1, _0808F6D8 @ =gUnk_08121EB0 - ldrb r0, [r5, #0xa] - adds r0, r0, r1 - ldrb r0, [r0] - movs r4, #0 - strh r0, [r5, #0x24] - ldr r3, _0808F6DC @ =gRoomControls - ldrh r1, [r3, #6] - adds r2, r1, #0 - subs r2, #0x60 - adds r0, r5, #0 - adds r0, #0x78 - strh r2, [r0] - ldrh r0, [r3, #0x1e] - adds r1, r1, r0 - adds r1, #0x60 - adds r0, r5, #0 - adds r0, #0x7a - strh r1, [r0] - strb r4, [r5, #0x14] - bl Random - movs r1, #0xf - ands r0, r1 - lsls r0, r0, #4 - ldrh r1, [r5, #0x2e] - adds r0, r0, r1 - strh r0, [r5, #0x2e] - strb r4, [r5, #0xe] - strb r4, [r5, #0xd] - pop {r4, r5, pc} - .align 2, 0 -_0808F6D8: .4byte gUnk_08121EB0 -_0808F6DC: .4byte gRoomControls - - thumb_func_start sub_0808F6E0 -sub_0808F6E0: @ 0x0808F6E0 - push {r4, lr} - adds r4, r0, #0 - bl sub_0806F69C - adds r0, r4, #0 - adds r0, #0x78 - movs r2, #0x2e - ldrsh r1, [r4, r2] - movs r2, #0 - ldrsh r0, [r0, r2] - cmp r1, r0 - blt _0808F704 - adds r0, r4, #0 - adds r0, #0x7a - movs r2, #0 - ldrsh r0, [r0, r2] - cmp r1, r0 - ble _0808F708 -_0808F704: - movs r0, #2 - strb r0, [r4, #0xc] -_0808F708: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0808F70C -sub_0808F70C: @ 0x0808F70C - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xd] - cmp r0, #0 - bne _0808F75C - movs r0, #1 - strb r0, [r4, #0xd] - bl Random - movs r1, #7 - ands r0, r1 - lsls r0, r0, #3 - adds r0, #0x1f - strb r0, [r4, #0xe] - ldrb r1, [r4, #0x15] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _0808F738 - adds r0, r4, #0 - adds r0, #0x7a - b _0808F73C -_0808F738: - adds r0, r4, #0 - adds r0, #0x78 -_0808F73C: - ldrh r0, [r0] - strh r0, [r4, #0x2e] - ldrb r0, [r4, #0xa] - cmp r0, #2 - bne _0808F75C - bl Random - ldr r3, _0808F778 @ =gUnk_08121EB3 - ldrb r1, [r4, #0xb] - lsls r1, r1, #1 - movs r2, #1 - ands r2, r0 - adds r1, r1, r2 - adds r1, r1, r3 - ldrb r0, [r1] - strh r0, [r4, #0x32] -_0808F75C: - ldrb r1, [r4, #0xd] - cmp r1, #1 - bne _0808F774 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0 - bne _0808F774 - strb r1, [r4, #0xc] - strb r0, [r4, #0xd] -_0808F774: - pop {r4, pc} - .align 2, 0 -_0808F778: .4byte gUnk_08121EB3 - - thumb_func_start sub_0808F77C -sub_0808F77C: @ 0x0808F77C - push {lr} - ldr r2, _0808F790 @ =gUnk_08121EB8 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0808F790: .4byte gUnk_08121EB8 - - thumb_func_start sub_0808F794 -sub_0808F794: @ 0x0808F794 - push {lr} - movs r1, #1 - strb r1, [r0, #0xc] - movs r1, #0x3c - strb r1, [r0, #0xe] - movs r1, #0 - bl UpdateSprite - pop {pc} - .align 2, 0 - - thumb_func_start sub_0808F7A8 -sub_0808F7A8: @ 0x0808F7A8 - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xe] - subs r0, #1 - strb r0, [r2, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0808F7D0 - movs r0, #0x78 - strb r0, [r2, #0xe] - ldrb r0, [r2, #0xc] - adds r0, #1 - strb r0, [r2, #0xc] - ldrb r1, [r2, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r2, #0x18] -_0808F7D0: - pop {pc} - .align 2, 0 - - thumb_func_start sub_0808F7D4 -sub_0808F7D4: @ 0x0808F7D4 - push {r4, lr} - adds r4, r0, #0 - bl sub_08004274 - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0808F80A - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #0x39 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #0x18 - orrs r0, r1 - strb r0, [r2] - adds r0, r4, #0 - movs r1, #2 - bl UpdateSprite -_0808F80A: - pop {r4, pc} - - thumb_func_start sub_0808F80C -sub_0808F80C: @ 0x0808F80C - push {r4, lr} - adds r4, r0, #0 - bl sub_08004274 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - bne _0808F850 - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] - strb r1, [r4, #0x15] - movs r2, #0 - movs r0, #0x80 - lsls r0, r0, #1 - strh r0, [r4, #0x24] - movs r0, #0x80 - lsls r0, r0, #0xa - str r0, [r4, #0x20] - ldrb r1, [r4, #0x1b] - movs r0, #0x3f - ands r0, r1 - strb r0, [r4, #0x1b] - strb r2, [r4, #0xe] - adds r0, r4, #0 - movs r1, #3 - bl UpdateSprite - ldr r0, _0808F854 @ =0x0000012B - bl PlaySFX -_0808F850: - pop {r4, pc} - .align 2, 0 -_0808F854: .4byte 0x0000012B - - thumb_func_start sub_0808F858 -sub_0808F858: @ 0x0808F858 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _0808F884 - adds r0, r4, #0 - bl sub_0806F69C - movs r1, #0x80 - lsls r1, r1, #6 - adds r0, r4, #0 - bl sub_08003FC4 - cmp r0, #0 - bne _0808F88A - adds r0, r4, #0 - bl sub_08004274 - b _0808F88A -_0808F884: - adds r0, r4, #0 - bl sub_08004274 -_0808F88A: - movs r1, #0x32 - ldrsh r0, [r4, r1] - ldr r1, _0808F8C4 @ =gRoomControls - ldrh r2, [r1, #8] - subs r0, r0, r2 - movs r1, #0x8c - lsls r1, r1, #2 - cmp r0, r1 - bgt _0808F8C8 - adds r0, r2, r1 - strh r0, [r4, #0x32] - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0808F8EA - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] - movs r0, #0x78 - strb r0, [r4, #0xe] - adds r0, r4, #0 - movs r1, #2 - bl UpdateSprite - b _0808F8EA - .align 2, 0 -_0808F8C4: .4byte gRoomControls -_0808F8C8: - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0808F8EA - movs r0, #0x80 - lsls r0, r0, #0xa - str r0, [r4, #0x20] - adds r0, r4, #0 - movs r1, #3 - bl UpdateSprite - ldr r0, _0808F8EC @ =0x0000012B - bl PlaySFX -_0808F8EA: - pop {r4, pc} - .align 2, 0 -_0808F8EC: .4byte 0x0000012B - - thumb_func_start sub_0808F8F0 -sub_0808F8F0: @ 0x0808F8F0 - push {r4, lr} - adds r4, r0, #0 - bl sub_08004274 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0808F912 - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #5 - bl UpdateSprite -_0808F912: - pop {r4, pc} - - thumb_func_start sub_0808F914 -sub_0808F914: @ 0x0808F914 - push {r4, lr} - adds r4, r0, #0 - bl sub_08004274 - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0808F93C - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] - movs r0, #0x3c - strb r0, [r4, #0xe] - adds r0, r4, #0 - movs r1, #1 - bl UpdateSprite -_0808F93C: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0808F940 -sub_0808F940: @ 0x0808F940 - push {r4, lr} - adds r4, r0, #0 - bl sub_08004274 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0808F960 - ldr r1, _0808F964 @ =gUnk_02000080 - ldrb r0, [r1, #6] - adds r0, #1 - strb r0, [r1, #6] - bl sub_0805E780 -_0808F960: - pop {r4, pc} - .align 2, 0 -_0808F964: .4byte gUnk_02000080 - - thumb_func_start sub_0808F968 -sub_0808F968: @ 0x0808F968 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _0808F98C @ =gUnk_08121ED8 - ldrb r0, [r4, #0xc] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - ldrb r0, [r4, #0xc] - cmp r0, #0 - beq _0808F988 - adds r0, r4, #0 - bl sub_08090514 -_0808F988: - pop {r4, pc} - .align 2, 0 -_0808F98C: .4byte gUnk_08121ED8 - - thumb_func_start sub_0808F990 -sub_0808F990: @ 0x0808F990 - push {r4, r5, r6, lr} - adds r4, r0, #0 - movs r2, #1 - strb r2, [r4, #0xc] - movs r3, #0 - movs r0, #0x80 - strh r0, [r4, #0x24] - ldrb r0, [r4, #0xe] - strb r0, [r4, #0xf] - strb r3, [r4, #0xe] - ldrb r1, [r4, #0x11] - movs r0, #0x10 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #3 - orrs r0, r1 - strb r0, [r4, #0x11] - adds r0, r4, #0 - adds r0, #0x81 - strb r3, [r0] - adds r0, #2 - strb r3, [r0] - ldrb r1, [r4, #0x19] - movs r0, #0x3f - ands r0, r1 - movs r1, #0x80 - orrs r0, r1 - strb r0, [r4, #0x19] - ldrb r0, [r4, #0xa] - cmp r0, #1 - bne _0808F9E8 - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #4 - orrs r0, r1 - strb r0, [r2] - adds r0, r4, #0 - adds r0, #0x80 - strb r3, [r0] - b _0808FA1C -_0808F9E8: - adds r0, r4, #0 - adds r0, #0x80 - strb r2, [r0] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #5 - orrs r0, r1 - strb r0, [r2] - ldrb r0, [r4, #0xa] - cmp r0, #2 - beq _0808FA0A - cmp r0, #4 - bne _0808FA1C -_0808FA0A: - ldrh r0, [r4, #0x32] - adds r0, #2 - strh r0, [r4, #0x32] - adds r1, r4, #0 - adds r1, #0x63 - movs r0, #0xfe - strb r0, [r1] - strb r3, [r4, #0xd] - strb r3, [r4, #0x1e] -_0808FA1C: - ldrb r0, [r4, #0xf] - cmp r0, #0 - beq _0808FAC4 - movs r6, #0 - cmp r0, #0x80 - beq _0808FA84 - ldrh r1, [r4, #0xa] - ldr r0, _0808FA38 @ =0x00000101 - cmp r1, r0 - bne _0808FA3C - movs r0, #0xf - ldrsb r0, [r4, r0] - ldrh r1, [r4, #0x32] - b _0808FA42 - .align 2, 0 -_0808FA38: .4byte 0x00000101 -_0808FA3C: - movs r0, #0xf - ldrsb r0, [r4, r0] - ldrh r1, [r4, #0x2e] -_0808FA42: - adds r0, r0, r1 - adds r1, r4, #0 - adds r1, #0x7e - strh r0, [r1] - adds r5, r1, #0 - ldr r3, [r4, #0x50] - cmp r3, #0 - bne _0808FA5E - adds r0, r4, #0 - adds r0, #0x86 - ldrh r0, [r0] - bl sub_0807CBE4 - b _0808FA7C -_0808FA5E: - adds r2, r4, #0 - adds r2, #0x82 - ldrb r1, [r2] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0808FA76 - ldrb r0, [r3, #0xc] - cmp r0, #2 - bne _0808FAA2 - adds r6, #1 - b _0808FAA2 -_0808FA76: - ldrb r0, [r2] - bl sub_0807CBD0 -_0808FA7C: - cmp r0, #0 - beq _0808FAA2 - adds r6, #1 - b _0808FAA2 -_0808FA84: - movs r6, #1 - ldrh r1, [r4, #0xa] - ldr r0, _0808FA94 @ =0x00000101 - cmp r1, r0 - bne _0808FA98 - ldrh r1, [r4, #0x32] - b _0808FA9A - .align 2, 0 -_0808FA94: .4byte 0x00000101 -_0808FA98: - ldrh r1, [r4, #0x2e] -_0808FA9A: - adds r0, r4, #0 - adds r0, #0x7e - strh r1, [r0] - adds r5, r0, #0 -_0808FAA2: - cmp r6, #0 - beq _0808FAC4 - adds r1, r4, #0 - adds r1, #0x81 - movs r0, #1 - strb r0, [r1] - ldrh r1, [r4, #0xa] - ldr r0, _0808FABC @ =0x00000101 - cmp r1, r0 - bne _0808FAC0 - ldrh r0, [r5] - strh r0, [r4, #0x32] - b _0808FAC4 - .align 2, 0 -_0808FABC: .4byte 0x00000101 -_0808FAC0: - ldrh r0, [r5] - strh r0, [r4, #0x2e] -_0808FAC4: - adds r0, r4, #0 - bl sub_0808FF50 - pop {r4, r5, r6, pc} - - thumb_func_start sub_0808FACC -sub_0808FACC: @ 0x0808FACC - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x81 - ldrb r0, [r0] - cmp r0, #0 - bne _0808FAF2 - adds r0, r4, #0 - adds r0, #0x80 - ldrb r0, [r0] - cmp r0, #0 - bne _0808FAEA - adds r0, r4, #0 - bl sub_0808FBFC - b _0808FB0A -_0808FAEA: - adds r0, r4, #0 - bl sub_0808FB68 - b _0808FB0A -_0808FAF2: - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _0808FB0A - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0808FB0A - movs r0, #0x86 - lsls r0, r0, #1 - bl sub_08004488 -_0808FB0A: - ldrb r0, [r4, #0xa] - cmp r0, #2 - beq _0808FB14 - cmp r0, #4 - bne _0808FB64 -_0808FB14: - ldrb r1, [r4, #0xd] - cmp r1, #1 - beq _0808FB3E - cmp r1, #1 - bgt _0808FB24 - cmp r1, #0 - beq _0808FB2A - b _0808FB64 -_0808FB24: - cmp r1, #2 - beq _0808FB5E - b _0808FB64 -_0808FB2A: - adds r0, r4, #0 - bl sub_0808FECC - cmp r0, #0 - beq _0808FB64 - movs r0, #1 - strb r0, [r4, #0xd] - movs r0, #0xc - strb r0, [r4, #0xe] - b _0808FB64 -_0808FB3E: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0808FB64 - strb r1, [r4, #0x1e] - movs r0, #2 - strb r0, [r4, #0xd] - movs r0, #0x80 - bl sub_08004488 - adds r0, r4, #0 - bl sub_0808FF20 - b _0808FB64 -_0808FB5E: - adds r0, r4, #0 - bl nullsub_1 -_0808FB64: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0808FB68 -sub_0808FB68: @ 0x0808FB68 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x70 - ldrh r0, [r0] - adds r1, r4, #0 - adds r1, #0x38 - ldrb r1, [r1] - bl sub_080001DA - adds r1, r0, #0 - ldr r0, _0808FBAC @ =0x00004031 - cmp r1, r0 - bhi _0808FBB0 - subs r0, #1 - cmp r1, r0 - blo _0808FBB0 - movs r0, #2 - strb r0, [r4, #0xc] - adds r0, r1, #0 - subs r0, #0x30 - movs r1, #1 - ands r0, r1 - lsls r0, r0, #4 - movs r1, #8 - orrs r0, r1 - strb r0, [r4, #0x15] - movs r0, #1 - bl sub_08078A90 - adds r0, r4, #0 - movs r1, #0 - bl sub_0808FD44 - b _0808FBF6 - .align 2, 0 -_0808FBAC: .4byte 0x00004031 -_0808FBB0: - adds r0, r4, #0 - adds r0, #0x72 - ldrh r0, [r0] - adds r1, r4, #0 - adds r1, #0x38 - ldrb r1, [r1] - bl sub_080001DA - adds r1, r0, #0 - ldr r0, _0808FBF8 @ =0x00004031 - cmp r1, r0 - bhi _0808FBF0 - subs r0, #1 - cmp r1, r0 - blo _0808FBF0 - movs r0, #2 - strb r0, [r4, #0xc] - adds r0, r1, #0 - subs r0, #0x30 - movs r1, #1 - ands r0, r1 - lsls r0, r0, #4 - movs r1, #8 - orrs r0, r1 - strb r0, [r4, #0x15] - movs r0, #1 - bl sub_08078A90 - adds r0, r4, #0 - movs r1, #1 - bl sub_0808FD44 -_0808FBF0: - adds r0, r4, #0 - bl sub_0808FDE8 -_0808FBF6: - pop {r4, pc} - .align 2, 0 -_0808FBF8: .4byte 0x00004031 - - thumb_func_start sub_0808FBFC -sub_0808FBFC: @ 0x0808FBFC - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x7c - ldrh r0, [r0] - adds r1, r4, #0 - adds r1, #0x38 - ldrb r1, [r1] - bl sub_080001DA - adds r1, r0, #0 - ldr r0, _0808FC38 @ =0x0000404A - cmp r1, r0 - beq _0808FC34 - movs r0, #2 - strb r0, [r4, #0xc] - adds r0, r1, #0 - subs r0, #0x4b - movs r1, #3 - ands r0, r1 - lsls r0, r0, #3 - strb r0, [r4, #0x15] - movs r0, #1 - bl sub_08078A90 - adds r0, r4, #0 - movs r1, #0 - bl sub_0808FD44 -_0808FC34: - pop {r4, pc} - .align 2, 0 -_0808FC38: .4byte 0x0000404A - - thumb_func_start sub_0808FC3C -sub_0808FC3C: @ 0x0808FC3C - push {r4, lr} - adds r4, r0, #0 - bl sub_0800445C - adds r0, r4, #0 - bl sub_0808FC5C - cmp r0, #0 - beq _0808FC58 - movs r0, #1 - strb r0, [r4, #0xc] - movs r0, #0 - bl sub_08078A90 -_0808FC58: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0808FC5C -sub_0808FC5C: @ 0x0808FC5C - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_0806F69C - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0 - bne _0808FD40 - ldrb r1, [r4, #0xa] - cmp r1, #2 - beq _0808FC7C - cmp r1, #4 - bne _0808FC84 -_0808FC7C: - adds r1, r4, #0 - adds r1, #0x63 - movs r0, #0xfe - b _0808FC88 -_0808FC84: - adds r1, r4, #0 - adds r1, #0x63 -_0808FC88: - strb r0, [r1] - adds r0, r4, #0 - bl sub_080002D0 - cmp r0, #0 - bne _0808FD40 - ldrb r0, [r4, #0xf] - cmp r0, #0 - beq _0808FD30 - movs r2, #0 - ldrh r1, [r4, #0xa] - ldr r0, _0808FCB4 @ =0x00000101 - cmp r1, r0 - bne _0808FCB8 - movs r1, #0x32 - ldrsh r0, [r4, r1] - adds r1, r4, #0 - adds r1, #0x7e - ldrh r1, [r1] - cmp r0, r1 - bne _0808FCC8 - b _0808FCCC - .align 2, 0 -_0808FCB4: .4byte 0x00000101 -_0808FCB8: - movs r1, #0x2e - ldrsh r0, [r4, r1] - adds r1, r4, #0 - adds r1, #0x7e - ldrh r1, [r1] - cmp r0, r1 - bne _0808FCC8 - movs r2, #1 -_0808FCC8: - cmp r2, #0 - beq _0808FD30 -_0808FCCC: - adds r0, r4, #0 - adds r0, #0x81 - movs r5, #1 - strb r5, [r0] - ldr r3, [r4, #0x50] - cmp r3, #0 - bne _0808FCE4 - adds r0, #5 - ldrh r0, [r0] - bl sub_0807CCC8 - b _0808FD0C -_0808FCE4: - adds r2, r4, #0 - adds r2, #0x82 - ldrb r1, [r2] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0808FD06 - adds r0, r3, #0 - adds r0, #0x28 - subs r2, #8 - adds r1, r5, #0 - ldrh r2, [r2] - lsls r1, r2 - ldrb r2, [r0] - orrs r1, r2 - strb r1, [r0] - b _0808FD0C -_0808FD06: - ldrb r0, [r2] - bl sub_0807CCB4 -_0808FD0C: - adds r0, r4, #0 - adds r0, #0x80 - ldrb r0, [r0] - cmp r0, #0 - bne _0808FD1A - movs r0, #4 - b _0808FD1C -_0808FD1A: - movs r0, #0x18 -_0808FD1C: - strb r0, [r4, #0xe] - ldr r0, _0808FD3C @ =gLinkState - ldr r0, [r0, #0x30] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - bne _0808FD30 - ldrb r0, [r4, #0xe] - adds r0, #0x10 - strb r0, [r4, #0xe] -_0808FD30: - adds r0, r4, #0 - bl sub_0808FF50 - movs r0, #1 - b _0808FD42 - .align 2, 0 -_0808FD3C: .4byte gLinkState -_0808FD40: - movs r0, #0 -_0808FD42: - pop {r4, r5, pc} - - thumb_func_start sub_0808FD44 -sub_0808FD44: @ 0x0808FD44 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - adds r0, #0x80 - ldrb r0, [r0] - cmp r0, #1 - bne _0808FD8E - adds r0, r4, #0 - adds r0, #0x83 - ldrb r0, [r0] - cmp r0, #0 - beq _0808FD62 - adds r0, r4, #0 - bl sub_08090498 -_0808FD62: - cmp r5, #0 - beq _0808FD6C - adds r0, r4, #0 - adds r0, #0x72 - b _0808FD70 -_0808FD6C: - adds r0, r4, #0 - adds r0, #0x70 -_0808FD70: - ldrh r5, [r0] - ldr r0, _0808FD84 @ =gLinkState - ldr r0, [r0, #0x30] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0808FD88 - movs r0, #0x40 - strh r0, [r4, #0x24] - b _0808FDB2 - .align 2, 0 -_0808FD84: .4byte gLinkState -_0808FD88: - strh r1, [r4, #0x24] - movs r0, #0x10 - b _0808FDB4 -_0808FD8E: - adds r0, r4, #0 - adds r0, #0x7c - ldrh r5, [r0] - ldr r0, _0808FDAC @ =gLinkState - ldr r0, [r0, #0x30] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0808FDB0 - movs r1, #0x40 - movs r0, #0x40 - strh r0, [r4, #0x24] - strb r1, [r4, #0xe] - b _0808FDB6 - .align 2, 0 -_0808FDAC: .4byte gLinkState -_0808FDB0: - strh r1, [r4, #0x24] -_0808FDB2: - movs r0, #0x20 -_0808FDB4: - strb r0, [r4, #0xe] -_0808FDB6: - ldr r0, _0808FDE0 @ =0x0000010F - bl sub_08004488 - adds r0, r4, #0 - bl sub_08090254 - ldr r1, _0808FDE4 @ =gUnk_080B4488 - ldrb r0, [r4, #0x15] - lsrs r0, r0, #3 - lsls r0, r0, #1 - adds r0, r0, r1 - movs r1, #0 - ldrsh r0, [r0, r1] - adds r0, r5, r0 - adds r1, r4, #0 - adds r1, #0x38 - ldrb r1, [r1] - bl sub_080001DA - pop {r4, r5, pc} - .align 2, 0 -_0808FDE0: .4byte 0x0000010F -_0808FDE4: .4byte gUnk_080B4488 - - thumb_func_start sub_0808FDE8 -sub_0808FDE8: @ 0x0808FDE8 - push {r4, r5, r6, r7, lr} - adds r7, r0, #0 - adds r0, #0x70 - ldrh r5, [r0] - subs r0, r5, #1 - movs r1, #1 - bl sub_080002E0 - adds r4, r0, #0 - adds r0, r5, #0 - movs r1, #1 - bl sub_080001DA - ldr r6, _0808FE28 @ =0x0000402E - cmp r0, r6 - bne _0808FE30 - movs r0, #0xf0 - ands r0, r4 - cmp r0, #0 - beq _0808FE14 - cmp r0, #0x50 - bne _0808FE1C -_0808FE14: - movs r0, #5 - ands r0, r4 - cmp r0, #0 - bne _0808FE58 -_0808FE1C: - ldr r0, _0808FE2C @ =0x0000402C - adds r1, r5, #0 - movs r2, #1 - bl sub_0800015E - b _0808FE58 - .align 2, 0 -_0808FE28: .4byte 0x0000402E -_0808FE2C: .4byte 0x0000402C -_0808FE30: - adds r0, r5, #0 - movs r1, #1 - bl sub_080002E0 - cmp r0, #5 - bne _0808FE58 - movs r1, #0xf0 - ands r1, r4 - cmp r1, #0 - beq _0808FE48 - cmp r1, #0x50 - bne _0808FE58 -_0808FE48: - ands r4, r0 - cmp r4, #0 - beq _0808FE58 - adds r0, r6, #0 - adds r1, r5, #0 - movs r2, #1 - bl sub_0800015E -_0808FE58: - adds r0, r7, #0 - adds r0, #0x72 - ldrh r5, [r0] - adds r0, r5, #1 - movs r1, #1 - bl sub_080002E0 - adds r4, r0, #0 - adds r0, r5, #0 - movs r1, #1 - bl sub_080001DA - ldr r6, _0808FE98 @ =0x0000402F - cmp r0, r6 - bne _0808FEA0 - movs r0, #0xf0 - ands r0, r4 - cmp r0, #0 - beq _0808FE82 - cmp r0, #0x50 - bne _0808FE8A -_0808FE82: - movs r0, #0xa - ands r0, r4 - cmp r0, #0 - bne _0808FEC8 -_0808FE8A: - ldr r0, _0808FE9C @ =0x0000402D - adds r1, r5, #0 - movs r2, #1 - bl sub_0800015E - b _0808FEC8 - .align 2, 0 -_0808FE98: .4byte 0x0000402F -_0808FE9C: .4byte 0x0000402D -_0808FEA0: - adds r0, r5, #0 - movs r1, #1 - bl sub_080002E0 - cmp r0, #0xa - bne _0808FEC8 - movs r1, #0xf0 - ands r1, r4 - cmp r1, #0 - beq _0808FEB8 - cmp r1, #0x50 - bne _0808FEC8 -_0808FEB8: - ands r4, r0 - cmp r4, #0 - beq _0808FEC8 - adds r0, r6, #0 - adds r1, r5, #0 - movs r2, #1 - bl sub_0800015E -_0808FEC8: - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_0808FECC -sub_0808FECC: @ 0x0808FECC - push {r4, r5, lr} - adds r2, r0, #0 - movs r4, #1 - ldr r0, _0808FF18 @ =gLinkState - ldr r0, [r0, #0x30] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - bne _0808FF10 - ldr r3, _0808FF1C @ =gLinkEntity - ldrb r0, [r3, #0xc] - cmp r0, #6 - bne _0808FF10 - ldrb r0, [r3, #0x14] - cmp r0, #0 - bne _0808FF10 - movs r1, #0x32 - ldrsh r0, [r3, r1] - movs r5, #0x32 - ldrsh r1, [r2, r5] - subs r0, r0, r1 - cmp r0, #0x13 - bgt _0808FF10 - movs r0, #0x2e - ldrsh r2, [r2, r0] - adds r0, r2, #0 - adds r0, #0xc - movs r5, #0x2e - ldrsh r1, [r3, r5] - cmp r0, r1 - ble _0808FF10 - subs r0, #0x18 - cmp r0, r1 - blt _0808FF12 -_0808FF10: - movs r4, #0 -_0808FF12: - adds r0, r4, #0 - pop {r4, r5, pc} - .align 2, 0 -_0808FF18: .4byte gLinkState -_0808FF1C: .4byte gLinkEntity - - thumb_func_start sub_0808FF20 -sub_0808FF20: @ 0x0808FF20 - push {r4, lr} - adds r4, r0, #0 - ldrb r1, [r4, #0xb] - cmp r1, #0 - beq _0808FF4A - cmp r1, #0 - blt _0808FF4A - cmp r1, #2 - bgt _0808FF4A - subs r1, #1 - movs r0, #0x63 - movs r2, #0 - bl CreateObject - adds r1, r0, #0 - cmp r1, #0 - beq _0808FF4A - str r4, [r1, #0x50] - adds r0, r4, #0 - bl CopyPosition -_0808FF4A: - pop {r4, pc} - - thumb_func_start nullsub_1 -nullsub_1: @ 0x0808FF4C - bx lr - .align 2, 0 - - thumb_func_start sub_0808FF50 -sub_0808FF50: @ 0x0808FF50 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r6, r0, #0 - movs r0, #0x2e - ldrsh r1, [r6, r0] - ldr r2, _0808FF98 @ =gRoomControls - ldrh r0, [r2, #6] - subs r1, r1, r0 - asrs r1, r1, #4 - movs r3, #0x3f - ands r1, r3 - movs r4, #0x32 - ldrsh r0, [r6, r4] - ldrh r2, [r2, #8] - subs r0, r0, r2 - asrs r0, r0, #4 - ands r0, r3 - lsls r0, r0, #6 - orrs r1, r0 - adds r2, r6, #0 - adds r2, #0x7c - strh r1, [r2] - ldrh r0, [r6, #0x2e] - movs r1, #0xf - ands r1, r0 - ldrh r7, [r2] - adds r0, r6, #0 - adds r0, #0x80 - ldrb r0, [r0] - cmp r0, #0 - beq _0808FF9C - cmp r0, #1 - beq _0808FFC0 - b _0809008A - .align 2, 0 -_0808FF98: .4byte gRoomControls -_0808FF9C: - adds r0, r6, #0 - adds r0, #0x70 - strh r7, [r0] - ldrh r0, [r0] - movs r1, #1 - bl sub_080001DA - adds r1, r6, #0 - adds r1, #0x74 - strh r0, [r1] - ldr r0, _0808FFBC @ =0x0000404A - adds r1, r7, #0 - movs r2, #1 - bl sub_0800015E - b _0809008A - .align 2, 0 -_0808FFBC: .4byte 0x0000404A -_0808FFC0: - movs r0, #8 - ands r1, r0 - cmp r1, #0 - beq _0809002C - adds r0, r6, #0 - adds r0, #0x70 - strh r7, [r0] - ldrh r0, [r0] - movs r1, #1 - bl sub_080001DA - adds r1, r6, #0 - adds r1, #0x74 - strh r0, [r1] - ldr r4, _08090028 @ =gUnk_08121EE4 - movs r0, #0x81 - adds r0, r0, r6 - mov r8, r0 - ldrb r0, [r0] - lsls r0, r0, #1 - adds r0, r0, r4 - ldrh r0, [r0] - adds r1, r7, #0 - movs r2, #1 - bl sub_0800015E - adds r0, r7, #1 - adds r5, r6, #0 - adds r5, #0x72 - strh r0, [r5] - ldrh r0, [r5] - movs r1, #1 - bl sub_080001DA - adds r1, r6, #0 - adds r1, #0x76 - strh r0, [r1] - mov r1, r8 - ldrb r0, [r1] - adds r0, #4 - lsls r0, r0, #1 - adds r0, r0, r4 - ldrh r1, [r0] - ldrh r2, [r5] - adds r0, r6, #0 - bl sub_08090094 - adds r0, r6, #0 - movs r1, #1 - bl sub_0809028C - b _0809008A - .align 2, 0 -_08090028: .4byte gUnk_08121EE4 -_0809002C: - adds r0, r6, #0 - adds r0, #0x72 - strh r7, [r0] - ldrh r0, [r0] - movs r1, #1 - bl sub_080001DA - adds r1, r6, #0 - adds r1, #0x76 - strh r0, [r1] - ldr r5, _08090090 @ =gUnk_08121EE4 - movs r4, #0x81 - adds r4, r4, r6 - mov r8, r4 - ldrb r0, [r4] - lsls r0, r0, #1 - adds r0, r0, r5 - ldrh r0, [r0] - adds r1, r7, #0 - movs r2, #1 - bl sub_0800015E - subs r0, r7, #1 - adds r4, r6, #0 - adds r4, #0x70 - strh r0, [r4] - ldrh r0, [r4] - movs r1, #1 - bl sub_080001DA - adds r1, r6, #0 - adds r1, #0x74 - strh r0, [r1] - mov r1, r8 - ldrb r0, [r1] - adds r0, #2 - lsls r0, r0, #1 - adds r0, r0, r5 - ldrh r1, [r0] - ldrh r2, [r4] - adds r0, r6, #0 - bl sub_08090094 - adds r0, r6, #0 - movs r1, #0 - bl sub_0809028C -_0809008A: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08090090: .4byte gUnk_08121EE4 - - thumb_func_start sub_08090094 -sub_08090094: @ 0x08090094 - push {r4, r5, r6, r7, lr} - adds r6, r0, #0 - adds r5, r1, #0 - adds r7, r2, #0 - adds r0, r7, #0 - movs r1, #1 - bl sub_080002E0 - adds r4, r0, #0 - adds r0, r7, #0 - movs r1, #1 - bl sub_080001DA - adds r3, r0, #0 - movs r0, #0x80 - lsls r0, r0, #7 - ands r0, r3 - cmp r0, #0 - bne _0809012C - adds r3, r5, #0 - ldr r1, _080900D0 @ =0xFFFFBFDC - adds r0, r3, r1 - cmp r0, #0xb - bhi _0809011A - lsls r0, r0, #2 - ldr r1, _080900D4 @ =_080900D8 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080900D0: .4byte 0xFFFFBFDC -_080900D4: .4byte _080900D8 -_080900D8: @ jump table - .4byte _08090114 @ case 0 - .4byte _08090108 @ case 1 - .4byte _0809011A @ case 2 - .4byte _0809011A @ case 3 - .4byte _0809011A @ case 4 - .4byte _0809011A @ case 5 - .4byte _0809011A @ case 6 - .4byte _0809011A @ case 7 - .4byte _08090114 @ case 8 - .4byte _0809010E @ case 9 - .4byte _08090114 @ case 10 - .4byte _0809010E @ case 11 -_08090108: - cmp r4, #5 - bne _0809011A - b _08090118 -_0809010E: - cmp r4, #5 - bne _0809011A - b _08090118 -_08090114: - cmp r4, #0xa - bne _0809011A -_08090118: - ldr r3, _08090128 @ =0x00004022 -_0809011A: - adds r0, r3, #0 - adds r1, r7, #0 - movs r2, #1 - bl sub_0800015E - b _08090242 - .align 2, 0 -_08090128: .4byte 0x00004022 -_0809012C: - ldr r1, _08090140 @ =0xFFFFBFDE - adds r0, r3, r1 - cmp r0, #0xd - bls _08090136 - b _08090242 -_08090136: - lsls r0, r0, #2 - ldr r1, _08090144 @ =_08090148 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08090140: .4byte 0xFFFFBFDE -_08090144: .4byte _08090148 -_08090148: @ jump table - .4byte _08090242 @ case 0 - .4byte _08090242 @ case 1 - .4byte _080901EC @ case 2 - .4byte _08090180 @ case 3 - .4byte _08090242 @ case 4 - .4byte _08090242 @ case 5 - .4byte _08090242 @ case 6 - .4byte _08090242 @ case 7 - .4byte _08090242 @ case 8 - .4byte _08090242 @ case 9 - .4byte _08090210 @ case 10 - .4byte _080901B4 @ case 11 - .4byte _08090210 @ case 12 - .4byte _080901B4 @ case 13 -_08090180: - ldr r0, _080901A8 @ =0x00004024 - cmp r5, r0 - bne _08090194 - ldr r3, _080901AC @ =0x00004022 - adds r2, r6, #0 - adds r2, #0x83 - ldrb r1, [r2] - movs r0, #0x10 - orrs r0, r1 - strb r0, [r2] -_08090194: - ldr r0, _080901B0 @ =0x0000402C - cmp r5, r0 - bne _08090238 - ldr r3, _080901AC @ =0x00004022 - adds r2, r6, #0 - adds r2, #0x83 - ldrb r1, [r2] - movs r0, #0x10 - b _08090234 - .align 2, 0 -_080901A8: .4byte 0x00004024 -_080901AC: .4byte 0x00004022 -_080901B0: .4byte 0x0000402C -_080901B4: - ldr r0, _080901DC @ =0x0000402C - cmp r5, r0 - bne _080901C8 - ldr r3, _080901E0 @ =0x0000402B - adds r2, r6, #0 - adds r2, #0x83 - ldrb r1, [r2] - movs r0, #0x10 - orrs r0, r1 - strb r0, [r2] -_080901C8: - ldr r0, _080901E4 @ =0x00004024 - cmp r5, r0 - bne _08090238 - ldr r3, _080901E8 @ =0x00004022 - adds r2, r6, #0 - adds r2, #0x83 - ldrb r1, [r2] - movs r0, #0x10 - b _08090234 - .align 2, 0 -_080901DC: .4byte 0x0000402C -_080901E0: .4byte 0x0000402B -_080901E4: .4byte 0x00004024 -_080901E8: .4byte 0x00004022 -_080901EC: - ldr r0, _08090204 @ =0x00004025 - cmp r5, r0 - bne _08090200 - ldr r3, _08090208 @ =0x00004022 - adds r2, r6, #0 - adds r2, #0x83 - ldrb r1, [r2] - movs r0, #0x20 - orrs r0, r1 - strb r0, [r2] -_08090200: - ldr r0, _0809020C @ =0x0000402D - b _08090226 - .align 2, 0 -_08090204: .4byte 0x00004025 -_08090208: .4byte 0x00004022 -_0809020C: .4byte 0x0000402D -_08090210: - ldr r0, _08090244 @ =0x0000402D - cmp r5, r0 - bne _08090224 - ldr r3, _08090248 @ =0x0000402B - adds r2, r6, #0 - adds r2, #0x83 - ldrb r1, [r2] - movs r0, #0x20 - orrs r0, r1 - strb r0, [r2] -_08090224: - ldr r0, _0809024C @ =0x00004025 -_08090226: - cmp r5, r0 - bne _08090238 - ldr r3, _08090250 @ =0x00004022 - adds r2, r6, #0 - adds r2, #0x83 - ldrb r1, [r2] - movs r0, #0x20 -_08090234: - orrs r0, r1 - strb r0, [r2] -_08090238: - adds r0, r3, #0 - adds r1, r7, #0 - movs r2, #1 - bl sub_0800015E -_08090242: - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08090244: .4byte 0x0000402D -_08090248: .4byte 0x0000402B -_0809024C: .4byte 0x00004025 -_08090250: .4byte 0x00004022 - - thumb_func_start sub_08090254 -sub_08090254: @ 0x08090254 - push {r4, r5, lr} - adds r4, r0, #0 - adds r0, #0x74 - ldrh r0, [r0] - adds r1, r4, #0 - adds r1, #0x70 - ldrh r1, [r1] - adds r5, r4, #0 - adds r5, #0x38 - ldrb r2, [r5] - bl sub_0807B9B8 - adds r0, r4, #0 - adds r0, #0x80 - ldrb r0, [r0] - cmp r0, #1 - bne _08090288 - adds r0, r4, #0 - adds r0, #0x76 - ldrh r0, [r0] - adds r1, r4, #0 - adds r1, #0x72 - ldrh r1, [r1] - ldrb r2, [r5] - bl sub_0807B9B8 -_08090288: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_0809028C -sub_0809028C: @ 0x0809028C - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - adds r6, r0, #0 - adds r4, r6, #0 - adds r4, #0x83 - ldrb r0, [r4] - movs r2, #0x30 - ands r2, r0 - movs r0, #0 - mov sb, r0 - strb r2, [r4] - adds r0, r6, #0 - adds r0, #0x70 - ldrh r5, [r0] - adds r7, r5, #0 - subs r7, #0x80 - adds r0, #2 - ldrh r3, [r0] - movs r0, #0x80 - rsbs r0, r0, #0 - adds r0, r0, r3 - mov r8, r0 - cmp r1, #1 - bne _0809039A - movs r0, #0x20 - ands r0, r2 - cmp r0, #0 - beq _080902D4 - adds r1, r3, #0 - subs r1, #0x7f - movs r0, #0 - bl sub_08090480 - b _080902FE -_080902D4: - mov r0, r8 - movs r1, #2 - bl sub_080002B0 - adds r1, r0, #0 - ldr r0, _080902EC @ =0x00000301 - cmp r1, r0 - beq _080902F0 - adds r0, #7 - cmp r1, r0 - beq _080902F6 - b _080902FE - .align 2, 0 -_080902EC: .4byte 0x00000301 -_080902F0: - ldrb r0, [r4] - movs r1, #8 - b _080902FA -_080902F6: - ldrb r0, [r4] - movs r1, #2 -_080902FA: - orrs r0, r1 - strb r0, [r4] -_080902FE: - adds r2, r6, #0 - adds r2, #0x83 - ldrb r1, [r2] - movs r0, #0x2a - ands r0, r1 - adds r4, r2, #0 - cmp r0, #0 - beq _0809031E - movs r0, #0 - adds r1, r7, #0 - bl sub_08090480 - movs r0, #0 - mov r1, r8 - bl sub_08090480 -_0809031E: - ldrb r1, [r4] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _0809034E - subs r4, r7, #1 - adds r0, r4, #0 - movs r1, #1 - bl sub_080002B0 - movs r1, #0xc0 - lsls r1, r1, #2 - cmp r0, r1 - bne _0809033C - b _08090478 -_0809033C: - movs r0, #0 - adds r1, r4, #0 - bl sub_08090480 - subs r1, r7, #2 - movs r0, #2 - bl sub_08090480 - b _08090478 -_0809034E: - subs r0, r7, #1 - movs r1, #2 - bl sub_080002B0 - adds r1, r0, #0 - movs r0, #0xc0 - lsls r0, r0, #2 - cmp r1, r0 - beq _08090368 - adds r0, #8 - cmp r1, r0 - beq _0809036E - b _08090376 -_08090368: - ldrb r1, [r4] - movs r0, #4 - b _08090372 -_0809036E: - ldrb r1, [r4] - movs r0, #1 -_08090372: - orrs r0, r1 - strb r0, [r4] -_08090376: - ldrb r1, [r4] - movs r0, #0x15 - ands r0, r1 - cmp r0, #0 - beq _08090478 - movs r0, #0x2a - ands r0, r1 - cmp r0, #0 - bne _08090478 - movs r0, #0 - adds r1, r7, #0 - bl sub_08090480 - movs r0, #1 - mov r1, r8 - bl sub_08090480 - b _08090478 -_0809039A: - movs r0, #0x10 - ands r0, r2 - cmp r0, #0 - beq _080903AE - adds r1, r5, #0 - subs r1, #0x81 - movs r0, #0 - bl sub_08090480 - b _080903DA -_080903AE: - adds r0, r7, #0 - movs r1, #2 - bl sub_080002B0 - adds r1, r0, #0 - ldr r0, _080903C8 @ =0x00000302 - cmp r1, r0 - beq _080903CC - adds r0, #4 - cmp r1, r0 - beq _080903D2 - b _080903DA - .align 2, 0 -_080903C8: .4byte 0x00000302 -_080903CC: - ldrb r0, [r4] - movs r1, #4 - b _080903D6 -_080903D2: - ldrb r0, [r4] - movs r1, #1 -_080903D6: - orrs r0, r1 - strb r0, [r4] -_080903DA: - adds r2, r6, #0 - adds r2, #0x83 - ldrb r1, [r2] - movs r0, #0x15 - ands r0, r1 - adds r4, r2, #0 - cmp r0, #0 - beq _080903FA - movs r0, #0 - adds r1, r7, #0 - bl sub_08090480 - movs r0, #0 - mov r1, r8 - bl sub_08090480 -_080903FA: - ldrb r1, [r4] - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - beq _0809042C - mov r4, r8 - adds r4, #1 - adds r0, r4, #0 - movs r1, #1 - bl sub_080002B0 - movs r1, #0xc0 - lsls r1, r1, #2 - cmp r0, r1 - beq _08090478 - movs r0, #0 - adds r1, r4, #0 - bl sub_08090480 - mov r1, r8 - adds r1, #2 - movs r0, #1 - bl sub_08090480 - b _08090478 -_0809042C: - mov r0, r8 - adds r0, #1 - movs r1, #2 - bl sub_080002B0 - adds r1, r0, #0 - movs r0, #0xc0 - lsls r0, r0, #2 - cmp r1, r0 - beq _08090448 - adds r0, #6 - cmp r1, r0 - beq _0809044E - b _08090456 -_08090448: - ldrb r1, [r4] - movs r0, #8 - b _08090452 -_0809044E: - ldrb r1, [r4] - movs r0, #2 -_08090452: - orrs r0, r1 - strb r0, [r4] -_08090456: - ldrb r1, [r4] - movs r0, #0x2a - ands r0, r1 - cmp r0, #0 - beq _08090478 - movs r0, #0x15 - ands r0, r1 - cmp r0, #0 - bne _08090478 - movs r0, #2 - adds r1, r7, #0 - bl sub_08090480 - movs r0, #0 - mov r1, r8 - bl sub_08090480 -_08090478: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_08090480 -sub_08090480: @ 0x08090480 - push {lr} - ldr r2, _08090494 @ =gUnk_08121EF0 - lsls r0, r0, #1 - adds r0, r0, r2 - ldrh r0, [r0] - movs r2, #1 - bl sub_0800015E - pop {pc} - .align 2, 0 -_08090494: .4byte gUnk_08121EF0 - - thumb_func_start sub_08090498 -sub_08090498: @ 0x08090498 - push {r4, r5, lr} - adds r5, r0, #0 - adds r0, #0x70 - ldrh r0, [r0] - adds r4, r0, #0 - subs r4, #0x80 - adds r0, r4, #0 - movs r1, #1 - bl sub_0807BA8C - adds r0, r5, #0 - adds r0, #0x83 - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _080904D2 - adds r0, r4, #0 - movs r1, #2 - bl sub_080002B0 - ldr r1, _08090510 @ =0x00000306 - cmp r0, r1 - bne _080904D2 - movs r0, #0x62 - adds r1, r4, #0 - movs r2, #1 - bl sub_08000148 -_080904D2: - adds r0, r5, #0 - adds r0, #0x72 - ldrh r0, [r0] - adds r4, r0, #0 - subs r4, #0x80 - adds r0, r4, #0 - movs r1, #1 - bl sub_0807BA8C - adds r0, r5, #0 - adds r0, #0x83 - ldrb r1, [r0] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _0809050C - adds r0, r4, #0 - movs r1, #2 - bl sub_080002B0 - movs r1, #0xc2 - lsls r1, r1, #2 - cmp r0, r1 - bne _0809050C - movs r0, #0x63 - adds r1, r4, #0 - movs r2, #1 - bl sub_08000148 -_0809050C: - pop {r4, r5, pc} - .align 2, 0 -_08090510: .4byte 0x00000306 - - thumb_func_start sub_08090514 -sub_08090514: @ 0x08090514 - push {lr} - adds r2, r0, #0 - ldr r0, [r2, #0x50] - cmp r0, #0 - beq _0809059E - ldrb r0, [r0, #0xd] - cmp r0, #1 - beq _08090552 - cmp r0, #1 - bgt _0809052E - cmp r0, #0 - beq _08090538 - b _0809059E -_0809052E: - cmp r0, #2 - beq _08090568 - cmp r0, #3 - beq _08090582 - b _0809059E -_08090538: - ldrb r1, [r2, #0x19] - movs r0, #0x3f - ands r0, r1 - movs r1, #0x80 - orrs r0, r1 - strb r0, [r2, #0x19] - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #4 - b _0809059A -_08090552: - ldrb r0, [r2, #0x19] - movs r1, #0xc0 - orrs r0, r1 - strb r0, [r2, #0x19] - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #4 - b _0809059A -_08090568: - ldrb r1, [r2, #0x19] - movs r0, #0x3f - ands r0, r1 - movs r1, #0x80 - orrs r0, r1 - strb r0, [r2, #0x19] - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #5 - b _0809059A -_08090582: - ldrb r1, [r2, #0x19] - movs r0, #0x3f - ands r0, r1 - movs r1, #0x80 - orrs r0, r1 - strb r0, [r2, #0x19] - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #3 -_0809059A: - orrs r0, r1 - strb r0, [r2] -_0809059E: - pop {pc} - - thumb_func_start sub_080905A0 -sub_080905A0: @ 0x080905A0 - push {lr} - ldr r2, _080905B4 @ =gUnk_08122218 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_080905B4: .4byte gUnk_08122218 - - thumb_func_start sub_080905B8 -sub_080905B8: @ 0x080905B8 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - adds r7, r0, #0 - movs r0, #1 - mov sb, r0 - mov r1, sb - strb r1, [r7, #0xc] - movs r5, #0x2e - ldrsh r2, [r7, r5] - ldr r6, _08090618 @ =gRoomControls - ldrh r0, [r6, #6] - subs r2, r2, r0 - asrs r2, r2, #4 - movs r4, #0x3f - ands r2, r4 - movs r1, #0x32 - ldrsh r0, [r7, r1] - ldrh r1, [r6, #8] - subs r0, r0, r1 - asrs r0, r0, #4 - ands r0, r4 - lsls r0, r0, #6 - orrs r2, r0 - adds r5, r7, #0 - adds r5, #0x78 - movs r0, #0 - mov r8, r0 - strh r2, [r5] - adds r0, r7, #0 - bl sub_08090DC4 - adds r0, r7, #0 - adds r0, #0x82 - ldrh r0, [r0] - ldr r1, _0809061C @ =0x00007FFF - ands r1, r0 - cmp r1, #0x80 - beq _08090680 - cmp r1, #0x80 - bgt _08090620 - cmp r1, #0x20 - beq _080906E6 - cmp r1, #0x40 - beq _08090650 - b _080906E0 - .align 2, 0 -_08090618: .4byte gRoomControls -_0809061C: .4byte 0x00007FFF -_08090620: - movs r0, #0x80 - lsls r0, r0, #2 - cmp r1, r0 - beq _080906E6 - cmp r1, r0 - bgt _08090636 - movs r0, #0x80 - lsls r0, r0, #1 - cmp r1, r0 - beq _08090640 - b _080906E0 -_08090636: - movs r0, #0x80 - lsls r0, r0, #3 - cmp r1, r0 - beq _080906C4 - b _080906E0 -_08090640: - adds r1, r7, #0 - adds r1, #0x38 - movs r0, #2 - strb r0, [r1] - adds r0, r7, #0 - bl UpdateSpriteOrderAndFlip - b _080906E6 -_08090650: - ldrh r1, [r7, #0x32] - movs r0, #0x10 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #4 - orrs r0, r1 - strh r0, [r7, #0x32] - ldr r4, _0809067C @ =0x00004017 - ldrh r1, [r5] - subs r1, #0x80 - adds r0, r4, #0 - movs r2, #1 - bl sub_0800015E - ldrh r1, [r5] - subs r1, #0x40 - adds r0, r4, #0 - movs r2, #1 - bl sub_0800015E - b _080906E6 - .align 2, 0 -_0809067C: .4byte 0x00004017 -_08090680: - mov r1, r8 - strb r1, [r7, #0x1e] - ldrh r1, [r7, #0x32] - movs r0, #0x10 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #6 - orrs r0, r1 - strh r0, [r7, #0x32] - movs r2, #0x2e - ldrsh r1, [r7, r2] - ldrh r0, [r6, #6] - subs r1, r1, r0 - asrs r1, r1, #4 - ands r1, r4 - movs r2, #0x32 - ldrsh r0, [r7, r2] - ldrh r2, [r6, #8] - subs r0, r0, r2 - asrs r0, r0, #4 - ands r0, r4 - lsls r0, r0, #6 - orrs r1, r0 - strh r1, [r5] - ldr r0, _080906C0 @ =0x00004026 - ldrh r1, [r5] - adds r2, r7, #0 - adds r2, #0x38 - ldrb r2, [r2] - bl sub_0800015E - b _080906E6 - .align 2, 0 -_080906C0: .4byte 0x00004026 -_080906C4: - adds r0, r7, #0 - bl sub_08090E64 - ldrb r0, [r7, #0xb] - cmp r0, #0 - beq _080906E0 - adds r0, r7, #0 - adds r0, #0x62 - mov r5, sb - strb r5, [r0] - adds r1, r7, #0 - adds r1, #0x80 - movs r0, #0x30 - strb r0, [r1] -_080906E0: - adds r0, r7, #0 - bl sub_08090B6C -_080906E6: - adds r0, r7, #0 - adds r0, #0x81 - ldrb r1, [r0] - cmp r1, #0x10 - beq _0809075C - movs r0, #0x70 - ands r0, r1 - adds r4, r7, #0 - adds r4, #0x78 - cmp r0, #0x20 - beq _0809072E - cmp r0, #0x30 - bne _0809073A - ldrh r0, [r4] - subs r0, #0x40 - strh r0, [r4] - adds r0, r7, #0 - bl sub_08090B6C - movs r0, #0x2e - ldrsh r1, [r7, r0] - ldr r2, _08090778 @ =gRoomControls - ldrh r0, [r2, #6] - subs r1, r1, r0 - asrs r1, r1, #4 - movs r3, #0x3f - ands r1, r3 - movs r5, #0x32 - ldrsh r0, [r7, r5] - ldrh r2, [r2, #8] - subs r0, r0, r2 - asrs r0, r0, #4 - ands r0, r3 - lsls r0, r0, #6 - orrs r1, r0 - strh r1, [r4] -_0809072E: - ldrh r0, [r4] - adds r0, #0x40 - strh r0, [r4] - adds r0, r7, #0 - bl sub_08090B6C -_0809073A: - movs r0, #0x2e - ldrsh r1, [r7, r0] - ldr r2, _08090778 @ =gRoomControls - ldrh r0, [r2, #6] - subs r1, r1, r0 - asrs r1, r1, #4 - movs r3, #0x3f - ands r1, r3 - movs r5, #0x32 - ldrsh r0, [r7, r5] - ldrh r2, [r2, #8] - subs r0, r0, r2 - asrs r0, r0, #4 - ands r0, r3 - lsls r0, r0, #6 - orrs r1, r0 - strh r1, [r4] -_0809075C: - adds r0, r7, #0 - adds r0, #0x82 - ldrh r0, [r0] - ldr r1, _0809077C @ =0x00007FFF - ands r1, r0 - cmp r1, #2 - beq _08090780 - cmp r1, #4 - bne _080907C8 - adds r0, r7, #0 - movs r1, #0x7e - bl sub_0801D2B4 - b _080907C8 - .align 2, 0 -_08090778: .4byte gRoomControls -_0809077C: .4byte 0x00007FFF -_08090780: - adds r0, r7, #0 - adds r0, #0x78 - ldrh r0, [r0] - adds r4, r0, #0 - subs r4, #0x81 - ldrb r0, [r7, #0xa] - movs r1, #2 - mov r8, r1 - cmp r0, #0x1a - beq _08090798 - movs r2, #3 - mov r8, r2 -_08090798: - movs r5, #0 - cmp r5, r8 - bhs _080907C8 - ldr r6, _080907DC @ =0x00004026 -_080907A0: - adds r0, r6, #0 - adds r1, r4, #0 - movs r2, #2 - bl sub_0800015E - adds r0, r6, #0 - adds r1, r4, #0 - movs r2, #1 - bl sub_0800015E - adds r1, r4, #0 - adds r1, #0x40 - movs r0, #0 - movs r2, #1 - bl sub_080001D0 - adds r5, #1 - adds r4, #1 - cmp r5, r8 - blo _080907A0 -_080907C8: - ldrb r0, [r7, #0xa] - subs r0, #1 - cmp r0, #0x3b - bls _080907D2 - b _080909DC -_080907D2: - lsls r0, r0, #2 - ldr r1, _080907E0 @ =_080907E4 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080907DC: .4byte 0x00004026 -_080907E0: .4byte _080907E4 -_080907E4: @ jump table - .4byte _080908D4 @ case 0 - .4byte _080909DC @ case 1 - .4byte _080909DC @ case 2 - .4byte _080909DC @ case 3 - .4byte _080909DC @ case 4 - .4byte _080909DC @ case 5 - .4byte _080909DC @ case 6 - .4byte _080909DC @ case 7 - .4byte _080908F0 @ case 8 - .4byte _080909DC @ case 9 - .4byte _080909DC @ case 10 - .4byte _080909DC @ case 11 - .4byte _080909DC @ case 12 - .4byte _080909DC @ case 13 - .4byte _080909DC @ case 14 - .4byte _080909DC @ case 15 - .4byte _080909DC @ case 16 - .4byte _080909DC @ case 17 - .4byte _080909DC @ case 18 - .4byte _080909DC @ case 19 - .4byte _080909DC @ case 20 - .4byte _080909DC @ case 21 - .4byte _080909DC @ case 22 - .4byte _080909DC @ case 23 - .4byte _080909DC @ case 24 - .4byte _080909DC @ case 25 - .4byte _080909DC @ case 26 - .4byte _080909DC @ case 27 - .4byte _080909DC @ case 28 - .4byte _08090920 @ case 29 - .4byte _08090938 @ case 30 - .4byte _080909DC @ case 31 - .4byte _080909DC @ case 32 - .4byte _080909DC @ case 33 - .4byte _080909DC @ case 34 - .4byte _080909DC @ case 35 - .4byte _080909DC @ case 36 - .4byte _080909DC @ case 37 - .4byte _080909DC @ case 38 - .4byte _08090984 @ case 39 - .4byte _080909DC @ case 40 - .4byte _080909DC @ case 41 - .4byte _080909DC @ case 42 - .4byte _080909DC @ case 43 - .4byte _080909DC @ case 44 - .4byte _080909DC @ case 45 - .4byte _080909DC @ case 46 - .4byte _080909DC @ case 47 - .4byte _080909DC @ case 48 - .4byte _080909DC @ case 49 - .4byte _080909DC @ case 50 - .4byte _080909DC @ case 51 - .4byte _080909DC @ case 52 - .4byte _080909DC @ case 53 - .4byte _080909DC @ case 54 - .4byte _080909DC @ case 55 - .4byte _080909DC @ case 56 - .4byte _080909DC @ case 57 - .4byte _08090994 @ case 58 - .4byte _080909C8 @ case 59 -_080908D4: - ldrb r0, [r7, #0xb] - cmp r0, #0 - bne _080908DC - b _080909DC -_080908DC: - adds r2, r7, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #4 - orrs r0, r1 - strb r0, [r2] - b _080909DC -_080908F0: - movs r0, #0x4d - movs r1, #0x3e - movs r2, #0 - bl CreateObject - adds r4, r0, #0 - cmp r4, #0 - beq _080909DC - movs r3, #0x80 - lsls r3, r3, #0xd - adds r0, r7, #0 - adds r1, r4, #0 - adds r2, r3, #0 - bl PositionRelative - movs r0, #1 - strb r0, [r4, #0x1e] - ldrb r1, [r4, #0x11] - subs r0, #0x11 - ands r0, r1 - movs r1, #2 - orrs r0, r1 - strb r0, [r4, #0x11] - b _080909DC -_08090920: - ldr r0, _08090934 @ =0x00000306 - adds r1, r7, #0 - adds r1, #0x78 - ldrh r1, [r1] - adds r1, #0x41 - movs r2, #2 - bl sub_0807B7D8 - b _080909DC - .align 2, 0 -_08090934: .4byte 0x00000306 -_08090938: - adds r5, r7, #0 - adds r5, #0x38 - movs r0, #1 - strb r0, [r5] - ldrb r1, [r7, #0x1b] - movs r0, #0x3f - ands r0, r1 - movs r1, #0x80 - orrs r0, r1 - strb r0, [r7, #0x1b] - ldr r0, _0809097C @ =0x00004074 - adds r4, r7, #0 - adds r4, #0x78 - ldrh r1, [r4] - subs r1, #0x40 - ldrb r2, [r5] - bl sub_0800015E - ldrh r1, [r4] - subs r1, #0x40 - ldrb r2, [r5] - movs r0, #0x3f - bl sub_080001D0 - ldr r6, _08090980 @ =0x00004017 - ldrh r1, [r4] - ldrb r2, [r5] - adds r0, r6, #0 - bl sub_0800015E - ldrh r1, [r4] - adds r1, #0x40 - ldrb r2, [r5] - b _080909BC - .align 2, 0 -_0809097C: .4byte 0x00004074 -_08090980: .4byte 0x00004017 -_08090984: - ldrb r0, [r7, #0xb] - cmp r0, #0 - beq _080909DC - adds r1, r7, #0 - adds r1, #0x62 - movs r0, #0xfc - strb r0, [r1] - b _080909DC -_08090994: - ldr r6, _080909C4 @ =0x00004023 - adds r5, r7, #0 - adds r5, #0x78 - ldrh r1, [r5] - subs r1, #0x41 - adds r4, r7, #0 - adds r4, #0x38 - ldrb r2, [r4] - adds r0, r6, #0 - bl sub_0800015E - ldrh r1, [r5] - subs r1, #0x40 - ldrb r2, [r4] - adds r0, r6, #0 - bl sub_0800015E - ldrh r1, [r5] - subs r1, #0x3f - ldrb r2, [r4] -_080909BC: - adds r0, r6, #0 - bl sub_0800015E - b _080909DC - .align 2, 0 -_080909C4: .4byte 0x00004023 -_080909C8: - ldr r0, _080909E4 @ =0x00004022 - adds r1, r7, #0 - adds r1, #0x78 - ldrh r1, [r1] - adds r1, #0x41 - adds r2, r7, #0 - adds r2, #0x38 - ldrb r2, [r2] - bl sub_0800015E -_080909DC: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_080909E4: .4byte 0x00004022 - - thumb_func_start sub_080909E8 -sub_080909E8: @ 0x080909E8 - push {r4, r5, r6, lr} - adds r5, r0, #0 - adds r0, #0x82 - ldrh r0, [r0] - ldr r1, _08090A04 @ =0x00007FFF - ands r1, r0 - cmp r1, #8 - beq _08090A42 - cmp r1, #8 - bgt _08090A08 - cmp r1, #1 - beq _08090A12 - b _08090B60 - .align 2, 0 -_08090A04: .4byte 0x00007FFF -_08090A08: - cmp r1, #0x10 - beq _08090A68 - cmp r1, #0x80 - beq _08090AB0 - b _08090B60 -_08090A12: - ldr r2, _08090A34 @ =gLinkEntity - movs r0, #0x32 - ldrsh r1, [r2, r0] - movs r3, #0x32 - ldrsh r0, [r5, r3] - cmp r1, r0 - blt _08090A26 - adds r0, #0x18 - cmp r1, r0 - ble _08090A38 -_08090A26: - ldrb r0, [r5, #0x19] - movs r1, #0x3f - ands r1, r0 - movs r0, #0x80 - orrs r1, r0 - strb r1, [r5, #0x19] - b _08090B60 - .align 2, 0 -_08090A34: .4byte gLinkEntity -_08090A38: - ldrb r0, [r5, #0x19] - movs r1, #0xc0 - orrs r0, r1 - strb r0, [r5, #0x19] - b _08090B60 -_08090A42: - ldrb r0, [r5, #0xe] - adds r0, #1 - strb r0, [r5, #0xe] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x10 - beq _08090A52 - b _08090B60 -_08090A52: - movs r0, #0 - strb r0, [r5, #0xe] - ldrb r0, [r5, #0xf] - adds r0, #1 - movs r1, #3 - ands r0, r1 - strb r0, [r5, #0xf] - adds r0, r5, #0 - bl sub_08090E4C - b _08090B60 -_08090A68: - ldrb r0, [r5, #0xa] - cmp r0, #0x3e - beq _08090A8C - ldrb r0, [r5, #0xe] - adds r0, #1 - strb r0, [r5, #0xe] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x14 - bne _08090B60 - ldrb r0, [r5, #0x1e] - adds r0, #1 - movs r1, #3 - ands r0, r1 - strb r0, [r5, #0x1e] - movs r0, #0 - strb r0, [r5, #0xe] - b _08090B60 -_08090A8C: - ldrb r0, [r5, #0xe] - adds r0, #1 - strb r0, [r5, #0xe] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xe - bne _08090B60 - movs r0, #0 - strb r0, [r5, #0xe] - ldrb r0, [r5, #0xf] - adds r0, #1 - movs r1, #3 - bl __modsi3 - strb r0, [r5, #0xf] - adds r0, #1 - strb r0, [r5, #0x1e] - b _08090B60 -_08090AB0: - ldr r2, _08090B00 @ =gLinkEntity - movs r3, #0x32 - ldrsh r1, [r2, r3] - movs r3, #0x32 - ldrsh r0, [r5, r3] - adds r0, #8 - cmp r1, r0 - bge _08090B14 - ldr r0, _08090B04 @ =gLinkState - ldrb r0, [r0, #0x12] - cmp r0, #0x1e - beq _08090B60 - adds r0, r5, #0 - bl sub_080002A0 - ldr r1, _08090B08 @ =0x00004017 - cmp r0, r1 - bne _08090B60 - ldr r0, _08090B0C @ =0x00004026 - adds r4, r5, #0 - adds r4, #0x78 - ldrh r1, [r4] - adds r5, #0x38 - ldrb r2, [r5] - bl sub_0800015E - ldr r6, _08090B10 @ =0x0000403D - ldrh r1, [r4] - subs r1, #0x40 - ldrb r2, [r5] - adds r0, r6, #0 - bl sub_0800015E - ldrh r1, [r4] - subs r1, #0x80 - ldrb r2, [r5] - adds r0, r6, #0 - bl sub_0800015E - b _08090B60 - .align 2, 0 -_08090B00: .4byte gLinkEntity -_08090B04: .4byte gLinkState -_08090B08: .4byte 0x00004017 -_08090B0C: .4byte 0x00004026 -_08090B10: .4byte 0x0000403D -_08090B14: - adds r3, r2, #0 - adds r3, #0x38 - ldrb r1, [r3] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _08090B2C - movs r0, #1 - strb r0, [r3] - adds r0, r2, #0 - bl UpdateSpriteOrderAndFlip -_08090B2C: - adds r0, r5, #0 - bl sub_080002A0 - ldr r6, _08090B64 @ =0x00004017 - cmp r0, r6 - beq _08090B60 - adds r4, r5, #0 - adds r4, #0x78 - ldrh r1, [r4] - adds r5, #0x38 - ldrb r2, [r5] - adds r0, r6, #0 - bl sub_0800015E - ldrh r1, [r4] - subs r1, #0x40 - ldrb r2, [r5] - adds r0, r6, #0 - bl sub_0800015E - ldr r0, _08090B68 @ =0x00004014 - ldrh r1, [r4] - subs r1, #0x80 - ldrb r2, [r5] - bl sub_0800015E -_08090B60: - pop {r4, r5, r6, pc} - .align 2, 0 -_08090B64: .4byte 0x00004017 -_08090B68: .4byte 0x00004014 - - thumb_func_start sub_08090B6C -sub_08090B6C: @ 0x08090B6C - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r1, r0, #0 - adds r0, #0x80 - ldrb r0, [r0] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08090B80 - b _08090CD2 -_08090B80: - lsrs r0, r0, #0x1b - lsls r2, r0, #0x18 - lsrs r3, r2, #0x18 - ldrh r0, [r1, #0x2e] - movs r4, #0xf - mov r8, r4 - ands r4, r0 - mov r8, r4 - adds r0, r1, #0 - adds r0, #0x78 - ldrh r6, [r0] - subs r0, #0x40 - ldrb r7, [r0] - movs r0, #3 - ands r0, r3 - cmp r0, #1 - beq _08090BF8 - cmp r0, #1 - blo _08090BB0 - cmp r0, #2 - beq _08090C48 - cmp r0, #3 - beq _08090C90 - b _08090CD2 -_08090BB0: - lsrs r5, r2, #0x1b - cmp r3, #0xc - bne _08090BB8 - movs r5, #2 -_08090BB8: - rsbs r4, r5, #0 - cmp r4, r5 - bgt _08090BCE -_08090BBE: - adds r1, r6, r4 - ldr r0, _08090BE4 @ =0x00004022 - adds r2, r7, #0 - bl sub_0800015E - adds r4, #1 - cmp r4, r5 - ble _08090BBE -_08090BCE: - movs r0, #8 - mov r1, r8 - ands r1, r0 - cmp r1, #0 - beq _08090BEC - ldr r0, _08090BE8 @ =0x00004024 - subs r1, r6, r4 - adds r2, r7, #0 - bl sub_08090CDC - b _08090CB2 - .align 2, 0 -_08090BE4: .4byte 0x00004022 -_08090BE8: .4byte 0x00004024 -_08090BEC: - ldr r0, _08090BF4 @ =0x00004022 - subs r1, r6, r4 - b _08090C6E - .align 2, 0 -_08090BF4: .4byte 0x00004022 -_08090BF8: - lsrs r5, r2, #0x1b - rsbs r4, r5, #0 - cmp r4, r5 - bgt _08090C10 -_08090C00: - adds r1, r6, r4 - ldr r0, _08090C2C @ =0x00004022 - adds r2, r7, #0 - bl sub_0800015E - adds r4, #1 - cmp r4, r5 - ble _08090C00 -_08090C10: - movs r0, #8 - mov r1, r8 - ands r1, r0 - cmp r1, #0 - beq _08090C34 - ldr r0, _08090C30 @ =0x00004024 - subs r1, r6, r4 - adds r2, r7, #0 - bl sub_08090CDC - cmp r4, #0 - beq _08090CD2 - b _08090C6A - .align 2, 0 -_08090C2C: .4byte 0x00004022 -_08090C30: .4byte 0x00004024 -_08090C34: - cmp r4, #0 - beq _08090CB2 - ldr r0, _08090C44 @ =0x00004022 - subs r1, r6, r4 - adds r2, r7, #0 - bl sub_0800015E - b _08090CB2 - .align 2, 0 -_08090C44: .4byte 0x00004022 -_08090C48: - lsrs r5, r2, #0x1a - rsbs r4, r5, #0 - cmp r4, r5 - bge _08090C60 -_08090C50: - adds r1, r6, r4 - ldr r0, _08090C78 @ =0x00004022 - adds r2, r7, #0 - bl sub_0800015E - adds r4, #1 - cmp r4, r5 - blt _08090C50 -_08090C60: - movs r0, #8 - mov r1, r8 - ands r1, r0 - cmp r1, #0 - beq _08090C7C -_08090C6A: - ldr r0, _08090C78 @ =0x00004022 - adds r1, r6, r4 -_08090C6E: - adds r2, r7, #0 - bl sub_0800015E - b _08090CD2 - .align 2, 0 -_08090C78: .4byte 0x00004022 -_08090C7C: - ldr r0, _08090C8C @ =0x00004024 - subs r1, r6, r4 - subs r1, #1 - adds r2, r7, #0 - bl sub_08090CDC - b _08090CB2 - .align 2, 0 -_08090C8C: .4byte 0x00004024 -_08090C90: - lsrs r5, r2, #0x1a - rsbs r4, r5, #0 - cmp r4, r5 - bgt _08090CA8 -_08090C98: - adds r1, r6, r4 - ldr r0, _08090CC0 @ =0x00004022 - adds r2, r7, #0 - bl sub_0800015E - adds r4, #1 - cmp r4, r5 - ble _08090C98 -_08090CA8: - movs r0, #8 - mov r1, r8 - ands r1, r0 - cmp r1, #0 - beq _08090CC8 -_08090CB2: - ldr r0, _08090CC4 @ =0x00004025 - adds r1, r6, r4 - adds r2, r7, #0 - bl sub_08090CDC - b _08090CD2 - .align 2, 0 -_08090CC0: .4byte 0x00004022 -_08090CC4: .4byte 0x00004025 -_08090CC8: - ldr r0, _08090CD8 @ =0x00004024 - subs r1, r6, r4 - adds r2, r7, #0 - bl sub_08090CDC -_08090CD2: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08090CD8: .4byte 0x00004024 - - thumb_func_start sub_08090CDC -sub_08090CDC: @ 0x08090CDC - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r5, r1, #0 - adds r6, r2, #0 - adds r0, r5, #0 - adds r1, r6, #0 - bl sub_080001DA - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - movs r0, #0x80 - lsls r0, r0, #7 - ands r0, r2 - cmp r0, #0 - bne _08090D06 - adds r0, r4, #0 - adds r1, r5, #0 - adds r2, r6, #0 - bl sub_0800015E - b _08090DB2 -_08090D06: - ldr r1, _08090D18 @ =0xFFFFBFDE - adds r0, r2, r1 - cmp r0, #0xb - bhi _08090DB2 - lsls r0, r0, #2 - ldr r1, _08090D1C @ =_08090D20 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08090D18: .4byte 0xFFFFBFDE -_08090D1C: .4byte _08090D20 -_08090D20: @ jump table - .4byte _08090DB2 @ case 0 - .4byte _08090DB2 @ case 1 - .4byte _08090D80 @ case 2 - .4byte _08090D50 @ case 3 - .4byte _08090DB2 @ case 4 - .4byte _08090DB2 @ case 5 - .4byte _08090DB2 @ case 6 - .4byte _08090DB2 @ case 7 - .4byte _08090DB2 @ case 8 - .4byte _08090DB2 @ case 9 - .4byte _08090D98 @ case 10 - .4byte _08090D68 @ case 11 -_08090D50: - ldr r0, _08090D5C @ =0x00004024 - cmp r4, r0 - bne _08090D58 - ldr r2, _08090D60 @ =0x00004022 -_08090D58: - ldr r0, _08090D64 @ =0x0000402C - b _08090DA2 - .align 2, 0 -_08090D5C: .4byte 0x00004024 -_08090D60: .4byte 0x00004022 -_08090D64: .4byte 0x0000402C -_08090D68: - ldr r0, _08090D74 @ =0x0000402C - cmp r4, r0 - bne _08090D70 - ldr r2, _08090D78 @ =0x0000402B -_08090D70: - ldr r0, _08090D7C @ =0x00004024 - b _08090DA2 - .align 2, 0 -_08090D74: .4byte 0x0000402C -_08090D78: .4byte 0x0000402B -_08090D7C: .4byte 0x00004024 -_08090D80: - ldr r0, _08090D8C @ =0x00004025 - cmp r4, r0 - bne _08090D88 - ldr r2, _08090D90 @ =0x00004022 -_08090D88: - ldr r0, _08090D94 @ =0x0000402D - b _08090DA2 - .align 2, 0 -_08090D8C: .4byte 0x00004025 -_08090D90: .4byte 0x00004022 -_08090D94: .4byte 0x0000402D -_08090D98: - ldr r0, _08090DB4 @ =0x0000402D - cmp r4, r0 - bne _08090DA0 - ldr r2, _08090DB8 @ =0x0000402B -_08090DA0: - ldr r0, _08090DBC @ =0x00004025 -_08090DA2: - cmp r4, r0 - bne _08090DA8 - ldr r2, _08090DC0 @ =0x00004022 -_08090DA8: - adds r0, r2, #0 - adds r1, r5, #0 - adds r2, r6, #0 - bl sub_0800015E -_08090DB2: - pop {r4, r5, r6, pc} - .align 2, 0 -_08090DB4: .4byte 0x0000402D -_08090DB8: .4byte 0x0000402B -_08090DBC: .4byte 0x00004025 -_08090DC0: .4byte 0x00004022 - - thumb_func_start sub_08090DC4 -sub_08090DC4: @ 0x08090DC4 - push {r4, lr} - mov ip, r0 - ldrb r0, [r0, #0xa] - lsls r0, r0, #3 - ldr r1, _08090E44 @ =gUnk_08121EF8 - adds r3, r0, r1 - ldrh r1, [r3, #6] - movs r0, #0x80 - lsls r0, r0, #8 - ands r0, r1 - cmp r0, #0 - beq _08090DF4 - ldr r1, _08090E48 @ =gUnk_08122220 - movs r0, #3 - ldrsb r0, [r3, r0] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r3, [r0] - mov r0, ip - ldrb r1, [r0, #0xb] - lsls r0, r1, #3 - adds r3, r3, r0 - mov r0, ip - strb r1, [r0, #0x1e] -_08090DF4: - ldrb r1, [r3] - mov r0, ip - adds r0, #0x80 - strb r1, [r0] - ldrb r0, [r3, #1] - mov r1, ip - adds r1, #0x81 - strb r0, [r1] - ldrb r0, [r3, #2] - subs r1, #0x1f - strb r0, [r1] - ldrb r0, [r3, #3] - adds r1, #1 - strb r0, [r1] - ldrb r1, [r3, #4] - lsls r1, r1, #6 - mov r0, ip - ldrb r2, [r0, #0x19] - movs r0, #0x3f - ands r0, r2 - orrs r0, r1 - mov r1, ip - strb r0, [r1, #0x19] - ldrb r0, [r3, #5] - mov r4, ip - adds r4, #0x29 - movs r1, #7 - ands r1, r0 - ldrb r2, [r4] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4] - ldrh r1, [r3, #6] - mov r0, ip - adds r0, #0x82 - strh r1, [r0] - pop {r4, pc} - .align 2, 0 -_08090E44: .4byte gUnk_08121EF8 -_08090E48: .4byte gUnk_08122220 - - thumb_func_start sub_08090E4C -sub_08090E4C: @ 0x08090E4C - push {lr} - ldr r2, _08090E60 @ =gUnk_08122244 - ldrb r1, [r0, #0xf] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl sub_0801D2B4 - pop {pc} - .align 2, 0 -_08090E60: .4byte gUnk_08122244 - - thumb_func_start sub_08090E64 -sub_08090E64: @ 0x08090E64 - push {r4, r5, lr} - adds r5, r0, #0 - movs r0, #0x2a - movs r1, #0 - movs r2, #0 - bl CreateObject - adds r4, r0, #0 - cmp r4, #0 - beq _08090EA0 - ldr r0, _08090EA4 @ =0x0000FFFE - adds r2, r0, #0 - ldrb r0, [r5, #0xb] - adds r2, r2, r0 - lsls r2, r2, #0x10 - adds r0, r5, #0 - adds r1, r4, #0 - movs r3, #0 - bl PositionRelative - ldrh r0, [r4, #0x36] - subs r0, #0x10 - strh r0, [r4, #0x36] - adds r1, r4, #0 - adds r1, #0x38 - movs r0, #2 - strb r0, [r1] - adds r0, r4, #0 - bl UpdateSpriteOrderAndFlip -_08090EA0: - pop {r4, r5, pc} - .align 2, 0 -_08090EA4: .4byte 0x0000FFFE - - thumb_func_start sub_08090EA8 -sub_08090EA8: @ 0x08090EA8 - push {lr} - ldr r2, _08090EBC @ =gUnk_08122254 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08090EBC: .4byte gUnk_08122254 - - thumb_func_start sub_08090EC0 -sub_08090EC0: @ 0x08090EC0 - push {r4, lr} - adds r4, r0, #0 - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r0, [r4, #0x19] - movs r1, #0xc0 - orrs r0, r1 - strb r0, [r4, #0x19] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r0, [r2] - movs r1, #7 - orrs r0, r1 - strb r0, [r2] - ldrb r0, [r4, #0xb] - strb r0, [r4, #0x1e] - bl sub_08052660 - cmp r0, #0 - beq _08090EFE - ldrb r0, [r4, #0x1e] - adds r0, #4 - strb r0, [r4, #0x1e] - adds r0, r4, #0 - bl sub_080AE068 - movs r1, #0xc2 - lsls r1, r1, #1 - adds r0, r4, #0 - bl sub_080ADF80 -_08090EFE: - pop {r4, pc} - - thumb_func_start sub_08090F00 -sub_08090F00: @ 0x08090F00 - push {r4, r5, r6, lr} - adds r4, r0, #0 - ldrb r1, [r4, #0xa] - cmp r1, #1 - bne _08090F1C - ldr r0, [r4, #0x50] - ldrb r2, [r4, #0xf] - lsls r1, r2 - ldr r0, [r0, #0x20] - ands r0, r1 - cmp r0, #0 - bne _08090F1C - bl sub_0805E780 -_08090F1C: - ldr r6, _08090F64 @ =gLinkState - ldr r0, [r6, #0x30] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08090F62 - ldr r5, _08090F68 @ =gLinkEntity - adds r0, r4, #0 - adds r1, r5, #0 - movs r2, #4 - movs r3, #4 - bl sub_080041A0 - cmp r0, #0 - beq _08090F62 - movs r1, #0x36 - ldrsh r0, [r5, r1] - cmp r0, #0 - bne _08090F62 - adds r2, r6, #0 - adds r2, #0x90 - ldr r1, _08090F6C @ =gUnk_0812225C - ldrb r0, [r4, #0xb] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r1, [r2] - ldrh r0, [r0] - ands r0, r1 - cmp r0, #0 - beq _08090F62 - ldrb r0, [r4, #0xe] - bl sub_0804B128 - bl sub_08080840 -_08090F62: - pop {r4, r5, r6, pc} - .align 2, 0 -_08090F64: .4byte gLinkState -_08090F68: .4byte gLinkEntity -_08090F6C: .4byte gUnk_0812225C - - thumb_func_start sub_08090F70 -sub_08090F70: @ 0x08090F70 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _08090FB4 - movs r5, #1 - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - subs r0, #5 - ands r0, r1 - orrs r0, r5 - strb r0, [r4, #0x18] - ldrb r0, [r4, #0xb] - strb r0, [r4, #0x1e] - adds r1, r4, #0 - adds r1, #0x38 - movs r0, #2 - strb r0, [r1] - adds r0, r4, #0 - bl UpdateSpriteOrderAndFlip - bl sub_08052660 - cmp r0, #0 - beq _08090FB4 - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - orrs r0, r5 - strb r0, [r2] -_08090FB4: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_08090FB8 -sub_08090FB8: @ 0x08090FB8 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _08090FF6 - movs r2, #1 - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - subs r0, #5 - ands r0, r1 - orrs r0, r2 - strb r0, [r4, #0x18] - adds r1, r4, #0 - adds r1, #0x38 - movs r0, #2 - strb r0, [r1] - adds r0, r4, #0 - bl UpdateSpriteOrderAndFlip - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2] - ldrb r1, [r4, #0xa] - adds r0, r4, #0 - bl UpdateSprite -_08090FF6: - pop {r4, pc} - - thumb_func_start sub_08090FF8 -sub_08090FF8: @ 0x08090FF8 - push {lr} - ldr r2, _0809100C @ =gUnk_08122278 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0809100C: .4byte gUnk_08122278 - - thumb_func_start sub_08091010 -sub_08091010: @ 0x08091010 - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - movs r0, #1 - strb r0, [r4, #0xc] - movs r0, #0x2e - ldrsh r1, [r4, r0] - ldr r2, _08091094 @ =gRoomControls - ldrh r0, [r2, #6] - subs r1, r1, r0 - asrs r1, r1, #4 - movs r3, #0x3f - ands r1, r3 - movs r5, #0x32 - ldrsh r0, [r4, r5] - ldrh r2, [r2, #8] - subs r0, r0, r2 - asrs r0, r0, #4 - ands r0, r3 - lsls r0, r0, #6 - orrs r1, r0 - adds r3, r4, #0 - adds r3, #0x74 - strh r1, [r3] - adds r0, r4, #0 - adds r0, #0x38 - ldrb r5, [r0] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r0, [r2] - movs r1, #7 - orrs r0, r1 - strb r0, [r2] - ldrh r0, [r3] - subs r0, #0x80 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - ldr r6, _08091098 @ =0x00004022 - movs r7, #4 -_0809105C: - subs r1, r4, #2 - adds r0, r6, #0 - adds r2, r5, #0 - bl sub_0800015E - subs r1, r4, #1 - adds r0, r6, #0 - adds r2, r5, #0 - bl sub_0800015E - adds r0, r6, #0 - adds r1, r4, #0 - adds r2, r5, #0 - bl sub_0800015E - adds r1, r4, #1 - adds r0, r6, #0 - adds r2, r5, #0 - bl sub_0800015E - adds r0, r4, #0 - adds r0, #0x40 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - subs r7, #1 - cmp r7, #0 - bge _0809105C - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08091094: .4byte gRoomControls -_08091098: .4byte 0x00004022 - - thumb_func_start nullsub_523 -nullsub_523: @ 0x0809109C - bx lr - .align 2, 0 - - thumb_func_start sub_080910A0 -sub_080910A0: @ 0x080910A0 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _080910C8 - ldrb r0, [r4, #0xa] - bl sub_0807CBD0 - cmp r0, #0 - beq _080910B8 - bl sub_0805E780 -_080910B8: - movs r1, #1 - strb r1, [r4, #0xc] - adds r0, r4, #0 - adds r0, #0x38 - strb r1, [r0] - adds r0, r4, #0 - bl sub_08078828 -_080910C8: - adds r0, r4, #0 - adds r0, #0x39 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - beq _08091100 - movs r1, #0x2e - ldrsh r0, [r4, r1] - ldr r2, _08091104 @ =gRoomControls - ldrh r1, [r2, #6] - subs r0, r0, r1 - asrs r0, r0, #4 - movs r3, #0x3f - ands r0, r3 - movs r5, #0x32 - ldrsh r1, [r4, r5] - ldrh r2, [r2, #8] - subs r1, r1, r2 - asrs r1, r1, #4 - ands r1, r3 - lsls r1, r1, #6 - orrs r0, r1 - movs r1, #2 - bl sub_080A7C8C - bl sub_0805E780 -_08091100: - pop {r4, r5, pc} - .align 2, 0 -_08091104: .4byte gRoomControls - - thumb_func_start sub_08091108 -sub_08091108: @ 0x08091108 - push {lr} - ldr r2, _0809111C @ =gUnk_08122280 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0809111C: .4byte gUnk_08122280 - - thumb_func_start sub_08091120 -sub_08091120: @ 0x08091120 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] - ldr r3, _08091194 @ =gUnk_08122288 - ldrb r0, [r4, #0xa] - lsls r0, r0, #2 - adds r0, r0, r3 - ldrb r1, [r0, #2] - adds r0, r4, #0 - adds r0, #0x60 - strh r1, [r0] - ldrb r0, [r4, #0xa] - lsls r0, r0, #2 - adds r0, r0, r3 - ldrb r1, [r0, #1] - movs r0, #0xf - ands r1, r0 - ldrb r2, [r4, #0x1a] - movs r0, #0x10 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #0x1a] - ldrb r0, [r4, #0xa] - lsls r0, r0, #2 - adds r0, r0, r3 - ldrb r0, [r0, #3] - strh r0, [r4, #0x12] - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] - ldrb r1, [r4, #0x19] - movs r0, #0x3f - ands r0, r1 - movs r1, #0x80 - orrs r0, r1 - strb r0, [r4, #0x19] - movs r0, #0xa8 - lsls r0, r0, #0xa - str r0, [r4, #0x20] - ldrb r0, [r4, #0xa] - lsls r0, r0, #2 - adds r0, r0, r3 - ldrb r1, [r0] - adds r0, r4, #0 - bl UpdateSprite - adds r0, r4, #0 - bl sub_08004168 - pop {r4, pc} - .align 2, 0 -_08091194: .4byte gUnk_08122288 - - thumb_func_start sub_08091198 -sub_08091198: @ 0x08091198 - push {r4, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x20] - cmp r0, #0 - bge _080911AA - ldrb r0, [r4, #0x18] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r4, #0x18] -_080911AA: - movs r1, #0x80 - lsls r1, r1, #6 - adds r0, r4, #0 - bl sub_08003FC4 - cmp r0, #0 - bne _080911E8 - ldrb r1, [r4, #0xb] - cmp r1, #0xf - beq _080911CE - cmp r1, #0xf - bgt _080911C8 - cmp r1, #0 - beq _080911E4 - b _080911DA -_080911C8: - cmp r1, #0xff - bne _080911DA - b _080911E4 -_080911CE: - ldrb r1, [r4, #0xe] - adds r0, r4, #0 - movs r2, #0x80 - bl CreateFX - b _080911E4 -_080911DA: - ldrb r2, [r4, #0xe] - adds r0, r4, #0 - movs r3, #0 - bl CreateObjectWithParent -_080911E4: - bl sub_0805E780 -_080911E8: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080911EC -sub_080911EC: @ 0x080911EC - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x72 - ldrh r0, [r0] - cmp r0, #1 - beq _0809123C - cmp r0, #1 - bgt _08091202 - cmp r0, #0 - beq _08091208 - b _08091260 -_08091202: - cmp r0, #2 - beq _08091254 - b _08091260 -_08091208: - ldr r1, _08091234 @ =gUnk_08122294 - ldrb r0, [r4, #0xc] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - adds r0, r4, #0 - bl sub_0800445C - ldr r1, _08091238 @ =gUnk_02021F00 - adds r0, r4, #0 - adds r0, #0x74 - ldrb r0, [r0] - lsls r0, r0, #1 - adds r0, r0, r1 - adds r1, r4, #0 - adds r1, #0x70 - ldrh r1, [r1] - strh r1, [r0] - b _08091260 - .align 2, 0 -_08091234: .4byte gUnk_08122294 -_08091238: .4byte gUnk_02021F00 -_0809123C: - ldr r0, _08091250 @ =gUnk_081222A0 - ldrb r1, [r4, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 - b _08091260 - .align 2, 0 -_08091250: .4byte gUnk_081222A0 -_08091254: - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _08091260 - adds r0, r4, #0 - bl sub_08091504 -_08091260: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08091264 -sub_08091264: @ 0x08091264 - push {r4, r5, r6, r7, lr} - adds r6, r0, #0 - ldr r0, _080912C4 @ =gUnk_03003DBC - ldrb r0, [r0] - cmp r0, #0x45 - bhi _0809132C - ldrb r1, [r6, #0xa] - ldrb r2, [r6, #0xb] - movs r0, #0x54 - bl CreateObject - adds r7, r0, #0 - ldrb r1, [r6, #0xa] - ldrb r2, [r6, #0xb] - movs r0, #0x54 - bl CreateObject - adds r1, r0, #0 - str r6, [r7, #0x50] - str r6, [r1, #0x50] - adds r0, r7, #0 - adds r0, #0x72 - movs r5, #1 - movs r4, #1 - strh r4, [r0] - adds r2, r1, #0 - adds r2, #0x72 - movs r0, #2 - strh r0, [r2] - adds r0, r6, #0 - bl CopyPosition - movs r2, #1 - strb r5, [r6, #0xc] - ldrb r1, [r6, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - orrs r0, r2 - strb r0, [r6, #0x18] - movs r0, #0x60 - strh r0, [r6, #0x24] - ldrb r0, [r6, #0xb] - ands r4, r0 - cmp r4, #0 - beq _080912CC - ldr r0, _080912C8 @ =gUnk_080FD278 - b _080912CE - .align 2, 0 -_080912C4: .4byte gUnk_03003DBC -_080912C8: .4byte gUnk_080FD278 -_080912CC: - ldr r0, _08091330 @ =gUnk_080FD270 -_080912CE: - str r0, [r6, #0x48] - movs r0, #1 - strb r0, [r6, #0x16] - ldr r2, _08091334 @ =gUnk_081222A8 - ldrb r0, [r6, #0xb] - lsls r0, r0, #1 - adds r0, r0, r2 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - ldrh r1, [r6, #0x2e] - adds r0, r0, r1 - strh r0, [r6, #0x2e] - adds r1, r6, #0 - adds r1, #0x80 - strh r0, [r1] - ldrb r0, [r6, #0xb] - lsls r0, r0, #1 - adds r0, #1 - adds r0, r0, r2 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - ldrh r1, [r6, #0x32] - adds r0, r0, r1 - strh r0, [r6, #0x32] - adds r1, r6, #0 - adds r1, #0x82 - strh r0, [r1] - adds r0, r6, #0 - adds r1, r7, #0 - bl CopyPosition - adds r0, r6, #0 - adds r0, #0x7e - ldrb r0, [r0] - adds r1, r6, #0 - adds r1, #0x76 - strh r0, [r1] - ldrb r1, [r6, #0xe] - adds r0, r6, #0 - adds r0, #0x74 - strb r1, [r0] - ldrb r1, [r6, #0xb] - adds r0, r6, #0 - bl UpdateSprite -_0809132C: - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08091330: .4byte gUnk_080FD270 -_08091334: .4byte gUnk_081222A8 - - thumb_func_start sub_08091338 -sub_08091338: @ 0x08091338 - push {r4, lr} - adds r4, r0, #0 - bl sub_08078930 - adds r0, r4, #0 - adds r0, #0x70 - ldrh r0, [r0] - cmp r0, #0 - beq _0809135C - ldrb r0, [r4, #0xb] - lsls r0, r0, #3 - strb r0, [r4, #0x15] - adds r0, r4, #0 - bl sub_0806F69C - adds r0, r4, #0 - bl sub_08091660 -_0809135C: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08091360 -sub_08091360: @ 0x08091360 - push {r4, lr} - adds r4, r0, #0 - bl sub_0806FBB4 - ldr r1, _0809137C @ =gUnk_081222B0 - ldrb r0, [r4, #0xd] - subs r0, #5 - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - pop {r4, pc} - .align 2, 0 -_0809137C: .4byte gUnk_081222B0 - - thumb_func_start sub_08091380 -sub_08091380: @ 0x08091380 - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - ldr r7, _0809142C @ =gLinkEntity - adds r0, #0x75 - ldrb r0, [r0] - cmp r0, #0 - bne _080913E0 - ldrb r0, [r4, #0xb] - lsls r2, r0, #1 - ldrb r0, [r7, #0x14] - cmp r2, r0 - bne _080913D4 - ldr r1, _08091430 @ =gUnk_081222B8 - adds r0, r2, r1 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - ldrh r3, [r4, #0x2e] - adds r0, r0, r3 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - adds r0, r2, #1 - adds r0, r0, r1 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - ldrh r1, [r4, #0x32] - adds r0, r0, r1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - adds r0, r7, #0 - adds r0, #0x38 - ldrb r2, [r0] - adds r0, r6, #0 - adds r1, r5, #0 - bl sub_080002D4 - subs r0, #0xf - cmp r0, #0x10 - bls _080913D4 - strh r6, [r7, #0x2e] - strh r5, [r7, #0x32] -_080913D4: - adds r1, r4, #0 - adds r1, #0x75 - movs r0, #1 - strb r0, [r1] - movs r0, #2 - strb r0, [r4, #0xf] -_080913E0: - ldrb r0, [r7, #0x14] - lsrs r0, r0, #1 - ldrb r3, [r4, #0xb] - cmp r0, r3 - bne _0809142A - ldr r1, _08091434 @ =gLinkState - adds r0, r1, #0 - adds r0, #0xa8 - ldrb r0, [r0] - cmp r0, #0x1a - bne _0809142A - ldrb r1, [r1, #5] - movs r5, #2 - adds r0, r5, #0 - ands r0, r1 - cmp r0, #0 - beq _0809142A - ldr r0, _0809142C @ =gLinkEntity - adds r0, #0x5a - ldrb r1, [r0] - adds r0, r5, #0 - ands r0, r1 - cmp r0, #0 - beq _0809142A - adds r0, r4, #0 - bl sub_0809153C - adds r1, r4, #0 - adds r1, #0x75 - ldrb r0, [r1] - cmp r0, #1 - bne _0809142A - strb r5, [r1] - movs r0, #0xcf - lsls r0, r0, #1 - bl sub_08004488 -_0809142A: - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0809142C: .4byte gLinkEntity -_08091430: .4byte gUnk_081222B8 -_08091434: .4byte gLinkState - - thumb_func_start sub_08091438 -sub_08091438: @ 0x08091438 - movs r2, #0 - movs r1, #1 - strb r1, [r0, #0xc] - adds r0, #0x75 - strb r2, [r0] - bx lr - - thumb_func_start sub_08091444 -sub_08091444: @ 0x08091444 - push {r4, lr} - adds r4, r0, #0 - movs r0, #1 - strb r0, [r4, #0xc] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - subs r0, #9 - ands r0, r1 - movs r1, #5 - orrs r0, r1 - strb r0, [r2] - ldr r0, [r4, #0x50] - ldrb r1, [r0, #0xb] - adds r1, #8 - adds r0, r4, #0 - bl UpdateSprite - adds r0, r4, #0 - bl UpdateSpriteOrderAndFlip - pop {r4, pc} - - thumb_func_start sub_08091470 -sub_08091470: @ 0x08091470 - push {r4, lr} - adds r2, r0, #0 - ldr r4, [r2, #0x50] - adds r3, r4, #0 - adds r3, #0x70 - ldrh r0, [r3] - cmp r0, #7 - bhi _0809148C - ldrb r1, [r2, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2, #0x18] - b _08091502 -_0809148C: - ldrb r1, [r2, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r2, #0x18] - ldrh r0, [r3] - adds r1, r0, #0 - subs r1, #8 - movs r0, #7 - ands r1, r0 - ldrb r3, [r2, #0xb] - cmp r3, #1 - beq _080914C8 - cmp r3, #1 - bgt _080914B4 - cmp r3, #0 - beq _080914BE - b _080914E2 -_080914B4: - cmp r3, #2 - beq _080914D0 - cmp r3, #3 - beq _080914DA - b _080914E2 -_080914BE: - ldrh r0, [r4, #0x32] - subs r0, r0, r1 - subs r0, #0x11 - strh r0, [r2, #0x32] - b _080914E2 -_080914C8: - ldrh r0, [r4, #0x2e] - adds r0, r1, r0 - adds r0, #0x11 - b _080914E0 -_080914D0: - ldrh r0, [r4, #0x32] - adds r0, r1, r0 - adds r0, #0x11 - strh r0, [r2, #0x32] - b _080914E2 -_080914DA: - ldrh r0, [r4, #0x2e] - subs r0, r0, r1 - subs r0, #0x11 -_080914E0: - strh r0, [r2, #0x2e] -_080914E2: - adds r0, r4, #0 - adds r0, #0x70 - ldrh r0, [r0] - subs r0, #8 - lsls r0, r0, #0xc - lsrs r1, r0, #0x10 - ldrb r0, [r2, #0x14] - cmp r1, r0 - beq _08091502 - strb r1, [r2, #0x14] - lsls r1, r1, #2 - adds r1, r1, r3 - adds r1, #8 - adds r0, r2, #0 - bl UpdateSprite -_08091502: - pop {r4, pc} - - thumb_func_start sub_08091504 -sub_08091504: @ 0x08091504 - push {r4, lr} - adds r4, r0, #0 - movs r2, #1 - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - subs r0, #5 - ands r0, r1 - orrs r0, r2 - strb r0, [r4, #0x18] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #6 - orrs r0, r1 - strb r0, [r2] - ldrb r1, [r4, #0xb] - adds r1, #4 - adds r0, r4, #0 - bl UpdateSprite - adds r0, r4, #0 - bl UpdateSpriteOrderAndFlip - pop {r4, pc} - - thumb_func_start sub_0809153C -sub_0809153C: @ 0x0809153C - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - sub sp, #4 - adds r5, r0, #0 - ldr r6, _080915A8 @ =gLinkEntity - ldr r1, _080915AC @ =gUnk_081222C0 - ldrb r0, [r5, #0xb] - adds r0, r0, r1 - ldrb r0, [r0] - mov r8, r0 - adds r0, r5, #0 - adds r0, #0x76 - adds r1, r5, #0 - adds r1, #0x70 - ldrh r0, [r0] - ldrh r1, [r1] - cmp r0, r1 - bls _08091656 - ldrh r4, [r6, #0x2e] - ldrh r0, [r6, #0x32] - mov sb, r0 - movs r2, #0x24 - ldrsh r1, [r5, r2] - adds r0, r6, #0 - mov r2, r8 - str r3, [sp] - bl sub_080044AE - lsls r4, r4, #0x10 - asrs r4, r4, #0x10 - ldrh r2, [r6, #0x2e] - movs r7, #0x2e - ldrsh r0, [r6, r7] - ldr r3, [sp] - cmp r4, r0 - bne _08091596 - mov r1, sb - lsls r0, r1, #0x10 - asrs r0, r0, #0x10 - movs r7, #0x32 - ldrsh r1, [r6, r7] - cmp r0, r1 - beq _08091656 -_08091596: - ldrb r0, [r5, #0xb] - cmp r0, #1 - beq _080915CA - cmp r0, #1 - bgt _080915B0 - cmp r0, #0 - beq _080915BA - b _080915E0 - .align 2, 0 -_080915A8: .4byte gLinkEntity -_080915AC: .4byte gUnk_081222C0 -_080915B0: - cmp r0, #2 - beq _080915CE - cmp r0, #3 - beq _080915DA - b _080915E0 -_080915BA: - ldrh r1, [r6, #0x32] - mov r2, sb - lsls r0, r2, #0x10 - asrs r0, r0, #0x10 - subs r1, r1, r0 - lsls r1, r1, #0x10 - lsrs r3, r1, #0x10 - b _080915E0 -_080915CA: - subs r0, r4, r2 - b _080915DC -_080915CE: - ldrh r1, [r6, #0x32] - mov r7, sb - lsls r0, r7, #0x10 - asrs r0, r0, #0x10 - subs r0, r0, r1 - b _080915DC -_080915DA: - subs r0, r2, r4 -_080915DC: - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 -_080915E0: - lsls r2, r3, #0x18 - ldr r3, _0809163C @ =gUnk_080C9160 - mov r1, r8 - lsls r0, r1, #4 - adds r0, r0, r3 - movs r7, #0 - ldrsh r0, [r0, r7] - asrs r2, r2, #0x10 - adds r1, r0, #0 - muls r1, r2, r1 - ldr r0, [r5, #0x2c] - adds r0, r0, r1 - str r0, [r5, #0x2c] - mov r1, r8 - lsls r0, r1, #4 - adds r0, #0x80 - adds r0, r0, r3 - movs r7, #0 - ldrsh r0, [r0, r7] - adds r1, r0, #0 - muls r1, r2, r1 - ldr r0, [r5, #0x30] - subs r0, r0, r1 - str r0, [r5, #0x30] - adds r0, r5, #0 - bl sub_08091660 - adds r0, r5, #0 - adds r0, #0x76 - adds r1, r5, #0 - adds r1, #0x70 - ldrh r0, [r0] - ldrh r1, [r1] - cmp r0, r1 - bhi _08091640 - movs r0, #0x86 - lsls r0, r0, #1 - bl sub_08004488 - adds r0, r5, #0 - adds r0, #0x86 - ldrh r0, [r0] - bl sub_0807CCC8 - b _08091656 - .align 2, 0 -_0809163C: .4byte gUnk_080C9160 -_08091640: - ldrb r0, [r5, #0xf] - subs r0, #1 - strb r0, [r5, #0xf] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08091656 - movs r0, #0x10 - strb r0, [r5, #0xf] - adds r0, #0xff - bl sub_08004488 -_08091656: - add sp, #4 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_08091660 -sub_08091660: @ 0x08091660 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xb] - cmp r0, #1 - beq _08091686 - cmp r0, #1 - bgt _08091674 - cmp r0, #0 - beq _0809167E - b _080916AA -_08091674: - cmp r0, #2 - beq _08091690 - cmp r0, #3 - beq _0809169A - b _080916AA -_0809167E: - adds r1, r4, #0 - adds r1, #0x82 - ldrh r0, [r4, #0x32] - b _080916A0 -_08091686: - adds r0, r4, #0 - adds r0, #0x80 - ldrh r0, [r0] - ldrh r1, [r4, #0x2e] - b _080916A2 -_08091690: - adds r0, r4, #0 - adds r0, #0x82 - ldrh r0, [r0] - ldrh r1, [r4, #0x32] - b _080916A2 -_0809169A: - adds r1, r4, #0 - adds r1, #0x80 - ldrh r0, [r4, #0x2e] -_080916A0: - ldrh r1, [r1] -_080916A2: - subs r0, r0, r1 - adds r1, r4, #0 - adds r1, #0x70 - strh r0, [r1] -_080916AA: - adds r5, r4, #0 - adds r5, #0x86 - ldrh r0, [r5] - bl sub_0807CBE4 - cmp r0, #0 - beq _080916C8 - adds r0, r4, #0 - adds r0, #0x70 - ldrh r0, [r0] - cmp r0, #0 - bne _080916C8 - ldrh r0, [r5] - bl sub_0807CD48 -_080916C8: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_080916CC -sub_080916CC: @ 0x080916CC - push {r4, lr} - adds r4, r0, #0 - ldr r1, _080916E8 @ =gUnk_081223A8 - ldrb r0, [r4, #0xc] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - adds r4, #0x41 - movs r0, #0 - strb r0, [r4] - pop {r4, pc} - .align 2, 0 -_080916E8: .4byte gUnk_081223A8 - - thumb_func_start sub_080916EC -sub_080916EC: @ 0x080916EC - push {r4, r5, r6, r7, lr} - adds r6, r0, #0 - ldrb r0, [r6, #0xe] - lsls r0, r0, #3 - ldr r1, _080917C8 @ =gUnk_030010EC - adds r7, r0, r1 - adds r0, r6, #0 - adds r0, #0x84 - str r7, [r0] - ldr r0, _080917CC @ =gRoomControls - ldrb r0, [r0, #5] - ldrb r1, [r7, #4] - cmp r0, r1 - bne _08091716 - ldr r0, _080917D0 @ =gLinkState - ldr r0, [r0, #0x30] - movs r1, #0x80 - lsls r1, r1, #5 - ands r0, r1 - cmp r0, #0 - beq _0809171A -_08091716: - bl sub_0805E780 -_0809171A: - ldr r4, _080917CC @ =gRoomControls - ldrh r1, [r7] - movs r5, #0x3f - adds r0, r5, #0 - ands r0, r1 - lsls r0, r0, #4 - ldrh r2, [r4, #6] - adds r0, r0, r2 - adds r0, #8 - strh r0, [r6, #0x2e] - ldrh r1, [r7] - movs r0, #0xfc - lsls r0, r0, #4 - ands r0, r1 - lsrs r0, r0, #2 - ldrh r3, [r4, #8] - adds r0, r0, r3 - adds r0, #8 - strh r0, [r6, #0x32] - ldrb r0, [r7, #5] - strb r0, [r6, #0x14] - ldrb r0, [r7, #6] - strb r0, [r6, #0xb] - movs r2, #1 - strb r2, [r6, #0xc] - ldr r0, _080917D4 @ =gUnk_080FD310 - str r0, [r6, #0x48] - ldrb r1, [r6, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r6, #0x10] - adds r0, r6, #0 - adds r0, #0x3f - strb r2, [r0] - adds r1, r6, #0 - adds r1, #0x3c - movs r0, #0x47 - strb r0, [r1] - adds r1, #4 - movs r0, #0x44 - strb r0, [r1] - subs r1, #5 - movs r0, #0x80 - strb r0, [r1] - ldrb r0, [r6, #0x14] - lsls r0, r0, #3 - strb r0, [r6, #0x15] - movs r0, #0xe0 - lsls r0, r0, #3 - strh r0, [r6, #0x24] - adds r2, r6, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #0x39 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #0x18 - orrs r0, r1 - strb r0, [r2] - ldrb r1, [r6, #0x14] - adds r1, #4 - ldrb r0, [r6, #0xb] - adds r1, r1, r0 - adds r0, r6, #0 - bl LoadAnimation - ldr r0, _080917D8 @ =0x00004022 - movs r2, #0x2e - ldrsh r1, [r6, r2] - ldrh r2, [r4, #6] - subs r1, r1, r2 - asrs r1, r1, #4 - ands r1, r5 - movs r3, #0x32 - ldrsh r2, [r6, r3] - ldrh r3, [r4, #8] - subs r2, r2, r3 - asrs r2, r2, #4 - ands r2, r5 - lsls r2, r2, #6 - orrs r1, r2 - adds r2, r6, #0 - adds r2, #0x38 - ldrb r2, [r2] - bl sub_0800015E - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_080917C8: .4byte gUnk_030010EC -_080917CC: .4byte gRoomControls -_080917D0: .4byte gLinkState -_080917D4: .4byte gUnk_080FD310 -_080917D8: .4byte 0x00004022 - - thumb_func_start sub_080917DC -sub_080917DC: @ 0x080917DC - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x41 - ldrb r1, [r0] - movs r0, #0x7f - ands r0, r1 - cmp r0, #0x1d - bne _08091810 - movs r0, #0xa8 - lsls r0, r0, #0xa - str r0, [r4, #0x20] - movs r0, #7 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x14] - adds r1, #4 - ldrb r0, [r4, #0xb] - adds r1, r1, r0 - adds r0, r4, #0 - bl LoadAnimation - ldr r0, _0809180C @ =0x0000013B - bl PlaySFX - b _080918A0 - .align 2, 0 -_0809180C: .4byte 0x0000013B -_08091810: - adds r0, r4, #0 - bl sub_0800445C - cmp r0, #0 - beq _0809184A - ldr r2, _08091840 @ =gLinkState - ldr r0, [r2, #0x30] - ldr r1, _08091844 @ =0x00040080 - ands r0, r1 - cmp r0, #0 - bne _08091848 - ldrb r0, [r2, #0x1c] - cmp r0, #0 - bne _08091848 - ldrb r0, [r2, #5] - cmp r0, #0 - bne _08091848 - ldrb r0, [r2, #2] - cmp r0, #0 - bne _08091848 - ldrb r0, [r4, #0xe] - adds r0, #1 - b _0809184A - .align 2, 0 -_08091840: .4byte gLinkState -_08091844: .4byte 0x00040080 -_08091848: - movs r0, #0 -_0809184A: - strb r0, [r4, #0xe] - ldrb r0, [r4, #0xb] - cmp r0, #0 - bne _0809189C - ldrb r0, [r4, #0xe] - cmp r0, #8 - bls _080918A0 - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] - ldr r2, _08091894 @ =gLinkState - movs r0, #0x81 - strb r0, [r2, #2] - ldr r0, [r2, #0x30] - movs r1, #0x80 - lsls r1, r1, #0x13 - orrs r0, r1 - str r0, [r2, #0x30] - ldr r1, _08091898 @ =gLinkEntity - movs r0, #0x80 - lsls r0, r0, #0xa - str r0, [r1, #0x20] - movs r0, #0x80 - lsls r0, r0, #1 - strh r0, [r1, #0x24] - ldrb r2, [r1, #0x10] - movs r0, #0x7f - ands r0, r2 - strb r0, [r1, #0x10] - bl sub_08077B2C - bl sub_0807A108 - movs r0, #0x7c - bl PlaySFX - b _080918A0 - .align 2, 0 -_08091894: .4byte gLinkState -_08091898: .4byte gLinkEntity -_0809189C: - movs r0, #0 - strb r0, [r4, #0xe] -_080918A0: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080918A4 -sub_080918A4: @ 0x080918A4 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r5, _08091964 @ =gLinkEntity - adds r1, r5, #0 - movs r2, #2 - movs r3, #2 - bl sub_080041A0 - cmp r0, #0 - beq _08091974 - ldrh r0, [r4, #0x2e] - strh r0, [r5, #0x2e] - ldrh r0, [r4, #0x32] - strh r0, [r5, #0x32] - movs r0, #0x36 - ldrsh r1, [r5, r0] - movs r0, #0x10 - rsbs r0, r0, #0 - cmp r1, r0 - ble _0809197E - ldr r0, [r5, #0x20] - cmp r0, #0 - bge _080919A4 - ldrb r0, [r4, #0x14] - lsls r0, r0, #1 - strb r0, [r5, #0x14] - ldr r2, _08091968 @ =gLinkState - ldr r0, [r2, #0x30] - movs r1, #0x80 - lsls r1, r1, #0x13 - eors r0, r1 - movs r1, #0x80 - lsls r1, r1, #5 - orrs r0, r1 - str r0, [r2, #0x30] - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] - movs r0, #1 - strb r0, [r4, #0xf] - ldrb r0, [r4, #0x10] - movs r2, #0x20 - orrs r0, r2 - strb r0, [r4, #0x10] - adds r1, r4, #0 - adds r1, #0x3f - movs r0, #0x97 - strb r0, [r1] - adds r0, r5, #0 - adds r0, #0x3c - ldrb r0, [r0] - adds r0, #1 - subs r1, #3 - orrs r0, r2 - strb r0, [r1] - adds r0, r5, #0 - adds r0, #0x3b - ldrb r0, [r0] - adds r2, r4, #0 - adds r2, #0x3b - strb r0, [r2] - adds r1, #4 - movs r0, #0x18 - strb r0, [r1] - adds r1, #4 - movs r0, #8 - strb r0, [r1] - adds r0, r4, #0 - bl sub_0801766C - movs r1, #0x2e - ldrsh r0, [r4, r1] - ldr r2, _0809196C @ =gRoomControls - ldrh r1, [r2, #6] - subs r0, r0, r1 - asrs r0, r0, #4 - movs r3, #0x3f - ands r0, r3 - movs r5, #0x32 - ldrsh r1, [r4, r5] - ldrh r2, [r2, #8] - subs r1, r1, r2 - asrs r1, r1, #4 - ands r1, r3 - lsls r1, r1, #6 - orrs r0, r1 - adds r1, r4, #0 - adds r1, #0x38 - ldrb r1, [r1] - bl sub_0807BA8C - ldr r0, _08091970 @ =0x00000137 - bl PlaySFX - b _0809197E - .align 2, 0 -_08091964: .4byte gLinkEntity -_08091968: .4byte gLinkState -_0809196C: .4byte gRoomControls -_08091970: .4byte 0x00000137 -_08091974: - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_080045C4 - strb r0, [r5, #0x15] -_0809197E: - ldr r3, _080919A8 @ =gLinkEntity - ldr r0, [r3, #0x20] - cmp r0, #0 - bge _080919A4 - adds r0, r4, #0 - adds r0, #0x29 - ldrb r1, [r0] - lsls r1, r1, #0x1d - lsrs r1, r1, #0x1d - subs r1, #1 - adds r3, #0x29 - movs r0, #7 - ands r1, r0 - ldrb r2, [r3] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] -_080919A4: - pop {r4, r5, pc} - .align 2, 0 -_080919A8: .4byte gLinkEntity - - thumb_func_start sub_080919AC -sub_080919AC: @ 0x080919AC - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r5, r0, #0 - ldr r1, _080919D4 @ =gRoomControls - movs r0, #0 - mov r8, r0 - movs r0, #7 - strb r0, [r1, #0xe] - ldr r0, _080919D8 @ =gLinkState - ldr r0, [r0, #0x30] - movs r1, #0x80 - lsls r1, r1, #5 - ands r0, r1 - cmp r0, #0 - bne _080919DC - movs r0, #1 - strb r0, [r5, #0xc] - b _08091C04 - .align 2, 0 -_080919D4: .4byte gRoomControls -_080919D8: .4byte gLinkState -_080919DC: - ldr r4, _08091A14 @ =gLinkEntity - adds r6, r4, #0 - adds r6, #0x5a - ldrb r1, [r6] - movs r7, #0xf - adds r0, r7, #0 - ands r0, r1 - cmp r0, #0 - bne _08091A22 - ldrb r1, [r5, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r5, #0x10] - adds r0, r5, #0 - adds r1, r4, #0 - bl CopyPosition - ldrb r1, [r6] - movs r0, #0xf0 - ands r0, r1 - cmp r0, #0x10 - bne _08091A18 - adds r1, r5, #0 - adds r1, #0x63 - movs r0, #1 - strb r0, [r1] - b _08091C04 - .align 2, 0 -_08091A14: .4byte gLinkEntity -_08091A18: - adds r0, r5, #0 - adds r0, #0x63 - mov r1, r8 - strb r1, [r0] - b _08091C04 -_08091A22: - ldrb r0, [r5, #0x10] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r5, #0x10] - mov r0, r8 - strh r0, [r4, #0x24] - adds r0, r5, #0 - bl sub_0806F69C - adds r0, r5, #0 - adds r1, r4, #0 - bl CopyPosition - adds r0, r5, #0 - adds r0, #0x29 - ldrb r1, [r0] - lsls r1, r1, #0x1d - lsrs r1, r1, #0x1d - subs r1, #1 - adds r3, r4, #0 - adds r3, #0x29 - movs r0, #7 - ands r1, r0 - ldrb r2, [r3] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - adds r0, r5, #0 - bl sub_08091DDC - cmp r0, #0 - beq _08091A68 - b _08091C04 -_08091A68: - ldr r0, _08091AD8 @ =gUnk_030010A0 - ldr r0, [r0] - ands r0, r7 - cmp r0, #0 - bne _08091A7A - movs r0, #0x9c - lsls r0, r0, #1 - bl PlaySFX -_08091A7A: - ldrb r0, [r5, #0xf] - subs r0, #1 - strb r0, [r5, #0xf] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xff - bne _08091A92 - movs r0, #0x7b - bl PlaySFX - movs r0, #0x3c - strb r0, [r5, #0xf] -_08091A92: - ldr r2, _08091ADC @ =gUnk_081223C8 - ldrb r0, [r5, #0x14] - lsls r0, r0, #1 - adds r1, r0, r2 - ldrb r1, [r1] - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - adds r0, #1 - adds r0, r0, r2 - movs r2, #0 - ldrsb r2, [r0, r2] - adds r0, r5, #0 - bl sub_080002B4 - adds r4, r0, #0 - ldr r1, _08091AE0 @ =gUnk_081223D8 - ldrb r0, [r5, #0x14] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl sub_08007DD6 - cmp r0, #0 - bne _08091AE4 - ldrb r0, [r5, #0x15] - movs r1, #0x10 - eors r0, r1 - strb r0, [r5, #0x15] - ldrb r0, [r5, #0x14] - movs r1, #2 - eors r0, r1 - strb r0, [r5, #0x14] - b _08091BD8 - .align 2, 0 -_08091AD8: .4byte gUnk_030010A0 -_08091ADC: .4byte gUnk_081223C8 -_08091AE0: .4byte gUnk_081223D8 -_08091AE4: - adds r0, r4, #0 - subs r0, #0x64 - cmp r0, #0xb - bhi _08091BD8 - lsls r0, r0, #2 - ldr r1, _08091AF8 @ =_08091AFC - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08091AF8: .4byte _08091AFC -_08091AFC: @ jump table - .4byte _08091B2C @ case 0 - .4byte _08091BD8 @ case 1 - .4byte _08091BD8 @ case 2 - .4byte _08091BB8 @ case 3 - .4byte _08091BB8 @ case 4 - .4byte _08091BB8 @ case 5 - .4byte _08091BB8 @ case 6 - .4byte _08091BD8 @ case 7 - .4byte _08091BB8 @ case 8 - .4byte _08091BB8 @ case 9 - .4byte _08091BB8 @ case 10 - .4byte _08091BB8 @ case 11 -_08091B2C: - ldrb r1, [r5, #0x10] - movs r0, #0xdf - ands r0, r1 - strb r0, [r5, #0x10] - adds r1, r5, #0 - adds r1, #0x3f - movs r0, #1 - strb r0, [r1] - subs r1, #3 - movs r0, #0x47 - strb r0, [r1] - adds r1, #4 - movs r0, #0x44 - strb r0, [r1] - subs r1, #5 - movs r4, #0x80 - movs r0, #0x80 - strb r0, [r1] - movs r0, #6 - strb r0, [r5, #0xc] - adds r0, r5, #0 - bl sub_08017744 - ldr r2, _08091BAC @ =gLinkState - movs r0, #0x41 - strb r0, [r2, #2] - ldr r0, [r2, #0x30] - movs r1, #0x80 - lsls r1, r1, #5 - eors r0, r1 - movs r1, #0x80 - lsls r1, r1, #0x13 - orrs r0, r1 - str r0, [r2, #0x30] - ldr r1, _08091BB0 @ =gLinkEntity - movs r0, #0x80 - lsls r0, r0, #0xa - str r0, [r1, #0x20] - movs r0, #0x80 - lsls r0, r0, #2 - strh r0, [r1, #0x24] - ldrb r0, [r5, #0x14] - lsls r0, r0, #1 - strb r0, [r1, #0x14] - ldrb r0, [r5, #0x15] - strb r0, [r1, #0x15] - ldrb r0, [r1, #0x10] - orrs r4, r0 - strb r4, [r1, #0x10] - adds r0, r5, #0 - bl sub_08004168 - ldrb r1, [r5, #0x14] - adds r1, #0xc - adds r0, r5, #0 - bl LoadAnimation - movs r0, #0x78 - bl PlaySFX - ldr r0, _08091BB4 @ =0x00000139 - bl PlaySFX - b _08091C04 - .align 2, 0 -_08091BAC: .4byte gLinkState -_08091BB0: .4byte gLinkEntity -_08091BB4: .4byte 0x00000139 -_08091BB8: - adds r0, r5, #0 - bl sub_080002B8 - cmp r4, r0 - bne _08091BD8 - adds r0, r5, #0 - bl sub_08091C0C - ldr r1, _08091BD4 @ =gLinkEntity - ldrb r0, [r5, #0x14] - lsls r0, r0, #1 - strb r0, [r1, #0x14] - b _08091C04 - .align 2, 0 -_08091BD4: .4byte gLinkEntity -_08091BD8: - ldr r2, _08091BF8 @ =gLinkEntity - ldrb r0, [r5, #0x14] - lsls r1, r0, #1 - strb r1, [r2, #0x14] - adds r1, r5, #0 - adds r1, #0x58 - ldrb r1, [r1] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r1, r0 - bne _08091BFC - adds r0, r5, #0 - bl sub_080042B8 - b _08091C04 - .align 2, 0 -_08091BF8: .4byte gLinkEntity -_08091BFC: - ldrb r1, [r5, #0x14] - adds r0, r5, #0 - bl LoadAnimation -_08091C04: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_08091C0C -sub_08091C0C: @ 0x08091C0C - push {r4, lr} - adds r4, r0, #0 - bl sub_08004168 - ldr r1, _08091C30 @ =gLinkEntity - adds r0, r4, #0 - bl CopyPosition - adds r0, r4, #0 - bl sub_080002B8 - cmp r0, #0x68 - beq _08091C46 - cmp r0, #0x68 - bhi _08091C34 - cmp r0, #0x67 - beq _08091C3E - b _08091C80 - .align 2, 0 -_08091C30: .4byte gLinkEntity -_08091C34: - cmp r0, #0x69 - beq _08091C4E - cmp r0, #0x6a - beq _08091C66 - b _08091C80 -_08091C3E: - ldrb r0, [r4, #0x15] - cmp r0, #0x18 - beq _08091C54 - b _08091C76 -_08091C46: - ldrb r0, [r4, #0x15] - cmp r0, #8 - beq _08091C6C - b _08091C5C -_08091C4E: - ldrb r0, [r4, #0x15] - cmp r0, #8 - bne _08091C5C -_08091C54: - movs r0, #0 - strb r0, [r4, #0x15] - strb r0, [r4, #0x14] - b _08091C86 -_08091C5C: - movs r0, #0x18 - strb r0, [r4, #0x15] - movs r0, #3 - strb r0, [r4, #0x14] - b _08091C86 -_08091C66: - ldrb r0, [r4, #0x15] - cmp r0, #0x18 - bne _08091C76 -_08091C6C: - movs r0, #0x10 - strb r0, [r4, #0x15] - movs r0, #2 - strb r0, [r4, #0x14] - b _08091C86 -_08091C76: - movs r0, #8 - strb r0, [r4, #0x15] - movs r0, #1 - strb r0, [r4, #0x14] - b _08091C86 -_08091C80: - movs r0, #3 - strb r0, [r4, #0xc] - b _08091C92 -_08091C86: - movs r0, #3 - strb r0, [r4, #0xc] - ldr r1, _08091C94 @ =gLinkEntity - ldrb r0, [r4, #0x14] - lsls r0, r0, #1 - strb r0, [r1, #0x14] -_08091C92: - pop {r4, pc} - .align 2, 0 -_08091C94: .4byte gLinkEntity - - thumb_func_start sub_08091C98 -sub_08091C98: @ 0x08091C98 - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_0806F69C - ldr r5, _08091CC0 @ =gLinkEntity - adds r0, r4, #0 - adds r1, r5, #0 - bl CopyPosition - ldr r1, _08091CC4 @ =gRoomControls - ldrh r0, [r1] - cmp r0, #0 - bne _08091CBE - movs r0, #3 - strb r0, [r4, #0xc] - movs r0, #0xe0 - lsls r0, r0, #3 - strh r0, [r4, #0x24] - str r5, [r1, #0x30] -_08091CBE: - pop {r4, r5, pc} - .align 2, 0 -_08091CC0: .4byte gLinkEntity -_08091CC4: .4byte gRoomControls - - thumb_func_start sub_08091CC8 -sub_08091CC8: @ 0x08091CC8 - push {r4, r5, r6, lr} - adds r6, r0, #0 - ldr r2, _08091D58 @ =gLinkState - ldrb r0, [r2, #2] - cmp r0, #0 - bne _08091D64 - movs r0, #1 - strb r0, [r6, #0xc] - ldrb r0, [r6, #0x15] - movs r1, #0x10 - eors r0, r1 - strb r0, [r6, #0x15] - ldrb r0, [r6, #0x14] - movs r1, #2 - eors r0, r1 - strb r0, [r6, #0x14] - ldr r0, [r2, #0x30] - movs r1, #0x80 - lsls r1, r1, #0x13 - eors r0, r1 - str r0, [r2, #0x30] - adds r0, r6, #0 - adds r0, #0x84 - ldr r4, [r0] - movs r0, #0x2e - ldrsh r1, [r6, r0] - ldr r5, _08091D5C @ =gRoomControls - ldrh r0, [r5, #6] - subs r1, r1, r0 - asrs r1, r1, #4 - movs r3, #0x3f - ands r1, r3 - movs r2, #0x32 - ldrsh r0, [r6, r2] - ldrh r2, [r5, #8] - subs r0, r0, r2 - asrs r0, r0, #4 - ands r0, r3 - lsls r0, r0, #6 - orrs r1, r0 - strh r1, [r4] - ldrb r0, [r5, #5] - strb r0, [r4, #4] - ldrb r0, [r6, #0x14] - strb r0, [r4, #5] - ldrb r1, [r6, #0x14] - adds r1, #0x10 - adds r0, r6, #0 - bl LoadAnimation - ldr r0, _08091D60 @ =0x00004022 - movs r3, #0x2e - ldrsh r1, [r6, r3] - ldrh r2, [r5, #6] - subs r1, r1, r2 - asrs r1, r1, #4 - movs r4, #0x3f - ands r1, r4 - movs r3, #0x32 - ldrsh r2, [r6, r3] - ldrh r3, [r5, #8] - subs r2, r2, r3 - asrs r2, r2, #4 - ands r2, r4 - lsls r2, r2, #6 - orrs r1, r2 - adds r2, r6, #0 - adds r2, #0x38 - ldrb r2, [r2] - bl sub_0800015E - b _08091D8A - .align 2, 0 -_08091D58: .4byte gLinkState -_08091D5C: .4byte gRoomControls -_08091D60: .4byte 0x00004022 -_08091D64: - adds r0, r6, #0 - bl sub_080042B8 - ldr r3, _08091D8C @ =gLinkEntity - adds r0, r6, #0 - adds r0, #0x29 - ldrb r1, [r0] - lsls r1, r1, #0x1d - lsrs r1, r1, #0x1d - subs r1, #1 - adds r3, #0x29 - movs r0, #7 - ands r1, r0 - ldrb r2, [r3] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] -_08091D8A: - pop {r4, r5, r6, pc} - .align 2, 0 -_08091D8C: .4byte gLinkEntity - - thumb_func_start sub_08091D90 -sub_08091D90: @ 0x08091D90 - push {r4, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x20] - cmp r0, #0 - bge _08091DA0 - adds r0, r4, #0 - bl sub_080042B8 -_08091DA0: - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x7f - ands r0, r1 - cmp r0, #0 - bne _08091DD8 - movs r1, #0x80 - lsls r1, r1, #6 - adds r0, r4, #0 - bl sub_08003FC4 - cmp r0, #0 - bne _08091DD8 - ldrb r1, [r4, #0xb] - movs r0, #4 - eors r1, r0 - strb r1, [r4, #0xb] - movs r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - adds r0, #0x84 - ldr r0, [r0] - strb r1, [r0, #6] - movs r0, #0x9e - lsls r0, r0, #1 - bl PlaySFX -_08091DD8: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08091DDC -sub_08091DDC: @ 0x08091DDC - push {r4, lr} - adds r4, r0, #0 - ldr r2, _08091E30 @ =gUnk_081223D0 - ldrb r0, [r4, #0x14] - lsls r0, r0, #1 - adds r1, r0, r2 - ldrb r1, [r1] - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - adds r0, #1 - adds r0, r0, r2 - movs r2, #0 - ldrsb r2, [r0, r2] - adds r0, r4, #0 - bl sub_080002CC - cmp r0, #0xff - bne _08091E5C - ldr r0, _08091E34 @ =gLinkEntity - ldrb r1, [r4, #0x14] - bl sub_0807BD14 - cmp r0, #0 - beq _08091E5C - ldrb r1, [r4, #0x11] - movs r0, #0x10 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #6 - orrs r0, r1 - strb r0, [r4, #0x11] - movs r0, #5 - strb r0, [r4, #0xc] - ldrb r0, [r4, #0x15] - cmp r0, #8 - beq _08091E40 - cmp r0, #8 - bgt _08091E38 - cmp r0, #0 - beq _08091E40 - b _08091E44 - .align 2, 0 -_08091E30: .4byte gUnk_081223D0 -_08091E34: .4byte gLinkEntity -_08091E38: - cmp r0, #0x10 - beq _08091E40 - cmp r0, #0x18 - bne _08091E44 -_08091E40: - movs r0, #0xa0 - strh r0, [r4, #0x24] -_08091E44: - ldr r0, _08091E54 @ =gLinkEntity - ldrb r1, [r4, #0x15] - strb r1, [r0, #0x15] - ldr r0, _08091E58 @ =gRoomControls - str r4, [r0, #0x30] - movs r0, #1 - b _08091E5E - .align 2, 0 -_08091E54: .4byte gLinkEntity -_08091E58: .4byte gRoomControls -_08091E5C: - movs r0, #0 -_08091E5E: - pop {r4, pc} - - thumb_func_start sub_08091E60 -sub_08091E60: @ 0x08091E60 - push {lr} - ldr r2, _08091E74 @ =gUnk_08122598 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08091E74: .4byte gUnk_08122598 - - thumb_func_start sub_08091E78 -sub_08091E78: @ 0x08091E78 - push {r4, lr} - adds r4, r0, #0 - movs r2, #1 - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - subs r0, #5 - ands r0, r1 - orrs r0, r2 - strb r0, [r4, #0x18] - ldrb r0, [r4, #0xe] - cmp r0, #0 - bne _08091E96 - movs r0, #0x2d - strb r0, [r4, #0xe] -_08091E96: - ldrb r1, [r4, #0x1b] - movs r0, #0x3f - ands r0, r1 - movs r1, #0x40 - orrs r0, r1 - strb r0, [r4, #0x1b] - ldrb r1, [r4, #0xb] - adds r0, r4, #0 - bl UpdateSprite - ldr r1, _08091EBC @ =gUnk_08122590 - ldrb r0, [r4, #0xb] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r0, [r0] - bl PlaySFX - pop {r4, pc} - .align 2, 0 -_08091EBC: .4byte gUnk_08122590 - - thumb_func_start sub_08091EC0 -sub_08091EC0: @ 0x08091EC0 - push {r4, lr} - adds r4, r0, #0 - ldr r1, [r4, #0x50] - cmp r1, #0 - beq _08091ED6 - ldrh r0, [r1, #0x2e] - strh r0, [r4, #0x2e] - ldrh r0, [r1, #0x32] - strh r0, [r4, #0x32] - ldrh r0, [r1, #0x36] - strh r0, [r4, #0x36] -_08091ED6: - ldrb r0, [r4, #0xb] - cmp r0, #2 - beq _08091EEC - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08091EEC - bl sub_0805E780 -_08091EEC: - adds r0, r4, #0 - bl sub_08004274 - pop {r4, pc} - - thumb_func_start sub_08091EF4 -sub_08091EF4: @ 0x08091EF4 - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xc] - cmp r0, #1 - bhi _08091F0E - ldr r0, _08091F10 @ =gUnk_08122604 - ldrb r1, [r2, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r2, #0 - bl _call_via_r1 -_08091F0E: - pop {pc} - .align 2, 0 -_08091F10: .4byte gUnk_08122604 - - thumb_func_start sub_08091F14 -sub_08091F14: @ 0x08091F14 - push {r4, r5, lr} - adds r4, r0, #0 - movs r2, #0 - movs r0, #1 - strb r0, [r4, #0xc] - adds r3, r4, #0 - adds r3, #0x29 - ldrb r0, [r3] - movs r1, #7 - orrs r0, r1 - strb r0, [r3] - adds r0, r4, #0 - adds r0, #0x58 - strb r2, [r0] - movs r0, #0x2e - ldrsh r1, [r4, r0] - ldr r2, _08091FEC @ =gRoomControls - ldrh r0, [r2, #6] - subs r1, r1, r0 - asrs r1, r1, #4 - movs r3, #0x3f - ands r1, r3 - movs r5, #0x32 - ldrsh r0, [r4, r5] - ldrh r2, [r2, #8] - subs r0, r0, r2 - asrs r0, r0, #4 - ands r0, r3 - lsls r0, r0, #6 - orrs r1, r0 - adds r5, r4, #0 - adds r5, #0x70 - strh r1, [r5] - adds r0, r4, #0 - adds r0, #0x86 - ldrh r0, [r0] - bl sub_0807CBE4 - cmp r0, #0 - beq _08091FEA - movs r0, #2 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - subs r0, #6 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] - movs r0, #0xd1 - lsls r0, r0, #1 - ldrh r1, [r5] - subs r1, #0x41 - adds r4, #0x38 - ldrb r2, [r4] - bl sub_0807B314 - ldr r0, _08091FF0 @ =0x000001A3 - ldrh r1, [r5] - subs r1, #0x40 - ldrb r2, [r4] - bl sub_0807B314 - movs r0, #0xd2 - lsls r0, r0, #1 - ldrh r1, [r5] - subs r1, #0x3f - ldrb r2, [r4] - bl sub_0807B314 - ldr r0, _08091FF4 @ =0x000001A5 - ldrh r1, [r5] - subs r1, #1 - ldrb r2, [r4] - bl sub_0807B314 - movs r0, #0xd3 - lsls r0, r0, #1 - ldrh r1, [r5] - ldrb r2, [r4] - bl sub_0807B314 - ldr r0, _08091FF8 @ =0x000001A7 - ldrh r1, [r5] - adds r1, #1 - ldrb r2, [r4] - bl sub_0807B314 - movs r0, #0xd4 - lsls r0, r0, #1 - ldrh r1, [r5] - adds r1, #0x3f - ldrb r2, [r4] - bl sub_0807B314 - ldr r0, _08091FFC @ =0x000001A9 - ldrh r1, [r5] - adds r1, #0x40 - ldrb r2, [r4] - bl sub_0807B314 - movs r0, #0xd5 - lsls r0, r0, #1 - ldrh r1, [r5] - adds r1, #0x41 - ldrb r2, [r4] - bl sub_0807B314 -_08091FEA: - pop {r4, r5, pc} - .align 2, 0 -_08091FEC: .4byte gRoomControls -_08091FF0: .4byte 0x000001A3 -_08091FF4: .4byte 0x000001A5 -_08091FF8: .4byte 0x000001A7 -_08091FFC: .4byte 0x000001A9 - - thumb_func_start sub_08092000 -sub_08092000: @ 0x08092000 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x70 - ldrh r0, [r0] - adds r1, r4, #0 - adds r1, #0x38 - ldrb r1, [r1] - bl sub_080002B0 - movs r1, #0xd3 - lsls r1, r1, #1 - cmp r0, r1 - bne _08092034 - movs r0, #2 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - subs r0, #6 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] - adds r0, r4, #0 - adds r0, #0x86 - ldrh r0, [r0] - bl sub_0807CCC8 -_08092034: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08092038 -sub_08092038: @ 0x08092038 - push {lr} - ldr r2, _0809204C @ =gUnk_0812260C - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0809204C: .4byte gUnk_0812260C - - thumb_func_start sub_08092050 -sub_08092050: @ 0x08092050 - push {r4, r5, r6, r7, lr} - adds r6, r0, #0 - adds r0, #0x86 - ldrh r0, [r0] - bl sub_0807CBE4 - cmp r0, #0 - beq _0809207A - movs r0, #3 - strb r0, [r6, #0xc] - ldrh r0, [r6, #0x2e] - adds r0, #2 - strh r0, [r6, #0x2e] - adds r0, r6, #0 - bl sub_0809223C - adds r0, r6, #0 - movs r1, #1 - bl LoadAnimation - b _08092148 -_0809207A: - ldrb r0, [r6, #0xd] - cmp r0, #0 - bne _08092138 - movs r1, #1 - strb r1, [r6, #0xd] - adds r0, r6, #0 - adds r0, #0x38 - strb r1, [r0] - adds r2, r6, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #6 - orrs r0, r1 - strb r0, [r2] - ldrh r0, [r6, #0x2e] - adds r0, #2 - strh r0, [r6, #0x2e] - adds r0, r6, #0 - bl UpdateSpriteOrderAndFlip - movs r0, #0x2e - ldrsh r2, [r6, r0] - ldr r3, _08092130 @ =gRoomControls - ldrh r0, [r3, #6] - subs r2, r2, r0 - asrs r2, r2, #4 - movs r4, #0x3f - ands r2, r4 - movs r1, #0x32 - ldrsh r0, [r6, r1] - ldrh r1, [r3, #8] - adds r1, #8 - subs r0, r0, r1 - asrs r0, r0, #4 - ands r0, r4 - lsls r0, r0, #6 - orrs r2, r0 - adds r5, r6, #0 - adds r5, #0x70 - strh r2, [r5] - movs r0, #0x2e - ldrsh r2, [r6, r0] - ldrh r0, [r3, #6] - subs r2, r2, r0 - asrs r2, r2, #4 - ands r2, r4 - movs r1, #0x32 - ldrsh r0, [r6, r1] - ldrh r1, [r3, #8] - subs r1, #8 - subs r0, r0, r1 - asrs r0, r0, #4 - ands r0, r4 - lsls r0, r0, #6 - orrs r2, r0 - adds r7, r6, #0 - adds r7, #0x72 - strh r2, [r7] - ldrh r0, [r5] - movs r1, #1 - bl sub_080001DA - adds r1, r6, #0 - adds r1, #0x74 - strh r0, [r1] - ldrh r0, [r7] - movs r1, #1 - bl sub_080001DA - adds r1, r6, #0 - adds r1, #0x76 - strh r0, [r1] - ldr r4, _08092134 @ =0x00004022 - ldrh r1, [r5] - adds r0, r4, #0 - movs r2, #1 - bl sub_0800015E - ldrh r1, [r7] - adds r0, r4, #0 - movs r2, #1 - bl sub_0800015E - adds r0, r6, #0 - movs r1, #0 - bl LoadAnimation - b _08092148 - .align 2, 0 -_08092130: .4byte gRoomControls -_08092134: .4byte 0x00004022 -_08092138: - movs r0, #1 - strb r0, [r6, #0xc] - adds r0, r6, #0 - bl sub_080921BC - adds r0, r6, #0 - bl sub_080921F0 -_08092148: - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_0809214C -sub_0809214C: @ 0x0809214C - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x86 - ldrh r0, [r0] - bl sub_0807CBE4 - cmp r0, #0 - beq _08092160 - movs r0, #2 - strb r0, [r4, #0xc] -_08092160: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08092164 -sub_08092164: @ 0x08092164 - push {r4, lr} - adds r4, r0, #0 - bl sub_080042B8 - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080921B6 - movs r0, #3 - strb r0, [r4, #0xc] - adds r0, r4, #0 - adds r0, #0x74 - ldrh r0, [r0] - adds r1, r4, #0 - adds r1, #0x70 - ldrh r1, [r1] - movs r2, #1 - bl sub_0800015E - adds r0, r4, #0 - adds r0, #0x76 - ldrh r0, [r0] - adds r1, r4, #0 - adds r1, #0x72 - ldrh r1, [r1] - movs r2, #1 - bl sub_0800015E - adds r0, r4, #0 - bl sub_08092214 - adds r0, r4, #0 - bl sub_0809223C - adds r0, r4, #0 - movs r1, #1 - bl LoadAnimation -_080921B6: - pop {r4, pc} - - thumb_func_start nullsub_118 -nullsub_118: @ 0x080921B8 - bx lr - .align 2, 0 - - thumb_func_start sub_080921BC -sub_080921BC: @ 0x080921BC - push {lr} - adds r2, r0, #0 - ldr r1, _080921DC @ =gUnk_030011E8 - ldr r0, _080921E0 @ =0x000029F8 - adds r3, r1, r0 -_080921C6: - ldrb r0, [r1, #8] - cmp r0, #6 - bne _080921E4 - ldrb r0, [r1, #9] - cmp r0, #0x6f - bne _080921E4 - ldrb r0, [r1, #0xa] - cmp r0, #2 - bne _080921E4 - str r1, [r2, #0x54] - b _080921EE - .align 2, 0 -_080921DC: .4byte gUnk_030011E8 -_080921E0: .4byte 0x000029F8 -_080921E4: - adds r1, #0x88 - cmp r1, r3 - blo _080921C6 - movs r0, #0 - str r0, [r2, #0x54] -_080921EE: - pop {pc} - - thumb_func_start sub_080921F0 -sub_080921F0: @ 0x080921F0 - push {lr} - ldr r2, [r0, #0x54] - cmp r2, #0 - beq _08092212 - adds r1, r2, #0 - adds r1, #0x38 - movs r0, #1 - strb r0, [r1] - adds r3, r2, #0 - adds r3, #0x29 - ldrb r0, [r3] - movs r1, #7 - orrs r0, r1 - strb r0, [r3] - adds r0, r2, #0 - bl UpdateSpriteOrderAndFlip -_08092212: - pop {pc} - - thumb_func_start sub_08092214 -sub_08092214: @ 0x08092214 - push {lr} - ldr r2, [r0, #0x54] - cmp r2, #0 - beq _0809223A - adds r1, r2, #0 - adds r1, #0x38 - movs r0, #2 - strb r0, [r1] - adds r3, r2, #0 - adds r3, #0x29 - ldrb r1, [r3] - subs r0, #0xa - ands r0, r1 - movs r1, #4 - orrs r0, r1 - strb r0, [r3] - adds r0, r2, #0 - bl UpdateSpriteOrderAndFlip -_0809223A: - pop {pc} - - thumb_func_start sub_0809223C -sub_0809223C: @ 0x0809223C - push {lr} - adds r2, r0, #0 - adds r2, #0x38 - movs r1, #2 - strb r1, [r2] - adds r3, r0, #0 - adds r3, #0x29 - ldrb r2, [r3] - subs r1, #0xa - ands r1, r2 - movs r2, #3 - orrs r1, r2 - strb r1, [r3] - bl UpdateSpriteOrderAndFlip - pop {pc} - - thumb_func_start sub_0809225C -sub_0809225C: @ 0x0809225C - push {lr} - adds r1, r0, #0 - ldrb r0, [r1, #0xa] - cmp r0, #0 - bne _0809226E - adds r0, r1, #0 - bl sub_08092278 - b _08092274 -_0809226E: - adds r0, r1, #0 - bl sub_08092344 -_08092274: - pop {pc} - .align 2, 0 - - thumb_func_start sub_08092278 -sub_08092278: @ 0x08092278 - push {lr} - ldr r2, _0809228C @ =gUnk_08122644 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0809228C: .4byte gUnk_08122644 - - thumb_func_start sub_08092290 -sub_08092290: @ 0x08092290 - push {lr} - movs r1, #1 - strb r1, [r0, #0xc] - bl sub_080925A4 - pop {pc} - - thumb_func_start sub_0809229C -sub_0809229C: @ 0x0809229C - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x70 - ldrb r0, [r0] - cmp r0, #0 - beq _080922E0 - movs r0, #2 - strb r0, [r4, #0xc] - movs r0, #0xb0 - lsls r0, r0, #0xa - str r0, [r4, #0x20] - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] - adds r0, r4, #0 - bl UpdateSpriteOrderAndFlip - ldr r0, [r4, #0x54] - ldrb r1, [r0, #0x14] - adds r0, r4, #0 - bl LoadAnimation - movs r0, #0xbf - lsls r0, r0, #1 - bl sub_08004488 - ldr r0, [r4, #0x54] - movs r1, #3 - bl UpdateSprite -_080922E0: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080922E4 -sub_080922E4: @ 0x080922E4 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x90 - lsls r1, r1, #6 - bl sub_08003FC4 - adds r2, r0, #0 - cmp r2, #0 - bne _08092322 - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - subs r0, #5 - ands r0, r1 - strb r0, [r4, #0x18] - adds r0, r4, #0 - adds r0, #0x70 - strb r2, [r0] - ldr r0, [r4, #0x54] - adds r0, #0x63 - strb r2, [r0] - ldr r0, [r4, #0x54] - ldrb r1, [r0, #0x14] - bl UpdateSprite - adds r0, r4, #0 - movs r1, #0x36 - movs r2, #0 - bl CreateFX - b _0809233E -_08092322: - ldr r1, [r4, #0x20] - ldr r0, _08092340 @ =0x00017FFF - cmp r1, r0 - bgt _0809233E - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _0809233E - adds r0, r4, #0 - bl sub_080042B8 -_0809233E: - pop {r4, pc} - .align 2, 0 -_08092340: .4byte 0x00017FFF - - thumb_func_start sub_08092344 -sub_08092344: @ 0x08092344 - push {r4, lr} - adds r4, r0, #0 - movs r0, #0 - strb r0, [r4, #0xf] - ldr r1, _08092364 @ =gUnk_08122650 - ldrb r0, [r4, #0xc] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - adds r0, r4, #0 - bl sub_080926E4 - pop {r4, pc} - .align 2, 0 -_08092364: .4byte gUnk_08122650 - - thumb_func_start sub_08092368 -sub_08092368: @ 0x08092368 - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xb] - strb r0, [r2, #0x14] - adds r3, r2, #0 - adds r3, #0x29 - ldrb r0, [r3] - movs r1, #7 - orrs r0, r1 - strb r0, [r3] - adds r1, r2, #0 - adds r1, #0x40 - movs r0, #0x48 - strb r0, [r1] - subs r1, #4 - movs r0, #7 - strb r0, [r1] - subs r1, #1 - movs r0, #0x81 - strb r0, [r1] - ldr r0, _0809239C @ =gUnk_080FD280 - str r0, [r2, #0x48] - adds r0, r2, #0 - bl sub_0809264C - pop {pc} - .align 2, 0 -_0809239C: .4byte gUnk_080FD280 - - thumb_func_start sub_080923A0 -sub_080923A0: @ 0x080923A0 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x58 - ldrb r0, [r0] - cmp r0, #3 - beq _080923E2 - ldrb r0, [r4, #0xd] - cmp r0, #0 - bne _080923C6 - movs r1, #1 - movs r0, #1 - strb r0, [r4, #0xd] - ldrb r0, [r4, #0x14] - eors r0, r1 - strb r0, [r4, #0x14] - ldrb r1, [r4, #0x14] - adds r0, r4, #0 - bl UpdateSprite -_080923C6: - adds r1, r4, #0 - adds r1, #0x63 - ldrb r0, [r1] - subs r0, #1 - strb r0, [r1] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - movs r1, #3 - rsbs r1, r1, #0 - cmp r0, r1 - bne _080923E2 - adds r0, r4, #0 - bl sub_0809264C -_080923E2: - pop {r4, pc} - - thumb_func_start sub_080923E4 -sub_080923E4: @ 0x080923E4 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x41 - ldrb r0, [r0] - cmp r0, #0x9d - bne _080923F8 - adds r0, r4, #0 - bl sub_08092620 - b _0809241A -_080923F8: - adds r0, r4, #0 - bl sub_0809269C - cmp r0, #0 - beq _0809241A - movs r0, #3 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - movs r0, #0x14 - strb r0, [r4, #0xe] - ldr r0, _0809241C @ =gLinkState - adds r0, #0x3f - movs r1, #0xfd - strb r1, [r0] -_0809241A: - pop {r4, pc} - .align 2, 0 -_0809241C: .4byte gLinkState - - thumb_func_start sub_08092420 -sub_08092420: @ 0x08092420 - push {r4, lr} - adds r4, r0, #0 - bl sub_0809269C - cmp r0, #0 - beq _08092434 - ldr r0, _08092464 @ =gLinkState - adds r0, #0x3f - movs r1, #0xfd - strb r1, [r0] -_08092434: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08092462 - movs r0, #4 - strb r0, [r4, #0xc] - adds r0, r4, #0 - adds r0, #0x72 - ldrh r1, [r0] - subs r0, #2 - movs r2, #0 - strh r1, [r0] - subs r0, #0xd - strb r2, [r0] - adds r0, r4, #0 - movs r1, #2 - bl UpdateSprite - ldr r0, _08092468 @ =0x0000017B - bl sub_08004488 -_08092462: - pop {r4, pc} - .align 2, 0 -_08092464: .4byte gLinkState -_08092468: .4byte 0x0000017B - - thumb_func_start sub_0809246C -sub_0809246C: @ 0x0809246C - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_0809269C - adds r5, r4, #0 - adds r5, #0x70 - ldrh r0, [r5] - cmp r0, #0 - beq _08092482 - subs r0, #1 - strh r0, [r5] -_08092482: - ldrh r0, [r5] - cmp r0, #0x8c - bhi _080924DC - adds r0, r4, #0 - bl sub_08004274 - adds r3, r4, #0 - adds r3, #0x5a - ldrb r1, [r3] - movs r0, #0x80 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0 - beq _080924B8 - movs r0, #5 - strb r0, [r4, #0xc] - adds r0, r4, #0 - adds r0, #0x74 - ldrh r0, [r0] - strh r0, [r5] - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #0x18] - b _080924DC -_080924B8: - movs r2, #1 - ands r2, r1 - cmp r2, #0 - beq _080924CC - strb r0, [r3] - movs r0, #0xbe - lsls r0, r0, #1 - bl sub_08004488 - b _080924DC -_080924CC: - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _080924DC - strb r2, [r3] - ldr r0, _080924E0 @ =0x0000017D - bl sub_08004488 -_080924DC: - pop {r4, r5, pc} - .align 2, 0 -_080924E0: .4byte 0x0000017D - - thumb_func_start sub_080924E4 -sub_080924E4: @ 0x080924E4 - push {r4, lr} - adds r4, r0, #0 - adds r1, r4, #0 - adds r1, #0x70 - ldrh r0, [r1] - subs r0, #1 - strh r0, [r1] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _0809252C - movs r0, #6 - strb r0, [r4, #0xc] - ldrb r0, [r4, #0xb] - strb r0, [r4, #0x14] - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] - adds r1, r4, #0 - adds r1, #0x63 - movs r0, #0 - strb r0, [r1] - ldrb r1, [r4, #0x14] - adds r1, #4 - adds r0, r4, #0 - bl UpdateSprite - ldrb r0, [r4, #0x14] - cmp r0, #0 - bne _0809252C - adds r0, r4, #0 - bl sub_0809269C -_0809252C: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08092530 -sub_08092530: @ 0x08092530 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0x14] - cmp r0, #0 - bne _08092544 - adds r0, r4, #0 - bl sub_0809269C - adds r5, r0, #0 - b _08092546 -_08092544: - movs r5, #0 -_08092546: - adds r0, r4, #0 - bl sub_08004274 - adds r2, r4, #0 - adds r2, #0x5a - ldrb r1, [r2] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _08092570 - movs r0, #0 - strb r0, [r2] - ldrb r1, [r4, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r4, #0x10] - adds r1, r4, #0 - adds r1, #0x3f - movs r0, #0xac - strb r0, [r1] - b _0809258A -_08092570: - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0809258A - adds r0, r4, #0 - bl sub_0809264C - cmp r5, #0 - beq _0809258A - ldr r0, _0809258C @ =gLinkState - adds r0, #0x3f - movs r1, #0xfd - strb r1, [r0] -_0809258A: - pop {r4, r5, pc} - .align 2, 0 -_0809258C: .4byte gLinkState - - thumb_func_start sub_08092590 -sub_08092590: @ 0x08092590 - push {lr} - adds r1, r0, #0 - adds r0, #0x41 - ldrb r0, [r0] - cmp r0, #0x9d - bne _080925A2 - adds r0, r1, #0 - bl sub_08092620 -_080925A2: - pop {pc} - - thumb_func_start sub_080925A4 -sub_080925A4: @ 0x080925A4 - push {r4, r5, r6, r7, lr} - adds r6, r0, #0 - ldrb r0, [r6, #0xb] - bl sub_0804B128 - adds r5, r0, #0 - ldrb r0, [r5, #9] - cmp r0, #0xff - beq _0809261A - ldr r7, _0809261C @ =gRoomControls -_080925B8: - ldrb r2, [r5, #9] - movs r0, #0x59 - movs r1, #1 - bl CreateObject - adds r4, r0, #0 - cmp r4, #0 - beq _08092612 - movs r0, #0xff - strb r0, [r4, #0x15] - movs r0, #0 - strh r0, [r4, #0x24] - str r6, [r4, #0x50] - ldrh r0, [r7, #6] - ldrh r1, [r5, #4] - adds r0, r0, r1 - strh r0, [r4, #0x2e] - ldrh r0, [r7, #8] - ldrh r1, [r5, #6] - adds r0, r0, r1 - strh r0, [r4, #0x32] - ldrb r1, [r5, #8] - adds r0, r4, #0 - adds r0, #0x38 - strb r1, [r0] - ldrh r0, [r5, #0xa] - adds r1, r4, #0 - adds r1, #0x72 - strh r0, [r1] - ldrh r1, [r5, #0xc] - adds r0, r4, #0 - adds r0, #0x74 - strh r1, [r0] - ldr r0, [r5] - str r0, [r4, #0x78] - adds r0, r4, #0 - bl UpdateSpriteOrderAndFlip - adds r1, r4, #0 - adds r1, #0x78 - adds r2, r4, #0 - adds r2, #0x76 - adds r0, r4, #0 - bl sub_080A2CC0 -_08092612: - adds r5, #0x10 - ldrb r0, [r5, #9] - cmp r0, #0xff - bne _080925B8 -_0809261A: - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0809261C: .4byte gRoomControls - - thumb_func_start sub_08092620 -sub_08092620: @ 0x08092620 - push {r4, r5, r6, lr} - adds r5, r0, #0 - ldr r1, [r5, #0x50] - adds r0, r1, #0 - adds r0, #0x70 - ldrb r6, [r0] - cmp r6, #0 - bne _08092648 - movs r4, #1 - strb r4, [r0] - str r5, [r1, #0x54] - adds r0, r5, #0 - bl CopyPosition - strb r4, [r5, #0xc] - strb r6, [r5, #0xd] - adds r1, r5, #0 - adds r1, #0x3f - movs r0, #0xac - strb r0, [r1] -_08092648: - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_0809264C -sub_0809264C: @ 0x0809264C - push {lr} - adds r2, r0, #0 - ldrb r1, [r2, #0x14] - movs r3, #1 - adds r0, r3, #0 - ands r0, r1 - cmp r0, #0 - beq _0809266A - movs r0, #7 - strb r0, [r2, #0xc] - adds r1, r2, #0 - adds r1, #0x3f - movs r0, #0xac - strb r0, [r1] - b _08092674 -_0809266A: - movs r0, #2 - strb r0, [r2, #0xc] - adds r0, r2, #0 - adds r0, #0x3f - strb r3, [r0] -_08092674: - ldrb r1, [r2, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r2, #0x10] - ldrb r1, [r2, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r2, #0x18] - adds r1, r2, #0 - adds r1, #0x63 - movs r0, #0xfd - strb r0, [r1] - ldrb r1, [r2, #0x14] - adds r0, r2, #0 - bl UpdateSprite - pop {pc} - - thumb_func_start sub_0809269C -sub_0809269C: @ 0x0809269C - push {r4, r5, r6, lr} - adds r4, r0, #0 - ldr r6, _080926D8 @ =gLinkState - ldr r0, [r6, #0x30] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - bne _080926E0 - ldr r5, _080926DC @ =gLinkEntity - adds r0, r4, #0 - adds r1, r5, #0 - movs r2, #0x10 - movs r3, #0x10 - bl sub_080041A0 - cmp r0, #0 - beq _080926E0 - bl sub_08079F8C - cmp r0, #0 - beq _080926E0 - movs r1, #1 - strb r1, [r6, #0x14] - movs r2, #0x36 - ldrsh r0, [r5, r2] - cmp r0, #0 - bne _080926E0 - strb r1, [r4, #0xf] - movs r0, #1 - b _080926E2 - .align 2, 0 -_080926D8: .4byte gLinkState -_080926DC: .4byte gLinkEntity -_080926E0: - movs r0, #0 -_080926E2: - pop {r4, r5, r6, pc} - - thumb_func_start sub_080926E4 -sub_080926E4: @ 0x080926E4 - push {r4, lr} - adds r4, r0, #0 - ldrb r1, [r4, #0xf] - bl sub_080A2BE4 - ldrb r0, [r4, #0xc] - cmp r0, #1 - bne _08092700 - ldr r1, [r4, #0x50] - ldrh r0, [r4, #0x2e] - strh r0, [r1, #0x2e] - ldr r1, [r4, #0x50] - ldrh r0, [r4, #0x32] - strh r0, [r1, #0x32] -_08092700: - adds r2, r4, #0 - adds r2, #0x76 - ldrh r0, [r2] - subs r0, #1 - strh r0, [r2] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _0809271A - adds r1, r4, #0 - adds r1, #0x78 - adds r0, r4, #0 - bl sub_080A2CC0 -_0809271A: - pop {r4, pc} - - thumb_func_start sub_0809271C -sub_0809271C: @ 0x0809271C - push {lr} - ldr r2, _08092730 @ =gUnk_08122780 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08092730: .4byte gUnk_08122780 - - thumb_func_start sub_08092734 -sub_08092734: @ 0x08092734 - push {lr} - ldr r2, _08092748 @ =gUnk_08122788 - ldrb r1, [r0, #0xa] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08092748: .4byte gUnk_08122788 - - thumb_func_start sub_0809274C -sub_0809274C: @ 0x0809274C - push {r4, r5, r6, lr} - adds r4, r0, #0 - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x19] - movs r5, #0x3f - adds r0, r5, #0 - ands r0, r1 - movs r1, #0x40 - orrs r0, r1 - strb r0, [r4, #0x19] - ldrh r0, [r4, #0x36] - subs r0, #8 - strh r0, [r4, #0x36] - ldrb r0, [r4, #0xb] - cmp r0, #1 - beq _0809277C - cmp r0, #2 - bne _080927A2 - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #0x18] -_0809277C: - ldr r0, _080927A4 @ =0x00004051 - movs r2, #0x2e - ldrsh r1, [r4, r2] - ldr r3, _080927A8 @ =gRoomControls - ldrh r2, [r3, #6] - subs r1, r1, r2 - asrs r1, r1, #4 - ands r1, r5 - movs r6, #0x32 - ldrsh r2, [r4, r6] - ldrh r3, [r3, #8] - subs r2, r2, r3 - asrs r2, r2, #4 - ands r2, r5 - lsls r2, r2, #6 - orrs r1, r2 - movs r2, #1 - bl sub_0800015E -_080927A2: - pop {r4, r5, r6, pc} - .align 2, 0 -_080927A4: .4byte 0x00004051 -_080927A8: .4byte gRoomControls - - thumb_func_start sub_080927AC -sub_080927AC: @ 0x080927AC - push {lr} - adds r1, r0, #0 - movs r0, #1 - strb r0, [r1, #0xc] - ldrb r0, [r1, #0xb] - strb r0, [r1, #0x1e] - ldrb r0, [r1, #0xb] - cmp r0, #0 - beq _080927C4 - cmp r0, #2 - beq _080927CA - b _080927D0 -_080927C4: - adds r1, #0x63 - movs r0, #2 - b _080927CE -_080927CA: - adds r1, #0x63 - movs r0, #0xfe -_080927CE: - strb r0, [r1] -_080927D0: - pop {pc} - .align 2, 0 - - thumb_func_start sub_080927D4 -sub_080927D4: @ 0x080927D4 - push {r4, r5, r6, lr} - mov r6, r8 - push {r6} - adds r4, r0, #0 - movs r0, #1 - strb r0, [r4, #0xc] - ldrh r0, [r4, #0x32] - adds r0, #1 - strh r0, [r4, #0x32] - adds r1, r4, #0 - adds r1, #0x63 - movs r0, #0xff - strb r0, [r1] - ldr r0, _08092848 @ =0x00004051 - mov r8, r0 - movs r2, #0x2e - ldrsh r1, [r4, r2] - ldr r6, _0809284C @ =gRoomControls - ldrh r0, [r6, #6] - subs r1, r1, r0 - asrs r1, r1, #4 - movs r5, #0x3f - ands r1, r5 - movs r2, #0x32 - ldrsh r0, [r4, r2] - ldrh r2, [r6, #8] - subs r0, r0, r2 - asrs r0, r0, #4 - ands r0, r5 - lsls r0, r0, #6 - orrs r1, r0 - subs r1, #1 - mov r0, r8 - movs r2, #1 - bl sub_0800015E - movs r0, #0x2e - ldrsh r1, [r4, r0] - ldrh r0, [r6, #6] - subs r1, r1, r0 - asrs r1, r1, #4 - ands r1, r5 - movs r2, #0x32 - ldrsh r0, [r4, r2] - ldrh r2, [r6, #8] - subs r0, r0, r2 - asrs r0, r0, #4 - ands r0, r5 - lsls r0, r0, #6 - orrs r1, r0 - mov r0, r8 - movs r2, #1 - bl sub_0800015E - pop {r3} - mov r8, r3 - pop {r4, r5, r6, pc} - .align 2, 0 -_08092848: .4byte 0x00004051 -_0809284C: .4byte gRoomControls - - thumb_func_start sub_08092850 -sub_08092850: @ 0x08092850 - push {r4, lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xa] - cmp r0, #0 - bne _08092888 - ldr r3, _08092878 @ =gLinkEntity - movs r0, #0x32 - ldrsh r1, [r3, r0] - movs r4, #0x32 - ldrsh r0, [r2, r4] - cmp r1, r0 - blt _0809286E - adds r0, #0x18 - cmp r1, r0 - ble _0809287C -_0809286E: - ldrb r0, [r2, #0x19] - movs r1, #0x3f - ands r1, r0 - movs r0, #0x40 - b _08092884 - .align 2, 0 -_08092878: .4byte gLinkEntity -_0809287C: - ldrb r0, [r2, #0x19] - movs r1, #0x3f - ands r1, r0 - movs r0, #0x80 -_08092884: - orrs r1, r0 - strb r1, [r2, #0x19] -_08092888: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0809288C -sub_0809288C: @ 0x0809288C - push {lr} - adds r2, r0, #0 - ldrb r1, [r2, #0x10] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _080928B0 - ldr r0, _080928AC @ =gUnk_0812279C - ldrb r1, [r2, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r2, #0 - bl _call_via_r1 - b _080928C0 - .align 2, 0 -_080928AC: .4byte gUnk_0812279C -_080928B0: - ldr r0, _080928C4 @ =gUnk_08122794 - ldrb r1, [r2, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r2, #0 - bl _call_via_r1 -_080928C0: - pop {pc} - .align 2, 0 -_080928C4: .4byte gUnk_08122794 - - thumb_func_start sub_080928C8 -sub_080928C8: @ 0x080928C8 - push {lr} - adds r3, r0, #0 - movs r2, #1 - movs r0, #1 - strb r0, [r3, #0xc] - ldrb r1, [r3, #0x18] - subs r0, #5 - ands r0, r1 - orrs r0, r2 - strb r0, [r3, #0x18] - ldrb r0, [r3, #0xa] - strb r0, [r3, #0x1e] - ldrb r0, [r3, #0x19] - movs r1, #0xc0 - orrs r0, r1 - strb r0, [r3, #0x19] - adds r2, r3, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #6 - orrs r0, r1 - strb r0, [r2] - ldrb r1, [r3, #0x1b] - movs r0, #0x3f - ands r0, r1 - movs r1, #0x80 - orrs r0, r1 - strb r0, [r3, #0x1b] - ldrb r0, [r3, #0xa] - cmp r0, #2 - beq _08092912 - cmp r0, #4 - beq _08092920 - b _08092928 -_08092912: - adds r0, r3, #0 - movs r1, #0x5b - movs r2, #4 - movs r3, #0 - bl CreateObjectWithParent - b _08092928 -_08092920: - ldrb r0, [r2] - movs r1, #7 - orrs r0, r1 - strb r0, [r2] -_08092928: - pop {pc} - .align 2, 0 - - thumb_func_start nullsub_119 -nullsub_119: @ 0x0809292C - bx lr - .align 2, 0 - - thumb_func_start sub_08092930 -sub_08092930: @ 0x08092930 - push {r4, lr} - adds r4, r0, #0 - bl sub_080928C8 - adds r4, #0x82 - movs r0, #0 - strh r0, [r4] - pop {r4, pc} - - thumb_func_start sub_08092940 -sub_08092940: @ 0x08092940 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r4, #0 - adds r5, #0x84 - ldr r1, [r5] - bl sub_0807DF74 - ldr r1, [r5] - adds r0, r4, #0 - bl sub_08092958 - pop {r4, r5, pc} - - thumb_func_start sub_08092958 -sub_08092958: @ 0x08092958 - push {r4, lr} - adds r3, r0, #0 - adds r2, r1, #0 - ldr r0, [r2, #8] - cmp r0, #0 - beq _0809298A - movs r4, #0 -_08092966: - ldr r1, [r2, #8] - mvns r0, r1 - adds r0, #1 - ands r0, r1 - eors r1, r0 - str r1, [r2, #8] - cmp r0, #1 - beq _0809297C - cmp r0, #2 - beq _08092980 - b _08092984 -_0809297C: - strb r4, [r3, #0x1e] - b _08092984 -_08092980: - ldr r0, [r2, #4] - strb r0, [r3, #0x1e] -_08092984: - ldr r0, [r2, #8] - cmp r0, #0 - bne _08092966 -_0809298A: - pop {r4, pc} - - thumb_func_start sub_0809298C -sub_0809298C: @ 0x0809298C - push {lr} - ldr r2, _080929A0 @ =gUnk_081227A4 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_080929A0: .4byte gUnk_081227A4 - - thumb_func_start sub_080929A4 -sub_080929A4: @ 0x080929A4 - push {r4, r5, r6, lr} - adds r5, r0, #0 - ldrb r1, [r5, #0xb] - movs r6, #0xc0 - adds r0, r6, #0 - ands r0, r1 - cmp r0, #0 - beq _08092A08 - adds r4, r5, #0 - adds r4, #0x86 - ldrh r0, [r4] - bl sub_0807CBE4 - cmp r0, #0 - beq _08092A08 - ldrb r0, [r5, #0xb] - adds r1, r6, #0 - ands r1, r0 - cmp r1, #0x40 - beq _080929D2 - cmp r1, #0x80 - beq _08092A04 - b _08092A08 -_080929D2: - ldr r0, _080929F4 @ =gUnk_030010A0 - ldrh r1, [r0, #0xa] - movs r0, #0xc1 - lsls r0, r0, #1 - cmp r1, r0 - beq _080929EE - cmp r1, r0 - blt _080929FC - ldr r0, _080929F8 @ =0x0000044F - cmp r1, r0 - bgt _080929FC - subs r0, #2 - cmp r1, r0 - blt _080929FC -_080929EE: - bl sub_0805E780 - b _08092A08 - .align 2, 0 -_080929F4: .4byte gUnk_030010A0 -_080929F8: .4byte 0x0000044F -_080929FC: - ldrh r0, [r4] - bl sub_0807CD48 - b _08092A08 -_08092A04: - bl sub_0805E780 -_08092A08: - movs r0, #1 - strb r0, [r5, #0xc] - movs r0, #0xc0 - lsls r0, r0, #9 - str r0, [r5, #0x20] - bl Random - movs r1, #7 - ands r0, r1 - lsls r0, r0, #0xa - movs r2, #0x80 - lsls r2, r2, #6 - adds r1, r2, #0 - adds r2, r5, #0 - adds r2, #0x78 - movs r3, #0 - orrs r0, r1 - strh r0, [r2] - ldrb r0, [r5, #0xe] - lsrs r0, r0, #1 - strb r0, [r5, #0xf] - strb r3, [r5, #0xe] - ldrb r1, [r5, #0xb] - movs r0, #0x3f - ands r0, r1 - strb r0, [r5, #0x1e] - movs r4, #0x2e - ldrsh r1, [r5, r4] - ldr r2, _08092A8C @ =gRoomControls - ldrh r0, [r2, #6] - subs r1, r1, r0 - asrs r1, r1, #4 - movs r3, #0x3f - ands r1, r3 - movs r4, #0x32 - ldrsh r0, [r5, r4] - ldrh r2, [r2, #8] - subs r0, r0, r2 - asrs r0, r0, #4 - ands r0, r3 - lsls r0, r0, #6 - orrs r1, r0 - adds r4, r5, #0 - adds r4, #0x7e - strh r1, [r4] - ldrh r0, [r4] - movs r1, #1 - bl sub_080001DA - adds r1, r5, #0 - adds r1, #0x7c - strh r0, [r1] - ldrh r0, [r4] - movs r1, #1 - bl sub_080002E0 - adds r1, r5, #0 - adds r1, #0x7a - strh r0, [r1] - ldr r0, _08092A90 @ =0x00004022 - ldrh r1, [r4] - movs r2, #1 - bl sub_0800015E - pop {r4, r5, r6, pc} - .align 2, 0 -_08092A8C: .4byte gRoomControls -_08092A90: .4byte 0x00004022 - - thumb_func_start sub_08092A94 -sub_08092A94: @ 0x08092A94 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r2, _08092B08 @ =gLinkEntity - ldrb r0, [r2, #0xc] - cmp r0, #6 - bne _08092B04 - ldrb r0, [r2, #0x14] - cmp r0, #0 - bne _08092B04 - movs r1, #0x32 - ldrsh r0, [r4, r1] - adds r0, #0x28 - movs r3, #0x32 - ldrsh r1, [r2, r3] - cmp r0, r1 - blt _08092B04 - movs r0, #0x2e - ldrsh r1, [r4, r0] - movs r3, #0x2e - ldrsh r0, [r2, r3] - subs r1, r1, r0 - ldrb r0, [r4, #0xf] - cmp r1, r0 - bge _08092B04 - cmn r1, r0 - ble _08092B04 - adds r0, r4, #0 - adds r0, #0x7c - ldrh r0, [r0] - adds r5, r4, #0 - adds r5, #0x7e - ldrh r1, [r5] - movs r2, #1 - bl sub_0800015E - adds r0, r4, #0 - adds r0, #0x7a - ldrh r0, [r0] - ldrh r1, [r5] - movs r2, #1 - bl sub_08000148 - movs r0, #2 - strb r0, [r4, #0xc] - ldrh r0, [r4, #0x36] - subs r0, #0x20 - strh r0, [r4, #0x36] - ldrh r0, [r4, #0x32] - adds r0, #0x20 - strh r0, [r4, #0x32] - ldrb r1, [r4, #0x19] - movs r0, #0x3f - ands r0, r1 - movs r1, #0x80 - orrs r0, r1 - strb r0, [r4, #0x19] -_08092B04: - pop {r4, r5, pc} - .align 2, 0 -_08092B08: .4byte gLinkEntity - - thumb_func_start sub_08092B0C -sub_08092B0C: @ 0x08092B0C - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xe] - cmp r0, #1 - bne _08092B50 - movs r0, #0 - movs r1, #3 - strb r1, [r4, #0xc] - strb r0, [r4, #0xe] - ldrb r0, [r4, #0xb] - movs r1, #0xc0 - ands r1, r0 - cmp r1, #0x40 - beq _08092B32 - cmp r1, #0x80 - bne _08092B3C - movs r0, #0x72 - bl sub_08004488 -_08092B32: - adds r0, r4, #0 - adds r0, #0x86 - ldrh r0, [r0] - bl sub_0807CCC8 -_08092B3C: - adds r0, r4, #0 - movs r1, #5 - movs r2, #0 - bl CreateFX - adds r0, r4, #0 - movs r1, #3 - bl sub_0805457C - b _08092B6A -_08092B50: - adds r0, r4, #0 - adds r0, #0x78 - ldrh r1, [r0] - adds r0, r4, #0 - bl sub_080044EC - movs r1, #0x36 - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _08092B6A - ldrb r0, [r4, #0xe] - adds r0, #1 - strb r0, [r4, #0xe] -_08092B6A: - pop {r4, pc} - - thumb_func_start sub_08092B6C -sub_08092B6C: @ 0x08092B6C - push {lr} - bl sub_0805E780 - pop {pc} - - thumb_func_start sub_08092B74 -sub_08092B74: @ 0x08092B74 - push {lr} - ldr r2, _08092B88 @ =gUnk_081227C0 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08092B88: .4byte gUnk_081227C0 - - thumb_func_start sub_08092B8C -sub_08092B8C: @ 0x08092B8C - push {r4, lr} - adds r4, r0, #0 - adds r1, r4, #0 - adds r1, #0x86 - ldrh r0, [r1] - cmp r0, #0 - beq _08092BA6 - bl sub_0807CBE4 - cmp r0, #0 - beq _08092BA6 - bl sub_0805E780 -_08092BA6: - movs r2, #1 - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - subs r0, #5 - ands r0, r1 - orrs r0, r2 - strb r0, [r4, #0x18] - ldrb r0, [r4, #0xe] - adds r1, r4, #0 - adds r1, #0x7d - strb r0, [r1] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r0, [r2] - movs r1, #7 - orrs r0, r1 - strb r0, [r2] - ldr r0, _08092BE8 @ =gUnk_081227EC - str r0, [r4, #0x48] - movs r0, #8 - strb r0, [r4, #0xe] - ldrb r0, [r4, #0xa] - lsls r0, r0, #1 - ldr r1, _08092BEC @ =gUnk_081227B4 - adds r2, r0, r1 - ldrb r1, [r2] - adds r0, r1, #0 - cmp r0, #0xff - bne _08092BF0 - ldrb r0, [r4, #0xb] - strb r0, [r4, #0x1e] - b _08092BF6 - .align 2, 0 -_08092BE8: .4byte gUnk_081227EC -_08092BEC: .4byte gUnk_081227B4 -_08092BF0: - strb r1, [r4, #0x1e] - ldrb r0, [r2, #1] - strb r0, [r4, #0xb] -_08092BF6: - pop {r4, pc} - - thumb_func_start sub_08092BF8 -sub_08092BF8: @ 0x08092BF8 - push {r4, r5, lr} - adds r4, r0, #0 - adds r1, r4, #0 - adds r1, #0x86 - ldrh r0, [r1] - cmp r0, #0 - beq _08092C20 - bl sub_0807CBE4 - cmp r0, #0 - beq _08092C20 - movs r0, #2 - strb r0, [r4, #0xc] - ldr r0, _08092C1C @ =0x00000111 - bl PlaySFX - b _08092C92 - .align 2, 0 -_08092C1C: .4byte 0x00000111 -_08092C20: - adds r0, r4, #0 - bl sub_0800445C - cmp r0, #0 - beq _08092C74 - adds r0, r4, #0 - adds r0, #0x7d - ldrb r0, [r0] - cmp r0, #0 - bne _08092C74 - ldrb r0, [r4, #0xb] - lsls r0, r0, #3 - ldr r1, _08092C68 @ =gUnk_081227CC - adds r5, r0, r1 - ldrh r1, [r5, #4] - ldrh r2, [r5, #6] - adds r0, r4, #0 - bl sub_0806ED9C - cmp r0, #0 - blt _08092C78 - ldr r1, _08092C6C @ =gLinkEntity - ldrh r0, [r5] - ldrb r1, [r1, #0x14] - cmp r0, r1 - bne _08092C78 - ldr r0, _08092C70 @ =gLinkState - adds r0, #0x90 - ldrh r1, [r0] - ldrh r0, [r5, #2] - ands r0, r1 - cmp r0, #0 - beq _08092C78 - ldrb r0, [r4, #0xe] - subs r0, #1 - b _08092C76 - .align 2, 0 -_08092C68: .4byte gUnk_081227CC -_08092C6C: .4byte gLinkEntity -_08092C70: .4byte gLinkState -_08092C74: - movs r0, #8 -_08092C76: - strb r0, [r4, #0xe] -_08092C78: - ldrb r0, [r4, #0xe] - cmp r0, #0 - bne _08092C92 - movs r0, #2 - strb r0, [r4, #0xc] - movs r0, #8 - movs r1, #0 - movs r2, #0 - bl sub_08078AC0 - ldr r0, _08092C94 @ =0x00000111 - bl PlaySFX -_08092C92: - pop {r4, r5, pc} - .align 2, 0 -_08092C94: .4byte 0x00000111 - - thumb_func_start sub_08092C98 -sub_08092C98: @ 0x08092C98 - push {lr} - bl sub_0805E780 - pop {pc} - - thumb_func_start sub_08092CA0 -sub_08092CA0: @ 0x08092CA0 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x45 - ldrb r1, [r0] - movs r0, #0x7f - ands r0, r1 - cmp r0, #0 - beq _08092CC0 - ldr r0, _08092CD4 @ =gUnk_020342F8 - subs r1, #1 - bl sub_0801D5A8 - cmp r0, #0 - bne _08092CC0 - bl sub_0805E780 -_08092CC0: - ldr r0, _08092CD8 @ =gUnk_081227F4 - ldrb r1, [r4, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 - pop {r4, pc} - .align 2, 0 -_08092CD4: .4byte gUnk_020342F8 -_08092CD8: .4byte gUnk_081227F4 - - thumb_func_start sub_08092CDC -sub_08092CDC: @ 0x08092CDC - push {r4, lr} - adds r4, r0, #0 - movs r2, #1 - strb r2, [r4, #0xc] - ldr r0, _08092D48 @ =gUnk_080FD320 - str r0, [r4, #0x48] - ldrb r1, [r4, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r4, #0x10] - adds r0, r4, #0 - adds r0, #0x3f - strb r2, [r0] - adds r1, r4, #0 - adds r1, #0x3c - movs r0, #0x47 - strb r0, [r1] - adds r1, #4 - movs r0, #0x44 - strb r0, [r1] - subs r1, #5 - movs r0, #0x80 - strb r0, [r1] - ldrb r2, [r4, #0x1b] - movs r1, #0x3f - adds r0, r1, #0 - ands r0, r2 - movs r2, #0x40 - orrs r0, r2 - strb r0, [r4, #0x1b] - ldrb r0, [r4, #0x19] - ands r1, r0 - orrs r1, r2 - strb r1, [r4, #0x19] - ldrb r0, [r4, #0xa] - strb r0, [r4, #0x14] - lsls r0, r0, #3 - strb r0, [r4, #0x15] - movs r0, #0xe0 - lsls r0, r0, #3 - strh r0, [r4, #0x24] - ldrb r0, [r4, #0xb] - cmp r0, #1 - bne _08092D50 - ldr r1, _08092D4C @ =0x00000161 - adds r0, r4, #0 - bl sub_0801D2B4 - adds r0, r4, #0 - movs r1, #1 - bl UpdateSprite - b _08092D5C - .align 2, 0 -_08092D48: .4byte gUnk_080FD320 -_08092D4C: .4byte 0x00000161 -_08092D50: - ldr r0, _08092D78 @ =0x0000FFE8 - strh r0, [r4, #0x36] - adds r0, r4, #0 - movs r1, #1 - bl UpdateSprite -_08092D5C: - ldrb r1, [r4, #0x10] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _08092D74 - adds r0, r4, #0 - bl sub_0807DD64 - adds r0, r4, #0 - movs r1, #0 - bl sub_0807DDAC -_08092D74: - pop {r4, pc} - .align 2, 0 -_08092D78: .4byte 0x0000FFE8 - - thumb_func_start sub_08092D7C -sub_08092D7C: @ 0x08092D7C - push {r4, r5, r6, lr} - adds r5, r0, #0 - ldrb r1, [r5, #0x10] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _08092D92 - adds r0, r5, #0 - movs r1, #0 - bl sub_0807DDAC -_08092D92: - ldrb r0, [r5, #0x18] - lsls r0, r0, #0x1e - cmp r0, #0 - beq _08092E84 - adds r0, r5, #0 - bl sub_08004274 - ldr r6, _08092E04 @ =gLinkState - ldr r0, [r6, #0x30] - movs r3, #0x80 - ands r0, r3 - cmp r0, #0 - bne _08092E84 - adds r0, r6, #0 - adds r0, #0x3c - ldrb r0, [r0] - cmp r0, #0 - bne _08092E84 - ldr r4, _08092E08 @ =gLinkEntity - ldrb r2, [r4, #0xc] - cmp r2, #4 - beq _08092DC8 - ldrb r1, [r4, #0x10] - adds r0, r3, #0 - ands r0, r1 - cmp r0, #0 - beq _08092E84 -_08092DC8: - cmp r2, #6 - beq _08092E84 - adds r0, r5, #0 - adds r1, r4, #0 - movs r2, #0xc - movs r3, #0xc - bl sub_0800419C - cmp r0, #0 - beq _08092E84 - ldr r0, [r6, #0x30] - movs r1, #0x80 - lsls r1, r1, #0x11 - ands r0, r1 - cmp r0, #0 - bne _08092E0C - ldrb r0, [r4, #0xc] - cmp r0, #4 - beq _08092E0C - ldrb r0, [r5, #0xb] - cmp r0, #1 - beq _08092E16 - movs r0, #0x36 - ldrsh r1, [r4, r0] - movs r0, #0x10 - rsbs r0, r0, #0 - cmp r1, r0 - bgt _08092E84 - b _08092E16 - .align 2, 0 -_08092E04: .4byte gLinkState -_08092E08: .4byte gLinkEntity -_08092E0C: - ldr r0, _08092E88 @ =gLinkEntity - movs r1, #0x36 - ldrsh r0, [r0, r1] - cmp r0, #0 - beq _08092E84 -_08092E16: - ldr r4, _08092E88 @ =gLinkEntity - adds r0, r5, #0 - adds r1, r4, #0 - bl CopyPosition - adds r0, r5, #0 - bl sub_08004542 - adds r0, r4, #0 - bl sub_08004542 - adds r1, r4, #0 - adds r1, #0x38 - movs r0, #1 - strb r0, [r1] - ldrb r1, [r4, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r4, #0x10] - ldr r1, _08092E8C @ =gLinkState - movs r0, #0x1f - strb r0, [r1, #0xc] - ldrb r2, [r5, #0xb] - adds r0, r1, #0 - adds r0, #0x38 - strb r2, [r0] - adds r1, #0x39 - movs r0, #0xff - strb r0, [r1] - adds r4, #0x29 - ldrb r1, [r4] - lsls r1, r1, #0x1d - lsrs r1, r1, #0x1d - subs r1, #1 - adds r3, r5, #0 - adds r3, #0x29 - movs r0, #7 - ands r1, r0 - ldrb r2, [r3] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - ldrb r0, [r5, #0xc] - adds r0, #1 - strb r0, [r5, #0xc] - bl sub_08077B20 - ldr r0, _08092E90 @ =0x00000153 - bl PlaySFX - movs r0, #0x79 - bl PlaySFX -_08092E84: - pop {r4, r5, r6, pc} - .align 2, 0 -_08092E88: .4byte gLinkEntity -_08092E8C: .4byte gLinkState -_08092E90: .4byte 0x00000153 - - thumb_func_start sub_08092E94 -sub_08092E94: @ 0x08092E94 - push {r4, lr} - adds r4, r0, #0 - bl sub_080042B8 - ldr r1, _08092ED0 @ =gLinkEntity - adds r0, r4, #0 - movs r2, #0xc - movs r3, #0xc - bl sub_0800419C - cmp r0, #0 - bne _08092ECE - adds r0, r4, #0 - bl sub_0800455E - ldrb r2, [r4, #0x1b] - movs r1, #0x3f - adds r0, r1, #0 - ands r0, r2 - movs r2, #0x40 - orrs r0, r2 - strb r0, [r4, #0x1b] - ldrb r0, [r4, #0x19] - ands r1, r0 - orrs r1, r2 - strb r1, [r4, #0x19] - ldrb r0, [r4, #0xc] - subs r0, #1 - strb r0, [r4, #0xc] -_08092ECE: - pop {r4, pc} - .align 2, 0 -_08092ED0: .4byte gLinkEntity - - thumb_func_start sub_08092ED4 -sub_08092ED4: @ 0x08092ED4 - push {lr} - ldr r2, _08092EE8 @ =gUnk_0812283C - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08092EE8: .4byte gUnk_0812283C - - thumb_func_start sub_08092EEC -sub_08092EEC: @ 0x08092EEC - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xa] - bl sub_080932D8 - cmp r0, #1 - beq _08092F2C - cmp r0, #2 - beq _08092F3A - movs r0, #1 - strb r0, [r4, #0xc] - movs r1, #0 - movs r2, #0x80 - strh r2, [r4, #0x24] - strb r0, [r4, #0x16] - strb r1, [r4, #0xe] - strb r1, [r4, #0xf] - adds r1, r4, #0 - adds r1, #0x7a - movs r0, #0x20 - strb r0, [r1] - adds r0, r4, #0 - adds r0, #0x7b - strb r2, [r0] - ldrb r0, [r4, #0xa] - cmp r0, #0 - bne _08092F48 - ldr r0, _08092F28 @ =gUnk_080FD288 - str r0, [r4, #0x48] - b _08092F48 - .align 2, 0 -_08092F28: .4byte gUnk_080FD288 -_08092F2C: - movs r0, #4 - strb r0, [r4, #0xc] - ldrh r0, [r4, #0x2e] - subs r0, #0x20 - strh r0, [r4, #0x2e] - movs r5, #2 - b _08092F5E -_08092F3A: - movs r0, #4 - strb r0, [r4, #0xc] - ldrh r0, [r4, #0x2e] - adds r0, #0x20 - strh r0, [r4, #0x2e] - movs r5, #3 - b _08092F5E -_08092F48: - movs r5, #0 - adds r1, r4, #0 - adds r1, #0x86 - ldrh r0, [r1] - cmp r0, #0 - beq _08092F5E - bl sub_0807CBE4 - cmp r0, #0 - bne _08092F5E - movs r5, #1 -_08092F5E: - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_080931A4 - pop {r4, r5, pc} - - thumb_func_start sub_08092F68 -sub_08092F68: @ 0x08092F68 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r6, r0, #0 - ldr r0, _08092FA4 @ =gLinkEntity - movs r2, #0x2e - ldrsh r1, [r0, r2] - movs r2, #0x2e - ldrsh r0, [r6, r2] - subs r1, r1, r0 - mov r8, r1 - adds r1, r6, #0 - adds r1, #0x86 - ldrh r0, [r1] - cmp r0, #0 - beq _08092FA8 - bl sub_0807CBE4 - cmp r0, #0 - bne _08092F92 - b _080930E6 -_08092F92: - adds r0, r6, #0 - adds r0, #0x7a - ldrb r0, [r0] - cmp r0, #0 - beq _08092FA8 - adds r0, r6, #0 - bl sub_080932A8 - b _080930E6 - .align 2, 0 -_08092FA4: .4byte gLinkEntity -_08092FA8: - adds r1, r6, #0 - adds r1, #0x7b - ldrb r2, [r1] - movs r0, #0x3f - ands r0, r2 - adds r7, r1, #0 - cmp r0, #0 - bne _08092FD6 - movs r0, #0xf - movs r4, #0 - orrs r0, r2 - strb r0, [r7] - adds r0, r6, #0 - movs r1, #0 - bl sub_080931A4 - mov r0, r8 - cmp r0, #0 - bge _08092FD6 - ldrb r0, [r7] - movs r1, #0x40 - orrs r0, r1 - strb r0, [r7] -_08092FD6: - ldrb r1, [r7] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - beq _08092FEA - adds r5, r6, #0 - adds r5, #0x78 - ldrh r0, [r5] - subs r0, #1 - b _08092FF2 -_08092FEA: - adds r5, r6, #0 - adds r5, #0x78 - ldrh r0, [r5] - adds r0, #1 -_08092FF2: - adds r4, r6, #0 - adds r4, #0x38 - ldrb r1, [r4] - bl sub_080002B0 - adds r1, r0, #0 - ldr r0, _08093034 @ =0x00004031 - cmp r1, r0 - bhi _08093040 - subs r0, #1 - cmp r1, r0 - blo _08093040 - movs r0, #3 - strb r0, [r6, #0xc] - ldr r0, _08093038 @ =gLinkEntity - ldrb r0, [r0, #0x14] - lsls r0, r0, #2 - strb r0, [r6, #0x15] - movs r0, #0x80 - strh r0, [r6, #0x24] - movs r0, #0x40 - strb r0, [r6, #0xe] - adds r0, r6, #0 - movs r1, #0x50 - bl sub_0805E4E0 - ldr r0, _0809303C @ =0x0000010F - bl sub_08004488 - adds r0, r6, #0 - bl sub_08093248 - b _080930E6 - .align 2, 0 -_08093034: .4byte 0x00004031 -_08093038: .4byte gLinkEntity -_0809303C: .4byte 0x0000010F -_08093040: - ldr r0, _0809307C @ =gLinkEntity - ldrb r1, [r0, #0x14] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _080930E6 - adds r0, r6, #0 - bl sub_08078930 - adds r3, r7, #0 - ldrb r2, [r3] - movs r0, #0x80 - ands r0, r2 - cmp r0, #0 - beq _08093088 - movs r1, #0x7f - ands r1, r2 - strb r1, [r3] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - beq _0809309C - ldr r0, _08093080 @ =0x0000402C - ldrh r1, [r5] - subs r1, #1 - ldrb r2, [r4] - bl sub_0800015E - ldr r0, _08093084 @ =0x0000403D - b _080930AA - .align 2, 0 -_0809307C: .4byte gLinkEntity -_08093080: .4byte 0x0000402C -_08093084: .4byte 0x0000403D -_08093088: - movs r0, #0x40 - ands r0, r2 - cmp r0, #0 - beq _080930C0 - mov r1, r8 - cmp r1, #4 - ble _080930E6 - movs r0, #0x3f - ands r0, r2 - strb r0, [r3] -_0809309C: - ldr r0, _080930B8 @ =0x0000403D - ldrh r1, [r5] - subs r1, #1 - ldrb r2, [r4] - bl sub_0800015E - ldr r0, _080930BC @ =0x0000402D -_080930AA: - ldrh r1, [r5] - adds r1, #1 - ldrb r2, [r4] - bl sub_0800015E - b _080930E6 - .align 2, 0 -_080930B8: .4byte 0x0000403D -_080930BC: .4byte 0x0000402D -_080930C0: - mov r1, r8 - rsbs r0, r1, #0 - cmp r0, #4 - ble _080930E6 - movs r0, #0x40 - orrs r0, r2 - strb r0, [r7] - ldr r0, _080930EC @ =0x0000402C - ldrh r1, [r5] - subs r1, #1 - ldrb r2, [r4] - bl sub_0800015E - ldr r0, _080930F0 @ =0x0000403D - ldrh r1, [r5] - adds r1, #1 - ldrb r2, [r4] - bl sub_0800015E -_080930E6: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_080930EC: .4byte 0x0000402C -_080930F0: .4byte 0x0000403D - - thumb_func_start sub_080930F4 -sub_080930F4: @ 0x080930F4 - push {r4, r5, r6, lr} - adds r4, r0, #0 - ldrb r3, [r4, #0xe] - cmp r3, #0 - beq _08093104 - bl sub_08093280 - b _08093174 -_08093104: - ldr r5, _0809315C @ =gLinkState - ldrb r0, [r5, #5] - cmp r0, #0x12 - bne _08093168 - ldr r6, _08093160 @ =gLinkEntity - adds r0, r6, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _08093174 - ldrb r0, [r4, #0xf] - adds r0, #1 - strb r0, [r4, #0xf] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #8 - bls _08093174 - movs r0, #0x10 - strb r0, [r5, #0xc] - adds r0, r5, #0 - adds r0, #0x38 - movs r2, #0x40 - strb r2, [r0] - ldr r0, [r5, #0x30] - movs r1, #1 - orrs r0, r1 - str r0, [r5, #0x30] - strh r3, [r6, #0x2c] - strh r3, [r6, #0x30] - ldrb r0, [r6, #0x14] - movs r1, #4 - eors r0, r1 - lsls r0, r0, #2 - strb r0, [r4, #0x15] - strb r2, [r4, #0xe] - ldr r0, _08093164 @ =0x0000010F - bl sub_08004488 - adds r0, r4, #0 - bl sub_08093248 - b _08093174 - .align 2, 0 -_0809315C: .4byte gLinkState -_08093160: .4byte gLinkEntity -_08093164: .4byte 0x0000010F -_08093168: - ldrb r0, [r4, #0xd] - cmp r0, #6 - bne _08093174 - movs r0, #1 - strb r0, [r4, #0xc] - strb r3, [r4, #0xf] -_08093174: - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_08093178 -sub_08093178: @ 0x08093178 - push {r4, lr} - adds r4, r0, #0 - bl sub_0800445C - adds r0, r4, #0 - bl sub_0806F69C - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08093198 - adds r0, r4, #0 - bl sub_08093334 -_08093198: - adds r0, r4, #0 - bl sub_08093364 - pop {r4, pc} - - thumb_func_start nullsub_120 -nullsub_120: @ 0x080931A0 - bx lr - .align 2, 0 - - thumb_func_start sub_080931A4 -sub_080931A4: @ 0x080931A4 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r5, r1, #0 - movs r1, #0x2e - ldrsh r2, [r0, r1] - ldr r3, _080931F0 @ =gRoomControls - ldrh r1, [r3, #6] - subs r2, r2, r1 - asrs r2, r2, #4 - movs r4, #0x3f - ands r2, r4 - movs r6, #0x32 - ldrsh r1, [r0, r6] - ldrh r3, [r3, #8] - subs r1, r1, r3 - asrs r1, r1, #4 - ands r1, r4 - lsls r1, r1, #6 - orrs r2, r1 - adds r1, r0, #0 - adds r1, #0x78 - strh r2, [r1] - ldrh r1, [r1] - subs r1, #0x40 - mov r8, r1 - adds r0, #0x38 - ldrb r7, [r0] - cmp r5, #1 - beq _080931F4 - cmp r5, #1 - blo _0809320C - cmp r5, #2 - beq _080931FC - cmp r5, #3 - beq _08093204 - b _0809320C - .align 2, 0 -_080931F0: .4byte gRoomControls -_080931F4: - ldr r0, _080931F8 @ =gUnk_08122862 - b _0809320E - .align 2, 0 -_080931F8: .4byte gUnk_08122862 -_080931FC: - ldr r0, _08093200 @ =gUnk_08122874 - b _0809320E - .align 2, 0 -_08093200: .4byte gUnk_08122874 -_08093204: - ldr r0, _08093208 @ =gUnk_08122886 - b _0809320E - .align 2, 0 -_08093208: .4byte gUnk_08122886 -_0809320C: - ldr r0, _08093230 @ =gUnk_08122850 -_0809320E: - movs r4, #0 - movs r6, #0 - adds r5, r0, #0 -_08093214: - mov r0, r8 - adds r1, r0, r6 - adds r1, r1, r4 - subs r1, #1 - ldrh r0, [r5] - adds r2, r7, #0 - bl sub_0800015E - cmp r4, #2 - beq _08093234 - cmp r4, #5 - beq _08093238 - b _0809323A - .align 2, 0 -_08093230: .4byte gUnk_08122850 -_08093234: - movs r6, #0x3d - b _0809323A -_08093238: - movs r6, #0x7a -_0809323A: - adds r5, #2 - adds r4, #1 - cmp r4, #8 - bls _08093214 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_08093248 -sub_08093248: @ 0x08093248 - push {r4, r5, r6, r7, lr} - adds r1, r0, #0 - adds r1, #0x78 - ldrh r1, [r1] - adds r7, r1, #0 - subs r7, #0x40 - adds r0, #0x38 - ldrb r6, [r0] - movs r4, #0 - movs r5, #0 -_0809325C: - adds r0, r7, r5 - adds r0, r0, r4 - subs r0, #1 - adds r1, r6, #0 - bl sub_0807BA8C - cmp r4, #2 - beq _08093272 - cmp r4, #5 - beq _08093276 - b _08093278 -_08093272: - movs r5, #0x3d - b _08093278 -_08093276: - movs r5, #0x7a -_08093278: - adds r4, #1 - cmp r4, #8 - bls _0809325C - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_08093280 -sub_08093280: @ 0x08093280 - push {r4, lr} - adds r4, r0, #0 - bl sub_0800445C - adds r0, r4, #0 - bl sub_0806F69C - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080932A0 - adds r0, r4, #0 - bl sub_08093334 -_080932A0: - adds r0, r4, #0 - bl sub_08093364 - pop {r4, pc} - - thumb_func_start sub_080932A8 -sub_080932A8: @ 0x080932A8 - push {lr} - adds r1, r0, #0 - adds r2, r1, #0 - adds r2, #0x7a - ldrb r0, [r2] - subs r0, #1 - strb r0, [r2] - movs r2, #3 - ands r2, r0 - cmp r2, #1 - beq _080932C8 - cmp r2, #3 - beq _080932D0 - adds r1, #0x62 - movs r0, #0 - b _080932D4 -_080932C8: - adds r0, r1, #0 - adds r0, #0x62 - strb r2, [r0] - b _080932D6 -_080932D0: - adds r1, #0x62 - movs r0, #0xff -_080932D4: - strb r0, [r1] -_080932D6: - pop {pc} - - thumb_func_start sub_080932D8 -sub_080932D8: @ 0x080932D8 - push {r4, lr} - lsls r0, r0, #3 - ldr r1, _080932F0 @ =gUnk_08122898 - adds r4, r0, r1 - ldr r0, [r4] - ldrh r1, [r4, #4] - bl GetProgressFlagWithOffset - cmp r0, #0 - beq _080932F4 - movs r0, #1 - b _08093306 - .align 2, 0 -_080932F0: .4byte gUnk_08122898 -_080932F4: - ldr r0, [r4] - ldrh r1, [r4, #6] - bl GetProgressFlagWithOffset - cmp r0, #0 - bne _08093304 - movs r0, #0 - b _08093306 -_08093304: - movs r0, #2 -_08093306: - pop {r4, pc} - - thumb_func_start sub_08093308 -sub_08093308: @ 0x08093308 - push {lr} - adds r2, r1, #0 - lsls r0, r0, #3 - ldr r1, _08093320 @ =gUnk_08122898 - adds r1, r0, r1 - cmp r2, #1 - bne _08093324 - ldr r0, [r1] - ldrh r1, [r1, #4] - bl sub_0807CC9C - b _08093330 - .align 2, 0 -_08093320: .4byte gUnk_08122898 -_08093324: - cmp r2, #2 - bne _08093330 - ldr r0, [r1] - ldrh r1, [r1, #6] - bl sub_0807CC9C -_08093330: - pop {pc} - .align 2, 0 - - thumb_func_start sub_08093334 -sub_08093334: @ 0x08093334 - push {r4, r5, lr} - adds r4, r0, #0 - movs r0, #4 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x15] - movs r0, #0x10 - ands r0, r1 - movs r5, #2 - cmp r0, #0 - beq _0809334A - movs r5, #1 -_0809334A: - adds r1, r5, #1 - adds r0, r4, #0 - bl sub_080931A4 - ldrb r0, [r4, #0xa] - adds r1, r5, #0 - bl sub_08093308 - movs r0, #0x72 - bl sub_08004488 - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_08093364 -sub_08093364: @ 0x08093364 - push {r4, r5, lr} - adds r5, r0, #0 - ldrb r1, [r5, #0xe] - movs r0, #3 - ands r0, r1 - cmp r0, #0 - bne _080933BC - movs r0, #0xf - movs r1, #0x11 - movs r2, #0 - bl CreateObject - adds r4, r0, #0 - cmp r4, #0 - beq _080933BC - str r5, [r4, #0x50] - adds r0, r5, #0 - adds r1, r4, #0 - bl CopyPosition - ldrb r1, [r5, #0x15] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _0809339C - ldrh r0, [r4, #0x2e] - adds r0, #0x12 - b _080933A0 -_0809339C: - ldrh r0, [r4, #0x2e] - subs r0, #0x12 -_080933A0: - strh r0, [r4, #0x2e] - movs r0, #0x32 - ldrsh r2, [r4, r0] - ldrb r1, [r5, #0xe] - movs r0, #8 - ands r0, r1 - cmp r0, #0 - beq _080933B6 - adds r0, r2, #0 - adds r0, #8 - b _080933BA -_080933B6: - adds r0, r2, #0 - subs r0, #8 -_080933BA: - strh r0, [r4, #0x32] -_080933BC: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_080933C0 -sub_080933C0: @ 0x080933C0 - push {lr} - ldr r2, _080933D4 @ =gUnk_081228B0 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_080933D4: .4byte gUnk_081228B0 - - thumb_func_start sub_080933D8 -sub_080933D8: @ 0x080933D8 - push {r4, lr} - adds r4, r0, #0 - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r0, [r4, #0xa] - strb r0, [r4, #0x1e] - adds r0, r4, #0 - bl UpdateSpriteOrderAndFlip - ldr r0, _080933F8 @ =gUnk_081228A8 - str r0, [r4, #0x48] - adds r0, r4, #0 - bl sub_080787B4 - pop {r4, pc} - .align 2, 0 -_080933F8: .4byte gUnk_081228A8 - - thumb_func_start sub_080933FC -sub_080933FC: @ 0x080933FC - push {lr} - adds r2, r0, #0 - adds r1, r2, #0 - adds r1, #0x39 - movs r0, #0 - ldrsb r0, [r1, r0] - cmp r0, #0 - beq _08093420 - movs r0, #0 - strb r0, [r1] - ldr r1, _08093424 @ =gUnk_081228B8 - ldrb r0, [r2, #0xa] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r0, [r0] - adds r1, r2, #0 - bl TextboxNoOverlap -_08093420: - pop {pc} - .align 2, 0 -_08093424: .4byte gUnk_081228B8 - - thumb_func_start sub_08093428 -sub_08093428: @ 0x08093428 - push {r4, lr} - adds r4, r0, #0 - ldr r0, _0809345C @ =gLinkState - ldr r0, [r0, #0x30] - movs r1, #0x80 - lsls r1, r1, #0x11 - ands r0, r1 - cmp r0, #0 - bne _0809344A - ldrb r0, [r4, #0xa] - cmp r0, #0 - bne _08093446 - ldr r1, _08093460 @ =gRoomControls - ldr r0, _08093464 @ =gLinkEntity - str r0, [r1, #0x30] -_08093446: - bl sub_0805E780 -_0809344A: - ldr r0, _08093468 @ =gUnk_081228C8 - ldrb r1, [r4, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 - pop {r4, pc} - .align 2, 0 -_0809345C: .4byte gLinkState -_08093460: .4byte gRoomControls -_08093464: .4byte gLinkEntity -_08093468: .4byte gUnk_081228C8 - - thumb_func_start sub_0809346C -sub_0809346C: @ 0x0809346C - push {r4, lr} - adds r4, r0, #0 - movs r0, #1 - strb r0, [r4, #0xc] - movs r0, #0xff - strb r0, [r4, #0x1f] - ldr r0, _080934C0 @ =gLinkEntity - ldrb r1, [r0, #0x1a] - lsls r1, r1, #0x1c - lsrs r1, r1, #0x1c - ldrb r2, [r4, #0x1a] - movs r0, #0x10 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #0x1a] - ldrb r0, [r4, #0xa] - cmp r0, #0 - bne _080934B8 - ldr r0, _080934C4 @ =gRoomControls - str r4, [r0, #0x30] - ldrb r0, [r4, #0x19] - movs r1, #3 - orrs r0, r1 - strb r0, [r4, #0x19] - adds r1, r4, #0 - adds r1, #0x6e - movs r0, #0xc0 - lsls r0, r0, #1 - strh r0, [r1] - adds r1, #4 - strh r0, [r1] - adds r0, r4, #0 - movs r1, #0x61 - movs r2, #1 - movs r3, #0 - bl CreateObjectWithParent -_080934B8: - adds r0, r4, #0 - bl sub_080934C8 - pop {r4, pc} - .align 2, 0 -_080934C0: .4byte gLinkEntity -_080934C4: .4byte gRoomControls - - thumb_func_start sub_080934C8 -sub_080934C8: @ 0x080934C8 - push {lr} - ldr r2, _080934DC @ =gUnk_081228D0 - ldrb r1, [r0, #0xa] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_080934DC: .4byte gUnk_081228D0 - - thumb_func_start sub_080934E0 -sub_080934E0: @ 0x080934E0 - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - adds r4, r5, #0 - adds r4, #0x6e - ldrh r1, [r4] - movs r2, #0 - ldrsh r0, [r4, r2] - cmp r0, #0 - bge _080934F6 - rsbs r0, r1, #0 - strh r0, [r4] -_080934F6: - ldr r0, _08093518 @ =gLinkEntity - ldrb r0, [r0, #0xd] - cmp r0, #2 - beq _0809351C - cmp r0, #2 - bgt _080935B0 - cmp r0, #1 - bne _080935B0 - adds r1, r5, #0 - adds r1, #0x72 - ldrh r0, [r1] - subs r0, #4 - strh r0, [r1] - adds r6, r4, #0 - adds r7, r1, #0 - b _080935BE - .align 2, 0 -_08093518: .4byte gLinkEntity -_0809351C: - ldrb r2, [r5, #0xf] - adds r0, r2, #0 - cmp r0, #0 - bne _08093560 - adds r0, r5, #0 - adds r0, #0x72 - ldrh r1, [r0] - adds r7, r0, #0 - cmp r1, #0x80 - bls _08093538 - adds r0, r1, #0 - subs r0, #0x20 - strh r0, [r7] - b _08093544 -_08093538: - adds r0, r2, #1 - strb r0, [r5, #0xf] - movs r0, #0x92 - lsls r0, r0, #1 - bl PlaySFX -_08093544: - adds r0, r5, #0 - adds r0, #0x6e - ldrh r2, [r0] - ldr r1, _0809355C @ =0x0000011F - adds r6, r0, #0 - cmp r2, r1 - bhi _080935BE - adds r0, r2, #0 - adds r0, #0x40 - strh r0, [r6] - b _080935BE - .align 2, 0 -_0809355C: .4byte 0x0000011F -_08093560: - cmp r0, #0xff - beq _080935A6 - adds r0, r5, #0 - adds r0, #0x72 - ldrh r1, [r0] - adds r7, r0, #0 - cmp r1, #0xff - bhi _08093576 - adds r0, r1, #0 - adds r0, #0x20 - b _0809357A -_08093576: - movs r0, #0x80 - lsls r0, r0, #1 -_0809357A: - strh r0, [r7] - adds r0, r5, #0 - adds r0, #0x6e - ldrh r1, [r0] - movs r2, #0x80 - lsls r2, r2, #1 - adds r6, r0, #0 - cmp r1, r2 - bls _08093594 - adds r0, r1, #0 - subs r0, #0x20 - strh r0, [r6] - b _08093596 -_08093594: - strh r2, [r6] -_08093596: - ldrh r1, [r6] - movs r0, #0x80 - lsls r0, r0, #1 - cmp r1, r0 - bne _080935BE - movs r0, #0xff - strb r0, [r5, #0xf] - b _080935BE -_080935A6: - adds r0, r5, #0 - bl sub_080936C8 - adds r6, r4, #0 - b _080935BA -_080935B0: - adds r0, r5, #0 - bl sub_080936C8 - adds r6, r5, #0 - adds r6, #0x6e -_080935BA: - adds r7, r5, #0 - adds r7, #0x72 -_080935BE: - ldr r0, _080935E4 @ =gLinkEntity - ldrb r1, [r0, #0x14] - movs r0, #2 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0 - beq _080935E8 - movs r0, #1 - strb r0, [r5, #0x1e] - lsls r0, r1, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #2 - bne _080935EA - ldrh r0, [r6] - rsbs r0, r0, #0 - strh r0, [r6] - b _080935EA - .align 2, 0 -_080935E4: .4byte gLinkEntity -_080935E8: - strb r0, [r5, #0x1e] -_080935EA: - ldrb r0, [r5, #0x1e] - ldrb r1, [r5, #0x1f] - cmp r0, r1 - beq _080935FE - strb r0, [r5, #0x1f] - ldrb r1, [r5, #0x1e] - ldrh r2, [r5, #0x12] - adds r0, r5, #0 - bl sub_080042D0 -_080935FE: - ldr r4, _0809364C @ =gLinkEntity - adds r0, r4, #0 - adds r1, r5, #0 - bl CopyPosition - ldrb r2, [r4, #0x1b] - lsrs r2, r2, #6 - lsls r2, r2, #6 - ldrb r3, [r5, #0x1b] - movs r1, #0x3f - adds r0, r1, #0 - ands r0, r3 - orrs r0, r2 - strb r0, [r5, #0x1b] - ldrb r0, [r4, #0x19] - lsrs r0, r0, #6 - lsls r0, r0, #6 - ldrb r2, [r5, #0x19] - ands r1, r2 - orrs r1, r0 - strb r1, [r5, #0x19] - ldrh r1, [r7] - adds r0, r5, #0 - movs r2, #0xa - movs r3, #2 - bl sub_0806FCF4 - ldrh r1, [r6] - ldrh r2, [r7] - adds r0, r5, #0 - movs r3, #0 - bl sub_0805EC9C - adds r0, r4, #0 - movs r1, #1 - adds r2, r5, #0 - bl sub_0806FEBC - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0809364C: .4byte gLinkEntity - - thumb_func_start sub_08093650 -sub_08093650: @ 0x08093650 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r5, _080936C4 @ =gLinkEntity - ldrb r0, [r5, #0x15] - lsrs r1, r0, #1 - adds r0, r0, r1 - asrs r0, r0, #2 - adds r0, #2 - strb r0, [r4, #0x1e] - ldrb r1, [r4, #0x1f] - cmp r0, r1 - beq _08093674 - strb r0, [r4, #0x1f] - ldrb r1, [r4, #0x1e] - ldrh r2, [r4, #0x12] - adds r0, r4, #0 - bl sub_080042D0 -_08093674: - adds r0, r5, #0 - adds r1, r4, #0 - bl CopyPosition - ldrb r2, [r5, #0x1b] - lsrs r2, r2, #6 - lsls r2, r2, #6 - ldrb r3, [r4, #0x1b] - movs r1, #0x3f - adds r0, r1, #0 - ands r0, r3 - orrs r0, r2 - strb r0, [r4, #0x1b] - ldrb r0, [r5, #0x19] - lsrs r0, r0, #6 - lsls r0, r0, #6 - ldrb r2, [r4, #0x19] - ands r1, r2 - orrs r1, r0 - strb r1, [r4, #0x19] - ldr r0, [r4, #0x50] - adds r0, #0x72 - ldrh r1, [r0] - adds r0, r4, #0 - movs r2, #0x18 - movs r3, #0 - bl sub_0806FCF4 - adds r1, r4, #0 - adds r1, #0x63 - ldrb r0, [r1] - rsbs r0, r0, #0 - strb r0, [r1] - adds r0, r5, #0 - movs r1, #0 - adds r2, r4, #0 - bl sub_0806FEBC - pop {r4, r5, pc} - .align 2, 0 -_080936C4: .4byte gLinkEntity - - thumb_func_start sub_080936C8 -sub_080936C8: @ 0x080936C8 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r0, _08093714 @ =gLinkEntity - ldr r0, [r0, #0x7c] - lsrs r2, r0, #2 - movs r3, #0x9c - lsls r3, r3, #1 - adds r1, r3, #0 - subs r1, r1, r2 - adds r5, r4, #0 - adds r5, #0x76 - strh r1, [r5] - movs r1, #0x3c - bl __divsi3 - movs r1, #8 - subs r1, r1, r0 - adds r0, r4, #0 - adds r0, #0x74 - strh r1, [r0] - ldrb r3, [r4, #0xe] - cmp r3, #0 - bne _0809372C - adds r1, r4, #0 - adds r1, #0x6e - ldrh r2, [r1] - ldrh r0, [r5] - cmp r0, r2 - bhs _08093718 - adds r0, r2, #0 - subs r0, #8 - strh r0, [r1] - adds r1, #4 - ldrh r0, [r1] - adds r0, #8 - strh r0, [r1] - b _0809375C - .align 2, 0 -_08093714: .4byte gLinkEntity -_08093718: - adds r0, r3, #1 - strb r0, [r4, #0xe] - ldrh r0, [r5] - strh r0, [r1] - ldrh r0, [r5] - adds r0, #0x30 - adds r1, r4, #0 - adds r1, #0x72 - strh r0, [r1] - b _0809375C -_0809372C: - ldrh r0, [r5] - adds r0, #0x30 - adds r1, r4, #0 - adds r1, #0x6e - ldrh r2, [r1] - cmp r0, r2 - ble _0809374A - adds r0, r2, #0 - adds r0, #8 - strh r0, [r1] - adds r1, #4 - ldrh r0, [r1] - subs r0, #8 - strh r0, [r1] - b _0809375C -_0809374A: - movs r0, #0 - strb r0, [r4, #0xe] - ldrh r0, [r5] - adds r0, #0x30 - strh r0, [r1] - ldrh r1, [r5] - adds r0, r4, #0 - adds r0, #0x72 - strh r1, [r0] -_0809375C: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_08093760 -sub_08093760: @ 0x08093760 - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xa] - cmp r0, #2 - beq _08093794 - cmp r0, #2 - bgt _08093778 - cmp r0, #0 - beq _08093784 - cmp r0, #1 - beq _0809378C - b _080937BC -_08093778: - cmp r0, #3 - beq _080937AC - cmp r0, #0x41 - bgt _080937BC - cmp r0, #0x40 - blt _080937BC -_08093784: - ldr r0, _08093788 @ =gUnk_081228D8 - b _08093796 - .align 2, 0 -_08093788: .4byte gUnk_081228D8 -_0809378C: - ldr r0, _08093790 @ =gUnk_081228E0 - b _08093796 - .align 2, 0 -_08093790: .4byte gUnk_081228E0 -_08093794: - ldr r0, _080937A8 @ =gUnk_081228E8 -_08093796: - ldrb r1, [r2, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r2, #0 - bl _call_via_r1 - b _080937BC - .align 2, 0 -_080937A8: .4byte gUnk_081228E8 -_080937AC: - ldr r0, _080937C0 @ =gUnk_081228F0 - ldrb r1, [r2, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r2, #0 - bl _call_via_r1 -_080937BC: - pop {pc} - .align 2, 0 -_080937C0: .4byte gUnk_081228F0 - - thumb_func_start sub_080937C4 -sub_080937C4: @ 0x080937C4 - push {r4, r5, r6, lr} - adds r4, r0, #0 - movs r5, #1 - strb r5, [r4, #0xc] - movs r0, #0x2e - ldrsh r1, [r4, r0] - ldr r2, _08093808 @ =gRoomControls - ldrh r0, [r2, #6] - subs r1, r1, r0 - asrs r1, r1, #4 - movs r3, #0x3f - ands r1, r3 - movs r6, #0x32 - ldrsh r0, [r4, r6] - ldrh r2, [r2, #8] - subs r0, r0, r2 - asrs r0, r0, #4 - ands r0, r3 - lsls r0, r0, #6 - orrs r1, r0 - adds r0, r4, #0 - adds r0, #0x76 - strh r1, [r0] - ldrb r0, [r4, #0xa] - cmp r0, #0x41 - beq _0809386A - cmp r0, #0x41 - bgt _0809387A - cmp r0, #0 - beq _0809380C - cmp r0, #0x40 - beq _08093840 - b _0809387A - .align 2, 0 -_08093808: .4byte gRoomControls -_0809380C: - strb r5, [r4, #0x1e] - ldrb r1, [r4, #0x19] - movs r0, #0x3f - ands r0, r1 - movs r1, #0x80 - orrs r0, r1 - strb r0, [r4, #0x19] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #5 - orrs r0, r1 - strb r0, [r2] - adds r0, r4, #0 - adds r0, #0x78 - strh r5, [r0] - adds r1, r4, #0 - adds r1, #0x7a - movs r0, #0x3c - strh r0, [r1] - movs r0, #0x62 - movs r1, #0x40 - b _08093854 -_08093840: - movs r0, #2 - strb r0, [r4, #0x1e] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r0, [r2] - movs r1, #7 - orrs r0, r1 - strb r0, [r2] - movs r0, #0x62 - movs r1, #0x41 -_08093854: - movs r2, #0 - bl CreateObject - adds r1, r0, #0 - cmp r1, #0 - beq _0809387A - str r4, [r1, #0x50] - adds r0, r4, #0 - bl CopyPosition - b _0809387A -_0809386A: - movs r0, #0 - strb r0, [r4, #0x1e] - ldrb r1, [r4, #0x1b] - movs r0, #0x3f - ands r0, r1 - movs r1, #0x40 - orrs r0, r1 - strb r0, [r4, #0x1b] -_0809387A: - adds r0, r4, #0 - bl sub_08093A1C - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_08093884 -sub_08093884: @ 0x08093884 - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xa] - cmp r0, #0 - bne _080938B8 - ldr r0, _080938A8 @ =gLinkEntity - movs r3, #0x32 - ldrsh r1, [r0, r3] - movs r3, #0x32 - ldrsh r0, [r2, r3] - adds r0, #0x20 - cmp r1, r0 - bge _080938AC - ldrb r0, [r2, #0x19] - movs r1, #0x3f - ands r1, r0 - movs r0, #0x40 - b _080938B4 - .align 2, 0 -_080938A8: .4byte gLinkEntity -_080938AC: - ldrb r0, [r2, #0x19] - movs r1, #0x3f - ands r1, r0 - movs r0, #0x80 -_080938B4: - orrs r1, r0 - strb r1, [r2, #0x19] -_080938B8: - adds r0, r2, #0 - bl sub_08093C70 - pop {pc} - - thumb_func_start sub_080938C0 -sub_080938C0: @ 0x080938C0 - push {r4, r5, lr} - movs r1, #1 - strb r1, [r0, #0xc] - ldrb r2, [r0, #0xb] - ands r1, r2 - adds r1, #3 - strb r1, [r0, #0x1e] - adds r3, r0, #0 - adds r3, #0x29 - ldrb r1, [r3] - movs r2, #7 - orrs r1, r2 - strb r1, [r3] - movs r1, #0x2e - ldrsh r2, [r0, r1] - ldr r3, _08093908 @ =gRoomControls - ldrh r1, [r3, #6] - subs r2, r2, r1 - asrs r2, r2, #4 - movs r4, #0x3f - ands r2, r4 - movs r5, #0x32 - ldrsh r1, [r0, r5] - ldrh r3, [r3, #8] - subs r1, r1, r3 - asrs r1, r1, #4 - ands r1, r4 - lsls r1, r1, #6 - orrs r2, r1 - adds r1, r0, #0 - adds r1, #0x76 - strh r2, [r1] - bl sub_08093A1C - pop {r4, r5, pc} - .align 2, 0 -_08093908: .4byte gRoomControls - - thumb_func_start nullsub_524 -nullsub_524: @ 0x0809390C - bx lr - .align 2, 0 - - thumb_func_start sub_08093910 -sub_08093910: @ 0x08093910 - push {r4, r5, r6, lr} - adds r5, r0, #0 - movs r3, #1 - strb r3, [r5, #0xc] - ldrb r1, [r5, #0xb] - adds r0, r3, #0 - ands r0, r1 - adds r0, #5 - strb r0, [r5, #0x1e] - ldrb r0, [r5, #0x19] - movs r1, #0xc0 - orrs r0, r1 - strb r0, [r5, #0x19] - adds r2, r5, #0 - adds r2, #0x29 - ldrb r0, [r2] - movs r1, #7 - orrs r0, r1 - strb r0, [r2] - movs r0, #0x2e - ldrsh r1, [r5, r0] - ldr r2, _0809397C @ =gRoomControls - ldrh r0, [r2, #6] - subs r1, r1, r0 - asrs r1, r1, #4 - movs r4, #0x3f - ands r1, r4 - movs r6, #0x32 - ldrsh r0, [r5, r6] - ldrh r2, [r2, #8] - subs r0, r0, r2 - asrs r0, r0, #4 - ands r0, r4 - lsls r0, r0, #6 - orrs r1, r0 - adds r0, r5, #0 - adds r0, #0x76 - strh r1, [r0] - ldrb r0, [r5, #0xb] - ands r3, r0 - cmp r3, #0 - beq _0809396C - adds r1, r5, #0 - adds r1, #0x62 - movs r0, #8 - strb r0, [r1] -_0809396C: - adds r0, r5, #0 - bl sub_08093984 - adds r0, r5, #0 - movs r1, #0x7b - bl sub_0801D2B4 - pop {r4, r5, r6, pc} - .align 2, 0 -_0809397C: .4byte gRoomControls - - thumb_func_start nullsub_525 -nullsub_525: @ 0x08093980 - bx lr - .align 2, 0 - - thumb_func_start sub_08093984 -sub_08093984: @ 0x08093984 - push {r4, r5, r6, lr} - adds r1, r0, #0 - ldrb r0, [r1, #0xb] - ldr r2, _080939B4 @ =gUnk_0812291E - cmp r0, #0 - beq _08093992 - ldr r2, _080939B8 @ =gUnk_081228F8 -_08093992: - movs r5, #0 - adds r6, r1, #0 - adds r6, #0x76 - adds r4, r2, #0 -_0809399A: - movs r0, #0 - ldrsh r1, [r4, r0] - ldrh r0, [r6] - adds r1, r1, r0 - ldr r0, _080939BC @ =0x00004074 - movs r2, #1 - bl sub_0800015E - adds r4, #2 - adds r5, #1 - cmp r5, #0x12 - bls _0809399A - pop {r4, r5, r6, pc} - .align 2, 0 -_080939B4: .4byte gUnk_0812291E -_080939B8: .4byte gUnk_081228F8 -_080939BC: .4byte 0x00004074 - - thumb_func_start sub_080939C0 -sub_080939C0: @ 0x080939C0 - push {r4, r5, lr} - adds r4, r0, #0 - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0xb] - movs r0, #3 - ands r0, r1 - adds r0, #7 - strb r0, [r4, #0x1e] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r0, [r2] - movs r1, #7 - orrs r0, r1 - strb r0, [r2] - movs r0, #0x2e - ldrsh r1, [r4, r0] - ldr r2, _08093A14 @ =gRoomControls - ldrh r0, [r2, #6] - subs r1, r1, r0 - asrs r1, r1, #4 - movs r3, #0x3f - ands r1, r3 - movs r5, #0x32 - ldrsh r0, [r4, r5] - ldrh r2, [r2, #8] - subs r0, r0, r2 - asrs r0, r0, #4 - ands r0, r3 - lsls r0, r0, #6 - orrs r1, r0 - adds r0, r4, #0 - adds r0, #0x76 - strh r1, [r0] - adds r0, r4, #0 - bl sub_08093A1C - adds r0, r4, #0 - movs r1, #0x7a - bl sub_0801D2B4 - pop {r4, r5, pc} - .align 2, 0 -_08093A14: .4byte gRoomControls - - thumb_func_start nullsub_526 -nullsub_526: @ 0x08093A18 - bx lr - .align 2, 0 - - thumb_func_start sub_08093A1C -sub_08093A1C: @ 0x08093A1C - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r2, r0, #0 - ldrb r1, [r2, #0xa] - cmp r1, #1 - beq _08093B0C - cmp r1, #1 - bgt _08093A34 - cmp r1, #0 - beq _08093A3C - b _08093C64 -_08093A34: - cmp r1, #3 - bne _08093A3A - b _08093C54 -_08093A3A: - b _08093C64 -_08093A3C: - ldr r0, _08093AF0 @ =0x00004024 - adds r7, r2, #0 - adds r7, #0x76 - ldrh r1, [r7] - adds r1, #0x3c - adds r4, r2, #0 - adds r4, #0x38 - ldrb r2, [r4] - bl sub_0800015E - ldr r5, _08093AF4 @ =0x00004022 - ldrh r1, [r7] - adds r1, #0x3d - ldrb r2, [r4] - adds r0, r5, #0 - bl sub_0800015E - ldrh r1, [r7] - adds r1, #0x3e - ldrb r2, [r4] - adds r0, r5, #0 - bl sub_0800015E - ldr r0, _08093AF8 @ =0x00004029 - mov r8, r0 - ldrh r1, [r7] - adds r1, #0x7c - ldrb r2, [r4] - bl sub_0800015E - ldr r6, _08093AFC @ =0x00004026 - ldrh r1, [r7] - adds r1, #0x7d - ldrb r2, [r4] - adds r0, r6, #0 - bl sub_0800015E - ldrh r1, [r7] - adds r1, #0x7e - ldrb r2, [r4] - adds r0, r6, #0 - bl sub_0800015E - adds r5, #0x1b - ldrh r1, [r7] - adds r1, #0x40 - ldrb r2, [r4] - adds r0, r5, #0 - bl sub_0800015E - ldrh r1, [r7] - adds r1, #0x80 - ldrb r2, [r4] - adds r0, r5, #0 - bl sub_0800015E - ldr r0, _08093B00 @ =0x00004027 - ldrh r1, [r7] - adds r1, #0x41 - ldrb r2, [r4] - bl sub_0800015E - ldr r0, _08093B04 @ =0x00004023 - ldrh r1, [r7] - adds r1, #0x42 - ldrb r2, [r4] - bl sub_0800015E - ldr r0, _08093B08 @ =0x0000406D - ldrh r1, [r7] - adds r1, #0x43 - ldrb r2, [r4] - bl sub_0800015E - ldrh r1, [r7] - adds r1, #0x81 - ldrb r2, [r4] - mov r0, r8 - bl sub_0800015E - ldrh r1, [r7] - adds r1, #0x82 - ldrb r2, [r4] - adds r0, r6, #0 - bl sub_0800015E - ldrh r1, [r7] - adds r1, #0x83 - b _08093B94 - .align 2, 0 -_08093AF0: .4byte 0x00004024 -_08093AF4: .4byte 0x00004022 -_08093AF8: .4byte 0x00004029 -_08093AFC: .4byte 0x00004026 -_08093B00: .4byte 0x00004027 -_08093B04: .4byte 0x00004023 -_08093B08: .4byte 0x0000406D -_08093B0C: - ldrb r0, [r2, #0xb] - ands r1, r0 - cmp r1, #0 - beq _08093BB4 - ldr r6, _08093BA0 @ =0x0000406D - movs r0, #0x76 - adds r0, r0, r2 - mov r8, r0 - ldrh r1, [r0] - subs r1, #0x81 - adds r4, r2, #0 - adds r4, #0x38 - ldrb r2, [r4] - adds r0, r6, #0 - bl sub_0800015E - ldr r5, _08093BA4 @ =0x00004022 - mov r2, r8 - ldrh r1, [r2] - subs r1, #0x41 - ldrb r2, [r4] - adds r0, r5, #0 - bl sub_0800015E - ldr r0, _08093BA8 @ =0x00004029 - mov r2, r8 - ldrh r1, [r2] - subs r1, #2 - ldrb r2, [r4] - bl sub_0800015E - ldr r0, _08093BAC @ =0x00004026 - mov r2, r8 - ldrh r1, [r2] - subs r1, #1 - ldrb r2, [r4] - bl sub_0800015E - mov r0, r8 - ldrh r1, [r0] - ldrb r2, [r4] - adds r0, r5, #0 - bl sub_0800015E - mov r2, r8 - ldrh r1, [r2] - adds r1, #1 - ldrb r2, [r4] - adds r0, r6, #0 - bl sub_0800015E - ldr r0, _08093BB0 @ =0x0000406E - mov r2, r8 - ldrh r1, [r2] - adds r1, #0x40 - ldrb r2, [r4] - bl sub_0800015E - mov r0, r8 - ldrh r1, [r0] - adds r1, #0x41 - ldrb r2, [r4] - adds r0, r5, #0 - bl sub_0800015E - mov r2, r8 - ldrh r1, [r2] - adds r1, #0x42 -_08093B94: - ldrb r2, [r4] - adds r0, r6, #0 - bl sub_0800015E - b _08093C64 - .align 2, 0 -_08093BA0: .4byte 0x0000406D -_08093BA4: .4byte 0x00004022 -_08093BA8: .4byte 0x00004029 -_08093BAC: .4byte 0x00004026 -_08093BB0: .4byte 0x0000406E -_08093BB4: - ldr r6, _08093C40 @ =0x0000406C - movs r0, #0x76 - adds r0, r0, r2 - mov r8, r0 - ldrh r1, [r0] - subs r1, #0x7f - adds r4, r2, #0 - adds r4, #0x38 - ldrb r2, [r4] - adds r0, r6, #0 - bl sub_0800015E - ldr r5, _08093C44 @ =0x00004022 - mov r2, r8 - ldrh r1, [r2] - subs r1, #0x3f - ldrb r2, [r4] - adds r0, r5, #0 - bl sub_0800015E - mov r0, r8 - ldrh r1, [r0] - subs r1, #1 - ldrb r2, [r4] - adds r0, r6, #0 - bl sub_0800015E - mov r2, r8 - ldrh r1, [r2] - ldrb r2, [r4] - adds r0, r5, #0 - bl sub_0800015E - ldr r0, _08093C48 @ =0x00004026 - mov r2, r8 - ldrh r1, [r2] - adds r1, #1 - ldrb r2, [r4] - bl sub_0800015E - ldr r0, _08093C4C @ =0x0000402A - mov r2, r8 - ldrh r1, [r2] - adds r1, #2 - ldrb r2, [r4] - bl sub_0800015E - mov r0, r8 - ldrh r1, [r0] - adds r1, #0x3e - ldrb r2, [r4] - adds r0, r6, #0 - bl sub_0800015E - mov r2, r8 - ldrh r1, [r2] - adds r1, #0x3f - ldrb r2, [r4] - adds r0, r5, #0 - bl sub_0800015E - ldr r0, _08093C50 @ =0x0000406F - mov r2, r8 - ldrh r1, [r2] - adds r1, #0x40 - ldrb r2, [r4] - bl sub_0800015E - b _08093C64 - .align 2, 0 -_08093C40: .4byte 0x0000406C -_08093C44: .4byte 0x00004022 -_08093C48: .4byte 0x00004026 -_08093C4C: .4byte 0x0000402A -_08093C50: .4byte 0x0000406F -_08093C54: - ldr r0, _08093C6C @ =0x00004022 - adds r1, r2, #0 - adds r1, #0x76 - ldrh r1, [r1] - adds r2, #0x38 - ldrb r2, [r2] - bl sub_0800015E -_08093C64: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08093C6C: .4byte 0x00004022 - - thumb_func_start sub_08093C70 -sub_08093C70: @ 0x08093C70 - push {r4, r5, r6, lr} - adds r2, r0, #0 - adds r3, r2, #0 - adds r3, #0x78 - ldrh r0, [r3] - cmp r0, #0 - beq _08093CE8 - ldr r0, _08093CE0 @ =gLinkState - ldrb r0, [r0, #5] - cmp r0, #0 - beq _08093D5C - movs r0, #0 - strh r0, [r3] - ldr r4, _08093CE4 @ =0x00004022 - adds r6, r2, #0 - adds r6, #0x76 - ldrh r1, [r6] - adds r1, #0x3f - adds r5, r2, #0 - adds r5, #0x38 - ldrb r2, [r5] - adds r0, r4, #0 - bl sub_0800015E - ldrh r1, [r6] - adds r1, #0x40 - ldrb r2, [r5] - adds r0, r4, #0 - bl sub_0800015E - ldrh r1, [r6] - adds r1, #0x41 - ldrb r2, [r5] - adds r0, r4, #0 - bl sub_0800015E - adds r4, #4 - ldrh r1, [r6] - adds r1, #0x7f - ldrb r2, [r5] - adds r0, r4, #0 - bl sub_0800015E - ldrh r1, [r6] - adds r1, #0x80 - ldrb r2, [r5] - adds r0, r4, #0 - bl sub_0800015E - ldrh r1, [r6] - adds r1, #0x81 - ldrb r2, [r5] - adds r0, r4, #0 - bl sub_0800015E - b _08093D5C - .align 2, 0 -_08093CE0: .4byte gLinkState -_08093CE4: .4byte 0x00004022 -_08093CE8: - ldr r0, _08093D60 @ =gLinkState - ldrb r0, [r0, #5] - cmp r0, #0 - bne _08093D5C - adds r1, r2, #0 - adds r1, #0x7a - ldrh r0, [r1] - subs r0, #1 - strh r0, [r1] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _08093D5C - ldrh r0, [r3] - adds r0, #1 - strh r0, [r3] - movs r0, #0x3c - strh r0, [r1] - ldr r5, _08093D64 @ =0x0000403D - adds r6, r2, #0 - adds r6, #0x76 - ldrh r1, [r6] - adds r1, #0x3f - adds r4, r2, #0 - adds r4, #0x38 - ldrb r2, [r4] - adds r0, r5, #0 - bl sub_0800015E - ldrh r1, [r6] - adds r1, #0x40 - ldrb r2, [r4] - adds r0, r5, #0 - bl sub_0800015E - ldr r0, _08093D68 @ =0x00004027 - ldrh r1, [r6] - adds r1, #0x41 - ldrb r2, [r4] - bl sub_0800015E - ldrh r1, [r6] - adds r1, #0x7f - ldrb r2, [r4] - adds r0, r5, #0 - bl sub_0800015E - ldrh r1, [r6] - adds r1, #0x80 - ldrb r2, [r4] - adds r0, r5, #0 - bl sub_0800015E - ldr r0, _08093D6C @ =0x00004029 - ldrh r1, [r6] - adds r1, #0x81 - ldrb r2, [r4] - bl sub_0800015E -_08093D5C: - pop {r4, r5, r6, pc} - .align 2, 0 -_08093D60: .4byte gLinkState -_08093D64: .4byte 0x0000403D -_08093D68: .4byte 0x00004027 -_08093D6C: .4byte 0x00004029 - - thumb_func_start sub_08093D70 -sub_08093D70: @ 0x08093D70 - push {lr} - ldr r2, _08093D84 @ =gUnk_08122944 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08093D84: .4byte gUnk_08122944 - - thumb_func_start sub_08093D88 -sub_08093D88: @ 0x08093D88 - push {r4, lr} - adds r4, r0, #0 - movs r0, #1 - strb r0, [r4, #0xc] - ldrh r0, [r4, #0x36] - subs r0, #8 - strh r0, [r4, #0x36] - movs r0, #0xa8 - lsls r0, r0, #0xa - str r0, [r4, #0x20] - movs r0, #0x20 - strb r0, [r4, #0xe] - ldrb r0, [r4, #0xa] - cmp r0, #0 - beq _08093DAC - cmp r0, #1 - beq _08093DC4 - b _08093DDE -_08093DAC: - adds r0, r4, #0 - movs r1, #4 - bl sub_0805457C - cmp r0, #0 - bne _08093DBC - movs r0, #2 - strb r0, [r4, #0xc] -_08093DBC: - ldr r1, [r4, #0x54] - ldr r0, [r4, #0x20] - str r0, [r1, #0x20] - b _08093DDE -_08093DC4: - movs r0, #0 - movs r1, #0x5f - movs r2, #0 - bl CreateObject - adds r1, r0, #0 - cmp r1, #0 - beq _08093DDE - movs r0, #5 - strb r0, [r1, #0xe] - adds r0, r4, #0 - bl sub_08093E10 -_08093DDE: - pop {r4, pc} - - thumb_func_start sub_08093DE0 -sub_08093DE0: @ 0x08093DE0 - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xe] - subs r0, #1 - strb r0, [r2, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08093DF4 - movs r0, #2 - strb r0, [r2, #0xc] -_08093DF4: - ldrb r1, [r2, #0xe] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _08093E06 - ldr r1, [r2, #0x54] - ldrh r0, [r1, #0x32] - adds r0, #1 - strh r0, [r1, #0x32] -_08093E06: - pop {pc} - - thumb_func_start sub_08093E08 -sub_08093E08: @ 0x08093E08 - push {lr} - bl sub_0805E7BC - pop {pc} - - thumb_func_start sub_08093E10 -sub_08093E10: @ 0x08093E10 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - bl CopyPosition - str r4, [r5, #0x50] - str r5, [r4, #0x54] - ldr r0, [r4, #0x20] - str r0, [r5, #0x20] - pop {r4, r5, pc} - - thumb_func_start sub_08093E24 -sub_08093E24: @ 0x08093E24 - push {lr} - ldr r2, _08093E38 @ =gUnk_0812295C - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08093E38: .4byte gUnk_0812295C - - thumb_func_start sub_08093E3C -sub_08093E3C: @ 0x08093E3C - push {r4, lr} - adds r4, r0, #0 - movs r2, #1 - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - orrs r0, r2 - strb r0, [r4, #0x18] - adds r0, r4, #0 - adds r0, #0x38 - ldrb r0, [r0] - cmp r0, #0 - bne _08093E6A - adds r0, r4, #0 - bl sub_08016A30 -_08093E6A: - ldrb r1, [r4, #0xa] - adds r0, r4, #0 - bl UpdateSprite - ldrb r0, [r4, #0xa] - lsls r0, r0, #2 - ldr r1, _08093EA8 @ =gUnk_08122950 - adds r2, r0, r1 - ldrh r0, [r2] - cmp r0, #0 - beq _08093E90 - ldrb r1, [r4, #0xb] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - bne _08093E90 - ldrh r0, [r2] - bl sub_08004488 -_08093E90: - ldrb r1, [r4, #0xb] - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - beq _08093EA6 - ldrb r0, [r4, #0x19] - movs r1, #0x3f - ands r1, r0 - movs r0, #0x40 - orrs r1, r0 - strb r1, [r4, #0x19] -_08093EA6: - pop {r4, pc} - .align 2, 0 -_08093EA8: .4byte gUnk_08122950 - - thumb_func_start sub_08093EAC -sub_08093EAC: @ 0x08093EAC - push {lr} - ldr r3, _08093EC8 @ =gUnk_08122964 - ldr r2, _08093ECC @ =gUnk_08122950 - ldrb r1, [r0, #0xa] - lsls r1, r1, #2 - adds r1, r1, r2 - ldrb r1, [r1, #2] - lsrs r1, r1, #4 - lsls r1, r1, #2 - adds r1, r1, r3 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08093EC8: .4byte gUnk_08122964 -_08093ECC: .4byte gUnk_08122950 - - thumb_func_start sub_08093ED0 -sub_08093ED0: @ 0x08093ED0 - push {r4, lr} - adds r4, r0, #0 - bl sub_08004274 - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08093EEC - adds r0, r4, #0 - bl sub_0805E7BC -_08093EEC: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08093EF0 -sub_08093EF0: @ 0x08093EF0 - push {r4, r5, r6, lr} - adds r5, r0, #0 - ldrb r4, [r5, #0xa] - cmp r4, #1 - beq _08093F40 - cmp r4, #1 - bgt _08093F04 - cmp r4, #0 - beq _08093F0A - b _08093FB0 -_08093F04: - cmp r4, #2 - beq _08093F98 - b _08093FB0 -_08093F0A: - ldrb r0, [r5, #0xd] - cmp r0, #0 - bne _08093FB0 - adds r0, r5, #0 - bl sub_08004274 - adds r0, r5, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08093FB0 - movs r0, #0x64 - movs r1, #1 - movs r2, #0 - bl CreateObject - adds r1, r0, #0 - cmp r1, #0 - beq _08093F8E - ldr r0, [r5, #0x50] - str r0, [r1, #0x50] - adds r0, r5, #0 - bl CopyPosition - b _08093F8E -_08093F40: - adds r0, r5, #0 - bl sub_08004274 - adds r1, r5, #0 - adds r1, #0x5a - ldrb r0, [r1] - ands r4, r0 - adds r6, r1, #0 - cmp r4, #0 - beq _08093F72 - movs r0, #0 - strb r0, [r6] - movs r0, #0x64 - movs r1, #2 - movs r2, #0 - bl CreateObject - adds r1, r0, #0 - cmp r1, #0 - beq _08093F72 - ldr r0, [r5, #0x50] - str r0, [r1, #0x50] - adds r0, r5, #0 - bl CopyPosition -_08093F72: - ldrb r1, [r6] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08093FB0 - ldr r1, [r5, #0x50] - ldr r0, _08093F94 @ =gLinkEntity - cmp r1, r0 - bne _08093F8E - movs r0, #0x7a - bl PlaySFX - bl sub_08079D84 -_08093F8E: - bl sub_0805E780 - b _08093FB0 - .align 2, 0 -_08093F94: .4byte gLinkEntity -_08093F98: - adds r0, r5, #0 - bl sub_08004274 - adds r0, r5, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08093FB0 - bl sub_0805E780 -_08093FB0: - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_08093FB4 -sub_08093FB4: @ 0x08093FB4 - push {lr} - ldr r2, _08093FC8 @ =gUnk_081229B4 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08093FC8: .4byte gUnk_081229B4 - - thumb_func_start sub_08093FCC -sub_08093FCC: @ 0x08093FCC - push {lr} - movs r1, #1 - strb r1, [r0, #0xc] - adds r2, r0, #0 - adds r2, #0x38 - movs r1, #2 - strb r1, [r2] - bl UpdateSpriteOrderAndFlip - pop {pc} - - thumb_func_start sub_08093FE0 -sub_08093FE0: @ 0x08093FE0 - push {r4, lr} - adds r4, r0, #0 - bl sub_08094064 - cmp r0, #0 - beq _08094062 - adds r3, r4, #0 - adds r3, #0x38 - ldrb r0, [r3] - cmp r0, #2 - bne _08094024 - ldr r0, _08094020 @ =gLinkEntity - ldrb r0, [r0, #0xc] - cmp r0, #0x1e - bgt _08094002 - cmp r0, #0x1d - bge _08094062 -_08094002: - movs r0, #1 - strb r0, [r3] - adds r0, r4, #0 - bl UpdateSpriteOrderAndFlip - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #5 - orrs r0, r1 - b _08094060 - .align 2, 0 -_08094020: .4byte gLinkEntity -_08094024: - ldr r0, _0809404C @ =gLinkEntity - ldrb r2, [r0, #0xc] - cmp r2, #0x1e - bgt _08094050 - cmp r2, #0x1d - blt _08094050 - movs r0, #2 - strb r0, [r3] - adds r0, r4, #0 - bl UpdateSpriteOrderAndFlip - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - b _08094060 - .align 2, 0 -_0809404C: .4byte gLinkEntity -_08094050: - adds r2, r0, #0 - adds r2, #0x38 - ldrb r1, [r2] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _08094062 - movs r0, #1 -_08094060: - strb r0, [r2] -_08094062: - pop {r4, pc} - - thumb_func_start sub_08094064 -sub_08094064: @ 0x08094064 - push {lr} - movs r2, #1 - ldr r1, _08094080 @ =gLinkEntity - movs r3, #0x2e - ldrsh r1, [r1, r3] - movs r3, #0x2e - ldrsh r0, [r0, r3] - subs r1, r1, r0 - adds r1, #0x1c - cmp r1, #0x38 - bls _0809407C - movs r2, #0 -_0809407C: - adds r0, r2, #0 - pop {pc} - .align 2, 0 -_08094080: .4byte gLinkEntity - - thumb_func_start sub_08094084 -sub_08094084: @ 0x08094084 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r5, [r4, #0x50] - movs r1, #0x36 - ldrsh r0, [r5, r1] - cmp r0, #0 - beq _0809412A - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _080940CA - movs r2, #1 - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - subs r0, #5 - ands r0, r1 - orrs r0, r2 - strb r0, [r4, #0x18] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #6 - orrs r0, r1 - strb r0, [r2] - adds r1, r4, #0 - adds r1, #0x63 - movs r0, #5 - strb r0, [r1] - adds r0, r4, #0 - movs r1, #1 - bl UpdateSprite -_080940CA: - ldrh r0, [r5, #0x2e] - strh r0, [r4, #0x2e] - ldrh r0, [r5, #0x32] - strh r0, [r4, #0x32] - ldrb r2, [r5, #0x1b] - lsrs r2, r2, #6 - lsls r2, r2, #6 - ldrb r3, [r4, #0x1b] - movs r1, #0x3f - adds r0, r1, #0 - ands r0, r3 - orrs r0, r2 - strb r0, [r4, #0x1b] - ldrb r0, [r5, #0x19] - lsrs r0, r0, #6 - lsls r0, r0, #6 - ldrb r2, [r4, #0x19] - ands r1, r2 - orrs r1, r0 - strb r1, [r4, #0x19] - movs r0, #0x36 - ldrsh r1, [r5, r0] - movs r0, #0x40 - rsbs r0, r0, #0 - cmp r1, r0 - ble _08094108 - movs r3, #0x80 - lsls r3, r3, #1 - movs r2, #0x80 - lsls r2, r2, #2 - b _0809411E -_08094108: - movs r1, #0x36 - ldrsh r0, [r5, r1] - adds r0, #0x40 - lsls r2, r0, #1 - movs r1, #0x80 - lsls r1, r1, #1 - subs r3, r1, r2 - lsls r0, r0, #2 - movs r1, #0x80 - lsls r1, r1, #2 - subs r2, r1, r0 -_0809411E: - adds r0, r4, #0 - adds r1, r3, #0 - movs r3, #0 - bl sub_0805EC9C - b _0809412E -_0809412A: - bl sub_0805E780 -_0809412E: - pop {r4, r5, pc} - - thumb_func_start sub_08094130 -sub_08094130: @ 0x08094130 - push {lr} - ldr r2, _08094144 @ =gUnk_081229BC - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08094144: .4byte gUnk_081229BC - - thumb_func_start sub_08094148 -sub_08094148: @ 0x08094148 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xa] - cmp r0, #1 - bne _08094154 - b _08094254 -_08094154: - cmp r0, #1 - bgt _0809415E - cmp r0, #0 - beq _080941A8 - b _0809438A -_0809415E: - cmp r0, #2 - beq _08094164 - b _0809438A -_08094164: - ldrb r0, [r4, #0xd] - cmp r0, #0 - bne _08094180 - movs r0, #1 - strb r0, [r4, #0xd] - movs r0, #0xb4 - lsls r0, r0, #1 - str r0, [r4, #0x78] - ldr r0, _0809417C @ =gRoomControls - str r4, [r0, #0x30] - b _08094198 - .align 2, 0 -_0809417C: .4byte gRoomControls -_08094180: - ldr r0, [r4, #0x78] - subs r0, #1 - str r0, [r4, #0x78] - movs r1, #1 - rsbs r1, r1, #0 - cmp r0, r1 - bne _08094198 - ldr r1, _080941A0 @ =gRoomControls - ldr r0, _080941A4 @ =gLinkEntity - str r0, [r1, #0x30] - bl sub_0805E780 -_08094198: - bl sub_08078B48 - b _08094394 - .align 2, 0 -_080941A0: .4byte gRoomControls -_080941A4: .4byte gLinkEntity -_080941A8: - ldr r1, _08094228 @ =gUnk_081229D0 - ldrb r0, [r4, #0xb] - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r0, [r0, #1] - strb r0, [r4, #0x15] - ldrb r0, [r4, #0xb] - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r0, [r0, #2] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - ldrh r2, [r4, #0x2e] - adds r0, r0, r2 - strh r0, [r4, #0x2e] - ldrb r0, [r4, #0xb] - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r0, [r0, #3] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - ldrh r2, [r4, #0x32] - adds r0, r0, r2 - strh r0, [r4, #0x32] - ldrb r0, [r4, #0xb] - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r2, [r0] - movs r0, #0x40 - ands r0, r2 - cmp r0, #0 - beq _080941F0 - ldrb r0, [r4, #0x18] - movs r1, #0x40 - orrs r0, r1 - strb r0, [r4, #0x18] -_080941F0: - movs r0, #0x80 - ands r0, r2 - cmp r0, #0 - beq _08094200 - ldrb r0, [r4, #0x18] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r4, #0x18] -_08094200: - ldrb r0, [r4, #0xb] - cmp r0, #3 - bhi _08094230 - bl Random - ldr r1, _0809422C @ =0x0001FFFF - ands r1, r0 - movs r0, #0xa0 - lsls r0, r0, #0xa - orrs r0, r1 - str r0, [r4, #0x20] - movs r0, #0x80 - lsls r0, r0, #1 - strh r0, [r4, #0x24] - adds r0, r4, #0 - movs r1, #0x56 - bl UpdateSprite - b _0809438A - .align 2, 0 -_08094228: .4byte gUnk_081229D0 -_0809422C: .4byte 0x0001FFFF -_08094230: - movs r0, #0xa0 - lsls r0, r0, #0xa - str r0, [r4, #0x20] - movs r0, #0x80 - lsls r0, r0, #1 - strh r0, [r4, #0x24] - bl Random - movs r1, #3 - ands r0, r1 - ldrb r1, [r4, #0x15] - orrs r0, r1 - strb r0, [r4, #0x15] - adds r0, r4, #0 - movs r1, #0x57 - bl UpdateSprite - b _0809438A -_08094254: - ldrb r0, [r4, #0xb] - cmp r0, #0 - bne _08094272 - adds r0, r4, #0 - movs r1, #0x67 - movs r2, #1 - movs r3, #0x80 - bl CreateObjectWithParent - adds r1, r0, #0 - str r1, [r4, #0x54] - cmp r1, #0 - beq _08094272 - ldr r0, [r4, #0x50] - str r0, [r1, #0x54] -_08094272: - ldrb r0, [r4, #0xb] - cmp r0, #0x80 - bne _0809427A - b _08094380 -_0809427A: - movs r2, #0 - movs r0, #0x4b - strb r0, [r4, #0x1e] - ldrb r1, [r4, #0x19] - subs r0, #0x58 - ands r0, r1 - movs r1, #4 - orrs r0, r1 - movs r1, #0xe0 - lsls r1, r1, #7 - strh r1, [r4, #0x24] - movs r1, #0xc0 - orrs r0, r1 - strb r0, [r4, #0x19] - adds r3, r4, #0 - adds r3, #0x29 - ldrb r0, [r3] - movs r1, #7 - orrs r0, r1 - strb r0, [r3] - ldrb r0, [r4, #0x19] - movs r1, #3 - orrs r0, r1 - strb r0, [r4, #0x19] - ldrb r0, [r4, #0xb] - lsls r0, r0, #3 - ldr r1, _080942E8 @ =gUnk_081229F0 - adds r3, r0, r1 - movs r0, #0 - ldrsb r0, [r3, r0] - ldrh r1, [r4, #0x2e] - adds r0, r0, r1 - strh r0, [r4, #0x2e] - movs r0, #1 - ldrsb r0, [r3, r0] - ldrh r1, [r4, #0x32] - adds r0, r0, r1 - strh r0, [r4, #0x32] - ldrb r0, [r3, #2] - strb r0, [r4, #0xe] - ldrb r0, [r3, #3] - strb r0, [r4, #0xf] - movs r0, #0xce - str r0, [r4, #0x7c] - str r2, [r4, #0x74] - ldrb r1, [r3, #4] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - beq _080942EC - adds r1, r4, #0 - adds r1, #0x82 - movs r0, #0xff - lsls r0, r0, #8 - b _080942F4 - .align 2, 0 -_080942E8: .4byte gUnk_081229F0 -_080942EC: - adds r1, r4, #0 - adds r1, #0x82 - movs r0, #0x80 - lsls r0, r0, #1 -_080942F4: - strh r0, [r1] - ldrb r1, [r3, #4] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0809430A - adds r1, r4, #0 - adds r1, #0x86 - movs r0, #0xff - lsls r0, r0, #8 - b _08094312 -_0809430A: - adds r1, r4, #0 - adds r1, #0x86 - movs r0, #0x80 - lsls r0, r0, #1 -_08094312: - strh r0, [r1] - adds r0, r4, #0 - bl sub_0806FBD8 - cmp r0, #0 - beq _0809438A - ldr r2, [r4, #0x48] - ldr r1, _0809437C @ =gUnk_080FD2E8 - ldrb r0, [r1] - strb r0, [r2] - ldr r2, [r4, #0x48] - ldrb r0, [r1, #1] - strb r0, [r2, #1] - ldr r2, [r4, #0x48] - ldrb r0, [r1, #2] - strb r0, [r2, #2] - ldr r2, [r4, #0x48] - ldrb r0, [r1, #3] - strb r0, [r2, #3] - ldr r2, [r4, #0x48] - ldrb r0, [r1, #4] - strb r0, [r2, #4] - ldr r2, [r4, #0x48] - ldrb r0, [r1, #5] - strb r0, [r2, #5] - ldr r2, [r4, #0x48] - ldrb r0, [r1, #6] - strb r0, [r2, #6] - ldr r2, [r4, #0x48] - ldrb r0, [r1, #7] - strb r0, [r2, #7] - ldrb r1, [r4, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r4, #0x10] - adds r1, r4, #0 - adds r1, #0x38 - movs r0, #2 - strb r0, [r1] - adds r1, #4 - movs r0, #7 - strb r0, [r1] - adds r1, #4 - movs r0, #0x48 - strb r0, [r1] - subs r1, #1 - movs r0, #0x7a - strb r0, [r1] - subs r1, #4 - movs r0, #1 - strb r0, [r1] - b _0809438A - .align 2, 0 -_0809437C: .4byte gUnk_080FD2E8 -_08094380: - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #0x18] -_0809438A: - movs r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - bl sub_08094398 -_08094394: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08094398 -sub_08094398: @ 0x08094398 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xa] - cmp r0, #0 - beq _080943A8 - cmp r0, #1 - beq _080943D8 - b _08094420 -_080943A8: - adds r0, r4, #0 - bl sub_08004274 - adds r0, r4, #0 - bl sub_0806F69C - movs r1, #0x80 - lsls r1, r1, #7 - adds r0, r4, #0 - bl sub_08003FC4 - cmp r0, #0 - bne _08094420 - ldrb r0, [r4, #0xb] - cmp r0, #3 - bhi _080943D2 - adds r0, r4, #0 - movs r1, #0xc - movs r2, #0 - bl CreateFX -_080943D2: - bl sub_0805E780 - b _08094420 -_080943D8: - ldrb r1, [r4, #0xb] - cmp r1, #0x80 - beq _0809440A - ldr r0, [r4, #0x7c] - subs r0, #1 - str r0, [r4, #0x7c] - movs r1, #1 - rsbs r1, r1, #0 - cmp r0, r1 - bne _080943F6 - movs r0, #0x96 - lsls r0, r0, #2 - str r0, [r4, #0x7c] - movs r0, #2 - strb r0, [r4, #0xc] -_080943F6: - adds r0, r4, #0 - adds r0, #0x82 - ldrh r1, [r0] - adds r0, #4 - ldrh r2, [r0] - adds r0, r4, #0 - movs r3, #0 - bl sub_0805EC9C - b _08094420 -_0809440A: - ldr r0, [r4, #0x54] - adds r0, #0x79 - ldrb r0, [r0] - ands r1, r0 - cmp r1, #0 - bne _0809441A - bl sub_0805E780 -_0809441A: - adds r0, r4, #0 - bl sub_08094660 -_08094420: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08094424 -sub_08094424: @ 0x08094424 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r6, r0, #0 - adds r3, r6, #0 - adds r3, #0x82 - movs r1, #0 - ldrsh r0, [r3, r1] - cmp r0, #0 - bge _08094452 - adds r1, r6, #0 - adds r1, #0x80 - movs r0, #0x24 - ldrsh r2, [r6, r0] - ldr r0, [r1] - adds r0, r0, r2 - str r0, [r1] - movs r2, #0 - ldrsh r0, [r3, r2] - rsbs r0, r0, #0 - mov r8, r0 - adds r5, r1, #0 - b _08094466 -_08094452: - adds r0, r6, #0 - adds r0, #0x80 - movs r1, #0x24 - ldrsh r2, [r6, r1] - ldr r1, [r0] - subs r1, r1, r2 - str r1, [r0] - ldrh r3, [r3] - mov r8, r3 - adds r5, r0, #0 -_08094466: - adds r0, r6, #0 - adds r0, #0x86 - movs r2, #0 - ldrsh r1, [r0, r2] - adds r4, r0, #0 - cmp r1, #0 - bge _0809448C - adds r1, r6, #0 - adds r1, #0x84 - movs r0, #0x24 - ldrsh r2, [r6, r0] - ldr r0, [r1] - adds r0, r0, r2 - str r0, [r1] - movs r2, #0 - ldrsh r0, [r4, r2] - rsbs r7, r0, #0 - adds r3, r1, #0 - b _0809449E -_0809448C: - adds r0, r6, #0 - adds r0, #0x84 - movs r1, #0x24 - ldrsh r2, [r6, r1] - ldr r1, [r0] - subs r1, r1, r2 - str r1, [r0] - ldrh r7, [r4] - adds r3, r0, #0 -_0809449E: - ldrh r2, [r6, #0x24] - movs r0, #0x24 - ldrsh r1, [r6, r0] - movs r0, #0x80 - lsls r0, r0, #6 - cmp r1, r0 - ble _080944B2 - ldr r1, _080944D0 @ =0xFFFFFF00 - adds r0, r2, r1 - strh r0, [r6, #0x24] -_080944B2: - ldr r0, [r6, #0x7c] - subs r0, #1 - str r0, [r6, #0x7c] - movs r1, #1 - rsbs r1, r1, #0 - cmp r0, r1 - bne _080944D4 - movs r0, #0 - strh r0, [r5] - strh r0, [r3] - movs r0, #3 - strb r0, [r6, #0xc] - movs r0, #0x78 - str r0, [r6, #0x7c] - b _08094500 - .align 2, 0 -_080944D0: .4byte 0xFFFFFF00 -_080944D4: - adds r5, r6, #0 - adds r5, #0x82 - movs r2, #0 - ldrsh r1, [r5, r2] - ldrb r3, [r6, #0xe] - adds r0, r6, #0 - movs r2, #0x20 - bl sub_0806FCF4 - movs r0, #0 - ldrsh r1, [r4, r0] - ldrb r3, [r6, #0xf] - adds r0, r6, #0 - movs r2, #0x20 - bl sub_0806FCF4 - ldrh r1, [r5] - ldrh r2, [r4] - adds r0, r6, #0 - movs r3, #0 - bl sub_0805EC9C -_08094500: - ldr r5, [r6, #0x48] - cmp r5, #0 - beq _08094538 - movs r4, #0x80 - lsls r4, r4, #9 - adds r0, r4, #0 - mov r1, r8 - bl __divsi3 - lsrs r0, r0, #3 - strb r0, [r5, #6] - ldr r5, [r6, #0x48] - adds r0, r4, #0 - adds r1, r7, #0 - bl __divsi3 - lsrs r0, r0, #3 - strb r0, [r5, #7] - ldr r1, [r6, #0x48] - adds r0, r6, #0 - adds r0, #0x62 - ldrb r0, [r0] - strb r0, [r1] - ldr r1, [r6, #0x48] - adds r0, r6, #0 - adds r0, #0x63 - ldrb r0, [r0] - strb r0, [r1, #1] -_08094538: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_08094540 -sub_08094540: @ 0x08094540 - push {lr} - adds r3, r0, #0 - ldr r0, [r3, #0x7c] - subs r0, #1 - str r0, [r3, #0x7c] - movs r1, #1 - rsbs r1, r1, #0 - cmp r0, r1 - bne _0809455A - movs r0, #4 - strb r0, [r3, #0xc] - movs r0, #2 - str r0, [r3, #0x7c] -_0809455A: - adds r0, r3, #0 - adds r0, #0x82 - ldrh r1, [r0] - adds r0, #4 - ldrh r2, [r0] - adds r0, r3, #0 - movs r3, #0 - bl sub_0805EC9C - pop {pc} - .align 2, 0 - - thumb_func_start sub_08094570 -sub_08094570: @ 0x08094570 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r6, r0, #0 - adds r2, r6, #0 - adds r2, #0x82 - ldrh r1, [r2] - lsls r3, r1, #0x10 - movs r0, #0x80 - lsls r0, r0, #1 - cmp r1, r0 - beq _08094590 - asrs r3, r3, #0x10 - ldr r0, _080945B0 @ =0xFFFFFF00 - cmp r3, r0 - bne _080945BA -_08094590: - ldr r1, [r6, #0x7c] - cmp r1, #0 - bne _080945B4 - ldr r0, [r6, #0x50] - adds r0, #0x7c - strh r1, [r0] - ldr r0, [r6, #0x50] - adds r0, #0x79 - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _08094622 - bl sub_0805E780 - b _08094622 - .align 2, 0 -_080945B0: .4byte 0xFFFFFF00 -_080945B4: - subs r0, r1, #1 - str r0, [r6, #0x7c] - b _08094622 -_080945BA: - cmp r3, #0 - bge _080945CC - subs r0, r1, #1 - strh r0, [r2] - movs r1, #0 - ldrsh r0, [r2, r1] - rsbs r0, r0, #0 - mov r8, r0 - b _080945D4 -_080945CC: - adds r0, r1, #1 - strh r0, [r2] - ldrh r2, [r2] - mov r8, r2 -_080945D4: - adds r0, r6, #0 - adds r0, #0x86 - ldrh r2, [r0] - movs r3, #0 - ldrsh r1, [r0, r3] - adds r4, r0, #0 - cmp r1, #0 - bge _080945F0 - subs r0, r2, #1 - strh r0, [r4] - movs r1, #0 - ldrsh r0, [r4, r1] - rsbs r7, r0, #0 - b _080945F6 -_080945F0: - adds r0, r2, #1 - strh r0, [r4] - ldrh r7, [r4] -_080945F6: - adds r5, r6, #0 - adds r5, #0x82 - movs r3, #0 - ldrsh r1, [r5, r3] - ldrb r3, [r6, #0xe] - adds r0, r6, #0 - movs r2, #0x20 - bl sub_0806FCF4 - movs r0, #0 - ldrsh r1, [r4, r0] - ldrb r3, [r6, #0xf] - adds r0, r6, #0 - movs r2, #0x20 - bl sub_0806FCF4 - ldrh r1, [r5] - ldrh r2, [r4] - adds r0, r6, #0 - movs r3, #0 - bl sub_0805EC9C -_08094622: - ldr r5, [r6, #0x48] - cmp r5, #0 - beq _0809465A - movs r4, #0x80 - lsls r4, r4, #9 - adds r0, r4, #0 - mov r1, r8 - bl __divsi3 - lsrs r0, r0, #3 - strb r0, [r5, #6] - ldr r5, [r6, #0x48] - adds r0, r4, #0 - adds r1, r7, #0 - bl __divsi3 - lsrs r0, r0, #3 - strb r0, [r5, #7] - ldr r1, [r6, #0x48] - adds r0, r6, #0 - adds r0, #0x62 - ldrb r0, [r0] - strb r0, [r1] - ldr r1, [r6, #0x48] - adds r0, r6, #0 - adds r0, #0x63 - ldrb r0, [r0] - strb r0, [r1, #1] -_0809465A: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_08094660 -sub_08094660: @ 0x08094660 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - adds r6, r0, #0 - ldr r0, [r6, #0x50] - adds r0, #0x62 - movs r7, #0 - ldrsb r7, [r0, r7] - cmp r7, #0 - bge _08094678 - rsbs r7, r7, #0 -_08094678: - lsls r7, r7, #1 - adds r0, r7, #0 - cmp r7, #0 - bge _08094682 - adds r0, #0xf -_08094682: - asrs r1, r0, #4 - ldr r0, [r6, #0x74] - cmp r0, r1 - bhs _08094700 - str r1, [r6, #0x74] - movs r1, #0x2e - ldrsh r0, [r6, r1] - subs r0, r0, r7 - adds r4, r0, #0 - subs r4, #0x40 - movs r1, #0x32 - ldrsh r0, [r6, r1] - subs r0, r0, r7 - adds r5, r0, #0 - subs r5, #0x40 - movs r0, #0x10 - mov sb, r0 - str r0, [r6, #0x78] - movs r1, #0 - mov r8, r1 - str r1, [r6, #0x7c] - adds r0, r6, #0 - adds r1, r4, #0 - adds r2, r5, #0 - bl sub_08094708 - mov r0, r8 - str r0, [r6, #0x78] - mov r1, sb - str r1, [r6, #0x7c] - adds r0, r6, #0 - adds r1, r4, #0 - adds r2, r5, #0 - bl sub_08094708 - movs r1, #0x2e - ldrsh r0, [r6, r1] - adds r0, r0, r7 - adds r4, r0, #0 - adds r4, #0x30 - movs r1, #0x32 - ldrsh r0, [r6, r1] - adds r0, r0, r7 - adds r5, r0, #0 - adds r5, #0x30 - movs r7, #0x10 - rsbs r7, r7, #0 - str r7, [r6, #0x78] - mov r0, r8 - str r0, [r6, #0x7c] - adds r0, r6, #0 - adds r1, r4, #0 - adds r2, r5, #0 - bl sub_08094708 - mov r1, r8 - str r1, [r6, #0x78] - str r7, [r6, #0x7c] - adds r0, r6, #0 - adds r1, r4, #0 - adds r2, r5, #0 - bl sub_08094708 -_08094700: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_08094708 -sub_08094708: @ 0x08094708 - push {r4, r5, r6, r7, lr} - sub sp, #8 - adds r7, r0, #0 - adds r6, r1, #0 - adds r5, r2, #0 - ldr r0, [r7, #0x74] - lsls r0, r0, #1 - adds r4, r0, #0 - adds r4, #8 - cmp r4, #0 - beq _08094752 - ldr r3, _08094758 @ =gRoomControls - movs r2, #0x3f -_08094722: - ldrh r0, [r3, #6] - subs r0, r6, r0 - lsrs r0, r0, #4 - ands r0, r2 - ldrh r1, [r3, #8] - subs r1, r5, r1 - lsrs r1, r1, #4 - ands r1, r2 - lsls r1, r1, #6 - orrs r0, r1 - movs r1, #2 - str r2, [sp] - str r3, [sp, #4] - bl sub_0807BA8C - ldr r0, [r7, #0x78] - adds r6, r6, r0 - ldr r0, [r7, #0x7c] - adds r5, r5, r0 - subs r4, #1 - ldr r2, [sp] - ldr r3, [sp, #4] - cmp r4, #0 - bne _08094722 -_08094752: - add sp, #8 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08094758: .4byte gRoomControls - - thumb_func_start sub_0809475C -sub_0809475C: @ 0x0809475C - push {lr} - ldr r2, _08094770 @ =gUnk_08122A10 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08094770: .4byte gUnk_08122A10 - - thumb_func_start sub_08094774 -sub_08094774: @ 0x08094774 - push {r4, r5, r6, lr} - adds r5, r0, #0 - movs r0, #1 - strb r0, [r5, #0xc] - ldrb r0, [r5, #0xa] - cmp r0, #8 - bls _08094784 - b _080948C6 -_08094784: - lsls r0, r0, #2 - ldr r1, _08094790 @ =_08094794 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08094790: .4byte _08094794 -_08094794: @ jump table - .4byte _080947B8 @ case 0 - .4byte _08094824 @ case 1 - .4byte _080948B0 @ case 2 - .4byte _080948C6 @ case 3 - .4byte _080948C6 @ case 4 - .4byte _080948C6 @ case 5 - .4byte _080948C6 @ case 6 - .4byte _080948C6 @ case 7 - .4byte _080948C6 @ case 8 -_080947B8: - adds r0, r5, #0 - movs r1, #0xb - movs r2, #0 - bl CreateFX - adds r6, r0, #0 - str r6, [r5, #0x54] - cmp r6, #0 - beq _080947EE - ldr r0, _0809480C @ =gLinkEntity - ldr r4, _08094810 @ =gUnk_08122A18 - ldrb r3, [r0, #0x14] - movs r1, #6 - ands r1, r3 - adds r1, r1, r4 - movs r2, #0 - ldrsb r2, [r1, r2] - lsls r2, r2, #0x10 - movs r1, #1 - orrs r1, r3 - adds r1, r1, r4 - movs r3, #0 - ldrsb r3, [r1, r3] - lsls r3, r3, #0x10 - adds r1, r6, #0 - bl PositionRelative -_080947EE: - ldr r0, [r5, #0x54] - adds r1, r5, #0 - bl CopyPosition - ldr r1, _08094814 @ =0x00004032 - ldr r2, _08094818 @ =0x00004033 - adds r0, r5, #0 - bl sub_08094980 - ldr r1, _0809481C @ =0x00004061 - ldr r2, _08094820 @ =0x00004022 - adds r0, r5, #0 - bl sub_08094980 - b _080948C6 - .align 2, 0 -_0809480C: .4byte gLinkEntity -_08094810: .4byte gUnk_08122A18 -_08094814: .4byte 0x00004032 -_08094818: .4byte 0x00004033 -_0809481C: .4byte 0x00004061 -_08094820: .4byte 0x00004022 -_08094824: - adds r0, r5, #0 - movs r1, #0x2b - movs r2, #0 - bl CreateFX - adds r6, r0, #0 - str r6, [r5, #0x54] - cmp r6, #0 - beq _0809485A - ldr r0, _08094898 @ =gLinkEntity - ldr r4, _0809489C @ =gUnk_08122A18 - ldrb r3, [r0, #0x14] - movs r1, #6 - ands r1, r3 - adds r1, r1, r4 - movs r2, #0 - ldrsb r2, [r1, r2] - lsls r2, r2, #0x10 - movs r1, #1 - orrs r1, r3 - adds r1, r1, r4 - movs r3, #0 - ldrsb r3, [r1, r3] - lsls r3, r3, #0x10 - adds r1, r6, #0 - bl PositionRelative -_0809485A: - ldrb r4, [r5, #0xb] - cmp r4, #0 - bne _080948C6 - ldr r0, [r5, #0x54] - adds r1, r5, #0 - bl CopyPosition - strb r4, [r5, #0xe] - adds r2, r5, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2] - ldrb r1, [r5, #0x19] - movs r0, #0x3f - ands r0, r1 - strb r0, [r5, #0x19] - ldr r1, _080948A0 @ =0x0000403B - ldr r2, _080948A4 @ =0x0000403C - adds r0, r5, #0 - bl sub_08094980 - ldr r1, _080948A8 @ =0x00004061 - ldr r2, _080948AC @ =0x00004022 - adds r0, r5, #0 - bl sub_08094980 - b _080948CA - .align 2, 0 -_08094898: .4byte gLinkEntity -_0809489C: .4byte gUnk_08122A18 -_080948A0: .4byte 0x0000403B -_080948A4: .4byte 0x0000403C -_080948A8: .4byte 0x00004061 -_080948AC: .4byte 0x00004022 -_080948B0: - ldr r0, _080948CC @ =gLinkEntity - movs r1, #0x60 - movs r2, #0 - bl sub_080A2A20 - adds r1, r0, #0 - str r1, [r5, #0x54] - cmp r1, #0 - beq _080948C6 - movs r0, #1 - strb r0, [r1, #0xe] -_080948C6: - bl sub_0805E780 -_080948CA: - pop {r4, r5, r6, pc} - .align 2, 0 -_080948CC: .4byte gLinkEntity - - thumb_func_start sub_080948D0 -sub_080948D0: @ 0x080948D0 - push {lr} - ldr r2, _080948E4 @ =gUnk_08122A20 - ldrb r1, [r0, #0xa] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_080948E4: .4byte gUnk_08122A20 - - thumb_func_start sub_080948E8 -sub_080948E8: @ 0x080948E8 - push {r4, lr} - adds r4, r0, #0 - ldrb r1, [r4, #0xe] - cmp r1, #0x3b - bhi _08094978 - ldr r0, [r4, #0x34] - ldr r2, _0809495C @ =0xFFFFC000 - adds r0, r0, r2 - str r0, [r4, #0x34] - movs r0, #3 - ands r0, r1 - cmp r0, #0 - bne _08094970 - adds r0, r4, #0 - movs r1, #0x11 - movs r2, #0x40 - bl CreateFX - adds r3, r0, #0 - str r3, [r4, #0x54] - cmp r3, #0 - beq _08094970 - ldrb r1, [r4, #0x19] - lsrs r1, r1, #6 - lsls r1, r1, #6 - ldrb r2, [r3, #0x19] - movs r0, #0x3f - ands r0, r2 - orrs r0, r1 - strb r0, [r3, #0x19] - ldr r2, [r4, #0x54] - adds r0, r4, #0 - adds r0, #0x29 - ldrb r1, [r0] - lsls r1, r1, #0x1d - adds r2, #0x29 - lsrs r1, r1, #0x1d - ldrb r3, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2] - bl Random - movs r1, #1 - ands r1, r0 - cmp r1, #0 - beq _08094960 - bl Random - ldr r2, [r4, #0x54] - movs r1, #0xf - ands r0, r1 - ldrh r1, [r2, #0x2e] - adds r0, r0, r1 - strh r0, [r2, #0x2e] - b _08094970 - .align 2, 0 -_0809495C: .4byte 0xFFFFC000 -_08094960: - bl Random - ldr r2, [r4, #0x54] - movs r1, #0xf - ands r0, r1 - ldrh r1, [r2, #0x2e] - subs r1, r1, r0 - strh r1, [r2, #0x2e] -_08094970: - ldrb r0, [r4, #0xe] - adds r0, #1 - strb r0, [r4, #0xe] - b _0809497C -_08094978: - bl sub_0805E780 -_0809497C: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08094980 -sub_08094980: @ 0x08094980 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #8 - adds r6, r0, #0 - str r1, [sp] - str r2, [sp, #4] - movs r0, #0 - mov r8, r0 - ldr r1, _08094A04 @ =gRoomControls - mov sl, r1 - movs r2, #0x3f - mov sb, r2 - ldr r7, _08094A08 @ =gUnk_08122A28 -_080949A0: - movs r4, #0 - ldrsb r4, [r7, r4] - movs r5, #1 - ldrsb r5, [r7, r5] - adds r0, r6, #0 - adds r1, r4, #0 - adds r2, r5, #0 - bl sub_0800029C - ldr r3, [sp] - cmp r3, r0 - bne _080949EC - movs r0, #0x2e - ldrsh r1, [r6, r0] - adds r1, r1, r4 - mov r2, sl - ldrh r0, [r2, #6] - subs r1, r1, r0 - asrs r1, r1, #4 - mov r3, sb - ands r1, r3 - movs r2, #0x32 - ldrsh r0, [r6, r2] - adds r0, r0, r5 - mov r3, sl - ldrh r2, [r3, #8] - subs r0, r0, r2 - asrs r0, r0, #4 - mov r2, sb - ands r0, r2 - lsls r0, r0, #6 - orrs r1, r0 - adds r0, r6, #0 - adds r0, #0x38 - ldrb r2, [r0] - ldr r0, [sp, #4] - bl sub_0800015E -_080949EC: - adds r7, #2 - movs r3, #2 - add r8, r3 - mov r0, r8 - cmp r0, #9 - bls _080949A0 - add sp, #8 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08094A04: .4byte gRoomControls -_08094A08: .4byte gUnk_08122A28 - - thumb_func_start sub_08094A0C -sub_08094A0C: @ 0x08094A0C - push {lr} - adds r2, r0, #0 - ldrb r1, [r2, #0x10] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _08094A3E - ldrb r0, [r2, #0xc] - cmp r0, #0 - bne _08094A34 - movs r0, #1 - strb r0, [r2, #0xc] - ldr r0, _08094A30 @ =gUnk_080FD170 - str r0, [r2, #0x48] - adds r0, r2, #0 - bl sub_0807DD50 - b _08094A42 - .align 2, 0 -_08094A30: .4byte gUnk_080FD170 -_08094A34: - adds r0, r2, #0 - movs r1, #0 - bl sub_0807DD94 - b _08094A42 -_08094A3E: - movs r0, #1 - strb r0, [r2, #0xc] -_08094A42: - pop {pc} - - thumb_func_start sub_08094A44 -sub_08094A44: @ 0x08094A44 - push {lr} - ldr r2, _08094A58 @ =gUnk_08122A34 - ldrb r1, [r0, #0xa] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08094A58: .4byte gUnk_08122A34 - - thumb_func_start sub_08094A5C -sub_08094A5C: @ 0x08094A5C - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _08094A78 - adds r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - bl sub_0807DD64 - adds r0, r4, #0 - movs r1, #4 - bl UpdateSprite -_08094A78: - adds r0, r4, #0 - movs r1, #0 - bl sub_0807DDAC - adds r0, r4, #0 - bl sub_0807DDE4 - adds r0, r4, #0 - bl sub_08004274 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08094A90 -sub_08094A90: @ 0x08094A90 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _08094ACE - adds r0, #1 - strb r0, [r4, #0xc] - adds r1, r4, #0 - adds r1, #0x38 - movs r0, #2 - strb r0, [r1] - adds r0, r4, #0 - bl UpdateSpriteOrderAndFlip - ldr r1, _08094AE4 @ =gUnk_08114F30 - ldrb r2, [r4, #0x19] - lsrs r0, r2, #6 - adds r0, r0, r1 - ldrb r1, [r0] - lsls r1, r1, #6 - movs r0, #0x3f - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #0x19] - adds r0, r4, #0 - movs r1, #0 - bl LoadAnimation - adds r0, r4, #0 - bl sub_0807DD64 -_08094ACE: - adds r0, r4, #0 - movs r1, #0 - bl sub_0807DDAC - adds r0, r4, #0 - bl sub_0807DDE4 - adds r0, r4, #0 - bl sub_080042B8 - pop {r4, pc} - .align 2, 0 -_08094AE4: .4byte gUnk_08114F30 - - thumb_func_start sub_08094AE8 -sub_08094AE8: @ 0x08094AE8 - push {r4, r5, lr} - adds r5, r1, #0 - movs r0, #0x6a - movs r1, #1 - movs r2, #0 - bl CreateObject - adds r4, r0, #0 - cmp r4, #0 - beq _08094B08 - ldr r1, [r5, #4] - bl sub_0807DAD0 - adds r1, r4, #0 - adds r1, #0x84 - str r0, [r1] -_08094B08: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_08094B0C -sub_08094B0C: @ 0x08094B0C - push {lr} - adds r2, r0, #0 - ldrh r0, [r2, #0x36] - subs r0, #1 - movs r3, #0 - strh r0, [r2, #0x36] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r1, #0x20 - rsbs r1, r1, #0 - cmp r0, r1 - bgt _08094B30 - ldr r0, _08094B2C @ =0x0000FFE0 - strh r0, [r2, #0x36] - b _08094B34 - .align 2, 0 -_08094B2C: .4byte 0x0000FFE0 -_08094B30: - ldr r0, _08094B38 @ =gUnk_02033280 - strb r3, [r0, #6] -_08094B34: - pop {pc} - .align 2, 0 -_08094B38: .4byte gUnk_02033280 - - thumb_func_start sub_08094B3C -sub_08094B3C: @ 0x08094B3C - push {lr} - adds r2, r0, #0 - ldr r0, [r2, #0x34] - movs r1, #0x80 - lsls r1, r1, #8 - adds r0, r0, r1 - str r0, [r2, #0x34] - movs r0, #0x36 - ldrsh r1, [r2, r0] - movs r0, #0xd - rsbs r0, r0, #0 - cmp r1, r0 - blt _08094B60 - ldr r0, _08094B5C @ =0x0000FFF3 - strh r0, [r2, #0x36] - b _08094B66 - .align 2, 0 -_08094B5C: .4byte 0x0000FFF3 -_08094B60: - ldr r1, _08094B68 @ =gUnk_02033280 - movs r0, #0 - strb r0, [r1, #6] -_08094B66: - pop {pc} - .align 2, 0 -_08094B68: .4byte gUnk_02033280 - - thumb_func_start sub_08094B6C -sub_08094B6C: @ 0x08094B6C - adds r0, #0x29 - ldrb r2, [r0] - movs r1, #0x39 - rsbs r1, r1, #0 - ands r1, r2 - movs r2, #0x18 - orrs r1, r2 - strb r1, [r0] - bx lr - .align 2, 0 - - thumb_func_start sub_08094B80 -sub_08094B80: @ 0x08094B80 - adds r0, #0x29 - ldrb r2, [r0] - movs r1, #0x39 - rsbs r1, r1, #0 - ands r1, r2 - movs r2, #0x10 - orrs r1, r2 - strb r1, [r0] - bx lr - .align 2, 0 - - thumb_func_start sub_08094B94 -sub_08094B94: @ 0x08094B94 - push {r4, lr} - movs r0, #0x6a - movs r1, #0x22 - movs r2, #0 - bl CreateObject - adds r4, r0, #0 - cmp r4, #0 - beq _08094BD2 - ldr r0, _08094BD4 @ =gLinkEntity - adds r1, r4, #0 - bl CopyPosition - ldr r0, _08094BD8 @ =0x0000FFD0 - strh r0, [r4, #0x36] - ldr r1, _08094BDC @ =gUnk_0800AEDC - adds r0, r4, #0 - bl sub_0807DAD0 - adds r1, r4, #0 - adds r1, #0x84 - str r0, [r1] - adds r0, r4, #0 - bl sub_080A29BC - ldrh r0, [r4, #0x36] - adds r0, #0x10 - strh r0, [r4, #0x36] - ldrh r0, [r4, #0x32] - adds r0, #1 - strh r0, [r4, #0x32] -_08094BD2: - pop {r4, pc} - .align 2, 0 -_08094BD4: .4byte gLinkEntity -_08094BD8: .4byte 0x0000FFD0 -_08094BDC: .4byte gUnk_0800AEDC - - thumb_func_start sub_08094BE0 -sub_08094BE0: @ 0x08094BE0 - push {r4, lr} - sub sp, #4 - movs r0, #0 - str r0, [sp] - movs r0, #6 - movs r1, #0x6a - movs r2, #6 - movs r3, #0x22 - bl sub_0805EB2C - adds r4, r0, #0 - cmp r4, #0 - beq _08094C22 - ldr r0, _08094C28 @ =gLinkEntity - adds r1, r4, #0 - bl CopyPosition - ldr r0, _08094C2C @ =0x0000FFF4 - strh r0, [r4, #0x36] - ldrh r0, [r4, #0x32] - adds r0, #1 - strh r0, [r4, #0x32] - adds r1, r4, #0 - adds r1, #0x38 - movs r0, #2 - strb r0, [r1] - adds r0, r4, #0 - bl UpdateSpriteOrderAndFlip - adds r0, r4, #0 - movs r1, #1 - bl LoadAnimation -_08094C22: - add sp, #4 - pop {r4, pc} - .align 2, 0 -_08094C28: .4byte gLinkEntity -_08094C2C: .4byte 0x0000FFF4 - - thumb_func_start sub_08094C30 -sub_08094C30: @ 0x08094C30 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r5, [r4, #0x50] - cmp r5, #0 - beq _08094C40 - ldr r0, [r5, #4] - cmp r0, #0 - bne _08094C44 -_08094C40: - bl sub_0805E780 -_08094C44: - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _08094C74 - adds r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #2 - bl sub_0805E3A0 - ldr r1, _08094C84 @ =gUnk_08114F30 - ldrb r0, [r5, #0x19] - lsrs r0, r0, #6 - adds r0, r0, r1 - ldrb r1, [r0] - lsls r1, r1, #6 - ldrb r2, [r4, #0x19] - movs r0, #0x3f - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #0x19] - adds r0, r4, #0 - movs r1, #1 - bl LoadAnimation -_08094C74: - adds r0, r5, #0 - adds r1, r4, #0 - bl CopyPosition - adds r0, r4, #0 - bl sub_080042B8 - pop {r4, r5, pc} - .align 2, 0 -_08094C84: .4byte gUnk_08114F30 - - thumb_func_start sub_08094C88 -sub_08094C88: @ 0x08094C88 - push {r4, r5, lr} - adds r5, r0, #0 - ldrb r1, [r5, #0xc] - cmp r1, #0 - beq _08094CA0 - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08094CCC - bl sub_0805E780 - b _08094CDA -_08094CA0: - adds r0, r1, #1 - strb r0, [r5, #0xc] - ldrb r1, [r5, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r5, #0x18] - adds r0, r5, #0 - movs r1, #3 - bl sub_0805E3A0 - ldrb r0, [r5, #0xb] - cmp r0, #0x43 - bgt _08094CCC - cmp r0, #0x40 - blt _08094CCC - adds r0, r5, #0 - adds r1, r5, #0 - bl sub_0806FAD8 -_08094CCC: - ldrb r4, [r5, #0xa] - ldrb r0, [r5, #0xb] - strb r0, [r5, #0xa] - adds r0, r5, #0 - bl sub_08080CB4 - strb r4, [r5, #0xa] -_08094CDA: - pop {r4, r5, pc} - - thumb_func_start sub_08094CDC -sub_08094CDC: @ 0x08094CDC - push {lr} - movs r0, #0x6a - movs r1, #3 - movs r2, #0x62 - bl CreateObject - adds r2, r0, #0 - cmp r2, #0 - beq _08094D0A - ldr r1, _08094D0C @ =gRoomControls - ldrh r0, [r1, #6] - adds r0, #0xe0 - strh r0, [r2, #0x2e] - movs r3, #0x96 - lsls r3, r3, #2 - adds r0, r3, #0 - ldrh r1, [r1, #8] - adds r0, r0, r1 - strh r0, [r2, #0x32] - movs r0, #0xa2 - lsls r0, r0, #1 - bl PlaySFX -_08094D0A: - pop {pc} - .align 2, 0 -_08094D0C: .4byte gRoomControls - - thumb_func_start sub_08094D10 -sub_08094D10: @ 0x08094D10 - push {lr} - sub sp, #4 - movs r0, #0x62 - str r0, [sp] - movs r0, #6 - movs r1, #0x6a - movs r2, #6 - movs r3, #3 - bl sub_0805EB2C - adds r1, r0, #0 - cmp r1, #0 - beq _08094D2E - movs r0, #0xff - strb r0, [r1, #0xc] -_08094D2E: - add sp, #4 - pop {pc} - .align 2, 0 - - thumb_func_start sub_08094D34 -sub_08094D34: @ 0x08094D34 - push {lr} - movs r0, #0x6a - movs r1, #0x15 - movs r2, #0xd - bl CreateObject - adds r2, r0, #0 - cmp r2, #0 - beq _08094D68 - ldr r1, _08094D6C @ =gRoomControls - movs r3, #0x80 - lsls r3, r3, #1 - adds r0, r3, #0 - ldrh r3, [r1, #6] - adds r0, r0, r3 - strh r0, [r2, #0x2e] - movs r3, #0x96 - lsls r3, r3, #2 - adds r0, r3, #0 - ldrh r1, [r1, #8] - adds r0, r0, r1 - strh r0, [r2, #0x32] - movs r0, #0xa2 - lsls r0, r0, #1 - bl PlaySFX -_08094D68: - pop {pc} - .align 2, 0 -_08094D6C: .4byte gRoomControls - - thumb_func_start sub_08094D70 -sub_08094D70: @ 0x08094D70 - push {lr} - sub sp, #4 - movs r0, #0xd - str r0, [sp] - movs r0, #6 - movs r1, #0x6a - movs r2, #6 - movs r3, #0x15 - bl sub_0805EB2C - adds r1, r0, #0 - cmp r1, #0 - beq _08094D8E - movs r0, #0xff - strb r0, [r1, #0xc] -_08094D8E: - add sp, #4 - pop {pc} - .align 2, 0 - - thumb_func_start sub_08094D94 -sub_08094D94: @ 0x08094D94 - push {r4, lr} - adds r4, r0, #0 - ldrb r1, [r4, #0xc] - cmp r1, #0 - beq _08094DAC - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08094DCE - bl sub_0805E780 - b _08094DD4 -_08094DAC: - adds r0, r1, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] - adds r0, r4, #0 - movs r1, #3 - bl sub_0805E3A0 - adds r0, r4, #0 - movs r1, #0 - bl LoadAnimation -_08094DCE: - adds r0, r4, #0 - bl sub_080042B8 -_08094DD4: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08094DD8 -sub_08094DD8: @ 0x08094DD8 - push {lr} - movs r0, #0x6a - movs r1, #4 - movs r2, #0 - bl CreateObject - adds r2, r0, #0 - cmp r2, #0 - beq _08094E06 - ldr r1, _08094E08 @ =gRoomControls - ldrh r0, [r1, #6] - adds r0, #0xf0 - strh r0, [r2, #0x2e] - movs r3, #0x96 - lsls r3, r3, #2 - adds r0, r3, #0 - ldrh r1, [r1, #8] - adds r0, r0, r1 - strh r0, [r2, #0x32] - movs r0, #0xa2 - lsls r0, r0, #1 - bl PlaySFX -_08094E06: - pop {pc} - .align 2, 0 -_08094E08: .4byte gRoomControls - - thumb_func_start sub_08094E0C -sub_08094E0C: @ 0x08094E0C - push {lr} - sub sp, #4 - movs r0, #0 - str r0, [sp] - movs r0, #6 - movs r1, #0x6a - movs r2, #6 - movs r3, #4 - bl sub_0805EB2C - adds r1, r0, #0 - cmp r1, #0 - beq _08094E2A - movs r0, #0xff - strb r0, [r1, #0xc] -_08094E2A: - add sp, #4 - pop {pc} - .align 2, 0 - - thumb_func_start sub_08094E30 -sub_08094E30: @ 0x08094E30 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xb] - cmp r0, #0 - bne _08094E88 - ldr r0, _08094E80 @ =gUnk_030010A0 - ldr r0, [r0] - movs r1, #0x1f - ands r0, r1 - cmp r0, #0 - beq _08094E48 - b _08094F94 -_08094E48: - movs r0, #0x6a - movs r1, #5 - movs r2, #1 - bl CreateObject - adds r5, r0, #0 - cmp r5, #0 - bne _08094E5A - b _08094F94 -_08094E5A: - bl Random - ldr r4, _08094E84 @ =gRoomControls - movs r1, #0xf0 - bl __modsi3 - ldrh r1, [r4, #0xa] - adds r1, r1, r0 - strh r1, [r5, #0x2e] - bl Random - movs r1, #0xa0 - bl __modsi3 - ldrh r1, [r4, #0xc] - adds r1, r1, r0 - strh r1, [r5, #0x32] - b _08094F94 - .align 2, 0 -_08094E80: .4byte gUnk_030010A0 -_08094E84: .4byte gRoomControls -_08094E88: - cmp r0, #1 - bne _08094F44 - ldrb r1, [r4, #0xc] - cmp r1, #1 - beq _08094ED4 - cmp r1, #1 - bgt _08094E9C - cmp r1, #0 - beq _08094EA6 - b _08094F94 -_08094E9C: - cmp r1, #2 - beq _08094F08 - cmp r1, #3 - beq _08094F22 - b _08094F94 -_08094EA6: - strb r0, [r4, #0xc] - ldr r0, _08094ED0 @ =0xFF600000 - str r0, [r4, #0x34] - str r1, [r4, #0x20] - adds r0, r4, #0 - movs r1, #6 - bl sub_0805E3A0 - adds r0, r4, #0 - movs r1, #0 - bl UpdateSprite - adds r0, r4, #0 - bl sub_080002B8 - cmp r0, #0xd - bne _08094F94 - movs r0, #3 - strb r0, [r4, #0xc] - b _08094F94 - .align 2, 0 -_08094ED0: .4byte 0xFF600000 -_08094ED4: - ldr r1, [r4, #0x34] - ldr r0, [r4, #0x20] - subs r1, r1, r0 - str r1, [r4, #0x34] - ldr r2, _08094F04 @ =0xFFFFE000 - adds r0, r0, r2 - str r0, [r4, #0x20] - cmp r1, #0 - ble _08094F94 - ldrb r0, [r4, #0xc] - adds r0, #1 - movs r1, #0 - strb r0, [r4, #0xc] - str r1, [r4, #0x34] - str r1, [r4, #0x20] - adds r0, r4, #0 - movs r1, #1 - bl UpdateSprite - movs r0, #0xbf - lsls r0, r0, #1 - bl sub_08004488 - b _08094F94 - .align 2, 0 -_08094F04: .4byte 0xFFFFE000 -_08094F08: - adds r0, r4, #0 - bl sub_08004274 - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08094F94 - bl sub_0805E780 - b _08094F94 -_08094F22: - ldr r0, [r4, #0x34] - ldr r1, [r4, #0x20] - subs r0, r0, r1 - str r0, [r4, #0x34] - ldr r0, _08094F40 @ =0xFFFFE000 - adds r1, r1, r0 - str r1, [r4, #0x20] - adds r0, r4, #0 - bl sub_080040A8 - cmp r0, #0 - bne _08094F94 - bl sub_0805E780 - b _08094F94 - .align 2, 0 -_08094F40: .4byte 0xFFFFE000 -_08094F44: - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _08094F94 - adds r0, #1 - strb r0, [r4, #0xc] - ldrb r0, [r4, #0xe] - cmp r0, #1 - beq _08094F68 - cmp r0, #1 - bgt _08094F5E - cmp r0, #0 - beq _08094F7A - b _08094F94 -_08094F5E: - cmp r0, #2 - beq _08094F72 - cmp r0, #3 - beq _08094F84 - b _08094F94 -_08094F68: - adds r0, r4, #0 - movs r1, #2 - bl UpdateSprite - b _08094F94 -_08094F72: - ldrb r0, [r4, #0x18] - movs r1, #0x40 - orrs r0, r1 - strb r0, [r4, #0x18] -_08094F7A: - adds r0, r4, #0 - movs r1, #0 - bl UpdateSprite - b _08094F94 -_08094F84: - ldrb r0, [r4, #0x18] - movs r1, #0x40 - orrs r0, r1 - strb r0, [r4, #0x18] - adds r0, r4, #0 - movs r1, #2 - bl UpdateSprite -_08094F94: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_08094F98 -sub_08094F98: @ 0x08094F98 - push {lr} - movs r0, #0x6a - movs r1, #5 - movs r2, #0 - bl CreateObject - pop {pc} - .align 2, 0 - - thumb_func_start sub_08094FA8 -sub_08094FA8: @ 0x08094FA8 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #4 - bhi _08095086 - lsls r0, r0, #2 - ldr r1, _08094FBC @ =_08094FC0 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08094FBC: .4byte _08094FC0 -_08094FC0: @ jump table - .4byte _08094FD4 @ case 0 - .4byte _08094FF0 @ case 1 - .4byte _08095024 @ case 2 - .4byte _08095040 @ case 3 - .4byte _08095070 @ case 4 -_08094FD4: - movs r1, #0 - movs r0, #1 - strb r0, [r4, #0xc] - strb r1, [r4, #0x1e] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r0, [r2] - movs r1, #7 - orrs r0, r1 - strb r0, [r2] - adds r0, r4, #0 - bl sub_080787B4 - b _08095086 -_08094FF0: - adds r1, r4, #0 - adds r1, #0x39 - movs r0, #0 - ldrsb r0, [r1, r0] - cmp r0, #0 - beq _08095086 - movs r0, #0 - strb r0, [r1] - movs r0, #2 - strb r0, [r4, #0xc] - adds r0, r4, #0 - bl sub_080788E0 - ldr r0, _08095020 @ =gLinkState - movs r1, #0xc - strb r1, [r0, #0xc] - adds r0, #0x38 - movs r1, #0x36 - strb r1, [r0] - movs r0, #2 - bl sub_08078A90 - b _08095086 - .align 2, 0 -_08095020: .4byte gLinkState -_08095024: - movs r0, #0x36 - bl GetInventoryValue - cmp r0, #2 - bne _08095086 - movs r0, #3 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - subs r0, #7 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] - b _08095086 -_08095040: - ldr r0, _0809506C @ =gLinkEntity - ldrb r0, [r0, #0xc] - cmp r0, #0xc - beq _08095086 - movs r0, #4 - strb r0, [r4, #0xc] - movs r0, #0x5b - bl GetProgressFlag - cmp r0, #0 - bne _08095086 - movs r0, #0x1c - movs r1, #0 - movs r2, #0 - bl sub_080A7C00 - movs r0, #0x5b - bl sub_0807CD04 - movs r0, #0x3c - strb r0, [r4, #0xe] - b _08095086 - .align 2, 0 -_0809506C: .4byte gLinkEntity -_08095070: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08095086 - movs r0, #5 - strb r0, [r4, #0xc] - movs r0, #1 - bl sub_08078A90 -_08095086: - pop {r4, pc} - - thumb_func_start sub_08095088 -sub_08095088: @ 0x08095088 - push {r4, r5, lr} - adds r5, r0, #0 - ldrb r0, [r5, #0xc] - cmp r0, #1 - beq _080950C8 - cmp r0, #1 - bgt _0809509C - cmp r0, #0 - beq _080950A2 - b _0809510A -_0809509C: - cmp r0, #2 - beq _080950F0 - b _0809510A -_080950A2: - movs r0, #0x5b - bl GetInventoryValue - cmp r0, #0 - beq _080950B0 - bl sub_0805E780 -_080950B0: - movs r0, #1 - strb r0, [r5, #0xc] - adds r2, r5, #0 - adds r2, #0x29 - ldrb r0, [r2] - movs r1, #7 - orrs r0, r1 - strb r0, [r2] - adds r0, r5, #0 - bl sub_080787B4 - b _0809510A -_080950C8: - adds r1, r5, #0 - adds r1, #0x39 - movs r0, #0 - ldrsb r0, [r1, r0] - cmp r0, #0 - beq _0809510A - movs r0, #0 - strb r0, [r1] - movs r0, #2 - strb r0, [r5, #0xc] - adds r0, r5, #0 - bl sub_080788E0 - ldr r0, _080950EC @ =0x00001F1F - movs r1, #0 - bl sub_08078AA8 - b _0809510A - .align 2, 0 -_080950EC: .4byte 0x00001F1F -_080950F0: - ldr r0, _0809511C @ =gTextBox - ldrb r1, [r0] - movs r0, #0x7f - ands r0, r1 - cmp r0, #0 - bne _0809510A - movs r0, #0x5b - movs r1, #0 - movs r2, #0 - bl sub_080A7C00 - bl sub_0805E780 -_0809510A: - ldrb r4, [r5, #0xa] - movs r0, #0x5b - strb r0, [r5, #0xa] - adds r0, r5, #0 - bl sub_08080CB4 - strb r4, [r5, #0xa] - pop {r4, r5, pc} - .align 2, 0 -_0809511C: .4byte gTextBox - - thumb_func_start sub_08095120 -sub_08095120: @ 0x08095120 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0809514C - movs r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #3 - bl sub_0805E3A0 - adds r0, r4, #0 - adds r1, r4, #0 - bl sub_0806FAD8 - adds r0, r4, #0 - bl sub_0807DD64 - adds r0, r4, #0 - movs r1, #2 - bl LoadAnimation -_0809514C: - adds r0, r4, #0 - movs r1, #0 - bl sub_0807DDAC - adds r0, r4, #0 - bl sub_0807DDE4 - adds r0, r4, #0 - bl sub_080042B8 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08095164 -sub_08095164: @ 0x08095164 - push {lr} - sub sp, #4 - movs r0, #0 - str r0, [sp] - movs r0, #6 - movs r1, #0x6a - movs r2, #6 - movs r3, #8 - bl sub_0805EB2C - cmp r0, #0 - beq _08095182 - movs r1, #3 - bl LoadAnimation -_08095182: - add sp, #4 - pop {pc} - .align 2, 0 - - thumb_func_start sub_08095188 -sub_08095188: @ 0x08095188 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _080951B4 - movs r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #3 - bl sub_0805E3A0 - adds r0, r4, #0 - adds r1, r4, #0 - bl sub_0806FAD8 - adds r0, r4, #0 - bl sub_0807DD64 - adds r0, r4, #0 - movs r1, #0 - bl LoadAnimation -_080951B4: - adds r0, r4, #0 - movs r1, #0 - bl sub_0807DDAC - adds r0, r4, #0 - bl sub_0807DDE4 - pop {r4, pc} - - thumb_func_start sub_080951C4 -sub_080951C4: @ 0x080951C4 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _080951E8 - adds r0, #1 - strb r0, [r4, #0xc] - movs r1, #0 - ldr r0, _08095240 @ =0x0000FFF0 - strh r0, [r4, #0x36] - strb r1, [r4, #0xe] - adds r0, r4, #0 - bl sub_0807DD64 - adds r0, r4, #0 - movs r1, #3 - bl UpdateSprite -_080951E8: - adds r0, r4, #0 - movs r1, #0 - bl sub_0807DDAC - adds r0, r4, #0 - bl sub_0807DDE4 - adds r0, r4, #0 - bl sub_08004274 - movs r1, #0x36 - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _08095218 - str r0, [r4, #0x34] - str r0, [r4, #0x50] - ldrb r0, [r4, #0xe] - cmp r0, #0 - bne _08095218 - adds r0, #1 - strb r0, [r4, #0xe] - movs r0, #0xe6 - bl PlaySFX -_08095218: - ldr r3, [r4, #0x50] - cmp r3, #0 - beq _0809523C - ldrb r1, [r3, #0x18] - lsls r1, r1, #0x1e - lsrs r1, r1, #0x1e - ldrb r2, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #0x18] - ldrh r0, [r3, #0x2e] - adds r0, #0x10 - strh r0, [r4, #0x2e] - ldrh r0, [r3, #0x32] - subs r0, #0x10 - strh r0, [r4, #0x32] -_0809523C: - pop {r4, pc} - .align 2, 0 -_08095240: .4byte 0x0000FFF0 - - thumb_func_start sub_08095244 -sub_08095244: @ 0x08095244 - push {r4, r5, lr} - adds r5, r0, #0 - ldrb r0, [r5, #0xa] - cmp r0, #0 - bne _0809527C - movs r0, #0x6a - movs r1, #0xa - movs r2, #0 - bl CreateObject - adds r4, r0, #0 - cmp r4, #0 - beq _0809527C - str r5, [r4, #0x50] - movs r2, #0x80 - lsls r2, r2, #0xd - ldr r3, _08095280 @ =0xFFF00000 - adds r0, r5, #0 - adds r1, r4, #0 - bl PositionRelative - ldr r1, _08095284 @ =gUnk_0801183C - adds r0, r4, #0 - bl sub_0807DAD0 - adds r1, r4, #0 - adds r1, #0x84 - str r0, [r1] -_0809527C: - pop {r4, r5, pc} - .align 2, 0 -_08095280: .4byte 0xFFF00000 -_08095284: .4byte gUnk_0801183C - - thumb_func_start sub_08095288 -sub_08095288: @ 0x08095288 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - adds r1, r0, #0 - cmp r1, #0 - bne _080952AA - adds r0, #1 - strb r0, [r4, #0xc] - strb r1, [r4, #0xd] - adds r0, r4, #0 - movs r1, #3 - bl sub_0805E3A0 - adds r0, r4, #0 - movs r1, #0 - bl LoadAnimation -_080952AA: - ldrb r0, [r4, #0xd] - cmp r0, #0 - beq _080952F0 - movs r1, #0xc0 - lsls r1, r1, #5 - adds r0, r4, #0 - bl sub_080044EC - cmp r0, #1 - bhi _080952D4 - movs r0, #0 - strb r0, [r4, #0xd] - movs r2, #0x80 - lsls r2, r2, #1 - movs r3, #0xc0 - lsls r3, r3, #8 - adds r0, r4, #0 - adds r1, r2, #0 - bl sub_0805EC9C - b _080952F0 -_080952D4: - movs r2, #0x80 - lsls r2, r2, #1 - ldrb r3, [r4, #0xe] - lsls r3, r3, #8 - adds r0, r4, #0 - adds r1, r2, #0 - bl sub_0805EC9C - ldrb r0, [r4, #0xe] - adds r0, #0xa - strb r0, [r4, #0xe] - adds r0, r4, #0 - bl sub_0806F69C -_080952F0: - ldr r3, [r4, #0x54] - cmp r3, #0 - beq _080952FE - adds r0, r3, #0 - adds r1, r4, #0 - bl CopyPosition -_080952FE: - adds r0, r4, #0 - bl sub_080042B8 - ldr r3, [r4, #0x50] - cmp r3, #0 - beq _08095328 - ldrb r1, [r3, #0x18] - lsls r1, r1, #0x1e - lsrs r1, r1, #0x1e - ldrb r2, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #0x18] - ldr r0, [r3, #4] - cmp r0, #0 - bne _0809532C - bl sub_0805E780 - b _0809532C -_08095328: - bl sub_0805E780 -_0809532C: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08095330 -sub_08095330: @ 0x08095330 - push {r4, r5, lr} - adds r5, r0, #0 - movs r0, #0x6a - movs r1, #0xb - movs r2, #0 - bl CreateObject - adds r4, r0, #0 - cmp r4, #0 - beq _0809535E - str r4, [r5, #0x54] - str r5, [r4, #0x54] - str r5, [r4, #0x50] - adds r0, r5, #0 - adds r1, r4, #0 - bl CopyPosition - ldr r0, _08095360 @ =0x0000FFF0 - strh r0, [r4, #0x36] - adds r0, r4, #0 - adds r1, r4, #0 - bl sub_0806FAB0 -_0809535E: - pop {r4, r5, pc} - .align 2, 0 -_08095360: .4byte 0x0000FFF0 - - thumb_func_start sub_08095364 -sub_08095364: @ 0x08095364 - push {r4, r5, r6, lr} - ldr r6, [r0, #0x54] - cmp r6, #0 - beq _0809539E - movs r5, #0 - movs r0, #2 - strb r0, [r6, #0x1e] - adds r0, r6, #0 - adds r0, #0x38 - movs r4, #1 - strb r4, [r0] - adds r0, r6, #0 - bl UpdateSpriteOrderAndFlip - str r5, [r6, #0x54] - strb r4, [r6, #0xd] - ldr r0, _080953A0 @ =0x0000FFF0 - strh r0, [r6, #0x36] - movs r0, #7 - strb r0, [r6, #0x15] - movs r0, #0xc0 - lsls r0, r0, #0xa - str r0, [r6, #0x20] - movs r0, #0x80 - strh r0, [r6, #0x24] - adds r0, r6, #0 - movs r1, #1 - bl LoadAnimation -_0809539E: - pop {r4, r5, r6, pc} - .align 2, 0 -_080953A0: .4byte 0x0000FFF0 - - thumb_func_start sub_080953A4 -sub_080953A4: @ 0x080953A4 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _080953E0 - adds r0, #1 - strb r0, [r4, #0xc] - ldr r0, _08095414 @ =0x0000FFF0 - strh r0, [r4, #0x36] - adds r0, r4, #0 - movs r1, #2 - bl sub_0805E3A0 - ldr r1, _08095418 @ =gUnk_08114F30 - ldrb r2, [r4, #0x19] - lsrs r0, r2, #6 - adds r0, r0, r1 - ldrb r1, [r0] - lsls r1, r1, #6 - movs r0, #0x3f - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #0x19] - adds r0, r4, #0 - adds r1, r4, #0 - bl sub_0806FAB0 - adds r0, r4, #0 - bl sub_0807DD64 -_080953E0: - adds r0, r4, #0 - movs r1, #0 - bl sub_0807DDAC - adds r0, r4, #0 - bl sub_0807DDE4 - adds r0, r4, #0 - bl sub_08004274 - ldrb r0, [r4, #0xa] - cmp r0, #0xd - bne _08095412 - adds r0, r4, #0 - adds r0, #0x5b - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - ldr r1, _0809541C @ =0x00000139 - cmp r0, #0 - beq _0809540C - movs r1, #0 -_0809540C: - adds r0, r4, #0 - bl sub_0801D2B4 -_08095412: - pop {r4, pc} - .align 2, 0 -_08095414: .4byte 0x0000FFF0 -_08095418: .4byte gUnk_08114F30 -_0809541C: .4byte 0x00000139 - - thumb_func_start sub_08095420 -sub_08095420: @ 0x08095420 - push {r4, r5, r6, lr} - adds r5, r0, #0 - adds r6, r1, #0 - movs r0, #0x6a - movs r1, #0xc - movs r2, #0 - bl CreateObject - adds r4, r0, #0 - cmp r4, #0 - beq _08095450 - ldr r3, _08095454 @ =0xFFF00000 - adds r0, r5, #0 - adds r1, r4, #0 - movs r2, #0 - bl PositionRelative - ldr r1, [r6, #4] - adds r0, r4, #0 - bl sub_0807DAD0 - adds r1, r4, #0 - adds r1, #0x84 - str r0, [r1] -_08095450: - pop {r4, r5, r6, pc} - .align 2, 0 -_08095454: .4byte 0xFFF00000 - - thumb_func_start nullsub_527 -nullsub_527: @ 0x08095458 - bx lr - .align 2, 0 - - thumb_func_start sub_0809545C -sub_0809545C: @ 0x0809545C - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r6, r1, #0 - movs r0, #0x6a - movs r1, #0xd - movs r2, #0 - bl CreateObject - adds r5, r0, #0 - cmp r5, #0 - beq _080954A6 - ldr r3, _080954A8 @ =0xFFF00000 - adds r0, r4, #0 - adds r1, r5, #0 - movs r2, #0 - bl PositionRelative - ldr r1, [r6, #4] - adds r0, r5, #0 - bl sub_0807DAD0 - adds r1, r5, #0 - adds r1, #0x84 - str r0, [r1] - movs r0, #0x6a - movs r1, #2 - movs r2, #0 - bl CreateObject - adds r4, r0, #0 - cmp r4, #0 - beq _080954A6 - adds r0, r5, #0 - adds r1, r4, #0 - bl CopyPosition - str r5, [r4, #0x50] -_080954A6: - pop {r4, r5, r6, pc} - .align 2, 0 -_080954A8: .4byte 0xFFF00000 - - thumb_func_start sub_080954AC -sub_080954AC: @ 0x080954AC - push {r4, r5, lr} - adds r5, r0, #0 - movs r0, #0x6a - movs r1, #0x1a - movs r2, #0 - bl CreateObject - adds r4, r0, #0 - cmp r4, #0 - beq _080954D6 - adds r0, r5, #0 - adds r1, r4, #0 - bl CopyPosition - ldr r1, _080954D8 @ =gUnk_08015B14 - adds r0, r4, #0 - bl sub_0807DAD0 - adds r1, r4, #0 - adds r1, #0x84 - str r0, [r1] -_080954D6: - pop {r4, r5, pc} - .align 2, 0 -_080954D8: .4byte gUnk_08015B14 - - thumb_func_start sub_080954DC -sub_080954DC: @ 0x080954DC - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #1 - beq _08095598 - cmp r0, #1 - bgt _080954F0 - cmp r0, #0 - beq _080954FC - b _0809562C -_080954F0: - cmp r0, #2 - beq _080955B8 - cmp r0, #3 - bne _080954FA - b _08095620 -_080954FA: - b _0809562C -_080954FC: - ldrb r0, [r4, #0xe] - adds r5, r0, #0 - cmp r5, #0 - beq _0809550A - subs r0, #1 - strb r0, [r4, #0xe] - b _0809562C -_0809550A: - movs r0, #1 - movs r2, #1 - strb r0, [r4, #0xc] - strb r5, [r4, #0xd] - ldrb r1, [r4, #0x18] - subs r0, #5 - ands r0, r1 - orrs r0, r2 - strb r0, [r4, #0x18] - strh r5, [r4, #0x36] - adds r3, r4, #0 - adds r3, #0x29 - ldrb r1, [r3] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - orrs r0, r2 - strb r0, [r3] - ldrh r1, [r4, #0x2e] - adds r0, r4, #0 - adds r0, #0x68 - strh r1, [r0] - ldrh r0, [r4, #0x32] - adds r1, r4, #0 - adds r1, #0x6a - strh r0, [r1] - adds r0, r4, #0 - adds r0, #0x6c - strh r5, [r0] - ldr r1, _08095590 @ =gUnk_08122AE0 - ldrb r0, [r4, #0xb] - adds r0, r0, r1 - ldrb r0, [r0] - adds r5, r4, #0 - adds r5, #0x6e - strb r0, [r5] - ldr r1, _08095594 @ =gUnk_08122AE8 - ldrb r0, [r4, #0xb] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r1, [r0] - adds r0, r4, #0 - bl sub_0801D2B4 - adds r0, r4, #0 - bl sub_0807DD64 - ldrb r1, [r4, #0xb] - adds r1, #2 - adds r0, r4, #0 - bl UpdateSprite - adds r0, r4, #0 - bl sub_08095754 - bl Random - movs r1, #6 - bl __modsi3 - movs r1, #0xde - lsls r1, r1, #1 - adds r0, r0, r1 - bl PlaySFX - adds r1, r5, #0 - b _08095630 - .align 2, 0 -_08095590: .4byte gUnk_08122AE0 -_08095594: .4byte gUnk_08122AE8 -_08095598: - ldrh r0, [r4, #0x36] - subs r0, #1 - strh r0, [r4, #0x36] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r2, #0x10 - rsbs r2, r2, #0 - adds r1, r4, #0 - adds r1, #0x6e - cmp r0, r2 - bgt _08095630 - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] - strh r2, [r4, #0x36] - b _08095630 -_080955B8: - adds r5, r4, #0 - adds r5, #0x6c - ldrh r0, [r5] - adds r0, #1 - strh r0, [r5] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0x40 - bls _080955CE - movs r0, #0x40 - strh r0, [r5] -_080955CE: - ldr r3, _0809561C @ =gUnk_080C9160 - movs r2, #0x6e - adds r2, r2, r4 - mov ip, r2 - ldrb r0, [r2] - adds r0, #0x40 - lsls r0, r0, #1 - adds r0, r0, r3 - movs r2, #0 - ldrsh r1, [r0, r2] - ldrh r0, [r5] - lsls r0, r0, #8 - adds r2, r1, #0 - muls r2, r0, r2 - asrs r2, r2, #0x10 - strh r2, [r4, #0x2e] - mov r1, ip - ldrb r0, [r1] - lsls r0, r0, #1 - adds r0, r0, r3 - movs r3, #0 - ldrsh r1, [r0, r3] - ldrh r0, [r5] - lsls r0, r0, #7 - muls r1, r0, r1 - asrs r1, r1, #0x10 - strh r1, [r4, #0x32] - adds r0, r4, #0 - adds r0, #0x68 - ldrh r0, [r0] - adds r2, r2, r0 - strh r2, [r4, #0x2e] - adds r0, r4, #0 - adds r0, #0x6a - ldrh r0, [r0] - adds r1, r1, r0 - strh r1, [r4, #0x32] - mov r1, ip - b _08095630 - .align 2, 0 -_0809561C: .4byte gUnk_080C9160 -_08095620: - movs r0, #0x24 - ldrsh r1, [r4, r0] - ldrb r2, [r4, #0x15] - adds r0, r4, #0 - bl sub_0806F62C -_0809562C: - adds r1, r4, #0 - adds r1, #0x6e -_08095630: - ldrb r0, [r1] - adds r0, #4 - strb r0, [r1] - ldrb r0, [r4, #0xd] - cmp r0, #0 - beq _0809564A - adds r0, r4, #0 - bl sub_080040A8 - cmp r0, #0 - bne _0809564A - bl sub_0805E780 -_0809564A: - ldrb r1, [r4, #0x15] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0809565E - ldrb r1, [r4, #0x18] - movs r0, #0x41 - rsbs r0, r0, #0 - ands r0, r1 - b _08095664 -_0809565E: - ldrb r0, [r4, #0x18] - movs r1, #0x40 - orrs r0, r1 -_08095664: - strb r0, [r4, #0x18] - adds r0, r4, #0 - movs r1, #0 - bl sub_0807DDAC - adds r0, r4, #0 - bl sub_0807DDE4 - adds r0, r4, #0 - bl sub_08004274 - pop {r4, r5, pc} - - thumb_func_start sub_0809567C -sub_0809567C: @ 0x0809567C - push {r4, lr} - adds r4, r0, #0 - movs r0, #3 - strb r0, [r4, #0xc] - movs r0, #1 - strb r0, [r4, #0xd] - movs r0, #0x80 - lsls r0, r0, #3 - strh r0, [r4, #0x24] - adds r0, r4, #0 - adds r0, #0x68 - movs r2, #0 - ldrsh r1, [r0, r2] - lsls r1, r1, #0x10 - ldr r0, [r4, #0x2c] - subs r0, r0, r1 - adds r1, r4, #0 - adds r1, #0x6a - movs r3, #0 - ldrsh r2, [r1, r3] - lsls r2, r2, #0x10 - ldr r1, [r4, #0x30] - subs r1, r1, r2 - bl sub_080045DA - strb r0, [r4, #0x15] - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080956B4 -sub_080956B4: @ 0x080956B4 - push {r4, r5, r6, lr} - adds r5, r0, #0 - ldrb r0, [r5, #0xc] - cmp r0, #0 - bne _080956E2 - adds r0, #1 - strb r0, [r5, #0xc] - adds r0, r5, #0 - movs r1, #0 - bl UpdateSprite - adds r4, r5, #0 - adds r4, #0x68 - ldrh r2, [r5, #0x2e] - ldrh r1, [r5, #0x32] - movs r0, #7 -_080956D4: - strh r2, [r4] - adds r4, #2 - strh r1, [r4] - adds r4, #2 - subs r0, #1 - cmp r0, #0 - bge _080956D4 -_080956E2: - adds r0, r5, #0 - bl sub_08004274 - ldrb r0, [r5, #0xb] - ldr r1, _08095724 @ =gUnk_030010A0 - ldr r1, [r1] - adds r0, r0, r1 - movs r1, #0xf - ands r0, r1 - cmp r0, #0 - bne _080956FE - adds r0, r5, #0 - bl sub_080957B4 -_080956FE: - ldr r6, [r5, #0x50] - cmp r6, #0 - beq _08095728 - ldrb r1, [r6, #0x18] - lsls r1, r1, #0x1e - lsrs r1, r1, #0x1e - ldrb r2, [r5, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r5, #0x18] - ldr r0, [r6, #4] - cmp r0, #0 - bne _0809572C - bl sub_0805E780 - b _0809572C - .align 2, 0 -_08095724: .4byte gUnk_030010A0 -_08095728: - bl sub_0805E780 -_0809572C: - adds r4, r5, #0 - adds r4, #0x68 - adds r0, r5, #0 - adds r0, #0x6c - adds r1, r4, #0 - movs r2, #0x1c - bl sub_0801D66C - ldrh r0, [r4, #0x14] - strh r0, [r5, #0x2e] - ldrh r0, [r4, #0x16] - strh r0, [r5, #0x32] - ldrh r0, [r6, #0x36] - strh r0, [r5, #0x36] - ldrh r0, [r6, #0x2e] - strh r0, [r4, #0x1c] - ldrh r0, [r6, #0x32] - strh r0, [r4, #0x1e] - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_08095754 -sub_08095754: @ 0x08095754 - push {r4, r5, lr} - adds r5, r0, #0 - ldrb r2, [r5, #0xb] - movs r0, #0x6a - movs r1, #0xf - bl CreateObject - adds r4, r0, #0 - cmp r4, #0 - beq _0809577A - str r5, [r4, #0x50] - adds r0, r5, #0 - adds r1, r4, #0 - bl CopyPosition - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_0806FAD8 -_0809577A: - pop {r4, r5, pc} - - thumb_func_start sub_0809577C -sub_0809577C: @ 0x0809577C - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _08095796 - adds r0, #1 - strb r0, [r4, #0xc] - ldr r0, _080957B0 @ =0x0000FFF0 - strh r0, [r4, #0x36] - adds r0, r4, #0 - movs r1, #1 - bl UpdateSprite -_08095796: - adds r0, r4, #0 - bl sub_08004274 - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080957AE - bl sub_0805E780 -_080957AE: - pop {r4, pc} - .align 2, 0 -_080957B0: .4byte 0x0000FFF0 - - thumb_func_start sub_080957B4 -sub_080957B4: @ 0x080957B4 - push {r4, r5, lr} - adds r5, r0, #0 - movs r0, #0x6a - movs r1, #0x10 - movs r2, #0 - bl CreateObject - adds r4, r0, #0 - cmp r4, #0 - beq _080957DA - str r5, [r4, #0x50] - adds r0, r5, #0 - adds r1, r4, #0 - bl CopyPosition - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_0806FAD8 -_080957DA: - pop {r4, r5, pc} - - thumb_func_start sub_080957DC -sub_080957DC: @ 0x080957DC - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _080957F8 - adds r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - bl sub_0807DD64 - adds r0, r4, #0 - movs r1, #0 - bl LoadAnimation -_080957F8: - adds r0, r4, #0 - movs r1, #0 - bl sub_0807DDAC - adds r0, r4, #0 - bl sub_0807DDE4 - adds r0, r4, #0 - bl sub_080042B8 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08095810 -sub_08095810: @ 0x08095810 - push {r4, r5, lr} - adds r5, r0, #0 - movs r0, #0x6a - movs r1, #0x11 - movs r2, #0 - bl CreateObject - adds r4, r0, #0 - cmp r4, #0 - beq _08095844 - str r5, [r4, #0x50] - adds r0, r5, #0 - adds r1, r4, #0 - bl CopyPosition - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_0806FAB0 - ldr r1, _08095848 @ =gUnk_08011940 - adds r0, r4, #0 - bl sub_0807DAD0 - adds r1, r4, #0 - adds r1, #0x84 - str r0, [r1] -_08095844: - pop {r4, r5, pc} - .align 2, 0 -_08095848: .4byte gUnk_08011940 - - thumb_func_start sub_0809584C -sub_0809584C: @ 0x0809584C - push {r4, r5, lr} - adds r5, r0, #0 - adds r0, #0x45 - ldrb r1, [r0] - movs r0, #0x7f - ands r0, r1 - cmp r0, #0 - beq _0809586C - ldr r0, _080958D0 @ =gUnk_020342F8 - subs r1, #1 - bl sub_0801D5A8 - cmp r0, #0 - bne _0809586C - bl sub_0805E780 -_0809586C: - ldrb r0, [r5, #0xe] - cmp r0, #0 - beq _08095880 - ldrb r0, [r5, #0xb] - bl sub_0801E7F4 - cmp r0, #0 - beq _08095880 - bl sub_0805E780 -_08095880: - ldrb r0, [r5, #0xc] - cmp r0, #0 - bne _080958B2 - adds r0, #1 - strb r0, [r5, #0xc] - adds r1, r5, #0 - adds r1, #0x38 - movs r0, #2 - strb r0, [r1] - adds r0, r5, #0 - bl UpdateSpriteOrderAndFlip - ldr r1, _080958D4 @ =gUnk_08114F30 - ldrb r2, [r5, #0x19] - lsrs r0, r2, #6 - adds r0, r0, r1 - ldrb r1, [r0] - lsls r1, r1, #6 - movs r0, #0x3f - ands r0, r2 - orrs r0, r1 - strb r0, [r5, #0x19] - adds r0, r5, #0 - bl sub_0807DD64 -_080958B2: - adds r0, r5, #0 - movs r1, #0 - bl sub_0807DDAC - adds r0, r5, #0 - bl sub_0807DDE4 - ldrb r4, [r5, #0xa] - movs r0, #0x5c - strb r0, [r5, #0xa] - adds r0, r5, #0 - bl sub_08080CB4 - strb r4, [r5, #0xa] - pop {r4, r5, pc} - .align 2, 0 -_080958D0: .4byte gUnk_020342F8 -_080958D4: .4byte gUnk_08114F30 - - thumb_func_start sub_080958D8 -sub_080958D8: @ 0x080958D8 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _080958EC - adds r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - bl sub_0807DD64 -_080958EC: - adds r0, r4, #0 - movs r1, #0 - bl sub_0807DDAC - adds r0, r4, #0 - bl sub_0807DDE4 - adds r0, r4, #0 - bl sub_08004274 - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _08095914 - adds r0, r4, #0 - bl sub_08095954 -_08095914: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08095918 -sub_08095918: @ 0x08095918 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0809593C - adds r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #6 - bl sub_0805E3A0 - adds r0, r4, #0 - bl sub_0807DD64 - adds r0, r4, #0 - movs r1, #0 - bl UpdateSprite -_0809593C: - adds r0, r4, #0 - movs r1, #0 - bl sub_0807DDAC - adds r0, r4, #0 - bl sub_0807DDE4 - adds r0, r4, #0 - bl sub_08004274 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08095954 -sub_08095954: @ 0x08095954 - push {r4, r5, lr} - adds r5, r0, #0 - movs r0, #0x6a - movs r1, #0x14 - movs r2, #0 - bl CreateObject - adds r4, r0, #0 - cmp r4, #0 - beq _080959B8 - str r5, [r4, #0x50] - ldrb r0, [r5, #0x14] - ldr r1, _080959AC @ =gUnk_08122AF8 - adds r0, r0, r1 - movs r2, #0 - ldrsb r2, [r0, r2] - lsls r2, r2, #0x10 - movs r3, #1 - ldrsb r3, [r0, r3] - lsls r3, r3, #0x10 - adds r0, r5, #0 - adds r1, r4, #0 - bl PositionRelative - ldr r0, _080959B0 @ =0x0000FFFD - strh r0, [r4, #0x36] - ldr r1, _080959B4 @ =gUnk_08012C48 - adds r0, r4, #0 - bl sub_0807DAD0 - adds r1, r4, #0 - adds r1, #0x84 - str r0, [r1] - movs r0, #0x92 - lsls r0, r0, #1 - bl sub_08004488 - adds r2, r5, #0 - adds r2, #0x5a - ldrb r1, [r2] - movs r0, #0xfe - ands r0, r1 - strb r0, [r2] - b _080959C4 - .align 2, 0 -_080959AC: .4byte gUnk_08122AF8 -_080959B0: .4byte 0x0000FFFD -_080959B4: .4byte gUnk_08012C48 -_080959B8: - ldr r0, _080959C8 @ =gUnk_02033280 - ldr r1, [r0] - movs r2, #0x80 - lsls r2, r2, #1 - orrs r1, r2 - str r1, [r0] -_080959C4: - pop {r4, r5, pc} - .align 2, 0 -_080959C8: .4byte gUnk_02033280 - - thumb_func_start sub_080959CC -sub_080959CC: @ 0x080959CC - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _080959F2 - adds r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #0x18] - adds r0, r4, #0 - movs r1, #3 - bl sub_0805E3A0 - adds r0, r4, #0 - bl sub_0807DD64 -_080959F2: - adds r0, r4, #0 - movs r1, #0 - bl sub_0807DDAC - adds r0, r4, #0 - bl sub_0807DDE4 - adds r0, r4, #0 - bl sub_080042B8 - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x81 - rsbs r0, r0, #0 - ands r1, r0 - adds r0, r4, #0 - bl sub_08095D30 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08095A1C -sub_08095A1C: @ 0x08095A1C - push {r4, r5, lr} - adds r5, r1, #0 - movs r0, #0x6a - movs r1, #0x16 - movs r2, #0 - bl CreateObject - adds r4, r0, #0 - cmp r4, #0 - beq _08095A5E - ldr r1, _08095A60 @ =gRoomControls - ldrh r0, [r1, #6] - adds r0, #0xe8 - strh r0, [r4, #0x2e] - movs r2, #0x9c - lsls r2, r2, #1 - adds r0, r2, #0 - ldrh r1, [r1, #8] - adds r0, r0, r1 - strh r0, [r4, #0x32] - ldr r0, _08095A64 @ =0x0000FFFC - strh r0, [r4, #0x36] - adds r1, r4, #0 - adds r1, #0x38 - movs r0, #2 - strb r0, [r1] - ldr r1, [r5, #4] - adds r0, r4, #0 - bl sub_0807DAD0 - adds r1, r4, #0 - adds r1, #0x84 - str r0, [r1] -_08095A5E: - pop {r4, r5, pc} - .align 2, 0 -_08095A60: .4byte gRoomControls -_08095A64: .4byte 0x0000FFFC - - thumb_func_start sub_08095A68 -sub_08095A68: @ 0x08095A68 - push {lr} - sub sp, #4 - movs r0, #0 - str r0, [sp] - movs r0, #6 - movs r1, #0x6a - movs r2, #6 - movs r3, #0x16 - bl sub_0805EB2C - adds r1, r0, #0 - cmp r1, #0 - beq _08095A86 - movs r0, #0xff - strb r0, [r1, #0xc] -_08095A86: - add sp, #4 - pop {pc} - .align 2, 0 - - thumb_func_start sub_08095A8C -sub_08095A8C: @ 0x08095A8C - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #5 - bhi _08095B44 - lsls r0, r0, #2 - ldr r1, _08095AA0 @ =_08095AA4 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08095AA0: .4byte _08095AA4 -_08095AA4: @ jump table - .4byte _08095ABC @ case 0 - .4byte _08095ACC @ case 1 - .4byte _08095ADC @ case 2 - .4byte _08095AE6 @ case 3 - .4byte _08095B12 @ case 4 - .4byte _08095B1C @ case 5 -_08095ABC: - ldrb r0, [r4, #0xc] - adds r0, #1 - movs r1, #0 - strb r0, [r4, #0xc] - strb r1, [r4, #0x1e] - adds r0, r4, #0 - bl sub_0807DD64 -_08095ACC: - adds r0, r4, #0 - movs r1, #0 - bl sub_0807DDAC - adds r0, r4, #0 - bl sub_0807DDE4 - b _08095B44 -_08095ADC: - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] - movs r0, #0x78 - strb r0, [r4, #0xe] -_08095AE6: - ldrb r1, [r4, #0x18] - lsls r0, r1, #0x1e - lsrs r0, r0, #0x1e - movs r5, #1 - eors r0, r5 - movs r3, #4 - rsbs r3, r3, #0 - adds r2, r3, #0 - ands r2, r1 - orrs r2, r0 - strb r2, [r4, #0x18] - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08095B44 - movs r0, #1 - strb r5, [r4, #0xc] - ands r2, r3 - orrs r2, r0 - b _08095B42 -_08095B12: - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] - movs r0, #0x78 - strb r0, [r4, #0xe] -_08095B1C: - ldrb r1, [r4, #0x18] - lsls r0, r1, #0x1e - lsrs r0, r0, #0x1e - movs r5, #1 - eors r0, r5 - movs r3, #4 - rsbs r3, r3, #0 - adds r2, r3, #0 - ands r2, r1 - orrs r2, r0 - strb r2, [r4, #0x18] - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08095B44 - strb r5, [r4, #0xc] - ands r2, r3 -_08095B42: - strb r2, [r4, #0x18] -_08095B44: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_08095B48 -sub_08095B48: @ 0x08095B48 - push {r4, r5, lr} - adds r5, r0, #0 - ldrb r0, [r5, #0xc] - cmp r0, #0 - bne _08095B78 - adds r0, #1 - strb r0, [r5, #0xc] - adds r1, r5, #0 - adds r1, #0x38 - movs r0, #2 - strb r0, [r1] - adds r0, r5, #0 - bl UpdateSpriteOrderAndFlip - ldr r1, _08095BA8 @ =gUnk_08114F30 - ldrb r2, [r5, #0x19] - lsrs r0, r2, #6 - adds r0, r0, r1 - ldrb r1, [r0] - lsls r1, r1, #6 - movs r0, #0x3f - ands r0, r2 - orrs r0, r1 - strb r0, [r5, #0x19] -_08095B78: - ldrb r0, [r5, #0x18] - movs r4, #4 - rsbs r4, r4, #0 - adds r1, r4, #0 - ands r1, r0 - strb r1, [r5, #0x18] - ldr r2, [r5, #0x50] - cmp r2, #0 - beq _08095BCE - adds r0, r2, #0 - adds r0, #0x5a - ldrb r3, [r0] - movs r0, #0x40 - ands r0, r3 - cmp r0, #0 - bne _08095BAC - movs r0, #0x80 - ands r0, r3 - cmp r0, #0 - beq _08095BCE - bl sub_0805E780 - b _08095BDC - .align 2, 0 -_08095BA8: .4byte gUnk_08114F30 -_08095BAC: - adds r0, r1, #0 - ands r0, r4 - movs r1, #1 - orrs r0, r1 - strb r0, [r5, #0x18] - ldrh r0, [r2, #0x12] - ldrb r1, [r2, #0x1e] - bl sub_080700C8 - ldrb r1, [r0] - adds r2, r5, #0 - adds r2, #0x62 - strb r1, [r2] - ldrb r0, [r0, #1] - adds r1, r5, #0 - adds r1, #0x63 - strb r0, [r1] -_08095BCE: - ldrb r4, [r5, #0xa] - ldrb r0, [r5, #0xb] - strb r0, [r5, #0xa] - adds r0, r5, #0 - bl sub_08080CB4 - strb r4, [r5, #0xa] -_08095BDC: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_08095BE0 -sub_08095BE0: @ 0x08095BE0 - push {r4, lr} - adds r4, r0, #0 - adds r2, r1, #0 - movs r0, #0x6a - movs r1, #0x18 - bl CreateObject - adds r1, r0, #0 - cmp r1, #0 - beq _08095BFC - str r4, [r1, #0x50] - adds r0, r4, #0 - bl CopyPosition -_08095BFC: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08095C00 -sub_08095C00: @ 0x08095C00 - push {lr} - adds r2, r0, #0 - ldrb r1, [r2, #0xc] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08095C14 - bl sub_0805E780 - b _08095C46 -_08095C14: - ldr r3, [r2, #0x50] - cmp r3, #0 - beq _08095C46 - adds r1, r2, #0 - adds r1, #0x60 - movs r0, #0xe8 - strh r0, [r1] - ldrb r0, [r3, #0x18] - lsls r0, r0, #0x1e - lsrs r0, r0, #0x1e - cmp r0, #1 - bne _08095C38 - ldrb r1, [r2, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2, #0x18] - b _08095C46 -_08095C38: - ldrb r0, [r2, #0x18] - movs r1, #4 - rsbs r1, r1, #0 - ands r1, r0 - movs r0, #1 - orrs r1, r0 - strb r1, [r2, #0x18] -_08095C46: - pop {pc} - - thumb_func_start sub_08095C48 -sub_08095C48: @ 0x08095C48 - push {r4, lr} - adds r4, r0, #0 - movs r0, #0x6a - movs r1, #0x19 - movs r2, #0 - bl CreateObject - adds r1, r0, #0 - cmp r1, #0 - beq _08095C66 - str r1, [r4, #0x54] - str r4, [r1, #0x50] - adds r0, r4, #0 - bl CopyPosition -_08095C66: - pop {r4, pc} - - thumb_func_start sub_08095C68 -sub_08095C68: @ 0x08095C68 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _08095C80 - adds r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x1e] - ldrh r2, [r4, #0x12] - adds r0, r4, #0 - bl sub_080042D0 -_08095C80: - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _08095CAA - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #7 - bhi _08095CA4 - ldrb r2, [r4, #0x18] - lsls r1, r2, #0x1e - lsrs r1, r1, #0x1e - movs r0, #1 - eors r1, r0 - subs r0, #5 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #0x18] -_08095CA4: - ldrb r0, [r4, #0xe] - cmp r0, #0 - bne _08095CAE -_08095CAA: - bl sub_0805E780 -_08095CAE: - pop {r4, pc} - - thumb_func_start sub_08095CB0 -sub_08095CB0: @ 0x08095CB0 - push {r4, r5, lr} - adds r5, r0, #0 - movs r0, #0x6a - movs r1, #0x1b - movs r2, #0 - bl CreateObject - adds r4, r0, #0 - cmp r4, #0 - beq _08095CDC - str r4, [r5, #0x54] - str r5, [r4, #0x50] - adds r0, r5, #0 - adds r1, r4, #0 - bl CopyPosition - movs r0, #0x10 - strb r0, [r4, #0xe] - ldrb r0, [r5, #0x1e] - strb r0, [r4, #0x1e] - ldrb r0, [r5, #0x1e] - strb r0, [r4, #0x1f] -_08095CDC: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_08095CE0 -sub_08095CE0: @ 0x08095CE0 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _08095D06 - adds r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #0x18] - adds r0, r4, #0 - movs r1, #6 - bl sub_0805E3A0 - adds r0, r4, #0 - bl sub_0807DD64 -_08095D06: - adds r0, r4, #0 - movs r1, #0 - bl sub_0807DDAC - adds r0, r4, #0 - bl sub_0807DDE4 - adds r0, r4, #0 - bl sub_080042B8 - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x81 - rsbs r0, r0, #0 - ands r1, r0 - adds r0, r4, #0 - bl sub_08095D30 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08095D30 -sub_08095D30: @ 0x08095D30 - push {lr} - adds r2, r0, #0 - adds r0, r1, #0 - cmp r0, #0 - beq _08095D4E - ldr r1, _08095D50 @ =gUnk_08122B00 - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r1, [r0] - movs r0, #0x81 - rsbs r0, r0, #0 - ands r1, r0 - adds r0, r2, #0 - bl sub_0801D2B4 -_08095D4E: - pop {pc} - .align 2, 0 -_08095D50: .4byte gUnk_08122B00 - - thumb_func_start sub_08095D54 -sub_08095D54: @ 0x08095D54 - push {r4, r5, lr} - adds r5, r1, #0 - movs r0, #0x6a - movs r1, #0x1c - movs r2, #0 - bl CreateObject - adds r4, r0, #0 - cmp r4, #0 - beq _08095D86 - ldr r0, _08095D88 @ =gLinkEntity - adds r1, r4, #0 - bl CopyPosition - adds r1, r4, #0 - adds r1, #0x38 - movs r0, #2 - strb r0, [r1] - ldr r1, [r5, #4] - adds r0, r4, #0 - bl sub_0807DAD0 - adds r1, r4, #0 - adds r1, #0x84 - str r0, [r1] -_08095D86: - pop {r4, r5, pc} - .align 2, 0 -_08095D88: .4byte gLinkEntity - - thumb_func_start sub_08095D8C -sub_08095D8C: @ 0x08095D8C - push {r4, r5, r6, lr} - adds r5, r0, #0 - adds r6, r1, #0 - movs r0, #0x6a - movs r1, #0x1d - movs r2, #0 - bl CreateObject - adds r4, r0, #0 - cmp r4, #0 - beq _08095DB8 - adds r0, r5, #0 - adds r1, r4, #0 - bl CopyPosition - ldr r1, [r6, #4] - adds r0, r4, #0 - bl sub_0807DAD0 - adds r1, r4, #0 - adds r1, #0x84 - str r0, [r1] -_08095DB8: - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_08095DBC -sub_08095DBC: @ 0x08095DBC - push {r4, r5, lr} - adds r4, r0, #0 - ldr r5, _08095DF0 @ =gUnk_02033280 - ldr r0, [r5] - movs r1, #0x10 - ands r0, r1 - cmp r0, #0 - beq _08095DD0 - bl sub_0805E780 -_08095DD0: - ldrb r0, [r4, #0xb] - cmp r0, #0 - bne _08095DF4 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _08095DE6 - adds r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - bl sub_0807DD64 -_08095DE6: - adds r0, r4, #0 - movs r1, #0 - bl sub_0807DDAC - b _08095E74 - .align 2, 0 -_08095DF0: .4byte gUnk_02033280 -_08095DF4: - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _08095E30 - adds r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] - adds r0, r4, #0 - movs r1, #0x4b - bl UpdateSprite - ldr r1, _08095E78 @ =gUnk_08114F30 - ldrb r2, [r4, #0x19] - lsrs r0, r2, #6 - adds r0, r0, r1 - ldrb r1, [r0] - lsls r1, r1, #6 - movs r0, #0x3f - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #0x19] - adds r0, r4, #0 - adds r1, r4, #0 - bl sub_0806FAB0 -_08095E30: - ldrb r2, [r4, #0xb] - movs r0, #0x80 - ands r0, r2 - cmp r0, #0 - bne _08095E56 - ldr r0, [r5] - movs r1, #0x80 - lsls r1, r1, #0xa - ands r0, r1 - cmp r0, #0 - beq _08095E56 - movs r0, #0xff - strb r0, [r4, #0xb] - movs r0, #0x80 - lsls r0, r0, #0xb - str r0, [r4, #0x20] - movs r0, #0xc0 - lsls r0, r0, #8 - strh r0, [r4, #0x24] -_08095E56: - movs r0, #0x24 - ldrsh r1, [r4, r0] - adds r0, r4, #0 - bl sub_08003FC4 - adds r0, r4, #0 - bl sub_08004274 - adds r0, r4, #0 - bl sub_080040A8 - cmp r0, #0 - bne _08095E74 - bl sub_0805E780 -_08095E74: - pop {r4, r5, pc} - .align 2, 0 -_08095E78: .4byte gUnk_08114F30 - - thumb_func_start sub_08095E7C -sub_08095E7C: @ 0x08095E7C - push {r4, r5, r6, lr} - adds r5, r0, #0 - adds r6, r1, #0 - movs r0, #0x6a - movs r1, #0x1e - movs r2, #0 - bl CreateObject - adds r4, r0, #0 - cmp r4, #0 - beq _08095EA8 - adds r0, r5, #0 - adds r1, r4, #0 - bl CopyPosition - ldr r1, [r6, #4] - adds r0, r4, #0 - bl sub_0807DAD0 - adds r1, r4, #0 - adds r1, #0x84 - str r0, [r1] -_08095EA8: - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_08095EAC -sub_08095EAC: @ 0x08095EAC - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - mov sb, r0 - adds r4, r1, #0 - movs r0, #0x6a - movs r1, #0x1e - movs r2, #1 - bl CreateObject - adds r5, r0, #0 - cmp r5, #0 - beq _08095F2A - ldr r0, [r4, #4] - cmp r0, #0 - bne _08095EE0 - movs r7, #0x10 - movs r6, #0x1f - movs r0, #0x80 - lsls r0, r0, #7 - mov sl, r0 - movs r2, #0 - mov r8, r2 - b _08095F02 -_08095EE0: - movs r7, #8 - movs r6, #0xf - movs r0, #0x80 - lsls r0, r0, #0xb - mov sl, r0 - ldr r4, _08095F34 @ =gUnk_08122B0E - bl Random - movs r1, #7 - ands r1, r0 - lsls r1, r1, #1 - adds r1, r1, r4 - movs r0, #0 - ldrsh r2, [r1, r0] - mov r8, r2 - movs r0, #0xff - strb r0, [r5, #0xb] -_08095F02: - bl Random - adds r4, r0, #0 - ands r4, r6 - subs r4, r7, r4 - bl Random - ands r6, r0 - subs r3, r7, r6 - lsls r4, r4, #0x10 - lsls r3, r3, #0x10 - mov r0, sb - adds r1, r5, #0 - adds r2, r4, #0 - bl PositionRelative - mov r2, sl - str r2, [r5, #0x20] - mov r0, r8 - strh r0, [r5, #0x24] -_08095F2A: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08095F34: .4byte gUnk_08122B0E - - thumb_func_start sub_08095F38 -sub_08095F38: @ 0x08095F38 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _08095FC2 - movs r0, #1 - strb r0, [r4, #0xc] - movs r0, #0xff - strb r0, [r4, #0x1e] - ldrb r0, [r4, #0xb] - cmp r0, #4 - beq _08095F64 - cmp r0, #4 - bgt _08095F5A - cmp r0, #3 - beq _08095F60 - b _08095F6A -_08095F5A: - cmp r0, #6 - beq _08095F68 - b _08095F6A -_08095F60: - movs r1, #0 - b _08095F6A -_08095F64: - movs r1, #1 - b _08095F6A -_08095F68: - movs r1, #4 -_08095F6A: - adds r0, r4, #0 - bl sub_0801D2B4 - ldr r0, _08095F90 @ =gLinkEntity - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _08095F98 - adds r1, r4, #0 - adds r1, #0x84 - ldr r0, _08095F94 @ =0x000008BF - str r0, [r1] - movs r0, #0x34 - strb r0, [r4, #0xe] - movs r0, #0xb5 - b _08095FA6 - .align 2, 0 -_08095F90: .4byte gLinkEntity -_08095F94: .4byte 0x000008BF -_08095F98: - adds r1, r4, #0 - adds r1, #0x84 - ldr r0, _08096020 @ =0x000008E3 - str r0, [r1] - movs r0, #0x55 - strb r0, [r4, #0xe] - movs r0, #0xd6 -_08095FA6: - strb r0, [r4, #0xf] - ldr r0, _08096024 @ =gLinkEntity - adds r1, r4, #0 - bl CopyPosition - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #3 - orrs r0, r1 - strb r0, [r2] -_08095FC2: - ldr r5, _08096024 @ =gLinkEntity - adds r2, r5, #0 - adds r2, #0x5a - ldrb r1, [r2] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _08095FE0 - movs r0, #0xef - ands r0, r1 - strb r0, [r2] - movs r0, #0xea - lsls r0, r0, #1 - bl PlaySFX -_08095FE0: - ldrh r0, [r5, #0x12] - adds r1, r4, #0 - adds r1, #0x84 - ldr r2, [r1] - lsrs r1, r2, #8 - cmp r0, r1 - bne _08095FFC - adds r0, r5, #0 - adds r0, #0x58 - ldrb r1, [r0] - lsls r0, r2, #0x18 - lsrs r0, r0, #0x18 - cmp r1, r0 - beq _08096000 -_08095FFC: - bl sub_0805E780 -_08096000: - ldr r0, _08096024 @ =gLinkEntity - ldrb r0, [r0, #0x1e] - ldrb r1, [r4, #0xe] - subs r0, r0, r1 - ldrb r1, [r4, #0xf] - adds r0, r0, r1 - ldrb r1, [r4, #0x1e] - cmp r0, r1 - beq _0809601E - strb r0, [r4, #0x1e] - ldrb r1, [r4, #0x1e] - ldrh r2, [r4, #0x12] - adds r0, r4, #0 - bl sub_080042D0 -_0809601E: - pop {r4, r5, pc} - .align 2, 0 -_08096020: .4byte 0x000008E3 -_08096024: .4byte gLinkEntity - - thumb_func_start sub_08096028 -sub_08096028: @ 0x08096028 - push {r4, r5, lr} - movs r4, #6 - movs r5, #0xc0 - lsls r5, r5, #2 - adds r0, r5, #0 - movs r1, #0x7b - bl GetProgressFlagWithOffset - cmp r0, #0 - bne _0809603E - movs r4, #4 -_0809603E: - adds r0, r5, #0 - movs r1, #0x7a - bl GetProgressFlagWithOffset - cmp r0, #0 - bne _0809604C - movs r4, #3 -_0809604C: - movs r0, #0x6a - movs r1, #0x1f - adds r2, r4, #0 - bl CreateObject - pop {r4, r5, pc} - - thumb_func_start sub_08096058 -sub_08096058: @ 0x08096058 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0809606C - adds r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - bl sub_0807DD64 -_0809606C: - adds r0, r4, #0 - movs r1, #0 - bl sub_0807DDAC - adds r0, r4, #0 - bl sub_0807DDE4 - adds r0, r4, #0 - bl sub_08004274 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08096084 -sub_08096084: @ 0x08096084 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _080960A0 - adds r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - bl sub_0807DD64 - ldrb r1, [r4, #0xb] - adds r0, r4, #0 - bl UpdateSprite -_080960A0: - adds r0, r4, #0 - movs r1, #0 - bl sub_0807DDAC - adds r0, r4, #0 - bl sub_0807DDE4 - adds r0, r4, #0 - bl sub_08004274 - ldr r0, [r4, #0x50] - cmp r0, #0 - beq _080960C0 - adds r1, r4, #0 - bl CopyPosition -_080960C0: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080960C4 -sub_080960C4: @ 0x080960C4 - push {r4, r5, r6, lr} - adds r5, r0, #0 - adds r6, r1, #0 - movs r0, #0x6a - movs r1, #0x23 - movs r2, #0x49 - bl CreateObject - adds r4, r0, #0 - cmp r4, #0 - beq _08096110 - str r5, [r4, #0x50] - adds r0, r5, #0 - adds r1, r4, #0 - bl CopyPosition - ldr r1, _08096160 @ =gUnk_08114F34 - ldrb r0, [r5, #0x19] - lsrs r0, r0, #6 - adds r0, r0, r1 - ldrb r1, [r0] - lsls r1, r1, #6 - ldrb r2, [r4, #0x19] - movs r0, #0x3f - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #0x19] - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_0806FAD8 - ldr r1, [r6, #4] - adds r0, r4, #0 - bl sub_0807DAD0 - adds r1, r4, #0 - adds r1, #0x84 - str r0, [r1] -_08096110: - movs r0, #0x6a - movs r1, #0x24 - movs r2, #0x4a - bl CreateObject - adds r4, r0, #0 - cmp r4, #0 - beq _0809615E - str r5, [r4, #0x50] - adds r0, r5, #0 - adds r1, r4, #0 - bl CopyPosition - ldr r1, _08096164 @ =gUnk_08114F30 - ldrb r0, [r5, #0x19] - lsrs r0, r0, #6 - adds r0, r0, r1 - ldrb r1, [r0] - lsls r1, r1, #6 - ldrb r2, [r4, #0x19] - movs r0, #0x3f - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #0x19] - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_0806FAB0 - adds r1, r4, #0 - adds r1, #0x38 - movs r0, #2 - strb r0, [r1] - ldr r1, [r6, #4] - adds r0, r4, #0 - bl sub_0807DAD0 - adds r1, r4, #0 - adds r1, #0x84 - str r0, [r1] -_0809615E: - pop {r4, r5, r6, pc} - .align 2, 0 -_08096160: .4byte gUnk_08114F34 -_08096164: .4byte gUnk_08114F30 - - thumb_func_start sub_08096168 -sub_08096168: @ 0x08096168 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0809618C - adds r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] - adds r0, r4, #0 - movs r1, #0x4b - bl UpdateSprite -_0809618C: - adds r0, r4, #0 - bl sub_08004274 - movs r0, #0x24 - ldrsh r1, [r4, r0] - ldrb r2, [r4, #0x15] - adds r0, r4, #0 - bl sub_0806F62C - adds r0, r4, #0 - bl sub_080040A8 - cmp r0, #0 - bne _080961AC - bl sub_0805E780 -_080961AC: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080961B0 -sub_080961B0: @ 0x080961B0 - push {r4, r5, r6, r7, lr} - adds r7, r0, #0 - movs r5, #0 - ldr r6, _080961F0 @ =gUnk_08122B1E -_080961B8: - movs r0, #0x6a - movs r1, #0x25 - movs r2, #0 - bl CreateObject - adds r4, r0, #0 - cmp r4, #0 - beq _080961E6 - adds r0, r7, #0 - adds r1, r4, #0 - bl CopyPosition - lsls r0, r5, #5 - strb r0, [r4, #0x15] - bl Random - movs r2, #0xf8 - lsls r2, r2, #1 - adds r1, r2, #0 - ands r0, r1 - ldrh r1, [r6] - adds r0, r0, r1 - strh r0, [r4, #0x24] -_080961E6: - adds r6, #2 - adds r5, #1 - cmp r5, #7 - ble _080961B8 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_080961F0: .4byte gUnk_08122B1E - - thumb_func_start sub_080961F4 -sub_080961F4: @ 0x080961F4 - ldrb r2, [r0, #0x18] - movs r1, #4 - rsbs r1, r1, #0 - ands r1, r2 - movs r2, #1 - orrs r1, r2 - strb r1, [r0, #0x18] - movs r1, #0 - strb r1, [r0, #0x1e] - bx lr - - thumb_func_start sub_08096208 -sub_08096208: @ 0x08096208 - push {r4, r5, lr} - adds r5, r0, #0 - lsls r1, r1, #1 - ldr r0, _08096238 @ =gUnk_08122B2E - adds r4, r1, r0 - movs r0, #0x6a - movs r1, #0x26 - movs r2, #0 - bl CreateObject - adds r1, r0, #0 - cmp r1, #0 - beq _08096234 - movs r2, #0 - ldrsb r2, [r4, r2] - lsls r2, r2, #0x10 - movs r3, #1 - ldrsb r3, [r4, r3] - lsls r3, r3, #0x10 - adds r0, r5, #0 - bl PositionRelative -_08096234: - pop {r4, r5, pc} - .align 2, 0 -_08096238: .4byte gUnk_08122B2E - - thumb_func_start sub_0809623C -sub_0809623C: @ 0x0809623C - push {r4, lr} - adds r4, r0, #0 - movs r0, #0x6a - movs r1, #0x27 - movs r2, #0 - bl CreateObject - adds r1, r0, #0 - cmp r1, #0 - beq _0809625A - ldr r3, _0809625C @ =0xFFF00000 - adds r0, r4, #0 - movs r2, #0 - bl PositionRelative -_0809625A: - pop {r4, pc} - .align 2, 0 -_0809625C: .4byte 0xFFF00000 - - thumb_func_start sub_08096260 -sub_08096260: @ 0x08096260 - push {r4, lr} - adds r4, r0, #0 - movs r0, #0x6a - movs r1, #0x28 - movs r2, #0 - bl CreateObject - adds r1, r0, #0 - cmp r1, #0 - beq _0809627E - ldr r3, _08096280 @ =0xFFF00000 - adds r0, r4, #0 - movs r2, #0 - bl PositionRelative -_0809627E: - pop {r4, pc} - .align 2, 0 -_08096280: .4byte 0xFFF00000 - - thumb_func_start sub_08096284 -sub_08096284: @ 0x08096284 - push {lr} - movs r1, #0xd - bl sub_0809629C - pop {pc} - .align 2, 0 - - thumb_func_start sub_08096290 -sub_08096290: @ 0x08096290 - push {lr} - movs r1, #0xe - bl sub_0809629C - pop {pc} - .align 2, 0 - - thumb_func_start sub_0809629C -sub_0809629C: @ 0x0809629C - push {r4, r5, r6, lr} - adds r5, r0, #0 - adds r6, r1, #0 - ldrb r0, [r5, #0xc] - cmp r0, #0 - bne _080962B2 - movs r0, #1 - strb r0, [r5, #0xc] - adds r0, r5, #0 - bl sub_0807DD64 -_080962B2: - adds r0, r5, #0 - movs r1, #0 - bl sub_0807DDAC - adds r0, r5, #0 - bl sub_0807DDE4 - movs r1, #0x80 - lsls r1, r1, #5 - adds r0, r5, #0 - bl sub_08003FC4 - ldrb r4, [r5, #0xa] - strb r6, [r5, #0xa] - adds r0, r5, #0 - bl sub_08080CB4 - strb r4, [r5, #0xa] - pop {r4, r5, r6, pc} - - thumb_func_start sub_080962D8 -sub_080962D8: @ 0x080962D8 - push {lr} - movs r1, #0x80 - lsls r1, r1, #1 - movs r0, #6 - bl DoFade - pop {pc} - .align 2, 0 - - thumb_func_start sub_080962E8 -sub_080962E8: @ 0x080962E8 - push {lr} - movs r1, #0x80 - lsls r1, r1, #1 - movs r0, #7 - bl DoFade - pop {pc} - .align 2, 0 - - thumb_func_start sub_080962F8 -sub_080962F8: @ 0x080962F8 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, [r1, #4] - lsls r4, r4, #4 - ldr r0, _08096318 @ =gUnk_08122B3C - adds r4, r4, r0 - ldrb r2, [r4, #0xc] - adds r3, r4, #0 - adds r3, #8 - adds r0, r5, #0 - movs r1, #1 - bl sub_08078850 - str r4, [r5, #0x48] - pop {r4, r5, pc} - .align 2, 0 -_08096318: .4byte gUnk_08122B3C - - thumb_func_start sub_0809631C -sub_0809631C: @ 0x0809631C - push {lr} - ldr r2, _08096330 @ =gUnk_08123168 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08096330: .4byte gUnk_08123168 - - thumb_func_start sub_08096334 -sub_08096334: @ 0x08096334 - push {r4, r5, r6, lr} - adds r5, r0, #0 - movs r0, #1 - strb r0, [r5, #0xc] - movs r4, #0 - movs r6, #0x80 - strh r6, [r5, #0x24] - ldr r0, _08096358 @ =gUnk_080FD2A8 - str r0, [r5, #0x48] - ldrb r0, [r5, #0xa] - cmp r0, #1 - bne _0809634E - b _08096494 -_0809634E: - cmp r0, #1 - bgt _0809635C - cmp r0, #0 - beq _08096368 - b _0809650A - .align 2, 0 -_08096358: .4byte gUnk_080FD2A8 -_0809635C: - cmp r0, #2 - bne _08096362 - b _080964A6 -_08096362: - cmp r0, #3 - beq _080963FC - b _0809650A -_08096368: - movs r0, #0x1a - bl GetProgressFlag - cmp r0, #0 - beq _080963DA - movs r0, #0x1b - bl GetProgressFlag - cmp r0, #0 - bne _080963A4 - ldr r0, _0809639C @ =gLinkEntity - movs r3, #0x80 - lsls r3, r3, #9 - adds r1, r5, #0 - movs r2, #0 - bl PositionRelative - ldr r0, _080963A0 @ =0x00004022 - adds r1, r5, #0 - adds r1, #0x38 - ldrb r2, [r1] - movs r1, #0xdc - bl sub_0800015E - b _0809650A - .align 2, 0 -_0809639C: .4byte gLinkEntity -_080963A0: .4byte 0x00004022 -_080963A4: - ldrb r0, [r5, #0xb] - bl sub_0807CBD0 - cmp r0, #0 - bne _080963C8 - adds r0, r5, #0 - movs r1, #0xa - bl UpdateSprite - ldrh r0, [r5, #0x32] - adds r0, #4 - strh r0, [r5, #0x32] - movs r0, #4 - strb r0, [r5, #0xc] - ldr r0, _080963C4 @ =0x0000403B - b _080964C4 - .align 2, 0 -_080963C4: .4byte 0x0000403B -_080963C8: - strb r4, [r5, #0xb] - movs r0, #2 - strb r0, [r5, #0xf] - adds r0, r5, #0 - bl sub_080969A4 - bl sub_0805E780 - b _0809650A -_080963DA: - ldr r1, _080963F8 @ =gRoomControls - ldrh r0, [r1, #6] - adds r0, #0xd0 - strh r0, [r5, #0x2e] - ldrh r0, [r1, #8] - adds r0, #0x44 - strh r0, [r5, #0x32] - movs r0, #4 - strb r0, [r5, #0xc] - ldrb r1, [r5, #0xa] - adds r1, #3 - adds r0, r5, #0 - bl UpdateSprite - b _0809651A - .align 2, 0 -_080963F8: .4byte gRoomControls -_080963FC: - movs r0, #0x1a - bl GetProgressFlag - cmp r0, #0 - beq _08096450 - movs r0, #0x1b - bl GetProgressFlag - cmp r0, #0 - bne _0809644C - ldr r0, _08096444 @ =gLinkEntity - adds r1, r0, #0 - adds r1, #0x29 - ldrb r2, [r1] - lsls r2, r2, #0x1d - lsrs r2, r2, #0x1d - subs r2, #1 - adds r4, r5, #0 - adds r4, #0x29 - movs r1, #7 - ands r2, r1 - ldrb r3, [r4] - movs r1, #8 - rsbs r1, r1, #0 - ands r1, r3 - orrs r1, r2 - strb r1, [r4] - adds r1, r0, #0 - adds r1, #0x79 - strb r6, [r1] - ldr r3, _08096448 @ =0xFFE80000 - adds r1, r5, #0 - movs r2, #0 - bl PositionRelative - b _08096450 - .align 2, 0 -_08096444: .4byte gLinkEntity -_08096448: .4byte 0xFFE80000 -_0809644C: - bl sub_0805E780 -_08096450: - adds r0, r5, #0 - movs r1, #0x6b - movs r2, #1 - movs r3, #0 - bl CreateObjectWithParent - adds r1, r0, #0 - str r1, [r5, #0x54] - cmp r1, #0 - beq _0809646E - ldr r2, _0809648C @ =0xFFE40000 - ldr r3, _08096490 @ =0xFFD80000 - adds r0, r5, #0 - bl PositionRelative -_0809646E: - movs r0, #0x10 - strb r0, [r5, #0x16] - ldrb r0, [r5, #0x19] - movs r1, #3 - orrs r0, r1 - strb r0, [r5, #0x19] - adds r0, r5, #0 - movs r1, #0xc - bl UpdateSprite - adds r0, r5, #0 - bl sub_0809651C - b _0809651A - .align 2, 0 -_0809648C: .4byte 0xFFE40000 -_08096490: .4byte 0xFFD80000 -_08096494: - ldrb r0, [r5, #0x19] - movs r1, #3 - orrs r0, r1 - strb r0, [r5, #0x19] - adds r0, r5, #0 - movs r1, #6 - bl sub_0805E3A0 - b _0809650A -_080964A6: - ldrb r0, [r5, #0xb] - bl sub_0807CBD0 - cmp r0, #0 - bne _080964F8 - adds r0, r5, #0 - movs r1, #0xb - bl UpdateSprite - ldrh r0, [r5, #0x32] - adds r0, #4 - strh r0, [r5, #0x32] - movs r0, #4 - strb r0, [r5, #0xc] - ldr r0, _080964F0 @ =0x00004032 -_080964C4: - movs r2, #0x2e - ldrsh r1, [r5, r2] - ldr r3, _080964F4 @ =gRoomControls - ldrh r2, [r3, #6] - subs r1, r1, r2 - asrs r1, r1, #4 - movs r4, #0x3f - ands r1, r4 - movs r6, #0x32 - ldrsh r2, [r5, r6] - ldrh r3, [r3, #8] - subs r2, r2, r3 - asrs r2, r2, #4 - ands r2, r4 - lsls r2, r2, #6 - orrs r1, r2 - adds r2, r5, #0 - adds r2, #0x38 - ldrb r2, [r2] - bl sub_0800015E - b _0809651A - .align 2, 0 -_080964F0: .4byte 0x00004032 -_080964F4: .4byte gRoomControls -_080964F8: - strb r4, [r5, #0xb] - movs r0, #3 - strb r0, [r5, #0xf] - adds r0, r5, #0 - bl sub_080969A4 - bl sub_0805E780 - b _0809651A -_0809650A: - ldrb r1, [r5, #0xa] - adds r1, #3 - adds r0, r5, #0 - bl UpdateSprite - adds r0, r5, #0 - bl sub_0809651C -_0809651A: - pop {r4, r5, r6, pc} - - thumb_func_start sub_0809651C -sub_0809651C: @ 0x0809651C - push {r4, r5, r6, r7, lr} - adds r6, r0, #0 - ldrb r3, [r6, #0xa] - movs r0, #1 - ands r0, r3 - cmp r0, #0 - beq _080965D6 - cmp r3, #3 - bne _0809653C - adds r0, r6, #0 - bl sub_08078930 - adds r0, r6, #0 - bl sub_0800445C - b _080965C8 -_0809653C: - ldr r0, [r6, #0x50] - ldr r2, _0809655C @ =0xFFE40000 - ldr r3, _08096560 @ =0xFFD80000 - adds r1, r6, #0 - bl PositionRelative - ldr r1, [r6, #0x50] - ldrb r0, [r1, #0xc] - cmp r0, #2 - bne _08096586 - ldrb r0, [r1, #0xd] - cmp r0, #1 - beq _08096564 - cmp r0, #2 - beq _08096580 - b _08096570 - .align 2, 0 -_0809655C: .4byte 0xFFE40000 -_08096560: .4byte 0xFFD80000 -_08096564: - ldr r0, _0809657C @ =gLinkState - ldrb r1, [r0, #0xd] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08096580 -_08096570: - adds r0, r6, #0 - movs r1, #4 - bl UpdateSprite - b _08096586 - .align 2, 0 -_0809657C: .4byte gLinkState -_08096580: - adds r0, r6, #0 - bl sub_08004274 -_08096586: - ldr r0, [r6, #0x50] - adds r0, #0x29 - ldrb r1, [r0] - lsls r1, r1, #0x1d - lsrs r1, r1, #0x1d - subs r1, #1 - adds r3, r6, #0 - adds r3, #0x29 - movs r0, #7 - ands r1, r0 - ldrb r2, [r3] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - ldr r4, [r6, #0x50] - ldrb r2, [r4, #0x19] - lsrs r2, r2, #6 - lsls r2, r2, #6 - ldrb r3, [r6, #0x19] - movs r1, #0x3f - adds r0, r1, #0 - ands r0, r3 - orrs r0, r2 - strb r0, [r6, #0x19] - ldrb r0, [r4, #0x1b] - lsrs r0, r0, #6 - lsls r0, r0, #6 - ldrb r2, [r6, #0x1b] - ands r1, r2 - orrs r1, r0 - strb r1, [r6, #0x1b] -_080965C8: - adds r0, r6, #0 - movs r1, #0xcc - movs r2, #0xcc - movs r3, #0 - bl sub_0805EC9C - b _080966F6 -_080965D6: - ldr r1, _080965FC @ =gLinkState - ldrb r2, [r1, #0x1a] - movs r0, #0x80 - orrs r0, r2 - strb r0, [r1, #0x1a] - movs r0, #5 - strb r0, [r1, #5] - ldrb r1, [r1, #0xd] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08096600 - lsls r1, r3, #0x18 - lsrs r1, r1, #0x19 - adds r1, #3 - adds r0, r6, #0 - bl UpdateSprite - b _08096606 - .align 2, 0 -_080965FC: .4byte gLinkState -_08096600: - adds r0, r6, #0 - bl sub_08004274 -_08096606: - ldr r0, _08096664 @ =gLinkEntity - ldrb r0, [r0, #0x14] - movs r1, #6 - ands r1, r0 - ldr r4, _08096668 @ =gUnk_08123184 - adds r0, r1, r4 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - ldrh r2, [r6, #0x2e] - adds r0, r0, r2 - movs r2, #0x10 - rsbs r2, r2, #0 - adds r3, r2, #0 - ands r0, r3 - movs r2, #8 - adds r5, r6, #0 - adds r5, #0x70 - movs r7, #0 - orrs r0, r2 - strh r0, [r5] - adds r1, #1 - adds r1, r1, r4 - movs r0, #0 - ldrsb r0, [r1, r0] - ldrh r1, [r6, #0x32] - adds r0, r0, r1 - ands r0, r3 - orrs r0, r2 - adds r1, r6, #0 - adds r1, #0x72 - strh r0, [r1] - ldrh r0, [r5] - ldrh r1, [r1] - adds r4, r6, #0 - adds r4, #0x38 - ldrb r2, [r4] - bl sub_080002BC - cmp r0, #0x19 - bne _08096670 - ldr r0, _0809666C @ =gUnk_0200AF00 - adds r0, #0x2f - movs r1, #3 - strb r1, [r0] - b _08096676 - .align 2, 0 -_08096664: .4byte gLinkEntity -_08096668: .4byte gUnk_08123184 -_0809666C: .4byte gUnk_0200AF00 -_08096670: - ldr r0, _080966F8 @ =gUnk_0200AF00 - adds r0, #0x2f - strb r7, [r0] -_08096676: - ldr r0, _080966FC @ =gLinkEntity - movs r3, #0x80 - lsls r3, r3, #9 - adds r1, r6, #0 - movs r2, #0 - bl PositionRelative - adds r0, r6, #0 - bl sub_080002B8 - cmp r0, #0x19 - bne _0809669C - ldrb r1, [r4] - movs r0, #0xdc - bl sub_0807BA8C - adds r0, r6, #0 - bl sub_08096A78 -_0809669C: - ldr r2, _08096700 @ =gLinkState - adds r0, r2, #0 - adds r0, #0x92 - ldrh r1, [r0] - movs r0, #0xc0 - ands r0, r1 - cmp r0, #0 - beq _080966F6 - ldr r0, _080966F8 @ =gUnk_0200AF00 - adds r0, #0x2f - ldrb r0, [r0] - cmp r0, #3 - bne _080966F6 - movs r0, #0 - strb r0, [r2, #5] - movs r0, #5 - strb r0, [r6, #0xc] - adds r0, #0xfb - strh r0, [r6, #0x24] - movs r0, #0x80 - lsls r0, r0, #0xa - str r0, [r6, #0x20] - adds r2, r6, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #0x39 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #8 - orrs r0, r1 - strb r0, [r2] - ldrb r1, [r6, #0x18] - movs r0, #0x31 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #0x10 - orrs r0, r1 - strb r0, [r6, #0x18] - ldrb r1, [r4] - movs r0, #0xdc - bl sub_0807BA8C - movs r0, #0x79 - bl PlaySFX -_080966F6: - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_080966F8: .4byte gUnk_0200AF00 -_080966FC: .4byte gLinkEntity -_08096700: .4byte gLinkState - - thumb_func_start sub_08096704 -sub_08096704: @ 0x08096704 - push {lr} - ldr r2, _08096718 @ =gUnk_0812318C - ldrb r1, [r0, #0xd] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08096718: .4byte gUnk_0812318C - - thumb_func_start sub_0809671C -sub_0809671C: @ 0x0809671C - push {r4, lr} - adds r4, r0, #0 - movs r0, #0x1a - bl sub_0807CD04 - ldrb r0, [r4, #0xd] - adds r0, #1 - strb r0, [r4, #0xd] - pop {r4, pc} - .align 2, 0 - - thumb_func_start nullsub_121 -nullsub_121: @ 0x08096730 - bx lr - .align 2, 0 - - thumb_func_start sub_08096734 -sub_08096734: @ 0x08096734 - push {lr} - movs r0, #0x1a - bl sub_0807CD80 - pop {pc} - .align 2, 0 - - thumb_func_start sub_08096740 -sub_08096740: @ 0x08096740 - push {r4, lr} - adds r4, r0, #0 - movs r0, #0x10 - movs r1, #0 - bl sub_08080964 - movs r1, #0 - movs r0, #1 - strb r0, [r4, #0xc] - strb r1, [r4, #0xd] - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08096758 -sub_08096758: @ 0x08096758 - push {r4, lr} - adds r4, r0, #0 - bl sub_080042B8 - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0809677C - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #0xa - bl UpdateSprite -_0809677C: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08096780 -sub_08096780: @ 0x08096780 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r1, _080967D4 @ =gUnk_0812319C - ldrb r0, [r5, #0xa] - lsrs r0, r0, #1 - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r4, [r0] - adds r0, r5, #0 - bl sub_080002A0 - cmp r4, r0 - bne _080967DC - adds r0, r5, #0 - bl sub_08004274 - ldr r2, _080967D8 @ =gLinkState - ldrb r0, [r2, #0xb] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r2, #0xb] - ldrb r0, [r2, #0xa] - orrs r0, r1 - strb r0, [r2, #0xa] - ldrb r0, [r2, #7] - orrs r1, r0 - strb r1, [r2, #7] - ldrb r0, [r5, #0xe] - subs r0, #1 - strb r0, [r5, #0xe] - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - bne _080967E0 - movs r0, #6 - strb r0, [r5, #0xc] - strb r1, [r5, #0xd] - adds r0, r5, #0 - bl sub_080A29BC - b _080967E0 - .align 2, 0 -_080967D4: .4byte gUnk_0812319C -_080967D8: .4byte gLinkState -_080967DC: - movs r0, #0xc0 - strb r0, [r5, #0xe] -_080967E0: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_080967E4 -sub_080967E4: @ 0x080967E4 - push {r4, r5, lr} - adds r4, r0, #0 - adds r0, #0x70 - ldrh r5, [r0] - movs r0, #0x2e - ldrsh r2, [r4, r0] - cmp r5, r2 - bne _08096802 - adds r0, r4, #0 - adds r0, #0x72 - ldrh r1, [r0] - movs r3, #0x32 - ldrsh r0, [r4, r3] - cmp r1, r0 - beq _0809681C -_08096802: - movs r0, #0x32 - ldrsh r1, [r4, r0] - adds r0, r4, #0 - adds r0, #0x72 - ldrh r3, [r0] - adds r0, r2, #0 - adds r2, r5, #0 - bl sub_080045D4 - strb r0, [r4, #0x15] - adds r0, r4, #0 - bl sub_0806F69C -_0809681C: - movs r1, #0x80 - lsls r1, r1, #7 - adds r0, r4, #0 - bl sub_08003FC4 - cmp r0, #0 - bne _08096830 - adds r0, r4, #0 - bl sub_08096A78 -_08096830: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_08096834 -sub_08096834: @ 0x08096834 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xd] - cmp r0, #2 - beq _08096842 - bl sub_08078B48 -_08096842: - ldr r0, _08096854 @ =gUnk_081231A0 - ldrb r1, [r4, #0xd] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 - pop {r4, pc} - .align 2, 0 -_08096854: .4byte gUnk_081231A0 - - thumb_func_start sub_08096858 -sub_08096858: @ 0x08096858 - push {r4, r5, r6, lr} - adds r5, r0, #0 - ldrb r0, [r5, #0xb] - bl sub_0807CCB4 - movs r3, #0 - movs r0, #0xf - strb r0, [r5, #0xe] - ldr r1, _080968BC @ =gUnk_081231AC - ldrb r2, [r5, #0xa] - lsls r2, r2, #0x18 - lsrs r0, r2, #0x19 - adds r0, r0, r1 - ldrb r0, [r0] - strb r0, [r5, #0xf] - strb r3, [r5, #0xb] - ldrb r1, [r5, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r5, #0x18] - ldrb r0, [r5, #0xd] - adds r0, #1 - strb r0, [r5, #0xd] - cmp r2, #0 - bne _080968C4 - movs r0, #0xe7 - lsls r0, r0, #1 - movs r2, #0x2e - ldrsh r1, [r5, r2] - ldr r3, _080968C0 @ =gRoomControls - ldrh r2, [r3, #6] - subs r1, r1, r2 - asrs r1, r1, #4 - movs r4, #0x3f - ands r1, r4 - movs r6, #0x32 - ldrsh r2, [r5, r6] - ldrh r3, [r3, #8] - subs r2, r2, r3 - asrs r2, r2, #4 - ands r2, r4 - lsls r2, r2, #6 - orrs r1, r2 - adds r2, r5, #0 - adds r2, #0x38 - ldrb r2, [r2] - bl sub_0807B7D8 - b _080968F0 - .align 2, 0 -_080968BC: .4byte gUnk_081231AC -_080968C0: .4byte gRoomControls -_080968C4: - ldr r0, _080968F8 @ =0x000001CD - movs r2, #0x2e - ldrsh r1, [r5, r2] - ldr r3, _080968FC @ =gRoomControls - ldrh r2, [r3, #6] - subs r1, r1, r2 - asrs r1, r1, #4 - movs r4, #0x3f - ands r1, r4 - movs r6, #0x32 - ldrsh r2, [r5, r6] - ldrh r3, [r3, #8] - subs r2, r2, r3 - asrs r2, r2, #4 - ands r2, r4 - lsls r2, r2, #6 - orrs r1, r2 - adds r2, r5, #0 - adds r2, #0x38 - ldrb r2, [r2] - bl sub_0807B7D8 -_080968F0: - ldr r0, _08096900 @ =0x000001DB - bl PlaySFX - pop {r4, r5, r6, pc} - .align 2, 0 -_080968F8: .4byte 0x000001CD -_080968FC: .4byte gRoomControls -_08096900: .4byte 0x000001DB - - thumb_func_start sub_08096904 -sub_08096904: @ 0x08096904 - push {r4, r5, r6, lr} - adds r5, r0, #0 - ldrb r0, [r5, #0xe] - subs r0, #1 - strb r0, [r5, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08096984 - ldrh r0, [r5, #0x32] - subs r0, #0x10 - strh r0, [r5, #0x32] - ldr r1, _08096974 @ =gUnk_081231AE - ldrb r0, [r5, #0xb] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r0, [r0] - movs r2, #0x2e - ldrsh r1, [r5, r2] - ldr r3, _08096978 @ =gRoomControls - ldrh r2, [r3, #6] - subs r1, r1, r2 - asrs r1, r1, #4 - movs r4, #0x3f - ands r1, r4 - movs r6, #0x32 - ldrsh r2, [r5, r6] - ldrh r3, [r3, #8] - subs r2, r2, r3 - asrs r2, r2, #4 - ands r2, r4 - lsls r2, r2, #6 - orrs r1, r2 - adds r2, r5, #0 - adds r2, #0x38 - ldrb r2, [r2] - bl sub_0807B7D8 - ldrb r0, [r5, #0xb] - adds r0, #1 - strb r0, [r5, #0xb] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrb r1, [r5, #0xf] - cmp r0, r1 - bne _08096980 - ldr r2, _0809697C @ =gLinkState - ldrb r1, [r2, #0xb] - movs r0, #0x7f - ands r0, r1 - strb r0, [r2, #0xb] - ldrb r0, [r5, #0xd] - adds r0, #1 - strb r0, [r5, #0xd] - movs r0, #0x3c - b _08096982 - .align 2, 0 -_08096974: .4byte gUnk_081231AE -_08096978: .4byte gRoomControls -_0809697C: .4byte gLinkState -_08096980: - movs r0, #0xf -_08096982: - strb r0, [r5, #0xe] -_08096984: - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_08096988 -sub_08096988: @ 0x08096988 - push {lr} - adds r1, r0, #0 - ldrb r0, [r1, #0xe] - cmp r0, #0 - beq _080969A2 - subs r0, #1 - strb r0, [r1, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080969A2 - movs r0, #0x72 - bl PlaySFX -_080969A2: - pop {pc} - - thumb_func_start sub_080969A4 -sub_080969A4: @ 0x080969A4 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r5, r0, #0 - ldrb r0, [r5, #0xa] - cmp r0, #0 - bne _080969E8 - movs r0, #0xe7 - lsls r0, r0, #1 - movs r2, #0x2e - ldrsh r1, [r5, r2] - ldr r3, _080969E4 @ =gRoomControls - ldrh r2, [r3, #6] - subs r1, r1, r2 - asrs r1, r1, #4 - movs r4, #0x3f - ands r1, r4 - movs r6, #0x32 - ldrsh r2, [r5, r6] - ldrh r3, [r3, #8] - subs r2, r2, r3 - asrs r2, r2, #4 - ands r2, r4 - lsls r2, r2, #6 - orrs r1, r2 - adds r4, r5, #0 - adds r4, #0x38 - ldrb r2, [r4] - bl sub_0807B7D8 - b _08096A14 - .align 2, 0 -_080969E4: .4byte gRoomControls -_080969E8: - ldr r0, _08096A6C @ =0x000001CD - movs r2, #0x2e - ldrsh r1, [r5, r2] - ldr r3, _08096A70 @ =gRoomControls - ldrh r2, [r3, #6] - subs r1, r1, r2 - asrs r1, r1, #4 - movs r4, #0x3f - ands r1, r4 - movs r6, #0x32 - ldrsh r2, [r5, r6] - ldrh r3, [r3, #8] - subs r2, r2, r3 - asrs r2, r2, #4 - ands r2, r4 - lsls r2, r2, #6 - orrs r1, r2 - adds r4, r5, #0 - adds r4, #0x38 - ldrb r2, [r4] - bl sub_0807B7D8 -_08096A14: - ldrb r0, [r5, #0xb] - ldrb r1, [r5, #0xf] - cmp r0, r1 - beq _08096A64 - ldr r2, _08096A74 @ =gUnk_081231B4 - mov r8, r2 - ldr r7, _08096A70 @ =gRoomControls - movs r6, #0x3f -_08096A24: - ldrh r0, [r5, #0x32] - subs r0, #0x10 - strh r0, [r5, #0x32] - ldrb r0, [r5, #0xb] - lsls r0, r0, #1 - add r0, r8 - ldrh r0, [r0] - movs r3, #0x2e - ldrsh r1, [r5, r3] - ldrh r2, [r7, #6] - subs r1, r1, r2 - asrs r1, r1, #4 - ands r1, r6 - movs r3, #0x32 - ldrsh r2, [r5, r3] - ldrh r3, [r7, #8] - subs r2, r2, r3 - asrs r2, r2, #4 - ands r2, r6 - lsls r2, r2, #6 - orrs r1, r2 - ldrb r2, [r4] - bl sub_0807B7D8 - ldrb r0, [r5, #0xb] - adds r0, #1 - strb r0, [r5, #0xb] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrb r1, [r5, #0xf] - cmp r0, r1 - bne _08096A24 -_08096A64: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08096A6C: .4byte 0x000001CD -_08096A70: .4byte gRoomControls -_08096A74: .4byte gUnk_081231B4 - - thumb_func_start sub_08096A78 -sub_08096A78: @ 0x08096A78 - push {r4, r5, r6, lr} - adds r4, r0, #0 - movs r0, #0x1b - bl sub_0807CD04 - ldrb r1, [r4, #0xa] - lsrs r1, r1, #1 - adds r1, #8 - adds r0, r4, #0 - bl LoadAnimation - adds r0, r4, #0 - bl sub_08004168 - ldrh r0, [r4, #0x32] - adds r0, #4 - strh r0, [r4, #0x32] - movs r0, #3 - strb r0, [r4, #0xc] - ldr r0, _08096ACC @ =0x0000403B - movs r2, #0x2e - ldrsh r1, [r4, r2] - ldr r3, _08096AD0 @ =gRoomControls - ldrh r2, [r3, #6] - subs r1, r1, r2 - asrs r1, r1, #4 - movs r5, #0x3f - ands r1, r5 - movs r6, #0x32 - ldrsh r2, [r4, r6] - ldrh r3, [r3, #8] - subs r2, r2, r3 - asrs r2, r2, #4 - ands r2, r5 - lsls r2, r2, #6 - orrs r1, r2 - adds r4, #0x38 - ldrb r2, [r4] - bl sub_0800015E - pop {r4, r5, r6, pc} - .align 2, 0 -_08096ACC: .4byte 0x0000403B -_08096AD0: .4byte gRoomControls - - thumb_func_start sub_08096AD4 -sub_08096AD4: @ 0x08096AD4 - push {lr} - ldr r2, _08096AE8 @ =gUnk_0812323C - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08096AE8: .4byte gUnk_0812323C - - thumb_func_start sub_08096AEC -sub_08096AEC: @ 0x08096AEC - push {r4, r5, r6, lr} - adds r4, r0, #0 - bl sub_080837B0 - cmp r0, #0 - beq _08096BB6 - ldrb r1, [r4, #0xa] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - beq _08096B12 - adds r1, r4, #0 - adds r1, #0x7e - movs r0, #1 - strb r0, [r1] - ldrb r1, [r4, #0xa] - movs r0, #3 - ands r0, r1 - strb r0, [r4, #0xa] -_08096B12: - movs r0, #0xc0 - lsls r0, r0, #2 - strh r0, [r4, #0x24] - ldrh r1, [r4, #0x2e] - adds r0, r4, #0 - adds r0, #0x70 - strh r1, [r0] - ldrh r0, [r4, #0x32] - adds r1, r4, #0 - adds r1, #0x72 - strh r0, [r1] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #5 - orrs r0, r1 - strb r0, [r2] - movs r0, #0x2e - ldrsh r1, [r4, r0] - ldr r2, _08096B90 @ =gRoomControls - ldrh r0, [r2, #6] - subs r1, r1, r0 - asrs r1, r1, #4 - movs r3, #0x3f - ands r1, r3 - movs r5, #0x32 - ldrsh r0, [r4, r5] - ldrh r2, [r2, #8] - subs r0, r0, r2 - asrs r0, r0, #4 - ands r0, r3 - lsls r0, r0, #6 - orrs r1, r0 - adds r5, r4, #0 - adds r5, #0x76 - strh r1, [r5] - ldrh r0, [r5] - adds r6, r4, #0 - adds r6, #0x38 - ldrb r1, [r6] - bl sub_080001DA - adds r1, r4, #0 - adds r1, #0x74 - strh r0, [r1] - ldrb r0, [r4, #0xa] - strb r0, [r4, #0x1e] - adds r0, r4, #0 - bl sub_08096CEC - cmp r0, #0 - beq _08096B9C - adds r0, r4, #0 - adds r0, #0x7e - ldrb r0, [r0] - cmp r0, #0 - beq _08096B94 - bl sub_0805E780 - b _08096BB6 - .align 2, 0 -_08096B90: .4byte gRoomControls -_08096B94: - adds r0, r4, #0 - bl sub_08096E04 - b _08096BB6 -_08096B9C: - movs r2, #1 - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - subs r0, #5 - ands r0, r1 - orrs r0, r2 - strb r0, [r4, #0x18] - ldr r0, _08096BB8 @ =0x00004022 - ldrh r1, [r5] - ldrb r2, [r6] - bl sub_0800015E -_08096BB6: - pop {r4, r5, r6, pc} - .align 2, 0 -_08096BB8: .4byte 0x00004022 - - thumb_func_start sub_08096BBC -sub_08096BBC: @ 0x08096BBC - push {r4, lr} - adds r4, r0, #0 - bl sub_08096CEC - cmp r0, #0 - beq _08096BF2 - movs r0, #2 - strb r0, [r4, #0xc] - movs r0, #7 - strb r0, [r4, #0xe] - ldrb r0, [r4, #0xa] - lsls r0, r0, #3 - strb r0, [r4, #0x15] - adds r0, r4, #0 - adds r0, #0x74 - ldrh r0, [r0] - adds r1, r4, #0 - adds r1, #0x76 - ldrh r1, [r1] - adds r2, r4, #0 - adds r2, #0x38 - ldrb r2, [r2] - bl sub_0800015E - ldr r0, _08096BF4 @ =0x0000010B - bl sub_08004488 -_08096BF2: - pop {r4, pc} - .align 2, 0 -_08096BF4: .4byte 0x0000010B - - thumb_func_start sub_08096BF8 -sub_08096BF8: @ 0x08096BF8 - push {r4, lr} - adds r4, r0, #0 - bl sub_0806F69C - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08096C3A - adds r0, r4, #0 - bl sub_08096E04 - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #0x18] - adds r0, r4, #0 - adds r0, #0x70 - ldrh r0, [r0] - strh r0, [r4, #0x2e] - adds r0, r4, #0 - adds r0, #0x72 - ldrh r0, [r0] - strh r0, [r4, #0x32] - adds r0, r4, #0 - adds r0, #0x7e - ldrb r0, [r0] - cmp r0, #0 - beq _08096C3A - bl sub_0805E780 -_08096C3A: - pop {r4, pc} - - thumb_func_start sub_08096C3C -sub_08096C3C: @ 0x08096C3C - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x7e - ldrb r0, [r0] - cmp r0, #0 - beq _08096C56 - adds r0, r4, #0 - adds r0, #0x86 - ldrh r0, [r0] - bl sub_0807CBE4 - cmp r0, #0 - bne _08096CAE -_08096C56: - ldr r0, _08096C80 @ =gLinkState - ldr r0, [r0, #0x30] - movs r1, #0x80 - lsls r1, r1, #5 - ands r0, r1 - cmp r0, #0 - beq _08096C92 - ldrb r2, [r4, #0xa] - lsls r1, r2, #1 - ldr r0, _08096C84 @ =gLinkEntity - ldrb r0, [r0, #0x14] - cmp r1, r0 - bne _08096C88 - adds r0, r4, #0 - adds r1, r2, #0 - bl sub_08083734 - cmp r0, #0 - beq _08096CAE - b _08096C9C - .align 2, 0 -_08096C80: .4byte gLinkState -_08096C84: .4byte gLinkEntity -_08096C88: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - b _08096C98 -_08096C92: - adds r0, r4, #0 - bl sub_08096D84 -_08096C98: - cmp r0, #0 - bne _08096CAE -_08096C9C: - movs r0, #4 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0xa] - adds r0, r4, #0 - adds r0, #0x76 - ldrh r2, [r0] - adds r0, r4, #0 - bl sub_080836DC -_08096CAE: - pop {r4, pc} - - thumb_func_start sub_08096CB0 -sub_08096CB0: @ 0x08096CB0 - push {r4, lr} - adds r4, r0, #0 - bl sub_0806F69C - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08096CE6 - movs r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - adds r0, #0x70 - ldrh r0, [r0] - strh r0, [r4, #0x2e] - adds r0, r4, #0 - adds r0, #0x72 - ldrh r0, [r0] - strh r0, [r4, #0x32] - ldrb r1, [r4, #0xa] - adds r0, r4, #0 - bl sub_08083814 - ldr r0, _08096CE8 @ =0x0000010B - bl sub_08004488 -_08096CE6: - pop {r4, pc} - .align 2, 0 -_08096CE8: .4byte 0x0000010B - - thumb_func_start sub_08096CEC -sub_08096CEC: @ 0x08096CEC - push {r4, r5, lr} - adds r4, r0, #0 - adds r0, #0x7e - ldrb r0, [r0] - cmp r0, #0 - beq _08096D06 - adds r0, r4, #0 - adds r0, #0x86 - ldrh r0, [r0] - bl sub_0807CBE4 - cmp r0, #0 - bne _08096D60 -_08096D06: - ldr r0, _08096D40 @ =gLinkState - ldr r0, [r0, #0x30] - movs r1, #0x80 - lsls r1, r1, #5 - ands r0, r1 - cmp r0, #0 - beq _08096D64 - ldr r3, _08096D44 @ =gLinkEntity - ldrb r2, [r4, #0xa] - lsls r0, r2, #1 - ldrb r1, [r3, #0x14] - eors r0, r1 - movs r1, #2 - ands r0, r1 - cmp r0, #0 - bne _08096D64 - movs r0, #1 - ands r2, r0 - cmp r2, #0 - beq _08096D48 - movs r1, #0x32 - ldrsh r0, [r3, r1] - movs r2, #0x32 - ldrsh r1, [r4, r2] - movs r5, #0x2e - ldrsh r2, [r3, r5] - movs r5, #0x2e - ldrsh r3, [r4, r5] - b _08096D58 - .align 2, 0 -_08096D40: .4byte gLinkState -_08096D44: .4byte gLinkEntity -_08096D48: - movs r1, #0x2e - ldrsh r0, [r3, r1] - movs r2, #0x2e - ldrsh r1, [r4, r2] - movs r5, #0x32 - ldrsh r2, [r3, r5] - movs r5, #0x32 - ldrsh r3, [r4, r5] -_08096D58: - bl sub_08096D68 - cmp r0, #0 - beq _08096D64 -_08096D60: - movs r0, #1 - b _08096D66 -_08096D64: - movs r0, #0 -_08096D66: - pop {r4, r5, pc} - - thumb_func_start sub_08096D68 -sub_08096D68: @ 0x08096D68 - push {lr} - subs r0, r0, r1 - adds r0, #8 - cmp r0, #0x10 - bhi _08096D7E - subs r0, r2, r3 - adds r0, #0x30 - cmp r0, #0x60 - bhi _08096D7E - movs r0, #1 - b _08096D80 -_08096D7E: - movs r0, #0 -_08096D80: - pop {pc} - .align 2, 0 - - thumb_func_start sub_08096D84 -sub_08096D84: @ 0x08096D84 - push {lr} - adds r1, r0, #0 - ldrb r0, [r1, #0xa] - cmp r0, #1 - beq _08096DB4 - cmp r0, #1 - bgt _08096D98 - cmp r0, #0 - beq _08096DA2 - b _08096E00 -_08096D98: - cmp r0, #2 - beq _08096DC8 - cmp r0, #3 - beq _08096DE4 - b _08096E00 -_08096DA2: - movs r0, #0x32 - ldrsh r1, [r1, r0] - ldr r0, _08096DB0 @ =gLinkEntity - movs r2, #0x32 - ldrsh r0, [r0, r2] - b _08096DEE - .align 2, 0 -_08096DB0: .4byte gLinkEntity -_08096DB4: - ldr r0, _08096DC4 @ =gLinkEntity - movs r2, #0x2e - ldrsh r0, [r0, r2] - adds r0, #0xa - movs r2, #0x2e - ldrsh r1, [r1, r2] - b _08096DD4 - .align 2, 0 -_08096DC4: .4byte gLinkEntity -_08096DC8: - ldr r0, _08096DE0 @ =gLinkEntity - movs r2, #0x32 - ldrsh r0, [r0, r2] - adds r0, #0xa - movs r2, #0x32 - ldrsh r1, [r1, r2] -_08096DD4: - subs r0, r0, r1 - cmp r0, #0x64 - bhi _08096E00 - movs r0, #1 - b _08096E02 - .align 2, 0 -_08096DE0: .4byte gLinkEntity -_08096DE4: - movs r0, #0x2e - ldrsh r1, [r1, r0] - ldr r0, _08096DFC @ =gLinkEntity - movs r2, #0x2e - ldrsh r0, [r0, r2] -_08096DEE: - subs r0, #0xa - subs r1, r1, r0 - cmp r1, #0x64 - bhi _08096E00 - movs r0, #1 - b _08096E02 - .align 2, 0 -_08096DFC: .4byte gLinkEntity -_08096E00: - movs r0, #0 -_08096E02: - pop {pc} - - thumb_func_start sub_08096E04 -sub_08096E04: @ 0x08096E04 - movs r1, #3 - strb r1, [r0, #0xc] - movs r1, #8 - strb r1, [r0, #0xe] - bx lr - .align 2, 0 - - thumb_func_start sub_08096E10 -sub_08096E10: @ 0x08096E10 - push {lr} - ldr r2, _08096E24 @ =gUnk_08123250 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08096E24: .4byte gUnk_08123250 - - thumb_func_start sub_08096E28 -sub_08096E28: @ 0x08096E28 - push {r4, r5, lr} - adds r4, r0, #0 - adds r0, #0x86 - ldrh r0, [r0] - bl sub_0807CBE4 - adds r5, r0, #0 - cmp r5, #0 - bne _08096EBC - movs r2, #1 - movs r3, #1 - strb r3, [r4, #0xc] - movs r0, #0x80 - strh r0, [r4, #0x24] - ldrb r1, [r4, #0x11] - subs r0, #0x90 - ands r0, r1 - movs r1, #3 - orrs r0, r1 - strb r0, [r4, #0x11] - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - orrs r0, r2 - strb r0, [r4, #0x18] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #0x39 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #8 - orrs r0, r1 - strb r0, [r2] - ldrb r1, [r4, #0x18] - movs r0, #0x31 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #0x10 - orrs r0, r1 - strb r0, [r4, #0x18] - adds r1, r4, #0 - adds r1, #0x63 - movs r0, #4 - strb r0, [r1] - ldr r0, _08096EB4 @ =gUnk_080FD1F4 - str r0, [r4, #0x48] - strb r3, [r4, #0x16] - adds r0, r4, #0 - adds r0, #0x72 - strh r5, [r0] - adds r0, #0xb - ldrb r0, [r0] - lsrs r0, r0, #4 - subs r1, #0x2b - strb r0, [r1] - adds r0, r4, #0 - bl UpdateSpriteOrderAndFlip - adds r0, r4, #0 - bl sub_080970F4 - ldr r1, _08096EB8 @ =gUnk_08123264 - ldrb r0, [r4, #0xa] - adds r0, r0, r1 - ldrb r0, [r0] - strb r0, [r4, #0x1e] - b _08096F04 - .align 2, 0 -_08096EB4: .4byte gUnk_080FD1F4 -_08096EB8: .4byte gUnk_08123264 -_08096EBC: - adds r0, r4, #0 - adds r0, #0x7c - ldrb r2, [r0] - adds r0, #1 - ldrb r3, [r0] - movs r1, #0xf - adds r0, r1, #0 - ands r0, r3 - lsls r0, r0, #8 - ldr r3, _08096F08 @ =gRoomControls - orrs r2, r0 - ldrh r0, [r3, #6] - adds r2, r2, r0 - strh r2, [r4, #0x2e] - adds r0, r4, #0 - adds r0, #0x7e - ldrb r0, [r0] - movs r2, #0x7f - adds r2, r2, r4 - mov ip, r2 - ldrb r2, [r2] - ands r1, r2 - lsls r1, r1, #8 - orrs r0, r1 - ldrh r3, [r3, #8] - adds r0, r0, r3 - strh r0, [r4, #0x32] - mov r5, ip - ldrb r0, [r5] - lsrs r0, r0, #4 - adds r1, r4, #0 - adds r1, #0x38 - strb r0, [r1] - adds r0, r4, #0 - bl sub_080971E0 -_08096F04: - pop {r4, r5, pc} - .align 2, 0 -_08096F08: .4byte gRoomControls - - thumb_func_start sub_08096F0C -sub_08096F0C: @ 0x08096F0C - push {r4, lr} - adds r4, r0, #0 - bl sub_08097194 - cmp r0, #0 - bne _08096F2E - adds r0, r4, #0 - bl sub_08097008 - cmp r0, #0 - beq _08096F28 - movs r0, #3 - strb r0, [r4, #0xc] - b _08096F2E -_08096F28: - adds r0, r4, #0 - bl sub_08078930 -_08096F2E: - pop {r4, pc} - - thumb_func_start sub_08096F30 -sub_08096F30: @ 0x08096F30 - push {lr} - adds r2, r0, #0 - adds r0, #0x76 - ldrh r0, [r0] - cmp r0, #0 - beq _08096F44 - adds r0, r2, #0 - bl sub_08097144 - b _08096F62 -_08096F44: - ldr r0, _08096F64 @ =gLinkState - ldrb r0, [r0, #5] - cmp r0, #0 - bne _08096F50 - movs r0, #6 - strb r0, [r2, #0xd] -_08096F50: - ldr r0, _08096F68 @ =gUnk_0812326C - ldrb r1, [r2, #0xd] - subs r1, #5 - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r2, #0 - bl _call_via_r1 -_08096F62: - pop {pc} - .align 2, 0 -_08096F64: .4byte gLinkState -_08096F68: .4byte gUnk_0812326C - - thumb_func_start sub_08096F6C -sub_08096F6C: @ 0x08096F6C - push {r4, lr} - adds r4, r0, #0 - adds r1, r4, #0 - adds r1, #0x72 - ldrh r0, [r1] - cmp r0, #0 - bne _08096F98 - movs r0, #1 - strh r0, [r1] - ldr r1, _08096FD8 @ =gLinkEntity - ldrb r0, [r1, #0x14] - ldr r2, _08096FDC @ =gUnk_08123274 - adds r0, r0, r2 - movs r2, #0 - ldrsb r2, [r0, r2] - lsls r2, r2, #0x10 - movs r3, #1 - ldrsb r3, [r0, r3] - lsls r3, r3, #0x10 - adds r0, r4, #0 - bl PositionRelative -_08096F98: - adds r0, r4, #0 - bl sub_08097008 - bl sub_080896B0 - cmp r0, #0 - beq _08096FD4 - ldr r2, _08096FE0 @ =gLinkState - movs r3, #0 - movs r0, #0x10 - strb r0, [r2, #0xc] - adds r1, r2, #0 - adds r1, #0x38 - movs r0, #0x20 - strb r0, [r1] - ldr r0, [r2, #0x30] - movs r1, #1 - orrs r0, r1 - str r0, [r2, #0x30] - ldr r0, _08096FD8 @ =gLinkEntity - strh r3, [r0, #0x2c] - strh r3, [r0, #0x30] - ldrb r0, [r0, #0x14] - movs r1, #4 - eors r0, r1 - lsls r0, r0, #2 - strb r0, [r4, #0x15] - adds r0, r4, #0 - bl sub_08097098 -_08096FD4: - pop {r4, pc} - .align 2, 0 -_08096FD8: .4byte gLinkEntity -_08096FDC: .4byte gUnk_08123274 -_08096FE0: .4byte gLinkState - - thumb_func_start sub_08096FE4 -sub_08096FE4: @ 0x08096FE4 - movs r2, #0 - movs r1, #1 - strb r1, [r0, #0xc] - adds r0, #0x72 - strh r2, [r0] - bx lr - - thumb_func_start sub_08096FF0 -sub_08096FF0: @ 0x08096FF0 - push {r4, lr} - adds r4, r0, #0 - bl sub_08097144 - cmp r0, #0 - beq _08097000 - movs r0, #1 - strb r0, [r4, #0xc] -_08097000: - pop {r4, pc} - .align 2, 0 - - thumb_func_start nullsub_122 -nullsub_122: @ 0x08097004 - bx lr - .align 2, 0 - - thumb_func_start sub_08097008 -sub_08097008: @ 0x08097008 - push {r4, r5, lr} - adds r5, r0, #0 - adds r0, #0x74 - ldrh r0, [r0] - adds r1, r5, #0 - adds r1, #0x38 - ldrb r1, [r1] - bl sub_080002B0 - adds r4, r0, #0 - ldr r0, _08097048 @ =0x00004036 - cmp r4, r0 - beq _08097070 - adds r0, r4, #0 - bl sub_08097074 - cmp r0, #1 - beq _0809704C - cmp r0, #2 - beq _08097062 - movs r0, #0xf - movs r1, #4 - movs r2, #0 - bl CreateObject - adds r1, r0, #0 - cmp r1, #0 - beq _0809706A - adds r0, r5, #0 - bl CopyPosition - b _0809706A - .align 2, 0 -_08097048: .4byte 0x00004036 -_0809704C: - adds r0, r4, #0 - subs r0, #0x37 - movs r1, #3 - ands r0, r1 - lsls r0, r0, #3 - strb r0, [r5, #0x15] - adds r0, r5, #0 - bl sub_08097098 - movs r0, #1 - b _08097072 -_08097062: - adds r0, r5, #0 - adds r0, #0x70 - strh r4, [r0] - b _08097070 -_0809706A: - adds r0, r5, #0 - bl sub_0805E7BC -_08097070: - movs r0, #0 -_08097072: - pop {r4, r5, pc} - - thumb_func_start sub_08097074 -sub_08097074: @ 0x08097074 - push {lr} - adds r2, r0, #0 - ldr r1, _0809707C @ =gUnk_0812327C - b _0809708C - .align 2, 0 -_0809707C: .4byte gUnk_0812327C -_08097080: - ldrh r0, [r1] - cmp r0, r2 - bne _0809708A - ldrh r0, [r1, #2] - b _08097094 -_0809708A: - adds r1, #4 -_0809708C: - ldrh r0, [r1] - cmp r0, #0 - bne _08097080 - movs r0, #0 -_08097094: - pop {pc} - .align 2, 0 - - thumb_func_start sub_08097098 -sub_08097098: @ 0x08097098 - push {r4, r5, r6, lr} - adds r6, r0, #0 - adds r1, r6, #0 - adds r1, #0x76 - movs r0, #0x20 - strh r0, [r1] - adds r0, #0xef - bl sub_08004488 - adds r0, r6, #0 - adds r0, #0x70 - ldrh r0, [r0] - adds r5, r6, #0 - adds r5, #0x74 - ldrh r1, [r5] - adds r4, r6, #0 - adds r4, #0x38 - ldrb r2, [r4] - bl sub_0800015E - ldr r1, _080970F0 @ =gUnk_080B4488 - ldrb r0, [r6, #0x15] - lsrs r0, r0, #3 - lsls r0, r0, #1 - adds r0, r0, r1 - movs r1, #0 - ldrsh r0, [r0, r1] - ldrh r5, [r5] - adds r0, r0, r5 - ldrb r1, [r4] - bl sub_080002B0 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0x79 - beq _080970E4 - cmp r0, #0x77 - bne _080970EC -_080970E4: - adds r1, r6, #0 - adds r1, #0x63 - movs r0, #2 - strb r0, [r1] -_080970EC: - pop {r4, r5, r6, pc} - .align 2, 0 -_080970F0: .4byte gUnk_080B4488 - - thumb_func_start sub_080970F4 -sub_080970F4: @ 0x080970F4 - push {r4, r5, r6, lr} - adds r6, r0, #0 - movs r0, #0x2e - ldrsh r1, [r6, r0] - ldr r2, _0809713C @ =gRoomControls - ldrh r0, [r2, #6] - subs r1, r1, r0 - asrs r1, r1, #4 - movs r3, #0x3f - ands r1, r3 - movs r4, #0x32 - ldrsh r0, [r6, r4] - ldrh r2, [r2, #8] - subs r0, r0, r2 - asrs r0, r0, #4 - ands r0, r3 - lsls r0, r0, #6 - orrs r1, r0 - adds r4, r6, #0 - adds r4, #0x74 - strh r1, [r4] - ldrh r0, [r4] - adds r5, r6, #0 - adds r5, #0x38 - ldrb r1, [r5] - bl sub_080001DA - adds r1, r6, #0 - adds r1, #0x70 - strh r0, [r1] - ldr r0, _08097140 @ =0x00004036 - ldrh r1, [r4] - ldrb r2, [r5] - bl sub_0800015E - pop {r4, r5, r6, pc} - .align 2, 0 -_0809713C: .4byte gRoomControls -_08097140: .4byte 0x00004036 - - thumb_func_start sub_08097144 -sub_08097144: @ 0x08097144 - push {r4, lr} - adds r4, r0, #0 - bl sub_0806F69C - adds r0, r4, #0 - bl sub_0800445C - adds r0, r4, #0 - bl sub_080002B8 - cmp r0, #0x19 - bne _08097164 - adds r1, r4, #0 - adds r1, #0x63 - movs r0, #2 - strb r0, [r1] -_08097164: - adds r1, r4, #0 - adds r1, #0x76 - ldrh r0, [r1] - subs r0, #1 - strh r0, [r1] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _08097190 - adds r0, r4, #0 - bl sub_08097194 - cmp r0, #0 - bne _08097190 - adds r1, r4, #0 - adds r1, #0x63 - movs r0, #4 - strb r0, [r1] - adds r0, r4, #0 - bl sub_080970F4 - movs r0, #1 - b _08097192 -_08097190: - movs r0, #0 -_08097192: - pop {r4, pc} - - thumb_func_start sub_08097194 -sub_08097194: @ 0x08097194 - push {r4, lr} - adds r4, r0, #0 - bl sub_0800442E - cmp r0, #0 - beq _080971A4 - movs r0, #1 - b _080971DE -_080971A4: - adds r0, r4, #0 - bl sub_080002A0 - adds r1, r0, #0 - subs r0, #0x71 - cmp r0, #1 - bls _080971B8 - ldr r0, _080971D4 @ =0x00004020 - cmp r1, r0 - bne _080971DC -_080971B8: - adds r0, r4, #0 - adds r0, #0x86 - ldrh r0, [r0] - bl sub_0807CCC8 - ldr r0, _080971D8 @ =0x0000010B - bl sub_08004488 - adds r0, r4, #0 - bl sub_080971E0 - movs r0, #1 - b _080971DE - .align 2, 0 -_080971D4: .4byte 0x00004020 -_080971D8: .4byte 0x0000010B -_080971DC: - movs r0, #0 -_080971DE: - pop {r4, pc} - - thumb_func_start sub_080971E0 -sub_080971E0: @ 0x080971E0 - push {r4, r5, lr} - adds r5, r0, #0 - movs r0, #0xf - movs r1, #0x11 - movs r2, #0x40 - bl CreateObject - adds r4, r0, #0 - cmp r4, #0 - beq _08097202 - ldr r2, _0809727C @ =0xFFF80000 - movs r3, #0x80 - lsls r3, r3, #0xa - adds r0, r5, #0 - adds r1, r4, #0 - bl PositionRelative -_08097202: - movs r0, #0xf - movs r1, #0x11 - movs r2, #0x40 - bl CreateObject - adds r4, r0, #0 - cmp r4, #0 - beq _08097222 - movs r2, #0x80 - lsls r2, r2, #0xc - movs r3, #0x80 - lsls r3, r3, #0xa - adds r0, r5, #0 - adds r1, r4, #0 - bl PositionRelative -_08097222: - ldrb r0, [r5, #0xa] - cmp r0, #1 - beq _08097284 - cmp r0, #1 - ble _08097234 - cmp r0, #2 - beq _080972C4 - cmp r0, #3 - beq _08097304 -_08097234: - movs r0, #4 - strb r0, [r5, #0xc] - movs r0, #1 - strb r0, [r5, #0x1e] - adds r2, r5, #0 - adds r2, #0x29 - ldrb r0, [r2] - movs r1, #7 - orrs r0, r1 - strb r0, [r2] - movs r0, #0x2e - ldrsh r1, [r5, r0] - ldr r2, _08097280 @ =gRoomControls - ldrh r0, [r2, #6] - subs r1, r1, r0 - asrs r1, r1, #4 - movs r3, #0x3f - ands r1, r3 - movs r4, #0x32 - ldrsh r0, [r5, r4] - ldrh r2, [r2, #8] - subs r0, r0, r2 - asrs r0, r0, #4 - ands r0, r3 - lsls r0, r0, #6 - orrs r1, r0 - adds r0, r5, #0 - adds r0, #0x38 - ldrb r2, [r0] - movs r0, #0 - bl sub_0800015E -_08097274: - bl sub_0805E780 - b _08097346 - .align 2, 0 -_0809727C: .4byte 0xFFF80000 -_08097280: .4byte gRoomControls -_08097284: - movs r1, #0x2e - ldrsh r0, [r5, r1] - ldr r3, _080972C0 @ =gRoomControls - ldrh r1, [r3, #6] - subs r0, r0, r1 - asrs r4, r0, #4 - movs r2, #0x3f - ands r4, r2 - movs r1, #0x32 - ldrsh r0, [r5, r1] - ldrh r1, [r3, #8] - subs r0, r0, r1 - asrs r0, r0, #4 - ands r0, r2 - lsls r0, r0, #6 - orrs r4, r0 - adds r0, r4, #0 - bl sub_08097348 - cmp r0, #0 - bne _08097274 - adds r0, r5, #0 - adds r0, #0x38 - ldrb r2, [r0] - movs r0, #0x73 - adds r1, r4, #0 - bl sub_0807B314 - b _08097274 - .align 2, 0 -_080972C0: .4byte gRoomControls -_080972C4: - movs r0, #0x2f - movs r1, #0 - movs r2, #0 - bl CreateObject - adds r4, r0, #0 - cmp r4, #0 - beq _08097274 - ldrh r2, [r5, #0x2e] - movs r1, #0x10 - rsbs r1, r1, #0 - adds r0, r1, #0 - ands r0, r2 - adds r0, #8 - strh r0, [r4, #0x2e] - ldrh r0, [r5, #0x32] - ands r1, r0 - adds r1, #8 - strh r1, [r4, #0x32] - adds r0, r5, #0 - adds r0, #0x38 - ldrb r1, [r0] - adds r0, r4, #0 - adds r0, #0x38 - strb r1, [r0] - adds r0, r5, #0 - adds r0, #0x84 - ldrh r1, [r0] - adds r0, r4, #0 - adds r0, #0x86 - strh r1, [r0] - b _08097274 -_08097304: - movs r0, #0x2f - movs r1, #1 - movs r2, #0 - bl CreateObject - adds r4, r0, #0 - cmp r4, #0 - beq _08097342 - ldrh r2, [r5, #0x2e] - movs r1, #0x10 - rsbs r1, r1, #0 - adds r0, r1, #0 - ands r0, r2 - adds r0, #8 - strh r0, [r4, #0x2e] - ldrh r0, [r5, #0x32] - ands r1, r0 - adds r1, #8 - strh r1, [r4, #0x32] - adds r0, r5, #0 - adds r0, #0x38 - ldrb r1, [r0] - adds r0, r4, #0 - adds r0, #0x38 - strb r1, [r0] - adds r0, r5, #0 - adds r0, #0x84 - ldrh r1, [r0] - adds r0, r4, #0 - adds r0, #0x86 - strh r1, [r0] -_08097342: - bl sub_0805E780 -_08097346: - pop {r4, r5, pc} - - thumb_func_start sub_08097348 -sub_08097348: @ 0x08097348 - push {lr} - adds r3, r0, #0 - ldr r1, _08097360 @ =gUnk_02017660 - movs r2, #0 -_08097350: - ldrh r0, [r1, #4] - cmp r0, r3 - bne _08097364 - ldrb r0, [r1, #1] - bl sub_0807CBD0 - b _0809736E - .align 2, 0 -_08097360: .4byte gUnk_02017660 -_08097364: - adds r2, #1 - adds r1, #8 - cmp r2, #7 - bls _08097350 - movs r0, #0 -_0809736E: - pop {pc} - - thumb_func_start sub_08097370 -sub_08097370: @ 0x08097370 - push {lr} - ldr r2, _08097384 @ =gUnk_08123298 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08097384: .4byte gUnk_08123298 - - thumb_func_start sub_08097388 -sub_08097388: @ 0x08097388 - push {r4, lr} - adds r4, r0, #0 - bl sub_0806FBD8 - cmp r0, #0 - beq _080973D4 - ldrb r0, [r4, #0xa] - lsls r0, r0, #2 - ldr r1, _080973D8 @ =gUnk_081232A0 - adds r0, r0, r1 - ldrb r1, [r0] - strb r1, [r4, #0xb] - ldrb r2, [r0, #3] - adds r1, r4, #0 - adds r1, #0x40 - strb r2, [r1] - ldr r2, [r4, #0x48] - ldrb r1, [r0, #1] - strb r1, [r2, #6] - ldr r1, [r4, #0x48] - ldrb r0, [r0, #2] - strb r0, [r1, #7] - ldrb r1, [r4, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r4, #0x10] - adds r1, r4, #0 - adds r1, #0x3c - movs r0, #7 - strb r0, [r1] - adds r1, #3 - movs r0, #0x91 - strb r0, [r1] - subs r1, #4 - movs r0, #2 - strb r0, [r1] - movs r0, #1 - strb r0, [r4, #0xc] -_080973D4: - pop {r4, pc} - .align 2, 0 -_080973D8: .4byte gUnk_081232A0 - - thumb_func_start sub_080973DC -sub_080973DC: @ 0x080973DC - adds r0, #0x41 - movs r1, #0 - strb r1, [r0] - bx lr - - thumb_func_start sub_080973E4 -sub_080973E4: @ 0x080973E4 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0809741E - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r0, [r4, #0xa] - strb r0, [r4, #0x1e] - adds r1, r4, #0 - adds r1, #0x38 - movs r0, #2 - strb r0, [r1] - adds r0, r4, #0 - bl UpdateSpriteOrderAndFlip - bl sub_08052660 - cmp r0, #0 - beq _0809741E - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r2] -_0809741E: - pop {r4, pc} - - thumb_func_start sub_08097420 -sub_08097420: @ 0x08097420 - push {lr} - ldr r2, _08097434 @ =gUnk_081232A4 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08097434: .4byte gUnk_081232A4 - - thumb_func_start sub_08097438 -sub_08097438: @ 0x08097438 - push {r4, lr} - adds r4, r0, #0 - movs r2, #1 - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - subs r0, #5 - ands r0, r1 - orrs r0, r2 - strb r0, [r4, #0x18] - ldrb r0, [r4, #0xa] - adds r1, r0, #0 - adds r1, #0xb - strb r1, [r4, #0x1e] - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080974A2 - adds r0, r4, #0 - bl sub_08004168 - ldr r1, _08097494 @ =gLinkEntity - ldrb r0, [r1, #0x1b] - movs r2, #0xc0 - orrs r0, r2 - strb r0, [r1, #0x1b] - adds r1, #0x29 - ldrb r1, [r1] - movs r2, #7 - movs r0, #7 - ands r0, r1 - cmp r0, #7 - beq _08097498 - lsls r1, r1, #0x1d - lsrs r1, r1, #0x1d - adds r1, #1 - adds r3, r4, #0 - adds r3, #0x29 - ands r1, r2 - ldrb r2, [r3] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - b _080974A2 - .align 2, 0 -_08097494: .4byte gLinkEntity -_08097498: - adds r1, r4, #0 - adds r1, #0x29 - ldrb r0, [r1] - orrs r0, r2 - strb r0, [r1] -_080974A2: - pop {r4, pc} - - thumb_func_start sub_080974A4 -sub_080974A4: @ 0x080974A4 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xa] - cmp r0, #0 - bne _08097554 - ldr r3, _08097540 @ =gLinkEntity - ldr r0, [r3, #0x34] - cmp r0, #0 - bne _080974E8 - ldr r2, _08097544 @ =gLinkState - ldrb r1, [r2, #0x1e] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - bne _080974D6 - ldrb r0, [r2, #0x12] - cmp r0, #0x11 - bne _080974D6 - ldrb r0, [r3, #0xc] - cmp r0, #1 - beq _080974FA - cmp r0, #0x18 - beq _080974FA - cmp r0, #4 - beq _080974FA -_080974D6: - ldr r1, _08097540 @ =gLinkEntity - ldr r0, [r1, #0x34] - cmp r0, #0 - bne _080974E8 - adds r0, r1, #0 - movs r1, #0x52 - movs r2, #0 - bl CreateFX -_080974E8: - ldr r2, _08097540 @ =gLinkEntity - ldrb r1, [r2, #0x1b] - movs r0, #0x3f - ands r0, r1 - movs r1, #0x80 - orrs r0, r1 - strb r0, [r2, #0x1b] - bl sub_0805E780 -_080974FA: - ldr r2, _08097540 @ =gLinkEntity - ldr r0, [r2, #0x2c] - str r0, [r4, #0x2c] - ldr r0, [r2, #0x30] - str r0, [r4, #0x30] - ldr r0, _08097544 @ =gLinkState - ldrb r0, [r0, #2] - cmp r0, #0 - bne _08097584 - ldrb r0, [r2, #0x1b] - movs r1, #0xc0 - orrs r0, r1 - strb r0, [r2, #0x1b] - adds r0, r2, #0 - adds r0, #0x29 - ldrb r1, [r0] - movs r2, #7 - movs r0, #7 - ands r0, r1 - cmp r0, #7 - beq _08097548 - lsls r1, r1, #0x1d - lsrs r1, r1, #0x1d - adds r1, #1 - adds r3, r4, #0 - adds r3, #0x29 - ands r1, r2 - ldrb r2, [r3] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - b _08097584 - .align 2, 0 -_08097540: .4byte gLinkEntity -_08097544: .4byte gLinkState -_08097548: - adds r1, r4, #0 - adds r1, #0x29 - ldrb r0, [r1] - orrs r0, r2 - strb r0, [r1] - b _08097584 -_08097554: - ldr r2, _08097570 @ =gLinkEntity - ldrb r0, [r2, #0xc] - cmp r0, #0x1e - beq _08097584 - adds r0, r4, #0 - adds r0, #0x38 - ldrb r0, [r0] - cmp r0, #1 - bne _08097574 - ldrb r0, [r2, #0x1b] - movs r1, #0x3f - ands r1, r0 - movs r0, #0x80 - b _0809757C - .align 2, 0 -_08097570: .4byte gLinkEntity -_08097574: - ldrb r0, [r2, #0x1b] - movs r1, #0x3f - ands r1, r0 - movs r0, #0x40 -_0809757C: - orrs r1, r0 - strb r1, [r2, #0x1b] - bl sub_0805E780 -_08097584: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08097588 -sub_08097588: @ 0x08097588 - push {lr} - ldr r2, _0809759C @ =gUnk_081232AC - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0809759C: .4byte gUnk_081232AC - - thumb_func_start sub_080975A0 -sub_080975A0: @ 0x080975A0 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r4, r0, #0 - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] - ldrb r0, [r4, #0xa] - strb r0, [r4, #0x1e] - ldrb r1, [r4, #0x11] - movs r0, #0x10 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #3 - orrs r0, r1 - strb r0, [r4, #0x11] - movs r1, #0x2e - ldrsh r0, [r4, r1] - ldr r2, _08097690 @ =gRoomControls - mov r8, r2 - ldrh r1, [r2, #6] - subs r0, r0, r1 - asrs r5, r0, #4 - movs r6, #0x3f - ands r5, r6 - movs r1, #0x32 - ldrsh r0, [r4, r1] - ldrh r1, [r2, #8] - subs r0, r0, r1 - asrs r0, r0, #4 - ands r0, r6 - lsls r0, r0, #6 - orrs r5, r0 - adds r0, r5, #0 - subs r0, #0x41 - adds r7, r4, #0 - adds r7, #0x38 - ldrb r1, [r7] - bl sub_080001DA - adds r1, r4, #0 - adds r1, #0x6a - strh r0, [r1] - adds r0, r5, #0 - subs r0, #0x40 - ldrb r1, [r7] - bl sub_080001DA - adds r1, r4, #0 - adds r1, #0x6c - strh r0, [r1] - adds r0, r5, #0 - subs r0, #0x3f - ldrb r1, [r7] - bl sub_080001DA - adds r1, r4, #0 - adds r1, #0x6e - strh r0, [r1] - subs r0, r5, #1 - ldrb r1, [r7] - bl sub_080001DA - adds r1, r4, #0 - adds r1, #0x70 - strh r0, [r1] - ldrb r1, [r7] - adds r0, r5, #0 - bl sub_080001DA - adds r1, r4, #0 - adds r1, #0x72 - strh r0, [r1] - adds r0, r5, #1 - ldrb r1, [r7] - bl sub_080001DA - adds r1, r4, #0 - adds r1, #0x74 - strh r0, [r1] - adds r0, r5, #0 - adds r0, #0x3f - ldrb r1, [r7] - bl sub_080001DA - adds r1, r4, #0 - adds r1, #0x76 - strh r0, [r1] - adds r0, r5, #0 - adds r0, #0x40 - ldrb r1, [r7] - bl sub_080001DA - adds r1, r4, #0 - adds r1, #0x78 - strh r0, [r1] - adds r0, r5, #0 - adds r0, #0x41 - ldrb r1, [r7] - bl sub_080001DA - adds r1, r4, #0 - adds r1, #0x7a - strh r0, [r1] - adds r0, r4, #0 - bl sub_0809798C - cmp r0, #0 - beq _080976A2 - ldrb r0, [r4, #0xa] - cmp r0, #0 - bne _08097694 - ldrh r0, [r4, #0x32] - subs r0, #0x16 - b _08097698 - .align 2, 0 -_08097690: .4byte gRoomControls -_08097694: - ldrh r0, [r4, #0x32] - subs r0, #0x10 -_08097698: - strh r0, [r4, #0x32] - adds r0, r4, #0 - bl sub_080977F4 - b _08097722 -_080976A2: - movs r0, #1 - strb r0, [r4, #0xc] - movs r2, #0x2e - ldrsh r0, [r4, r2] - mov r2, r8 - ldrh r1, [r2, #6] - subs r0, r0, r1 - asrs r5, r0, #4 - ands r5, r6 - movs r1, #0x32 - ldrsh r0, [r4, r1] - ldrh r1, [r2, #8] - subs r0, r0, r1 - asrs r0, r0, #4 - ands r0, r6 - lsls r0, r0, #6 - orrs r5, r0 - adds r0, r4, #0 - adds r0, #0x68 - strh r5, [r0] - ldr r1, _080976FC @ =gUnk_081232DE - ldrb r0, [r4, #0xb] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r6, [r0] - ldrb r0, [r4, #0xa] - cmp r0, #0 - bne _08097704 - ldr r0, _08097700 @ =gUnk_080FD578 - str r0, [r4, #0x48] - subs r1, r5, #1 - ldrb r2, [r7] - adds r0, r6, #0 - bl sub_0800015E - ldrb r2, [r7] - adds r0, r6, #0 - adds r1, r5, #0 - bl sub_0800015E - ldrh r0, [r4, #0x32] - adds r0, #2 - strh r0, [r4, #0x32] - b _08097722 - .align 2, 0 -_080976FC: .4byte gUnk_081232DE -_08097700: .4byte gUnk_080FD578 -_08097704: - ldr r0, _08097728 @ =gUnk_080FD570 - str r0, [r4, #0x48] - ldrb r2, [r7] - adds r0, r6, #0 - adds r1, r5, #0 - bl sub_0800015E - ldrb r0, [r4, #0xb] - cmp r0, #2 - bne _08097722 - ldr r0, _0809772C @ =gUnk_081232C0 - ldrb r2, [r7] - adds r1, r5, #0 - bl sub_0801AF18 -_08097722: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08097728: .4byte gUnk_080FD570 -_0809772C: .4byte gUnk_081232C0 - - thumb_func_start sub_08097730 -sub_08097730: @ 0x08097730 - push {r4, lr} - adds r4, r0, #0 - bl sub_0809785C - cmp r0, #0 - beq _08097744 - ldrb r1, [r4, #0xe] - adds r0, r4, #0 - bl sub_0805E4E0 -_08097744: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08097748 -sub_08097748: @ 0x08097748 - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xd] - cmp r0, #0 - bne _08097774 - ldrb r0, [r2, #0xf] - subs r0, #1 - strb r0, [r2, #0xf] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0809779A - movs r0, #1 - strb r0, [r2, #0xd] - movs r0, #0x78 - strb r0, [r2, #0xf] - ldr r1, _08097770 @ =gRoomControls - str r2, [r1, #0x30] - movs r0, #2 - strb r0, [r1, #0xe] - b _0809779A - .align 2, 0 -_08097770: .4byte gRoomControls -_08097774: - ldrb r0, [r2, #0xf] - subs r0, #1 - strb r0, [r2, #0xf] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0809779A - movs r0, #3 - strb r0, [r2, #0xc] - movs r0, #0x60 - strb r0, [r2, #0xe] - movs r0, #0x14 - strb r0, [r2, #0xf] - adds r0, r2, #0 - movs r1, #0x60 - bl sub_0805E4E0 - ldr r0, _0809779C @ =0x0000010F - bl PlaySFX -_0809779A: - pop {pc} - .align 2, 0 -_0809779C: .4byte 0x0000010F - - thumb_func_start sub_080977A0 -sub_080977A0: @ 0x080977A0 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _080977BC - subs r0, #1 - strb r0, [r4, #0xe] - adds r0, r4, #0 - bl sub_0806F69C - adds r0, r4, #0 - bl sub_0800445C - b _080977E4 -_080977BC: - ldrb r0, [r4, #0xf] - cmp r0, #0 - beq _080977C8 - subs r0, #1 - strb r0, [r4, #0xf] - b _080977E4 -_080977C8: - movs r0, #0x72 - bl sub_08004488 - adds r0, r4, #0 - bl sub_080977F4 - ldrb r0, [r4, #0xa] - cmp r0, #0 - bne _080977E4 - ldr r0, _080977E8 @ =gRoomControls - ldr r1, _080977EC @ =gLinkEntity - str r1, [r0, #0x30] - movs r1, #4 - strb r1, [r0, #0xe] -_080977E4: - pop {r4, pc} - .align 2, 0 -_080977E8: .4byte gRoomControls -_080977EC: .4byte gLinkEntity - - thumb_func_start nullsub_528 -nullsub_528: @ 0x080977F0 - bx lr - .align 2, 0 - - thumb_func_start sub_080977F4 -sub_080977F4: @ 0x080977F4 - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - movs r1, #0 - movs r0, #4 - strb r0, [r5, #0xc] - adds r0, r5, #0 - adds r0, #0x63 - strb r1, [r0] - movs r1, #0x2e - ldrsh r0, [r5, r1] - ldr r3, _08097854 @ =gRoomControls - ldrh r1, [r3, #6] - subs r0, r0, r1 - asrs r4, r0, #4 - movs r2, #0x3f - ands r4, r2 - movs r1, #0x32 - ldrsh r0, [r5, r1] - ldrh r1, [r3, #8] - subs r0, r0, r1 - asrs r0, r0, #4 - ands r0, r2 - lsls r0, r0, #6 - orrs r4, r0 - ldr r7, _08097858 @ =0x00004022 - adds r6, r5, #0 - adds r6, #0x38 - ldrb r2, [r6] - adds r0, r7, #0 - adds r1, r4, #0 - bl sub_0800015E - ldrb r0, [r5, #0xa] - cmp r0, #0 - bne _08097844 - subs r1, r4, #1 - ldrb r2, [r6] - adds r0, r7, #0 - bl sub_0800015E -_08097844: - adds r1, r5, #0 - adds r1, #0x86 - ldrh r0, [r1] - cmp r0, #0 - beq _08097852 - bl sub_0807CCC8 -_08097852: - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08097854: .4byte gRoomControls -_08097858: .4byte 0x00004022 - - thumb_func_start sub_0809785C -sub_0809785C: @ 0x0809785C - push {r4, r5, r6, lr} - adds r5, r0, #0 - ldrb r4, [r5, #0xa] - cmp r4, #0 - beq _08097948 - ldrb r0, [r5, #0xb] - cmp r0, #0 - bne _0809786E - b _08097986 -_0809786E: - adds r0, r5, #0 - adds r0, #0x86 - ldrh r0, [r0] - bl sub_0807CBE4 - adds r4, r5, #0 - adds r4, #0x68 - adds r6, r5, #0 - adds r6, #0x38 - cmp r0, #0 - bne _08097892 - ldrh r0, [r4] - ldrb r1, [r6] - bl sub_080002B0 - ldr r1, _08097940 @ =0x0000403F - cmp r0, r1 - bne _08097986 -_08097892: - movs r1, #0 - movs r0, #3 - strb r0, [r5, #0xc] - movs r0, #0x40 - strb r0, [r5, #0xe] - strb r1, [r5, #0xf] - strb r1, [r5, #0x15] - strh r0, [r5, #0x24] - ldrh r4, [r4] - adds r0, r5, #0 - adds r0, #0x72 - ldrh r0, [r0] - ldrb r2, [r6] - adds r1, r4, #0 - bl sub_0807B9B8 - ldrb r0, [r5, #0xb] - cmp r0, #2 - bne _08097934 - adds r0, r5, #0 - adds r0, #0x6a - ldrh r0, [r0] - adds r1, r4, #0 - subs r1, #0x41 - ldrb r2, [r6] - bl sub_0807B9B8 - adds r0, r5, #0 - adds r0, #0x6c - ldrh r0, [r0] - adds r1, r4, #0 - subs r1, #0x40 - ldrb r2, [r6] - bl sub_0807B9B8 - adds r0, r5, #0 - adds r0, #0x6e - ldrh r0, [r0] - adds r1, r4, #0 - subs r1, #0x3f - ldrb r2, [r6] - bl sub_0807B9B8 - adds r0, r5, #0 - adds r0, #0x70 - ldrh r0, [r0] - subs r1, r4, #1 - ldrb r2, [r6] - bl sub_0807B9B8 - adds r0, r5, #0 - adds r0, #0x74 - ldrh r0, [r0] - adds r1, r4, #1 - ldrb r2, [r6] - bl sub_0807B9B8 - adds r0, r5, #0 - adds r0, #0x76 - ldrh r0, [r0] - adds r1, r4, #0 - adds r1, #0x3f - ldrb r2, [r6] - bl sub_0807B9B8 - adds r0, r5, #0 - adds r0, #0x78 - ldrh r0, [r0] - adds r1, r4, #0 - adds r1, #0x40 - ldrb r2, [r6] - bl sub_0807B9B8 - adds r0, r5, #0 - adds r0, #0x7a - ldrh r0, [r0] - adds r1, r4, #0 - adds r1, #0x41 - ldrb r2, [r6] - bl sub_0807B9B8 -_08097934: - ldr r0, _08097944 @ =0x0000010F - bl PlaySFX - movs r0, #1 - b _08097988 - .align 2, 0 -_08097940: .4byte 0x0000403F -_08097944: .4byte 0x0000010F -_08097948: - adds r0, r5, #0 - adds r0, #0x86 - ldrh r0, [r0] - bl sub_0807CBE4 - cmp r0, #0 - beq _08097986 - movs r0, #2 - strb r0, [r5, #0xc] - strb r4, [r5, #0xd] - movs r0, #0xf0 - strb r0, [r5, #0xe] - movs r0, #0x3c - strb r0, [r5, #0xf] - strb r4, [r5, #0x15] - movs r0, #0x40 - strh r0, [r5, #0x24] - adds r4, r5, #0 - adds r4, #0x68 - ldrh r0, [r4] - adds r5, #0x38 - ldrb r1, [r5] - bl sub_0807BA8C - ldrh r0, [r4] - subs r0, #1 - ldrb r1, [r5] - bl sub_0807BA8C - movs r0, #1 - b _08097988 -_08097986: - movs r0, #0 -_08097988: - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_0809798C -sub_0809798C: @ 0x0809798C - push {r4, lr} - adds r1, r0, #0 - movs r4, #0 - ldrb r0, [r1, #0xa] - cmp r0, #0 - beq _0809799E - ldrb r0, [r1, #0xb] - cmp r0, #0 - beq _080979AE -_0809799E: - adds r0, r1, #0 - adds r0, #0x86 - ldrh r0, [r0] - bl sub_0807CBE4 - cmp r0, #0 - beq _080979AE - movs r4, #1 -_080979AE: - adds r0, r4, #0 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080979B4 -sub_080979B4: @ 0x080979B4 - push {lr} - ldr r2, _080979C8 @ =gUnk_081232E4 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_080979C8: .4byte gUnk_081232E4 - - thumb_func_start sub_080979CC -sub_080979CC: @ 0x080979CC - push {r4, r5, r6, lr} - adds r5, r0, #0 - movs r2, #1 - movs r0, #1 - strb r0, [r5, #0xc] - ldrb r1, [r5, #0x18] - subs r0, #5 - ands r0, r1 - orrs r0, r2 - strb r0, [r5, #0x18] - ldrb r0, [r5, #0xa] - cmp r0, #3 - bne _08097A20 - movs r0, #0 - strb r0, [r5, #0x1e] - ldr r0, _08097A18 @ =gUnk_081232FE - movs r2, #0x2e - ldrsh r1, [r5, r2] - ldr r3, _08097A1C @ =gRoomControls - ldrh r2, [r3, #6] - subs r1, r1, r2 - asrs r1, r1, #4 - movs r4, #0x3f - ands r1, r4 - movs r6, #0x32 - ldrsh r2, [r5, r6] - ldrh r3, [r3, #8] - subs r2, r2, r3 - asrs r2, r2, #4 - ands r2, r4 - lsls r2, r2, #6 - orrs r1, r2 - adds r2, r5, #0 - adds r2, #0x38 - ldrb r2, [r2] - bl sub_0801AF18 - b _08097A4E - .align 2, 0 -_08097A18: .4byte gUnk_081232FE -_08097A1C: .4byte gRoomControls -_08097A20: - strb r0, [r5, #0x1e] - ldr r0, _08097A50 @ =gUnk_081232EC - movs r2, #0x2e - ldrsh r1, [r5, r2] - ldr r3, _08097A54 @ =gRoomControls - ldrh r2, [r3, #6] - subs r1, r1, r2 - asrs r1, r1, #4 - movs r4, #0x3f - ands r1, r4 - movs r6, #0x32 - ldrsh r2, [r5, r6] - ldrh r3, [r3, #8] - subs r2, r2, r3 - asrs r2, r2, #4 - ands r2, r4 - lsls r2, r2, #6 - orrs r1, r2 - adds r2, r5, #0 - adds r2, #0x38 - ldrb r2, [r2] - bl sub_0801AF18 -_08097A4E: - pop {r4, r5, r6, pc} - .align 2, 0 -_08097A50: .4byte gUnk_081232EC -_08097A54: .4byte gRoomControls - - thumb_func_start nullsub_529 -nullsub_529: @ 0x08097A58 - bx lr - .align 2, 0 - - thumb_func_start sub_08097A5C -sub_08097A5C: @ 0x08097A5C - push {r4, r5, lr} - adds r5, r0, #0 - ldrb r0, [r5, #0xc] - cmp r0, #0 - bne _08097AAC - movs r4, #1 - movs r0, #1 - strb r0, [r5, #0xc] - movs r0, #0x5a - strb r0, [r5, #0xe] - bl Random - strb r0, [r5, #0xf] - lsrs r0, r0, #0x10 - movs r1, #3 - ands r0, r1 - strb r0, [r5, #0x1e] - ldrb r1, [r5, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - orrs r0, r4 - strb r0, [r5, #0x18] - adds r2, r5, #0 - adds r2, #0x29 - ldrb r0, [r2] - movs r1, #7 - orrs r0, r1 - strb r0, [r2] - ldrb r0, [r5, #0xb] - bl sub_0804B128 - str r0, [r5, #0x54] - adds r1, r5, #0 - adds r1, #0x54 - adds r2, r5, #0 - adds r2, #0x70 - adds r0, r5, #0 - bl sub_080A2CC0 -_08097AAC: - adds r0, r5, #0 - bl sub_08097ADC - adds r1, r0, #0 - adds r0, r5, #0 - bl sub_080A2BE4 - adds r0, r5, #0 - bl sub_08097B24 - adds r2, r5, #0 - adds r2, #0x70 - ldrh r0, [r2] - subs r0, #1 - strh r0, [r2] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _08097ADA - adds r1, r5, #0 - adds r1, #0x54 - adds r0, r5, #0 - bl sub_080A2CC0 -_08097ADA: - pop {r4, r5, pc} - - thumb_func_start sub_08097ADC -sub_08097ADC: @ 0x08097ADC - push {r4, r5, lr} - adds r2, r0, #0 - ldr r5, _08097B18 @ =gLinkState - ldr r0, [r5, #0x30] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08097B20 - ldr r4, _08097B1C @ =gLinkEntity - adds r0, r2, #0 - adds r1, r4, #0 - movs r2, #8 - movs r3, #8 - bl sub_080041A0 - cmp r0, #0 - beq _08097B20 - bl sub_08079F8C - cmp r0, #0 - beq _08097B20 - movs r0, #1 - strb r0, [r5, #0x14] - movs r1, #0x36 - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _08097B20 - movs r0, #1 - b _08097B22 - .align 2, 0 -_08097B18: .4byte gLinkState -_08097B1C: .4byte gLinkEntity -_08097B20: - movs r0, #0 -_08097B22: - pop {r4, r5, pc} - - thumb_func_start sub_08097B24 -sub_08097B24: @ 0x08097B24 - push {r4, lr} - adds r3, r0, #0 - ldrb r0, [r3, #0xe] - subs r0, #1 - strb r0, [r3, #0xe] - movs r4, #0xff - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08097B44 - movs r0, #0x5a - strb r0, [r3, #0xe] - ldrb r0, [r3, #0x1e] - adds r0, #1 - movs r1, #3 - ands r0, r1 - strb r0, [r3, #0x1e] -_08097B44: - ldr r2, _08097B68 @ =gUnk_08123318 - ldrb r0, [r3, #0xf] - adds r0, #1 - strb r0, [r3, #0xf] - ands r0, r4 - lsrs r0, r0, #5 - movs r1, #7 - ands r0, r1 - lsls r0, r0, #1 - adds r0, r0, r2 - ldrh r2, [r0] - adds r0, r3, #0 - adds r1, r2, #0 - movs r3, #0 - bl sub_0805EC9C - pop {r4, pc} - .align 2, 0 -_08097B68: .4byte gUnk_08123318 - - thumb_func_start sub_08097B6C -sub_08097B6C: @ 0x08097B6C - push {lr} - ldr r2, _08097B80 @ =gUnk_08123330 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08097B80: .4byte gUnk_08123330 - - thumb_func_start sub_08097B84 -sub_08097B84: @ 0x08097B84 - push {r4, lr} - adds r4, r0, #0 - movs r0, #1 - strb r0, [r4, #0xc] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r0, [r2] - movs r1, #7 - orrs r0, r1 - strb r0, [r2] - ldr r0, _08097BCC @ =gUnk_08123328 - str r0, [r4, #0x48] - adds r2, #0x5d - ldrh r1, [r2] - ldr r0, _08097BD0 @ =0x0000FFFF - cmp r1, r0 - beq _08097BB0 - adds r0, r1, #0 - bl sub_0807CBE4 - cmp r0, #0 - beq _08097BD4 -_08097BB0: - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] - movs r0, #4 - strb r0, [r4, #0xc] - adds r0, r4, #0 - bl sub_08097CFC - b _08097BD8 - .align 2, 0 -_08097BCC: .4byte gUnk_08123328 -_08097BD0: .4byte 0x0000FFFF -_08097BD4: - bl sub_0805BC4C -_08097BD8: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08097BDC -sub_08097BDC: @ 0x08097BDC - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x86 - ldrh r0, [r0] - bl sub_0807CBE4 - cmp r0, #0 - beq _08097C10 - movs r0, #1 - bl sub_08078A90 - ldr r0, _08097C14 @ =gUnk_02034490 - movs r1, #1 - strb r1, [r0] - adds r0, r4, #0 - movs r1, #0x1e - bl sub_0805E4E0 - adds r0, r4, #0 - bl sub_08097CB0 - cmp r0, #0 - bne _08097C10 - adds r0, r4, #0 - bl sub_08097CB4 -_08097C10: - pop {r4, pc} - .align 2, 0 -_08097C14: .4byte gUnk_02034490 - - thumb_func_start sub_08097C18 -sub_08097C18: @ 0x08097C18 - bx lr - .align 2, 0 - - thumb_func_start sub_08097C1C -sub_08097C1C: @ 0x08097C1C - bx lr - .align 2, 0 - - thumb_func_start sub_08097C20 -sub_08097C20: @ 0x08097C20 - push {r4, r5, r6, lr} - adds r4, r0, #0 - movs r0, #0x1e - bl sub_0805E510 - adds r0, r4, #0 - bl sub_0800445C - movs r1, #0x2e - ldrsh r0, [r4, r1] - movs r2, #0x32 - ldrsh r1, [r4, r2] - adds r2, r4, #0 - adds r2, #0x38 - ldrb r2, [r2] - bl sub_080577AC - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - movs r1, #0xff - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #0 - bne _08097CA6 - movs r0, #8 - strb r0, [r4, #0xe] - ldrb r0, [r4, #0xf] - adds r0, #1 - strb r0, [r4, #0xf] - ands r1, r0 - ldr r6, _08097CA8 @ =gLCDControls - movs r0, #0x10 - subs r0, r0, r1 - lsls r0, r0, #8 - orrs r0, r1 - adds r1, r6, #0 - adds r1, #0x68 - strh r0, [r1] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0x10 - bne _08097CA6 - movs r0, #0 - bl sub_08078A90 - ldr r1, _08097CAC @ =gUnk_02034490 - movs r0, #0 - strb r0, [r1] - adds r0, r6, #0 - adds r0, #0x66 - strh r5, [r0] - adds r0, r4, #0 - bl sub_08097CFC - movs r0, #4 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x19] - subs r0, #0x11 - ands r0, r1 - strb r0, [r4, #0x19] - movs r0, #0x72 - bl PlaySFX - movs r0, #0x63 - bl sub_0807CD04 -_08097CA6: - pop {r4, r5, r6, pc} - .align 2, 0 -_08097CA8: .4byte gLCDControls -_08097CAC: .4byte gUnk_02034490 - - thumb_func_start sub_08097CB0 -sub_08097CB0: @ 0x08097CB0 - movs r0, #0 - bx lr - - thumb_func_start sub_08097CB4 -sub_08097CB4: @ 0x08097CB4 - push {lr} - movs r3, #0 - movs r1, #3 - strb r1, [r0, #0xc] - ldrb r2, [r0, #0x18] - subs r1, #7 - ands r1, r2 - movs r2, #1 - orrs r1, r2 - strb r1, [r0, #0x18] - ldrb r2, [r0, #0x19] - movs r1, #0xd - rsbs r1, r1, #0 - ands r1, r2 - movs r2, #4 - orrs r1, r2 - strb r1, [r0, #0x19] - movs r1, #0x1e - strb r1, [r0, #0xe] - strb r3, [r0, #0xf] - ldr r1, _08097CF8 @ =gLCDControls - adds r2, r1, #0 - adds r2, #0x66 - movs r0, #0xf4 - lsls r0, r0, #4 - strh r0, [r2] - adds r1, #0x68 - adds r0, #0xc0 - strh r0, [r1] - movs r0, #0xa5 - lsls r0, r0, #1 - bl PlaySFX - pop {pc} - .align 2, 0 -_08097CF8: .4byte gLCDControls - - thumb_func_start sub_08097CFC -sub_08097CFC: @ 0x08097CFC - push {r4, r5, r6, lr} - adds r5, r0, #0 - ldrh r1, [r5, #0x2e] - movs r0, #0xf - ands r0, r1 - cmp r0, #0 - bne _08097D40 - ldr r0, _08097D38 @ =gUnk_0812336A - movs r2, #0x2e - ldrsh r1, [r5, r2] - ldr r3, _08097D3C @ =gRoomControls - ldrh r2, [r3, #6] - subs r1, r1, r2 - asrs r1, r1, #4 - movs r4, #0x3f - ands r1, r4 - movs r6, #0x32 - ldrsh r2, [r5, r6] - ldrh r3, [r3, #8] - subs r2, r2, r3 - asrs r2, r2, #4 - ands r2, r4 - lsls r2, r2, #6 - orrs r1, r2 - adds r2, r5, #0 - adds r2, #0x38 - ldrb r2, [r2] - bl sub_0801AF18 - b _08097D6C - .align 2, 0 -_08097D38: .4byte gUnk_0812336A -_08097D3C: .4byte gRoomControls -_08097D40: - ldr r0, _08097D70 @ =gUnk_08123344 - movs r2, #0x2e - ldrsh r1, [r5, r2] - ldr r3, _08097D74 @ =gRoomControls - ldrh r2, [r3, #6] - subs r1, r1, r2 - asrs r1, r1, #4 - movs r4, #0x3f - ands r1, r4 - movs r6, #0x32 - ldrsh r2, [r5, r6] - ldrh r3, [r3, #8] - subs r2, r2, r3 - asrs r2, r2, #4 - ands r2, r4 - lsls r2, r2, #6 - orrs r1, r2 - adds r2, r5, #0 - adds r2, #0x38 - ldrb r2, [r2] - bl sub_0801AF18 -_08097D6C: - pop {r4, r5, r6, pc} - .align 2, 0 -_08097D70: .4byte gUnk_08123344 -_08097D74: .4byte gRoomControls - - thumb_func_start sub_08097D78 -sub_08097D78: @ 0x08097D78 - push {lr} - ldr r2, _08097D8C @ =gUnk_08123384 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08097D8C: .4byte gUnk_08123384 - - thumb_func_start sub_08097D90 -sub_08097D90: @ 0x08097D90 - push {r4, lr} - adds r4, r0, #0 - movs r3, #1 - movs r2, #1 - strb r2, [r4, #0xc] - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - orrs r0, r3 - strb r0, [r4, #0x18] - adds r0, r4, #0 - adds r0, #0x38 - strb r2, [r0] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2] - adds r0, r4, #0 - bl UpdateSpriteOrderAndFlip - adds r0, r4, #0 - movs r1, #0 - bl LoadAnimation - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08097DCC -sub_08097DCC: @ 0x08097DCC - push {lr} - bl sub_080042B8 - pop {pc} - - thumb_func_start sub_08097DD4 -sub_08097DD4: @ 0x08097DD4 - push {lr} - ldr r2, _08097DE8 @ =gUnk_081233B8 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08097DE8: .4byte gUnk_081233B8 - - thumb_func_start sub_08097DEC -sub_08097DEC: @ 0x08097DEC - push {r4, lr} - adds r4, r0, #0 - movs r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - bl UpdateSpriteOrderAndFlip - ldrb r0, [r4, #0xa] - cmp r0, #1 - beq _08097E46 - cmp r0, #1 - bgt _08097E0A - cmp r0, #0 - beq _08097E1C - b _08097EA2 -_08097E0A: - cmp r0, #3 - bgt _08097EA2 - ldrb r0, [r4, #0xb] - strb r0, [r4, #0x1e] - ldrb r0, [r4, #0x18] - movs r1, #3 - orrs r0, r1 - strb r0, [r4, #0x18] - b _08097E9C -_08097E1C: - ldrh r2, [r4, #0x2e] - movs r1, #0x10 - rsbs r1, r1, #0 - adds r0, r1, #0 - ands r0, r2 - strh r0, [r4, #0x2e] - ldrh r0, [r4, #0x32] - ands r1, r0 - strh r1, [r4, #0x32] - adds r0, r4, #0 - bl sub_08097EB8 - ldrb r0, [r4, #0xb] - cmp r0, #0 - beq _08097EA2 - adds r1, r0, #0 - adds r1, #0xb - adds r0, r4, #0 - bl sub_0801D2B4 - b _08097EA2 -_08097E46: - ldrb r0, [r4, #0xb] - strb r0, [r4, #0x1e] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x19 - cmp r0, #1 - beq _08097E76 - cmp r0, #1 - bgt _08097E5C - cmp r0, #0 - beq _08097E68 - b _08097E9C -_08097E5C: - cmp r0, #2 - bne _08097E9C - adds r0, r4, #0 - movs r1, #0xd - bl sub_0801D2B4 -_08097E68: - ldrb r0, [r4, #0x1b] - movs r1, #0x3f - ands r1, r0 - movs r0, #0x40 - orrs r1, r0 - strb r1, [r4, #0x1b] - b _08097E9C -_08097E76: - ldrb r1, [r4, #0x1b] - movs r0, #0x3f - ands r0, r1 - movs r1, #0x80 - orrs r0, r1 - strb r0, [r4, #0x1b] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #3 - orrs r0, r1 - strb r0, [r2] - adds r0, r4, #0 - movs r1, #0xb - bl sub_0801D2B4 -_08097E9C: - adds r0, r4, #0 - bl sub_08097F34 -_08097EA2: - pop {r4, pc} - - thumb_func_start sub_08097EA4 -sub_08097EA4: @ 0x08097EA4 - push {lr} - adds r1, r0, #0 - ldrb r0, [r1, #0xa] - cmp r0, #0 - beq _08097EB4 - adds r0, r1, #0 - bl sub_08097F10 -_08097EB4: - pop {pc} - .align 2, 0 - - thumb_func_start sub_08097EB8 -sub_08097EB8: @ 0x08097EB8 - push {r4, r5, r6, lr} - movs r2, #0x2e - ldrsh r1, [r0, r2] - ldr r3, _08097F04 @ =gRoomControls - ldrh r2, [r3, #6] - subs r1, r1, r2 - asrs r5, r1, #4 - movs r2, #0x3f - ands r5, r2 - movs r1, #0x32 - ldrsh r0, [r0, r1] - ldrh r1, [r3, #8] - subs r0, r0, r1 - asrs r0, r0, #4 - ands r0, r2 - lsls r0, r0, #6 - orrs r5, r0 - ldr r4, _08097F08 @ =gUnk_081233C0 - movs r2, #0 - ldrsh r0, [r4, r2] - ldr r1, _08097F0C @ =0x00007FFF - cmp r0, r1 - beq _08097F00 - adds r6, r1, #0 -_08097EE8: - ldrh r0, [r4, #2] - movs r2, #0 - ldrsh r1, [r4, r2] - adds r1, r5, r1 - movs r2, #1 - bl sub_0800015E - adds r4, #4 - movs r1, #0 - ldrsh r0, [r4, r1] - cmp r0, r6 - bne _08097EE8 -_08097F00: - pop {r4, r5, r6, pc} - .align 2, 0 -_08097F04: .4byte gRoomControls -_08097F08: .4byte gUnk_081233C0 -_08097F0C: .4byte 0x00007FFF - - thumb_func_start sub_08097F10 -sub_08097F10: @ 0x08097F10 - push {r4, lr} - adds r4, r0, #0 - ldr r0, _08097F30 @ =gRoomControls - movs r2, #0xc - ldrsh r1, [r0, r2] - ldrh r0, [r0, #8] - subs r1, r1, r0 - adds r0, r4, #0 - bl sub_08097F60 - adds r1, r4, #0 - adds r1, #0x70 - ldrh r1, [r1] - subs r1, r1, r0 - strh r1, [r4, #0x32] - pop {r4, pc} - .align 2, 0 -_08097F30: .4byte gRoomControls - - thumb_func_start sub_08097F34 -sub_08097F34: @ 0x08097F34 - push {r4, lr} - adds r4, r0, #0 - movs r0, #0x32 - ldrsh r1, [r4, r0] - ldr r0, _08097F5C @ =gRoomControls - ldrh r0, [r0, #8] - subs r1, r1, r0 - adds r0, r4, #0 - bl sub_08097F60 - ldrh r1, [r4, #0x32] - adds r1, r1, r0 - adds r0, r4, #0 - adds r0, #0x70 - strh r1, [r0] - adds r0, r4, #0 - bl sub_08097F10 - pop {r4, pc} - .align 2, 0 -_08097F5C: .4byte gRoomControls - - thumb_func_start sub_08097F60 -sub_08097F60: @ 0x08097F60 - push {lr} - ldrb r2, [r0, #0xa] - cmp r2, #1 - bne _08097F74 - ldrb r0, [r0, #0x1e] - lsrs r0, r0, #1 - cmp r0, #1 - bne _08097F7C - asrs r1, r1, #3 - b _08097F7E -_08097F74: - cmp r2, #1 - blt _08097F7E - cmp r2, #3 - bgt _08097F7E -_08097F7C: - asrs r1, r1, #1 -_08097F7E: - adds r0, r1, #0 - pop {pc} - .align 2, 0 - - thumb_func_start sub_08097F84 -sub_08097F84: @ 0x08097F84 - push {r4, lr} - adds r4, r0, #0 - ldr r0, _08097FAC @ =gLinkState - ldr r0, [r0, #0x30] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08097F98 - bl sub_0805E780 -_08097F98: - ldr r0, _08097FB0 @ =gUnk_08123410 - ldrb r1, [r4, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 - pop {r4, pc} - .align 2, 0 -_08097FAC: .4byte gLinkState -_08097FB0: .4byte gUnk_08123410 - - thumb_func_start sub_08097FB4 -sub_08097FB4: @ 0x08097FB4 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - adds r0, #1 - movs r1, #0 - strb r0, [r4, #0xc] - movs r2, #0 - strh r1, [r4, #0x24] - str r1, [r4, #0x6c] - adds r1, r4, #0 - adds r1, #0x7a - movs r0, #0x90 - lsls r0, r0, #5 - strh r0, [r1] - strb r2, [r4, #0xe] - movs r0, #0x1e - strb r0, [r4, #0xf] - ldr r1, _08098014 @ =gUnk_0812341C - ldrb r0, [r4, #0xa] - adds r0, r0, r1 - ldrb r0, [r0] - adds r1, r4, #0 - adds r1, #0x72 - strh r0, [r1] - movs r0, #0x80 - lsls r0, r0, #6 - str r0, [r4, #0x74] - adds r0, r4, #0 - movs r1, #6 - bl sub_0805E3A0 - ldrb r0, [r4, #0xa] - cmp r0, #0 - bne _08098018 - adds r1, r4, #0 - adds r1, #0x7e - movs r0, #0x40 - strh r0, [r1] - adds r0, r4, #0 - movs r1, #1 - movs r2, #0 - bl sub_080AE008 - ldrb r1, [r4, #0xa] - adds r0, r4, #0 - bl LoadAnimation - b _08098032 - .align 2, 0 -_08098014: .4byte gUnk_0812341C -_08098018: - ldr r0, [r4, #0x50] - adds r0, #0x60 - ldrh r1, [r0] - adds r0, r4, #0 - adds r0, #0x60 - strh r1, [r0] - ldr r2, [r4, #0x50] - ldrb r1, [r4, #0xa] - movs r0, #0xd - muls r0, r1, r0 - ldrb r2, [r2, #0x1e] - adds r0, r0, r2 - strb r0, [r4, #0x1e] -_08098032: - adds r0, r4, #0 - bl sub_08098130 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0809803C -sub_0809803C: @ 0x0809803C - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r5, [r4, #0xa] - cmp r5, #0 - bne _08098070 - bl sub_080042B8 - ldrb r0, [r4, #0xb] - cmp r0, #0 - beq _08098082 - ldr r0, _0809806C @ =gLinkEntity - strb r5, [r0, #0xf] - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #1 - bl LoadAnimation - movs r0, #0xbc - lsls r0, r0, #1 - bl PlaySFX - b _08098082 - .align 2, 0 -_0809806C: .4byte gLinkEntity -_08098070: - ldr r2, [r4, #0x50] - ldrb r1, [r4, #0xa] - movs r0, #0xd - muls r0, r1, r0 - ldrb r1, [r2, #0x1e] - adds r0, r0, r1 - strb r0, [r4, #0x1e] - ldrb r0, [r2, #0xc] - strb r0, [r4, #0xc] -_08098082: - pop {r4, r5, pc} - - thumb_func_start sub_08098084 -sub_08098084: @ 0x08098084 - push {r4, lr} - adds r4, r0, #0 - ldr r1, [r4, #0x6c] - movs r0, #0xa0 - lsls r0, r0, #0xd - cmp r1, r0 - bls _080980A8 - ldr r0, _080980A4 @ =gLinkState - ldr r1, [r0, #0x30] - movs r2, #0x80 - orrs r1, r2 - str r1, [r0, #0x30] - bl sub_0805E780 - b _0809812E - .align 2, 0 -_080980A4: .4byte gLinkState -_080980A8: - ldrb r0, [r4, #0xa] - cmp r0, #0 - bne _080980D8 - adds r0, r4, #0 - bl sub_080042B8 - adds r2, r4, #0 - adds r2, #0x7e - ldrh r0, [r2] - subs r0, #1 - strh r0, [r2] - lsls r0, r0, #0x10 - ldr r1, _080980D4 @ =0xFFFF0000 - cmp r0, r1 - bne _080980E6 - movs r0, #0x40 - strh r0, [r2] - movs r0, #0xbc - lsls r0, r0, #1 - bl PlaySFX - b _080980E6 - .align 2, 0 -_080980D4: .4byte 0xFFFF0000 -_080980D8: - ldr r2, [r4, #0x50] - ldrb r1, [r4, #0xa] - movs r0, #0xd - muls r0, r1, r0 - ldrb r2, [r2, #0x1e] - adds r0, r0, r2 - strb r0, [r4, #0x1e] -_080980E6: - ldr r0, [r4, #0x6c] - movs r1, #0xa0 - lsls r1, r1, #5 - adds r0, r0, r1 - str r0, [r4, #0x6c] - ldr r0, [r4, #0x70] - ldr r1, [r4, #0x74] - adds r0, r0, r1 - str r0, [r4, #0x70] - adds r2, r4, #0 - adds r2, #0x72 - ldrh r1, [r2] - movs r0, #0x1f - ands r0, r1 - strh r0, [r2] - ldr r0, [r4, #0x74] - movs r1, #0xa0 - lsls r1, r1, #1 - adds r0, r0, r1 - str r0, [r4, #0x74] - ldrb r0, [r4, #0xf] - subs r0, #1 - strb r0, [r4, #0xf] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xff - bne _08098128 - movs r0, #0x1e - strb r0, [r4, #0xf] - ldrb r0, [r4, #0xe] - movs r1, #1 - eors r0, r1 - strb r0, [r4, #0xe] -_08098128: - adds r0, r4, #0 - bl sub_08098130 -_0809812E: - pop {r4, pc} - - thumb_func_start sub_08098130 -sub_08098130: @ 0x08098130 - push {r4, lr} - adds r4, r0, #0 - ldr r0, _08098160 @ =gLinkEntity - adds r1, r4, #0 - bl CopyPosition - adds r0, r4, #0 - adds r0, #0x72 - ldrh r0, [r0] - strb r0, [r4, #0x15] - adds r0, r4, #0 - adds r0, #0x7a - ldrh r0, [r0] - strh r0, [r4, #0x24] - adds r0, r4, #0 - bl sub_0806F69C - ldr r0, [r4, #0x30] - ldr r1, _08098164 @ =0xFFEC0000 - adds r0, r0, r1 - ldr r1, [r4, #0x6c] - adds r0, r0, r1 - str r0, [r4, #0x30] - pop {r4, pc} - .align 2, 0 -_08098160: .4byte gLinkEntity -_08098164: .4byte 0xFFEC0000 - - thumb_func_start sub_08098168 -sub_08098168: @ 0x08098168 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r5, [r4, #0xc] - cmp r5, #0 - bne _080981DA - movs r2, #1 - movs r3, #1 - strb r3, [r4, #0xc] - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - orrs r0, r2 - strb r0, [r4, #0x18] - ldrb r1, [r4, #0x19] - movs r0, #0xd - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #4 - orrs r0, r1 - strb r0, [r4, #0x19] - strb r3, [r4, #0xe] - bl Random - movs r1, #0xf - ands r0, r1 - strb r0, [r4, #0xf] - adds r0, r4, #0 - adds r0, #0x68 - strb r5, [r0] - adds r1, r4, #0 - adds r1, #0x38 - movs r0, #2 - strb r0, [r1] - adds r0, r4, #0 - bl sub_08016A30 - ldr r1, _080981CC @ =gLCDControls - adds r2, r1, #0 - adds r2, #0x66 - movs r3, #0 - movs r0, #0xbd - lsls r0, r0, #6 - strh r0, [r2] - ldrb r0, [r4, #0xa] - cmp r0, #0 - bne _080981D4 - adds r1, #0x68 - ldr r0, _080981D0 @ =0x0000060A - b _080981D8 - .align 2, 0 -_080981CC: .4byte gLCDControls -_080981D0: .4byte 0x0000060A -_080981D4: - adds r1, #0x68 - ldr r0, _08098208 @ =0x00000808 -_080981D8: - strh r0, [r1] -_080981DA: - ldrb r0, [r4, #0xa] - adds r3, r4, #0 - adds r3, #0x68 - cmp r0, #0 - beq _08098222 - ldr r0, _0809820C @ =gLinkEntity - movs r2, #0x2e - ldrsh r1, [r0, r2] - ldr r0, _08098210 @ =gRoomControls - ldrh r0, [r0, #6] - subs r1, r1, r0 - movs r0, #0xf8 - lsls r0, r0, #1 - cmp r1, r0 - ble _08098214 - ldrb r1, [r3] - movs r0, #0 - ldrsb r0, [r3, r0] - cmp r0, #0x3f - bgt _08098222 - adds r0, r1, #1 - b _08098220 - .align 2, 0 -_08098208: .4byte 0x00000808 -_0809820C: .4byte gLinkEntity -_08098210: .4byte gRoomControls -_08098214: - ldrb r1, [r3] - movs r0, #0 - ldrsb r0, [r3, r0] - cmp r0, #0 - ble _08098222 - subs r0, r1, #1 -_08098220: - strb r0, [r3] -_08098222: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0809823C - movs r0, #8 - strb r0, [r4, #0xe] - ldrb r0, [r4, #0xf] - adds r0, #1 - movs r1, #0xf - ands r0, r1 - strb r0, [r4, #0xf] -_0809823C: - ldr r1, _0809825C @ =gUnk_08123484 - ldrb r0, [r4, #0xf] - adds r0, r0, r1 - ldrb r0, [r0] - adds r2, r4, #0 - adds r2, #0x62 - strb r0, [r2] - ldrb r0, [r4, #0xf] - adds r0, r0, r1 - ldrb r1, [r3] - ldrb r0, [r0] - adds r1, r1, r0 - adds r0, r4, #0 - adds r0, #0x63 - strb r1, [r0] - pop {r4, r5, pc} - .align 2, 0 -_0809825C: .4byte gUnk_08123484 - - thumb_func_start sub_08098260 -sub_08098260: @ 0x08098260 - push {lr} - ldr r2, _08098274 @ =gUnk_08123494 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08098274: .4byte gUnk_08123494 - - thumb_func_start sub_08098278 -sub_08098278: @ 0x08098278 - push {lr} - adds r3, r0, #0 - adds r3, #0x29 - ldrb r2, [r3] - movs r1, #8 - rsbs r1, r1, #0 - ands r1, r2 - movs r2, #5 - orrs r1, r2 - strb r1, [r3] - bl sub_08098340 - pop {pc} - .align 2, 0 - - thumb_func_start sub_08098294 -sub_08098294: @ 0x08098294 - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_08098418 - cmp r0, #0 - beq _080982FA - movs r5, #0 - movs r0, #2 - strb r0, [r4, #0xc] - adds r0, r4, #0 - adds r0, #0x62 - strb r5, [r0] - adds r0, #1 - strb r5, [r0] - adds r0, #0xf - ldrh r0, [r0] - adds r1, r4, #0 - adds r1, #0x70 - ldrh r1, [r1] - adds r2, r4, #0 - adds r2, #0x38 - ldrb r2, [r2] - bl sub_0800015E - movs r0, #0xb5 - lsls r0, r0, #1 - bl sub_08004488 - adds r0, r4, #0 - movs r1, #0x1e - bl sub_0805E4E0 - bl sub_08079F8C - cmp r0, #0 - beq _080982FA - ldr r2, _080982FC @ =gLinkState - movs r0, #0x90 - strb r0, [r2, #6] - movs r0, #5 - strb r0, [r2, #0xc] - ldr r0, [r2, #0x30] - movs r1, #1 - orrs r0, r1 - str r0, [r2, #0x30] - ldr r1, _08098300 @ =gLinkEntity - strh r5, [r1, #0x2c] - strh r5, [r1, #0x30] - ldrb r0, [r1, #0x14] - lsls r0, r0, #2 - strb r0, [r1, #0x15] -_080982FA: - pop {r4, r5, pc} - .align 2, 0 -_080982FC: .4byte gLinkState -_08098300: .4byte gLinkEntity - - thumb_func_start sub_08098304 -sub_08098304: @ 0x08098304 - push {r4, lr} - adds r4, r0, #0 - bl sub_08004274 - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0809833C - ldrb r0, [r4, #0xb] - cmp r0, #0 - bne _0809832C - adds r0, r4, #0 - adds r0, #0x86 - ldrh r0, [r0] - bl sub_0807CCC8 - b _08098336 -_0809832C: - adds r0, r4, #0 - adds r0, #0x86 - ldrh r0, [r0] - bl sub_0807CD48 -_08098336: - adds r0, r4, #0 - bl sub_08098340 -_0809833C: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08098340 -sub_08098340: @ 0x08098340 - push {lr} - movs r1, #1 - strb r1, [r0, #0xc] - adds r2, r0, #0 - adds r2, #0x74 - movs r1, #0x3c - strh r1, [r2] - bl sub_08098354 - pop {pc} - - thumb_func_start sub_08098354 -sub_08098354: @ 0x08098354 - push {r4, r5, r6, lr} - adds r6, r0, #0 - adds r0, #0x86 - ldrh r0, [r0] - bl sub_0807CBE4 - cmp r0, #0 - bne _080983BC - strb r0, [r6, #0xb] - movs r0, #0x2e - ldrsh r2, [r6, r0] - ldr r1, _080983B4 @ =gRoomControls - ldrh r0, [r1, #6] - subs r2, r2, r0 - asrs r2, r2, #4 - movs r3, #0x3f - ands r2, r3 - movs r4, #0x32 - ldrsh r0, [r6, r4] - ldrh r1, [r1, #8] - adds r1, #0x10 - subs r0, r0, r1 - asrs r0, r0, #4 - ands r0, r3 - lsls r0, r0, #6 - orrs r2, r0 - adds r4, r6, #0 - adds r4, #0x70 - strh r2, [r4] - ldrh r0, [r4] - adds r5, r6, #0 - adds r5, #0x38 - ldrb r1, [r5] - bl sub_080001DA - adds r1, r6, #0 - adds r1, #0x72 - strh r0, [r1] - ldr r0, _080983B8 @ =0x00004053 - ldrh r1, [r4] - ldrb r2, [r5] - bl sub_0800015E - adds r0, r6, #0 - movs r1, #1 - bl UpdateSprite - b _0809840C - .align 2, 0 -_080983B4: .4byte gRoomControls -_080983B8: .4byte 0x00004053 -_080983BC: - movs r0, #1 - strb r0, [r6, #0xb] - movs r0, #0x2e - ldrsh r2, [r6, r0] - ldr r1, _08098410 @ =gRoomControls - ldrh r0, [r1, #6] - adds r0, #0x10 - subs r2, r2, r0 - asrs r2, r2, #4 - movs r3, #0x3f - ands r2, r3 - movs r4, #0x32 - ldrsh r0, [r6, r4] - ldrh r1, [r1, #8] - subs r0, r0, r1 - asrs r0, r0, #4 - ands r0, r3 - lsls r0, r0, #6 - orrs r2, r0 - adds r4, r6, #0 - adds r4, #0x70 - strh r2, [r4] - ldrh r0, [r4] - adds r5, r6, #0 - adds r5, #0x38 - ldrb r1, [r5] - bl sub_080001DA - adds r1, r6, #0 - adds r1, #0x72 - strh r0, [r1] - ldr r0, _08098414 @ =0x00004052 - ldrh r1, [r4] - ldrb r2, [r5] - bl sub_0800015E - adds r0, r6, #0 - movs r1, #0 - bl UpdateSprite -_0809840C: - pop {r4, r5, r6, pc} - .align 2, 0 -_08098410: .4byte gRoomControls -_08098414: .4byte 0x00004052 - - thumb_func_start sub_08098418 -sub_08098418: @ 0x08098418 - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r6, r4, #0 - adds r6, #0x70 - ldrh r0, [r6] - adds r5, r4, #0 - adds r5, #0x38 - ldrb r1, [r5] - bl sub_080001DA - ldr r1, _08098448 @ =0x00004054 - cmp r0, r1 - bne _0809846C - adds r1, r4, #0 - adds r1, #0x74 - ldrh r0, [r1] - subs r0, #1 - strh r0, [r1] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _0809844C - movs r0, #1 - b _08098482 - .align 2, 0 -_08098448: .4byte 0x00004054 -_0809844C: - adds r0, r4, #0 - bl sub_08098484 - ldr r1, _08098468 @ =gUnk_081234A0 - ldrb r0, [r4, #0xb] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r0, [r0] - ldrh r1, [r6] - ldrb r2, [r5] - bl sub_0800015E - b _08098480 - .align 2, 0 -_08098468: .4byte gUnk_081234A0 -_0809846C: - adds r1, r4, #0 - adds r1, #0x74 - movs r2, #0 - movs r0, #0x3c - strh r0, [r1] - adds r0, r4, #0 - adds r0, #0x62 - strb r2, [r0] - adds r0, #1 - strb r2, [r0] -_08098480: - movs r0, #0 -_08098482: - pop {r4, r5, r6, pc} - - thumb_func_start sub_08098484 -sub_08098484: @ 0x08098484 - push {r4, lr} - adds r3, r0, #0 - ldrb r0, [r3, #0xb] - ldr r4, _080984C4 @ =gUnk_081234AC - cmp r0, #0 - bne _08098492 - ldr r4, _080984C8 @ =gUnk_081234A4 -_08098492: - adds r2, r3, #0 - adds r2, #0x74 - ldrh r0, [r2] - lsrs r0, r0, #2 - movs r1, #6 - ands r0, r1 - adds r4, r4, r0 - ldrb r0, [r4] - adds r1, r3, #0 - adds r1, #0x62 - strb r0, [r1] - ldrb r1, [r4, #1] - adds r0, r3, #0 - adds r0, #0x63 - strb r1, [r0] - ldrh r1, [r2] - movs r0, #3 - ands r0, r1 - cmp r0, #0 - bne _080984C2 - movs r0, #0x82 - lsls r0, r0, #1 - bl sub_08004488 -_080984C2: - pop {r4, pc} - .align 2, 0 -_080984C4: .4byte gUnk_081234AC -_080984C8: .4byte gUnk_081234A4 - - thumb_func_start sub_080984CC -sub_080984CC: @ 0x080984CC - push {r4, lr} - adds r4, r0, #0 - ldr r1, _080984E8 @ =gUnk_08123504 - ldrb r0, [r4, #0xc] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - adds r0, r4, #0 - bl sub_0800445C - pop {r4, pc} - .align 2, 0 -_080984E8: .4byte gUnk_08123504 - - thumb_func_start sub_080984EC -sub_080984EC: @ 0x080984EC - push {lr} - movs r1, #1 - strb r1, [r0, #0xc] - ldr r2, _08098528 @ =gUnk_081234EC - ldrb r1, [r0, #0xa] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - str r1, [r0, #0x48] - ldrb r0, [r0, #0xb] - cmp r0, #1 - bne _08098524 - ldr r0, _0809852C @ =0x00004024 - movs r1, #0x82 - lsls r1, r1, #3 - movs r2, #1 - bl sub_0800015E - ldr r0, _08098530 @ =0x00004026 - ldr r1, _08098534 @ =0x00000411 - movs r2, #1 - bl sub_0800015E - ldr r0, _08098538 @ =0x00004025 - ldr r1, _0809853C @ =0x00000412 - movs r2, #1 - bl sub_0800015E -_08098524: - pop {pc} - .align 2, 0 -_08098528: .4byte gUnk_081234EC -_0809852C: .4byte 0x00004024 -_08098530: .4byte 0x00004026 -_08098534: .4byte 0x00000411 -_08098538: .4byte 0x00004025 -_0809853C: .4byte 0x00000412 - - thumb_func_start nullsub_532 -nullsub_532: @ 0x08098540 - bx lr - .align 2, 0 - - thumb_func_start sub_08098544 -sub_08098544: @ 0x08098544 - push {lr} - ldr r2, _08098558 @ =gUnk_0812350C - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08098558: .4byte gUnk_0812350C - - thumb_func_start sub_0809855C -sub_0809855C: @ 0x0809855C - push {r4, r5, lr} - adds r4, r0, #0 - movs r3, #0 - movs r5, #1 - strb r5, [r4, #0xc] - ldrb r0, [r4, #0x10] - movs r2, #0x80 - orrs r0, r2 - strb r0, [r4, #0x10] - movs r0, #0x29 - adds r0, r0, r4 - mov ip, r0 - ldrb r1, [r0] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #6 - orrs r0, r1 - mov r1, ip - strb r0, [r1] - ldrb r1, [r4, #0x19] - movs r0, #0x3f - ands r0, r1 - orrs r0, r2 - strb r0, [r4, #0x19] - strb r3, [r4, #0xf] - adds r1, r4, #0 - adds r1, #0x3f - movs r0, #0x6e - strb r0, [r1] - subs r1, #4 - movs r0, #0x86 - strb r0, [r1] - strb r3, [r4, #0x16] - ldrb r0, [r4, #0xa] - cmp r0, #0 - beq _080985AC - movs r0, #2 - strb r0, [r4, #0x1c] - b _080985AE -_080985AC: - strb r5, [r4, #0x1c] -_080985AE: - ldr r1, [r4, #0x50] - adds r0, r4, #0 - bl sub_0806FAD8 - adds r0, r4, #0 - bl sub_08098918 - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_080985C0 -sub_080985C0: @ 0x080985C0 - push {r4, lr} - adds r4, r0, #0 - bl sub_080989E4 - cmp r0, #0 - bne _080985CE - b _080986FC -_080985CE: - ldrb r0, [r0, #0xc] - cmp r0, #4 - bls _080985D6 - b _080986E6 -_080985D6: - adds r0, r4, #0 - adds r0, #0x41 - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _080985E6 - b _080986EE -_080985E6: - movs r0, #0x3f - ands r0, r1 - subs r0, #4 - cmp r0, #0x1c - bls _080985F2 - b _08098702 -_080985F2: - lsls r0, r0, #2 - ldr r1, _080985FC @ =_08098600 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080985FC: .4byte _08098600 -_08098600: @ jump table - .4byte _080986C4 @ case 0 - .4byte _080986C4 @ case 1 - .4byte _080986C4 @ case 2 - .4byte _08098702 @ case 3 - .4byte _080986C4 @ case 4 - .4byte _080986C4 @ case 5 - .4byte _080986C4 @ case 6 - .4byte _080986C4 @ case 7 - .4byte _080986C4 @ case 8 - .4byte _080986C4 @ case 9 - .4byte _08098702 @ case 10 - .4byte _0809867E @ case 11 - .4byte _080986C4 @ case 12 - .4byte _080986C4 @ case 13 - .4byte _080986C4 @ case 14 - .4byte _08098674 @ case 15 - .4byte _080986E0 @ case 16 - .4byte _08098702 @ case 17 - .4byte _080986E0 @ case 18 - .4byte _08098702 @ case 19 - .4byte _080986C4 @ case 20 - .4byte _080986C4 @ case 21 - .4byte _080986C4 @ case 22 - .4byte _08098702 @ case 23 - .4byte _08098702 @ case 24 - .4byte _0809867E @ case 25 - .4byte _08098702 @ case 26 - .4byte _08098702 @ case 27 - .4byte _080986E0 @ case 28 -_08098674: - movs r1, #0 - movs r0, #3 - strb r0, [r4, #0xc] - strb r1, [r4, #0xd] - b _08098702 -_0809867E: - movs r2, #0 - movs r0, #4 - strb r0, [r4, #0xc] - movs r0, #0xa8 - lsls r0, r0, #0xa - str r0, [r4, #0x20] - adds r0, r4, #0 - adds r0, #0x63 - strb r2, [r0] - ldrb r1, [r4, #0x18] - movs r0, #0x31 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #0x10 - orrs r0, r1 - strb r0, [r4, #0x18] - adds r3, r4, #0 - adds r3, #0x29 - ldrb r1, [r3] - movs r0, #0x39 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #0x18 - orrs r0, r1 - strb r0, [r3] - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - ldr r0, [r4, #0x50] - str r2, [r0, #0x54] - adds r0, r4, #0 - bl sub_080988E8 - b _08098702 -_080986C4: - ldrb r0, [r4, #0xa] - cmp r0, #0 - beq _080986E6 - ldr r0, _080986DC @ =gLinkState - adds r0, #0xac - ldrh r1, [r0] - movs r0, #8 - ands r0, r1 - cmp r0, #0 - beq _08098702 - b _080986E6 - .align 2, 0 -_080986DC: .4byte gLinkState -_080986E0: - ldrb r0, [r4, #0xa] - cmp r0, #0 - bne _08098702 -_080986E6: - adds r0, r4, #0 - bl sub_080989C0 - b _08098702 -_080986EE: - adds r0, r4, #0 - bl sub_08098918 - adds r0, r4, #0 - bl sub_08078930 - b _08098702 -_080986FC: - adds r0, r4, #0 - bl sub_080989C0 -_08098702: - pop {r4, pc} - - thumb_func_start sub_08098704 -sub_08098704: @ 0x08098704 - push {lr} - ldr r2, _08098718 @ =gUnk_08123524 - ldrb r1, [r0, #0xd] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08098718: .4byte gUnk_08123524 - - thumb_func_start sub_0809871C -sub_0809871C: @ 0x0809871C - adds r3, r0, #0 - ldrb r1, [r3, #0x10] - movs r0, #0x80 - movs r2, #0 - orrs r0, r1 - strb r0, [r3, #0x10] - adds r1, r3, #0 - adds r1, #0x3c - movs r0, #7 - strb r0, [r1] - adds r1, #3 - movs r0, #1 - strb r0, [r1] - ldr r0, _08098754 @ =gLinkEntity - adds r0, #0x3b - ldrb r0, [r0] - subs r1, #4 - strb r0, [r1] - adds r0, r3, #0 - adds r0, #0x63 - strb r2, [r0] - ldr r0, [r3, #0x50] - str r2, [r0, #0x54] - ldrb r0, [r3, #0xd] - adds r0, #1 - strb r0, [r3, #0xd] - bx lr - .align 2, 0 -_08098754: .4byte gLinkEntity - - thumb_func_start nullsub_533 -nullsub_533: @ 0x08098758 - bx lr - .align 2, 0 - - thumb_func_start sub_0809875C -sub_0809875C: @ 0x0809875C - adds r0, #0x29 - ldrb r2, [r0] - movs r1, #0x39 - rsbs r1, r1, #0 - ands r1, r2 - movs r2, #0x18 - orrs r1, r2 - strb r1, [r0] - bx lr - .align 2, 0 - - thumb_func_start sub_08098770 -sub_08098770: @ 0x08098770 - push {r4, lr} - adds r4, r0, #0 - bl sub_080043E8 - cmp r0, #2 - beq _0809878C - cmp r0, #2 - bhi _08098786 - cmp r0, #1 - beq _08098792 - b _080987A4 -_08098786: - cmp r0, #3 - beq _08098798 - b _080987A4 -_0809878C: - adds r0, r4, #0 - movs r1, #0xb - b _0809879C -_08098792: - adds r0, r4, #0 - movs r1, #0 - b _0809879C -_08098798: - adds r0, r4, #0 - movs r1, #0xc -_0809879C: - movs r2, #0 - bl CreateFX - b _080987AC -_080987A4: - adds r0, r4, #0 - bl sub_080989C0 - b _080987B0 -_080987AC: - bl sub_0805E780 -_080987B0: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080987B4 -sub_080987B4: @ 0x080987B4 - push {lr} - bl sub_0805E780 - pop {pc} - - thumb_func_start sub_080987BC -sub_080987BC: @ 0x080987BC - push {lr} - adds r1, r0, #0 - ldr r0, _080987D0 @ =gLinkState - ldrb r0, [r0, #5] - cmp r0, #0 - bne _080987CE - adds r0, r1, #0 - bl sub_080987D4 -_080987CE: - pop {pc} - .align 2, 0 -_080987D0: .4byte gLinkState - - thumb_func_start sub_080987D4 -sub_080987D4: @ 0x080987D4 - movs r2, #0 - movs r1, #1 - strb r1, [r0, #0xc] - strb r2, [r0, #0xd] - bx lr - .align 2, 0 - - thumb_func_start sub_080987E0 -sub_080987E0: @ 0x080987E0 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _0809880C @ =gUnk_08123540 - ldrb r0, [r4, #0xd] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - ldrb r0, [r4, #0xd] - cmp r0, #1 - bhi _0809880A - adds r0, r4, #0 - bl sub_080989E4 - cmp r0, #0 - bne _0809880A - adds r0, r4, #0 - bl sub_080989C0 -_0809880A: - pop {r4, pc} - .align 2, 0 -_0809880C: .4byte gUnk_08123540 - - thumb_func_start sub_08098810 -sub_08098810: @ 0x08098810 - movs r2, #0 - movs r1, #1 - strb r1, [r0, #0xd] - movs r1, #0x30 - strb r1, [r0, #0x1d] - strb r2, [r0, #0xe] - bx lr - .align 2, 0 - - thumb_func_start sub_08098820 -sub_08098820: @ 0x08098820 - push {lr} - adds r2, r0, #0 - ldr r0, _0809884C @ =gLinkState - ldrb r1, [r0, #0x1c] - movs r0, #0xf - ands r0, r1 - cmp r0, #1 - bne _0809883E - adds r0, r2, #0 - adds r0, #0x41 - ldrb r1, [r0] - movs r0, #0x7f - ands r0, r1 - cmp r0, #0x13 - beq _08098850 -_0809883E: - adds r1, r2, #0 - adds r1, #0x62 - movs r0, #0 - strb r0, [r1] - movs r0, #1 - strb r0, [r2, #0xc] - b _08098856 - .align 2, 0 -_0809884C: .4byte gLinkState -_08098850: - adds r0, r2, #0 - bl sub_0806F4E8 -_08098856: - pop {pc} - - thumb_func_start sub_08098858 -sub_08098858: @ 0x08098858 - push {r4, lr} - adds r4, r0, #0 - ldrb r1, [r4, #0xe] - cmp r1, #0 - bne _08098878 - movs r0, #1 - strb r0, [r4, #0xe] - adds r0, r4, #0 - adds r0, #0x62 - strb r1, [r0] - adds r2, r4, #0 - adds r2, #0x63 - movs r0, #0xfe - strb r0, [r2] - ldr r0, [r4, #0x50] - str r1, [r0, #0x54] -_08098878: - ldr r0, _0809889C @ =gLinkState - ldrb r1, [r0, #0x1c] - movs r0, #0xf - ands r0, r1 - cmp r0, #1 - bne _08098892 - adds r0, r4, #0 - adds r0, #0x41 - ldrb r1, [r0] - movs r0, #0x7f - ands r0, r1 - cmp r0, #0x13 - beq _080988A0 -_08098892: - adds r0, r4, #0 - bl sub_080989C0 - b _080988B4 - .align 2, 0 -_0809889C: .4byte gLinkState -_080988A0: - adds r0, r4, #0 - bl sub_0806F3E4 - cmp r0, #0 - beq _080988B4 - ldrb r0, [r4, #0xa] - cmp r0, #0 - bne _080988B4 - bl sub_0805E780 -_080988B4: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080988B8 -sub_080988B8: @ 0x080988B8 - push {lr} - adds r2, r0, #0 - ldr r0, _080988CC @ =gLinkState - ldrb r0, [r0, #0x1c] - cmp r0, #0 - bne _080988D0 - adds r0, r2, #0 - bl sub_080989C0 - b _080988D8 - .align 2, 0 -_080988CC: .4byte gLinkState -_080988D0: - ldrb r1, [r2, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r2, #0x10] -_080988D8: - pop {pc} - .align 2, 0 - - thumb_func_start nullsub_123 -nullsub_123: @ 0x080988DC - bx lr - .align 2, 0 - - thumb_func_start sub_080988E0 -sub_080988E0: @ 0x080988E0 - push {lr} - bl sub_080989C0 - pop {pc} - - thumb_func_start sub_080988E8 -sub_080988E8: @ 0x080988E8 - push {r4, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x20] - cmp r0, #0 - bge _080988FA - ldrb r0, [r4, #0x18] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r4, #0x18] -_080988FA: - movs r1, #0x80 - lsls r1, r1, #6 - adds r0, r4, #0 - bl sub_08003FC4 - cmp r0, #0 - bne _0809890E - adds r0, r4, #0 - bl sub_080989C0 -_0809890E: - pop {r4, pc} - - thumb_func_start sub_08098910 -sub_08098910: @ 0x08098910 - push {lr} - bl sub_080989C0 - pop {pc} - - thumb_func_start sub_08098918 -sub_08098918: @ 0x08098918 - push {r4, r5, r6, lr} - adds r4, r0, #0 - bl sub_080989E4 - adds r6, r0, #0 - cmp r6, #0 - bne _0809892E - adds r0, r4, #0 - bl sub_080989C0 - b _080989BC -_0809892E: - adds r0, r6, #0 - adds r1, r4, #0 - bl CopyPosition - ldrb r1, [r6, #0x10] - movs r0, #0x80 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #0 - beq _08098990 - ldrb r0, [r4, #0xf] - cmp r0, #0 - bne _08098968 - adds r0, #1 - strb r0, [r4, #0xf] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #3 - orrs r0, r1 - strb r0, [r2] - ldr r1, [r4, #0x50] - adds r0, r4, #0 - bl sub_0806FAD8 -_08098968: - ldr r2, _0809898C @ =gUnk_08123558 - adds r0, r6, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0xf - ands r0, r1 - adds r0, r0, r2 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - subs r0, #8 - movs r1, #0 - strh r0, [r4, #0x36] - adds r0, r4, #0 - adds r0, #0x63 - strb r1, [r0] - b _080989BC - .align 2, 0 -_0809898C: .4byte gUnk_08123558 -_08098990: - ldrb r0, [r4, #0xf] - cmp r0, #0 - beq _080989B2 - strb r5, [r4, #0xf] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #6 - orrs r0, r1 - strb r0, [r2] - ldr r1, [r4, #0x50] - adds r0, r4, #0 - bl sub_0806FAD8 -_080989B2: - strh r5, [r4, #0x36] - adds r1, r4, #0 - adds r1, #0x63 - movs r0, #3 - strb r0, [r1] -_080989BC: - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_080989C0 -sub_080989C0: @ 0x080989C0 - push {r4, lr} - adds r4, r0, #0 - bl sub_080989E4 - cmp r0, #0 - beq _080989D2 - ldr r1, [r4, #0x50] - movs r0, #0 - str r0, [r1, #0x54] -_080989D2: - ldrb r1, [r4, #0xa] - adds r1, #3 - adds r0, r4, #0 - movs r2, #0 - bl CreateFX - bl sub_0805E780 - pop {r4, pc} - - thumb_func_start sub_080989E4 -sub_080989E4: @ 0x080989E4 - push {lr} - ldr r1, [r0, #0x50] - cmp r1, #0 - beq _080989F4 - ldr r0, [r1, #4] - cmp r0, #0 - bne _080989F4 - movs r1, #0 -_080989F4: - adds r0, r1, #0 - pop {pc} - - thumb_func_start sub_080989F8 -sub_080989F8: @ 0x080989F8 - push {r4, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x50] - ldr r0, [r0, #4] - cmp r0, #0 - bne _08098A08 - bl sub_0805E780 -_08098A08: - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _08098A44 - movs r0, #1 - strb r0, [r4, #0xc] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r0, [r2] - movs r1, #7 - orrs r0, r1 - strb r0, [r2] - movs r0, #0x28 - strb r0, [r4, #0x1e] - ldrb r0, [r4, #0xa] - cmp r0, #0 - bne _08098A38 - ldrb r0, [r4, #0x18] - movs r1, #4 - rsbs r1, r1, #0 - ands r1, r0 - movs r0, #1 - orrs r1, r0 - strb r1, [r4, #0x18] - b _08098A44 -_08098A38: - cmp r0, #2 - bne _08098A44 - ldrb r0, [r4, #0x18] - movs r1, #0x40 - orrs r0, r1 - strb r0, [r4, #0x18] -_08098A44: - ldr r0, [r4, #0x50] - movs r3, #0x80 - lsls r3, r3, #0xc - adds r1, r4, #0 - movs r2, #0 - bl PositionRelative - movs r0, #0 - strh r0, [r4, #0x36] - ldrb r0, [r4, #0xa] - cmp r0, #0 - beq _08098A76 - ldr r3, [r4, #0x54] - ldrb r1, [r3, #0x18] - lsls r1, r1, #0x1e - lsrs r1, r1, #0x1e - ldrb r2, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #0x18] - ldrb r0, [r3, #0x1e] - adds r0, #0x1f - strb r0, [r4, #0x1e] -_08098A76: - pop {r4, pc} - - thumb_func_start sub_08098A78 -sub_08098A78: @ 0x08098A78 - push {lr} - ldr r2, _08098A8C @ =gUnk_08123568 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08098A8C: .4byte gUnk_08123568 - - thumb_func_start sub_08098A90 -sub_08098A90: @ 0x08098A90 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xb] - cmp r0, #1 - beq _08098A9C - movs r0, #2 -_08098A9C: - strb r0, [r4, #0xc] - bl Random - movs r1, #0x7f - ands r0, r1 - adds r0, #0x7f - strb r0, [r4, #0xe] - adds r1, r4, #0 - adds r1, #0x38 - movs r0, #1 - strb r0, [r1] - adds r0, r4, #0 - bl UpdateSpriteOrderAndFlip - ldr r1, _08098ACC @ =gUnk_08123574 - ldrb r0, [r4, #0xa] - adds r0, r0, r1 - ldrb r1, [r0] - ldrb r0, [r4, #0xb] - adds r1, r1, r0 - adds r0, r4, #0 - bl UpdateSprite - pop {r4, pc} - .align 2, 0 -_08098ACC: .4byte gUnk_08123574 - - thumb_func_start sub_08098AD0 -sub_08098AD0: @ 0x08098AD0 - push {lr} - adds r1, r0, #0 - ldrb r0, [r1, #0xe] - subs r0, #1 - strb r0, [r1, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08098AE6 - ldrb r0, [r1, #0xc] - adds r0, #1 - strb r0, [r1, #0xc] -_08098AE6: - pop {pc} - - thumb_func_start sub_08098AE8 -sub_08098AE8: @ 0x08098AE8 - push {r4, lr} - adds r4, r0, #0 - bl sub_08004274 - adds r4, #0x5a - ldrb r1, [r4] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _08098B08 - movs r0, #0xfe - ands r0, r1 - strb r0, [r4] - ldr r0, _08098B0C @ =0x0000021B - bl sub_08004488 -_08098B08: - pop {r4, pc} - .align 2, 0 -_08098B0C: .4byte 0x0000021B - - thumb_func_start sub_08098B10 -sub_08098B10: @ 0x08098B10 - push {lr} - ldr r2, _08098B24 @ =gUnk_08123664 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08098B24: .4byte gUnk_08123664 - - thumb_func_start sub_08098B28 -sub_08098B28: @ 0x08098B28 - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - ldrb r2, [r5, #0xa] - lsls r2, r2, #1 - ldr r0, _08098BD4 @ =gUnk_0812366C - adds r2, r2, r0 - movs r3, #1 - movs r4, #1 - strb r4, [r5, #0xc] - ldrb r1, [r5, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - orrs r0, r3 - strb r0, [r5, #0x18] - ldrb r0, [r5, #0xa] - strb r0, [r5, #0x1e] - ldrb r0, [r2] - adds r1, r5, #0 - adds r1, #0x82 - strb r0, [r1] - ldrb r0, [r2, #1] - adds r2, r5, #0 - adds r2, #0x83 - strb r0, [r2] - ldrb r0, [r1] - lsrs r0, r0, #1 - ldrh r1, [r5, #0x2e] - subs r1, r1, r0 - adds r0, r5, #0 - adds r0, #0x78 - strh r1, [r0] - ldrb r0, [r2] - lsrs r0, r0, #1 - ldrh r1, [r5, #0x32] - subs r1, r1, r0 - subs r2, #9 - strh r1, [r2] - movs r0, #0x2e - ldrsh r1, [r5, r0] - ldr r2, _08098BD8 @ =gRoomControls - ldrh r0, [r2, #6] - subs r1, r1, r0 - asrs r1, r1, #4 - movs r3, #0x3f - ands r1, r3 - movs r6, #0x32 - ldrsh r0, [r5, r6] - ldrh r2, [r2, #8] - subs r0, r0, r2 - asrs r0, r0, #4 - ands r0, r3 - lsls r0, r0, #6 - orrs r1, r0 - adds r6, r5, #0 - adds r6, #0x80 - strh r1, [r6] - adds r7, r5, #0 - adds r7, #0x38 - strb r4, [r7] - adds r0, r5, #0 - bl UpdateSpriteOrderAndFlip - adds r2, r5, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #6 - orrs r0, r1 - strb r0, [r2] - ldrb r0, [r5, #0xa] - cmp r0, #0 - bne _08098BCA - ldr r0, _08098BDC @ =0x00004074 - ldrh r1, [r6] - subs r1, #0x40 - ldrb r2, [r7] - bl sub_0800015E -_08098BCA: - adds r0, r5, #0 - bl sub_08098BE8 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08098BD4: .4byte gUnk_0812366C -_08098BD8: .4byte gRoomControls -_08098BDC: .4byte 0x00004074 - - thumb_func_start sub_08098BE0 -sub_08098BE0: @ 0x08098BE0 - push {lr} - bl sub_08098BE8 - pop {pc} - - thumb_func_start sub_08098BE8 -sub_08098BE8: @ 0x08098BE8 - push {r4, r5, r6, lr} - adds r5, r0, #0 - ldr r6, _08098C28 @ =gLinkState - ldr r0, [r6, #0x30] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08098C26 - ldr r4, _08098C2C @ =gLinkEntity - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_08098C30 - cmp r0, #0 - beq _08098C26 - bl sub_08079F8C - cmp r0, #0 - beq _08098C26 - movs r1, #0x36 - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _08098C26 - movs r0, #1 - strb r0, [r6, #0x14] - adds r0, r5, #0 - adds r0, #0x80 - ldrh r1, [r0] - adds r0, r4, #0 - bl sub_0807AAF8 -_08098C26: - pop {r4, r5, r6, pc} - .align 2, 0 -_08098C28: .4byte gLinkState -_08098C2C: .4byte gLinkEntity - - thumb_func_start sub_08098C30 -sub_08098C30: @ 0x08098C30 - push {r4, lr} - adds r3, r0, #0 - movs r4, #0 - movs r0, #0x2e - ldrsh r2, [r1, r0] - adds r0, r3, #0 - adds r0, #0x78 - ldrh r0, [r0] - subs r2, r2, r0 - movs r0, #0x32 - ldrsh r1, [r1, r0] - adds r0, r3, #0 - adds r0, #0x7a - ldrh r0, [r0] - subs r1, r1, r0 - adds r0, r3, #0 - adds r0, #0x82 - ldrb r0, [r0] - cmp r2, r0 - bhi _08098C64 - adds r0, r3, #0 - adds r0, #0x83 - ldrb r0, [r0] - cmp r1, r0 - bhi _08098C64 - movs r4, #1 -_08098C64: - adds r0, r4, #0 - pop {r4, pc} - - thumb_func_start sub_08098C68 -sub_08098C68: @ 0x08098C68 - push {lr} - ldr r2, _08098C7C @ =gUnk_08123674 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08098C7C: .4byte gUnk_08123674 - - thumb_func_start sub_08098C80 -sub_08098C80: @ 0x08098C80 - push {r4, r5, r6, lr} - adds r4, r0, #0 - movs r0, #0 - movs r5, #1 - strb r5, [r4, #0xc] - strb r0, [r4, #0xe] - movs r0, #0x2e - ldrsh r1, [r4, r0] - ldr r2, _08098CC8 @ =gRoomControls - ldrh r0, [r2, #6] - subs r1, r1, r0 - asrs r1, r1, #4 - movs r3, #0x3f - ands r1, r3 - movs r6, #0x32 - ldrsh r0, [r4, r6] - ldrh r2, [r2, #8] - subs r0, r0, r2 - asrs r0, r0, #4 - ands r0, r3 - lsls r0, r0, #6 - orrs r1, r0 - adds r0, r4, #0 - adds r0, #0x80 - strh r1, [r0] - ldr r0, _08098CCC @ =gLinkState - ldr r0, [r0, #0x30] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08098CD0 - adds r1, r4, #0 - adds r1, #0x38 - movs r0, #2 - strb r0, [r1] - b _08098CD6 - .align 2, 0 -_08098CC8: .4byte gRoomControls -_08098CCC: .4byte gLinkState -_08098CD0: - adds r0, r4, #0 - adds r0, #0x38 - strb r5, [r0] -_08098CD6: - adds r0, r4, #0 - bl UpdateSpriteOrderAndFlip - adds r0, r4, #0 - adds r0, #0x80 - ldrh r1, [r0] - subs r1, #0x40 - movs r0, #0x47 - movs r2, #1 - bl sub_08000148 - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start nullsub_124 -nullsub_124: @ 0x08098CF0 - bx lr - .align 2, 0 - - thumb_func_start sub_08098CF4 -sub_08098CF4: @ 0x08098CF4 - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xa] - cmp r0, #0 - bne _08098D14 - ldr r0, _08098D10 @ =gUnk_0812367C - ldrb r1, [r2, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r2, #0 - bl _call_via_r1 - b _08098D1A - .align 2, 0 -_08098D10: .4byte gUnk_0812367C -_08098D14: - adds r0, r2, #0 - bl sub_08098E3C -_08098D1A: - pop {pc} - - thumb_func_start sub_08098D1C -sub_08098D1C: @ 0x08098D1C - push {r4, r5, lr} - adds r4, r0, #0 - movs r5, #1 - strb r5, [r4, #0xc] - ldr r0, _08098D40 @ =0x0000FFF0 - strh r0, [r4, #0x36] - adds r0, r4, #0 - adds r0, #0x86 - ldrh r0, [r0] - cmp r0, #0 - beq _08098D44 - bl sub_0807CBE4 - cmp r0, #0 - bne _08098D44 - strb r5, [r4, #0xc] - b _08098D5A - .align 2, 0 -_08098D40: .4byte 0x0000FFF0 -_08098D44: - movs r0, #3 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - subs r0, #7 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] - adds r0, r4, #0 - bl sub_08098E88 -_08098D5A: - adds r0, r4, #0 - movs r1, #6 - bl sub_0805E3A0 - adds r0, r4, #0 - movs r1, #0 - bl LoadAnimation - pop {r4, r5, pc} - - thumb_func_start sub_08098D6C -sub_08098D6C: @ 0x08098D6C - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x86 - ldrh r0, [r0] - bl sub_0807CBE4 - cmp r0, #0 - beq _08098D9A - movs r0, #2 - strb r0, [r4, #0xc] - movs r0, #0x2d - strb r0, [r4, #0xe] - adds r0, r4, #0 - movs r1, #0x43 - movs r2, #0 - bl CreateFX - adds r1, r0, #0 - cmp r1, #0 - beq _08098D9A - ldrh r0, [r1, #0x32] - adds r0, #8 - strh r0, [r1, #0x32] -_08098D9A: - pop {r4, pc} - - thumb_func_start sub_08098D9C -sub_08098D9C: @ 0x08098D9C - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xe] - subs r0, #1 - strb r0, [r2, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08098DC2 - movs r0, #3 - strb r0, [r2, #0xc] - ldrb r1, [r2, #0x18] - subs r0, #7 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r2, #0x18] - adds r0, r2, #0 - bl sub_08098E88 -_08098DC2: - pop {pc} - - thumb_func_start sub_08098DC4 -sub_08098DC4: @ 0x08098DC4 - push {r4, r5, r6, lr} - adds r5, r0, #0 - ldr r6, _08098E2C @ =gLinkEntity - adds r1, r6, #0 - movs r2, #8 - movs r3, #8 - bl sub_0800419C - cmp r0, #0 - beq _08098E24 - adds r0, r5, #0 - adds r1, r6, #0 - bl CopyPosition - adds r0, r5, #0 - bl sub_08004542 - adds r0, r6, #0 - bl sub_08004542 - adds r0, r6, #0 - adds r0, #0x38 - movs r4, #1 - strb r4, [r0] - adds r0, r5, #0 - adds r1, r6, #0 - bl sub_0806FAB0 - ldr r1, _08098E30 @ =gLinkState - movs r0, #0x1f - strb r0, [r1, #0xc] - adds r0, r1, #0 - adds r0, #0x38 - strb r4, [r0] - ldrb r0, [r5, #0xb] - adds r1, #0x39 - strb r0, [r1] - movs r1, #4 - strb r1, [r5, #0xc] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _08098E20 - movs r0, #0x23 - bl sub_0807CD04 -_08098E20: - bl sub_08077B20 -_08098E24: - adds r0, r5, #0 - bl sub_080042B8 - pop {r4, r5, r6, pc} - .align 2, 0 -_08098E2C: .4byte gLinkEntity -_08098E30: .4byte gLinkState - - thumb_func_start sub_08098E34 -sub_08098E34: @ 0x08098E34 - push {lr} - bl sub_080042B8 - pop {pc} - - thumb_func_start sub_08098E3C -sub_08098E3C: @ 0x08098E3C - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _08098E5E - movs r2, #1 - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - subs r0, #5 - ands r0, r1 - orrs r0, r2 - strb r0, [r4, #0x18] - ldrb r1, [r4, #0xa] - adds r0, r4, #0 - bl LoadAnimation -_08098E5E: - ldrb r1, [r4, #0xa] - movs r0, #2 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r0, r0, #1 - ldr r1, _08098E84 @ =gUnk_08123690 - adds r0, r0, r1 - ldrh r1, [r0] - ldrh r2, [r0, #2] - adds r0, r4, #0 - movs r3, #0 - bl sub_0805EC9C - adds r0, r4, #0 - bl sub_080042B8 - pop {r4, pc} - .align 2, 0 -_08098E84: .4byte gUnk_08123690 - - thumb_func_start sub_08098E88 -sub_08098E88: @ 0x08098E88 - push {r4, r5, lr} - adds r5, r0, #0 - movs r0, #0x82 - movs r1, #1 - movs r2, #0 - bl CreateObject - adds r4, r0, #0 - cmp r4, #0 - beq _08098EB0 - ldr r3, _08098ED8 @ =0xFFFF0000 - adds r0, r5, #0 - adds r1, r4, #0 - movs r2, #0 - bl PositionRelative - adds r1, r4, #0 - adds r1, #0x63 - movs r0, #8 - strb r0, [r1] -_08098EB0: - movs r0, #0x82 - movs r1, #2 - movs r2, #0 - bl CreateObject - adds r4, r0, #0 - cmp r4, #0 - beq _08098ED4 - ldr r3, _08098EDC @ =0xFFFE0000 - adds r0, r5, #0 - adds r1, r4, #0 - movs r2, #0 - bl PositionRelative - adds r1, r4, #0 - adds r1, #0x63 - movs r0, #0x10 - strb r0, [r1] -_08098ED4: - pop {r4, r5, pc} - .align 2, 0 -_08098ED8: .4byte 0xFFFF0000 -_08098EDC: .4byte 0xFFFE0000 - - thumb_func_start sub_08098EE0 -sub_08098EE0: @ 0x08098EE0 - push {lr} - ldr r2, _08098EF4 @ =gUnk_081236DC - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08098EF4: .4byte gUnk_081236DC - - thumb_func_start sub_08098EF8 -sub_08098EF8: @ 0x08098EF8 - push {lr} - adds r3, r0, #0 - adds r3, #0x29 - ldrb r2, [r3] - movs r1, #8 - rsbs r1, r1, #0 - ands r1, r2 - movs r2, #5 - orrs r1, r2 - strb r1, [r3] - bl sub_08098FCC - pop {pc} - .align 2, 0 - - thumb_func_start sub_08098F14 -sub_08098F14: @ 0x08098F14 - push {r4, r5, r6, lr} - adds r5, r0, #0 - bl sub_080990EC - cmp r0, #0 - beq _08098F84 - movs r6, #0 - movs r0, #2 - strb r0, [r5, #0xc] - adds r0, r5, #0 - adds r0, #0x74 - ldrh r0, [r0] - adds r1, r5, #0 - adds r1, #0x70 - ldrh r1, [r1] - adds r4, r5, #0 - adds r4, #0x38 - ldrb r2, [r4] - bl sub_0800015E - adds r0, r5, #0 - adds r0, #0x76 - ldrh r0, [r0] - adds r1, r5, #0 - adds r1, #0x72 - ldrh r1, [r1] - ldrb r2, [r4] - bl sub_0800015E - movs r0, #0x99 - lsls r0, r0, #1 - bl sub_08004488 - adds r0, r5, #0 - movs r1, #0x1e - bl sub_0805E4E0 - bl sub_08079F8C - cmp r0, #0 - beq _08098F84 - ldr r2, _08098F88 @ =gLinkState - movs r0, #0x98 - strb r0, [r2, #6] - movs r0, #5 - strb r0, [r2, #0xc] - ldr r0, [r2, #0x30] - movs r1, #1 - orrs r0, r1 - str r0, [r2, #0x30] - ldr r1, _08098F8C @ =gLinkEntity - strh r6, [r1, #0x2c] - strh r6, [r1, #0x30] - ldrb r0, [r1, #0x14] - lsls r0, r0, #2 - strb r0, [r1, #0x15] -_08098F84: - pop {r4, r5, r6, pc} - .align 2, 0 -_08098F88: .4byte gLinkState -_08098F8C: .4byte gLinkEntity - - thumb_func_start sub_08098F90 -sub_08098F90: @ 0x08098F90 - push {r4, lr} - adds r4, r0, #0 - bl sub_08004274 - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08098FC8 - ldrb r0, [r4, #0xb] - cmp r0, #0 - bne _08098FB8 - adds r0, r4, #0 - adds r0, #0x86 - ldrh r0, [r0] - bl sub_0807CCC8 - b _08098FC2 -_08098FB8: - adds r0, r4, #0 - adds r0, #0x86 - ldrh r0, [r0] - bl sub_0807CD48 -_08098FC2: - adds r0, r4, #0 - bl sub_08098FCC -_08098FC8: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08098FCC -sub_08098FCC: @ 0x08098FCC - push {lr} - movs r1, #1 - strb r1, [r0, #0xc] - adds r2, r0, #0 - adds r2, #0x84 - movs r1, #0x3c - strh r1, [r2] - bl sub_08098FE0 - pop {pc} - - thumb_func_start sub_08098FE0 -sub_08098FE0: @ 0x08098FE0 - push {r4, r5, r6, r7, lr} - adds r6, r0, #0 - adds r0, #0x86 - ldrh r0, [r0] - bl sub_0807CBE4 - cmp r0, #0 - bne _0809906C - strb r0, [r6, #0xb] - movs r0, #0x2e - ldrsh r2, [r6, r0] - ldr r1, _08099060 @ =gRoomControls - ldrh r0, [r1, #6] - subs r2, r2, r0 - asrs r2, r2, #4 - movs r3, #0x3f - ands r2, r3 - movs r4, #0x32 - ldrsh r0, [r6, r4] - ldrh r1, [r1, #8] - adds r1, #0x10 - subs r0, r0, r1 - asrs r0, r0, #4 - ands r0, r3 - lsls r0, r0, #6 - orrs r2, r0 - adds r5, r6, #0 - adds r5, #0x70 - strh r2, [r5] - subs r2, #0x40 - adds r7, r6, #0 - adds r7, #0x72 - strh r2, [r7] - ldrh r0, [r5] - adds r4, r6, #0 - adds r4, #0x38 - ldrb r1, [r4] - bl sub_080001DA - adds r1, r6, #0 - adds r1, #0x74 - strh r0, [r1] - ldrh r0, [r7] - ldrb r1, [r4] - bl sub_080001DA - adds r1, r6, #0 - adds r1, #0x76 - strh r0, [r1] - ldr r0, _08099064 @ =0x00004057 - ldrh r1, [r5] - ldrb r2, [r4] - bl sub_0800015E - ldr r0, _08099068 @ =0x00004058 - ldrh r1, [r7] - ldrb r2, [r4] - bl sub_0800015E - adds r0, r6, #0 - movs r1, #1 - bl UpdateSprite - b _080990DC - .align 2, 0 -_08099060: .4byte gRoomControls -_08099064: .4byte 0x00004057 -_08099068: .4byte 0x00004058 -_0809906C: - movs r0, #1 - strb r0, [r6, #0xb] - movs r0, #0x2e - ldrsh r1, [r6, r0] - ldr r2, _080990E0 @ =gRoomControls - ldrh r0, [r2, #6] - adds r0, #0x10 - subs r1, r1, r0 - asrs r1, r1, #4 - movs r3, #0x3f - ands r1, r3 - movs r4, #0x32 - ldrsh r0, [r6, r4] - ldrh r2, [r2, #8] - subs r0, r0, r2 - asrs r0, r0, #4 - ands r0, r3 - lsls r0, r0, #6 - orrs r1, r0 - adds r5, r6, #0 - adds r5, #0x70 - strh r1, [r5] - subs r1, #1 - adds r7, r6, #0 - adds r7, #0x72 - strh r1, [r7] - ldrh r0, [r5] - adds r4, r6, #0 - adds r4, #0x38 - ldrb r1, [r4] - bl sub_080001DA - adds r1, r6, #0 - adds r1, #0x74 - strh r0, [r1] - ldrh r0, [r7] - ldrb r1, [r4] - bl sub_080001DA - adds r1, r6, #0 - adds r1, #0x76 - strh r0, [r1] - ldr r0, _080990E4 @ =0x00004055 - ldrh r1, [r5] - ldrb r2, [r4] - bl sub_0800015E - ldr r0, _080990E8 @ =0x00004056 - ldrh r1, [r7] - ldrb r2, [r4] - bl sub_0800015E - adds r0, r6, #0 - movs r1, #0 - bl UpdateSprite -_080990DC: - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_080990E0: .4byte gRoomControls -_080990E4: .4byte 0x00004055 -_080990E8: .4byte 0x00004056 - - thumb_func_start sub_080990EC -sub_080990EC: @ 0x080990EC - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r6, r4, #0 - adds r6, #0x72 - ldrh r0, [r6] - adds r5, r4, #0 - adds r5, #0x38 - ldrb r1, [r5] - bl sub_080001DA - ldr r1, _0809911C @ =0x00004059 - cmp r0, r1 - bne _08099140 - adds r1, r4, #0 - adds r1, #0x84 - ldrh r0, [r1] - subs r0, #1 - strh r0, [r1] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _08099120 - movs r0, #1 - b _08099156 - .align 2, 0 -_0809911C: .4byte 0x00004059 -_08099120: - adds r0, r4, #0 - bl sub_08099158 - ldr r1, _0809913C @ =gUnk_081236E8 - ldrb r0, [r4, #0xb] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r0, [r0] - ldrh r1, [r6] - ldrb r2, [r5] - bl sub_0800015E - b _08099154 - .align 2, 0 -_0809913C: .4byte gUnk_081236E8 -_08099140: - adds r1, r4, #0 - adds r1, #0x84 - movs r2, #0 - movs r0, #0x3c - strh r0, [r1] - adds r0, r4, #0 - adds r0, #0x62 - strb r2, [r0] - adds r0, #1 - strb r2, [r0] -_08099154: - movs r0, #0 -_08099156: - pop {r4, r5, r6, pc} - - thumb_func_start sub_08099158 -sub_08099158: @ 0x08099158 - push {r4, lr} - adds r3, r0, #0 - ldrb r0, [r3, #0xb] - ldr r4, _08099198 @ =gUnk_081236F4 - cmp r0, #0 - bne _08099166 - ldr r4, _0809919C @ =gUnk_081236EC -_08099166: - adds r2, r3, #0 - adds r2, #0x84 - ldrh r0, [r2] - lsrs r0, r0, #2 - movs r1, #6 - ands r0, r1 - adds r4, r4, r0 - ldrb r0, [r4] - adds r1, r3, #0 - adds r1, #0x62 - strb r0, [r1] - ldrb r1, [r4, #1] - adds r0, r3, #0 - adds r0, #0x63 - strb r1, [r0] - ldrh r1, [r2] - movs r0, #3 - ands r0, r1 - cmp r0, #0 - bne _08099194 - ldr r0, _080991A0 @ =0x00000131 - bl sub_08004488 -_08099194: - pop {r4, pc} - .align 2, 0 -_08099198: .4byte gUnk_081236F4 -_0809919C: .4byte gUnk_081236EC -_080991A0: .4byte 0x00000131 - - thumb_func_start sub_080991A4 -sub_080991A4: @ 0x080991A4 - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xa] - cmp r0, #2 - bhi _080991C4 - ldr r0, _080991C0 @ =gUnk_08123734 - ldrb r1, [r2, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r2, #0 - bl _call_via_r1 - b _080991CA - .align 2, 0 -_080991C0: .4byte gUnk_08123734 -_080991C4: - adds r0, r2, #0 - bl sub_080996AC -_080991CA: - pop {pc} - - thumb_func_start sub_080991CC -sub_080991CC: @ 0x080991CC - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xa] - cmp r0, #2 - bgt _080991EC - cmp r0, #0 - blt _080991EC - adds r0, r4, #0 - adds r0, #0x86 - ldrh r0, [r0] - bl sub_0807CBE4 - cmp r0, #0 - beq _080991EC - bl sub_0805E780 -_080991EC: - movs r2, #1 - strb r2, [r4, #0xc] - ldrb r1, [r4, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r4, #0x10] - ldrb r1, [r4, #0x11] - movs r0, #0x10 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #3 - orrs r0, r1 - strb r0, [r4, #0x11] - adds r1, r4, #0 - adds r1, #0x3c - movs r0, #7 - strb r0, [r1] - adds r1, #4 - movs r0, #0x48 - strb r0, [r1] - adds r0, r4, #0 - adds r0, #0x3f - strb r2, [r0] - subs r1, #5 - movs r0, #0x80 - strb r0, [r1] - ldr r0, _08099244 @ =gUnk_080FD408 - str r0, [r4, #0x48] - adds r0, r4, #0 - bl sub_08099468 - ldrb r1, [r4, #0xa] - adds r0, r4, #0 - bl UpdateSprite - movs r0, #0x84 - movs r1, #3 - movs r2, #0 - bl CreateObject - cmp r0, #0 - beq _08099242 - str r4, [r0, #0x50] -_08099242: - pop {r4, pc} - .align 2, 0 -_08099244: .4byte gUnk_080FD408 - - thumb_func_start sub_08099248 -sub_08099248: @ 0x08099248 - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - bl sub_0809963C - cmp r0, #0 - beq _08099280 - movs r1, #0 - movs r0, #3 - strb r0, [r4, #0xc] - strb r1, [r4, #0xe] - ldr r0, _0809927C @ =0x000001B3 - bl sub_08004488 - adds r0, r4, #0 - bl sub_08099330 - ldrb r0, [r4, #0xa] - cmp r0, #0 - bne _0809930E - adds r0, r4, #0 - adds r0, #0x86 - ldrh r0, [r0] - bl sub_0807CCC8 - b _0809930E - .align 2, 0 -_0809927C: .4byte 0x000001B3 -_08099280: - adds r0, r4, #0 - bl sub_0800442E - cmp r0, #0 - bne _0809930E - adds r7, r4, #0 - adds r7, #0x70 - ldrh r0, [r7] - adds r6, r4, #0 - adds r6, #0x38 - ldrb r1, [r6] - bl sub_080002B0 - adds r5, r0, #0 - ldr r0, _080992B8 @ =0x0000405A - cmp r5, r0 - beq _0809930E - adds r0, r5, #0 - bl sub_08099618 - cmp r0, #1 - beq _080992BC - cmp r0, #1 - blo _080992DC - cmp r0, #2 - beq _08099308 - b _0809930E - .align 2, 0 -_080992B8: .4byte 0x0000405A -_080992BC: - movs r0, #2 - strb r0, [r4, #0xc] - movs r0, #0x16 - strb r0, [r4, #0xe] - adds r0, r5, #0 - subs r0, #0x5b - movs r1, #3 - ands r0, r1 - lsls r0, r0, #3 - strb r0, [r4, #0x15] - movs r0, #0x20 - strh r0, [r4, #0x24] - adds r0, r4, #0 - bl sub_080994B8 - b _0809930E -_080992DC: - movs r0, #0xf - movs r1, #0xd - movs r2, #0 - bl CreateObject - adds r1, r0, #0 - cmp r1, #0 - beq _080992F2 - adds r0, r4, #0 - bl CopyPosition -_080992F2: - adds r0, r4, #0 - adds r0, #0x6c - ldrh r0, [r0] - ldrh r1, [r7] - ldrb r2, [r6] - bl sub_0800015E - adds r0, r4, #0 - bl sub_0805E7BC - b _0809930E -_08099308: - adds r0, r4, #0 - adds r0, #0x6c - strh r5, [r0] -_0809930E: - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_08099310 -sub_08099310: @ 0x08099310 - push {r4, lr} - adds r4, r0, #0 - bl sub_0809953C - cmp r0, #0 - beq _0809932E - movs r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - bl sub_08099468 - movs r0, #0xd9 - lsls r0, r0, #1 - bl sub_08004488 -_0809932E: - pop {r4, pc} - - thumb_func_start sub_08099330 -sub_08099330: @ 0x08099330 - push {r4, lr} - adds r4, r0, #0 - bl sub_0809963C - adds r1, r0, #0 - cmp r1, #0 - bne _0809935E - ldrb r0, [r4, #0xe] - cmp r0, #1 - bls _0809934A - subs r0, #2 - strb r0, [r4, #0xe] - b _0809934C -_0809934A: - strb r1, [r4, #0xe] -_0809934C: - ldrb r0, [r4, #0xe] - cmp r0, #0 - bne _08099364 - movs r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - bl sub_0805EC60 - b _080993CA -_0809935E: - ldrb r0, [r4, #0xe] - adds r0, #1 - strb r0, [r4, #0xe] -_08099364: - movs r1, #0x80 - lsls r1, r1, #1 - ldr r2, _0809939C @ =gUnk_08123748 - ldrb r0, [r4, #0xe] - lsrs r0, r0, #5 - lsls r0, r0, #1 - adds r0, r0, r2 - ldrh r2, [r0] - adds r0, r4, #0 - movs r3, #0 - bl sub_0805EC9C - ldrb r0, [r4, #0xa] - cmp r0, #1 - bne _080993A0 - adds r0, r4, #0 - adds r0, #0x86 - ldrh r3, [r0] - adds r0, r4, #0 - movs r1, #0x53 - movs r2, #0 - bl sub_080A2A3C - movs r0, #0x72 - bl PlaySFX - b _080993BA - .align 2, 0 -_0809939C: .4byte gUnk_08123748 -_080993A0: - cmp r0, #2 - bne _080993BA - adds r0, r4, #0 - adds r0, #0x86 - ldrh r3, [r0] - adds r0, r4, #0 - movs r1, #0x52 - movs r2, #0 - bl sub_080A2A3C - movs r0, #0x72 - bl PlaySFX -_080993BA: - movs r0, #4 - strb r0, [r4, #0xc] - movs r0, #0x3c - strb r0, [r4, #0xe] - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] -_080993CA: - pop {r4, pc} - - thumb_func_start sub_080993CC -sub_080993CC: @ 0x080993CC - push {r4, r5, r6, lr} - adds r5, r0, #0 - ldrb r0, [r5, #0xe] - subs r1, r0, #1 - strb r1, [r5, #0xe] - lsls r0, r1, #0x18 - cmp r0, #0 - bne _080993E2 - bl sub_0805E780 - b _08099466 -_080993E2: - lsls r0, r1, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x30 - bne _08099400 - adds r0, r5, #0 - adds r0, #0x6c - ldrh r0, [r0] - adds r1, r5, #0 - adds r1, #0x70 - ldrh r1, [r1] - adds r2, r5, #0 - adds r2, #0x38 - ldrb r2, [r2] - bl sub_0800015E -_08099400: - movs r1, #0x80 - lsls r1, r1, #1 - ldrb r0, [r5, #0xe] - movs r2, #0x3c - subs r2, r2, r0 - lsls r2, r2, #5 - adds r2, r2, r1 - adds r0, r5, #0 - movs r3, #0 - bl sub_0805EC9C - ldrb r1, [r5, #0xe] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _08099466 - movs r0, #0xf - movs r1, #0x11 - movs r2, #0x40 - bl CreateObject - adds r6, r0, #0 - cmp r6, #0 - beq _08099466 - bl Random - adds r4, r0, #0 - asrs r0, r4, #0x10 - movs r1, #9 - bl __modsi3 - adds r2, r0, #0 - subs r2, #4 - movs r3, #0xf - ands r3, r4 - adds r4, r6, #0 - adds r4, #0x29 - ldrb r1, [r4] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #3 - orrs r0, r1 - strb r0, [r4] - lsls r2, r2, #0x10 - rsbs r3, r3, #0 - lsls r3, r3, #0x10 - adds r0, r5, #0 - adds r1, r6, #0 - bl PositionRelative -_08099466: - pop {r4, r5, r6, pc} - - thumb_func_start sub_08099468 -sub_08099468: @ 0x08099468 - push {r4, r5, r6, lr} - adds r6, r0, #0 - movs r0, #0x2e - ldrsh r1, [r6, r0] - ldr r2, _080994B0 @ =gRoomControls - ldrh r0, [r2, #6] - subs r1, r1, r0 - asrs r1, r1, #4 - movs r3, #0x3f - ands r1, r3 - movs r4, #0x32 - ldrsh r0, [r6, r4] - ldrh r2, [r2, #8] - subs r0, r0, r2 - asrs r0, r0, #4 - ands r0, r3 - lsls r0, r0, #6 - orrs r1, r0 - adds r4, r6, #0 - adds r4, #0x70 - strh r1, [r4] - ldrh r0, [r4] - adds r5, r6, #0 - adds r5, #0x38 - ldrb r1, [r5] - bl sub_080001DA - adds r1, r6, #0 - adds r1, #0x6c - strh r0, [r1] - ldr r0, _080994B4 @ =0x0000405A - ldrh r1, [r4] - ldrb r2, [r5] - bl sub_0800015E - pop {r4, r5, r6, pc} - .align 2, 0 -_080994B0: .4byte gRoomControls -_080994B4: .4byte 0x0000405A - - thumb_func_start sub_080994B8 -sub_080994B8: @ 0x080994B8 - push {r4, r5, r6, lr} - adds r5, r0, #0 - ldr r0, _08099530 @ =0x000001B1 - bl sub_08004488 - adds r0, r5, #0 - adds r0, #0x6c - ldrh r0, [r0] - adds r6, r5, #0 - adds r6, #0x70 - ldrh r1, [r6] - adds r4, r5, #0 - adds r4, #0x38 - ldrb r2, [r4] - bl sub_0800015E - ldrb r0, [r4] - cmp r0, #2 - bne _080994F8 - ldrh r0, [r6] - movs r1, #1 - bl sub_080002B0 - ldr r1, _08099534 @ =0x0000405A - cmp r0, r1 - bne _080994F8 - movs r0, #0xc4 - lsls r0, r0, #2 - ldrh r1, [r6] - movs r2, #1 - bl sub_08000152 -_080994F8: - adds r2, r5, #0 - adds r2, #0x70 - ldr r1, _08099538 @ =gUnk_080B4488 - ldrb r0, [r5, #0x15] - lsrs r0, r0, #3 - lsls r0, r0, #1 - adds r0, r0, r1 - movs r1, #0 - ldrsh r0, [r0, r1] - ldrh r2, [r2] - adds r0, r0, r2 - adds r1, r5, #0 - adds r1, #0x38 - ldrb r1, [r1] - bl sub_080002B0 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0x79 - beq _08099524 - cmp r0, #0x77 - bne _0809952C -_08099524: - adds r1, r5, #0 - adds r1, #0x63 - movs r0, #0xfe - strb r0, [r1] -_0809952C: - pop {r4, r5, r6, pc} - .align 2, 0 -_08099530: .4byte 0x000001B1 -_08099534: .4byte 0x0000405A -_08099538: .4byte gUnk_080B4488 - - thumb_func_start sub_0809953C -sub_0809953C: @ 0x0809953C - push {r4, lr} - adds r4, r0, #0 - bl sub_0800442E - cmp r0, #0 - bne _08099612 - adds r0, r4, #0 - bl sub_080AEFE0 - adds r0, r4, #0 - bl sub_0800445C - ldrb r1, [r4, #0xe] - cmp r1, #0 - beq _08099570 - ldrh r0, [r4, #0x24] - adds r0, #0x10 - strh r0, [r4, #0x24] - subs r0, r1, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08099570 - movs r0, #0x80 - lsls r0, r0, #2 - strh r0, [r4, #0x24] -_08099570: - ldrb r0, [r4, #0x15] - lsrs r0, r0, #3 - cmp r0, #1 - beq _080995A0 - cmp r0, #1 - bgt _08099582 - cmp r0, #0 - beq _08099588 - b _080995E6 -_08099582: - cmp r0, #2 - beq _080995BA - b _080995E6 -_08099588: - ldrh r1, [r4, #0x2a] - movs r0, #0xe - ands r0, r1 - cmp r0, #0 - beq _08099612 - ldrh r1, [r4, #0x32] - movs r0, #0xf - ands r0, r1 - subs r0, #7 - cmp r0, #2 - bls _080995D0 - b _080995DE -_080995A0: - ldrh r1, [r4, #0x2a] - movs r0, #0xe0 - lsls r0, r0, #8 - ands r0, r1 - cmp r0, #0 - beq _08099612 - ldrh r1, [r4, #0x2e] - movs r0, #0xf - ands r0, r1 - subs r0, #7 - cmp r0, #2 - bls _080995FE - b _080995DE -_080995BA: - ldrh r1, [r4, #0x2a] - movs r0, #0xe0 - ands r0, r1 - cmp r0, #0 - beq _08099612 - ldrh r1, [r4, #0x32] - movs r0, #0xf - ands r0, r1 - subs r0, #7 - cmp r0, #2 - bhi _080995DE -_080995D0: - movs r0, #0x10 - rsbs r0, r0, #0 - ands r0, r1 - adds r0, #8 - strh r0, [r4, #0x32] - movs r0, #1 - b _08099614 -_080995DE: - adds r0, r4, #0 - bl sub_0809969C - b _08099612 -_080995E6: - ldrh r1, [r4, #0x2a] - movs r0, #0xe0 - lsls r0, r0, #4 - ands r0, r1 - cmp r0, #0 - beq _08099612 - ldrh r1, [r4, #0x2e] - movs r0, #0xf - ands r0, r1 - subs r0, #7 - cmp r0, #2 - bhi _0809960C -_080995FE: - movs r0, #0x10 - rsbs r0, r0, #0 - ands r0, r1 - adds r0, #8 - strh r0, [r4, #0x2e] - movs r0, #1 - b _08099614 -_0809960C: - adds r0, r4, #0 - bl sub_0809969C -_08099612: - movs r0, #0 -_08099614: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08099618 -sub_08099618: @ 0x08099618 - push {lr} - adds r2, r0, #0 - ldr r1, _08099620 @ =gUnk_08123750 - b _08099630 - .align 2, 0 -_08099620: .4byte gUnk_08123750 -_08099624: - ldrh r0, [r1] - cmp r0, r2 - bne _0809962E - ldrh r0, [r1, #2] - b _08099638 -_0809962E: - adds r1, #4 -_08099630: - ldrh r0, [r1] - cmp r0, #0 - bne _08099624 - movs r0, #0 -_08099638: - pop {pc} - .align 2, 0 - - thumb_func_start sub_0809963C -sub_0809963C: @ 0x0809963C - push {r4, r5, r6, lr} - adds r5, r0, #0 - ldrb r0, [r5, #0xb] - cmp r0, #0 - beq _08099684 - bl sub_0804B128 - adds r4, r0, #0 - ldrh r0, [r4] - bl sub_0807CBE4 - cmp r0, #0 - beq _08099684 - ldr r0, _08099694 @ =gRoomControls - ldrh r1, [r0, #6] - ldrh r2, [r4, #2] - adds r1, r1, r2 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - ldrh r0, [r0, #8] - ldrh r6, [r4, #4] - adds r0, r0, r6 - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - ldrh r2, [r4, #6] - movs r6, #0x2e - ldrsh r0, [r5, r6] - subs r0, r0, r1 - cmp r2, r0 - blo _08099684 - ldrh r1, [r4, #8] - movs r2, #0x32 - ldrsh r0, [r5, r2] - subs r0, r0, r3 - cmp r1, r0 - bhs _08099698 -_08099684: - adds r0, r5, #0 - adds r0, #0x41 - ldrb r0, [r0] - cmp r0, #0x87 - beq _08099698 - movs r0, #0 - b _0809969A - .align 2, 0 -_08099694: .4byte gRoomControls -_08099698: - movs r0, #1 -_0809969A: - pop {r4, r5, r6, pc} - - thumb_func_start sub_0809969C -sub_0809969C: @ 0x0809969C - push {lr} - movs r1, #0xd - movs r2, #0 - bl CreateFX - bl sub_0805E780 - pop {pc} - - thumb_func_start sub_080996AC -sub_080996AC: @ 0x080996AC - push {r4, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x50] - ldr r0, [r0, #4] - cmp r0, #0 - bne _080996BC - bl sub_0805E780 -_080996BC: - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _080996CE - movs r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #3 - bl UpdateSprite -_080996CE: - ldr r0, [r4, #0x50] - ldrb r0, [r0, #0xc] - cmp r0, #2 - bhi _08099726 - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] - adds r2, r4, #0 - adds r2, #0x5a - ldrb r1, [r2] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _08099706 - movs r0, #0 - strb r0, [r2] - bl Random - movs r1, #0x78 - ands r0, r1 - adds r0, #0x78 - adds r1, r4, #0 - adds r1, #0x59 - strb r0, [r1] -_08099706: - adds r0, r4, #0 - bl sub_08004274 - ldr r0, [r4, #0x50] - adds r1, r4, #0 - bl sub_0806FA6C - ldrh r0, [r4, #0x32] - adds r0, #1 - strh r0, [r4, #0x32] - adds r1, r4, #0 - adds r1, #0x63 - ldrb r0, [r1] - subs r0, #0x11 - strb r0, [r1] - b _08099730 -_08099726: - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #0x18] -_08099730: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08099734 -sub_08099734: @ 0x08099734 - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xa] - cmp r0, #3 - bhi _08099754 - ldr r0, _08099750 @ =gUnk_081237A0 - ldrb r1, [r2, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r2, #0 - bl _call_via_r1 - b _0809975A - .align 2, 0 -_08099750: .4byte gUnk_081237A0 -_08099754: - adds r0, r2, #0 - bl sub_08099D30 -_0809975A: - pop {pc} - - thumb_func_start sub_0809975C -sub_0809975C: @ 0x0809975C - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x86 - ldrh r0, [r0] - bl sub_0807CBE4 - cmp r0, #0 - beq _08099770 - bl sub_0805E780 -_08099770: - movs r2, #1 - strb r2, [r4, #0xc] - ldrb r1, [r4, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r4, #0x10] - ldrb r1, [r4, #0x11] - movs r0, #0x10 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #3 - orrs r0, r1 - strb r0, [r4, #0x11] - adds r1, r4, #0 - adds r1, #0x3c - movs r0, #7 - strb r0, [r1] - adds r1, #4 - movs r0, #0x48 - strb r0, [r1] - adds r0, r4, #0 - adds r0, #0x3f - strb r2, [r0] - subs r1, #5 - movs r0, #0x80 - strb r0, [r1] - ldr r0, _080997C8 @ =gUnk_080FD190 - str r0, [r4, #0x48] - adds r0, r4, #0 - bl sub_08099910 - ldrb r1, [r4, #0xa] - adds r0, r4, #0 - bl UpdateSprite - movs r0, #0x85 - movs r1, #4 - movs r2, #0 - bl CreateObject - cmp r0, #0 - beq _080997C6 - str r4, [r0, #0x50] -_080997C6: - pop {r4, pc} - .align 2, 0 -_080997C8: .4byte gUnk_080FD190 - - thumb_func_start sub_080997CC -sub_080997CC: @ 0x080997CC - push {r4, lr} - adds r4, r0, #0 - bl sub_0809963C - cmp r0, #0 - beq _080997EC - movs r0, #0 - movs r1, #2 - strb r1, [r4, #0xc] - strb r0, [r4, #0xe] - ldr r0, _080997F0 @ =0x000001B3 - bl sub_08004488 - adds r0, r4, #0 - bl sub_080997F4 -_080997EC: - pop {r4, pc} - .align 2, 0 -_080997F0: .4byte 0x000001B3 - - thumb_func_start sub_080997F4 -sub_080997F4: @ 0x080997F4 - push {r4, lr} - adds r4, r0, #0 - bl sub_0809963C - adds r1, r0, #0 - cmp r1, #0 - bne _08099822 - ldrb r0, [r4, #0xe] - cmp r0, #1 - bls _0809980E - subs r0, #2 - strb r0, [r4, #0xe] - b _08099810 -_0809980E: - strb r1, [r4, #0xe] -_08099810: - ldrb r0, [r4, #0xe] - cmp r0, #0 - bne _08099828 - movs r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - bl sub_0805EC60 - b _0809987C -_08099822: - ldrb r0, [r4, #0xe] - adds r0, #1 - strb r0, [r4, #0xe] -_08099828: - ldr r1, _08099858 @ =gUnk_081237B0 - ldrb r0, [r4, #0xe] - lsrs r0, r0, #5 - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r2, [r0] - movs r1, #0x80 - lsls r1, r1, #1 - adds r0, r4, #0 - movs r3, #0 - bl sub_0805EC9C - ldrb r0, [r4, #0xa] - cmp r0, #1 - beq _0809986C - cmp r0, #2 - beq _0809985C - adds r0, r4, #0 - adds r0, #0x86 - ldrh r0, [r0] - bl sub_0807CCC8 - b _0809986C - .align 2, 0 -_08099858: .4byte gUnk_081237B0 -_0809985C: - adds r0, r4, #0 - adds r0, #0x86 - ldrh r3, [r0] - adds r0, r4, #0 - movs r1, #0x53 - movs r2, #0 - bl sub_080A2A3C -_0809986C: - movs r0, #3 - strb r0, [r4, #0xc] - movs r0, #0x3c - strb r0, [r4, #0xe] - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] -_0809987C: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08099880 -sub_08099880: @ 0x08099880 - push {r4, r5, r6, lr} - adds r5, r0, #0 - ldrb r0, [r5, #0xe] - subs r1, r0, #1 - strb r1, [r5, #0xe] - lsls r0, r1, #0x18 - cmp r0, #0 - bne _08099896 - bl sub_0805E780 - b _0809990E -_08099896: - lsls r0, r1, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x30 - bne _080998A4 - adds r0, r5, #0 - bl sub_08099C18 -_080998A4: - ldrb r0, [r5, #0xe] - movs r4, #0x3c - subs r4, r4, r0 - lsls r4, r4, #5 - movs r1, #0x80 - lsls r1, r1, #1 - adds r4, r4, r1 - adds r0, r5, #0 - adds r2, r4, #0 - movs r3, #0 - bl sub_0805EC9C - adds r0, r5, #0 - adds r1, r4, #0 - movs r2, #2 - movs r3, #0 - bl sub_0806FCF4 - movs r0, #0xf - movs r1, #0x11 - movs r2, #0x40 - bl CreateObject - adds r6, r0, #0 - cmp r6, #0 - beq _0809990E - bl Random - adds r4, r0, #0 - asrs r0, r4, #0x10 - movs r1, #0x21 - bl __modsi3 - adds r2, r0, #0 - subs r2, #0x10 - movs r0, #0xf - ands r0, r4 - subs r4, r0, #4 - adds r3, r6, #0 - adds r3, #0x29 - ldrb r1, [r3] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #3 - orrs r0, r1 - strb r0, [r3] - lsls r2, r2, #0x10 - lsls r3, r4, #0x10 - adds r0, r5, #0 - adds r1, r6, #0 - bl PositionRelative -_0809990E: - pop {r4, r5, r6, pc} - - thumb_func_start sub_08099910 -sub_08099910: @ 0x08099910 - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - movs r1, #0x2e - ldrsh r0, [r4, r1] - ldr r3, _08099968 @ =gRoomControls - ldrh r1, [r3, #6] - subs r0, r0, r1 - asrs r6, r0, #4 - movs r2, #0x3f - ands r6, r2 - movs r1, #0x32 - ldrsh r0, [r4, r1] - ldrh r1, [r3, #8] - subs r0, r0, r1 - asrs r0, r0, #4 - ands r0, r2 - lsls r0, r0, #6 - orrs r6, r0 - adds r0, r4, #0 - adds r0, #0x6e - strh r6, [r0] - ldrh r2, [r4, #0x2e] - movs r0, #8 - adds r1, r0, #0 - ands r1, r2 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x13 - ldrh r2, [r4, #0x32] - ands r0, r2 - lsls r0, r0, #0x10 - asrs r0, r0, #0x12 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - adds r1, r1, r0 - adds r0, r4, #0 - adds r0, #0x6c - strh r1, [r0] - cmp r1, #2 - beq _08099A4C - cmp r1, #2 - bhi _0809996C - cmp r1, #1 - beq _080999A8 - b _08099972 - .align 2, 0 -_08099968: .4byte gRoomControls -_0809996C: - cmp r1, #3 - bne _08099972 - b _08099AF0 -_08099972: - ldr r5, _080999A4 @ =0x00004022 - adds r1, r6, #0 - subs r1, #0x41 - adds r4, #0x38 - ldrb r2, [r4] - adds r0, r5, #0 - bl sub_0800015E - adds r1, r6, #0 - subs r1, #0x40 - ldrb r2, [r4] - adds r0, r5, #0 - bl sub_0800015E - subs r1, r6, #1 - ldrb r2, [r4] - adds r0, r5, #0 - bl sub_0800015E - ldrb r2, [r4] - adds r0, r5, #0 - adds r1, r6, #0 - bl sub_0800015E - b _08099BF0 - .align 2, 0 -_080999A4: .4byte 0x00004022 -_080999A8: - adds r5, r6, #0 - subs r5, #0x41 - lsls r0, r5, #0x10 - lsrs r0, r0, #0x10 - adds r4, #0x38 - ldrb r1, [r4] - bl sub_080002C8 - ldr r1, _08099A40 @ =0x00004024 - cmp r0, #0x12 - bne _080999C0 - adds r1, #0x55 -_080999C0: - ldrb r2, [r4] - adds r0, r1, #0 - adds r1, r5, #0 - bl sub_0800015E - ldr r7, _08099A44 @ =0x00004022 - adds r1, r6, #0 - subs r1, #0x40 - ldrb r2, [r4] - adds r0, r7, #0 - bl sub_0800015E - adds r5, r6, #0 - subs r5, #0x3f - lsls r0, r5, #0x10 - lsrs r0, r0, #0x10 - ldrb r1, [r4] - bl sub_080002C8 - ldr r1, _08099A48 @ =0x00004025 - cmp r0, #0x12 - bne _080999EE - adds r1, #0x56 -_080999EE: - ldrb r2, [r4] - adds r0, r1, #0 - adds r1, r5, #0 - bl sub_0800015E - subs r5, r6, #1 - lsls r0, r5, #0x10 - lsrs r0, r0, #0x10 - ldrb r1, [r4] - bl sub_080002C8 - ldr r1, _08099A40 @ =0x00004024 - cmp r0, #0x12 - bne _08099A0C - adds r1, #0x55 -_08099A0C: - ldrb r2, [r4] - adds r0, r1, #0 - adds r1, r5, #0 - bl sub_0800015E - ldrb r2, [r4] - adds r0, r7, #0 - adds r1, r6, #0 - bl sub_0800015E - adds r5, r6, #1 - adds r0, r5, #0 - ldrb r1, [r4] - bl sub_080002C8 - ldr r1, _08099A48 @ =0x00004025 - cmp r0, #0x12 - bne _08099A32 - adds r1, #0x56 -_08099A32: - ldrb r2, [r4] - adds r0, r1, #0 - adds r1, r5, #0 - bl sub_0800015E - b _08099BF0 - .align 2, 0 -_08099A40: .4byte 0x00004024 -_08099A44: .4byte 0x00004022 -_08099A48: .4byte 0x00004025 -_08099A4C: - adds r7, r6, #0 - subs r7, #0x41 - lsls r0, r7, #0x10 - lsrs r0, r0, #0x10 - adds r5, r4, #0 - adds r5, #0x38 - ldrb r1, [r5] - bl sub_080002C8 - ldr r1, _08099AE4 @ =0x00004023 - cmp r0, #0x12 - bne _08099A66 - adds r1, #0x54 -_08099A66: - ldrb r2, [r5] - adds r0, r1, #0 - adds r1, r7, #0 - bl sub_0800015E - adds r4, r6, #0 - subs r4, #0x40 - lsls r0, r4, #0x10 - lsrs r0, r0, #0x10 - ldrb r1, [r5] - bl sub_080002C8 - ldr r1, _08099AE4 @ =0x00004023 - cmp r0, #0x12 - bne _08099A86 - adds r1, #0x54 -_08099A86: - ldrb r2, [r5] - adds r0, r1, #0 - adds r1, r4, #0 - bl sub_0800015E - ldr r4, _08099AE8 @ =0x00004022 - subs r1, r6, #1 - ldrb r2, [r5] - adds r0, r4, #0 - bl sub_0800015E - ldrb r2, [r5] - adds r0, r4, #0 - adds r1, r6, #0 - bl sub_0800015E - adds r4, r6, #0 - adds r4, #0x3f - adds r0, r4, #0 - ldrb r1, [r5] - bl sub_080002C8 - ldr r1, _08099AEC @ =0x00004026 - cmp r0, #0x12 - bne _08099ABA - adds r1, #0x56 -_08099ABA: - ldrb r2, [r5] - adds r0, r1, #0 - adds r1, r4, #0 - bl sub_0800015E - adds r4, r6, #0 - adds r4, #0x40 - adds r0, r4, #0 - ldrb r1, [r5] - bl sub_080002C8 - ldr r1, _08099AEC @ =0x00004026 - cmp r0, #0x12 - bne _08099AD8 - adds r1, #0x56 -_08099AD8: - ldrb r2, [r5] - adds r0, r1, #0 - adds r1, r4, #0 - bl sub_0800015E - b _08099BF0 - .align 2, 0 -_08099AE4: .4byte 0x00004023 -_08099AE8: .4byte 0x00004022 -_08099AEC: .4byte 0x00004026 -_08099AF0: - adds r5, r6, #0 - subs r5, #0x41 - lsls r0, r5, #0x10 - lsrs r0, r0, #0x10 - adds r4, #0x38 - ldrb r1, [r4] - bl sub_080002C8 - ldr r1, _08099BF4 @ =0x00004027 - cmp r0, #0x12 - bne _08099B08 - adds r1, #0x4e -_08099B08: - ldrb r2, [r4] - adds r0, r1, #0 - adds r1, r5, #0 - bl sub_0800015E - adds r5, r6, #0 - subs r5, #0x40 - lsls r0, r5, #0x10 - lsrs r0, r0, #0x10 - ldrb r1, [r4] - bl sub_080002C8 - ldr r1, _08099BF8 @ =0x00004023 - cmp r0, #0x12 - bne _08099B28 - adds r1, #0x54 -_08099B28: - ldrb r2, [r4] - adds r0, r1, #0 - adds r1, r5, #0 - bl sub_0800015E - adds r5, r6, #0 - subs r5, #0x3f - lsls r0, r5, #0x10 - lsrs r0, r0, #0x10 - ldrb r1, [r4] - bl sub_080002C8 - ldr r1, _08099BFC @ =0x00004028 - cmp r0, #0x12 - bne _08099B48 - adds r1, #0x4e -_08099B48: - ldrb r2, [r4] - adds r0, r1, #0 - adds r1, r5, #0 - bl sub_0800015E - subs r5, r6, #1 - lsls r0, r5, #0x10 - lsrs r0, r0, #0x10 - ldrb r1, [r4] - bl sub_080002C8 - ldr r1, _08099C00 @ =0x00004024 - cmp r0, #0x12 - bne _08099B66 - adds r1, #0x55 -_08099B66: - ldrb r2, [r4] - adds r0, r1, #0 - adds r1, r5, #0 - bl sub_0800015E - ldr r0, _08099C04 @ =0x00004022 - ldrb r2, [r4] - adds r1, r6, #0 - bl sub_0800015E - adds r5, r6, #1 - adds r0, r5, #0 - ldrb r1, [r4] - bl sub_080002C8 - ldr r1, _08099C08 @ =0x00004025 - cmp r0, #0x12 - bne _08099B8C - adds r1, #0x56 -_08099B8C: - ldrb r2, [r4] - adds r0, r1, #0 - adds r1, r5, #0 - bl sub_0800015E - adds r5, r6, #0 - adds r5, #0x3f - adds r0, r5, #0 - ldrb r1, [r4] - bl sub_080002C8 - ldr r1, _08099C0C @ =0x00004029 - cmp r0, #0x12 - bne _08099BAA - adds r1, #0x4f -_08099BAA: - ldrb r2, [r4] - adds r0, r1, #0 - adds r1, r5, #0 - bl sub_0800015E - adds r5, r6, #0 - adds r5, #0x40 - adds r0, r5, #0 - ldrb r1, [r4] - bl sub_080002C8 - ldr r1, _08099C10 @ =0x00004026 - cmp r0, #0x12 - bne _08099BC8 - adds r1, #0x56 -_08099BC8: - ldrb r2, [r4] - adds r0, r1, #0 - adds r1, r5, #0 - bl sub_0800015E - adds r5, r6, #0 - adds r5, #0x41 - adds r0, r5, #0 - ldrb r1, [r4] - bl sub_080002C8 - ldr r1, _08099C14 @ =0x0000402A - cmp r0, #0x12 - bne _08099BE6 - adds r1, #0x50 -_08099BE6: - ldrb r2, [r4] - adds r0, r1, #0 - adds r1, r5, #0 - bl sub_0800015E -_08099BF0: - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08099BF4: .4byte 0x00004027 -_08099BF8: .4byte 0x00004023 -_08099BFC: .4byte 0x00004028 -_08099C00: .4byte 0x00004024 -_08099C04: .4byte 0x00004022 -_08099C08: .4byte 0x00004025 -_08099C0C: .4byte 0x00004029 -_08099C10: .4byte 0x00004026 -_08099C14: .4byte 0x0000402A - - thumb_func_start sub_08099C18 -sub_08099C18: @ 0x08099C18 - push {r4, r5, lr} - adds r1, r0, #0 - adds r0, #0x6e - ldrh r5, [r0] - subs r0, #2 - ldrh r0, [r0] - cmp r0, #2 - beq _08099C96 - cmp r0, #2 - bgt _08099C32 - cmp r0, #1 - beq _08099C60 - b _08099C36 -_08099C32: - cmp r0, #3 - beq _08099CD4 -_08099C36: - adds r0, r5, #0 - subs r0, #0x41 - adds r4, r1, #0 - adds r4, #0x38 - ldrb r1, [r4] - bl sub_0807BA8C - adds r0, r5, #0 - subs r0, #0x40 - ldrb r1, [r4] - bl sub_0807BA8C - subs r0, r5, #1 - ldrb r1, [r4] - bl sub_0807BA8C - ldrb r1, [r4] - adds r0, r5, #0 - bl sub_0807BA8C - b _08099D2C -_08099C60: - adds r0, r5, #0 - subs r0, #0x41 - adds r4, r1, #0 - adds r4, #0x38 - ldrb r1, [r4] - bl sub_0807BA8C - adds r0, r5, #0 - subs r0, #0x40 - ldrb r1, [r4] - bl sub_0807BA8C - adds r0, r5, #0 - subs r0, #0x3f - ldrb r1, [r4] - bl sub_0807BA8C - subs r0, r5, #1 - ldrb r1, [r4] - bl sub_0807BA8C - ldrb r1, [r4] - adds r0, r5, #0 - bl sub_0807BA8C - adds r0, r5, #1 - b _08099CCC -_08099C96: - adds r0, r5, #0 - subs r0, #0x41 - adds r4, r1, #0 - adds r4, #0x38 - ldrb r1, [r4] - bl sub_0807BA8C - adds r0, r5, #0 - subs r0, #0x40 - ldrb r1, [r4] - bl sub_0807BA8C - subs r0, r5, #1 - ldrb r1, [r4] - bl sub_0807BA8C - ldrb r1, [r4] - adds r0, r5, #0 - bl sub_0807BA8C - adds r0, r5, #0 - adds r0, #0x3f - ldrb r1, [r4] - bl sub_0807BA8C - adds r0, r5, #0 - adds r0, #0x40 -_08099CCC: - ldrb r1, [r4] - bl sub_0807BA8C - b _08099D2C -_08099CD4: - adds r0, r5, #0 - subs r0, #0x41 - adds r4, r1, #0 - adds r4, #0x38 - ldrb r1, [r4] - bl sub_0807BA8C - adds r0, r5, #0 - subs r0, #0x40 - ldrb r1, [r4] - bl sub_0807BA8C - adds r0, r5, #0 - subs r0, #0x3f - ldrb r1, [r4] - bl sub_0807BA8C - subs r0, r5, #1 - ldrb r1, [r4] - bl sub_0807BA8C - ldrb r1, [r4] - adds r0, r5, #0 - bl sub_0807BA8C - adds r0, r5, #1 - ldrb r1, [r4] - bl sub_0807BA8C - adds r0, r5, #0 - adds r0, #0x3f - ldrb r1, [r4] - bl sub_0807BA8C - adds r0, r5, #0 - adds r0, #0x40 - ldrb r1, [r4] - bl sub_0807BA8C - adds r0, r5, #0 - adds r0, #0x41 - ldrb r1, [r4] - bl sub_0807BA8C -_08099D2C: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_08099D30 -sub_08099D30: @ 0x08099D30 - push {r4, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x50] - ldr r0, [r0, #4] - cmp r0, #0 - bne _08099D40 - bl sub_0805E780 -_08099D40: - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _08099D6A - movs r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #4 - bl UpdateSprite - ldr r0, [r4, #0x50] - adds r1, r4, #0 - bl sub_0806FA6C - ldrh r0, [r4, #0x32] - adds r0, #1 - strh r0, [r4, #0x32] - adds r1, r4, #0 - adds r1, #0x63 - ldrb r0, [r1] - subs r0, #1 - strb r0, [r1] -_08099D6A: - ldr r0, [r4, #0x50] - ldrb r0, [r0, #0xc] - cmp r0, #1 - bhi _08099DAA - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] - adds r2, r4, #0 - adds r2, #0x5a - ldrb r1, [r2] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _08099DA2 - movs r0, #0 - strb r0, [r2] - bl Random - movs r1, #0x78 - ands r0, r1 - adds r0, #0x78 - adds r1, r4, #0 - adds r1, #0x59 - strb r0, [r1] -_08099DA2: - adds r0, r4, #0 - bl sub_08004274 - b _08099DB4 -_08099DAA: - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #0x18] -_08099DB4: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08099DB8 -sub_08099DB8: @ 0x08099DB8 - push {lr} - ldr r2, _08099DCC @ =gUnk_081237F8 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08099DCC: .4byte gUnk_081237F8 - - thumb_func_start sub_08099DD0 -sub_08099DD0: @ 0x08099DD0 - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r0, #0x38 - movs r6, #0 - movs r5, #1 - strb r5, [r0] - ldrb r0, [r4, #0x19] - movs r1, #0xc0 - orrs r0, r1 - strb r0, [r4, #0x19] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r0, [r2] - movs r1, #7 - orrs r0, r1 - strb r0, [r2] - strb r6, [r4, #0xd] - movs r0, #0x46 - bl GetInventoryValue - cmp r0, #0 - beq _08099E04 - movs r0, #4 - strb r0, [r4, #0xc] - strb r6, [r4, #0x1e] - b _08099E0E -_08099E04: - strb r5, [r4, #0xc] - adds r0, r4, #0 - movs r1, #0 - bl UpdateSprite -_08099E0E: - pop {r4, r5, r6, pc} - - thumb_func_start sub_08099E10 -sub_08099E10: @ 0x08099E10 - push {r4, r5, lr} - adds r4, r0, #0 - movs r0, #0x74 - bl sub_0807CBD0 - cmp r0, #0 - beq _08099E54 - adds r0, r4, #0 - bl sub_08004274 - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - adds r5, r0, #0 - cmp r1, #1 - bne _08099E3E - ldrb r0, [r4, #0xd] - cmp r0, #0 - bne _08099E3E - strb r0, [r5] - adds r0, r4, #0 - bl sub_08099ECC -_08099E3E: - ldrb r1, [r5] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08099E54 - movs r0, #2 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #1 - bl UpdateSprite -_08099E54: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_08099E58 -sub_08099E58: @ 0x08099E58 - push {r4, lr} - adds r4, r0, #0 - bl sub_08004274 - adds r2, r4, #0 - adds r2, #0x5a - ldrb r1, [r2] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08099E88 - movs r0, #0x7f - ands r0, r1 - strb r0, [r2] - ldrb r0, [r4, #0xe] - adds r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #3 - bne _08099E88 - strb r0, [r4, #0xc] - movs r0, #4 - strb r0, [r4, #0x1e] -_08099E88: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08099E8C -sub_08099E8C: @ 0x08099E8C - push {r4, lr} - adds r4, r0, #0 - ldr r1, _08099EC4 @ =gLinkEntity - movs r2, #0xc - movs r3, #0xc - bl sub_080041A0 - cmp r0, #0 - beq _08099EC2 - ldrb r0, [r4, #0xd] - cmp r0, #0 - bne _08099EB2 - adds r0, r4, #0 - bl sub_08099ECC - adds r0, r4, #0 - movs r1, #0x1e - bl sub_0805E4E0 -_08099EB2: - movs r0, #0x75 - bl sub_0807CBD0 - cmp r0, #0 - beq _08099EC2 - movs r0, #7 - bl sub_0805B390 -_08099EC2: - pop {r4, pc} - .align 2, 0 -_08099EC4: .4byte gLinkEntity - - thumb_func_start nullsub_534 -nullsub_534: @ 0x08099EC8 - bx lr - .align 2, 0 - - thumb_func_start sub_08099ECC -sub_08099ECC: @ 0x08099ECC - push {r4, lr} - movs r4, #0 - movs r1, #1 - strb r1, [r0, #0xd] - ldr r1, _08099EF4 @ =gLinkEntity - bl CopyPosition - ldr r2, _08099EF8 @ =gLinkState - movs r0, #3 - strb r0, [r2, #0xc] - adds r0, r2, #0 - adds r0, #0x38 - strb r4, [r0] - ldr r0, [r2, #0x30] - movs r1, #0x80 - lsls r1, r1, #8 - orrs r0, r1 - str r0, [r2, #0x30] - pop {r4, pc} - .align 2, 0 -_08099EF4: .4byte gLinkEntity -_08099EF8: .4byte gLinkState - - thumb_func_start sub_08099EFC -sub_08099EFC: @ 0x08099EFC - push {lr} - ldr r2, _08099F10 @ =gUnk_08123840 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08099F10: .4byte gUnk_08123840 - - thumb_func_start sub_08099F14 -sub_08099F14: @ 0x08099F14 - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - movs r0, #1 - strb r0, [r5, #0xc] - movs r0, #0x80 - lsls r0, r0, #2 - strh r0, [r5, #0x24] - ldrb r0, [r5, #0xa] - cmp r0, #9 - bls _08099F2A - b _0809A1B6 -_08099F2A: - lsls r0, r0, #2 - ldr r1, _08099F34 @ =_08099F38 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08099F34: .4byte _08099F38 -_08099F38: @ jump table - .4byte _08099F60 @ case 0 - .4byte _08099F70 @ case 1 - .4byte _08099F82 @ case 2 - .4byte _0809A00C @ case 3 - .4byte _0809A0AA @ case 4 - .4byte _0809A0B0 @ case 5 - .4byte _0809A058 @ case 6 - .4byte _0809A11C @ case 7 - .4byte _0809A132 @ case 8 - .4byte _0809A1B0 @ case 9 -_08099F60: - adds r2, r5, #0 - adds r2, #0x79 - movs r0, #0 - movs r1, #0x96 - strb r1, [r2] - strb r0, [r5, #0xe] - movs r0, #0x1e - strb r0, [r5, #0xf] -_08099F70: - adds r0, r5, #0 - movs r1, #0 - bl UpdateSprite - movs r0, #0x92 - lsls r0, r0, #1 - bl sub_08004488 - b _0809A1B6 -_08099F82: - ldr r0, [r5, #0x50] - adds r0, #0x7b - ldrb r0, [r0] - adds r0, #0x80 - rsbs r0, r0, #0 - strb r0, [r5, #0x15] - bl Random - movs r1, #1 - ands r1, r0 - cmp r1, #0 - beq _08099FCE - bl Random - adds r1, r0, #0 - movs r0, #3 - ands r1, r0 - cmp r1, #1 - beq _08099FBC - cmp r1, #1 - blo _08099FB6 - cmp r1, #2 - beq _08099FC2 - cmp r1, #3 - beq _08099FC8 - b _08099FCE -_08099FB6: - ldrb r0, [r5, #0x15] - subs r0, #0x10 - b _08099FCC -_08099FBC: - ldrb r0, [r5, #0x15] - adds r0, #0x10 - b _08099FCC -_08099FC2: - ldrb r0, [r5, #0x15] - subs r0, #8 - b _08099FCC -_08099FC8: - ldrb r0, [r5, #0x15] - adds r0, #8 -_08099FCC: - strb r0, [r5, #0x15] -_08099FCE: - bl Random - movs r1, #0x3f - ands r0, r1 - movs r1, #0xf0 - subs r1, r1, r0 - strh r1, [r5, #0x24] - lsls r1, r1, #0x10 - asrs r1, r1, #0x11 - lsls r1, r1, #8 - ldrb r2, [r5, #0x15] - adds r0, r5, #0 - bl sub_0806F62C - ldrh r1, [r5, #0x24] - lsls r1, r1, #0x10 - asrs r1, r1, #0x11 - lsls r1, r1, #8 - ldrb r2, [r5, #0x15] - adds r0, r5, #0 - bl sub_0806F62C - adds r0, r5, #0 - movs r1, #5 - bl UpdateSprite - movs r0, #0xa6 - lsls r0, r0, #1 - bl PlaySFX - b _0809A1B6 -_0809A00C: - ldr r0, [r5, #0x50] - adds r0, #0x7b - ldrb r0, [r0] - adds r0, #0x80 - rsbs r0, r0, #0 - strb r0, [r5, #0x15] - movs r1, #0x90 - lsls r1, r1, #7 - ldrb r2, [r5, #0x15] - adds r0, r5, #0 - bl sub_0806F62C - bl Random - movs r1, #1 - ands r1, r0 - cmp r1, #0 - beq _0809A040 - bl Random - movs r1, #0x3f - ands r0, r1 - ldrb r1, [r5, #0x15] - adds r0, r0, r1 - strb r0, [r5, #0x15] - b _0809A04E -_0809A040: - bl Random - movs r1, #0x3f - ands r0, r1 - ldrb r1, [r5, #0x15] - subs r1, r1, r0 - strb r1, [r5, #0x15] -_0809A04E: - adds r0, r5, #0 - movs r1, #6 - bl UpdateSprite - b _0809A1B6 -_0809A058: - bl Random - movs r1, #0x2f - ands r1, r0 - movs r4, #0x30 - subs r4, r4, r1 - lsls r4, r4, #8 - bl Random - movs r2, #0xff - ands r2, r0 - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_0806F62C - bl Random - movs r1, #1 - ands r1, r0 - cmp r1, #0 - beq _0809A092 - bl Random - movs r1, #0x3f - ands r0, r1 - ldrb r1, [r5, #0x15] - adds r0, r0, r1 - strb r0, [r5, #0x15] - b _0809A0A0 -_0809A092: - bl Random - movs r1, #0x3f - ands r0, r1 - ldrb r1, [r5, #0x15] - subs r1, r1, r0 - strb r1, [r5, #0x15] -_0809A0A0: - adds r0, r5, #0 - movs r1, #5 - bl UpdateSprite - b _0809A1B6 -_0809A0AA: - movs r0, #0xc3 - lsls r0, r0, #2 - b _0809A1B4 -_0809A0B0: - adds r2, r5, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2] - movs r0, #0x18 - str r0, [r5, #0x78] - adds r7, r5, #0 - adds r7, #0x76 - movs r1, #0 - movs r0, #0x80 - lsls r0, r0, #3 - strh r0, [r7] - adds r4, r5, #0 - adds r4, #0x74 - strh r0, [r4] - adds r6, r5, #0 - adds r6, #0x7a - strh r1, [r6] - ldr r0, [r5, #0x50] - adds r0, #0x7b - ldrb r1, [r0] - rsbs r1, r1, #0 - lsls r1, r1, #0x18 - ldr r3, _0809A118 @ =gUnk_0812388C - ldrb r2, [r5, #0xb] - lsls r0, r2, #1 - adds r0, #1 - lsls r0, r0, #1 - adds r0, r0, r3 - lsrs r1, r1, #0x18 - ldrh r0, [r0] - adds r1, r1, r0 - lsls r2, r2, #2 - adds r2, r2, r3 - ldrh r2, [r2] - adds r0, r5, #0 - bl sub_0806F62C - ldrh r1, [r7] - ldrh r2, [r4] - ldrh r3, [r6] - adds r0, r5, #0 - bl sub_0805EC9C - adds r0, r5, #0 - movs r1, #7 - bl UpdateSprite - b _0809A1B6 - .align 2, 0 -_0809A118: .4byte gUnk_0812388C -_0809A11C: - movs r0, #0 - strb r0, [r5, #0xe] - adds r0, r5, #0 - movs r1, #8 - bl UpdateSprite - ldr r0, [r5, #0x50] - adds r1, r5, #0 - bl CopyPosition - b _0809A1B6 -_0809A132: - ldr r0, [r5, #0x50] - adds r0, #0x7c - ldrb r0, [r0] - movs r1, #0 - strb r0, [r5, #0xb] - movs r0, #4 - strb r0, [r5, #0xe] - strb r1, [r5, #0xf] - ldr r3, _0809A1A0 @ =gRoomControls - ldrh r0, [r5, #0x2e] - ldrh r1, [r3, #6] - subs r0, r0, r1 - movs r1, #0xf8 - lsls r1, r1, #1 - adds r2, r1, #0 - ands r0, r2 - movs r1, #0x82 - adds r1, r1, r5 - mov ip, r1 - strh r0, [r1] - ldrh r1, [r5, #0x32] - ldrh r0, [r3, #8] - subs r1, r1, r0 - ands r1, r2 - adds r3, r5, #0 - adds r3, #0x80 - strh r1, [r3] - adds r4, r5, #0 - adds r4, #0x84 - mov r0, ip - ldrh r2, [r0] - subs r2, #0x10 - asrs r2, r2, #4 - lsrs r1, r1, #4 - lsls r0, r1, #5 - subs r0, r0, r1 - adds r2, r2, r0 - str r2, [r4] - mov r1, ip - ldrh r0, [r1] - ldrh r1, [r3] - ldrb r3, [r5, #0xb] - bl sub_0809A6F8 - ldr r0, [r5, #0x50] - adds r0, #0x7c - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0809A1A8 - ldr r0, _0809A1A4 @ =0x000001A3 - bl PlaySFX - b _0809A1B6 - .align 2, 0 -_0809A1A0: .4byte gRoomControls -_0809A1A4: .4byte 0x000001A3 -_0809A1A8: - movs r0, #0xe8 - bl PlaySFX - b _0809A1B6 -_0809A1B0: - movs r0, #0xf0 - lsls r0, r0, #1 -_0809A1B4: - str r0, [r5, #0x78] -_0809A1B6: - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_0809A1B8 -sub_0809A1B8: @ 0x0809A1B8 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x38 - adds r7, r0, #0 - bl sub_08004274 - ldrb r0, [r7, #0xa] - cmp r0, #9 - bls _0809A1D2 - b _0809A632 -_0809A1D2: - lsls r0, r0, #2 - ldr r1, _0809A1DC @ =_0809A1E0 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0809A1DC: .4byte _0809A1E0 -_0809A1E0: @ jump table - .4byte _0809A208 @ case 0 - .4byte _0809A25C @ case 1 - .4byte _0809A33E @ case 2 - .4byte _0809A378 @ case 3 - .4byte _0809A394 @ case 4 - .4byte _0809A3E0 @ case 5 - .4byte _0809A378 @ case 6 - .4byte _0809A46C @ case 7 - .4byte _0809A47C @ case 8 - .4byte _0809A616 @ case 9 -_0809A208: - adds r1, r7, #0 - adds r1, #0x79 - ldrb r0, [r1] - cmp r0, #0 - beq _0809A25C - subs r0, #1 - strb r0, [r1] - ldrb r0, [r7, #0xf] - subs r0, #1 - strb r0, [r7, #0xf] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r1, #0xb - str r1, [sp, #0x20] - cmp r0, #0xff - bne _0809A254 - movs r0, #5 - strb r0, [r7, #0xf] - ldrb r3, [r7, #0xb] - adds r0, r7, #0 - movs r1, #0x87 - movs r2, #1 - bl CreateObjectWithParent - adds r1, r0, #0 - str r1, [r7, #0x54] - cmp r1, #0 - beq _0809A24E - ldr r0, [r7, #0x50] - str r0, [r1, #0x50] - ldr r0, [r7, #0x54] - adds r0, #0x84 - ldr r2, [sp, #0x20] - ldr r1, [r2] - str r1, [r0] -_0809A24E: - ldrb r0, [r7, #0xb] - adds r0, #1 - strb r0, [r7, #0xb] -_0809A254: - ldr r1, [sp, #0x20] - ldr r0, [r1] - ldr r0, [r0, #0xc] - b _0809A474 -_0809A25C: - adds r4, r7, #0 - adds r4, #0x84 - ldr r1, [r4] - ldrb r0, [r7, #0xe] - lsls r0, r0, #2 - adds r1, #0xc - adds r1, r1, r0 - ldr r2, [r1] - ldr r0, [r2, #0x2c] - ldr r1, [r7, #0x2c] - subs r0, r0, r1 - ldr r1, [r2, #0x30] - ldr r2, [r7, #0x30] - subs r1, r1, r2 - bl sub_080045DA - strb r0, [r7, #0x15] - movs r2, #0x24 - ldrsh r1, [r7, r2] - ldrb r2, [r7, #0x15] - adds r0, r7, #0 - bl sub_0806F62C - ldr r1, [r4] - ldrb r0, [r7, #0xe] - lsls r0, r0, #2 - adds r1, #0xc - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r7, #0 - movs r2, #2 - movs r3, #2 - bl sub_080041A0 - cmp r0, #0 - bne _0809A2A6 - b _0809A632 -_0809A2A6: - ldrb r0, [r7, #0xa] - cmp r0, #0 - bne _0809A2CC - ldr r1, [r4] - ldrb r0, [r7, #0xe] - lsls r0, r0, #2 - adds r1, #0xc - adds r1, r1, r0 - ldr r3, [r1] - ldrb r2, [r3, #0x18] - lsls r1, r2, #0x1e - lsrs r1, r1, #0x1e - movs r0, #2 - rsbs r0, r0, #0 - ands r1, r0 - subs r0, #2 - ands r0, r2 - orrs r0, r1 - strb r0, [r3, #0x18] -_0809A2CC: - ldrb r1, [r7, #0xe] - ldr r0, [r4] - ldrb r0, [r0, #1] - subs r0, #1 - cmp r1, r0 - bne _0809A338 - movs r0, #2 - strb r0, [r7, #0xc] - movs r0, #0xf0 - strb r0, [r7, #0xe] - bl Random - ldr r6, _0809A330 @ =gUnk_0812384C - ldrb r2, [r7, #0xb] - movs r3, #0xf - movs r4, #0xf - adds r1, r4, #0 - ands r1, r2 - lsls r1, r1, #2 - adds r1, r1, r6 - ands r0, r3 - ldrb r1, [r1] - adds r0, r0, r1 - strb r0, [r7, #0x15] - bl Random - ldrb r1, [r7, #0xb] - ands r4, r1 - lsls r4, r4, #1 - adds r4, #1 - lsls r4, r4, #1 - adds r4, r4, r6 - ldr r2, _0809A334 @ =0x000001FF - adds r1, r2, #0 - ands r0, r1 - ldrh r4, [r4] - adds r0, r0, r4 - strh r0, [r7, #0x24] - ldrb r0, [r7, #0xa] - cmp r0, #0 - beq _0809A320 - b _0809A632 -_0809A320: - ldr r1, [r7, #0x50] - movs r0, #4 - strb r0, [r1, #0xc] - ldr r1, [r7, #0x50] - movs r0, #0 - strb r0, [r1, #0xd] - b _0809A632 - .align 2, 0 -_0809A330: .4byte gUnk_0812384C -_0809A334: .4byte 0x000001FF -_0809A338: - adds r0, r1, #1 - strb r0, [r7, #0xe] - b _0809A632 -_0809A33E: - ldr r1, [r7, #0x50] - ldrb r0, [r1, #0xb] - cmp r0, #3 - bne _0809A38E - adds r0, r1, #0 - adds r0, #0x84 - ldr r0, [r0] - ldr r2, [r0, #8] - ldr r0, [r2, #0x2c] - ldr r1, [r7, #0x2c] - subs r0, r0, r1 - ldr r1, [r2, #0x30] - ldr r2, [r7, #0x30] - subs r1, r1, r2 - bl sub_080045DA - strb r0, [r7, #0x15] - movs r1, #0xa0 - lsls r1, r1, #2 - ldrb r2, [r7, #0x15] - adds r0, r7, #0 - bl sub_0806F62C - ldr r1, [r7, #0x50] - adds r0, r7, #0 - movs r2, #0x48 - bl sub_0806FC80 - b _0809A388 -_0809A378: - ldrb r2, [r7, #0x15] - adds r0, r7, #0 - movs r1, #0x80 - bl sub_0806F62C - adds r0, r7, #0 - adds r0, #0x5a - ldrb r0, [r0] -_0809A388: - cmp r0, #0 - bne _0809A38E - b _0809A632 -_0809A38E: - bl sub_0805E780 - b _0809A632 -_0809A394: - ldr r3, [r7, #0x78] - cmp r3, #0 - bne _0809A3B4 - ldr r0, _0809A3B0 @ =gUnk_02034350 - movs r2, #0xc - ldrsh r1, [r0, r2] - movs r0, #0x80 - lsls r0, r0, #1 - cmp r1, r0 - beq _0809A38E - movs r0, #8 - bl sub_0805308C - b _0809A632 - .align 2, 0 -_0809A3B0: .4byte gUnk_02034350 -_0809A3B4: - ldr r2, [r7, #0x50] - adds r0, r2, #0 - adds r0, #0x45 - ldrb r1, [r0] - cmp r1, #0 - bne _0809A3C8 - movs r0, #1 - strb r0, [r7, #0xd] - str r1, [r7, #0x78] - b _0809A632 -_0809A3C8: - ldrb r0, [r7, #0xd] - cmp r0, #0 - bne _0809A3D6 - ldrb r0, [r2, #0xb] - cmp r0, #0 - beq _0809A3D6 - b _0809A632 -_0809A3D6: - movs r0, #1 - strb r0, [r7, #0xd] - subs r0, r3, #1 - str r0, [r7, #0x78] - b _0809A632 -_0809A3E0: - ldr r0, [r7, #0x78] - cmp r0, #0 - bne _0809A432 - adds r0, r7, #0 - adds r0, #0x76 - ldrh r2, [r0] - movs r1, #0x80 - lsls r1, r1, #1 - adds r5, r0, #0 - cmp r2, r1 - bne _0809A40E - ldr r0, [r7, #0x50] - adds r0, #0x7c - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - adds r4, r7, #0 - adds r4, #0x74 - cmp r0, #0 - beq _0809A420 - bl sub_0805E780 - b _0809A420 -_0809A40E: - adds r0, r2, #0 - subs r0, #0x20 - strh r0, [r5] - adds r1, r7, #0 - adds r1, #0x74 - ldrh r0, [r1] - subs r0, #0x20 - strh r0, [r1] - adds r4, r1, #0 -_0809A420: - ldrh r1, [r5] - ldrh r2, [r4] - adds r0, r7, #0 - adds r0, #0x7a - ldrh r3, [r0] - adds r0, r7, #0 - bl sub_0805EC9C - b _0809A436 -_0809A432: - subs r0, #1 - str r0, [r7, #0x78] -_0809A436: - ldr r0, [r7, #0x50] - adds r1, r7, #0 - bl CopyPosition - ldr r4, _0809A468 @ =gUnk_0812388C - ldrb r3, [r7, #0xb] - lsls r0, r3, #1 - adds r0, #1 - lsls r0, r0, #1 - adds r0, r0, r4 - ldrh r1, [r0] - ldr r0, [r7, #0x50] - adds r0, #0x7b - ldrb r2, [r0] - rsbs r2, r2, #0 - lsls r2, r2, #0x18 - lsls r3, r3, #2 - adds r3, r3, r4 - lsrs r2, r2, #0x18 - ldrh r3, [r3] - adds r2, r2, r3 - adds r0, r7, #0 - bl sub_0806F62C - b _0809A632 - .align 2, 0 -_0809A468: .4byte gUnk_0812388C -_0809A46C: - ldrb r0, [r7, #0xe] - cmp r0, #0 - bne _0809A38E - ldr r0, [r7, #0x50] -_0809A474: - adds r1, r7, #0 - bl CopyPosition - b _0809A632 -_0809A47C: - ldrb r0, [r7, #0xe] - subs r0, #1 - strb r0, [r7, #0xe] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xff - beq _0809A48C - b _0809A632 -_0809A48C: - movs r0, #4 - strb r0, [r7, #0xe] - ldrb r0, [r7, #0xf] - adds r0, #1 - strb r0, [r7, #0xf] - adds r0, r7, #0 - adds r0, #0x84 - str r0, [sp, #4] - ldrb r1, [r7, #0xf] - lsls r0, r1, #5 - subs r0, r0, r1 - ldr r2, [sp, #4] - ldr r1, [r2] - subs r1, r1, r0 - mov sl, r1 - mov r0, sl - str r0, [sp] - adds r1, r7, #0 - adds r1, #0x82 - str r1, [sp, #8] - ldrh r0, [r1] - adds r2, r7, #0 - adds r2, #0x7e - str r2, [sp, #0xc] - strh r0, [r2] - ldrh r0, [r1] - subs r1, #8 - str r1, [sp, #0x10] - strh r0, [r1] - movs r2, #0x80 - adds r2, r2, r7 - mov sb, r2 - ldrb r0, [r7, #0xf] - lsls r0, r0, #4 - ldrh r1, [r2] - subs r1, r1, r0 - movs r0, #0x7c - adds r0, r0, r7 - mov r8, r0 - strh r1, [r0] - adds r4, r7, #0 - adds r4, #0x78 - strh r1, [r4] - ldr r1, [sp, #0x10] - ldrh r0, [r1] - ldrh r1, [r4] - ldrb r3, [r7, #0xb] - mov r2, sl - bl sub_0809A6F8 - adds r5, r0, #0 - ldrb r6, [r7, #0xf] - ldr r2, [sp, #4] - str r2, [sp, #0x20] - ldr r0, [sp, #0x10] - str r0, [sp, #0x28] - ldr r1, [sp, #8] - str r1, [sp, #0x1c] - ldr r2, [sp, #0xc] - str r2, [sp, #0x30] - mov r0, sb - str r0, [sp, #0x34] - mov r1, r8 - str r1, [sp, #0x2c] - str r4, [sp, #0x24] - cmp r6, #0 - beq _0809A568 - ldr r2, [sp, #0x28] - str r2, [sp, #0x14] - mov sb, r4 - ldr r0, [sp, #0x30] - mov r8, r0 - adds r4, r1, #0 -_0809A51E: - ldr r1, [sp, #0x14] - ldrh r0, [r1] - subs r0, #0x10 - strh r0, [r1] - mov r2, sb - ldrh r0, [r2] - adds r0, #0x10 - strh r0, [r2] - ldr r0, [sp] - adds r0, #0x1e - str r0, [sp] - ldrh r0, [r1] - ldrh r1, [r2] - ldrb r3, [r7, #0xb] - ldr r2, [sp] - bl sub_0809A6F8 - adds r5, r5, r0 - mov r1, r8 - ldrh r0, [r1] - adds r0, #0x10 - strh r0, [r1] - ldrh r0, [r4] - adds r0, #0x10 - strh r0, [r4] - movs r2, #0x20 - add sl, r2 - ldrh r0, [r1] - ldrh r1, [r4] - ldrb r3, [r7, #0xb] - mov r2, sl - bl sub_0809A6F8 - adds r5, r5, r0 - subs r6, #1 - cmp r6, #0 - bne _0809A51E -_0809A568: - ldrb r1, [r7, #0xf] - lsls r0, r1, #5 - subs r0, r0, r1 - ldr r2, [sp, #0x20] - ldr r1, [r2] - adds r1, r1, r0 - mov sl, r1 - mov r0, sl - str r0, [sp] - ldr r1, [sp, #0x1c] - ldrh r0, [r1] - ldr r2, [sp, #0x30] - strh r0, [r2] - ldrh r0, [r1] - ldr r1, [sp, #0x28] - strh r0, [r1] - ldrb r0, [r7, #0xf] - lsls r0, r0, #4 - ldr r2, [sp, #0x34] - ldrh r2, [r2] - adds r0, r0, r2 - ldr r1, [sp, #0x2c] - strh r0, [r1] - ldr r2, [sp, #0x24] - strh r0, [r2] - ldr r1, [sp, #0x28] - ldrh r0, [r1] - ldrh r1, [r2] - ldrb r3, [r7, #0xb] - mov r2, sl - bl sub_0809A6F8 - adds r5, r5, r0 - ldrb r0, [r7, #0xf] - subs r6, r0, #1 - cmp r6, #0 - beq _0809A610 - ldr r2, [sp, #0x28] - str r2, [sp, #0x18] - ldr r0, [sp, #0x24] - mov sb, r0 - ldr r1, [sp, #0x30] - mov r8, r1 - ldr r4, [sp, #0x2c] -_0809A5C0: - ldr r2, [sp, #0x18] - ldrh r0, [r2] - subs r0, #0x10 - strh r0, [r2] - mov r1, sb - ldrh r0, [r1] - subs r0, #0x10 - strh r0, [r1] - ldr r2, [sp] - subs r2, #0x20 - str r2, [sp] - ldr r1, [sp, #0x18] - ldrh r0, [r1] - mov r2, sb - ldrh r1, [r2] - ldrb r3, [r7, #0xb] - ldr r2, [sp] - bl sub_0809A6F8 - adds r5, r5, r0 - mov r1, r8 - ldrh r0, [r1] - adds r0, #0x10 - strh r0, [r1] - ldrh r0, [r4] - subs r0, #0x10 - strh r0, [r4] - movs r2, #0x1e - rsbs r2, r2, #0 - add sl, r2 - ldrh r0, [r1] - ldrh r1, [r4] - ldrb r3, [r7, #0xb] - mov r2, sl - bl sub_0809A6F8 - adds r5, r5, r0 - subs r6, #1 - cmp r6, #0 - bne _0809A5C0 -_0809A610: - cmp r5, #0 - bne _0809A632 - b _0809A38E -_0809A616: - bl sub_08078B48 - ldr r0, [r7, #0x78] - subs r0, #1 - str r0, [r7, #0x78] - movs r1, #1 - rsbs r1, r1, #0 - cmp r0, r1 - bne _0809A632 - ldr r1, _0809A640 @ =gRoomControls - ldr r0, _0809A644 @ =gLinkEntity - str r0, [r1, #0x30] - bl sub_0805E780 -_0809A632: - add sp, #0x38 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0809A640: .4byte gRoomControls -_0809A644: .4byte gLinkEntity - - thumb_func_start sub_0809A648 -sub_0809A648: @ 0x0809A648 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r7, r0, #0 - bl sub_08004274 - ldrb r0, [r7, #0xe] - subs r0, #1 - strb r0, [r7, #0xe] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xff - beq _0809A6EC - ldr r4, [r7, #0x50] - adds r0, r4, #0 - adds r0, #0x74 - ldrh r1, [r0] - movs r0, #0x80 - lsls r0, r0, #9 - bl __divsi3 - movs r2, #0x24 - ldrsh r1, [r7, r2] - adds r5, r1, #0 - muls r5, r0, r5 - adds r4, #0x7b - ldrb r1, [r4] - ldrb r0, [r7, #0x15] - subs r0, r0, r1 - movs r1, #0x7b - adds r1, r1, r7 - mov r8, r1 - strb r0, [r1] - ldr r6, _0809A6E8 @ =gUnk_080C9160 - ldrb r0, [r1] - lsls r0, r0, #1 - adds r0, r0, r6 - movs r2, #0 - ldrsh r0, [r0, r2] - lsls r5, r5, #8 - asrs r5, r5, #0x10 - adds r1, r5, #0 - bl sub_0806F9EC - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r4, #0x80 - lsls r4, r4, #1 - adds r1, r4, #0 - bl sub_0806FA04 - ldr r1, [r7, #0x50] - lsls r0, r0, #0x10 - asrs r0, r0, #8 - ldr r1, [r1, #0x2c] - adds r1, r1, r0 - str r1, [r7, #0x2c] - mov r1, r8 - ldrb r0, [r1] - adds r0, #0x40 - lsls r0, r0, #1 - adds r0, r0, r6 - movs r2, #0 - ldrsh r0, [r0, r2] - adds r1, r5, #0 - bl sub_0806F9EC - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - adds r1, r4, #0 - bl sub_0806FA04 - ldr r1, [r7, #0x50] - lsls r0, r0, #0x10 - asrs r0, r0, #8 - ldr r1, [r1, #0x30] - subs r1, r1, r0 - str r1, [r7, #0x30] - b _0809A6F0 - .align 2, 0 -_0809A6E8: .4byte gUnk_080C9160 -_0809A6EC: - bl sub_0805E780 -_0809A6F0: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_0809A6F8 -sub_0809A6F8: @ 0x0809A6F8 - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - adds r5, r1, #0 - adds r6, r2, #0 - adds r7, r3, #0 - bl sub_0809A758 - cmp r0, #0 - beq _0809A754 - ldr r0, _0809A738 @ =gUnk_081238A0 - lsls r1, r6, #1 - adds r1, r1, r0 - ldrh r0, [r1] - cmp r0, #0 - beq _0809A750 - movs r0, #1 - ands r0, r7 - cmp r0, #0 - beq _0809A73C - ldrh r0, [r1] - lsrs r1, r4, #4 - movs r3, #0x3f - ands r1, r3 - lsrs r2, r5, #4 - ands r2, r3 - lsls r2, r2, #6 - orrs r1, r2 - movs r2, #1 - bl sub_0807B9B8 - b _0809A750 - .align 2, 0 -_0809A738: .4byte gUnk_081238A0 -_0809A73C: - lsrs r0, r4, #4 - movs r2, #0x3f - ands r0, r2 - lsrs r1, r5, #4 - ands r1, r2 - lsls r1, r1, #6 - orrs r0, r1 - movs r1, #1 - bl sub_0807BA8C -_0809A750: - movs r0, #1 - b _0809A756 -_0809A754: - movs r0, #0 -_0809A756: - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_0809A758 -sub_0809A758: @ 0x0809A758 - push {lr} - adds r2, r0, #0 - cmp r2, #0xf - bls _0809A770 - movs r0, #0xf8 - lsls r0, r0, #1 - cmp r2, r0 - bhi _0809A770 - cmp r1, #0xf0 - bhi _0809A770 - movs r0, #1 - b _0809A772 -_0809A770: - movs r0, #0 -_0809A772: - pop {pc} - - thumb_func_start sub_0809A774 -sub_0809A774: @ 0x0809A774 - push {lr} - ldr r2, _0809A788 @ =gUnk_08123C80 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0809A788: .4byte gUnk_08123C80 - - thumb_func_start sub_0809A78C -sub_0809A78C: @ 0x0809A78C - push {r4, r5, lr} - adds r4, r0, #0 - movs r3, #0 - movs r0, #1 - strb r0, [r4, #0xc] - movs r2, #0x80 - strb r2, [r4, #0xe] - strb r3, [r4, #0xf] - ldrb r0, [r4, #0x19] - movs r1, #3 - orrs r0, r1 - strb r0, [r4, #0x19] - adds r5, r4, #0 - adds r5, #0x80 - strh r2, [r5] - adds r0, r4, #0 - adds r0, #0x78 - strh r3, [r0] - ldrh r0, [r4, #0x2e] - subs r0, #4 - strh r0, [r4, #0x2e] - adds r1, r4, #0 - adds r1, #0x63 - movs r0, #0xfc - strb r0, [r1] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r0, [r2] - movs r1, #7 - orrs r0, r1 - strb r0, [r2] - ldrb r0, [r4, #0x19] - movs r1, #0xc0 - orrs r0, r1 - strb r0, [r4, #0x19] - ldrh r2, [r5] - adds r0, r4, #0 - adds r1, r2, #0 - bl sub_0805EC9C - adds r0, r4, #0 - bl UpdateSpriteOrderAndFlip - ldrb r1, [r4, #0xf] - adds r0, r4, #0 - bl LoadAnimation - adds r0, r4, #0 - bl sub_0809A958 - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_0809A7F4 -sub_0809A7F4: @ 0x0809A7F4 - push {r4, lr} - adds r4, r0, #0 - bl sub_080042B8 - adds r0, r4, #0 - bl sub_0809AA00 - ldrb r0, [r4, #0xe] - adds r2, r0, #0 - cmp r2, #0 - beq _0809A810 - subs r0, #1 - strb r0, [r4, #0xe] - b _0809A840 -_0809A810: - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0809A840 - ldrb r0, [r4, #0xf] - cmp r0, #3 - bne _0809A838 - movs r0, #2 - strb r0, [r4, #0xc] - movs r0, #0x5a - strb r0, [r4, #0xe] - strb r2, [r4, #0xf] - adds r0, r4, #0 - movs r1, #2 - bl LoadAnimation - b _0809A840 -_0809A838: - ldrb r1, [r4, #0xf] - adds r0, r4, #0 - bl LoadAnimation -_0809A840: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0809A844 -sub_0809A844: @ 0x0809A844 - push {r4, lr} - adds r4, r0, #0 - bl sub_080042B8 - adds r0, r4, #0 - bl sub_0809AA00 - ldrb r0, [r4, #0xf] - cmp r0, #1 - bhi _0809A85C - movs r1, #0 - b _0809A870 -_0809A85C: - ldrb r0, [r4, #0xe] - adds r2, r0, #0 - cmp r2, #0 - beq _0809A87C - subs r0, #1 - strb r0, [r4, #0xe] - ldr r0, _0809A878 @ =gUnk_03004040 - ldr r1, [r0] - cmp r1, #0 - bne _0809A8A0 -_0809A870: - movs r0, #1 - strb r0, [r4, #0xc] - strb r1, [r4, #0xe] - b _0809A8A0 - .align 2, 0 -_0809A878: .4byte gUnk_03004040 -_0809A87C: - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0809A8A0 - movs r0, #3 - strb r0, [r4, #0xc] - strb r2, [r4, #0xe] - adds r0, r4, #0 - movs r1, #3 - bl LoadAnimation - adds r0, r4, #0 - movs r1, #0x78 - bl sub_0805E4E0 -_0809A8A0: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0809A8A4 -sub_0809A8A4: @ 0x0809A8A4 - push {r4, lr} - adds r4, r0, #0 - adds r2, r4, #0 - adds r2, #0x5a - ldrb r1, [r2] - movs r0, #0xe0 - ands r0, r1 - cmp r0, #0x40 - beq _0809A8D4 - cmp r0, #0x40 - bgt _0809A8C0 - cmp r0, #0x20 - beq _0809A8E2 - b _0809A8FC -_0809A8C0: - cmp r0, #0x80 - bne _0809A8FC - adds r0, r4, #0 - adds r0, #0x59 - ldrb r0, [r0] - cmp r0, #0 - bne _0809A902 - bl sub_0805E780 - b _0809A902 -_0809A8D4: - movs r0, #0xbf - ands r0, r1 - strb r0, [r2] - adds r0, r4, #0 - bl sub_0809A9D4 - b _0809A902 -_0809A8E2: - ldrb r0, [r4, #0xe] - adds r0, #1 - strb r0, [r4, #0xe] - ldrb r1, [r2] - movs r0, #0xdf - ands r0, r1 - strb r0, [r2] - movs r0, #0xff - bl sub_08078A90 - movs r0, #0x2a - bl sub_0807CD04 -_0809A8FC: - adds r0, r4, #0 - bl sub_080042B8 -_0809A902: - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _0809A92A - adds r1, r4, #0 - adds r1, #0x80 - ldrh r0, [r1] - adds r0, #8 - strh r0, [r1] - ldr r0, [r4, #0x2c] - movs r2, #0x80 - lsls r2, r2, #3 - adds r0, r0, r2 - str r0, [r4, #0x2c] - ldrh r2, [r1] - adds r0, r4, #0 - adds r1, r2, #0 - movs r3, #0 - bl sub_0805EC9C - b _0809A94E -_0809A92A: - ldr r1, [r4, #0x54] - adds r0, r4, #0 - movs r2, #0 - bl sub_0809AA9C - ldr r1, _0809A950 @ =gLinkEntity - adds r0, r4, #0 - movs r2, #1 - bl sub_0809AA9C - ldr r0, _0809A954 @ =gUnk_03004040 - ldr r1, [r0] - cmp r1, #0 - beq _0809A94E - adds r0, r4, #0 - movs r2, #1 - bl sub_0809AA9C -_0809A94E: - pop {r4, pc} - .align 2, 0 -_0809A950: .4byte gLinkEntity -_0809A954: .4byte gUnk_03004040 - - thumb_func_start sub_0809A958 -sub_0809A958: @ 0x0809A958 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - movs r1, #0x2e - ldrsh r3, [r0, r1] - ldr r2, _0809A9CC @ =gRoomControls - ldrh r1, [r2, #6] - subs r1, #4 - subs r3, r3, r1 - asrs r3, r3, #4 - movs r4, #0x3f - ands r3, r4 - movs r5, #0x32 - ldrsh r1, [r0, r5] - ldrh r2, [r2, #8] - subs r1, r1, r2 - asrs r1, r1, #4 - ands r1, r4 - lsls r1, r1, #6 - orrs r3, r1 - adds r0, #0x82 - strh r3, [r0] - ldrh r0, [r0] - adds r5, r0, #0 - subs r5, #0x82 - ldr r6, _0809A9D0 @ =gUnk_08123C90 - movs r0, #0 - movs r1, #0x80 - lsls r1, r1, #7 - mov sb, r1 -_0809A996: - movs r4, #0 - adds r0, #1 - mov r8, r0 - adds r7, r5, #0 - adds r7, #0x40 -_0809A9A0: - ldrh r0, [r6] - mov r1, sb - ands r0, r1 - cmp r0, #0 - beq _0809A9B4 - ldrh r0, [r6] - adds r1, r5, r4 - movs r2, #1 - bl sub_0800015E -_0809A9B4: - adds r4, #1 - adds r6, #2 - cmp r4, #3 - ble _0809A9A0 - mov r0, r8 - adds r5, r7, #0 - cmp r0, #4 - ble _0809A996 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0809A9CC: .4byte gRoomControls -_0809A9D0: .4byte gUnk_08123C90 - - thumb_func_start sub_0809A9D4 -sub_0809A9D4: @ 0x0809A9D4 - push {r4, r5, r6, r7, lr} - adds r0, #0x82 - ldrh r0, [r0] - adds r5, r0, #0 - subs r5, #0x82 - movs r0, #0 -_0809A9E0: - movs r4, #0 - adds r7, r0, #1 - adds r6, r5, #0 - adds r6, #0x40 -_0809A9E8: - adds r0, r5, r4 - movs r1, #1 - bl sub_0807BA8C - adds r4, #1 - cmp r4, #3 - ble _0809A9E8 - adds r0, r7, #0 - adds r5, r6, #0 - cmp r0, #4 - ble _0809A9E0 - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_0809AA00 -sub_0809AA00: @ 0x0809AA00 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r5, r0, #0 - movs r0, #0 - strb r0, [r5, #0xf] - ldr r1, [r5, #0x54] - cmp r1, #0 - bne _0809AA50 - movs r0, #7 - movs r1, #0x38 - movs r2, #7 - bl sub_0805EB00 - adds r4, r0, #0 - adds r7, r5, #0 - adds r7, #0x78 - cmp r4, #0 - beq _0809AA5C - movs r0, #0x80 - lsls r0, r0, #4 - mov r8, r0 - ldr r0, _0809AA4C @ =0x0000FFFF - adds r6, r0, #0 -_0809AA30: - ldrh r0, [r4, #0xa] - ands r0, r6 - cmp r0, r8 - bne _0809AA3A - str r4, [r5, #0x54] -_0809AA3A: - adds r0, r4, #0 - movs r1, #7 - bl sub_0805EB64 - adds r4, r0, #0 - cmp r4, #0 - bne _0809AA30 - b _0809AA5C - .align 2, 0 -_0809AA4C: .4byte 0x0000FFFF -_0809AA50: - adds r0, r5, #0 - movs r2, #0 - bl sub_0809AA9C - adds r7, r5, #0 - adds r7, #0x78 -_0809AA5C: - ldr r4, _0809AA94 @ =gLinkEntity - adds r0, r5, #0 - adds r1, r4, #0 - movs r2, #0x20 - movs r3, #0x22 - bl sub_080041A0 - strh r0, [r7] - lsls r0, r0, #0x10 - cmp r0, #0 - beq _0809AA8E - adds r0, r5, #0 - adds r1, r4, #0 - movs r2, #1 - bl sub_0809AA9C - ldr r0, _0809AA98 @ =gUnk_03004040 - ldr r4, [r0] - cmp r4, #0 - beq _0809AA8E - adds r0, r5, #0 - adds r1, r4, #0 - movs r2, #1 - bl sub_0809AA9C -_0809AA8E: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0809AA94: .4byte gLinkEntity -_0809AA98: .4byte gUnk_03004040 - - thumb_func_start sub_0809AA9C -sub_0809AA9C: @ 0x0809AA9C - push {r4, lr} - adds r4, r0, #0 - adds r3, r1, #0 - adds r0, #0x5a - ldrb r0, [r0] - movs r1, #3 - ands r1, r0 - cmp r1, #1 - beq _0809AAB2 - cmp r1, #2 - bne _0809AABC -_0809AAB2: - adds r0, r3, #0 - adds r0, #0x63 - strb r1, [r0] - adds r2, r0, #0 - b _0809AAC6 -_0809AABC: - adds r1, r3, #0 - adds r1, #0x63 - movs r0, #0 - strb r0, [r1] - adds r2, r1, #0 -_0809AAC6: - movs r0, #0x2e - ldrsh r1, [r3, r0] - ldr r0, _0809AAE8 @ =gRoomControls - ldrh r0, [r0, #6] - movs r3, #0xad - lsls r3, r3, #1 - adds r0, r0, r3 - cmp r1, r0 - bgt _0809AAE4 - ldrb r0, [r4, #0xf] - adds r0, #1 - strb r0, [r4, #0xf] - ldrb r0, [r2] - adds r0, #1 - strb r0, [r2] -_0809AAE4: - pop {r4, pc} - .align 2, 0 -_0809AAE8: .4byte gRoomControls - - thumb_func_start sub_0809AAEC -sub_0809AAEC: @ 0x0809AAEC - push {lr} - ldr r2, _0809AB00 @ =gUnk_08123D28 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0809AB00: .4byte gUnk_08123D28 - - thumb_func_start sub_0809AB04 -sub_0809AB04: @ 0x0809AB04 - push {r4, r5, lr} - adds r5, r0, #0 - movs r0, #0x31 - bl sub_0807CBE4 - cmp r0, #0 - beq _0809AB22 - adds r0, r5, #0 - bl sub_0809AD68 - adds r0, r5, #0 - bl sub_0809AD8C - bl sub_0805E780 -_0809AB22: - movs r0, #0x36 - movs r1, #0 - bl CreateEnemy - adds r4, r0, #0 - cmp r4, #0 - beq _0809AB9C - adds r0, r5, #0 - adds r1, r4, #0 - bl CopyPosition - str r4, [r5, #0x54] - ldr r2, _0809AB68 @ =gUnk_030010A0 - adds r0, r2, #0 - adds r0, #0x38 - ldrb r1, [r0] - cmp r1, #0 - beq _0809AB70 - adds r0, #1 - ldrb r0, [r0] - cmp r0, #0 - beq _0809AB52 - bl sub_0805E780 -_0809AB52: - movs r0, #7 - strb r0, [r5, #0xc] - ldrb r1, [r5, #0x18] - subs r0, #0xb - ands r0, r1 - strb r0, [r5, #0x18] - ldr r0, _0809AB6C @ =gRoomControls - str r5, [r0, #0x30] - bl sub_080809D4 - b _0809AB9C - .align 2, 0 -_0809AB68: .4byte gUnk_030010A0 -_0809AB6C: .4byte gRoomControls -_0809AB70: - movs r0, #1 - strb r0, [r5, #0xc] - movs r0, #0x1e - strb r0, [r5, #0xe] - strb r1, [r5, #0x1e] - adds r2, r5, #0 - adds r2, #0x29 - ldrb r0, [r2] - movs r1, #7 - orrs r0, r1 - strb r0, [r2] - adds r1, r5, #0 - adds r1, #0x63 - movs r0, #0x20 - strb r0, [r1] - ldr r1, _0809ABA0 @ =gUnk_08012DD8 - adds r0, r5, #0 - bl sub_0807DAD0 - adds r1, r5, #0 - adds r1, #0x84 - str r0, [r1] -_0809AB9C: - pop {r4, r5, pc} - .align 2, 0 -_0809ABA0: .4byte gUnk_08012DD8 - - thumb_func_start sub_0809ABA4 -sub_0809ABA4: @ 0x0809ABA4 - push {lr} - movs r1, #0 - bl sub_0807DDAC - pop {pc} - .align 2, 0 - - thumb_func_start sub_0809ABB0 -sub_0809ABB0: @ 0x0809ABB0 - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xe] - subs r0, #1 - strb r0, [r2, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0809ABCE - movs r0, #3 - strb r0, [r2, #0xc] - movs r0, #0x78 - strb r0, [r2, #0xe] - ldr r1, _0809ABD0 @ =gRoomControls - ldr r0, [r2, #0x54] - str r0, [r1, #0x30] -_0809ABCE: - pop {pc} - .align 2, 0 -_0809ABD0: .4byte gRoomControls - - thumb_func_start sub_0809ABD4 -sub_0809ABD4: @ 0x0809ABD4 - push {lr} - adds r1, r0, #0 - ldrb r0, [r1, #0xe] - subs r0, #1 - strb r0, [r1, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0809ABF2 - movs r0, #4 - strb r0, [r1, #0xc] - movs r0, #0x5a - strb r0, [r1, #0xe] - ldr r1, [r1, #0x54] - movs r0, #1 - strb r0, [r1, #0xd] -_0809ABF2: - pop {pc} - - thumb_func_start sub_0809ABF4 -sub_0809ABF4: @ 0x0809ABF4 - push {lr} - adds r2, r0, #0 - ldr r0, [r2, #0x54] - ldrb r0, [r0, #0xd] - cmp r0, #2 - bls _0809AC36 - ldrb r0, [r2, #0xe] - subs r0, #1 - strb r0, [r2, #0xe] - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - bne _0809AC36 - movs r0, #5 - strb r0, [r2, #0xc] - movs r0, #8 - strb r0, [r2, #0xe] - strb r1, [r2, #0xf] - ldrb r1, [r2, #0x19] - subs r0, #0x15 - ands r0, r1 - movs r1, #4 - orrs r0, r1 - strb r0, [r2, #0x19] - ldr r1, _0809AC38 @ =gLCDControls - adds r2, r1, #0 - adds r2, #0x66 - movs r0, #0xf4 - lsls r0, r0, #4 - strh r0, [r2] - adds r1, #0x68 - movs r0, #0x10 - strh r0, [r1] -_0809AC36: - pop {pc} - .align 2, 0 -_0809AC38: .4byte gLCDControls - - thumb_func_start sub_0809AC3C -sub_0809AC3C: @ 0x0809AC3C - push {r4, r5, r6, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - movs r3, #0xff - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #0 - bne _0809AC9A - movs r0, #8 - strb r0, [r4, #0xe] - ldrb r2, [r4, #0xf] - adds r2, #1 - strb r2, [r4, #0xf] - adds r1, r2, #0 - ands r1, r3 - ldr r6, _0809AC9C @ =gLCDControls - lsls r3, r1, #8 - movs r0, #0x10 - subs r0, r0, r1 - movs r1, #0xff - ands r0, r1 - orrs r3, r0 - adds r0, r6, #0 - adds r0, #0x68 - strh r3, [r0] - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - cmp r2, #0xf - bls _0809AC9A - ldrb r1, [r4, #0x19] - movs r0, #0xd - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #0x19] - adds r0, r6, #0 - adds r0, #0x66 - strh r5, [r0] - movs r0, #6 - strb r0, [r4, #0xc] - movs r0, #0xf - strb r0, [r4, #0xe] - ldrb r1, [r4, #0x18] - subs r0, #0x13 - ands r0, r1 - strb r0, [r4, #0x18] -_0809AC9A: - pop {r4, r5, r6, pc} - .align 2, 0 -_0809AC9C: .4byte gLCDControls - - thumb_func_start sub_0809ACA0 -sub_0809ACA0: @ 0x0809ACA0 - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xe] - subs r0, #1 - strb r0, [r2, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0809ACC4 - ldr r1, [r2, #0x54] - movs r0, #6 - strb r0, [r1, #0xd] - ldr r0, _0809ACC8 @ =gUnk_030010A0 - adds r0, #0x38 - movs r1, #0xf1 - strb r1, [r0] - adds r0, r2, #0 - bl sub_0805E7BC -_0809ACC4: - pop {pc} - .align 2, 0 -_0809ACC8: .4byte gUnk_030010A0 - - thumb_func_start sub_0809ACCC -sub_0809ACCC: @ 0x0809ACCC - push {lr} - adds r2, r0, #0 - ldr r0, [r2, #0x54] - ldrb r0, [r0, #0xe] - cmp r0, #1 - bne _0809ACE4 - movs r0, #0 - movs r1, #8 - strb r1, [r2, #0xc] - strb r0, [r2, #0xd] - movs r0, #0xb4 - strb r0, [r2, #0xe] -_0809ACE4: - pop {pc} - .align 2, 0 - - thumb_func_start sub_0809ACE8 -sub_0809ACE8: @ 0x0809ACE8 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xd] - cmp r0, #1 - beq _0809AD1E - cmp r0, #2 - beq _0809AD3A - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0809AD58 - movs r0, #0x5a - strb r0, [r4, #0xe] - movs r0, #1 - strb r0, [r4, #0xd] - movs r0, #0x73 - bl PlaySFX - movs r0, #0x31 - bl sub_0807CCC8 - adds r0, r4, #0 - bl sub_0809AD8C - b _0809AD58 -_0809AD1E: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0809AD58 - movs r0, #0x78 - strb r0, [r4, #0xe] - movs r0, #2 - strb r0, [r4, #0xd] - adds r0, r4, #0 - bl sub_0809AD68 - b _0809AD58 -_0809AD3A: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0809AD58 - ldr r1, _0809AD5C @ =gRoomControls - ldr r0, _0809AD60 @ =gLinkEntity - str r0, [r1, #0x30] - ldr r0, _0809AD64 @ =gLinkState - adds r0, #0x8b - movs r1, #1 - strb r1, [r0] - bl sub_0805E780 -_0809AD58: - pop {r4, pc} - .align 2, 0 -_0809AD5C: .4byte gRoomControls -_0809AD60: .4byte gLinkEntity -_0809AD64: .4byte gLinkState - - thumb_func_start sub_0809AD68 -sub_0809AD68: @ 0x0809AD68 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xa] - bl sub_0804B128 - bl LoadRoomEntityList - movs r0, #0x17 - bl GetInventoryValue - cmp r0, #0 - beq _0809AD8A - ldrb r0, [r4, #0xb] - bl sub_0804B128 - bl LoadRoomEntityList -_0809AD8A: - pop {r4, pc} - - thumb_func_start sub_0809AD8C -sub_0809AD8C: @ 0x0809AD8C - push {lr} - movs r0, #0x4f - movs r1, #0x22 - movs r2, #0 - bl CreateObject - adds r2, r0, #0 - cmp r2, #0 - beq _0809ADAC - ldr r0, _0809ADB0 @ =gRoomControls - ldrh r1, [r0, #6] - adds r1, #0xb8 - strh r1, [r2, #0x2e] - ldrh r0, [r0, #8] - adds r0, #8 - strh r0, [r2, #0x32] -_0809ADAC: - pop {pc} - .align 2, 0 -_0809ADB0: .4byte gRoomControls - - thumb_func_start sub_0809ADB4 -sub_0809ADB4: @ 0x0809ADB4 - push {lr} - ldr r2, _0809ADC8 @ =gUnk_08123D4C - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0809ADC8: .4byte gUnk_08123D4C - - thumb_func_start sub_0809ADCC -sub_0809ADCC: @ 0x0809ADCC - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - movs r0, #0x2e - ldrsh r1, [r4, r0] - ldr r2, _0809AE14 @ =gRoomControls - ldrh r0, [r2, #6] - subs r1, r1, r0 - asrs r1, r1, #4 - movs r3, #0x3f - ands r1, r3 - movs r5, #0x32 - ldrsh r0, [r4, r5] - ldrh r2, [r2, #8] - subs r0, r0, r2 - asrs r0, r0, #4 - ands r0, r3 - lsls r0, r0, #6 - orrs r1, r0 - adds r5, r4, #0 - adds r5, #0x80 - strh r1, [r5] - adds r0, r4, #0 - adds r0, #0x38 - ldrb r7, [r0] - adds r0, r4, #0 - bl UpdateSpriteOrderAndFlip - ldrb r0, [r4, #0xa] - cmp r0, #1 - beq _0809AEBC - cmp r0, #1 - bgt _0809AE18 - cmp r0, #0 - beq _0809AE1E - b _0809AF46 - .align 2, 0 -_0809AE14: .4byte gRoomControls -_0809AE18: - cmp r0, #2 - beq _0809AF10 - b _0809AF46 -_0809AE1E: - movs r0, #2 - strb r0, [r4, #0xc] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - subs r0, #0xa - ands r0, r1 - movs r1, #6 - orrs r0, r1 - strb r0, [r2] - ldrh r5, [r5] - subs r6, r5, #1 - ldr r4, _0809AEB8 @ =0x00004022 - adds r0, r4, #0 - adds r1, r6, #0 - adds r2, r7, #0 - bl sub_0800015E - adds r0, r4, #0 - adds r1, r5, #0 - adds r2, r7, #0 - bl sub_0800015E - adds r1, r5, #1 - adds r0, r4, #0 - adds r2, r7, #0 - bl sub_0800015E - adds r1, r5, #0 - adds r1, #0x3f - adds r0, r4, #0 - adds r2, r7, #0 - bl sub_0800015E - adds r1, r5, #0 - adds r1, #0x40 - adds r0, r4, #0 - adds r2, r7, #0 - bl sub_0800015E - adds r1, r5, #0 - adds r1, #0x41 - adds r0, r4, #0 - adds r2, r7, #0 - bl sub_0800015E - adds r4, #0x1b - adds r1, r5, #0 - subs r1, #0x41 - adds r0, r4, #0 - adds r2, r7, #0 - bl sub_0800015E - adds r1, r5, #0 - subs r1, #0x40 - adds r0, r4, #0 - adds r2, r7, #0 - bl sub_0800015E - subs r4, #0x17 - adds r1, r5, #0 - subs r1, #0x3f - adds r0, r4, #0 - adds r2, r7, #0 - bl sub_0800015E - adds r1, r5, #0 - subs r1, #0x81 - adds r0, r4, #0 - adds r2, r7, #0 - bl sub_0800015E - adds r1, r5, #0 - subs r1, #0x80 - adds r0, r4, #0 - b _0809AF04 - .align 2, 0 -_0809AEB8: .4byte 0x00004022 -_0809AEBC: - strb r0, [r4, #0xc] - ldrh r6, [r5] - ldr r4, _0809AEF4 @ =0x00004022 - adds r0, r4, #0 - adds r1, r6, #0 - adds r2, r7, #0 - bl sub_0800015E - adds r1, r6, #0 - adds r1, #0x40 - adds r0, r4, #0 - adds r2, r7, #0 - bl sub_0800015E - ldr r0, _0809AEF8 @ =0x00004025 - adds r1, r6, #0 - adds r1, #0x41 - adds r2, r7, #0 - bl sub_0800015E - movs r0, #0x4f - bl sub_0807CBD0 - cmp r0, #0 - bne _0809AF00 - ldr r0, _0809AEFC @ =0x0000402F - b _0809AF02 - .align 2, 0 -_0809AEF4: .4byte 0x00004022 -_0809AEF8: .4byte 0x00004025 -_0809AEFC: .4byte 0x0000402F -_0809AF00: - ldr r0, _0809AF0C @ =0x0000402D -_0809AF02: - adds r1, r6, #1 -_0809AF04: - adds r2, r7, #0 - bl sub_0800015E - b _0809AF46 - .align 2, 0 -_0809AF0C: .4byte 0x0000402D -_0809AF10: - movs r0, #1 - strb r0, [r4, #0xc] - ldrh r5, [r5] - adds r6, r5, #0 - subs r6, #0x41 - ldr r4, _0809AF48 @ =0x00004022 - adds r0, r4, #0 - adds r1, r6, #0 - adds r2, r7, #0 - bl sub_0800015E - adds r1, r5, #0 - subs r1, #0x40 - adds r0, r4, #0 - adds r2, r7, #0 - bl sub_0800015E - subs r1, r5, #1 - adds r0, r4, #0 - adds r2, r7, #0 - bl sub_0800015E - adds r0, r4, #0 - adds r1, r5, #0 - adds r2, r7, #0 - bl sub_0800015E -_0809AF46: - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0809AF48: .4byte 0x00004022 - - thumb_func_start nullsub_535 -nullsub_535: @ 0x0809AF4C - bx lr - .align 2, 0 - - thumb_func_start sub_0809AF50 -sub_0809AF50: @ 0x0809AF50 - push {lr} - bl nullsub_2 - pop {pc} - - thumb_func_start nullsub_2 -nullsub_2: @ 0x0809AF58 - bx lr - .align 2, 0 - - thumb_func_start sub_0809AF5C -sub_0809AF5C: @ 0x0809AF5C - push {lr} - ldr r2, _0809AF70 @ =gUnk_08123D58 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0809AF70: .4byte gUnk_08123D58 - - thumb_func_start sub_0809AF74 -sub_0809AF74: @ 0x0809AF74 - push {r4, r5, r6, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xa] - strb r0, [r4, #0x1e] - movs r0, #0x2e - ldrsh r2, [r4, r0] - ldr r1, _0809AFBC @ =gRoomControls - ldrh r0, [r1, #6] - subs r2, r2, r0 - asrs r2, r2, #4 - movs r3, #0x3f - ands r2, r3 - movs r5, #0x32 - ldrsh r0, [r4, r5] - ldrh r1, [r1, #8] - subs r0, r0, r1 - asrs r0, r0, #4 - ands r0, r3 - lsls r0, r0, #6 - orrs r2, r0 - adds r0, r4, #0 - adds r0, #0x80 - movs r6, #0 - strh r2, [r0] - ldrb r0, [r4, #0xa] - cmp r0, #0 - beq _0809AFC4 - movs r1, #1 - strb r1, [r4, #0xc] - adds r0, r4, #0 - adds r0, #0x84 - ldrb r0, [r0] - cmp r0, #0 - bne _0809AFC0 - strb r6, [r4, #0xd] - b _0809B02C - .align 2, 0 -_0809AFBC: .4byte gRoomControls -_0809AFC0: - strb r1, [r4, #0xd] - b _0809B02C -_0809AFC4: - movs r0, #3 - strb r0, [r4, #0xc] - movs r0, #4 - strb r0, [r4, #0xd] - adds r0, r4, #0 - adds r0, #0x84 - strb r6, [r0] - adds r0, r4, #0 - bl UpdateSpriteOrderAndFlip - movs r0, #0x8b - movs r1, #1 - movs r2, #0 - bl CreateObject - adds r5, r0, #0 - cmp r5, #0 - beq _0809B026 - str r4, [r5, #0x50] - str r5, [r4, #0x54] - adds r0, r4, #0 - adds r0, #0x86 - ldrh r0, [r0] - bl sub_0807CBE4 - cmp r0, #0 - bne _0809B010 - movs r3, #0x80 - lsls r3, r3, #0xd - adds r0, r4, #0 - adds r1, r5, #0 - adds r2, r3, #0 - bl PositionRelative - adds r0, r5, #0 - adds r0, #0x84 - strb r6, [r0] - b _0809B026 -_0809B010: - movs r3, #0x80 - lsls r3, r3, #0xd - adds r0, r4, #0 - adds r1, r5, #0 - movs r2, #0 - bl PositionRelative - adds r1, r5, #0 - adds r1, #0x84 - movs r0, #1 - strb r0, [r1] -_0809B026: - adds r0, r4, #0 - bl sub_0809B334 -_0809B02C: - adds r0, r4, #0 - bl sub_0809B0B0 - pop {r4, r5, r6, pc} - - thumb_func_start sub_0809B034 -sub_0809B034: @ 0x0809B034 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x82 - ldrh r0, [r0] - adds r1, r4, #0 - adds r1, #0x38 - ldrb r1, [r1] - bl sub_080002B0 - adds r0, r4, #0 - bl sub_0809B234 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0809B050 -sub_0809B050: @ 0x0809B050 - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_0806F69C - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0809B0A2 - movs r0, #1 - strb r0, [r4, #0xc] - movs r0, #0x2e - ldrsh r1, [r4, r0] - ldr r2, _0809B0A4 @ =gRoomControls - ldrh r0, [r2, #6] - subs r1, r1, r0 - asrs r1, r1, #4 - movs r3, #0x3f - ands r1, r3 - movs r5, #0x32 - ldrsh r0, [r4, r5] - ldrh r2, [r2, #8] - subs r0, r0, r2 - asrs r0, r0, #4 - ands r0, r3 - lsls r0, r0, #6 - orrs r1, r0 - adds r0, r4, #0 - adds r0, #0x80 - strh r1, [r0] - movs r0, #0 - bl sub_08078A90 - adds r0, r4, #0 - bl sub_0809B0B0 - movs r0, #0x86 - lsls r0, r0, #1 - bl sub_08004488 -_0809B0A2: - pop {r4, r5, pc} - .align 2, 0 -_0809B0A4: .4byte gRoomControls - - thumb_func_start sub_0809B0A8 -sub_0809B0A8: @ 0x0809B0A8 - push {lr} - bl sub_0809B234 - pop {pc} - - thumb_func_start sub_0809B0B0 -sub_0809B0B0: @ 0x0809B0B0 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - mov r8, r0 - adds r0, #0x80 - ldrh r0, [r0] - subs r6, r0, #1 - mov r0, r8 - adds r0, #0x38 - ldrb r7, [r0] - mov r1, r8 - ldrb r0, [r1, #0xd] - cmp r0, #4 - bls _0809B0CE - b _0809B228 -_0809B0CE: - lsls r0, r0, #2 - ldr r1, _0809B0D8 @ =_0809B0DC - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0809B0D8: .4byte _0809B0DC -_0809B0DC: @ jump table - .4byte _0809B0F0 @ case 0 - .4byte _0809B130 @ case 1 - .4byte _0809B178 @ case 2 - .4byte _0809B1C0 @ case 3 - .4byte _0809B208 @ case 4 -_0809B0F0: - mov r1, r8 - adds r1, #0x84 - movs r0, #0 - strb r0, [r1] - adds r5, r6, #2 - mov r0, r8 - adds r0, #0x82 - strh r5, [r0] - ldr r0, _0809B128 @ =0x00004082 - subs r1, r6, #1 - adds r2, r7, #0 - bl sub_0800015E - ldr r4, _0809B12C @ =0x00004022 - adds r0, r4, #0 - adds r1, r6, #0 - adds r2, r7, #0 - bl sub_0800015E - adds r1, r6, #1 - adds r0, r4, #0 - adds r2, r7, #0 - bl sub_0800015E - adds r0, r4, #0 - adds r1, r5, #0 - b _0809B162 - .align 2, 0 -_0809B128: .4byte 0x00004082 -_0809B12C: .4byte 0x00004022 -_0809B130: - mov r1, r8 - adds r1, #0x84 - movs r0, #1 - strb r0, [r1] - mov r0, r8 - adds r0, #0x82 - strh r6, [r0] - ldr r0, _0809B16C @ =0x0000405F - adds r1, r6, #0 - adds r2, r7, #0 - bl sub_0800015E - ldr r4, _0809B170 @ =0x00004022 - adds r1, r6, #1 - adds r0, r4, #0 - adds r2, r7, #0 - bl sub_0800015E - adds r1, r6, #2 - adds r0, r4, #0 - adds r2, r7, #0 - bl sub_0800015E - ldr r0, _0809B174 @ =0x00004082 - adds r1, r6, #3 -_0809B162: - adds r2, r7, #0 - bl sub_0800015E - b _0809B228 - .align 2, 0 -_0809B16C: .4byte 0x0000405F -_0809B170: .4byte 0x00004022 -_0809B174: .4byte 0x00004082 -_0809B178: - mov r1, r8 - adds r1, #0x84 - movs r0, #1 - strb r0, [r1] - mov r0, r8 - adds r0, #0x82 - strh r6, [r0] - ldr r0, _0809B1B4 @ =0x00004082 - adds r1, r6, #3 - adds r2, r7, #0 - bl sub_0800015E - ldr r0, _0809B1B8 @ =0x00004022 - adds r1, r6, #2 - adds r2, r7, #0 - bl sub_0800015E - ldr r0, _0809B1BC @ =0x0000405F - adds r1, r6, #0 - adds r2, r7, #0 - bl sub_0800015E - mov r1, r8 - ldr r0, [r1, #0x50] - adds r0, #0x86 - ldrh r0, [r0] - bl sub_0807CCC8 - b _0809B228 - .align 2, 0 -_0809B1B4: .4byte 0x00004082 -_0809B1B8: .4byte 0x00004022 -_0809B1BC: .4byte 0x0000405F -_0809B1C0: - mov r1, r8 - adds r1, #0x84 - movs r0, #0 - strb r0, [r1] - adds r4, r6, #2 - mov r0, r8 - adds r0, #0x82 - strh r4, [r0] - ldr r0, _0809B1FC @ =0x00004082 - subs r1, r6, #1 - adds r2, r7, #0 - bl sub_0800015E - ldr r0, _0809B200 @ =0x00004022 - adds r1, r6, #0 - adds r2, r7, #0 - bl sub_0800015E - ldr r0, _0809B204 @ =0x0000405F - adds r1, r4, #0 - adds r2, r7, #0 - bl sub_0800015E - mov r1, r8 - ldr r0, [r1, #0x50] - adds r0, #0x86 - ldrh r0, [r0] - bl sub_0807CD48 - b _0809B228 - .align 2, 0 -_0809B1FC: .4byte 0x00004082 -_0809B200: .4byte 0x00004022 -_0809B204: .4byte 0x0000405F -_0809B208: - ldr r4, _0809B230 @ =0x00004022 - adds r0, r4, #0 - adds r1, r6, #0 - adds r2, r7, #0 - bl sub_0800015E - adds r1, r6, #1 - adds r0, r4, #0 - adds r2, r7, #0 - bl sub_0800015E - adds r1, r6, #2 - adds r0, r4, #0 - adds r2, r7, #0 - bl sub_0800015E -_0809B228: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0809B230: .4byte 0x00004022 - - thumb_func_start sub_0809B234 -sub_0809B234: @ 0x0809B234 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xa] - cmp r0, #0 - beq _0809B26A - ldr r2, [r4, #0x50] - ldrb r1, [r2, #0x19] - lsrs r1, r1, #6 - lsls r1, r1, #6 - ldrb r3, [r4, #0x19] - movs r0, #0x3f - ands r0, r3 - orrs r0, r1 - strb r0, [r4, #0x19] - adds r2, #0x29 - ldrb r1, [r2] - lsls r1, r1, #0x1d - adds r3, r4, #0 - adds r3, #0x29 - lsrs r1, r1, #0x1d - ldrb r2, [r3] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - b _0809B270 -_0809B26A: - adds r0, r4, #0 - bl sub_0809B274 -_0809B270: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0809B274 -sub_0809B274: @ 0x0809B274 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r3, _0809B290 @ =gLinkEntity - adds r2, r4, #0 - adds r2, #0x84 - ldrb r0, [r2] - cmp r0, #1 - beq _0809B2BA - cmp r0, #1 - bgt _0809B294 - cmp r0, #0 - beq _0809B29A - b _0809B332 - .align 2, 0 -_0809B290: .4byte gLinkEntity -_0809B294: - cmp r0, #2 - beq _0809B30C - b _0809B332 -_0809B29A: - movs r1, #0x32 - ldrsh r0, [r3, r1] - adds r0, #0x14 - movs r3, #0x32 - ldrsh r1, [r4, r3] - cmp r0, r1 - bge _0809B332 - movs r0, #1 - strb r0, [r2] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - subs r0, #9 - ands r0, r1 - movs r1, #5 - b _0809B306 -_0809B2BA: - movs r5, #0x2e - ldrsh r0, [r3, r5] - adds r0, #0x1c - movs r5, #0x2e - ldrsh r1, [r4, r5] - cmp r0, r1 - ble _0809B2E8 - movs r0, #2 - strb r0, [r2] - ldr r0, _0809B2E4 @ =0x00004022 - adds r1, r4, #0 - adds r1, #0x80 - ldrh r1, [r1] - adds r1, #2 - movs r2, #1 - bl sub_0800015E - ldr r0, [r4, #0x54] - bl sub_0809B358 - b _0809B332 - .align 2, 0 -_0809B2E4: .4byte 0x00004022 -_0809B2E8: - movs r1, #0x32 - ldrsh r0, [r3, r1] - adds r0, #0x10 - movs r3, #0x32 - ldrsh r1, [r4, r3] - cmp r0, r1 - ble _0809B332 - movs r0, #0 - strb r0, [r2] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - subs r0, #8 - ands r0, r1 - movs r1, #4 -_0809B306: - orrs r0, r1 - strb r0, [r2] - b _0809B332 -_0809B30C: - movs r5, #0x2e - ldrsh r0, [r3, r5] - adds r0, #0x20 - movs r3, #0x2e - ldrsh r1, [r4, r3] - cmp r0, r1 - bge _0809B332 - movs r0, #1 - strb r0, [r2] - adds r0, r4, #0 - adds r0, #0x80 - ldrh r0, [r0] - adds r0, #2 - movs r1, #1 - bl sub_0807BA8C - ldr r0, [r4, #0x54] - bl sub_0809B38C -_0809B332: - pop {r4, r5, pc} - - thumb_func_start sub_0809B334 -sub_0809B334: @ 0x0809B334 - push {r4, r5, lr} - adds r0, #0x80 - ldrh r0, [r0] - adds r4, r0, #0 - subs r4, #0x81 - movs r5, #2 -_0809B340: - ldr r0, _0809B354 @ =0x00004026 - adds r1, r4, #0 - movs r2, #1 - bl sub_0800015E - subs r5, #1 - adds r4, #1 - cmp r5, #0 - bge _0809B340 - pop {r4, r5, pc} - .align 2, 0 -_0809B354: .4byte 0x00004026 - - thumb_func_start sub_0809B358 -sub_0809B358: @ 0x0809B358 - push {r4, r5, r6, lr} - adds r1, r0, #0 - adds r1, #0x84 - ldrb r1, [r1] - lsls r1, r1, #1 - ldr r2, _0809B388 @ =gUnk_08123D68 - adds r5, r1, r2 - adds r0, #0x80 - ldrh r0, [r0] - adds r4, r0, #0 - subs r4, #0x82 - movs r6, #4 -_0809B370: - ldrh r0, [r5] - adds r1, r4, #0 - movs r2, #1 - bl sub_0800015E - subs r6, #1 - adds r4, #1 - adds r5, #4 - cmp r6, #0 - bge _0809B370 - pop {r4, r5, r6, pc} - .align 2, 0 -_0809B388: .4byte gUnk_08123D68 - - thumb_func_start sub_0809B38C -sub_0809B38C: @ 0x0809B38C - push {r4, r5, lr} - adds r0, #0x80 - ldrh r0, [r0] - adds r4, r0, #0 - subs r4, #0x82 - movs r5, #4 -_0809B398: - adds r0, r4, #0 - movs r1, #1 - bl sub_0807BA8C - subs r5, #1 - adds r4, #1 - cmp r5, #0 - bge _0809B398 - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_0809B3AC -sub_0809B3AC: @ 0x0809B3AC - push {lr} - ldr r2, _0809B3C0 @ =gUnk_08123D7C - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0809B3C0: .4byte gUnk_08123D7C - - thumb_func_start sub_0809B3C4 -sub_0809B3C4: @ 0x0809B3C4 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xa] - adds r0, #0x39 - bl GetInventoryValue - adds r5, r0, #0 - ldrb r0, [r4, #0xb] - cmp r0, #3 - beq _0809B3E2 - cmp r5, #0 - beq _0809B3FE - bl sub_0805E780 - b _0809B3FE -_0809B3E2: - movs r0, #0x73 - bl sub_0807CBD0 - cmp r0, #0 - beq _0809B3F0 - bl sub_0805E780 -_0809B3F0: - cmp r5, #2 - beq _0809B3FE - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #0x18] -_0809B3FE: - adds r1, r4, #0 - adds r1, #0x63 - movs r0, #3 - strb r0, [r1] - adds r0, r4, #0 - adds r0, #0x86 - ldrh r0, [r0] - bl sub_0807CBE4 - cmp r0, #0 - beq _0809B424 - ldrb r0, [r4, #0xb] - cmp r0, #0 - bne _0809B420 - ldrh r0, [r4, #0x32] - adds r0, #0x30 - strh r0, [r4, #0x32] -_0809B420: - movs r0, #2 - strb r0, [r4, #0xb] -_0809B424: - adds r0, r4, #0 - bl UpdateSpriteOrderAndFlip - ldrb r1, [r4, #0xa] - adds r1, #0x39 - adds r0, r4, #0 - bl LoadAnimation - ldrb r1, [r4, #0xb] - cmp r1, #1 - beq _0809B46C - cmp r1, #1 - bgt _0809B444 - cmp r1, #0 - beq _0809B44E - b _0809B4A6 -_0809B444: - cmp r1, #2 - beq _0809B488 - cmp r1, #3 - beq _0809B48E - b _0809B4A6 -_0809B44E: - movs r0, #1 - strb r0, [r4, #0xc] - movs r0, #0x16 - strb r0, [r4, #0xe] - movs r0, #2 - strb r0, [r4, #0xf] - adds r0, r4, #0 - adds r0, #0x80 - strb r1, [r0] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - b _0809B49E -_0809B46C: - movs r0, #3 - strb r0, [r4, #0xc] - ldr r0, _0809B484 @ =gRoomControls - ldrh r0, [r0, #0xc] - subs r0, #0x10 - ldrh r1, [r4, #0x32] - subs r1, r1, r0 - ldrh r0, [r4, #0x36] - subs r0, r0, r1 - strh r0, [r4, #0x36] - b _0809B4A6 - .align 2, 0 -_0809B484: .4byte gRoomControls -_0809B488: - movs r0, #4 - strb r0, [r4, #0xc] - b _0809B4A6 -_0809B48E: - movs r1, #0 - movs r0, #5 - strb r0, [r4, #0xc] - strb r1, [r4, #0xd] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - subs r0, #0xd -_0809B49E: - ands r0, r1 - movs r1, #3 - orrs r0, r1 - strb r0, [r2] -_0809B4A6: - pop {r4, r5, pc} - - thumb_func_start sub_0809B4A8 -sub_0809B4A8: @ 0x0809B4A8 - push {r4, lr} - adds r4, r0, #0 - bl sub_0800445C - adds r1, r4, #0 - adds r1, #0x80 - ldrb r0, [r1] - cmp r0, #0 - beq _0809B4C0 - subs r0, #1 - strb r0, [r1] - b _0809B520 -_0809B4C0: - adds r0, r4, #0 - bl sub_0809B688 - cmp r0, #0 - beq _0809B51C - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - cmp r3, #0 - bne _0809B520 - movs r0, #2 - strb r0, [r4, #0xc] - movs r0, #0x1e - strb r0, [r4, #0xe] - movs r0, #0x40 - strh r0, [r4, #0x24] - movs r0, #0x10 - strb r0, [r4, #0x15] - ldr r2, _0809B510 @ =gLinkState - movs r0, #0x9e - strb r0, [r2, #6] - movs r0, #5 - strb r0, [r2, #0xc] - ldr r0, [r2, #0x30] - movs r1, #1 - orrs r0, r1 - str r0, [r2, #0x30] - ldr r1, _0809B514 @ =gLinkEntity - strh r3, [r1, #0x2c] - strh r3, [r1, #0x30] - ldrb r0, [r1, #0x14] - lsls r0, r0, #2 - strb r0, [r1, #0x15] - ldr r0, _0809B518 @ =0x0000010F - bl sub_08004488 - b _0809B520 - .align 2, 0 -_0809B510: .4byte gLinkState -_0809B514: .4byte gLinkEntity -_0809B518: .4byte 0x0000010F -_0809B51C: - movs r0, #0x16 - strb r0, [r4, #0xe] -_0809B520: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0809B524 -sub_0809B524: @ 0x0809B524 - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xe] - subs r0, #1 - strb r0, [r2, #0xe] - movs r1, #0xff - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0809B564 - ldrb r0, [r2, #0xf] - subs r0, #1 - strb r0, [r2, #0xf] - ands r0, r1 - cmp r0, #0 - bne _0809B554 - movs r0, #3 - strb r0, [r2, #0xc] - ldrh r0, [r2, #0x32] - adds r0, #0x20 - strh r0, [r2, #0x32] - ldrh r0, [r2, #0x36] - subs r0, #0x20 - strh r0, [r2, #0x36] - b _0809B564 -_0809B554: - movs r0, #1 - strb r0, [r2, #0xc] - movs r0, #0x16 - strb r0, [r2, #0xe] - adds r1, r2, #0 - adds r1, #0x80 - movs r0, #0x18 - strb r0, [r1] -_0809B564: - adds r0, r2, #0 - bl sub_0806F69C - pop {pc} - - thumb_func_start sub_0809B56C -sub_0809B56C: @ 0x0809B56C - push {r4, lr} - adds r4, r0, #0 - movs r1, #0xa0 - lsls r1, r1, #6 - bl sub_080044EC - cmp r0, #1 - bne _0809B5B0 - movs r2, #4 - movs r0, #4 - strb r0, [r4, #0xc] - adds r3, r4, #0 - adds r3, #0x29 - ldrb r1, [r3] - subs r0, #0xc - ands r0, r1 - orrs r0, r2 - strb r0, [r3] - adds r0, r4, #0 - adds r0, #0x86 - ldrh r0, [r0] - bl sub_0807CCC8 - adds r0, r4, #0 - movs r1, #2 - movs r2, #0 - bl CreateFX - adds r1, r0, #0 - cmp r1, #0 - beq _0809B5B0 - adds r0, r4, #0 - bl sub_0806FAB0 -_0809B5B0: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0809B5B4 -sub_0809B5B4: @ 0x0809B5B4 - push {r4, lr} - adds r4, r0, #0 - ldr r0, _0809B5CC @ =gLinkState - ldr r0, [r0, #0x30] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0809B5D0 - adds r0, r4, #0 - bl sub_0800445C - b _0809B5EA - .align 2, 0 -_0809B5CC: .4byte gLinkState -_0809B5D0: - adds r0, r4, #0 - bl sub_08017850 - cmp r0, #0 - beq _0809B5EA - ldrb r0, [r4, #0xa] - adds r0, #0x39 - movs r1, #0 - movs r2, #0 - bl sub_080A7C00 - bl sub_0805E780 -_0809B5EA: - pop {r4, pc} - - thumb_func_start sub_0809B5EC -sub_0809B5EC: @ 0x0809B5EC - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r1, [r4, #0x18] - lsls r0, r1, #0x1e - lsrs r5, r0, #0x1e - cmp r5, #1 - bne _0809B646 - ldrb r0, [r4, #0xd] - cmp r0, #0 - beq _0809B606 - cmp r0, #1 - beq _0809B630 - b _0809B682 -_0809B606: - movs r0, #7 - movs r1, #0x1a - movs r2, #7 - bl sub_0805EB00 - adds r2, r0, #0 - cmp r2, #0 - beq _0809B682 - movs r0, #0x2e - ldrsh r1, [r2, r0] - movs r3, #0x2e - ldrsh r0, [r4, r3] - cmp r1, r0 - blt _0809B682 - ldrb r0, [r2, #0x14] - cmp r0, #4 - bne _0809B682 - str r2, [r4, #0x50] - strb r5, [r4, #0xd] - adds r0, r2, #0 - b _0809B63E -_0809B630: - ldr r1, [r4, #0x50] - cmp r1, #0 - beq _0809B650 - ldr r0, [r1, #4] - cmp r0, #0 - beq _0809B650 - adds r0, r1, #0 -_0809B63E: - adds r1, r4, #0 - bl sub_0809B6B0 - b _0809B682 -_0809B646: - ldrb r0, [r4, #0xd] - cmp r0, #0 - beq _0809B656 - cmp r0, #1 - beq _0809B668 -_0809B650: - bl sub_0805E780 - b _0809B682 -_0809B656: - ldrb r0, [r4, #0xa] - adds r0, #0x39 - bl GetInventoryValue - cmp r0, #2 - bne _0809B682 - movs r0, #1 - strb r0, [r4, #0xd] - b _0809B682 -_0809B668: - ldr r0, _0809B684 @ =gTextBox - ldrb r0, [r0] - movs r2, #0x7f - ands r2, r0 - cmp r2, #0 - bne _0809B682 - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] - strb r2, [r4, #0xd] -_0809B682: - pop {r4, r5, pc} - .align 2, 0 -_0809B684: .4byte gTextBox - - thumb_func_start sub_0809B688 -sub_0809B688: @ 0x0809B688 - push {lr} - ldr r1, _0809B6A8 @ =gLinkEntity - movs r2, #6 - movs r3, #0xc - bl sub_080041A0 - adds r1, r0, #0 - cmp r1, #1 - bne _0809B6A4 - ldr r0, _0809B6AC @ =gLinkState - ldrb r0, [r0, #0xd] - cmp r0, #0x10 - beq _0809B6A4 - movs r1, #0 -_0809B6A4: - adds r0, r1, #0 - pop {pc} - .align 2, 0 -_0809B6A8: .4byte gLinkEntity -_0809B6AC: .4byte gLinkState - - thumb_func_start sub_0809B6B0 -sub_0809B6B0: @ 0x0809B6B0 - push {r4, lr} - adds r4, r1, #0 - ldr r2, _0809B6EC @ =gUnk_08123D94 - ldrb r1, [r0, #0x14] - lsrs r1, r1, #1 - adds r1, r1, r2 - movs r3, #0 - ldrsb r3, [r1, r3] - lsls r3, r3, #0x10 - adds r1, r4, #0 - movs r2, #0 - bl PositionRelative - ldrb r0, [r4, #0xa] - lsls r0, r0, #2 - rsbs r0, r0, #0 - strh r0, [r4, #0x36] - ldrb r0, [r4, #0xa] - movs r1, #3 - subs r1, r1, r0 - adds r4, #0x29 - movs r0, #7 - ands r1, r0 - ldrb r2, [r4] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4] - pop {r4, pc} - .align 2, 0 -_0809B6EC: .4byte gUnk_08123D94 - - thumb_func_start sub_0809B6F0 -sub_0809B6F0: @ 0x0809B6F0 - push {lr} - ldr r2, _0809B704 @ =gUnk_08123D98 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0809B704: .4byte gUnk_08123D98 - - thumb_func_start sub_0809B708 -sub_0809B708: @ 0x0809B708 - push {r4, r5, r6, lr} - adds r6, r0, #0 - movs r2, #1 - movs r0, #1 - strb r0, [r6, #0xc] - ldrb r1, [r6, #0x18] - subs r0, #5 - ands r0, r1 - orrs r0, r2 - strb r0, [r6, #0x18] - movs r0, #0x80 - strh r0, [r6, #0x24] - adds r0, r6, #0 - adds r0, #0x86 - ldrh r0, [r0] - bl sub_0807CBE4 - cmp r0, #0 - beq _0809B73A - adds r0, r6, #0 - bl sub_0809B7DC - bl sub_0805E780 - b _0809B78A -_0809B73A: - ldr r0, _0809B794 @ =0x0000030B - movs r2, #0x2e - ldrsh r1, [r6, r2] - ldr r5, _0809B798 @ =gRoomControls - ldrh r2, [r5, #6] - subs r1, r1, r2 - asrs r1, r1, #4 - movs r4, #0x3f - ands r1, r4 - movs r3, #0x32 - ldrsh r2, [r6, r3] - ldrh r3, [r5, #8] - subs r2, r2, r3 - asrs r2, r2, #4 - ands r2, r4 - lsls r2, r2, #6 - orrs r1, r2 - movs r2, #2 - bl sub_0807B7D8 - ldr r0, _0809B79C @ =0x00004061 - movs r2, #0x2e - ldrsh r1, [r6, r2] - ldrh r2, [r5, #6] - subs r1, r1, r2 - asrs r1, r1, #4 - ands r1, r4 - movs r3, #0x32 - ldrsh r2, [r6, r3] - ldrh r3, [r5, #8] - subs r2, r2, r3 - asrs r2, r2, #4 - ands r2, r4 - lsls r2, r2, #6 - orrs r1, r2 - adds r2, r6, #0 - adds r2, #0x38 - ldrb r2, [r2] - bl sub_0800015E -_0809B78A: - adds r0, r6, #0 - bl sub_0809B7A0 - pop {r4, r5, r6, pc} - .align 2, 0 -_0809B794: .4byte 0x0000030B -_0809B798: .4byte gRoomControls -_0809B79C: .4byte 0x00004061 - - thumb_func_start sub_0809B7A0 -sub_0809B7A0: @ 0x0809B7A0 - push {r4, lr} - adds r4, r0, #0 - bl sub_0809B7C0 - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _0809B7BC - adds r0, r4, #0 - adds r0, #0x86 - ldrh r0, [r0] - bl sub_0807CCC8 - bl sub_0805E780 -_0809B7BC: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0809B7C0 -sub_0809B7C0: @ 0x0809B7C0 - push {r4, lr} - adds r4, r0, #0 - bl sub_080002A0 - ldr r1, _0809B7D8 @ =0xFFFFBF9F - adds r0, r0, r1 - cmp r0, #1 - bls _0809B7D6 - adds r0, r4, #0 - bl sub_0809B7DC -_0809B7D6: - pop {r4, pc} - .align 2, 0 -_0809B7D8: .4byte 0xFFFFBF9F - - thumb_func_start sub_0809B7DC -sub_0809B7DC: @ 0x0809B7DC - push {r4, r5, r6, lr} - adds r6, r0, #0 - movs r0, #0xc3 - lsls r0, r0, #2 - movs r2, #0x2e - ldrsh r1, [r6, r2] - ldr r5, _0809B838 @ =gRoomControls - ldrh r2, [r5, #6] - subs r1, r1, r2 - asrs r1, r1, #4 - movs r4, #0x3f - ands r1, r4 - movs r3, #0x32 - ldrsh r2, [r6, r3] - ldrh r3, [r5, #8] - subs r2, r2, r3 - asrs r2, r2, #4 - ands r2, r4 - lsls r2, r2, #6 - orrs r1, r2 - movs r2, #2 - bl sub_0807B7D8 - ldr r0, _0809B83C @ =0x00004062 - movs r2, #0x2e - ldrsh r1, [r6, r2] - ldrh r2, [r5, #6] - subs r1, r1, r2 - asrs r1, r1, #4 - ands r1, r4 - movs r3, #0x32 - ldrsh r2, [r6, r3] - ldrh r3, [r5, #8] - subs r2, r2, r3 - asrs r2, r2, #4 - ands r2, r4 - lsls r2, r2, #6 - orrs r1, r2 - adds r2, r6, #0 - adds r2, #0x38 - ldrb r2, [r2] - bl sub_0800015E - movs r0, #1 - strb r0, [r6, #0xe] - pop {r4, r5, r6, pc} - .align 2, 0 -_0809B838: .4byte gRoomControls -_0809B83C: .4byte 0x00004062 - - thumb_func_start sub_0809B840 -sub_0809B840: @ 0x0809B840 - push {lr} - ldr r2, _0809B854 @ =gUnk_08123DA0 - ldrb r1, [r0, #0xa] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0809B854: .4byte gUnk_08123DA0 - - thumb_func_start sub_0809B858 -sub_0809B858: @ 0x0809B858 - push {r4, r5, lr} - adds r4, r0, #0 - movs r1, #0x1e - bl sub_0805E4E0 - ldrb r3, [r4, #0xc] - cmp r3, #1 - beq _0809B8CC - cmp r3, #1 - bgt _0809B872 - cmp r3, #0 - beq _0809B878 - b _0809B972 -_0809B872: - cmp r3, #2 - beq _0809B948 - b _0809B972 -_0809B878: - movs r1, #1 - strb r1, [r4, #0xc] - movs r0, #0x3c - strb r0, [r4, #0xe] - strb r3, [r4, #0xf] - ldr r0, _0809B8BC @ =gRoomControls - str r4, [r0, #0x30] - strb r1, [r0, #0xe] - ldr r5, _0809B8C0 @ =gLinkEntity - movs r0, #0x2e - ldrsh r1, [r4, r0] - movs r2, #0x2e - ldrsh r0, [r5, r2] - movs r2, #6 - cmp r1, r0 - ble _0809B89A - movs r2, #2 -_0809B89A: - strb r2, [r5, #0x14] - ldr r2, _0809B8C4 @ =gLCDControls - ldrh r1, [r2] - ldr r0, _0809B8C8 @ =0x0000BFFF - ands r0, r1 - movs r4, #0xa0 - lsls r4, r4, #6 - adds r1, r4, #0 - orrs r0, r1 - strh r0, [r2] - adds r0, r2, #0 - adds r0, #0x58 - strh r3, [r0] - adds r2, #0x5c - movs r0, #0xa0 - strh r0, [r2] - b _0809B972 - .align 2, 0 -_0809B8BC: .4byte gRoomControls -_0809B8C0: .4byte gLinkEntity -_0809B8C4: .4byte gLCDControls -_0809B8C8: .4byte 0x0000BFFF -_0809B8CC: - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _0809B8D8 - subs r0, #1 - strb r0, [r4, #0xe] - b _0809B972 -_0809B8D8: - ldrb r0, [r4, #0xf] - cmp r0, #0x1f - bhi _0809B914 - ldr r5, _0809B90C @ =gUnk_030010A0 - ldr r0, [r5] - movs r1, #0x1f - ands r0, r1 - cmp r0, #0 - bne _0809B8F0 - ldr r0, _0809B910 @ =0x00000133 - bl PlaySFX -_0809B8F0: - ldr r0, [r5] - movs r1, #3 - ands r0, r1 - cmp r0, #0 - bne _0809B972 - ldrb r1, [r4, #0xf] - adds r1, #1 - strb r1, [r4, #0xf] - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r4, #0 - bl sub_0809B97C - b _0809B972 - .align 2, 0 -_0809B90C: .4byte gUnk_030010A0 -_0809B910: .4byte 0x00000133 -_0809B914: - movs r0, #2 - strb r0, [r4, #0xc] - movs r0, #0x3c - strb r0, [r4, #0xe] - ldr r2, _0809B938 @ =gLCDControls - ldrh r1, [r2] - ldr r0, _0809B93C @ =0x0000DFFF - ands r0, r1 - strh r0, [r2] - ldr r1, _0809B940 @ =gRoomControls - ldr r0, _0809B944 @ =gLinkEntity - str r0, [r1, #0x30] - movs r0, #0x9a - lsls r0, r0, #1 - bl PlaySFX - b _0809B972 - .align 2, 0 -_0809B938: .4byte gLCDControls -_0809B93C: .4byte 0x0000DFFF -_0809B940: .4byte gRoomControls -_0809B944: .4byte gLinkEntity -_0809B948: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0809B972 - ldr r2, _0809B974 @ =gLCDControls - ldrh r1, [r2] - movs r3, #0x90 - lsls r3, r3, #7 - adds r0, r3, #0 - orrs r0, r1 - strh r0, [r2] - ldr r1, _0809B978 @ =gRoomControls - movs r0, #4 - strb r0, [r1, #0xe] - ldr r1, [r4, #0x50] - movs r0, #1 - strb r0, [r1, #0xd] - bl sub_0805E780 -_0809B972: - pop {r4, r5, pc} - .align 2, 0 -_0809B974: .4byte gLCDControls -_0809B978: .4byte gRoomControls - - thumb_func_start sub_0809B97C -sub_0809B97C: @ 0x0809B97C - push {lr} - movs r3, #0x2e - ldrsh r2, [r0, r3] - ldr r0, _0809B9B4 @ =gRoomControls - movs r3, #0xa - ldrsh r0, [r0, r3] - subs r2, r2, r0 - subs r0, r2, r1 - adds r2, r2, r1 - cmp r0, #0 - bge _0809B994 - movs r0, #0 -_0809B994: - cmp r0, #0xf0 - ble _0809B99A - movs r0, #0xf0 -_0809B99A: - cmp r2, #0 - bge _0809B9A0 - movs r2, #0 -_0809B9A0: - cmp r2, #0xf0 - ble _0809B9A6 - movs r2, #0xf0 -_0809B9A6: - ldr r1, _0809B9B8 @ =gLCDControls - lsls r0, r0, #8 - orrs r0, r2 - adds r1, #0x58 - strh r0, [r1] - pop {pc} - .align 2, 0 -_0809B9B4: .4byte gRoomControls -_0809B9B8: .4byte gLCDControls - - thumb_func_start sub_0809B9BC -sub_0809B9BC: @ 0x0809B9BC - push {r4, r5, lr} - adds r4, r0, #0 - movs r1, #0x1e - bl sub_0805E4E0 - ldrb r0, [r4, #0xc] - cmp r0, #1 - beq _0809BA34 - cmp r0, #1 - bgt _0809B9D6 - cmp r0, #0 - beq _0809B9DC - b _0809BAC2 -_0809B9D6: - cmp r0, #2 - beq _0809BA9C - b _0809BAC2 -_0809B9DC: - movs r1, #1 - strb r1, [r4, #0xc] - movs r0, #0x3c - strb r0, [r4, #0xe] - movs r0, #0x20 - strb r0, [r4, #0xf] - ldr r0, _0809BA24 @ =gRoomControls - str r4, [r0, #0x30] - strb r1, [r0, #0xe] - ldr r3, _0809BA28 @ =gLinkEntity - movs r0, #0x2e - ldrsh r1, [r4, r0] - movs r2, #0x2e - ldrsh r0, [r3, r2] - movs r2, #6 - cmp r1, r0 - ble _0809BA00 - movs r2, #2 -_0809BA00: - strb r2, [r3, #0x14] - ldr r2, _0809BA2C @ =gLCDControls - ldrh r1, [r2] - ldr r0, _0809BA30 @ =0x0000BFFF - ands r0, r1 - movs r3, #0x80 - lsls r3, r3, #6 - adds r1, r3, #0 - orrs r0, r1 - strh r0, [r2] - adds r1, r2, #0 - adds r1, #0x58 - movs r0, #0xf0 - strh r0, [r1] - adds r2, #0x5c - movs r0, #0xa0 - strh r0, [r2] - b _0809BAC2 - .align 2, 0 -_0809BA24: .4byte gRoomControls -_0809BA28: .4byte gLinkEntity -_0809BA2C: .4byte gLCDControls -_0809BA30: .4byte 0x0000BFFF -_0809BA34: - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _0809BA40 - subs r0, #1 - strb r0, [r4, #0xe] - b _0809BAC2 -_0809BA40: - ldrb r0, [r4, #0xf] - cmp r0, #0 - beq _0809BA7C - ldr r5, _0809BA74 @ =gUnk_030010A0 - ldr r0, [r5] - movs r1, #0x1f - ands r0, r1 - cmp r0, #0 - bne _0809BA58 - ldr r0, _0809BA78 @ =0x00000133 - bl PlaySFX -_0809BA58: - ldr r0, [r5] - movs r1, #3 - ands r0, r1 - cmp r0, #0 - bne _0809BAC2 - ldrb r1, [r4, #0xf] - subs r1, #1 - strb r1, [r4, #0xf] - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r4, #0 - bl sub_0809B97C - b _0809BAC2 - .align 2, 0 -_0809BA74: .4byte gUnk_030010A0 -_0809BA78: .4byte 0x00000133 -_0809BA7C: - movs r0, #2 - strb r0, [r4, #0xc] - movs r0, #0x3c - strb r0, [r4, #0xe] - ldr r1, _0809BA94 @ =gRoomControls - ldr r0, _0809BA98 @ =gLinkEntity - str r0, [r1, #0x30] - movs r0, #0x9a - lsls r0, r0, #1 - bl PlaySFX - b _0809BAC2 - .align 2, 0 -_0809BA94: .4byte gRoomControls -_0809BA98: .4byte gLinkEntity -_0809BA9C: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0809BAC2 - ldr r1, _0809BAC4 @ =gRoomControls - movs r0, #4 - strb r0, [r1, #0xe] - ldr r2, _0809BAC8 @ =gLCDControls - ldrh r1, [r2] - ldr r0, _0809BACC @ =0x0000D7FF - ands r0, r1 - strh r0, [r2] - ldr r1, [r4, #0x50] - movs r0, #1 - strb r0, [r1, #0xd] - bl sub_0805E780 -_0809BAC2: - pop {r4, r5, pc} - .align 2, 0 -_0809BAC4: .4byte gRoomControls -_0809BAC8: .4byte gLCDControls -_0809BACC: .4byte 0x0000D7FF - - thumb_func_start sub_0809BAD0 -sub_0809BAD0: @ 0x0809BAD0 - push {r4, r5, lr} - adds r4, r0, #0 - movs r1, #0xa - bl sub_0805E4E0 - ldrb r0, [r4, #0xc] - cmp r0, #4 - bls _0809BAE2 - b _0809BC68 -_0809BAE2: - lsls r0, r0, #2 - ldr r1, _0809BAEC @ =_0809BAF0 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0809BAEC: .4byte _0809BAF0 -_0809BAF0: @ jump table - .4byte _0809BB04 @ case 0 - .4byte _0809BB4C @ case 1 - .4byte _0809BBF8 @ case 2 - .4byte _0809BC24 @ case 3 - .4byte _0809BC48 @ case 4 -_0809BB04: - ldrb r0, [r4, #0xc] - adds r0, #1 - movs r1, #0 - strb r0, [r4, #0xc] - movs r0, #0x3c - strb r0, [r4, #0xe] - strb r1, [r4, #0xf] - ldr r1, _0809BB40 @ =gRoomControls - str r4, [r1, #0x30] - movs r0, #1 - strb r0, [r1, #0xe] - ldr r3, _0809BB44 @ =gLinkEntity - movs r0, #0x2e - ldrsh r1, [r4, r0] - movs r2, #0x2e - ldrsh r0, [r3, r2] - movs r2, #6 - cmp r1, r0 - ble _0809BB2C - movs r2, #2 -_0809BB2C: - strb r2, [r3, #0x14] - ldr r1, _0809BB48 @ =gLCDControls - adds r2, r1, #0 - adds r2, #0x58 - movs r0, #0x60 - strh r0, [r2] - adds r1, #0x5c - movs r0, #0xa0 - strh r0, [r1] - b _0809BC68 - .align 2, 0 -_0809BB40: .4byte gRoomControls -_0809BB44: .4byte gLinkEntity -_0809BB48: .4byte gLCDControls -_0809BB4C: - adds r0, r4, #0 - bl sub_0809BE78 - cmp r0, #0 - bne _0809BB58 - b _0809BC68 -_0809BB58: - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _0809BB88 - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0809BB6A - b _0809BC68 -_0809BB6A: - ldr r2, _0809BB80 @ =gLCDControls - ldrh r1, [r2] - ldr r0, _0809BB84 @ =0x0000BFFF - ands r0, r1 - movs r3, #0xa0 - lsls r3, r3, #6 - adds r1, r3, #0 - orrs r0, r1 - strh r0, [r2] - b _0809BC68 - .align 2, 0 -_0809BB80: .4byte gLCDControls -_0809BB84: .4byte 0x0000BFFF -_0809BB88: - ldr r2, _0809BBB8 @ =gLCDControls - adds r5, r2, #0 - adds r5, #0x58 - ldrh r0, [r5] - cmp r0, #0xdf - bhi _0809BBC4 - ldr r4, _0809BBBC @ =gUnk_030010A0 - ldr r0, [r4] - movs r1, #0x1f - ands r0, r1 - cmp r0, #0 - bne _0809BBA6 - ldr r0, _0809BBC0 @ =0x00000133 - bl PlaySFX -_0809BBA6: - ldr r0, [r4] - movs r1, #1 - ands r0, r1 - cmp r0, #0 - bne _0809BC68 - ldrh r0, [r5] - adds r0, #1 - strh r0, [r5] - b _0809BC68 - .align 2, 0 -_0809BBB8: .4byte gLCDControls -_0809BBBC: .4byte gUnk_030010A0 -_0809BBC0: .4byte 0x00000133 -_0809BBC4: - movs r0, #2 - strb r0, [r4, #0xc] - movs r0, #0x1e - strb r0, [r4, #0xe] - ldrh r1, [r2] - ldr r0, _0809BBF4 @ =0x0000DFFF - ands r0, r1 - movs r3, #0x90 - lsls r3, r3, #7 - adds r1, r3, #0 - orrs r0, r1 - strh r0, [r2] - ldrh r0, [r4, #0x2e] - adds r0, #0x68 - strh r0, [r4, #0x2e] - ldrh r0, [r4, #0x32] - adds r0, #0x28 - strh r0, [r4, #0x32] - movs r0, #0x9a - lsls r0, r0, #1 - bl PlaySFX - b _0809BC68 - .align 2, 0 -_0809BBF4: .4byte 0x0000DFFF -_0809BBF8: - adds r0, r4, #0 - bl sub_0809BE78 - cmp r0, #0 - beq _0809BC68 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0809BC68 - movs r0, #0x78 - strb r0, [r4, #0xe] - movs r0, #3 - strb r0, [r4, #0xc] - movs r0, #0x35 - bl sub_0807CCB4 - movs r0, #0x72 - bl PlaySFX - b _0809BC68 -_0809BC24: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0809BC68 - movs r0, #4 - strb r0, [r4, #0xc] - ldr r1, _0809BC40 @ =gRoomControls - ldr r0, _0809BC44 @ =gLinkEntity - str r0, [r1, #0x30] - movs r0, #2 - strb r0, [r1, #0xe] - b _0809BC68 - .align 2, 0 -_0809BC40: .4byte gRoomControls -_0809BC44: .4byte gLinkEntity -_0809BC48: - adds r0, r4, #0 - bl sub_0809BE78 - cmp r0, #0 - beq _0809BC68 - ldr r1, _0809BC6C @ =gRoomControls - movs r0, #4 - strb r0, [r1, #0xe] - ldr r1, [r4, #0x50] - movs r0, #1 - strb r0, [r1, #0xd] - movs r0, #0x64 - bl sub_0807CD10 - bl sub_0805E780 -_0809BC68: - pop {r4, r5, pc} - .align 2, 0 -_0809BC6C: .4byte gRoomControls - - thumb_func_start sub_0809BC70 -sub_0809BC70: @ 0x0809BC70 - push {r4, r5, r6, lr} - adds r4, r0, #0 - movs r1, #0x1e - bl sub_0805E4E0 - ldrb r5, [r4, #0xc] - cmp r5, #1 - beq _0809BCDC - cmp r5, #1 - bgt _0809BC8A - cmp r5, #0 - beq _0809BC92 - b _0809BDAE -_0809BC8A: - cmp r5, #2 - bne _0809BC90 - b _0809BD98 -_0809BC90: - b _0809BDAE -_0809BC92: - movs r1, #1 - strb r1, [r4, #0xc] - movs r0, #0x3c - strb r0, [r4, #0xe] - strb r5, [r4, #0xf] - ldr r0, _0809BCCC @ =gRoomControls - str r4, [r0, #0x30] - strb r1, [r0, #0xe] - ldr r3, _0809BCD0 @ =gLinkEntity - movs r0, #0x2e - ldrsh r1, [r4, r0] - movs r2, #0x2e - ldrsh r0, [r3, r2] - movs r2, #6 - cmp r1, r0 - ble _0809BCB4 - movs r2, #2 -_0809BCB4: - strb r2, [r3, #0x14] - ldr r1, _0809BCD4 @ =gLCDControls - adds r2, r1, #0 - adds r2, #0x58 - ldr r0, _0809BCD8 @ =0x000080F0 - strh r0, [r2] - adds r1, #0x5c - movs r0, #0xa0 - strh r0, [r1] - movs r0, #0x80 - strb r0, [r4, #0xd] - b _0809BDAE - .align 2, 0 -_0809BCCC: .4byte gRoomControls -_0809BCD0: .4byte gLinkEntity -_0809BCD4: .4byte gLCDControls -_0809BCD8: .4byte 0x000080F0 -_0809BCDC: - adds r0, r4, #0 - bl sub_0809BE78 - cmp r0, #0 - beq _0809BDAE - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _0809BD20 - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0809BDAE - movs r0, #6 - movs r1, #8 - bl DoFade - movs r0, #3 - bl sub_0805AAF0 - ldr r2, _0809BD18 @ =gLCDControls - ldrh r1, [r2] - ldr r0, _0809BD1C @ =0x0000BFFF - ands r0, r1 - movs r3, #0xa0 - lsls r3, r3, #6 - adds r1, r3, #0 - orrs r0, r1 - strh r0, [r2] - b _0809BDAE - .align 2, 0 -_0809BD18: .4byte gLCDControls -_0809BD1C: .4byte 0x0000BFFF -_0809BD20: - ldrb r0, [r4, #0xd] - cmp r0, #0 - beq _0809BD64 - ldr r6, _0809BD58 @ =gUnk_030010A0 - ldr r0, [r6] - movs r1, #0x1f - ands r0, r1 - cmp r0, #0 - bne _0809BD38 - ldr r0, _0809BD5C @ =0x00000133 - bl PlaySFX -_0809BD38: - ldr r0, [r6] - ands r0, r5 - cmp r0, #0 - bne _0809BDAE - ldrb r0, [r4, #0xd] - subs r0, #1 - strb r0, [r4, #0xd] - ldr r1, _0809BD60 @ =gLCDControls - ldrb r0, [r4, #0xd] - lsls r0, r0, #8 - movs r2, #0xf0 - adds r1, #0x58 - orrs r0, r2 - strh r0, [r1] - b _0809BDAE - .align 2, 0 -_0809BD58: .4byte gUnk_030010A0 -_0809BD5C: .4byte 0x00000133 -_0809BD60: .4byte gLCDControls -_0809BD64: - movs r0, #2 - strb r0, [r4, #0xc] - movs r0, #0x78 - strb r0, [r4, #0xe] - ldr r2, _0809BD90 @ =gLCDControls - ldrh r1, [r2] - ldr r0, _0809BD94 @ =0x0000DFFF - ands r0, r1 - movs r3, #0x90 - lsls r3, r3, #7 - adds r1, r3, #0 - orrs r0, r1 - strh r0, [r2] - movs r0, #0x37 - bl sub_0807CCB4 - movs r0, #0x9a - lsls r0, r0, #1 - bl PlaySFX - b _0809BDAE - .align 2, 0 -_0809BD90: .4byte gLCDControls -_0809BD94: .4byte 0x0000DFFF -_0809BD98: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0809BDAE - ldr r1, [r4, #0x50] - movs r0, #1 - strb r0, [r1, #0xd] - bl sub_0805E780 -_0809BDAE: - pop {r4, r5, r6, pc} - - thumb_func_start sub_0809BDB0 -sub_0809BDB0: @ 0x0809BDB0 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x1e - bl sub_0805E4E0 - ldrb r0, [r4, #0xc] - cmp r0, #1 - beq _0809BE00 - cmp r0, #1 - bgt _0809BDCA - cmp r0, #0 - beq _0809BDD0 - b _0809BE70 -_0809BDCA: - cmp r0, #2 - beq _0809BE54 - b _0809BE70 -_0809BDD0: - movs r1, #1 - strb r1, [r4, #0xc] - movs r0, #0x3c - strb r0, [r4, #0xe] - movs r0, #0x80 - strb r0, [r4, #0xf] - ldr r0, _0809BDF8 @ =gRoomControls - str r4, [r0, #0x30] - strb r1, [r0, #0xe] - ldr r3, _0809BDFC @ =gLinkEntity - movs r0, #0x2e - ldrsh r1, [r4, r0] - movs r2, #0x2e - ldrsh r0, [r3, r2] - movs r2, #6 - cmp r1, r0 - ble _0809BDF4 - movs r2, #2 -_0809BDF4: - strb r2, [r3, #0x14] - b _0809BE70 - .align 2, 0 -_0809BDF8: .4byte gRoomControls -_0809BDFC: .4byte gLinkEntity -_0809BE00: - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _0809BE0C - subs r0, #1 - strb r0, [r4, #0xe] - b _0809BE70 -_0809BE0C: - ldrb r0, [r4, #0xf] - subs r0, #1 - strb r0, [r4, #0xf] - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0809BE34 - ldr r0, _0809BE2C @ =gUnk_030010A0 - ldr r0, [r0] - movs r1, #0x1f - ands r0, r1 - cmp r0, #0 - bne _0809BE70 - ldr r0, _0809BE30 @ =0x00000133 - bl PlaySFX - b _0809BE70 - .align 2, 0 -_0809BE2C: .4byte gUnk_030010A0 -_0809BE30: .4byte 0x00000133 -_0809BE34: - movs r0, #2 - strb r0, [r4, #0xc] - movs r0, #0x3c - strb r0, [r4, #0xe] - ldr r1, _0809BE4C @ =gRoomControls - ldr r0, _0809BE50 @ =gLinkEntity - str r0, [r1, #0x30] - movs r0, #0x9a - lsls r0, r0, #1 - bl PlaySFX - b _0809BE70 - .align 2, 0 -_0809BE4C: .4byte gRoomControls -_0809BE50: .4byte gLinkEntity -_0809BE54: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0809BE70 - ldr r1, _0809BE74 @ =gRoomControls - movs r0, #4 - strb r0, [r1, #0xe] - ldr r1, [r4, #0x50] - movs r0, #1 - strb r0, [r1, #0xd] - bl sub_0805E780 -_0809BE70: - pop {r4, pc} - .align 2, 0 -_0809BE74: .4byte gRoomControls - - thumb_func_start sub_0809BE78 -sub_0809BE78: @ 0x0809BE78 - push {r4, r5, lr} - adds r3, r0, #0 - movs r5, #0 - adds r0, #0x68 - ldrh r2, [r0] - ldr r0, _0809BEB0 @ =gRoomControls - movs r4, #0xa - ldrsh r1, [r0, r4] - adds r4, r0, #0 - cmp r2, r1 - bne _0809BE9E - adds r0, r3, #0 - adds r0, #0x6a - ldrh r1, [r0] - movs r2, #0xc - ldrsh r0, [r4, r2] - cmp r1, r0 - bne _0809BE9E - movs r5, #1 -_0809BE9E: - ldrh r1, [r4, #0xa] - adds r0, r3, #0 - adds r0, #0x68 - strh r1, [r0] - ldrh r1, [r4, #0xc] - adds r0, #2 - strh r1, [r0] - adds r0, r5, #0 - pop {r4, r5, pc} - .align 2, 0 -_0809BEB0: .4byte gRoomControls - - thumb_func_start sub_0809BEB4 -sub_0809BEB4: @ 0x0809BEB4 - push {lr} - ldr r2, _0809BEC8 @ =gUnk_08123DB4 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0809BEC8: .4byte gUnk_08123DB4 - - thumb_func_start sub_0809BECC -sub_0809BECC: @ 0x0809BECC - push {r4, lr} - adds r4, r0, #0 - movs r0, #0x9b - bl sub_0807CBE4 - cmp r0, #0 - beq _0809BEDE - bl sub_0805E780 -_0809BEDE: - movs r0, #0x91 - movs r1, #0 - movs r2, #0 - bl CreateObject - str r0, [r4, #0x54] - cmp r0, #0 - beq _0809BF1A - movs r2, #0 - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x11] - subs r0, #0x11 - ands r0, r1 - movs r1, #3 - orrs r0, r1 - strb r0, [r4, #0x11] - strb r2, [r4, #0x1e] - ldrb r0, [r4, #0x19] - orrs r0, r1 - strb r0, [r4, #0x19] - adds r0, r4, #0 - bl sub_0809C0A8 - adds r0, r4, #0 - movs r1, #0xcc - movs r2, #0xcc - movs r3, #0 - bl sub_0805EC9C -_0809BF1A: - pop {r4, pc} - - thumb_func_start sub_0809BF1C -sub_0809BF1C: @ 0x0809BF1C - push {r4, lr} - adds r4, r0, #0 - movs r1, #0xcc - movs r2, #0xcc - movs r3, #0 - bl sub_0805EC9C - movs r0, #0x37 - bl sub_0807CBE4 - cmp r0, #0 - beq _0809BF6C - movs r0, #0x90 - movs r1, #0 - movs r2, #0 - bl CreateObject - adds r1, r0, #0 - cmp r1, #0 - beq _0809BF6C - ldr r0, _0809BF70 @ =gRoomControls - str r1, [r0, #0x30] - ldr r0, [r4, #0x54] - str r1, [r0, #0x54] - movs r3, #0x80 - lsls r3, r3, #0xb - adds r0, r4, #0 - movs r2, #0 - bl PositionRelative - movs r0, #2 - strb r0, [r4, #0xc] - adds r1, r4, #0 - adds r1, #0x74 - movs r0, #0xa0 - lsls r0, r0, #1 - strh r0, [r1] - adds r0, #0x73 - bl sub_08004488 -_0809BF6C: - pop {r4, pc} - .align 2, 0 -_0809BF70: .4byte gRoomControls - - thumb_func_start sub_0809BF74 -sub_0809BF74: @ 0x0809BF74 - push {r4, r5, r6, r7, lr} - adds r7, r0, #0 - adds r5, r7, #0 - adds r5, #0x74 - ldrh r0, [r5] - subs r1, r0, #1 - strh r1, [r5] - lsls r0, r1, #0x10 - cmp r0, #0 - bne _0809BFA0 - ldr r1, [r7, #0x54] - movs r0, #1 - strb r0, [r1, #0xf] - adds r0, r7, #0 - bl sub_0809C23C - movs r0, #0x9b - bl sub_0807CBE4 - bl sub_0805E780 - b _0809C09A -_0809BFA0: - movs r0, #0x1f - ands r1, r0 - cmp r1, #0 - bne _0809BFAE - ldr r0, _0809C09C @ =0x000001B3 - bl sub_08004488 -_0809BFAE: - ldrh r0, [r5] - cmp r0, #0x77 - bhi _0809BFE0 - movs r1, #0x78 - subs r1, r1, r0 - lsls r4, r1, #5 - adds r4, #0xcc - lsls r1, r1, #4 - adds r1, #0xcc - adds r0, r7, #0 - adds r2, r4, #0 - movs r3, #0 - bl sub_0805EC9C - adds r0, r7, #0 - adds r1, r4, #0 - movs r2, #8 - movs r3, #0 - bl sub_0806FCF4 - adds r1, r7, #0 - adds r1, #0x63 - ldrb r0, [r1] - adds r0, #8 - strb r0, [r1] -_0809BFE0: - ldr r1, _0809C0A0 @ =gUnk_08123DC0 - ldrh r0, [r5] - lsrs r0, r0, #5 - adds r0, r0, r1 - ldrb r6, [r0] - movs r0, #0xf - movs r1, #0x11 - movs r2, #0x40 - bl CreateObject - adds r5, r0, #0 - cmp r5, #0 - beq _0809C044 - bl Random - adds r4, r0, #0 - asrs r0, r4, #0x10 - ands r0, r6 - adds r2, r6, #1 - lsrs r1, r2, #1 - subs r0, r0, r1 - mov ip, r0 - lsrs r0, r6, #1 - ands r0, r4 - lsrs r2, r2, #2 - subs r4, r0, r2 - adds r2, r5, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #3 - orrs r0, r1 - strb r0, [r2] - adds r1, r7, #0 - adds r1, #0x80 - ldr r2, _0809C0A4 @ =gRoomControls - ldrh r0, [r2, #6] - ldrh r1, [r1] - adds r0, r0, r1 - add r0, ip - strh r0, [r5, #0x2e] - adds r1, r7, #0 - adds r1, #0x82 - ldrh r0, [r2, #8] - ldrh r1, [r1] - adds r0, r0, r1 - adds r0, r0, r4 - strh r0, [r5, #0x32] -_0809C044: - movs r0, #0xf - movs r1, #2 - movs r2, #0x40 - bl CreateObject - adds r5, r0, #0 - cmp r5, #0 - beq _0809C09A - bl Random - adds r4, r0, #0 - asrs r1, r4, #0x10 - ands r1, r6 - adds r0, r6, #1 - lsrs r0, r0, #1 - subs r1, r1, r0 - mov ip, r1 - lsrs r3, r6, #1 - ands r3, r4 - adds r2, r5, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #3 - orrs r0, r1 - strb r0, [r2] - adds r1, r7, #0 - adds r1, #0x80 - ldr r2, _0809C0A4 @ =gRoomControls - ldrh r0, [r2, #6] - ldrh r1, [r1] - adds r0, r0, r1 - add r0, ip - strh r0, [r5, #0x2e] - adds r1, r7, #0 - adds r1, #0x82 - ldrh r0, [r2, #8] - ldrh r1, [r1] - adds r0, r0, r1 - adds r0, r0, r3 - strh r0, [r5, #0x32] -_0809C09A: - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0809C09C: .4byte 0x000001B3 -_0809C0A0: .4byte gUnk_08123DC0 -_0809C0A4: .4byte gRoomControls - - thumb_func_start sub_0809C0A8 -sub_0809C0A8: @ 0x0809C0A8 - push {r4, r5, r6, lr} - adds r4, r0, #0 - movs r1, #0x2e - ldrsh r0, [r4, r1] - ldr r3, _0809C214 @ =gRoomControls - ldrh r1, [r3, #6] - subs r0, r0, r1 - asrs r6, r0, #4 - movs r2, #0x3f - ands r6, r2 - movs r1, #0x32 - ldrsh r0, [r4, r1] - ldrh r1, [r3, #8] - subs r0, r0, r1 - asrs r0, r0, #4 - ands r0, r2 - lsls r0, r0, #6 - orrs r6, r0 - ldr r5, _0809C218 @ =0x00004022 - adds r1, r6, #0 - subs r1, #0x41 - adds r4, #0x38 - ldrb r2, [r4] - adds r0, r5, #0 - bl sub_0800015E - adds r1, r6, #0 - subs r1, #0x40 - ldrb r2, [r4] - adds r0, r5, #0 - bl sub_0800015E - adds r1, r6, #0 - subs r1, #0x3f - ldrb r2, [r4] - adds r0, r5, #0 - bl sub_0800015E - subs r1, r6, #2 - ldrb r2, [r4] - adds r0, r5, #0 - bl sub_0800015E - subs r1, r6, #1 - ldrb r2, [r4] - adds r0, r5, #0 - bl sub_0800015E - ldrb r2, [r4] - adds r0, r5, #0 - adds r1, r6, #0 - bl sub_0800015E - adds r1, r6, #1 - ldrb r2, [r4] - adds r0, r5, #0 - bl sub_0800015E - adds r1, r6, #2 - ldrb r2, [r4] - adds r0, r5, #0 - bl sub_0800015E - adds r1, r6, #0 - adds r1, #0x3e - ldrb r2, [r4] - adds r0, r5, #0 - bl sub_0800015E - adds r1, r6, #0 - adds r1, #0x3f - ldrb r2, [r4] - adds r0, r5, #0 - bl sub_0800015E - adds r1, r6, #0 - adds r1, #0x40 - ldrb r2, [r4] - adds r0, r5, #0 - bl sub_0800015E - adds r1, r6, #0 - adds r1, #0x41 - ldrb r2, [r4] - adds r0, r5, #0 - bl sub_0800015E - adds r1, r6, #0 - adds r1, #0x42 - ldrb r2, [r4] - adds r0, r5, #0 - bl sub_0800015E - adds r1, r6, #0 - adds r1, #0x7f - ldrb r2, [r4] - adds r0, r5, #0 - bl sub_0800015E - adds r1, r6, #0 - adds r1, #0x80 - ldrb r2, [r4] - adds r0, r5, #0 - bl sub_0800015E - adds r1, r6, #0 - adds r1, #0x81 - ldrb r2, [r4] - adds r0, r5, #0 - bl sub_0800015E - ldr r0, _0809C21C @ =0x0000013F - adds r1, r6, r0 - ldrb r2, [r4] - adds r0, r5, #0 - bl sub_0800015E - movs r0, #0xa0 - lsls r0, r0, #1 - adds r1, r6, r0 - ldrb r2, [r4] - adds r0, r5, #0 - bl sub_0800015E - ldr r0, _0809C220 @ =0x00000141 - adds r1, r6, r0 - ldrb r2, [r4] - adds r0, r5, #0 - bl sub_0800015E - ldr r0, _0809C224 @ =0x0000017F - adds r1, r6, r0 - ldrb r2, [r4] - adds r0, r5, #0 - bl sub_0800015E - ldr r0, _0809C228 @ =0x00000181 - adds r1, r6, r0 - ldrb r2, [r4] - adds r0, r5, #0 - bl sub_0800015E - ldr r0, _0809C22C @ =0x000001BD - adds r1, r6, r0 - ldrb r2, [r4] - adds r0, r5, #0 - bl sub_0800015E - movs r0, #0xdf - lsls r0, r0, #1 - adds r1, r6, r0 - ldrb r2, [r4] - adds r0, r5, #0 - bl sub_0800015E - ldr r0, _0809C230 @ =0x000001BF - adds r1, r6, r0 - ldrb r2, [r4] - adds r0, r5, #0 - bl sub_0800015E - ldr r0, _0809C234 @ =0x000001C1 - adds r1, r6, r0 - ldrb r2, [r4] - adds r0, r5, #0 - bl sub_0800015E - movs r0, #0xe1 - lsls r0, r0, #1 - adds r1, r6, r0 - ldrb r2, [r4] - adds r0, r5, #0 - bl sub_0800015E - ldr r0, _0809C238 @ =0x000001C3 - adds r1, r6, r0 - ldrb r2, [r4] - adds r0, r5, #0 - bl sub_0800015E - pop {r4, r5, r6, pc} - .align 2, 0 -_0809C214: .4byte gRoomControls -_0809C218: .4byte 0x00004022 -_0809C21C: .4byte 0x0000013F -_0809C220: .4byte 0x00000141 -_0809C224: .4byte 0x0000017F -_0809C228: .4byte 0x00000181 -_0809C22C: .4byte 0x000001BD -_0809C230: .4byte 0x000001BF -_0809C234: .4byte 0x000001C1 -_0809C238: .4byte 0x000001C3 - - thumb_func_start sub_0809C23C -sub_0809C23C: @ 0x0809C23C - push {r4, r5, lr} - adds r4, r0, #0 - movs r1, #0x2e - ldrsh r0, [r4, r1] - ldr r3, _0809C370 @ =gRoomControls - ldrh r1, [r3, #6] - subs r0, r0, r1 - asrs r5, r0, #4 - movs r2, #0x3f - ands r5, r2 - movs r1, #0x32 - ldrsh r0, [r4, r1] - ldrh r1, [r3, #8] - subs r0, r0, r1 - asrs r0, r0, #4 - ands r0, r2 - lsls r0, r0, #6 - orrs r5, r0 - adds r0, r5, #0 - subs r0, #0x41 - adds r4, #0x38 - ldrb r1, [r4] - bl sub_0807BA8C - adds r0, r5, #0 - subs r0, #0x40 - ldrb r1, [r4] - bl sub_0807BA8C - adds r0, r5, #0 - subs r0, #0x3f - ldrb r1, [r4] - bl sub_0807BA8C - subs r0, r5, #2 - ldrb r1, [r4] - bl sub_0807BA8C - subs r0, r5, #1 - ldrb r1, [r4] - bl sub_0807BA8C - ldrb r1, [r4] - adds r0, r5, #0 - bl sub_0807BA8C - adds r0, r5, #1 - ldrb r1, [r4] - bl sub_0807BA8C - adds r0, r5, #2 - ldrb r1, [r4] - bl sub_0807BA8C - adds r0, r5, #0 - adds r0, #0x3e - ldrb r1, [r4] - bl sub_0807BA8C - adds r0, r5, #0 - adds r0, #0x3f - ldrb r1, [r4] - bl sub_0807BA8C - adds r0, r5, #0 - adds r0, #0x40 - ldrb r1, [r4] - bl sub_0807BA8C - adds r0, r5, #0 - adds r0, #0x41 - ldrb r1, [r4] - bl sub_0807BA8C - adds r0, r5, #0 - adds r0, #0x42 - ldrb r1, [r4] - bl sub_0807BA8C - adds r0, r5, #0 - adds r0, #0x7f - ldrb r1, [r4] - bl sub_0807BA8C - adds r0, r5, #0 - adds r0, #0x80 - ldrb r1, [r4] - bl sub_0807BA8C - adds r0, r5, #0 - adds r0, #0x81 - ldrb r1, [r4] - bl sub_0807BA8C - ldr r1, _0809C374 @ =0x0000013F - adds r0, r5, r1 - ldrb r1, [r4] - bl sub_0807BA8C - movs r1, #0xa0 - lsls r1, r1, #1 - adds r0, r5, r1 - ldrb r1, [r4] - bl sub_0807BA8C - ldr r1, _0809C378 @ =0x00000141 - adds r0, r5, r1 - ldrb r1, [r4] - bl sub_0807BA8C - ldr r1, _0809C37C @ =0x0000017F - adds r0, r5, r1 - ldrb r1, [r4] - bl sub_0807BA8C - ldr r1, _0809C380 @ =0x00000181 - adds r0, r5, r1 - ldrb r1, [r4] - bl sub_0807BA8C - ldr r1, _0809C384 @ =0x000001BD - adds r0, r5, r1 - ldrb r1, [r4] - bl sub_0807BA8C - movs r1, #0xdf - lsls r1, r1, #1 - adds r0, r5, r1 - ldrb r1, [r4] - bl sub_0807BA8C - ldr r1, _0809C388 @ =0x000001BF - adds r0, r5, r1 - ldrb r1, [r4] - bl sub_0807BA8C - ldr r1, _0809C38C @ =0x000001C1 - adds r0, r5, r1 - ldrb r1, [r4] - bl sub_0807BA8C - movs r1, #0xe1 - lsls r1, r1, #1 - adds r0, r5, r1 - ldrb r1, [r4] - bl sub_0807BA8C - ldr r1, _0809C390 @ =0x000001C3 - adds r0, r5, r1 - ldrb r1, [r4] - bl sub_0807BA8C - pop {r4, r5, pc} - .align 2, 0 -_0809C370: .4byte gRoomControls -_0809C374: .4byte 0x0000013F -_0809C378: .4byte 0x00000141 -_0809C37C: .4byte 0x0000017F -_0809C380: .4byte 0x00000181 -_0809C384: .4byte 0x000001BD -_0809C388: .4byte 0x000001BF -_0809C38C: .4byte 0x000001C1 -_0809C390: .4byte 0x000001C3 - - thumb_func_start sub_0809C394 -sub_0809C394: @ 0x0809C394 - push {lr} - ldr r2, _0809C3A8 @ =gUnk_08123DCC - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0809C3A8: .4byte gUnk_08123DCC - - thumb_func_start sub_0809C3AC -sub_0809C3AC: @ 0x0809C3AC - movs r2, #0 - movs r1, #1 - strb r1, [r0, #0xc] - strb r2, [r0, #0x1e] - adds r0, #0x29 - ldrb r2, [r0] - subs r1, #9 - ands r1, r2 - movs r2, #5 - orrs r1, r2 - strb r1, [r0] - bx lr - - thumb_func_start nullsub_536 -nullsub_536: @ 0x0809C3C4 - bx lr - .align 2, 0 - - thumb_func_start sub_0809C3C8 -sub_0809C3C8: @ 0x0809C3C8 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _0809C3E8 @ =gUnk_08123DD4 - ldrb r0, [r4, #0xc] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - ldrb r0, [r4, #0x19] - movs r1, #0xc0 - orrs r0, r1 - strb r0, [r4, #0x19] - pop {r4, pc} - .align 2, 0 -_0809C3E8: .4byte gUnk_08123DD4 - - thumb_func_start sub_0809C3EC -sub_0809C3EC: @ 0x0809C3EC - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r4, r0, #0 - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r0, [r4, #0xa] - cmp r0, #7 - bls _0809C400 - b _0809C5A4 -_0809C400: - lsls r0, r0, #2 - ldr r1, _0809C40C @ =_0809C410 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0809C40C: .4byte _0809C410 -_0809C410: @ jump table - .4byte _0809C430 @ case 0 - .4byte _0809C53E @ case 1 - .4byte _0809C53E @ case 2 - .4byte _0809C53E @ case 3 - .4byte _0809C53E @ case 4 - .4byte _0809C586 @ case 5 - .4byte _0809C440 @ case 6 - .4byte _0809C5BA @ case 7 -_0809C430: - adds r0, r4, #0 - movs r1, #6 - bl sub_0805E3A0 - adds r1, r4, #0 - adds r1, #0x7e - movs r0, #0 - strh r0, [r1] -_0809C440: - movs r0, #1 - strb r0, [r4, #0xe] - movs r0, #0x10 - strb r0, [r4, #0x15] - adds r1, r4, #0 - adds r1, #0x79 - movs r0, #0xf0 - strb r0, [r1] - ldr r1, _0809C4B4 @ =gRoomControls - movs r2, #0x84 - lsls r2, r2, #1 - adds r0, r2, #0 - ldrh r2, [r1, #6] - adds r0, r0, r2 - strh r0, [r4, #0x2e] - movs r2, #0xb4 - lsls r2, r2, #1 - adds r0, r2, #0 - ldrh r1, [r1, #8] - adds r0, r0, r1 - strh r0, [r4, #0x32] - ldrb r0, [r4, #0x19] - movs r1, #3 - orrs r0, r1 - strb r0, [r4, #0x19] - adds r0, r4, #0 - adds r0, #0x76 - movs r1, #0xa0 - strh r1, [r0] - subs r0, #2 - strh r1, [r0] - adds r1, r4, #0 - adds r1, #0x7b - movs r0, #0x80 - strb r0, [r1] - ldrb r0, [r4, #0xa] - cmp r0, #0 - bne _0809C52E - subs r1, #0x19 - movs r0, #0x29 - strb r0, [r1] - adds r1, #1 - movs r0, #0xe0 - strb r0, [r1] - movs r0, #0x30 - bl sub_0801D8E0 - adds r2, r0, #0 - adds r0, r4, #0 - adds r0, #0x84 - str r2, [r0] - mov r8, r0 - cmp r2, #0 - bne _0809C4B8 - bl sub_0805E780 - b _0809C5BA - .align 2, 0 -_0809C4B4: .4byte gRoomControls -_0809C4B8: - str r2, [r4, #0x64] - mov r0, r8 - ldr r1, [r0] - movs r0, #5 - strb r0, [r1, #1] - movs r5, #0 - mov r7, r8 -_0809C4C6: - adds r6, r5, #1 - adds r0, r4, #0 - movs r1, #0x91 - adds r2, r6, #0 - movs r3, #0 - bl CreateObjectWithParent - str r0, [r4, #0x54] - cmp r0, #0 - beq _0809C4EE - adds r1, r0, #0 - adds r1, #0x84 - ldr r0, [r7] - str r0, [r1] - ldr r1, [r7] - lsls r0, r5, #2 - adds r1, #0x20 - adds r1, r1, r0 - ldr r0, [r4, #0x54] - str r0, [r1] -_0809C4EE: - adds r5, r6, #0 - cmp r5, #3 - bls _0809C4C6 - adds r0, r4, #0 - movs r1, #0x91 - movs r2, #5 - movs r3, #0 - bl CreateObjectWithParent - str r0, [r4, #0x54] - cmp r0, #0 - beq _0809C510 - adds r1, r0, #0 - adds r1, #0x84 - mov r2, r8 - ldr r0, [r2] - str r0, [r1] -_0809C510: - adds r0, r4, #0 - movs r1, #0x91 - movs r2, #6 - movs r3, #0 - bl CreateObjectWithParent - str r0, [r4, #0x50] - cmp r0, #0 - beq _0809C5A4 - adds r1, r0, #0 - adds r1, #0x84 - mov r2, r8 - ldr r0, [r2] - str r0, [r1] - b _0809C5A4 -_0809C52E: - adds r1, r4, #0 - adds r1, #0x62 - movs r0, #0xd7 - strb r0, [r1] - adds r1, #1 - movs r0, #0xe0 - strb r0, [r1] - b _0809C5A4 -_0809C53E: - movs r1, #0 - movs r0, #0x10 - strb r0, [r4, #0xe] - adds r0, r4, #0 - adds r0, #0x79 - strb r1, [r0] - ldrb r1, [r4, #0xa] - movs r2, #2 - adds r0, r2, #0 - ands r0, r1 - cmp r0, #0 - bne _0809C55A - strb r2, [r4, #0xf] - b _0809C55E -_0809C55A: - movs r0, #0xfe - strb r0, [r4, #0xf] -_0809C55E: - adds r0, r4, #0 - adds r0, #0x74 - movs r2, #0x80 - lsls r2, r2, #1 - strh r2, [r0] - ldrb r1, [r4, #0xa] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _0809C57E - adds r1, r4, #0 - adds r1, #0x76 - movs r0, #0xff - lsls r0, r0, #8 - strh r0, [r1] - b _0809C5A4 -_0809C57E: - adds r0, r4, #0 - adds r0, #0x76 - strh r2, [r0] - b _0809C5A4 -_0809C586: - adds r0, r4, #0 - adds r0, #0x76 - movs r1, #0x80 - lsls r1, r1, #1 - strh r1, [r0] - subs r0, #2 - strh r1, [r0] - adds r1, r4, #0 - adds r1, #0x79 - movs r0, #0x1c - strb r0, [r1] - adds r0, r4, #0 - adds r0, #0x84 - ldr r0, [r0] - str r4, [r0, #8] -_0809C5A4: - ldr r0, _0809C5C0 @ =gUnk_08123DDC - ldrb r1, [r4, #0xa] - lsls r1, r1, #2 - adds r1, r1, r0 - ldrb r1, [r1] - adds r0, r4, #0 - bl UpdateSprite - adds r0, r4, #0 - bl sub_0809C5C4 -_0809C5BA: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0809C5C0: .4byte gUnk_08123DDC - - thumb_func_start sub_0809C5C4 -sub_0809C5C4: @ 0x0809C5C4 - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - ldrb r0, [r5, #0xa] - cmp r0, #7 - bls _0809C5D0 - b _0809C7DE -_0809C5D0: - lsls r0, r0, #2 - ldr r1, _0809C5DC @ =_0809C5E0 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0809C5DC: .4byte _0809C5E0 -_0809C5E0: @ jump table - .4byte _0809C738 @ case 0 - .4byte _0809C600 @ case 1 - .4byte _0809C600 @ case 2 - .4byte _0809C600 @ case 3 - .4byte _0809C600 @ case 4 - .4byte _0809C6B8 @ case 5 - .4byte _0809C7B4 @ case 6 - .4byte _0809C7D2 @ case 7 -_0809C600: - ldr r0, [r5, #0x50] - adds r1, r5, #0 - bl sub_0806FAD8 - ldr r0, [r5, #0x50] - ldrb r0, [r0, #0xd] - adds r6, r5, #0 - adds r6, #0x84 - cmp r0, #6 - bne _0809C630 - movs r0, #0xf - ldrsb r0, [r5, r0] - cmp r0, #0 - bge _0809C624 - ldr r0, [r6] - ldrb r0, [r0] - rsbs r0, r0, #0 - b _0809C628 -_0809C624: - ldr r0, [r6] - ldrb r0, [r0] -_0809C628: - strb r0, [r5, #0xf] - adds r0, r5, #0 - bl sub_0809CBE4 -_0809C630: - ldr r4, [r5, #0x50] - adds r0, r4, #0 - adds r0, #0x76 - ldrh r1, [r0] - movs r0, #0x80 - lsls r0, r0, #9 - bl __divsi3 - adds r3, r0, #0 - lsls r0, r3, #0xd - lsrs r3, r0, #8 - ldr r0, _0809C660 @ =0xFFFFE000 - adds r3, r3, r0 - ldr r0, [r6] - ldr r0, [r0, #8] - adds r0, #0x45 - ldrb r0, [r0] - cmp r0, #1 - bne _0809C664 - movs r1, #0x88 - lsls r1, r1, #6 - adds r3, r3, r1 - b _0809C66C - .align 2, 0 -_0809C660: .4byte 0xFFFFE000 -_0809C664: - lsrs r0, r3, #1 - movs r1, #0x88 - lsls r1, r1, #6 - adds r3, r0, r1 -_0809C66C: - adds r2, r4, #0 - adds r2, #0x7b - ldr r1, _0809C6B0 @ =gUnk_08123E18 - ldrb r0, [r5, #0xa] - subs r0, #1 - adds r0, r0, r1 - ldrb r0, [r0] - ldrb r2, [r2] - adds r0, r0, r2 - rsbs r0, r0, #0 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - adds r0, r5, #0 - adds r2, r3, #0 - bl sub_0809CB70 - ldr r2, [r5, #0x50] - adds r2, #0x7b - ldr r1, _0809C6B4 @ =gUnk_08123E1C - ldrb r0, [r5, #0xa] - subs r0, #1 - adds r0, r0, r1 - ldrb r1, [r0] - ldrb r2, [r2] - adds r1, r1, r2 - adds r0, r5, #0 - adds r0, #0x79 - ldrb r0, [r0] - adds r0, r0, r1 - adds r1, r5, #0 - adds r1, #0x7b - strb r0, [r1] - b _0809C7BC - .align 2, 0 -_0809C6B0: .4byte gUnk_08123E18 -_0809C6B4: .4byte gUnk_08123E1C -_0809C6B8: - ldr r0, [r5, #0x50] - adds r1, r5, #0 - bl sub_0806FAD8 - ldr r0, [r5, #0x50] - ldrb r0, [r0, #0xd] - adds r6, r5, #0 - adds r6, #0x79 - adds r7, r5, #0 - adds r7, #0x76 - cmp r0, #4 - beq _0809C6F6 - adds r0, r5, #0 - adds r0, #0x45 - ldrb r0, [r0] - cmp r0, #1 - beq _0809C6F6 - ldrb r0, [r6] - cmp r0, #0x1c - bls _0809C6E4 - subs r0, #1 - strb r0, [r6] -_0809C6E4: - ldrh r0, [r7] - movs r1, #0x80 - lsls r1, r1, #1 - cmp r0, r1 - bls _0809C6F4 - subs r0, #1 - strh r0, [r7] - b _0809C6F6 -_0809C6F4: - strh r1, [r7] -_0809C6F6: - ldr r4, [r5, #0x50] - adds r0, r4, #0 - adds r0, #0x74 - ldrh r1, [r0] - movs r0, #0x80 - lsls r0, r0, #9 - bl __divsi3 - adds r3, r0, #0 - ldrb r0, [r6] - lsls r0, r0, #8 - muls r0, r3, r0 - lsrs r3, r0, #8 - adds r4, #0x7b - ldrb r0, [r4] - adds r0, #0x80 - rsbs r0, r0, #0 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - adds r0, r5, #0 - adds r2, r3, #0 - bl sub_0809CB70 - ldr r0, [r5, #0x50] - adds r0, #0x7b - ldrb r0, [r0] - adds r1, r5, #0 - adds r1, #0x7b - strb r0, [r1] - ldrh r1, [r7] - adds r0, r5, #0 - adds r0, #0x74 - b _0809C7C4 -_0809C738: - movs r0, #0x37 - bl sub_0807CBE4 - cmp r0, #0 - beq _0809C74A - adds r0, r5, #0 - movs r1, #0x1e - bl sub_0805E4E0 -_0809C74A: - ldr r1, _0809C7A8 @ =gUnk_08123DF8 - ldrb r0, [r5, #0xd] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r5, #0 - bl _call_via_r1 - ldrb r0, [r5, #0xf] - cmp r0, #0 - beq _0809C7BC - ldr r0, _0809C7AC @ =gUnk_030010A0 - ldr r0, [r0] - movs r1, #7 - ands r0, r1 - cmp r0, #0 - bne _0809C772 - ldr r0, [r5, #0x54] - bl sub_080A2B80 -_0809C772: - adds r3, r5, #0 - adds r3, #0x7e - ldrh r0, [r3] - cmp r0, #0 - beq _0809C7BC - ldr r2, [r5, #0x54] - movs r1, #0 - ldrsh r0, [r3, r1] - ldr r1, [r2, #0x20] - subs r1, r1, r0 - str r1, [r2, #0x20] - ldr r0, [r2, #0x34] - adds r0, r0, r1 - str r0, [r2, #0x34] - ldr r0, [r5, #0x54] - ldr r1, [r0, #0x20] - movs r0, #0xc0 - lsls r0, r0, #6 - cmp r1, r0 - beq _0809C7A0 - ldr r0, _0809C7B0 @ =0xFFFFD000 - cmp r1, r0 - bne _0809C7BC -_0809C7A0: - ldrh r0, [r3] - rsbs r0, r0, #0 - strh r0, [r3] - b _0809C7BC - .align 2, 0 -_0809C7A8: .4byte gUnk_08123DF8 -_0809C7AC: .4byte gUnk_030010A0 -_0809C7B0: .4byte 0xFFFFD000 -_0809C7B4: - ldr r0, [r5, #0x50] - adds r1, r5, #0 - bl CopyPosition -_0809C7BC: - adds r0, r5, #0 - adds r0, #0x76 - ldrh r1, [r0] - subs r0, #2 -_0809C7C4: - ldrh r2, [r0] - adds r0, #6 - ldrh r3, [r0] - adds r0, r5, #0 - bl sub_0805EC9C - b _0809C7DE -_0809C7D2: - ldr r0, _0809C7E0 @ =gRoomControls - ldr r0, [r0, #0x30] - cmp r0, r5 - beq _0809C7DE - bl sub_0805E780 -_0809C7DE: - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0809C7E0: .4byte gRoomControls - - thumb_func_start sub_0809C7E4 -sub_0809C7E4: @ 0x0809C7E4 - push {r4, r5, lr} - adds r5, r0, #0 - ldrb r0, [r5, #0xf] - cmp r0, #0 - beq _0809C84A - adds r3, r5, #0 - adds r3, #0x7e - ldrh r0, [r3] - cmp r0, #0 - bne _0809C82A - ldr r2, [r5, #0x54] - movs r0, #0x36 - ldrsh r1, [r2, r0] - movs r0, #0x10 - rsbs r0, r0, #0 - cmp r1, r0 - ble _0809C814 - ldr r0, [r2, #0x34] - ldr r1, _0809C810 @ =0xFFFFC000 - adds r0, r0, r1 - str r0, [r2, #0x34] - b _0809C82A - .align 2, 0 -_0809C810: .4byte 0xFFFFC000 -_0809C814: - ldr r0, [r2, #0x34] - ldr r1, _0809C84C @ =0xFFFFF000 - adds r0, r0, r1 - str r0, [r2, #0x34] - ldr r1, [r5, #0x54] - movs r0, #0xc0 - lsls r0, r0, #6 - str r0, [r1, #0x20] - movs r0, #0x80 - lsls r0, r0, #2 - strh r0, [r3] -_0809C82A: - adds r4, r5, #0 - adds r4, #0x79 - ldrb r0, [r4] - subs r0, #1 - strb r0, [r4] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xff - bne _0809C84A - ldr r0, _0809C850 @ =0x00000B43 - bl TextboxTryNoOverlap - movs r0, #1 - strb r0, [r5, #0xd] - movs r0, #8 - strb r0, [r4] -_0809C84A: - pop {r4, r5, pc} - .align 2, 0 -_0809C84C: .4byte 0xFFFFF000 -_0809C850: .4byte 0x00000B43 - - thumb_func_start sub_0809C854 -sub_0809C854: @ 0x0809C854 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r0, _0809C8A8 @ =gTextBox - ldrb r1, [r0] - movs r0, #0x7f - ands r0, r1 - cmp r0, #0 - bne _0809C8B8 - adds r5, r4, #0 - adds r5, #0x79 - ldrb r0, [r5] - subs r0, #1 - strb r0, [r5] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xff - bne _0809C8B8 - adds r0, r4, #0 - movs r1, #0x91 - movs r2, #7 - movs r3, #0 - bl CreateObjectWithParent - adds r1, r0, #0 - cmp r1, #0 - beq _0809C892 - ldrh r0, [r1, #0x32] - subs r0, #0x50 - strh r0, [r1, #0x32] - ldr r0, _0809C8AC @ =gRoomControls - str r1, [r0, #0x30] -_0809C892: - ldrb r0, [r4, #0xf] - cmp r0, #2 - bhi _0809C8B0 - movs r0, #2 - strb r0, [r4, #0xd] - movs r0, #0x1e - strb r0, [r5] - movs r0, #0xe6 - bl PlaySFX - b _0809C8B8 - .align 2, 0 -_0809C8A8: .4byte gTextBox -_0809C8AC: .4byte gRoomControls -_0809C8B0: - movs r0, #3 - strb r0, [r4, #0xd] - movs r0, #0x78 - strb r0, [r5] -_0809C8B8: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_0809C8BC -sub_0809C8BC: @ 0x0809C8BC - push {lr} - adds r2, r0, #0 - adds r3, r2, #0 - adds r3, #0x79 - ldrb r0, [r3] - subs r1, r0, #1 - strb r1, [r3] - lsls r0, r1, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xff - bne _0809C8E2 - movs r0, #1 - strb r0, [r2, #0xd] - movs r0, #0x1e - strb r0, [r3] - ldrb r0, [r2, #0xf] - adds r0, #1 - strb r0, [r2, #0xf] - b _0809C922 -_0809C8E2: - movs r0, #3 - ands r0, r1 - cmp r0, #1 - beq _0809C90A - cmp r0, #1 - bgt _0809C8F4 - cmp r0, #0 - beq _0809C8FE - b _0809C922 -_0809C8F4: - cmp r0, #2 - beq _0809C8FE - cmp r0, #3 - beq _0809C916 - b _0809C922 -_0809C8FE: - ldrh r1, [r2, #0x2e] - movs r0, #0x10 - rsbs r0, r0, #0 - ands r0, r1 - adds r0, #8 - b _0809C920 -_0809C90A: - ldrh r1, [r2, #0x2e] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - adds r0, #4 - b _0809C920 -_0809C916: - ldrh r1, [r2, #0x2e] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - subs r0, #4 -_0809C920: - strh r0, [r2, #0x2e] -_0809C922: - pop {pc} - - thumb_func_start sub_0809C924 -sub_0809C924: @ 0x0809C924 - push {r4, r5, lr} - adds r5, r0, #0 - adds r1, r5, #0 - adds r1, #0x79 - ldrb r0, [r1] - subs r0, #1 - strb r0, [r1] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xff - beq _0809C948 - adds r0, r5, #0 - movs r1, #0x87 - movs r2, #6 - movs r3, #0 - bl CreateObjectWithParent - b _0809C980 -_0809C948: - movs r0, #4 - strb r0, [r5, #0xd] - movs r0, #0x3c - strb r0, [r1] - ldr r4, _0809C984 @ =0x00000115 - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_080ADF80 - ldr r0, [r5, #0x50] - adds r1, r4, #0 - bl sub_080ADF80 - adds r0, r5, #0 - movs r1, #0xef - bl sub_0801D2B4 - ldr r0, [r5, #0x50] - movs r1, #0xef - bl sub_0801D2B4 - adds r0, r5, #0 - movs r1, #0xef - bl sub_0809CC30 - movs r0, #0xe8 - bl PlaySFX -_0809C980: - pop {r4, r5, pc} - .align 2, 0 -_0809C984: .4byte 0x00000115 - - thumb_func_start sub_0809C988 -sub_0809C988: @ 0x0809C988 - push {lr} - adds r2, r0, #0 - adds r1, r2, #0 - adds r1, #0x79 - ldrb r0, [r1] - subs r0, #1 - strb r0, [r1] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xff - bne _0809C9AC - movs r0, #5 - strb r0, [r2, #0xd] - movs r0, #0xb4 - strb r0, [r1] - movs r0, #3 - strb r0, [r2, #0xb] - b _0809C9DC -_0809C9AC: - ldr r0, _0809C9C8 @ =gUnk_030010A0 - ldr r0, [r0] - movs r1, #8 - ands r0, r1 - cmp r0, #0 - beq _0809C9CC - adds r0, r2, #0 - adds r0, #0x84 - ldr r0, [r0] - ldr r1, [r0, #8] - adds r1, #0x76 - ldrh r0, [r1] - subs r0, #4 - b _0809C9DA - .align 2, 0 -_0809C9C8: .4byte gUnk_030010A0 -_0809C9CC: - adds r0, r2, #0 - adds r0, #0x84 - ldr r0, [r0] - ldr r1, [r0, #8] - adds r1, #0x76 - ldrh r0, [r1] - adds r0, #4 -_0809C9DA: - strh r0, [r1] -_0809C9DC: - pop {pc} - .align 2, 0 - - thumb_func_start sub_0809C9E0 -sub_0809C9E0: @ 0x0809C9E0 - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - ldr r0, _0809CA04 @ =gUnk_030010A0 - ldr r1, [r0] - movs r2, #2 - ands r1, r2 - adds r7, r0, #0 - cmp r1, #0 - beq _0809CA08 - adds r2, r4, #0 - adds r2, #0x84 - ldr r0, [r2] - ldr r1, [r0, #8] - adds r1, #0x76 - ldrh r0, [r1] - subs r0, #8 - b _0809CA16 - .align 2, 0 -_0809CA04: .4byte gUnk_030010A0 -_0809CA08: - adds r2, r4, #0 - adds r2, #0x84 - ldr r0, [r2] - ldr r1, [r0, #8] - adds r1, #0x76 - ldrh r0, [r1] - adds r0, #8 -_0809CA16: - strh r0, [r1] - adds r5, r2, #0 - ldr r0, [r7] - movs r6, #3 - ands r0, r6 - cmp r0, #0 - bne _0809CA30 - adds r0, r4, #0 - movs r1, #0x87 - movs r2, #2 - movs r3, #0 - bl CreateObjectWithParent -_0809CA30: - adds r2, r4, #0 - adds r2, #0x79 - ldrb r0, [r2] - adds r1, r0, #0 - cmp r1, #0 - bne _0809CA92 - ldr r0, [r4, #0x54] - adds r0, #0x62 - strb r1, [r0] - ldr r0, [r4, #0x54] - movs r1, #0x80 - lsls r1, r1, #2 - adds r2, #2 - ldrb r2, [r2] - rsbs r2, r2, #0 - bl sub_0806F62C - ldr r1, [r4, #0x54] - adds r0, r4, #0 - movs r2, #0x48 - bl sub_0806FC80 - cmp r0, #0 - beq _0809CAC4 - movs r0, #6 - strb r0, [r4, #0xd] - movs r1, #0 - movs r0, #0xc0 - strh r0, [r4, #0x24] - strb r1, [r4, #0xb] - strb r1, [r4, #0xf] - ldr r2, [r4, #0x54] - ldrb r1, [r2, #0x18] - subs r0, #0xc4 - ands r0, r1 - strb r0, [r2, #0x18] - ldr r0, [r5] - ldr r0, [r0, #8] - adds r0, #0x76 - movs r1, #0x80 - lsls r1, r1, #1 - strh r1, [r0] - ldr r1, [r5] - movs r0, #1 - strb r0, [r1] - movs r0, #0xed - bl PlaySFX - b _0809CAC4 -_0809CA92: - subs r0, #1 - strb r0, [r2] - ldr r0, [r7] - ands r0, r6 - cmp r0, #1 - beq _0809CAB4 - cmp r0, #1 - blo _0809CAAC - cmp r0, #2 - beq _0809CAAC - cmp r0, #3 - beq _0809CABC - b _0809CAC4 -_0809CAAC: - ldr r0, [r4, #0x54] - adds r0, #0x62 - movs r1, #0 - b _0809CAC2 -_0809CAB4: - ldr r0, [r4, #0x54] - adds r0, #0x62 - movs r1, #0xfc - b _0809CAC2 -_0809CABC: - ldr r0, [r4, #0x54] - adds r0, #0x62 - movs r1, #4 -_0809CAC2: - strb r1, [r0] -_0809CAC4: - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_0809CAC8 -sub_0809CAC8: @ 0x0809CAC8 - push {r4, r5, lr} - adds r5, r0, #0 - bl sub_0806F69C - ldr r2, _0809CB3C @ =gRoomControls - ldrh r0, [r2, #8] - movs r1, #0xe4 - lsls r1, r1, #1 - adds r0, r0, r1 - movs r3, #0x32 - ldrsh r1, [r5, r3] - cmp r0, r1 - bge _0809CB26 - movs r0, #4 - strb r0, [r2, #0xe] - ldr r0, _0809CB40 @ =gLinkEntity - str r0, [r2, #0x30] - movs r0, #0x9b - bl sub_0807CCB4 - ldr r0, [r5, #0x50] - bl sub_0805E7BC - adds r4, r5, #0 - adds r4, #0x84 - ldr r0, [r4] - ldr r0, [r0, #8] - bl sub_0805E7BC - ldr r0, [r4] - ldr r0, [r0, #0x20] - bl sub_0805E7BC - ldr r0, [r4] - ldr r0, [r0, #0x24] - bl sub_0805E7BC - ldr r0, [r4] - ldr r0, [r0, #0x28] - bl sub_0805E7BC - ldr r0, [r4] - ldr r0, [r0, #0x2c] - bl sub_0805E7BC - movs r0, #7 - strb r0, [r5, #0xd] -_0809CB26: - ldr r0, _0809CB44 @ =gUnk_030010A0 - ldr r0, [r0] - movs r1, #0xf - ands r0, r1 - cmp r0, #0 - bne _0809CB38 - ldr r0, _0809CB48 @ =0x00000163 - bl PlaySFX -_0809CB38: - pop {r4, r5, pc} - .align 2, 0 -_0809CB3C: .4byte gRoomControls -_0809CB40: .4byte gLinkEntity -_0809CB44: .4byte gUnk_030010A0 -_0809CB48: .4byte 0x00000163 - - thumb_func_start sub_0809CB4C -sub_0809CB4C: @ 0x0809CB4C - push {lr} - ldr r0, _0809CB68 @ =gRoomControls - ldrb r1, [r0, #0xf] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - bne _0809CB66 - ldr r0, _0809CB6C @ =0x00000B44 - movs r1, #0 - bl sub_08078AA8 - bl sub_0805E780 -_0809CB66: - pop {pc} - .align 2, 0 -_0809CB68: .4byte gRoomControls -_0809CB6C: .4byte 0x00000B44 - - thumb_func_start sub_0809CB70 -sub_0809CB70: @ 0x0809CB70 - push {r4, r5, r6, lr} - mov r6, sb - mov r5, r8 - push {r5, r6} - adds r6, r0, #0 - adds r4, r1, #0 - adds r5, r2, #0 - ldr r0, _0809CBE0 @ =gUnk_080C9160 - mov sb, r0 - lsls r0, r4, #1 - add r0, sb - movs r1, #0 - ldrsh r0, [r0, r1] - lsls r5, r5, #0x10 - asrs r5, r5, #0x10 - adds r1, r5, #0 - bl sub_0806F9EC - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r1, #0x80 - lsls r1, r1, #1 - mov r8, r1 - bl sub_0806FA04 - ldr r1, [r6, #0x50] - lsls r0, r0, #0x10 - asrs r0, r0, #8 - ldr r1, [r1, #0x2c] - adds r1, r1, r0 - str r1, [r6, #0x2c] - adds r4, #0x40 - lsls r4, r4, #1 - add r4, sb - movs r1, #0 - ldrsh r0, [r4, r1] - adds r1, r5, #0 - bl sub_0806F9EC - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - mov r1, r8 - bl sub_0806FA04 - ldr r2, [r6, #0x50] - lsls r0, r0, #0x10 - asrs r0, r0, #8 - ldr r1, [r2, #0x30] - subs r1, r1, r0 - str r1, [r6, #0x30] - ldr r0, [r2, #0x34] - str r0, [r6, #0x34] - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, pc} - .align 2, 0 -_0809CBE0: .4byte gUnk_080C9160 - - thumb_func_start sub_0809CBE4 -sub_0809CBE4: @ 0x0809CBE4 - push {r4, lr} - adds r2, r0, #0 - adds r3, r2, #0 - adds r3, #0x79 - ldrb r0, [r2, #0xf] - ldrb r4, [r3] - adds r1, r0, r4 - strb r1, [r3] - ldrb r4, [r2, #0xf] - movs r0, #0xf - ldrsb r0, [r2, r0] - cmp r0, #0 - bge _0809CC16 - ldrb r0, [r2, #0xe] - lsls r1, r1, #0x18 - lsls r0, r0, #0x18 - cmn r1, r0 - bge _0809CC2C - rsbs r0, r4, #0 - strb r0, [r2, #0xf] - movs r0, #0xcf - lsls r0, r0, #1 - bl PlaySFX - b _0809CC2C -_0809CC16: - movs r0, #0 - ldrsb r0, [r3, r0] - ldrb r1, [r2, #0xe] - cmp r0, r1 - ble _0809CC2C - rsbs r0, r4, #0 - strb r0, [r2, #0xf] - movs r0, #0xcf - lsls r0, r0, #1 - bl PlaySFX -_0809CC2C: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0809CC30 -sub_0809CC30: @ 0x0809CC30 - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r6, r1, #0 - adds r4, #0x84 - ldr r0, [r4] - ldr r0, [r0, #8] - bl sub_0801D2B4 - movs r5, #0 -_0809CC42: - ldr r0, [r4] - lsls r1, r5, #2 - adds r0, #0x20 - adds r0, r0, r1 - ldr r0, [r0] - adds r1, r6, #0 - bl sub_0801D2B4 - adds r5, #1 - cmp r5, #3 - bls _0809CC42 - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_0809CC5C -sub_0809CC5C: @ 0x0809CC5C - push {lr} - ldr r2, _0809CC70 @ =gUnk_08123E20 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0809CC70: .4byte gUnk_08123E20 - - thumb_func_start sub_0809CC74 -sub_0809CC74: @ 0x0809CC74 - push {r4, r5, lr} - adds r5, r0, #0 - movs r4, #1 - strb r4, [r5, #0xc] - bl UpdateSpriteOrderAndFlip - ldrb r0, [r5, #0xa] - cmp r0, #0 - bne _0809CCD4 - adds r2, r5, #0 - adds r2, #0x29 - ldrb r0, [r2] - movs r1, #8 - rsbs r1, r1, #0 - ands r1, r0 - movs r0, #5 - orrs r1, r0 - strb r1, [r2] - movs r4, #0 -_0809CC9A: - movs r0, #0x92 - movs r1, #1 - adds r2, r4, #0 - bl CreateObject - adds r1, r0, #0 - adds r4, #1 - cmp r1, #0 - beq _0809CCBE - str r5, [r1, #0x50] - lsrs r2, r4, #1 - lsls r2, r2, #0x14 - ldr r0, _0809CCCC @ =0xFFF80000 - adds r2, r2, r0 - adds r0, r5, #0 - ldr r3, _0809CCD0 @ =0xFFF20000 - bl PositionRelative -_0809CCBE: - cmp r4, #2 - bls _0809CC9A - adds r0, r5, #0 - bl sub_0809CDF0 - b _0809CD0A - .align 2, 0 -_0809CCCC: .4byte 0xFFF80000 -_0809CCD0: .4byte 0xFFF20000 -_0809CCD4: - ldrb r1, [r5, #0xb] - adds r0, r4, #0 - ands r0, r1 - cmp r0, #0 - beq _0809CCF2 - ldrb r1, [r5, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r5, #0x18] - movs r0, #0x14 - strb r0, [r5, #0xe] - b _0809CD02 -_0809CCF2: - movs r0, #2 - strb r0, [r5, #0xc] - ands r0, r1 - movs r1, #0x12 - cmp r0, #0 - beq _0809CD00 - movs r1, #0x14 -_0809CD00: - strb r1, [r5, #0xe] -_0809CD02: - adds r0, r5, #0 - movs r1, #0 - bl UpdateSprite -_0809CD0A: - pop {r4, r5, pc} - - thumb_func_start sub_0809CD0C -sub_0809CD0C: @ 0x0809CD0C - push {r4, r5, r6, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xa] - cmp r0, #0 - beq _0809CDAC - adds r0, r4, #0 - bl sub_08004274 - adds r1, r4, #0 - adds r1, #0x5a - ldrb r2, [r1] - movs r0, #1 - ands r0, r2 - cmp r0, #0 - beq _0809CD36 - movs r0, #0xfe - ands r0, r2 - strb r0, [r1] - ldrh r0, [r4, #0x32] - adds r0, #1 - strh r0, [r4, #0x32] -_0809CD36: - ldrb r1, [r1] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0809CD56 - adds r0, r4, #0 - adds r0, #0x59 - ldrb r0, [r0] - cmp r0, #1 - bne _0809CD56 - movs r0, #2 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - subs r0, #6 - ands r0, r1 - strb r0, [r4, #0x18] -_0809CD56: - ldrb r0, [r4, #0xf] - cmp r0, #0 - bne _0809CDAC - ldr r5, _0809CDB0 @ =gLinkEntity - adds r6, r5, #0 - adds r6, #0x3d - movs r0, #0 - ldrsb r0, [r6, r0] - cmp r0, #0 - bne _0809CDAC - ldrb r0, [r4, #0x1e] - cmp r0, #0 - beq _0809CDAC - adds r0, r4, #0 - adds r1, r5, #0 - movs r2, #4 - bl sub_0806FC80 - cmp r0, #0 - beq _0809CDAC - ldrb r0, [r4, #0xf] - adds r0, #1 - strb r0, [r4, #0xf] - movs r0, #2 - rsbs r0, r0, #0 - bl ModHealth - adds r0, r5, #0 - movs r1, #0x7a - bl sub_0800449C - movs r1, #0x10 - strb r1, [r6] - adds r0, r5, #0 - adds r0, #0x3e - strb r1, [r0] - adds r2, r5, #0 - adds r2, #0x42 - movs r0, #0xc - strb r0, [r2] - adds r0, r5, #0 - adds r0, #0x46 - strh r1, [r0] -_0809CDAC: - pop {r4, r5, r6, pc} - .align 2, 0 -_0809CDB0: .4byte gLinkEntity - - thumb_func_start sub_0809CDB4 -sub_0809CDB4: @ 0x0809CDB4 - push {lr} - adds r3, r0, #0 - ldrb r0, [r3, #0xe] - subs r0, #1 - strb r0, [r3, #0xe] - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - bne _0809CDEC - movs r2, #1 - movs r0, #1 - strb r0, [r3, #0xc] - movs r0, #0x1e - strb r0, [r3, #0xe] - strb r1, [r3, #0xf] - ldrb r1, [r3, #0x18] - subs r0, #0x22 - ands r0, r1 - orrs r0, r2 - strb r0, [r3, #0x18] - ldr r0, [r3, #0x50] - ldrh r0, [r0, #0x32] - subs r0, #0xe - strh r0, [r3, #0x32] - adds r0, r3, #0 - movs r1, #0 - bl UpdateSprite -_0809CDEC: - pop {pc} - .align 2, 0 - - thumb_func_start sub_0809CDF0 -sub_0809CDF0: @ 0x0809CDF0 - push {r4, r5, r6, lr} - adds r4, r0, #0 - movs r0, #0x2e - ldrsh r1, [r4, r0] - ldr r2, _0809CE80 @ =gRoomControls - ldrh r0, [r2, #6] - subs r1, r1, r0 - asrs r1, r1, #4 - movs r3, #0x3f - ands r1, r3 - movs r5, #0x32 - ldrsh r0, [r4, r5] - ldrh r2, [r2, #8] - subs r0, r0, r2 - asrs r0, r0, #4 - ands r0, r3 - lsls r0, r0, #6 - orrs r1, r0 - adds r0, r4, #0 - adds r0, #0x80 - strh r1, [r0] - ldrh r6, [r0] - ldr r0, _0809CE84 @ =0x0000402E - subs r1, r6, #1 - adds r4, #0x38 - ldrb r2, [r4] - bl sub_0800015E - ldr r5, _0809CE88 @ =0x00004022 - ldrb r2, [r4] - adds r0, r5, #0 - adds r1, r6, #0 - bl sub_0800015E - adds r1, r6, #1 - ldrb r2, [r4] - adds r0, r5, #0 - bl sub_0800015E - adds r5, #4 - adds r1, r6, #0 - subs r1, #0x41 - ldrb r2, [r4] - adds r0, r5, #0 - bl sub_0800015E - adds r1, r6, #0 - subs r1, #0x40 - ldrb r2, [r4] - adds r0, r5, #0 - bl sub_0800015E - ldr r0, _0809CE8C @ =0x00004024 - adds r1, r6, #0 - subs r1, #0x3f - ldrb r2, [r4] - bl sub_0800015E - adds r1, r6, #0 - subs r1, #0x81 - ldrb r2, [r4] - adds r0, r5, #0 - bl sub_0800015E - adds r1, r6, #0 - subs r1, #0x80 - ldrb r2, [r4] - adds r0, r5, #0 - bl sub_0800015E - pop {r4, r5, r6, pc} - .align 2, 0 -_0809CE80: .4byte gRoomControls -_0809CE84: .4byte 0x0000402E -_0809CE88: .4byte 0x00004022 -_0809CE8C: .4byte 0x00004024 - - thumb_func_start sub_0809CE90 -sub_0809CE90: @ 0x0809CE90 - push {lr} - ldr r2, _0809CEA4 @ =gUnk_08123E80 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0809CEA4: .4byte gUnk_08123E80 - - thumb_func_start sub_0809CEA8 -sub_0809CEA8: @ 0x0809CEA8 - push {r4, lr} - adds r4, r0, #0 - movs r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - bl UpdateSpriteOrderAndFlip - adds r0, r4, #0 - movs r1, #0 - bl UpdateSprite - pop {r4, pc} - - thumb_func_start sub_0809CEC0 -sub_0809CEC0: @ 0x0809CEC0 - push {lr} - bl sub_08004274 - pop {pc} - - thumb_func_start sub_0809CEC8 -sub_0809CEC8: @ 0x0809CEC8 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0809CF06 - adds r0, #1 - strb r0, [r4, #0xc] - adds r1, r4, #0 - adds r1, #0x38 - movs r0, #2 - strb r0, [r1] - ldrb r0, [r4, #0xa] - cmp r0, #0 - bne _0809CEEE - ldrb r1, [r4, #0x18] - movs r0, #0x41 - rsbs r0, r0, #0 - ands r0, r1 - b _0809CEF4 -_0809CEEE: - ldrb r0, [r4, #0x18] - movs r1, #0x40 - orrs r0, r1 -_0809CEF4: - strb r0, [r4, #0x18] - adds r0, r4, #0 - bl UpdateSpriteOrderAndFlip - adds r0, r4, #0 - movs r1, #0 - bl UpdateSprite - b _0809CF0C -_0809CF06: - adds r0, r4, #0 - bl sub_08004274 -_0809CF0C: - adds r4, #0x59 - ldrb r0, [r4] - cmp r0, #0xff - bne _0809CF20 - bl Random - movs r1, #0xf - ands r0, r1 - adds r0, #0x10 - strb r0, [r4] -_0809CF20: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0809CF24 -sub_0809CF24: @ 0x0809CF24 - push {lr} - ldr r2, _0809CF38 @ =gUnk_08123EC0 - ldrb r1, [r0, #0xa] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0809CF38: .4byte gUnk_08123EC0 - - thumb_func_start sub_0809CF3C -sub_0809CF3C: @ 0x0809CF3C - push {lr} - ldr r2, _0809CF50 @ =gUnk_08123EEC - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0809CF50: .4byte gUnk_08123EEC - - thumb_func_start sub_0809CF54 -sub_0809CF54: @ 0x0809CF54 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] - movs r0, #0x31 - strb r0, [r4, #0xe] - movs r0, #1 - strb r0, [r4, #0xf] - ldr r0, _0809CFDC @ =0xFFFE8000 - str r0, [r4, #0x20] - ldr r0, _0809CFE0 @ =0xFFC74000 - str r0, [r4, #0x34] - adds r1, r4, #0 - adds r1, #0x68 - movs r0, #0xf8 - lsls r0, r0, #8 - strh r0, [r1] - movs r0, #0xa0 - lsls r0, r0, #2 - strh r0, [r4, #0x24] - movs r0, #8 - strb r0, [r4, #0x15] - subs r1, #0x30 - movs r0, #2 - strb r0, [r1] - ldr r0, _0809CFE4 @ =gRoomControls - ldrh r0, [r0, #0xa] - strh r0, [r4, #0x2e] - ldr r0, _0809CFE8 @ =0x00000123 - bl PlaySFX - adds r0, r4, #0 - bl UpdateSpriteOrderAndFlip - adds r0, r4, #0 - movs r1, #0 - bl LoadAnimation - movs r0, #0x95 - movs r1, #1 - movs r2, #0 - bl CreateObject - adds r5, r0, #0 - cmp r5, #0 - beq _0809CFD8 - str r4, [r5, #0x50] - movs r3, #0x80 - lsls r3, r3, #0xc - adds r0, r4, #0 - adds r1, r5, #0 - movs r2, #0 - bl PositionRelative - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_0806FAB0 -_0809CFD8: - pop {r4, r5, pc} - .align 2, 0 -_0809CFDC: .4byte 0xFFFE8000 -_0809CFE0: .4byte 0xFFC74000 -_0809CFE4: .4byte gRoomControls -_0809CFE8: .4byte 0x00000123 - - thumb_func_start sub_0809CFEC -sub_0809CFEC: @ 0x0809CFEC - push {r4, lr} - adds r4, r0, #0 - bl sub_0806F69C - adds r0, r4, #0 - adds r0, #0x68 - movs r2, #0 - ldrsh r1, [r0, r2] - adds r0, r4, #0 - bl sub_08003FC4 - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _0809D018 - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0 - bne _0809D026 - strb r0, [r4, #0xf] - b _0809D026 -_0809D018: - adds r0, r4, #0 - bl sub_080040A8 - cmp r0, #0 - bne _0809D026 - bl sub_0805E780 -_0809D026: - adds r0, r4, #0 - bl sub_080042B8 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0809D030 -sub_0809D030: @ 0x0809D030 - push {lr} - ldr r2, _0809D044 @ =gUnk_08123EF4 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0809D044: .4byte gUnk_08123EF4 - - thumb_func_start sub_0809D048 -sub_0809D048: @ 0x0809D048 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] - adds r1, r4, #0 - adds r1, #0x38 - movs r0, #1 - strb r0, [r1] - adds r0, r4, #0 - bl UpdateSpriteOrderAndFlip - adds r0, r4, #0 - movs r1, #0x17 - bl LoadAnimation - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0809D06C -sub_0809D06C: @ 0x0809D06C - push {lr} - ldr r2, _0809D080 @ =gUnk_08123EFC - ldrb r1, [r0, #0xd] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0809D080: .4byte gUnk_08123EFC - - thumb_func_start sub_0809D084 -sub_0809D084: @ 0x0809D084 - push {lr} - adds r1, r0, #0 - ldr r0, [r1, #0x50] - cmp r0, #0 - beq _0809D0A8 - ldrb r2, [r0, #0xf] - cmp r2, #0 - beq _0809D0A0 - movs r3, #0x80 - lsls r3, r3, #0xc - movs r2, #0 - bl PositionRelative - b _0809D0A8 -_0809D0A0: - ldrb r0, [r1, #0xd] - adds r0, #1 - strb r0, [r1, #0xd] - str r2, [r1, #0x20] -_0809D0A8: - pop {pc} - .align 2, 0 - - thumb_func_start sub_0809D0AC -sub_0809D0AC: @ 0x0809D0AC - push {r4, lr} - adds r4, r0, #0 - movs r1, #0xc0 - lsls r1, r1, #5 - bl sub_080044EC - cmp r0, #1 - bhi _0809D0F0 - movs r2, #0 - movs r0, #2 - strb r0, [r4, #0xa] - movs r1, #1 - strb r1, [r4, #0xc] - str r2, [r4, #0x34] - adds r0, r4, #0 - adds r0, #0x38 - strb r1, [r0] - movs r0, #0x45 - bl sub_0807CCB4 - movs r0, #0x72 - bl PlaySFX - adds r0, r4, #0 - movs r1, #0x11 - movs r2, #0 - bl CreateFX - adds r1, r0, #0 - cmp r1, #0 - beq _0809D0F0 - adds r0, r4, #0 - bl sub_0806FAD8 -_0809D0F0: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0809D0F4 -sub_0809D0F4: @ 0x0809D0F4 - push {lr} - ldr r2, _0809D108 @ =gUnk_08123F04 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0809D108: .4byte gUnk_08123F04 - - thumb_func_start sub_0809D10C -sub_0809D10C: @ 0x0809D10C - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] - adds r1, r4, #0 - adds r1, #0x38 - movs r0, #1 - strb r0, [r1] - adds r0, r4, #0 - bl UpdateSpriteOrderAndFlip - adds r0, r4, #0 - movs r1, #0x17 - bl LoadAnimation - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0809D130 -sub_0809D130: @ 0x0809D130 - push {lr} - adds r2, r0, #0 - ldr r0, _0809D148 @ =gLinkState - ldr r0, [r0, #0x30] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0809D14C - adds r0, r2, #0 - bl sub_0800445C - b _0809D170 - .align 2, 0 -_0809D148: .4byte gLinkState -_0809D14C: - adds r0, r2, #0 - bl sub_08017850 - cmp r0, #0 - beq _0809D170 - movs r0, #0x17 - movs r1, #0 - movs r2, #0 - bl sub_080A7C00 - ldr r0, _0809D174 @ =gUnk_02002A40 - ldr r1, [r0, #0x40] - movs r2, #0x80 - lsls r2, r2, #0x15 - orrs r1, r2 - str r1, [r0, #0x40] - bl sub_0805E780 -_0809D170: - pop {pc} - .align 2, 0 -_0809D174: .4byte gUnk_02002A40 - - thumb_func_start sub_0809D178 -sub_0809D178: @ 0x0809D178 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0809D19C - adds r0, #1 - strb r0, [r4, #0xc] - adds r1, r4, #0 - adds r1, #0x38 - movs r0, #2 - strb r0, [r1] - adds r0, r4, #0 - bl UpdateSpriteOrderAndFlip - adds r1, r4, #0 - adds r1, #0x5a - movs r0, #0x80 - strb r0, [r1] -_0809D19C: - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0809D1E8 - bl Random - movs r1, #3 - ands r1, r0 - adds r0, r4, #0 - bl UpdateSprite - bl Random - movs r1, #0xf - ands r0, r1 - adds r0, #0x10 - adds r1, r4, #0 - adds r1, #0x59 - strb r0, [r1] - ldrb r1, [r4, #0x18] - movs r0, #0x41 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #0x18] - bl Random - movs r1, #1 - ands r1, r0 - cmp r1, #0 - beq _0809D1EE - ldrb r0, [r4, #0x18] - movs r1, #0x40 - orrs r0, r1 - strb r0, [r4, #0x18] - b _0809D1EE -_0809D1E8: - adds r0, r4, #0 - bl sub_08004274 -_0809D1EE: - pop {r4, pc} diff --git a/asm/code_080874A0.s b/asm/code_080874A0.s new file mode 100644 index 00000000..6bf8dd17 --- /dev/null +++ b/asm/code_080874A0.s @@ -0,0 +1,45777 @@ + .include "asm/macros.inc" + + .include "constants/constants.inc" + + .syntax unified + + .text + + + thumb_func_start sub_080874A0 +sub_080874A0: @ 0x080874A0 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _080874AE + movs r0, #1 + strb r0, [r4, #0xc] +_080874AE: + adds r0, r4, #0 + adds r0, #0x80 + movs r1, #0 + ldrsh r0, [r0, r1] + adds r1, r4, #0 + adds r1, #0x82 + movs r2, #0 + ldrsh r1, [r1, r2] + movs r2, #0x10 + movs r3, #0x10 + bl sub_0800290E + cmp r0, #0 + bne _080874DC + ldr r2, [r4, #0x50] + movs r1, #1 + ldrb r4, [r4, #0xb] + lsls r1, r4 + ldr r0, [r2, #0x20] + bics r0, r1 + str r0, [r2, #0x20] + bl sub_0805E780 +_080874DC: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080874E0 +sub_080874E0: @ 0x080874E0 + push {lr} + ldr r2, _080874F4 @ =gUnk_081208A0 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080874F4: .4byte gUnk_081208A0 + + thumb_func_start sub_080874F8 +sub_080874F8: @ 0x080874F8 + push {lr} + bl sub_0805E780 + pop {pc} + + thumb_func_start nullsub_117 +nullsub_117: @ 0x08087500 + bx lr + .align 2, 0 + + thumb_func_start sub_08087504 +sub_08087504: @ 0x08087504 + push {r4, lr} + adds r4, r0, #0 + bl sub_0805E3B0 + cmp r0, #0 + bne _08087520 + ldr r0, _08087524 @ =gUnk_081208B8 + ldrb r1, [r4, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 +_08087520: + pop {r4, pc} + .align 2, 0 +_08087524: .4byte gUnk_081208B8 + + thumb_func_start sub_08087528 +sub_08087528: @ 0x08087528 + push {r4, lr} + adds r4, r0, #0 + movs r0, #1 + strb r0, [r4, #0xc] + ldr r0, _08087590 @ =gLinkEntity + ldrb r0, [r0, #0x14] + lsrs r0, r0, #1 + strb r0, [r4, #0x14] + ldrb r1, [r4, #0x19] + movs r2, #0x3f + adds r0, r2, #0 + ands r0, r1 + movs r1, #0x80 + orrs r0, r1 + strb r0, [r4, #0x19] + adds r3, r4, #0 + adds r3, #0x29 + ldrb r1, [r3] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #3 + orrs r0, r1 + strb r0, [r3] + ldrb r1, [r4, #0x1b] + lsrs r0, r1, #6 + subs r0, #1 + lsls r0, r0, #6 + ands r2, r1 + orrs r2, r0 + strb r2, [r4, #0x1b] + ldrb r0, [r4, #0xb] + cmp r0, #0 + beq _08087594 + ldrb r1, [r4, #0x1a] + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x1a] + ldrb r0, [r4, #0x14] + cmp r0, #1 + bne _08087588 + ldrb r0, [r4, #0x18] + movs r1, #0x40 + orrs r0, r1 + strb r0, [r4, #0x18] +_08087588: + adds r0, r4, #0 + bl sub_08087640 + b _080875DC + .align 2, 0 +_08087590: .4byte gLinkEntity +_08087594: + ldr r0, _080875B4 @ =gUnk_02033A90 + ldrb r0, [r0, #1] + movs r1, #4 + cmp r0, #0x10 + bne _080875A2 + movs r1, #0xb5 + lsls r1, r1, #1 +_080875A2: + adds r0, r4, #0 + bl sub_0801D2B4 + ldrb r0, [r4, #0x14] + cmp r0, #1 + beq _080875B8 + cmp r0, #3 + bne _080875CE + b _080875C0 + .align 2, 0 +_080875B4: .4byte gUnk_02033A90 +_080875B8: + ldrb r0, [r4, #0x18] + movs r1, #0x40 + orrs r0, r1 + strb r0, [r4, #0x18] +_080875C0: + ldrb r0, [r4, #0xa] + cmp r0, #0x40 + bne _080875DC + ldrh r0, [r4, #0x32] + adds r0, #4 + strh r0, [r4, #0x32] + b _080875DC +_080875CE: + ldrb r0, [r4, #0xa] + cmp r0, #0x40 + bne _080875DC + ldrb r0, [r4, #0x18] + movs r1, #0x40 + orrs r0, r1 + strb r0, [r4, #0x18] +_080875DC: + adds r0, r4, #0 + movs r1, #3 + bl sub_0805E3A0 + ldrb r1, [r4, #0xb] + lsls r1, r1, #2 + ldrb r0, [r4, #0x14] + adds r1, r1, r0 + adds r0, r4, #0 + bl UpdateSprite + pop {r4, pc} + + thumb_func_start sub_080875F4 +sub_080875F4: @ 0x080875F4 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r5, r4, #0 + adds r5, #0x5a + ldrb r1, [r5] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0808760E + bl sub_0805E780 +_0808760E: + ldrb r0, [r4, #0xb] + cmp r0, #0 + beq _08087638 + ldr r0, _0808763C @ =gLinkEntity + adds r0, #0x29 + ldrb r1, [r0] + lsls r1, r1, #0x1d + lsrs r1, r1, #0x1d + ldrb r0, [r5] + subs r0, #1 + subs r1, r1, r0 + adds r3, r4, #0 + adds r3, #0x29 + movs r0, #7 + ands r1, r0 + ldrb r2, [r3] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] +_08087638: + pop {r4, r5, pc} + .align 2, 0 +_0808763C: .4byte gLinkEntity + + thumb_func_start sub_08087640 +sub_08087640: @ 0x08087640 + push {r4, r5, r6, lr} + adds r4, r0, #0 + movs r0, #0x2e + ldrsh r5, [r4, r0] + movs r1, #0x32 + ldrsh r6, [r4, r1] + ldrb r1, [r4, #0x14] + lsls r1, r1, #1 + ldr r0, _08087684 @ =gUnk_081208C0 + adds r1, r1, r0 + movs r0, #0 + ldrsb r0, [r1, r0] + ldrh r2, [r4, #0x2e] + adds r0, r0, r2 + strh r0, [r4, #0x2e] + movs r0, #1 + ldrsb r0, [r1, r0] + ldrh r1, [r4, #0x32] + adds r0, r0, r1 + strh r0, [r4, #0x32] + ldr r0, _08087688 @ =gRoomControls + ldrh r1, [r0, #4] + ldr r0, _0808768C @ =0x00000403 + movs r2, #0x16 + cmp r1, r0 + bne _08087676 + movs r2, #0x17 +_08087676: + adds r0, r4, #0 + adds r1, r2, #0 + bl sub_0805457C + strh r5, [r4, #0x2e] + strh r6, [r4, #0x32] + pop {r4, r5, r6, pc} + .align 2, 0 +_08087684: .4byte gUnk_081208C0 +_08087688: .4byte gRoomControls +_0808768C: .4byte 0x00000403 + + thumb_func_start sub_08087690 +sub_08087690: @ 0x08087690 + push {lr} + ldr r2, _080876A4 @ =gUnk_08120A0C + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080876A4: .4byte gUnk_08120A0C + + thumb_func_start sub_080876A8 +sub_080876A8: @ 0x080876A8 + push {lr} + mov ip, r0 + movs r0, #1 + mov r1, ip + strb r0, [r1, #0xc] + movs r0, #0xb0 + lsls r0, r0, #0xa + str r0, [r1, #0x20] + ldrb r2, [r1, #0x14] + lsls r0, r2, #2 + movs r1, #0x10 + eors r0, r1 + mov r3, ip + strb r0, [r3, #0x15] + lsls r2, r2, #0x18 + cmp r2, #0 + bne _080876E2 + adds r3, #0x29 + ldrb r2, [r3] + lsls r1, r2, #0x1d + lsrs r1, r1, #0x1d + subs r1, #1 + movs r0, #7 + ands r1, r0 + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] +_080876E2: + ldr r1, _08087760 @ =gUnk_08120A20 + mov r2, ip + ldrb r0, [r2, #0x14] + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldrh r3, [r2, #0x2e] + adds r0, r0, r3 + strh r0, [r2, #0x2e] + ldrb r0, [r2, #0x14] + adds r0, #1 + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldrh r1, [r2, #0x32] + adds r0, r0, r1 + strh r0, [r2, #0x32] + ldr r3, _08087764 @ =gUnk_08120A18 + ldrb r0, [r2, #0xf] + lsls r0, r0, #2 + adds r0, r0, r3 + ldrb r1, [r0, #3] + mov r0, ip + adds r0, #0x60 + strh r1, [r0] + ldrb r0, [r2, #0xf] + lsls r0, r0, #2 + adds r0, r0, r3 + ldrb r1, [r0, #1] + movs r0, #0xf + ands r1, r0 + ldrb r2, [r2, #0x1a] + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + mov r2, ip + strb r0, [r2, #0x1a] + ldrb r0, [r2, #0xf] + lsls r0, r0, #2 + adds r0, r0, r3 + ldrb r0, [r0, #2] + str r0, [r2, #0x6c] + ldr r0, _08087768 @ =gLinkEntity + adds r0, #0x38 + ldrb r1, [r0] + mov r0, ip + adds r0, #0x38 + strb r1, [r0] + movs r0, #0x80 + lsls r0, r0, #1 + strh r0, [r2, #0x24] + ldrb r0, [r2, #0xf] + lsls r0, r0, #2 + adds r0, r0, r3 + ldrb r1, [r0] + mov r0, ip + bl UpdateSprite + pop {pc} + .align 2, 0 +_08087760: .4byte gUnk_08120A20 +_08087764: .4byte gUnk_08120A18 +_08087768: .4byte gLinkEntity + + thumb_func_start sub_0808776C +sub_0808776C: @ 0x0808776C + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x6c] + cmp r0, #0 + beq _08087788 + subs r0, #1 + str r0, [r4, #0x6c] + ldr r0, _08087784 @ =gLinkState + adds r0, #0x3d + ldrb r0, [r0] + b _08087798 + .align 2, 0 +_08087784: .4byte gLinkState +_08087788: + adds r0, r4, #0 + bl sub_080AEFE0 + movs r1, #0xa0 + lsls r1, r1, #6 + adds r0, r4, #0 + bl sub_08003FC4 +_08087798: + cmp r0, #0 + bne _080877A0 + movs r0, #2 + strb r0, [r4, #0xc] +_080877A0: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080877A4 +sub_080877A4: @ 0x080877A4 + push {r4, lr} + adds r4, r0, #0 + bl sub_080002D0 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r1, r0, #0 + cmp r0, #0x25 + beq _080877D0 + cmp r0, #0x25 + bgt _080877C4 + cmp r0, #0x21 + beq _080877CA + cmp r0, #0x24 + beq _080877D6 + b _080877E2 +_080877C4: + cmp r1, #0x30 + beq _080877D6 + b _080877E2 +_080877CA: + adds r0, r4, #0 + movs r1, #0 + b _080877DA +_080877D0: + adds r0, r4, #0 + movs r1, #0xc + b _080877DA +_080877D6: + adds r0, r4, #0 + movs r1, #0xb +_080877DA: + movs r2, #0 + bl CreateFx + b _08087804 +_080877E2: + ldrb r0, [r4, #0xb] + cmp r0, #0 + beq _08087804 + cmp r0, #0xf + bne _080877F8 + ldrb r1, [r4, #0xe] + adds r0, r4, #0 + movs r2, #0x80 + bl CreateFx + b _08087804 +_080877F8: + ldrb r1, [r4, #0xb] + ldrb r2, [r4, #0xe] + adds r0, r4, #0 + movs r3, #0 + bl CreateObjectWithParent +_08087804: + bl sub_0805E780 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0808780C +sub_0808780C: @ 0x0808780C + push {lr} + ldr r2, _08087820 @ =gUnk_08120A28 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08087820: .4byte gUnk_08120A28 + + thumb_func_start sub_08087824 +sub_08087824: @ 0x08087824 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x38 + ldrb r0, [r0] + cmp r0, #0 + bne _08087836 + adds r0, r4, #0 + bl sub_08016A30 +_08087836: + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + adds r1, r4, #0 + adds r1, #0x3c + movs r0, #0x13 + strb r0, [r1] + adds r1, #9 + movs r0, #0xff + strb r0, [r1] + subs r1, #6 + movs r0, #0xa9 + strb r0, [r1] + adds r1, #1 + movs r0, #0x16 + strb r0, [r1] + ldr r0, _08087884 @ =gUnk_08120A54 + ldr r0, [r0] + str r0, [r4, #0x48] + subs r1, #5 + movs r0, #0x8b + strb r0, [r1] + adds r0, r4, #0 + bl sub_080878CC + adds r0, r4, #0 + movs r1, #1 + bl UpdateSprite + adds r0, r4, #0 + bl sub_0801766C + movs r0, #0xfd + bl sub_08004488 + pop {r4, pc} + .align 2, 0 +_08087884: .4byte gUnk_08120A54 + + thumb_func_start sub_08087888 +sub_08087888: @ 0x08087888 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r2, r4, #0 + adds r2, #0x5a + ldrb r1, [r2] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080878A4 + bl sub_0805E780 + b _080878C8 +_080878A4: + lsls r0, r1, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #4 + bhi _080878C0 + ldr r0, _080878BC @ =gUnk_08120A54 + ldrb r1, [r2] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r0, [r1] + str r0, [r4, #0x48] + b _080878C8 + .align 2, 0 +_080878BC: .4byte gUnk_08120A54 +_080878C0: + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] +_080878C8: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080878CC +sub_080878CC: @ 0x080878CC + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x10 + adds r7, r0, #0 + movs r1, #0x2e + ldrsh r0, [r7, r1] + str r0, [sp] + movs r0, #0x32 + ldrsh r2, [r7, r0] + str r2, [sp, #4] + adds r0, r7, #0 + adds r0, #0x38 + ldrb r0, [r0] + mov r8, r0 + movs r0, #0x10 + rsbs r0, r0, #0 + mov r1, r8 + lsls r1, r1, #0x18 + str r1, [sp, #8] +_080878F8: + movs r2, #0x10 + rsbs r2, r2, #0 + mov sb, r2 + ldr r1, [sp] + adds r1, r1, r0 + mov sl, r1 + adds r0, #0x10 + str r0, [sp, #0xc] + mov r6, sl +_0808790A: + ldr r2, _0808795C @ =gRoomControls + ldrh r0, [r2, #6] + subs r0, r6, r0 + lsrs r4, r0, #4 + movs r0, #0x3f + ands r4, r0 + ldr r5, [sp, #4] + add r5, sb + ldrh r0, [r2, #8] + subs r0, r5, r0 + lsrs r0, r0, #4 + movs r1, #0x3f + ands r0, r1 + lsls r0, r0, #6 + orrs r4, r0 + adds r0, r4, #0 + ldr r2, [sp, #8] + lsrs r1, r2, #0x18 + bl sub_080002C8 + cmp r0, #0x2e + bne _08087970 + adds r0, r4, #0 + mov r1, r8 + bl sub_080002B0 + adds r1, r0, #0 + movs r0, #0xda + lsls r0, r0, #2 + cmp r1, r0 + bhi _08087960 + subs r0, #1 + cmp r1, r0 + blo _08087960 + adds r0, r7, #0 + movs r1, #3 + adds r2, r6, #0 + adds r3, r5, #0 + bl sub_08008796 + b _0808797C + .align 2, 0 +_0808795C: .4byte gRoomControls +_08087960: + ldr r0, _0808796C @ =0x00004022 + adds r1, r4, #0 + mov r2, r8 + bl UpdateCollisionLayer + b _0808797C + .align 2, 0 +_0808796C: .4byte 0x00004022 +_08087970: + adds r0, r7, #0 + movs r1, #3 + mov r2, sl + adds r3, r5, #0 + bl sub_08008796 +_0808797C: + movs r0, #0x10 + add sb, r0 + mov r1, sb + cmp r1, #0x10 + ble _0808790A + ldr r0, [sp, #0xc] + cmp r0, #0x10 + ble _080878F8 + add sp, #0x10 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_08087998 +sub_08087998: @ 0x08087998 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _080879C0 @ =gUnk_08120A68 + ldrb r1, [r4, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + adds r0, r4, #0 + bl sub_08004274 + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _080879C4 + subs r0, #1 + strb r0, [r4, #0xe] + b _080879EA + .align 2, 0 +_080879C0: .4byte gUnk_08120A68 +_080879C4: + adds r0, r4, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r0, #0xa + bne _080879D8 + adds r0, r4, #0 + movs r1, #0xd + bl UpdateSprite + b _080879EA +_080879D8: + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080879EA + bl sub_0805E780 +_080879EA: + movs r1, #0x24 + ldrsh r0, [r4, r1] + cmp r0, #0 + beq _08087A0C + adds r0, r4, #0 + bl sub_0806F69C + ldrh r1, [r4, #0x24] + movs r2, #0x24 + ldrsh r0, [r4, r2] + cmp r0, #0x10 + ble _08087A08 + adds r0, r1, #0 + subs r0, #0x10 + b _08087A0A +_08087A08: + movs r0, #0 +_08087A0A: + strh r0, [r4, #0x24] +_08087A0C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08087A10 +sub_08087A10: @ 0x08087A10 + push {r4, lr} + adds r4, r0, #0 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r0, [r4, #0xb] + cmp r0, #0 + beq _08087A26 + adds r0, r4, #0 + movs r1, #3 + bl sub_0801D2B4 +_08087A26: + ldrb r0, [r4, #0xa] + cmp r0, #2 + bls _08087A3C + ldr r0, _08087A4C @ =gUnk_08120A78 + ldrb r1, [r4, #0xa] + subs r1, #3 + adds r1, r1, r0 + ldrb r1, [r1] + adds r0, r4, #0 + bl sub_0801D2B4 +_08087A3C: + ldrb r0, [r4, #0xa] + cmp r0, #4 + bhi _08087AF0 + lsls r0, r0, #2 + ldr r1, _08087A50 @ =_08087A54 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08087A4C: .4byte gUnk_08120A78 +_08087A50: .4byte _08087A54 +_08087A54: @ jump table + .4byte _08087A76 @ case 0 + .4byte _08087AF0 @ case 1 + .4byte _08087AA0 @ case 2 + .4byte _08087A76 @ case 3 + .4byte _08087A68 @ case 4 +_08087A68: + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #2 + strb r0, [r1] + adds r0, r4, #0 + bl UpdateSpriteOrderAndFlip +_08087A76: + ldrb r1, [r4, #0x10] + movs r0, #0x80 + movs r2, #0 + orrs r0, r1 + strb r0, [r4, #0x10] + adds r1, r4, #0 + adds r1, #0x45 + movs r0, #1 + strb r0, [r1] + subs r1, #9 + movs r0, #7 + strb r0, [r1] + adds r1, #3 + movs r0, #0xaa + strb r0, [r1] + subs r1, #4 + movs r0, #0xe + strb r0, [r1] + ldr r0, _08087AE4 @ =gUnk_08120A8C + str r0, [r4, #0x48] + strb r2, [r4, #0x1c] +_08087AA0: + bl Random + ldr r2, _08087AE8 @ =gUnk_08120A7A + movs r3, #3 + adds r1, r0, #0 + ands r1, r3 + adds r1, r1, r2 + ldrb r1, [r1] + strb r1, [r4, #0xe] + lsrs r2, r0, #8 + ands r2, r3 + movs r1, #0x10 + ands r1, r0 + cmp r1, #0 + beq _08087AC0 + rsbs r2, r2, #0 +_08087AC0: + ldrh r0, [r4, #0x2e] + adds r0, r0, r2 + strh r0, [r4, #0x2e] + ldrh r0, [r4, #0x32] + adds r0, r0, r2 + strh r0, [r4, #0x32] + ldr r0, _08087AEC @ =gLinkEntity + adds r0, #0x38 + ldrb r1, [r0] + adds r0, r4, #0 + adds r0, #0x38 + strb r1, [r0] + adds r0, r4, #0 + movs r1, #0xa + bl UpdateSprite + b _08087AF8 + .align 2, 0 +_08087AE4: .4byte gUnk_08120A8C +_08087AE8: .4byte gUnk_08120A7A +_08087AEC: .4byte gLinkEntity +_08087AF0: + adds r0, r4, #0 + movs r1, #0x10 + bl UpdateSprite +_08087AF8: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08087AFC +sub_08087AFC: @ 0x08087AFC + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08087B56 + movs r0, #0x7f + ands r0, r1 + cmp r0, #0x16 + beq _08087B3C + cmp r0, #0x16 + bgt _08087B1E + cmp r0, #0x13 + beq _08087B4E + b _08087B56 +_08087B1E: + cmp r0, #0x1c + bgt _08087B56 + cmp r0, #0x1b + blt _08087B56 + ldr r1, [r4, #0x4c] + adds r0, r1, #0 + adds r0, #0x84 + ldr r0, [r0] + adds r1, #0x80 + ldr r1, [r1] + ldr r2, [r4, #0x2c] + ldr r3, [r4, #0x30] + bl sub_080045D4 + b _08087B44 +_08087B3C: + ldr r0, [r4, #0x4c] + adds r1, r4, #0 + bl sub_080045C4 +_08087B44: + strb r0, [r4, #0x15] + movs r0, #0x80 + lsls r0, r0, #1 + strh r0, [r4, #0x24] + b _08087B56 +_08087B4E: + movs r1, #0 + movs r0, #3 + strb r0, [r4, #0xc] + strb r1, [r4, #0xd] +_08087B56: + pop {r4, pc} + + thumb_func_start sub_08087B58 +sub_08087B58: @ 0x08087B58 + push {lr} + adds r2, r0, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08087B80 + ldr r0, _08087B7C @ =gUnk_08120A80 + ldrb r1, [r2, #0xd] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r2, #0 + bl _call_via_r1 + b _08087B84 + .align 2, 0 +_08087B7C: .4byte gUnk_08120A80 +_08087B80: + movs r0, #1 + strb r0, [r2, #0xc] +_08087B84: + pop {pc} + .align 2, 0 + + thumb_func_start sub_08087B88 +sub_08087B88: @ 0x08087B88 + adds r2, r0, #0 + adds r2, #0x46 + movs r1, #0x80 + lsls r1, r1, #1 + strh r1, [r2] + movs r1, #1 + strb r1, [r0, #0xd] + strb r1, [r0, #0x1d] + bx lr + .align 2, 0 + + thumb_func_start sub_08087B9C +sub_08087B9C: @ 0x08087B9C + push {lr} + bl sub_0806F3E4 + cmp r0, #0 + beq _08087BAA + bl sub_0805E780 +_08087BAA: + pop {pc} + + thumb_func_start sub_08087BAC +sub_08087BAC: @ 0x08087BAC + push {lr} + ldr r2, _08087BC0 @ =gUnk_08120A94 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08087BC0: .4byte gUnk_08120A94 + + thumb_func_start sub_08087BC4 +sub_08087BC4: @ 0x08087BC4 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + adds r0, #1 + movs r5, #0 + strb r0, [r4, #0xc] + ldrb r0, [r4, #0xa] + cmp r0, #1 + beq _08087C04 + cmp r0, #1 + bgt _08087BE0 + cmp r0, #0 + beq _08087BEA + b _08087CA6 +_08087BE0: + cmp r0, #2 + beq _08087C64 + cmp r0, #3 + beq _08087C7C + b _08087CA6 +_08087BEA: + movs r0, #0x5e + bl sub_0807CBD0 + cmp r0, #0 + beq _08087C16 + adds r1, r4, #0 + adds r1, #0x7a + movs r0, #1 + strb r0, [r1] + adds r0, r4, #0 + bl sub_080787B4 + b _08087C1C +_08087C04: + movs r0, #0x22 + movs r1, #3 + movs r2, #0 + bl CreateObject + cmp r0, #0 + beq _08087C16 + str r4, [r0, #0x50] + str r0, [r4, #0x54] +_08087C16: + adds r0, r4, #0 + adds r0, #0x7a + strb r5, [r0] +_08087C1C: + ldrb r0, [r4, #0x19] + movs r1, #0xc0 + orrs r0, r1 + strb r0, [r4, #0x19] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #7 + orrs r0, r1 + strb r0, [r2] + movs r0, #0x2e + ldrsh r1, [r4, r0] + ldr r2, _08087C60 @ =gRoomControls + ldrh r0, [r2, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + movs r3, #0x3f + ands r1, r3 + movs r5, #0x32 + ldrsh r0, [r4, r5] + ldrh r2, [r2, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r1, r0 + adds r0, r4, #0 + adds r0, #0x78 + strh r1, [r0] + adds r0, r4, #0 + bl sub_08087F58 + b _08087CA6 + .align 2, 0 +_08087C60: .4byte gRoomControls +_08087C64: + adds r0, r4, #0 + adds r0, #0x7a + strb r5, [r0] + adds r0, r4, #0 + movs r1, #7 + bl sub_0805E3A0 + adds r0, r4, #0 + movs r1, #1 + bl UpdateSprite + b _08087CA6 +_08087C7C: + movs r0, #0x1e + strb r0, [r4, #0xe] + strb r5, [r4, #0xf] + adds r1, r4, #0 + adds r1, #0x81 + movs r0, #1 + strb r0, [r1] + adds r0, r4, #0 + adds r0, #0x7a + strb r5, [r0] + adds r0, #1 + strb r5, [r0] + adds r0, #5 + strb r5, [r0] + adds r0, r4, #0 + bl sub_0808804C + adds r0, r4, #0 + movs r1, #6 + bl sub_0805E3A0 +_08087CA6: + pop {r4, r5, pc} + + thumb_func_start sub_08087CA8 +sub_08087CA8: @ 0x08087CA8 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r4, #0 + adds r5, #0x7a + ldrb r0, [r5] + cmp r0, #1 + beq _08087CCA + cmp r0, #1 + bgt _08087D02 + cmp r0, #0 + bne _08087D02 + movs r0, #1 + strb r0, [r5] + adds r0, r4, #0 + bl sub_080787B4 + b _08087D1A +_08087CCA: + adds r1, r4, #0 + adds r1, #0x39 + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #0 + beq _08087D1A + movs r0, #0 + strb r0, [r1] + bl sub_080791D0 + movs r0, #0x5e + bl sub_0807CBD0 + cmp r0, #0 + beq _08087CFA + movs r0, #2 + strb r0, [r5] + bl sub_0807CD10 + movs r0, #7 + movs r1, #0xff + bl sub_080A7138 + b _08087D1A +_08087CFA: + movs r0, #5 + bl sub_0807CD10 + b _08087D1A +_08087D02: + movs r0, #2 + bl sub_0807CC3C + cmp r0, #0 + bne _08087D1A + adds r1, r4, #0 + adds r1, #0x7a + movs r0, #1 + strb r0, [r1] + adds r0, r4, #0 + bl sub_080787B4 +_08087D1A: + pop {r4, r5, pc} + + thumb_func_start sub_08087D1C +sub_08087D1C: @ 0x08087D1C + push {r4, r5, lr} + adds r5, r0, #0 + adds r4, r5, #0 + adds r4, #0x7a + ldrb r0, [r4] + cmp r0, #1 + beq _08087D60 + cmp r0, #1 + bgt _08087D34 + cmp r0, #0 + beq _08087D3A + b _08087DB0 +_08087D34: + cmp r0, #2 + beq _08087D5A + b _08087DB0 +_08087D3A: + movs r0, #0 + bl sub_0807CC3C + cmp r0, #0 + beq _08087DB0 + movs r0, #0x5e + bl sub_0807CBD0 + cmp r0, #0 + beq _08087D54 + movs r0, #1 + strb r0, [r4] + b _08087DB0 +_08087D54: + movs r0, #2 + strb r0, [r4] + b _08087DB0 +_08087D5A: + movs r0, #0x5e + bl sub_0807CCB4 +_08087D60: + adds r1, r5, #0 + adds r1, #0x7a + movs r0, #0 + strb r0, [r1] + ldr r0, [r5, #0x54] + bl sub_08088328 + movs r0, #0 + bl sub_0807CD8C + movs r0, #0x22 + movs r1, #2 + movs r2, #0 + bl CreateObject + adds r4, r0, #0 + cmp r4, #0 + beq _08087DAA + str r5, [r4, #0x50] + adds r0, r5, #0 + adds r0, #0x7d + ldrb r0, [r0] + strb r0, [r4, #0xf] + ldr r1, _08087DB4 @ =gUnk_080FC3E4 + ldrb r0, [r4, #0xf] + lsls r0, r0, #3 + adds r0, r0, r1 + ldrb r0, [r0, #7] + strb r0, [r4, #0xb] + movs r2, #0x80 + lsls r2, r2, #0xc + movs r3, #0xe0 + lsls r3, r3, #0xb + adds r0, r5, #0 + adds r1, r4, #0 + bl PositionRelative +_08087DAA: + ldr r0, _08087DB8 @ =0x00000111 + bl sub_08004488 +_08087DB0: + pop {r4, r5, pc} + .align 2, 0 +_08087DB4: .4byte gUnk_080FC3E4 +_08087DB8: .4byte 0x00000111 + + thumb_func_start sub_08087DBC +sub_08087DBC: @ 0x08087DBC + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r2, r4, #0 + adds r2, #0x7a + ldrb r0, [r2] + cmp r0, #1 + beq _08087E10 + cmp r0, #1 + bgt _08087E3C + cmp r0, #0 + bne _08087E3C + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08087E5A + movs r0, #1 + strb r0, [r2] + movs r0, #0x28 + strb r0, [r4, #0xe] + ldr r1, _08087E0C @ =gUnk_08120AA8 + ldrb r0, [r4, #0xb] + adds r0, r0, r1 + ldrb r1, [r0] + adds r0, r4, #0 + bl sub_0801D2B4 + adds r0, r4, #0 + movs r1, #2 + bl UpdateSprite + movs r0, #0x88 + lsls r0, r0, #1 + bl PlaySFX + b _08087E5A + .align 2, 0 +_08087E0C: .4byte gUnk_08120AA8 +_08087E10: + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08087E5A + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08087E5A + movs r0, #2 + strb r0, [r2] + bl sub_0807CD10 + ldrb r1, [r4, #0xf] + movs r0, #7 + bl sub_080A7138 + b _08087E5A +_08087E3C: + movs r0, #2 + bl sub_0807CC3C + cmp r0, #0 + bne _08087E5A + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] + movs r0, #4 + bl sub_0807CD8C + bl sub_0805E780 +_08087E5A: + pop {r4, pc} + + thumb_func_start sub_08087E5C +sub_08087E5C: @ 0x08087E5C + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + adds r5, r4, #0 + adds r5, #0x7a + ldrb r1, [r5] + cmp r1, #1 + beq _08087EAC + cmp r1, #1 + bgt _08087E74 + cmp r1, #0 + beq _08087E7A + b _08087F4E +_08087E74: + cmp r1, #2 + beq _08087F24 + b _08087F4E +_08087E7A: + adds r0, r4, #0 + adds r0, #0x7b + ldrb r0, [r0] + cmp r0, #4 + bne _08087EA4 + movs r0, #1 + bl sub_0807CC3C + cmp r0, #0 + beq _08087F4E + movs r0, #1 + strb r0, [r5] + adds r1, r4, #0 + adds r1, #0x81 + strb r0, [r1] + bl sub_0807CD8C + adds r0, r4, #0 + bl sub_0808826C + b _08087F1C +_08087EA4: + adds r0, r4, #0 + bl sub_080880D8 + b _08087F4E +_08087EAC: + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _08087EB6 + subs r0, #1 + strb r0, [r4, #0xe] +_08087EB6: + ldr r6, _08087ED4 @ =gUnk_03000FF0 + ldrh r0, [r6, #2] + ands r1, r0 + cmp r1, #0 + beq _08087ED8 + movs r0, #0x6a + bl PlaySFX + movs r0, #2 + strb r0, [r5] + movs r0, #0x3c + strb r0, [r4, #0xe] + bl sub_08050384 + b _08087F4E + .align 2, 0 +_08087ED4: .4byte gUnk_03000FF0 +_08087ED8: + adds r2, r4, #0 + adds r2, #0x81 + ldrb r7, [r2] + ldrh r1, [r6] + movs r0, #0x80 + lsls r0, r0, #1 + ands r0, r1 + movs r3, #1 + adds r5, r2, #0 + cmp r0, #0 + beq _08087EF0 + movs r3, #0xa +_08087EF0: + ldrh r1, [r6, #4] + ldr r0, _08087F00 @ =0xFFFFFEFF + ands r1, r0 + cmp r1, #0x40 + beq _08087F04 + cmp r1, #0x80 + beq _08087F0E + b _08087F16 + .align 2, 0 +_08087F00: .4byte 0xFFFFFEFF +_08087F04: + adds r0, r4, #0 + adds r1, r3, #0 + bl sub_08087F94 + b _08087F16 +_08087F0E: + rsbs r1, r3, #0 + adds r0, r4, #0 + bl sub_08087F94 +_08087F16: + ldrb r5, [r5] + cmp r7, r5 + beq _08087F4E +_08087F1C: + adds r0, r4, #0 + bl sub_080882A8 + b _08087F4E +_08087F24: + movs r0, #0 + strb r0, [r5] + adds r1, r4, #0 + adds r1, #0x7b + movs r0, #4 + strb r0, [r1] + movs r0, #3 + bl sub_0807CD10 + ldr r0, _08087F50 @ =0x0000431A + bl TextboxTryNoOverlap + ldr r1, _08087F54 @ =gTextBox + movs r0, #1 + strb r0, [r1, #6] + movs r0, #0xc + strb r0, [r1, #7] + adds r0, r4, #0 + adds r0, #0x81 + ldrb r0, [r0] + str r0, [r1, #0x10] +_08087F4E: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08087F50: .4byte 0x0000431A +_08087F54: .4byte gTextBox + + thumb_func_start sub_08087F58 +sub_08087F58: @ 0x08087F58 + push {r4, r5, lr} + ldrb r1, [r0, #0xa] + cmp r1, #1 + bgt _08087F8C + cmp r1, #0 + blt _08087F8C + ldr r5, _08087F90 @ =0x00004022 + adds r4, r0, #0 + adds r4, #0x78 + ldrh r1, [r4] + subs r1, #1 + adds r0, r5, #0 + movs r2, #1 + bl UpdateCollisionLayer + ldrh r1, [r4] + adds r0, r5, #0 + movs r2, #1 + bl UpdateCollisionLayer + ldrh r1, [r4] + adds r1, #1 + adds r0, r5, #0 + movs r2, #1 + bl UpdateCollisionLayer +_08087F8C: + pop {r4, r5, pc} + .align 2, 0 +_08087F90: .4byte 0x00004022 + + thumb_func_start sub_08087F94 +sub_08087F94: @ 0x08087F94 + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + adds r4, r1, #0 + movs r0, #0x5f + bl sub_0807CBD0 + cmp r0, #0 + bne _08088014 + adds r0, r5, #0 + adds r0, #0x83 + movs r1, #0 + ldrsb r1, [r0, r1] + mov ip, r1 + adds r3, r1, r4 + adds r7, r0, #0 + cmp r4, #0 + bge _08087FEA + adds r2, r5, #0 + adds r2, #0x82 + movs r0, #0 + ldrsb r0, [r2, r0] + cmp r3, r0 + bge _08087FD6 + movs r1, #0 + ldrsb r1, [r7, r1] + ldrb r3, [r2] + cmp r1, r0 + beq _08088014 + strb r3, [r7] + adds r1, r5, #0 + adds r1, #0x81 + movs r0, #1 + b _08087FE0 +_08087FD6: + strb r3, [r7] + adds r1, r5, #0 + adds r1, #0x81 + ldrb r0, [r1] + adds r0, r0, r4 +_08087FE0: + strb r0, [r1] + movs r0, #0x69 + bl PlaySFX + b _08088032 +_08087FEA: + adds r1, r5, #0 + adds r1, #0x81 + ldrb r6, [r1] + adds r2, r6, r4 + ldr r0, _0808801C @ =gUnk_02002A40 + adds r0, #0xc2 + ldrh r0, [r0] + cmp r2, r0 + ble _08088008 + cmp r0, r6 + beq _08088014 + adds r2, r0, #0 + subs r4, r2, r6 + mov r0, ip + adds r3, r0, r4 +_08088008: + cmp r3, #0x64 + ble _08088028 + movs r0, #0 + ldrsb r0, [r7, r0] + cmp r0, #0x64 + bne _08088020 +_08088014: + adds r0, r5, #0 + bl sub_08088034 + b _08088032 + .align 2, 0 +_0808801C: .4byte gUnk_02002A40 +_08088020: + movs r3, #0x64 + mov r0, ip + subs r4, r3, r0 + adds r2, r6, r4 +_08088028: + strb r3, [r7] + strb r2, [r1] + movs r0, #0x69 + bl PlaySFX +_08088032: + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_08088034 +sub_08088034: @ 0x08088034 + push {lr} + adds r1, r0, #0 + ldrb r0, [r1, #0xe] + cmp r0, #0 + bne _08088048 + movs r0, #0x14 + strb r0, [r1, #0xe] + movs r0, #0x6d + bl PlaySFX +_08088048: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0808804C +sub_0808804C: @ 0x0808804C + push {r4, r5, lr} + adds r5, r0, #0 + movs r4, #0 + ldr r0, _08088060 @ =gUnk_02002A40 + ldrb r0, [r0, #6] + cmp r0, #0 + beq _08088064 + movs r4, #9 + b _080880D0 + .align 2, 0 +_08088060: .4byte gUnk_02002A40 +_08088064: + movs r0, #6 + bl GetProgressFlag + cmp r0, #0 + beq _08088072 + movs r4, #7 + b _080880D0 +_08088072: + movs r0, #0x80 + lsls r0, r0, #4 + movs r1, #0x77 + bl GetProgressFlagWithOffset + cmp r0, #0 + beq _08088084 + movs r4, #6 + b _080880D0 +_08088084: + movs r0, #0xc0 + lsls r0, r0, #2 + movs r1, #0x32 + bl GetProgressFlagWithOffset + cmp r0, #0 + beq _08088096 + movs r4, #5 + b _080880D0 +_08088096: + movs r0, #5 + bl GetProgressFlag + cmp r0, #0 + beq _080880A4 + movs r4, #4 + b _080880D0 +_080880A4: + movs r0, #4 + bl GetProgressFlag + cmp r0, #0 + beq _080880B2 + movs r4, #3 + b _080880D0 +_080880B2: + movs r0, #0x80 + lsls r0, r0, #1 + movs r1, #0x9c + bl GetProgressFlagWithOffset + cmp r0, #0 + beq _080880C4 + movs r4, #2 + b _080880D0 +_080880C4: + movs r0, #3 + bl GetProgressFlag + cmp r0, #0 + beq _080880D0 + movs r4, #1 +_080880D0: + adds r0, r5, #0 + adds r0, #0x7c + strb r4, [r0] + pop {r4, r5, pc} + + thumb_func_start sub_080880D8 +sub_080880D8: @ 0x080880D8 + push {r4, r5, r6, r7, lr} + adds r7, r0, #0 + adds r0, #0x7b + ldrb r1, [r0] + ldr r0, _08088158 @ =gUnk_08120AAC + adds r6, r1, r0 + ldrb r4, [r6] + ldrb r0, [r6, #1] + cmp r4, r0 + bhs _0808810A + adds r5, r7, #0 + adds r5, #0x80 +_080880F0: + adds r0, r7, #0 + adds r1, r4, #0 + bl sub_08088160 + cmp r0, #0 + beq _08088102 + ldrb r0, [r5] + adds r0, #1 + strb r0, [r5] +_08088102: + adds r4, #1 + ldrb r0, [r6, #1] + cmp r4, r0 + blo _080880F0 +_0808810A: + adds r1, r7, #0 + adds r1, #0x7b + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #4 + bne _08088156 + ldr r5, _0808815C @ =gUnk_02002A40 + adds r0, r7, #0 + adds r0, #0x80 + ldrb r1, [r5, #9] + adds r4, r0, #0 + ldrb r0, [r4] + cmp r1, r0 + beq _0808813A + cmp r1, #0 + beq _08088136 + movs r0, #6 + bl sub_0807CD10 +_08088136: + ldrb r0, [r4] + strb r0, [r5, #9] +_0808813A: + movs r0, #0x5f + bl sub_0807CBD0 + cmp r0, #0 + beq _08088156 + ldr r0, _0808815C @ =gUnk_02002A40 + adds r0, #0xb0 + ldrb r1, [r4] + ldrb r0, [r0] + cmp r1, r0 + beq _08088156 + movs r0, #0x5f + bl sub_0807CD34 +_08088156: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08088158: .4byte gUnk_08120AAC +_0808815C: .4byte gUnk_02002A40 + + thumb_func_start sub_08088160 +sub_08088160: @ 0x08088160 + push {r4, lr} + adds r2, r0, #0 + lsls r1, r1, #3 + ldr r0, _08088188 @ =gUnk_080FC3E4 + adds r1, r1, r0 + movs r4, #0 + adds r0, r2, #0 + adds r0, #0x7c + ldrb r0, [r0] + ldrb r3, [r1, #6] + cmp r0, r3 + bhs _08088266 + ldrb r0, [r1, #6] + cmp r0, #0x10 + beq _0808819E + cmp r0, #0x10 + bgt _0808818C + cmp r0, #8 + beq _08088194 + b _08088268 + .align 2, 0 +_08088188: .4byte gUnk_080FC3E4 +_0808818C: + cmp r0, #0x20 + beq _080881A6 + cmp r0, #0x40 + bne _08088268 +_08088194: + ldr r0, [r1] + ldrh r1, [r1, #4] + bl GetProgressFlagWithOffset + b _08088262 +_0808819E: + ldrh r0, [r1, #4] + bl sub_0801E7F4 + b _08088262 +_080881A6: + ldrh r0, [r1, #4] + cmp r0, #5 + bhi _08088268 + lsls r0, r0, #2 + ldr r1, _080881B8 @ =_080881BC + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080881B8: .4byte _080881BC +_080881BC: @ jump table + .4byte _080881D4 @ case 0 + .4byte _080881F0 @ case 1 + .4byte _080881FE @ case 2 + .4byte _0808821A @ case 3 + .4byte _08088236 @ case 4 + .4byte _08088252 @ case 5 +_080881D4: + movs r0, #0x20 + bl sub_0801E7F4 + cmp r0, #0 + bne _08088266 + movs r0, #0x10 + bl sub_0801E7F4 + cmp r0, #0 + bne _08088266 + movs r0, #0x19 +_080881EA: + bl sub_0801E7F4 + b _08088262 +_080881F0: + adds r0, r2, #0 + adds r0, #0x7c + ldrb r0, [r0] + cmp r0, #4 + bls _08088268 + movs r0, #0x28 + b _080881EA +_080881FE: + movs r0, #0x54 + bl sub_0801E7F4 + cmp r0, #0 + bne _08088266 + movs r0, #0x56 + bl sub_0801E7F4 + cmp r0, #0 + bne _08088266 + movs r0, #0x3d + bl sub_0801E7F4 + b _08088262 +_0808821A: + movs r0, #0x3b + bl sub_0801E7F4 + cmp r0, #0 + bne _08088266 + movs r0, #0x4a + bl sub_0801E7F4 + cmp r0, #0 + bne _08088266 + movs r0, #0xd + bl sub_0801E7F4 + b _08088262 +_08088236: + movs r0, #0x49 + bl sub_0801E7F4 + cmp r0, #0 + bne _08088266 + movs r0, #0x55 + bl sub_0801E7F4 + cmp r0, #0 + bne _08088266 + movs r0, #0x3c + bl sub_0801E7F4 + b _08088262 +_08088252: + adds r0, r2, #0 + adds r0, #0x7c + ldrb r0, [r0] + cmp r0, #1 + bls _08088268 + movs r0, #0x12 + bl GetProgressFlag +_08088262: + cmp r0, #0 + beq _08088268 +_08088266: + movs r4, #1 +_08088268: + adds r0, r4, #0 + pop {r4, pc} + + thumb_func_start sub_0808826C +sub_0808826C: @ 0x0808826C + push {r4, r5, lr} + adds r5, r0, #0 + movs r4, #0x64 + adds r0, #0x80 + ldrb r1, [r0] + ldr r0, _080882A4 @ =gUnk_02002A40 + adds r0, #0xb0 + ldrb r0, [r0] + subs r0, r1, r0 + muls r4, r0, r4 + adds r0, r4, #0 + bl __divsi3 + adds r4, r0, #0 + cmp r4, #0 + bne _08088298 + movs r0, #0x5f + bl sub_0807CBD0 + cmp r0, #0 + bne _08088298 + movs r4, #1 +_08088298: + adds r0, r5, #0 + adds r0, #0x83 + strb r4, [r0] + subs r0, #1 + strb r4, [r0] + pop {r4, r5, pc} + .align 2, 0 +_080882A4: .4byte gUnk_02002A40 + + thumb_func_start sub_080882A8 +sub_080882A8: @ 0x080882A8 + push {r4, r5, r6, lr} + adds r6, r0, #0 + bl sub_08050384 + adds r0, r6, #0 + adds r0, #0x81 + ldrb r0, [r0] + ldr r4, _080882F4 @ =gUnk_020227E8 + ldr r5, _080882F8 @ =0x00202020 + adds r1, r4, #0 + adds r2, r5, #0 + bl sub_08057044 + adds r0, r6, #0 + adds r0, #0x83 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r4, #8 + adds r1, r4, #0 + adds r2, r5, #0 + bl sub_08057044 + movs r0, #0x80 + lsls r0, r0, #0x12 + ldrb r0, [r0, #7] + cmp r0, #0 + bne _08088304 + ldr r1, _080882FC @ =gUnk_08120AE4 + ldrb r0, [r6, #0xb] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r0, [r0] + ldr r1, _08088300 @ =gUnk_08120AB4 + bl sub_0805F46C + b _08088314 + .align 2, 0 +_080882F4: .4byte gUnk_020227E8 +_080882F8: .4byte 0x00202020 +_080882FC: .4byte gUnk_08120AE4 +_08088300: .4byte gUnk_08120AB4 +_08088304: + ldr r1, _0808831C @ =gUnk_08120AE4 + ldrb r0, [r6, #0xb] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r0, [r0] + ldr r1, _08088320 @ =gUnk_08120ACC + bl sub_0805F46C +_08088314: + ldr r1, _08088324 @ =gLCDControls + movs r0, #1 + strh r0, [r1, #0xe] + pop {r4, r5, r6, pc} + .align 2, 0 +_0808831C: .4byte gUnk_08120AE4 +_08088320: .4byte gUnk_08120ACC +_08088324: .4byte gLCDControls + + thumb_func_start sub_08088328 +sub_08088328: @ 0x08088328 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r6, r0, #0 + movs r4, #0x7f +_08088332: + bl Random + adds r5, r0, #0 + ands r5, r4 + cmp r5, #0x63 + bhi _08088332 + adds r0, r6, #0 + adds r0, #0x81 + ldrb r0, [r0] + rsbs r0, r0, #0 + bl sub_080542C0 + bl Random + movs r1, #0x7f + ands r1, r0 + adds r4, r1, #1 + adds r7, r4, #0 + adds r0, r6, #0 + bl sub_08088424 + adds r0, r6, #0 + adds r0, #0x83 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r5, r0 + bhs _080883A4 + movs r5, #0 + movs r0, #0x7d + adds r0, r0, r6 + mov r8, r0 +_08088372: + cmp r5, #0 + bne _080883E2 + cmp r4, #0x88 + bls _0808837C + movs r4, #1 +_0808837C: + adds r0, r6, #0 + adds r1, r4, #0 + bl sub_08088160 + cmp r0, #0 + beq _0808839C + ldr r0, _08088398 @ =gUnk_02002B0E + adds r1, r4, #0 + bl sub_0801D5A8 + cmp r0, #0 + bne _0808839C + movs r5, #1 + b _0808839E + .align 2, 0 +_08088398: .4byte gUnk_02002B0E +_0808839C: + adds r4, #1 +_0808839E: + cmp r7, r4 + bne _08088372 + b _080883DE +_080883A4: + movs r5, #1 + movs r0, #0x7d + adds r0, r0, r6 + mov r8, r0 +_080883AC: + cmp r5, #0 + beq _08088414 + cmp r4, #0x88 + bls _080883B6 + movs r4, #1 +_080883B6: + adds r0, r6, #0 + adds r1, r4, #0 + bl sub_08088160 + cmp r0, #0 + beq _080883D8 + ldr r0, _080883D4 @ =gUnk_02002B0E + adds r1, r4, #0 + bl sub_0801D5A8 + cmp r0, #0 + beq _080883D8 + movs r5, #0 + b _080883DA + .align 2, 0 +_080883D4: .4byte gUnk_02002B0E +_080883D8: + adds r4, #1 +_080883DA: + cmp r7, r4 + bne _080883AC +_080883DE: + cmp r5, #0 + beq _08088414 +_080883E2: + ldr r0, _08088404 @ =gUnk_02002A40 + adds r0, #0xb0 + ldrb r1, [r0] + adds r1, #1 + strb r1, [r0] + adds r0, r6, #0 + adds r0, #0x80 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + ldrb r0, [r0] + cmp r1, r0 + beq _08088408 + movs r0, #7 + bl sub_0807CD10 + b _08088414 + .align 2, 0 +_08088404: .4byte gUnk_02002A40 +_08088408: + movs r0, #0x5f + bl sub_0807CCB4 + movs r0, #8 + bl sub_0807CD10 +_08088414: + mov r0, r8 + strb r4, [r0] + ldr r0, [r6, #0x50] + adds r0, #0x7d + strb r4, [r0] + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_08088424 +sub_08088424: @ 0x08088424 + push {lr} + adds r1, r0, #0 + ldr r0, _08088440 @ =gUnk_02002A40 + adds r0, #0xb0 + ldrb r0, [r0] + cmp r0, #0x31 + bhi _08088444 + adds r1, #0x83 + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #0xe + bgt _08088476 + movs r0, #0xf + b _08088474 + .align 2, 0 +_08088440: .4byte gUnk_02002A40 +_08088444: + cmp r0, #0x4f + bhi _08088456 + adds r1, #0x83 + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #0xb + bgt _08088476 + movs r0, #0xc + b _08088474 +_08088456: + cmp r0, #0x6d + bhi _08088468 + adds r1, #0x83 + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #8 + bgt _08088476 + movs r0, #9 + b _08088474 +_08088468: + adds r1, #0x83 + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #5 + bgt _08088476 + movs r0, #6 +_08088474: + strb r0, [r1] +_08088476: + pop {pc} + + thumb_func_start sub_08088478 +sub_08088478: @ 0x08088478 + push {r4, lr} + movs r4, #0 + movs r0, #8 + bl sub_0807CC3C + cmp r0, #0 + bne _080884A4 + movs r0, #7 + bl sub_0807CC3C + cmp r0, #0 + bne _0808849C + ldr r1, _08088498 @ =0x00004322 + movs r4, #1 + b _080884D2 + .align 2, 0 +_08088498: .4byte 0x00004322 +_0808849C: + ldr r1, _080884A0 @ =0x00004325 + b _080884D2 + .align 2, 0 +_080884A0: .4byte 0x00004325 +_080884A4: + ldr r1, _080884C0 @ =gUnk_02002A40 + adds r0, r1, #0 + adds r0, #0xb0 + ldrb r0, [r0] + cmp r0, #0x82 + beq _080884C8 + cmp r0, #0x88 + bne _080884D0 + adds r1, #0xb1 + movs r0, #0xff + strb r0, [r1] + ldr r1, _080884C4 @ =0x00004329 + b _080884D2 + .align 2, 0 +_080884C0: .4byte gUnk_02002A40 +_080884C4: .4byte 0x00004329 +_080884C8: + ldrb r0, [r1, #6] + ldr r1, _080884F4 @ =0x00004328 + cmp r0, #0 + beq _080884D2 +_080884D0: + ldr r1, _080884F8 @ =0x00004327 +_080884D2: + adds r0, r1, #0 + bl TextboxTryNoOverlap + ldr r1, _080884FC @ =gTextBox + movs r0, #1 + strb r0, [r1, #6] + movs r0, #0xc + strb r0, [r1, #7] + cmp r4, #0 + beq _080884EA + movs r0, #5 + str r0, [r1, #0x10] +_080884EA: + ldr r1, _08088500 @ =gLinkEntity + movs r0, #6 + strb r0, [r1, #0x14] + pop {r4, pc} + .align 2, 0 +_080884F4: .4byte 0x00004328 +_080884F8: .4byte 0x00004327 +_080884FC: .4byte gTextBox +_08088500: .4byte gLinkEntity + + thumb_func_start sub_08088504 +sub_08088504: @ 0x08088504 + push {lr} + ldr r0, _08088518 @ =gUnk_02002A40 + adds r0, #0xb0 + ldrb r0, [r0] + cmp r0, #0x82 + beq _08088520 + cmp r0, #0x88 + bne _08088528 + ldr r0, _0808851C @ =0x0000432F + b _0808852A + .align 2, 0 +_08088518: .4byte gUnk_02002A40 +_0808851C: .4byte 0x0000432F +_08088520: + ldr r0, _08088524 @ =0x00004314 + b _0808852A + .align 2, 0 +_08088524: .4byte 0x00004314 +_08088528: + ldr r0, _0808853C @ =0x00004311 +_0808852A: + bl TextboxTryNoOverlap + ldr r0, _08088540 @ =gTextBox + movs r1, #1 + strb r1, [r0, #6] + movs r1, #0xc + strb r1, [r0, #7] + pop {pc} + .align 2, 0 +_0808853C: .4byte 0x00004311 +_08088540: .4byte gTextBox + + thumb_func_start sub_08088544 +sub_08088544: @ 0x08088544 + push {lr} + ldr r0, _08088568 @ =gUnk_02002A40 + adds r0, #0xb0 + ldrb r0, [r0] + ldr r1, _0808856C @ =0x00004315 + cmp r0, #0x82 + beq _08088554 + subs r1, #7 +_08088554: + adds r0, r1, #0 + bl TextboxTryNoOverlap + ldr r0, _08088570 @ =gTextBox + movs r1, #1 + strb r1, [r0, #6] + movs r1, #0xc + strb r1, [r0, #7] + pop {pc} + .align 2, 0 +_08088568: .4byte gUnk_02002A40 +_0808856C: .4byte 0x00004315 +_08088570: .4byte gTextBox + + thumb_func_start sub_08088574 +sub_08088574: @ 0x08088574 + push {lr} + movs r0, #9 + bl sub_0807CC3C + cmp r0, #0 + beq _08088594 + movs r0, #0x5f + bl sub_0807CBD0 + ldr r1, _08088590 @ =0x0000430C + cmp r0, #0 + beq _08088596 + adds r1, #7 + b _08088596 + .align 2, 0 +_08088590: .4byte 0x0000430C +_08088594: + ldr r1, _080885A8 @ =0x0000430B +_08088596: + adds r0, r1, #0 + bl TextboxTryNoOverlap + ldr r0, _080885AC @ =gTextBox + movs r1, #1 + strb r1, [r0, #6] + movs r1, #0xc + strb r1, [r0, #7] + pop {pc} + .align 2, 0 +_080885A8: .4byte 0x0000430B +_080885AC: .4byte gTextBox + + thumb_func_start sub_080885B0 +sub_080885B0: @ 0x080885B0 + push {lr} + movs r0, #8 + bl sub_0807CC3C + cmp r0, #0 + bne _080885E8 + movs r0, #7 + bl sub_0807CC3C + cmp r0, #0 + bne _0808860A + movs r0, #5 + bl ModRupees + ldr r0, _080885E0 @ =0x00004326 + bl TextboxTryNoOverlap + ldr r1, _080885E4 @ =gTextBox + movs r0, #1 + strb r0, [r1, #6] + movs r0, #0xc + strb r0, [r1, #7] + b _0808860A + .align 2, 0 +_080885E0: .4byte 0x00004326 +_080885E4: .4byte gTextBox +_080885E8: + ldr r1, _08088618 @ =gUnk_02002A40 + adds r0, r1, #0 + adds r0, #0xb1 + ldrb r0, [r0] + cmp r0, #0 + beq _0808860A + adds r1, #0xbb + movs r0, #1 + strb r0, [r1] + movs r0, #0x3e + movs r1, #0 + movs r2, #0 + bl sub_080A7C00 + movs r0, #0x59 + bl sub_0807CD04 +_0808860A: + movs r0, #8 + bl sub_0807CD8C + movs r0, #7 + bl sub_0807CD8C + pop {pc} + .align 2, 0 +_08088618: .4byte gUnk_02002A40 + + thumb_func_start sub_0808861C +sub_0808861C: @ 0x0808861C + push {r4, lr} + adds r4, r1, #0 + movs r0, #0xa8 + movs r1, #0x54 + movs r2, #0xc + movs r3, #8 + bl sub_0800293E + str r0, [r4, #0x14] + ldr r1, _08088650 @ =gLinkEntity + ldrb r0, [r1, #0x14] + cmp r0, #0 + bne _0808863E + movs r2, #0x36 + ldrsh r0, [r1, r2] + cmp r0, #0 + beq _08088642 +_0808863E: + movs r0, #0 + str r0, [r4, #0x14] +_08088642: + ldr r2, _08088654 @ =gUnk_02033280 + ldrb r1, [r2, #7] + movs r0, #1 + orrs r0, r1 + strb r0, [r2, #7] + pop {r4, pc} + .align 2, 0 +_08088650: .4byte gLinkEntity +_08088654: .4byte gUnk_02033280 + + thumb_func_start sub_08088658 +sub_08088658: @ 0x08088658 + push {r4, lr} + adds r4, r1, #0 + movs r0, #0x78 + movs r1, #0x78 + movs r2, #0x10 + movs r3, #8 + bl sub_0800293E + str r0, [r4, #0x14] + ldr r0, _08088684 @ =gLinkEntity + movs r1, #0x36 + ldrsh r0, [r0, r1] + cmp r0, #0 + beq _08088678 + movs r0, #0 + str r0, [r4, #0x14] +_08088678: + ldr r2, _08088688 @ =gUnk_02033280 + ldrb r1, [r2, #7] + movs r0, #1 + orrs r0, r1 + strb r0, [r2, #7] + pop {r4, pc} + .align 2, 0 +_08088684: .4byte gLinkEntity +_08088688: .4byte gUnk_02033280 + + thumb_func_start sub_0808868C +sub_0808868C: @ 0x0808868C + push {lr} + ldr r2, _080886A0 @ =gUnk_08120B20 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080886A0: .4byte gUnk_08120B20 + + thumb_func_start sub_080886A4 +sub_080886A4: @ 0x080886A4 + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0xa] + movs r6, #3 + adds r0, r6, #0 + ands r0, r1 + strb r0, [r4, #0x14] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #6 + orrs r0, r1 + strb r0, [r2] + adds r1, r4, #0 + adds r1, #0x3c + movs r0, #7 + strb r0, [r1] + adds r1, #4 + movs r0, #0x48 + strb r0, [r1] + adds r0, r4, #0 + adds r0, #0x3f + movs r5, #1 + strb r5, [r0] + subs r1, #5 + movs r0, #2 + strb r0, [r1] + ldr r0, _08088700 @ =gUnk_080FD168 + str r0, [r4, #0x48] + adds r0, r4, #0 + adds r0, #0x84 + ldrh r0, [r0] + bl sub_0807CBE4 + cmp r0, #0 + beq _08088704 + strb r6, [r4, #0xc] + ldrb r1, [r4, #0x14] + adds r1, #4 + adds r0, r4, #0 + bl UpdateSprite + b _08088716 + .align 2, 0 +_08088700: .4byte gUnk_080FD168 +_08088704: + strb r5, [r4, #0xc] + ldrb r0, [r4, #0x10] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + ldrb r1, [r4, #0x14] + adds r0, r4, #0 + bl UpdateSprite +_08088716: + pop {r4, r5, r6, pc} + + thumb_func_start sub_08088718 +sub_08088718: @ 0x08088718 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x41 + ldrb r0, [r0] + cmp r0, #0x95 + beq _08088728 + cmp r0, #0x8e + bne _0808875A +_08088728: + ldr r0, [r4, #0x4c] + ldrb r1, [r0, #0x15] + adds r1, #4 + movs r0, #0x18 + ands r1, r0 + asrs r1, r1, #3 + ldrb r2, [r4, #0x14] + movs r0, #3 + ands r0, r2 + cmp r1, r0 + bne _0808875A + movs r0, #2 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + ldr r0, _0808875C @ =0x00000111 + bl sub_08004488 + adds r0, r4, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CCC8 +_0808875A: + pop {r4, pc} + .align 2, 0 +_0808875C: .4byte 0x00000111 + + thumb_func_start sub_08088760 +sub_08088760: @ 0x08088760 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0808878E + movs r0, #3 + strb r0, [r4, #0xc] + ldrb r0, [r4, #0xe] + lsls r0, r0, #1 + adds r1, r4, #0 + adds r1, #0x70 + strh r0, [r1] + ldrb r1, [r4, #0x14] + adds r1, #4 + adds r0, r4, #0 + bl UpdateSprite +_0808878E: + pop {r4, pc} + + thumb_func_start sub_08088790 +sub_08088790: @ 0x08088790 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _080887D6 + adds r0, r4, #0 + adds r0, #0x86 + adds r2, r4, #0 + adds r2, #0x84 + ldrh r1, [r0] + adds r5, r0, #0 + ldrh r0, [r2] + cmp r1, r0 + beq _080887BC + ldrh r0, [r2] + bl sub_0807CBE4 + cmp r0, #0 + beq _080887BC + movs r0, #0 + strb r0, [r4, #0xe] + b _080887D6 +_080887BC: + adds r1, r4, #0 + adds r1, #0x70 + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _080887D6 + movs r0, #4 + strb r0, [r4, #0xc] + ldrh r0, [r5] + bl sub_0807CD48 +_080887D6: + pop {r4, r5, pc} + + thumb_func_start sub_080887D8 +sub_080887D8: @ 0x080887D8 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08088802 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + ldrb r1, [r4, #0x14] + adds r0, r4, #0 + bl UpdateSprite +_08088802: + pop {r4, pc} + + thumb_func_start sub_08088804 +sub_08088804: @ 0x08088804 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xf] + cmp r0, #0 + beq _08088828 + subs r0, #1 + strb r0, [r4, #0xf] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08088828 + ldrb r0, [r4, #0x14] + adds r1, r4, #0 + adds r1, #0x72 + strb r0, [r1] + ldrb r1, [r4, #0x14] + adds r0, r4, #0 + bl UpdateSprite +_08088828: + ldr r0, _0808883C @ =gUnk_08120BE0 + ldrb r1, [r4, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + pop {r4, pc} + .align 2, 0 +_0808883C: .4byte gUnk_08120BE0 + + thumb_func_start sub_08088840 +sub_08088840: @ 0x08088840 + movs r3, #1 + movs r1, #1 + strb r1, [r0, #0xc] + ldrb r2, [r0, #0x18] + subs r1, #5 + ands r1, r2 + orrs r1, r3 + strb r1, [r0, #0x18] + adds r3, r0, #0 + adds r3, #0x29 + ldrb r1, [r3] + movs r2, #7 + orrs r1, r2 + strb r1, [r3] + ldr r1, _08088868 @ =gUnk_080FD1D4 + str r1, [r0, #0x48] + ldrb r1, [r0, #0x14] + adds r0, #0x72 + strb r1, [r0] + bx lr + .align 2, 0 +_08088868: .4byte gUnk_080FD1D4 + + thumb_func_start sub_0808886C +sub_0808886C: @ 0x0808886C + push {r4, r5, lr} + adds r5, r0, #0 + bl sub_08088938 + adds r4, r0, #0 + adds r0, r5, #0 + bl sub_080889A8 + adds r4, r4, r0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldrb r1, [r5, #0xa] + adds r0, r1, #2 + cmp r0, r4 + bgt _080888B8 + movs r1, #0 + movs r0, #2 + strb r0, [r5, #0xc] + strb r1, [r5, #0xf] + movs r0, #4 + strb r0, [r5, #0x14] + strh r1, [r5, #0x36] + adds r0, r5, #0 + movs r1, #4 + bl UpdateSprite + adds r0, r5, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CCC8 + ldr r0, _080888B4 @ =0x0000016B + bl sub_08004488 + b _080888F2 + .align 2, 0 +_080888B4: .4byte 0x0000016B +_080888B8: + ldrb r0, [r5, #0x14] + cmp r4, r0 + bls _080888E4 + adds r0, r1, #1 + cmp r0, r4 + bne _080888D2 + movs r0, #4 + strb r0, [r5, #0xf] + adds r1, r4, #1 + adds r0, r5, #0 + bl UpdateSprite + b _080888DA +_080888D2: + adds r0, r5, #0 + adds r1, r4, #0 + bl UpdateSprite +_080888DA: + movs r0, #0x86 + lsls r0, r0, #1 + bl sub_08004488 + b _080888F0 +_080888E4: + cmp r4, r0 + bhs _080888F0 + adds r0, r5, #0 + adds r1, r4, #0 + bl UpdateSprite +_080888F0: + strb r4, [r5, #0x14] +_080888F2: + pop {r4, r5, pc} + + thumb_func_start sub_080888F4 +sub_080888F4: @ 0x080888F4 + push {r4, r5, lr} + adds r5, r0, #0 + adds r0, #0x70 + ldrh r0, [r0] + cmp r0, #0 + beq _08088934 + adds r0, r5, #0 + bl sub_08088938 + adds r4, r0, #0 + adds r0, r5, #0 + bl sub_080889A8 + adds r4, r4, r0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldrb r0, [r5, #0xa] + adds r0, #2 + cmp r0, r4 + ble _08088934 + movs r0, #1 + strb r0, [r5, #0xc] + strb r4, [r5, #0x14] + adds r0, r5, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CD48 + adds r0, r5, #0 + adds r1, r4, #0 + bl UpdateSprite +_08088934: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08088938 +sub_08088938: @ 0x08088938 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + movs r5, #0 + ldrh r1, [r0, #0x2e] + subs r1, #8 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + mov ip, r1 + ldrh r1, [r0, #0x32] + subs r1, #8 + lsls r1, r1, #0x10 + lsrs r7, r1, #0x10 + movs r4, #0 + ldr r1, _080889A0 @ =gUnk_02034350 + ldr r2, _080889A4 @ =gUnk_08120BEC + mov r8, r2 + adds r3, r1, #0 + adds r3, #0xac + adds r6, r0, #0 + adds r6, #0x72 +_08088962: + ldr r2, [r3] + cmp r2, #0 + beq _08088990 + ldrh r0, [r2, #0x2e] + mov r1, ip + subs r0, r0, r1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0x10 + bhi _08088990 + ldrh r0, [r2, #0x32] + subs r0, r0, r7 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0x10 + bhi _08088990 + ldrb r0, [r6] + add r0, r8 + ldrb r1, [r0] + adds r0, r2, #0 + adds r0, #0x63 + strb r1, [r0] + adds r5, #1 +_08088990: + adds r3, #4 + adds r4, #1 + cmp r4, #7 + bls _08088962 + adds r0, r5, #0 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080889A0: .4byte gUnk_02034350 +_080889A4: .4byte gUnk_08120BEC + + thumb_func_start sub_080889A8 +sub_080889A8: @ 0x080889A8 + push {r4, r5, r6, lr} + adds r4, r0, #0 + movs r5, #0 + bl sub_08017850 + cmp r0, #0 + beq _080889CA + ldr r1, _08088A40 @ =gLinkEntity + ldr r2, _08088A44 @ =gUnk_08120BEC + adds r0, r4, #0 + adds r0, #0x72 + ldrb r0, [r0] + adds r0, r0, r2 + ldrb r0, [r0] + adds r1, #0x63 + strb r0, [r1] + movs r5, #1 +_080889CA: + ldr r0, _08088A48 @ =gLinkState + ldr r0, [r0, #0x30] + movs r1, #0x80 + lsls r1, r1, #0xf + ands r0, r1 + cmp r0, #0 + beq _08088A3A + ldr r6, _08088A4C @ =gUnk_03004040 + ldr r1, [r6] + adds r0, r4, #0 + bl sub_080177A0 + cmp r0, #0 + beq _080889FA + ldr r1, [r6] + ldr r2, _08088A44 @ =gUnk_08120BEC + adds r0, r4, #0 + adds r0, #0x72 + ldrb r0, [r0] + adds r0, r0, r2 + ldrb r0, [r0] + adds r1, #0x63 + strb r0, [r1] + adds r5, #1 +_080889FA: + ldr r1, [r6, #4] + adds r0, r4, #0 + bl sub_080177A0 + cmp r0, #0 + beq _08088A1A + ldr r1, [r6, #4] + ldr r2, _08088A44 @ =gUnk_08120BEC + adds r0, r4, #0 + adds r0, #0x72 + ldrb r0, [r0] + adds r0, r0, r2 + ldrb r0, [r0] + adds r1, #0x63 + strb r0, [r1] + adds r5, #1 +_08088A1A: + ldr r1, [r6, #8] + adds r0, r4, #0 + bl sub_080177A0 + cmp r0, #0 + beq _08088A3A + ldr r1, [r6, #8] + ldr r2, _08088A44 @ =gUnk_08120BEC + adds r0, r4, #0 + adds r0, #0x72 + ldrb r0, [r0] + adds r0, r0, r2 + ldrb r0, [r0] + adds r1, #0x63 + strb r0, [r1] + adds r5, #1 +_08088A3A: + adds r0, r5, #0 + pop {r4, r5, r6, pc} + .align 2, 0 +_08088A40: .4byte gLinkEntity +_08088A44: .4byte gUnk_08120BEC +_08088A48: .4byte gLinkState +_08088A4C: .4byte gUnk_03004040 + + thumb_func_start sub_08088A50 +sub_08088A50: @ 0x08088A50 + push {lr} + ldr r2, _08088A64 @ =gUnk_08120C34 + ldrb r1, [r0, #0xa] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08088A64: .4byte gUnk_08120C34 + + thumb_func_start sub_08088A68 +sub_08088A68: @ 0x08088A68 + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _08088AE4 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r0, [r4, #0x18] + movs r2, #3 + orrs r0, r2 + strb r0, [r4, #0x18] + ldrb r1, [r4, #0x11] + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x11] + movs r0, #0x17 + bl GetProgressFlag + cmp r0, #0 + beq _08088AA0 + ldr r0, _08088A9C @ =gUnk_02002A40 + ldrb r0, [r0, #7] + adds r0, #1 + b _08088AA4 + .align 2, 0 +_08088A9C: .4byte gUnk_02002A40 +_08088AA0: + ldr r0, _08088AD8 @ =gUnk_02002A40 + ldrb r0, [r0, #7] +_08088AA4: + strb r0, [r4, #0x1e] + adds r0, r4, #0 + bl sub_08088BE0 + movs r1, #0x2e + ldrsh r0, [r4, r1] + ldr r2, _08088ADC @ =gRoomControls + ldrh r1, [r2, #6] + subs r0, r0, r1 + movs r3, #0x32 + ldrsh r1, [r4, r3] + ldrh r2, [r2, #8] + subs r1, r1, r2 + movs r2, #0x80 + movs r3, #0x60 + bl sub_0800293E + cmp r0, #0 + beq _08088B82 + ldr r0, _08088AE0 @ =gUnk_02034350 + ldr r1, [r0, #0x68] + movs r2, #4 + orrs r1, r2 + str r1, [r0, #0x68] + b _08088B82 + .align 2, 0 +_08088AD8: .4byte gUnk_02002A40 +_08088ADC: .4byte gRoomControls +_08088AE0: .4byte gUnk_02034350 +_08088AE4: + ldr r5, _08088B70 @ =gUnk_02034350 + ldr r1, [r5, #0x68] + movs r6, #1 + adds r0, r1, #0 + ands r0, r6 + cmp r0, #0 + beq _08088B06 + movs r0, #2 + rsbs r0, r0, #0 + ands r1, r0 + str r1, [r5, #0x68] + strb r6, [r4, #0xe] + ldr r0, _08088B74 @ =gUnk_08120C1C + str r0, [r4, #0x68] + movs r0, #0x8a + bl PlaySFX +_08088B06: + ldr r1, [r5, #0x68] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _08088B24 + movs r0, #3 + rsbs r0, r0, #0 + ands r1, r0 + str r1, [r5, #0x68] + strb r6, [r4, #0xe] + ldr r0, _08088B78 @ =gUnk_08120C25 + str r0, [r4, #0x68] + movs r0, #0x89 + bl PlaySFX +_08088B24: + ldr r1, [r5, #0x68] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + beq _08088B42 + movs r0, #5 + rsbs r0, r0, #0 + ands r1, r0 + str r1, [r5, #0x68] + strb r6, [r4, #0xe] + ldr r0, _08088B7C @ =gUnk_08120C2E + str r0, [r4, #0x68] + movs r0, #0x8a + bl PlaySFX +_08088B42: + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _08088B82 + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r3, #0 + bne _08088B82 + ldr r1, [r4, #0x68] + ldrb r0, [r1] + adds r2, r4, #0 + adds r2, #0x63 + strb r0, [r2] + adds r1, #1 + ldrb r0, [r1] + cmp r0, #0xff + beq _08088B80 + movs r0, #8 + strb r0, [r4, #0xe] + str r1, [r4, #0x68] + b _08088B82 + .align 2, 0 +_08088B70: .4byte gUnk_02034350 +_08088B74: .4byte gUnk_08120C1C +_08088B78: .4byte gUnk_08120C25 +_08088B7C: .4byte gUnk_08120C2E +_08088B80: + strb r3, [r2] +_08088B82: + adds r5, r4, #0 + adds r5, #0x29 + ldrb r1, [r5] + movs r6, #8 + rsbs r6, r6, #0 + adds r0, r6, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r5] + movs r1, #0x2e + ldrsh r0, [r4, r1] + subs r0, #0x50 + movs r2, #0x32 + ldrsh r1, [r4, r2] + subs r1, #0x50 + movs r2, #0xa0 + movs r3, #0x30 + bl sub_0806FBFC + cmp r0, #0 + beq _08088BBA + ldrb r0, [r5] + adds r1, r6, #0 + ands r1, r0 + movs r0, #5 + orrs r1, r0 + strb r1, [r5] +_08088BBA: + movs r3, #0x2e + ldrsh r0, [r4, r3] + subs r0, #0x50 + movs r2, #0x32 + ldrsh r1, [r4, r2] + adds r1, #0x30 + movs r2, #0xa0 + movs r3, #0x30 + bl sub_0806FBFC + cmp r0, #0 + beq _08088BDE + ldrb r0, [r5] + adds r1, r6, #0 + ands r1, r0 + movs r0, #5 + orrs r1, r0 + strb r1, [r5] +_08088BDE: + pop {r4, r5, r6, pc} + + thumb_func_start sub_08088BE0 +sub_08088BE0: @ 0x08088BE0 + push {r4, lr} + adds r4, r0, #0 + movs r0, #0x15 + bl sub_0807CBD0 + cmp r0, #0 + bne _08088C1C + movs r3, #0x78 + rsbs r3, r3, #0 + adds r0, r4, #0 + movs r1, #2 + movs r2, #0 + bl sub_08088C78 + adds r0, r4, #0 + movs r1, #4 + movs r2, #0x15 + movs r3, #0 + bl sub_08088C78 + adds r2, r0, #0 + cmp r2, #0 + beq _08088C1C + ldr r0, _08088C74 @ =gRoomControls + ldrh r1, [r0, #6] + adds r1, #0x48 + strh r1, [r2, #0x2e] + ldrh r0, [r0, #8] + adds r0, #0xc8 + strh r0, [r2, #0x32] +_08088C1C: + movs r0, #0x16 + bl sub_0807CBD0 + cmp r0, #0 + bne _08088C58 + adds r0, r4, #0 + movs r1, #2 + movs r2, #1 + movs r3, #0x78 + bl sub_08088C78 + adds r0, r4, #0 + movs r1, #4 + movs r2, #0x16 + movs r3, #0 + bl sub_08088C78 + adds r2, r0, #0 + cmp r2, #0 + beq _08088C58 + ldr r0, _08088C74 @ =gRoomControls + movs r3, #0xc4 + lsls r3, r3, #1 + adds r1, r3, #0 + ldrh r3, [r0, #6] + adds r1, r1, r3 + strh r1, [r2, #0x2e] + ldrh r0, [r0, #8] + adds r0, #0xc8 + strh r0, [r2, #0x32] +_08088C58: + movs r3, #0x78 + rsbs r3, r3, #0 + adds r0, r4, #0 + movs r1, #1 + movs r2, #0 + bl sub_08088C78 + adds r0, r4, #0 + movs r1, #1 + movs r2, #1 + movs r3, #0x78 + bl sub_08088C78 + pop {r4, pc} + .align 2, 0 +_08088C74: .4byte gRoomControls + + thumb_func_start sub_08088C78 +sub_08088C78: @ 0x08088C78 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r3, #0 + movs r0, #0x25 + bl CreateObject + adds r1, r0, #0 + cmp r1, #0 + beq _08088C96 + ldrh r0, [r4, #0x2e] + adds r0, r0, r5 + strh r0, [r1, #0x2e] + ldrh r0, [r4, #0x32] + strh r0, [r1, #0x32] + str r4, [r1, #0x50] +_08088C96: + adds r0, r1, #0 + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08088C9C +sub_08088C9C: @ 0x08088C9C + push {r4, lr} + adds r4, r0, #0 + ldr r1, _08088CEC @ =gUnk_08120C48 + ldr r0, [r4, #0x50] + adds r0, #0x29 + ldrb r0, [r0] + lsls r0, r0, #0x1d + lsrs r0, r0, #0x1d + adds r0, r0, r1 + ldrb r0, [r0] + adds r3, r4, #0 + adds r3, #0x29 + movs r1, #7 + ands r1, r0 + ldrb r2, [r3] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + ldr r0, [r4, #0x50] + adds r0, #0x63 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + lsrs r1, r0, #0x1f + adds r0, r0, r1 + asrs r0, r0, #1 + adds r1, r4, #0 + adds r1, #0x63 + strb r0, [r1] + ldrb r0, [r4, #0xc] + cmp r0, #1 + beq _08088D4C + cmp r0, #1 + bgt _08088CF0 + cmp r0, #0 + beq _08088CFA + b _08088DB0 + .align 2, 0 +_08088CEC: .4byte gUnk_08120C48 +_08088CF0: + cmp r0, #2 + beq _08088D5A + cmp r0, #3 + beq _08088D7A + b _08088DB0 +_08088CFA: + movs r2, #1 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #5 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x18] + ldrb r2, [r4, #0xb] + adds r0, r2, #4 + strb r0, [r4, #0x1e] + ldrb r1, [r4, #0x11] + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #3 + orrs r0, r1 + strb r0, [r4, #0x11] + lsls r2, r2, #0x18 + movs r0, #0x16 + cmp r2, #0 + bne _08088D28 + movs r0, #0x15 +_08088D28: + strb r0, [r4, #0xf] + ldrb r0, [r4, #0xf] + bl sub_0807CBD0 + cmp r0, #0 + beq _08088DB0 + ldr r1, _08088D48 @ =gUnk_08120C50 + ldrb r0, [r4, #0xb] + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldrh r1, [r4, #0x2e] + adds r0, r0, r1 + strh r0, [r4, #0x2e] + b _08088DAC + .align 2, 0 +_08088D48: .4byte gUnk_08120C50 +_08088D4C: + ldrb r0, [r4, #0xf] + bl sub_0807CBD0 + cmp r0, #0 + beq _08088DB0 + movs r0, #2 + b _08088DAE +_08088D5A: + ldr r2, _08088D98 @ =gUnk_02034350 + ldr r1, [r2, #0x68] + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + beq _08088DB0 + movs r0, #0x21 + rsbs r0, r0, #0 + ands r1, r0 + str r1, [r2, #0x68] + movs r0, #3 + strb r0, [r4, #0xc] + movs r0, #4 + strb r0, [r4, #0xd] + movs r0, #1 + strb r0, [r4, #0xe] +_08088D7A: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08088DB0 + movs r0, #8 + strb r0, [r4, #0xe] + movs r0, #0x2e + ldrsh r1, [r4, r0] + ldrb r0, [r4, #0xb] + cmp r0, #0 + beq _08088D9C + subs r0, r1, #2 + b _08088D9E + .align 2, 0 +_08088D98: .4byte gUnk_02034350 +_08088D9C: + adds r0, r1, #2 +_08088D9E: + strh r0, [r4, #0x2e] + ldrb r0, [r4, #0xd] + subs r0, #1 + strb r0, [r4, #0xd] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08088DB0 +_08088DAC: + movs r0, #4 +_08088DAE: + strb r0, [r4, #0xc] +_08088DB0: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08088DB4 +sub_08088DB4: @ 0x08088DB4 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #1 + beq _08088E28 + cmp r0, #1 + bgt _08088DC8 + cmp r0, #0 + beq _08088DEC + b _08088E50 +_08088DC8: + cmp r0, #4 + bgt _08088E50 + ldr r0, _08088DE8 @ =gUnk_02034350 + ldr r0, [r0, #0x68] + movs r1, #8 + ands r0, r1 + cmp r0, #0 + beq _08088E6E + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08088E6E + b _08088E3E + .align 2, 0 +_08088DE8: .4byte gUnk_02034350 +_08088DEC: + movs r2, #1 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #5 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x18] + ldrb r0, [r4, #0xb] + lsls r0, r0, #2 + adds r0, #6 + strb r0, [r4, #0x1e] + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #2 + strb r0, [r1] + adds r0, r4, #0 + movs r1, #3 + bl sub_0805E3A0 + ldrb r0, [r4, #0xb] + movs r1, #0x16 + cmp r0, #0 + bne _08088E1E + movs r1, #0x15 +_08088E1E: + strb r1, [r4, #0xb] + adds r0, r4, #0 + bl UpdateSpriteOrderAndFlip + b _08088E6E +_08088E28: + ldrb r0, [r4, #0xb] + bl sub_0807CBD0 + cmp r0, #0 + beq _08088E6E + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + movs r0, #0xa + strb r0, [r4, #0xe] + b _08088E6E +_08088E3E: + movs r0, #0x1e + strb r0, [r4, #0xe] + ldrb r0, [r4, #0x1e] + adds r0, #1 + strb r0, [r4, #0x1e] + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + b _08088E6E +_08088E50: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08088E6E + ldr r0, _08088E70 @ =gUnk_02034350 + ldr r1, [r0, #0x68] + movs r2, #9 + rsbs r2, r2, #0 + ands r1, r2 + str r1, [r0, #0x68] + adds r0, r4, #0 + bl sub_0805E7BC +_08088E6E: + pop {r4, pc} + .align 2, 0 +_08088E70: .4byte gUnk_02034350 + + thumb_func_start sub_08088E74 +sub_08088E74: @ 0x08088E74 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _08088E94 + movs r0, #1 + strb r0, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #2 + strb r0, [r1] + ldr r2, _08088EB0 @ =gUnk_02034350 + ldr r0, [r2, #0x68] + movs r1, #8 + orrs r0, r1 + str r0, [r2, #0x68] +_08088E94: + adds r0, r4, #0 + bl sub_0806FB38 + cmp r0, #0 + beq _08088EB4 + ldr r0, _08088EB0 @ =gUnk_02034350 + ldr r1, [r0, #0x68] + movs r2, #0x10 + orrs r1, r2 + str r1, [r0, #0x68] + adds r0, r4, #0 + bl sub_0805E7BC + b _08088F14 + .align 2, 0 +_08088EB0: .4byte gUnk_02034350 +_08088EB4: + ldr r0, _08088F18 @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #7 + ands r0, r1 + cmp r0, #0 + bne _08088F14 + adds r0, r4, #0 + movs r1, #0x2a + movs r2, #0 + movs r3, #0x1e + bl CreateObjectWithParent + adds r4, r0, #0 + cmp r4, #0 + beq _08088F14 + ldrb r1, [r4, #0x11] + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #3 + orrs r0, r1 + strb r0, [r4, #0x11] + ldrb r2, [r4, #0x19] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r2 + strb r0, [r4, #0x19] + adds r3, r4, #0 + adds r3, #0x29 + ldrb r2, [r3] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r3] + ldrb r0, [r4, #0x1b] + ands r1, r0 + strb r1, [r4, #0x1b] + bl Random + ldr r2, _08088F1C @ =gUnk_08120C52 + movs r1, #3 + ands r1, r0 + adds r1, r1, r2 + movs r0, #0 + ldrsb r0, [r1, r0] + ldrh r1, [r4, #0x32] + adds r0, r0, r1 + strh r0, [r4, #0x32] +_08088F14: + pop {r4, pc} + .align 2, 0 +_08088F18: .4byte gUnk_030010A0 +_08088F1C: .4byte gUnk_08120C52 + + thumb_func_start sub_08088F20 +sub_08088F20: @ 0x08088F20 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #1 + beq _08088F62 + cmp r0, #1 + bgt _08088F34 + cmp r0, #0 + beq _08088F3E + b _08089020 +_08088F34: + cmp r0, #2 + beq _08088FEC + cmp r0, #3 + beq _08089004 + b _08089020 +_08088F3E: + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x11] + subs r0, #0x11 + ands r0, r1 + movs r1, #3 + orrs r0, r1 + strb r0, [r4, #0x11] + ldrb r0, [r4, #0xb] + bl sub_0807CBD0 + cmp r0, #0 + bne _08088F5A + b _0808908E +_08088F5A: + adds r0, r4, #0 + bl sub_0805E7BC + b _0808908E +_08088F62: + ldrb r0, [r4, #0xb] + bl sub_0807CBD0 + cmp r0, #0 + bne _08088F6E + b _0808908E +_08088F6E: + movs r5, #2 + strb r5, [r4, #0xc] + movs r0, #0x1e + strb r0, [r4, #0xe] + movs r1, #0x87 + lsls r1, r1, #1 + adds r0, r4, #0 + bl sub_0805E4E0 + movs r0, #0x2a + movs r1, #1 + movs r2, #0 + bl CreateObject + adds r2, r0, #0 + cmp r2, #0 + beq _08088FBC + ldrb r1, [r2, #0x11] + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #3 + orrs r0, r1 + strb r0, [r2, #0x11] + ldrh r0, [r4, #0x2e] + strh r0, [r2, #0x2e] + ldrh r0, [r4, #0x32] + strh r0, [r2, #0x32] + adds r0, r2, #0 + adds r0, #0x38 + strb r5, [r0] + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #2 + orrs r0, r1 + strb r0, [r2] +_08088FBC: + movs r0, #0x2e + ldrsh r1, [r4, r0] + ldr r2, _08088FE8 @ =gRoomControls + ldrh r0, [r2, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + movs r3, #0x3f + ands r1, r3 + movs r5, #0x32 + ldrsh r0, [r4, r5] + ldrh r2, [r2, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r1, r0 + movs r0, #0x76 + movs r2, #2 + bl sub_0807B314 + b _0808908E + .align 2, 0 +_08088FE8: .4byte gRoomControls +_08088FEC: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0808908E + adds r0, r4, #0 + bl sub_08089094 + movs r0, #3 + strb r0, [r4, #0xc] + b _0808908E +_08089004: + ldr r0, _0808901C @ =gUnk_02034350 + ldr r0, [r0, #0x68] + movs r1, #0x10 + ands r0, r1 + cmp r0, #0 + beq _0808908E + movs r0, #4 + strb r0, [r4, #0xc] + movs r0, #0x78 + strb r0, [r4, #0xe] + b _0808908E + .align 2, 0 +_0808901C: .4byte gUnk_02034350 +_08089020: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x5a + bne _0808905C + movs r0, #0x15 + movs r1, #2 + bl sub_0807CC60 + cmp r0, #0 + beq _08089048 + ldr r0, _08089044 @ =gUnk_02034350 + ldr r1, [r0, #0x68] + movs r2, #2 + b _0808904E + .align 2, 0 +_08089044: .4byte gUnk_02034350 +_08089048: + ldr r0, _08089090 @ =gUnk_02034350 + ldr r1, [r0, #0x68] + movs r2, #1 +_0808904E: + orrs r1, r2 + str r1, [r0, #0x68] + adds r2, r0, #0 + ldr r0, [r2, #0x68] + movs r1, #0x20 + orrs r0, r1 + str r0, [r2, #0x68] +_0808905C: + ldrb r0, [r4, #0xe] + cmp r0, #0 + bne _0808908E + ldr r2, _08089090 @ =gUnk_02034350 + ldr r0, [r2, #0x68] + movs r1, #0x11 + rsbs r1, r1, #0 + ands r0, r1 + str r0, [r2, #0x68] + movs r0, #0x15 + movs r1, #2 + bl sub_0807CC60 + cmp r0, #0 + beq _08089088 + adds r0, r4, #0 + movs r1, #0x3c + bl sub_0805E4E0 + movs r0, #0x72 + bl PlaySFX +_08089088: + adds r0, r4, #0 + bl sub_0805E7BC +_0808908E: + pop {r4, r5, pc} + .align 2, 0 +_08089090: .4byte gUnk_02034350 + + thumb_func_start sub_08089094 +sub_08089094: @ 0x08089094 + push {r4, r5, lr} + adds r5, r0, #0 + movs r1, #0x2e + ldrsh r0, [r5, r1] + ldr r1, _080890C4 @ =gRoomControls + ldrh r1, [r1, #6] + subs r0, r0, r1 + cmp r0, #0xff + bgt _080890CC + ldr r4, _080890C8 @ =gUnk_08120C56 + movs r2, #8 + rsbs r2, r2, #0 + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_080890EC + adds r4, #4 + adds r0, r5, #0 + adds r1, r4, #0 + movs r2, #4 + bl sub_080890EC + b _080890E6 + .align 2, 0 +_080890C4: .4byte gRoomControls +_080890C8: .4byte gUnk_08120C56 +_080890CC: + ldr r4, _080890E8 @ =gUnk_08120C5E + movs r2, #8 + rsbs r2, r2, #0 + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_080890EC + adds r4, #4 + adds r0, r5, #0 + adds r1, r4, #0 + movs r2, #4 + bl sub_080890EC +_080890E6: + pop {r4, r5, pc} + .align 2, 0 +_080890E8: .4byte gUnk_08120C5E + + thumb_func_start sub_080890EC +sub_080890EC: @ 0x080890EC + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + adds r7, r1, #0 + adds r6, r2, #0 + movs r0, #0x25 + movs r1, #3 + movs r2, #0 + bl CreateObject + adds r4, r0, #0 + cmp r4, #0 + beq _08089132 + movs r1, #3 + bl sub_0805E3A0 + ldrh r0, [r5, #0x2e] + strh r0, [r4, #0x2e] + ldrh r0, [r5, #0x32] + adds r0, r0, r6 + strh r0, [r4, #0x32] + str r5, [r4, #0x50] + movs r0, #0x2e + ldrsh r1, [r4, r0] + movs r2, #0 + ldrsh r0, [r7, r2] + adds r1, r1, r0 + movs r3, #0x32 + ldrsh r2, [r4, r3] + movs r3, #2 + ldrsh r0, [r7, r3] + adds r2, r2, r0 + adds r0, r4, #0 + movs r3, #0x5a + bl sub_0806FB00 +_08089132: + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_08089134 +sub_08089134: @ 0x08089134 + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xc] + cmp r0, #0 + bne _0808919C + movs r2, #1 + movs r3, #1 + strb r3, [r5, #0xc] + ldrb r1, [r5, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + orrs r0, r2 + strb r0, [r5, #0x18] + ldrb r0, [r5, #0xa] + strb r0, [r5, #0x1e] + movs r0, #0x10 + strb r0, [r5, #0xe] + strb r3, [r5, #0xf] + ldrb r0, [r5, #0xa] + lsls r3, r0, #1 + adds r3, r3, r0 + ldr r0, _080891D4 @ =gUnk_08120C80 + adds r3, r3, r0 + ldrb r1, [r3] + lsls r1, r1, #6 + ldrb r4, [r5, #0x19] + movs r2, #0x3f + adds r0, r2, #0 + ands r0, r4 + orrs r0, r1 + strb r0, [r5, #0x19] + ldrb r0, [r3, #1] + movs r1, #0x29 + adds r1, r1, r5 + mov ip, r1 + movs r1, #7 + ands r1, r0 + mov r0, ip + ldrb r4, [r0] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r4 + orrs r0, r1 + mov r1, ip + strb r0, [r1] + ldrb r0, [r3, #2] + lsls r0, r0, #6 + ldrb r1, [r5, #0x1b] + ands r2, r1 + orrs r2, r0 + strb r2, [r5, #0x1b] +_0808919C: + ldrb r0, [r5, #0xa] + cmp r0, #4 + bne _080891D0 + ldrb r0, [r5, #0xe] + subs r0, #1 + strb r0, [r5, #0xe] + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r3, #0 + bne _080891D0 + movs r0, #0x10 + strb r0, [r5, #0xe] + ldr r2, _080891D8 @ =gUnk_08120C92 + ldrb r0, [r5, #0xf] + adds r1, r0, #1 + strb r1, [r5, #0xf] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r0, r0, r2 + ldrb r0, [r0] + strb r0, [r5, #0x1e] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + cmp r1, #3 + bne _080891D0 + strb r3, [r5, #0xf] +_080891D0: + pop {r4, r5, pc} + .align 2, 0 +_080891D4: .4byte gUnk_08120C80 +_080891D8: .4byte gUnk_08120C92 + + thumb_func_start sub_080891DC +sub_080891DC: @ 0x080891DC + push {lr} + ldr r2, _080891F0 @ =gUnk_08120C98 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080891F0: .4byte gUnk_08120C98 + + thumb_func_start sub_080891F4 +sub_080891F4: @ 0x080891F4 + push {r4, lr} + adds r4, r0, #0 + bl sub_0808965C + cmp r0, #0 + beq _08089236 + movs r3, #0 + movs r2, #1 + strb r2, [r4, #0xc] + movs r0, #0x80 + strh r0, [r4, #0x24] + ldrb r1, [r4, #0x11] + subs r0, #0x90 + ands r0, r1 + movs r1, #3 + orrs r0, r1 + strb r0, [r4, #0x11] + ldr r0, _08089238 @ =gUnk_080FD1F4 + str r0, [r4, #0x48] + strb r2, [r4, #0x16] + adds r0, r4, #0 + adds r0, #0x86 + strh r3, [r0] + adds r0, r4, #0 + bl sub_08089454 + adds r0, r4, #0 + bl sub_080894C8 + adds r0, r4, #0 + movs r1, #0 + bl UpdateSprite +_08089236: + pop {r4, pc} + .align 2, 0 +_08089238: .4byte gUnk_080FD1F4 + + thumb_func_start sub_0808923C +sub_0808923C: @ 0x0808923C + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_0800442E + cmp r0, #0 + bne _080892C0 + adds r0, r4, #0 + adds r0, #0x84 + ldrh r0, [r0] + adds r1, r4, #0 + adds r1, #0x38 + ldrb r1, [r1] + bl sub_080002B0 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + ldr r0, _08089278 @ =0x0000400B + cmp r5, r0 + beq _080892BA + adds r0, r5, #0 + bl sub_0808968C + cmp r0, #1 + beq _0808927C + cmp r0, #1 + blo _08089294 + cmp r0, #2 + beq _080892B2 + b _080892C0 + .align 2, 0 +_08089278: .4byte 0x0000400B +_0808927C: + movs r1, #3 + movs r0, #3 + strb r0, [r4, #0xc] + adds r0, r5, #0 + subs r0, #0xc + ands r0, r1 + lsls r0, r0, #3 + strb r0, [r4, #0x15] + adds r0, r4, #0 + bl sub_08089538 + b _080892C0 +_08089294: + movs r0, #0xf + movs r1, #4 + movs r2, #0 + bl CreateObject + adds r1, r0, #0 + cmp r1, #0 + beq _080892AA + adds r0, r4, #0 + bl CopyPosition +_080892AA: + adds r0, r4, #0 + bl sub_080894FC + b _080892C0 +_080892B2: + adds r0, r4, #0 + adds r0, #0x80 + strh r5, [r0] + b _080892C0 +_080892BA: + adds r0, r4, #0 + bl sub_08078930 +_080892C0: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_080892C4 +sub_080892C4: @ 0x080892C4 + push {lr} + adds r2, r0, #0 + adds r0, #0x86 + ldrh r0, [r0] + cmp r0, #0 + beq _080892D8 + adds r0, r2, #0 + bl sub_080895C0 + b _080892F6 +_080892D8: + ldr r0, _080892F8 @ =gLinkState + ldrb r0, [r0, #5] + cmp r0, #0 + bne _080892E4 + movs r0, #6 + strb r0, [r2, #0xd] +_080892E4: + ldr r0, _080892FC @ =gUnk_08120CAC + ldrb r1, [r2, #0xd] + subs r1, #5 + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r2, #0 + bl _call_via_r1 +_080892F6: + pop {pc} + .align 2, 0 +_080892F8: .4byte gLinkState +_080892FC: .4byte gUnk_08120CAC + + thumb_func_start sub_08089300 +sub_08089300: @ 0x08089300 + push {r4, r5, lr} + adds r5, r0, #0 + adds r1, r5, #0 + adds r1, #0x83 + ldrb r0, [r1] + cmp r0, #0 + bne _0808932C + movs r0, #1 + strb r0, [r1] + ldr r1, _0808935C @ =gLinkEntity + ldrb r0, [r1, #0x14] + ldr r2, _08089360 @ =gUnk_08120CB4 + adds r0, r0, r2 + movs r2, #0 + ldrsb r2, [r0, r2] + lsls r2, r2, #0x10 + movs r3, #1 + ldrsb r3, [r0, r3] + lsls r3, r3, #0x10 + adds r0, r5, #0 + bl PositionRelative +_0808932C: + adds r0, r5, #0 + adds r0, #0x84 + ldrh r0, [r0] + adds r1, r5, #0 + adds r1, #0x38 + ldrb r1, [r1] + bl sub_080002B0 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + ldr r0, _08089364 @ =0x0000400B + cmp r4, r0 + beq _080893A0 + adds r0, r4, #0 + bl sub_0808968C + cmp r0, #1 + beq _08089368 + cmp r0, #1 + blo _0808937C + cmp r0, #2 + beq _0808939A + b _080893A0 + .align 2, 0 +_0808935C: .4byte gLinkEntity +_08089360: .4byte gUnk_08120CB4 +_08089364: .4byte 0x0000400B +_08089368: + adds r0, r4, #0 + subs r0, #0xc + movs r1, #3 + ands r0, r1 + lsls r0, r0, #3 + strb r0, [r5, #0x15] + adds r0, r5, #0 + bl sub_08089538 + b _080893A0 +_0808937C: + movs r0, #0xf + movs r1, #4 + movs r2, #0 + bl CreateObject + adds r1, r0, #0 + cmp r1, #0 + beq _08089392 + adds r0, r5, #0 + bl CopyPosition +_08089392: + adds r0, r5, #0 + bl sub_080894FC + b _080893D6 +_0808939A: + adds r0, r5, #0 + adds r0, #0x80 + strh r4, [r0] +_080893A0: + bl sub_080896B0 + cmp r0, #0 + beq _080893D6 + ldr r2, _080893D8 @ =gLinkState + movs r3, #0 + movs r0, #0x10 + strb r0, [r2, #0xc] + adds r1, r2, #0 + adds r1, #0x38 + movs r0, #0x20 + strb r0, [r1] + ldr r0, [r2, #0x30] + movs r1, #1 + orrs r0, r1 + str r0, [r2, #0x30] + ldr r0, _080893DC @ =gLinkEntity + strh r3, [r0, #0x2c] + strh r3, [r0, #0x30] + ldrb r0, [r0, #0x14] + movs r1, #4 + eors r0, r1 + lsls r0, r0, #2 + strb r0, [r5, #0x15] + adds r0, r5, #0 + bl sub_08089538 +_080893D6: + pop {r4, r5, pc} + .align 2, 0 +_080893D8: .4byte gLinkState +_080893DC: .4byte gLinkEntity + + thumb_func_start sub_080893E0 +sub_080893E0: @ 0x080893E0 + movs r2, #0 + movs r1, #1 + strb r1, [r0, #0xc] + adds r0, #0x83 + strb r2, [r0] + bx lr + + thumb_func_start sub_080893EC +sub_080893EC: @ 0x080893EC + push {r4, lr} + adds r4, r0, #0 + bl sub_080895C0 + cmp r0, #0 + beq _080893FC + movs r0, #1 + strb r0, [r4, #0xc] +_080893FC: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08089400 +sub_08089400: @ 0x08089400 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08089424 + ldrb r2, [r4, #0x18] + lsls r1, r2, #0x1e + lsrs r1, r1, #0x1e + movs r0, #1 + eors r1, r0 + subs r0, #5 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x18] + b _0808944E +_08089424: + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + movs r0, #1 + strb r0, [r4, #0xc] + ldr r0, _08089450 @ =0x0000400B + adds r1, r4, #0 + adds r1, #0x84 + ldrh r1, [r1] + adds r2, r4, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl UpdateCollisionLayer + adds r0, r4, #0 + bl sub_080894C8 +_0808944E: + pop {r4, pc} + .align 2, 0 +_08089450: .4byte 0x0000400B + + thumb_func_start sub_08089454 +sub_08089454: @ 0x08089454 + push {r4, r5, r6, lr} + adds r5, r0, #0 + movs r0, #0x2e + ldrsh r1, [r5, r0] + ldr r2, _080894C0 @ =gRoomControls + ldrh r0, [r2, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + movs r3, #0x3f + ands r1, r3 + movs r4, #0x32 + ldrsh r0, [r5, r4] + ldrh r2, [r2, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r1, r0 + adds r6, r5, #0 + adds r6, #0x84 + strh r1, [r6] + ldrh r0, [r6] + adds r4, r5, #0 + adds r4, #0x38 + ldrb r1, [r4] + bl sub_080001DA + adds r1, r5, #0 + adds r1, #0x80 + strh r0, [r1] + ldr r5, _080894C4 @ =0x0000400B + ldrh r1, [r6] + ldrb r2, [r4] + adds r0, r5, #0 + bl UpdateCollisionLayer + ldrb r0, [r4] + cmp r0, #2 + bne _080894BC + ldrh r0, [r6] + movs r1, #1 + bl sub_080002B0 + movs r1, #0xc4 + lsls r1, r1, #2 + cmp r0, r1 + bne _080894BC + ldrh r1, [r6] + adds r0, r5, #0 + movs r2, #1 + bl UpdateCollisionLayer +_080894BC: + pop {r4, r5, r6, pc} + .align 2, 0 +_080894C0: .4byte gRoomControls +_080894C4: .4byte 0x0000400B + + thumb_func_start sub_080894C8 +sub_080894C8: @ 0x080894C8 + push {r4, lr} + adds r3, r0, #0 + movs r2, #0 + ldr r1, _080894E0 @ =gUnk_02034350 + adds r4, r1, #0 + adds r4, #0xac + ldr r0, [r4] + mov ip, r1 + cmp r0, #0 + bne _080894E4 + str r3, [r4] + b _080894FA + .align 2, 0 +_080894E0: .4byte gUnk_02034350 +_080894E4: + adds r2, #1 + cmp r2, #7 + bhi _080894FA + lsls r0, r2, #2 + mov r1, ip + adds r1, #0xac + adds r1, r0, r1 + ldr r0, [r1] + cmp r0, #0 + bne _080894E4 + str r3, [r1] +_080894FA: + pop {r4, pc} + + thumb_func_start sub_080894FC +sub_080894FC: @ 0x080894FC + push {r4, lr} + adds r3, r0, #0 + movs r2, #0 + ldr r1, _08089514 @ =gUnk_02034350 + adds r4, r1, #0 + adds r4, #0xac + ldr r0, [r4] + mov ip, r1 + cmp r3, r0 + bne _08089518 + str r2, [r4] + b _08089530 + .align 2, 0 +_08089514: .4byte gUnk_02034350 +_08089518: + adds r2, #1 + cmp r2, #7 + bhi _08089530 + lsls r0, r2, #2 + mov r1, ip + adds r1, #0xac + adds r1, r0, r1 + ldr r0, [r1] + cmp r3, r0 + bne _08089518 + movs r0, #0 + str r0, [r1] +_08089530: + adds r0, r3, #0 + bl sub_0805E7BC + pop {r4, pc} + + thumb_func_start sub_08089538 +sub_08089538: @ 0x08089538 + push {r4, r5, r6, lr} + adds r5, r0, #0 + adds r1, r5, #0 + adds r1, #0x86 + movs r0, #0x20 + strh r0, [r1] + adds r0, #0xef + bl sub_08004488 + adds r0, r5, #0 + adds r0, #0x80 + ldrh r0, [r0] + adds r6, r5, #0 + adds r6, #0x84 + ldrh r1, [r6] + adds r4, r5, #0 + adds r4, #0x38 + ldrb r2, [r4] + bl UpdateCollisionLayer + ldrb r0, [r4] + cmp r0, #2 + bne _08089580 + ldrh r0, [r6] + movs r1, #1 + bl sub_080002B0 + ldr r1, _080895B8 @ =0x0000400B + cmp r0, r1 + bne _08089580 + movs r0, #0xc4 + lsls r0, r0, #2 + ldrh r1, [r6] + movs r2, #1 + bl sub_08000152 +_08089580: + adds r2, r5, #0 + adds r2, #0x84 + ldr r1, _080895BC @ =gUnk_080B4488 + ldrb r0, [r5, #0x15] + lsrs r0, r0, #3 + lsls r0, r0, #1 + adds r0, r0, r1 + movs r1, #0 + ldrsh r0, [r0, r1] + ldrh r2, [r2] + adds r0, r0, r2 + adds r1, r5, #0 + adds r1, #0x38 + ldrb r1, [r1] + bl sub_080002B0 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0x79 + beq _080895AC + cmp r0, #0x77 + bne _080895B4 +_080895AC: + adds r1, r5, #0 + adds r1, #0x63 + movs r0, #0xfe + strb r0, [r1] +_080895B4: + pop {r4, r5, r6, pc} + .align 2, 0 +_080895B8: .4byte 0x0000400B +_080895BC: .4byte gUnk_080B4488 + + thumb_func_start sub_080895C0 +sub_080895C0: @ 0x080895C0 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F69C + adds r1, r4, #0 + adds r1, #0x86 + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0808964C + adds r0, r4, #0 + bl sub_0800442E + cmp r0, #0 + bne _0808964C + adds r1, r4, #0 + adds r1, #0x63 + movs r0, #0 + strb r0, [r1] + adds r0, r4, #0 + bl sub_080002D0 + cmp r0, #0 + bne _080895FE + adds r0, r4, #0 + bl sub_08089454 + movs r0, #1 + b _08089654 +_080895FE: + movs r0, #0xf + movs r1, #4 + movs r2, #0 + bl CreateObject + adds r1, r0, #0 + cmp r1, #0 + beq _08089614 + adds r0, r4, #0 + bl CopyPosition +_08089614: + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] + ldr r2, _08089658 @ =gUnk_08120CBC + ldrb r1, [r4, #0x15] + lsrs r1, r1, #2 + lsls r0, r1, #1 + adds r0, r0, r2 + ldrh r0, [r0] + ldrh r3, [r4, #0x2e] + adds r0, r0, r3 + strh r0, [r4, #0x2e] + adds r1, #1 + lsls r1, r1, #1 + adds r1, r1, r2 + ldrh r0, [r1] + ldrh r1, [r4, #0x32] + adds r0, r0, r1 + strh r0, [r4, #0x32] + adds r0, r4, #0 + bl sub_08089454 + movs r0, #4 + strb r0, [r4, #0xc] + movs r0, #0x3c + strb r0, [r4, #0xe] +_0808964C: + adds r0, r4, #0 + bl sub_0800445C + movs r0, #0 +_08089654: + pop {r4, pc} + .align 2, 0 +_08089658: .4byte gUnk_08120CBC + + thumb_func_start sub_0808965C +sub_0808965C: @ 0x0808965C + push {lr} + adds r2, r0, #0 + ldr r3, _08089678 @ =gRoomControls + ldrb r0, [r3, #4] + cmp r0, #0x3f + bls _08089680 + ldr r1, _0808967C @ =gUnk_08120CCC + subs r0, #0x40 + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r1, [r0] + adds r0, r2, #0 + b _08089684 + .align 2, 0 +_08089678: .4byte gRoomControls +_0808967C: .4byte gUnk_08120CCC +_08089680: + adds r0, r2, #0 + movs r1, #0xe9 +_08089684: + bl sub_080ADF80 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0808968C +sub_0808968C: @ 0x0808968C + push {lr} + adds r2, r0, #0 + ldr r1, _08089694 @ =gUnk_08120D6C + b _080896A4 + .align 2, 0 +_08089694: .4byte gUnk_08120D6C +_08089698: + ldrh r0, [r1] + cmp r0, r2 + bne _080896A2 + ldrh r0, [r1, #2] + b _080896AC +_080896A2: + adds r1, #4 +_080896A4: + ldrh r0, [r1] + cmp r0, #0 + bne _08089698 + movs r0, #0 +_080896AC: + pop {pc} + .align 2, 0 + + thumb_func_start sub_080896B0 +sub_080896B0: @ 0x080896B0 + push {r4, r5, r6, r7, lr} + ldr r0, _08089750 @ =gLinkState + ldrb r1, [r0, #5] + movs r0, #0x1f + ands r0, r1 + cmp r0, #0x12 + bne _08089768 + ldr r6, _08089754 @ =gLinkEntity + adds r0, r6, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08089768 + ldrb r3, [r6, #0x14] + movs r2, #6 + ands r2, r3 + lsls r2, r2, #1 + ldr r0, _08089758 @ =gUnk_080B4468 + adds r2, r2, r0 + ldr r0, _0808975C @ =gUnk_080B4488 + lsrs r3, r3, #1 + lsls r3, r3, #1 + adds r3, r3, r0 + movs r0, #0x2e + ldrsh r1, [r6, r0] + movs r4, #0 + ldrsh r0, [r2, r4] + adds r1, r1, r0 + ldr r5, _08089760 @ =gRoomControls + ldrh r0, [r5, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + movs r4, #0x3f + ands r1, r4 + movs r7, #0x32 + ldrsh r0, [r6, r7] + movs r7, #2 + ldrsh r2, [r2, r7] + adds r0, r0, r2 + ldrh r2, [r5, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r4 + lsls r0, r0, #6 + orrs r1, r0 + movs r0, #0 + ldrsh r7, [r3, r0] + subs r1, r1, r7 + lsls r4, r1, #0x10 + lsrs r0, r4, #0x10 + adds r5, r6, #0 + adds r5, #0x38 + ldrb r1, [r5] + bl sub_080002C8 + adds r1, r0, #0 + subs r0, #0x26 + cmp r0, #1 + bls _08089768 + cmp r1, #0x29 + beq _08089768 + ldrb r0, [r5] + bl sub_0808094C + asrs r1, r4, #0x10 + ldr r2, _08089764 @ =0x00002004 + adds r0, r0, r2 + adds r2, r0, r1 + ldrb r2, [r2] + subs r1, r1, r7 + adds r0, r0, r1 + ldrb r0, [r0] + cmp r2, #0 + bne _08089768 + cmp r0, #0 + bne _08089768 + movs r0, #1 + b _0808976A + .align 2, 0 +_08089750: .4byte gLinkState +_08089754: .4byte gLinkEntity +_08089758: .4byte gUnk_080B4468 +_0808975C: .4byte gUnk_080B4488 +_08089760: .4byte gRoomControls +_08089764: .4byte 0x00002004 +_08089768: + movs r0, #0 +_0808976A: + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_0808976C +sub_0808976C: @ 0x0808976C + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _080897D0 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r0, [r4, #0x18] + movs r1, #3 + orrs r0, r1 + strb r0, [r4, #0x18] + ldrb r0, [r4, #0xb] + strb r0, [r4, #0x1e] + ldrb r0, [r4, #0x1b] + movs r1, #0xc0 + orrs r0, r1 + strb r0, [r4, #0x1b] + ldrb r0, [r4, #0x19] + orrs r0, r1 + strb r0, [r4, #0x19] + ldrb r0, [r4, #0xa] + cmp r0, #3 + bne _080897AE + adds r2, r4, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #8 + rsbs r1, r1, #0 + ands r1, r0 + movs r0, #6 + orrs r1, r0 + strb r1, [r2] + b _080897BA +_080897AE: + adds r2, r4, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #7 + orrs r0, r1 + strb r0, [r2] +_080897BA: + ldrh r0, [r4, #0x2e] + adds r1, r4, #0 + adds r1, #0x68 + strh r0, [r1] + ldrh r0, [r4, #0x32] + adds r1, #2 + strh r0, [r1] + adds r0, r4, #0 + movs r1, #6 + bl sub_0805E3A0 +_080897D0: + ldrb r1, [r4, #0x10] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + bne _08089840 + movs r0, #0x2e + ldrsh r1, [r4, r0] + ldr r2, _08089844 @ =gRoomControls + movs r3, #0xa + ldrsh r0, [r2, r3] + subs r5, r1, r0 + adds r3, r5, #0 + subs r3, #0x78 + movs r6, #0x32 + ldrsh r1, [r4, r6] + movs r6, #0xc + ldrsh r0, [r2, r6] + subs r1, r1, r0 + adds r2, r1, #0 + subs r2, #0x50 + adds r0, r3, #0 + cmp r0, #0 + bge _08089802 + adds r0, r5, #0 + subs r0, #0x75 +_08089802: + asrs r3, r0, #2 + adds r0, r2, #0 + cmp r0, #0 + bge _0808980E + adds r0, r1, #0 + subs r0, #0x4d +_0808980E: + asrs r2, r0, #2 + movs r0, #0x10 + rsbs r0, r0, #0 + cmp r3, r0 + bge _0808981A + adds r3, r0, #0 +_0808981A: + cmp r3, #0x10 + ble _08089820 + movs r3, #0x10 +_08089820: + cmp r2, r0 + bge _08089826 + adds r2, r0, #0 +_08089826: + cmp r2, #0x10 + ble _0808982C + movs r2, #0x10 +_0808982C: + adds r0, r4, #0 + adds r0, #0x68 + ldrh r0, [r0] + adds r0, r0, r3 + strh r0, [r4, #0x2e] + adds r0, r4, #0 + adds r0, #0x6a + ldrh r0, [r0] + adds r0, r0, r2 + strh r0, [r4, #0x32] +_08089840: + pop {r4, r5, r6, pc} + .align 2, 0 +_08089844: .4byte gRoomControls + + thumb_func_start sub_08089848 +sub_08089848: @ 0x08089848 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _08089870 @ =gUnk_08120D90 + ldrb r0, [r4, #0xc] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + bl Random + movs r1, #1 + ands r1, r0 + adds r1, #1 + adds r0, r4, #0 + bl sub_08004276 + pop {r4, pc} + .align 2, 0 +_08089870: .4byte gUnk_08120D90 + + thumb_func_start sub_08089874 +sub_08089874: @ 0x08089874 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0x10] + movs r3, #1 + adds r0, r3, #0 + ands r0, r1 + cmp r0, #0 + beq _08089940 + adds r0, r4, #0 + adds r0, #0x38 + movs r2, #3 + strb r2, [r0] + ldrb r1, [r4, #0xb] + adds r5, r0, #0 + cmp r1, #0 + bne _08089900 + ldrb r0, [r4, #0xa] + cmp r0, #0x80 + bne _080898B4 + strb r2, [r4, #0xc] + ldrb r0, [r4, #0x19] + movs r1, #0xc0 + orrs r0, r1 + strb r0, [r4, #0x19] + adds r0, r4, #0 + movs r1, #0 + bl UpdateSprite + adds r0, r4, #0 + bl sub_08089AE0 + b _08089940 +_080898B4: + str r1, [r4, #0x50] + adds r0, r4, #0 + movs r1, #0x29 + movs r2, #0 + movs r3, #0xff + bl CreateObjectWithParent + ldrb r0, [r4, #0xa] + cmp r0, #0 + beq _080898FA +_080898C8: + ldrb r3, [r4, #0xa] + adds r0, r4, #0 + movs r1, #0x29 + movs r2, #0 + bl CreateObjectWithParent + adds r1, r0, #0 + str r1, [r4, #0x54] + cmp r1, #0 + beq _080898EE + ldr r0, [r4, #0x50] + str r0, [r1, #0x50] + ldr r1, [r4, #0x50] + cmp r1, #0 + beq _080898EA + ldr r0, [r4, #0x54] + str r0, [r1, #0x54] +_080898EA: + ldr r0, [r4, #0x54] + str r0, [r4, #0x50] +_080898EE: + ldrb r0, [r4, #0xa] + subs r0, #1 + strb r0, [r4, #0xa] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080898C8 +_080898FA: + bl sub_0805E780 + b _08089940 +_08089900: + strb r3, [r4, #0xc] + ldr r0, [r4, #0x50] + cmp r0, #0 + bne _08089912 + adds r0, r4, #0 + movs r1, #0 + bl UpdateSprite + b _0808991A +_08089912: + adds r0, r4, #0 + movs r1, #1 + bl UpdateSprite +_0808991A: + ldrb r0, [r4, #0xb] + cmp r0, #0xff + bne _08089934 + movs r0, #1 + strb r0, [r5] + adds r0, r4, #0 + bl sub_08016A30 + adds r0, r4, #0 + movs r1, #0x15 + bl sub_0801D2B4 + b _08089940 +_08089934: + ldrb r1, [r4, #0xb] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + rsbs r0, r0, #0 + strh r0, [r4, #0x36] +_08089940: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08089944 +sub_08089944: @ 0x08089944 + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldrb r3, [r4, #0xb] + cmp r3, #0xff + bne _08089964 + adds r2, r4, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #7 + orrs r0, r1 + strb r0, [r2] + ldrb r0, [r4, #0x19] + movs r1, #0xc0 + orrs r0, r1 + strb r0, [r4, #0x19] + b _08089A76 +_08089964: + ldrb r1, [r4, #0x1b] + movs r2, #0x3f + adds r0, r2, #0 + ands r0, r1 + movs r1, #0x40 + orrs r0, r1 + strb r0, [r4, #0x1b] + ldrb r0, [r4, #0x19] + ands r2, r0 + strb r2, [r4, #0x19] + cmp r3, #1 + beq _08089984 + ldr r0, [r4, #0x54] + ldrb r0, [r0, #0xc] + cmp r0, #2 + bne _08089A76 +_08089984: + ldr r0, _08089998 @ =gLinkEntity + movs r1, #0x36 + ldrsh r2, [r0, r1] + movs r1, #0x24 + rsbs r1, r1, #0 + adds r6, r0, #0 + cmp r2, r1 + bge _0808999C + movs r0, #1 + b _0808999E + .align 2, 0 +_08089998: .4byte gLinkEntity +_0808999C: + movs r0, #0 +_0808999E: + strb r0, [r4, #0xe] + ldrb r0, [r4, #0xb] + subs r0, #1 + lsls r1, r0, #3 + adds r1, r1, r0 + lsls r1, r1, #2 + ldrh r0, [r4, #0x32] + subs r0, r0, r1 + strh r0, [r4, #0x32] + adds r5, r6, #0 + adds r0, r4, #0 + adds r1, r5, #0 + movs r2, #0xf + movs r3, #0xf + bl sub_080041A0 + cmp r0, #0 + beq _08089A62 + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _08089A62 + movs r0, #2 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x1b] + movs r0, #0x3f + ands r0, r1 + movs r1, #0x80 + orrs r0, r1 + strb r0, [r4, #0x1b] + ldrb r0, [r4, #0x19] + movs r1, #0xc0 + orrs r0, r1 + strb r0, [r4, #0x19] + ldrb r0, [r4, #0xb] + cmp r0, #1 + beq _080899EC + ldr r1, [r4, #0x54] + movs r0, #1 + strb r0, [r1, #0xc] +_080899EC: + ldr r1, _08089A78 @ =gLinkState + movs r0, #1 + strb r0, [r1, #0x14] + ldrh r0, [r5, #0x32] + subs r0, #0x24 + strh r0, [r5, #0x32] + ldrh r0, [r5, #0x36] + adds r0, #0x24 + strh r0, [r5, #0x36] + adds r0, r5, #0 + bl sub_0807AA80 + ldrb r0, [r4, #0xf] + cmp r0, #0 + bne _08089A62 + adds r0, r5, #0 + movs r1, #2 + movs r2, #0 + bl CreateFx + adds r1, r0, #0 + cmp r1, #0 + beq _08089A20 + ldrh r0, [r1, #0x2e] + adds r0, #8 + strh r0, [r1, #0x2e] +_08089A20: + adds r0, r5, #0 + movs r1, #2 + movs r2, #0 + bl CreateFx + adds r1, r0, #0 + cmp r1, #0 + beq _08089A36 + ldrh r0, [r1, #0x2e] + subs r0, #8 + strh r0, [r1, #0x2e] +_08089A36: + adds r0, r5, #0 + movs r1, #2 + movs r2, #0 + bl CreateFx + adds r1, r0, #0 + cmp r1, #0 + beq _08089A4C + ldrh r0, [r1, #0x32] + adds r0, #8 + strh r0, [r1, #0x32] +_08089A4C: + adds r0, r6, #0 + movs r1, #2 + movs r2, #0 + bl CreateFx + adds r1, r0, #0 + cmp r1, #0 + beq _08089A62 + ldrh r0, [r1, #0x32] + subs r0, #8 + strh r0, [r1, #0x32] +_08089A62: + ldrb r0, [r4, #0xb] + subs r0, #1 + lsls r1, r0, #3 + adds r1, r1, r0 + lsls r1, r1, #2 + ldrh r0, [r4, #0x32] + adds r1, r1, r0 + strh r1, [r4, #0x32] + ldrb r0, [r4, #0xe] + strb r0, [r4, #0xf] +_08089A76: + pop {r4, r5, r6, pc} + .align 2, 0 +_08089A78: .4byte gLinkState + + thumb_func_start sub_08089A7C +sub_08089A7C: @ 0x08089A7C + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xb] + lsls r1, r0, #3 + adds r1, r1, r0 + lsls r1, r1, #2 + ldrh r0, [r4, #0x32] + subs r0, r0, r1 + strh r0, [r4, #0x32] + ldr r5, _08089AB0 @ =gLinkEntity + adds r0, r4, #0 + adds r1, r5, #0 + movs r2, #0xf + movs r3, #0xf + bl sub_080041A0 + cmp r0, #0 + beq _08089AB8 + ldr r2, _08089AB4 @ =gLinkState + movs r0, #1 + strb r0, [r2, #0x14] + ldr r0, [r2, #0x30] + movs r1, #2 + orrs r0, r1 + str r0, [r2, #0x30] + b _08089AD0 + .align 2, 0 +_08089AB0: .4byte gLinkEntity +_08089AB4: .4byte gLinkState +_08089AB8: + movs r2, #1 + strb r2, [r4, #0xc] + ldrh r1, [r4, #0x36] + ldrh r3, [r5, #0x36] + adds r0, r1, r3 + strh r0, [r5, #0x36] + ldrh r0, [r5, #0x32] + subs r0, r0, r1 + strh r0, [r5, #0x32] + adds r0, r5, #0 + adds r0, #0x38 + strb r2, [r0] +_08089AD0: + ldrb r1, [r4, #0xb] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + ldrh r1, [r4, #0x32] + adds r0, r0, r1 + strh r0, [r4, #0x32] + pop {r4, r5, pc} + + thumb_func_start sub_08089AE0 +sub_08089AE0: @ 0x08089AE0 + push {lr} + ldr r1, _08089AF8 @ =gLinkEntity + movs r2, #0xf + movs r3, #0xf + bl sub_080041A0 + cmp r0, #0 + beq _08089AF6 + ldr r1, _08089AFC @ =gLinkState + movs r0, #1 + strb r0, [r1, #0x14] +_08089AF6: + pop {pc} + .align 2, 0 +_08089AF8: .4byte gLinkEntity +_08089AFC: .4byte gLinkState + + thumb_func_start sub_08089B00 +sub_08089B00: @ 0x08089B00 + push {lr} + ldr r2, _08089B14 @ =gUnk_08120DD0 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08089B14: .4byte gUnk_08120DD0 + + thumb_func_start sub_08089B18 +sub_08089B18: @ 0x08089B18 + push {r4, r5, r6, lr} + adds r4, r0, #0 + movs r2, #1 + movs r6, #1 + strb r6, [r4, #0xc] + ldrb r1, [r4, #0x18] + movs r5, #4 + rsbs r5, r5, #0 + adds r0, r5, #0 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x18] + ldrb r0, [r4, #0xb] + cmp r0, #0 + beq _08089B38 + strb r0, [r4, #0xe] +_08089B38: + adds r0, r4, #0 + movs r1, #0 + bl UpdateSprite + ldrb r0, [r4, #0xa] + cmp r0, #2 + beq _08089B66 + cmp r0, #2 + bgt _08089B50 + cmp r0, #1 + beq _08089B5A + b _08089B96 +_08089B50: + cmp r0, #3 + beq _08089B72 + cmp r0, #4 + beq _08089B7C + b _08089B96 +_08089B5A: + ldrh r0, [r4, #0x32] + subs r0, #8 + strh r0, [r4, #0x32] + movs r0, #0x28 + strb r0, [r4, #0xe] + b _08089B96 +_08089B66: + movs r0, #0xf + strb r0, [r4, #0xe] + adds r0, r4, #0 + bl sub_08004168 + b _08089B96 +_08089B72: + ldr r0, [r4, #0x50] + adds r1, r4, #0 + bl CopyPosition + b _08089B96 +_08089B7C: + adds r0, r4, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CBE4 + cmp r0, #0 + bne _08089B96 + ldrb r1, [r4, #0x18] + adds r0, r5, #0 + ands r0, r1 + strb r0, [r4, #0x18] + strb r6, [r4, #0xd] + b _08089B9E +_08089B96: + movs r0, #0x92 + lsls r0, r0, #1 + bl sub_08004488 +_08089B9E: + pop {r4, r5, r6, pc} + + thumb_func_start sub_08089BA0 +sub_08089BA0: @ 0x08089BA0 + push {r4, r5, r6, lr} + adds r5, r0, #0 + bl sub_08004274 + ldrb r0, [r5, #0xa] + cmp r0, #4 + bhi _08089BD0 + lsls r0, r0, #2 + ldr r1, _08089BB8 @ =_08089BBC + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08089BB8: .4byte _08089BBC +_08089BBC: @ jump table + .4byte _08089BD0 @ case 0 + .4byte _08089BD6 @ case 1 + .4byte _08089BD6 @ case 2 + .4byte _08089C4C @ case 3 + .4byte _08089C72 @ case 4 +_08089BD0: + ldrb r0, [r5, #0xb] + cmp r0, #0 + beq _08089CBA +_08089BD6: + ldrb r0, [r5, #0xe] + subs r0, #1 + strb r0, [r5, #0xe] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + bne _08089CBA + ldrb r0, [r5, #0xa] + cmp r0, #2 + bne _08089C42 + ldr r0, [r5, #0x54] + ldrh r0, [r0, #6] + movs r2, #0x2e + ldrsh r1, [r5, r2] + ldr r3, _08089C48 @ =gRoomControls + ldrh r2, [r3, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + movs r4, #0x3f + ands r1, r4 + movs r6, #0x32 + ldrsh r2, [r5, r6] + ldrh r3, [r3, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r4 + lsls r2, r2, #6 + orrs r1, r2 + adds r2, r5, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0807B7D8 + adds r0, r5, #0 + movs r1, #0 + movs r2, #0x10 + bl sub_0807AB44 + subs r4, #0x4f + adds r0, r5, #0 + movs r1, #0 + adds r2, r4, #0 + bl sub_0807AB44 + adds r0, r5, #0 + movs r1, #0x10 + movs r2, #0 + bl sub_0807AB44 + adds r0, r5, #0 + adds r1, r4, #0 + movs r2, #0 + bl sub_0807AB44 +_08089C42: + bl sub_0805E780 + b _08089CBA + .align 2, 0 +_08089C48: .4byte gRoomControls +_08089C4C: + ldr r0, [r5, #0x50] + ldr r0, [r0, #4] + cmp r0, #0 + bne _08089C58 + bl sub_0805E780 +_08089C58: + ldrb r0, [r5, #0xe] + subs r0, #1 + strb r0, [r5, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08089C68 + bl sub_0805E780 +_08089C68: + ldr r0, [r5, #0x50] + adds r1, r5, #0 + bl CopyPosition + b _08089CBA +_08089C72: + adds r0, r5, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CBE4 + adds r1, r0, #0 + ldrb r0, [r5, #0xd] + cmp r0, #0 + bne _08089C96 + cmp r1, #0 + bne _08089CBA + movs r0, #1 + strb r0, [r5, #0xd] + ldrb r1, [r5, #0x18] + subs r0, #5 + ands r0, r1 + strb r0, [r5, #0x18] + b _08089CBA +_08089C96: + cmp r1, #0 + beq _08089CBA + movs r0, #0 + strb r0, [r5, #0xd] + ldrb r1, [r5, #0x18] + subs r0, #4 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r5, #0x18] + adds r0, r5, #0 + movs r1, #0 + bl UpdateSprite + movs r0, #0x92 + lsls r0, r0, #1 + bl sub_08004488 +_08089CBA: + pop {r4, r5, r6, pc} + + thumb_func_start sub_08089CBC +sub_08089CBC: @ 0x08089CBC + push {r4, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0xc] + cmp r1, #0 + bne _08089CDC + movs r0, #1 + strb r0, [r4, #0xc] + str r1, [r4, #0x34] + ldrb r0, [r4, #0x19] + movs r1, #0xc0 + orrs r0, r1 + strb r0, [r4, #0x19] + adds r0, r4, #0 + movs r1, #9 + bl UpdateSprite +_08089CDC: + ldr r1, [r4, #0x50] + ldr r0, [r1, #0x34] + cmp r0, #0 + bne _08089CEA + bl sub_0805E780 + b _08089D02 +_08089CEA: + movs r2, #0x36 + ldrsh r0, [r1, r2] + movs r2, #0x90 + lsls r2, r2, #1 + subs r2, r2, r0 + adds r0, r1, #0 + adds r0, #0x7e + ldrh r3, [r0] + adds r0, r4, #0 + adds r1, r2, #0 + bl sub_0805EC9C +_08089D02: + pop {r4, pc} + + thumb_func_start sub_08089D04 +sub_08089D04: @ 0x08089D04 + push {lr} + ldr r2, _08089D18 @ =gUnk_08120DF4 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08089D18: .4byte gUnk_08120DF4 + + thumb_func_start sub_08089D1C +sub_08089D1C: @ 0x08089D1C + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldrb r1, [r5, #0x19] + movs r4, #0x3f + adds r0, r4, #0 + ands r0, r1 + movs r6, #0x80 + orrs r0, r6 + strb r0, [r5, #0x19] + ldrb r1, [r5, #0x1b] + adds r0, r4, #0 + ands r0, r1 + movs r1, #0x40 + orrs r0, r1 + strb r0, [r5, #0x1b] + adds r0, r5, #0 + movs r1, #4 + bl sub_0805E3A0 + ldrb r0, [r5, #0xa] + cmp r0, #7 + bne _08089D90 + ldrb r1, [r5, #0x10] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _08089D54 + b _08089F06 +_08089D54: + ldrb r0, [r5, #0xb] + cmp r0, #0 + bne _08089D74 + ldrb r0, [r5, #0xe] + cmp r0, #0 + beq _08089D74 + bl sub_0807CBD0 + cmp r0, #0 + bne _08089D6A + b _08089F06 +_08089D6A: + ldrb r1, [r5, #0x1b] + adds r0, r4, #0 + ands r0, r1 + orrs r0, r6 + strb r0, [r5, #0x1b] +_08089D74: + ldr r4, _08089D8C @ =gUnk_08120E3C + ldrb r0, [r5, #0xb] + lsls r0, r0, #2 + adds r0, r0, r4 + ldrb r1, [r0] + adds r0, r5, #0 + bl UpdateSprite + ldrb r0, [r5, #0xb] + lsls r0, r0, #2 + adds r0, r0, r4 + b _08089DCE + .align 2, 0 +_08089D8C: .4byte gUnk_08120E3C +_08089D90: + cmp r0, #0 + beq _08089DAC + ldr r0, _08089DA8 @ =gUnk_08120E14 + ldrb r1, [r5, #0xa] + lsls r1, r1, #2 + adds r1, r1, r0 + ldrb r1, [r1] + adds r0, r5, #0 + bl UpdateSprite + b _08089DC6 + .align 2, 0 +_08089DA8: .4byte gUnk_08120E14 +_08089DAC: + adds r0, r5, #0 + movs r1, #1 + movs r2, #2 + bl sub_080AE008 + ldr r0, _08089E08 @ =gUnk_08120E14 + ldrb r1, [r5, #0xa] + lsls r1, r1, #2 + adds r1, r1, r0 + ldrb r1, [r1] + adds r0, r5, #0 + bl LoadAnimation +_08089DC6: + ldr r1, _08089E08 @ =gUnk_08120E14 + ldrb r0, [r5, #0xa] + lsls r0, r0, #2 + adds r0, r0, r1 +_08089DCE: + ldrb r0, [r0, #1] + adds r3, r5, #0 + adds r3, #0x29 + movs r1, #7 + ands r1, r0 + ldrb r2, [r3] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + movs r2, #1 + movs r0, #1 + strb r0, [r5, #0xc] + ldrb r1, [r5, #0x18] + subs r0, #5 + ands r0, r1 + orrs r0, r2 + strb r0, [r5, #0x18] + ldrb r0, [r5, #0xa] + cmp r0, #1 + bge _08089DFC + b _08089F00 +_08089DFC: + cmp r0, #6 + ble _08089E0C + cmp r0, #7 + beq _08089E1C + b _08089F00 + .align 2, 0 +_08089E08: .4byte gUnk_08120E14 +_08089E0C: + adds r0, r5, #0 + adds r0, #0x60 + movs r2, #0 + movs r1, #0xe0 + lsls r1, r1, #1 + strh r1, [r0] + strb r2, [r5, #0xe] + b _08089F00 +_08089E1C: + ldrb r1, [r5, #0xb] + cmp r1, #3 + bgt _08089E2C + cmp r1, #2 + bge _08089EEC + cmp r1, #0 + beq _08089E32 + b _08089F00 +_08089E2C: + cmp r1, #4 + beq _08089EF8 + b _08089F00 +_08089E32: + movs r0, #0x10 + str r0, [r5, #0x6c] + strb r1, [r5, #0xe] +_08089E38: + movs r0, #0x2c + movs r1, #7 + movs r2, #1 + bl CreateObject + adds r1, r0, #0 + str r1, [r5, #0x54] + cmp r1, #0 + beq _08089EC8 + ldrh r0, [r5, #0x2e] + strh r0, [r1, #0x2e] + ldr r2, [r5, #0x54] + ldr r1, [r5, #0x6c] + ldrh r0, [r5, #0x32] + subs r0, r0, r1 + strh r0, [r2, #0x32] + movs r0, #3 + strb r0, [r5, #0xf] +_08089E5C: + ldrb r0, [r5, #0xe] + lsls r0, r0, #2 + ldr r1, _08089EE4 @ =gUnk_08120DFC + adds r4, r0, r1 + ldrb r2, [r4] + subs r2, #2 + movs r0, #0x2c + movs r1, #7 + bl CreateObject + adds r1, r0, #0 + str r1, [r5, #0x54] + cmp r1, #0 + beq _08089EAA + movs r0, #1 + ldrsb r0, [r4, r0] + ldrh r2, [r5, #0x2e] + adds r0, r0, r2 + strh r0, [r1, #0x2e] + ldr r2, [r5, #0x54] + ldr r1, [r5, #0x6c] + ldrh r0, [r5, #0x32] + subs r0, r0, r1 + movs r1, #2 + ldrsb r1, [r4, r1] + subs r0, r0, r1 + strh r0, [r2, #0x32] + ldr r3, [r5, #0x54] + ldrb r2, [r4, #3] + movs r0, #1 + ands r2, r0 + lsls r2, r2, #6 + ldrb r0, [r3, #0x18] + movs r4, #0x41 + rsbs r4, r4, #0 + adds r1, r4, #0 + ands r0, r1 + orrs r0, r2 + strb r0, [r3, #0x18] +_08089EAA: + ldrb r0, [r5, #0xe] + adds r2, r0, #1 + strb r2, [r5, #0xe] + ldrb r0, [r5, #0xf] + subs r0, #1 + strb r0, [r5, #0xf] + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _08089E5C + lsls r0, r2, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #5 + bls _08089EC8 + strb r1, [r5, #0xe] +_08089EC8: + ldr r0, [r5, #0x6c] + adds r0, #0x38 + str r0, [r5, #0x6c] + ldrh r1, [r5, #0x32] + subs r1, r1, r0 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + ldr r0, _08089EE8 @ =gRoomControls + ldrh r0, [r0, #8] + cmp r1, r0 + bge _08089E38 + movs r0, #1 + strb r0, [r5, #0xe] + b _08089F00 + .align 2, 0 +_08089EE4: .4byte gUnk_08120DFC +_08089EE8: .4byte gRoomControls +_08089EEC: + ldrb r0, [r5, #0x19] + movs r1, #0x3f + ands r1, r0 + movs r0, #0x40 + orrs r1, r0 + strb r1, [r5, #0x19] +_08089EF8: + adds r1, r5, #0 + adds r1, #0x38 + movs r0, #3 + strb r0, [r1] +_08089F00: + adds r0, r5, #0 + bl sub_08089F08 +_08089F06: + pop {r4, r5, r6, pc} + + thumb_func_start sub_08089F08 +sub_08089F08: @ 0x08089F08 + push {lr} + ldr r2, _08089F1C @ =gUnk_08120E50 + ldrb r1, [r0, #0xa] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08089F1C: .4byte gUnk_08120E50 + + thumb_func_start sub_08089F20 +sub_08089F20: @ 0x08089F20 + push {lr} + ldr r2, _08089F34 @ =gUnk_08120E78 + ldrb r1, [r0, #0xd] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08089F34: .4byte gUnk_08120E78 + + thumb_func_start sub_08089F38 +sub_08089F38: @ 0x08089F38 + push {r4, lr} + adds r4, r0, #0 + bl sub_080042B8 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08089F6C + ldrb r0, [r4, #0xe] + cmp r0, #1 + bhi _08089F5A + adds r0, #1 + strb r0, [r4, #0xe] + b _08089F6C +_08089F5A: + adds r0, r4, #0 + movs r1, #1 + bl LoadAnimation + movs r0, #0x10 + strb r0, [r4, #0xe] + ldrb r0, [r4, #0xd] + adds r0, #1 + strb r0, [r4, #0xd] +_08089F6C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08089F70 +sub_08089F70: @ 0x08089F70 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + bne _08089F8E + movs r0, #0x10 + strb r0, [r4, #0xe] + movs r0, #0xcc + lsls r0, r0, #1 + bl PlaySFX +_08089F8E: + adds r0, r4, #0 + bl sub_080042B8 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08089FEC + movs r0, #0x2c + movs r1, #1 + movs r2, #0 + bl CreateObject + adds r1, r0, #0 + str r1, [r4, #0x54] + cmp r1, #0 + beq _08089FBE + ldrh r0, [r4, #0x2e] + strh r0, [r1, #0x2e] + ldr r1, [r4, #0x54] + ldrh r0, [r4, #0x32] + strh r0, [r1, #0x32] +_08089FBE: + movs r0, #0x2c + movs r1, #2 + movs r2, #0 + bl CreateObject + adds r1, r0, #0 + str r1, [r4, #0x54] + cmp r1, #0 + beq _08089FDC + ldrh r0, [r4, #0x2e] + strh r0, [r1, #0x2e] + ldr r1, [r4, #0x54] + ldrh r0, [r4, #0x32] + subs r0, #0x10 + strh r0, [r1, #0x32] +_08089FDC: + ldrb r0, [r4, #0x18] + movs r1, #4 + rsbs r1, r1, #0 + ands r1, r0 + strb r1, [r4, #0x18] + ldrb r0, [r4, #0xd] + adds r0, #1 + strb r0, [r4, #0xd] +_08089FEC: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08089FF0 +sub_08089FF0: @ 0x08089FF0 + push {lr} + adds r1, r0, #0 + ldrb r0, [r1, #0xe] + subs r0, #1 + strb r0, [r1, #0xe] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + bne _0808A00E + movs r0, #0x10 + strb r0, [r1, #0xe] + movs r0, #0xcc + lsls r0, r0, #1 + bl PlaySFX +_0808A00E: + pop {pc} + + thumb_func_start sub_0808A010 +sub_0808A010: @ 0x0808A010 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0808A07E + ldrb r0, [r4, #0xe] + lsls r0, r0, #2 + ldr r1, _0808A0BC @ =gUnk_08120DFC + adds r5, r0, r1 + ldrb r1, [r5] + movs r0, #0x2c + movs r2, #0 + bl CreateObject + adds r1, r0, #0 + str r1, [r4, #0x54] + cmp r1, #0 + beq _0808A06C + movs r0, #1 + ldrsb r0, [r5, r0] + ldrh r2, [r4, #0x2e] + adds r0, r0, r2 + strh r0, [r1, #0x2e] + ldr r2, [r4, #0x54] + movs r1, #2 + ldrsb r1, [r5, r1] + ldrh r0, [r4, #0x32] + subs r0, r0, r1 + strh r0, [r2, #0x32] + ldr r3, [r4, #0x54] + ldrb r1, [r5, #3] + movs r0, #1 + ands r1, r0 + lsls r1, r1, #6 + ldrb r2, [r3, #0x18] + movs r0, #0x41 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3, #0x18] +_0808A06C: + ldrb r0, [r4, #0xe] + adds r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #5 + bls _0808A07E + movs r0, #0 + strb r0, [r4, #0xe] +_0808A07E: + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0808A0BA + movs r0, #0x2c + movs r1, #3 + movs r2, #0 + bl CreateObject + adds r1, r0, #0 + str r1, [r4, #0x54] + cmp r1, #0 + beq _0808A0A8 + ldrh r0, [r4, #0x2e] + strh r0, [r1, #0x2e] + ldr r1, [r4, #0x54] + ldrh r0, [r4, #0x32] + strh r0, [r1, #0x32] +_0808A0A8: + ldrh r0, [r4, #0x32] + subs r0, #0x38 + strh r0, [r4, #0x32] + lsls r0, r0, #0x10 + cmp r0, #0 + bge _0808A0BA + adds r0, r4, #0 + bl sub_0805E7BC +_0808A0BA: + pop {r4, r5, pc} + .align 2, 0 +_0808A0BC: .4byte gUnk_08120DFC + + thumb_func_start sub_0808A0C0 +sub_0808A0C0: @ 0x0808A0C0 + push {lr} + adds r2, r0, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0808A0D6 + adds r0, r2, #0 + bl sub_08004274 +_0808A0D6: + pop {pc} + + thumb_func_start nullsub_517 +nullsub_517: @ 0x0808A0D8 + bx lr + .align 2, 0 + + thumb_func_start sub_0808A0DC +sub_0808A0DC: @ 0x0808A0DC + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r5, r0, #0 + ldrb r0, [r5, #0xb] + cmp r0, #1 + bne _0808A0EC + b _0808A202 +_0808A0EC: + cmp r0, #1 + bgt _0808A0F6 + cmp r0, #0 + beq _0808A120 + b _0808A202 +_0808A0F6: + cmp r0, #4 + ble _0808A0FC + b _0808A202 +_0808A0FC: + ldr r0, _0808A118 @ =gLinkState + ldrb r0, [r0, #0x12] + cmp r0, #0x1e + bne _0808A1DA + ldr r1, _0808A11C @ =gLinkEntity + adds r0, r5, #0 + movs r2, #0 + movs r3, #8 + bl sub_080041A0 + cmp r0, #0 + beq _0808A1DC + b _0808A1B0 + .align 2, 0 +_0808A118: .4byte gLinkState +_0808A11C: .4byte gLinkEntity +_0808A120: + ldrb r0, [r5, #0xe] + cmp r0, #0 + beq _0808A202 + ldr r4, _0808A1A8 @ =gRoomControls + ldrh r0, [r4, #8] + str r0, [r5, #0x6c] + movs r2, #0x2e + ldrsh r1, [r5, r2] + ldrh r2, [r4, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + movs r3, #0x3f + ands r1, r3 + ldrh r2, [r4, #8] + subs r0, r0, r2 + lsrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r1, r0 + adds r0, r5, #0 + adds r0, #0x70 + strh r1, [r0] + adds r6, r4, #0 + mov r8, r3 + adds r4, r0, #0 + ldr r7, _0808A1AC @ =0x00004017 +_0808A154: + movs r0, #0x2e + ldrsh r1, [r5, r0] + ldrh r0, [r6, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + mov r2, r8 + ands r1, r2 + ldrh r2, [r6, #8] + ldr r0, [r5, #0x6c] + subs r0, r0, r2 + lsrs r0, r0, #4 + mov r2, r8 + ands r0, r2 + lsls r0, r0, #6 + orrs r1, r0 + strh r1, [r4] + ldrh r1, [r4] + adds r0, r7, #0 + movs r2, #2 + bl UpdateCollisionLayer + ldrh r1, [r4] + adds r0, r7, #0 + movs r2, #1 + bl UpdateCollisionLayer + ldr r0, [r5, #0x6c] + adds r2, r0, #0 + adds r2, #0x10 + str r2, [r5, #0x6c] + ldrh r0, [r6, #8] + ldrh r1, [r6, #0x20] + adds r0, r0, r1 + cmp r2, r0 + bhs _0808A1A2 + movs r1, #0x32 + ldrsh r0, [r5, r1] + cmp r2, r0 + bls _0808A154 +_0808A1A2: + movs r0, #0 + strb r0, [r5, #0xe] + b _0808A202 + .align 2, 0 +_0808A1A8: .4byte gRoomControls +_0808A1AC: .4byte 0x00004017 +_0808A1B0: + adds r3, r5, #0 + adds r3, #0x58 + ldrb r2, [r3] + ldrb r1, [r5, #0xb] + subs r1, #1 + lsls r0, r1, #1 + adds r0, r0, r1 + adds r0, #1 + cmp r2, r0 + bne _0808A1DE + ldrb r0, [r5, #0xe] + cmp r0, #0 + bne _0808A1DE + movs r0, #1 + strb r0, [r5, #0xe] + ldrb r1, [r3] + adds r1, #1 + adds r0, r5, #0 + bl UpdateSprite + b _0808A1DE +_0808A1DA: + movs r0, #0 +_0808A1DC: + strb r0, [r5, #0xe] +_0808A1DE: + adds r0, r5, #0 + bl sub_08004274 + adds r0, r5, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0808A202 + ldrb r0, [r5, #0xb] + subs r0, #1 + lsls r1, r0, #1 + adds r1, r1, r0 + adds r1, #1 + adds r0, r5, #0 + bl UpdateSprite +_0808A202: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_0808A208 +sub_0808A208: @ 0x0808A208 + push {lr} + ldr r2, _0808A21C @ =gUnk_08120E84 + ldrb r1, [r0, #0xd] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0808A21C: .4byte gUnk_08120E84 + + thumb_func_start sub_0808A220 +sub_0808A220: @ 0x0808A220 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0x1b] + movs r6, #0x3f + adds r0, r6, #0 + ands r0, r1 + movs r5, #0x80 + orrs r0, r5 + strb r0, [r4, #0x1b] + movs r0, #0x2e + ldrsh r1, [r4, r0] + ldr r2, _0808A2E4 @ =gRoomControls + ldrh r0, [r2, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + movs r3, #0x3f + ands r1, r3 + movs r7, #0x32 + ldrsh r0, [r4, r7] + ldrh r2, [r2, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r1, r0 + adds r2, r4, #0 + adds r2, #0x70 + strh r1, [r2] + ldr r0, _0808A2E8 @ =0x00004017 + ldrh r1, [r2] + movs r2, #1 + bl UpdateCollisionLayer + movs r7, #1 + strb r7, [r4, #0xd] + adds r0, r4, #0 + movs r1, #0x15 + movs r2, #0 + movs r3, #0 + bl CreateObjectWithParent + adds r3, r0, #0 + cmp r3, #0 + beq _0808A2D4 + ldrh r0, [r4, #0x32] + adds r0, #0x38 + strh r0, [r3, #0x32] + ldrh r0, [r4, #0x12] + strh r0, [r3, #0x12] + adds r0, r4, #0 + adds r0, #0x60 + ldrh r1, [r0] + adds r0, r3, #0 + adds r0, #0x60 + strh r1, [r0] + ldrb r1, [r4, #0x1a] + lsls r1, r1, #0x1c + lsrs r1, r1, #0x1c + ldrb r2, [r3, #0x1a] + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3, #0x1a] + adds r1, r3, #0 + adds r1, #0x58 + movs r0, #2 + strb r0, [r1] + movs r0, #0x80 + strb r0, [r3, #0xe] + strb r7, [r3, #0xa] + ldrb r1, [r3, #0x19] + adds r0, r6, #0 + ands r0, r1 + orrs r0, r5 + strb r0, [r3, #0x19] + adds r2, r3, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #6 + orrs r0, r1 + strb r0, [r2] + ldrb r1, [r3, #0x1b] + adds r0, r6, #0 + ands r0, r1 + orrs r0, r5 + strb r0, [r3, #0x1b] +_0808A2D4: + adds r0, r4, #0 + movs r1, #0x2c + movs r2, #9 + movs r3, #0 + bl CreateObjectWithParent + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0808A2E4: .4byte gRoomControls +_0808A2E8: .4byte 0x00004017 + + thumb_func_start nullsub_518 +nullsub_518: @ 0x0808A2EC + bx lr + .align 2, 0 + + thumb_func_start sub_0808A2F0 +sub_0808A2F0: @ 0x0808A2F0 + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xd] + cmp r0, #0 + bne _0808A316 + movs r0, #1 + strb r0, [r5, #0xd] + ldrh r0, [r5, #0x32] + adds r0, #0x28 + strh r0, [r5, #0x32] + movs r2, #0x18 + rsbs r2, r2, #0 + adds r0, r5, #0 + movs r1, #0 + bl sub_0800029C + adds r1, r5, #0 + adds r1, #0x72 + strh r0, [r1] +_0808A316: + ldr r3, _0808A38C @ =gLinkEntity + ldrb r1, [r3, #0x1b] + lsrs r1, r1, #6 + lsls r1, r1, #6 + ldrb r2, [r5, #0x1b] + movs r7, #0x3f + adds r0, r7, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r5, #0x1b] + ldrb r1, [r3, #0x19] + lsrs r1, r1, #6 + lsls r1, r1, #6 + ldrb r2, [r5, #0x19] + adds r0, r7, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r5, #0x19] + ldr r0, _0808A390 @ =gLinkState + ldrb r0, [r0, #0x12] + cmp r0, #0x1e + bne _0808A39C + adds r2, r5, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] + movs r2, #0x18 + rsbs r2, r2, #0 + adds r0, r5, #0 + movs r1, #0 + bl sub_0800029C + ldr r3, _0808A394 @ =0x00004014 + cmp r0, r3 + beq _0808A3EC + movs r0, #0x2e + ldrsh r1, [r5, r0] + ldr r2, _0808A398 @ =gRoomControls + ldrh r0, [r2, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + ands r1, r7 + movs r4, #0x32 + ldrsh r0, [r5, r4] + ldrh r2, [r2, #8] + adds r2, #0x18 + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r7 + lsls r0, r0, #6 + orrs r1, r0 + adds r0, r3, #0 + movs r2, #1 + bl UpdateCollisionLayer + b _0808A3EC + .align 2, 0 +_0808A38C: .4byte gLinkEntity +_0808A390: .4byte gLinkState +_0808A394: .4byte 0x00004014 +_0808A398: .4byte gRoomControls +_0808A39C: + adds r2, r5, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #5 + orrs r0, r1 + strb r0, [r2] + adds r6, r5, #0 + adds r6, #0x72 + ldrh r4, [r6] + movs r2, #0x18 + rsbs r2, r2, #0 + adds r0, r5, #0 + movs r1, #0 + bl sub_0800029C + cmp r4, r0 + beq _0808A3EC + ldrh r0, [r6] + movs r2, #0x2e + ldrsh r1, [r5, r2] + ldr r3, _0808A3F0 @ =gRoomControls + ldrh r2, [r3, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + ands r1, r7 + movs r4, #0x32 + ldrsh r2, [r5, r4] + ldrh r3, [r3, #8] + adds r3, #0x18 + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r7 + lsls r2, r2, #6 + orrs r1, r2 + movs r2, #1 + bl UpdateCollisionLayer +_0808A3EC: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0808A3F0: .4byte gRoomControls + + thumb_func_start sub_0808A3F4 +sub_0808A3F4: @ 0x0808A3F4 + push {lr} + ldr r2, _0808A408 @ =gUnk_08121060 + ldrb r1, [r0, #0xa] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0808A408: .4byte gUnk_08121060 + + thumb_func_start sub_0808A40C +sub_0808A40C: @ 0x0808A40C + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0808A41E + movs r0, #1 + strb r0, [r4, #0xc] + movs r0, #0x28 + strb r0, [r4, #0xe] +_0808A41E: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0808A466 + bl Random + movs r1, #0x1f + ands r0, r1 + movs r1, #0x40 + subs r1, r1, r0 + strb r1, [r4, #0xe] + movs r0, #0x2d + movs r1, #1 + movs r2, #0 + bl CreateObject + adds r5, r0, #0 + cmp r5, #0 + beq _0808A466 + adds r0, r4, #0 + adds r1, r5, #0 + bl CopyPosition + bl Random + ldr r2, _0808A468 @ =gUnk_08121068 + movs r1, #7 + ands r1, r0 + adds r1, r1, r2 + movs r0, #0 + ldrsb r0, [r1, r0] + ldrh r1, [r5, #0x2e] + adds r0, r0, r1 + strh r0, [r5, #0x2e] +_0808A466: + pop {r4, r5, pc} + .align 2, 0 +_0808A468: .4byte gUnk_08121068 + + thumb_func_start sub_0808A46C +sub_0808A46C: @ 0x0808A46C + push {lr} + ldr r2, _0808A480 @ =gUnk_08121070 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0808A480: .4byte gUnk_08121070 + + thumb_func_start sub_0808A484 +sub_0808A484: @ 0x0808A484 + push {r4, lr} + movs r3, #1 + movs r1, #1 + strb r1, [r0, #0xc] + ldrb r2, [r0, #0x18] + subs r1, #5 + ands r1, r2 + orrs r1, r3 + strb r1, [r0, #0x18] + movs r1, #0x40 + strh r1, [r0, #0x24] + movs r1, #6 + strb r1, [r0, #0x15] + ldrb r3, [r0, #0x19] + movs r2, #0x3f + adds r1, r2, #0 + ands r1, r3 + movs r4, #0x40 + orrs r1, r4 + strb r1, [r0, #0x19] + movs r1, #0x29 + adds r1, r1, r0 + mov ip, r1 + ldrb r3, [r1] + movs r1, #8 + rsbs r1, r1, #0 + ands r1, r3 + mov r3, ip + strb r1, [r3] + ldrb r1, [r0, #0x1b] + ands r2, r1 + orrs r2, r4 + strb r2, [r0, #0x1b] + movs r1, #0x28 + bl UpdateSprite + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0808A4D0 +sub_0808A4D0: @ 0x0808A4D0 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + bl sub_0806F69C + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0808A4F2 + adds r0, r4, #0 + bl sub_0805E7BC +_0808A4F2: + pop {r4, pc} + + thumb_func_start sub_0808A4F4 +sub_0808A4F4: @ 0x0808A4F4 + push {lr} + ldr r2, _0808A508 @ =gUnk_08121078 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0808A508: .4byte gUnk_08121078 + + thumb_func_start sub_0808A50C +sub_0808A50C: @ 0x0808A50C + push {lr} + ldrb r2, [r0, #0x18] + movs r1, #4 + rsbs r1, r1, #0 + ands r1, r2 + movs r2, #1 + orrs r1, r2 + strb r1, [r0, #0x18] + ldrb r1, [r0, #0xc] + adds r1, #1 + strb r1, [r0, #0xc] + ldrb r2, [r0, #0x19] + movs r1, #0x3f + ands r1, r2 + movs r2, #0x80 + orrs r1, r2 + strb r1, [r0, #0x19] + adds r3, r0, #0 + adds r3, #0x29 + ldrb r2, [r3] + movs r1, #8 + rsbs r1, r1, #0 + ands r1, r2 + movs r2, #4 + orrs r1, r2 + movs r2, #0x39 + rsbs r2, r2, #0 + ands r1, r2 + movs r2, #0x18 + orrs r1, r2 + strb r1, [r3] + bl sub_0808A644 + pop {pc} + + thumb_func_start sub_0808A550 +sub_0808A550: @ 0x0808A550 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x74 + ldrh r0, [r0] + adds r1, r4, #0 + adds r1, #0x38 + ldrb r1, [r1] + bl sub_080002B0 + adds r1, r0, #0 + ldr r0, _0808A58C @ =0x0000401F + cmp r1, r0 + bhi _0808A5CC + subs r0, #3 + cmp r1, r0 + blo _0808A5CC + adds r0, r1, #0 + subs r0, #0x1c + lsls r1, r0, #1 + strb r1, [r4, #0x14] + lsls r1, r0, #3 + strb r1, [r4, #0x15] + lsls r0, r0, #0x19 + lsrs r0, r0, #0x18 + cmp r0, #2 + bne _0808A590 + ldrb r0, [r4, #0x18] + movs r1, #0x40 + orrs r0, r1 + b _0808A598 + .align 2, 0 +_0808A58C: .4byte 0x0000401F +_0808A590: + ldrb r1, [r4, #0x18] + movs r0, #0x41 + rsbs r0, r0, #0 + ands r0, r1 +_0808A598: + strb r0, [r4, #0x18] + adds r0, r4, #0 + adds r0, #0x70 + ldrh r0, [r0] + adds r1, r4, #0 + adds r1, #0x74 + ldrh r1, [r1] + adds r2, r4, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl UpdateCollisionLayer + movs r0, #2 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x14] + lsrs r1, r1, #1 + adds r1, #1 + adds r0, r4, #0 + bl UpdateSprite + ldr r0, _0808A5C8 @ =0x0000010F + bl sub_08004488 + b _0808A5DE + .align 2, 0 +_0808A5C8: .4byte 0x0000010F +_0808A5CC: + adds r0, r4, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r0, #0 + beq _0808A5DE + adds r0, r4, #0 + movs r1, #0 + bl UpdateSprite +_0808A5DE: + pop {r4, pc} + + thumb_func_start sub_0808A5E0 +sub_0808A5E0: @ 0x0808A5E0 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_0800445C + ldr r2, _0808A618 @ =gUnk_08121088 + adds r5, r4, #0 + adds r5, #0x5a + ldrb r1, [r5] + movs r0, #0xf + ands r0, r1 + lsls r0, r0, #1 + adds r0, r0, r2 + ldrh r0, [r0] + strh r0, [r4, #0x24] + adds r0, r4, #0 + bl sub_0806F69C + adds r0, r4, #0 + bl sub_08004274 + ldrb r1, [r5] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0808A616 + movs r0, #0 + strb r0, [r4, #0xc] +_0808A616: + pop {r4, r5, pc} + .align 2, 0 +_0808A618: .4byte gUnk_08121088 + + thumb_func_start sub_0808A61C +sub_0808A61C: @ 0x0808A61C + push {lr} + adds r2, r0, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0808A634 + adds r0, r2, #0 + bl sub_08004274 + b _0808A640 +_0808A634: + adds r0, r2, #0 + adds r0, #0x29 + ldrb r1, [r0] + movs r2, #7 + orrs r1, r2 + strb r1, [r0] +_0808A640: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0808A644 +sub_0808A644: @ 0x0808A644 + push {r4, r5, r6, lr} + adds r4, r0, #0 + movs r0, #0x2e + ldrsh r1, [r4, r0] + ldr r2, _0808A6D0 @ =gRoomControls + ldrh r0, [r2, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + movs r3, #0x3f + ands r1, r3 + movs r5, #0x32 + ldrsh r0, [r4, r5] + ldrh r2, [r2, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r1, r0 + adds r5, r4, #0 + adds r5, #0x74 + strh r1, [r5] + ldrh r0, [r5] + adds r6, r4, #0 + adds r6, #0x38 + ldrb r1, [r6] + bl sub_080001DA + adds r1, r4, #0 + adds r1, #0x70 + strh r0, [r1] + ldrh r0, [r5] + ldrb r1, [r6] + bl sub_080002E0 + adds r1, r4, #0 + adds r1, #0x72 + strb r0, [r1] + ldrh r0, [r5] + ldrb r1, [r6] + bl sub_080002C8 + cmp r0, #0x19 + beq _0808A69E + cmp r0, #0xf0 + bne _0808A6E2 +_0808A69E: + ldr r0, _0808A6D4 @ =0x00004015 + ldrh r1, [r5] + ldrb r2, [r6] + bl UpdateCollisionLayer + movs r0, #3 + strb r0, [r4, #0xc] + adds r5, r4, #0 + adds r5, #0x86 + ldrh r0, [r5] + bl sub_0807CBE4 + cmp r0, #0 + bne _0808A6D8 + ldrh r0, [r5] + bl sub_0807CCC8 + movs r0, #0xcd + bl PlaySFX + adds r0, r4, #0 + movs r1, #5 + bl UpdateSprite + b _0808A6EC + .align 2, 0 +_0808A6D0: .4byte gRoomControls +_0808A6D4: .4byte 0x00004015 +_0808A6D8: + adds r0, r4, #0 + movs r1, #6 + bl UpdateSprite + b _0808A6EC +_0808A6E2: + ldr r0, _0808A6F0 @ =0x0000401B + ldrh r1, [r5] + ldrb r2, [r6] + bl UpdateCollisionLayer +_0808A6EC: + pop {r4, r5, r6, pc} + .align 2, 0 +_0808A6F0: .4byte 0x0000401B + + thumb_func_start sub_0808A6F4 +sub_0808A6F4: @ 0x0808A6F4 + push {lr} + adds r2, r0, #0 + adds r0, #0x3d + movs r1, #0 + ldrsb r1, [r0, r1] + cmp r1, #0 + bne _0808A706 + adds r0, #0x33 + strh r1, [r0] +_0808A706: + ldr r0, _0808A718 @ =gUnk_08121178 + ldrb r1, [r2, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r2, #0 + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0808A718: .4byte gUnk_08121178 + + thumb_func_start sub_0808A71C +sub_0808A71C: @ 0x0808A71C + push {r4, r5, lr} + adds r4, r0, #0 + movs r5, #1 + strb r5, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + adds r1, r4, #0 + adds r1, #0x3c + movs r0, #7 + strb r0, [r1] + adds r1, #3 + movs r0, #0x8f + strb r0, [r1] + subs r1, #4 + movs r0, #0xa + strb r0, [r1] + ldr r0, _0808A75C @ =gUnk_08121180 + str r0, [r4, #0x48] + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _0808A764 + adds r0, r4, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CBE4 + cmp r0, #0 + beq _0808A760 + strb r5, [r4, #0xa] + b _0808A76E + .align 2, 0 +_0808A75C: .4byte gUnk_08121180 +_0808A760: + strb r0, [r4, #0xa] + b _0808A76E +_0808A764: + adds r0, r4, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CCC8 +_0808A76E: + adds r0, r4, #0 + bl sub_0808A7D8 + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0808A778 +sub_0808A778: @ 0x0808A778 + push {r4, r5, lr} + adds r5, r0, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0808A7D0 + adds r1, r5, #0 + adds r1, #0x70 + ldrh r0, [r1] + cmp r0, #0 + bne _0808A7D0 + movs r0, #1 + strh r0, [r1] + ldrb r0, [r5, #0xa] + movs r1, #1 + eors r0, r1 + strb r0, [r5, #0xa] + adds r1, r5, #0 + adds r1, #0x3d + movs r0, #0xe8 + strb r0, [r1] + adds r0, r5, #0 + bl sub_0808A7D8 + adds r4, r5, #0 + adds r4, #0x86 + ldrh r0, [r4] + bl sub_0807CBE4 + cmp r0, #0 + beq _0808A7C2 + ldrh r0, [r4] + bl sub_0807CD48 + b _0808A7C8 +_0808A7C2: + ldrh r0, [r4] + bl sub_0807CCC8 +_0808A7C8: + ldr r1, _0808A7D4 @ =0x00000117 + adds r0, r5, #0 + bl sub_0800449C +_0808A7D0: + pop {r4, r5, pc} + .align 2, 0 +_0808A7D4: .4byte 0x00000117 + + thumb_func_start sub_0808A7D8 +sub_0808A7D8: @ 0x0808A7D8 + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xa] + cmp r0, #0 + beq _0808A818 + movs r0, #0xde + lsls r0, r0, #2 + movs r2, #0x2e + ldrsh r1, [r5, r2] + ldr r3, _0808A814 @ =gRoomControls + ldrh r2, [r3, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + movs r4, #0x3f + ands r1, r4 + movs r6, #0x32 + ldrsh r2, [r5, r6] + ldrh r3, [r3, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r4 + lsls r2, r2, #6 + orrs r1, r2 + adds r2, r5, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0807B7D8 + b _0808A844 + .align 2, 0 +_0808A814: .4byte gRoomControls +_0808A818: + ldr r0, _0808A848 @ =0x00000377 + movs r2, #0x2e + ldrsh r1, [r5, r2] + ldr r3, _0808A84C @ =gRoomControls + ldrh r2, [r3, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + movs r4, #0x3f + ands r1, r4 + movs r6, #0x32 + ldrsh r2, [r5, r6] + ldrh r3, [r3, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r4 + lsls r2, r2, #6 + orrs r1, r2 + adds r2, r5, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0807B7D8 +_0808A844: + pop {r4, r5, r6, pc} + .align 2, 0 +_0808A848: .4byte 0x00000377 +_0808A84C: .4byte gRoomControls + + thumb_func_start sub_0808A850 +sub_0808A850: @ 0x0808A850 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _0808A86C @ =gUnk_08121188 + ldrb r0, [r4, #0xc] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + adds r0, r4, #0 + bl sub_08080CB4 + pop {r4, pc} + .align 2, 0 +_0808A86C: .4byte gUnk_08121188 + + thumb_func_start sub_0808A870 +sub_0808A870: @ 0x0808A870 + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xa] + cmp r0, #1 + beq _0808A8BE + cmp r0, #1 + bgt _0808A884 + cmp r0, #0 + beq _0808A896 + b _0808A8C4 +_0808A884: + cmp r0, #3 + bgt _0808A8C4 + adds r0, r5, #0 + bl sub_0808A968 + adds r0, r5, #0 + bl sub_0808A8E0 + b _0808A8C4 +_0808A896: + adds r0, r5, #0 + adds r0, #0x38 + ldrb r0, [r0] + bl sub_0808094C + adds r4, r0, #0 + adds r0, r5, #0 + bl sub_0806F798 + lsls r0, r0, #1 + adds r0, #4 + adds r4, r4, r0 + str r4, [r5, #0x6c] + ldrh r1, [r4] + adds r0, r5, #0 + adds r0, #0x68 + strh r1, [r0] + movs r0, #1 + strb r0, [r5, #0xc] + b _0808A8C4 +_0808A8BE: + adds r0, r5, #0 + bl sub_0808A968 +_0808A8C4: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0808A8C8 +sub_0808A8C8: @ 0x0808A8C8 + push {lr} + adds r2, r0, #0 + adds r0, #0x68 + ldr r1, [r2, #0x6c] + ldrh r0, [r0] + ldrh r1, [r1] + cmp r0, r1 + beq _0808A8DE + adds r0, r2, #0 + bl sub_0808A968 +_0808A8DE: + pop {pc} + + thumb_func_start sub_0808A8E0 +sub_0808A8E0: @ 0x0808A8E0 + push {r4, lr} + adds r4, r0, #0 + ldrb r2, [r4, #0xa] + cmp r2, #0 + beq _0808A8F0 + cmp r2, #1 + beq _0808A930 + b _0808A954 +_0808A8F0: + ldr r0, [r4, #0x70] + cmp r0, #0 + beq _0808A930 + ldr r3, [r4, #0x20] + cmp r3, #0 + bge _0808A926 + movs r0, #0x36 + ldrsh r1, [r4, r0] + movs r0, #8 + rsbs r0, r0, #0 + cmp r1, r0 + ble _0808A90C + str r2, [r4, #0x70] + b _0808A926 +_0808A90C: + ldr r0, _0808A918 @ =0xFFFFC000 + cmp r3, r0 + bge _0808A920 + ldr r0, _0808A91C @ =0xFFFFFC00 + b _0808A924 + .align 2, 0 +_0808A918: .4byte 0xFFFFC000 +_0808A91C: .4byte 0xFFFFFC00 +_0808A920: + movs r0, #0x80 + lsls r0, r0, #3 +_0808A924: + str r0, [r4, #0x70] +_0808A926: + ldr r1, [r4, #0x70] + adds r0, r4, #0 + bl sub_08003FC4 + b _0808A962 +_0808A930: + ldr r2, _0808A964 @ =gUnk_08121194 + ldrb r0, [r4, #0xf] + adds r1, r0, #1 + strb r1, [r4, #0xf] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x1b + movs r1, #7 + ands r0, r1 + adds r0, r0, r2 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + strh r0, [r4, #0x36] + adds r0, r4, #0 + bl sub_08017850 + cmp r0, #0 + beq _0808A962 +_0808A954: + ldrb r1, [r4, #0xb] + movs r0, #0x5c + movs r2, #0 + bl sub_080A7C00 + bl sub_0805E780 +_0808A962: + pop {r4, pc} + .align 2, 0 +_0808A964: .4byte gUnk_08121194 + + thumb_func_start sub_0808A968 +sub_0808A968: @ 0x0808A968 + push {r4, lr} + adds r4, r0, #0 + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #0x1e + strb r0, [r4, #0xe] + ldrb r1, [r4, #0x18] + subs r0, #0x22 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + movs r0, #0xa0 + lsls r0, r0, #0xa + str r0, [r4, #0x20] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #0x18 + orrs r0, r1 + strb r0, [r2] + ldrb r1, [r4, #0x18] + movs r0, #0x31 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] + adds r2, #0x13 + ldrb r1, [r2] + movs r0, #0x10 + orrs r0, r1 + strb r0, [r2] + ldr r0, _0808A9C0 @ =gUnk_08121C58 + str r0, [r4, #0x48] + adds r0, r4, #0 + movs r1, #2 + bl sub_0805E3A0 + movs r0, #0xa0 + lsls r0, r0, #6 + str r0, [r4, #0x70] + pop {r4, pc} + .align 2, 0 +_0808A9C0: .4byte gUnk_08121C58 + + thumb_func_start sub_0808A9C4 +sub_0808A9C4: @ 0x0808A9C4 + push {lr} + ldr r2, _0808A9D8 @ =gUnk_0812119C + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0808A9D8: .4byte gUnk_0812119C + + thumb_func_start sub_0808A9DC +sub_0808A9DC: @ 0x0808A9DC + movs r1, #1 + strb r1, [r0, #0xc] + ldrb r1, [r0, #0xa] + strb r1, [r0, #0x1e] + ldrb r1, [r0, #0x19] + movs r2, #0xc0 + orrs r1, r2 + strb r1, [r0, #0x19] + adds r0, #0x29 + ldrb r1, [r0] + movs r2, #7 + orrs r1, r2 + strb r1, [r0] + bx lr + + thumb_func_start nullsub_519 +nullsub_519: @ 0x0808A9F8 + bx lr + .align 2, 0 + + thumb_func_start sub_0808A9FC +sub_0808A9FC: @ 0x0808A9FC + push {r4, lr} + adds r4, r0, #0 + ldr r1, _0808AA18 @ =gUnk_081211A4 + ldrb r0, [r4, #0xc] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + adds r4, #0x41 + movs r0, #0 + strb r0, [r4] + pop {r4, pc} + .align 2, 0 +_0808AA18: .4byte gUnk_081211A4 + + thumb_func_start sub_0808AA1C +sub_0808AA1C: @ 0x0808AA1C + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + movs r4, #0 + movs r6, #1 + strb r6, [r5, #0xc] + bl sub_08052660 + cmp r0, #0 + bne _0808AA36 + adds r0, r5, #0 + movs r1, #0 + bl sub_0801D2B4 +_0808AA36: + ldrb r0, [r5, #0xa] + cmp r0, #1 + beq _0808AACC + cmp r0, #1 + bgt _0808AA46 + cmp r0, #0 + beq _0808AA4C + b _0808AB5E +_0808AA46: + cmp r0, #2 + beq _0808AB20 + b _0808AB5E +_0808AA4C: + adds r2, r5, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #4 + orrs r0, r1 + strb r0, [r2] + ldr r0, _0808AAC0 @ =gUnk_080FD224 + str r0, [r5, #0x48] + strb r6, [r5, #0x16] + ldr r0, _0808AAC4 @ =0x00004022 + movs r2, #0x2e + ldrsh r1, [r5, r2] + ldr r3, _0808AAC8 @ =gRoomControls + ldrh r2, [r3, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + movs r4, #0x3f + ands r1, r4 + movs r7, #0x32 + ldrsh r2, [r5, r7] + ldrh r3, [r3, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r4 + lsls r2, r2, #6 + orrs r1, r2 + adds r2, r5, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl UpdateCollisionLayer + adds r0, r5, #0 + adds r0, #0x45 + strb r6, [r0] + adds r1, r5, #0 + adds r1, #0x3c + movs r0, #7 + strb r0, [r1] + adds r1, #3 + movs r0, #0x6e + strb r0, [r1] + subs r1, #4 + movs r0, #0xe + strb r0, [r1] + strb r6, [r5, #0x1c] + ldrb r0, [r5, #0x10] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r5, #0x10] + adds r1, r5, #0 + adds r1, #0x63 + movs r0, #4 + strb r0, [r1] + b _0808AB5E + .align 2, 0 +_0808AAC0: .4byte gUnk_080FD224 +_0808AAC4: .4byte 0x00004022 +_0808AAC8: .4byte gRoomControls +_0808AACC: + adds r2, r5, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #4 + orrs r0, r1 + strb r0, [r2] + ldrb r0, [r5, #0xb] + cmp r0, #0 + beq _0808AB10 + ldr r0, _0808AB1C @ =gUnk_080FD224 + str r0, [r5, #0x48] + ldrb r0, [r5, #0x10] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r5, #0x10] + adds r0, r5, #0 + adds r0, #0x45 + strb r6, [r0] + adds r1, r5, #0 + adds r1, #0x3c + movs r0, #7 + strb r0, [r1] + adds r1, #3 + movs r0, #0x6e + strb r0, [r1] + subs r1, #4 + movs r0, #4 + strb r0, [r1] + strb r6, [r5, #0x1c] + movs r0, #3 + strb r0, [r5, #0xc] +_0808AB10: + ldrb r1, [r5, #0x14] + adds r1, #9 + adds r0, r5, #0 + bl UpdateSprite + b _0808AB5E + .align 2, 0 +_0808AB1C: .4byte gUnk_080FD224 +_0808AB20: + adds r2, r5, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #5 + orrs r0, r1 + strb r0, [r2] + ldrb r0, [r5, #0x19] + movs r1, #3 + orrs r0, r1 + strb r0, [r5, #0x19] + ldrb r1, [r5, #0x14] + adds r0, r6, #0 + ands r0, r1 + cmp r0, #0 + beq _0808AB52 + movs r0, #0x80 + lsls r0, r0, #2 + str r0, [r5, #0x74] + movs r0, #0x80 + lsls r0, r0, #1 + str r0, [r5, #0x78] + b _0808AB5E +_0808AB52: + movs r0, #0x80 + lsls r0, r0, #2 + str r0, [r5, #0x78] + movs r0, #0x80 + lsls r0, r0, #1 + str r0, [r5, #0x74] +_0808AB5E: + adds r0, r5, #0 + bl sub_0808AB68 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_0808AB68 +sub_0808AB68: @ 0x0808AB68 + push {lr} + ldr r2, _0808AB7C @ =gUnk_081211B4 + ldrb r1, [r0, #0xa] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0808AB7C: .4byte gUnk_081211B4 + + thumb_func_start sub_0808AB80 +sub_0808AB80: @ 0x0808AB80 + push {lr} + ldr r2, _0808AB94 @ =gUnk_081211C0 + ldrb r1, [r0, #0xd] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0808AB94: .4byte gUnk_081211C0 + + thumb_func_start sub_0808AB98 +sub_0808AB98: @ 0x0808AB98 + push {lr} + adds r3, r0, #0 + ldr r2, [r3, #0x50] + ldrh r1, [r2, #0xc] + ldr r0, _0808ABB0 @ =0x00000201 + cmp r1, r0 + bne _0808ABB4 + movs r0, #0 + str r0, [r2, #0x54] + bl sub_0805E780 + b _0808ABC2 + .align 2, 0 +_0808ABB0: .4byte 0x00000201 +_0808ABB4: + ldrb r0, [r2, #0xc] + cmp r0, #2 + bne _0808ABC2 + adds r0, r3, #0 + movs r1, #0 + bl sub_0808B168 +_0808ABC2: + pop {pc} + + thumb_func_start sub_0808ABC4 +sub_0808ABC4: @ 0x0808ABC4 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x50] + ldrh r1, [r0, #0xc] + ldr r0, _0808AC38 @ =0x00000201 + cmp r1, r0 + bne _0808ABD6 + bl sub_0805E780 +_0808ABD6: + ldr r0, [r4, #0x54] + ldr r1, [r4, #0x50] + bl sub_0808B1F0 + adds r2, r0, #0 + cmp r2, #7 + bhi _0808ABE6 + movs r2, #0 +_0808ABE6: + ldrb r3, [r4, #0x14] + lsls r1, r3, #2 + ldr r0, _0808AC3C @ =gUnk_081211CC + adds r5, r1, r0 + cmp r2, #0x1f + bhi _0808AC5A + cmp r2, #0 + beq _0808ABF8 + subs r2, #6 +_0808ABF8: + ldrh r0, [r5] + str r0, [r4, #0x70] + ldr r1, [r4, #0x50] + movs r0, #2 + ldrsb r0, [r5, r0] + ldrh r3, [r1, #0x2e] + adds r0, r0, r3 + strh r0, [r4, #0x2e] + movs r0, #3 + ldrsb r0, [r5, r0] + ldrh r1, [r1, #0x32] + adds r0, r0, r1 + strh r0, [r4, #0x32] + ldrb r1, [r4, #0x14] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0808AC40 + lsls r1, r2, #4 + movs r0, #0x80 + lsls r0, r0, #2 + subs r0, r0, r1 + str r0, [r4, #0x74] + lsls r0, r2, #3 + movs r1, #0x90 + lsls r1, r1, #1 + adds r0, r0, r1 + str r0, [r4, #0x78] + movs r0, #0xf + strb r0, [r4, #0x1e] + b _0808ACDE + .align 2, 0 +_0808AC38: .4byte 0x00000201 +_0808AC3C: .4byte gUnk_081211CC +_0808AC40: + lsls r1, r2, #4 + movs r0, #0x80 + lsls r0, r0, #2 + subs r0, r0, r1 + str r0, [r4, #0x78] + lsls r0, r2, #3 + movs r3, #0x90 + lsls r3, r3, #1 + adds r0, r0, r3 + str r0, [r4, #0x74] + movs r0, #0x14 + strb r0, [r4, #0x1e] + b _0808ACDE +_0808AC5A: + movs r0, #1 + ands r3, r0 + cmp r3, #0 + beq _0808AC9E + adds r1, r2, #0 + subs r1, #0x20 + lsls r1, r1, #2 + adds r0, #0xff + subs r0, r0, r1 + str r0, [r4, #0x74] + lsls r0, r2, #3 + movs r1, #0xa0 + lsls r1, r1, #1 + adds r0, r0, r1 + str r0, [r4, #0x78] + movs r0, #0x10 + strb r0, [r4, #0x1e] + ldrb r1, [r4, #0x14] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _0808AC92 + ldr r0, [r4, #0x50] + lsrs r1, r2, #1 + ldrh r0, [r0, #0x2e] + subs r0, r0, r1 + strh r0, [r4, #0x2e] + b _0808ACDE +_0808AC92: + ldr r1, [r4, #0x50] + lsrs r0, r2, #1 + ldrh r1, [r1, #0x2e] + adds r0, r0, r1 + strh r0, [r4, #0x2e] + b _0808ACDE +_0808AC9E: + adds r1, r2, #0 + subs r1, #0x20 + lsls r1, r1, #2 + movs r0, #0x80 + lsls r0, r0, #1 + subs r0, r0, r1 + str r0, [r4, #0x78] + lsls r0, r2, #3 + movs r3, #0xa0 + lsls r3, r3, #1 + adds r0, r0, r3 + str r0, [r4, #0x74] + movs r0, #0x15 + strb r0, [r4, #0x1e] + ldrb r1, [r4, #0x14] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _0808ACCE + ldr r0, [r4, #0x50] + lsrs r1, r2, #1 + ldrh r0, [r0, #0x32] + adds r1, r1, r0 + b _0808ACD6 +_0808ACCE: + ldr r0, [r4, #0x50] + lsrs r2, r2, #1 + ldrh r1, [r0, #0x32] + subs r1, r1, r2 +_0808ACD6: + movs r0, #3 + ldrsb r0, [r5, r0] + adds r0, r0, r1 + strh r0, [r4, #0x32] +_0808ACDE: + ldr r1, [r4, #0x74] + ldr r2, [r4, #0x78] + ldr r3, [r4, #0x70] + adds r0, r4, #0 + bl sub_0805EC9C + pop {r4, r5, pc} + + thumb_func_start sub_0808ACEC +sub_0808ACEC: @ 0x0808ACEC + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r0, #0 + beq _0808AD00 + adds r0, r4, #0 + movs r1, #0 + bl UpdateSprite +_0808AD00: + adds r0, r4, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + subs r0, #4 + cmp r0, #0x12 + bhi _0808AD92 + lsls r0, r0, #2 + ldr r1, _0808AD1C @ =_0808AD20 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0808AD1C: .4byte _0808AD20 +_0808AD20: @ jump table + .4byte _0808AD6C @ case 0 + .4byte _0808AD6C @ case 1 + .4byte _0808AD6C @ case 2 + .4byte _0808AD92 @ case 3 + .4byte _0808AD6C @ case 4 + .4byte _0808AD6C @ case 5 + .4byte _0808AD6C @ case 6 + .4byte _0808AD6C @ case 7 + .4byte _0808AD6C @ case 8 + .4byte _0808AD6C @ case 9 + .4byte _0808AD92 @ case 10 + .4byte _0808AD92 @ case 11 + .4byte _0808AD6C @ case 12 + .4byte _0808AD6C @ case 13 + .4byte _0808AD6C @ case 14 + .4byte _0808AD88 @ case 15 + .4byte _0808AD6C @ case 16 + .4byte _0808AD92 @ case 17 + .4byte _0808AD6C @ case 18 +_0808AD6C: + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + adds r0, r4, #0 + adds r0, #0x3e + ldrb r0, [r0] + bl sub_0806F5A4 + strb r0, [r4, #0x14] + movs r0, #2 + strb r0, [r4, #0xd] + strb r0, [r4, #0xe] + b _0808AD9E +_0808AD88: + movs r1, #0 + movs r0, #3 + strb r0, [r4, #0xc] + strb r1, [r4, #0xd] + b _0808AD9E +_0808AD92: + movs r0, #0 + strb r0, [r4, #0xf] + strb r0, [r4, #0xe] + adds r0, r4, #0 + bl sub_08078930 +_0808AD9E: + pop {r4, pc} + + thumb_func_start sub_0808ADA0 +sub_0808ADA0: @ 0x0808ADA0 + push {r4, lr} + adds r4, r0, #0 + ldr r1, [r4, #0x54] + bl sub_0808B1F0 + cmp r0, #7 + bls _0808ADB4 + ldr r1, [r4, #0x54] + cmp r1, #0 + bne _0808ADE2 +_0808ADB4: + ldrb r0, [r4, #0xd] + adds r0, #1 + strb r0, [r4, #0xd] + movs r2, #2 + movs r0, #2 + strb r0, [r4, #0xe] + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + ldrb r0, [r4, #0x14] + eors r0, r2 + strb r0, [r4, #0x14] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #4 + orrs r0, r1 + strb r0, [r2] + b _0808ADEE +_0808ADE2: + movs r0, #0x80 + lsls r0, r0, #3 + strh r0, [r1, #0x24] + ldr r0, [r4, #0x54] + bl sub_0806F69C +_0808ADEE: + pop {r4, pc} + + thumb_func_start sub_0808ADF0 +sub_0808ADF0: @ 0x0808ADF0 + push {r4, lr} + adds r4, r0, #0 + ldrb r2, [r4, #0x14] + adds r1, r2, #0 + adds r1, #0xd + adds r0, #0x58 + ldrb r0, [r0] + cmp r1, r0 + bne _0808AE26 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0808AE1E + movs r0, #0 + strb r0, [r4, #0xd] + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + b _0808AE80 +_0808AE1E: + adds r0, r4, #0 + bl sub_08004274 + b _0808AE80 +_0808AE26: + adds r1, r2, #1 + cmp r1, r0 + beq _0808AE54 + adds r0, r4, #0 + bl UpdateSprite + ldrb r0, [r4, #0x14] + cmp r0, #3 + bne _0808AE42 + ldrb r1, [r4, #0x18] + movs r0, #0x41 + rsbs r0, r0, #0 + ands r0, r1 + b _0808AE48 +_0808AE42: + ldrb r0, [r4, #0x18] + movs r1, #0x40 + orrs r0, r1 +_0808AE48: + strb r0, [r4, #0x18] + movs r0, #0x97 + lsls r0, r0, #1 + bl PlaySFX + b _0808AE80 +_0808AE54: + adds r0, r4, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0808AE80 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + bne _0808AE80 + ldrb r1, [r4, #0x14] + adds r1, #0xd + adds r0, r4, #0 + bl UpdateSprite +_0808AE80: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0808AE84 +sub_0808AE84: @ 0x0808AE84 + push {lr} + adds r2, r0, #0 + ldr r0, _0808AEA8 @ =gLinkState + ldrb r0, [r0, #5] + cmp r0, #0 + bne _0808AE94 + movs r0, #6 + strb r0, [r2, #0xd] +_0808AE94: + ldr r0, _0808AEAC @ =gUnk_081211DC + ldrb r1, [r2, #0xd] + subs r1, #5 + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r2, #0 + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0808AEA8: .4byte gLinkState +_0808AEAC: .4byte gUnk_081211DC + + thumb_func_start sub_0808AEB0 +sub_0808AEB0: @ 0x0808AEB0 + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _0808AF68 + ldr r1, [r4, #0x54] + adds r0, r4, #0 + bl sub_0808B1F0 + adds r6, r0, #0 + ldr r5, _0808AF10 @ =gLinkState + adds r2, r5, #0 + adds r2, #0x90 + ldr r1, _0808AF14 @ =gUnk_081211E4 + ldrb r0, [r4, #0x14] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r1, [r2] + ldrh r0, [r0] + ands r0, r1 + cmp r0, #0 + beq _0808AF20 + adds r0, r4, #0 + bl sub_08004274 + cmp r6, #0x3f + bhi _0808AF08 + ldr r0, _0808AF18 @ =gLinkEntity + ldrb r2, [r4, #0x15] + movs r1, #0x40 + bl sub_080044AE + ldr r0, [r4, #0x7c] + subs r0, #1 + str r0, [r4, #0x7c] + movs r1, #1 + rsbs r1, r1, #0 + cmp r0, r1 + bne _0808AF08 + movs r0, #4 + str r0, [r4, #0x7c] + ldr r0, _0808AF1C @ =0x0000012F + bl PlaySFX +_0808AF08: + movs r0, #1 + strb r0, [r4, #0xf] + b _0808AFD0 + .align 2, 0 +_0808AF10: .4byte gLinkState +_0808AF14: .4byte gUnk_081211E4 +_0808AF18: .4byte gLinkEntity +_0808AF1C: .4byte 0x0000012F +_0808AF20: + ldrb r0, [r4, #0xf] + cmp r0, #0 + beq _0808AFD0 + ldr r2, _0808AF64 @ =gLinkEntity + ldrb r0, [r2, #0xc] + cmp r0, #1 + bne _0808AFD0 + adds r0, r5, #0 + adds r0, #0x26 + ldrb r0, [r0] + cmp r0, #0 + bne _0808AFD0 + movs r0, #0x1b + strb r0, [r5, #0xc] + adds r0, r5, #0 + adds r0, #0x38 + strb r6, [r0] + ldrb r0, [r4, #0x15] + movs r1, #0x10 + eors r0, r1 + adds r1, r5, #0 + adds r1, #0x39 + strb r0, [r1] + adds r0, r4, #0 + adds r1, r2, #0 + bl sub_0808B1F0 + adds r1, r5, #0 + adds r1, #0x3a + strb r0, [r1] + ldrb r0, [r4, #0xd] + adds r0, #1 + strb r0, [r4, #0xd] + b _0808AFD0 + .align 2, 0 +_0808AF64: .4byte gLinkEntity +_0808AF68: + movs r6, #1 + strb r6, [r4, #0xe] + str r6, [r4, #0x7c] + ldr r5, _0808AFC8 @ =gLinkEntity + ldrb r0, [r5, #0x14] + lsrs r0, r0, #1 + movs r1, #2 + eors r0, r1 + strb r0, [r4, #0x14] + lsls r0, r0, #3 + strb r0, [r4, #0x15] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + ldrb r0, [r5, #0x18] + movs r1, #0x40 + ands r1, r0 + ldrb r2, [r4, #0x18] + movs r0, #0x41 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x18] + ldrb r1, [r4, #0x14] + adds r1, #5 + adds r0, r4, #0 + bl UpdateSprite + adds r0, r4, #0 + movs r1, #0 + bl sub_0808B21C + cmp r0, #0 + beq _0808AFB6 + ldr r0, [r4, #0x54] + movs r1, #0 + bl sub_0808B168 +_0808AFB6: + ldrb r1, [r4, #0x14] + adds r0, r6, #0 + ands r0, r1 + cmp r0, #0 + beq _0808AFCC + ldrh r0, [r4, #0x32] + strh r0, [r5, #0x32] + b _0808AFD0 + .align 2, 0 +_0808AFC8: .4byte gLinkEntity +_0808AFCC: + ldrh r0, [r4, #0x2e] + strh r0, [r5, #0x2e] +_0808AFD0: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_0808AFD4 +sub_0808AFD4: @ 0x0808AFD4 + push {lr} + movs r1, #1 + strb r1, [r0, #0xc] + strb r1, [r0, #0xd] + ldr r2, [r0, #0x54] + ldrb r0, [r0, #0x15] + movs r1, #0x10 + eors r0, r1 + strb r0, [r2, #0x15] + movs r0, #0x98 + lsls r0, r0, #1 + bl PlaySFX + pop {pc} + + thumb_func_start sub_0808AFF0 +sub_0808AFF0: @ 0x0808AFF0 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r1, _0808B054 @ =gUnk_081211EC + ldrb r0, [r4, #0xd] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + ldr r0, _0808B058 @ =gLinkState + ldrb r1, [r0, #0x1c] + movs r0, #0xf + ands r0, r1 + cmp r0, #1 + bne _0808B01E + adds r0, r4, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0x13 + beq _0808B050 +_0808B01E: + ldrb r5, [r4, #0xa] + cmp r5, #1 + bne _0808B050 + ldr r0, [r4, #0x50] + strb r5, [r0, #0xc] + ldr r0, [r4, #0x50] + strb r5, [r0, #0xd] + ldr r2, [r4, #0x50] + ldrb r0, [r2, #0x15] + movs r1, #0x10 + eors r0, r1 + strb r0, [r4, #0x15] + ldrb r3, [r2, #0x10] + movs r1, #0x7f + adds r0, r1, #0 + ands r0, r3 + strb r0, [r2, #0x10] + ldrb r0, [r4, #0x10] + ands r1, r0 + strb r1, [r4, #0x10] + strb r5, [r4, #0xc] + movs r0, #0x98 + lsls r0, r0, #1 + bl PlaySFX +_0808B050: + pop {r4, r5, pc} + .align 2, 0 +_0808B054: .4byte gUnk_081211EC +_0808B058: .4byte gLinkState + + thumb_func_start sub_0808B05C +sub_0808B05C: @ 0x0808B05C + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _0808B0AE + ldr r2, _0808B0B8 @ =gLinkEntity + ldrb r0, [r2, #0x14] + lsrs r0, r0, #1 + movs r1, #2 + eors r0, r1 + strb r0, [r4, #0x14] + lsls r0, r0, #3 + strb r0, [r4, #0x15] + ldrb r0, [r2, #0x18] + movs r1, #0x40 + ands r1, r0 + ldrb r2, [r4, #0x18] + movs r0, #0x41 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x18] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + ldrb r1, [r4, #0x14] + adds r1, #5 + adds r0, r4, #0 + bl UpdateSprite + adds r0, r4, #0 + movs r1, #1 + bl sub_0808B21C + cmp r0, #0 + beq _0808B0AE + ldr r0, [r4, #0x54] + movs r1, #1 + bl sub_0808B168 +_0808B0AE: + ldrb r0, [r4, #0xd] + adds r0, #1 + strb r0, [r4, #0xd] + pop {r4, pc} + .align 2, 0 +_0808B0B8: .4byte gLinkEntity + + thumb_func_start sub_0808B0BC +sub_0808B0BC: @ 0x0808B0BC + push {r4, r5, r6, r7, lr} + sub sp, #0x88 + adds r5, r0, #0 + ldr r1, [r5, #0x50] + bl sub_0808B1F0 + adds r7, r0, #0 + ldrb r0, [r5, #0xa] + cmp r0, #0 + beq _0808B0D6 + cmp r0, #1 + beq _0808B0DE + b _0808B162 +_0808B0D6: + adds r0, r5, #0 + bl sub_08004274 + b _0808B162 +_0808B0DE: + ldr r6, _0808B148 @ =gLinkEntity + ldrb r0, [r6, #0x14] + movs r1, #0xe + ands r1, r0 + ldr r0, _0808B14C @ =gUnk_08126EE4 + adds r1, r1, r0 + mov r2, sp + movs r0, #0 + ldrsb r0, [r1, r0] + ldrh r3, [r6, #0x2e] + adds r0, r0, r3 + strh r0, [r2, #0x2e] + movs r0, #1 + ldrsb r0, [r1, r0] + ldrh r1, [r6, #0x32] + adds r0, r0, r1 + strh r0, [r2, #0x32] + mov r0, sp + adds r1, r5, #0 + movs r2, #7 + movs r3, #7 + bl sub_0800419C + cmp r0, #0 + beq _0808B154 + ldrb r0, [r6, #0xc] + cmp r0, #1 + bne _0808B162 + ldr r4, _0808B150 @ =gLinkState + adds r0, r4, #0 + adds r0, #0x26 + ldrb r0, [r0] + cmp r0, #0 + bne _0808B162 + movs r0, #0x1b + strb r0, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x38 + strb r7, [r0] + ldrb r0, [r5, #0x15] + movs r1, #0x10 + eors r0, r1 + adds r1, r4, #0 + adds r1, #0x39 + strb r0, [r1] + ldr r0, [r5, #0x50] + adds r1, r6, #0 + bl sub_0808B1F0 + adds r1, r4, #0 + adds r1, #0x3a + strb r0, [r1] + b _0808B162 + .align 2, 0 +_0808B148: .4byte gLinkEntity +_0808B14C: .4byte gUnk_08126EE4 +_0808B150: .4byte gLinkState +_0808B154: + movs r0, #0x40 + strh r0, [r5, #0x24] + cmp r7, #0x3f + bhi _0808B162 + adds r0, r5, #0 + bl sub_0806F69C +_0808B162: + add sp, #0x88 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_0808B168 +sub_0808B168: @ 0x0808B168 + push {r4, r5, lr} + adds r3, r0, #0 + cmp r1, #0 + beq _0808B188 + ldrb r0, [r3, #0x14] + movs r1, #2 + eors r1, r0 + lsls r1, r1, #1 + ldr r0, _0808B184 @ =gUnk_081211F4 + adds r2, r1, r0 + adds r1, r2, #1 + ldr r4, [r3, #0x50] + adds r5, r4, #0 + b _0808B1CE + .align 2, 0 +_0808B184: .4byte gUnk_081211F4 +_0808B188: + ldrb r1, [r3, #0x14] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0808B1B8 + ldr r5, _0808B1AC @ =gLinkEntity + ldr r4, [r3, #0x50] + ldrb r1, [r3, #0x14] + lsls r2, r1, #1 + ldr r0, _0808B1B0 @ =gUnk_081211FC + adds r2, r2, r0 + movs r0, #2 + eors r1, r0 + lsls r1, r1, #1 + ldr r0, _0808B1B4 @ =gUnk_081211F5 + adds r1, r1, r0 + b _0808B1CE + .align 2, 0 +_0808B1AC: .4byte gLinkEntity +_0808B1B0: .4byte gUnk_081211FC +_0808B1B4: .4byte gUnk_081211F5 +_0808B1B8: + ldr r5, [r3, #0x50] + ldr r4, _0808B1E4 @ =gLinkEntity + movs r0, #2 + eors r0, r1 + lsls r0, r0, #1 + ldr r1, _0808B1E8 @ =gUnk_081211F4 + adds r2, r0, r1 + ldrb r0, [r3, #0x14] + lsls r0, r0, #1 + ldr r1, _0808B1EC @ =gUnk_081211FD + adds r1, r0, r1 +_0808B1CE: + movs r0, #0 + ldrsb r0, [r2, r0] + ldrh r5, [r5, #0x2e] + adds r0, r0, r5 + strh r0, [r3, #0x2e] + movs r0, #0 + ldrsb r0, [r1, r0] + ldrh r4, [r4, #0x32] + adds r0, r0, r4 + strh r0, [r3, #0x32] + pop {r4, r5, pc} + .align 2, 0 +_0808B1E4: .4byte gLinkEntity +_0808B1E8: .4byte gUnk_081211F4 +_0808B1EC: .4byte gUnk_081211FD + + thumb_func_start sub_0808B1F0 +sub_0808B1F0: @ 0x0808B1F0 + push {lr} + adds r2, r0, #0 + adds r3, r1, #0 + ldrb r1, [r2, #0x14] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0808B20A + movs r0, #0x2e + ldrsh r1, [r2, r0] + movs r2, #0x2e + ldrsh r0, [r3, r2] + b _0808B212 +_0808B20A: + movs r0, #0x32 + ldrsh r1, [r2, r0] + movs r2, #0x32 + ldrsh r0, [r3, r2] +_0808B212: + subs r0, r1, r0 + cmp r0, #0 + bge _0808B21A + rsbs r0, r0, #0 +_0808B21A: + pop {pc} + + thumb_func_start sub_0808B21C +sub_0808B21C: @ 0x0808B21C + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + adds r2, r4, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #8 + rsbs r1, r1, #0 + ands r1, r0 + movs r0, #6 + orrs r1, r0 + strb r1, [r2] + adds r0, r4, #0 + movs r1, #0x32 + movs r2, #1 + movs r3, #0 + bl CreateObjectWithParent + adds r1, r0, #0 + str r1, [r4, #0x54] + cmp r1, #0 + beq _0808B26E + ldrb r0, [r4, #0x14] + strb r0, [r1, #0x14] + ldr r1, [r4, #0x54] + ldrb r0, [r4, #0x15] + strb r0, [r1, #0x15] + ldr r3, [r4, #0x54] + ldrb r0, [r4, #0x18] + movs r1, #0x40 + ands r1, r0 + ldrb r2, [r3, #0x18] + movs r0, #0x41 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3, #0x18] + ldr r0, [r4, #0x54] + str r4, [r0, #0x50] + ldr r0, [r4, #0x54] + strb r5, [r0, #0xb] +_0808B26E: + adds r0, r4, #0 + movs r1, #0x32 + movs r2, #2 + movs r3, #0 + bl CreateObjectWithParent + adds r1, r0, #0 + str r1, [r4, #0x50] + cmp r1, #0 + bne _0808B286 + movs r0, #0 + b _0808B292 +_0808B286: + ldrb r0, [r4, #0x14] + strb r0, [r1, #0x14] + ldr r1, [r4, #0x50] + ldr r0, [r4, #0x54] + str r0, [r1, #0x54] + movs r0, #1 +_0808B292: + pop {r4, r5, pc} + + thumb_func_start sub_0808B294 +sub_0808B294: @ 0x0808B294 + push {lr} + ldr r2, _0808B2A8 @ =gUnk_08121300 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0808B2A8: .4byte gUnk_08121300 + + thumb_func_start sub_0808B2AC +sub_0808B2AC: @ 0x0808B2AC + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xb] + cmp r0, #0 + bne _0808B2C4 + adds r0, r4, #0 + bl sub_0808B41C + adds r0, r4, #0 + bl sub_0808B3AC + b _0808B2CA +_0808B2C4: + adds r0, r4, #0 + bl sub_0808B42C +_0808B2CA: + pop {r4, pc} + + thumb_func_start sub_0808B2CC +sub_0808B2CC: @ 0x0808B2CC + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xb] + cmp r0, #0 + bne _0808B2E6 + adds r0, r4, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CBE4 + cmp r0, #0 + beq _0808B31C + b _0808B2F4 +_0808B2E6: + adds r0, r4, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CBE4 + cmp r0, #0 + bne _0808B31C +_0808B2F4: + movs r0, #2 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #3 + bl UpdateSprite + adds r0, r4, #0 + adds r0, #0x72 + ldrh r0, [r0] + adds r1, r4, #0 + adds r1, #0x70 + ldrh r1, [r1] + adds r2, r4, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl UpdateCollisionLayer + ldr r0, _0808B320 @ =0x000001A5 + bl sub_08004488 +_0808B31C: + pop {r4, pc} + .align 2, 0 +_0808B320: .4byte 0x000001A5 + + thumb_func_start sub_0808B324 +sub_0808B324: @ 0x0808B324 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0808B340 + adds r0, r4, #0 + bl sub_0808B42C +_0808B340: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0808B344 +sub_0808B344: @ 0x0808B344 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xb] + cmp r0, #0 + bne _0808B35E + adds r0, r4, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CBE4 + cmp r0, #0 + bne _0808B384 + b _0808B36C +_0808B35E: + adds r0, r4, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CBE4 + cmp r0, #0 + beq _0808B384 +_0808B36C: + movs r0, #4 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #2 + bl UpdateSprite + adds r0, r4, #0 + bl sub_0808B3AC + ldr r0, _0808B388 @ =0x000001A5 + bl sub_08004488 +_0808B384: + pop {r4, pc} + .align 2, 0 +_0808B388: .4byte 0x000001A5 + + thumb_func_start sub_0808B38C +sub_0808B38C: @ 0x0808B38C + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0808B3A8 + adds r0, r4, #0 + bl sub_0808B41C +_0808B3A8: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0808B3AC +sub_0808B3AC: @ 0x0808B3AC + push {r4, r5, r6, lr} + adds r6, r0, #0 + adds r2, r6, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #4 + orrs r0, r1 + strb r0, [r2] + movs r0, #0x2e + ldrsh r1, [r6, r0] + ldr r2, _0808B414 @ =gRoomControls + ldrh r0, [r2, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + movs r3, #0x3f + ands r1, r3 + movs r4, #0x32 + ldrsh r0, [r6, r4] + ldrh r2, [r2, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r1, r0 + adds r4, r6, #0 + adds r4, #0x70 + strh r1, [r4] + ldrh r0, [r4] + adds r5, r6, #0 + adds r5, #0x38 + ldrb r1, [r5] + bl sub_080001DA + adds r1, r6, #0 + adds r1, #0x72 + strh r0, [r1] + ldrh r0, [r4] + ldrb r1, [r5] + bl sub_080002E0 + adds r1, r6, #0 + adds r1, #0x74 + strb r0, [r1] + ldr r0, _0808B418 @ =0x0000400B + ldrh r1, [r4] + ldrb r2, [r5] + bl UpdateCollisionLayer + pop {r4, r5, r6, pc} + .align 2, 0 +_0808B414: .4byte gRoomControls +_0808B418: .4byte 0x0000400B + + thumb_func_start sub_0808B41C +sub_0808B41C: @ 0x0808B41C + push {lr} + movs r1, #1 + strb r1, [r0, #0xc] + movs r1, #0 + bl UpdateSprite + pop {pc} + .align 2, 0 + + thumb_func_start sub_0808B42C +sub_0808B42C: @ 0x0808B42C + push {lr} + movs r1, #3 + strb r1, [r0, #0xc] + adds r3, r0, #0 + adds r3, #0x29 + ldrb r1, [r3] + movs r2, #7 + orrs r1, r2 + strb r1, [r3] + movs r1, #1 + bl UpdateSprite + pop {pc} + .align 2, 0 + + thumb_func_start sub_0808B448 +sub_0808B448: @ 0x0808B448 + push {lr} + adds r2, r0, #0 + adds r0, #0x70 + ldrb r0, [r0] + cmp r0, #0 + bne _0808B46C + ldr r0, _0808B468 @ =gUnk_08121368 + ldrb r1, [r2, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r2, #0 + bl _call_via_r1 + b _0808B472 + .align 2, 0 +_0808B468: .4byte gUnk_08121368 +_0808B46C: + adds r0, r2, #0 + bl sub_0808B73C +_0808B472: + pop {pc} + + thumb_func_start sub_0808B474 +sub_0808B474: @ 0x0808B474 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0 + movs r0, #1 + strb r0, [r4, #0xc] + strb r1, [r4, #0xf] + ldr r1, _0808B4D8 @ =gUnk_08121380 + ldrb r0, [r4, #0xa] + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #0xf + ands r1, r0 + ldrb r3, [r4, #0x1a] + movs r2, #0x10 + rsbs r2, r2, #0 + adds r0, r2, #0 + ands r0, r3 + orrs r0, r1 + strb r0, [r4, #0x1a] + adds r3, r4, #0 + adds r3, #0x29 + ldrb r1, [r3] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #6 + orrs r0, r1 + strb r0, [r3] + ldr r0, _0808B4DC @ =gUnk_080FD168 + str r0, [r4, #0x48] + ldrb r0, [r4, #0x11] + ands r2, r0 + movs r0, #3 + orrs r2, r0 + strb r2, [r4, #0x11] + adds r0, r4, #0 + movs r1, #0 + bl UpdateSprite + adds r0, r4, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CBE4 + cmp r0, #0 + beq _0808B4E0 + adds r0, r4, #0 + bl sub_0808B830 + b _0808B4F8 + .align 2, 0 +_0808B4D8: .4byte gUnk_08121380 +_0808B4DC: .4byte gUnk_080FD168 +_0808B4E0: + bl sub_08052660 + cmp r0, #0 + beq _0808B4F8 + ldrb r0, [r4, #0xa] + bl sub_0807CAEC + cmp r0, #0 + beq _0808B4F8 + adds r0, r4, #0 + bl sub_0808B830 +_0808B4F8: + adds r0, r4, #0 + bl sub_0808B7C8 + cmp r0, #0 + beq _0808B528 + movs r2, #4 + strb r2, [r4, #0xc] + movs r0, #0x60 + strb r0, [r4, #0xf] + ldr r1, _0808B52C @ =gLinkEntity + ldrh r0, [r4, #0x2e] + strh r0, [r1, #0x2e] + ldrh r0, [r4, #0x32] + strh r0, [r1, #0x32] + strb r2, [r1, #0x14] + movs r0, #0x89 + lsls r0, r0, #1 + bl sub_08004488 + ldrb r1, [r4, #0xf] + adds r1, #0x10 + adds r0, r4, #0 + bl sub_0805E4E0 +_0808B528: + pop {r4, pc} + .align 2, 0 +_0808B52C: .4byte gLinkEntity + + thumb_func_start sub_0808B530 +sub_0808B530: @ 0x0808B530 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CBE4 + cmp r0, #0 + beq _0808B562 + adds r0, r4, #0 + bl sub_0808B830 + bl sub_08052660 + cmp r0, #0 + beq _0808B554 + ldrb r0, [r4, #0xa] + bl sub_0807CAC8 +_0808B554: + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #0x3c + strb r0, [r4, #0xf] + adds r0, #0xd6 + bl sub_08004488 +_0808B562: + pop {r4, pc} + + thumb_func_start sub_0808B564 +sub_0808B564: @ 0x0808B564 + push {lr} + adds r3, r0, #0 + ldrb r0, [r3, #0xf] + subs r1, r0, #1 + strb r1, [r3, #0xf] + lsls r0, r1, #0x18 + cmp r0, #0 + bne _0808B57A + movs r0, #3 + strb r0, [r3, #0xc] + b _0808B58E +_0808B57A: + lsls r0, r1, #0x18 + lsrs r0, r0, #0x19 + movs r1, #1 + bics r1, r0 + ldrb r2, [r3, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3, #0x18] +_0808B58E: + pop {pc} + + thumb_func_start sub_0808B590 +sub_0808B590: @ 0x0808B590 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + bl sub_0808B7C8 + cmp r0, #0 + beq _0808B5E4 + ldrb r0, [r4, #0xe] + cmp r0, #0 + bne _0808B5E6 + movs r0, #5 + strb r0, [r4, #0xc] + movs r0, #0x60 + strb r0, [r4, #0xf] + bl sub_08077B20 + ldr r1, _0808B5DC @ =gLinkEntity + ldrh r0, [r4, #0x2e] + strh r0, [r1, #0x2e] + ldrh r0, [r4, #0x32] + strh r0, [r1, #0x32] + movs r0, #4 + strb r0, [r1, #0x14] + ldrb r2, [r1, #0x10] + movs r0, #0x7f + ands r0, r2 + strb r0, [r1, #0x10] + ldrb r1, [r4, #0xf] + adds r1, #0x10 + adds r0, r4, #0 + bl sub_0805E4E0 + ldr r0, _0808B5E0 @ =0x00000113 + bl PlaySFX + b _0808B5E6 + .align 2, 0 +_0808B5DC: .4byte gLinkEntity +_0808B5E0: .4byte 0x00000113 +_0808B5E4: + strb r0, [r4, #0xe] +_0808B5E6: + pop {r4, pc} + + thumb_func_start sub_0808B5E8 +sub_0808B5E8: @ 0x0808B5E8 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xf] + subs r1, r0, #1 + strb r1, [r4, #0xf] + lsls r0, r1, #0x18 + cmp r0, #0 + bne _0808B610 + movs r0, #3 + strb r0, [r4, #0xc] + movs r0, #1 + strb r0, [r4, #0xe] + ldr r1, _0808B60C @ =gLinkEntity + movs r0, #4 + strb r0, [r1, #0x14] + movs r0, #0x10 + strb r0, [r1, #0x15] + b _0808B67E + .align 2, 0 +_0808B60C: .4byte gLinkEntity +_0808B610: + movs r5, #0 + movs r0, #0x60 + ands r0, r1 + cmp r0, #0x20 + beq _0808B644 + cmp r0, #0x20 + bgt _0808B624 + cmp r0, #0 + beq _0808B64E + b _0808B66E +_0808B624: + cmp r0, #0x40 + bne _0808B66E + lsls r0, r1, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x58 + bne _0808B638 + movs r0, #0x8a + lsls r0, r0, #1 + bl PlaySFX +_0808B638: + ldrb r1, [r4, #0xf] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _0808B66E + b _0808B672 +_0808B644: + movs r0, #3 + ands r1, r0 + cmp r1, #0 + bne _0808B66E + b _0808B672 +_0808B64E: + movs r0, #7 + ands r0, r1 + cmp r0, #0 + bne _0808B66E + ldr r0, _0808B668 @ =gLinkEntity + ldrb r0, [r0, #0x14] + cmp r0, #4 + bne _0808B66C + lsls r0, r1, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x18 + bls _0808B66E + b _0808B672 + .align 2, 0 +_0808B668: .4byte gLinkEntity +_0808B66C: + movs r5, #1 +_0808B66E: + cmp r5, #0 + beq _0808B67E +_0808B672: + ldr r0, _0808B680 @ =gLinkEntity + ldrb r1, [r0, #0x14] + adds r1, #2 + movs r2, #6 + ands r1, r2 + strb r1, [r0, #0x14] +_0808B67E: + pop {r4, r5, pc} + .align 2, 0 +_0808B680: .4byte gLinkEntity + + thumb_func_start sub_0808B684 +sub_0808B684: @ 0x0808B684 + push {lr} + mov ip, r0 + ldrb r0, [r0, #0xf] + subs r1, r0, #1 + mov r0, ip + strb r1, [r0, #0xf] + lsls r0, r1, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0 + bne _0808B6E8 + ldr r3, _0808B6E4 @ =gUnk_030010A0 + movs r0, #1 + strb r0, [r3, #8] + strb r2, [r3, #9] + mov r0, ip + adds r0, #0x7c + ldrb r0, [r0] + strb r0, [r3, #0xc] + mov r0, ip + adds r0, #0x7d + ldrb r0, [r0] + strb r0, [r3, #0xd] + mov r0, ip + adds r0, #0x84 + ldrh r1, [r0] + movs r0, #0x3f + ands r0, r1 + lsls r0, r0, #4 + adds r0, #8 + movs r2, #0 + strh r0, [r3, #0x10] + movs r0, #0xfc + lsls r0, r0, #4 + ands r0, r1 + lsrs r0, r0, #2 + adds r0, #8 + strh r0, [r3, #0x12] + strb r2, [r3, #0x14] + movs r0, #4 + strb r0, [r3, #0xe] + strb r2, [r3, #0xf] + mov r1, ip + ldrb r0, [r1, #0xa] + cmp r0, #2 + bne _0808B736 + strb r0, [r3, #9] + b _0808B736 + .align 2, 0 +_0808B6E4: .4byte gUnk_030010A0 +_0808B6E8: + movs r0, #0x60 + ands r0, r1 + cmp r0, #0x20 + beq _0808B702 + cmp r0, #0x20 + bgt _0808B6FA + cmp r0, #0 + beq _0808B706 + b _0808B724 +_0808B6FA: + cmp r0, #0x40 + bne _0808B724 + movs r0, #7 + b _0808B710 +_0808B702: + movs r0, #3 + b _0808B710 +_0808B706: + lsls r0, r1, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x10 + bls _0808B718 + movs r0, #1 +_0808B710: + ands r1, r0 + cmp r1, #0 + bne _0808B724 + b _0808B72A +_0808B718: + ldr r2, _0808B738 @ =gLinkEntity + ldrb r1, [r2, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2, #0x18] +_0808B724: + movs r0, #0 + cmp r0, #0 + beq _0808B736 +_0808B72A: + ldr r0, _0808B738 @ =gLinkEntity + ldrb r1, [r0, #0x14] + adds r1, #2 + movs r2, #6 + ands r1, r2 + strb r1, [r0, #0x14] +_0808B736: + pop {pc} + .align 2, 0 +_0808B738: .4byte gLinkEntity + + thumb_func_start sub_0808B73C +sub_0808B73C: @ 0x0808B73C + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0808B766 + movs r0, #1 + strb r0, [r4, #0xc] + ldr r0, [r4, #0x50] + ldrb r1, [r0, #0x1a] + lsls r1, r1, #0x1c + lsrs r1, r1, #0x1c + ldrb r2, [r4, #0x1a] + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x1a] + adds r0, r4, #0 + movs r1, #1 + bl UpdateSprite +_0808B766: + ldr r5, _0808B78C @ =gLinkEntity + movs r0, #0x2e + ldrsh r1, [r5, r0] + movs r0, #0x32 + ldrsh r2, [r5, r0] + adds r0, r4, #0 + movs r3, #0x28 + bl sub_0806FCB8 + cmp r0, #0 + beq _0808B790 + ldrb r0, [r4, #0x18] + movs r1, #4 + rsbs r1, r1, #0 + ands r1, r0 + movs r0, #1 + orrs r1, r0 + strb r1, [r4, #0x18] + b _0808B7C0 + .align 2, 0 +_0808B78C: .4byte gLinkEntity +_0808B790: + movs r0, #0x2e + ldrsh r1, [r5, r0] + movs r0, #0x32 + ldrsh r2, [r5, r0] + adds r0, r4, #0 + movs r3, #0x2e + bl sub_0806FCB8 + cmp r0, #0 + beq _0808B7B6 + ldrb r2, [r4, #0x18] + lsls r1, r2, #0x1e + lsrs r1, r1, #0x1e + movs r0, #1 + eors r1, r0 + subs r0, #5 + ands r0, r2 + orrs r0, r1 + b _0808B7BE +_0808B7B6: + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 +_0808B7BE: + strb r0, [r4, #0x18] +_0808B7C0: + adds r0, r4, #0 + bl sub_08004274 + pop {r4, r5, pc} + + thumb_func_start sub_0808B7C8 +sub_0808B7C8: @ 0x0808B7C8 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r2, _0808B824 @ =gLinkState + ldr r0, [r2, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0808B82C + adds r0, r2, #0 + adds r0, #0xa8 + ldrb r0, [r0] + cmp r0, #0x12 + beq _0808B82C + ldr r4, _0808B828 @ =gLinkEntity + adds r0, r4, #0 + adds r0, #0x45 + ldrb r0, [r0] + cmp r0, #0 + beq _0808B82C + bl sub_08079F8C + cmp r0, #0 + beq _0808B82C + adds r0, r5, #0 + adds r1, r4, #0 + movs r2, #5 + movs r3, #5 + bl sub_080041A0 + cmp r0, #0 + beq _0808B82C + movs r1, #0x36 + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _0808B82C + ldrb r0, [r5, #0xe] + cmp r0, #0 + bne _0808B81E + ldrb r0, [r4, #0xc] + cmp r0, #0x1b + bne _0808B81E + bl sub_080791D0 +_0808B81E: + movs r0, #1 + b _0808B82E + .align 2, 0 +_0808B824: .4byte gLinkState +_0808B828: .4byte gLinkEntity +_0808B82C: + movs r0, #0 +_0808B82E: + pop {r4, r5, pc} + + thumb_func_start sub_0808B830 +sub_0808B830: @ 0x0808B830 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0 + movs r0, #3 + strb r0, [r4, #0xc] + strb r1, [r4, #0xe] + ldrb r1, [r4, #0x18] + subs r0, #7 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + movs r0, #0x34 + movs r1, #0 + movs r2, #0 + bl CreateObject + adds r2, r0, #0 + cmp r2, #0 + beq _0808B86A + adds r1, r2, #0 + adds r1, #0x70 + movs r0, #1 + strb r0, [r1] + str r4, [r2, #0x50] + adds r0, r4, #0 + adds r1, r2, #0 + bl CopyPosition +_0808B86A: + pop {r4, pc} + + thumb_func_start sub_0808B86C +sub_0808B86C: @ 0x0808B86C + push {lr} + ldr r2, _0808B880 @ =gUnk_081213C4 + ldrb r1, [r0, #0xa] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0808B880: .4byte gUnk_081213C4 + + thumb_func_start sub_0808B884 +sub_0808B884: @ 0x0808B884 + push {lr} + ldr r2, _0808B898 @ =gUnk_081213D0 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0808B898: .4byte gUnk_081213D0 + + thumb_func_start sub_0808B89C +sub_0808B89C: @ 0x0808B89C + push {r4, lr} + adds r4, r0, #0 + movs r0, #2 + strb r0, [r4, #0xc] + strb r0, [r4, #0xb] + adds r1, r4, #0 + adds r1, #0x38 + strb r0, [r1] + adds r0, r4, #0 + bl UpdateSpriteOrderAndFlip + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r2] + movs r0, #0xb4 + strb r0, [r4, #0xe] + ldrb r1, [r4, #0xb] + adds r0, r4, #0 + bl UpdateSprite + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0808B8D4 +sub_0808B8D4: @ 0x0808B8D4 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0808B904 + movs r0, #0xb4 + strb r0, [r4, #0xe] + ldrb r0, [r4, #0xb] + adds r0, #1 + strb r0, [r4, #0xb] + ldrb r0, [r4, #0xb] + movs r1, #3 + bl __modsi3 + strb r0, [r4, #0xb] + ldrb r1, [r4, #0xb] + adds r0, r4, #0 + bl UpdateSprite +_0808B904: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0808B908 +sub_0808B908: @ 0x0808B908 + push {lr} + bl sub_08004274 + pop {pc} + + thumb_func_start sub_0808B910 +sub_0808B910: @ 0x0808B910 + push {lr} + ldr r2, _0808B92C @ =gUnk_081213DC + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + ldr r2, _0808B930 @ =gLinkState + ldrb r1, [r2, #0x1a] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r2, #0x1a] + pop {pc} + .align 2, 0 +_0808B92C: .4byte gUnk_081213DC +_0808B930: .4byte gLinkState + + thumb_func_start sub_0808B934 +sub_0808B934: @ 0x0808B934 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + movs r7, #0 + movs r0, #0xc0 + lsls r0, r0, #2 + strh r0, [r4, #0x24] + strb r7, [r4, #0x1e] + ldrh r1, [r4, #0x2e] + adds r0, r4, #0 + adds r0, #0x70 + strh r1, [r0] + ldrh r0, [r4, #0x32] + adds r1, r4, #0 + adds r1, #0x72 + strh r0, [r1] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #5 + orrs r0, r1 + strb r0, [r2] + movs r0, #0x2e + ldrsh r1, [r4, r0] + ldr r2, _0808B9B8 @ =gRoomControls + ldrh r0, [r2, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + movs r3, #0x3f + ands r1, r3 + movs r5, #0x32 + ldrsh r0, [r4, r5] + ldrh r2, [r2, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r1, r0 + adds r5, r4, #0 + adds r5, #0x76 + strh r1, [r5] + ldrh r0, [r5] + adds r6, r4, #0 + adds r6, #0x38 + ldrb r1, [r6] + bl sub_080001DA + adds r1, r4, #0 + adds r1, #0x74 + strh r0, [r1] + ldrb r0, [r4, #0xe] + cmp r0, #0 + bne _0808B9C0 + movs r0, #1 + strb r0, [r4, #0xc] + movs r0, #0x78 + strb r0, [r4, #0xf] + ldr r0, _0808B9BC @ =0x00004022 + ldrh r1, [r5] + ldrb r2, [r6] + bl UpdateCollisionLayer + b _0808B9D2 + .align 2, 0 +_0808B9B8: .4byte gRoomControls +_0808B9BC: .4byte 0x00004022 +_0808B9C0: + movs r0, #3 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #7 + ands r0, r1 + movs r1, #0x80 + orrs r0, r1 + strb r0, [r4, #0x18] + strb r7, [r4, #0xe] +_0808B9D2: + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_0808B9D4 +sub_0808B9D4: @ 0x0808B9D4 + push {r4, lr} + adds r4, r0, #0 + movs r0, #0 + bl sub_0807CC3C + cmp r0, #0 + beq _0808BA0A + movs r1, #0 + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #7 + strb r0, [r4, #0xe] + strb r1, [r4, #0x15] + adds r0, r4, #0 + adds r0, #0x74 + ldrh r0, [r0] + adds r1, r4, #0 + adds r1, #0x76 + ldrh r1, [r1] + adds r2, r4, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl UpdateCollisionLayer + ldr r0, _0808BA0C @ =0x0000010B + bl sub_08004488 +_0808BA0A: + pop {r4, pc} + .align 2, 0 +_0808BA0C: .4byte 0x0000010B + + thumb_func_start sub_0808BA10 +sub_0808BA10: @ 0x0808BA10 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F69C + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0808BA44 + movs r0, #5 + strb r0, [r4, #0xc] + movs r0, #8 + strb r0, [r4, #0xe] + ldrb r1, [r4, #0x18] + subs r0, #0xc + ands r0, r1 + strb r0, [r4, #0x18] + adds r0, r4, #0 + adds r0, #0x70 + ldrh r0, [r0] + strh r0, [r4, #0x2e] + adds r0, r4, #0 + adds r0, #0x72 + ldrh r0, [r0] + strh r0, [r4, #0x32] +_0808BA44: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0808BA48 +sub_0808BA48: @ 0x0808BA48 + push {r4, lr} + adds r4, r0, #0 + movs r1, #2 + bl sub_08083734 + cmp r0, #0 + beq _0808BA68 + movs r0, #4 + strb r0, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x76 + ldrh r2, [r0] + adds r0, r4, #0 + movs r1, #2 + bl sub_080836DC +_0808BA68: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0808BA6C +sub_0808BA6C: @ 0x0808BA6C + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F69C + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0808BAA4 + movs r0, #5 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #2 + bl sub_08083814 + ldr r0, _0808BAA8 @ =0x0000010B + bl sub_08004488 + ldr r0, _0808BAAC @ =0x00004022 + adds r1, r4, #0 + adds r1, #0x76 + ldrh r1, [r1] + adds r2, r4, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl UpdateCollisionLayer +_0808BAA4: + pop {r4, pc} + .align 2, 0 +_0808BAA8: .4byte 0x0000010B +_0808BAAC: .4byte 0x00004022 + + thumb_func_start nullsub_520 +nullsub_520: @ 0x0808BAB0 + bx lr + .align 2, 0 + + thumb_func_start sub_0808BAB4 +sub_0808BAB4: @ 0x0808BAB4 + push {lr} + ldr r2, _0808BAC8 @ =gUnk_081213F4 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0808BAC8: .4byte gUnk_081213F4 + + thumb_func_start sub_0808BACC +sub_0808BACC: @ 0x0808BACC + push {r4, lr} + adds r2, r0, #0 + movs r4, #1 + strb r4, [r2, #0xc] + movs r3, #0x10 + strb r3, [r2, #0xe] + ldrh r0, [r2, #0x36] + subs r0, #0x10 + strh r0, [r2, #0x36] + ldrb r0, [r2, #0xb] + cmp r0, #0 + bne _0808BAEA + movs r0, #2 + strb r0, [r2, #0x1e] + b _0808BAFC +_0808BAEA: + movs r0, #0 + strb r0, [r2, #0x1e] + ldr r0, [r2, #0x50] + ldrh r1, [r0, #0x2e] + adds r0, r3, #0 + ands r0, r1 + cmp r0, #0 + beq _0808BAFC + strb r4, [r2, #0x1e] +_0808BAFC: + adds r0, r2, #0 + bl sub_080A29BC + pop {r4, pc} + + thumb_func_start sub_0808BB04 +sub_0808BB04: @ 0x0808BB04 + push {lr} + ldrb r1, [r0, #0xe] + subs r1, #1 + strb r1, [r0, #0xe] + lsls r1, r1, #0x18 + cmp r1, #0 + bne _0808BB16 + bl sub_0805E780 +_0808BB16: + pop {pc} + + thumb_func_start sub_0808BB18 +sub_0808BB18: @ 0x0808BB18 + push {lr} + ldr r2, _0808BB2C @ =gUnk_08121440 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0808BB2C: .4byte gUnk_08121440 + + thumb_func_start sub_0808BB30 +sub_0808BB30: @ 0x0808BB30 + push {r4, lr} + adds r4, r0, #0 + movs r0, #0x17 + bl GetProgressFlag + adds r1, r0, #0 + cmp r1, #0 + beq _0808BB4C + movs r0, #0x4a + bl sub_0801D7EC + bl sub_0805E780 + b _0808BBD4 +_0808BB4C: + movs r3, #1 + strb r3, [r4, #0xc] + ldrb r0, [r4, #0x10] + movs r2, #0x80 + orrs r0, r2 + strb r0, [r4, #0x10] + movs r0, #0x78 + strb r0, [r4, #0xe] + strb r1, [r4, #0xf] + ldrb r0, [r4, #0x19] + movs r1, #0xc0 + orrs r0, r1 + strb r0, [r4, #0x19] + movs r0, #0x29 + adds r0, r0, r4 + mov ip, r0 + ldrb r1, [r0] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #4 + orrs r0, r1 + mov r1, ip + strb r0, [r1] + ldrb r1, [r4, #0x1b] + movs r0, #0x3f + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x1b] + movs r0, #0xc0 + lsls r0, r0, #2 + strh r0, [r4, #0x24] + adds r0, r4, #0 + adds r0, #0x3f + strb r3, [r0] + adds r1, r4, #0 + adds r1, #0x3c + movs r0, #7 + strb r0, [r1] + adds r1, #4 + movs r0, #0x48 + strb r0, [r1] + subs r1, #5 + movs r0, #4 + strb r0, [r1] + ldr r0, _0808BBD8 @ =gUnk_080FD150 + str r0, [r4, #0x48] + movs r0, #2 + strb r0, [r4, #0x1e] + ldr r0, _0808BBDC @ =gLinkEntity + adds r0, #0x38 + ldrb r1, [r0] + adds r0, r4, #0 + adds r0, #0x38 + strb r1, [r0] + adds r0, r4, #0 + bl sub_0808BDB0 + ldr r0, [r4, #0x50] + ldr r1, [r0, #0x20] + movs r2, #0xb8 + lsls r2, r2, #1 + adds r0, r2, #0 + subs r0, r0, r1 + strh r0, [r4, #0x32] + adds r0, r4, #0 + bl sub_0808BBE0 +_0808BBD4: + pop {r4, pc} + .align 2, 0 +_0808BBD8: .4byte gUnk_080FD150 +_0808BBDC: .4byte gLinkEntity + + thumb_func_start sub_0808BBE0 +sub_0808BBE0: @ 0x0808BBE0 + push {lr} + adds r3, r0, #0 + movs r1, #0x32 + ldrsh r0, [r3, r1] + ldr r1, _0808BC20 @ =gRoomControls + movs r2, #0xc + ldrsh r1, [r1, r2] + subs r1, r0, r1 + cmp r1, #0x9f + bhi _0808BC2C + adds r0, r1, #0 + cmp r1, #0 + bge _0808BBFC + adds r0, #0xf +_0808BBFC: + asrs r1, r0, #4 + ldr r0, _0808BC24 @ =gUnk_08121474 + adds r0, r1, r0 + ldrb r0, [r0] + adds r2, r3, #0 + adds r2, #0x63 + strb r0, [r2] + lsls r0, r1, #2 + ldr r1, _0808BC28 @ =gUnk_0812144C + adds r0, r0, r1 + ldrh r1, [r0] + ldrh r2, [r0, #2] + adds r0, r3, #0 + movs r3, #0 + bl sub_0805EC9C + b _0808BC38 + .align 2, 0 +_0808BC20: .4byte gRoomControls +_0808BC24: .4byte gUnk_08121474 +_0808BC28: .4byte gUnk_0812144C +_0808BC2C: + adds r2, r3, #0 + adds r2, #0x41 + ldrb r1, [r2] + movs r0, #0x7f + ands r0, r1 + strb r0, [r2] +_0808BC38: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0808BC3C +sub_0808BC3C: @ 0x0808BC3C + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldr r2, _0808BC98 @ =gRoomControls + ldrh r0, [r2, #6] + adds r0, #0x78 + movs r4, #0 + strh r0, [r5, #0x2e] + ldr r0, [r5, #0x50] + ldr r1, [r0, #0x20] + ldr r0, _0808BC9C @ =0xFFFFFE90 + adds r1, r1, r0 + ldrh r0, [r2, #8] + subs r0, r0, r1 + strh r0, [r5, #0x32] + adds r0, r5, #0 + bl sub_0808BBE0 + adds r0, r5, #0 + adds r0, #0x41 + ldrb r0, [r0] + cmp r0, #0x93 + bne _0808BCE4 + ldrb r0, [r5, #0xe] + subs r2, r0, #1 + strb r2, [r5, #0xe] + ldrb r1, [r5, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r5, #0x18] + lsls r0, r2, #0x18 + cmp r0, #0 + bne _0808BCA0 + movs r0, #0x17 + bl sub_0807CD04 + movs r0, #2 + strb r0, [r5, #0xc] + movs r0, #0x80 + strb r0, [r5, #0xf] + adds r0, r5, #0 + adds r0, #0x63 + strb r4, [r0] + b _0808BCFE + .align 2, 0 +_0808BC98: .4byte gRoomControls +_0808BC9C: .4byte 0xFFFFFE90 +_0808BCA0: + movs r6, #1 + ands r2, r6 + cmp r2, #0 + beq _0808BCCA + bl Random + movs r4, #3 + ands r0, r4 + ldr r1, _0808BCDC @ =0x0000FFFE + adds r0, r0, r1 + ldrh r1, [r5, #0x2e] + adds r0, r0, r1 + strh r0, [r5, #0x2e] + bl Random + ands r0, r4 + ldr r1, _0808BCE0 @ =0x0000FFFF + adds r0, r0, r1 + ldrh r1, [r5, #0x32] + adds r0, r0, r1 + strh r0, [r5, #0x32] +_0808BCCA: + ldrb r0, [r5, #0xf] + cmp r0, #1 + beq _0808BCFE + strb r6, [r5, #0xf] + movs r0, #0x4a + bl sub_0801D7EC + b _0808BCFE + .align 2, 0 +_0808BCDC: .4byte 0x0000FFFE +_0808BCE0: .4byte 0x0000FFFF +_0808BCE4: + movs r0, #0x78 + strb r0, [r5, #0xe] + ldrb r1, [r5, #0x18] + subs r0, #0x7c + ands r0, r1 + strb r0, [r5, #0x18] + ldrb r0, [r5, #0xf] + cmp r0, #0 + beq _0808BCFE + strb r4, [r5, #0xf] + movs r0, #0x49 + bl sub_0801D7EC +_0808BCFE: + pop {r4, r5, r6, pc} + + thumb_func_start sub_0808BD00 +sub_0808BD00: @ 0x0808BD00 + push {lr} + movs r0, #0x17 + bl sub_0807CD04 + movs r0, #0x72 + bl PlaySFX + bl sub_0805E780 + pop {pc} + + thumb_func_start sub_0808BD14 +sub_0808BD14: @ 0x0808BD14 + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xf] + cmp r0, #0 + beq _0808BD34 + subs r0, #8 + strb r0, [r5, #0xf] + ldrb r0, [r5, #0xf] + movs r2, #0x80 + lsls r2, r2, #2 + subs r2, r2, r0 + adds r0, r5, #0 + adds r1, r2, #0 + movs r3, #0 + bl sub_0805EC9C +_0808BD34: + adds r0, r5, #0 + adds r0, #0x41 + ldrb r0, [r0] + cmp r0, #0x93 + bne _0808BD74 + ldr r4, _0808BD70 @ =gLinkEntity + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_080045C4 + strb r0, [r5, #0x15] + adds r0, r5, #0 + bl sub_0806F69C + movs r0, #0x2e + ldrsh r1, [r4, r0] + movs r0, #0x32 + ldrsh r2, [r4, r0] + subs r2, #6 + adds r0, r5, #0 + movs r3, #0x1c + bl sub_0806FCB8 + cmp r0, #0 + beq _0808BDAE + adds r0, r5, #0 + bl sub_0808BD00 + b _0808BDAE + .align 2, 0 +_0808BD70: .4byte gLinkEntity +_0808BD74: + ldrb r1, [r5, #0x10] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0808BD8A + movs r0, #0x7f + ands r0, r1 + strb r0, [r5, #0x10] + movs r0, #0x1e + strb r0, [r5, #0xe] + b _0808BDAE +_0808BD8A: + ldrb r2, [r5, #0x18] + lsls r1, r2, #0x1e + lsrs r1, r1, #0x1e + movs r0, #1 + eors r1, r0 + subs r0, #5 + ands r0, r2 + orrs r0, r1 + strb r0, [r5, #0x18] + ldrb r0, [r5, #0xe] + subs r0, #1 + strb r0, [r5, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0808BDAE + adds r0, r5, #0 + bl sub_0808BD00 +_0808BDAE: + pop {r4, r5, pc} + + thumb_func_start sub_0808BDB0 +sub_0808BDB0: @ 0x0808BDB0 + push {r4, r5, r6, lr} + adds r3, r0, #0 + ldr r4, _0808BDD4 @ =gUnk_03003DA0 + ldr r2, [r4, #4] + movs r0, #0 + str r0, [r3, #0x50] + cmp r2, r4 + beq _0808BDE6 + ldr r6, _0808BDD8 @ =0x0000FFFF + ldr r5, _0808BDDC @ =0x00000C09 +_0808BDC4: + ldrh r1, [r2, #8] + adds r0, r6, #0 + ands r0, r1 + cmp r0, r5 + bne _0808BDE0 + str r2, [r3, #0x50] + b _0808BDE6 + .align 2, 0 +_0808BDD4: .4byte gUnk_03003DA0 +_0808BDD8: .4byte 0x0000FFFF +_0808BDDC: .4byte 0x00000C09 +_0808BDE0: + ldr r2, [r2, #4] + cmp r2, r4 + bne _0808BDC4 +_0808BDE6: + pop {r4, r5, r6, pc} + + thumb_func_start sub_0808BDE8 +sub_0808BDE8: @ 0x0808BDE8 + push {lr} + ldr r2, _0808BDFC @ =gUnk_08121480 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0808BDFC: .4byte gUnk_08121480 + + thumb_func_start sub_0808BE00 +sub_0808BE00: @ 0x0808BE00 + push {r4, r5, lr} + adds r5, r0, #0 + adds r0, #0x38 + ldrb r0, [r0] + bl sub_0808094C + adds r4, r0, #0 + adds r0, r5, #0 + bl sub_0806F798 + lsls r0, r0, #1 + adds r0, #4 + adds r4, r4, r0 + str r4, [r5, #0x78] + ldrh r1, [r4] + adds r0, r5, #0 + adds r0, #0x70 + strh r1, [r0] + movs r0, #1 + strb r0, [r5, #0xc] + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0808BE2C +sub_0808BE2C: @ 0x0808BE2C + push {r4, lr} + adds r2, r0, #0 + ldr r0, _0808BE78 @ =gUnk_02002A40 + ldr r1, _0808BE7C @ =0x0000024E + adds r4, r0, r1 + ldrb r0, [r4] + cmp r0, #0 + beq _0808BE74 + adds r0, r2, #0 + adds r0, #0x70 + ldr r1, [r2, #0x78] + ldrh r0, [r0] + ldrh r1, [r1] + cmp r0, r1 + beq _0808BE74 + adds r0, r2, #0 + movs r1, #0x58 + movs r2, #0 + bl sub_080A2A20 + adds r1, r0, #0 + cmp r1, #0 + beq _0808BE6C + ldr r0, _0808BE80 @ =gLinkEntity + ldrb r0, [r0, #0x14] + lsls r0, r0, #2 + strb r0, [r1, #0x15] + movs r0, #0x80 + strh r0, [r1, #0x24] + movs r0, #0x80 + lsls r0, r0, #0xa + str r0, [r1, #0x20] +_0808BE6C: + movs r0, #1 + strb r0, [r4] + bl sub_0805E780 +_0808BE74: + pop {r4, pc} + .align 2, 0 +_0808BE78: .4byte gUnk_02002A40 +_0808BE7C: .4byte 0x0000024E +_0808BE80: .4byte gLinkEntity + + thumb_func_start sub_0808BE84 +sub_0808BE84: @ 0x0808BE84 + push {lr} + ldr r2, _0808BE98 @ =gUnk_08121488 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0808BE98: .4byte gUnk_08121488 + + thumb_func_start sub_0808BE9C +sub_0808BE9C: @ 0x0808BE9C + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0x10] + movs r0, #0x80 + movs r2, #0 + orrs r0, r1 + strb r0, [r4, #0x10] + adds r0, r4, #0 + adds r0, #0x3f + movs r5, #1 + strb r5, [r0] + adds r1, r4, #0 + adds r1, #0x3c + movs r0, #0x47 + strb r0, [r1] + adds r1, #4 + movs r0, #0x44 + strb r0, [r1] + subs r1, #5 + movs r0, #0x80 + strb r0, [r1] + adds r0, r4, #0 + adds r0, #0x68 + strb r2, [r0] + ldrb r0, [r4, #0xa] + bl sub_0807CBD0 + cmp r0, #0 + beq _0808BEEE + adds r0, r4, #0 + adds r0, #0x7c + ldrb r0, [r0] + cmp r0, #0 + bne _0808BEF8 + movs r0, #3 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #1 + bl LoadAnimation + b _0808BF10 +_0808BEEE: + adds r0, r4, #0 + adds r0, #0x7c + ldrb r0, [r0] + cmp r0, #0 + bne _0808BF04 +_0808BEF8: + strb r5, [r4, #0xc] + adds r0, r4, #0 + movs r1, #0 + bl LoadAnimation + b _0808BF10 +_0808BF04: + movs r0, #3 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #1 + bl LoadAnimation +_0808BF10: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0808BF14 +sub_0808BF14: @ 0x0808BF14 + push {r4, lr} + adds r4, r0, #0 + bl sub_0808C128 + cmp r0, #0 + beq _0808BF4C + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + bl sub_0808C13C + adds r0, r4, #0 + adds r0, #0x7c + ldrb r0, [r0] + cmp r0, #0 + bne _0808BF3E + ldrb r0, [r4, #0xa] + bl sub_0807CCB4 + b _0808BF44 +_0808BF3E: + ldrb r0, [r4, #0xa] + bl sub_0807CD34 +_0808BF44: + adds r0, r4, #0 + movs r1, #0 + bl sub_0808C148 +_0808BF4C: + adds r0, r4, #0 + movs r1, #0 + bl sub_0808C01C + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0808BF58 +sub_0808BF58: @ 0x0808BF58 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x80 + lsls r1, r1, #6 + bl sub_08003FC4 + ldrb r0, [r4, #0xd] + cmp r0, #1 + beq _0808BF94 + cmp r0, #1 + bgt _0808BF74 + cmp r0, #0 + beq _0808BF7A + b _0808BFD6 +_0808BF74: + cmp r0, #2 + beq _0808BFB0 + b _0808BFD6 +_0808BF7A: + ldr r1, [r4, #0x20] + ldr r0, _0808BF90 @ =0x00017FFF + cmp r1, r0 + bgt _0808BFD6 + movs r0, #1 + strb r0, [r4, #0xd] + adds r0, r4, #0 + movs r1, #2 + bl LoadAnimation + b _0808BFD6 + .align 2, 0 +_0808BF90: .4byte 0x00017FFF +_0808BF94: + adds r0, r4, #0 + bl sub_080042B8 + movs r1, #0x36 + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _0808BFD6 + ldrb r0, [r4, #0xd] + adds r0, #1 + strb r0, [r4, #0xd] + movs r0, #0x80 + lsls r0, r0, #8 + str r0, [r4, #0x20] + b _0808BFD6 +_0808BFB0: + adds r0, r4, #0 + bl sub_080042B8 + movs r0, #0x36 + ldrsh r1, [r4, r0] + cmp r1, #0 + bne _0808BFD6 + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + strb r1, [r4, #0xf] + adds r0, r4, #0 + movs r1, #1 + bl LoadAnimation + adds r0, r4, #0 + movs r1, #1 + bl sub_0808C148 +_0808BFD6: + pop {r4, pc} + + thumb_func_start sub_0808BFD8 +sub_0808BFD8: @ 0x0808BFD8 + push {r4, lr} + adds r4, r0, #0 + bl sub_0808C128 + cmp r0, #0 + beq _0808C010 + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + bl sub_0808C13C + adds r0, r4, #0 + adds r0, #0x7c + ldrb r0, [r0] + cmp r0, #0 + bne _0808C002 + ldrb r0, [r4, #0xa] + bl sub_0807CD34 + b _0808C008 +_0808C002: + ldrb r0, [r4, #0xa] + bl sub_0807CCB4 +_0808C008: + adds r0, r4, #0 + movs r1, #0 + bl sub_0808C148 +_0808C010: + adds r0, r4, #0 + movs r1, #1 + bl sub_0808C01C + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0808C01C +sub_0808C01C: @ 0x0808C01C + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r5, r1, #0 + movs r1, #0x2e + ldrsh r0, [r4, r1] + subs r0, #0x18 + movs r2, #0x32 + ldrsh r1, [r4, r2] + subs r1, #0x18 + movs r2, #0x30 + movs r3, #0x30 + bl sub_0806FBFC + cmp r0, #0 + beq _0808C0A6 + ldr r2, _0808C06C @ =gUnk_02033A90 + ldrh r0, [r4, #0x2e] + strh r0, [r2, #0x12] + ldrh r0, [r4, #0x32] + strh r0, [r2, #0x14] + movs r6, #2 + strb r6, [r2, #0x16] + movs r0, #4 + cmp r5, #0 + beq _0808C050 + movs r0, #2 +_0808C050: + strb r0, [r2, #0x17] + cmp r5, #1 + bne _0808C0A6 + ldr r3, _0808C070 @ =gLinkState + ldr r0, [r3, #0x30] + movs r1, #0x20 + ands r0, r1 + cmp r0, #0 + beq _0808C074 + ldrb r0, [r3, #2] + cmp r0, #0 + bne _0808C074 + strb r6, [r2, #0x18] + b _0808C082 + .align 2, 0 +_0808C06C: .4byte gUnk_02033A90 +_0808C070: .4byte gLinkState +_0808C074: + bl sub_08057810 + cmp r0, #0 + beq _0808C082 + ldr r1, _0808C0A8 @ =gUnk_02033A90 + movs r0, #3 + strb r0, [r1, #0x18] +_0808C082: + movs r1, #0x2e + ldrsh r0, [r4, r1] + movs r2, #0x32 + ldrsh r1, [r4, r2] + adds r2, r4, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_080577AC + ldrb r0, [r4, #0xf] + cmp r0, #0 + bne _0808C0A6 + movs r0, #1 + strb r0, [r4, #0xf] + movs r0, #0xa9 + lsls r0, r0, #1 + bl PlaySFX +_0808C0A6: + pop {r4, r5, r6, pc} + .align 2, 0 +_0808C0A8: .4byte gUnk_02033A90 + + thumb_func_start sub_0808C0AC +sub_0808C0AC: @ 0x0808C0AC + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x80 + lsls r1, r1, #6 + bl sub_08003FC4 + ldrb r0, [r4, #0xd] + cmp r0, #1 + beq _0808C0E8 + cmp r0, #1 + bgt _0808C0C8 + cmp r0, #0 + beq _0808C0CE + b _0808C126 +_0808C0C8: + cmp r0, #2 + beq _0808C104 + b _0808C126 +_0808C0CE: + ldr r1, [r4, #0x20] + ldr r0, _0808C0E4 @ =0x00017FFF + cmp r1, r0 + bgt _0808C126 + movs r0, #1 + strb r0, [r4, #0xd] + adds r0, r4, #0 + movs r1, #3 + bl LoadAnimation + b _0808C126 + .align 2, 0 +_0808C0E4: .4byte 0x00017FFF +_0808C0E8: + adds r0, r4, #0 + bl sub_080042B8 + movs r1, #0x36 + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _0808C126 + ldrb r0, [r4, #0xd] + adds r0, #1 + strb r0, [r4, #0xd] + movs r0, #0x80 + lsls r0, r0, #8 + str r0, [r4, #0x20] + b _0808C126 +_0808C104: + adds r0, r4, #0 + bl sub_080042B8 + movs r1, #0x36 + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _0808C126 + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #0 + bl LoadAnimation + adds r0, r4, #0 + movs r1, #1 + bl sub_0808C148 +_0808C126: + pop {r4, pc} + + thumb_func_start sub_0808C128 +sub_0808C128: @ 0x0808C128 + push {lr} + movs r1, #0 + adds r0, #0x41 + ldrb r0, [r0] + cmp r0, #0x9d + bne _0808C136 + movs r1, #1 +_0808C136: + adds r0, r1, #0 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0808C13C +sub_0808C13C: @ 0x0808C13C + movs r1, #0 + strb r1, [r0, #0xd] + movs r1, #0xa0 + lsls r1, r1, #0xa + str r1, [r0, #0x20] + bx lr + + thumb_func_start sub_0808C148 +sub_0808C148: @ 0x0808C148 + push {r4, r5, r6, lr} + adds r6, r0, #0 + movs r2, #0x2e + ldrsh r0, [r6, r2] + ldr r4, _0808C1A4 @ =gRoomControls + ldrh r2, [r4, #6] + subs r0, r0, r2 + asrs r5, r0, #4 + movs r3, #0x3f + ands r5, r3 + movs r2, #0x32 + ldrsh r0, [r6, r2] + ldrh r2, [r4, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r5, r0 + cmp r1, #0 + bne _0808C1B8 + ldr r0, _0808C1A8 @ =0x00004092 + subs r1, r5, #1 + adds r4, r6, #0 + adds r4, #0x38 + ldrb r2, [r4] + bl UpdateCollisionLayer + ldr r0, _0808C1AC @ =0x00004093 + ldrb r2, [r4] + adds r1, r5, #0 + bl UpdateCollisionLayer + ldr r0, _0808C1B0 @ =0x00004094 + adds r1, r5, #0 + adds r1, #0x3f + ldrb r2, [r4] + bl UpdateCollisionLayer + ldr r0, _0808C1B4 @ =0x00004095 + adds r1, r5, #0 + adds r1, #0x40 + ldrb r2, [r4] + bl UpdateCollisionLayer + b _0808C1E0 + .align 2, 0 +_0808C1A4: .4byte gRoomControls +_0808C1A8: .4byte 0x00004092 +_0808C1AC: .4byte 0x00004093 +_0808C1B0: .4byte 0x00004094 +_0808C1B4: .4byte 0x00004095 +_0808C1B8: + subs r0, r5, #1 + adds r4, r6, #0 + adds r4, #0x38 + ldrb r1, [r4] + bl sub_0807BA8C + ldrb r1, [r4] + adds r0, r5, #0 + bl sub_0807BA8C + adds r0, r5, #0 + adds r0, #0x3f + ldrb r1, [r4] + bl sub_0807BA8C + adds r0, r5, #0 + adds r0, #0x40 + ldrb r1, [r4] + bl sub_0807BA8C +_0808C1E0: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_0808C1E4 +sub_0808C1E4: @ 0x0808C1E4 + push {lr} + ldr r2, _0808C1F8 @ =gUnk_081214D8 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0808C1F8: .4byte gUnk_081214D8 + + thumb_func_start sub_0808C1FC +sub_0808C1FC: @ 0x0808C1FC + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r2, r4, #0 + adds r2, #0x84 + ldrh r1, [r2] + ldr r0, _0808C2B0 @ =0x0000FFFF + cmp r1, r0 + beq _0808C21A + adds r0, r1, #0 + bl sub_0807CBE4 + cmp r0, #0 + beq _0808C21A + bl sub_0805E780 +_0808C21A: + adds r1, r4, #0 + adds r1, #0x86 + ldrh r0, [r1] + cmp r0, #0 + beq _0808C230 + bl sub_0807CBE4 + cmp r0, #0 + beq _0808C230 + bl sub_0805E780 +_0808C230: + ldrb r0, [r4, #0xa] + lsrs r0, r0, #2 + strb r0, [r4, #0xb] + movs r0, #0xc0 + lsls r0, r0, #2 + strh r0, [r4, #0x24] + ldrh r1, [r4, #0x2e] + adds r0, r4, #0 + adds r0, #0x70 + strh r1, [r0] + ldrh r0, [r4, #0x32] + adds r1, r4, #0 + adds r1, #0x72 + strh r0, [r1] + ldr r0, _0808C2B4 @ =gUnk_080FD180 + str r0, [r4, #0x48] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #5 + orrs r0, r1 + strb r0, [r2] + ldrb r1, [r4, #0xa] + movs r0, #3 + ands r0, r1 + adds r5, r4, #0 + adds r5, #0x76 + strh r0, [r5] + movs r0, #0x2e + ldrsh r1, [r4, r0] + ldr r2, _0808C2B8 @ =gRoomControls + ldrh r0, [r2, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + movs r3, #0x3f + ands r1, r3 + movs r6, #0x32 + ldrsh r0, [r4, r6] + ldrh r2, [r2, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r1, r0 + adds r0, r4, #0 + adds r0, #0x74 + strh r1, [r0] + ldrb r0, [r4, #0xa] + movs r1, #0x1f + ands r1, r0 + adds r0, r4, #0 + bl UpdateSprite + ldrb r0, [r4, #0xb] + cmp r0, #1 + beq _0808C2F8 + cmp r0, #1 + bgt _0808C2BC + cmp r0, #0 + beq _0808C2C2 + b _0808C31C + .align 2, 0 +_0808C2B0: .4byte 0x0000FFFF +_0808C2B4: .4byte gUnk_080FD180 +_0808C2B8: .4byte gRoomControls +_0808C2BC: + cmp r0, #2 + beq _0808C306 + b _0808C31C +_0808C2C2: + movs r2, #1 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #5 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x18] + adds r0, r4, #0 + bl sub_0808C500 + adds r0, r4, #0 + bl sub_08078800 + ldr r1, _0808C2F4 @ =gUnk_0811F740 + ldrh r0, [r5] + adds r0, r0, r1 + ldrb r2, [r0] + adds r0, r4, #0 + movs r1, #0 + movs r3, #0 + bl sub_08078850 + b _0808C31C + .align 2, 0 +_0808C2F4: .4byte gUnk_0811F740 +_0808C2F8: + movs r0, #4 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #8 + ands r0, r1 + strb r0, [r4, #0x18] + b _0808C31C +_0808C306: + movs r2, #1 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #5 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x18] + adds r0, r4, #0 + bl sub_0808C500 +_0808C31C: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_0808C320 +sub_0808C320: @ 0x0808C320 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x39 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + beq _0808C344 + movs r0, #2 + strb r0, [r4, #0xc] + adds r0, r4, #0 + bl sub_080788E0 + adds r0, r4, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CCC8 +_0808C344: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0808C348 +sub_0808C348: @ 0x0808C348 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0808C37C + ldr r0, _0808C374 @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #3 + ands r0, r1 + cmp r0, #0 + bne _0808C36A + ldr r0, _0808C378 @ =0x00000185 + bl PlaySFX +_0808C36A: + adds r0, r4, #0 + bl sub_08004274 + b _0808C382 + .align 2, 0 +_0808C374: .4byte gUnk_030010A0 +_0808C378: .4byte 0x00000185 +_0808C37C: + adds r0, r4, #0 + bl sub_0808C4BC +_0808C382: + pop {r4, pc} + + thumb_func_start sub_0808C384 +sub_0808C384: @ 0x0808C384 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F69C + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0808C3B4 + ldrb r0, [r4, #0xa] + cmp r0, #3 + bhi _0808C3B0 + movs r0, #0x40 + movs r1, #0 + movs r2, #1 + bl sub_08078AC0 + ldr r1, _0808C3B8 @ =gLinkEntity + ldrb r0, [r4, #0xa] + lsls r0, r0, #3 + strb r0, [r1, #0x15] +_0808C3B0: + bl sub_0805E780 +_0808C3B4: + pop {r4, pc} + .align 2, 0 +_0808C3B8: .4byte gLinkEntity + + thumb_func_start sub_0808C3BC +sub_0808C3BC: @ 0x0808C3BC + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r4, #0 + adds r5, #0x76 + ldrh r1, [r5] + bl sub_08083734 + cmp r0, #0 + beq _0808C40E + movs r0, #5 + strb r0, [r4, #0xc] + movs r0, #0xc + strb r0, [r4, #0xe] + ldrb r1, [r4, #0x18] + subs r0, #0x10 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + ldrb r0, [r5] + lsls r0, r0, #3 + movs r1, #0x10 + eors r0, r1 + strb r0, [r4, #0x15] + ldrh r1, [r5] + lsls r1, r1, #1 + ldr r0, _0808C410 @ =gUnk_081214F4 + adds r1, r1, r0 + movs r0, #0 + ldrsb r0, [r1, r0] + ldrh r2, [r4, #0x2e] + adds r0, r0, r2 + strh r0, [r4, #0x2e] + movs r0, #1 + ldrsb r0, [r1, r0] + ldrh r1, [r4, #0x32] + adds r0, r0, r1 + strh r0, [r4, #0x32] + adds r0, r4, #0 + bl sub_0808C500 +_0808C40E: + pop {r4, r5, pc} + .align 2, 0 +_0808C410: .4byte gUnk_081214F4 + + thumb_func_start sub_0808C414 +sub_0808C414: @ 0x0808C414 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_0806F69C + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _0808C49A + movs r0, #6 + strb r0, [r4, #0xc] + strh r1, [r4, #0x36] + adds r0, r4, #0 + adds r0, #0x70 + ldrh r0, [r0] + strh r0, [r4, #0x2e] + adds r0, r4, #0 + adds r0, #0x72 + ldrh r0, [r0] + strh r0, [r4, #0x32] + adds r0, r4, #0 + adds r0, #0x76 + ldrh r0, [r0] + lsls r0, r0, #2 + ldr r1, _0808C49C @ =gUnk_081214FC + adds r5, r0, r1 + adds r0, r4, #0 + movs r1, #0x11 + movs r2, #0x40 + bl CreateFx + adds r1, r0, #0 + cmp r1, #0 + beq _0808C470 + movs r0, #0 + ldrsb r0, [r5, r0] + ldrh r2, [r1, #0x2e] + adds r0, r0, r2 + strh r0, [r1, #0x2e] + movs r0, #1 + ldrsb r0, [r5, r0] + ldrh r2, [r1, #0x32] + adds r0, r0, r2 + strh r0, [r1, #0x32] +_0808C470: + adds r0, r4, #0 + movs r1, #0x11 + movs r2, #0x40 + bl CreateFx + adds r1, r0, #0 + cmp r1, #0 + beq _0808C494 + movs r0, #2 + ldrsb r0, [r5, r0] + ldrh r2, [r1, #0x2e] + adds r0, r0, r2 + strh r0, [r1, #0x2e] + movs r0, #3 + ldrsb r0, [r5, r0] + ldrh r2, [r1, #0x32] + adds r0, r0, r2 + strh r0, [r1, #0x32] +_0808C494: + ldr r0, _0808C4A0 @ =0x0000010B + bl sub_08004488 +_0808C49A: + pop {r4, r5, pc} + .align 2, 0 +_0808C49C: .4byte gUnk_081214FC +_0808C4A0: .4byte 0x0000010B + + thumb_func_start sub_0808C4A4 +sub_0808C4A4: @ 0x0808C4A4 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CBE4 + cmp r0, #0 + beq _0808C4B8 + movs r0, #2 + strb r0, [r4, #0xc] +_0808C4B8: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0808C4BC +sub_0808C4BC: @ 0x0808C4BC + push {lr} + movs r1, #3 + strb r1, [r0, #0xc] + movs r1, #0xc + strb r1, [r0, #0xe] + adds r2, r0, #0 + adds r2, #0x76 + ldrh r1, [r2] + lsls r1, r1, #3 + strb r1, [r0, #0x15] + ldrh r2, [r2] + lsls r2, r2, #1 + ldr r1, _0808C4F8 @ =gUnk_0812150C + adds r2, r2, r1 + movs r1, #0 + ldrsb r1, [r2, r1] + ldrh r3, [r0, #0x2e] + adds r1, r1, r3 + strh r1, [r0, #0x2e] + movs r1, #1 + ldrsb r1, [r2, r1] + ldrh r2, [r0, #0x32] + adds r1, r1, r2 + strh r1, [r0, #0x32] + bl sub_0808C5D0 + ldr r0, _0808C4FC @ =0x0000010B + bl PlaySFX + pop {pc} + .align 2, 0 +_0808C4F8: .4byte gUnk_0812150C +_0808C4FC: .4byte 0x0000010B + + thumb_func_start sub_0808C500 +sub_0808C500: @ 0x0808C500 + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r0, #0x76 + ldrh r0, [r0] + cmp r0, #0 + beq _0808C510 + cmp r0, #2 + bne _0808C570 +_0808C510: + adds r6, r4, #0 + adds r6, #0x74 + ldrh r0, [r6] + subs r0, #1 + adds r5, r4, #0 + adds r5, #0x38 + ldrb r1, [r5] + bl sub_080001DA + adds r1, r4, #0 + adds r1, #0x78 + strh r0, [r1] + ldrh r0, [r6] + ldrb r1, [r5] + bl sub_080001DA + adds r1, r4, #0 + adds r1, #0x7a + strh r0, [r1] + ldrh r0, [r6] + adds r0, #1 + ldrb r1, [r5] + bl sub_080001DA + adds r1, r4, #0 + adds r1, #0x7c + strh r0, [r1] + ldr r4, _0808C56C @ =0x00004022 + ldrh r1, [r6] + subs r1, #1 + ldrb r2, [r5] + adds r0, r4, #0 + bl UpdateCollisionLayer + ldrh r1, [r6] + ldrb r2, [r5] + adds r0, r4, #0 + bl UpdateCollisionLayer + ldrh r1, [r6] + adds r1, #1 + ldrb r2, [r5] + adds r0, r4, #0 + bl UpdateCollisionLayer + b _0808C5CA + .align 2, 0 +_0808C56C: .4byte 0x00004022 +_0808C570: + adds r6, r4, #0 + adds r6, #0x74 + ldrh r0, [r6] + subs r0, #0x40 + adds r5, r4, #0 + adds r5, #0x38 + ldrb r1, [r5] + bl sub_080001DA + adds r1, r4, #0 + adds r1, #0x78 + strh r0, [r1] + ldrh r0, [r6] + ldrb r1, [r5] + bl sub_080001DA + adds r1, r4, #0 + adds r1, #0x7a + strh r0, [r1] + ldrh r0, [r6] + adds r0, #0x40 + ldrb r1, [r5] + bl sub_080001DA + adds r1, r4, #0 + adds r1, #0x7c + strh r0, [r1] + ldr r4, _0808C5CC @ =0x00004022 + ldrh r1, [r6] + subs r1, #0x40 + ldrb r2, [r5] + adds r0, r4, #0 + bl UpdateCollisionLayer + ldrh r1, [r6] + ldrb r2, [r5] + adds r0, r4, #0 + bl UpdateCollisionLayer + ldrh r1, [r6] + adds r1, #0x40 + ldrb r2, [r5] + adds r0, r4, #0 + bl UpdateCollisionLayer +_0808C5CA: + pop {r4, r5, r6, pc} + .align 2, 0 +_0808C5CC: .4byte 0x00004022 + + thumb_func_start sub_0808C5D0 +sub_0808C5D0: @ 0x0808C5D0 + push {r4, r5, r6, lr} + adds r6, r0, #0 + adds r0, #0x76 + ldrh r0, [r0] + cmp r0, #0 + beq _0808C5E0 + cmp r0, #2 + bne _0808C618 +_0808C5E0: + adds r0, r6, #0 + adds r0, #0x78 + ldrh r0, [r0] + adds r5, r6, #0 + adds r5, #0x74 + ldrh r1, [r5] + subs r1, #1 + adds r4, r6, #0 + adds r4, #0x38 + ldrb r2, [r4] + bl UpdateCollisionLayer + adds r0, r6, #0 + adds r0, #0x7a + ldrh r0, [r0] + ldrh r1, [r5] + ldrb r2, [r4] + bl UpdateCollisionLayer + adds r0, r6, #0 + adds r0, #0x7c + ldrh r0, [r0] + ldrh r1, [r5] + adds r1, #1 + ldrb r2, [r4] + bl UpdateCollisionLayer + b _0808C64E +_0808C618: + adds r0, r6, #0 + adds r0, #0x78 + ldrh r0, [r0] + adds r5, r6, #0 + adds r5, #0x74 + ldrh r1, [r5] + subs r1, #0x40 + adds r4, r6, #0 + adds r4, #0x38 + ldrb r2, [r4] + bl UpdateCollisionLayer + adds r0, r6, #0 + adds r0, #0x7a + ldrh r0, [r0] + ldrh r1, [r5] + ldrb r2, [r4] + bl UpdateCollisionLayer + adds r0, r6, #0 + adds r0, #0x7c + ldrh r0, [r0] + ldrh r1, [r5] + adds r1, #0x40 + ldrb r2, [r4] + bl UpdateCollisionLayer +_0808C64E: + pop {r4, r5, r6, pc} + + thumb_func_start sub_0808C650 +sub_0808C650: @ 0x0808C650 + push {r4, lr} + adds r4, r0, #0 + adds r2, r1, #0 + movs r0, #0x3a + movs r1, #0 + bl CreateObject + cmp r0, #0 + beq _0808C670 + str r4, [r0, #0x50] + ldr r1, _0808C66C @ =gUnk_02036BB8 + movs r0, #0 + b _0808C674 + .align 2, 0 +_0808C66C: .4byte gUnk_02036BB8 +_0808C670: + ldr r1, _0808C678 @ =gUnk_02036BB8 + movs r0, #1 +_0808C674: + str r0, [r1] + pop {r4, pc} + .align 2, 0 +_0808C678: .4byte gUnk_02036BB8 + + thumb_func_start sub_0808C67C +sub_0808C67C: @ 0x0808C67C + ldr r0, _0808C684 @ =gUnk_02036BB8 + ldr r0, [r0] + bx lr + .align 2, 0 +_0808C684: .4byte gUnk_02036BB8 + + thumb_func_start sub_0808C688 +sub_0808C688: @ 0x0808C688 + push {lr} + bl sub_0801E104 + ldr r1, _0808C698 @ =gUnk_02036BB8 + movs r0, #1 + str r0, [r1] + pop {pc} + .align 2, 0 +_0808C698: .4byte gUnk_02036BB8 + + thumb_func_start sub_0808C69C +sub_0808C69C: @ 0x0808C69C + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xa] + cmp r0, #0 + bne _0808C6BC + ldr r0, _0808C6B8 @ =gUnk_08121638 + ldrb r1, [r2, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r2, #0 + bl _call_via_r1 + b _0808C6CC + .align 2, 0 +_0808C6B8: .4byte gUnk_08121638 +_0808C6BC: + ldr r0, _0808C6D0 @ =gUnk_08121640 + ldrb r1, [r2, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r2, #0 + bl _call_via_r1 +_0808C6CC: + pop {pc} + .align 2, 0 +_0808C6D0: .4byte gUnk_08121640 + + thumb_func_start sub_0808C6D4 +sub_0808C6D4: @ 0x0808C6D4 + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r1, [r5, #0xb] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _0808C744 @ =gUnk_081215E8 + adds r4, r0, r1 + ldrh r0, [r4, #4] + adds r1, r5, #0 + adds r1, #0x86 + strh r0, [r1] + ldrh r0, [r4, #6] + subs r1, #1 + strb r0, [r1] + ldrh r1, [r4, #8] + adds r0, r5, #0 + adds r0, #0x84 + strb r1, [r0] + ldrh r0, [r4, #0xa] + adds r1, r5, #0 + adds r1, #0x83 + strb r0, [r1] + ldrh r0, [r4, #0xc] + subs r1, #1 + strb r0, [r1] + ldrh r0, [r4, #0xe] + subs r1, #1 + strb r0, [r1] + ldr r0, _0808C748 @ =gLCDControls + adds r0, #0x60 + ldrh r1, [r0] + movs r0, #0xff + lsls r0, r0, #8 + ands r0, r1 + ldrh r1, [r4, #0x10] + orrs r0, r1 + ldrh r1, [r4, #0x12] + bl sub_0801E1B8 + movs r0, #1 + strb r0, [r5, #0xc] + adds r0, r5, #0 + bl sub_0808C74C + ldrh r2, [r4] + movs r0, #0x3a + movs r1, #1 + bl CreateObject + cmp r0, #0 + beq _0808C742 + ldrh r1, [r4, #2] + adds r0, #0x6a + strh r1, [r0] +_0808C742: + pop {r4, r5, pc} + .align 2, 0 +_0808C744: .4byte gUnk_081215E8 +_0808C748: .4byte gLCDControls + + thumb_func_start sub_0808C74C +sub_0808C74C: @ 0x0808C74C + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldr r3, [r4, #0x50] + cmp r3, #0 + beq _0808C76C + ldr r2, _0808C768 @ =gRoomControls + ldrh r0, [r3, #0x2e] + ldrh r1, [r2, #0xa] + subs r0, r0, r1 + strh r0, [r4, #0x2e] + ldrh r0, [r3, #0x32] + ldrh r1, [r2, #0xc] + subs r0, r0, r1 + b _0808C772 + .align 2, 0 +_0808C768: .4byte gRoomControls +_0808C76C: + movs r0, #0x78 + strh r0, [r4, #0x2e] + movs r0, #0x50 +_0808C772: + strh r0, [r4, #0x32] + adds r5, r4, #0 + adds r5, #0x86 + movs r1, #0 + ldrsh r0, [r5, r1] + cmp r0, #0 + bge _0808C79C + movs r2, #0x2e + ldrsh r0, [r4, r2] + movs r3, #0x32 + ldrsh r1, [r4, r3] + movs r2, #0 + movs r3, #0 + bl sub_0801E49C + ldr r1, _0808C83C @ =gUnk_02036BB8 + movs r0, #1 + str r0, [r1] + adds r0, r4, #0 + bl sub_0808C840 +_0808C79C: + movs r6, #0 + ldrsh r0, [r5, r6] + movs r2, #0xfa + lsls r2, r2, #1 + cmp r0, r2 + ble _0808C7C2 + movs r1, #0x2e + ldrsh r0, [r4, r1] + movs r3, #0x32 + ldrsh r1, [r4, r3] + movs r3, #0 + bl sub_0801E49C + ldr r1, _0808C83C @ =gUnk_02036BB8 + movs r0, #1 + str r0, [r1] + adds r0, r4, #0 + bl sub_0808C840 +_0808C7C2: + adds r1, r4, #0 + adds r1, #0x85 + movs r0, #0 + ldrsb r0, [r1, r0] + ldrh r6, [r5] + adds r0, r0, r6 + strh r0, [r5] + adds r0, r4, #0 + adds r0, #0x84 + ldrb r0, [r0] + ldrb r2, [r1] + adds r0, r0, r2 + strb r0, [r1] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0x10 + ble _0808C7E8 + movs r0, #0x10 + strb r0, [r1] +_0808C7E8: + movs r0, #0 + ldrsb r0, [r1, r0] + movs r2, #0x10 + rsbs r2, r2, #0 + cmp r0, r2 + bge _0808C7F6 + strb r2, [r1] +_0808C7F6: + adds r3, r4, #0 + adds r3, #0x83 + adds r1, r4, #0 + adds r1, #0x82 + ldrb r0, [r1] + ldrb r6, [r3] + adds r0, r0, r6 + strb r0, [r3] + adds r0, r4, #0 + adds r0, #0x81 + ldrb r0, [r0] + ldrb r6, [r1] + adds r0, r0, r6 + strb r0, [r1] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0x10 + ble _0808C81E + movs r0, #0x10 + strb r0, [r1] +_0808C81E: + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, r2 + bge _0808C828 + strb r2, [r1] +_0808C828: + movs r1, #0x2e + ldrsh r0, [r4, r1] + movs r2, #0x32 + ldrsh r1, [r4, r2] + movs r4, #0 + ldrsh r2, [r5, r4] + ldrb r3, [r3] + bl sub_0801E49C + pop {r4, r5, r6, pc} + .align 2, 0 +_0808C83C: .4byte gUnk_02036BB8 + + thumb_func_start sub_0808C840 +sub_0808C840: @ 0x0808C840 + push {lr} + ldr r0, _0808C854 @ =gLCDControls + adds r0, #0x66 + movs r1, #0 + strh r1, [r0] + bl sub_0801E104 + bl sub_0805E780 + pop {pc} + .align 2, 0 +_0808C854: .4byte gLCDControls + + thumb_func_start sub_0808C858 +sub_0808C858: @ 0x0808C858 + push {lr} + adds r2, r0, #0 + ldrb r1, [r2, #0xb] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _0808C878 + ldr r1, _0808C870 @ =gLCDControls + adds r3, r1, #0 + adds r3, #0x66 + ldr r0, _0808C874 @ =0x00003FBF + b _0808C880 + .align 2, 0 +_0808C870: .4byte gLCDControls +_0808C874: .4byte 0x00003FBF +_0808C878: + ldr r1, _0808C898 @ =gLCDControls + adds r3, r1, #0 + adds r3, #0x66 + ldr r0, _0808C89C @ =0x00003FFF +_0808C880: + strh r0, [r3] + adds r3, r1, #0 + ldrb r1, [r2, #0xb] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0808C8A0 + adds r1, r3, #0 + adds r1, #0x6a + movs r0, #0 + b _0808C8A6 + .align 2, 0 +_0808C898: .4byte gLCDControls +_0808C89C: .4byte 0x00003FFF +_0808C8A0: + adds r1, r3, #0 + adds r1, #0x6a + movs r0, #0x10 +_0808C8A6: + strh r0, [r1] + movs r0, #1 + strb r0, [r2, #0xc] + adds r1, r2, #0 + adds r1, #0x68 + adds r0, #0xff + strh r0, [r1] + pop {pc} + .align 2, 0 + + thumb_func_start sub_0808C8B8 +sub_0808C8B8: @ 0x0808C8B8 + push {lr} + adds r3, r0, #0 + adds r2, r3, #0 + adds r2, #0x68 + adds r1, r3, #0 + adds r1, #0x6a + ldrh r0, [r2] + ldrh r1, [r1] + subs r0, r0, r1 + strh r0, [r2] + lsls r0, r0, #0x10 + cmp r0, #0 + bge _0808C8D6 + movs r0, #0 + strh r0, [r2] +_0808C8D6: + ldrb r1, [r3, #0xb] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0808C8F8 + ldr r0, _0808C8F4 @ =gLCDControls + ldrh r1, [r2] + lsls r1, r1, #0x10 + asrs r1, r1, #0x14 + movs r2, #0x10 + subs r2, r2, r1 + adds r0, #0x6a + strh r2, [r0] + b _0808C904 + .align 2, 0 +_0808C8F4: .4byte gLCDControls +_0808C8F8: + ldr r1, _0808C918 @ =gLCDControls + ldrh r0, [r2] + lsls r0, r0, #0x10 + asrs r0, r0, #0x14 + adds r1, #0x6a + strh r0, [r1] +_0808C904: + adds r0, r3, #0 + adds r0, #0x68 + movs r1, #0 + ldrsh r0, [r0, r1] + cmp r0, #0 + bne _0808C914 + bl sub_0805E780 +_0808C914: + pop {pc} + .align 2, 0 +_0808C918: .4byte gLCDControls + + thumb_func_start sub_0808C91C +sub_0808C91C: @ 0x0808C91C + push {lr} + ldr r2, _0808C930 @ =gUnk_08121668 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0808C930: .4byte gUnk_08121668 + + thumb_func_start sub_0808C934 +sub_0808C934: @ 0x0808C934 + push {lr} + ldr r2, _0808C948 @ =gUnk_08121670 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0808C948: .4byte gUnk_08121670 + + thumb_func_start sub_0808C94C +sub_0808C94C: @ 0x0808C94C + push {lr} + ldr r2, _0808C960 @ =gUnk_08121678 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0808C960: .4byte gUnk_08121678 + + thumb_func_start sub_0808C964 +sub_0808C964: @ 0x0808C964 + push {r4, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0xa] + strb r1, [r4, #0x1e] + ldrb r0, [r4, #9] + cmp r0, #0x76 + bne _0808C982 + ldr r0, _0808CA08 @ =gUnk_02032EC0 + adds r0, #0x20 + ldrb r0, [r0] + cmp r0, #2 + beq _0808C982 + adds r0, r1, #0 + subs r0, #9 + strb r0, [r4, #0xa] +_0808C982: + ldrb r0, [r4, #0xa] + cmp r0, #4 + bls _0808C996 + ldr r0, _0808CA0C @ =gUnk_02033A90 + ldrb r0, [r0, #0x16] + ldrb r1, [r4, #0xb] + cmp r0, r1 + beq _0808C996 + bl sub_0805E780 +_0808C996: + movs r2, #1 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #5 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x18] + ldrb r2, [r4, #0x1b] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r2 + movs r2, #0x80 + orrs r0, r2 + strb r0, [r4, #0x1b] + ldrb r0, [r4, #0x19] + ands r1, r0 + orrs r1, r2 + strb r1, [r4, #0x19] + ldrb r0, [r4, #0xb] + adds r3, r4, #0 + adds r3, #0x29 + movs r1, #7 + ands r1, r0 + ldrb r2, [r3] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + ldrb r0, [r4, #9] + cmp r0, #0x75 + beq _0808CA04 + ldrb r2, [r4, #0xa] + subs r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #2 + bhi _0808CA04 + ldrb r0, [r4, #0x19] + movs r1, #3 + orrs r0, r1 + strb r0, [r4, #0x19] + lsls r0, r2, #0x18 + lsrs r0, r0, #0x18 + movs r2, #0x80 + lsls r2, r2, #1 + cmp r0, #1 + bne _0808C9FA + movs r2, #0xe0 +_0808C9FA: + adds r0, r4, #0 + adds r1, r2, #0 + movs r3, #0 + bl sub_0805EC9C +_0808CA04: + pop {r4, pc} + .align 2, 0 +_0808CA08: .4byte gUnk_02032EC0 +_0808CA0C: .4byte gUnk_02033A90 + + thumb_func_start sub_0808CA10 +sub_0808CA10: @ 0x0808CA10 + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + cmp r0, #2 + beq _0808CA40 + cmp r0, #2 + bgt _0808CA24 + cmp r0, #1 + beq _0808CA2A + b _0808CA78 +_0808CA24: + cmp r0, #3 + beq _0808CA60 + b _0808CA78 +_0808CA2A: + ldr r2, _0808CA3C @ =gUnk_02018EB0 + ldrb r0, [r2, #0x18] + cmp r0, #0 + beq _0808CA78 + movs r0, #0 + movs r1, #0x20 + strb r1, [r4, #0xe] + strb r0, [r2, #0x18] + b _0808CA50 + .align 2, 0 +_0808CA3C: .4byte gUnk_02018EB0 +_0808CA40: + ldr r2, _0808CA5C @ =gUnk_02018EB0 + ldrb r0, [r2, #0x19] + cmp r0, #0 + beq _0808CA78 + movs r0, #0 + movs r1, #0x20 + strb r1, [r4, #0xe] + strb r0, [r2, #0x19] +_0808CA50: + movs r0, #0x97 + lsls r0, r0, #1 + bl PlaySFX + b _0808CA78 + .align 2, 0 +_0808CA5C: .4byte gUnk_02018EB0 +_0808CA60: + ldr r2, _0808CABC @ =gUnk_02018EB0 + ldrb r0, [r2, #0x1a] + cmp r0, #0 + beq _0808CA78 + movs r0, #0 + movs r1, #0x20 + strb r1, [r4, #0xe] + strb r0, [r2, #0x1a] + movs r0, #0x97 + lsls r0, r0, #1 + bl PlaySFX +_0808CA78: + ldrb r0, [r4, #9] + cmp r0, #0x75 + beq _0808CAE0 + ldrb r1, [r4, #0xa] + subs r0, r1, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r5, r1, #0 + cmp r0, #2 + bhi _0808CAE0 + ldrb r1, [r4, #0xe] + cmp r1, #0 + beq _0808CAE0 + subs r1, #1 + strb r1, [r4, #0xe] + ldrb r0, [r4, #0xf] + adds r2, r0, #1 + strb r2, [r4, #0xf] + lsls r1, r1, #0x18 + cmp r1, #0 + beq _0808CAC4 + ldr r0, _0808CAC0 @ =gUnk_08121648 + movs r1, #0xe + ands r1, r2 + lsls r2, r1, #1 + adds r2, r2, r0 + movs r6, #0 + ldrsh r3, [r2, r6] + adds r1, #1 + lsls r1, r1, #1 + adds r1, r1, r0 + movs r0, #0 + ldrsh r2, [r1, r0] + b _0808CACA + .align 2, 0 +_0808CABC: .4byte gUnk_02018EB0 +_0808CAC0: .4byte gUnk_08121648 +_0808CAC4: + movs r2, #0x80 + lsls r2, r2, #1 + adds r3, r2, #0 +_0808CACA: + lsls r0, r5, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _0808CAD6 + subs r3, #0x20 + subs r2, #0x20 +_0808CAD6: + adds r0, r4, #0 + adds r1, r3, #0 + movs r3, #0 + bl sub_0805EC9C +_0808CAE0: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_0808CAE4 +sub_0808CAE4: @ 0x0808CAE4 + push {lr} + ldr r2, _0808CAF8 @ =gUnk_08121680 + ldrb r1, [r0, #0xa] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0808CAF8: .4byte gUnk_08121680 + + thumb_func_start sub_0808CAFC +sub_0808CAFC: @ 0x0808CAFC + push {r4, lr} + adds r4, r0, #0 + ldr r1, _0808CB18 @ =gUnk_08121688 + ldrb r0, [r4, #0xc] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + adds r0, r4, #0 + bl sub_0808CB9C + pop {r4, pc} + .align 2, 0 +_0808CB18: .4byte gUnk_08121688 + + thumb_func_start sub_0808CB1C +sub_0808CB1C: @ 0x0808CB1C + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0808CB70 + movs r2, #1 + strb r2, [r4, #0xc] + ldrb r0, [r4, #0x18] + movs r1, #3 + orrs r0, r1 + strb r0, [r4, #0x18] + movs r0, #0xa7 + strh r0, [r4, #0x12] + movs r0, #0xd + strb r0, [r4, #0x1e] + adds r0, r4, #0 + adds r0, #0x60 + strh r2, [r0] + ldrb r1, [r4, #0x1a] + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #5 + orrs r0, r1 + strb r0, [r4, #0x1a] + ldrb r2, [r4, #0x19] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r2 + strb r0, [r4, #0x19] + adds r3, r4, #0 + adds r3, #0x29 + ldrb r2, [r3] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r3] + ldrb r0, [r4, #0x1b] + ands r1, r0 + movs r0, #0x80 + orrs r1, r0 + strb r1, [r4, #0x1b] +_0808CB70: + ldr r0, [r4, #0x50] + ldr r1, [r0, #0x2c] + str r1, [r4, #0x2c] + ldr r1, [r0, #0x30] + str r1, [r4, #0x30] + movs r5, #0 + str r5, [r4, #0x34] + adds r1, r4, #0 + bl sub_0806FAD8 + ldrb r0, [r4, #0xd] + cmp r0, #0 + beq _0808CB98 + adds r0, r4, #0 + adds r0, #0x60 + movs r1, #0 + strh r5, [r0] + strb r1, [r4, #0xd] + movs r0, #4 + strb r0, [r4, #0x1e] +_0808CB98: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0808CB9C +sub_0808CB9C: @ 0x0808CB9C + push {r4, r5, lr} + adds r3, r0, #0 + adds r0, #0x68 + ldrh r1, [r0] + ldrb r4, [r0] + lsrs r5, r1, #8 + movs r2, #0 + ldrb r0, [r3, #0x14] + cmp r0, #4 + bls _0808CBB2 + movs r2, #1 +_0808CBB2: + lsls r2, r2, #6 + ldrb r1, [r3, #0x18] + movs r0, #0x41 + rsbs r0, r0, #0 + ands r0, r1 + orrs r0, r2 + strb r0, [r3, #0x18] + cmp r4, #0xb7 + bhi _0808CBCA + ldrb r0, [r3, #0x14] + lsrs r0, r0, #1 + adds r4, r4, r0 +_0808CBCA: + ldrh r0, [r3, #0x12] + cmp r5, r0 + bne _0808CBDA + adds r0, r3, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r4, r0 + beq _0808CBE4 +_0808CBDA: + strh r5, [r3, #0x12] + adds r0, r3, #0 + adds r1, r4, #0 + bl LoadAnimation +_0808CBE4: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0808CBE8 +sub_0808CBE8: @ 0x0808CBE8 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + movs r3, #4 + strb r3, [r4, #0x14] + ldrb r2, [r4, #0x19] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r2 + strb r0, [r4, #0x19] + movs r0, #0x29 + adds r0, r0, r4 + mov ip, r0 + ldrb r2, [r0] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r2 + mov r2, ip + strb r0, [r2] + ldrb r0, [r4, #0x1b] + ands r1, r0 + movs r0, #0x80 + orrs r1, r0 + strb r1, [r4, #0x1b] + adds r1, r4, #0 + adds r1, #0x68 + movs r0, #0x8a + lsls r0, r0, #1 + strh r0, [r1] + subs r1, #0x10 + movs r0, #0xff + strb r0, [r1] + ldr r0, _0808CC80 @ =0x0000FF50 + strh r0, [r4, #0x36] + adds r0, r4, #0 + adds r0, #0x6a + strh r3, [r0] + ldrb r0, [r4, #0x19] + movs r1, #3 + orrs r0, r1 + strb r0, [r4, #0x19] + adds r0, r4, #0 + movs r1, #4 + movs r2, #4 + movs r3, #0 + bl sub_0805EC9C + ldr r0, _0808CC84 @ =gUnk_02018EB0 + str r4, [r0, #0x14] + movs r0, #0 + bl sub_0807A094 + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_0801D2B4 + movs r0, #0x3c + movs r1, #1 + movs r2, #0 + bl CreateObject + cmp r0, #0 + beq _0808CC7C + str r4, [r0, #0x50] + str r0, [r4, #0x54] +_0808CC7C: + pop {r4, pc} + .align 2, 0 +_0808CC80: .4byte 0x0000FF50 +_0808CC84: .4byte gUnk_02018EB0 + + thumb_func_start sub_0808CC88 +sub_0808CC88: @ 0x0808CC88 + push {r4, r5, lr} + adds r5, r0, #0 + adds r4, r5, #0 + adds r4, #0x6a + ldrh r1, [r4] + ldr r0, _0808CCB8 @ =0x000003FF + cmp r1, r0 + bhi _0808CCB4 + adds r0, r1, #4 + strh r0, [r4] + ldrh r2, [r4] + adds r0, r5, #0 + adds r1, r2, #0 + movs r3, #0 + bl sub_0805EC9C + ldrh r1, [r4] + adds r0, r5, #0 + movs r2, #8 + movs r3, #2 + bl sub_0806FCF4 +_0808CCB4: + pop {r4, r5, pc} + .align 2, 0 +_0808CCB8: .4byte 0x000003FF + + thumb_func_start sub_0808CCBC +sub_0808CCBC: @ 0x0808CCBC + push {r4, lr} + adds r4, r0, #0 + bl sub_0808CC88 + movs r1, #0x80 + lsls r1, r1, #5 + adds r0, r4, #0 + bl sub_08003FC4 + cmp r0, #0 + bne _0808CCFA + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + movs r0, #0x14 + strb r0, [r4, #0x15] + adds r0, #0xec + strh r0, [r4, #0x24] + movs r0, #0xc0 + lsls r0, r0, #0xa + str r0, [r4, #0x20] + ldrb r1, [r4, #0x18] + movs r0, #0x31 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] + ldr r0, [r4, #0x54] + movs r1, #1 + strb r1, [r0, #0xd] + ldr r0, _0808CCFC @ =gUnk_02018EB0 + strb r1, [r0, #0x18] +_0808CCFA: + pop {r4, pc} + .align 2, 0 +_0808CCFC: .4byte gUnk_02018EB0 + + thumb_func_start sub_0808CD00 +sub_0808CD00: @ 0x0808CD00 + push {r4, lr} + adds r4, r0, #0 + bl sub_0808CC88 + adds r0, r4, #0 + bl sub_080042B8 + movs r1, #0x80 + lsls r1, r1, #6 + adds r0, r4, #0 + bl sub_08003FC4 + cmp r0, #0 + beq _0808CD24 + adds r0, r4, #0 + bl sub_0806F69C + b _0808CD3E +_0808CD24: + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + movs r0, #0xa + strb r0, [r4, #0x15] + movs r0, #0xc0 + strh r0, [r4, #0x24] + movs r0, #0xa0 + lsls r0, r0, #0xa + str r0, [r4, #0x20] + ldr r1, _0808CD40 @ =gUnk_02018EB0 + movs r0, #1 + strb r0, [r1, #0x19] +_0808CD3E: + pop {r4, pc} + .align 2, 0 +_0808CD40: .4byte gUnk_02018EB0 + + thumb_func_start sub_0808CD44 +sub_0808CD44: @ 0x0808CD44 + push {r4, lr} + adds r4, r0, #0 + bl sub_0808CC88 + adds r0, r4, #0 + bl sub_080042B8 + movs r1, #0x80 + lsls r1, r1, #6 + adds r0, r4, #0 + bl sub_08003FC4 + cmp r0, #0 + beq _0808CD68 + adds r0, r4, #0 + bl sub_0806F69C + b _0808CD82 +_0808CD68: + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + movs r0, #0x11 + strb r0, [r4, #0x15] + adds r0, #0xef + strh r0, [r4, #0x24] + movs r0, #0x90 + lsls r0, r0, #0xa + str r0, [r4, #0x20] + ldr r1, _0808CD84 @ =gUnk_02018EB0 + movs r0, #1 + strb r0, [r1, #0x1a] +_0808CD82: + pop {r4, pc} + .align 2, 0 +_0808CD84: .4byte gUnk_02018EB0 + + thumb_func_start sub_0808CD88 +sub_0808CD88: @ 0x0808CD88 + push {r4, lr} + adds r4, r0, #0 + bl sub_0808CC88 + movs r1, #0xc0 + lsls r1, r1, #5 + adds r0, r4, #0 + bl sub_08003FC4 + cmp r0, #0 + beq _0808CDB8 + adds r0, r4, #0 + bl sub_080042B8 + adds r0, r4, #0 + bl sub_0806F69C + movs r1, #0x2e + ldrsh r0, [r4, r1] + cmp r0, #0x7f + bgt _0808CDD6 + movs r0, #0x80 + strh r0, [r4, #0x2e] + b _0808CDD6 +_0808CDB8: + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + movs r0, #0x3c + strb r0, [r4, #0xe] + adds r1, r4, #0 + adds r1, #0x68 + ldr r0, _0808CDD8 @ =0x00000C04 + strh r0, [r1] + ldr r0, [r4, #0x54] + bl sub_0805E7BC + adds r0, r4, #0 + bl sub_0805EC60 +_0808CDD6: + pop {r4, pc} + .align 2, 0 +_0808CDD8: .4byte 0x00000C04 + + thumb_func_start sub_0808CDDC +sub_0808CDDC: @ 0x0808CDDC + push {lr} + adds r1, r0, #0 + ldrb r0, [r1, #0xe] + subs r0, #1 + strb r0, [r1, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0808CDF6 + ldrb r0, [r1, #0xc] + adds r0, #1 + strb r0, [r1, #0xc] + movs r0, #0x10 + strb r0, [r1, #0xe] +_0808CDF6: + pop {pc} + + thumb_func_start sub_0808CDF8 +sub_0808CDF8: @ 0x0808CDF8 + push {lr} + adds r3, r0, #0 + ldrb r0, [r3, #0xe] + subs r0, #1 + strb r0, [r3, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0808CE2C + ldr r0, _0808CE30 @ =gUnk_02033A90 + ldrb r1, [r0, #0x16] + ldrb r0, [r3, #0xc] + adds r0, #1 + adds r0, r0, r1 + strb r0, [r3, #0xc] + ldr r2, _0808CE34 @ =gUnk_081216B4 + lsls r1, r1, #1 + adds r0, r1, r2 + ldrb r0, [r0] + strb r0, [r3, #0x14] + adds r1, #1 + adds r1, r1, r2 + ldrb r0, [r1] + strb r0, [r3, #0x15] + movs r0, #0xa0 + lsls r0, r0, #1 + strh r0, [r3, #0x24] +_0808CE2C: + pop {pc} + .align 2, 0 +_0808CE30: .4byte gUnk_02033A90 +_0808CE34: .4byte gUnk_081216B4 + + thumb_func_start sub_0808CE38 +sub_0808CE38: @ 0x0808CE38 + push {r4, lr} + adds r4, r0, #0 + bl sub_080042B8 + adds r0, r4, #0 + bl sub_0806F69C + movs r1, #0x32 + ldrsh r0, [r4, r1] + cmp r0, #0xc7 + bgt _0808CE52 + movs r0, #0x18 + strb r0, [r4, #0x15] +_0808CE52: + movs r1, #0x2e + ldrsh r0, [r4, r1] + cmp r0, #0x2f + bgt _0808CE60 + ldr r1, _0808CE64 @ =gUnk_02018EB0 + movs r0, #1 + strb r0, [r1, #0x1b] +_0808CE60: + pop {r4, pc} + .align 2, 0 +_0808CE64: .4byte gUnk_02018EB0 + + thumb_func_start sub_0808CE68 +sub_0808CE68: @ 0x0808CE68 + push {r4, lr} + adds r4, r0, #0 + bl sub_080042B8 + adds r0, r4, #0 + bl sub_0806F69C + movs r1, #0x32 + ldrsh r0, [r4, r1] + cmp r0, #0xc7 + bgt _0808CE82 + movs r0, #8 + strb r0, [r4, #0x15] +_0808CE82: + movs r1, #0x2e + ldrsh r0, [r4, r1] + cmp r0, #0xd0 + ble _0808CE90 + ldr r1, _0808CE94 @ =gUnk_02018EB0 + movs r0, #1 + strb r0, [r1, #0x1b] +_0808CE90: + pop {r4, pc} + .align 2, 0 +_0808CE94: .4byte gUnk_02018EB0 + + thumb_func_start sub_0808CE98 +sub_0808CE98: @ 0x0808CE98 + push {r4, lr} + adds r4, r0, #0 + bl sub_080042B8 + adds r0, r4, #0 + bl sub_0806F69C + movs r0, #0x32 + ldrsh r1, [r4, r0] + movs r0, #0x90 + lsls r0, r0, #1 + cmp r1, r0 + ble _0808CEB8 + ldr r1, _0808CEBC @ =gUnk_02018EB0 + movs r0, #1 + strb r0, [r1, #0x1b] +_0808CEB8: + pop {r4, pc} + .align 2, 0 +_0808CEBC: .4byte gUnk_02018EB0 + + thumb_func_start sub_0808CEC0 +sub_0808CEC0: @ 0x0808CEC0 + push {r4, lr} + adds r4, r0, #0 + bl sub_080042B8 + adds r0, r4, #0 + bl sub_0806F69C + movs r1, #0x32 + ldrsh r0, [r4, r1] + cmp r0, #0xc7 + bgt _0808CEDA + movs r0, #0x18 + strb r0, [r4, #0x15] +_0808CEDA: + movs r1, #0x2e + ldrsh r0, [r4, r1] + cmp r0, #0xf + bgt _0808CEE8 + ldr r1, _0808CEEC @ =gUnk_02018EB0 + movs r0, #1 + strb r0, [r1, #0x1b] +_0808CEE8: + pop {r4, pc} + .align 2, 0 +_0808CEEC: .4byte gUnk_02018EB0 + + thumb_func_start sub_0808CEF0 +sub_0808CEF0: @ 0x0808CEF0 + push {lr} + ldr r2, _0808CF04 @ =gUnk_081216BC + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0808CF04: .4byte gUnk_081216BC + + thumb_func_start sub_0808CF08 +sub_0808CF08: @ 0x0808CF08 + push {r4, r5, lr} + adds r4, r0, #0 + movs r0, #1 + strb r0, [r4, #0xc] + ldr r2, _0808CF50 @ =gUnk_02033A90 + ldr r3, _0808CF54 @ =gRoomControls + ldrh r0, [r2, #0x12] + ldrh r1, [r3, #0xa] + subs r0, r0, r1 + strh r0, [r4, #0x2e] + ldrh r0, [r2, #0x14] + ldrh r1, [r3, #0xc] + subs r0, r0, r1 + strh r0, [r4, #0x32] + adds r5, r4, #0 + adds r5, #0x68 + movs r0, #0x80 + strh r0, [r5] + ldrb r1, [r4, #0x11] + subs r0, #0x90 + ands r0, r1 + movs r1, #6 + orrs r0, r1 + strb r0, [r4, #0x11] + ldr r0, _0808CF58 @ =0x00001F17 + movs r1, #0 + bl sub_0801E1B8 + movs r1, #0x2e + ldrsh r0, [r4, r1] + movs r2, #0x32 + ldrsh r1, [r4, r2] + ldrh r2, [r5] + bl sub_0801E1EC + pop {r4, r5, pc} + .align 2, 0 +_0808CF50: .4byte gUnk_02033A90 +_0808CF54: .4byte gRoomControls +_0808CF58: .4byte 0x00001F17 + + thumb_func_start sub_0808CF5C +sub_0808CF5C: @ 0x0808CF5C + push {r4, r5, r6, lr} + adds r5, r0, #0 + adds r2, r5, #0 + adds r2, #0x68 + ldrh r0, [r2] + subs r0, #2 + strh r0, [r2] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0x14 + bls _0808CF82 + movs r1, #0x2e + ldrsh r0, [r5, r1] + movs r3, #0x32 + ldrsh r1, [r5, r3] + ldrh r2, [r2] + bl sub_0801E1EC + b _0808D01E +_0808CF82: + ldr r0, _0808D020 @ =gLCDControls + adds r0, #0x62 + movs r1, #0x10 + strh r1, [r0] + bl sub_0808D030 + movs r0, #0 + bl sub_0801CFA8 + bl sub_080ADD30 + ldr r0, _0808D024 @ =gUnk_02024490 + movs r6, #1 + strb r6, [r0] + ldrb r0, [r5, #0xa] + lsls r4, r0, #1 + adds r4, r4, r0 + lsls r4, r4, #1 + ldr r0, _0808D028 @ =gUnk_081216C8 + adds r4, r4, r0 + ldrh r1, [r4] + adds r0, r5, #0 + bl sub_080ADF80 + ldrh r1, [r4, #2] + adds r0, r5, #0 + bl sub_0801D040 + ldrh r0, [r4, #4] + strh r0, [r5, #0x12] + ldrb r0, [r5, #0xa] + cmp r0, #2 + bne _0808CFC6 + strb r0, [r5, #0x1e] +_0808CFC6: + movs r2, #2 + movs r0, #2 + strb r0, [r5, #0xc] + ldrb r1, [r5, #0x18] + subs r0, #6 + ands r0, r1 + orrs r0, r2 + strb r0, [r5, #0x18] + ldrb r2, [r5, #0x1b] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r2 + strb r0, [r5, #0x1b] + ldrb r0, [r5, #0x19] + ands r1, r0 + strb r1, [r5, #0x19] + adds r2, r5, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] + movs r0, #0x1e + strb r0, [r5, #0xe] + movs r0, #0xff + strb r0, [r5, #0xf] + ldrb r0, [r5, #0x19] + movs r1, #3 + orrs r0, r1 + strb r0, [r5, #0x19] + movs r2, #0x80 + lsls r2, r2, #1 + adds r0, r5, #0 + adds r1, r2, #0 + movs r3, #0 + bl sub_0805EC9C + ldr r0, _0808D02C @ =gUnk_02033A90 + strh r6, [r0, #0x10] + movs r0, #5 + movs r1, #8 + bl DoFade +_0808D01E: + pop {r4, r5, r6, pc} + .align 2, 0 +_0808D020: .4byte gLCDControls +_0808D024: .4byte gUnk_02024490 +_0808D028: .4byte gUnk_081216C8 +_0808D02C: .4byte gUnk_02033A90 + + thumb_func_start sub_0808D030 +sub_0808D030: @ 0x0808D030 + push {r4, r5, lr} + ldr r4, _0808D058 @ =gUnk_03000020 + movs r5, #0x80 + adds r0, r4, #0 + subs r0, #0x20 + ldr r1, _0808D05C @ =0x00000B74 + bl sub_0801D630 + movs r1, #0xa8 + lsls r1, r1, #2 + adds r0, r1, #0 +_0808D046: + strh r0, [r4] + adds r4, #8 + subs r5, #1 + cmp r5, #0 + bne _0808D046 + ldr r1, _0808D060 @ =gUnk_03000000 + movs r0, #1 + strb r0, [r1] + pop {r4, r5, pc} + .align 2, 0 +_0808D058: .4byte gUnk_03000020 +_0808D05C: .4byte 0x00000B74 +_0808D060: .4byte gUnk_03000000 + + thumb_func_start sub_0808D064 +sub_0808D064: @ 0x0808D064 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + adds r1, r0, #0 + adds r1, #0xff + strb r1, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0 + beq _0808D0B4 + adds r0, r4, #0 + adds r0, #0x68 + ldrh r3, [r0] + adds r1, r3, #0 + adds r2, r0, #0 + cmp r1, #0 + beq _0808D08C + subs r0, r3, #2 + strh r0, [r2] + b _0808D08E +_0808D08C: + strh r1, [r2] +_0808D08E: + movs r1, #0x2e + ldrsh r0, [r4, r1] + movs r3, #0x32 + ldrsh r1, [r4, r3] + ldrh r2, [r2] + bl sub_0801E1EC + ldrb r0, [r4, #0xf] + cmp r0, #0x80 + bls _0808D0A6 + subs r0, #8 + strb r0, [r4, #0xf] +_0808D0A6: + ldrb r2, [r4, #0xf] + adds r0, r4, #0 + adds r1, r2, #0 + movs r3, #0 + bl sub_0805EC9C + b _0808D0C2 +_0808D0B4: + ldr r1, _0808D0C4 @ =gUnk_02033A90 + ldrb r0, [r1, #0xe] + adds r0, #1 + strb r0, [r1, #0xe] + strh r2, [r1, #0x10] + bl sub_0805E780 +_0808D0C2: + pop {r4, pc} + .align 2, 0 +_0808D0C4: .4byte gUnk_02033A90 + + thumb_func_start sub_0808D0C8 +sub_0808D0C8: @ 0x0808D0C8 + push {lr} + ldr r2, _0808D0DC @ =gUnk_081216DC + ldrb r1, [r0, #0xa] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0808D0DC: .4byte gUnk_081216DC + + thumb_func_start sub_0808D0E0 +sub_0808D0E0: @ 0x0808D0E0 + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldrb r6, [r5, #0xc] + cmp r6, #1 + beq _0808D12C + cmp r6, #1 + bgt _0808D0F4 + cmp r6, #0 + beq _0808D0FA + b _0808D192 +_0808D0F4: + cmp r6, #2 + beq _0808D150 + b _0808D192 +_0808D0FA: + movs r4, #1 + strb r4, [r5, #0xc] + bl Random + movs r1, #0x1f + ands r0, r1 + movs r1, #0x40 + subs r1, r1, r0 + strb r1, [r5, #0xe] + strb r6, [r5, #0x1e] + strb r6, [r5, #0x14] + ldrb r0, [r5, #0x19] + movs r1, #0xc0 + orrs r0, r1 + strb r0, [r5, #0x19] + adds r2, r5, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #7 + orrs r0, r1 + strb r0, [r2] + adds r0, r5, #0 + adds r0, #0x38 + strb r4, [r0] + b _0808D192 +_0808D12C: + ldrb r0, [r5, #0xe] + subs r0, #1 + strb r0, [r5, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0808D192 + movs r0, #8 + strb r0, [r5, #0xe] + movs r0, #4 + strb r0, [r5, #0xf] + movs r0, #2 + strb r0, [r5, #0xc] + bl Random + movs r1, #3 + ands r0, r1 + strb r0, [r5, #0x14] + b _0808D192 +_0808D150: + ldrb r0, [r5, #0xe] + subs r0, #1 + strb r0, [r5, #0xe] + movs r1, #0xff + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0808D192 + ldrb r0, [r5, #0xf] + subs r0, #1 + strb r0, [r5, #0xf] + ands r0, r1 + cmp r0, #0 + bne _0808D180 + strb r0, [r5, #0x1e] + movs r0, #1 + strb r0, [r5, #0xc] + bl Random + movs r1, #0x1f + ands r0, r1 + movs r1, #0x40 + subs r1, r1, r0 + strb r1, [r5, #0xe] + b _0808D192 +_0808D180: + movs r0, #8 + strb r0, [r5, #0xe] + ldrb r1, [r5, #0x14] + ldrb r0, [r5, #0x1e] + movs r2, #0 + cmp r0, r1 + beq _0808D190 + adds r2, r1, #0 +_0808D190: + strb r2, [r5, #0x1e] +_0808D192: + pop {r4, r5, r6, pc} + + thumb_func_start sub_0808D194 +sub_0808D194: @ 0x0808D194 + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldrb r1, [r5, #0xc] + cmp r1, #1 + beq _0808D234 + cmp r1, #1 + bgt _0808D1A8 + cmp r1, #0 + beq _0808D1AE + b _0808D234 +_0808D1A8: + cmp r1, #2 + beq _0808D1FC + b _0808D234 +_0808D1AE: + movs r0, #1 + strb r0, [r5, #0xc] + movs r0, #8 + strb r0, [r5, #0xe] + strb r1, [r5, #0xf] + strb r1, [r5, #0x1e] + adds r2, r5, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #7 + orrs r0, r1 + strb r0, [r2] + ldr r0, _0808D1F4 @ =0x00004069 + movs r2, #0x2e + ldrsh r1, [r5, r2] + ldr r3, _0808D1F8 @ =gRoomControls + ldrh r2, [r3, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + movs r4, #0x3f + ands r1, r4 + movs r6, #0x32 + ldrsh r2, [r5, r6] + ldrh r3, [r3, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r4 + lsls r2, r2, #6 + orrs r1, r2 + subs r1, #0x40 + movs r2, #1 + bl UpdateCollisionLayer + b _0808D234 + .align 2, 0 +_0808D1F4: .4byte 0x00004069 +_0808D1F8: .4byte gRoomControls +_0808D1FC: + ldr r0, _0808D274 @ =gUnk_030010A0 + ldr r3, [r0] + movs r0, #3 + ands r3, r0 + cmp r3, #0 + bne _0808D234 + ldr r4, _0808D278 @ =gLCDControls + ldrb r2, [r5, #0xd] + lsls r1, r2, #8 + movs r0, #0x10 + subs r0, r0, r2 + orrs r1, r0 + adds r0, r4, #0 + adds r0, #0x68 + strh r1, [r0] + ldrb r0, [r5, #0xd] + adds r0, #1 + strb r0, [r5, #0xd] + lsls r1, r1, #0x10 + movs r0, #0x80 + lsls r0, r0, #0x15 + cmp r1, r0 + bne _0808D234 + adds r0, r4, #0 + adds r0, #0x66 + strh r3, [r0] + bl sub_0805E780 +_0808D234: + ldrb r0, [r5, #0xe] + subs r0, #1 + strb r0, [r5, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0808D272 + movs r0, #8 + strb r0, [r5, #0xe] + ldrb r0, [r5, #0xa] + cmp r0, #9 + bne _0808D24E + movs r0, #2 + strb r0, [r5, #0xe] +_0808D24E: + ldr r4, _0808D27C @ =gUnk_08121704 + ldrb r0, [r5, #0xf] + adds r1, r0, #1 + strb r1, [r5, #0xf] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x17 + adds r0, r0, r4 + ldrh r1, [r0] + adds r0, r5, #0 + bl sub_0801D2B4 + ldrb r0, [r5, #0xf] + lsls r0, r0, #1 + adds r0, r0, r4 + ldrh r0, [r0] + cmp r0, #0 + bne _0808D272 + strb r0, [r5, #0xf] +_0808D272: + pop {r4, r5, r6, pc} + .align 2, 0 +_0808D274: .4byte gUnk_030010A0 +_0808D278: .4byte gLCDControls +_0808D27C: .4byte gUnk_08121704 + + thumb_func_start sub_0808D280 +sub_0808D280: @ 0x0808D280 + push {r4, lr} + sub sp, #4 + movs r4, #0 + str r4, [sp] + movs r0, #6 + movs r1, #0x3e + movs r2, #6 + movs r3, #9 + bl sub_0805EB2C + adds r2, r0, #0 + cmp r2, #0 + beq _0808D2C4 + movs r0, #2 + strb r0, [r2, #0xc] + strb r4, [r2, #0xd] + ldrb r1, [r2, #0x19] + subs r0, #0xf + ands r0, r1 + movs r1, #4 + orrs r0, r1 + strb r0, [r2, #0x19] + ldr r1, _0808D2C8 @ =gLCDControls + adds r2, r1, #0 + adds r2, #0x66 + movs r0, #0xc8 + lsls r0, r0, #3 + strh r0, [r2] + adds r1, #0x68 + movs r0, #0x10 + strh r0, [r1] + movs r0, #0xf6 + bl PlaySFX +_0808D2C4: + add sp, #4 + pop {r4, pc} + .align 2, 0 +_0808D2C8: .4byte gLCDControls + + thumb_func_start sub_0808D2CC +sub_0808D2CC: @ 0x0808D2CC + push {lr} + sub sp, #4 + movs r0, #0 + str r0, [sp] + movs r0, #6 + movs r1, #0x3e + movs r2, #6 + movs r3, #1 + bl sub_0805EB2C + adds r1, r0, #0 + cmp r1, #0 + beq _0808D2F2 + movs r0, #9 + strb r0, [r1, #0xa] + adds r0, r1, #0 + movs r1, #2 + bl sub_0805E3A0 +_0808D2F2: + add sp, #4 + pop {pc} + .align 2, 0 + + thumb_func_start nullsub_521 +nullsub_521: @ 0x0808D2F8 + bx lr + .align 2, 0 + + thumb_func_start sub_0808D2FC +sub_0808D2FC: @ 0x0808D2FC + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0808D31C + strb r0, [r4, #0xc] + strb r0, [r4, #0x1e] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #7 + orrs r0, r1 + strb r0, [r2] + adds r0, r4, #0 + bl sub_0807DD64 +_0808D31C: + movs r0, #0x2e + ldrsh r5, [r4, r0] + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DDAC + adds r0, r4, #0 + bl sub_0807DDE4 + ldr r0, _0808D354 @ =gRoomControls + ldrh r0, [r0, #0x16] + cmp r0, #0 + beq _0808D350 + movs r1, #0x2e + ldrsh r0, [r4, r1] + cmp r5, r0 + beq _0808D350 + ldr r0, _0808D358 @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #8 + ands r0, r1 + cmp r0, #0 + bne _0808D350 + ldr r0, _0808D35C @ =0x0000010F + bl PlaySFX +_0808D350: + pop {r4, r5, pc} + .align 2, 0 +_0808D354: .4byte gRoomControls +_0808D358: .4byte gUnk_030010A0 +_0808D35C: .4byte 0x0000010F + + thumb_func_start sub_0808D360 +sub_0808D360: @ 0x0808D360 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0808D382 + strb r0, [r4, #0xc] + movs r0, #1 + strb r0, [r4, #0x1e] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #7 + orrs r0, r1 + strb r0, [r2] + adds r0, r4, #0 + bl sub_0807DD64 +_0808D382: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DDAC + adds r0, r4, #0 + bl sub_0807DDE4 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0808D394 +sub_0808D394: @ 0x0808D394 + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xc] + cmp r0, #0 + bne _0808D3C4 + movs r0, #1 + strb r0, [r5, #0xc] + movs r0, #8 + strb r0, [r5, #0xe] + adds r2, r5, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #7 + orrs r0, r1 + strb r0, [r2] + ldr r1, _0808D3FC @ =gLCDControls + adds r2, r1, #0 + adds r2, #0x66 + movs r0, #0xc8 + lsls r0, r0, #3 + strh r0, [r2] + adds r1, #0x68 + ldr r0, _0808D400 @ =0x00001003 + strh r0, [r1] +_0808D3C4: + ldrb r0, [r5, #0xe] + subs r0, #1 + strb r0, [r5, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0808D3F8 + movs r0, #2 + strb r0, [r5, #0xe] + ldr r4, _0808D404 @ =gUnk_08121720 + ldrb r0, [r5, #0xf] + adds r1, r0, #1 + strb r1, [r5, #0xf] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x17 + adds r0, r0, r4 + ldrh r1, [r0] + adds r0, r5, #0 + bl sub_0801D28C + ldrb r0, [r5, #0xf] + lsls r0, r0, #1 + adds r0, r0, r4 + ldrh r0, [r0] + cmp r0, #0 + bne _0808D3F8 + strb r0, [r5, #0xf] +_0808D3F8: + pop {r4, r5, pc} + .align 2, 0 +_0808D3FC: .4byte gLCDControls +_0808D400: .4byte 0x00001003 +_0808D404: .4byte gUnk_08121720 + + thumb_func_start sub_0808D408 +sub_0808D408: @ 0x0808D408 + push {lr} + adds r3, r0, #0 + ldrb r0, [r3, #0xc] + cmp r0, #0 + bne _0808D458 + movs r1, #1 + strb r1, [r3, #0xc] + ldrb r0, [r3, #0x19] + movs r2, #0xc0 + orrs r0, r2 + strb r0, [r3, #0x19] + movs r0, #0x29 + adds r0, r0, r3 + mov ip, r0 + ldrb r0, [r0] + movs r2, #7 + orrs r0, r2 + mov r2, ip + strb r0, [r2] + ldrb r2, [r3, #0x19] + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r2 + movs r2, #4 + orrs r0, r2 + strb r0, [r3, #0x19] + ldrb r0, [r3, #0xb] + strb r0, [r3, #0x1e] + ldrb r0, [r3, #0xb] + subs r1, r1, r0 + lsls r1, r1, #9 + movs r0, #0x80 + lsls r0, r0, #1 + adds r1, r1, r0 + movs r2, #0xc0 + rsbs r2, r2, #0 + adds r0, r3, #0 + movs r3, #0 + bl sub_0805EC9C +_0808D458: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0808D45C +sub_0808D45C: @ 0x0808D45C + push {lr} + ldr r2, _0808D470 @ =gUnk_0812172C + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0808D470: .4byte gUnk_0812172C + + thumb_func_start sub_0808D474 +sub_0808D474: @ 0x0808D474 + push {r4, r5, lr} + adds r5, r0, #0 + adds r2, r5, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #7 + orrs r0, r1 + strb r0, [r2] + ldrb r0, [r5, #0xb] + strb r0, [r5, #0x1e] + movs r1, #2 + strb r1, [r5, #0xc] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0808D4D4 + movs r0, #0x7c + bl sub_0807CBD0 + adds r1, r0, #0 + cmp r1, #0 + bne _0808D4D4 + movs r0, #1 + strb r0, [r5, #0xc] + strb r1, [r5, #0xe] + ldrb r1, [r5, #0x19] + subs r0, #0xe + ands r0, r1 + movs r1, #4 + orrs r0, r1 + strb r0, [r5, #0x19] + ldr r1, _0808D4CC @ =gLCDControls + adds r2, r1, #0 + adds r2, #0x66 + movs r0, #0xc8 + lsls r0, r0, #3 + strh r0, [r2] + adds r1, #0x68 + movs r0, #0x80 + lsls r0, r0, #5 + strh r0, [r1] + ldr r0, _0808D4D0 @ =0x00000179 + bl PlaySFX + b _0808D50E + .align 2, 0 +_0808D4CC: .4byte gLCDControls +_0808D4D0: .4byte 0x00000179 +_0808D4D4: + movs r0, #8 + strb r0, [r5, #0xe] + movs r1, #0x2e + ldrsh r0, [r5, r1] + ldr r3, _0808D510 @ =gRoomControls + ldrh r1, [r3, #6] + subs r0, r0, r1 + asrs r4, r0, #4 + movs r2, #0x3f + ands r4, r2 + movs r1, #0x32 + ldrsh r0, [r5, r1] + ldrh r1, [r3, #8] + subs r0, r0, r1 + asrs r0, r0, #4 + ands r0, r2 + lsls r0, r0, #6 + orrs r4, r0 + ldrb r0, [r5, #0xb] + cmp r0, #0 + beq _0808D500 + subs r4, #0x40 +_0808D500: + ldr r0, _0808D514 @ =0x00004069 + adds r1, r5, #0 + adds r1, #0x38 + ldrb r2, [r1] + adds r1, r4, #0 + bl UpdateCollisionLayer +_0808D50E: + pop {r4, r5, pc} + .align 2, 0 +_0808D510: .4byte gRoomControls +_0808D514: .4byte 0x00004069 + + thumb_func_start sub_0808D518 +sub_0808D518: @ 0x0808D518 + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldr r0, _0808D58C @ =gUnk_030010A0 + ldr r2, [r0] + movs r0, #3 + ands r2, r0 + cmp r2, #0 + bne _0808D58A + ldr r3, _0808D590 @ =gLCDControls + ldrb r0, [r5, #0xe] + movs r1, #0x10 + subs r1, r1, r0 + lsls r1, r1, #8 + orrs r1, r0 + adds r0, r3, #0 + adds r0, #0x68 + strh r1, [r0] + ldrb r0, [r5, #0xe] + adds r0, #1 + strb r0, [r5, #0xe] + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + cmp r1, #0x10 + bne _0808D58A + movs r0, #2 + strb r0, [r5, #0xc] + movs r0, #8 + strb r0, [r5, #0xe] + ldrb r1, [r5, #0x19] + subs r0, #0x15 + ands r0, r1 + strb r0, [r5, #0x19] + adds r0, r3, #0 + adds r0, #0x66 + strh r2, [r0] + ldr r0, _0808D594 @ =0x00004069 + movs r2, #0x2e + ldrsh r1, [r5, r2] + ldr r3, _0808D598 @ =gRoomControls + ldrh r2, [r3, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + movs r4, #0x3f + ands r1, r4 + movs r6, #0x32 + ldrsh r2, [r5, r6] + ldrh r3, [r3, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r4 + lsls r2, r2, #6 + orrs r1, r2 + adds r2, r5, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl UpdateCollisionLayer +_0808D58A: + pop {r4, r5, r6, pc} + .align 2, 0 +_0808D58C: .4byte gUnk_030010A0 +_0808D590: .4byte gLCDControls +_0808D594: .4byte 0x00004069 +_0808D598: .4byte gRoomControls + + thumb_func_start sub_0808D59C +sub_0808D59C: @ 0x0808D59C + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xe] + subs r0, #1 + strb r0, [r5, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0808D5D4 + movs r0, #8 + strb r0, [r5, #0xe] + ldr r4, _0808D5D8 @ =gUnk_08121738 + ldrb r0, [r5, #0xf] + adds r1, r0, #1 + strb r1, [r5, #0xf] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x17 + adds r0, r0, r4 + ldrh r1, [r0] + adds r0, r5, #0 + bl sub_0801D2B4 + ldrb r0, [r5, #0xf] + lsls r0, r0, #1 + adds r0, r0, r4 + ldrh r0, [r0] + cmp r0, #0 + bne _0808D5D4 + strb r0, [r5, #0xf] +_0808D5D4: + pop {r4, r5, pc} + .align 2, 0 +_0808D5D8: .4byte gUnk_08121738 + + thumb_func_start sub_0808D5DC +sub_0808D5DC: @ 0x0808D5DC + push {lr} + adds r3, r0, #0 + ldrb r0, [r3, #0xc] + cmp r0, #0 + bne _0808D614 + movs r2, #1 + movs r0, #1 + strb r0, [r3, #0xc] + ldrb r1, [r3, #0x18] + subs r0, #5 + ands r0, r1 + orrs r0, r2 + strb r0, [r3, #0x18] + ldrb r0, [r3, #0x19] + movs r1, #0xc0 + orrs r0, r1 + strb r0, [r3, #0x19] + adds r2, r3, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #7 + orrs r0, r1 + strb r0, [r2] + ldrb r0, [r3, #0xa] + strb r0, [r3, #0x1e] + adds r0, r3, #0 + bl sub_0808D618 +_0808D614: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0808D618 +sub_0808D618: @ 0x0808D618 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + ldr r7, _0808D664 @ =gUnk_08121750 + cmp r0, #0 + beq _0808D626 + ldr r7, _0808D668 @ =gUnk_0812176A +_0808D626: + movs r1, #0x2e + ldrsh r0, [r4, r1] + ldr r3, _0808D66C @ =gRoomControls + ldrh r1, [r3, #6] + subs r0, r0, r1 + asrs r5, r0, #4 + movs r2, #0x3f + ands r5, r2 + movs r1, #0x32 + ldrsh r0, [r4, r1] + ldrh r1, [r3, #8] + subs r0, r0, r1 + asrs r0, r0, #4 + ands r0, r2 + lsls r0, r0, #6 + orrs r5, r0 + movs r6, #0 + adds r4, r7, #0 +_0808D64A: + movs r0, #0 + ldrsh r1, [r4, r0] + adds r1, r5, r1 + ldr r0, _0808D670 @ =0x00004074 + movs r2, #1 + bl UpdateCollisionLayer + adds r4, #2 + adds r6, #1 + cmp r6, #0xc + bls _0808D64A + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0808D664: .4byte gUnk_08121750 +_0808D668: .4byte gUnk_0812176A +_0808D66C: .4byte gRoomControls +_0808D670: .4byte 0x00004074 + + thumb_func_start sub_0808D674 +sub_0808D674: @ 0x0808D674 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0808D750 + movs r0, #0x7f + ands r0, r1 + cmp r0, #0x1f + bhi _0808D750 + lsls r0, r0, #2 + ldr r1, _0808D698 @ =_0808D69C + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0808D698: .4byte _0808D69C +_0808D69C: @ jump table + .4byte _0808D740 @ case 0 + .4byte _0808D740 @ case 1 + .4byte _0808D750 @ case 2 + .4byte _0808D750 @ case 3 + .4byte _0808D740 @ case 4 + .4byte _0808D740 @ case 5 + .4byte _0808D740 @ case 6 + .4byte _0808D750 @ case 7 + .4byte _0808D740 @ case 8 + .4byte _0808D740 @ case 9 + .4byte _0808D740 @ case 10 + .4byte _0808D740 @ case 11 + .4byte _0808D740 @ case 12 + .4byte _0808D750 @ case 13 + .4byte _0808D750 @ case 14 + .4byte _0808D750 @ case 15 + .4byte _0808D750 @ case 16 + .4byte _0808D750 @ case 17 + .4byte _0808D750 @ case 18 + .4byte _0808D748 @ case 19 + .4byte _0808D71C @ case 20 + .4byte _0808D750 @ case 21 + .4byte _0808D750 @ case 22 + .4byte _0808D750 @ case 23 + .4byte _0808D750 @ case 24 + .4byte _0808D750 @ case 25 + .4byte _0808D750 @ case 26 + .4byte _0808D750 @ case 27 + .4byte _0808D750 @ case 28 + .4byte _0808D750 @ case 29 + .4byte _0808D740 @ case 30 + .4byte _0808D73C @ case 31 +_0808D71C: + movs r0, #3 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + ldr r0, [r4, #0x4c] + str r0, [r4, #0x54] + b _0808D750 +_0808D73C: + bl sub_0805E780 +_0808D740: + adds r0, r4, #0 + bl sub_0808DAD0 + b _0808D750 +_0808D748: + adds r0, r4, #0 + bl sub_0808D76C + b _0808D766 +_0808D750: + ldr r0, _0808D768 @ =gUnk_08121784 + ldrb r1, [r4, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + adds r0, r4, #0 + bl sub_08080CB4 +_0808D766: + pop {r4, pc} + .align 2, 0 +_0808D768: .4byte gUnk_08121784 + + thumb_func_start sub_0808D76C +sub_0808D76C: @ 0x0808D76C + push {lr} + ldr r2, _0808D780 @ =gUnk_08121798 + ldrb r1, [r0, #0xd] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0808D780: .4byte gUnk_08121798 + + thumb_func_start sub_0808D784 +sub_0808D784: @ 0x0808D784 + movs r3, #1 + movs r1, #1 + strb r1, [r0, #0xd] + strb r1, [r0, #0x1d] + ldrb r2, [r0, #0x18] + subs r1, #5 + ands r1, r2 + orrs r1, r3 + strb r1, [r0, #0x18] + bx lr + + thumb_func_start sub_0808D798 +sub_0808D798: @ 0x0808D798 + push {lr} + bl sub_0806F4E8 + pop {pc} + + thumb_func_start sub_0808D7A0 +sub_0808D7A0: @ 0x0808D7A0 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F3E4 + cmp r0, #0 + beq _0808D7B2 + adds r0, r4, #0 + bl sub_0808DB2C +_0808D7B2: + pop {r4, pc} + + thumb_func_start sub_0808D7B4 +sub_0808D7B4: @ 0x0808D7B4 + push {r4, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #3 + strb r0, [r1] + adds r0, r4, #0 + adds r0, #0x3c + movs r2, #0x17 + strb r2, [r0] + adds r1, #8 + movs r0, #0x49 + strb r0, [r1] + subs r1, #1 + movs r0, #7 + strb r0, [r1] + adds r0, r4, #0 + adds r0, #0x3b + strb r2, [r0] + adds r1, #6 + movs r0, #0xff + strb r0, [r1] + ldr r0, _0808D818 @ =gUnk_080FD1A8 + str r0, [r4, #0x48] + movs r0, #1 + strb r0, [r4, #0x1c] + ldrh r1, [r4, #0x2e] + adds r0, r4, #0 + adds r0, #0x74 + strh r1, [r0] + ldrh r0, [r4, #0x32] + adds r1, r4, #0 + adds r1, #0x76 + strh r0, [r1] + adds r0, r4, #0 + movs r1, #6 + bl sub_0805E3A0 + movs r0, #0x9b + lsls r0, r0, #1 + bl sub_08004488 + ldrb r0, [r4, #0xb] + cmp r0, #2 + beq _0808D834 + cmp r0, #2 + bgt _0808D81C + cmp r0, #0 + beq _0808D822 + b _0808D82E + .align 2, 0 +_0808D818: .4byte gUnk_080FD1A8 +_0808D81C: + cmp r0, #3 + beq _0808D83C + b _0808D82E +_0808D822: + movs r0, #0xf0 + lsls r0, r0, #9 + str r0, [r4, #0x20] + ldrh r0, [r4, #0x36] + adds r0, #8 + strh r0, [r4, #0x36] +_0808D82E: + movs r0, #1 + strb r0, [r4, #0xc] + b _0808D842 +_0808D834: + adds r0, r4, #0 + bl sub_0808DAD0 + b _0808D842 +_0808D83C: + adds r0, r4, #0 + bl sub_0808DB2C +_0808D842: + pop {r4, pc} + + thumb_func_start sub_0808D844 +sub_0808D844: @ 0x0808D844 + push {lr} + adds r3, r0, #0 + ldr r0, [r3, #0x34] + ldr r1, _0808D870 @ =0xFFFF2000 + adds r0, r0, r1 + str r0, [r3, #0x34] + adds r0, r3, #0 + adds r0, #0x5a + ldrb r0, [r0] + cmp r0, #0 + beq _0808D88A + ldrb r0, [r3, #0xe] + cmp r0, #0 + beq _0808D874 + adds r2, r3, #0 + adds r2, #0x78 + ldrh r1, [r2] + lsls r0, r1, #4 + subs r0, r0, r1 + lsls r0, r0, #1 + strh r0, [r2] + b _0808D87E + .align 2, 0 +_0808D870: .4byte 0xFFFF2000 +_0808D874: + adds r1, r3, #0 + adds r1, #0x78 + movs r0, #0x96 + lsls r0, r0, #2 + strh r0, [r1] +_0808D87E: + movs r0, #2 + strb r0, [r3, #0xc] + movs r0, #1 + strb r0, [r3, #0xf] + movs r0, #0x80 + strh r0, [r3, #0x24] +_0808D88A: + pop {pc} + + thumb_func_start sub_0808D88C +sub_0808D88C: @ 0x0808D88C + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0808D910 + bl Random + adds r5, r0, #0 + ldrb r0, [r4, #0x10] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + movs r0, #0x20 + strb r0, [r4, #0xf] + ldr r2, _0808D8D0 @ =gUnk_081217A4 + lsrs r0, r5, #8 + movs r1, #1 + ands r0, r1 + adds r0, r0, r2 + ldrb r0, [r0] + strh r0, [r4, #0x24] + adds r0, r4, #0 + bl sub_0808DAA0 + cmp r0, #0 + beq _0808D8D4 + movs r0, #0x1f + ands r5, r0 + strb r5, [r4, #0x15] + b _0808D8EE + .align 2, 0 +_0808D8D0: .4byte gUnk_081217A4 +_0808D8D4: + movs r1, #0x2e + ldrsh r0, [r4, r1] + movs r2, #0x32 + ldrsh r1, [r4, r2] + adds r2, r4, #0 + adds r2, #0x74 + ldrh r2, [r2] + adds r3, r4, #0 + adds r3, #0x76 + ldrh r3, [r3] + bl sub_080045D4 + strb r0, [r4, #0x15] +_0808D8EE: + ldrb r1, [r4, #0x15] + movs r0, #0xf + ands r0, r1 + cmp r0, #0 + beq _0808D910 + movs r0, #0x10 + eors r1, r0 + lsrs r1, r1, #4 + movs r0, #1 + ands r1, r0 + lsls r1, r1, #6 + ldrb r2, [r4, #0x18] + movs r0, #0x41 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x18] +_0808D910: + adds r0, r4, #0 + bl sub_080AEFB4 + bl sub_0805E40C + cmp r0, #0 + bne _0808D954 + ldrb r0, [r4, #0xb] + cmp r0, #0 + bne _0808D954 + adds r5, r4, #0 + adds r5, #0x78 + ldrh r0, [r5] + subs r0, #1 + strh r0, [r5] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0808D93C + adds r0, r4, #0 + movs r1, #0 + bl sub_08081404 +_0808D93C: + ldrh r0, [r5] + cmp r0, #0x77 + bhi _0808D954 + ldrb r2, [r4, #0x18] + lsls r1, r2, #0x1e + lsrs r1, r1, #0x1e + movs r0, #1 + eors r1, r0 + subs r0, #5 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x18] +_0808D954: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0808D958 +sub_0808D958: @ 0x0808D958 + push {r4, lr} + adds r4, r0, #0 + ldr r2, [r4, #0x54] + ldrh r1, [r2, #8] + movs r0, #0xc2 + lsls r0, r0, #2 + cmp r1, r0 + beq _0808D972 + adds r0, r4, #0 + movs r1, #0 + bl sub_08081404 + b _0808D992 +_0808D972: + adds r0, r2, #0 + adds r1, r4, #0 + bl CopyPosition + ldrh r0, [r4, #0x36] + subs r0, #1 + strh r0, [r4, #0x36] + ldr r1, _0808D994 @ =gLinkEntity + adds r0, r4, #0 + bl sub_080177A0 + cmp r0, #0 + beq _0808D992 + adds r0, r4, #0 + bl sub_0808DB2C +_0808D992: + pop {r4, pc} + .align 2, 0 +_0808D994: .4byte gLinkEntity + + thumb_func_start sub_0808D998 +sub_0808D998: @ 0x0808D998 + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldr r6, [r5, #0x54] + ldr r2, _0808DA28 @ =gUnk_080C9160 + ldrb r0, [r5, #0xe] + lsls r0, r0, #1 + adds r0, r0, r2 + movs r3, #0 + ldrsh r1, [r0, r3] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #9 + cmp r0, #0 + bge _0808D9B8 + ldr r1, _0808DA2C @ =0x0000FFFF + adds r0, r0, r1 +_0808D9B8: + asrs r0, r0, #0x10 + ldrh r3, [r6, #0x2e] + adds r0, r0, r3 + strh r0, [r5, #0x2e] + ldrb r0, [r5, #0xe] + adds r0, #0x40 + lsls r0, r0, #1 + adds r0, r0, r2 + movs r2, #0 + ldrsh r1, [r0, r2] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #8 + cmp r0, #0 + bge _0808D9DA + ldr r3, _0808DA2C @ =0x0000FFFF + adds r0, r0, r3 +_0808D9DA: + asrs r1, r0, #0x10 + ldrh r0, [r6, #0x32] + subs r0, r0, r1 + strh r0, [r5, #0x32] + ldrb r3, [r5, #0xe] + adds r0, r3, #0 + adds r0, #8 + strb r0, [r5, #0xe] + ldrh r0, [r6, #0x36] + strh r0, [r5, #0x36] + ldrb r2, [r6, #0x1b] + lsrs r2, r2, #6 + lsls r2, r2, #6 + ldrb r4, [r5, #0x1b] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r4 + orrs r0, r2 + strb r0, [r5, #0x1b] + ldrb r0, [r6, #0x19] + lsrs r0, r0, #6 + lsls r0, r0, #6 + ldrb r2, [r5, #0x19] + ands r1, r2 + orrs r1, r0 + strb r1, [r5, #0x19] + subs r3, #0x39 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + cmp r3, #0x7e + bhi _0808DA30 + adds r2, r5, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #8 + rsbs r1, r1, #0 + ands r1, r0 + movs r0, #3 + b _0808DA3E + .align 2, 0 +_0808DA28: .4byte gUnk_080C9160 +_0808DA2C: .4byte 0x0000FFFF +_0808DA30: + adds r2, r5, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #8 + rsbs r1, r1, #0 + ands r1, r0 + movs r0, #5 +_0808DA3E: + orrs r1, r0 + strb r1, [r2] + ldrb r0, [r5, #0xf] + subs r0, #1 + strb r0, [r5, #0xf] + lsls r0, r0, #0x18 + adds r4, r5, #0 + adds r4, #0x63 + cmp r0, #0 + bne _0808DA70 + movs r0, #6 + strb r0, [r5, #0xf] + ldrb r0, [r4] + subs r0, #1 + strb r0, [r4] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + movs r1, #0x16 + rsbs r1, r1, #0 + cmp r0, r1 + bge _0808DA70 + adds r0, r5, #0 + movs r1, #1 + bl sub_08081404 +_0808DA70: + movs r1, #0 + ldrsb r1, [r4, r1] + movs r0, #0x11 + rsbs r0, r0, #0 + cmp r1, r0 + bge _0808DA8E + ldrb r2, [r5, #0x18] + lsls r1, r2, #0x1e + lsrs r1, r1, #0x1e + movs r0, #1 + eors r1, r0 + subs r0, #5 + ands r0, r2 + orrs r0, r1 + strb r0, [r5, #0x18] +_0808DA8E: + adds r1, r5, #0 + adds r1, #0x87 + ldrb r0, [r1] + cmp r0, #0xa + bls _0808DA9C + movs r0, #0xa + strb r0, [r1] +_0808DA9C: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_0808DAA0 +sub_0808DAA0: @ 0x0808DAA0 + push {lr} + adds r2, r0, #0 + movs r1, #0x2e + ldrsh r0, [r2, r1] + adds r1, r2, #0 + adds r1, #0x74 + ldrh r1, [r1] + subs r0, r0, r1 + adds r0, #0x30 + cmp r0, #0x60 + bhi _0808DACC + movs r1, #0x32 + ldrsh r0, [r2, r1] + adds r1, r2, #0 + adds r1, #0x76 + ldrh r1, [r1] + subs r0, r0, r1 + adds r0, #0x30 + cmp r0, #0x60 + bhi _0808DACC + movs r0, #1 + b _0808DACE +_0808DACC: + movs r0, #0 +_0808DACE: + pop {pc} + + thumb_func_start sub_0808DAD0 +sub_0808DAD0: @ 0x0808DAD0 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x45 + ldrb r0, [r0] + cmp r0, #0 + bne _0808DAE0 + bl sub_0805E780 +_0808DAE0: + movs r0, #4 + strb r0, [r4, #0xc] + movs r0, #0x80 + strb r0, [r4, #0xe] + movs r0, #6 + strb r0, [r4, #0xf] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #0x10 + orrs r0, r1 + strb r0, [r2] + adds r1, r4, #0 + adds r1, #0x63 + movs r0, #0xfb + strb r0, [r1] + ldr r0, _0808DB28 @ =gLinkEntity + str r0, [r4, #0x54] + adds r1, r4, #0 + bl CopyPosition + pop {r4, pc} + .align 2, 0 +_0808DB28: .4byte gLinkEntity + + thumb_func_start sub_0808DB2C +sub_0808DB2C: @ 0x0808DB2C + push {lr} + adds r1, r0, #0 + movs r2, #0 + movs r0, #2 + strb r0, [r1, #0xc] + strb r2, [r1, #0xd] + ldrb r2, [r1, #0x10] + movs r0, #0x80 + orrs r0, r2 + strb r0, [r1, #0x10] + adds r2, r1, #0 + adds r2, #0x3b + movs r0, #1 + strb r0, [r2] + ldr r0, _0808DB50 @ =gLinkEntity + bl CopyPosition + pop {pc} + .align 2, 0 +_0808DB50: .4byte gLinkEntity + + thumb_func_start sub_0808DB54 +sub_0808DB54: @ 0x0808DB54 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r7, r0, #0 + ldrb r0, [r7, #0xc] + cmp r0, #1 + beq _0808DBE8 + cmp r0, #1 + bgt _0808DB6C + cmp r0, #0 + beq _0808DB72 + b _0808DC46 +_0808DB6C: + cmp r0, #2 + beq _0808DC2C + b _0808DC46 +_0808DB72: + ldrb r0, [r7, #0xe] + movs r1, #3 + cmp r0, #0 + beq _0808DB7C + movs r1, #1 +_0808DB7C: + strb r1, [r7, #0xc] + adds r1, r7, #0 + adds r1, #0x63 + ldrb r0, [r1] + adds r0, #8 + strb r0, [r1] + adds r0, r7, #0 + movs r1, #0xa + bl UpdateSprite + ldrb r0, [r7, #0xc] + cmp r0, #1 + bne _0808DB9A + ldr r0, _0808DBDC @ =0x0000FF80 + strh r0, [r7, #0x36] +_0808DB9A: + ldrb r0, [r7, #0xb] + cmp r0, #0 + beq _0808DBA2 + b _0808DD72 +_0808DBA2: + ldrh r1, [r7, #0x32] + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r1 + adds r0, #0xc + strh r0, [r7, #0x32] + ldr r0, _0808DBE0 @ =0x00004023 + movs r2, #0x2e + ldrsh r1, [r7, r2] + ldr r3, _0808DBE4 @ =gRoomControls + ldrh r2, [r3, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + movs r4, #0x3f + ands r1, r4 + movs r5, #0x32 + ldrsh r2, [r7, r5] + ldrh r3, [r3, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r4 + lsls r2, r2, #6 + orrs r1, r2 + adds r2, r7, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl UpdateCollisionLayer + b _0808DD72 + .align 2, 0 +_0808DBDC: .4byte 0x0000FF80 +_0808DBE0: .4byte 0x00004023 +_0808DBE4: .4byte gRoomControls +_0808DBE8: + movs r1, #0x80 + lsls r1, r1, #5 + adds r0, r7, #0 + bl sub_08003FC4 + cmp r0, #0 + beq _0808DBF8 + b _0808DD72 +_0808DBF8: + adds r0, r7, #0 + movs r1, #0x46 + movs r2, #0x40 + bl CreateFx + adds r1, r0, #0 + cmp r1, #0 + beq _0808DC0E + ldrh r0, [r1, #0x32] + adds r0, #8 + strh r0, [r1, #0x32] +_0808DC0E: + movs r0, #0x1e + movs r1, #0 + bl sub_08080964 + ldr r0, _0808DC28 @ =0x0000010B + bl PlaySFX + movs r0, #2 + strb r0, [r7, #0xc] + movs r0, #0x3c + strb r0, [r7, #0xe] + b _0808DD72 + .align 2, 0 +_0808DC28: .4byte 0x0000010B +_0808DC2C: + ldrb r0, [r7, #0xe] + subs r0, #1 + strb r0, [r7, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0808DC3A + b _0808DD72 +_0808DC3A: + movs r0, #3 + strb r0, [r7, #0xc] + movs r0, #0x73 + bl PlaySFX + b _0808DD72 +_0808DC46: + ldrb r0, [r7, #0xb] + cmp r0, #0 + beq _0808DC4E + b _0808DD72 +_0808DC4E: + ldr r0, _0808DCC8 @ =gLinkEntity + movs r2, #0x32 + ldrsh r1, [r0, r2] + movs r3, #0x32 + ldrsh r0, [r7, r3] + cmp r1, r0 + bge _0808DCDC + ldr r0, _0808DCCC @ =gLinkState + ldrb r0, [r0, #0x12] + cmp r0, #0x1e + bne _0808DC66 + b _0808DD72 +_0808DC66: + adds r0, r7, #0 + bl sub_080002A0 + ldr r1, _0808DCD0 @ =0x00004017 + cmp r0, r1 + beq _0808DC74 + b _0808DD72 +_0808DC74: + ldr r0, _0808DCD4 @ =0x00004023 + movs r5, #0x2e + ldrsh r1, [r7, r5] + ldr r4, _0808DCD8 @ =gRoomControls + ldrh r2, [r4, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + movs r5, #0x3f + ands r1, r5 + movs r3, #0x32 + ldrsh r2, [r7, r3] + ldrh r3, [r4, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r5 + lsls r2, r2, #6 + orrs r1, r2 + adds r6, r7, #0 + adds r6, #0x38 + ldrb r2, [r6] + bl UpdateCollisionLayer + movs r1, #0x2e + ldrsh r0, [r7, r1] + ldrh r1, [r4, #6] + subs r0, r0, r1 + asrs r0, r0, #4 + ands r0, r5 + movs r2, #0x32 + ldrsh r1, [r7, r2] + ldrh r2, [r4, #8] + adds r2, #0x10 + subs r1, r1, r2 + asrs r1, r1, #4 + ands r1, r5 + lsls r1, r1, #6 + orrs r0, r1 + ldrb r1, [r6] + bl sub_0807BA8C + b _0808DD72 + .align 2, 0 +_0808DCC8: .4byte gLinkEntity +_0808DCCC: .4byte gLinkState +_0808DCD0: .4byte 0x00004017 +_0808DCD4: .4byte 0x00004023 +_0808DCD8: .4byte gRoomControls +_0808DCDC: + adds r0, r7, #0 + bl sub_080002A0 + ldr r3, _0808DD44 @ =0x00004017 + mov r8, r3 + cmp r0, r8 + beq _0808DD72 + movs r5, #0x2e + ldrsh r1, [r7, r5] + ldr r5, _0808DD48 @ =gRoomControls + ldrh r0, [r5, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + movs r6, #0x3f + ands r1, r6 + movs r2, #0x32 + ldrsh r0, [r7, r2] + ldrh r2, [r5, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r6 + lsls r0, r0, #6 + orrs r1, r0 + adds r4, r7, #0 + adds r4, #0x38 + ldrb r2, [r4] + mov r0, r8 + bl UpdateCollisionLayer + ldrb r0, [r7, #0xa] + cmp r0, #0 + bne _0808DD4C + movs r3, #0x2e + ldrsh r1, [r7, r3] + ldrh r0, [r5, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + ands r1, r6 + movs r2, #0x32 + ldrsh r0, [r7, r2] + ldrh r2, [r5, #8] + adds r2, #0x10 + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r6 + lsls r0, r0, #6 + orrs r1, r0 + ldrb r2, [r4] + mov r0, r8 + bl UpdateCollisionLayer + b _0808DD72 + .align 2, 0 +_0808DD44: .4byte 0x00004017 +_0808DD48: .4byte gRoomControls +_0808DD4C: + ldr r0, _0808DD78 @ =0x00004014 + movs r3, #0x2e + ldrsh r1, [r7, r3] + ldrh r2, [r5, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + ands r1, r6 + movs r3, #0x32 + ldrsh r2, [r7, r3] + ldrh r3, [r5, #8] + adds r3, #0x10 + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r6 + lsls r2, r2, #6 + orrs r1, r2 + ldrb r2, [r4] + bl UpdateCollisionLayer +_0808DD72: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0808DD78: .4byte 0x00004014 + + thumb_func_start sub_0808DD7C +sub_0808DD7C: @ 0x0808DD7C + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xa] + cmp r0, #0 + beq _0808DD9C + ldr r0, _0808DD98 @ =gUnk_081217B0 + ldrb r1, [r2, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r2, #0 + bl _call_via_r1 + b _0808DDAC + .align 2, 0 +_0808DD98: .4byte gUnk_081217B0 +_0808DD9C: + ldr r0, _0808DDB0 @ =gUnk_081217A8 + ldrb r1, [r2, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r2, #0 + bl _call_via_r1 +_0808DDAC: + pop {pc} + .align 2, 0 +_0808DDB0: .4byte gUnk_081217A8 + + thumb_func_start sub_0808DDB4 +sub_0808DDB4: @ 0x0808DDB4 + push {r4, lr} + adds r4, r0, #0 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r0, [r4, #0xa] + cmp r0, #0 + beq _0808DDDC + movs r0, #0x78 + strb r0, [r4, #0xe] + adds r1, r4, #0 + adds r1, #0x6c + movs r0, #0xf0 + strh r0, [r1] + adds r0, r4, #0 + movs r1, #0 + bl UpdateSprite + adds r0, r4, #0 + bl sub_0808DDE8 +_0808DDDC: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0808DDE0 +sub_0808DDE0: @ 0x0808DDE0 + push {lr} + bl sub_0805E780 + pop {pc} + + thumb_func_start sub_0808DDE8 +sub_0808DDE8: @ 0x0808DDE8 + push {r4, r5, lr} + adds r5, r0, #0 + adds r4, r5, #0 + adds r4, #0x6c + ldrh r0, [r4] + subs r0, #1 + strh r0, [r4] + bl sub_0807953C + cmp r0, #0 + beq _0808DE04 + ldrb r0, [r5, #0xf] + adds r0, #1 + strb r0, [r5, #0xf] +_0808DE04: + ldrb r0, [r5, #0xf] + cmp r0, #0x1e + bhi _0808DE1C + ldr r0, _0808DE8C @ =gLinkState + ldr r0, [r0, #0x30] + ldr r1, _0808DE90 @ =0x00001810 + ands r0, r1 + cmp r0, #0 + bne _0808DE1C + ldrh r0, [r4] + cmp r0, #0 + bne _0808DE2A +_0808DE1C: + ldr r0, _0808DE8C @ =gLinkState + ldr r1, [r0, #0x30] + ldr r2, _0808DE94 @ =0xFFFFFBFF + ands r1, r2 + str r1, [r0, #0x30] + bl sub_0805E780 +_0808DE2A: + ldr r3, _0808DE98 @ =gLinkEntity + ldr r1, _0808DE9C @ =gUnk_081217B8 + ldrb r0, [r3, #0x14] + lsrs r0, r0, #1 + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldrh r1, [r3, #0x2e] + adds r0, r0, r1 + strh r0, [r5, #0x2e] + ldrh r0, [r3, #0x32] + subs r0, #6 + strh r0, [r5, #0x32] + ldr r0, [r3, #0x34] + str r0, [r5, #0x34] + adds r0, r3, #0 + adds r0, #0x38 + ldrb r1, [r0] + adds r0, r5, #0 + adds r0, #0x38 + strb r1, [r0] + ldrb r2, [r3, #0x19] + lsrs r2, r2, #6 + lsls r2, r2, #6 + ldrb r4, [r5, #0x19] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r4 + orrs r0, r2 + strb r0, [r5, #0x19] + ldrb r0, [r3, #0x1b] + lsrs r0, r0, #6 + lsls r0, r0, #6 + ldrb r2, [r5, #0x1b] + ands r1, r2 + orrs r1, r0 + strb r1, [r5, #0x1b] + ldr r0, _0808DE8C @ =gLinkState + ldr r0, [r0, #0x30] + movs r1, #0x80 + lsls r1, r1, #3 + ands r0, r1 + cmp r0, #0 + beq _0808DEA0 + adds r0, r5, #0 + bl sub_08004274 + b _0808DEA4 + .align 2, 0 +_0808DE8C: .4byte gLinkState +_0808DE90: .4byte 0x00001810 +_0808DE94: .4byte 0xFFFFFBFF +_0808DE98: .4byte gLinkEntity +_0808DE9C: .4byte gUnk_081217B8 +_0808DEA0: + bl sub_0805E780 +_0808DEA4: + ldr r1, _0808DEC0 @ =gLinkEntity + ldrb r0, [r1, #0x14] + lsrs r0, r0, #1 + cmp r0, #2 + bne _0808DEC4 + adds r0, r1, #0 + movs r1, #3 + adds r2, r5, #0 + bl sub_0806FEBC + ldrh r0, [r5, #0x32] + subs r0, #5 + strh r0, [r5, #0x32] + b _0808DECE + .align 2, 0 +_0808DEC0: .4byte gLinkEntity +_0808DEC4: + adds r0, r1, #0 + movs r1, #0 + adds r2, r5, #0 + bl sub_0806FEBC +_0808DECE: + pop {r4, r5, pc} + + thumb_func_start sub_0808DED0 +sub_0808DED0: @ 0x0808DED0 + push {lr} + ldr r2, _0808DEE4 @ =gUnk_081217BC + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0808DEE4: .4byte gUnk_081217BC + + thumb_func_start sub_0808DEE8 +sub_0808DEE8: @ 0x0808DEE8 + push {r4, r5, lr} + adds r5, r0, #0 + movs r4, #0 + movs r0, #1 + strb r0, [r5, #0xc] + ldrb r1, [r5, #0x10] + movs r0, #0x20 + orrs r0, r1 + strb r0, [r5, #0x10] + adds r2, r5, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] + ldr r3, _0808DF74 @ =gLinkEntity + ldrb r1, [r3, #0x1b] + lsrs r1, r1, #6 + lsls r1, r1, #6 + ldrb r2, [r5, #0x1b] + movs r0, #0x3f + ands r0, r2 + orrs r0, r1 + strb r0, [r5, #0x1b] + ldrb r0, [r3, #0x14] + lsrs r0, r0, #1 + strb r0, [r5, #0x14] + adds r0, #1 + movs r1, #3 + ands r0, r1 + lsls r0, r0, #3 + strb r0, [r5, #0x15] + movs r3, #6 + movs r0, #6 + strb r0, [r5, #0xf] + movs r0, #0xa0 + lsls r0, r0, #1 + strh r0, [r5, #0x24] + adds r1, r5, #0 + adds r1, #0x60 + movs r0, #0x3c + strh r0, [r1] + ldrb r1, [r5, #0x1a] + movs r2, #0x10 + rsbs r2, r2, #0 + adds r0, r2, #0 + ands r0, r1 + movs r1, #4 + orrs r0, r1 + strb r0, [r5, #0x1a] + adds r0, r5, #0 + adds r0, #0x72 + strh r4, [r0] + subs r0, #6 + strh r4, [r0] + ldrb r0, [r5, #0x11] + ands r2, r0 + orrs r2, r3 + strb r2, [r5, #0x11] + adds r0, r5, #0 + movs r1, #7 + bl UpdateSprite + ldrb r0, [r5, #0xb] + cmp r0, #0 + beq _0808DF78 + movs r0, #0x28 + strb r0, [r5, #0xe] + b _0808DFAA + .align 2, 0 +_0808DF74: .4byte gLinkEntity +_0808DF78: + ldrb r1, [r5, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r5, #0x18] + ldr r0, _0808DF9C @ =gLinkState + adds r0, #0xac + ldrh r1, [r0] + movs r0, #0x80 + lsls r0, r0, #2 + ands r0, r1 + cmp r0, #0 + beq _0808DFA0 + movs r0, #0x28 + b _0808DFA2 + .align 2, 0 +_0808DF9C: .4byte gLinkState +_0808DFA0: + movs r0, #0x50 +_0808DFA2: + strb r0, [r5, #0xe] + adds r0, r5, #0 + bl sub_0808DFAC +_0808DFAA: + pop {r4, r5, pc} + + thumb_func_start sub_0808DFAC +sub_0808DFAC: @ 0x0808DFAC + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xb] + cmp r0, #0 + beq _0808E00E + ldr r1, _0808DFF0 @ =gLinkState + adds r0, r1, #0 + adds r0, #0x21 + ldrb r0, [r0] + cmp r0, #0 + beq _0808DFCC + ldrb r1, [r1, #4] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0808DFD0 +_0808DFCC: + bl sub_0805E780 +_0808DFD0: + ldr r0, _0808DFF0 @ =gLinkState + adds r2, r0, #0 + adds r2, #0x21 + ldrb r0, [r2] + cmp r0, #0x4f + bls _0808DFF8 + ldrb r0, [r4, #0x18] + movs r1, #4 + rsbs r1, r1, #0 + ands r1, r0 + movs r0, #1 + orrs r1, r0 + strb r1, [r4, #0x18] + ldrb r6, [r2] + ldr r7, _0808DFF4 @ =gUnk_081217D8 + b _0808E038 + .align 2, 0 +_0808DFF0: .4byte gLinkState +_0808DFF4: .4byte gUnk_081217D8 +_0808DFF8: + cmp r0, #0 + beq _0808E008 + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] + b _0808E1BA +_0808E008: + bl sub_0805E780 + b _0808E038 +_0808E00E: + ldr r5, _0808E02C @ =gLinkState + ldrb r0, [r5, #4] + cmp r0, #0 + bne _0808E01A + bl sub_0805E780 +_0808E01A: + ldrb r1, [r5, #0x1b] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0808E034 + ldrb r6, [r5, #0x1b] + ldr r7, _0808E030 @ =gUnk_081217D0 + b _0808E038 + .align 2, 0 +_0808E02C: .4byte gLinkState +_0808E030: .4byte gUnk_081217D0 +_0808E034: + bl sub_0805E780 +_0808E038: + cmp r6, #0 + bne _0808E03E + b _0808E1B6 +_0808E03E: + adds r0, r4, #0 + bl sub_08004274 + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _0808E084 + subs r0, #1 + strb r0, [r4, #0xe] + movs r2, #3 + ldrb r0, [r4, #0xb] + cmp r0, #0 + bne _0808E068 + ldr r0, _0808E080 @ =gLinkState + adds r0, #0xac + ldrh r1, [r0] + movs r0, #0x80 + lsls r0, r0, #2 + ands r0, r1 + cmp r0, #0 + bne _0808E068 + movs r2, #7 +_0808E068: + ldrb r0, [r4, #0xe] + ands r0, r2 + adds r5, r4, #0 + adds r5, #0x6c + adds r6, r4, #0 + adds r6, #0x38 + cmp r0, #0 + bne _0808E0E4 + ldrh r0, [r5] + adds r0, #1 + strh r0, [r5] + b _0808E0E4 + .align 2, 0 +_0808E080: .4byte gLinkState +_0808E084: + adds r5, r4, #0 + adds r5, #0x72 + ldrh r0, [r5] + cmp r0, #0 + beq _0808E0BC + ldr r0, _0808E0B8 @ =gUnk_030010A0 + ldr r1, [r0] + movs r0, #0x1f + ands r1, r0 + subs r5, #6 + adds r6, r4, #0 + adds r6, #0x38 + cmp r1, #0 + bne _0808E0E4 + adds r0, r4, #0 + movs r1, #7 + movs r2, #0 + bl CreateFx + cmp r0, #0 + beq _0808E0E4 + ldrb r1, [r6] + adds r0, #0x38 + strb r1, [r0] + b _0808E0E4 + .align 2, 0 +_0808E0B8: .4byte gUnk_030010A0 +_0808E0BC: + ldr r0, _0808E140 @ =0x00000115 + bl sub_08004488 + adds r0, r4, #0 + movs r1, #0x12 + movs r2, #0 + bl CreateFx + adds r6, r4, #0 + adds r6, #0x38 + cmp r0, #0 + beq _0808E0DA + ldrb r1, [r6] + adds r0, #0x38 + strb r1, [r0] +_0808E0DA: + ldrh r0, [r5] + adds r0, #1 + strh r0, [r5] + adds r5, r4, #0 + adds r5, #0x6c +_0808E0E4: + ldr r2, _0808E144 @ =gLinkEntity + ldrb r1, [r2, #0x19] + lsrs r1, r1, #6 + lsls r1, r1, #6 + ldrb r3, [r4, #0x19] + movs r0, #0x3f + ands r0, r3 + orrs r0, r1 + strb r0, [r4, #0x19] + ldrb r0, [r4, #0x14] + lsls r0, r0, #1 + adds r0, r7, r0 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldrh r1, [r2, #0x2e] + adds r0, r0, r1 + strh r0, [r4, #0x2e] + ldrb r0, [r4, #0x14] + lsls r0, r0, #1 + adds r0, r0, r7 + ldrb r0, [r0, #1] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldrh r1, [r2, #0x32] + adds r0, r0, r1 + strh r0, [r4, #0x32] + ldrh r0, [r2, #0x36] + strh r0, [r4, #0x36] + adds r2, #0x38 + ldrb r0, [r2] + strb r0, [r6] + ldrb r0, [r4, #0x14] + cmp r0, #1 + beq _0808E148 + cmp r0, #1 + ble _0808E136 + cmp r0, #2 + beq _0808E150 + cmp r0, #3 + beq _0808E15A +_0808E136: + ldrh r0, [r4, #0x32] + ldrh r1, [r5] + subs r0, r0, r1 + strh r0, [r4, #0x32] + b _0808E162 + .align 2, 0 +_0808E140: .4byte 0x00000115 +_0808E144: .4byte gLinkEntity +_0808E148: + ldrh r0, [r5] + ldrh r1, [r4, #0x2e] + adds r0, r0, r1 + b _0808E160 +_0808E150: + ldrh r0, [r5] + ldrh r1, [r4, #0x32] + adds r0, r0, r1 + strh r0, [r4, #0x32] + b _0808E162 +_0808E15A: + ldrh r0, [r4, #0x2e] + ldrh r1, [r5] + subs r0, r0, r1 +_0808E160: + strh r0, [r4, #0x2e] +_0808E162: + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0808E17A + movs r0, #6 + strb r0, [r4, #0xf] + ldrb r0, [r4, #0x15] + movs r1, #0x10 + eors r0, r1 + strb r0, [r4, #0x15] +_0808E17A: + adds r0, r4, #0 + bl sub_0806F69C + ldrb r0, [r4, #0xb] + cmp r0, #0 + bne _0808E1BA + ldr r0, _0808E1AC @ =gLinkState + ldrb r1, [r0, #0x1b] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _0808E1BA + ldrb r0, [r4, #0x10] + movs r1, #0xdf + ands r1, r0 + strb r1, [r4, #0x10] + movs r0, #6 + bl GetInventoryValue + cmp r0, #1 + bne _0808E1B0 + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + b _0808E1BA + .align 2, 0 +_0808E1AC: .4byte gLinkState +_0808E1B0: + bl sub_0805E780 + b _0808E1BA +_0808E1B6: + bl sub_0805E780 +_0808E1BA: + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_0808E1BC +sub_0808E1BC: @ 0x0808E1BC + push {r4, lr} + adds r4, r0, #0 + bl sub_08079BD8 + ldrb r0, [r4, #0xc] + adds r0, #1 + movs r2, #0 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + ldr r0, _0808E204 @ =gLinkEntity + ldrb r0, [r0, #0x14] + strb r0, [r4, #0x14] + adds r0, r4, #0 + adds r0, #0x60 + strh r2, [r0] + ldrb r1, [r4, #0x1a] + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #4 + orrs r0, r1 + strb r0, [r4, #0x1a] + movs r0, #0xaf + strh r0, [r4, #0x12] + ldrb r1, [r4, #0x14] + lsrs r1, r1, #1 + adds r0, r4, #0 + bl UpdateSprite + pop {r4, pc} + .align 2, 0 +_0808E204: .4byte gLinkEntity + + thumb_func_start sub_0808E208 +sub_0808E208: @ 0x0808E208 + push {r4, lr} + adds r4, r0, #0 + bl sub_08079BD8 + adds r0, r4, #0 + bl sub_08004274 + ldr r0, _0808E240 @ =gLinkState + ldrb r0, [r0, #0x1b] + cmp r0, #0 + beq _0808E248 + ldr r0, _0808E244 @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #3 + ands r0, r1 + cmp r0, #0 + bne _0808E24C + ldrb r2, [r4, #0x1a] + lsls r1, r2, #0x1c + lsrs r1, r1, #0x1c + movs r0, #4 + eors r1, r0 + subs r0, #0x14 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x1a] + b _0808E24C + .align 2, 0 +_0808E240: .4byte gLinkState +_0808E244: .4byte gUnk_030010A0 +_0808E248: + bl sub_0805E780 +_0808E24C: + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0808E260 + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] +_0808E260: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0808E264 +sub_0808E264: @ 0x0808E264 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r4, #0x5a + ldrb r1, [r4] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0808E27C + bl sub_0805E780 +_0808E27C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0808E280 +sub_0808E280: @ 0x0808E280 + push {lr} + ldr r2, _0808E294 @ =gUnk_08121B8C + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0808E294: .4byte gUnk_08121B8C + + thumb_func_start sub_0808E298 +sub_0808E298: @ 0x0808E298 + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r0, #0x38 + movs r1, #2 + strb r1, [r0] + movs r0, #1 + strb r0, [r4, #0xc] + movs r5, #0 + movs r6, #0 + adds r0, r4, #0 + bl sub_080002A0 + adds r1, r0, #0 + movs r0, #0xd1 + lsls r0, r0, #2 + cmp r1, r0 + beq _0808E2DA + cmp r1, r0 + bhi _0808E2C6 + subs r0, #1 + cmp r1, r0 + beq _0808E2D8 + b _0808E2E2 +_0808E2C6: + ldr r0, _0808E2D4 @ =0x00000345 + cmp r1, r0 + beq _0808E2DE + adds r0, #1 + cmp r1, r0 + beq _0808E2E6 + b _0808E2E2 + .align 2, 0 +_0808E2D4: .4byte 0x00000345 +_0808E2D8: + movs r5, #0x10 +_0808E2DA: + movs r6, #0x10 + b _0808E2E6 +_0808E2DE: + movs r5, #0x10 + b _0808E2E6 +_0808E2E2: + bl sub_0805E780 +_0808E2E6: + ldrh r0, [r4, #0x2e] + adds r0, r0, r5 + movs r2, #0x10 + rsbs r2, r2, #0 + adds r1, r2, #0 + ands r0, r1 + strh r0, [r4, #0x2e] + ldrh r0, [r4, #0x32] + adds r0, r0, r6 + ands r0, r1 + strh r0, [r4, #0x32] + adds r0, r4, #0 + movs r1, #0 + bl UpdateSprite + ldr r1, _0808E314 @ =0x00000347 + adds r0, r4, #0 + bl sub_0808E354 + adds r0, r4, #0 + bl sub_0808E318 + pop {r4, r5, r6, pc} + .align 2, 0 +_0808E314: .4byte 0x00000347 + + thumb_func_start sub_0808E318 +sub_0808E318: @ 0x0808E318 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0808E340 + ldr r1, _0808E33C @ =0x00000343 + adds r0, r4, #0 + bl sub_0808E354 + bl sub_0805E780 + b _0808E34E + .align 2, 0 +_0808E33C: .4byte 0x00000343 +_0808E340: + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0808E34E + ldr r0, _0808E350 @ =0x0000018B + bl sub_08004488 +_0808E34E: + pop {r4, pc} + .align 2, 0 +_0808E350: .4byte 0x0000018B + + thumb_func_start sub_0808E354 +sub_0808E354: @ 0x0808E354 + push {r4, r5, r6, lr} + mov r6, r8 + push {r6} + adds r6, r0, #0 + lsls r1, r1, #0x10 + mov r8, r1 + mov r0, r8 + lsrs r0, r0, #0x10 + mov r8, r0 + movs r2, #0x2e + ldrsh r1, [r6, r2] + ldr r5, _0808E410 @ =gRoomControls + ldrh r0, [r5, #6] + adds r0, #0x10 + subs r1, r1, r0 + asrs r1, r1, #4 + movs r4, #0x3f + ands r1, r4 + movs r3, #0x32 + ldrsh r0, [r6, r3] + ldrh r2, [r5, #8] + adds r2, #0x10 + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r4 + lsls r0, r0, #6 + orrs r1, r0 + mov r0, r8 + movs r2, #2 + bl sub_0807B7D8 + mov r0, r8 + adds r0, #1 + movs r2, #0x2e + ldrsh r1, [r6, r2] + ldrh r2, [r5, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + ands r1, r4 + movs r3, #0x32 + ldrsh r2, [r6, r3] + ldrh r3, [r5, #8] + adds r3, #0x10 + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r4 + lsls r2, r2, #6 + orrs r1, r2 + movs r2, #2 + bl sub_0807B7D8 + mov r0, r8 + adds r0, #2 + movs r2, #0x2e + ldrsh r1, [r6, r2] + ldrh r2, [r5, #6] + adds r2, #0x10 + subs r1, r1, r2 + asrs r1, r1, #4 + ands r1, r4 + movs r3, #0x32 + ldrsh r2, [r6, r3] + ldrh r3, [r5, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r4 + lsls r2, r2, #6 + orrs r1, r2 + movs r2, #2 + bl sub_0807B7D8 + movs r0, #3 + add r8, r0 + movs r2, #0x2e + ldrsh r1, [r6, r2] + ldrh r0, [r5, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + ands r1, r4 + movs r3, #0x32 + ldrsh r0, [r6, r3] + ldrh r2, [r5, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r4 + lsls r0, r0, #6 + orrs r1, r0 + mov r0, r8 + movs r2, #2 + bl sub_0807B7D8 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, pc} + .align 2, 0 +_0808E410: .4byte gRoomControls + + thumb_func_start sub_0808E414 +sub_0808E414: @ 0x0808E414 + push {lr} + ldr r2, _0808E428 @ =gUnk_08121BD8 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0808E428: .4byte gUnk_08121BD8 + + thumb_func_start sub_0808E42C +sub_0808E42C: @ 0x0808E42C + push {lr} + movs r1, #1 + strb r1, [r0, #0xc] + ldrb r2, [r0, #0x11] + subs r1, #0x11 + ands r1, r2 + movs r2, #6 + orrs r1, r2 + strb r1, [r0, #0x11] + ldrb r1, [r0, #0xa] + bl UpdateSprite + pop {pc} + .align 2, 0 + + thumb_func_start sub_0808E448 +sub_0808E448: @ 0x0808E448 + push {r4, lr} + adds r4, r0, #0 + movs r0, #0x10 + bl sub_0805436C + cmp r0, #1 + bls _0808E45A + bl sub_0805E780 +_0808E45A: + adds r0, r4, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r0, [r0] + cmp r0, #1 + beq _0808E472 + cmp r0, #0x80 + bne _0808E486 + bl sub_0805E780 +_0808E472: + ldrb r2, [r4, #0x18] + lsls r1, r2, #0x1e + lsrs r1, r1, #0x1e + movs r0, #1 + eors r1, r0 + subs r0, #5 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x18] + b _0808E494 +_0808E486: + ldrb r0, [r4, #0x18] + movs r1, #4 + rsbs r1, r1, #0 + ands r1, r0 + movs r0, #1 + orrs r1, r0 + strb r1, [r4, #0x18] +_0808E494: + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _0808E4A2 + ldr r0, [r4, #0x34] + ldr r1, _0808E4A4 @ =0xFFFF8000 + adds r0, r0, r1 + str r0, [r4, #0x34] +_0808E4A2: + pop {r4, pc} + .align 2, 0 +_0808E4A4: .4byte 0xFFFF8000 + + thumb_func_start sub_0808E4A8 +sub_0808E4A8: @ 0x0808E4A8 + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldrb r2, [r4, #0xa] + lsls r1, r2, #1 + ldr r0, _0808E540 @ =gUnk_08121C40 + adds r3, r1, r0 + ldrb r6, [r4, #0xc] + cmp r6, #0 + bne _0808E54C + movs r5, #1 + strb r5, [r4, #0xc] + movs r2, #0 + ldrb r0, [r4, #0xb] + cmp r0, #0 + bne _0808E4C8 + movs r2, #1 +_0808E4C8: + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x18] + ldrb r0, [r4, #0xa] + strb r0, [r4, #0x1e] + adds r0, r4, #0 + adds r0, #0x38 + strb r5, [r0] + ldrb r1, [r3] + lsls r1, r1, #6 + ldrb r2, [r4, #0x19] + movs r0, #0x3f + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x19] + ldrb r0, [r3, #1] + adds r3, r4, #0 + adds r3, #0x29 + movs r1, #7 + ands r1, r0 + ldrb r2, [r3] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + adds r0, r4, #0 + adds r0, #0x76 + strh r6, [r0] + movs r0, #0x2e + ldrsh r1, [r4, r0] + ldr r2, _0808E544 @ =gRoomControls + ldrh r0, [r2, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + movs r3, #0x3f + ands r1, r3 + movs r5, #0x32 + ldrsh r0, [r4, r5] + ldrh r2, [r2, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r1, r0 + adds r0, r4, #0 + adds r0, #0x74 + strh r1, [r0] + adds r0, r4, #0 + bl sub_0808E55C + ldr r1, _0808E548 @ =sub_0808E55C + adds r0, r4, #0 + movs r2, #0 + bl sub_08052D74 + b _0808E55A + .align 2, 0 +_0808E540: .4byte gUnk_08121C40 +_0808E544: .4byte gRoomControls +_0808E548: .4byte sub_0808E55C +_0808E54C: + movs r0, #1 + ands r2, r0 + cmp r2, #0 + bne _0808E55A + adds r0, r4, #0 + bl sub_0808E670 +_0808E55A: + pop {r4, r5, r6, pc} + + thumb_func_start sub_0808E55C +sub_0808E55C: @ 0x0808E55C + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + mov r8, r0 + ldrb r0, [r0, #0xa] + cmp r0, #1 + beq _0808E614 + cmp r0, #1 + bgt _0808E576 + cmp r0, #0 + beq _0808E57A + b _0808E63A +_0808E576: + cmp r0, #2 + bne _0808E63A +_0808E57A: + mov r0, r8 + adds r0, #0x74 + ldrh r6, [r0] + ldr r0, _0808E5FC @ =0xFFFFFEFF + adds r7, r6, r0 + ldr r4, _0808E600 @ =0x0000408F + mov r5, r8 + adds r5, #0x38 + ldrb r2, [r5] + adds r0, r4, #0 + adds r1, r7, #0 + bl UpdateCollisionLayer + ldr r2, _0808E604 @ =0xFFFFFF00 + adds r1, r6, r2 + ldrb r2, [r5] + adds r0, r4, #0 + bl UpdateCollisionLayer + ldr r0, _0808E608 @ =0x0000406C + ldr r2, _0808E60C @ =0xFFFFFEFE + adds r1, r6, r2 + ldrb r2, [r5] + bl UpdateCollisionLayer + ldr r0, _0808E610 @ =0x0000406D + adds r1, r6, #0 + subs r1, #0xff + ldrb r2, [r5] + bl UpdateCollisionLayer + mov r1, r8 + ldrb r0, [r1, #0xa] + movs r2, #6 + mov sb, r2 + cmp r0, #0 + beq _0808E63A + movs r0, #4 + mov sb, r0 + subs r4, #0x1d + adds r1, r6, #0 + adds r1, #0x3f + ldrb r2, [r5] + adds r0, r4, #0 + bl UpdateCollisionLayer + adds r1, r6, #0 + adds r1, #0x40 + ldrb r2, [r5] + adds r0, r4, #0 + bl UpdateCollisionLayer + adds r1, r6, #0 + adds r1, #0x7f + ldrb r2, [r5] + adds r0, r4, #0 + bl UpdateCollisionLayer + adds r1, r6, #0 + adds r1, #0x80 + ldrb r2, [r5] + adds r0, r4, #0 + bl UpdateCollisionLayer + b _0808E63A + .align 2, 0 +_0808E5FC: .4byte 0xFFFFFEFF +_0808E600: .4byte 0x0000408F +_0808E604: .4byte 0xFFFFFF00 +_0808E608: .4byte 0x0000406C +_0808E60C: .4byte 0xFFFFFEFE +_0808E610: .4byte 0x0000406D +_0808E614: + mov r0, r8 + adds r0, #0x74 + ldrh r6, [r0] + subs r7, r6, #1 + ldr r5, _0808E66C @ =0x0000408E + mov r4, r8 + adds r4, #0x38 + ldrb r2, [r4] + adds r0, r5, #0 + adds r1, r7, #0 + bl UpdateCollisionLayer + ldrb r2, [r4] + adds r0, r5, #0 + adds r1, r6, #0 + bl UpdateCollisionLayer + movs r1, #2 + mov sb, r1 +_0808E63A: + movs r5, #0 + cmp r5, sb + bhs _0808E662 + ldr r6, _0808E66C @ =0x0000408E + mov r4, r8 + adds r4, #0x38 +_0808E646: + adds r7, #0x40 + ldrb r2, [r4] + adds r0, r6, #0 + adds r1, r7, #0 + bl UpdateCollisionLayer + adds r1, r7, #1 + ldrb r2, [r4] + adds r0, r6, #0 + bl UpdateCollisionLayer + adds r5, #1 + cmp r5, sb + blo _0808E646 +_0808E662: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0808E66C: .4byte 0x0000408E + + thumb_func_start sub_0808E670 +sub_0808E670: @ 0x0808E670 + push {lr} + adds r0, #0x74 + ldrh r0, [r0] + ldr r1, _0808E684 @ =0xFFFFFEFF + adds r0, r0, r1 + movs r1, #1 + bl sub_080002B0 + pop {pc} + .align 2, 0 +_0808E684: .4byte 0xFFFFFEFF + + thumb_func_start sub_0808E688 +sub_0808E688: @ 0x0808E688 + push {lr} + ldr r2, _0808E69C @ =gUnk_08121C48 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0808E69C: .4byte gUnk_08121C48 + + thumb_func_start sub_0808E6A0 +sub_0808E6A0: @ 0x0808E6A0 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x84 + ldrh r0, [r0] + bl sub_0807CBE4 + cmp r0, #0 + beq _0808E6B4 + bl sub_0805E780 +_0808E6B4: + movs r0, #1 + strb r0, [r4, #0xc] + movs r0, #0x62 + strb r0, [r4, #0xa] + ldrb r1, [r4, #0x18] + subs r0, #0x66 + ands r0, r1 + strb r0, [r4, #0x18] + ldr r0, _0808E6E0 @ =gUnk_08121C58 + str r0, [r4, #0x48] + adds r1, r4, #0 + adds r1, #0x38 + movs r2, #3 + movs r0, #3 + strb r0, [r1] + ldrb r1, [r4, #0x11] + subs r0, #0x13 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x11] + pop {r4, pc} + .align 2, 0 +_0808E6E0: .4byte gUnk_08121C58 + + thumb_func_start sub_0808E6E4 +sub_0808E6E4: @ 0x0808E6E4 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CBE4 + cmp r0, #0 + beq _0808E712 + movs r0, #2 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #6 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + ldrb r0, [r4, #0x19] + movs r1, #3 + orrs r0, r1 + strb r0, [r4, #0x19] + adds r0, r4, #0 + bl sub_0808E714 +_0808E712: + pop {r4, pc} + + thumb_func_start sub_0808E714 +sub_0808E714: @ 0x0808E714 + push {r4, lr} + adds r4, r0, #0 + ldrb r3, [r4, #0xf] + lsls r0, r3, #3 + movs r1, #0x80 + lsls r1, r1, #3 + subs r2, r1, r0 + movs r0, #0x80 + lsls r0, r0, #1 + cmp r2, r0 + ble _0808E73A + adds r0, r3, #1 + strb r0, [r4, #0xf] + adds r0, r4, #0 + adds r1, r2, #0 + movs r3, #0 + bl sub_0805EC9C + b _0808E756 +_0808E73A: + movs r0, #3 + strb r0, [r4, #0xc] + adds r2, r4, #0 + adds r2, #0x3c + ldrb r1, [r2] + movs r0, #0x10 + orrs r0, r1 + strb r0, [r2] + adds r0, r4, #0 + bl sub_0805EC60 + ldr r0, _0808E760 @ =0x00000141 + bl PlaySFX +_0808E756: + adds r0, r4, #0 + bl sub_08080CB4 + pop {r4, pc} + .align 2, 0 +_0808E760: .4byte 0x00000141 + + thumb_func_start sub_0808E764 +sub_0808E764: @ 0x0808E764 + push {r4, lr} + adds r4, r0, #0 + bl sub_08080CB4 + ldr r0, _0808E79C @ =gLinkState + ldr r0, [r0, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0808E79A + adds r0, r4, #0 + bl sub_08017850 + cmp r0, #0 + beq _0808E79A + adds r0, r4, #0 + adds r0, #0x84 + ldrh r0, [r0] + bl sub_0807CCC8 + movs r0, #0x62 + movs r1, #0 + movs r2, #0 + bl sub_080A7C00 + bl sub_0805E780 +_0808E79A: + pop {r4, pc} + .align 2, 0 +_0808E79C: .4byte gLinkState + + thumb_func_start sub_0808E7A0 +sub_0808E7A0: @ 0x0808E7A0 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x45 + ldrb r0, [r0] + cmp r0, #0 + bne _0808E7B2 + adds r0, r4, #0 + bl sub_0808EFF0 +_0808E7B2: + ldr r1, _0808E7D4 @ =gUnk_08121C64 + ldrb r0, [r4, #0xa] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + adds r0, r4, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r0, #0x3f + bhi _0808E7D2 + adds r0, r4, #0 + bl sub_080042B8 +_0808E7D2: + pop {r4, pc} + .align 2, 0 +_0808E7D4: .4byte gUnk_08121C64 + + thumb_func_start sub_0808E7D8 +sub_0808E7D8: @ 0x0808E7D8 + push {lr} + ldr r2, _0808E7EC @ =gUnk_08121CCC + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0808E7EC: .4byte gUnk_08121CCC + + thumb_func_start sub_0808E7F0 +sub_0808E7F0: @ 0x0808E7F0 + push {r4, lr} + adds r4, r0, #0 + movs r1, #1 + movs r2, #2 + bl sub_080AE008 + ldrb r0, [r4, #0x1a] + movs r1, #0xf + orrs r0, r1 + strb r0, [r4, #0x1a] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] + movs r0, #0xff + strb r0, [r4, #0xb] + movs r0, #1 + strb r0, [r4, #0xc] + pop {r4, pc} + + thumb_func_start sub_0808E818 +sub_0808E818: @ 0x0808E818 + push {r4, r5, r6, lr} + adds r4, r0, #0 + bl sub_0808E950 + cmp r0, #0 + bne _0808E840 + movs r1, #1 + rsbs r1, r1, #0 + strb r1, [r4, #0xb] + adds r0, r4, #0 + adds r0, #0x68 + strh r1, [r0] + adds r0, #2 + strh r1, [r0] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] + b _0808E94E +_0808E840: + ldr r0, _0808E8C0 @ =gUnk_02019EE0 + ldrb r1, [r0, #6] + ldrb r0, [r4, #0xb] + adds r6, r4, #0 + adds r6, #0x68 + adds r5, r4, #0 + adds r5, #0x70 + cmp r0, r1 + beq _0808E894 + strb r1, [r4, #0xb] + movs r0, #0x14 + bl GetProgressFlag + movs r2, #0x80 + lsls r2, r2, #1 + adds r1, r2, #0 + cmp r0, #0 + bne _0808E86A + movs r0, #0x80 + lsls r0, r0, #3 + adds r1, r0, #0 +_0808E86A: + strh r1, [r6] + movs r0, #4 + strb r0, [r5] + movs r0, #2 + strb r0, [r4, #0x14] + movs r0, #1 + bl sub_0807A094 + ldr r1, _0808E8C4 @ =gUnk_08133368 + subs r0, #0x16 + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + ldr r1, _0808E8C8 @ =0x00FFFFFF + ands r0, r1 + ldr r1, _0808E8CC @ =gUnk_085A2E80 + adds r0, r0, r1 + movs r1, #0x1f + movs r2, #1 + bl sub_0801D754 +_0808E894: + ldr r0, _0808E8D0 @ =gUnk_02032EC0 + ldrb r2, [r0, #2] + cmp r2, #0 + bne _0808E904 + ldr r3, _0808E8D4 @ =gUnk_03000FF0 + ldrh r1, [r3] + movs r0, #0x80 + lsls r0, r0, #2 + ands r0, r1 + cmp r0, #0 + beq _0808E904 + ldrh r1, [r3, #2] + cmp r1, #0x20 + beq _0808E8F2 + cmp r1, #0x20 + bgt _0808E8D8 + cmp r1, #2 + beq _0808E8F8 + cmp r1, #0x10 + beq _0808E8E6 + b _0808E904 + .align 2, 0 +_0808E8C0: .4byte gUnk_02019EE0 +_0808E8C4: .4byte gUnk_08133368 +_0808E8C8: .4byte 0x00FFFFFF +_0808E8CC: .4byte gUnk_085A2E80 +_0808E8D0: .4byte gUnk_02032EC0 +_0808E8D4: .4byte gUnk_03000FF0 +_0808E8D8: + cmp r1, #0x40 + beq _0808E8E2 + cmp r1, #0x80 + beq _0808E8EC + b _0808E904 +_0808E8E2: + strb r2, [r4, #0x14] + b _0808E904 +_0808E8E6: + movs r0, #1 + strb r0, [r4, #0x14] + b _0808E904 +_0808E8EC: + movs r0, #2 + strb r0, [r4, #0x14] + b _0808E904 +_0808E8F2: + movs r0, #3 + strb r0, [r4, #0x14] + b _0808E904 +_0808E8F8: + ldrb r0, [r5] + movs r1, #0 + cmp r0, #0 + bne _0808E902 + movs r1, #4 +_0808E902: + strb r1, [r5] +_0808E904: + movs r2, #0 + ldrb r0, [r4, #0x14] + cmp r0, #3 + bne _0808E90E + movs r2, #1 +_0808E90E: + lsls r2, r2, #6 + ldrb r1, [r4, #0x18] + movs r0, #0x41 + rsbs r0, r0, #0 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x18] + ldrh r0, [r6] + ldrb r1, [r5] + adds r0, r0, r1 + ldrb r2, [r4, #0x14] + adds r1, r0, r2 + adds r2, r4, #0 + adds r2, #0x6a + ldrh r0, [r2] + cmp r0, r1 + beq _0808E940 + strh r1, [r2] + lsrs r0, r1, #8 + strh r0, [r4, #0x12] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r4, #0 + bl LoadAnimation +_0808E940: + ldrb r0, [r4, #0x18] + movs r1, #4 + rsbs r1, r1, #0 + ands r1, r0 + movs r0, #2 + orrs r1, r0 + strb r1, [r4, #0x18] +_0808E94E: + pop {r4, r5, r6, pc} + + thumb_func_start sub_0808E950 +sub_0808E950: @ 0x0808E950 + push {lr} + movs r2, #0 + ldr r0, _0808E980 @ =gUnk_02032EC0 + ldrb r0, [r0, #2] + cmp r0, #0 + beq _0808E968 + cmp r0, #0 + blt _0808E97C + cmp r0, #7 + bgt _0808E97C + cmp r0, #4 + blt _0808E97C +_0808E968: + ldr r0, _0808E984 @ =gUnk_02019EE0 + adds r1, r0, #0 + adds r1, #8 + ldrb r0, [r0, #6] + adds r1, r1, r0 + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #1 + bne _0808E97C + movs r2, #1 +_0808E97C: + adds r0, r2, #0 + pop {pc} + .align 2, 0 +_0808E980: .4byte gUnk_02032EC0 +_0808E984: .4byte gUnk_02019EE0 + + thumb_func_start sub_0808E988 +sub_0808E988: @ 0x0808E988 + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xc] + cmp r0, #0 + bne _0808E9AA + movs r0, #1 + strb r0, [r5, #0xc] + movs r0, #0xa1 + lsls r0, r0, #1 + strh r0, [r5, #0x12] + movs r0, #0xff + strb r0, [r5, #0xb] + adds r0, r5, #0 + movs r1, #1 + movs r2, #3 + bl sub_080AE008 +_0808E9AA: + bl sub_0808E950 + cmp r0, #0 + beq _0808E9E8 + movs r4, #6 + b _0808E9BC +_0808E9B6: + subs r4, #1 + cmp r4, #0 + beq _0808E9E8 +_0808E9BC: + adds r0, r4, #0 + bl GetInventoryValue + cmp r0, #0 + beq _0808E9B6 + cmp r4, #0 + beq _0808E9E8 + ldrb r0, [r5, #0xb] + cmp r0, r4 + beq _0808E9D8 + adds r0, r5, #0 + adds r1, r4, #0 + bl LoadAnimation +_0808E9D8: + ldrb r0, [r5, #0x18] + movs r1, #4 + rsbs r1, r1, #0 + ands r1, r0 + movs r0, #2 + orrs r1, r0 + strb r1, [r5, #0x18] + b _0808E9F2 +_0808E9E8: + ldrb r1, [r5, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r5, #0x18] +_0808E9F2: + pop {r4, r5, pc} + + thumb_func_start sub_0808E9F4 +sub_0808E9F4: @ 0x0808E9F4 + push {r4, lr} + adds r4, r0, #0 + bl sub_0808E950 + cmp r0, #0 + beq _0808EA1C + ldr r0, _0808EA18 @ =gUnk_02002A40 + ldrb r0, [r0, #6] + cmp r0, #0 + beq _0808EA1C + ldrb r0, [r4, #0x18] + movs r1, #4 + rsbs r1, r1, #0 + ands r1, r0 + movs r0, #2 + orrs r1, r0 + strb r1, [r4, #0x18] + b _0808EA26 + .align 2, 0 +_0808EA18: .4byte gUnk_02002A40 +_0808EA1C: + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] +_0808EA26: + pop {r4, pc} + + thumb_func_start sub_0808EA28 +sub_0808EA28: @ 0x0808EA28 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + cmp r0, #3 + bne _0808EA56 + movs r0, #0x80 + lsls r0, r0, #0x12 + ldrb r0, [r0, #7] + cmp r0, #1 + bls _0808EA4C + ldrb r0, [r4, #0x18] + movs r1, #4 + rsbs r1, r1, #0 + ands r1, r0 + movs r0, #2 + orrs r1, r0 + strb r1, [r4, #0x18] + b _0808EA56 +_0808EA4C: + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] +_0808EA56: + ldr r2, _0808EA68 @ =gUnk_02019EE0 + ldrb r1, [r4, #0xa] + ldrb r0, [r2, #6] + cmp r1, r0 + bne _0808EA6C + movs r3, #0xc + movs r2, #1 + b _0808EA88 + .align 2, 0 +_0808EA68: .4byte gUnk_02019EE0 +_0808EA6C: + ldr r0, _0808EA80 @ =gUnk_02032EC0 + ldrb r0, [r0, #2] + cmp r0, #5 + bne _0808EA84 + ldrb r2, [r2, #7] + cmp r1, r2 + bne _0808EA84 + movs r3, #0xd + b _0808EA86 + .align 2, 0 +_0808EA80: .4byte gUnk_02032EC0 +_0808EA84: + movs r3, #0xe +_0808EA86: + movs r2, #2 +_0808EA88: + ldrb r1, [r4, #0x1a] + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r1 + orrs r0, r3 + strb r0, [r4, #0x1a] + lsls r2, r2, #6 + ldrb r1, [r4, #0x19] + movs r0, #0x3f + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x19] + adds r0, r4, #0 + bl sub_0808EABC + adds r0, r4, #0 + bl sub_0808EF6C + ldr r2, _0808EAB8 @ =gUnk_02019EE0 + ldrb r1, [r2] + orrs r0, r1 + strb r0, [r2] + pop {r4, pc} + .align 2, 0 +_0808EAB8: .4byte gUnk_02019EE0 + + thumb_func_start sub_0808EABC +sub_0808EABC: @ 0x0808EABC + push {r4, r5, lr} + adds r5, r0, #0 + movs r4, #0x48 + rsbs r4, r4, #0 + ldrb r1, [r5, #0xa] + lsls r0, r1, #5 + adds r2, r0, #0 + adds r2, #0x28 + movs r3, #0 + ldr r0, _0808EAEC @ =gUnk_02019EE0 + ldrb r0, [r0, #6] + cmp r0, r1 + bne _0808EAD8 + movs r3, #1 +_0808EAD8: + ldr r0, _0808EAF0 @ =gUnk_02032EC0 + ldrb r0, [r0, #2] + cmp r0, #7 + bhi _0808EB60 + lsls r0, r0, #2 + ldr r1, _0808EAF4 @ =_0808EAF8 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0808EAEC: .4byte gUnk_02019EE0 +_0808EAF0: .4byte gUnk_02032EC0 +_0808EAF4: .4byte _0808EAF8 +_0808EAF8: @ jump table + .4byte _0808EB18 @ case 0 + .4byte _0808EB60 @ case 1 + .4byte _0808EB56 @ case 2 + .4byte _0808EB1C @ case 3 + .4byte _0808EB1C @ case 4 + .4byte _0808EB26 @ case 5 + .4byte _0808EB1C @ case 6 + .4byte _0808EB1C @ case 7 +_0808EB18: + movs r4, #0x18 + b _0808EB68 +_0808EB1C: + cmp r3, #0 + beq _0808EB68 + movs r4, #0x2a + movs r2, #0x38 + b _0808EB68 +_0808EB26: + ldr r3, _0808EB3C @ =gUnk_02000080 + adds r0, r3, #0 + adds r0, #0x10 + ldrb r1, [r5, #0xa] + adds r0, r0, r1 + ldrb r1, [r0] + cmp r1, #0 + bne _0808EB40 + movs r4, #0x2a + movs r2, #0x28 + b _0808EB68 + .align 2, 0 +_0808EB3C: .4byte gUnk_02000080 +_0808EB40: + cmp r1, #0 + blt _0808EB68 + cmp r1, #2 + bgt _0808EB68 + movs r4, #0x14 + movs r2, #0x90 + ldrb r0, [r3, #0x16] + subs r0, r0, r1 + lsls r0, r0, #5 + subs r2, r2, r0 + b _0808EB68 +_0808EB56: + cmp r3, #0 + beq _0808EB68 + movs r4, #0x1a + movs r2, #0x2a + b _0808EB68 +_0808EB60: + cmp r3, #0 + beq _0808EB68 + movs r4, #8 + movs r2, #0x23 +_0808EB68: + adds r0, r5, #0 + adds r0, #0x68 + strh r4, [r0] + adds r0, #2 + strh r2, [r0] + pop {r4, r5, pc} + + thumb_func_start sub_0808EB74 +sub_0808EB74: @ 0x0808EB74 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _0808EBA8 @ =gUnk_02019EE0 + ldrb r0, [r0, #6] + bl sub_0808EC80 + adds r3, r0, #0 + cmp r3, #0 + beq _0808EBAC + ldr r0, [r3, #0x2c] + str r0, [r4, #0x2c] + ldr r0, [r3, #0x30] + str r0, [r4, #0x30] + ldrb r1, [r3, #0x19] + lsrs r1, r1, #6 + lsls r1, r1, #6 + ldrb r2, [r4, #0x19] + movs r0, #0x3f + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x19] + adds r0, r3, #0 + adds r1, r4, #0 + bl sub_0806FAD8 + b _0808EBB4 + .align 2, 0 +_0808EBA8: .4byte gUnk_02019EE0 +_0808EBAC: + movs r0, #0xf0 + lsls r0, r0, #8 + strh r0, [r4, #0x2e] + strh r0, [r4, #0x32] +_0808EBB4: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0808EBB8 +sub_0808EBB8: @ 0x0808EBB8 + push {r4, r5, r6, r7, lr} + adds r7, r0, #0 + ldr r0, _0808EBD0 @ =gUnk_02032EC0 + ldrb r0, [r0, #2] + subs r0, #2 + cmp r0, #5 + bhi _0808EC1C + lsls r0, r0, #2 + ldr r1, _0808EBD4 @ =_0808EBD8 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0808EBD0: .4byte gUnk_02032EC0 +_0808EBD4: .4byte _0808EBD8 +_0808EBD8: @ jump table + .4byte _0808EC18 @ case 0 + .4byte _0808EC1C @ case 1 + .4byte _0808EBF0 @ case 2 + .4byte _0808EBFC @ case 3 + .4byte _0808EC00 @ case 4 + .4byte _0808EC14 @ case 5 +_0808EBF0: + ldr r0, _0808EBF8 @ =gUnk_02000080 + ldrb r0, [r0, #1] + adds r1, r0, #4 + b _0808EC1E + .align 2, 0 +_0808EBF8: .4byte gUnk_02000080 +_0808EBFC: + movs r1, #2 + b _0808EC1E +_0808EC00: + ldr r0, _0808EC10 @ =gUnk_02000080 + ldrb r0, [r0, #1] + movs r1, #6 + cmp r0, #0 + bne _0808EC1E + movs r1, #7 + b _0808EC1E + .align 2, 0 +_0808EC10: .4byte gUnk_02000080 +_0808EC14: + movs r1, #4 + b _0808EC1E +_0808EC18: + movs r1, #1 + b _0808EC1E +_0808EC1C: + movs r1, #0 +_0808EC1E: + movs r5, #0xf0 + lsls r5, r5, #8 + adds r6, r5, #0 + cmp r1, #1 + beq _0808EC32 + cmp r1, #1 + blo _0808EC76 + cmp r1, #2 + beq _0808EC42 + b _0808EC4C +_0808EC32: + movs r0, #0x80 + lsls r0, r0, #0x12 + ldrb r0, [r0, #7] + lsls r0, r0, #4 + adds r5, r0, #0 + adds r5, #0x18 + movs r6, #0x70 + b _0808EC76 +_0808EC42: + ldr r0, _0808EC7C @ =gUnk_02019EE0 + ldrb r1, [r0, #7] + cmp r1, #4 + bne _0808EC4C + movs r1, #7 +_0808EC4C: + adds r0, r1, #0 + bl sub_0808EC80 + adds r4, r0, #0 + cmp r4, #0 + beq _0808EC76 + adds r1, r7, #0 + bl sub_0806FAD8 + ldrb r0, [r4, #0x19] + lsrs r0, r0, #6 + lsls r0, r0, #6 + ldrb r2, [r7, #0x19] + movs r1, #0x3f + ands r1, r2 + orrs r1, r0 + strb r1, [r7, #0x19] + movs r0, #0x2e + ldrsh r6, [r4, r0] + movs r0, #0x32 + ldrsh r5, [r4, r0] +_0808EC76: + strh r6, [r7, #0x2e] + strh r5, [r7, #0x32] + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0808EC7C: .4byte gUnk_02019EE0 + + thumb_func_start sub_0808EC80 +sub_0808EC80: @ 0x0808EC80 + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldr r3, _0808ECA4 @ =gUnk_03003DA0 + ldr r2, [r3, #4] + cmp r2, r3 + beq _0808ECB6 + ldr r6, _0808ECA8 @ =0x0000FFFF + ldr r5, _0808ECAC @ =0x00004806 +_0808EC90: + ldrh r1, [r2, #8] + adds r0, r6, #0 + ands r0, r1 + cmp r0, r5 + bne _0808ECB0 + ldrb r0, [r2, #0xa] + cmp r4, r0 + bne _0808ECB0 + adds r0, r2, #0 + b _0808ECB8 + .align 2, 0 +_0808ECA4: .4byte gUnk_03003DA0 +_0808ECA8: .4byte 0x0000FFFF +_0808ECAC: .4byte 0x00004806 +_0808ECB0: + ldr r2, [r2, #4] + cmp r2, r3 + bne _0808EC90 +_0808ECB6: + movs r0, #0 +_0808ECB8: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_0808ECBC +sub_0808ECBC: @ 0x0808ECBC + push {r4, lr} + adds r3, r0, #0 + ldr r0, _0808ECD8 @ =gUnk_02000080 + ldrb r4, [r0, #1] + ldr r0, _0808ECDC @ =gUnk_02032EC0 + ldrb r0, [r0, #2] + cmp r0, #5 + beq _0808ECEE + cmp r0, #5 + bgt _0808ECE0 + cmp r0, #4 + beq _0808ECEA + b _0808ED04 + .align 2, 0 +_0808ECD8: .4byte gUnk_02000080 +_0808ECDC: .4byte gUnk_02032EC0 +_0808ECE0: + cmp r0, #6 + beq _0808ECFC + cmp r0, #7 + beq _0808ED00 + b _0808ED04 +_0808ECEA: + movs r0, #1 + b _0808ED06 +_0808ECEE: + ldr r0, _0808ECF8 @ =gUnk_02019EE0 + ldrb r4, [r0, #7] + movs r0, #2 + b _0808ED06 + .align 2, 0 +_0808ECF8: .4byte gUnk_02019EE0 +_0808ECFC: + movs r0, #3 + b _0808ED06 +_0808ED00: + movs r0, #4 + b _0808ED06 +_0808ED04: + movs r0, #0 +_0808ED06: + ldrb r2, [r3, #0xa] + subs r2, #4 + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #2 + lsls r0, r2, #1 + adds r0, r0, r2 + ldr r2, _0808ED3C @ =gUnk_08121CD4 + adds r0, r0, r2 + adds r1, r1, r0 + ldrb r2, [r1, #1] + adds r0, r3, #0 + adds r0, #0x68 + strh r2, [r0] + ldrb r0, [r1, #2] + adds r2, r3, #0 + adds r2, #0x6a + strh r0, [r2] + ldrb r0, [r1] + cmp r0, r4 + bne _0808ED40 + ldrb r0, [r3, #0x1a] + movs r1, #0x10 + rsbs r1, r1, #0 + ands r1, r0 + movs r0, #0xd + b _0808ED4A + .align 2, 0 +_0808ED3C: .4byte gUnk_08121CD4 +_0808ED40: + ldrb r0, [r3, #0x1a] + movs r1, #0x10 + rsbs r1, r1, #0 + ands r1, r0 + movs r0, #0xe +_0808ED4A: + orrs r1, r0 + strb r1, [r3, #0x1a] + adds r0, r3, #0 + bl sub_0808EF6C + ldr r2, _0808ED60 @ =gUnk_02019EE0 + ldrb r1, [r2] + orrs r0, r1 + strb r0, [r2] + pop {r4, pc} + .align 2, 0 +_0808ED60: .4byte gUnk_02019EE0 + + thumb_func_start sub_0808ED64 +sub_0808ED64: @ 0x0808ED64 + push {lr} + adds r2, r0, #0 + movs r3, #0xff + ldr r0, _0808ED90 @ =gUnk_02032EC0 + ldrb r0, [r0, #2] + cmp r0, #1 + bne _0808ED8A + ldr r1, _0808ED94 @ =gUnk_02000080 + ldrb r0, [r1, #0x11] + cmp r0, #5 + beq _0808ED8A + ldrb r0, [r1, #0x10] + lsls r0, r0, #4 + adds r0, #0x1c + strh r0, [r2, #0x2e] + ldrb r0, [r1, #0x11] + lsls r0, r0, #4 + adds r3, r0, #0 + adds r3, #0x3a +_0808ED8A: + strh r3, [r2, #0x32] + pop {pc} + .align 2, 0 +_0808ED90: .4byte gUnk_02032EC0 +_0808ED94: .4byte gUnk_02000080 + + thumb_func_start sub_0808ED98 +sub_0808ED98: @ 0x0808ED98 + push {lr} + adds r3, r0, #0 + ldr r0, _0808EDB4 @ =gUnk_02032EC0 + ldrb r0, [r0, #2] + cmp r0, #1 + beq _0808EDB8 + adds r1, r3, #0 + adds r1, #0x68 + movs r0, #0x1b + strh r0, [r1] + movs r1, #0xa + rsbs r1, r1, #0 + b _0808EDCE + .align 2, 0 +_0808EDB4: .4byte gUnk_02032EC0 +_0808EDB8: + ldr r0, _0808EDF8 @ =gUnk_02000080 + ldrb r0, [r0, #0x13] + cmp r0, #5 + bls _0808EDC2 + movs r0, #5 +_0808EDC2: + lsls r0, r0, #3 + adds r0, #0x1b + adds r1, r3, #0 + adds r1, #0x68 + strh r0, [r1] + movs r1, #0x18 +_0808EDCE: + strh r1, [r3, #0x32] + adds r0, r3, #0 + adds r0, #0x6a + strh r1, [r0] + ldrb r0, [r3, #0xf] + adds r0, #1 + strb r0, [r3, #0xf] + ldr r2, _0808EDFC @ =gUnk_08121D10 + ldrb r0, [r3, #0xf] + lsrs r0, r0, #2 + movs r1, #7 + ands r0, r1 + adds r0, r0, r2 + ldrb r0, [r0] + adds r1, r3, #0 + adds r1, #0x63 + strb r0, [r1] + adds r0, r3, #0 + bl sub_0808EF6C + pop {pc} + .align 2, 0 +_0808EDF8: .4byte gUnk_02000080 +_0808EDFC: .4byte gUnk_08121D10 + + thumb_func_start sub_0808EE00 +sub_0808EE00: @ 0x0808EE00 + push {r4, r5, lr} + adds r4, r0, #0 + movs r0, #0x80 + lsls r0, r0, #0x12 + ldrb r0, [r0, #7] + rsbs r2, r0, #0 + orrs r2, r0 + lsrs r2, r2, #0x1f + ldrb r0, [r4, #0xa] + adds r5, r0, #0 + subs r5, #0xa + ldr r1, _0808EE48 @ =gUnk_08121D38 + lsls r0, r2, #3 + adds r0, r5, r0 + adds r0, r0, r1 + ldrb r0, [r0] + strb r0, [r4, #0x1e] + ldr r3, _0808EE4C @ =gUnk_08121D18 + lsls r0, r5, #1 + lsls r1, r2, #4 + adds r0, r0, r1 + adds r0, r0, r3 + ldrh r1, [r0] + strh r1, [r4, #0x2e] + adds r0, r4, #0 + adds r0, #0x68 + strh r1, [r0] + subs r5, r5, r2 + ldr r0, _0808EE50 @ =gUnk_02032EC0 + ldrb r0, [r0, #2] + cmp r0, #1 + beq _0808EE54 + movs r5, #0x80 + movs r1, #0xb0 + b _0808EE56 + .align 2, 0 +_0808EE48: .4byte gUnk_08121D38 +_0808EE4C: .4byte gUnk_08121D18 +_0808EE50: .4byte gUnk_02032EC0 +_0808EE54: + movs r1, #0x8c +_0808EE56: + adds r0, r4, #0 + adds r0, #0x6a + strh r1, [r0] + ldr r1, _0808EE8C @ =gUnk_02000080 + ldrb r0, [r1, #0x11] + movs r2, #9 + cmp r0, #5 + bne _0808EE6E + ldrb r1, [r1, #0x12] + cmp r5, r1 + bne _0808EE6E + movs r2, #0xb +_0808EE6E: + ldrb r1, [r4, #0x1a] + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x1a] + adds r0, r4, #0 + bl sub_0808EF6C + ldr r2, _0808EE90 @ =gUnk_02019EE0 + ldrb r1, [r2] + orrs r0, r1 + strb r0, [r2] + pop {r4, r5, pc} + .align 2, 0 +_0808EE8C: .4byte gUnk_02000080 +_0808EE90: .4byte gUnk_02019EE0 + + thumb_func_start nullsub_522 +nullsub_522: @ 0x0808EE94 + bx lr + .align 2, 0 + + thumb_func_start sub_0808EE98 +sub_0808EE98: @ 0x0808EE98 + push {lr} + adds r3, r0, #0 + ldr r0, _0808EEBC @ =gUnk_02032EC0 + ldrb r1, [r0, #2] + strb r1, [r3, #0xe] + ldr r2, _0808EEC0 @ =gUnk_08121D48 + ldrb r0, [r3, #0xe] + adds r0, r0, r2 + ldrb r0, [r0] + strb r0, [r3, #0x1e] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + cmp r1, #2 + beq _0808EEC4 + adds r1, r3, #0 + adds r1, #0x68 + movs r0, #0x60 + b _0808EECA + .align 2, 0 +_0808EEBC: .4byte gUnk_02032EC0 +_0808EEC0: .4byte gUnk_08121D48 +_0808EEC4: + adds r1, r3, #0 + adds r1, #0x68 + ldr r0, _0808EED4 @ =0x0000FFA0 +_0808EECA: + strh r0, [r1] + adds r0, r3, #0 + bl sub_0808EF6C + pop {pc} + .align 2, 0 +_0808EED4: .4byte 0x0000FFA0 + + thumb_func_start sub_0808EED8 +sub_0808EED8: @ 0x0808EED8 + push {lr} + adds r2, r0, #0 + ldr r0, _0808EEF0 @ =gUnk_02032EC0 + ldrb r0, [r0, #2] + cmp r0, #3 + beq _0808EEF4 + ldrb r1, [r2, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2, #0x18] + b _0808EF1E + .align 2, 0 +_0808EEF0: .4byte gUnk_02032EC0 +_0808EEF4: + ldrb r1, [r2, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #2 + orrs r0, r1 + strb r0, [r2, #0x18] + ldrb r1, [r2, #0xa] + subs r1, #0x13 + ldr r0, _0808EF20 @ =gUnk_02000080 + ldrb r0, [r0, #1] + movs r3, #3 + cmp r0, r1 + bne _0808EF12 + movs r3, #4 +_0808EF12: + ldrb r1, [r2, #0x1a] + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r1 + orrs r0, r3 + strb r0, [r2, #0x1a] +_0808EF1E: + pop {pc} + .align 2, 0 +_0808EF20: .4byte gUnk_02000080 + + thumb_func_start sub_0808EF24 +sub_0808EF24: @ 0x0808EF24 + push {lr} + adds r2, r0, #0 + ldr r0, _0808EF3C @ =gUnk_02032EC0 + ldrb r0, [r0, #2] + cmp r0, #3 + beq _0808EF40 + ldrb r1, [r2, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2, #0x18] + b _0808EF68 + .align 2, 0 +_0808EF3C: .4byte gUnk_02032EC0 +_0808EF40: + ldrb r1, [r2, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #2 + orrs r0, r1 + strb r0, [r2, #0x18] + ldrb r0, [r2, #0xa] + cmp r0, #0x15 + bne _0808EF5C + movs r0, #0x80 + lsls r0, r0, #0x12 + ldrb r1, [r0, #5] + b _0808EF62 +_0808EF5C: + movs r0, #0x80 + lsls r0, r0, #0x12 + ldrb r1, [r0, #6] +_0808EF62: + ldrb r0, [r2, #0x1f] + adds r0, r0, r1 + strb r0, [r2, #0x1e] +_0808EF68: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0808EF6C +sub_0808EF6C: @ 0x0808EF6C + push {r4, r5, r6, lr} + adds r5, r0, #0 + adds r0, #0x68 + movs r2, #0 + ldrsh r1, [r0, r2] + movs r2, #0x2e + ldrsh r0, [r5, r2] + subs r6, r1, r0 + adds r0, r6, #0 + cmp r6, #0 + bge _0808EF84 + rsbs r0, r6, #0 +_0808EF84: + cmp r0, #1 + bhi _0808EF8E + lsls r0, r1, #0x10 + str r0, [r5, #0x2c] + movs r6, #0 +_0808EF8E: + adds r0, r5, #0 + adds r0, #0x6a + movs r2, #0 + ldrsh r1, [r0, r2] + movs r2, #0x32 + ldrsh r0, [r5, r2] + subs r4, r1, r0 + adds r0, r4, #0 + cmp r4, #0 + bge _0808EFA4 + rsbs r0, r4, #0 +_0808EFA4: + cmp r0, #1 + bhi _0808EFAE + lsls r0, r1, #0x10 + str r0, [r5, #0x30] + movs r4, #0 +_0808EFAE: + adds r0, r6, #0 + orrs r0, r4 + cmp r0, #0 + bne _0808EFBA + movs r0, #0 + b _0808EFEC +_0808EFBA: + adds r0, r6, #0 + adds r1, r4, #0 + bl sub_080041EC + adds r1, r0, #0 + adds r0, #0x80 + lsls r1, r1, #4 + adds r1, r0, r1 + adds r0, r5, #0 + adds r0, #0x6c + ldrh r0, [r0] + cmp r0, r1 + bge _0808EFD6 + adds r1, r0, #0 +_0808EFD6: + strh r1, [r5, #0x24] + adds r0, r6, #0 + adds r1, r4, #0 + bl sub_080045DA + lsrs r0, r0, #3 + strb r0, [r5, #0x15] + adds r0, r5, #0 + bl sub_0806F69C + movs r0, #1 +_0808EFEC: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_0808EFF0 +sub_0808EFF0: @ 0x0808EFF0 + push {r4, r5, lr} + mov ip, r0 + ldrb r1, [r0, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #2 + orrs r0, r1 + mov r1, ip + strb r0, [r1, #0x18] + movs r0, #0x80 + lsls r0, r0, #3 + strh r0, [r1, #0x24] + adds r1, #0x45 + movs r0, #1 + strb r0, [r1] + movs r0, #0xff + mov r3, ip + strb r0, [r3, #0x1e] + adds r1, #0x13 + movs r0, #1 + rsbs r0, r0, #0 + strb r0, [r1] + ldrb r4, [r3, #0xa] + lsls r4, r4, #3 + ldr r0, _0808F094 @ =gUnk_08121D54 + adds r4, r4, r0 + ldrh r0, [r4, #2] + strh r0, [r3, #0x2e] + ldrh r1, [r4, #2] + mov r0, ip + adds r0, #0x68 + strh r1, [r0] + ldrh r0, [r4, #4] + strh r0, [r3, #0x32] + ldrh r0, [r4, #4] + mov r1, ip + adds r1, #0x6a + strh r0, [r1] + ldrb r1, [r4, #6] + lsls r1, r1, #0x1d + lsrs r1, r1, #0x17 + ldrb r3, [r3, #0x19] + movs r2, #0x3f + adds r0, r2, #0 + ands r0, r3 + orrs r0, r1 + mov r1, ip + strb r0, [r1, #0x19] + ldrb r1, [r4, #6] + lsls r1, r1, #0x1a + mov r5, ip + adds r5, #0x29 + lsrs r1, r1, #0x1d + ldrb r3, [r5] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r3 + orrs r0, r1 + strb r0, [r5] + ldrb r0, [r4, #6] + lsrs r0, r0, #6 + lsls r0, r0, #6 + mov r3, ip + ldrb r1, [r3, #0x1b] + ands r2, r1 + orrs r2, r0 + strb r2, [r3, #0x1b] + ldrh r1, [r4] + mov r0, ip + adds r0, #0x6c + strh r1, [r0] + ldrb r1, [r4, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0808F098 + movs r0, #0x7f + ands r1, r0 + strb r1, [r3, #0x1e] + strb r1, [r3, #0x1f] + b _0808F09E + .align 2, 0 +_0808F094: .4byte gUnk_08121D54 +_0808F098: + mov r0, ip + bl LoadAnimation +_0808F09E: + pop {r4, r5, pc} + + thumb_func_start sub_0808F0A0 +sub_0808F0A0: @ 0x0808F0A0 + push {lr} + ldr r2, _0808F0B4 @ =gUnk_08121E5C + ldrb r1, [r0, #0xa] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0808F0B4: .4byte gUnk_08121E5C + + thumb_func_start sub_0808F0B8 +sub_0808F0B8: @ 0x0808F0B8 + push {lr} + ldr r2, _0808F0CC @ =gUnk_08121E88 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0808F0CC: .4byte gUnk_08121E88 + + thumb_func_start sub_0808F0D0 +sub_0808F0D0: @ 0x0808F0D0 + push {r4, r5, r6, lr} + adds r5, r0, #0 + movs r1, #0x49 + movs r2, #2 + movs r3, #0 + bl CreateObjectWithParent + str r0, [r5, #0x54] + cmp r0, #0 + bne _0808F0E8 + bl sub_0805E780 +_0808F0E8: + movs r6, #1 + strb r6, [r5, #0xc] + ldr r0, _0808F148 @ =0x0000FF40 + strh r0, [r5, #0x36] + bl Random + adds r4, r0, #0 + movs r0, #0x3f + ands r4, r0 + bl Random + ands r0, r6 + cmp r0, #0 + beq _0808F106 + rsbs r4, r4, #0 +_0808F106: + ldr r0, [r5, #0x50] + ldrh r0, [r0, #0x2e] + adds r0, r0, r4 + strh r0, [r5, #0x2e] + bl Random + adds r4, r0, #0 + movs r0, #0x1f + ands r4, r0 + bl Random + ands r0, r6 + cmp r0, #0 + beq _0808F124 + rsbs r4, r4, #0 +_0808F124: + ldr r0, [r5, #0x50] + ldrh r0, [r0, #0x32] + adds r0, r0, r4 + strh r0, [r5, #0x32] + movs r0, #0x90 + lsls r0, r0, #2 + str r0, [r5, #0x74] + movs r0, #0xa0 + lsls r0, r0, #1 + str r0, [r5, #0x78] + adds r0, r5, #0 + movs r1, #3 + bl UpdateSprite + adds r0, r5, #0 + bl sub_0808F14C + pop {r4, r5, r6, pc} + .align 2, 0 +_0808F148: .4byte 0x0000FF40 + + thumb_func_start sub_0808F14C +sub_0808F14C: @ 0x0808F14C + push {r4, lr} + adds r4, r0, #0 + bl sub_0808F2B0 + movs r1, #0x80 + lsls r1, r1, #6 + adds r0, r4, #0 + bl sub_08003FC4 + cmp r0, #0 + bne _0808F16E + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + movs r0, #0x84 + bl PlaySFX +_0808F16E: + pop {r4, pc} + + thumb_func_start sub_0808F170 +sub_0808F170: @ 0x0808F170 + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x74] + subs r0, #0x20 + str r0, [r4, #0x74] + ldr r1, [r4, #0x78] + adds r1, #0x20 + str r1, [r4, #0x78] + adds r0, r4, #0 + movs r2, #8 + movs r3, #2 + bl sub_0806FCF4 + ldr r1, [r4, #0x78] + ldr r0, _0808F1A0 @ =0x000001FF + cmp r1, r0 + bls _0808F198 + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] +_0808F198: + adds r0, r4, #0 + bl sub_0808F2B0 + pop {r4, pc} + .align 2, 0 +_0808F1A0: .4byte 0x000001FF + + thumb_func_start sub_0808F1A4 +sub_0808F1A4: @ 0x0808F1A4 + push {r4, lr} + adds r4, r0, #0 + ldr r1, [r4, #0x78] + adds r1, #0x10 + str r1, [r4, #0x78] + ldr r0, [r4, #0x74] + adds r0, #0x10 + str r0, [r4, #0x74] + adds r0, r4, #0 + movs r2, #8 + movs r3, #2 + bl sub_0806FCF4 + ldr r1, [r4, #0x78] + ldr r0, _0808F1D4 @ =0x000003FF + cmp r1, r0 + bls _0808F1D8 + ldr r1, [r4, #0x54] + movs r0, #0xff + strb r0, [r1, #0xc] + bl sub_0805E780 + b _0808F1DE + .align 2, 0 +_0808F1D4: .4byte 0x000003FF +_0808F1D8: + adds r0, r4, #0 + bl sub_0808F2B0 +_0808F1DE: + pop {r4, pc} + + thumb_func_start sub_0808F1E0 +sub_0808F1E0: @ 0x0808F1E0 + push {lr} + ldr r2, _0808F1F4 @ =gUnk_08121E98 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0808F1F4: .4byte gUnk_08121E98 + + thumb_func_start sub_0808F1F8 +sub_0808F1F8: @ 0x0808F1F8 + push {r4, lr} + adds r4, r0, #0 + ldrb r2, [r4, #0x19] + movs r0, #3 + orrs r2, r0 + strb r2, [r4, #0x19] + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + ldr r3, [r4, #0x50] + ldrb r1, [r3, #0x19] + lsrs r1, r1, #6 + lsls r1, r1, #6 + movs r0, #0x3f + ands r2, r0 + orrs r2, r1 + strb r2, [r4, #0x19] + ldrb r1, [r3, #0x1b] + lsrs r1, r1, #6 + lsls r1, r1, #6 + ldrb r2, [r4, #0x1b] + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x1b] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #7 + orrs r0, r1 + strb r0, [r2] + adds r0, r4, #0 + movs r1, #1 + bl UpdateSprite + adds r0, r4, #0 + bl sub_0808F244 + pop {r4, pc} + + thumb_func_start sub_0808F244 +sub_0808F244: @ 0x0808F244 + push {r4, lr} + adds r4, r0, #0 + ldr r3, [r4, #0x50] + ldrb r1, [r3, #0x18] + lsls r1, r1, #0x1e + lsrs r1, r1, #0x1e + ldrb r2, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x18] + ldrh r0, [r3, #0x32] + adds r0, #3 + movs r2, #0 + strh r0, [r4, #0x32] + ldr r1, [r4, #0x54] + adds r0, r1, #0 + adds r0, #0x62 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldrh r1, [r1, #0x2e] + adds r0, r0, r1 + strh r0, [r4, #0x2e] + str r2, [r4, #0x34] + movs r0, #0x36 + ldrsh r1, [r3, r0] + movs r0, #0x80 + subs r0, r0, r1 + str r0, [r4, #0x74] + movs r0, #0x36 + ldrsh r1, [r3, r0] + movs r0, #0x80 + lsls r0, r0, #1 + subs r0, r0, r1 + str r0, [r4, #0x78] + adds r3, #0x7f + ldrb r0, [r3] + str r0, [r4, #0x70] + adds r0, r4, #0 + bl sub_0808F2B0 + ldr r0, [r4, #0x50] + adds r0, #0x6d + ldrb r1, [r0] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _0808F2AC + bl sub_0805E780 +_0808F2AC: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0808F2B0 +sub_0808F2B0: @ 0x0808F2B0 + push {lr} + ldr r1, [r0, #0x74] + ldr r2, [r0, #0x78] + ldr r3, [r0, #0x70] + bl sub_0805EC9C + pop {pc} + .align 2, 0 + + thumb_func_start sub_0808F2C0 +sub_0808F2C0: @ 0x0808F2C0 + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xc] + adds r6, r0, #0 + cmp r6, #0 + bne _0808F322 + adds r0, #1 + strb r0, [r5, #0xc] + ldr r4, [r5, #0x50] + ldrb r2, [r4, #0x19] + lsrs r2, r2, #6 + lsls r2, r2, #6 + ldrb r3, [r5, #0x19] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r3 + orrs r0, r2 + strb r0, [r5, #0x19] + ldrb r0, [r4, #0x1b] + lsrs r0, r0, #6 + lsls r0, r0, #6 + ldrb r2, [r5, #0x1b] + ands r1, r2 + orrs r1, r0 + strb r1, [r5, #0x1b] + ldrb r1, [r5, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r5, #0x18] + adds r2, r5, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #7 + orrs r0, r1 + strb r0, [r2] + str r6, [r5, #0x34] + ldr r1, [r5, #0x50] + ldrh r0, [r1, #0x32] + adds r0, #3 + strh r0, [r5, #0x32] + ldrh r0, [r1, #0x2e] + strh r0, [r5, #0x2e] + adds r0, r5, #0 + movs r1, #3 + bl UpdateSprite +_0808F322: + ldr r2, [r5, #0x50] + movs r1, #0x36 + ldrsh r0, [r2, r1] + cmp r0, #0 + bne _0808F334 + ldr r0, [r2, #0x74] + str r0, [r5, #0x74] + ldr r0, [r2, #0x78] + b _0808F34C +_0808F334: + movs r0, #0x36 + ldrsh r1, [r2, r0] + movs r0, #0x80 + lsls r0, r0, #2 + subs r0, r0, r1 + str r0, [r5, #0x74] + movs r0, #0x36 + ldrsh r1, [r2, r0] + lsls r1, r1, #1 + movs r0, #0xc0 + lsls r0, r0, #2 + subs r0, r0, r1 +_0808F34C: + str r0, [r5, #0x78] + movs r0, #0 + str r0, [r5, #0x70] + adds r0, r5, #0 + bl sub_0808F2B0 + ldr r1, [r5, #0x78] + adds r0, r5, #0 + movs r2, #8 + movs r3, #2 + bl sub_0806FCF4 + ldrb r0, [r5, #0xc] + cmp r0, #0xff + bne _0808F36E + bl sub_0805E780 +_0808F36E: + pop {r4, r5, r6, pc} + + thumb_func_start sub_0808F370 +sub_0808F370: @ 0x0808F370 + push {r4, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0xc] + cmp r1, #0 + bne _0808F388 + ldr r0, [r4, #0x50] + ldrb r0, [r0, #0xd] + cmp r0, #1 + bne _0808F3DA + strb r0, [r4, #0xc] + str r1, [r4, #0x70] + b _0808F3CC +_0808F388: + ldr r0, [r4, #0x50] + ldrb r0, [r0, #0xd] + subs r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #4 + bhi _0808F3D4 + ldr r0, [r4, #0x70] + cmp r0, #0 + bne _0808F3C4 + ldr r0, [r4, #0x74] + subs r0, #1 + str r0, [r4, #0x74] + movs r1, #1 + rsbs r1, r1, #0 + cmp r0, r1 + bne _0808F3DA + bl Random + ldr r2, _0808F3C0 @ =gUnk_08121EA0 + movs r1, #1 + ands r1, r0 + lsls r1, r1, #1 + adds r1, r1, r2 + ldrh r0, [r1] + str r0, [r4, #0x70] + b _0808F3DA + .align 2, 0 +_0808F3C0: .4byte gUnk_08121EA0 +_0808F3C4: + subs r0, #1 + str r0, [r4, #0x70] + cmp r0, #0 + bne _0808F3DA +_0808F3CC: + adds r0, r4, #0 + bl sub_0808F5EC + b _0808F3DA +_0808F3D4: + movs r0, #0 + strb r0, [r4, #0xc] + str r0, [r4, #0x74] +_0808F3DA: + pop {r4, pc} + + thumb_func_start sub_0808F3DC +sub_0808F3DC: @ 0x0808F3DC + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0808F438 + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + movs r0, #1 + strb r0, [r4, #0xc] + movs r0, #0x78 + strb r0, [r4, #0xe] + ldrb r1, [r4, #0xa] + adds r1, #1 + adds r0, r4, #0 + bl UpdateSprite + ldrb r0, [r4, #0xa] + cmp r0, #8 + beq _0808F41A + cmp r0, #7 + bne _0808F42E + ldr r0, [r4, #0x54] + adds r1, r4, #0 + bl sub_0806FAD8 + b _0808F494 +_0808F41A: + ldr r0, [r4, #0x54] + adds r0, #0x3f + ldrb r0, [r0] + adds r1, r4, #0 + adds r1, #0x3f + strb r0, [r1] + ldr r0, [r4, #0x54] + adds r0, #0x3f + movs r1, #0x7e + strb r1, [r0] +_0808F42E: + ldr r0, [r4, #0x54] + adds r1, r4, #0 + bl sub_0806FAB0 + b _0808F494 +_0808F438: + ldr r0, [r4, #0x50] + ldr r0, [r0, #0x74] + cmp r0, #0 + bne _0808F456 + ldrb r0, [r4, #0xa] + cmp r0, #8 + bne _0808F452 + ldr r0, [r4, #0x54] + adds r1, r4, #0 + adds r1, #0x3f + ldrb r1, [r1] + adds r0, #0x3f + strb r1, [r0] +_0808F452: + bl sub_0805E780 +_0808F456: + ldrb r0, [r4, #0xa] + cmp r0, #5 + bne _0808F486 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0808F486 + ldr r0, [r4, #0x54] + movs r1, #0x49 + movs r2, #8 + movs r3, #0 + bl CreateObjectWithParent + adds r1, r0, #0 + cmp r1, #0 + beq _0808F486 + ldr r0, [r4, #0x50] + str r0, [r1, #0x50] + ldr r0, [r4, #0x50] + ldr r0, [r0, #0x50] + str r0, [r1, #0x54] +_0808F486: + adds r0, r4, #0 + bl sub_08004274 + ldr r0, [r4, #0x54] + adds r1, r4, #0 + bl sub_0806FA6C +_0808F494: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0808F498 +sub_0808F498: @ 0x0808F498 + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xc] + cmp r0, #0 + beq _0808F4EC + adds r0, r5, #0 + bl sub_0806F3E4 + cmp r0, #0 + beq _0808F4C2 + ldr r0, _0808F4E4 @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #0xf + ands r0, r1 + cmp r0, #0 + bne _0808F4BE + movs r0, #0xef + bl PlaySFX +_0808F4BE: + bl sub_0805E780 +_0808F4C2: + ldrb r0, [r5, #0xe] + subs r0, #1 + strb r0, [r5, #0xe] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + bne _0808F4D4 + bl sub_0805E780 +_0808F4D4: + ldr r0, _0808F4E8 @ =gLinkState + ldrb r0, [r0, #0x1c] + cmp r0, #1 + beq _0808F550 + bl sub_0805E780 + b _0808F550 + .align 2, 0 +_0808F4E4: .4byte gUnk_030010A0 +_0808F4E8: .4byte gLinkState +_0808F4EC: + movs r0, #1 + strb r0, [r5, #0xc] + movs r0, #0x40 + strb r0, [r5, #0xe] + ldrb r0, [r5, #0xb] + movs r6, #0x2b + cmp r0, #0 + beq _0808F4FE + movs r6, #0x2c +_0808F4FE: + ldr r0, [r5, #0x50] + ldr r0, [r0, #0x48] + ldrb r1, [r0, #6] + ldrh r0, [r5, #0x2e] + subs r0, r0, r1 + strh r0, [r5, #0x2e] + bl Random + ldr r4, [r5, #0x50] + ldr r1, [r4, #0x48] + ldrb r1, [r1, #6] + lsls r1, r1, #1 + bl __modsi3 + ldrh r1, [r5, #0x2e] + adds r1, r1, r0 + strh r1, [r5, #0x2e] + ldr r0, [r4, #0x48] + ldrb r1, [r0, #7] + ldrh r0, [r5, #0x32] + subs r0, r0, r1 + strh r0, [r5, #0x32] + bl Random + ldr r1, [r5, #0x50] + ldr r1, [r1, #0x48] + ldrb r1, [r1, #7] + lsls r1, r1, #1 + bl __modsi3 + ldrh r1, [r5, #0x32] + adds r1, r1, r0 + strh r1, [r5, #0x32] + adds r0, r5, #0 + adds r1, r6, #0 + bl sub_0801D2B4 + adds r0, r5, #0 + movs r1, #4 + bl UpdateSprite +_0808F550: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_0808F554 +sub_0808F554: @ 0x0808F554 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r0, [r5, #0x50] + adds r1, r5, #0 + bl sub_0806FA6C + adds r1, r5, #0 + adds r1, #0x63 + ldrb r0, [r1] + subs r0, #0x18 + strb r0, [r1] + ldr r0, [r5, #0x50] + adds r1, r0, #0 + adds r1, #0x62 + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #0 + beq _0808F588 + adds r2, r5, #0 + adds r2, #0x62 + lsrs r1, r0, #0x1f + adds r0, r0, r1 + asrs r0, r0, #1 + ldrb r1, [r2] + adds r0, r0, r1 + strb r0, [r2] +_0808F588: + ldrb r0, [r5, #0xc] + cmp r0, #0 + beq _0808F5AC + adds r1, r5, #0 + adds r1, #0x84 + ldr r0, [r1] + cmp r0, #0 + beq _0808F5A4 + subs r0, #1 + str r0, [r1] + cmp r0, #0 + bne _0808F5A4 + bl sub_0805E780 +_0808F5A4: + adds r0, r5, #0 + bl sub_08004274 + b _0808F5E8 +_0808F5AC: + movs r0, #1 + strb r0, [r5, #0xc] + ldr r4, [r5, #0x50] + ldrb r2, [r4, #0x19] + lsrs r2, r2, #6 + lsls r2, r2, #6 + ldrb r3, [r5, #0x19] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r3 + orrs r0, r2 + strb r0, [r5, #0x19] + ldrb r0, [r4, #0x1b] + lsrs r0, r0, #6 + lsls r0, r0, #6 + ldrb r2, [r5, #0x1b] + ands r1, r2 + orrs r1, r0 + strb r1, [r5, #0x1b] + adds r2, r5, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] + adds r0, r5, #0 + movs r1, #3 + bl UpdateSprite +_0808F5E8: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0808F5EC +sub_0808F5EC: @ 0x0808F5EC + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x54] + movs r1, #0x49 + movs r2, #5 + movs r3, #0 + bl CreateObjectWithParent + adds r1, r0, #0 + cmp r1, #0 + beq _0808F608 + str r4, [r1, #0x50] + ldr r0, [r4, #0x54] + str r0, [r1, #0x54] +_0808F608: + ldr r0, [r4, #0x54] + movs r1, #0x49 + movs r2, #6 + movs r3, #0 + bl CreateObjectWithParent + adds r1, r0, #0 + cmp r1, #0 + beq _0808F620 + str r4, [r1, #0x50] + ldr r0, [r4, #0x54] + str r0, [r1, #0x54] +_0808F620: + ldr r0, [r4, #0x54] + movs r1, #0x49 + movs r2, #7 + movs r3, #0 + bl CreateObjectWithParent + adds r1, r0, #0 + cmp r1, #0 + beq _0808F638 + str r4, [r1, #0x50] + ldr r0, [r4, #0x54] + str r0, [r1, #0x54] +_0808F638: + movs r0, #0x96 + lsls r0, r0, #2 + str r0, [r4, #0x74] + pop {r4, pc} + + thumb_func_start sub_0808F640 +sub_0808F640: @ 0x0808F640 + push {lr} + ldr r2, _0808F654 @ =gUnk_08121EA4 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0808F654: .4byte gUnk_08121EA4 + + thumb_func_start sub_0808F658 +sub_0808F658: @ 0x0808F658 + push {r4, r5, lr} + adds r5, r0, #0 + movs r2, #1 + movs r0, #1 + strb r0, [r5, #0xc] + ldrb r1, [r5, #0x18] + subs r0, #5 + ands r0, r1 + orrs r0, r2 + strb r0, [r5, #0x18] + ldrb r0, [r5, #0x1b] + movs r1, #0xc0 + orrs r0, r1 + strb r0, [r5, #0x1b] + ldrb r0, [r5, #0x19] + orrs r0, r1 + strb r0, [r5, #0x19] + ldrb r0, [r5, #0xa] + adds r3, r5, #0 + adds r3, #0x29 + movs r1, #7 + ands r1, r0 + ldrb r2, [r3] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + ldrb r0, [r5, #0xa] + strb r0, [r5, #0x1e] + movs r0, #8 + strb r0, [r5, #0x15] + ldr r1, _0808F6D8 @ =gUnk_08121EB0 + ldrb r0, [r5, #0xa] + adds r0, r0, r1 + ldrb r0, [r0] + movs r4, #0 + strh r0, [r5, #0x24] + ldr r3, _0808F6DC @ =gRoomControls + ldrh r1, [r3, #6] + adds r2, r1, #0 + subs r2, #0x60 + adds r0, r5, #0 + adds r0, #0x78 + strh r2, [r0] + ldrh r0, [r3, #0x1e] + adds r1, r1, r0 + adds r1, #0x60 + adds r0, r5, #0 + adds r0, #0x7a + strh r1, [r0] + strb r4, [r5, #0x14] + bl Random + movs r1, #0xf + ands r0, r1 + lsls r0, r0, #4 + ldrh r1, [r5, #0x2e] + adds r0, r0, r1 + strh r0, [r5, #0x2e] + strb r4, [r5, #0xe] + strb r4, [r5, #0xd] + pop {r4, r5, pc} + .align 2, 0 +_0808F6D8: .4byte gUnk_08121EB0 +_0808F6DC: .4byte gRoomControls + + thumb_func_start sub_0808F6E0 +sub_0808F6E0: @ 0x0808F6E0 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F69C + adds r0, r4, #0 + adds r0, #0x78 + movs r2, #0x2e + ldrsh r1, [r4, r2] + movs r2, #0 + ldrsh r0, [r0, r2] + cmp r1, r0 + blt _0808F704 + adds r0, r4, #0 + adds r0, #0x7a + movs r2, #0 + ldrsh r0, [r0, r2] + cmp r1, r0 + ble _0808F708 +_0808F704: + movs r0, #2 + strb r0, [r4, #0xc] +_0808F708: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0808F70C +sub_0808F70C: @ 0x0808F70C + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xd] + cmp r0, #0 + bne _0808F75C + movs r0, #1 + strb r0, [r4, #0xd] + bl Random + movs r1, #7 + ands r0, r1 + lsls r0, r0, #3 + adds r0, #0x1f + strb r0, [r4, #0xe] + ldrb r1, [r4, #0x15] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _0808F738 + adds r0, r4, #0 + adds r0, #0x7a + b _0808F73C +_0808F738: + adds r0, r4, #0 + adds r0, #0x78 +_0808F73C: + ldrh r0, [r0] + strh r0, [r4, #0x2e] + ldrb r0, [r4, #0xa] + cmp r0, #2 + bne _0808F75C + bl Random + ldr r3, _0808F778 @ =gUnk_08121EB3 + ldrb r1, [r4, #0xb] + lsls r1, r1, #1 + movs r2, #1 + ands r2, r0 + adds r1, r1, r2 + adds r1, r1, r3 + ldrb r0, [r1] + strh r0, [r4, #0x32] +_0808F75C: + ldrb r1, [r4, #0xd] + cmp r1, #1 + bne _0808F774 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0 + bne _0808F774 + strb r1, [r4, #0xc] + strb r0, [r4, #0xd] +_0808F774: + pop {r4, pc} + .align 2, 0 +_0808F778: .4byte gUnk_08121EB3 + + thumb_func_start sub_0808F77C +sub_0808F77C: @ 0x0808F77C + push {lr} + ldr r2, _0808F790 @ =gUnk_08121EB8 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0808F790: .4byte gUnk_08121EB8 + + thumb_func_start sub_0808F794 +sub_0808F794: @ 0x0808F794 + push {lr} + movs r1, #1 + strb r1, [r0, #0xc] + movs r1, #0x3c + strb r1, [r0, #0xe] + movs r1, #0 + bl UpdateSprite + pop {pc} + .align 2, 0 + + thumb_func_start sub_0808F7A8 +sub_0808F7A8: @ 0x0808F7A8 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xe] + subs r0, #1 + strb r0, [r2, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0808F7D0 + movs r0, #0x78 + strb r0, [r2, #0xe] + ldrb r0, [r2, #0xc] + adds r0, #1 + strb r0, [r2, #0xc] + ldrb r1, [r2, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r2, #0x18] +_0808F7D0: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0808F7D4 +sub_0808F7D4: @ 0x0808F7D4 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0808F80A + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #0x18 + orrs r0, r1 + strb r0, [r2] + adds r0, r4, #0 + movs r1, #2 + bl UpdateSprite +_0808F80A: + pop {r4, pc} + + thumb_func_start sub_0808F80C +sub_0808F80C: @ 0x0808F80C + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _0808F850 + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + strb r1, [r4, #0x15] + movs r2, #0 + movs r0, #0x80 + lsls r0, r0, #1 + strh r0, [r4, #0x24] + movs r0, #0x80 + lsls r0, r0, #0xa + str r0, [r4, #0x20] + ldrb r1, [r4, #0x1b] + movs r0, #0x3f + ands r0, r1 + strb r0, [r4, #0x1b] + strb r2, [r4, #0xe] + adds r0, r4, #0 + movs r1, #3 + bl UpdateSprite + ldr r0, _0808F854 @ =0x0000012B + bl PlaySFX +_0808F850: + pop {r4, pc} + .align 2, 0 +_0808F854: .4byte 0x0000012B + + thumb_func_start sub_0808F858 +sub_0808F858: @ 0x0808F858 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _0808F884 + adds r0, r4, #0 + bl sub_0806F69C + movs r1, #0x80 + lsls r1, r1, #6 + adds r0, r4, #0 + bl sub_08003FC4 + cmp r0, #0 + bne _0808F88A + adds r0, r4, #0 + bl sub_08004274 + b _0808F88A +_0808F884: + adds r0, r4, #0 + bl sub_08004274 +_0808F88A: + movs r1, #0x32 + ldrsh r0, [r4, r1] + ldr r1, _0808F8C4 @ =gRoomControls + ldrh r2, [r1, #8] + subs r0, r0, r2 + movs r1, #0x8c + lsls r1, r1, #2 + cmp r0, r1 + bgt _0808F8C8 + adds r0, r2, r1 + strh r0, [r4, #0x32] + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0808F8EA + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + movs r0, #0x78 + strb r0, [r4, #0xe] + adds r0, r4, #0 + movs r1, #2 + bl UpdateSprite + b _0808F8EA + .align 2, 0 +_0808F8C4: .4byte gRoomControls +_0808F8C8: + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0808F8EA + movs r0, #0x80 + lsls r0, r0, #0xa + str r0, [r4, #0x20] + adds r0, r4, #0 + movs r1, #3 + bl UpdateSprite + ldr r0, _0808F8EC @ =0x0000012B + bl PlaySFX +_0808F8EA: + pop {r4, pc} + .align 2, 0 +_0808F8EC: .4byte 0x0000012B + + thumb_func_start sub_0808F8F0 +sub_0808F8F0: @ 0x0808F8F0 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0808F912 + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #5 + bl UpdateSprite +_0808F912: + pop {r4, pc} + + thumb_func_start sub_0808F914 +sub_0808F914: @ 0x0808F914 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0808F93C + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + movs r0, #0x3c + strb r0, [r4, #0xe] + adds r0, r4, #0 + movs r1, #1 + bl UpdateSprite +_0808F93C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0808F940 +sub_0808F940: @ 0x0808F940 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0808F960 + ldr r1, _0808F964 @ =gUnk_02000080 + ldrb r0, [r1, #6] + adds r0, #1 + strb r0, [r1, #6] + bl sub_0805E780 +_0808F960: + pop {r4, pc} + .align 2, 0 +_0808F964: .4byte gUnk_02000080 + + thumb_func_start sub_0808F968 +sub_0808F968: @ 0x0808F968 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _0808F98C @ =gUnk_08121ED8 + ldrb r0, [r4, #0xc] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + ldrb r0, [r4, #0xc] + cmp r0, #0 + beq _0808F988 + adds r0, r4, #0 + bl sub_08090514 +_0808F988: + pop {r4, pc} + .align 2, 0 +_0808F98C: .4byte gUnk_08121ED8 + + thumb_func_start sub_0808F990 +sub_0808F990: @ 0x0808F990 + push {r4, r5, r6, lr} + adds r4, r0, #0 + movs r2, #1 + strb r2, [r4, #0xc] + movs r3, #0 + movs r0, #0x80 + strh r0, [r4, #0x24] + ldrb r0, [r4, #0xe] + strb r0, [r4, #0xf] + strb r3, [r4, #0xe] + ldrb r1, [r4, #0x11] + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #3 + orrs r0, r1 + strb r0, [r4, #0x11] + adds r0, r4, #0 + adds r0, #0x81 + strb r3, [r0] + adds r0, #2 + strb r3, [r0] + ldrb r1, [r4, #0x19] + movs r0, #0x3f + ands r0, r1 + movs r1, #0x80 + orrs r0, r1 + strb r0, [r4, #0x19] + ldrb r0, [r4, #0xa] + cmp r0, #1 + bne _0808F9E8 + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #4 + orrs r0, r1 + strb r0, [r2] + adds r0, r4, #0 + adds r0, #0x80 + strb r3, [r0] + b _0808FA1C +_0808F9E8: + adds r0, r4, #0 + adds r0, #0x80 + strb r2, [r0] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #5 + orrs r0, r1 + strb r0, [r2] + ldrb r0, [r4, #0xa] + cmp r0, #2 + beq _0808FA0A + cmp r0, #4 + bne _0808FA1C +_0808FA0A: + ldrh r0, [r4, #0x32] + adds r0, #2 + strh r0, [r4, #0x32] + adds r1, r4, #0 + adds r1, #0x63 + movs r0, #0xfe + strb r0, [r1] + strb r3, [r4, #0xd] + strb r3, [r4, #0x1e] +_0808FA1C: + ldrb r0, [r4, #0xf] + cmp r0, #0 + beq _0808FAC4 + movs r6, #0 + cmp r0, #0x80 + beq _0808FA84 + ldrh r1, [r4, #0xa] + ldr r0, _0808FA38 @ =0x00000101 + cmp r1, r0 + bne _0808FA3C + movs r0, #0xf + ldrsb r0, [r4, r0] + ldrh r1, [r4, #0x32] + b _0808FA42 + .align 2, 0 +_0808FA38: .4byte 0x00000101 +_0808FA3C: + movs r0, #0xf + ldrsb r0, [r4, r0] + ldrh r1, [r4, #0x2e] +_0808FA42: + adds r0, r0, r1 + adds r1, r4, #0 + adds r1, #0x7e + strh r0, [r1] + adds r5, r1, #0 + ldr r3, [r4, #0x50] + cmp r3, #0 + bne _0808FA5E + adds r0, r4, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CBE4 + b _0808FA7C +_0808FA5E: + adds r2, r4, #0 + adds r2, #0x82 + ldrb r1, [r2] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0808FA76 + ldrb r0, [r3, #0xc] + cmp r0, #2 + bne _0808FAA2 + adds r6, #1 + b _0808FAA2 +_0808FA76: + ldrb r0, [r2] + bl sub_0807CBD0 +_0808FA7C: + cmp r0, #0 + beq _0808FAA2 + adds r6, #1 + b _0808FAA2 +_0808FA84: + movs r6, #1 + ldrh r1, [r4, #0xa] + ldr r0, _0808FA94 @ =0x00000101 + cmp r1, r0 + bne _0808FA98 + ldrh r1, [r4, #0x32] + b _0808FA9A + .align 2, 0 +_0808FA94: .4byte 0x00000101 +_0808FA98: + ldrh r1, [r4, #0x2e] +_0808FA9A: + adds r0, r4, #0 + adds r0, #0x7e + strh r1, [r0] + adds r5, r0, #0 +_0808FAA2: + cmp r6, #0 + beq _0808FAC4 + adds r1, r4, #0 + adds r1, #0x81 + movs r0, #1 + strb r0, [r1] + ldrh r1, [r4, #0xa] + ldr r0, _0808FABC @ =0x00000101 + cmp r1, r0 + bne _0808FAC0 + ldrh r0, [r5] + strh r0, [r4, #0x32] + b _0808FAC4 + .align 2, 0 +_0808FABC: .4byte 0x00000101 +_0808FAC0: + ldrh r0, [r5] + strh r0, [r4, #0x2e] +_0808FAC4: + adds r0, r4, #0 + bl sub_0808FF50 + pop {r4, r5, r6, pc} + + thumb_func_start sub_0808FACC +sub_0808FACC: @ 0x0808FACC + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x81 + ldrb r0, [r0] + cmp r0, #0 + bne _0808FAF2 + adds r0, r4, #0 + adds r0, #0x80 + ldrb r0, [r0] + cmp r0, #0 + bne _0808FAEA + adds r0, r4, #0 + bl sub_0808FBFC + b _0808FB0A +_0808FAEA: + adds r0, r4, #0 + bl sub_0808FB68 + b _0808FB0A +_0808FAF2: + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _0808FB0A + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0808FB0A + movs r0, #0x86 + lsls r0, r0, #1 + bl sub_08004488 +_0808FB0A: + ldrb r0, [r4, #0xa] + cmp r0, #2 + beq _0808FB14 + cmp r0, #4 + bne _0808FB64 +_0808FB14: + ldrb r1, [r4, #0xd] + cmp r1, #1 + beq _0808FB3E + cmp r1, #1 + bgt _0808FB24 + cmp r1, #0 + beq _0808FB2A + b _0808FB64 +_0808FB24: + cmp r1, #2 + beq _0808FB5E + b _0808FB64 +_0808FB2A: + adds r0, r4, #0 + bl sub_0808FECC + cmp r0, #0 + beq _0808FB64 + movs r0, #1 + strb r0, [r4, #0xd] + movs r0, #0xc + strb r0, [r4, #0xe] + b _0808FB64 +_0808FB3E: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0808FB64 + strb r1, [r4, #0x1e] + movs r0, #2 + strb r0, [r4, #0xd] + movs r0, #0x80 + bl sub_08004488 + adds r0, r4, #0 + bl sub_0808FF20 + b _0808FB64 +_0808FB5E: + adds r0, r4, #0 + bl nullsub_1 +_0808FB64: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0808FB68 +sub_0808FB68: @ 0x0808FB68 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x70 + ldrh r0, [r0] + adds r1, r4, #0 + adds r1, #0x38 + ldrb r1, [r1] + bl sub_080001DA + adds r1, r0, #0 + ldr r0, _0808FBAC @ =0x00004031 + cmp r1, r0 + bhi _0808FBB0 + subs r0, #1 + cmp r1, r0 + blo _0808FBB0 + movs r0, #2 + strb r0, [r4, #0xc] + adds r0, r1, #0 + subs r0, #0x30 + movs r1, #1 + ands r0, r1 + lsls r0, r0, #4 + movs r1, #8 + orrs r0, r1 + strb r0, [r4, #0x15] + movs r0, #1 + bl sub_08078A90 + adds r0, r4, #0 + movs r1, #0 + bl sub_0808FD44 + b _0808FBF6 + .align 2, 0 +_0808FBAC: .4byte 0x00004031 +_0808FBB0: + adds r0, r4, #0 + adds r0, #0x72 + ldrh r0, [r0] + adds r1, r4, #0 + adds r1, #0x38 + ldrb r1, [r1] + bl sub_080001DA + adds r1, r0, #0 + ldr r0, _0808FBF8 @ =0x00004031 + cmp r1, r0 + bhi _0808FBF0 + subs r0, #1 + cmp r1, r0 + blo _0808FBF0 + movs r0, #2 + strb r0, [r4, #0xc] + adds r0, r1, #0 + subs r0, #0x30 + movs r1, #1 + ands r0, r1 + lsls r0, r0, #4 + movs r1, #8 + orrs r0, r1 + strb r0, [r4, #0x15] + movs r0, #1 + bl sub_08078A90 + adds r0, r4, #0 + movs r1, #1 + bl sub_0808FD44 +_0808FBF0: + adds r0, r4, #0 + bl sub_0808FDE8 +_0808FBF6: + pop {r4, pc} + .align 2, 0 +_0808FBF8: .4byte 0x00004031 + + thumb_func_start sub_0808FBFC +sub_0808FBFC: @ 0x0808FBFC + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x7c + ldrh r0, [r0] + adds r1, r4, #0 + adds r1, #0x38 + ldrb r1, [r1] + bl sub_080001DA + adds r1, r0, #0 + ldr r0, _0808FC38 @ =0x0000404A + cmp r1, r0 + beq _0808FC34 + movs r0, #2 + strb r0, [r4, #0xc] + adds r0, r1, #0 + subs r0, #0x4b + movs r1, #3 + ands r0, r1 + lsls r0, r0, #3 + strb r0, [r4, #0x15] + movs r0, #1 + bl sub_08078A90 + adds r0, r4, #0 + movs r1, #0 + bl sub_0808FD44 +_0808FC34: + pop {r4, pc} + .align 2, 0 +_0808FC38: .4byte 0x0000404A + + thumb_func_start sub_0808FC3C +sub_0808FC3C: @ 0x0808FC3C + push {r4, lr} + adds r4, r0, #0 + bl sub_0800445C + adds r0, r4, #0 + bl sub_0808FC5C + cmp r0, #0 + beq _0808FC58 + movs r0, #1 + strb r0, [r4, #0xc] + movs r0, #0 + bl sub_08078A90 +_0808FC58: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0808FC5C +sub_0808FC5C: @ 0x0808FC5C + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_0806F69C + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0 + bne _0808FD40 + ldrb r1, [r4, #0xa] + cmp r1, #2 + beq _0808FC7C + cmp r1, #4 + bne _0808FC84 +_0808FC7C: + adds r1, r4, #0 + adds r1, #0x63 + movs r0, #0xfe + b _0808FC88 +_0808FC84: + adds r1, r4, #0 + adds r1, #0x63 +_0808FC88: + strb r0, [r1] + adds r0, r4, #0 + bl sub_080002D0 + cmp r0, #0 + bne _0808FD40 + ldrb r0, [r4, #0xf] + cmp r0, #0 + beq _0808FD30 + movs r2, #0 + ldrh r1, [r4, #0xa] + ldr r0, _0808FCB4 @ =0x00000101 + cmp r1, r0 + bne _0808FCB8 + movs r1, #0x32 + ldrsh r0, [r4, r1] + adds r1, r4, #0 + adds r1, #0x7e + ldrh r1, [r1] + cmp r0, r1 + bne _0808FCC8 + b _0808FCCC + .align 2, 0 +_0808FCB4: .4byte 0x00000101 +_0808FCB8: + movs r1, #0x2e + ldrsh r0, [r4, r1] + adds r1, r4, #0 + adds r1, #0x7e + ldrh r1, [r1] + cmp r0, r1 + bne _0808FCC8 + movs r2, #1 +_0808FCC8: + cmp r2, #0 + beq _0808FD30 +_0808FCCC: + adds r0, r4, #0 + adds r0, #0x81 + movs r5, #1 + strb r5, [r0] + ldr r3, [r4, #0x50] + cmp r3, #0 + bne _0808FCE4 + adds r0, #5 + ldrh r0, [r0] + bl sub_0807CCC8 + b _0808FD0C +_0808FCE4: + adds r2, r4, #0 + adds r2, #0x82 + ldrb r1, [r2] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0808FD06 + adds r0, r3, #0 + adds r0, #0x28 + subs r2, #8 + adds r1, r5, #0 + ldrh r2, [r2] + lsls r1, r2 + ldrb r2, [r0] + orrs r1, r2 + strb r1, [r0] + b _0808FD0C +_0808FD06: + ldrb r0, [r2] + bl sub_0807CCB4 +_0808FD0C: + adds r0, r4, #0 + adds r0, #0x80 + ldrb r0, [r0] + cmp r0, #0 + bne _0808FD1A + movs r0, #4 + b _0808FD1C +_0808FD1A: + movs r0, #0x18 +_0808FD1C: + strb r0, [r4, #0xe] + ldr r0, _0808FD3C @ =gLinkState + ldr r0, [r0, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0808FD30 + ldrb r0, [r4, #0xe] + adds r0, #0x10 + strb r0, [r4, #0xe] +_0808FD30: + adds r0, r4, #0 + bl sub_0808FF50 + movs r0, #1 + b _0808FD42 + .align 2, 0 +_0808FD3C: .4byte gLinkState +_0808FD40: + movs r0, #0 +_0808FD42: + pop {r4, r5, pc} + + thumb_func_start sub_0808FD44 +sub_0808FD44: @ 0x0808FD44 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + adds r0, #0x80 + ldrb r0, [r0] + cmp r0, #1 + bne _0808FD8E + adds r0, r4, #0 + adds r0, #0x83 + ldrb r0, [r0] + cmp r0, #0 + beq _0808FD62 + adds r0, r4, #0 + bl sub_08090498 +_0808FD62: + cmp r5, #0 + beq _0808FD6C + adds r0, r4, #0 + adds r0, #0x72 + b _0808FD70 +_0808FD6C: + adds r0, r4, #0 + adds r0, #0x70 +_0808FD70: + ldrh r5, [r0] + ldr r0, _0808FD84 @ =gLinkState + ldr r0, [r0, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0808FD88 + movs r0, #0x40 + strh r0, [r4, #0x24] + b _0808FDB2 + .align 2, 0 +_0808FD84: .4byte gLinkState +_0808FD88: + strh r1, [r4, #0x24] + movs r0, #0x10 + b _0808FDB4 +_0808FD8E: + adds r0, r4, #0 + adds r0, #0x7c + ldrh r5, [r0] + ldr r0, _0808FDAC @ =gLinkState + ldr r0, [r0, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0808FDB0 + movs r1, #0x40 + movs r0, #0x40 + strh r0, [r4, #0x24] + strb r1, [r4, #0xe] + b _0808FDB6 + .align 2, 0 +_0808FDAC: .4byte gLinkState +_0808FDB0: + strh r1, [r4, #0x24] +_0808FDB2: + movs r0, #0x20 +_0808FDB4: + strb r0, [r4, #0xe] +_0808FDB6: + ldr r0, _0808FDE0 @ =0x0000010F + bl sub_08004488 + adds r0, r4, #0 + bl sub_08090254 + ldr r1, _0808FDE4 @ =gUnk_080B4488 + ldrb r0, [r4, #0x15] + lsrs r0, r0, #3 + lsls r0, r0, #1 + adds r0, r0, r1 + movs r1, #0 + ldrsh r0, [r0, r1] + adds r0, r5, r0 + adds r1, r4, #0 + adds r1, #0x38 + ldrb r1, [r1] + bl sub_080001DA + pop {r4, r5, pc} + .align 2, 0 +_0808FDE0: .4byte 0x0000010F +_0808FDE4: .4byte gUnk_080B4488 + + thumb_func_start sub_0808FDE8 +sub_0808FDE8: @ 0x0808FDE8 + push {r4, r5, r6, r7, lr} + adds r7, r0, #0 + adds r0, #0x70 + ldrh r5, [r0] + subs r0, r5, #1 + movs r1, #1 + bl sub_080002E0 + adds r4, r0, #0 + adds r0, r5, #0 + movs r1, #1 + bl sub_080001DA + ldr r6, _0808FE28 @ =0x0000402E + cmp r0, r6 + bne _0808FE30 + movs r0, #0xf0 + ands r0, r4 + cmp r0, #0 + beq _0808FE14 + cmp r0, #0x50 + bne _0808FE1C +_0808FE14: + movs r0, #5 + ands r0, r4 + cmp r0, #0 + bne _0808FE58 +_0808FE1C: + ldr r0, _0808FE2C @ =0x0000402C + adds r1, r5, #0 + movs r2, #1 + bl UpdateCollisionLayer + b _0808FE58 + .align 2, 0 +_0808FE28: .4byte 0x0000402E +_0808FE2C: .4byte 0x0000402C +_0808FE30: + adds r0, r5, #0 + movs r1, #1 + bl sub_080002E0 + cmp r0, #5 + bne _0808FE58 + movs r1, #0xf0 + ands r1, r4 + cmp r1, #0 + beq _0808FE48 + cmp r1, #0x50 + bne _0808FE58 +_0808FE48: + ands r4, r0 + cmp r4, #0 + beq _0808FE58 + adds r0, r6, #0 + adds r1, r5, #0 + movs r2, #1 + bl UpdateCollisionLayer +_0808FE58: + adds r0, r7, #0 + adds r0, #0x72 + ldrh r5, [r0] + adds r0, r5, #1 + movs r1, #1 + bl sub_080002E0 + adds r4, r0, #0 + adds r0, r5, #0 + movs r1, #1 + bl sub_080001DA + ldr r6, _0808FE98 @ =0x0000402F + cmp r0, r6 + bne _0808FEA0 + movs r0, #0xf0 + ands r0, r4 + cmp r0, #0 + beq _0808FE82 + cmp r0, #0x50 + bne _0808FE8A +_0808FE82: + movs r0, #0xa + ands r0, r4 + cmp r0, #0 + bne _0808FEC8 +_0808FE8A: + ldr r0, _0808FE9C @ =0x0000402D + adds r1, r5, #0 + movs r2, #1 + bl UpdateCollisionLayer + b _0808FEC8 + .align 2, 0 +_0808FE98: .4byte 0x0000402F +_0808FE9C: .4byte 0x0000402D +_0808FEA0: + adds r0, r5, #0 + movs r1, #1 + bl sub_080002E0 + cmp r0, #0xa + bne _0808FEC8 + movs r1, #0xf0 + ands r1, r4 + cmp r1, #0 + beq _0808FEB8 + cmp r1, #0x50 + bne _0808FEC8 +_0808FEB8: + ands r4, r0 + cmp r4, #0 + beq _0808FEC8 + adds r0, r6, #0 + adds r1, r5, #0 + movs r2, #1 + bl UpdateCollisionLayer +_0808FEC8: + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_0808FECC +sub_0808FECC: @ 0x0808FECC + push {r4, r5, lr} + adds r2, r0, #0 + movs r4, #1 + ldr r0, _0808FF18 @ =gLinkState + ldr r0, [r0, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0808FF10 + ldr r3, _0808FF1C @ =gLinkEntity + ldrb r0, [r3, #0xc] + cmp r0, #6 + bne _0808FF10 + ldrb r0, [r3, #0x14] + cmp r0, #0 + bne _0808FF10 + movs r1, #0x32 + ldrsh r0, [r3, r1] + movs r5, #0x32 + ldrsh r1, [r2, r5] + subs r0, r0, r1 + cmp r0, #0x13 + bgt _0808FF10 + movs r0, #0x2e + ldrsh r2, [r2, r0] + adds r0, r2, #0 + adds r0, #0xc + movs r5, #0x2e + ldrsh r1, [r3, r5] + cmp r0, r1 + ble _0808FF10 + subs r0, #0x18 + cmp r0, r1 + blt _0808FF12 +_0808FF10: + movs r4, #0 +_0808FF12: + adds r0, r4, #0 + pop {r4, r5, pc} + .align 2, 0 +_0808FF18: .4byte gLinkState +_0808FF1C: .4byte gLinkEntity + + thumb_func_start sub_0808FF20 +sub_0808FF20: @ 0x0808FF20 + push {r4, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0xb] + cmp r1, #0 + beq _0808FF4A + cmp r1, #0 + blt _0808FF4A + cmp r1, #2 + bgt _0808FF4A + subs r1, #1 + movs r0, #0x63 + movs r2, #0 + bl CreateObject + adds r1, r0, #0 + cmp r1, #0 + beq _0808FF4A + str r4, [r1, #0x50] + adds r0, r4, #0 + bl CopyPosition +_0808FF4A: + pop {r4, pc} + + thumb_func_start nullsub_1 +nullsub_1: @ 0x0808FF4C + bx lr + .align 2, 0 + + thumb_func_start sub_0808FF50 +sub_0808FF50: @ 0x0808FF50 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r6, r0, #0 + movs r0, #0x2e + ldrsh r1, [r6, r0] + ldr r2, _0808FF98 @ =gRoomControls + ldrh r0, [r2, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + movs r3, #0x3f + ands r1, r3 + movs r4, #0x32 + ldrsh r0, [r6, r4] + ldrh r2, [r2, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r1, r0 + adds r2, r6, #0 + adds r2, #0x7c + strh r1, [r2] + ldrh r0, [r6, #0x2e] + movs r1, #0xf + ands r1, r0 + ldrh r7, [r2] + adds r0, r6, #0 + adds r0, #0x80 + ldrb r0, [r0] + cmp r0, #0 + beq _0808FF9C + cmp r0, #1 + beq _0808FFC0 + b _0809008A + .align 2, 0 +_0808FF98: .4byte gRoomControls +_0808FF9C: + adds r0, r6, #0 + adds r0, #0x70 + strh r7, [r0] + ldrh r0, [r0] + movs r1, #1 + bl sub_080001DA + adds r1, r6, #0 + adds r1, #0x74 + strh r0, [r1] + ldr r0, _0808FFBC @ =0x0000404A + adds r1, r7, #0 + movs r2, #1 + bl UpdateCollisionLayer + b _0809008A + .align 2, 0 +_0808FFBC: .4byte 0x0000404A +_0808FFC0: + movs r0, #8 + ands r1, r0 + cmp r1, #0 + beq _0809002C + adds r0, r6, #0 + adds r0, #0x70 + strh r7, [r0] + ldrh r0, [r0] + movs r1, #1 + bl sub_080001DA + adds r1, r6, #0 + adds r1, #0x74 + strh r0, [r1] + ldr r4, _08090028 @ =gUnk_08121EE4 + movs r0, #0x81 + adds r0, r0, r6 + mov r8, r0 + ldrb r0, [r0] + lsls r0, r0, #1 + adds r0, r0, r4 + ldrh r0, [r0] + adds r1, r7, #0 + movs r2, #1 + bl UpdateCollisionLayer + adds r0, r7, #1 + adds r5, r6, #0 + adds r5, #0x72 + strh r0, [r5] + ldrh r0, [r5] + movs r1, #1 + bl sub_080001DA + adds r1, r6, #0 + adds r1, #0x76 + strh r0, [r1] + mov r1, r8 + ldrb r0, [r1] + adds r0, #4 + lsls r0, r0, #1 + adds r0, r0, r4 + ldrh r1, [r0] + ldrh r2, [r5] + adds r0, r6, #0 + bl sub_08090094 + adds r0, r6, #0 + movs r1, #1 + bl sub_0809028C + b _0809008A + .align 2, 0 +_08090028: .4byte gUnk_08121EE4 +_0809002C: + adds r0, r6, #0 + adds r0, #0x72 + strh r7, [r0] + ldrh r0, [r0] + movs r1, #1 + bl sub_080001DA + adds r1, r6, #0 + adds r1, #0x76 + strh r0, [r1] + ldr r5, _08090090 @ =gUnk_08121EE4 + movs r4, #0x81 + adds r4, r4, r6 + mov r8, r4 + ldrb r0, [r4] + lsls r0, r0, #1 + adds r0, r0, r5 + ldrh r0, [r0] + adds r1, r7, #0 + movs r2, #1 + bl UpdateCollisionLayer + subs r0, r7, #1 + adds r4, r6, #0 + adds r4, #0x70 + strh r0, [r4] + ldrh r0, [r4] + movs r1, #1 + bl sub_080001DA + adds r1, r6, #0 + adds r1, #0x74 + strh r0, [r1] + mov r1, r8 + ldrb r0, [r1] + adds r0, #2 + lsls r0, r0, #1 + adds r0, r0, r5 + ldrh r1, [r0] + ldrh r2, [r4] + adds r0, r6, #0 + bl sub_08090094 + adds r0, r6, #0 + movs r1, #0 + bl sub_0809028C +_0809008A: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08090090: .4byte gUnk_08121EE4 + + thumb_func_start sub_08090094 +sub_08090094: @ 0x08090094 + push {r4, r5, r6, r7, lr} + adds r6, r0, #0 + adds r5, r1, #0 + adds r7, r2, #0 + adds r0, r7, #0 + movs r1, #1 + bl sub_080002E0 + adds r4, r0, #0 + adds r0, r7, #0 + movs r1, #1 + bl sub_080001DA + adds r3, r0, #0 + movs r0, #0x80 + lsls r0, r0, #7 + ands r0, r3 + cmp r0, #0 + bne _0809012C + adds r3, r5, #0 + ldr r1, _080900D0 @ =0xFFFFBFDC + adds r0, r3, r1 + cmp r0, #0xb + bhi _0809011A + lsls r0, r0, #2 + ldr r1, _080900D4 @ =_080900D8 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080900D0: .4byte 0xFFFFBFDC +_080900D4: .4byte _080900D8 +_080900D8: @ jump table + .4byte _08090114 @ case 0 + .4byte _08090108 @ case 1 + .4byte _0809011A @ case 2 + .4byte _0809011A @ case 3 + .4byte _0809011A @ case 4 + .4byte _0809011A @ case 5 + .4byte _0809011A @ case 6 + .4byte _0809011A @ case 7 + .4byte _08090114 @ case 8 + .4byte _0809010E @ case 9 + .4byte _08090114 @ case 10 + .4byte _0809010E @ case 11 +_08090108: + cmp r4, #5 + bne _0809011A + b _08090118 +_0809010E: + cmp r4, #5 + bne _0809011A + b _08090118 +_08090114: + cmp r4, #0xa + bne _0809011A +_08090118: + ldr r3, _08090128 @ =0x00004022 +_0809011A: + adds r0, r3, #0 + adds r1, r7, #0 + movs r2, #1 + bl UpdateCollisionLayer + b _08090242 + .align 2, 0 +_08090128: .4byte 0x00004022 +_0809012C: + ldr r1, _08090140 @ =0xFFFFBFDE + adds r0, r3, r1 + cmp r0, #0xd + bls _08090136 + b _08090242 +_08090136: + lsls r0, r0, #2 + ldr r1, _08090144 @ =_08090148 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08090140: .4byte 0xFFFFBFDE +_08090144: .4byte _08090148 +_08090148: @ jump table + .4byte _08090242 @ case 0 + .4byte _08090242 @ case 1 + .4byte _080901EC @ case 2 + .4byte _08090180 @ case 3 + .4byte _08090242 @ case 4 + .4byte _08090242 @ case 5 + .4byte _08090242 @ case 6 + .4byte _08090242 @ case 7 + .4byte _08090242 @ case 8 + .4byte _08090242 @ case 9 + .4byte _08090210 @ case 10 + .4byte _080901B4 @ case 11 + .4byte _08090210 @ case 12 + .4byte _080901B4 @ case 13 +_08090180: + ldr r0, _080901A8 @ =0x00004024 + cmp r5, r0 + bne _08090194 + ldr r3, _080901AC @ =0x00004022 + adds r2, r6, #0 + adds r2, #0x83 + ldrb r1, [r2] + movs r0, #0x10 + orrs r0, r1 + strb r0, [r2] +_08090194: + ldr r0, _080901B0 @ =0x0000402C + cmp r5, r0 + bne _08090238 + ldr r3, _080901AC @ =0x00004022 + adds r2, r6, #0 + adds r2, #0x83 + ldrb r1, [r2] + movs r0, #0x10 + b _08090234 + .align 2, 0 +_080901A8: .4byte 0x00004024 +_080901AC: .4byte 0x00004022 +_080901B0: .4byte 0x0000402C +_080901B4: + ldr r0, _080901DC @ =0x0000402C + cmp r5, r0 + bne _080901C8 + ldr r3, _080901E0 @ =0x0000402B + adds r2, r6, #0 + adds r2, #0x83 + ldrb r1, [r2] + movs r0, #0x10 + orrs r0, r1 + strb r0, [r2] +_080901C8: + ldr r0, _080901E4 @ =0x00004024 + cmp r5, r0 + bne _08090238 + ldr r3, _080901E8 @ =0x00004022 + adds r2, r6, #0 + adds r2, #0x83 + ldrb r1, [r2] + movs r0, #0x10 + b _08090234 + .align 2, 0 +_080901DC: .4byte 0x0000402C +_080901E0: .4byte 0x0000402B +_080901E4: .4byte 0x00004024 +_080901E8: .4byte 0x00004022 +_080901EC: + ldr r0, _08090204 @ =0x00004025 + cmp r5, r0 + bne _08090200 + ldr r3, _08090208 @ =0x00004022 + adds r2, r6, #0 + adds r2, #0x83 + ldrb r1, [r2] + movs r0, #0x20 + orrs r0, r1 + strb r0, [r2] +_08090200: + ldr r0, _0809020C @ =0x0000402D + b _08090226 + .align 2, 0 +_08090204: .4byte 0x00004025 +_08090208: .4byte 0x00004022 +_0809020C: .4byte 0x0000402D +_08090210: + ldr r0, _08090244 @ =0x0000402D + cmp r5, r0 + bne _08090224 + ldr r3, _08090248 @ =0x0000402B + adds r2, r6, #0 + adds r2, #0x83 + ldrb r1, [r2] + movs r0, #0x20 + orrs r0, r1 + strb r0, [r2] +_08090224: + ldr r0, _0809024C @ =0x00004025 +_08090226: + cmp r5, r0 + bne _08090238 + ldr r3, _08090250 @ =0x00004022 + adds r2, r6, #0 + adds r2, #0x83 + ldrb r1, [r2] + movs r0, #0x20 +_08090234: + orrs r0, r1 + strb r0, [r2] +_08090238: + adds r0, r3, #0 + adds r1, r7, #0 + movs r2, #1 + bl UpdateCollisionLayer +_08090242: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08090244: .4byte 0x0000402D +_08090248: .4byte 0x0000402B +_0809024C: .4byte 0x00004025 +_08090250: .4byte 0x00004022 + + thumb_func_start sub_08090254 +sub_08090254: @ 0x08090254 + push {r4, r5, lr} + adds r4, r0, #0 + adds r0, #0x74 + ldrh r0, [r0] + adds r1, r4, #0 + adds r1, #0x70 + ldrh r1, [r1] + adds r5, r4, #0 + adds r5, #0x38 + ldrb r2, [r5] + bl sub_0807B9B8 + adds r0, r4, #0 + adds r0, #0x80 + ldrb r0, [r0] + cmp r0, #1 + bne _08090288 + adds r0, r4, #0 + adds r0, #0x76 + ldrh r0, [r0] + adds r1, r4, #0 + adds r1, #0x72 + ldrh r1, [r1] + ldrb r2, [r5] + bl sub_0807B9B8 +_08090288: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0809028C +sub_0809028C: @ 0x0809028C + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + adds r6, r0, #0 + adds r4, r6, #0 + adds r4, #0x83 + ldrb r0, [r4] + movs r2, #0x30 + ands r2, r0 + movs r0, #0 + mov sb, r0 + strb r2, [r4] + adds r0, r6, #0 + adds r0, #0x70 + ldrh r5, [r0] + adds r7, r5, #0 + subs r7, #0x80 + adds r0, #2 + ldrh r3, [r0] + movs r0, #0x80 + rsbs r0, r0, #0 + adds r0, r0, r3 + mov r8, r0 + cmp r1, #1 + bne _0809039A + movs r0, #0x20 + ands r0, r2 + cmp r0, #0 + beq _080902D4 + adds r1, r3, #0 + subs r1, #0x7f + movs r0, #0 + bl sub_08090480 + b _080902FE +_080902D4: + mov r0, r8 + movs r1, #2 + bl sub_080002B0 + adds r1, r0, #0 + ldr r0, _080902EC @ =0x00000301 + cmp r1, r0 + beq _080902F0 + adds r0, #7 + cmp r1, r0 + beq _080902F6 + b _080902FE + .align 2, 0 +_080902EC: .4byte 0x00000301 +_080902F0: + ldrb r0, [r4] + movs r1, #8 + b _080902FA +_080902F6: + ldrb r0, [r4] + movs r1, #2 +_080902FA: + orrs r0, r1 + strb r0, [r4] +_080902FE: + adds r2, r6, #0 + adds r2, #0x83 + ldrb r1, [r2] + movs r0, #0x2a + ands r0, r1 + adds r4, r2, #0 + cmp r0, #0 + beq _0809031E + movs r0, #0 + adds r1, r7, #0 + bl sub_08090480 + movs r0, #0 + mov r1, r8 + bl sub_08090480 +_0809031E: + ldrb r1, [r4] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _0809034E + subs r4, r7, #1 + adds r0, r4, #0 + movs r1, #1 + bl sub_080002B0 + movs r1, #0xc0 + lsls r1, r1, #2 + cmp r0, r1 + bne _0809033C + b _08090478 +_0809033C: + movs r0, #0 + adds r1, r4, #0 + bl sub_08090480 + subs r1, r7, #2 + movs r0, #2 + bl sub_08090480 + b _08090478 +_0809034E: + subs r0, r7, #1 + movs r1, #2 + bl sub_080002B0 + adds r1, r0, #0 + movs r0, #0xc0 + lsls r0, r0, #2 + cmp r1, r0 + beq _08090368 + adds r0, #8 + cmp r1, r0 + beq _0809036E + b _08090376 +_08090368: + ldrb r1, [r4] + movs r0, #4 + b _08090372 +_0809036E: + ldrb r1, [r4] + movs r0, #1 +_08090372: + orrs r0, r1 + strb r0, [r4] +_08090376: + ldrb r1, [r4] + movs r0, #0x15 + ands r0, r1 + cmp r0, #0 + beq _08090478 + movs r0, #0x2a + ands r0, r1 + cmp r0, #0 + bne _08090478 + movs r0, #0 + adds r1, r7, #0 + bl sub_08090480 + movs r0, #1 + mov r1, r8 + bl sub_08090480 + b _08090478 +_0809039A: + movs r0, #0x10 + ands r0, r2 + cmp r0, #0 + beq _080903AE + adds r1, r5, #0 + subs r1, #0x81 + movs r0, #0 + bl sub_08090480 + b _080903DA +_080903AE: + adds r0, r7, #0 + movs r1, #2 + bl sub_080002B0 + adds r1, r0, #0 + ldr r0, _080903C8 @ =0x00000302 + cmp r1, r0 + beq _080903CC + adds r0, #4 + cmp r1, r0 + beq _080903D2 + b _080903DA + .align 2, 0 +_080903C8: .4byte 0x00000302 +_080903CC: + ldrb r0, [r4] + movs r1, #4 + b _080903D6 +_080903D2: + ldrb r0, [r4] + movs r1, #1 +_080903D6: + orrs r0, r1 + strb r0, [r4] +_080903DA: + adds r2, r6, #0 + adds r2, #0x83 + ldrb r1, [r2] + movs r0, #0x15 + ands r0, r1 + adds r4, r2, #0 + cmp r0, #0 + beq _080903FA + movs r0, #0 + adds r1, r7, #0 + bl sub_08090480 + movs r0, #0 + mov r1, r8 + bl sub_08090480 +_080903FA: + ldrb r1, [r4] + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + beq _0809042C + mov r4, r8 + adds r4, #1 + adds r0, r4, #0 + movs r1, #1 + bl sub_080002B0 + movs r1, #0xc0 + lsls r1, r1, #2 + cmp r0, r1 + beq _08090478 + movs r0, #0 + adds r1, r4, #0 + bl sub_08090480 + mov r1, r8 + adds r1, #2 + movs r0, #1 + bl sub_08090480 + b _08090478 +_0809042C: + mov r0, r8 + adds r0, #1 + movs r1, #2 + bl sub_080002B0 + adds r1, r0, #0 + movs r0, #0xc0 + lsls r0, r0, #2 + cmp r1, r0 + beq _08090448 + adds r0, #6 + cmp r1, r0 + beq _0809044E + b _08090456 +_08090448: + ldrb r1, [r4] + movs r0, #8 + b _08090452 +_0809044E: + ldrb r1, [r4] + movs r0, #2 +_08090452: + orrs r0, r1 + strb r0, [r4] +_08090456: + ldrb r1, [r4] + movs r0, #0x2a + ands r0, r1 + cmp r0, #0 + beq _08090478 + movs r0, #0x15 + ands r0, r1 + cmp r0, #0 + bne _08090478 + movs r0, #2 + adds r1, r7, #0 + bl sub_08090480 + movs r0, #0 + mov r1, r8 + bl sub_08090480 +_08090478: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_08090480 +sub_08090480: @ 0x08090480 + push {lr} + ldr r2, _08090494 @ =gUnk_08121EF0 + lsls r0, r0, #1 + adds r0, r0, r2 + ldrh r0, [r0] + movs r2, #1 + bl UpdateCollisionLayer + pop {pc} + .align 2, 0 +_08090494: .4byte gUnk_08121EF0 + + thumb_func_start sub_08090498 +sub_08090498: @ 0x08090498 + push {r4, r5, lr} + adds r5, r0, #0 + adds r0, #0x70 + ldrh r0, [r0] + adds r4, r0, #0 + subs r4, #0x80 + adds r0, r4, #0 + movs r1, #1 + bl sub_0807BA8C + adds r0, r5, #0 + adds r0, #0x83 + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _080904D2 + adds r0, r4, #0 + movs r1, #2 + bl sub_080002B0 + ldr r1, _08090510 @ =0x00000306 + cmp r0, r1 + bne _080904D2 + movs r0, #0x62 + adds r1, r4, #0 + movs r2, #1 + bl sub_08000148 +_080904D2: + adds r0, r5, #0 + adds r0, #0x72 + ldrh r0, [r0] + adds r4, r0, #0 + subs r4, #0x80 + adds r0, r4, #0 + movs r1, #1 + bl sub_0807BA8C + adds r0, r5, #0 + adds r0, #0x83 + ldrb r1, [r0] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _0809050C + adds r0, r4, #0 + movs r1, #2 + bl sub_080002B0 + movs r1, #0xc2 + lsls r1, r1, #2 + cmp r0, r1 + bne _0809050C + movs r0, #0x63 + adds r1, r4, #0 + movs r2, #1 + bl sub_08000148 +_0809050C: + pop {r4, r5, pc} + .align 2, 0 +_08090510: .4byte 0x00000306 + + thumb_func_start sub_08090514 +sub_08090514: @ 0x08090514 + push {lr} + adds r2, r0, #0 + ldr r0, [r2, #0x50] + cmp r0, #0 + beq _0809059E + ldrb r0, [r0, #0xd] + cmp r0, #1 + beq _08090552 + cmp r0, #1 + bgt _0809052E + cmp r0, #0 + beq _08090538 + b _0809059E +_0809052E: + cmp r0, #2 + beq _08090568 + cmp r0, #3 + beq _08090582 + b _0809059E +_08090538: + ldrb r1, [r2, #0x19] + movs r0, #0x3f + ands r0, r1 + movs r1, #0x80 + orrs r0, r1 + strb r0, [r2, #0x19] + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #4 + b _0809059A +_08090552: + ldrb r0, [r2, #0x19] + movs r1, #0xc0 + orrs r0, r1 + strb r0, [r2, #0x19] + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #4 + b _0809059A +_08090568: + ldrb r1, [r2, #0x19] + movs r0, #0x3f + ands r0, r1 + movs r1, #0x80 + orrs r0, r1 + strb r0, [r2, #0x19] + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #5 + b _0809059A +_08090582: + ldrb r1, [r2, #0x19] + movs r0, #0x3f + ands r0, r1 + movs r1, #0x80 + orrs r0, r1 + strb r0, [r2, #0x19] + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #3 +_0809059A: + orrs r0, r1 + strb r0, [r2] +_0809059E: + pop {pc} + + thumb_func_start sub_080905A0 +sub_080905A0: @ 0x080905A0 + push {lr} + ldr r2, _080905B4 @ =gUnk_08122218 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080905B4: .4byte gUnk_08122218 + + thumb_func_start sub_080905B8 +sub_080905B8: @ 0x080905B8 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + adds r7, r0, #0 + movs r0, #1 + mov sb, r0 + mov r1, sb + strb r1, [r7, #0xc] + movs r5, #0x2e + ldrsh r2, [r7, r5] + ldr r6, _08090618 @ =gRoomControls + ldrh r0, [r6, #6] + subs r2, r2, r0 + asrs r2, r2, #4 + movs r4, #0x3f + ands r2, r4 + movs r1, #0x32 + ldrsh r0, [r7, r1] + ldrh r1, [r6, #8] + subs r0, r0, r1 + asrs r0, r0, #4 + ands r0, r4 + lsls r0, r0, #6 + orrs r2, r0 + adds r5, r7, #0 + adds r5, #0x78 + movs r0, #0 + mov r8, r0 + strh r2, [r5] + adds r0, r7, #0 + bl sub_08090DC4 + adds r0, r7, #0 + adds r0, #0x82 + ldrh r0, [r0] + ldr r1, _0809061C @ =0x00007FFF + ands r1, r0 + cmp r1, #0x80 + beq _08090680 + cmp r1, #0x80 + bgt _08090620 + cmp r1, #0x20 + beq _080906E6 + cmp r1, #0x40 + beq _08090650 + b _080906E0 + .align 2, 0 +_08090618: .4byte gRoomControls +_0809061C: .4byte 0x00007FFF +_08090620: + movs r0, #0x80 + lsls r0, r0, #2 + cmp r1, r0 + beq _080906E6 + cmp r1, r0 + bgt _08090636 + movs r0, #0x80 + lsls r0, r0, #1 + cmp r1, r0 + beq _08090640 + b _080906E0 +_08090636: + movs r0, #0x80 + lsls r0, r0, #3 + cmp r1, r0 + beq _080906C4 + b _080906E0 +_08090640: + adds r1, r7, #0 + adds r1, #0x38 + movs r0, #2 + strb r0, [r1] + adds r0, r7, #0 + bl UpdateSpriteOrderAndFlip + b _080906E6 +_08090650: + ldrh r1, [r7, #0x32] + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #4 + orrs r0, r1 + strh r0, [r7, #0x32] + ldr r4, _0809067C @ =0x00004017 + ldrh r1, [r5] + subs r1, #0x80 + adds r0, r4, #0 + movs r2, #1 + bl UpdateCollisionLayer + ldrh r1, [r5] + subs r1, #0x40 + adds r0, r4, #0 + movs r2, #1 + bl UpdateCollisionLayer + b _080906E6 + .align 2, 0 +_0809067C: .4byte 0x00004017 +_08090680: + mov r1, r8 + strb r1, [r7, #0x1e] + ldrh r1, [r7, #0x32] + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #6 + orrs r0, r1 + strh r0, [r7, #0x32] + movs r2, #0x2e + ldrsh r1, [r7, r2] + ldrh r0, [r6, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + ands r1, r4 + movs r2, #0x32 + ldrsh r0, [r7, r2] + ldrh r2, [r6, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r4 + lsls r0, r0, #6 + orrs r1, r0 + strh r1, [r5] + ldr r0, _080906C0 @ =0x00004026 + ldrh r1, [r5] + adds r2, r7, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl UpdateCollisionLayer + b _080906E6 + .align 2, 0 +_080906C0: .4byte 0x00004026 +_080906C4: + adds r0, r7, #0 + bl sub_08090E64 + ldrb r0, [r7, #0xb] + cmp r0, #0 + beq _080906E0 + adds r0, r7, #0 + adds r0, #0x62 + mov r5, sb + strb r5, [r0] + adds r1, r7, #0 + adds r1, #0x80 + movs r0, #0x30 + strb r0, [r1] +_080906E0: + adds r0, r7, #0 + bl sub_08090B6C +_080906E6: + adds r0, r7, #0 + adds r0, #0x81 + ldrb r1, [r0] + cmp r1, #0x10 + beq _0809075C + movs r0, #0x70 + ands r0, r1 + adds r4, r7, #0 + adds r4, #0x78 + cmp r0, #0x20 + beq _0809072E + cmp r0, #0x30 + bne _0809073A + ldrh r0, [r4] + subs r0, #0x40 + strh r0, [r4] + adds r0, r7, #0 + bl sub_08090B6C + movs r0, #0x2e + ldrsh r1, [r7, r0] + ldr r2, _08090778 @ =gRoomControls + ldrh r0, [r2, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + movs r3, #0x3f + ands r1, r3 + movs r5, #0x32 + ldrsh r0, [r7, r5] + ldrh r2, [r2, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r1, r0 + strh r1, [r4] +_0809072E: + ldrh r0, [r4] + adds r0, #0x40 + strh r0, [r4] + adds r0, r7, #0 + bl sub_08090B6C +_0809073A: + movs r0, #0x2e + ldrsh r1, [r7, r0] + ldr r2, _08090778 @ =gRoomControls + ldrh r0, [r2, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + movs r3, #0x3f + ands r1, r3 + movs r5, #0x32 + ldrsh r0, [r7, r5] + ldrh r2, [r2, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r1, r0 + strh r1, [r4] +_0809075C: + adds r0, r7, #0 + adds r0, #0x82 + ldrh r0, [r0] + ldr r1, _0809077C @ =0x00007FFF + ands r1, r0 + cmp r1, #2 + beq _08090780 + cmp r1, #4 + bne _080907C8 + adds r0, r7, #0 + movs r1, #0x7e + bl sub_0801D2B4 + b _080907C8 + .align 2, 0 +_08090778: .4byte gRoomControls +_0809077C: .4byte 0x00007FFF +_08090780: + adds r0, r7, #0 + adds r0, #0x78 + ldrh r0, [r0] + adds r4, r0, #0 + subs r4, #0x81 + ldrb r0, [r7, #0xa] + movs r1, #2 + mov r8, r1 + cmp r0, #0x1a + beq _08090798 + movs r2, #3 + mov r8, r2 +_08090798: + movs r5, #0 + cmp r5, r8 + bhs _080907C8 + ldr r6, _080907DC @ =0x00004026 +_080907A0: + adds r0, r6, #0 + adds r1, r4, #0 + movs r2, #2 + bl UpdateCollisionLayer + adds r0, r6, #0 + adds r1, r4, #0 + movs r2, #1 + bl UpdateCollisionLayer + adds r1, r4, #0 + adds r1, #0x40 + movs r0, #0 + movs r2, #1 + bl sub_080001D0 + adds r5, #1 + adds r4, #1 + cmp r5, r8 + blo _080907A0 +_080907C8: + ldrb r0, [r7, #0xa] + subs r0, #1 + cmp r0, #0x3b + bls _080907D2 + b _080909DC +_080907D2: + lsls r0, r0, #2 + ldr r1, _080907E0 @ =_080907E4 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080907DC: .4byte 0x00004026 +_080907E0: .4byte _080907E4 +_080907E4: @ jump table + .4byte _080908D4 @ case 0 + .4byte _080909DC @ case 1 + .4byte _080909DC @ case 2 + .4byte _080909DC @ case 3 + .4byte _080909DC @ case 4 + .4byte _080909DC @ case 5 + .4byte _080909DC @ case 6 + .4byte _080909DC @ case 7 + .4byte _080908F0 @ case 8 + .4byte _080909DC @ case 9 + .4byte _080909DC @ case 10 + .4byte _080909DC @ case 11 + .4byte _080909DC @ case 12 + .4byte _080909DC @ case 13 + .4byte _080909DC @ case 14 + .4byte _080909DC @ case 15 + .4byte _080909DC @ case 16 + .4byte _080909DC @ case 17 + .4byte _080909DC @ case 18 + .4byte _080909DC @ case 19 + .4byte _080909DC @ case 20 + .4byte _080909DC @ case 21 + .4byte _080909DC @ case 22 + .4byte _080909DC @ case 23 + .4byte _080909DC @ case 24 + .4byte _080909DC @ case 25 + .4byte _080909DC @ case 26 + .4byte _080909DC @ case 27 + .4byte _080909DC @ case 28 + .4byte _08090920 @ case 29 + .4byte _08090938 @ case 30 + .4byte _080909DC @ case 31 + .4byte _080909DC @ case 32 + .4byte _080909DC @ case 33 + .4byte _080909DC @ case 34 + .4byte _080909DC @ case 35 + .4byte _080909DC @ case 36 + .4byte _080909DC @ case 37 + .4byte _080909DC @ case 38 + .4byte _08090984 @ case 39 + .4byte _080909DC @ case 40 + .4byte _080909DC @ case 41 + .4byte _080909DC @ case 42 + .4byte _080909DC @ case 43 + .4byte _080909DC @ case 44 + .4byte _080909DC @ case 45 + .4byte _080909DC @ case 46 + .4byte _080909DC @ case 47 + .4byte _080909DC @ case 48 + .4byte _080909DC @ case 49 + .4byte _080909DC @ case 50 + .4byte _080909DC @ case 51 + .4byte _080909DC @ case 52 + .4byte _080909DC @ case 53 + .4byte _080909DC @ case 54 + .4byte _080909DC @ case 55 + .4byte _080909DC @ case 56 + .4byte _080909DC @ case 57 + .4byte _08090994 @ case 58 + .4byte _080909C8 @ case 59 +_080908D4: + ldrb r0, [r7, #0xb] + cmp r0, #0 + bne _080908DC + b _080909DC +_080908DC: + adds r2, r7, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #4 + orrs r0, r1 + strb r0, [r2] + b _080909DC +_080908F0: + movs r0, #0x4d + movs r1, #0x3e + movs r2, #0 + bl CreateObject + adds r4, r0, #0 + cmp r4, #0 + beq _080909DC + movs r3, #0x80 + lsls r3, r3, #0xd + adds r0, r7, #0 + adds r1, r4, #0 + adds r2, r3, #0 + bl PositionRelative + movs r0, #1 + strb r0, [r4, #0x1e] + ldrb r1, [r4, #0x11] + subs r0, #0x11 + ands r0, r1 + movs r1, #2 + orrs r0, r1 + strb r0, [r4, #0x11] + b _080909DC +_08090920: + ldr r0, _08090934 @ =0x00000306 + adds r1, r7, #0 + adds r1, #0x78 + ldrh r1, [r1] + adds r1, #0x41 + movs r2, #2 + bl sub_0807B7D8 + b _080909DC + .align 2, 0 +_08090934: .4byte 0x00000306 +_08090938: + adds r5, r7, #0 + adds r5, #0x38 + movs r0, #1 + strb r0, [r5] + ldrb r1, [r7, #0x1b] + movs r0, #0x3f + ands r0, r1 + movs r1, #0x80 + orrs r0, r1 + strb r0, [r7, #0x1b] + ldr r0, _0809097C @ =0x00004074 + adds r4, r7, #0 + adds r4, #0x78 + ldrh r1, [r4] + subs r1, #0x40 + ldrb r2, [r5] + bl UpdateCollisionLayer + ldrh r1, [r4] + subs r1, #0x40 + ldrb r2, [r5] + movs r0, #0x3f + bl sub_080001D0 + ldr r6, _08090980 @ =0x00004017 + ldrh r1, [r4] + ldrb r2, [r5] + adds r0, r6, #0 + bl UpdateCollisionLayer + ldrh r1, [r4] + adds r1, #0x40 + ldrb r2, [r5] + b _080909BC + .align 2, 0 +_0809097C: .4byte 0x00004074 +_08090980: .4byte 0x00004017 +_08090984: + ldrb r0, [r7, #0xb] + cmp r0, #0 + beq _080909DC + adds r1, r7, #0 + adds r1, #0x62 + movs r0, #0xfc + strb r0, [r1] + b _080909DC +_08090994: + ldr r6, _080909C4 @ =0x00004023 + adds r5, r7, #0 + adds r5, #0x78 + ldrh r1, [r5] + subs r1, #0x41 + adds r4, r7, #0 + adds r4, #0x38 + ldrb r2, [r4] + adds r0, r6, #0 + bl UpdateCollisionLayer + ldrh r1, [r5] + subs r1, #0x40 + ldrb r2, [r4] + adds r0, r6, #0 + bl UpdateCollisionLayer + ldrh r1, [r5] + subs r1, #0x3f + ldrb r2, [r4] +_080909BC: + adds r0, r6, #0 + bl UpdateCollisionLayer + b _080909DC + .align 2, 0 +_080909C4: .4byte 0x00004023 +_080909C8: + ldr r0, _080909E4 @ =0x00004022 + adds r1, r7, #0 + adds r1, #0x78 + ldrh r1, [r1] + adds r1, #0x41 + adds r2, r7, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl UpdateCollisionLayer +_080909DC: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080909E4: .4byte 0x00004022 + + thumb_func_start sub_080909E8 +sub_080909E8: @ 0x080909E8 + push {r4, r5, r6, lr} + adds r5, r0, #0 + adds r0, #0x82 + ldrh r0, [r0] + ldr r1, _08090A04 @ =0x00007FFF + ands r1, r0 + cmp r1, #8 + beq _08090A42 + cmp r1, #8 + bgt _08090A08 + cmp r1, #1 + beq _08090A12 + b _08090B60 + .align 2, 0 +_08090A04: .4byte 0x00007FFF +_08090A08: + cmp r1, #0x10 + beq _08090A68 + cmp r1, #0x80 + beq _08090AB0 + b _08090B60 +_08090A12: + ldr r2, _08090A34 @ =gLinkEntity + movs r0, #0x32 + ldrsh r1, [r2, r0] + movs r3, #0x32 + ldrsh r0, [r5, r3] + cmp r1, r0 + blt _08090A26 + adds r0, #0x18 + cmp r1, r0 + ble _08090A38 +_08090A26: + ldrb r0, [r5, #0x19] + movs r1, #0x3f + ands r1, r0 + movs r0, #0x80 + orrs r1, r0 + strb r1, [r5, #0x19] + b _08090B60 + .align 2, 0 +_08090A34: .4byte gLinkEntity +_08090A38: + ldrb r0, [r5, #0x19] + movs r1, #0xc0 + orrs r0, r1 + strb r0, [r5, #0x19] + b _08090B60 +_08090A42: + ldrb r0, [r5, #0xe] + adds r0, #1 + strb r0, [r5, #0xe] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x10 + beq _08090A52 + b _08090B60 +_08090A52: + movs r0, #0 + strb r0, [r5, #0xe] + ldrb r0, [r5, #0xf] + adds r0, #1 + movs r1, #3 + ands r0, r1 + strb r0, [r5, #0xf] + adds r0, r5, #0 + bl sub_08090E4C + b _08090B60 +_08090A68: + ldrb r0, [r5, #0xa] + cmp r0, #0x3e + beq _08090A8C + ldrb r0, [r5, #0xe] + adds r0, #1 + strb r0, [r5, #0xe] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x14 + bne _08090B60 + ldrb r0, [r5, #0x1e] + adds r0, #1 + movs r1, #3 + ands r0, r1 + strb r0, [r5, #0x1e] + movs r0, #0 + strb r0, [r5, #0xe] + b _08090B60 +_08090A8C: + ldrb r0, [r5, #0xe] + adds r0, #1 + strb r0, [r5, #0xe] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xe + bne _08090B60 + movs r0, #0 + strb r0, [r5, #0xe] + ldrb r0, [r5, #0xf] + adds r0, #1 + movs r1, #3 + bl __modsi3 + strb r0, [r5, #0xf] + adds r0, #1 + strb r0, [r5, #0x1e] + b _08090B60 +_08090AB0: + ldr r2, _08090B00 @ =gLinkEntity + movs r3, #0x32 + ldrsh r1, [r2, r3] + movs r3, #0x32 + ldrsh r0, [r5, r3] + adds r0, #8 + cmp r1, r0 + bge _08090B14 + ldr r0, _08090B04 @ =gLinkState + ldrb r0, [r0, #0x12] + cmp r0, #0x1e + beq _08090B60 + adds r0, r5, #0 + bl sub_080002A0 + ldr r1, _08090B08 @ =0x00004017 + cmp r0, r1 + bne _08090B60 + ldr r0, _08090B0C @ =0x00004026 + adds r4, r5, #0 + adds r4, #0x78 + ldrh r1, [r4] + adds r5, #0x38 + ldrb r2, [r5] + bl UpdateCollisionLayer + ldr r6, _08090B10 @ =0x0000403D + ldrh r1, [r4] + subs r1, #0x40 + ldrb r2, [r5] + adds r0, r6, #0 + bl UpdateCollisionLayer + ldrh r1, [r4] + subs r1, #0x80 + ldrb r2, [r5] + adds r0, r6, #0 + bl UpdateCollisionLayer + b _08090B60 + .align 2, 0 +_08090B00: .4byte gLinkEntity +_08090B04: .4byte gLinkState +_08090B08: .4byte 0x00004017 +_08090B0C: .4byte 0x00004026 +_08090B10: .4byte 0x0000403D +_08090B14: + adds r3, r2, #0 + adds r3, #0x38 + ldrb r1, [r3] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _08090B2C + movs r0, #1 + strb r0, [r3] + adds r0, r2, #0 + bl UpdateSpriteOrderAndFlip +_08090B2C: + adds r0, r5, #0 + bl sub_080002A0 + ldr r6, _08090B64 @ =0x00004017 + cmp r0, r6 + beq _08090B60 + adds r4, r5, #0 + adds r4, #0x78 + ldrh r1, [r4] + adds r5, #0x38 + ldrb r2, [r5] + adds r0, r6, #0 + bl UpdateCollisionLayer + ldrh r1, [r4] + subs r1, #0x40 + ldrb r2, [r5] + adds r0, r6, #0 + bl UpdateCollisionLayer + ldr r0, _08090B68 @ =0x00004014 + ldrh r1, [r4] + subs r1, #0x80 + ldrb r2, [r5] + bl UpdateCollisionLayer +_08090B60: + pop {r4, r5, r6, pc} + .align 2, 0 +_08090B64: .4byte 0x00004017 +_08090B68: .4byte 0x00004014 + + thumb_func_start sub_08090B6C +sub_08090B6C: @ 0x08090B6C + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r1, r0, #0 + adds r0, #0x80 + ldrb r0, [r0] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08090B80 + b _08090CD2 +_08090B80: + lsrs r0, r0, #0x1b + lsls r2, r0, #0x18 + lsrs r3, r2, #0x18 + ldrh r0, [r1, #0x2e] + movs r4, #0xf + mov r8, r4 + ands r4, r0 + mov r8, r4 + adds r0, r1, #0 + adds r0, #0x78 + ldrh r6, [r0] + subs r0, #0x40 + ldrb r7, [r0] + movs r0, #3 + ands r0, r3 + cmp r0, #1 + beq _08090BF8 + cmp r0, #1 + blo _08090BB0 + cmp r0, #2 + beq _08090C48 + cmp r0, #3 + beq _08090C90 + b _08090CD2 +_08090BB0: + lsrs r5, r2, #0x1b + cmp r3, #0xc + bne _08090BB8 + movs r5, #2 +_08090BB8: + rsbs r4, r5, #0 + cmp r4, r5 + bgt _08090BCE +_08090BBE: + adds r1, r6, r4 + ldr r0, _08090BE4 @ =0x00004022 + adds r2, r7, #0 + bl UpdateCollisionLayer + adds r4, #1 + cmp r4, r5 + ble _08090BBE +_08090BCE: + movs r0, #8 + mov r1, r8 + ands r1, r0 + cmp r1, #0 + beq _08090BEC + ldr r0, _08090BE8 @ =0x00004024 + subs r1, r6, r4 + adds r2, r7, #0 + bl sub_08090CDC + b _08090CB2 + .align 2, 0 +_08090BE4: .4byte 0x00004022 +_08090BE8: .4byte 0x00004024 +_08090BEC: + ldr r0, _08090BF4 @ =0x00004022 + subs r1, r6, r4 + b _08090C6E + .align 2, 0 +_08090BF4: .4byte 0x00004022 +_08090BF8: + lsrs r5, r2, #0x1b + rsbs r4, r5, #0 + cmp r4, r5 + bgt _08090C10 +_08090C00: + adds r1, r6, r4 + ldr r0, _08090C2C @ =0x00004022 + adds r2, r7, #0 + bl UpdateCollisionLayer + adds r4, #1 + cmp r4, r5 + ble _08090C00 +_08090C10: + movs r0, #8 + mov r1, r8 + ands r1, r0 + cmp r1, #0 + beq _08090C34 + ldr r0, _08090C30 @ =0x00004024 + subs r1, r6, r4 + adds r2, r7, #0 + bl sub_08090CDC + cmp r4, #0 + beq _08090CD2 + b _08090C6A + .align 2, 0 +_08090C2C: .4byte 0x00004022 +_08090C30: .4byte 0x00004024 +_08090C34: + cmp r4, #0 + beq _08090CB2 + ldr r0, _08090C44 @ =0x00004022 + subs r1, r6, r4 + adds r2, r7, #0 + bl UpdateCollisionLayer + b _08090CB2 + .align 2, 0 +_08090C44: .4byte 0x00004022 +_08090C48: + lsrs r5, r2, #0x1a + rsbs r4, r5, #0 + cmp r4, r5 + bge _08090C60 +_08090C50: + adds r1, r6, r4 + ldr r0, _08090C78 @ =0x00004022 + adds r2, r7, #0 + bl UpdateCollisionLayer + adds r4, #1 + cmp r4, r5 + blt _08090C50 +_08090C60: + movs r0, #8 + mov r1, r8 + ands r1, r0 + cmp r1, #0 + beq _08090C7C +_08090C6A: + ldr r0, _08090C78 @ =0x00004022 + adds r1, r6, r4 +_08090C6E: + adds r2, r7, #0 + bl UpdateCollisionLayer + b _08090CD2 + .align 2, 0 +_08090C78: .4byte 0x00004022 +_08090C7C: + ldr r0, _08090C8C @ =0x00004024 + subs r1, r6, r4 + subs r1, #1 + adds r2, r7, #0 + bl sub_08090CDC + b _08090CB2 + .align 2, 0 +_08090C8C: .4byte 0x00004024 +_08090C90: + lsrs r5, r2, #0x1a + rsbs r4, r5, #0 + cmp r4, r5 + bgt _08090CA8 +_08090C98: + adds r1, r6, r4 + ldr r0, _08090CC0 @ =0x00004022 + adds r2, r7, #0 + bl UpdateCollisionLayer + adds r4, #1 + cmp r4, r5 + ble _08090C98 +_08090CA8: + movs r0, #8 + mov r1, r8 + ands r1, r0 + cmp r1, #0 + beq _08090CC8 +_08090CB2: + ldr r0, _08090CC4 @ =0x00004025 + adds r1, r6, r4 + adds r2, r7, #0 + bl sub_08090CDC + b _08090CD2 + .align 2, 0 +_08090CC0: .4byte 0x00004022 +_08090CC4: .4byte 0x00004025 +_08090CC8: + ldr r0, _08090CD8 @ =0x00004024 + subs r1, r6, r4 + adds r2, r7, #0 + bl sub_08090CDC +_08090CD2: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08090CD8: .4byte 0x00004024 + + thumb_func_start sub_08090CDC +sub_08090CDC: @ 0x08090CDC + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r5, r1, #0 + adds r6, r2, #0 + adds r0, r5, #0 + adds r1, r6, #0 + bl sub_080001DA + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + movs r0, #0x80 + lsls r0, r0, #7 + ands r0, r2 + cmp r0, #0 + bne _08090D06 + adds r0, r4, #0 + adds r1, r5, #0 + adds r2, r6, #0 + bl UpdateCollisionLayer + b _08090DB2 +_08090D06: + ldr r1, _08090D18 @ =0xFFFFBFDE + adds r0, r2, r1 + cmp r0, #0xb + bhi _08090DB2 + lsls r0, r0, #2 + ldr r1, _08090D1C @ =_08090D20 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08090D18: .4byte 0xFFFFBFDE +_08090D1C: .4byte _08090D20 +_08090D20: @ jump table + .4byte _08090DB2 @ case 0 + .4byte _08090DB2 @ case 1 + .4byte _08090D80 @ case 2 + .4byte _08090D50 @ case 3 + .4byte _08090DB2 @ case 4 + .4byte _08090DB2 @ case 5 + .4byte _08090DB2 @ case 6 + .4byte _08090DB2 @ case 7 + .4byte _08090DB2 @ case 8 + .4byte _08090DB2 @ case 9 + .4byte _08090D98 @ case 10 + .4byte _08090D68 @ case 11 +_08090D50: + ldr r0, _08090D5C @ =0x00004024 + cmp r4, r0 + bne _08090D58 + ldr r2, _08090D60 @ =0x00004022 +_08090D58: + ldr r0, _08090D64 @ =0x0000402C + b _08090DA2 + .align 2, 0 +_08090D5C: .4byte 0x00004024 +_08090D60: .4byte 0x00004022 +_08090D64: .4byte 0x0000402C +_08090D68: + ldr r0, _08090D74 @ =0x0000402C + cmp r4, r0 + bne _08090D70 + ldr r2, _08090D78 @ =0x0000402B +_08090D70: + ldr r0, _08090D7C @ =0x00004024 + b _08090DA2 + .align 2, 0 +_08090D74: .4byte 0x0000402C +_08090D78: .4byte 0x0000402B +_08090D7C: .4byte 0x00004024 +_08090D80: + ldr r0, _08090D8C @ =0x00004025 + cmp r4, r0 + bne _08090D88 + ldr r2, _08090D90 @ =0x00004022 +_08090D88: + ldr r0, _08090D94 @ =0x0000402D + b _08090DA2 + .align 2, 0 +_08090D8C: .4byte 0x00004025 +_08090D90: .4byte 0x00004022 +_08090D94: .4byte 0x0000402D +_08090D98: + ldr r0, _08090DB4 @ =0x0000402D + cmp r4, r0 + bne _08090DA0 + ldr r2, _08090DB8 @ =0x0000402B +_08090DA0: + ldr r0, _08090DBC @ =0x00004025 +_08090DA2: + cmp r4, r0 + bne _08090DA8 + ldr r2, _08090DC0 @ =0x00004022 +_08090DA8: + adds r0, r2, #0 + adds r1, r5, #0 + adds r2, r6, #0 + bl UpdateCollisionLayer +_08090DB2: + pop {r4, r5, r6, pc} + .align 2, 0 +_08090DB4: .4byte 0x0000402D +_08090DB8: .4byte 0x0000402B +_08090DBC: .4byte 0x00004025 +_08090DC0: .4byte 0x00004022 + + thumb_func_start sub_08090DC4 +sub_08090DC4: @ 0x08090DC4 + push {r4, lr} + mov ip, r0 + ldrb r0, [r0, #0xa] + lsls r0, r0, #3 + ldr r1, _08090E44 @ =gUnk_08121EF8 + adds r3, r0, r1 + ldrh r1, [r3, #6] + movs r0, #0x80 + lsls r0, r0, #8 + ands r0, r1 + cmp r0, #0 + beq _08090DF4 + ldr r1, _08090E48 @ =gUnk_08122220 + movs r0, #3 + ldrsb r0, [r3, r0] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r3, [r0] + mov r0, ip + ldrb r1, [r0, #0xb] + lsls r0, r1, #3 + adds r3, r3, r0 + mov r0, ip + strb r1, [r0, #0x1e] +_08090DF4: + ldrb r1, [r3] + mov r0, ip + adds r0, #0x80 + strb r1, [r0] + ldrb r0, [r3, #1] + mov r1, ip + adds r1, #0x81 + strb r0, [r1] + ldrb r0, [r3, #2] + subs r1, #0x1f + strb r0, [r1] + ldrb r0, [r3, #3] + adds r1, #1 + strb r0, [r1] + ldrb r1, [r3, #4] + lsls r1, r1, #6 + mov r0, ip + ldrb r2, [r0, #0x19] + movs r0, #0x3f + ands r0, r2 + orrs r0, r1 + mov r1, ip + strb r0, [r1, #0x19] + ldrb r0, [r3, #5] + mov r4, ip + adds r4, #0x29 + movs r1, #7 + ands r1, r0 + ldrb r2, [r4] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4] + ldrh r1, [r3, #6] + mov r0, ip + adds r0, #0x82 + strh r1, [r0] + pop {r4, pc} + .align 2, 0 +_08090E44: .4byte gUnk_08121EF8 +_08090E48: .4byte gUnk_08122220 + + thumb_func_start sub_08090E4C +sub_08090E4C: @ 0x08090E4C + push {lr} + ldr r2, _08090E60 @ =gUnk_08122244 + ldrb r1, [r0, #0xf] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl sub_0801D2B4 + pop {pc} + .align 2, 0 +_08090E60: .4byte gUnk_08122244 + + thumb_func_start sub_08090E64 +sub_08090E64: @ 0x08090E64 + push {r4, r5, lr} + adds r5, r0, #0 + movs r0, #0x2a + movs r1, #0 + movs r2, #0 + bl CreateObject + adds r4, r0, #0 + cmp r4, #0 + beq _08090EA0 + ldr r0, _08090EA4 @ =0x0000FFFE + adds r2, r0, #0 + ldrb r0, [r5, #0xb] + adds r2, r2, r0 + lsls r2, r2, #0x10 + adds r0, r5, #0 + adds r1, r4, #0 + movs r3, #0 + bl PositionRelative + ldrh r0, [r4, #0x36] + subs r0, #0x10 + strh r0, [r4, #0x36] + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #2 + strb r0, [r1] + adds r0, r4, #0 + bl UpdateSpriteOrderAndFlip +_08090EA0: + pop {r4, r5, pc} + .align 2, 0 +_08090EA4: .4byte 0x0000FFFE + + thumb_func_start sub_08090EA8 +sub_08090EA8: @ 0x08090EA8 + push {lr} + ldr r2, _08090EBC @ =gUnk_08122254 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08090EBC: .4byte gUnk_08122254 + + thumb_func_start sub_08090EC0 +sub_08090EC0: @ 0x08090EC0 + push {r4, lr} + adds r4, r0, #0 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r0, [r4, #0x19] + movs r1, #0xc0 + orrs r0, r1 + strb r0, [r4, #0x19] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #7 + orrs r0, r1 + strb r0, [r2] + ldrb r0, [r4, #0xb] + strb r0, [r4, #0x1e] + bl sub_08052660 + cmp r0, #0 + beq _08090EFE + ldrb r0, [r4, #0x1e] + adds r0, #4 + strb r0, [r4, #0x1e] + adds r0, r4, #0 + bl sub_080AE068 + movs r1, #0xc2 + lsls r1, r1, #1 + adds r0, r4, #0 + bl sub_080ADF80 +_08090EFE: + pop {r4, pc} + + thumb_func_start sub_08090F00 +sub_08090F00: @ 0x08090F00 + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0xa] + cmp r1, #1 + bne _08090F1C + ldr r0, [r4, #0x50] + ldrb r2, [r4, #0xf] + lsls r1, r2 + ldr r0, [r0, #0x20] + ands r0, r1 + cmp r0, #0 + bne _08090F1C + bl sub_0805E780 +_08090F1C: + ldr r6, _08090F64 @ =gLinkState + ldr r0, [r6, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08090F62 + ldr r5, _08090F68 @ =gLinkEntity + adds r0, r4, #0 + adds r1, r5, #0 + movs r2, #4 + movs r3, #4 + bl sub_080041A0 + cmp r0, #0 + beq _08090F62 + movs r1, #0x36 + ldrsh r0, [r5, r1] + cmp r0, #0 + bne _08090F62 + adds r2, r6, #0 + adds r2, #0x90 + ldr r1, _08090F6C @ =gUnk_0812225C + ldrb r0, [r4, #0xb] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r1, [r2] + ldrh r0, [r0] + ands r0, r1 + cmp r0, #0 + beq _08090F62 + ldrb r0, [r4, #0xe] + bl sub_0804B128 + bl sub_08080840 +_08090F62: + pop {r4, r5, r6, pc} + .align 2, 0 +_08090F64: .4byte gLinkState +_08090F68: .4byte gLinkEntity +_08090F6C: .4byte gUnk_0812225C + + thumb_func_start sub_08090F70 +sub_08090F70: @ 0x08090F70 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _08090FB4 + movs r5, #1 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #5 + ands r0, r1 + orrs r0, r5 + strb r0, [r4, #0x18] + ldrb r0, [r4, #0xb] + strb r0, [r4, #0x1e] + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #2 + strb r0, [r1] + adds r0, r4, #0 + bl UpdateSpriteOrderAndFlip + bl sub_08052660 + cmp r0, #0 + beq _08090FB4 + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + orrs r0, r5 + strb r0, [r2] +_08090FB4: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08090FB8 +sub_08090FB8: @ 0x08090FB8 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _08090FF6 + movs r2, #1 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #5 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x18] + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #2 + strb r0, [r1] + adds r0, r4, #0 + bl UpdateSpriteOrderAndFlip + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] + ldrb r1, [r4, #0xa] + adds r0, r4, #0 + bl UpdateSprite +_08090FF6: + pop {r4, pc} + + thumb_func_start sub_08090FF8 +sub_08090FF8: @ 0x08090FF8 + push {lr} + ldr r2, _0809100C @ =gUnk_08122278 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0809100C: .4byte gUnk_08122278 + + thumb_func_start sub_08091010 +sub_08091010: @ 0x08091010 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + movs r0, #1 + strb r0, [r4, #0xc] + movs r0, #0x2e + ldrsh r1, [r4, r0] + ldr r2, _08091094 @ =gRoomControls + ldrh r0, [r2, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + movs r3, #0x3f + ands r1, r3 + movs r5, #0x32 + ldrsh r0, [r4, r5] + ldrh r2, [r2, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r1, r0 + adds r3, r4, #0 + adds r3, #0x74 + strh r1, [r3] + adds r0, r4, #0 + adds r0, #0x38 + ldrb r5, [r0] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #7 + orrs r0, r1 + strb r0, [r2] + ldrh r0, [r3] + subs r0, #0x80 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + ldr r6, _08091098 @ =0x00004022 + movs r7, #4 +_0809105C: + subs r1, r4, #2 + adds r0, r6, #0 + adds r2, r5, #0 + bl UpdateCollisionLayer + subs r1, r4, #1 + adds r0, r6, #0 + adds r2, r5, #0 + bl UpdateCollisionLayer + adds r0, r6, #0 + adds r1, r4, #0 + adds r2, r5, #0 + bl UpdateCollisionLayer + adds r1, r4, #1 + adds r0, r6, #0 + adds r2, r5, #0 + bl UpdateCollisionLayer + adds r0, r4, #0 + adds r0, #0x40 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + subs r7, #1 + cmp r7, #0 + bge _0809105C + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08091094: .4byte gRoomControls +_08091098: .4byte 0x00004022 + + thumb_func_start nullsub_523 +nullsub_523: @ 0x0809109C + bx lr + .align 2, 0 + + thumb_func_start sub_080910A0 +sub_080910A0: @ 0x080910A0 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _080910C8 + ldrb r0, [r4, #0xa] + bl sub_0807CBD0 + cmp r0, #0 + beq _080910B8 + bl sub_0805E780 +_080910B8: + movs r1, #1 + strb r1, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x38 + strb r1, [r0] + adds r0, r4, #0 + bl sub_08078828 +_080910C8: + adds r0, r4, #0 + adds r0, #0x39 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + beq _08091100 + movs r1, #0x2e + ldrsh r0, [r4, r1] + ldr r2, _08091104 @ =gRoomControls + ldrh r1, [r2, #6] + subs r0, r0, r1 + asrs r0, r0, #4 + movs r3, #0x3f + ands r0, r3 + movs r5, #0x32 + ldrsh r1, [r4, r5] + ldrh r2, [r2, #8] + subs r1, r1, r2 + asrs r1, r1, #4 + ands r1, r3 + lsls r1, r1, #6 + orrs r0, r1 + movs r1, #2 + bl sub_080A7C8C + bl sub_0805E780 +_08091100: + pop {r4, r5, pc} + .align 2, 0 +_08091104: .4byte gRoomControls + + thumb_func_start sub_08091108 +sub_08091108: @ 0x08091108 + push {lr} + ldr r2, _0809111C @ =gUnk_08122280 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0809111C: .4byte gUnk_08122280 + + thumb_func_start sub_08091120 +sub_08091120: @ 0x08091120 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + ldr r3, _08091194 @ =gUnk_08122288 + ldrb r0, [r4, #0xa] + lsls r0, r0, #2 + adds r0, r0, r3 + ldrb r1, [r0, #2] + adds r0, r4, #0 + adds r0, #0x60 + strh r1, [r0] + ldrb r0, [r4, #0xa] + lsls r0, r0, #2 + adds r0, r0, r3 + ldrb r1, [r0, #1] + movs r0, #0xf + ands r1, r0 + ldrb r2, [r4, #0x1a] + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x1a] + ldrb r0, [r4, #0xa] + lsls r0, r0, #2 + adds r0, r0, r3 + ldrb r0, [r0, #3] + strh r0, [r4, #0x12] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + ldrb r1, [r4, #0x19] + movs r0, #0x3f + ands r0, r1 + movs r1, #0x80 + orrs r0, r1 + strb r0, [r4, #0x19] + movs r0, #0xa8 + lsls r0, r0, #0xa + str r0, [r4, #0x20] + ldrb r0, [r4, #0xa] + lsls r0, r0, #2 + adds r0, r0, r3 + ldrb r1, [r0] + adds r0, r4, #0 + bl UpdateSprite + adds r0, r4, #0 + bl sub_08004168 + pop {r4, pc} + .align 2, 0 +_08091194: .4byte gUnk_08122288 + + thumb_func_start sub_08091198 +sub_08091198: @ 0x08091198 + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x20] + cmp r0, #0 + bge _080911AA + ldrb r0, [r4, #0x18] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r4, #0x18] +_080911AA: + movs r1, #0x80 + lsls r1, r1, #6 + adds r0, r4, #0 + bl sub_08003FC4 + cmp r0, #0 + bne _080911E8 + ldrb r1, [r4, #0xb] + cmp r1, #0xf + beq _080911CE + cmp r1, #0xf + bgt _080911C8 + cmp r1, #0 + beq _080911E4 + b _080911DA +_080911C8: + cmp r1, #0xff + bne _080911DA + b _080911E4 +_080911CE: + ldrb r1, [r4, #0xe] + adds r0, r4, #0 + movs r2, #0x80 + bl CreateFx + b _080911E4 +_080911DA: + ldrb r2, [r4, #0xe] + adds r0, r4, #0 + movs r3, #0 + bl CreateObjectWithParent +_080911E4: + bl sub_0805E780 +_080911E8: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080911EC +sub_080911EC: @ 0x080911EC + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x72 + ldrh r0, [r0] + cmp r0, #1 + beq _0809123C + cmp r0, #1 + bgt _08091202 + cmp r0, #0 + beq _08091208 + b _08091260 +_08091202: + cmp r0, #2 + beq _08091254 + b _08091260 +_08091208: + ldr r1, _08091234 @ =gUnk_08122294 + ldrb r0, [r4, #0xc] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + adds r0, r4, #0 + bl sub_0800445C + ldr r1, _08091238 @ =gUnk_02021F00 + adds r0, r4, #0 + adds r0, #0x74 + ldrb r0, [r0] + lsls r0, r0, #1 + adds r0, r0, r1 + adds r1, r4, #0 + adds r1, #0x70 + ldrh r1, [r1] + strh r1, [r0] + b _08091260 + .align 2, 0 +_08091234: .4byte gUnk_08122294 +_08091238: .4byte gUnk_02021F00 +_0809123C: + ldr r0, _08091250 @ =gUnk_081222A0 + ldrb r1, [r4, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + b _08091260 + .align 2, 0 +_08091250: .4byte gUnk_081222A0 +_08091254: + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _08091260 + adds r0, r4, #0 + bl sub_08091504 +_08091260: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08091264 +sub_08091264: @ 0x08091264 + push {r4, r5, r6, r7, lr} + adds r6, r0, #0 + ldr r0, _080912C4 @ =gUnk_03003DBC + ldrb r0, [r0] + cmp r0, #0x45 + bhi _0809132C + ldrb r1, [r6, #0xa] + ldrb r2, [r6, #0xb] + movs r0, #0x54 + bl CreateObject + adds r7, r0, #0 + ldrb r1, [r6, #0xa] + ldrb r2, [r6, #0xb] + movs r0, #0x54 + bl CreateObject + adds r1, r0, #0 + str r6, [r7, #0x50] + str r6, [r1, #0x50] + adds r0, r7, #0 + adds r0, #0x72 + movs r5, #1 + movs r4, #1 + strh r4, [r0] + adds r2, r1, #0 + adds r2, #0x72 + movs r0, #2 + strh r0, [r2] + adds r0, r6, #0 + bl CopyPosition + movs r2, #1 + strb r5, [r6, #0xc] + ldrb r1, [r6, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + orrs r0, r2 + strb r0, [r6, #0x18] + movs r0, #0x60 + strh r0, [r6, #0x24] + ldrb r0, [r6, #0xb] + ands r4, r0 + cmp r4, #0 + beq _080912CC + ldr r0, _080912C8 @ =gUnk_080FD278 + b _080912CE + .align 2, 0 +_080912C4: .4byte gUnk_03003DBC +_080912C8: .4byte gUnk_080FD278 +_080912CC: + ldr r0, _08091330 @ =gUnk_080FD270 +_080912CE: + str r0, [r6, #0x48] + movs r0, #1 + strb r0, [r6, #0x16] + ldr r2, _08091334 @ =gUnk_081222A8 + ldrb r0, [r6, #0xb] + lsls r0, r0, #1 + adds r0, r0, r2 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldrh r1, [r6, #0x2e] + adds r0, r0, r1 + strh r0, [r6, #0x2e] + adds r1, r6, #0 + adds r1, #0x80 + strh r0, [r1] + ldrb r0, [r6, #0xb] + lsls r0, r0, #1 + adds r0, #1 + adds r0, r0, r2 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldrh r1, [r6, #0x32] + adds r0, r0, r1 + strh r0, [r6, #0x32] + adds r1, r6, #0 + adds r1, #0x82 + strh r0, [r1] + adds r0, r6, #0 + adds r1, r7, #0 + bl CopyPosition + adds r0, r6, #0 + adds r0, #0x7e + ldrb r0, [r0] + adds r1, r6, #0 + adds r1, #0x76 + strh r0, [r1] + ldrb r1, [r6, #0xe] + adds r0, r6, #0 + adds r0, #0x74 + strb r1, [r0] + ldrb r1, [r6, #0xb] + adds r0, r6, #0 + bl UpdateSprite +_0809132C: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08091330: .4byte gUnk_080FD270 +_08091334: .4byte gUnk_081222A8 + + thumb_func_start sub_08091338 +sub_08091338: @ 0x08091338 + push {r4, lr} + adds r4, r0, #0 + bl sub_08078930 + adds r0, r4, #0 + adds r0, #0x70 + ldrh r0, [r0] + cmp r0, #0 + beq _0809135C + ldrb r0, [r4, #0xb] + lsls r0, r0, #3 + strb r0, [r4, #0x15] + adds r0, r4, #0 + bl sub_0806F69C + adds r0, r4, #0 + bl sub_08091660 +_0809135C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08091360 +sub_08091360: @ 0x08091360 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806FBB4 + ldr r1, _0809137C @ =gUnk_081222B0 + ldrb r0, [r4, #0xd] + subs r0, #5 + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + pop {r4, pc} + .align 2, 0 +_0809137C: .4byte gUnk_081222B0 + + thumb_func_start sub_08091380 +sub_08091380: @ 0x08091380 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + ldr r7, _0809142C @ =gLinkEntity + adds r0, #0x75 + ldrb r0, [r0] + cmp r0, #0 + bne _080913E0 + ldrb r0, [r4, #0xb] + lsls r2, r0, #1 + ldrb r0, [r7, #0x14] + cmp r2, r0 + bne _080913D4 + ldr r1, _08091430 @ =gUnk_081222B8 + adds r0, r2, r1 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldrh r3, [r4, #0x2e] + adds r0, r0, r3 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + adds r0, r2, #1 + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldrh r1, [r4, #0x32] + adds r0, r0, r1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + adds r0, r7, #0 + adds r0, #0x38 + ldrb r2, [r0] + adds r0, r6, #0 + adds r1, r5, #0 + bl sub_080002D4 + subs r0, #0xf + cmp r0, #0x10 + bls _080913D4 + strh r6, [r7, #0x2e] + strh r5, [r7, #0x32] +_080913D4: + adds r1, r4, #0 + adds r1, #0x75 + movs r0, #1 + strb r0, [r1] + movs r0, #2 + strb r0, [r4, #0xf] +_080913E0: + ldrb r0, [r7, #0x14] + lsrs r0, r0, #1 + ldrb r3, [r4, #0xb] + cmp r0, r3 + bne _0809142A + ldr r1, _08091434 @ =gLinkState + adds r0, r1, #0 + adds r0, #0xa8 + ldrb r0, [r0] + cmp r0, #0x1a + bne _0809142A + ldrb r1, [r1, #5] + movs r5, #2 + adds r0, r5, #0 + ands r0, r1 + cmp r0, #0 + beq _0809142A + ldr r0, _0809142C @ =gLinkEntity + adds r0, #0x5a + ldrb r1, [r0] + adds r0, r5, #0 + ands r0, r1 + cmp r0, #0 + beq _0809142A + adds r0, r4, #0 + bl sub_0809153C + adds r1, r4, #0 + adds r1, #0x75 + ldrb r0, [r1] + cmp r0, #1 + bne _0809142A + strb r5, [r1] + movs r0, #0xcf + lsls r0, r0, #1 + bl sub_08004488 +_0809142A: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0809142C: .4byte gLinkEntity +_08091430: .4byte gUnk_081222B8 +_08091434: .4byte gLinkState + + thumb_func_start sub_08091438 +sub_08091438: @ 0x08091438 + movs r2, #0 + movs r1, #1 + strb r1, [r0, #0xc] + adds r0, #0x75 + strb r2, [r0] + bx lr + + thumb_func_start sub_08091444 +sub_08091444: @ 0x08091444 + push {r4, lr} + adds r4, r0, #0 + movs r0, #1 + strb r0, [r4, #0xc] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + subs r0, #9 + ands r0, r1 + movs r1, #5 + orrs r0, r1 + strb r0, [r2] + ldr r0, [r4, #0x50] + ldrb r1, [r0, #0xb] + adds r1, #8 + adds r0, r4, #0 + bl UpdateSprite + adds r0, r4, #0 + bl UpdateSpriteOrderAndFlip + pop {r4, pc} + + thumb_func_start sub_08091470 +sub_08091470: @ 0x08091470 + push {r4, lr} + adds r2, r0, #0 + ldr r4, [r2, #0x50] + adds r3, r4, #0 + adds r3, #0x70 + ldrh r0, [r3] + cmp r0, #7 + bhi _0809148C + ldrb r1, [r2, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2, #0x18] + b _08091502 +_0809148C: + ldrb r1, [r2, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r2, #0x18] + ldrh r0, [r3] + adds r1, r0, #0 + subs r1, #8 + movs r0, #7 + ands r1, r0 + ldrb r3, [r2, #0xb] + cmp r3, #1 + beq _080914C8 + cmp r3, #1 + bgt _080914B4 + cmp r3, #0 + beq _080914BE + b _080914E2 +_080914B4: + cmp r3, #2 + beq _080914D0 + cmp r3, #3 + beq _080914DA + b _080914E2 +_080914BE: + ldrh r0, [r4, #0x32] + subs r0, r0, r1 + subs r0, #0x11 + strh r0, [r2, #0x32] + b _080914E2 +_080914C8: + ldrh r0, [r4, #0x2e] + adds r0, r1, r0 + adds r0, #0x11 + b _080914E0 +_080914D0: + ldrh r0, [r4, #0x32] + adds r0, r1, r0 + adds r0, #0x11 + strh r0, [r2, #0x32] + b _080914E2 +_080914DA: + ldrh r0, [r4, #0x2e] + subs r0, r0, r1 + subs r0, #0x11 +_080914E0: + strh r0, [r2, #0x2e] +_080914E2: + adds r0, r4, #0 + adds r0, #0x70 + ldrh r0, [r0] + subs r0, #8 + lsls r0, r0, #0xc + lsrs r1, r0, #0x10 + ldrb r0, [r2, #0x14] + cmp r1, r0 + beq _08091502 + strb r1, [r2, #0x14] + lsls r1, r1, #2 + adds r1, r1, r3 + adds r1, #8 + adds r0, r2, #0 + bl UpdateSprite +_08091502: + pop {r4, pc} + + thumb_func_start sub_08091504 +sub_08091504: @ 0x08091504 + push {r4, lr} + adds r4, r0, #0 + movs r2, #1 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #5 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x18] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #6 + orrs r0, r1 + strb r0, [r2] + ldrb r1, [r4, #0xb] + adds r1, #4 + adds r0, r4, #0 + bl UpdateSprite + adds r0, r4, #0 + bl UpdateSpriteOrderAndFlip + pop {r4, pc} + + thumb_func_start sub_0809153C +sub_0809153C: @ 0x0809153C + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #4 + adds r5, r0, #0 + ldr r6, _080915A8 @ =gLinkEntity + ldr r1, _080915AC @ =gUnk_081222C0 + ldrb r0, [r5, #0xb] + adds r0, r0, r1 + ldrb r0, [r0] + mov r8, r0 + adds r0, r5, #0 + adds r0, #0x76 + adds r1, r5, #0 + adds r1, #0x70 + ldrh r0, [r0] + ldrh r1, [r1] + cmp r0, r1 + bls _08091656 + ldrh r4, [r6, #0x2e] + ldrh r0, [r6, #0x32] + mov sb, r0 + movs r2, #0x24 + ldrsh r1, [r5, r2] + adds r0, r6, #0 + mov r2, r8 + str r3, [sp] + bl sub_080044AE + lsls r4, r4, #0x10 + asrs r4, r4, #0x10 + ldrh r2, [r6, #0x2e] + movs r7, #0x2e + ldrsh r0, [r6, r7] + ldr r3, [sp] + cmp r4, r0 + bne _08091596 + mov r1, sb + lsls r0, r1, #0x10 + asrs r0, r0, #0x10 + movs r7, #0x32 + ldrsh r1, [r6, r7] + cmp r0, r1 + beq _08091656 +_08091596: + ldrb r0, [r5, #0xb] + cmp r0, #1 + beq _080915CA + cmp r0, #1 + bgt _080915B0 + cmp r0, #0 + beq _080915BA + b _080915E0 + .align 2, 0 +_080915A8: .4byte gLinkEntity +_080915AC: .4byte gUnk_081222C0 +_080915B0: + cmp r0, #2 + beq _080915CE + cmp r0, #3 + beq _080915DA + b _080915E0 +_080915BA: + ldrh r1, [r6, #0x32] + mov r2, sb + lsls r0, r2, #0x10 + asrs r0, r0, #0x10 + subs r1, r1, r0 + lsls r1, r1, #0x10 + lsrs r3, r1, #0x10 + b _080915E0 +_080915CA: + subs r0, r4, r2 + b _080915DC +_080915CE: + ldrh r1, [r6, #0x32] + mov r7, sb + lsls r0, r7, #0x10 + asrs r0, r0, #0x10 + subs r0, r0, r1 + b _080915DC +_080915DA: + subs r0, r2, r4 +_080915DC: + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 +_080915E0: + lsls r2, r3, #0x18 + ldr r3, _0809163C @ =gUnk_080C9160 + mov r1, r8 + lsls r0, r1, #4 + adds r0, r0, r3 + movs r7, #0 + ldrsh r0, [r0, r7] + asrs r2, r2, #0x10 + adds r1, r0, #0 + muls r1, r2, r1 + ldr r0, [r5, #0x2c] + adds r0, r0, r1 + str r0, [r5, #0x2c] + mov r1, r8 + lsls r0, r1, #4 + adds r0, #0x80 + adds r0, r0, r3 + movs r7, #0 + ldrsh r0, [r0, r7] + adds r1, r0, #0 + muls r1, r2, r1 + ldr r0, [r5, #0x30] + subs r0, r0, r1 + str r0, [r5, #0x30] + adds r0, r5, #0 + bl sub_08091660 + adds r0, r5, #0 + adds r0, #0x76 + adds r1, r5, #0 + adds r1, #0x70 + ldrh r0, [r0] + ldrh r1, [r1] + cmp r0, r1 + bhi _08091640 + movs r0, #0x86 + lsls r0, r0, #1 + bl sub_08004488 + adds r0, r5, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CCC8 + b _08091656 + .align 2, 0 +_0809163C: .4byte gUnk_080C9160 +_08091640: + ldrb r0, [r5, #0xf] + subs r0, #1 + strb r0, [r5, #0xf] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08091656 + movs r0, #0x10 + strb r0, [r5, #0xf] + adds r0, #0xff + bl sub_08004488 +_08091656: + add sp, #4 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_08091660 +sub_08091660: @ 0x08091660 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xb] + cmp r0, #1 + beq _08091686 + cmp r0, #1 + bgt _08091674 + cmp r0, #0 + beq _0809167E + b _080916AA +_08091674: + cmp r0, #2 + beq _08091690 + cmp r0, #3 + beq _0809169A + b _080916AA +_0809167E: + adds r1, r4, #0 + adds r1, #0x82 + ldrh r0, [r4, #0x32] + b _080916A0 +_08091686: + adds r0, r4, #0 + adds r0, #0x80 + ldrh r0, [r0] + ldrh r1, [r4, #0x2e] + b _080916A2 +_08091690: + adds r0, r4, #0 + adds r0, #0x82 + ldrh r0, [r0] + ldrh r1, [r4, #0x32] + b _080916A2 +_0809169A: + adds r1, r4, #0 + adds r1, #0x80 + ldrh r0, [r4, #0x2e] +_080916A0: + ldrh r1, [r1] +_080916A2: + subs r0, r0, r1 + adds r1, r4, #0 + adds r1, #0x70 + strh r0, [r1] +_080916AA: + adds r5, r4, #0 + adds r5, #0x86 + ldrh r0, [r5] + bl sub_0807CBE4 + cmp r0, #0 + beq _080916C8 + adds r0, r4, #0 + adds r0, #0x70 + ldrh r0, [r0] + cmp r0, #0 + bne _080916C8 + ldrh r0, [r5] + bl sub_0807CD48 +_080916C8: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_080916CC +sub_080916CC: @ 0x080916CC + push {r4, lr} + adds r4, r0, #0 + ldr r1, _080916E8 @ =gUnk_081223A8 + ldrb r0, [r4, #0xc] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + adds r4, #0x41 + movs r0, #0 + strb r0, [r4] + pop {r4, pc} + .align 2, 0 +_080916E8: .4byte gUnk_081223A8 + + thumb_func_start sub_080916EC +sub_080916EC: @ 0x080916EC + push {r4, r5, r6, r7, lr} + adds r6, r0, #0 + ldrb r0, [r6, #0xe] + lsls r0, r0, #3 + ldr r1, _080917C8 @ =gUnk_030010EC + adds r7, r0, r1 + adds r0, r6, #0 + adds r0, #0x84 + str r7, [r0] + ldr r0, _080917CC @ =gRoomControls + ldrb r0, [r0, #5] + ldrb r1, [r7, #4] + cmp r0, r1 + bne _08091716 + ldr r0, _080917D0 @ =gLinkState + ldr r0, [r0, #0x30] + movs r1, #0x80 + lsls r1, r1, #5 + ands r0, r1 + cmp r0, #0 + beq _0809171A +_08091716: + bl sub_0805E780 +_0809171A: + ldr r4, _080917CC @ =gRoomControls + ldrh r1, [r7] + movs r5, #0x3f + adds r0, r5, #0 + ands r0, r1 + lsls r0, r0, #4 + ldrh r2, [r4, #6] + adds r0, r0, r2 + adds r0, #8 + strh r0, [r6, #0x2e] + ldrh r1, [r7] + movs r0, #0xfc + lsls r0, r0, #4 + ands r0, r1 + lsrs r0, r0, #2 + ldrh r3, [r4, #8] + adds r0, r0, r3 + adds r0, #8 + strh r0, [r6, #0x32] + ldrb r0, [r7, #5] + strb r0, [r6, #0x14] + ldrb r0, [r7, #6] + strb r0, [r6, #0xb] + movs r2, #1 + strb r2, [r6, #0xc] + ldr r0, _080917D4 @ =gUnk_080FD310 + str r0, [r6, #0x48] + ldrb r1, [r6, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r6, #0x10] + adds r0, r6, #0 + adds r0, #0x3f + strb r2, [r0] + adds r1, r6, #0 + adds r1, #0x3c + movs r0, #0x47 + strb r0, [r1] + adds r1, #4 + movs r0, #0x44 + strb r0, [r1] + subs r1, #5 + movs r0, #0x80 + strb r0, [r1] + ldrb r0, [r6, #0x14] + lsls r0, r0, #3 + strb r0, [r6, #0x15] + movs r0, #0xe0 + lsls r0, r0, #3 + strh r0, [r6, #0x24] + adds r2, r6, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #0x18 + orrs r0, r1 + strb r0, [r2] + ldrb r1, [r6, #0x14] + adds r1, #4 + ldrb r0, [r6, #0xb] + adds r1, r1, r0 + adds r0, r6, #0 + bl LoadAnimation + ldr r0, _080917D8 @ =0x00004022 + movs r2, #0x2e + ldrsh r1, [r6, r2] + ldrh r2, [r4, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + ands r1, r5 + movs r3, #0x32 + ldrsh r2, [r6, r3] + ldrh r3, [r4, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r5 + lsls r2, r2, #6 + orrs r1, r2 + adds r2, r6, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl UpdateCollisionLayer + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080917C8: .4byte gUnk_030010EC +_080917CC: .4byte gRoomControls +_080917D0: .4byte gLinkState +_080917D4: .4byte gUnk_080FD310 +_080917D8: .4byte 0x00004022 + + thumb_func_start sub_080917DC +sub_080917DC: @ 0x080917DC + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0x1d + bne _08091810 + movs r0, #0xa8 + lsls r0, r0, #0xa + str r0, [r4, #0x20] + movs r0, #7 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x14] + adds r1, #4 + ldrb r0, [r4, #0xb] + adds r1, r1, r0 + adds r0, r4, #0 + bl LoadAnimation + ldr r0, _0809180C @ =0x0000013B + bl PlaySFX + b _080918A0 + .align 2, 0 +_0809180C: .4byte 0x0000013B +_08091810: + adds r0, r4, #0 + bl sub_0800445C + cmp r0, #0 + beq _0809184A + ldr r2, _08091840 @ =gLinkState + ldr r0, [r2, #0x30] + ldr r1, _08091844 @ =0x00040080 + ands r0, r1 + cmp r0, #0 + bne _08091848 + ldrb r0, [r2, #0x1c] + cmp r0, #0 + bne _08091848 + ldrb r0, [r2, #5] + cmp r0, #0 + bne _08091848 + ldrb r0, [r2, #2] + cmp r0, #0 + bne _08091848 + ldrb r0, [r4, #0xe] + adds r0, #1 + b _0809184A + .align 2, 0 +_08091840: .4byte gLinkState +_08091844: .4byte 0x00040080 +_08091848: + movs r0, #0 +_0809184A: + strb r0, [r4, #0xe] + ldrb r0, [r4, #0xb] + cmp r0, #0 + bne _0809189C + ldrb r0, [r4, #0xe] + cmp r0, #8 + bls _080918A0 + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + ldr r2, _08091894 @ =gLinkState + movs r0, #0x81 + strb r0, [r2, #2] + ldr r0, [r2, #0x30] + movs r1, #0x80 + lsls r1, r1, #0x13 + orrs r0, r1 + str r0, [r2, #0x30] + ldr r1, _08091898 @ =gLinkEntity + movs r0, #0x80 + lsls r0, r0, #0xa + str r0, [r1, #0x20] + movs r0, #0x80 + lsls r0, r0, #1 + strh r0, [r1, #0x24] + ldrb r2, [r1, #0x10] + movs r0, #0x7f + ands r0, r2 + strb r0, [r1, #0x10] + bl sub_08077B2C + bl sub_0807A108 + movs r0, #0x7c + bl PlaySFX + b _080918A0 + .align 2, 0 +_08091894: .4byte gLinkState +_08091898: .4byte gLinkEntity +_0809189C: + movs r0, #0 + strb r0, [r4, #0xe] +_080918A0: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080918A4 +sub_080918A4: @ 0x080918A4 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r5, _08091964 @ =gLinkEntity + adds r1, r5, #0 + movs r2, #2 + movs r3, #2 + bl sub_080041A0 + cmp r0, #0 + beq _08091974 + ldrh r0, [r4, #0x2e] + strh r0, [r5, #0x2e] + ldrh r0, [r4, #0x32] + strh r0, [r5, #0x32] + movs r0, #0x36 + ldrsh r1, [r5, r0] + movs r0, #0x10 + rsbs r0, r0, #0 + cmp r1, r0 + ble _0809197E + ldr r0, [r5, #0x20] + cmp r0, #0 + bge _080919A4 + ldrb r0, [r4, #0x14] + lsls r0, r0, #1 + strb r0, [r5, #0x14] + ldr r2, _08091968 @ =gLinkState + ldr r0, [r2, #0x30] + movs r1, #0x80 + lsls r1, r1, #0x13 + eors r0, r1 + movs r1, #0x80 + lsls r1, r1, #5 + orrs r0, r1 + str r0, [r2, #0x30] + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + movs r0, #1 + strb r0, [r4, #0xf] + ldrb r0, [r4, #0x10] + movs r2, #0x20 + orrs r0, r2 + strb r0, [r4, #0x10] + adds r1, r4, #0 + adds r1, #0x3f + movs r0, #0x97 + strb r0, [r1] + adds r0, r5, #0 + adds r0, #0x3c + ldrb r0, [r0] + adds r0, #1 + subs r1, #3 + orrs r0, r2 + strb r0, [r1] + adds r0, r5, #0 + adds r0, #0x3b + ldrb r0, [r0] + adds r2, r4, #0 + adds r2, #0x3b + strb r0, [r2] + adds r1, #4 + movs r0, #0x18 + strb r0, [r1] + adds r1, #4 + movs r0, #8 + strb r0, [r1] + adds r0, r4, #0 + bl sub_0801766C + movs r1, #0x2e + ldrsh r0, [r4, r1] + ldr r2, _0809196C @ =gRoomControls + ldrh r1, [r2, #6] + subs r0, r0, r1 + asrs r0, r0, #4 + movs r3, #0x3f + ands r0, r3 + movs r5, #0x32 + ldrsh r1, [r4, r5] + ldrh r2, [r2, #8] + subs r1, r1, r2 + asrs r1, r1, #4 + ands r1, r3 + lsls r1, r1, #6 + orrs r0, r1 + adds r1, r4, #0 + adds r1, #0x38 + ldrb r1, [r1] + bl sub_0807BA8C + ldr r0, _08091970 @ =0x00000137 + bl PlaySFX + b _0809197E + .align 2, 0 +_08091964: .4byte gLinkEntity +_08091968: .4byte gLinkState +_0809196C: .4byte gRoomControls +_08091970: .4byte 0x00000137 +_08091974: + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_080045C4 + strb r0, [r5, #0x15] +_0809197E: + ldr r3, _080919A8 @ =gLinkEntity + ldr r0, [r3, #0x20] + cmp r0, #0 + bge _080919A4 + adds r0, r4, #0 + adds r0, #0x29 + ldrb r1, [r0] + lsls r1, r1, #0x1d + lsrs r1, r1, #0x1d + subs r1, #1 + adds r3, #0x29 + movs r0, #7 + ands r1, r0 + ldrb r2, [r3] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] +_080919A4: + pop {r4, r5, pc} + .align 2, 0 +_080919A8: .4byte gLinkEntity + + thumb_func_start sub_080919AC +sub_080919AC: @ 0x080919AC + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r5, r0, #0 + ldr r1, _080919D4 @ =gRoomControls + movs r0, #0 + mov r8, r0 + movs r0, #7 + strb r0, [r1, #0xe] + ldr r0, _080919D8 @ =gLinkState + ldr r0, [r0, #0x30] + movs r1, #0x80 + lsls r1, r1, #5 + ands r0, r1 + cmp r0, #0 + bne _080919DC + movs r0, #1 + strb r0, [r5, #0xc] + b _08091C04 + .align 2, 0 +_080919D4: .4byte gRoomControls +_080919D8: .4byte gLinkState +_080919DC: + ldr r4, _08091A14 @ =gLinkEntity + adds r6, r4, #0 + adds r6, #0x5a + ldrb r1, [r6] + movs r7, #0xf + adds r0, r7, #0 + ands r0, r1 + cmp r0, #0 + bne _08091A22 + ldrb r1, [r5, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r5, #0x10] + adds r0, r5, #0 + adds r1, r4, #0 + bl CopyPosition + ldrb r1, [r6] + movs r0, #0xf0 + ands r0, r1 + cmp r0, #0x10 + bne _08091A18 + adds r1, r5, #0 + adds r1, #0x63 + movs r0, #1 + strb r0, [r1] + b _08091C04 + .align 2, 0 +_08091A14: .4byte gLinkEntity +_08091A18: + adds r0, r5, #0 + adds r0, #0x63 + mov r1, r8 + strb r1, [r0] + b _08091C04 +_08091A22: + ldrb r0, [r5, #0x10] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r5, #0x10] + mov r0, r8 + strh r0, [r4, #0x24] + adds r0, r5, #0 + bl sub_0806F69C + adds r0, r5, #0 + adds r1, r4, #0 + bl CopyPosition + adds r0, r5, #0 + adds r0, #0x29 + ldrb r1, [r0] + lsls r1, r1, #0x1d + lsrs r1, r1, #0x1d + subs r1, #1 + adds r3, r4, #0 + adds r3, #0x29 + movs r0, #7 + ands r1, r0 + ldrb r2, [r3] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + adds r0, r5, #0 + bl sub_08091DDC + cmp r0, #0 + beq _08091A68 + b _08091C04 +_08091A68: + ldr r0, _08091AD8 @ =gUnk_030010A0 + ldr r0, [r0] + ands r0, r7 + cmp r0, #0 + bne _08091A7A + movs r0, #0x9c + lsls r0, r0, #1 + bl PlaySFX +_08091A7A: + ldrb r0, [r5, #0xf] + subs r0, #1 + strb r0, [r5, #0xf] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + bne _08091A92 + movs r0, #0x7b + bl PlaySFX + movs r0, #0x3c + strb r0, [r5, #0xf] +_08091A92: + ldr r2, _08091ADC @ =gUnk_081223C8 + ldrb r0, [r5, #0x14] + lsls r0, r0, #1 + adds r1, r0, r2 + ldrb r1, [r1] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + adds r0, #1 + adds r0, r0, r2 + movs r2, #0 + ldrsb r2, [r0, r2] + adds r0, r5, #0 + bl sub_080002B4 + adds r4, r0, #0 + ldr r1, _08091AE0 @ =gUnk_081223D8 + ldrb r0, [r5, #0x14] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl sub_08007DD6 + cmp r0, #0 + bne _08091AE4 + ldrb r0, [r5, #0x15] + movs r1, #0x10 + eors r0, r1 + strb r0, [r5, #0x15] + ldrb r0, [r5, #0x14] + movs r1, #2 + eors r0, r1 + strb r0, [r5, #0x14] + b _08091BD8 + .align 2, 0 +_08091AD8: .4byte gUnk_030010A0 +_08091ADC: .4byte gUnk_081223C8 +_08091AE0: .4byte gUnk_081223D8 +_08091AE4: + adds r0, r4, #0 + subs r0, #0x64 + cmp r0, #0xb + bhi _08091BD8 + lsls r0, r0, #2 + ldr r1, _08091AF8 @ =_08091AFC + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08091AF8: .4byte _08091AFC +_08091AFC: @ jump table + .4byte _08091B2C @ case 0 + .4byte _08091BD8 @ case 1 + .4byte _08091BD8 @ case 2 + .4byte _08091BB8 @ case 3 + .4byte _08091BB8 @ case 4 + .4byte _08091BB8 @ case 5 + .4byte _08091BB8 @ case 6 + .4byte _08091BD8 @ case 7 + .4byte _08091BB8 @ case 8 + .4byte _08091BB8 @ case 9 + .4byte _08091BB8 @ case 10 + .4byte _08091BB8 @ case 11 +_08091B2C: + ldrb r1, [r5, #0x10] + movs r0, #0xdf + ands r0, r1 + strb r0, [r5, #0x10] + adds r1, r5, #0 + adds r1, #0x3f + movs r0, #1 + strb r0, [r1] + subs r1, #3 + movs r0, #0x47 + strb r0, [r1] + adds r1, #4 + movs r0, #0x44 + strb r0, [r1] + subs r1, #5 + movs r4, #0x80 + movs r0, #0x80 + strb r0, [r1] + movs r0, #6 + strb r0, [r5, #0xc] + adds r0, r5, #0 + bl sub_08017744 + ldr r2, _08091BAC @ =gLinkState + movs r0, #0x41 + strb r0, [r2, #2] + ldr r0, [r2, #0x30] + movs r1, #0x80 + lsls r1, r1, #5 + eors r0, r1 + movs r1, #0x80 + lsls r1, r1, #0x13 + orrs r0, r1 + str r0, [r2, #0x30] + ldr r1, _08091BB0 @ =gLinkEntity + movs r0, #0x80 + lsls r0, r0, #0xa + str r0, [r1, #0x20] + movs r0, #0x80 + lsls r0, r0, #2 + strh r0, [r1, #0x24] + ldrb r0, [r5, #0x14] + lsls r0, r0, #1 + strb r0, [r1, #0x14] + ldrb r0, [r5, #0x15] + strb r0, [r1, #0x15] + ldrb r0, [r1, #0x10] + orrs r4, r0 + strb r4, [r1, #0x10] + adds r0, r5, #0 + bl sub_08004168 + ldrb r1, [r5, #0x14] + adds r1, #0xc + adds r0, r5, #0 + bl LoadAnimation + movs r0, #0x78 + bl PlaySFX + ldr r0, _08091BB4 @ =0x00000139 + bl PlaySFX + b _08091C04 + .align 2, 0 +_08091BAC: .4byte gLinkState +_08091BB0: .4byte gLinkEntity +_08091BB4: .4byte 0x00000139 +_08091BB8: + adds r0, r5, #0 + bl sub_080002B8 + cmp r4, r0 + bne _08091BD8 + adds r0, r5, #0 + bl sub_08091C0C + ldr r1, _08091BD4 @ =gLinkEntity + ldrb r0, [r5, #0x14] + lsls r0, r0, #1 + strb r0, [r1, #0x14] + b _08091C04 + .align 2, 0 +_08091BD4: .4byte gLinkEntity +_08091BD8: + ldr r2, _08091BF8 @ =gLinkEntity + ldrb r0, [r5, #0x14] + lsls r1, r0, #1 + strb r1, [r2, #0x14] + adds r1, r5, #0 + adds r1, #0x58 + ldrb r1, [r1] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r1, r0 + bne _08091BFC + adds r0, r5, #0 + bl sub_080042B8 + b _08091C04 + .align 2, 0 +_08091BF8: .4byte gLinkEntity +_08091BFC: + ldrb r1, [r5, #0x14] + adds r0, r5, #0 + bl LoadAnimation +_08091C04: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_08091C0C +sub_08091C0C: @ 0x08091C0C + push {r4, lr} + adds r4, r0, #0 + bl sub_08004168 + ldr r1, _08091C30 @ =gLinkEntity + adds r0, r4, #0 + bl CopyPosition + adds r0, r4, #0 + bl sub_080002B8 + cmp r0, #0x68 + beq _08091C46 + cmp r0, #0x68 + bhi _08091C34 + cmp r0, #0x67 + beq _08091C3E + b _08091C80 + .align 2, 0 +_08091C30: .4byte gLinkEntity +_08091C34: + cmp r0, #0x69 + beq _08091C4E + cmp r0, #0x6a + beq _08091C66 + b _08091C80 +_08091C3E: + ldrb r0, [r4, #0x15] + cmp r0, #0x18 + beq _08091C54 + b _08091C76 +_08091C46: + ldrb r0, [r4, #0x15] + cmp r0, #8 + beq _08091C6C + b _08091C5C +_08091C4E: + ldrb r0, [r4, #0x15] + cmp r0, #8 + bne _08091C5C +_08091C54: + movs r0, #0 + strb r0, [r4, #0x15] + strb r0, [r4, #0x14] + b _08091C86 +_08091C5C: + movs r0, #0x18 + strb r0, [r4, #0x15] + movs r0, #3 + strb r0, [r4, #0x14] + b _08091C86 +_08091C66: + ldrb r0, [r4, #0x15] + cmp r0, #0x18 + bne _08091C76 +_08091C6C: + movs r0, #0x10 + strb r0, [r4, #0x15] + movs r0, #2 + strb r0, [r4, #0x14] + b _08091C86 +_08091C76: + movs r0, #8 + strb r0, [r4, #0x15] + movs r0, #1 + strb r0, [r4, #0x14] + b _08091C86 +_08091C80: + movs r0, #3 + strb r0, [r4, #0xc] + b _08091C92 +_08091C86: + movs r0, #3 + strb r0, [r4, #0xc] + ldr r1, _08091C94 @ =gLinkEntity + ldrb r0, [r4, #0x14] + lsls r0, r0, #1 + strb r0, [r1, #0x14] +_08091C92: + pop {r4, pc} + .align 2, 0 +_08091C94: .4byte gLinkEntity + + thumb_func_start sub_08091C98 +sub_08091C98: @ 0x08091C98 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_0806F69C + ldr r5, _08091CC0 @ =gLinkEntity + adds r0, r4, #0 + adds r1, r5, #0 + bl CopyPosition + ldr r1, _08091CC4 @ =gRoomControls + ldrh r0, [r1] + cmp r0, #0 + bne _08091CBE + movs r0, #3 + strb r0, [r4, #0xc] + movs r0, #0xe0 + lsls r0, r0, #3 + strh r0, [r4, #0x24] + str r5, [r1, #0x30] +_08091CBE: + pop {r4, r5, pc} + .align 2, 0 +_08091CC0: .4byte gLinkEntity +_08091CC4: .4byte gRoomControls + + thumb_func_start sub_08091CC8 +sub_08091CC8: @ 0x08091CC8 + push {r4, r5, r6, lr} + adds r6, r0, #0 + ldr r2, _08091D58 @ =gLinkState + ldrb r0, [r2, #2] + cmp r0, #0 + bne _08091D64 + movs r0, #1 + strb r0, [r6, #0xc] + ldrb r0, [r6, #0x15] + movs r1, #0x10 + eors r0, r1 + strb r0, [r6, #0x15] + ldrb r0, [r6, #0x14] + movs r1, #2 + eors r0, r1 + strb r0, [r6, #0x14] + ldr r0, [r2, #0x30] + movs r1, #0x80 + lsls r1, r1, #0x13 + eors r0, r1 + str r0, [r2, #0x30] + adds r0, r6, #0 + adds r0, #0x84 + ldr r4, [r0] + movs r0, #0x2e + ldrsh r1, [r6, r0] + ldr r5, _08091D5C @ =gRoomControls + ldrh r0, [r5, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + movs r3, #0x3f + ands r1, r3 + movs r2, #0x32 + ldrsh r0, [r6, r2] + ldrh r2, [r5, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r1, r0 + strh r1, [r4] + ldrb r0, [r5, #5] + strb r0, [r4, #4] + ldrb r0, [r6, #0x14] + strb r0, [r4, #5] + ldrb r1, [r6, #0x14] + adds r1, #0x10 + adds r0, r6, #0 + bl LoadAnimation + ldr r0, _08091D60 @ =0x00004022 + movs r3, #0x2e + ldrsh r1, [r6, r3] + ldrh r2, [r5, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + movs r4, #0x3f + ands r1, r4 + movs r3, #0x32 + ldrsh r2, [r6, r3] + ldrh r3, [r5, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r4 + lsls r2, r2, #6 + orrs r1, r2 + adds r2, r6, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl UpdateCollisionLayer + b _08091D8A + .align 2, 0 +_08091D58: .4byte gLinkState +_08091D5C: .4byte gRoomControls +_08091D60: .4byte 0x00004022 +_08091D64: + adds r0, r6, #0 + bl sub_080042B8 + ldr r3, _08091D8C @ =gLinkEntity + adds r0, r6, #0 + adds r0, #0x29 + ldrb r1, [r0] + lsls r1, r1, #0x1d + lsrs r1, r1, #0x1d + subs r1, #1 + adds r3, #0x29 + movs r0, #7 + ands r1, r0 + ldrb r2, [r3] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] +_08091D8A: + pop {r4, r5, r6, pc} + .align 2, 0 +_08091D8C: .4byte gLinkEntity + + thumb_func_start sub_08091D90 +sub_08091D90: @ 0x08091D90 + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x20] + cmp r0, #0 + bge _08091DA0 + adds r0, r4, #0 + bl sub_080042B8 +_08091DA0: + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0 + bne _08091DD8 + movs r1, #0x80 + lsls r1, r1, #6 + adds r0, r4, #0 + bl sub_08003FC4 + cmp r0, #0 + bne _08091DD8 + ldrb r1, [r4, #0xb] + movs r0, #4 + eors r1, r0 + strb r1, [r4, #0xb] + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x84 + ldr r0, [r0] + strb r1, [r0, #6] + movs r0, #0x9e + lsls r0, r0, #1 + bl PlaySFX +_08091DD8: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08091DDC +sub_08091DDC: @ 0x08091DDC + push {r4, lr} + adds r4, r0, #0 + ldr r2, _08091E30 @ =gUnk_081223D0 + ldrb r0, [r4, #0x14] + lsls r0, r0, #1 + adds r1, r0, r2 + ldrb r1, [r1] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + adds r0, #1 + adds r0, r0, r2 + movs r2, #0 + ldrsb r2, [r0, r2] + adds r0, r4, #0 + bl sub_080002CC + cmp r0, #0xff + bne _08091E5C + ldr r0, _08091E34 @ =gLinkEntity + ldrb r1, [r4, #0x14] + bl sub_0807BD14 + cmp r0, #0 + beq _08091E5C + ldrb r1, [r4, #0x11] + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #6 + orrs r0, r1 + strb r0, [r4, #0x11] + movs r0, #5 + strb r0, [r4, #0xc] + ldrb r0, [r4, #0x15] + cmp r0, #8 + beq _08091E40 + cmp r0, #8 + bgt _08091E38 + cmp r0, #0 + beq _08091E40 + b _08091E44 + .align 2, 0 +_08091E30: .4byte gUnk_081223D0 +_08091E34: .4byte gLinkEntity +_08091E38: + cmp r0, #0x10 + beq _08091E40 + cmp r0, #0x18 + bne _08091E44 +_08091E40: + movs r0, #0xa0 + strh r0, [r4, #0x24] +_08091E44: + ldr r0, _08091E54 @ =gLinkEntity + ldrb r1, [r4, #0x15] + strb r1, [r0, #0x15] + ldr r0, _08091E58 @ =gRoomControls + str r4, [r0, #0x30] + movs r0, #1 + b _08091E5E + .align 2, 0 +_08091E54: .4byte gLinkEntity +_08091E58: .4byte gRoomControls +_08091E5C: + movs r0, #0 +_08091E5E: + pop {r4, pc} + + thumb_func_start sub_08091E60 +sub_08091E60: @ 0x08091E60 + push {lr} + ldr r2, _08091E74 @ =gUnk_08122598 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08091E74: .4byte gUnk_08122598 + + thumb_func_start sub_08091E78 +sub_08091E78: @ 0x08091E78 + push {r4, lr} + adds r4, r0, #0 + movs r2, #1 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #5 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x18] + ldrb r0, [r4, #0xe] + cmp r0, #0 + bne _08091E96 + movs r0, #0x2d + strb r0, [r4, #0xe] +_08091E96: + ldrb r1, [r4, #0x1b] + movs r0, #0x3f + ands r0, r1 + movs r1, #0x40 + orrs r0, r1 + strb r0, [r4, #0x1b] + ldrb r1, [r4, #0xb] + adds r0, r4, #0 + bl UpdateSprite + ldr r1, _08091EBC @ =gUnk_08122590 + ldrb r0, [r4, #0xb] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r0, [r0] + bl PlaySFX + pop {r4, pc} + .align 2, 0 +_08091EBC: .4byte gUnk_08122590 + + thumb_func_start sub_08091EC0 +sub_08091EC0: @ 0x08091EC0 + push {r4, lr} + adds r4, r0, #0 + ldr r1, [r4, #0x50] + cmp r1, #0 + beq _08091ED6 + ldrh r0, [r1, #0x2e] + strh r0, [r4, #0x2e] + ldrh r0, [r1, #0x32] + strh r0, [r4, #0x32] + ldrh r0, [r1, #0x36] + strh r0, [r4, #0x36] +_08091ED6: + ldrb r0, [r4, #0xb] + cmp r0, #2 + beq _08091EEC + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08091EEC + bl sub_0805E780 +_08091EEC: + adds r0, r4, #0 + bl sub_08004274 + pop {r4, pc} + + thumb_func_start sub_08091EF4 +sub_08091EF4: @ 0x08091EF4 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xc] + cmp r0, #1 + bhi _08091F0E + ldr r0, _08091F10 @ =gUnk_08122604 + ldrb r1, [r2, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r2, #0 + bl _call_via_r1 +_08091F0E: + pop {pc} + .align 2, 0 +_08091F10: .4byte gUnk_08122604 + + thumb_func_start sub_08091F14 +sub_08091F14: @ 0x08091F14 + push {r4, r5, lr} + adds r4, r0, #0 + movs r2, #0 + movs r0, #1 + strb r0, [r4, #0xc] + adds r3, r4, #0 + adds r3, #0x29 + ldrb r0, [r3] + movs r1, #7 + orrs r0, r1 + strb r0, [r3] + adds r0, r4, #0 + adds r0, #0x58 + strb r2, [r0] + movs r0, #0x2e + ldrsh r1, [r4, r0] + ldr r2, _08091FEC @ =gRoomControls + ldrh r0, [r2, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + movs r3, #0x3f + ands r1, r3 + movs r5, #0x32 + ldrsh r0, [r4, r5] + ldrh r2, [r2, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r1, r0 + adds r5, r4, #0 + adds r5, #0x70 + strh r1, [r5] + adds r0, r4, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CBE4 + cmp r0, #0 + beq _08091FEA + movs r0, #2 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #6 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + movs r0, #0xd1 + lsls r0, r0, #1 + ldrh r1, [r5] + subs r1, #0x41 + adds r4, #0x38 + ldrb r2, [r4] + bl sub_0807B314 + ldr r0, _08091FF0 @ =0x000001A3 + ldrh r1, [r5] + subs r1, #0x40 + ldrb r2, [r4] + bl sub_0807B314 + movs r0, #0xd2 + lsls r0, r0, #1 + ldrh r1, [r5] + subs r1, #0x3f + ldrb r2, [r4] + bl sub_0807B314 + ldr r0, _08091FF4 @ =0x000001A5 + ldrh r1, [r5] + subs r1, #1 + ldrb r2, [r4] + bl sub_0807B314 + movs r0, #0xd3 + lsls r0, r0, #1 + ldrh r1, [r5] + ldrb r2, [r4] + bl sub_0807B314 + ldr r0, _08091FF8 @ =0x000001A7 + ldrh r1, [r5] + adds r1, #1 + ldrb r2, [r4] + bl sub_0807B314 + movs r0, #0xd4 + lsls r0, r0, #1 + ldrh r1, [r5] + adds r1, #0x3f + ldrb r2, [r4] + bl sub_0807B314 + ldr r0, _08091FFC @ =0x000001A9 + ldrh r1, [r5] + adds r1, #0x40 + ldrb r2, [r4] + bl sub_0807B314 + movs r0, #0xd5 + lsls r0, r0, #1 + ldrh r1, [r5] + adds r1, #0x41 + ldrb r2, [r4] + bl sub_0807B314 +_08091FEA: + pop {r4, r5, pc} + .align 2, 0 +_08091FEC: .4byte gRoomControls +_08091FF0: .4byte 0x000001A3 +_08091FF4: .4byte 0x000001A5 +_08091FF8: .4byte 0x000001A7 +_08091FFC: .4byte 0x000001A9 + + thumb_func_start sub_08092000 +sub_08092000: @ 0x08092000 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x70 + ldrh r0, [r0] + adds r1, r4, #0 + adds r1, #0x38 + ldrb r1, [r1] + bl sub_080002B0 + movs r1, #0xd3 + lsls r1, r1, #1 + cmp r0, r1 + bne _08092034 + movs r0, #2 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #6 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + adds r0, r4, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CCC8 +_08092034: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08092038 +sub_08092038: @ 0x08092038 + push {lr} + ldr r2, _0809204C @ =gUnk_0812260C + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0809204C: .4byte gUnk_0812260C + + thumb_func_start sub_08092050 +sub_08092050: @ 0x08092050 + push {r4, r5, r6, r7, lr} + adds r6, r0, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CBE4 + cmp r0, #0 + beq _0809207A + movs r0, #3 + strb r0, [r6, #0xc] + ldrh r0, [r6, #0x2e] + adds r0, #2 + strh r0, [r6, #0x2e] + adds r0, r6, #0 + bl sub_0809223C + adds r0, r6, #0 + movs r1, #1 + bl LoadAnimation + b _08092148 +_0809207A: + ldrb r0, [r6, #0xd] + cmp r0, #0 + bne _08092138 + movs r1, #1 + strb r1, [r6, #0xd] + adds r0, r6, #0 + adds r0, #0x38 + strb r1, [r0] + adds r2, r6, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #6 + orrs r0, r1 + strb r0, [r2] + ldrh r0, [r6, #0x2e] + adds r0, #2 + strh r0, [r6, #0x2e] + adds r0, r6, #0 + bl UpdateSpriteOrderAndFlip + movs r0, #0x2e + ldrsh r2, [r6, r0] + ldr r3, _08092130 @ =gRoomControls + ldrh r0, [r3, #6] + subs r2, r2, r0 + asrs r2, r2, #4 + movs r4, #0x3f + ands r2, r4 + movs r1, #0x32 + ldrsh r0, [r6, r1] + ldrh r1, [r3, #8] + adds r1, #8 + subs r0, r0, r1 + asrs r0, r0, #4 + ands r0, r4 + lsls r0, r0, #6 + orrs r2, r0 + adds r5, r6, #0 + adds r5, #0x70 + strh r2, [r5] + movs r0, #0x2e + ldrsh r2, [r6, r0] + ldrh r0, [r3, #6] + subs r2, r2, r0 + asrs r2, r2, #4 + ands r2, r4 + movs r1, #0x32 + ldrsh r0, [r6, r1] + ldrh r1, [r3, #8] + subs r1, #8 + subs r0, r0, r1 + asrs r0, r0, #4 + ands r0, r4 + lsls r0, r0, #6 + orrs r2, r0 + adds r7, r6, #0 + adds r7, #0x72 + strh r2, [r7] + ldrh r0, [r5] + movs r1, #1 + bl sub_080001DA + adds r1, r6, #0 + adds r1, #0x74 + strh r0, [r1] + ldrh r0, [r7] + movs r1, #1 + bl sub_080001DA + adds r1, r6, #0 + adds r1, #0x76 + strh r0, [r1] + ldr r4, _08092134 @ =0x00004022 + ldrh r1, [r5] + adds r0, r4, #0 + movs r2, #1 + bl UpdateCollisionLayer + ldrh r1, [r7] + adds r0, r4, #0 + movs r2, #1 + bl UpdateCollisionLayer + adds r0, r6, #0 + movs r1, #0 + bl LoadAnimation + b _08092148 + .align 2, 0 +_08092130: .4byte gRoomControls +_08092134: .4byte 0x00004022 +_08092138: + movs r0, #1 + strb r0, [r6, #0xc] + adds r0, r6, #0 + bl sub_080921BC + adds r0, r6, #0 + bl sub_080921F0 +_08092148: + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_0809214C +sub_0809214C: @ 0x0809214C + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CBE4 + cmp r0, #0 + beq _08092160 + movs r0, #2 + strb r0, [r4, #0xc] +_08092160: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08092164 +sub_08092164: @ 0x08092164 + push {r4, lr} + adds r4, r0, #0 + bl sub_080042B8 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080921B6 + movs r0, #3 + strb r0, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x74 + ldrh r0, [r0] + adds r1, r4, #0 + adds r1, #0x70 + ldrh r1, [r1] + movs r2, #1 + bl UpdateCollisionLayer + adds r0, r4, #0 + adds r0, #0x76 + ldrh r0, [r0] + adds r1, r4, #0 + adds r1, #0x72 + ldrh r1, [r1] + movs r2, #1 + bl UpdateCollisionLayer + adds r0, r4, #0 + bl sub_08092214 + adds r0, r4, #0 + bl sub_0809223C + adds r0, r4, #0 + movs r1, #1 + bl LoadAnimation +_080921B6: + pop {r4, pc} + + thumb_func_start nullsub_118 +nullsub_118: @ 0x080921B8 + bx lr + .align 2, 0 + + thumb_func_start sub_080921BC +sub_080921BC: @ 0x080921BC + push {lr} + adds r2, r0, #0 + ldr r1, _080921DC @ =gUnk_030011E8 + ldr r0, _080921E0 @ =0x000029F8 + adds r3, r1, r0 +_080921C6: + ldrb r0, [r1, #8] + cmp r0, #6 + bne _080921E4 + ldrb r0, [r1, #9] + cmp r0, #0x6f + bne _080921E4 + ldrb r0, [r1, #0xa] + cmp r0, #2 + bne _080921E4 + str r1, [r2, #0x54] + b _080921EE + .align 2, 0 +_080921DC: .4byte gUnk_030011E8 +_080921E0: .4byte 0x000029F8 +_080921E4: + adds r1, #0x88 + cmp r1, r3 + blo _080921C6 + movs r0, #0 + str r0, [r2, #0x54] +_080921EE: + pop {pc} + + thumb_func_start sub_080921F0 +sub_080921F0: @ 0x080921F0 + push {lr} + ldr r2, [r0, #0x54] + cmp r2, #0 + beq _08092212 + adds r1, r2, #0 + adds r1, #0x38 + movs r0, #1 + strb r0, [r1] + adds r3, r2, #0 + adds r3, #0x29 + ldrb r0, [r3] + movs r1, #7 + orrs r0, r1 + strb r0, [r3] + adds r0, r2, #0 + bl UpdateSpriteOrderAndFlip +_08092212: + pop {pc} + + thumb_func_start sub_08092214 +sub_08092214: @ 0x08092214 + push {lr} + ldr r2, [r0, #0x54] + cmp r2, #0 + beq _0809223A + adds r1, r2, #0 + adds r1, #0x38 + movs r0, #2 + strb r0, [r1] + adds r3, r2, #0 + adds r3, #0x29 + ldrb r1, [r3] + subs r0, #0xa + ands r0, r1 + movs r1, #4 + orrs r0, r1 + strb r0, [r3] + adds r0, r2, #0 + bl UpdateSpriteOrderAndFlip +_0809223A: + pop {pc} + + thumb_func_start sub_0809223C +sub_0809223C: @ 0x0809223C + push {lr} + adds r2, r0, #0 + adds r2, #0x38 + movs r1, #2 + strb r1, [r2] + adds r3, r0, #0 + adds r3, #0x29 + ldrb r2, [r3] + subs r1, #0xa + ands r1, r2 + movs r2, #3 + orrs r1, r2 + strb r1, [r3] + bl UpdateSpriteOrderAndFlip + pop {pc} + + thumb_func_start sub_0809225C +sub_0809225C: @ 0x0809225C + push {lr} + adds r1, r0, #0 + ldrb r0, [r1, #0xa] + cmp r0, #0 + bne _0809226E + adds r0, r1, #0 + bl sub_08092278 + b _08092274 +_0809226E: + adds r0, r1, #0 + bl sub_08092344 +_08092274: + pop {pc} + .align 2, 0 + + thumb_func_start sub_08092278 +sub_08092278: @ 0x08092278 + push {lr} + ldr r2, _0809228C @ =gUnk_08122644 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0809228C: .4byte gUnk_08122644 + + thumb_func_start sub_08092290 +sub_08092290: @ 0x08092290 + push {lr} + movs r1, #1 + strb r1, [r0, #0xc] + bl sub_080925A4 + pop {pc} + + thumb_func_start sub_0809229C +sub_0809229C: @ 0x0809229C + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x70 + ldrb r0, [r0] + cmp r0, #0 + beq _080922E0 + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #0xb0 + lsls r0, r0, #0xa + str r0, [r4, #0x20] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + adds r0, r4, #0 + bl UpdateSpriteOrderAndFlip + ldr r0, [r4, #0x54] + ldrb r1, [r0, #0x14] + adds r0, r4, #0 + bl LoadAnimation + movs r0, #0xbf + lsls r0, r0, #1 + bl sub_08004488 + ldr r0, [r4, #0x54] + movs r1, #3 + bl UpdateSprite +_080922E0: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080922E4 +sub_080922E4: @ 0x080922E4 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x90 + lsls r1, r1, #6 + bl sub_08003FC4 + adds r2, r0, #0 + cmp r2, #0 + bne _08092322 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #5 + ands r0, r1 + strb r0, [r4, #0x18] + adds r0, r4, #0 + adds r0, #0x70 + strb r2, [r0] + ldr r0, [r4, #0x54] + adds r0, #0x63 + strb r2, [r0] + ldr r0, [r4, #0x54] + ldrb r1, [r0, #0x14] + bl UpdateSprite + adds r0, r4, #0 + movs r1, #0x36 + movs r2, #0 + bl CreateFx + b _0809233E +_08092322: + ldr r1, [r4, #0x20] + ldr r0, _08092340 @ =0x00017FFF + cmp r1, r0 + bgt _0809233E + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0809233E + adds r0, r4, #0 + bl sub_080042B8 +_0809233E: + pop {r4, pc} + .align 2, 0 +_08092340: .4byte 0x00017FFF + + thumb_func_start sub_08092344 +sub_08092344: @ 0x08092344 + push {r4, lr} + adds r4, r0, #0 + movs r0, #0 + strb r0, [r4, #0xf] + ldr r1, _08092364 @ =gUnk_08122650 + ldrb r0, [r4, #0xc] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + adds r0, r4, #0 + bl sub_080926E4 + pop {r4, pc} + .align 2, 0 +_08092364: .4byte gUnk_08122650 + + thumb_func_start sub_08092368 +sub_08092368: @ 0x08092368 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xb] + strb r0, [r2, #0x14] + adds r3, r2, #0 + adds r3, #0x29 + ldrb r0, [r3] + movs r1, #7 + orrs r0, r1 + strb r0, [r3] + adds r1, r2, #0 + adds r1, #0x40 + movs r0, #0x48 + strb r0, [r1] + subs r1, #4 + movs r0, #7 + strb r0, [r1] + subs r1, #1 + movs r0, #0x81 + strb r0, [r1] + ldr r0, _0809239C @ =gUnk_080FD280 + str r0, [r2, #0x48] + adds r0, r2, #0 + bl sub_0809264C + pop {pc} + .align 2, 0 +_0809239C: .4byte gUnk_080FD280 + + thumb_func_start sub_080923A0 +sub_080923A0: @ 0x080923A0 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r0, #3 + beq _080923E2 + ldrb r0, [r4, #0xd] + cmp r0, #0 + bne _080923C6 + movs r1, #1 + movs r0, #1 + strb r0, [r4, #0xd] + ldrb r0, [r4, #0x14] + eors r0, r1 + strb r0, [r4, #0x14] + ldrb r1, [r4, #0x14] + adds r0, r4, #0 + bl UpdateSprite +_080923C6: + adds r1, r4, #0 + adds r1, #0x63 + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + movs r1, #3 + rsbs r1, r1, #0 + cmp r0, r1 + bne _080923E2 + adds r0, r4, #0 + bl sub_0809264C +_080923E2: + pop {r4, pc} + + thumb_func_start sub_080923E4 +sub_080923E4: @ 0x080923E4 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x41 + ldrb r0, [r0] + cmp r0, #0x9d + bne _080923F8 + adds r0, r4, #0 + bl sub_08092620 + b _0809241A +_080923F8: + adds r0, r4, #0 + bl sub_0809269C + cmp r0, #0 + beq _0809241A + movs r0, #3 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + movs r0, #0x14 + strb r0, [r4, #0xe] + ldr r0, _0809241C @ =gLinkState + adds r0, #0x3f + movs r1, #0xfd + strb r1, [r0] +_0809241A: + pop {r4, pc} + .align 2, 0 +_0809241C: .4byte gLinkState + + thumb_func_start sub_08092420 +sub_08092420: @ 0x08092420 + push {r4, lr} + adds r4, r0, #0 + bl sub_0809269C + cmp r0, #0 + beq _08092434 + ldr r0, _08092464 @ =gLinkState + adds r0, #0x3f + movs r1, #0xfd + strb r1, [r0] +_08092434: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08092462 + movs r0, #4 + strb r0, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x72 + ldrh r1, [r0] + subs r0, #2 + movs r2, #0 + strh r1, [r0] + subs r0, #0xd + strb r2, [r0] + adds r0, r4, #0 + movs r1, #2 + bl UpdateSprite + ldr r0, _08092468 @ =0x0000017B + bl sub_08004488 +_08092462: + pop {r4, pc} + .align 2, 0 +_08092464: .4byte gLinkState +_08092468: .4byte 0x0000017B + + thumb_func_start sub_0809246C +sub_0809246C: @ 0x0809246C + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_0809269C + adds r5, r4, #0 + adds r5, #0x70 + ldrh r0, [r5] + cmp r0, #0 + beq _08092482 + subs r0, #1 + strh r0, [r5] +_08092482: + ldrh r0, [r5] + cmp r0, #0x8c + bhi _080924DC + adds r0, r4, #0 + bl sub_08004274 + adds r3, r4, #0 + adds r3, #0x5a + ldrb r1, [r3] + movs r0, #0x80 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0 + beq _080924B8 + movs r0, #5 + strb r0, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x74 + ldrh r0, [r0] + strh r0, [r5] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] + b _080924DC +_080924B8: + movs r2, #1 + ands r2, r1 + cmp r2, #0 + beq _080924CC + strb r0, [r3] + movs r0, #0xbe + lsls r0, r0, #1 + bl sub_08004488 + b _080924DC +_080924CC: + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _080924DC + strb r2, [r3] + ldr r0, _080924E0 @ =0x0000017D + bl sub_08004488 +_080924DC: + pop {r4, r5, pc} + .align 2, 0 +_080924E0: .4byte 0x0000017D + + thumb_func_start sub_080924E4 +sub_080924E4: @ 0x080924E4 + push {r4, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x70 + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0809252C + movs r0, #6 + strb r0, [r4, #0xc] + ldrb r0, [r4, #0xb] + strb r0, [r4, #0x14] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + adds r1, r4, #0 + adds r1, #0x63 + movs r0, #0 + strb r0, [r1] + ldrb r1, [r4, #0x14] + adds r1, #4 + adds r0, r4, #0 + bl UpdateSprite + ldrb r0, [r4, #0x14] + cmp r0, #0 + bne _0809252C + adds r0, r4, #0 + bl sub_0809269C +_0809252C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08092530 +sub_08092530: @ 0x08092530 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0x14] + cmp r0, #0 + bne _08092544 + adds r0, r4, #0 + bl sub_0809269C + adds r5, r0, #0 + b _08092546 +_08092544: + movs r5, #0 +_08092546: + adds r0, r4, #0 + bl sub_08004274 + adds r2, r4, #0 + adds r2, #0x5a + ldrb r1, [r2] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08092570 + movs r0, #0 + strb r0, [r2] + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + adds r1, r4, #0 + adds r1, #0x3f + movs r0, #0xac + strb r0, [r1] + b _0809258A +_08092570: + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0809258A + adds r0, r4, #0 + bl sub_0809264C + cmp r5, #0 + beq _0809258A + ldr r0, _0809258C @ =gLinkState + adds r0, #0x3f + movs r1, #0xfd + strb r1, [r0] +_0809258A: + pop {r4, r5, pc} + .align 2, 0 +_0809258C: .4byte gLinkState + + thumb_func_start sub_08092590 +sub_08092590: @ 0x08092590 + push {lr} + adds r1, r0, #0 + adds r0, #0x41 + ldrb r0, [r0] + cmp r0, #0x9d + bne _080925A2 + adds r0, r1, #0 + bl sub_08092620 +_080925A2: + pop {pc} + + thumb_func_start sub_080925A4 +sub_080925A4: @ 0x080925A4 + push {r4, r5, r6, r7, lr} + adds r6, r0, #0 + ldrb r0, [r6, #0xb] + bl sub_0804B128 + adds r5, r0, #0 + ldrb r0, [r5, #9] + cmp r0, #0xff + beq _0809261A + ldr r7, _0809261C @ =gRoomControls +_080925B8: + ldrb r2, [r5, #9] + movs r0, #0x59 + movs r1, #1 + bl CreateObject + adds r4, r0, #0 + cmp r4, #0 + beq _08092612 + movs r0, #0xff + strb r0, [r4, #0x15] + movs r0, #0 + strh r0, [r4, #0x24] + str r6, [r4, #0x50] + ldrh r0, [r7, #6] + ldrh r1, [r5, #4] + adds r0, r0, r1 + strh r0, [r4, #0x2e] + ldrh r0, [r7, #8] + ldrh r1, [r5, #6] + adds r0, r0, r1 + strh r0, [r4, #0x32] + ldrb r1, [r5, #8] + adds r0, r4, #0 + adds r0, #0x38 + strb r1, [r0] + ldrh r0, [r5, #0xa] + adds r1, r4, #0 + adds r1, #0x72 + strh r0, [r1] + ldrh r1, [r5, #0xc] + adds r0, r4, #0 + adds r0, #0x74 + strh r1, [r0] + ldr r0, [r5] + str r0, [r4, #0x78] + adds r0, r4, #0 + bl UpdateSpriteOrderAndFlip + adds r1, r4, #0 + adds r1, #0x78 + adds r2, r4, #0 + adds r2, #0x76 + adds r0, r4, #0 + bl sub_080A2CC0 +_08092612: + adds r5, #0x10 + ldrb r0, [r5, #9] + cmp r0, #0xff + bne _080925B8 +_0809261A: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0809261C: .4byte gRoomControls + + thumb_func_start sub_08092620 +sub_08092620: @ 0x08092620 + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldr r1, [r5, #0x50] + adds r0, r1, #0 + adds r0, #0x70 + ldrb r6, [r0] + cmp r6, #0 + bne _08092648 + movs r4, #1 + strb r4, [r0] + str r5, [r1, #0x54] + adds r0, r5, #0 + bl CopyPosition + strb r4, [r5, #0xc] + strb r6, [r5, #0xd] + adds r1, r5, #0 + adds r1, #0x3f + movs r0, #0xac + strb r0, [r1] +_08092648: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_0809264C +sub_0809264C: @ 0x0809264C + push {lr} + adds r2, r0, #0 + ldrb r1, [r2, #0x14] + movs r3, #1 + adds r0, r3, #0 + ands r0, r1 + cmp r0, #0 + beq _0809266A + movs r0, #7 + strb r0, [r2, #0xc] + adds r1, r2, #0 + adds r1, #0x3f + movs r0, #0xac + strb r0, [r1] + b _08092674 +_0809266A: + movs r0, #2 + strb r0, [r2, #0xc] + adds r0, r2, #0 + adds r0, #0x3f + strb r3, [r0] +_08092674: + ldrb r1, [r2, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r2, #0x10] + ldrb r1, [r2, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r2, #0x18] + adds r1, r2, #0 + adds r1, #0x63 + movs r0, #0xfd + strb r0, [r1] + ldrb r1, [r2, #0x14] + adds r0, r2, #0 + bl UpdateSprite + pop {pc} + + thumb_func_start sub_0809269C +sub_0809269C: @ 0x0809269C + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldr r6, _080926D8 @ =gLinkState + ldr r0, [r6, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + bne _080926E0 + ldr r5, _080926DC @ =gLinkEntity + adds r0, r4, #0 + adds r1, r5, #0 + movs r2, #0x10 + movs r3, #0x10 + bl sub_080041A0 + cmp r0, #0 + beq _080926E0 + bl sub_08079F8C + cmp r0, #0 + beq _080926E0 + movs r1, #1 + strb r1, [r6, #0x14] + movs r2, #0x36 + ldrsh r0, [r5, r2] + cmp r0, #0 + bne _080926E0 + strb r1, [r4, #0xf] + movs r0, #1 + b _080926E2 + .align 2, 0 +_080926D8: .4byte gLinkState +_080926DC: .4byte gLinkEntity +_080926E0: + movs r0, #0 +_080926E2: + pop {r4, r5, r6, pc} + + thumb_func_start sub_080926E4 +sub_080926E4: @ 0x080926E4 + push {r4, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0xf] + bl sub_080A2BE4 + ldrb r0, [r4, #0xc] + cmp r0, #1 + bne _08092700 + ldr r1, [r4, #0x50] + ldrh r0, [r4, #0x2e] + strh r0, [r1, #0x2e] + ldr r1, [r4, #0x50] + ldrh r0, [r4, #0x32] + strh r0, [r1, #0x32] +_08092700: + adds r2, r4, #0 + adds r2, #0x76 + ldrh r0, [r2] + subs r0, #1 + strh r0, [r2] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0809271A + adds r1, r4, #0 + adds r1, #0x78 + adds r0, r4, #0 + bl sub_080A2CC0 +_0809271A: + pop {r4, pc} + + thumb_func_start sub_0809271C +sub_0809271C: @ 0x0809271C + push {lr} + ldr r2, _08092730 @ =gUnk_08122780 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08092730: .4byte gUnk_08122780 + + thumb_func_start sub_08092734 +sub_08092734: @ 0x08092734 + push {lr} + ldr r2, _08092748 @ =gUnk_08122788 + ldrb r1, [r0, #0xa] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08092748: .4byte gUnk_08122788 + + thumb_func_start sub_0809274C +sub_0809274C: @ 0x0809274C + push {r4, r5, r6, lr} + adds r4, r0, #0 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x19] + movs r5, #0x3f + adds r0, r5, #0 + ands r0, r1 + movs r1, #0x40 + orrs r0, r1 + strb r0, [r4, #0x19] + ldrh r0, [r4, #0x36] + subs r0, #8 + strh r0, [r4, #0x36] + ldrb r0, [r4, #0xb] + cmp r0, #1 + beq _0809277C + cmp r0, #2 + bne _080927A2 + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] +_0809277C: + ldr r0, _080927A4 @ =0x00004051 + movs r2, #0x2e + ldrsh r1, [r4, r2] + ldr r3, _080927A8 @ =gRoomControls + ldrh r2, [r3, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + ands r1, r5 + movs r6, #0x32 + ldrsh r2, [r4, r6] + ldrh r3, [r3, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r5 + lsls r2, r2, #6 + orrs r1, r2 + movs r2, #1 + bl UpdateCollisionLayer +_080927A2: + pop {r4, r5, r6, pc} + .align 2, 0 +_080927A4: .4byte 0x00004051 +_080927A8: .4byte gRoomControls + + thumb_func_start sub_080927AC +sub_080927AC: @ 0x080927AC + push {lr} + adds r1, r0, #0 + movs r0, #1 + strb r0, [r1, #0xc] + ldrb r0, [r1, #0xb] + strb r0, [r1, #0x1e] + ldrb r0, [r1, #0xb] + cmp r0, #0 + beq _080927C4 + cmp r0, #2 + beq _080927CA + b _080927D0 +_080927C4: + adds r1, #0x63 + movs r0, #2 + b _080927CE +_080927CA: + adds r1, #0x63 + movs r0, #0xfe +_080927CE: + strb r0, [r1] +_080927D0: + pop {pc} + .align 2, 0 + + thumb_func_start sub_080927D4 +sub_080927D4: @ 0x080927D4 + push {r4, r5, r6, lr} + mov r6, r8 + push {r6} + adds r4, r0, #0 + movs r0, #1 + strb r0, [r4, #0xc] + ldrh r0, [r4, #0x32] + adds r0, #1 + strh r0, [r4, #0x32] + adds r1, r4, #0 + adds r1, #0x63 + movs r0, #0xff + strb r0, [r1] + ldr r0, _08092848 @ =0x00004051 + mov r8, r0 + movs r2, #0x2e + ldrsh r1, [r4, r2] + ldr r6, _0809284C @ =gRoomControls + ldrh r0, [r6, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + movs r5, #0x3f + ands r1, r5 + movs r2, #0x32 + ldrsh r0, [r4, r2] + ldrh r2, [r6, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r5 + lsls r0, r0, #6 + orrs r1, r0 + subs r1, #1 + mov r0, r8 + movs r2, #1 + bl UpdateCollisionLayer + movs r0, #0x2e + ldrsh r1, [r4, r0] + ldrh r0, [r6, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + ands r1, r5 + movs r2, #0x32 + ldrsh r0, [r4, r2] + ldrh r2, [r6, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r5 + lsls r0, r0, #6 + orrs r1, r0 + mov r0, r8 + movs r2, #1 + bl UpdateCollisionLayer + pop {r3} + mov r8, r3 + pop {r4, r5, r6, pc} + .align 2, 0 +_08092848: .4byte 0x00004051 +_0809284C: .4byte gRoomControls + + thumb_func_start sub_08092850 +sub_08092850: @ 0x08092850 + push {r4, lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xa] + cmp r0, #0 + bne _08092888 + ldr r3, _08092878 @ =gLinkEntity + movs r0, #0x32 + ldrsh r1, [r3, r0] + movs r4, #0x32 + ldrsh r0, [r2, r4] + cmp r1, r0 + blt _0809286E + adds r0, #0x18 + cmp r1, r0 + ble _0809287C +_0809286E: + ldrb r0, [r2, #0x19] + movs r1, #0x3f + ands r1, r0 + movs r0, #0x40 + b _08092884 + .align 2, 0 +_08092878: .4byte gLinkEntity +_0809287C: + ldrb r0, [r2, #0x19] + movs r1, #0x3f + ands r1, r0 + movs r0, #0x80 +_08092884: + orrs r1, r0 + strb r1, [r2, #0x19] +_08092888: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0809288C +sub_0809288C: @ 0x0809288C + push {lr} + adds r2, r0, #0 + ldrb r1, [r2, #0x10] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _080928B0 + ldr r0, _080928AC @ =gUnk_0812279C + ldrb r1, [r2, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r2, #0 + bl _call_via_r1 + b _080928C0 + .align 2, 0 +_080928AC: .4byte gUnk_0812279C +_080928B0: + ldr r0, _080928C4 @ =gUnk_08122794 + ldrb r1, [r2, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r2, #0 + bl _call_via_r1 +_080928C0: + pop {pc} + .align 2, 0 +_080928C4: .4byte gUnk_08122794 + + thumb_func_start sub_080928C8 +sub_080928C8: @ 0x080928C8 + push {lr} + adds r3, r0, #0 + movs r2, #1 + movs r0, #1 + strb r0, [r3, #0xc] + ldrb r1, [r3, #0x18] + subs r0, #5 + ands r0, r1 + orrs r0, r2 + strb r0, [r3, #0x18] + ldrb r0, [r3, #0xa] + strb r0, [r3, #0x1e] + ldrb r0, [r3, #0x19] + movs r1, #0xc0 + orrs r0, r1 + strb r0, [r3, #0x19] + adds r2, r3, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #6 + orrs r0, r1 + strb r0, [r2] + ldrb r1, [r3, #0x1b] + movs r0, #0x3f + ands r0, r1 + movs r1, #0x80 + orrs r0, r1 + strb r0, [r3, #0x1b] + ldrb r0, [r3, #0xa] + cmp r0, #2 + beq _08092912 + cmp r0, #4 + beq _08092920 + b _08092928 +_08092912: + adds r0, r3, #0 + movs r1, #0x5b + movs r2, #4 + movs r3, #0 + bl CreateObjectWithParent + b _08092928 +_08092920: + ldrb r0, [r2] + movs r1, #7 + orrs r0, r1 + strb r0, [r2] +_08092928: + pop {pc} + .align 2, 0 + + thumb_func_start nullsub_119 +nullsub_119: @ 0x0809292C + bx lr + .align 2, 0 + + thumb_func_start sub_08092930 +sub_08092930: @ 0x08092930 + push {r4, lr} + adds r4, r0, #0 + bl sub_080928C8 + adds r4, #0x82 + movs r0, #0 + strh r0, [r4] + pop {r4, pc} + + thumb_func_start sub_08092940 +sub_08092940: @ 0x08092940 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r4, #0 + adds r5, #0x84 + ldr r1, [r5] + bl sub_0807DF74 + ldr r1, [r5] + adds r0, r4, #0 + bl sub_08092958 + pop {r4, r5, pc} + + thumb_func_start sub_08092958 +sub_08092958: @ 0x08092958 + push {r4, lr} + adds r3, r0, #0 + adds r2, r1, #0 + ldr r0, [r2, #8] + cmp r0, #0 + beq _0809298A + movs r4, #0 +_08092966: + ldr r1, [r2, #8] + mvns r0, r1 + adds r0, #1 + ands r0, r1 + eors r1, r0 + str r1, [r2, #8] + cmp r0, #1 + beq _0809297C + cmp r0, #2 + beq _08092980 + b _08092984 +_0809297C: + strb r4, [r3, #0x1e] + b _08092984 +_08092980: + ldr r0, [r2, #4] + strb r0, [r3, #0x1e] +_08092984: + ldr r0, [r2, #8] + cmp r0, #0 + bne _08092966 +_0809298A: + pop {r4, pc} + + thumb_func_start sub_0809298C +sub_0809298C: @ 0x0809298C + push {lr} + ldr r2, _080929A0 @ =gUnk_081227A4 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080929A0: .4byte gUnk_081227A4 + + thumb_func_start sub_080929A4 +sub_080929A4: @ 0x080929A4 + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldrb r1, [r5, #0xb] + movs r6, #0xc0 + adds r0, r6, #0 + ands r0, r1 + cmp r0, #0 + beq _08092A08 + adds r4, r5, #0 + adds r4, #0x86 + ldrh r0, [r4] + bl sub_0807CBE4 + cmp r0, #0 + beq _08092A08 + ldrb r0, [r5, #0xb] + adds r1, r6, #0 + ands r1, r0 + cmp r1, #0x40 + beq _080929D2 + cmp r1, #0x80 + beq _08092A04 + b _08092A08 +_080929D2: + ldr r0, _080929F4 @ =gUnk_030010A0 + ldrh r1, [r0, #0xa] + movs r0, #0xc1 + lsls r0, r0, #1 + cmp r1, r0 + beq _080929EE + cmp r1, r0 + blt _080929FC + ldr r0, _080929F8 @ =0x0000044F + cmp r1, r0 + bgt _080929FC + subs r0, #2 + cmp r1, r0 + blt _080929FC +_080929EE: + bl sub_0805E780 + b _08092A08 + .align 2, 0 +_080929F4: .4byte gUnk_030010A0 +_080929F8: .4byte 0x0000044F +_080929FC: + ldrh r0, [r4] + bl sub_0807CD48 + b _08092A08 +_08092A04: + bl sub_0805E780 +_08092A08: + movs r0, #1 + strb r0, [r5, #0xc] + movs r0, #0xc0 + lsls r0, r0, #9 + str r0, [r5, #0x20] + bl Random + movs r1, #7 + ands r0, r1 + lsls r0, r0, #0xa + movs r2, #0x80 + lsls r2, r2, #6 + adds r1, r2, #0 + adds r2, r5, #0 + adds r2, #0x78 + movs r3, #0 + orrs r0, r1 + strh r0, [r2] + ldrb r0, [r5, #0xe] + lsrs r0, r0, #1 + strb r0, [r5, #0xf] + strb r3, [r5, #0xe] + ldrb r1, [r5, #0xb] + movs r0, #0x3f + ands r0, r1 + strb r0, [r5, #0x1e] + movs r4, #0x2e + ldrsh r1, [r5, r4] + ldr r2, _08092A8C @ =gRoomControls + ldrh r0, [r2, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + movs r3, #0x3f + ands r1, r3 + movs r4, #0x32 + ldrsh r0, [r5, r4] + ldrh r2, [r2, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r1, r0 + adds r4, r5, #0 + adds r4, #0x7e + strh r1, [r4] + ldrh r0, [r4] + movs r1, #1 + bl sub_080001DA + adds r1, r5, #0 + adds r1, #0x7c + strh r0, [r1] + ldrh r0, [r4] + movs r1, #1 + bl sub_080002E0 + adds r1, r5, #0 + adds r1, #0x7a + strh r0, [r1] + ldr r0, _08092A90 @ =0x00004022 + ldrh r1, [r4] + movs r2, #1 + bl UpdateCollisionLayer + pop {r4, r5, r6, pc} + .align 2, 0 +_08092A8C: .4byte gRoomControls +_08092A90: .4byte 0x00004022 + + thumb_func_start sub_08092A94 +sub_08092A94: @ 0x08092A94 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r2, _08092B08 @ =gLinkEntity + ldrb r0, [r2, #0xc] + cmp r0, #6 + bne _08092B04 + ldrb r0, [r2, #0x14] + cmp r0, #0 + bne _08092B04 + movs r1, #0x32 + ldrsh r0, [r4, r1] + adds r0, #0x28 + movs r3, #0x32 + ldrsh r1, [r2, r3] + cmp r0, r1 + blt _08092B04 + movs r0, #0x2e + ldrsh r1, [r4, r0] + movs r3, #0x2e + ldrsh r0, [r2, r3] + subs r1, r1, r0 + ldrb r0, [r4, #0xf] + cmp r1, r0 + bge _08092B04 + cmn r1, r0 + ble _08092B04 + adds r0, r4, #0 + adds r0, #0x7c + ldrh r0, [r0] + adds r5, r4, #0 + adds r5, #0x7e + ldrh r1, [r5] + movs r2, #1 + bl UpdateCollisionLayer + adds r0, r4, #0 + adds r0, #0x7a + ldrh r0, [r0] + ldrh r1, [r5] + movs r2, #1 + bl sub_08000148 + movs r0, #2 + strb r0, [r4, #0xc] + ldrh r0, [r4, #0x36] + subs r0, #0x20 + strh r0, [r4, #0x36] + ldrh r0, [r4, #0x32] + adds r0, #0x20 + strh r0, [r4, #0x32] + ldrb r1, [r4, #0x19] + movs r0, #0x3f + ands r0, r1 + movs r1, #0x80 + orrs r0, r1 + strb r0, [r4, #0x19] +_08092B04: + pop {r4, r5, pc} + .align 2, 0 +_08092B08: .4byte gLinkEntity + + thumb_func_start sub_08092B0C +sub_08092B0C: @ 0x08092B0C + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + cmp r0, #1 + bne _08092B50 + movs r0, #0 + movs r1, #3 + strb r1, [r4, #0xc] + strb r0, [r4, #0xe] + ldrb r0, [r4, #0xb] + movs r1, #0xc0 + ands r1, r0 + cmp r1, #0x40 + beq _08092B32 + cmp r1, #0x80 + bne _08092B3C + movs r0, #0x72 + bl sub_08004488 +_08092B32: + adds r0, r4, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CCC8 +_08092B3C: + adds r0, r4, #0 + movs r1, #5 + movs r2, #0 + bl CreateFx + adds r0, r4, #0 + movs r1, #3 + bl sub_0805457C + b _08092B6A +_08092B50: + adds r0, r4, #0 + adds r0, #0x78 + ldrh r1, [r0] + adds r0, r4, #0 + bl sub_080044EC + movs r1, #0x36 + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _08092B6A + ldrb r0, [r4, #0xe] + adds r0, #1 + strb r0, [r4, #0xe] +_08092B6A: + pop {r4, pc} + + thumb_func_start sub_08092B6C +sub_08092B6C: @ 0x08092B6C + push {lr} + bl sub_0805E780 + pop {pc} + + thumb_func_start sub_08092B74 +sub_08092B74: @ 0x08092B74 + push {lr} + ldr r2, _08092B88 @ =gUnk_081227C0 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08092B88: .4byte gUnk_081227C0 + + thumb_func_start sub_08092B8C +sub_08092B8C: @ 0x08092B8C + push {r4, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x86 + ldrh r0, [r1] + cmp r0, #0 + beq _08092BA6 + bl sub_0807CBE4 + cmp r0, #0 + beq _08092BA6 + bl sub_0805E780 +_08092BA6: + movs r2, #1 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #5 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x18] + ldrb r0, [r4, #0xe] + adds r1, r4, #0 + adds r1, #0x7d + strb r0, [r1] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #7 + orrs r0, r1 + strb r0, [r2] + ldr r0, _08092BE8 @ =gUnk_081227EC + str r0, [r4, #0x48] + movs r0, #8 + strb r0, [r4, #0xe] + ldrb r0, [r4, #0xa] + lsls r0, r0, #1 + ldr r1, _08092BEC @ =gUnk_081227B4 + adds r2, r0, r1 + ldrb r1, [r2] + adds r0, r1, #0 + cmp r0, #0xff + bne _08092BF0 + ldrb r0, [r4, #0xb] + strb r0, [r4, #0x1e] + b _08092BF6 + .align 2, 0 +_08092BE8: .4byte gUnk_081227EC +_08092BEC: .4byte gUnk_081227B4 +_08092BF0: + strb r1, [r4, #0x1e] + ldrb r0, [r2, #1] + strb r0, [r4, #0xb] +_08092BF6: + pop {r4, pc} + + thumb_func_start sub_08092BF8 +sub_08092BF8: @ 0x08092BF8 + push {r4, r5, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x86 + ldrh r0, [r1] + cmp r0, #0 + beq _08092C20 + bl sub_0807CBE4 + cmp r0, #0 + beq _08092C20 + movs r0, #2 + strb r0, [r4, #0xc] + ldr r0, _08092C1C @ =0x00000111 + bl PlaySFX + b _08092C92 + .align 2, 0 +_08092C1C: .4byte 0x00000111 +_08092C20: + adds r0, r4, #0 + bl sub_0800445C + cmp r0, #0 + beq _08092C74 + adds r0, r4, #0 + adds r0, #0x7d + ldrb r0, [r0] + cmp r0, #0 + bne _08092C74 + ldrb r0, [r4, #0xb] + lsls r0, r0, #3 + ldr r1, _08092C68 @ =gUnk_081227CC + adds r5, r0, r1 + ldrh r1, [r5, #4] + ldrh r2, [r5, #6] + adds r0, r4, #0 + bl sub_0806ED9C + cmp r0, #0 + blt _08092C78 + ldr r1, _08092C6C @ =gLinkEntity + ldrh r0, [r5] + ldrb r1, [r1, #0x14] + cmp r0, r1 + bne _08092C78 + ldr r0, _08092C70 @ =gLinkState + adds r0, #0x90 + ldrh r1, [r0] + ldrh r0, [r5, #2] + ands r0, r1 + cmp r0, #0 + beq _08092C78 + ldrb r0, [r4, #0xe] + subs r0, #1 + b _08092C76 + .align 2, 0 +_08092C68: .4byte gUnk_081227CC +_08092C6C: .4byte gLinkEntity +_08092C70: .4byte gLinkState +_08092C74: + movs r0, #8 +_08092C76: + strb r0, [r4, #0xe] +_08092C78: + ldrb r0, [r4, #0xe] + cmp r0, #0 + bne _08092C92 + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #8 + movs r1, #0 + movs r2, #0 + bl sub_08078AC0 + ldr r0, _08092C94 @ =0x00000111 + bl PlaySFX +_08092C92: + pop {r4, r5, pc} + .align 2, 0 +_08092C94: .4byte 0x00000111 + + thumb_func_start sub_08092C98 +sub_08092C98: @ 0x08092C98 + push {lr} + bl sub_0805E780 + pop {pc} + + thumb_func_start sub_08092CA0 +sub_08092CA0: @ 0x08092CA0 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x45 + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0 + beq _08092CC0 + ldr r0, _08092CD4 @ =gUnk_020342F8 + subs r1, #1 + bl sub_0801D5A8 + cmp r0, #0 + bne _08092CC0 + bl sub_0805E780 +_08092CC0: + ldr r0, _08092CD8 @ =gUnk_081227F4 + ldrb r1, [r4, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + pop {r4, pc} + .align 2, 0 +_08092CD4: .4byte gUnk_020342F8 +_08092CD8: .4byte gUnk_081227F4 + + thumb_func_start sub_08092CDC +sub_08092CDC: @ 0x08092CDC + push {r4, lr} + adds r4, r0, #0 + movs r2, #1 + strb r2, [r4, #0xc] + ldr r0, _08092D48 @ =gUnk_080FD320 + str r0, [r4, #0x48] + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + adds r0, r4, #0 + adds r0, #0x3f + strb r2, [r0] + adds r1, r4, #0 + adds r1, #0x3c + movs r0, #0x47 + strb r0, [r1] + adds r1, #4 + movs r0, #0x44 + strb r0, [r1] + subs r1, #5 + movs r0, #0x80 + strb r0, [r1] + ldrb r2, [r4, #0x1b] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r2 + movs r2, #0x40 + orrs r0, r2 + strb r0, [r4, #0x1b] + ldrb r0, [r4, #0x19] + ands r1, r0 + orrs r1, r2 + strb r1, [r4, #0x19] + ldrb r0, [r4, #0xa] + strb r0, [r4, #0x14] + lsls r0, r0, #3 + strb r0, [r4, #0x15] + movs r0, #0xe0 + lsls r0, r0, #3 + strh r0, [r4, #0x24] + ldrb r0, [r4, #0xb] + cmp r0, #1 + bne _08092D50 + ldr r1, _08092D4C @ =0x00000161 + adds r0, r4, #0 + bl sub_0801D2B4 + adds r0, r4, #0 + movs r1, #1 + bl UpdateSprite + b _08092D5C + .align 2, 0 +_08092D48: .4byte gUnk_080FD320 +_08092D4C: .4byte 0x00000161 +_08092D50: + ldr r0, _08092D78 @ =0x0000FFE8 + strh r0, [r4, #0x36] + adds r0, r4, #0 + movs r1, #1 + bl UpdateSprite +_08092D5C: + ldrb r1, [r4, #0x10] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _08092D74 + adds r0, r4, #0 + bl sub_0807DD64 + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DDAC +_08092D74: + pop {r4, pc} + .align 2, 0 +_08092D78: .4byte 0x0000FFE8 + + thumb_func_start sub_08092D7C +sub_08092D7C: @ 0x08092D7C + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldrb r1, [r5, #0x10] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _08092D92 + adds r0, r5, #0 + movs r1, #0 + bl sub_0807DDAC +_08092D92: + ldrb r0, [r5, #0x18] + lsls r0, r0, #0x1e + cmp r0, #0 + beq _08092E84 + adds r0, r5, #0 + bl sub_08004274 + ldr r6, _08092E04 @ =gLinkState + ldr r0, [r6, #0x30] + movs r3, #0x80 + ands r0, r3 + cmp r0, #0 + bne _08092E84 + adds r0, r6, #0 + adds r0, #0x3c + ldrb r0, [r0] + cmp r0, #0 + bne _08092E84 + ldr r4, _08092E08 @ =gLinkEntity + ldrb r2, [r4, #0xc] + cmp r2, #4 + beq _08092DC8 + ldrb r1, [r4, #0x10] + adds r0, r3, #0 + ands r0, r1 + cmp r0, #0 + beq _08092E84 +_08092DC8: + cmp r2, #6 + beq _08092E84 + adds r0, r5, #0 + adds r1, r4, #0 + movs r2, #0xc + movs r3, #0xc + bl sub_0800419C + cmp r0, #0 + beq _08092E84 + ldr r0, [r6, #0x30] + movs r1, #0x80 + lsls r1, r1, #0x11 + ands r0, r1 + cmp r0, #0 + bne _08092E0C + ldrb r0, [r4, #0xc] + cmp r0, #4 + beq _08092E0C + ldrb r0, [r5, #0xb] + cmp r0, #1 + beq _08092E16 + movs r0, #0x36 + ldrsh r1, [r4, r0] + movs r0, #0x10 + rsbs r0, r0, #0 + cmp r1, r0 + bgt _08092E84 + b _08092E16 + .align 2, 0 +_08092E04: .4byte gLinkState +_08092E08: .4byte gLinkEntity +_08092E0C: + ldr r0, _08092E88 @ =gLinkEntity + movs r1, #0x36 + ldrsh r0, [r0, r1] + cmp r0, #0 + beq _08092E84 +_08092E16: + ldr r4, _08092E88 @ =gLinkEntity + adds r0, r5, #0 + adds r1, r4, #0 + bl CopyPosition + adds r0, r5, #0 + bl sub_08004542 + adds r0, r4, #0 + bl sub_08004542 + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #1 + strb r0, [r1] + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + ldr r1, _08092E8C @ =gLinkState + movs r0, #0x1f + strb r0, [r1, #0xc] + ldrb r2, [r5, #0xb] + adds r0, r1, #0 + adds r0, #0x38 + strb r2, [r0] + adds r1, #0x39 + movs r0, #0xff + strb r0, [r1] + adds r4, #0x29 + ldrb r1, [r4] + lsls r1, r1, #0x1d + lsrs r1, r1, #0x1d + subs r1, #1 + adds r3, r5, #0 + adds r3, #0x29 + movs r0, #7 + ands r1, r0 + ldrb r2, [r3] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + ldrb r0, [r5, #0xc] + adds r0, #1 + strb r0, [r5, #0xc] + bl sub_08077B20 + ldr r0, _08092E90 @ =0x00000153 + bl PlaySFX + movs r0, #0x79 + bl PlaySFX +_08092E84: + pop {r4, r5, r6, pc} + .align 2, 0 +_08092E88: .4byte gLinkEntity +_08092E8C: .4byte gLinkState +_08092E90: .4byte 0x00000153 + + thumb_func_start sub_08092E94 +sub_08092E94: @ 0x08092E94 + push {r4, lr} + adds r4, r0, #0 + bl sub_080042B8 + ldr r1, _08092ED0 @ =gLinkEntity + adds r0, r4, #0 + movs r2, #0xc + movs r3, #0xc + bl sub_0800419C + cmp r0, #0 + bne _08092ECE + adds r0, r4, #0 + bl sub_0800455E + ldrb r2, [r4, #0x1b] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r2 + movs r2, #0x40 + orrs r0, r2 + strb r0, [r4, #0x1b] + ldrb r0, [r4, #0x19] + ands r1, r0 + orrs r1, r2 + strb r1, [r4, #0x19] + ldrb r0, [r4, #0xc] + subs r0, #1 + strb r0, [r4, #0xc] +_08092ECE: + pop {r4, pc} + .align 2, 0 +_08092ED0: .4byte gLinkEntity + + thumb_func_start sub_08092ED4 +sub_08092ED4: @ 0x08092ED4 + push {lr} + ldr r2, _08092EE8 @ =gUnk_0812283C + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08092EE8: .4byte gUnk_0812283C + + thumb_func_start sub_08092EEC +sub_08092EEC: @ 0x08092EEC + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + bl sub_080932D8 + cmp r0, #1 + beq _08092F2C + cmp r0, #2 + beq _08092F3A + movs r0, #1 + strb r0, [r4, #0xc] + movs r1, #0 + movs r2, #0x80 + strh r2, [r4, #0x24] + strb r0, [r4, #0x16] + strb r1, [r4, #0xe] + strb r1, [r4, #0xf] + adds r1, r4, #0 + adds r1, #0x7a + movs r0, #0x20 + strb r0, [r1] + adds r0, r4, #0 + adds r0, #0x7b + strb r2, [r0] + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _08092F48 + ldr r0, _08092F28 @ =gUnk_080FD288 + str r0, [r4, #0x48] + b _08092F48 + .align 2, 0 +_08092F28: .4byte gUnk_080FD288 +_08092F2C: + movs r0, #4 + strb r0, [r4, #0xc] + ldrh r0, [r4, #0x2e] + subs r0, #0x20 + strh r0, [r4, #0x2e] + movs r5, #2 + b _08092F5E +_08092F3A: + movs r0, #4 + strb r0, [r4, #0xc] + ldrh r0, [r4, #0x2e] + adds r0, #0x20 + strh r0, [r4, #0x2e] + movs r5, #3 + b _08092F5E +_08092F48: + movs r5, #0 + adds r1, r4, #0 + adds r1, #0x86 + ldrh r0, [r1] + cmp r0, #0 + beq _08092F5E + bl sub_0807CBE4 + cmp r0, #0 + bne _08092F5E + movs r5, #1 +_08092F5E: + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_080931A4 + pop {r4, r5, pc} + + thumb_func_start sub_08092F68 +sub_08092F68: @ 0x08092F68 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r6, r0, #0 + ldr r0, _08092FA4 @ =gLinkEntity + movs r2, #0x2e + ldrsh r1, [r0, r2] + movs r2, #0x2e + ldrsh r0, [r6, r2] + subs r1, r1, r0 + mov r8, r1 + adds r1, r6, #0 + adds r1, #0x86 + ldrh r0, [r1] + cmp r0, #0 + beq _08092FA8 + bl sub_0807CBE4 + cmp r0, #0 + bne _08092F92 + b _080930E6 +_08092F92: + adds r0, r6, #0 + adds r0, #0x7a + ldrb r0, [r0] + cmp r0, #0 + beq _08092FA8 + adds r0, r6, #0 + bl sub_080932A8 + b _080930E6 + .align 2, 0 +_08092FA4: .4byte gLinkEntity +_08092FA8: + adds r1, r6, #0 + adds r1, #0x7b + ldrb r2, [r1] + movs r0, #0x3f + ands r0, r2 + adds r7, r1, #0 + cmp r0, #0 + bne _08092FD6 + movs r0, #0xf + movs r4, #0 + orrs r0, r2 + strb r0, [r7] + adds r0, r6, #0 + movs r1, #0 + bl sub_080931A4 + mov r0, r8 + cmp r0, #0 + bge _08092FD6 + ldrb r0, [r7] + movs r1, #0x40 + orrs r0, r1 + strb r0, [r7] +_08092FD6: + ldrb r1, [r7] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _08092FEA + adds r5, r6, #0 + adds r5, #0x78 + ldrh r0, [r5] + subs r0, #1 + b _08092FF2 +_08092FEA: + adds r5, r6, #0 + adds r5, #0x78 + ldrh r0, [r5] + adds r0, #1 +_08092FF2: + adds r4, r6, #0 + adds r4, #0x38 + ldrb r1, [r4] + bl sub_080002B0 + adds r1, r0, #0 + ldr r0, _08093034 @ =0x00004031 + cmp r1, r0 + bhi _08093040 + subs r0, #1 + cmp r1, r0 + blo _08093040 + movs r0, #3 + strb r0, [r6, #0xc] + ldr r0, _08093038 @ =gLinkEntity + ldrb r0, [r0, #0x14] + lsls r0, r0, #2 + strb r0, [r6, #0x15] + movs r0, #0x80 + strh r0, [r6, #0x24] + movs r0, #0x40 + strb r0, [r6, #0xe] + adds r0, r6, #0 + movs r1, #0x50 + bl sub_0805E4E0 + ldr r0, _0809303C @ =0x0000010F + bl sub_08004488 + adds r0, r6, #0 + bl sub_08093248 + b _080930E6 + .align 2, 0 +_08093034: .4byte 0x00004031 +_08093038: .4byte gLinkEntity +_0809303C: .4byte 0x0000010F +_08093040: + ldr r0, _0809307C @ =gLinkEntity + ldrb r1, [r0, #0x14] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _080930E6 + adds r0, r6, #0 + bl sub_08078930 + adds r3, r7, #0 + ldrb r2, [r3] + movs r0, #0x80 + ands r0, r2 + cmp r0, #0 + beq _08093088 + movs r1, #0x7f + ands r1, r2 + strb r1, [r3] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _0809309C + ldr r0, _08093080 @ =0x0000402C + ldrh r1, [r5] + subs r1, #1 + ldrb r2, [r4] + bl UpdateCollisionLayer + ldr r0, _08093084 @ =0x0000403D + b _080930AA + .align 2, 0 +_0809307C: .4byte gLinkEntity +_08093080: .4byte 0x0000402C +_08093084: .4byte 0x0000403D +_08093088: + movs r0, #0x40 + ands r0, r2 + cmp r0, #0 + beq _080930C0 + mov r1, r8 + cmp r1, #4 + ble _080930E6 + movs r0, #0x3f + ands r0, r2 + strb r0, [r3] +_0809309C: + ldr r0, _080930B8 @ =0x0000403D + ldrh r1, [r5] + subs r1, #1 + ldrb r2, [r4] + bl UpdateCollisionLayer + ldr r0, _080930BC @ =0x0000402D +_080930AA: + ldrh r1, [r5] + adds r1, #1 + ldrb r2, [r4] + bl UpdateCollisionLayer + b _080930E6 + .align 2, 0 +_080930B8: .4byte 0x0000403D +_080930BC: .4byte 0x0000402D +_080930C0: + mov r1, r8 + rsbs r0, r1, #0 + cmp r0, #4 + ble _080930E6 + movs r0, #0x40 + orrs r0, r2 + strb r0, [r7] + ldr r0, _080930EC @ =0x0000402C + ldrh r1, [r5] + subs r1, #1 + ldrb r2, [r4] + bl UpdateCollisionLayer + ldr r0, _080930F0 @ =0x0000403D + ldrh r1, [r5] + adds r1, #1 + ldrb r2, [r4] + bl UpdateCollisionLayer +_080930E6: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080930EC: .4byte 0x0000402C +_080930F0: .4byte 0x0000403D + + thumb_func_start sub_080930F4 +sub_080930F4: @ 0x080930F4 + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldrb r3, [r4, #0xe] + cmp r3, #0 + beq _08093104 + bl sub_08093280 + b _08093174 +_08093104: + ldr r5, _0809315C @ =gLinkState + ldrb r0, [r5, #5] + cmp r0, #0x12 + bne _08093168 + ldr r6, _08093160 @ =gLinkEntity + adds r0, r6, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _08093174 + ldrb r0, [r4, #0xf] + adds r0, #1 + strb r0, [r4, #0xf] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #8 + bls _08093174 + movs r0, #0x10 + strb r0, [r5, #0xc] + adds r0, r5, #0 + adds r0, #0x38 + movs r2, #0x40 + strb r2, [r0] + ldr r0, [r5, #0x30] + movs r1, #1 + orrs r0, r1 + str r0, [r5, #0x30] + strh r3, [r6, #0x2c] + strh r3, [r6, #0x30] + ldrb r0, [r6, #0x14] + movs r1, #4 + eors r0, r1 + lsls r0, r0, #2 + strb r0, [r4, #0x15] + strb r2, [r4, #0xe] + ldr r0, _08093164 @ =0x0000010F + bl sub_08004488 + adds r0, r4, #0 + bl sub_08093248 + b _08093174 + .align 2, 0 +_0809315C: .4byte gLinkState +_08093160: .4byte gLinkEntity +_08093164: .4byte 0x0000010F +_08093168: + ldrb r0, [r4, #0xd] + cmp r0, #6 + bne _08093174 + movs r0, #1 + strb r0, [r4, #0xc] + strb r3, [r4, #0xf] +_08093174: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_08093178 +sub_08093178: @ 0x08093178 + push {r4, lr} + adds r4, r0, #0 + bl sub_0800445C + adds r0, r4, #0 + bl sub_0806F69C + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08093198 + adds r0, r4, #0 + bl sub_08093334 +_08093198: + adds r0, r4, #0 + bl sub_08093364 + pop {r4, pc} + + thumb_func_start nullsub_120 +nullsub_120: @ 0x080931A0 + bx lr + .align 2, 0 + + thumb_func_start sub_080931A4 +sub_080931A4: @ 0x080931A4 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r5, r1, #0 + movs r1, #0x2e + ldrsh r2, [r0, r1] + ldr r3, _080931F0 @ =gRoomControls + ldrh r1, [r3, #6] + subs r2, r2, r1 + asrs r2, r2, #4 + movs r4, #0x3f + ands r2, r4 + movs r6, #0x32 + ldrsh r1, [r0, r6] + ldrh r3, [r3, #8] + subs r1, r1, r3 + asrs r1, r1, #4 + ands r1, r4 + lsls r1, r1, #6 + orrs r2, r1 + adds r1, r0, #0 + adds r1, #0x78 + strh r2, [r1] + ldrh r1, [r1] + subs r1, #0x40 + mov r8, r1 + adds r0, #0x38 + ldrb r7, [r0] + cmp r5, #1 + beq _080931F4 + cmp r5, #1 + blo _0809320C + cmp r5, #2 + beq _080931FC + cmp r5, #3 + beq _08093204 + b _0809320C + .align 2, 0 +_080931F0: .4byte gRoomControls +_080931F4: + ldr r0, _080931F8 @ =gUnk_08122862 + b _0809320E + .align 2, 0 +_080931F8: .4byte gUnk_08122862 +_080931FC: + ldr r0, _08093200 @ =gUnk_08122874 + b _0809320E + .align 2, 0 +_08093200: .4byte gUnk_08122874 +_08093204: + ldr r0, _08093208 @ =gUnk_08122886 + b _0809320E + .align 2, 0 +_08093208: .4byte gUnk_08122886 +_0809320C: + ldr r0, _08093230 @ =gUnk_08122850 +_0809320E: + movs r4, #0 + movs r6, #0 + adds r5, r0, #0 +_08093214: + mov r0, r8 + adds r1, r0, r6 + adds r1, r1, r4 + subs r1, #1 + ldrh r0, [r5] + adds r2, r7, #0 + bl UpdateCollisionLayer + cmp r4, #2 + beq _08093234 + cmp r4, #5 + beq _08093238 + b _0809323A + .align 2, 0 +_08093230: .4byte gUnk_08122850 +_08093234: + movs r6, #0x3d + b _0809323A +_08093238: + movs r6, #0x7a +_0809323A: + adds r5, #2 + adds r4, #1 + cmp r4, #8 + bls _08093214 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_08093248 +sub_08093248: @ 0x08093248 + push {r4, r5, r6, r7, lr} + adds r1, r0, #0 + adds r1, #0x78 + ldrh r1, [r1] + adds r7, r1, #0 + subs r7, #0x40 + adds r0, #0x38 + ldrb r6, [r0] + movs r4, #0 + movs r5, #0 +_0809325C: + adds r0, r7, r5 + adds r0, r0, r4 + subs r0, #1 + adds r1, r6, #0 + bl sub_0807BA8C + cmp r4, #2 + beq _08093272 + cmp r4, #5 + beq _08093276 + b _08093278 +_08093272: + movs r5, #0x3d + b _08093278 +_08093276: + movs r5, #0x7a +_08093278: + adds r4, #1 + cmp r4, #8 + bls _0809325C + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_08093280 +sub_08093280: @ 0x08093280 + push {r4, lr} + adds r4, r0, #0 + bl sub_0800445C + adds r0, r4, #0 + bl sub_0806F69C + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080932A0 + adds r0, r4, #0 + bl sub_08093334 +_080932A0: + adds r0, r4, #0 + bl sub_08093364 + pop {r4, pc} + + thumb_func_start sub_080932A8 +sub_080932A8: @ 0x080932A8 + push {lr} + adds r1, r0, #0 + adds r2, r1, #0 + adds r2, #0x7a + ldrb r0, [r2] + subs r0, #1 + strb r0, [r2] + movs r2, #3 + ands r2, r0 + cmp r2, #1 + beq _080932C8 + cmp r2, #3 + beq _080932D0 + adds r1, #0x62 + movs r0, #0 + b _080932D4 +_080932C8: + adds r0, r1, #0 + adds r0, #0x62 + strb r2, [r0] + b _080932D6 +_080932D0: + adds r1, #0x62 + movs r0, #0xff +_080932D4: + strb r0, [r1] +_080932D6: + pop {pc} + + thumb_func_start sub_080932D8 +sub_080932D8: @ 0x080932D8 + push {r4, lr} + lsls r0, r0, #3 + ldr r1, _080932F0 @ =gUnk_08122898 + adds r4, r0, r1 + ldr r0, [r4] + ldrh r1, [r4, #4] + bl GetProgressFlagWithOffset + cmp r0, #0 + beq _080932F4 + movs r0, #1 + b _08093306 + .align 2, 0 +_080932F0: .4byte gUnk_08122898 +_080932F4: + ldr r0, [r4] + ldrh r1, [r4, #6] + bl GetProgressFlagWithOffset + cmp r0, #0 + bne _08093304 + movs r0, #0 + b _08093306 +_08093304: + movs r0, #2 +_08093306: + pop {r4, pc} + + thumb_func_start sub_08093308 +sub_08093308: @ 0x08093308 + push {lr} + adds r2, r1, #0 + lsls r0, r0, #3 + ldr r1, _08093320 @ =gUnk_08122898 + adds r1, r0, r1 + cmp r2, #1 + bne _08093324 + ldr r0, [r1] + ldrh r1, [r1, #4] + bl sub_0807CC9C + b _08093330 + .align 2, 0 +_08093320: .4byte gUnk_08122898 +_08093324: + cmp r2, #2 + bne _08093330 + ldr r0, [r1] + ldrh r1, [r1, #6] + bl sub_0807CC9C +_08093330: + pop {pc} + .align 2, 0 + + thumb_func_start sub_08093334 +sub_08093334: @ 0x08093334 + push {r4, r5, lr} + adds r4, r0, #0 + movs r0, #4 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x15] + movs r0, #0x10 + ands r0, r1 + movs r5, #2 + cmp r0, #0 + beq _0809334A + movs r5, #1 +_0809334A: + adds r1, r5, #1 + adds r0, r4, #0 + bl sub_080931A4 + ldrb r0, [r4, #0xa] + adds r1, r5, #0 + bl sub_08093308 + movs r0, #0x72 + bl sub_08004488 + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08093364 +sub_08093364: @ 0x08093364 + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r1, [r5, #0xe] + movs r0, #3 + ands r0, r1 + cmp r0, #0 + bne _080933BC + movs r0, #0xf + movs r1, #0x11 + movs r2, #0 + bl CreateObject + adds r4, r0, #0 + cmp r4, #0 + beq _080933BC + str r5, [r4, #0x50] + adds r0, r5, #0 + adds r1, r4, #0 + bl CopyPosition + ldrb r1, [r5, #0x15] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _0809339C + ldrh r0, [r4, #0x2e] + adds r0, #0x12 + b _080933A0 +_0809339C: + ldrh r0, [r4, #0x2e] + subs r0, #0x12 +_080933A0: + strh r0, [r4, #0x2e] + movs r0, #0x32 + ldrsh r2, [r4, r0] + ldrb r1, [r5, #0xe] + movs r0, #8 + ands r0, r1 + cmp r0, #0 + beq _080933B6 + adds r0, r2, #0 + adds r0, #8 + b _080933BA +_080933B6: + adds r0, r2, #0 + subs r0, #8 +_080933BA: + strh r0, [r4, #0x32] +_080933BC: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_080933C0 +sub_080933C0: @ 0x080933C0 + push {lr} + ldr r2, _080933D4 @ =gUnk_081228B0 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080933D4: .4byte gUnk_081228B0 + + thumb_func_start sub_080933D8 +sub_080933D8: @ 0x080933D8 + push {r4, lr} + adds r4, r0, #0 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r0, [r4, #0xa] + strb r0, [r4, #0x1e] + adds r0, r4, #0 + bl UpdateSpriteOrderAndFlip + ldr r0, _080933F8 @ =gUnk_081228A8 + str r0, [r4, #0x48] + adds r0, r4, #0 + bl sub_080787B4 + pop {r4, pc} + .align 2, 0 +_080933F8: .4byte gUnk_081228A8 + + thumb_func_start sub_080933FC +sub_080933FC: @ 0x080933FC + push {lr} + adds r2, r0, #0 + adds r1, r2, #0 + adds r1, #0x39 + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #0 + beq _08093420 + movs r0, #0 + strb r0, [r1] + ldr r1, _08093424 @ =gUnk_081228B8 + ldrb r0, [r2, #0xa] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r0, [r0] + adds r1, r2, #0 + bl TextboxNoOverlap +_08093420: + pop {pc} + .align 2, 0 +_08093424: .4byte gUnk_081228B8 + + thumb_func_start sub_08093428 +sub_08093428: @ 0x08093428 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _0809345C @ =gLinkState + ldr r0, [r0, #0x30] + movs r1, #0x80 + lsls r1, r1, #0x11 + ands r0, r1 + cmp r0, #0 + bne _0809344A + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _08093446 + ldr r1, _08093460 @ =gRoomControls + ldr r0, _08093464 @ =gLinkEntity + str r0, [r1, #0x30] +_08093446: + bl sub_0805E780 +_0809344A: + ldr r0, _08093468 @ =gUnk_081228C8 + ldrb r1, [r4, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + pop {r4, pc} + .align 2, 0 +_0809345C: .4byte gLinkState +_08093460: .4byte gRoomControls +_08093464: .4byte gLinkEntity +_08093468: .4byte gUnk_081228C8 + + thumb_func_start sub_0809346C +sub_0809346C: @ 0x0809346C + push {r4, lr} + adds r4, r0, #0 + movs r0, #1 + strb r0, [r4, #0xc] + movs r0, #0xff + strb r0, [r4, #0x1f] + ldr r0, _080934C0 @ =gLinkEntity + ldrb r1, [r0, #0x1a] + lsls r1, r1, #0x1c + lsrs r1, r1, #0x1c + ldrb r2, [r4, #0x1a] + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x1a] + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _080934B8 + ldr r0, _080934C4 @ =gRoomControls + str r4, [r0, #0x30] + ldrb r0, [r4, #0x19] + movs r1, #3 + orrs r0, r1 + strb r0, [r4, #0x19] + adds r1, r4, #0 + adds r1, #0x6e + movs r0, #0xc0 + lsls r0, r0, #1 + strh r0, [r1] + adds r1, #4 + strh r0, [r1] + adds r0, r4, #0 + movs r1, #0x61 + movs r2, #1 + movs r3, #0 + bl CreateObjectWithParent +_080934B8: + adds r0, r4, #0 + bl sub_080934C8 + pop {r4, pc} + .align 2, 0 +_080934C0: .4byte gLinkEntity +_080934C4: .4byte gRoomControls + + thumb_func_start sub_080934C8 +sub_080934C8: @ 0x080934C8 + push {lr} + ldr r2, _080934DC @ =gUnk_081228D0 + ldrb r1, [r0, #0xa] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080934DC: .4byte gUnk_081228D0 + + thumb_func_start sub_080934E0 +sub_080934E0: @ 0x080934E0 + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + adds r4, r5, #0 + adds r4, #0x6e + ldrh r1, [r4] + movs r2, #0 + ldrsh r0, [r4, r2] + cmp r0, #0 + bge _080934F6 + rsbs r0, r1, #0 + strh r0, [r4] +_080934F6: + ldr r0, _08093518 @ =gLinkEntity + ldrb r0, [r0, #0xd] + cmp r0, #2 + beq _0809351C + cmp r0, #2 + bgt _080935B0 + cmp r0, #1 + bne _080935B0 + adds r1, r5, #0 + adds r1, #0x72 + ldrh r0, [r1] + subs r0, #4 + strh r0, [r1] + adds r6, r4, #0 + adds r7, r1, #0 + b _080935BE + .align 2, 0 +_08093518: .4byte gLinkEntity +_0809351C: + ldrb r2, [r5, #0xf] + adds r0, r2, #0 + cmp r0, #0 + bne _08093560 + adds r0, r5, #0 + adds r0, #0x72 + ldrh r1, [r0] + adds r7, r0, #0 + cmp r1, #0x80 + bls _08093538 + adds r0, r1, #0 + subs r0, #0x20 + strh r0, [r7] + b _08093544 +_08093538: + adds r0, r2, #1 + strb r0, [r5, #0xf] + movs r0, #0x92 + lsls r0, r0, #1 + bl PlaySFX +_08093544: + adds r0, r5, #0 + adds r0, #0x6e + ldrh r2, [r0] + ldr r1, _0809355C @ =0x0000011F + adds r6, r0, #0 + cmp r2, r1 + bhi _080935BE + adds r0, r2, #0 + adds r0, #0x40 + strh r0, [r6] + b _080935BE + .align 2, 0 +_0809355C: .4byte 0x0000011F +_08093560: + cmp r0, #0xff + beq _080935A6 + adds r0, r5, #0 + adds r0, #0x72 + ldrh r1, [r0] + adds r7, r0, #0 + cmp r1, #0xff + bhi _08093576 + adds r0, r1, #0 + adds r0, #0x20 + b _0809357A +_08093576: + movs r0, #0x80 + lsls r0, r0, #1 +_0809357A: + strh r0, [r7] + adds r0, r5, #0 + adds r0, #0x6e + ldrh r1, [r0] + movs r2, #0x80 + lsls r2, r2, #1 + adds r6, r0, #0 + cmp r1, r2 + bls _08093594 + adds r0, r1, #0 + subs r0, #0x20 + strh r0, [r6] + b _08093596 +_08093594: + strh r2, [r6] +_08093596: + ldrh r1, [r6] + movs r0, #0x80 + lsls r0, r0, #1 + cmp r1, r0 + bne _080935BE + movs r0, #0xff + strb r0, [r5, #0xf] + b _080935BE +_080935A6: + adds r0, r5, #0 + bl sub_080936C8 + adds r6, r4, #0 + b _080935BA +_080935B0: + adds r0, r5, #0 + bl sub_080936C8 + adds r6, r5, #0 + adds r6, #0x6e +_080935BA: + adds r7, r5, #0 + adds r7, #0x72 +_080935BE: + ldr r0, _080935E4 @ =gLinkEntity + ldrb r1, [r0, #0x14] + movs r0, #2 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0 + beq _080935E8 + movs r0, #1 + strb r0, [r5, #0x1e] + lsls r0, r1, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #2 + bne _080935EA + ldrh r0, [r6] + rsbs r0, r0, #0 + strh r0, [r6] + b _080935EA + .align 2, 0 +_080935E4: .4byte gLinkEntity +_080935E8: + strb r0, [r5, #0x1e] +_080935EA: + ldrb r0, [r5, #0x1e] + ldrb r1, [r5, #0x1f] + cmp r0, r1 + beq _080935FE + strb r0, [r5, #0x1f] + ldrb r1, [r5, #0x1e] + ldrh r2, [r5, #0x12] + adds r0, r5, #0 + bl sub_080042D0 +_080935FE: + ldr r4, _0809364C @ =gLinkEntity + adds r0, r4, #0 + adds r1, r5, #0 + bl CopyPosition + ldrb r2, [r4, #0x1b] + lsrs r2, r2, #6 + lsls r2, r2, #6 + ldrb r3, [r5, #0x1b] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r3 + orrs r0, r2 + strb r0, [r5, #0x1b] + ldrb r0, [r4, #0x19] + lsrs r0, r0, #6 + lsls r0, r0, #6 + ldrb r2, [r5, #0x19] + ands r1, r2 + orrs r1, r0 + strb r1, [r5, #0x19] + ldrh r1, [r7] + adds r0, r5, #0 + movs r2, #0xa + movs r3, #2 + bl sub_0806FCF4 + ldrh r1, [r6] + ldrh r2, [r7] + adds r0, r5, #0 + movs r3, #0 + bl sub_0805EC9C + adds r0, r4, #0 + movs r1, #1 + adds r2, r5, #0 + bl sub_0806FEBC + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0809364C: .4byte gLinkEntity + + thumb_func_start sub_08093650 +sub_08093650: @ 0x08093650 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r5, _080936C4 @ =gLinkEntity + ldrb r0, [r5, #0x15] + lsrs r1, r0, #1 + adds r0, r0, r1 + asrs r0, r0, #2 + adds r0, #2 + strb r0, [r4, #0x1e] + ldrb r1, [r4, #0x1f] + cmp r0, r1 + beq _08093674 + strb r0, [r4, #0x1f] + ldrb r1, [r4, #0x1e] + ldrh r2, [r4, #0x12] + adds r0, r4, #0 + bl sub_080042D0 +_08093674: + adds r0, r5, #0 + adds r1, r4, #0 + bl CopyPosition + ldrb r2, [r5, #0x1b] + lsrs r2, r2, #6 + lsls r2, r2, #6 + ldrb r3, [r4, #0x1b] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r3 + orrs r0, r2 + strb r0, [r4, #0x1b] + ldrb r0, [r5, #0x19] + lsrs r0, r0, #6 + lsls r0, r0, #6 + ldrb r2, [r4, #0x19] + ands r1, r2 + orrs r1, r0 + strb r1, [r4, #0x19] + ldr r0, [r4, #0x50] + adds r0, #0x72 + ldrh r1, [r0] + adds r0, r4, #0 + movs r2, #0x18 + movs r3, #0 + bl sub_0806FCF4 + adds r1, r4, #0 + adds r1, #0x63 + ldrb r0, [r1] + rsbs r0, r0, #0 + strb r0, [r1] + adds r0, r5, #0 + movs r1, #0 + adds r2, r4, #0 + bl sub_0806FEBC + pop {r4, r5, pc} + .align 2, 0 +_080936C4: .4byte gLinkEntity + + thumb_func_start sub_080936C8 +sub_080936C8: @ 0x080936C8 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r0, _08093714 @ =gLinkEntity + ldr r0, [r0, #0x7c] + lsrs r2, r0, #2 + movs r3, #0x9c + lsls r3, r3, #1 + adds r1, r3, #0 + subs r1, r1, r2 + adds r5, r4, #0 + adds r5, #0x76 + strh r1, [r5] + movs r1, #0x3c + bl __divsi3 + movs r1, #8 + subs r1, r1, r0 + adds r0, r4, #0 + adds r0, #0x74 + strh r1, [r0] + ldrb r3, [r4, #0xe] + cmp r3, #0 + bne _0809372C + adds r1, r4, #0 + adds r1, #0x6e + ldrh r2, [r1] + ldrh r0, [r5] + cmp r0, r2 + bhs _08093718 + adds r0, r2, #0 + subs r0, #8 + strh r0, [r1] + adds r1, #4 + ldrh r0, [r1] + adds r0, #8 + strh r0, [r1] + b _0809375C + .align 2, 0 +_08093714: .4byte gLinkEntity +_08093718: + adds r0, r3, #1 + strb r0, [r4, #0xe] + ldrh r0, [r5] + strh r0, [r1] + ldrh r0, [r5] + adds r0, #0x30 + adds r1, r4, #0 + adds r1, #0x72 + strh r0, [r1] + b _0809375C +_0809372C: + ldrh r0, [r5] + adds r0, #0x30 + adds r1, r4, #0 + adds r1, #0x6e + ldrh r2, [r1] + cmp r0, r2 + ble _0809374A + adds r0, r2, #0 + adds r0, #8 + strh r0, [r1] + adds r1, #4 + ldrh r0, [r1] + subs r0, #8 + strh r0, [r1] + b _0809375C +_0809374A: + movs r0, #0 + strb r0, [r4, #0xe] + ldrh r0, [r5] + adds r0, #0x30 + strh r0, [r1] + ldrh r1, [r5] + adds r0, r4, #0 + adds r0, #0x72 + strh r1, [r0] +_0809375C: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08093760 +sub_08093760: @ 0x08093760 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xa] + cmp r0, #2 + beq _08093794 + cmp r0, #2 + bgt _08093778 + cmp r0, #0 + beq _08093784 + cmp r0, #1 + beq _0809378C + b _080937BC +_08093778: + cmp r0, #3 + beq _080937AC + cmp r0, #0x41 + bgt _080937BC + cmp r0, #0x40 + blt _080937BC +_08093784: + ldr r0, _08093788 @ =gUnk_081228D8 + b _08093796 + .align 2, 0 +_08093788: .4byte gUnk_081228D8 +_0809378C: + ldr r0, _08093790 @ =gUnk_081228E0 + b _08093796 + .align 2, 0 +_08093790: .4byte gUnk_081228E0 +_08093794: + ldr r0, _080937A8 @ =gUnk_081228E8 +_08093796: + ldrb r1, [r2, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r2, #0 + bl _call_via_r1 + b _080937BC + .align 2, 0 +_080937A8: .4byte gUnk_081228E8 +_080937AC: + ldr r0, _080937C0 @ =gUnk_081228F0 + ldrb r1, [r2, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r2, #0 + bl _call_via_r1 +_080937BC: + pop {pc} + .align 2, 0 +_080937C0: .4byte gUnk_081228F0 + + thumb_func_start sub_080937C4 +sub_080937C4: @ 0x080937C4 + push {r4, r5, r6, lr} + adds r4, r0, #0 + movs r5, #1 + strb r5, [r4, #0xc] + movs r0, #0x2e + ldrsh r1, [r4, r0] + ldr r2, _08093808 @ =gRoomControls + ldrh r0, [r2, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + movs r3, #0x3f + ands r1, r3 + movs r6, #0x32 + ldrsh r0, [r4, r6] + ldrh r2, [r2, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r1, r0 + adds r0, r4, #0 + adds r0, #0x76 + strh r1, [r0] + ldrb r0, [r4, #0xa] + cmp r0, #0x41 + beq _0809386A + cmp r0, #0x41 + bgt _0809387A + cmp r0, #0 + beq _0809380C + cmp r0, #0x40 + beq _08093840 + b _0809387A + .align 2, 0 +_08093808: .4byte gRoomControls +_0809380C: + strb r5, [r4, #0x1e] + ldrb r1, [r4, #0x19] + movs r0, #0x3f + ands r0, r1 + movs r1, #0x80 + orrs r0, r1 + strb r0, [r4, #0x19] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #5 + orrs r0, r1 + strb r0, [r2] + adds r0, r4, #0 + adds r0, #0x78 + strh r5, [r0] + adds r1, r4, #0 + adds r1, #0x7a + movs r0, #0x3c + strh r0, [r1] + movs r0, #0x62 + movs r1, #0x40 + b _08093854 +_08093840: + movs r0, #2 + strb r0, [r4, #0x1e] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #7 + orrs r0, r1 + strb r0, [r2] + movs r0, #0x62 + movs r1, #0x41 +_08093854: + movs r2, #0 + bl CreateObject + adds r1, r0, #0 + cmp r1, #0 + beq _0809387A + str r4, [r1, #0x50] + adds r0, r4, #0 + bl CopyPosition + b _0809387A +_0809386A: + movs r0, #0 + strb r0, [r4, #0x1e] + ldrb r1, [r4, #0x1b] + movs r0, #0x3f + ands r0, r1 + movs r1, #0x40 + orrs r0, r1 + strb r0, [r4, #0x1b] +_0809387A: + adds r0, r4, #0 + bl sub_08093A1C + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_08093884 +sub_08093884: @ 0x08093884 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xa] + cmp r0, #0 + bne _080938B8 + ldr r0, _080938A8 @ =gLinkEntity + movs r3, #0x32 + ldrsh r1, [r0, r3] + movs r3, #0x32 + ldrsh r0, [r2, r3] + adds r0, #0x20 + cmp r1, r0 + bge _080938AC + ldrb r0, [r2, #0x19] + movs r1, #0x3f + ands r1, r0 + movs r0, #0x40 + b _080938B4 + .align 2, 0 +_080938A8: .4byte gLinkEntity +_080938AC: + ldrb r0, [r2, #0x19] + movs r1, #0x3f + ands r1, r0 + movs r0, #0x80 +_080938B4: + orrs r1, r0 + strb r1, [r2, #0x19] +_080938B8: + adds r0, r2, #0 + bl sub_08093C70 + pop {pc} + + thumb_func_start sub_080938C0 +sub_080938C0: @ 0x080938C0 + push {r4, r5, lr} + movs r1, #1 + strb r1, [r0, #0xc] + ldrb r2, [r0, #0xb] + ands r1, r2 + adds r1, #3 + strb r1, [r0, #0x1e] + adds r3, r0, #0 + adds r3, #0x29 + ldrb r1, [r3] + movs r2, #7 + orrs r1, r2 + strb r1, [r3] + movs r1, #0x2e + ldrsh r2, [r0, r1] + ldr r3, _08093908 @ =gRoomControls + ldrh r1, [r3, #6] + subs r2, r2, r1 + asrs r2, r2, #4 + movs r4, #0x3f + ands r2, r4 + movs r5, #0x32 + ldrsh r1, [r0, r5] + ldrh r3, [r3, #8] + subs r1, r1, r3 + asrs r1, r1, #4 + ands r1, r4 + lsls r1, r1, #6 + orrs r2, r1 + adds r1, r0, #0 + adds r1, #0x76 + strh r2, [r1] + bl sub_08093A1C + pop {r4, r5, pc} + .align 2, 0 +_08093908: .4byte gRoomControls + + thumb_func_start nullsub_524 +nullsub_524: @ 0x0809390C + bx lr + .align 2, 0 + + thumb_func_start sub_08093910 +sub_08093910: @ 0x08093910 + push {r4, r5, r6, lr} + adds r5, r0, #0 + movs r3, #1 + strb r3, [r5, #0xc] + ldrb r1, [r5, #0xb] + adds r0, r3, #0 + ands r0, r1 + adds r0, #5 + strb r0, [r5, #0x1e] + ldrb r0, [r5, #0x19] + movs r1, #0xc0 + orrs r0, r1 + strb r0, [r5, #0x19] + adds r2, r5, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #7 + orrs r0, r1 + strb r0, [r2] + movs r0, #0x2e + ldrsh r1, [r5, r0] + ldr r2, _0809397C @ =gRoomControls + ldrh r0, [r2, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + movs r4, #0x3f + ands r1, r4 + movs r6, #0x32 + ldrsh r0, [r5, r6] + ldrh r2, [r2, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r4 + lsls r0, r0, #6 + orrs r1, r0 + adds r0, r5, #0 + adds r0, #0x76 + strh r1, [r0] + ldrb r0, [r5, #0xb] + ands r3, r0 + cmp r3, #0 + beq _0809396C + adds r1, r5, #0 + adds r1, #0x62 + movs r0, #8 + strb r0, [r1] +_0809396C: + adds r0, r5, #0 + bl sub_08093984 + adds r0, r5, #0 + movs r1, #0x7b + bl sub_0801D2B4 + pop {r4, r5, r6, pc} + .align 2, 0 +_0809397C: .4byte gRoomControls + + thumb_func_start nullsub_525 +nullsub_525: @ 0x08093980 + bx lr + .align 2, 0 + + thumb_func_start sub_08093984 +sub_08093984: @ 0x08093984 + push {r4, r5, r6, lr} + adds r1, r0, #0 + ldrb r0, [r1, #0xb] + ldr r2, _080939B4 @ =gUnk_0812291E + cmp r0, #0 + beq _08093992 + ldr r2, _080939B8 @ =gUnk_081228F8 +_08093992: + movs r5, #0 + adds r6, r1, #0 + adds r6, #0x76 + adds r4, r2, #0 +_0809399A: + movs r0, #0 + ldrsh r1, [r4, r0] + ldrh r0, [r6] + adds r1, r1, r0 + ldr r0, _080939BC @ =0x00004074 + movs r2, #1 + bl UpdateCollisionLayer + adds r4, #2 + adds r5, #1 + cmp r5, #0x12 + bls _0809399A + pop {r4, r5, r6, pc} + .align 2, 0 +_080939B4: .4byte gUnk_0812291E +_080939B8: .4byte gUnk_081228F8 +_080939BC: .4byte 0x00004074 + + thumb_func_start sub_080939C0 +sub_080939C0: @ 0x080939C0 + push {r4, r5, lr} + adds r4, r0, #0 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0xb] + movs r0, #3 + ands r0, r1 + adds r0, #7 + strb r0, [r4, #0x1e] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #7 + orrs r0, r1 + strb r0, [r2] + movs r0, #0x2e + ldrsh r1, [r4, r0] + ldr r2, _08093A14 @ =gRoomControls + ldrh r0, [r2, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + movs r3, #0x3f + ands r1, r3 + movs r5, #0x32 + ldrsh r0, [r4, r5] + ldrh r2, [r2, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r1, r0 + adds r0, r4, #0 + adds r0, #0x76 + strh r1, [r0] + adds r0, r4, #0 + bl sub_08093A1C + adds r0, r4, #0 + movs r1, #0x7a + bl sub_0801D2B4 + pop {r4, r5, pc} + .align 2, 0 +_08093A14: .4byte gRoomControls + + thumb_func_start nullsub_526 +nullsub_526: @ 0x08093A18 + bx lr + .align 2, 0 + + thumb_func_start sub_08093A1C +sub_08093A1C: @ 0x08093A1C + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r2, r0, #0 + ldrb r1, [r2, #0xa] + cmp r1, #1 + beq _08093B0C + cmp r1, #1 + bgt _08093A34 + cmp r1, #0 + beq _08093A3C + b _08093C64 +_08093A34: + cmp r1, #3 + bne _08093A3A + b _08093C54 +_08093A3A: + b _08093C64 +_08093A3C: + ldr r0, _08093AF0 @ =0x00004024 + adds r7, r2, #0 + adds r7, #0x76 + ldrh r1, [r7] + adds r1, #0x3c + adds r4, r2, #0 + adds r4, #0x38 + ldrb r2, [r4] + bl UpdateCollisionLayer + ldr r5, _08093AF4 @ =0x00004022 + ldrh r1, [r7] + adds r1, #0x3d + ldrb r2, [r4] + adds r0, r5, #0 + bl UpdateCollisionLayer + ldrh r1, [r7] + adds r1, #0x3e + ldrb r2, [r4] + adds r0, r5, #0 + bl UpdateCollisionLayer + ldr r0, _08093AF8 @ =0x00004029 + mov r8, r0 + ldrh r1, [r7] + adds r1, #0x7c + ldrb r2, [r4] + bl UpdateCollisionLayer + ldr r6, _08093AFC @ =0x00004026 + ldrh r1, [r7] + adds r1, #0x7d + ldrb r2, [r4] + adds r0, r6, #0 + bl UpdateCollisionLayer + ldrh r1, [r7] + adds r1, #0x7e + ldrb r2, [r4] + adds r0, r6, #0 + bl UpdateCollisionLayer + adds r5, #0x1b + ldrh r1, [r7] + adds r1, #0x40 + ldrb r2, [r4] + adds r0, r5, #0 + bl UpdateCollisionLayer + ldrh r1, [r7] + adds r1, #0x80 + ldrb r2, [r4] + adds r0, r5, #0 + bl UpdateCollisionLayer + ldr r0, _08093B00 @ =0x00004027 + ldrh r1, [r7] + adds r1, #0x41 + ldrb r2, [r4] + bl UpdateCollisionLayer + ldr r0, _08093B04 @ =0x00004023 + ldrh r1, [r7] + adds r1, #0x42 + ldrb r2, [r4] + bl UpdateCollisionLayer + ldr r0, _08093B08 @ =0x0000406D + ldrh r1, [r7] + adds r1, #0x43 + ldrb r2, [r4] + bl UpdateCollisionLayer + ldrh r1, [r7] + adds r1, #0x81 + ldrb r2, [r4] + mov r0, r8 + bl UpdateCollisionLayer + ldrh r1, [r7] + adds r1, #0x82 + ldrb r2, [r4] + adds r0, r6, #0 + bl UpdateCollisionLayer + ldrh r1, [r7] + adds r1, #0x83 + b _08093B94 + .align 2, 0 +_08093AF0: .4byte 0x00004024 +_08093AF4: .4byte 0x00004022 +_08093AF8: .4byte 0x00004029 +_08093AFC: .4byte 0x00004026 +_08093B00: .4byte 0x00004027 +_08093B04: .4byte 0x00004023 +_08093B08: .4byte 0x0000406D +_08093B0C: + ldrb r0, [r2, #0xb] + ands r1, r0 + cmp r1, #0 + beq _08093BB4 + ldr r6, _08093BA0 @ =0x0000406D + movs r0, #0x76 + adds r0, r0, r2 + mov r8, r0 + ldrh r1, [r0] + subs r1, #0x81 + adds r4, r2, #0 + adds r4, #0x38 + ldrb r2, [r4] + adds r0, r6, #0 + bl UpdateCollisionLayer + ldr r5, _08093BA4 @ =0x00004022 + mov r2, r8 + ldrh r1, [r2] + subs r1, #0x41 + ldrb r2, [r4] + adds r0, r5, #0 + bl UpdateCollisionLayer + ldr r0, _08093BA8 @ =0x00004029 + mov r2, r8 + ldrh r1, [r2] + subs r1, #2 + ldrb r2, [r4] + bl UpdateCollisionLayer + ldr r0, _08093BAC @ =0x00004026 + mov r2, r8 + ldrh r1, [r2] + subs r1, #1 + ldrb r2, [r4] + bl UpdateCollisionLayer + mov r0, r8 + ldrh r1, [r0] + ldrb r2, [r4] + adds r0, r5, #0 + bl UpdateCollisionLayer + mov r2, r8 + ldrh r1, [r2] + adds r1, #1 + ldrb r2, [r4] + adds r0, r6, #0 + bl UpdateCollisionLayer + ldr r0, _08093BB0 @ =0x0000406E + mov r2, r8 + ldrh r1, [r2] + adds r1, #0x40 + ldrb r2, [r4] + bl UpdateCollisionLayer + mov r0, r8 + ldrh r1, [r0] + adds r1, #0x41 + ldrb r2, [r4] + adds r0, r5, #0 + bl UpdateCollisionLayer + mov r2, r8 + ldrh r1, [r2] + adds r1, #0x42 +_08093B94: + ldrb r2, [r4] + adds r0, r6, #0 + bl UpdateCollisionLayer + b _08093C64 + .align 2, 0 +_08093BA0: .4byte 0x0000406D +_08093BA4: .4byte 0x00004022 +_08093BA8: .4byte 0x00004029 +_08093BAC: .4byte 0x00004026 +_08093BB0: .4byte 0x0000406E +_08093BB4: + ldr r6, _08093C40 @ =0x0000406C + movs r0, #0x76 + adds r0, r0, r2 + mov r8, r0 + ldrh r1, [r0] + subs r1, #0x7f + adds r4, r2, #0 + adds r4, #0x38 + ldrb r2, [r4] + adds r0, r6, #0 + bl UpdateCollisionLayer + ldr r5, _08093C44 @ =0x00004022 + mov r2, r8 + ldrh r1, [r2] + subs r1, #0x3f + ldrb r2, [r4] + adds r0, r5, #0 + bl UpdateCollisionLayer + mov r0, r8 + ldrh r1, [r0] + subs r1, #1 + ldrb r2, [r4] + adds r0, r6, #0 + bl UpdateCollisionLayer + mov r2, r8 + ldrh r1, [r2] + ldrb r2, [r4] + adds r0, r5, #0 + bl UpdateCollisionLayer + ldr r0, _08093C48 @ =0x00004026 + mov r2, r8 + ldrh r1, [r2] + adds r1, #1 + ldrb r2, [r4] + bl UpdateCollisionLayer + ldr r0, _08093C4C @ =0x0000402A + mov r2, r8 + ldrh r1, [r2] + adds r1, #2 + ldrb r2, [r4] + bl UpdateCollisionLayer + mov r0, r8 + ldrh r1, [r0] + adds r1, #0x3e + ldrb r2, [r4] + adds r0, r6, #0 + bl UpdateCollisionLayer + mov r2, r8 + ldrh r1, [r2] + adds r1, #0x3f + ldrb r2, [r4] + adds r0, r5, #0 + bl UpdateCollisionLayer + ldr r0, _08093C50 @ =0x0000406F + mov r2, r8 + ldrh r1, [r2] + adds r1, #0x40 + ldrb r2, [r4] + bl UpdateCollisionLayer + b _08093C64 + .align 2, 0 +_08093C40: .4byte 0x0000406C +_08093C44: .4byte 0x00004022 +_08093C48: .4byte 0x00004026 +_08093C4C: .4byte 0x0000402A +_08093C50: .4byte 0x0000406F +_08093C54: + ldr r0, _08093C6C @ =0x00004022 + adds r1, r2, #0 + adds r1, #0x76 + ldrh r1, [r1] + adds r2, #0x38 + ldrb r2, [r2] + bl UpdateCollisionLayer +_08093C64: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08093C6C: .4byte 0x00004022 + + thumb_func_start sub_08093C70 +sub_08093C70: @ 0x08093C70 + push {r4, r5, r6, lr} + adds r2, r0, #0 + adds r3, r2, #0 + adds r3, #0x78 + ldrh r0, [r3] + cmp r0, #0 + beq _08093CE8 + ldr r0, _08093CE0 @ =gLinkState + ldrb r0, [r0, #5] + cmp r0, #0 + beq _08093D5C + movs r0, #0 + strh r0, [r3] + ldr r4, _08093CE4 @ =0x00004022 + adds r6, r2, #0 + adds r6, #0x76 + ldrh r1, [r6] + adds r1, #0x3f + adds r5, r2, #0 + adds r5, #0x38 + ldrb r2, [r5] + adds r0, r4, #0 + bl UpdateCollisionLayer + ldrh r1, [r6] + adds r1, #0x40 + ldrb r2, [r5] + adds r0, r4, #0 + bl UpdateCollisionLayer + ldrh r1, [r6] + adds r1, #0x41 + ldrb r2, [r5] + adds r0, r4, #0 + bl UpdateCollisionLayer + adds r4, #4 + ldrh r1, [r6] + adds r1, #0x7f + ldrb r2, [r5] + adds r0, r4, #0 + bl UpdateCollisionLayer + ldrh r1, [r6] + adds r1, #0x80 + ldrb r2, [r5] + adds r0, r4, #0 + bl UpdateCollisionLayer + ldrh r1, [r6] + adds r1, #0x81 + ldrb r2, [r5] + adds r0, r4, #0 + bl UpdateCollisionLayer + b _08093D5C + .align 2, 0 +_08093CE0: .4byte gLinkState +_08093CE4: .4byte 0x00004022 +_08093CE8: + ldr r0, _08093D60 @ =gLinkState + ldrb r0, [r0, #5] + cmp r0, #0 + bne _08093D5C + adds r1, r2, #0 + adds r1, #0x7a + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _08093D5C + ldrh r0, [r3] + adds r0, #1 + strh r0, [r3] + movs r0, #0x3c + strh r0, [r1] + ldr r5, _08093D64 @ =0x0000403D + adds r6, r2, #0 + adds r6, #0x76 + ldrh r1, [r6] + adds r1, #0x3f + adds r4, r2, #0 + adds r4, #0x38 + ldrb r2, [r4] + adds r0, r5, #0 + bl UpdateCollisionLayer + ldrh r1, [r6] + adds r1, #0x40 + ldrb r2, [r4] + adds r0, r5, #0 + bl UpdateCollisionLayer + ldr r0, _08093D68 @ =0x00004027 + ldrh r1, [r6] + adds r1, #0x41 + ldrb r2, [r4] + bl UpdateCollisionLayer + ldrh r1, [r6] + adds r1, #0x7f + ldrb r2, [r4] + adds r0, r5, #0 + bl UpdateCollisionLayer + ldrh r1, [r6] + adds r1, #0x80 + ldrb r2, [r4] + adds r0, r5, #0 + bl UpdateCollisionLayer + ldr r0, _08093D6C @ =0x00004029 + ldrh r1, [r6] + adds r1, #0x81 + ldrb r2, [r4] + bl UpdateCollisionLayer +_08093D5C: + pop {r4, r5, r6, pc} + .align 2, 0 +_08093D60: .4byte gLinkState +_08093D64: .4byte 0x0000403D +_08093D68: .4byte 0x00004027 +_08093D6C: .4byte 0x00004029 + + thumb_func_start sub_08093D70 +sub_08093D70: @ 0x08093D70 + push {lr} + ldr r2, _08093D84 @ =gUnk_08122944 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08093D84: .4byte gUnk_08122944 + + thumb_func_start sub_08093D88 +sub_08093D88: @ 0x08093D88 + push {r4, lr} + adds r4, r0, #0 + movs r0, #1 + strb r0, [r4, #0xc] + ldrh r0, [r4, #0x36] + subs r0, #8 + strh r0, [r4, #0x36] + movs r0, #0xa8 + lsls r0, r0, #0xa + str r0, [r4, #0x20] + movs r0, #0x20 + strb r0, [r4, #0xe] + ldrb r0, [r4, #0xa] + cmp r0, #0 + beq _08093DAC + cmp r0, #1 + beq _08093DC4 + b _08093DDE +_08093DAC: + adds r0, r4, #0 + movs r1, #4 + bl sub_0805457C + cmp r0, #0 + bne _08093DBC + movs r0, #2 + strb r0, [r4, #0xc] +_08093DBC: + ldr r1, [r4, #0x54] + ldr r0, [r4, #0x20] + str r0, [r1, #0x20] + b _08093DDE +_08093DC4: + movs r0, #0 + movs r1, #0x5f + movs r2, #0 + bl CreateObject + adds r1, r0, #0 + cmp r1, #0 + beq _08093DDE + movs r0, #5 + strb r0, [r1, #0xe] + adds r0, r4, #0 + bl sub_08093E10 +_08093DDE: + pop {r4, pc} + + thumb_func_start sub_08093DE0 +sub_08093DE0: @ 0x08093DE0 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xe] + subs r0, #1 + strb r0, [r2, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08093DF4 + movs r0, #2 + strb r0, [r2, #0xc] +_08093DF4: + ldrb r1, [r2, #0xe] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08093E06 + ldr r1, [r2, #0x54] + ldrh r0, [r1, #0x32] + adds r0, #1 + strh r0, [r1, #0x32] +_08093E06: + pop {pc} + + thumb_func_start sub_08093E08 +sub_08093E08: @ 0x08093E08 + push {lr} + bl sub_0805E7BC + pop {pc} + + thumb_func_start sub_08093E10 +sub_08093E10: @ 0x08093E10 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + bl CopyPosition + str r4, [r5, #0x50] + str r5, [r4, #0x54] + ldr r0, [r4, #0x20] + str r0, [r5, #0x20] + pop {r4, r5, pc} + + thumb_func_start sub_08093E24 +sub_08093E24: @ 0x08093E24 + push {lr} + ldr r2, _08093E38 @ =gUnk_0812295C + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08093E38: .4byte gUnk_0812295C + + thumb_func_start sub_08093E3C +sub_08093E3C: @ 0x08093E3C + push {r4, lr} + adds r4, r0, #0 + movs r2, #1 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x18] + adds r0, r4, #0 + adds r0, #0x38 + ldrb r0, [r0] + cmp r0, #0 + bne _08093E6A + adds r0, r4, #0 + bl sub_08016A30 +_08093E6A: + ldrb r1, [r4, #0xa] + adds r0, r4, #0 + bl UpdateSprite + ldrb r0, [r4, #0xa] + lsls r0, r0, #2 + ldr r1, _08093EA8 @ =gUnk_08122950 + adds r2, r0, r1 + ldrh r0, [r2] + cmp r0, #0 + beq _08093E90 + ldrb r1, [r4, #0xb] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + bne _08093E90 + ldrh r0, [r2] + bl sub_08004488 +_08093E90: + ldrb r1, [r4, #0xb] + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + beq _08093EA6 + ldrb r0, [r4, #0x19] + movs r1, #0x3f + ands r1, r0 + movs r0, #0x40 + orrs r1, r0 + strb r1, [r4, #0x19] +_08093EA6: + pop {r4, pc} + .align 2, 0 +_08093EA8: .4byte gUnk_08122950 + + thumb_func_start sub_08093EAC +sub_08093EAC: @ 0x08093EAC + push {lr} + ldr r3, _08093EC8 @ =gUnk_08122964 + ldr r2, _08093ECC @ =gUnk_08122950 + ldrb r1, [r0, #0xa] + lsls r1, r1, #2 + adds r1, r1, r2 + ldrb r1, [r1, #2] + lsrs r1, r1, #4 + lsls r1, r1, #2 + adds r1, r1, r3 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08093EC8: .4byte gUnk_08122964 +_08093ECC: .4byte gUnk_08122950 + + thumb_func_start sub_08093ED0 +sub_08093ED0: @ 0x08093ED0 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08093EEC + adds r0, r4, #0 + bl sub_0805E7BC +_08093EEC: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08093EF0 +sub_08093EF0: @ 0x08093EF0 + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldrb r4, [r5, #0xa] + cmp r4, #1 + beq _08093F40 + cmp r4, #1 + bgt _08093F04 + cmp r4, #0 + beq _08093F0A + b _08093FB0 +_08093F04: + cmp r4, #2 + beq _08093F98 + b _08093FB0 +_08093F0A: + ldrb r0, [r5, #0xd] + cmp r0, #0 + bne _08093FB0 + adds r0, r5, #0 + bl sub_08004274 + adds r0, r5, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08093FB0 + movs r0, #0x64 + movs r1, #1 + movs r2, #0 + bl CreateObject + adds r1, r0, #0 + cmp r1, #0 + beq _08093F8E + ldr r0, [r5, #0x50] + str r0, [r1, #0x50] + adds r0, r5, #0 + bl CopyPosition + b _08093F8E +_08093F40: + adds r0, r5, #0 + bl sub_08004274 + adds r1, r5, #0 + adds r1, #0x5a + ldrb r0, [r1] + ands r4, r0 + adds r6, r1, #0 + cmp r4, #0 + beq _08093F72 + movs r0, #0 + strb r0, [r6] + movs r0, #0x64 + movs r1, #2 + movs r2, #0 + bl CreateObject + adds r1, r0, #0 + cmp r1, #0 + beq _08093F72 + ldr r0, [r5, #0x50] + str r0, [r1, #0x50] + adds r0, r5, #0 + bl CopyPosition +_08093F72: + ldrb r1, [r6] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08093FB0 + ldr r1, [r5, #0x50] + ldr r0, _08093F94 @ =gLinkEntity + cmp r1, r0 + bne _08093F8E + movs r0, #0x7a + bl PlaySFX + bl sub_08079D84 +_08093F8E: + bl sub_0805E780 + b _08093FB0 + .align 2, 0 +_08093F94: .4byte gLinkEntity +_08093F98: + adds r0, r5, #0 + bl sub_08004274 + adds r0, r5, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08093FB0 + bl sub_0805E780 +_08093FB0: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_08093FB4 +sub_08093FB4: @ 0x08093FB4 + push {lr} + ldr r2, _08093FC8 @ =gUnk_081229B4 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08093FC8: .4byte gUnk_081229B4 + + thumb_func_start sub_08093FCC +sub_08093FCC: @ 0x08093FCC + push {lr} + movs r1, #1 + strb r1, [r0, #0xc] + adds r2, r0, #0 + adds r2, #0x38 + movs r1, #2 + strb r1, [r2] + bl UpdateSpriteOrderAndFlip + pop {pc} + + thumb_func_start sub_08093FE0 +sub_08093FE0: @ 0x08093FE0 + push {r4, lr} + adds r4, r0, #0 + bl sub_08094064 + cmp r0, #0 + beq _08094062 + adds r3, r4, #0 + adds r3, #0x38 + ldrb r0, [r3] + cmp r0, #2 + bne _08094024 + ldr r0, _08094020 @ =gLinkEntity + ldrb r0, [r0, #0xc] + cmp r0, #0x1e + bgt _08094002 + cmp r0, #0x1d + bge _08094062 +_08094002: + movs r0, #1 + strb r0, [r3] + adds r0, r4, #0 + bl UpdateSpriteOrderAndFlip + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #5 + orrs r0, r1 + b _08094060 + .align 2, 0 +_08094020: .4byte gLinkEntity +_08094024: + ldr r0, _0809404C @ =gLinkEntity + ldrb r2, [r0, #0xc] + cmp r2, #0x1e + bgt _08094050 + cmp r2, #0x1d + blt _08094050 + movs r0, #2 + strb r0, [r3] + adds r0, r4, #0 + bl UpdateSpriteOrderAndFlip + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + b _08094060 + .align 2, 0 +_0809404C: .4byte gLinkEntity +_08094050: + adds r2, r0, #0 + adds r2, #0x38 + ldrb r1, [r2] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _08094062 + movs r0, #1 +_08094060: + strb r0, [r2] +_08094062: + pop {r4, pc} + + thumb_func_start sub_08094064 +sub_08094064: @ 0x08094064 + push {lr} + movs r2, #1 + ldr r1, _08094080 @ =gLinkEntity + movs r3, #0x2e + ldrsh r1, [r1, r3] + movs r3, #0x2e + ldrsh r0, [r0, r3] + subs r1, r1, r0 + adds r1, #0x1c + cmp r1, #0x38 + bls _0809407C + movs r2, #0 +_0809407C: + adds r0, r2, #0 + pop {pc} + .align 2, 0 +_08094080: .4byte gLinkEntity + + thumb_func_start sub_08094084 +sub_08094084: @ 0x08094084 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r5, [r4, #0x50] + movs r1, #0x36 + ldrsh r0, [r5, r1] + cmp r0, #0 + beq _0809412A + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _080940CA + movs r2, #1 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #5 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x18] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #6 + orrs r0, r1 + strb r0, [r2] + adds r1, r4, #0 + adds r1, #0x63 + movs r0, #5 + strb r0, [r1] + adds r0, r4, #0 + movs r1, #1 + bl UpdateSprite +_080940CA: + ldrh r0, [r5, #0x2e] + strh r0, [r4, #0x2e] + ldrh r0, [r5, #0x32] + strh r0, [r4, #0x32] + ldrb r2, [r5, #0x1b] + lsrs r2, r2, #6 + lsls r2, r2, #6 + ldrb r3, [r4, #0x1b] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r3 + orrs r0, r2 + strb r0, [r4, #0x1b] + ldrb r0, [r5, #0x19] + lsrs r0, r0, #6 + lsls r0, r0, #6 + ldrb r2, [r4, #0x19] + ands r1, r2 + orrs r1, r0 + strb r1, [r4, #0x19] + movs r0, #0x36 + ldrsh r1, [r5, r0] + movs r0, #0x40 + rsbs r0, r0, #0 + cmp r1, r0 + ble _08094108 + movs r3, #0x80 + lsls r3, r3, #1 + movs r2, #0x80 + lsls r2, r2, #2 + b _0809411E +_08094108: + movs r1, #0x36 + ldrsh r0, [r5, r1] + adds r0, #0x40 + lsls r2, r0, #1 + movs r1, #0x80 + lsls r1, r1, #1 + subs r3, r1, r2 + lsls r0, r0, #2 + movs r1, #0x80 + lsls r1, r1, #2 + subs r2, r1, r0 +_0809411E: + adds r0, r4, #0 + adds r1, r3, #0 + movs r3, #0 + bl sub_0805EC9C + b _0809412E +_0809412A: + bl sub_0805E780 +_0809412E: + pop {r4, r5, pc} + + thumb_func_start sub_08094130 +sub_08094130: @ 0x08094130 + push {lr} + ldr r2, _08094144 @ =gUnk_081229BC + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08094144: .4byte gUnk_081229BC + + thumb_func_start sub_08094148 +sub_08094148: @ 0x08094148 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + cmp r0, #1 + bne _08094154 + b _08094254 +_08094154: + cmp r0, #1 + bgt _0809415E + cmp r0, #0 + beq _080941A8 + b _0809438A +_0809415E: + cmp r0, #2 + beq _08094164 + b _0809438A +_08094164: + ldrb r0, [r4, #0xd] + cmp r0, #0 + bne _08094180 + movs r0, #1 + strb r0, [r4, #0xd] + movs r0, #0xb4 + lsls r0, r0, #1 + str r0, [r4, #0x78] + ldr r0, _0809417C @ =gRoomControls + str r4, [r0, #0x30] + b _08094198 + .align 2, 0 +_0809417C: .4byte gRoomControls +_08094180: + ldr r0, [r4, #0x78] + subs r0, #1 + str r0, [r4, #0x78] + movs r1, #1 + rsbs r1, r1, #0 + cmp r0, r1 + bne _08094198 + ldr r1, _080941A0 @ =gRoomControls + ldr r0, _080941A4 @ =gLinkEntity + str r0, [r1, #0x30] + bl sub_0805E780 +_08094198: + bl sub_08078B48 + b _08094394 + .align 2, 0 +_080941A0: .4byte gRoomControls +_080941A4: .4byte gLinkEntity +_080941A8: + ldr r1, _08094228 @ =gUnk_081229D0 + ldrb r0, [r4, #0xb] + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r0, [r0, #1] + strb r0, [r4, #0x15] + ldrb r0, [r4, #0xb] + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r0, [r0, #2] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldrh r2, [r4, #0x2e] + adds r0, r0, r2 + strh r0, [r4, #0x2e] + ldrb r0, [r4, #0xb] + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r0, [r0, #3] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldrh r2, [r4, #0x32] + adds r0, r0, r2 + strh r0, [r4, #0x32] + ldrb r0, [r4, #0xb] + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r2, [r0] + movs r0, #0x40 + ands r0, r2 + cmp r0, #0 + beq _080941F0 + ldrb r0, [r4, #0x18] + movs r1, #0x40 + orrs r0, r1 + strb r0, [r4, #0x18] +_080941F0: + movs r0, #0x80 + ands r0, r2 + cmp r0, #0 + beq _08094200 + ldrb r0, [r4, #0x18] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r4, #0x18] +_08094200: + ldrb r0, [r4, #0xb] + cmp r0, #3 + bhi _08094230 + bl Random + ldr r1, _0809422C @ =0x0001FFFF + ands r1, r0 + movs r0, #0xa0 + lsls r0, r0, #0xa + orrs r0, r1 + str r0, [r4, #0x20] + movs r0, #0x80 + lsls r0, r0, #1 + strh r0, [r4, #0x24] + adds r0, r4, #0 + movs r1, #0x56 + bl UpdateSprite + b _0809438A + .align 2, 0 +_08094228: .4byte gUnk_081229D0 +_0809422C: .4byte 0x0001FFFF +_08094230: + movs r0, #0xa0 + lsls r0, r0, #0xa + str r0, [r4, #0x20] + movs r0, #0x80 + lsls r0, r0, #1 + strh r0, [r4, #0x24] + bl Random + movs r1, #3 + ands r0, r1 + ldrb r1, [r4, #0x15] + orrs r0, r1 + strb r0, [r4, #0x15] + adds r0, r4, #0 + movs r1, #0x57 + bl UpdateSprite + b _0809438A +_08094254: + ldrb r0, [r4, #0xb] + cmp r0, #0 + bne _08094272 + adds r0, r4, #0 + movs r1, #0x67 + movs r2, #1 + movs r3, #0x80 + bl CreateObjectWithParent + adds r1, r0, #0 + str r1, [r4, #0x54] + cmp r1, #0 + beq _08094272 + ldr r0, [r4, #0x50] + str r0, [r1, #0x54] +_08094272: + ldrb r0, [r4, #0xb] + cmp r0, #0x80 + bne _0809427A + b _08094380 +_0809427A: + movs r2, #0 + movs r0, #0x4b + strb r0, [r4, #0x1e] + ldrb r1, [r4, #0x19] + subs r0, #0x58 + ands r0, r1 + movs r1, #4 + orrs r0, r1 + movs r1, #0xe0 + lsls r1, r1, #7 + strh r1, [r4, #0x24] + movs r1, #0xc0 + orrs r0, r1 + strb r0, [r4, #0x19] + adds r3, r4, #0 + adds r3, #0x29 + ldrb r0, [r3] + movs r1, #7 + orrs r0, r1 + strb r0, [r3] + ldrb r0, [r4, #0x19] + movs r1, #3 + orrs r0, r1 + strb r0, [r4, #0x19] + ldrb r0, [r4, #0xb] + lsls r0, r0, #3 + ldr r1, _080942E8 @ =gUnk_081229F0 + adds r3, r0, r1 + movs r0, #0 + ldrsb r0, [r3, r0] + ldrh r1, [r4, #0x2e] + adds r0, r0, r1 + strh r0, [r4, #0x2e] + movs r0, #1 + ldrsb r0, [r3, r0] + ldrh r1, [r4, #0x32] + adds r0, r0, r1 + strh r0, [r4, #0x32] + ldrb r0, [r3, #2] + strb r0, [r4, #0xe] + ldrb r0, [r3, #3] + strb r0, [r4, #0xf] + movs r0, #0xce + str r0, [r4, #0x7c] + str r2, [r4, #0x74] + ldrb r1, [r3, #4] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _080942EC + adds r1, r4, #0 + adds r1, #0x82 + movs r0, #0xff + lsls r0, r0, #8 + b _080942F4 + .align 2, 0 +_080942E8: .4byte gUnk_081229F0 +_080942EC: + adds r1, r4, #0 + adds r1, #0x82 + movs r0, #0x80 + lsls r0, r0, #1 +_080942F4: + strh r0, [r1] + ldrb r1, [r3, #4] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0809430A + adds r1, r4, #0 + adds r1, #0x86 + movs r0, #0xff + lsls r0, r0, #8 + b _08094312 +_0809430A: + adds r1, r4, #0 + adds r1, #0x86 + movs r0, #0x80 + lsls r0, r0, #1 +_08094312: + strh r0, [r1] + adds r0, r4, #0 + bl sub_0806FBD8 + cmp r0, #0 + beq _0809438A + ldr r2, [r4, #0x48] + ldr r1, _0809437C @ =gUnk_080FD2E8 + ldrb r0, [r1] + strb r0, [r2] + ldr r2, [r4, #0x48] + ldrb r0, [r1, #1] + strb r0, [r2, #1] + ldr r2, [r4, #0x48] + ldrb r0, [r1, #2] + strb r0, [r2, #2] + ldr r2, [r4, #0x48] + ldrb r0, [r1, #3] + strb r0, [r2, #3] + ldr r2, [r4, #0x48] + ldrb r0, [r1, #4] + strb r0, [r2, #4] + ldr r2, [r4, #0x48] + ldrb r0, [r1, #5] + strb r0, [r2, #5] + ldr r2, [r4, #0x48] + ldrb r0, [r1, #6] + strb r0, [r2, #6] + ldr r2, [r4, #0x48] + ldrb r0, [r1, #7] + strb r0, [r2, #7] + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #2 + strb r0, [r1] + adds r1, #4 + movs r0, #7 + strb r0, [r1] + adds r1, #4 + movs r0, #0x48 + strb r0, [r1] + subs r1, #1 + movs r0, #0x7a + strb r0, [r1] + subs r1, #4 + movs r0, #1 + strb r0, [r1] + b _0809438A + .align 2, 0 +_0809437C: .4byte gUnk_080FD2E8 +_08094380: + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] +_0809438A: + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + bl sub_08094398 +_08094394: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08094398 +sub_08094398: @ 0x08094398 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + cmp r0, #0 + beq _080943A8 + cmp r0, #1 + beq _080943D8 + b _08094420 +_080943A8: + adds r0, r4, #0 + bl sub_08004274 + adds r0, r4, #0 + bl sub_0806F69C + movs r1, #0x80 + lsls r1, r1, #7 + adds r0, r4, #0 + bl sub_08003FC4 + cmp r0, #0 + bne _08094420 + ldrb r0, [r4, #0xb] + cmp r0, #3 + bhi _080943D2 + adds r0, r4, #0 + movs r1, #0xc + movs r2, #0 + bl CreateFx +_080943D2: + bl sub_0805E780 + b _08094420 +_080943D8: + ldrb r1, [r4, #0xb] + cmp r1, #0x80 + beq _0809440A + ldr r0, [r4, #0x7c] + subs r0, #1 + str r0, [r4, #0x7c] + movs r1, #1 + rsbs r1, r1, #0 + cmp r0, r1 + bne _080943F6 + movs r0, #0x96 + lsls r0, r0, #2 + str r0, [r4, #0x7c] + movs r0, #2 + strb r0, [r4, #0xc] +_080943F6: + adds r0, r4, #0 + adds r0, #0x82 + ldrh r1, [r0] + adds r0, #4 + ldrh r2, [r0] + adds r0, r4, #0 + movs r3, #0 + bl sub_0805EC9C + b _08094420 +_0809440A: + ldr r0, [r4, #0x54] + adds r0, #0x79 + ldrb r0, [r0] + ands r1, r0 + cmp r1, #0 + bne _0809441A + bl sub_0805E780 +_0809441A: + adds r0, r4, #0 + bl sub_08094660 +_08094420: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08094424 +sub_08094424: @ 0x08094424 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r6, r0, #0 + adds r3, r6, #0 + adds r3, #0x82 + movs r1, #0 + ldrsh r0, [r3, r1] + cmp r0, #0 + bge _08094452 + adds r1, r6, #0 + adds r1, #0x80 + movs r0, #0x24 + ldrsh r2, [r6, r0] + ldr r0, [r1] + adds r0, r0, r2 + str r0, [r1] + movs r2, #0 + ldrsh r0, [r3, r2] + rsbs r0, r0, #0 + mov r8, r0 + adds r5, r1, #0 + b _08094466 +_08094452: + adds r0, r6, #0 + adds r0, #0x80 + movs r1, #0x24 + ldrsh r2, [r6, r1] + ldr r1, [r0] + subs r1, r1, r2 + str r1, [r0] + ldrh r3, [r3] + mov r8, r3 + adds r5, r0, #0 +_08094466: + adds r0, r6, #0 + adds r0, #0x86 + movs r2, #0 + ldrsh r1, [r0, r2] + adds r4, r0, #0 + cmp r1, #0 + bge _0809448C + adds r1, r6, #0 + adds r1, #0x84 + movs r0, #0x24 + ldrsh r2, [r6, r0] + ldr r0, [r1] + adds r0, r0, r2 + str r0, [r1] + movs r2, #0 + ldrsh r0, [r4, r2] + rsbs r7, r0, #0 + adds r3, r1, #0 + b _0809449E +_0809448C: + adds r0, r6, #0 + adds r0, #0x84 + movs r1, #0x24 + ldrsh r2, [r6, r1] + ldr r1, [r0] + subs r1, r1, r2 + str r1, [r0] + ldrh r7, [r4] + adds r3, r0, #0 +_0809449E: + ldrh r2, [r6, #0x24] + movs r0, #0x24 + ldrsh r1, [r6, r0] + movs r0, #0x80 + lsls r0, r0, #6 + cmp r1, r0 + ble _080944B2 + ldr r1, _080944D0 @ =0xFFFFFF00 + adds r0, r2, r1 + strh r0, [r6, #0x24] +_080944B2: + ldr r0, [r6, #0x7c] + subs r0, #1 + str r0, [r6, #0x7c] + movs r1, #1 + rsbs r1, r1, #0 + cmp r0, r1 + bne _080944D4 + movs r0, #0 + strh r0, [r5] + strh r0, [r3] + movs r0, #3 + strb r0, [r6, #0xc] + movs r0, #0x78 + str r0, [r6, #0x7c] + b _08094500 + .align 2, 0 +_080944D0: .4byte 0xFFFFFF00 +_080944D4: + adds r5, r6, #0 + adds r5, #0x82 + movs r2, #0 + ldrsh r1, [r5, r2] + ldrb r3, [r6, #0xe] + adds r0, r6, #0 + movs r2, #0x20 + bl sub_0806FCF4 + movs r0, #0 + ldrsh r1, [r4, r0] + ldrb r3, [r6, #0xf] + adds r0, r6, #0 + movs r2, #0x20 + bl sub_0806FCF4 + ldrh r1, [r5] + ldrh r2, [r4] + adds r0, r6, #0 + movs r3, #0 + bl sub_0805EC9C +_08094500: + ldr r5, [r6, #0x48] + cmp r5, #0 + beq _08094538 + movs r4, #0x80 + lsls r4, r4, #9 + adds r0, r4, #0 + mov r1, r8 + bl __divsi3 + lsrs r0, r0, #3 + strb r0, [r5, #6] + ldr r5, [r6, #0x48] + adds r0, r4, #0 + adds r1, r7, #0 + bl __divsi3 + lsrs r0, r0, #3 + strb r0, [r5, #7] + ldr r1, [r6, #0x48] + adds r0, r6, #0 + adds r0, #0x62 + ldrb r0, [r0] + strb r0, [r1] + ldr r1, [r6, #0x48] + adds r0, r6, #0 + adds r0, #0x63 + ldrb r0, [r0] + strb r0, [r1, #1] +_08094538: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_08094540 +sub_08094540: @ 0x08094540 + push {lr} + adds r3, r0, #0 + ldr r0, [r3, #0x7c] + subs r0, #1 + str r0, [r3, #0x7c] + movs r1, #1 + rsbs r1, r1, #0 + cmp r0, r1 + bne _0809455A + movs r0, #4 + strb r0, [r3, #0xc] + movs r0, #2 + str r0, [r3, #0x7c] +_0809455A: + adds r0, r3, #0 + adds r0, #0x82 + ldrh r1, [r0] + adds r0, #4 + ldrh r2, [r0] + adds r0, r3, #0 + movs r3, #0 + bl sub_0805EC9C + pop {pc} + .align 2, 0 + + thumb_func_start sub_08094570 +sub_08094570: @ 0x08094570 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r6, r0, #0 + adds r2, r6, #0 + adds r2, #0x82 + ldrh r1, [r2] + lsls r3, r1, #0x10 + movs r0, #0x80 + lsls r0, r0, #1 + cmp r1, r0 + beq _08094590 + asrs r3, r3, #0x10 + ldr r0, _080945B0 @ =0xFFFFFF00 + cmp r3, r0 + bne _080945BA +_08094590: + ldr r1, [r6, #0x7c] + cmp r1, #0 + bne _080945B4 + ldr r0, [r6, #0x50] + adds r0, #0x7c + strh r1, [r0] + ldr r0, [r6, #0x50] + adds r0, #0x79 + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08094622 + bl sub_0805E780 + b _08094622 + .align 2, 0 +_080945B0: .4byte 0xFFFFFF00 +_080945B4: + subs r0, r1, #1 + str r0, [r6, #0x7c] + b _08094622 +_080945BA: + cmp r3, #0 + bge _080945CC + subs r0, r1, #1 + strh r0, [r2] + movs r1, #0 + ldrsh r0, [r2, r1] + rsbs r0, r0, #0 + mov r8, r0 + b _080945D4 +_080945CC: + adds r0, r1, #1 + strh r0, [r2] + ldrh r2, [r2] + mov r8, r2 +_080945D4: + adds r0, r6, #0 + adds r0, #0x86 + ldrh r2, [r0] + movs r3, #0 + ldrsh r1, [r0, r3] + adds r4, r0, #0 + cmp r1, #0 + bge _080945F0 + subs r0, r2, #1 + strh r0, [r4] + movs r1, #0 + ldrsh r0, [r4, r1] + rsbs r7, r0, #0 + b _080945F6 +_080945F0: + adds r0, r2, #1 + strh r0, [r4] + ldrh r7, [r4] +_080945F6: + adds r5, r6, #0 + adds r5, #0x82 + movs r3, #0 + ldrsh r1, [r5, r3] + ldrb r3, [r6, #0xe] + adds r0, r6, #0 + movs r2, #0x20 + bl sub_0806FCF4 + movs r0, #0 + ldrsh r1, [r4, r0] + ldrb r3, [r6, #0xf] + adds r0, r6, #0 + movs r2, #0x20 + bl sub_0806FCF4 + ldrh r1, [r5] + ldrh r2, [r4] + adds r0, r6, #0 + movs r3, #0 + bl sub_0805EC9C +_08094622: + ldr r5, [r6, #0x48] + cmp r5, #0 + beq _0809465A + movs r4, #0x80 + lsls r4, r4, #9 + adds r0, r4, #0 + mov r1, r8 + bl __divsi3 + lsrs r0, r0, #3 + strb r0, [r5, #6] + ldr r5, [r6, #0x48] + adds r0, r4, #0 + adds r1, r7, #0 + bl __divsi3 + lsrs r0, r0, #3 + strb r0, [r5, #7] + ldr r1, [r6, #0x48] + adds r0, r6, #0 + adds r0, #0x62 + ldrb r0, [r0] + strb r0, [r1] + ldr r1, [r6, #0x48] + adds r0, r6, #0 + adds r0, #0x63 + ldrb r0, [r0] + strb r0, [r1, #1] +_0809465A: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_08094660 +sub_08094660: @ 0x08094660 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + adds r6, r0, #0 + ldr r0, [r6, #0x50] + adds r0, #0x62 + movs r7, #0 + ldrsb r7, [r0, r7] + cmp r7, #0 + bge _08094678 + rsbs r7, r7, #0 +_08094678: + lsls r7, r7, #1 + adds r0, r7, #0 + cmp r7, #0 + bge _08094682 + adds r0, #0xf +_08094682: + asrs r1, r0, #4 + ldr r0, [r6, #0x74] + cmp r0, r1 + bhs _08094700 + str r1, [r6, #0x74] + movs r1, #0x2e + ldrsh r0, [r6, r1] + subs r0, r0, r7 + adds r4, r0, #0 + subs r4, #0x40 + movs r1, #0x32 + ldrsh r0, [r6, r1] + subs r0, r0, r7 + adds r5, r0, #0 + subs r5, #0x40 + movs r0, #0x10 + mov sb, r0 + str r0, [r6, #0x78] + movs r1, #0 + mov r8, r1 + str r1, [r6, #0x7c] + adds r0, r6, #0 + adds r1, r4, #0 + adds r2, r5, #0 + bl sub_08094708 + mov r0, r8 + str r0, [r6, #0x78] + mov r1, sb + str r1, [r6, #0x7c] + adds r0, r6, #0 + adds r1, r4, #0 + adds r2, r5, #0 + bl sub_08094708 + movs r1, #0x2e + ldrsh r0, [r6, r1] + adds r0, r0, r7 + adds r4, r0, #0 + adds r4, #0x30 + movs r1, #0x32 + ldrsh r0, [r6, r1] + adds r0, r0, r7 + adds r5, r0, #0 + adds r5, #0x30 + movs r7, #0x10 + rsbs r7, r7, #0 + str r7, [r6, #0x78] + mov r0, r8 + str r0, [r6, #0x7c] + adds r0, r6, #0 + adds r1, r4, #0 + adds r2, r5, #0 + bl sub_08094708 + mov r1, r8 + str r1, [r6, #0x78] + str r7, [r6, #0x7c] + adds r0, r6, #0 + adds r1, r4, #0 + adds r2, r5, #0 + bl sub_08094708 +_08094700: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_08094708 +sub_08094708: @ 0x08094708 + push {r4, r5, r6, r7, lr} + sub sp, #8 + adds r7, r0, #0 + adds r6, r1, #0 + adds r5, r2, #0 + ldr r0, [r7, #0x74] + lsls r0, r0, #1 + adds r4, r0, #0 + adds r4, #8 + cmp r4, #0 + beq _08094752 + ldr r3, _08094758 @ =gRoomControls + movs r2, #0x3f +_08094722: + ldrh r0, [r3, #6] + subs r0, r6, r0 + lsrs r0, r0, #4 + ands r0, r2 + ldrh r1, [r3, #8] + subs r1, r5, r1 + lsrs r1, r1, #4 + ands r1, r2 + lsls r1, r1, #6 + orrs r0, r1 + movs r1, #2 + str r2, [sp] + str r3, [sp, #4] + bl sub_0807BA8C + ldr r0, [r7, #0x78] + adds r6, r6, r0 + ldr r0, [r7, #0x7c] + adds r5, r5, r0 + subs r4, #1 + ldr r2, [sp] + ldr r3, [sp, #4] + cmp r4, #0 + bne _08094722 +_08094752: + add sp, #8 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08094758: .4byte gRoomControls + + thumb_func_start sub_0809475C +sub_0809475C: @ 0x0809475C + push {lr} + ldr r2, _08094770 @ =gUnk_08122A10 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08094770: .4byte gUnk_08122A10 + + thumb_func_start sub_08094774 +sub_08094774: @ 0x08094774 + push {r4, r5, r6, lr} + adds r5, r0, #0 + movs r0, #1 + strb r0, [r5, #0xc] + ldrb r0, [r5, #0xa] + cmp r0, #8 + bls _08094784 + b _080948C6 +_08094784: + lsls r0, r0, #2 + ldr r1, _08094790 @ =_08094794 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08094790: .4byte _08094794 +_08094794: @ jump table + .4byte _080947B8 @ case 0 + .4byte _08094824 @ case 1 + .4byte _080948B0 @ case 2 + .4byte _080948C6 @ case 3 + .4byte _080948C6 @ case 4 + .4byte _080948C6 @ case 5 + .4byte _080948C6 @ case 6 + .4byte _080948C6 @ case 7 + .4byte _080948C6 @ case 8 +_080947B8: + adds r0, r5, #0 + movs r1, #0xb + movs r2, #0 + bl CreateFx + adds r6, r0, #0 + str r6, [r5, #0x54] + cmp r6, #0 + beq _080947EE + ldr r0, _0809480C @ =gLinkEntity + ldr r4, _08094810 @ =gUnk_08122A18 + ldrb r3, [r0, #0x14] + movs r1, #6 + ands r1, r3 + adds r1, r1, r4 + movs r2, #0 + ldrsb r2, [r1, r2] + lsls r2, r2, #0x10 + movs r1, #1 + orrs r1, r3 + adds r1, r1, r4 + movs r3, #0 + ldrsb r3, [r1, r3] + lsls r3, r3, #0x10 + adds r1, r6, #0 + bl PositionRelative +_080947EE: + ldr r0, [r5, #0x54] + adds r1, r5, #0 + bl CopyPosition + ldr r1, _08094814 @ =0x00004032 + ldr r2, _08094818 @ =0x00004033 + adds r0, r5, #0 + bl sub_08094980 + ldr r1, _0809481C @ =0x00004061 + ldr r2, _08094820 @ =0x00004022 + adds r0, r5, #0 + bl sub_08094980 + b _080948C6 + .align 2, 0 +_0809480C: .4byte gLinkEntity +_08094810: .4byte gUnk_08122A18 +_08094814: .4byte 0x00004032 +_08094818: .4byte 0x00004033 +_0809481C: .4byte 0x00004061 +_08094820: .4byte 0x00004022 +_08094824: + adds r0, r5, #0 + movs r1, #0x2b + movs r2, #0 + bl CreateFx + adds r6, r0, #0 + str r6, [r5, #0x54] + cmp r6, #0 + beq _0809485A + ldr r0, _08094898 @ =gLinkEntity + ldr r4, _0809489C @ =gUnk_08122A18 + ldrb r3, [r0, #0x14] + movs r1, #6 + ands r1, r3 + adds r1, r1, r4 + movs r2, #0 + ldrsb r2, [r1, r2] + lsls r2, r2, #0x10 + movs r1, #1 + orrs r1, r3 + adds r1, r1, r4 + movs r3, #0 + ldrsb r3, [r1, r3] + lsls r3, r3, #0x10 + adds r1, r6, #0 + bl PositionRelative +_0809485A: + ldrb r4, [r5, #0xb] + cmp r4, #0 + bne _080948C6 + ldr r0, [r5, #0x54] + adds r1, r5, #0 + bl CopyPosition + strb r4, [r5, #0xe] + adds r2, r5, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] + ldrb r1, [r5, #0x19] + movs r0, #0x3f + ands r0, r1 + strb r0, [r5, #0x19] + ldr r1, _080948A0 @ =0x0000403B + ldr r2, _080948A4 @ =0x0000403C + adds r0, r5, #0 + bl sub_08094980 + ldr r1, _080948A8 @ =0x00004061 + ldr r2, _080948AC @ =0x00004022 + adds r0, r5, #0 + bl sub_08094980 + b _080948CA + .align 2, 0 +_08094898: .4byte gLinkEntity +_0809489C: .4byte gUnk_08122A18 +_080948A0: .4byte 0x0000403B +_080948A4: .4byte 0x0000403C +_080948A8: .4byte 0x00004061 +_080948AC: .4byte 0x00004022 +_080948B0: + ldr r0, _080948CC @ =gLinkEntity + movs r1, #0x60 + movs r2, #0 + bl sub_080A2A20 + adds r1, r0, #0 + str r1, [r5, #0x54] + cmp r1, #0 + beq _080948C6 + movs r0, #1 + strb r0, [r1, #0xe] +_080948C6: + bl sub_0805E780 +_080948CA: + pop {r4, r5, r6, pc} + .align 2, 0 +_080948CC: .4byte gLinkEntity + + thumb_func_start sub_080948D0 +sub_080948D0: @ 0x080948D0 + push {lr} + ldr r2, _080948E4 @ =gUnk_08122A20 + ldrb r1, [r0, #0xa] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080948E4: .4byte gUnk_08122A20 + + thumb_func_start sub_080948E8 +sub_080948E8: @ 0x080948E8 + push {r4, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0xe] + cmp r1, #0x3b + bhi _08094978 + ldr r0, [r4, #0x34] + ldr r2, _0809495C @ =0xFFFFC000 + adds r0, r0, r2 + str r0, [r4, #0x34] + movs r0, #3 + ands r0, r1 + cmp r0, #0 + bne _08094970 + adds r0, r4, #0 + movs r1, #0x11 + movs r2, #0x40 + bl CreateFx + adds r3, r0, #0 + str r3, [r4, #0x54] + cmp r3, #0 + beq _08094970 + ldrb r1, [r4, #0x19] + lsrs r1, r1, #6 + lsls r1, r1, #6 + ldrb r2, [r3, #0x19] + movs r0, #0x3f + ands r0, r2 + orrs r0, r1 + strb r0, [r3, #0x19] + ldr r2, [r4, #0x54] + adds r0, r4, #0 + adds r0, #0x29 + ldrb r1, [r0] + lsls r1, r1, #0x1d + adds r2, #0x29 + lsrs r1, r1, #0x1d + ldrb r3, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r3 + orrs r0, r1 + strb r0, [r2] + bl Random + movs r1, #1 + ands r1, r0 + cmp r1, #0 + beq _08094960 + bl Random + ldr r2, [r4, #0x54] + movs r1, #0xf + ands r0, r1 + ldrh r1, [r2, #0x2e] + adds r0, r0, r1 + strh r0, [r2, #0x2e] + b _08094970 + .align 2, 0 +_0809495C: .4byte 0xFFFFC000 +_08094960: + bl Random + ldr r2, [r4, #0x54] + movs r1, #0xf + ands r0, r1 + ldrh r1, [r2, #0x2e] + subs r1, r1, r0 + strh r1, [r2, #0x2e] +_08094970: + ldrb r0, [r4, #0xe] + adds r0, #1 + strb r0, [r4, #0xe] + b _0809497C +_08094978: + bl sub_0805E780 +_0809497C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08094980 +sub_08094980: @ 0x08094980 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #8 + adds r6, r0, #0 + str r1, [sp] + str r2, [sp, #4] + movs r0, #0 + mov r8, r0 + ldr r1, _08094A04 @ =gRoomControls + mov sl, r1 + movs r2, #0x3f + mov sb, r2 + ldr r7, _08094A08 @ =gUnk_08122A28 +_080949A0: + movs r4, #0 + ldrsb r4, [r7, r4] + movs r5, #1 + ldrsb r5, [r7, r5] + adds r0, r6, #0 + adds r1, r4, #0 + adds r2, r5, #0 + bl sub_0800029C + ldr r3, [sp] + cmp r3, r0 + bne _080949EC + movs r0, #0x2e + ldrsh r1, [r6, r0] + adds r1, r1, r4 + mov r2, sl + ldrh r0, [r2, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + mov r3, sb + ands r1, r3 + movs r2, #0x32 + ldrsh r0, [r6, r2] + adds r0, r0, r5 + mov r3, sl + ldrh r2, [r3, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + mov r2, sb + ands r0, r2 + lsls r0, r0, #6 + orrs r1, r0 + adds r0, r6, #0 + adds r0, #0x38 + ldrb r2, [r0] + ldr r0, [sp, #4] + bl UpdateCollisionLayer +_080949EC: + adds r7, #2 + movs r3, #2 + add r8, r3 + mov r0, r8 + cmp r0, #9 + bls _080949A0 + add sp, #8 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08094A04: .4byte gRoomControls +_08094A08: .4byte gUnk_08122A28 + + thumb_func_start sub_08094A0C +sub_08094A0C: @ 0x08094A0C + push {lr} + adds r2, r0, #0 + ldrb r1, [r2, #0x10] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _08094A3E + ldrb r0, [r2, #0xc] + cmp r0, #0 + bne _08094A34 + movs r0, #1 + strb r0, [r2, #0xc] + ldr r0, _08094A30 @ =gUnk_080FD170 + str r0, [r2, #0x48] + adds r0, r2, #0 + bl sub_0807DD50 + b _08094A42 + .align 2, 0 +_08094A30: .4byte gUnk_080FD170 +_08094A34: + adds r0, r2, #0 + movs r1, #0 + bl sub_0807DD94 + b _08094A42 +_08094A3E: + movs r0, #1 + strb r0, [r2, #0xc] +_08094A42: + pop {pc} + + thumb_func_start sub_08094A44 +sub_08094A44: @ 0x08094A44 + push {lr} + ldr r2, _08094A58 @ =gUnk_08122A34 + ldrb r1, [r0, #0xa] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08094A58: .4byte gUnk_08122A34 + + thumb_func_start sub_08094A5C +sub_08094A5C: @ 0x08094A5C + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _08094A78 + adds r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + bl sub_0807DD64 + adds r0, r4, #0 + movs r1, #4 + bl UpdateSprite +_08094A78: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DDAC + adds r0, r4, #0 + bl sub_0807DDE4 + adds r0, r4, #0 + bl sub_08004274 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08094A90 +sub_08094A90: @ 0x08094A90 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _08094ACE + adds r0, #1 + strb r0, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #2 + strb r0, [r1] + adds r0, r4, #0 + bl UpdateSpriteOrderAndFlip + ldr r1, _08094AE4 @ =gUnk_08114F30 + ldrb r2, [r4, #0x19] + lsrs r0, r2, #6 + adds r0, r0, r1 + ldrb r1, [r0] + lsls r1, r1, #6 + movs r0, #0x3f + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x19] + adds r0, r4, #0 + movs r1, #0 + bl LoadAnimation + adds r0, r4, #0 + bl sub_0807DD64 +_08094ACE: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DDAC + adds r0, r4, #0 + bl sub_0807DDE4 + adds r0, r4, #0 + bl sub_080042B8 + pop {r4, pc} + .align 2, 0 +_08094AE4: .4byte gUnk_08114F30 + + thumb_func_start sub_08094AE8 +sub_08094AE8: @ 0x08094AE8 + push {r4, r5, lr} + adds r5, r1, #0 + movs r0, #0x6a + movs r1, #1 + movs r2, #0 + bl CreateObject + adds r4, r0, #0 + cmp r4, #0 + beq _08094B08 + ldr r1, [r5, #4] + bl sub_0807DAD0 + adds r1, r4, #0 + adds r1, #0x84 + str r0, [r1] +_08094B08: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08094B0C +sub_08094B0C: @ 0x08094B0C + push {lr} + adds r2, r0, #0 + ldrh r0, [r2, #0x36] + subs r0, #1 + movs r3, #0 + strh r0, [r2, #0x36] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r1, #0x20 + rsbs r1, r1, #0 + cmp r0, r1 + bgt _08094B30 + ldr r0, _08094B2C @ =0x0000FFE0 + strh r0, [r2, #0x36] + b _08094B34 + .align 2, 0 +_08094B2C: .4byte 0x0000FFE0 +_08094B30: + ldr r0, _08094B38 @ =gUnk_02033280 + strb r3, [r0, #6] +_08094B34: + pop {pc} + .align 2, 0 +_08094B38: .4byte gUnk_02033280 + + thumb_func_start sub_08094B3C +sub_08094B3C: @ 0x08094B3C + push {lr} + adds r2, r0, #0 + ldr r0, [r2, #0x34] + movs r1, #0x80 + lsls r1, r1, #8 + adds r0, r0, r1 + str r0, [r2, #0x34] + movs r0, #0x36 + ldrsh r1, [r2, r0] + movs r0, #0xd + rsbs r0, r0, #0 + cmp r1, r0 + blt _08094B60 + ldr r0, _08094B5C @ =0x0000FFF3 + strh r0, [r2, #0x36] + b _08094B66 + .align 2, 0 +_08094B5C: .4byte 0x0000FFF3 +_08094B60: + ldr r1, _08094B68 @ =gUnk_02033280 + movs r0, #0 + strb r0, [r1, #6] +_08094B66: + pop {pc} + .align 2, 0 +_08094B68: .4byte gUnk_02033280 + + thumb_func_start sub_08094B6C +sub_08094B6C: @ 0x08094B6C + adds r0, #0x29 + ldrb r2, [r0] + movs r1, #0x39 + rsbs r1, r1, #0 + ands r1, r2 + movs r2, #0x18 + orrs r1, r2 + strb r1, [r0] + bx lr + .align 2, 0 + + thumb_func_start sub_08094B80 +sub_08094B80: @ 0x08094B80 + adds r0, #0x29 + ldrb r2, [r0] + movs r1, #0x39 + rsbs r1, r1, #0 + ands r1, r2 + movs r2, #0x10 + orrs r1, r2 + strb r1, [r0] + bx lr + .align 2, 0 + + thumb_func_start sub_08094B94 +sub_08094B94: @ 0x08094B94 + push {r4, lr} + movs r0, #0x6a + movs r1, #0x22 + movs r2, #0 + bl CreateObject + adds r4, r0, #0 + cmp r4, #0 + beq _08094BD2 + ldr r0, _08094BD4 @ =gLinkEntity + adds r1, r4, #0 + bl CopyPosition + ldr r0, _08094BD8 @ =0x0000FFD0 + strh r0, [r4, #0x36] + ldr r1, _08094BDC @ =gUnk_0800AEDC + adds r0, r4, #0 + bl sub_0807DAD0 + adds r1, r4, #0 + adds r1, #0x84 + str r0, [r1] + adds r0, r4, #0 + bl sub_080A29BC + ldrh r0, [r4, #0x36] + adds r0, #0x10 + strh r0, [r4, #0x36] + ldrh r0, [r4, #0x32] + adds r0, #1 + strh r0, [r4, #0x32] +_08094BD2: + pop {r4, pc} + .align 2, 0 +_08094BD4: .4byte gLinkEntity +_08094BD8: .4byte 0x0000FFD0 +_08094BDC: .4byte gUnk_0800AEDC + + thumb_func_start sub_08094BE0 +sub_08094BE0: @ 0x08094BE0 + push {r4, lr} + sub sp, #4 + movs r0, #0 + str r0, [sp] + movs r0, #6 + movs r1, #0x6a + movs r2, #6 + movs r3, #0x22 + bl sub_0805EB2C + adds r4, r0, #0 + cmp r4, #0 + beq _08094C22 + ldr r0, _08094C28 @ =gLinkEntity + adds r1, r4, #0 + bl CopyPosition + ldr r0, _08094C2C @ =0x0000FFF4 + strh r0, [r4, #0x36] + ldrh r0, [r4, #0x32] + adds r0, #1 + strh r0, [r4, #0x32] + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #2 + strb r0, [r1] + adds r0, r4, #0 + bl UpdateSpriteOrderAndFlip + adds r0, r4, #0 + movs r1, #1 + bl LoadAnimation +_08094C22: + add sp, #4 + pop {r4, pc} + .align 2, 0 +_08094C28: .4byte gLinkEntity +_08094C2C: .4byte 0x0000FFF4 + + thumb_func_start sub_08094C30 +sub_08094C30: @ 0x08094C30 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r5, [r4, #0x50] + cmp r5, #0 + beq _08094C40 + ldr r0, [r5, #4] + cmp r0, #0 + bne _08094C44 +_08094C40: + bl sub_0805E780 +_08094C44: + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _08094C74 + adds r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #2 + bl sub_0805E3A0 + ldr r1, _08094C84 @ =gUnk_08114F30 + ldrb r0, [r5, #0x19] + lsrs r0, r0, #6 + adds r0, r0, r1 + ldrb r1, [r0] + lsls r1, r1, #6 + ldrb r2, [r4, #0x19] + movs r0, #0x3f + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x19] + adds r0, r4, #0 + movs r1, #1 + bl LoadAnimation +_08094C74: + adds r0, r5, #0 + adds r1, r4, #0 + bl CopyPosition + adds r0, r4, #0 + bl sub_080042B8 + pop {r4, r5, pc} + .align 2, 0 +_08094C84: .4byte gUnk_08114F30 + + thumb_func_start sub_08094C88 +sub_08094C88: @ 0x08094C88 + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r1, [r5, #0xc] + cmp r1, #0 + beq _08094CA0 + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08094CCC + bl sub_0805E780 + b _08094CDA +_08094CA0: + adds r0, r1, #1 + strb r0, [r5, #0xc] + ldrb r1, [r5, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r5, #0x18] + adds r0, r5, #0 + movs r1, #3 + bl sub_0805E3A0 + ldrb r0, [r5, #0xb] + cmp r0, #0x43 + bgt _08094CCC + cmp r0, #0x40 + blt _08094CCC + adds r0, r5, #0 + adds r1, r5, #0 + bl sub_0806FAD8 +_08094CCC: + ldrb r4, [r5, #0xa] + ldrb r0, [r5, #0xb] + strb r0, [r5, #0xa] + adds r0, r5, #0 + bl sub_08080CB4 + strb r4, [r5, #0xa] +_08094CDA: + pop {r4, r5, pc} + + thumb_func_start sub_08094CDC +sub_08094CDC: @ 0x08094CDC + push {lr} + movs r0, #0x6a + movs r1, #3 + movs r2, #0x62 + bl CreateObject + adds r2, r0, #0 + cmp r2, #0 + beq _08094D0A + ldr r1, _08094D0C @ =gRoomControls + ldrh r0, [r1, #6] + adds r0, #0xe0 + strh r0, [r2, #0x2e] + movs r3, #0x96 + lsls r3, r3, #2 + adds r0, r3, #0 + ldrh r1, [r1, #8] + adds r0, r0, r1 + strh r0, [r2, #0x32] + movs r0, #0xa2 + lsls r0, r0, #1 + bl PlaySFX +_08094D0A: + pop {pc} + .align 2, 0 +_08094D0C: .4byte gRoomControls + + thumb_func_start sub_08094D10 +sub_08094D10: @ 0x08094D10 + push {lr} + sub sp, #4 + movs r0, #0x62 + str r0, [sp] + movs r0, #6 + movs r1, #0x6a + movs r2, #6 + movs r3, #3 + bl sub_0805EB2C + adds r1, r0, #0 + cmp r1, #0 + beq _08094D2E + movs r0, #0xff + strb r0, [r1, #0xc] +_08094D2E: + add sp, #4 + pop {pc} + .align 2, 0 + + thumb_func_start sub_08094D34 +sub_08094D34: @ 0x08094D34 + push {lr} + movs r0, #0x6a + movs r1, #0x15 + movs r2, #0xd + bl CreateObject + adds r2, r0, #0 + cmp r2, #0 + beq _08094D68 + ldr r1, _08094D6C @ =gRoomControls + movs r3, #0x80 + lsls r3, r3, #1 + adds r0, r3, #0 + ldrh r3, [r1, #6] + adds r0, r0, r3 + strh r0, [r2, #0x2e] + movs r3, #0x96 + lsls r3, r3, #2 + adds r0, r3, #0 + ldrh r1, [r1, #8] + adds r0, r0, r1 + strh r0, [r2, #0x32] + movs r0, #0xa2 + lsls r0, r0, #1 + bl PlaySFX +_08094D68: + pop {pc} + .align 2, 0 +_08094D6C: .4byte gRoomControls + + thumb_func_start sub_08094D70 +sub_08094D70: @ 0x08094D70 + push {lr} + sub sp, #4 + movs r0, #0xd + str r0, [sp] + movs r0, #6 + movs r1, #0x6a + movs r2, #6 + movs r3, #0x15 + bl sub_0805EB2C + adds r1, r0, #0 + cmp r1, #0 + beq _08094D8E + movs r0, #0xff + strb r0, [r1, #0xc] +_08094D8E: + add sp, #4 + pop {pc} + .align 2, 0 + + thumb_func_start sub_08094D94 +sub_08094D94: @ 0x08094D94 + push {r4, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0xc] + cmp r1, #0 + beq _08094DAC + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08094DCE + bl sub_0805E780 + b _08094DD4 +_08094DAC: + adds r0, r1, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + adds r0, r4, #0 + movs r1, #3 + bl sub_0805E3A0 + adds r0, r4, #0 + movs r1, #0 + bl LoadAnimation +_08094DCE: + adds r0, r4, #0 + bl sub_080042B8 +_08094DD4: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08094DD8 +sub_08094DD8: @ 0x08094DD8 + push {lr} + movs r0, #0x6a + movs r1, #4 + movs r2, #0 + bl CreateObject + adds r2, r0, #0 + cmp r2, #0 + beq _08094E06 + ldr r1, _08094E08 @ =gRoomControls + ldrh r0, [r1, #6] + adds r0, #0xf0 + strh r0, [r2, #0x2e] + movs r3, #0x96 + lsls r3, r3, #2 + adds r0, r3, #0 + ldrh r1, [r1, #8] + adds r0, r0, r1 + strh r0, [r2, #0x32] + movs r0, #0xa2 + lsls r0, r0, #1 + bl PlaySFX +_08094E06: + pop {pc} + .align 2, 0 +_08094E08: .4byte gRoomControls + + thumb_func_start sub_08094E0C +sub_08094E0C: @ 0x08094E0C + push {lr} + sub sp, #4 + movs r0, #0 + str r0, [sp] + movs r0, #6 + movs r1, #0x6a + movs r2, #6 + movs r3, #4 + bl sub_0805EB2C + adds r1, r0, #0 + cmp r1, #0 + beq _08094E2A + movs r0, #0xff + strb r0, [r1, #0xc] +_08094E2A: + add sp, #4 + pop {pc} + .align 2, 0 + + thumb_func_start sub_08094E30 +sub_08094E30: @ 0x08094E30 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xb] + cmp r0, #0 + bne _08094E88 + ldr r0, _08094E80 @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #0x1f + ands r0, r1 + cmp r0, #0 + beq _08094E48 + b _08094F94 +_08094E48: + movs r0, #0x6a + movs r1, #5 + movs r2, #1 + bl CreateObject + adds r5, r0, #0 + cmp r5, #0 + bne _08094E5A + b _08094F94 +_08094E5A: + bl Random + ldr r4, _08094E84 @ =gRoomControls + movs r1, #0xf0 + bl __modsi3 + ldrh r1, [r4, #0xa] + adds r1, r1, r0 + strh r1, [r5, #0x2e] + bl Random + movs r1, #0xa0 + bl __modsi3 + ldrh r1, [r4, #0xc] + adds r1, r1, r0 + strh r1, [r5, #0x32] + b _08094F94 + .align 2, 0 +_08094E80: .4byte gUnk_030010A0 +_08094E84: .4byte gRoomControls +_08094E88: + cmp r0, #1 + bne _08094F44 + ldrb r1, [r4, #0xc] + cmp r1, #1 + beq _08094ED4 + cmp r1, #1 + bgt _08094E9C + cmp r1, #0 + beq _08094EA6 + b _08094F94 +_08094E9C: + cmp r1, #2 + beq _08094F08 + cmp r1, #3 + beq _08094F22 + b _08094F94 +_08094EA6: + strb r0, [r4, #0xc] + ldr r0, _08094ED0 @ =0xFF600000 + str r0, [r4, #0x34] + str r1, [r4, #0x20] + adds r0, r4, #0 + movs r1, #6 + bl sub_0805E3A0 + adds r0, r4, #0 + movs r1, #0 + bl UpdateSprite + adds r0, r4, #0 + bl sub_080002B8 + cmp r0, #0xd + bne _08094F94 + movs r0, #3 + strb r0, [r4, #0xc] + b _08094F94 + .align 2, 0 +_08094ED0: .4byte 0xFF600000 +_08094ED4: + ldr r1, [r4, #0x34] + ldr r0, [r4, #0x20] + subs r1, r1, r0 + str r1, [r4, #0x34] + ldr r2, _08094F04 @ =0xFFFFE000 + adds r0, r0, r2 + str r0, [r4, #0x20] + cmp r1, #0 + ble _08094F94 + ldrb r0, [r4, #0xc] + adds r0, #1 + movs r1, #0 + strb r0, [r4, #0xc] + str r1, [r4, #0x34] + str r1, [r4, #0x20] + adds r0, r4, #0 + movs r1, #1 + bl UpdateSprite + movs r0, #0xbf + lsls r0, r0, #1 + bl sub_08004488 + b _08094F94 + .align 2, 0 +_08094F04: .4byte 0xFFFFE000 +_08094F08: + adds r0, r4, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08094F94 + bl sub_0805E780 + b _08094F94 +_08094F22: + ldr r0, [r4, #0x34] + ldr r1, [r4, #0x20] + subs r0, r0, r1 + str r0, [r4, #0x34] + ldr r0, _08094F40 @ =0xFFFFE000 + adds r1, r1, r0 + str r1, [r4, #0x20] + adds r0, r4, #0 + bl sub_080040A8 + cmp r0, #0 + bne _08094F94 + bl sub_0805E780 + b _08094F94 + .align 2, 0 +_08094F40: .4byte 0xFFFFE000 +_08094F44: + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _08094F94 + adds r0, #1 + strb r0, [r4, #0xc] + ldrb r0, [r4, #0xe] + cmp r0, #1 + beq _08094F68 + cmp r0, #1 + bgt _08094F5E + cmp r0, #0 + beq _08094F7A + b _08094F94 +_08094F5E: + cmp r0, #2 + beq _08094F72 + cmp r0, #3 + beq _08094F84 + b _08094F94 +_08094F68: + adds r0, r4, #0 + movs r1, #2 + bl UpdateSprite + b _08094F94 +_08094F72: + ldrb r0, [r4, #0x18] + movs r1, #0x40 + orrs r0, r1 + strb r0, [r4, #0x18] +_08094F7A: + adds r0, r4, #0 + movs r1, #0 + bl UpdateSprite + b _08094F94 +_08094F84: + ldrb r0, [r4, #0x18] + movs r1, #0x40 + orrs r0, r1 + strb r0, [r4, #0x18] + adds r0, r4, #0 + movs r1, #2 + bl UpdateSprite +_08094F94: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08094F98 +sub_08094F98: @ 0x08094F98 + push {lr} + movs r0, #0x6a + movs r1, #5 + movs r2, #0 + bl CreateObject + pop {pc} + .align 2, 0 + + thumb_func_start sub_08094FA8 +sub_08094FA8: @ 0x08094FA8 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #4 + bhi _08095086 + lsls r0, r0, #2 + ldr r1, _08094FBC @ =_08094FC0 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08094FBC: .4byte _08094FC0 +_08094FC0: @ jump table + .4byte _08094FD4 @ case 0 + .4byte _08094FF0 @ case 1 + .4byte _08095024 @ case 2 + .4byte _08095040 @ case 3 + .4byte _08095070 @ case 4 +_08094FD4: + movs r1, #0 + movs r0, #1 + strb r0, [r4, #0xc] + strb r1, [r4, #0x1e] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #7 + orrs r0, r1 + strb r0, [r2] + adds r0, r4, #0 + bl sub_080787B4 + b _08095086 +_08094FF0: + adds r1, r4, #0 + adds r1, #0x39 + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #0 + beq _08095086 + movs r0, #0 + strb r0, [r1] + movs r0, #2 + strb r0, [r4, #0xc] + adds r0, r4, #0 + bl sub_080788E0 + ldr r0, _08095020 @ =gLinkState + movs r1, #0xc + strb r1, [r0, #0xc] + adds r0, #0x38 + movs r1, #0x36 + strb r1, [r0] + movs r0, #2 + bl sub_08078A90 + b _08095086 + .align 2, 0 +_08095020: .4byte gLinkState +_08095024: + movs r0, #0x36 + bl GetInventoryValue + cmp r0, #2 + bne _08095086 + movs r0, #3 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #7 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + b _08095086 +_08095040: + ldr r0, _0809506C @ =gLinkEntity + ldrb r0, [r0, #0xc] + cmp r0, #0xc + beq _08095086 + movs r0, #4 + strb r0, [r4, #0xc] + movs r0, #0x5b + bl GetProgressFlag + cmp r0, #0 + bne _08095086 + movs r0, #0x1c + movs r1, #0 + movs r2, #0 + bl sub_080A7C00 + movs r0, #0x5b + bl sub_0807CD04 + movs r0, #0x3c + strb r0, [r4, #0xe] + b _08095086 + .align 2, 0 +_0809506C: .4byte gLinkEntity +_08095070: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08095086 + movs r0, #5 + strb r0, [r4, #0xc] + movs r0, #1 + bl sub_08078A90 +_08095086: + pop {r4, pc} + + thumb_func_start sub_08095088 +sub_08095088: @ 0x08095088 + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xc] + cmp r0, #1 + beq _080950C8 + cmp r0, #1 + bgt _0809509C + cmp r0, #0 + beq _080950A2 + b _0809510A +_0809509C: + cmp r0, #2 + beq _080950F0 + b _0809510A +_080950A2: + movs r0, #0x5b + bl GetInventoryValue + cmp r0, #0 + beq _080950B0 + bl sub_0805E780 +_080950B0: + movs r0, #1 + strb r0, [r5, #0xc] + adds r2, r5, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #7 + orrs r0, r1 + strb r0, [r2] + adds r0, r5, #0 + bl sub_080787B4 + b _0809510A +_080950C8: + adds r1, r5, #0 + adds r1, #0x39 + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #0 + beq _0809510A + movs r0, #0 + strb r0, [r1] + movs r0, #2 + strb r0, [r5, #0xc] + adds r0, r5, #0 + bl sub_080788E0 + ldr r0, _080950EC @ =0x00001F1F + movs r1, #0 + bl sub_08078AA8 + b _0809510A + .align 2, 0 +_080950EC: .4byte 0x00001F1F +_080950F0: + ldr r0, _0809511C @ =gTextBox + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0 + bne _0809510A + movs r0, #0x5b + movs r1, #0 + movs r2, #0 + bl sub_080A7C00 + bl sub_0805E780 +_0809510A: + ldrb r4, [r5, #0xa] + movs r0, #0x5b + strb r0, [r5, #0xa] + adds r0, r5, #0 + bl sub_08080CB4 + strb r4, [r5, #0xa] + pop {r4, r5, pc} + .align 2, 0 +_0809511C: .4byte gTextBox + + thumb_func_start sub_08095120 +sub_08095120: @ 0x08095120 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0809514C + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #3 + bl sub_0805E3A0 + adds r0, r4, #0 + adds r1, r4, #0 + bl sub_0806FAD8 + adds r0, r4, #0 + bl sub_0807DD64 + adds r0, r4, #0 + movs r1, #2 + bl LoadAnimation +_0809514C: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DDAC + adds r0, r4, #0 + bl sub_0807DDE4 + adds r0, r4, #0 + bl sub_080042B8 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08095164 +sub_08095164: @ 0x08095164 + push {lr} + sub sp, #4 + movs r0, #0 + str r0, [sp] + movs r0, #6 + movs r1, #0x6a + movs r2, #6 + movs r3, #8 + bl sub_0805EB2C + cmp r0, #0 + beq _08095182 + movs r1, #3 + bl LoadAnimation +_08095182: + add sp, #4 + pop {pc} + .align 2, 0 + + thumb_func_start sub_08095188 +sub_08095188: @ 0x08095188 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _080951B4 + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #3 + bl sub_0805E3A0 + adds r0, r4, #0 + adds r1, r4, #0 + bl sub_0806FAD8 + adds r0, r4, #0 + bl sub_0807DD64 + adds r0, r4, #0 + movs r1, #0 + bl LoadAnimation +_080951B4: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DDAC + adds r0, r4, #0 + bl sub_0807DDE4 + pop {r4, pc} + + thumb_func_start sub_080951C4 +sub_080951C4: @ 0x080951C4 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _080951E8 + adds r0, #1 + strb r0, [r4, #0xc] + movs r1, #0 + ldr r0, _08095240 @ =0x0000FFF0 + strh r0, [r4, #0x36] + strb r1, [r4, #0xe] + adds r0, r4, #0 + bl sub_0807DD64 + adds r0, r4, #0 + movs r1, #3 + bl UpdateSprite +_080951E8: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DDAC + adds r0, r4, #0 + bl sub_0807DDE4 + adds r0, r4, #0 + bl sub_08004274 + movs r1, #0x36 + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _08095218 + str r0, [r4, #0x34] + str r0, [r4, #0x50] + ldrb r0, [r4, #0xe] + cmp r0, #0 + bne _08095218 + adds r0, #1 + strb r0, [r4, #0xe] + movs r0, #0xe6 + bl PlaySFX +_08095218: + ldr r3, [r4, #0x50] + cmp r3, #0 + beq _0809523C + ldrb r1, [r3, #0x18] + lsls r1, r1, #0x1e + lsrs r1, r1, #0x1e + ldrb r2, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x18] + ldrh r0, [r3, #0x2e] + adds r0, #0x10 + strh r0, [r4, #0x2e] + ldrh r0, [r3, #0x32] + subs r0, #0x10 + strh r0, [r4, #0x32] +_0809523C: + pop {r4, pc} + .align 2, 0 +_08095240: .4byte 0x0000FFF0 + + thumb_func_start sub_08095244 +sub_08095244: @ 0x08095244 + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xa] + cmp r0, #0 + bne _0809527C + movs r0, #0x6a + movs r1, #0xa + movs r2, #0 + bl CreateObject + adds r4, r0, #0 + cmp r4, #0 + beq _0809527C + str r5, [r4, #0x50] + movs r2, #0x80 + lsls r2, r2, #0xd + ldr r3, _08095280 @ =0xFFF00000 + adds r0, r5, #0 + adds r1, r4, #0 + bl PositionRelative + ldr r1, _08095284 @ =gUnk_0801183C + adds r0, r4, #0 + bl sub_0807DAD0 + adds r1, r4, #0 + adds r1, #0x84 + str r0, [r1] +_0809527C: + pop {r4, r5, pc} + .align 2, 0 +_08095280: .4byte 0xFFF00000 +_08095284: .4byte gUnk_0801183C + + thumb_func_start sub_08095288 +sub_08095288: @ 0x08095288 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + adds r1, r0, #0 + cmp r1, #0 + bne _080952AA + adds r0, #1 + strb r0, [r4, #0xc] + strb r1, [r4, #0xd] + adds r0, r4, #0 + movs r1, #3 + bl sub_0805E3A0 + adds r0, r4, #0 + movs r1, #0 + bl LoadAnimation +_080952AA: + ldrb r0, [r4, #0xd] + cmp r0, #0 + beq _080952F0 + movs r1, #0xc0 + lsls r1, r1, #5 + adds r0, r4, #0 + bl sub_080044EC + cmp r0, #1 + bhi _080952D4 + movs r0, #0 + strb r0, [r4, #0xd] + movs r2, #0x80 + lsls r2, r2, #1 + movs r3, #0xc0 + lsls r3, r3, #8 + adds r0, r4, #0 + adds r1, r2, #0 + bl sub_0805EC9C + b _080952F0 +_080952D4: + movs r2, #0x80 + lsls r2, r2, #1 + ldrb r3, [r4, #0xe] + lsls r3, r3, #8 + adds r0, r4, #0 + adds r1, r2, #0 + bl sub_0805EC9C + ldrb r0, [r4, #0xe] + adds r0, #0xa + strb r0, [r4, #0xe] + adds r0, r4, #0 + bl sub_0806F69C +_080952F0: + ldr r3, [r4, #0x54] + cmp r3, #0 + beq _080952FE + adds r0, r3, #0 + adds r1, r4, #0 + bl CopyPosition +_080952FE: + adds r0, r4, #0 + bl sub_080042B8 + ldr r3, [r4, #0x50] + cmp r3, #0 + beq _08095328 + ldrb r1, [r3, #0x18] + lsls r1, r1, #0x1e + lsrs r1, r1, #0x1e + ldrb r2, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x18] + ldr r0, [r3, #4] + cmp r0, #0 + bne _0809532C + bl sub_0805E780 + b _0809532C +_08095328: + bl sub_0805E780 +_0809532C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08095330 +sub_08095330: @ 0x08095330 + push {r4, r5, lr} + adds r5, r0, #0 + movs r0, #0x6a + movs r1, #0xb + movs r2, #0 + bl CreateObject + adds r4, r0, #0 + cmp r4, #0 + beq _0809535E + str r4, [r5, #0x54] + str r5, [r4, #0x54] + str r5, [r4, #0x50] + adds r0, r5, #0 + adds r1, r4, #0 + bl CopyPosition + ldr r0, _08095360 @ =0x0000FFF0 + strh r0, [r4, #0x36] + adds r0, r4, #0 + adds r1, r4, #0 + bl sub_0806FAB0 +_0809535E: + pop {r4, r5, pc} + .align 2, 0 +_08095360: .4byte 0x0000FFF0 + + thumb_func_start sub_08095364 +sub_08095364: @ 0x08095364 + push {r4, r5, r6, lr} + ldr r6, [r0, #0x54] + cmp r6, #0 + beq _0809539E + movs r5, #0 + movs r0, #2 + strb r0, [r6, #0x1e] + adds r0, r6, #0 + adds r0, #0x38 + movs r4, #1 + strb r4, [r0] + adds r0, r6, #0 + bl UpdateSpriteOrderAndFlip + str r5, [r6, #0x54] + strb r4, [r6, #0xd] + ldr r0, _080953A0 @ =0x0000FFF0 + strh r0, [r6, #0x36] + movs r0, #7 + strb r0, [r6, #0x15] + movs r0, #0xc0 + lsls r0, r0, #0xa + str r0, [r6, #0x20] + movs r0, #0x80 + strh r0, [r6, #0x24] + adds r0, r6, #0 + movs r1, #1 + bl LoadAnimation +_0809539E: + pop {r4, r5, r6, pc} + .align 2, 0 +_080953A0: .4byte 0x0000FFF0 + + thumb_func_start sub_080953A4 +sub_080953A4: @ 0x080953A4 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _080953E0 + adds r0, #1 + strb r0, [r4, #0xc] + ldr r0, _08095414 @ =0x0000FFF0 + strh r0, [r4, #0x36] + adds r0, r4, #0 + movs r1, #2 + bl sub_0805E3A0 + ldr r1, _08095418 @ =gUnk_08114F30 + ldrb r2, [r4, #0x19] + lsrs r0, r2, #6 + adds r0, r0, r1 + ldrb r1, [r0] + lsls r1, r1, #6 + movs r0, #0x3f + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x19] + adds r0, r4, #0 + adds r1, r4, #0 + bl sub_0806FAB0 + adds r0, r4, #0 + bl sub_0807DD64 +_080953E0: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DDAC + adds r0, r4, #0 + bl sub_0807DDE4 + adds r0, r4, #0 + bl sub_08004274 + ldrb r0, [r4, #0xa] + cmp r0, #0xd + bne _08095412 + adds r0, r4, #0 + adds r0, #0x5b + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + ldr r1, _0809541C @ =0x00000139 + cmp r0, #0 + beq _0809540C + movs r1, #0 +_0809540C: + adds r0, r4, #0 + bl sub_0801D2B4 +_08095412: + pop {r4, pc} + .align 2, 0 +_08095414: .4byte 0x0000FFF0 +_08095418: .4byte gUnk_08114F30 +_0809541C: .4byte 0x00000139 + + thumb_func_start sub_08095420 +sub_08095420: @ 0x08095420 + push {r4, r5, r6, lr} + adds r5, r0, #0 + adds r6, r1, #0 + movs r0, #0x6a + movs r1, #0xc + movs r2, #0 + bl CreateObject + adds r4, r0, #0 + cmp r4, #0 + beq _08095450 + ldr r3, _08095454 @ =0xFFF00000 + adds r0, r5, #0 + adds r1, r4, #0 + movs r2, #0 + bl PositionRelative + ldr r1, [r6, #4] + adds r0, r4, #0 + bl sub_0807DAD0 + adds r1, r4, #0 + adds r1, #0x84 + str r0, [r1] +_08095450: + pop {r4, r5, r6, pc} + .align 2, 0 +_08095454: .4byte 0xFFF00000 + + thumb_func_start nullsub_527 +nullsub_527: @ 0x08095458 + bx lr + .align 2, 0 + + thumb_func_start sub_0809545C +sub_0809545C: @ 0x0809545C + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r6, r1, #0 + movs r0, #0x6a + movs r1, #0xd + movs r2, #0 + bl CreateObject + adds r5, r0, #0 + cmp r5, #0 + beq _080954A6 + ldr r3, _080954A8 @ =0xFFF00000 + adds r0, r4, #0 + adds r1, r5, #0 + movs r2, #0 + bl PositionRelative + ldr r1, [r6, #4] + adds r0, r5, #0 + bl sub_0807DAD0 + adds r1, r5, #0 + adds r1, #0x84 + str r0, [r1] + movs r0, #0x6a + movs r1, #2 + movs r2, #0 + bl CreateObject + adds r4, r0, #0 + cmp r4, #0 + beq _080954A6 + adds r0, r5, #0 + adds r1, r4, #0 + bl CopyPosition + str r5, [r4, #0x50] +_080954A6: + pop {r4, r5, r6, pc} + .align 2, 0 +_080954A8: .4byte 0xFFF00000 + + thumb_func_start sub_080954AC +sub_080954AC: @ 0x080954AC + push {r4, r5, lr} + adds r5, r0, #0 + movs r0, #0x6a + movs r1, #0x1a + movs r2, #0 + bl CreateObject + adds r4, r0, #0 + cmp r4, #0 + beq _080954D6 + adds r0, r5, #0 + adds r1, r4, #0 + bl CopyPosition + ldr r1, _080954D8 @ =gUnk_08015B14 + adds r0, r4, #0 + bl sub_0807DAD0 + adds r1, r4, #0 + adds r1, #0x84 + str r0, [r1] +_080954D6: + pop {r4, r5, pc} + .align 2, 0 +_080954D8: .4byte gUnk_08015B14 + + thumb_func_start sub_080954DC +sub_080954DC: @ 0x080954DC + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #1 + beq _08095598 + cmp r0, #1 + bgt _080954F0 + cmp r0, #0 + beq _080954FC + b _0809562C +_080954F0: + cmp r0, #2 + beq _080955B8 + cmp r0, #3 + bne _080954FA + b _08095620 +_080954FA: + b _0809562C +_080954FC: + ldrb r0, [r4, #0xe] + adds r5, r0, #0 + cmp r5, #0 + beq _0809550A + subs r0, #1 + strb r0, [r4, #0xe] + b _0809562C +_0809550A: + movs r0, #1 + movs r2, #1 + strb r0, [r4, #0xc] + strb r5, [r4, #0xd] + ldrb r1, [r4, #0x18] + subs r0, #5 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x18] + strh r5, [r4, #0x36] + adds r3, r4, #0 + adds r3, #0x29 + ldrb r1, [r3] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + orrs r0, r2 + strb r0, [r3] + ldrh r1, [r4, #0x2e] + adds r0, r4, #0 + adds r0, #0x68 + strh r1, [r0] + ldrh r0, [r4, #0x32] + adds r1, r4, #0 + adds r1, #0x6a + strh r0, [r1] + adds r0, r4, #0 + adds r0, #0x6c + strh r5, [r0] + ldr r1, _08095590 @ =gUnk_08122AE0 + ldrb r0, [r4, #0xb] + adds r0, r0, r1 + ldrb r0, [r0] + adds r5, r4, #0 + adds r5, #0x6e + strb r0, [r5] + ldr r1, _08095594 @ =gUnk_08122AE8 + ldrb r0, [r4, #0xb] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r1, [r0] + adds r0, r4, #0 + bl sub_0801D2B4 + adds r0, r4, #0 + bl sub_0807DD64 + ldrb r1, [r4, #0xb] + adds r1, #2 + adds r0, r4, #0 + bl UpdateSprite + adds r0, r4, #0 + bl sub_08095754 + bl Random + movs r1, #6 + bl __modsi3 + movs r1, #0xde + lsls r1, r1, #1 + adds r0, r0, r1 + bl PlaySFX + adds r1, r5, #0 + b _08095630 + .align 2, 0 +_08095590: .4byte gUnk_08122AE0 +_08095594: .4byte gUnk_08122AE8 +_08095598: + ldrh r0, [r4, #0x36] + subs r0, #1 + strh r0, [r4, #0x36] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r2, #0x10 + rsbs r2, r2, #0 + adds r1, r4, #0 + adds r1, #0x6e + cmp r0, r2 + bgt _08095630 + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + strh r2, [r4, #0x36] + b _08095630 +_080955B8: + adds r5, r4, #0 + adds r5, #0x6c + ldrh r0, [r5] + adds r0, #1 + strh r0, [r5] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0x40 + bls _080955CE + movs r0, #0x40 + strh r0, [r5] +_080955CE: + ldr r3, _0809561C @ =gUnk_080C9160 + movs r2, #0x6e + adds r2, r2, r4 + mov ip, r2 + ldrb r0, [r2] + adds r0, #0x40 + lsls r0, r0, #1 + adds r0, r0, r3 + movs r2, #0 + ldrsh r1, [r0, r2] + ldrh r0, [r5] + lsls r0, r0, #8 + adds r2, r1, #0 + muls r2, r0, r2 + asrs r2, r2, #0x10 + strh r2, [r4, #0x2e] + mov r1, ip + ldrb r0, [r1] + lsls r0, r0, #1 + adds r0, r0, r3 + movs r3, #0 + ldrsh r1, [r0, r3] + ldrh r0, [r5] + lsls r0, r0, #7 + muls r1, r0, r1 + asrs r1, r1, #0x10 + strh r1, [r4, #0x32] + adds r0, r4, #0 + adds r0, #0x68 + ldrh r0, [r0] + adds r2, r2, r0 + strh r2, [r4, #0x2e] + adds r0, r4, #0 + adds r0, #0x6a + ldrh r0, [r0] + adds r1, r1, r0 + strh r1, [r4, #0x32] + mov r1, ip + b _08095630 + .align 2, 0 +_0809561C: .4byte gUnk_080C9160 +_08095620: + movs r0, #0x24 + ldrsh r1, [r4, r0] + ldrb r2, [r4, #0x15] + adds r0, r4, #0 + bl sub_0806F62C +_0809562C: + adds r1, r4, #0 + adds r1, #0x6e +_08095630: + ldrb r0, [r1] + adds r0, #4 + strb r0, [r1] + ldrb r0, [r4, #0xd] + cmp r0, #0 + beq _0809564A + adds r0, r4, #0 + bl sub_080040A8 + cmp r0, #0 + bne _0809564A + bl sub_0805E780 +_0809564A: + ldrb r1, [r4, #0x15] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0809565E + ldrb r1, [r4, #0x18] + movs r0, #0x41 + rsbs r0, r0, #0 + ands r0, r1 + b _08095664 +_0809565E: + ldrb r0, [r4, #0x18] + movs r1, #0x40 + orrs r0, r1 +_08095664: + strb r0, [r4, #0x18] + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DDAC + adds r0, r4, #0 + bl sub_0807DDE4 + adds r0, r4, #0 + bl sub_08004274 + pop {r4, r5, pc} + + thumb_func_start sub_0809567C +sub_0809567C: @ 0x0809567C + push {r4, lr} + adds r4, r0, #0 + movs r0, #3 + strb r0, [r4, #0xc] + movs r0, #1 + strb r0, [r4, #0xd] + movs r0, #0x80 + lsls r0, r0, #3 + strh r0, [r4, #0x24] + adds r0, r4, #0 + adds r0, #0x68 + movs r2, #0 + ldrsh r1, [r0, r2] + lsls r1, r1, #0x10 + ldr r0, [r4, #0x2c] + subs r0, r0, r1 + adds r1, r4, #0 + adds r1, #0x6a + movs r3, #0 + ldrsh r2, [r1, r3] + lsls r2, r2, #0x10 + ldr r1, [r4, #0x30] + subs r1, r1, r2 + bl sub_080045DA + strb r0, [r4, #0x15] + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080956B4 +sub_080956B4: @ 0x080956B4 + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xc] + cmp r0, #0 + bne _080956E2 + adds r0, #1 + strb r0, [r5, #0xc] + adds r0, r5, #0 + movs r1, #0 + bl UpdateSprite + adds r4, r5, #0 + adds r4, #0x68 + ldrh r2, [r5, #0x2e] + ldrh r1, [r5, #0x32] + movs r0, #7 +_080956D4: + strh r2, [r4] + adds r4, #2 + strh r1, [r4] + adds r4, #2 + subs r0, #1 + cmp r0, #0 + bge _080956D4 +_080956E2: + adds r0, r5, #0 + bl sub_08004274 + ldrb r0, [r5, #0xb] + ldr r1, _08095724 @ =gUnk_030010A0 + ldr r1, [r1] + adds r0, r0, r1 + movs r1, #0xf + ands r0, r1 + cmp r0, #0 + bne _080956FE + adds r0, r5, #0 + bl sub_080957B4 +_080956FE: + ldr r6, [r5, #0x50] + cmp r6, #0 + beq _08095728 + ldrb r1, [r6, #0x18] + lsls r1, r1, #0x1e + lsrs r1, r1, #0x1e + ldrb r2, [r5, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r5, #0x18] + ldr r0, [r6, #4] + cmp r0, #0 + bne _0809572C + bl sub_0805E780 + b _0809572C + .align 2, 0 +_08095724: .4byte gUnk_030010A0 +_08095728: + bl sub_0805E780 +_0809572C: + adds r4, r5, #0 + adds r4, #0x68 + adds r0, r5, #0 + adds r0, #0x6c + adds r1, r4, #0 + movs r2, #0x1c + bl sub_0801D66C + ldrh r0, [r4, #0x14] + strh r0, [r5, #0x2e] + ldrh r0, [r4, #0x16] + strh r0, [r5, #0x32] + ldrh r0, [r6, #0x36] + strh r0, [r5, #0x36] + ldrh r0, [r6, #0x2e] + strh r0, [r4, #0x1c] + ldrh r0, [r6, #0x32] + strh r0, [r4, #0x1e] + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_08095754 +sub_08095754: @ 0x08095754 + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r2, [r5, #0xb] + movs r0, #0x6a + movs r1, #0xf + bl CreateObject + adds r4, r0, #0 + cmp r4, #0 + beq _0809577A + str r5, [r4, #0x50] + adds r0, r5, #0 + adds r1, r4, #0 + bl CopyPosition + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FAD8 +_0809577A: + pop {r4, r5, pc} + + thumb_func_start sub_0809577C +sub_0809577C: @ 0x0809577C + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _08095796 + adds r0, #1 + strb r0, [r4, #0xc] + ldr r0, _080957B0 @ =0x0000FFF0 + strh r0, [r4, #0x36] + adds r0, r4, #0 + movs r1, #1 + bl UpdateSprite +_08095796: + adds r0, r4, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080957AE + bl sub_0805E780 +_080957AE: + pop {r4, pc} + .align 2, 0 +_080957B0: .4byte 0x0000FFF0 + + thumb_func_start sub_080957B4 +sub_080957B4: @ 0x080957B4 + push {r4, r5, lr} + adds r5, r0, #0 + movs r0, #0x6a + movs r1, #0x10 + movs r2, #0 + bl CreateObject + adds r4, r0, #0 + cmp r4, #0 + beq _080957DA + str r5, [r4, #0x50] + adds r0, r5, #0 + adds r1, r4, #0 + bl CopyPosition + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FAD8 +_080957DA: + pop {r4, r5, pc} + + thumb_func_start sub_080957DC +sub_080957DC: @ 0x080957DC + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _080957F8 + adds r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + bl sub_0807DD64 + adds r0, r4, #0 + movs r1, #0 + bl LoadAnimation +_080957F8: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DDAC + adds r0, r4, #0 + bl sub_0807DDE4 + adds r0, r4, #0 + bl sub_080042B8 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08095810 +sub_08095810: @ 0x08095810 + push {r4, r5, lr} + adds r5, r0, #0 + movs r0, #0x6a + movs r1, #0x11 + movs r2, #0 + bl CreateObject + adds r4, r0, #0 + cmp r4, #0 + beq _08095844 + str r5, [r4, #0x50] + adds r0, r5, #0 + adds r1, r4, #0 + bl CopyPosition + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FAB0 + ldr r1, _08095848 @ =gUnk_08011940 + adds r0, r4, #0 + bl sub_0807DAD0 + adds r1, r4, #0 + adds r1, #0x84 + str r0, [r1] +_08095844: + pop {r4, r5, pc} + .align 2, 0 +_08095848: .4byte gUnk_08011940 + + thumb_func_start sub_0809584C +sub_0809584C: @ 0x0809584C + push {r4, r5, lr} + adds r5, r0, #0 + adds r0, #0x45 + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0 + beq _0809586C + ldr r0, _080958D0 @ =gUnk_020342F8 + subs r1, #1 + bl sub_0801D5A8 + cmp r0, #0 + bne _0809586C + bl sub_0805E780 +_0809586C: + ldrb r0, [r5, #0xe] + cmp r0, #0 + beq _08095880 + ldrb r0, [r5, #0xb] + bl sub_0801E7F4 + cmp r0, #0 + beq _08095880 + bl sub_0805E780 +_08095880: + ldrb r0, [r5, #0xc] + cmp r0, #0 + bne _080958B2 + adds r0, #1 + strb r0, [r5, #0xc] + adds r1, r5, #0 + adds r1, #0x38 + movs r0, #2 + strb r0, [r1] + adds r0, r5, #0 + bl UpdateSpriteOrderAndFlip + ldr r1, _080958D4 @ =gUnk_08114F30 + ldrb r2, [r5, #0x19] + lsrs r0, r2, #6 + adds r0, r0, r1 + ldrb r1, [r0] + lsls r1, r1, #6 + movs r0, #0x3f + ands r0, r2 + orrs r0, r1 + strb r0, [r5, #0x19] + adds r0, r5, #0 + bl sub_0807DD64 +_080958B2: + adds r0, r5, #0 + movs r1, #0 + bl sub_0807DDAC + adds r0, r5, #0 + bl sub_0807DDE4 + ldrb r4, [r5, #0xa] + movs r0, #0x5c + strb r0, [r5, #0xa] + adds r0, r5, #0 + bl sub_08080CB4 + strb r4, [r5, #0xa] + pop {r4, r5, pc} + .align 2, 0 +_080958D0: .4byte gUnk_020342F8 +_080958D4: .4byte gUnk_08114F30 + + thumb_func_start sub_080958D8 +sub_080958D8: @ 0x080958D8 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _080958EC + adds r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + bl sub_0807DD64 +_080958EC: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DDAC + adds r0, r4, #0 + bl sub_0807DDE4 + adds r0, r4, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08095914 + adds r0, r4, #0 + bl sub_08095954 +_08095914: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08095918 +sub_08095918: @ 0x08095918 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0809593C + adds r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #6 + bl sub_0805E3A0 + adds r0, r4, #0 + bl sub_0807DD64 + adds r0, r4, #0 + movs r1, #0 + bl UpdateSprite +_0809593C: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DDAC + adds r0, r4, #0 + bl sub_0807DDE4 + adds r0, r4, #0 + bl sub_08004274 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08095954 +sub_08095954: @ 0x08095954 + push {r4, r5, lr} + adds r5, r0, #0 + movs r0, #0x6a + movs r1, #0x14 + movs r2, #0 + bl CreateObject + adds r4, r0, #0 + cmp r4, #0 + beq _080959B8 + str r5, [r4, #0x50] + ldrb r0, [r5, #0x14] + ldr r1, _080959AC @ =gUnk_08122AF8 + adds r0, r0, r1 + movs r2, #0 + ldrsb r2, [r0, r2] + lsls r2, r2, #0x10 + movs r3, #1 + ldrsb r3, [r0, r3] + lsls r3, r3, #0x10 + adds r0, r5, #0 + adds r1, r4, #0 + bl PositionRelative + ldr r0, _080959B0 @ =0x0000FFFD + strh r0, [r4, #0x36] + ldr r1, _080959B4 @ =gUnk_08012C48 + adds r0, r4, #0 + bl sub_0807DAD0 + adds r1, r4, #0 + adds r1, #0x84 + str r0, [r1] + movs r0, #0x92 + lsls r0, r0, #1 + bl sub_08004488 + adds r2, r5, #0 + adds r2, #0x5a + ldrb r1, [r2] + movs r0, #0xfe + ands r0, r1 + strb r0, [r2] + b _080959C4 + .align 2, 0 +_080959AC: .4byte gUnk_08122AF8 +_080959B0: .4byte 0x0000FFFD +_080959B4: .4byte gUnk_08012C48 +_080959B8: + ldr r0, _080959C8 @ =gUnk_02033280 + ldr r1, [r0] + movs r2, #0x80 + lsls r2, r2, #1 + orrs r1, r2 + str r1, [r0] +_080959C4: + pop {r4, r5, pc} + .align 2, 0 +_080959C8: .4byte gUnk_02033280 + + thumb_func_start sub_080959CC +sub_080959CC: @ 0x080959CC + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _080959F2 + adds r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] + adds r0, r4, #0 + movs r1, #3 + bl sub_0805E3A0 + adds r0, r4, #0 + bl sub_0807DD64 +_080959F2: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DDAC + adds r0, r4, #0 + bl sub_0807DDE4 + adds r0, r4, #0 + bl sub_080042B8 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x81 + rsbs r0, r0, #0 + ands r1, r0 + adds r0, r4, #0 + bl sub_08095D30 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08095A1C +sub_08095A1C: @ 0x08095A1C + push {r4, r5, lr} + adds r5, r1, #0 + movs r0, #0x6a + movs r1, #0x16 + movs r2, #0 + bl CreateObject + adds r4, r0, #0 + cmp r4, #0 + beq _08095A5E + ldr r1, _08095A60 @ =gRoomControls + ldrh r0, [r1, #6] + adds r0, #0xe8 + strh r0, [r4, #0x2e] + movs r2, #0x9c + lsls r2, r2, #1 + adds r0, r2, #0 + ldrh r1, [r1, #8] + adds r0, r0, r1 + strh r0, [r4, #0x32] + ldr r0, _08095A64 @ =0x0000FFFC + strh r0, [r4, #0x36] + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #2 + strb r0, [r1] + ldr r1, [r5, #4] + adds r0, r4, #0 + bl sub_0807DAD0 + adds r1, r4, #0 + adds r1, #0x84 + str r0, [r1] +_08095A5E: + pop {r4, r5, pc} + .align 2, 0 +_08095A60: .4byte gRoomControls +_08095A64: .4byte 0x0000FFFC + + thumb_func_start sub_08095A68 +sub_08095A68: @ 0x08095A68 + push {lr} + sub sp, #4 + movs r0, #0 + str r0, [sp] + movs r0, #6 + movs r1, #0x6a + movs r2, #6 + movs r3, #0x16 + bl sub_0805EB2C + adds r1, r0, #0 + cmp r1, #0 + beq _08095A86 + movs r0, #0xff + strb r0, [r1, #0xc] +_08095A86: + add sp, #4 + pop {pc} + .align 2, 0 + + thumb_func_start sub_08095A8C +sub_08095A8C: @ 0x08095A8C + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #5 + bhi _08095B44 + lsls r0, r0, #2 + ldr r1, _08095AA0 @ =_08095AA4 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08095AA0: .4byte _08095AA4 +_08095AA4: @ jump table + .4byte _08095ABC @ case 0 + .4byte _08095ACC @ case 1 + .4byte _08095ADC @ case 2 + .4byte _08095AE6 @ case 3 + .4byte _08095B12 @ case 4 + .4byte _08095B1C @ case 5 +_08095ABC: + ldrb r0, [r4, #0xc] + adds r0, #1 + movs r1, #0 + strb r0, [r4, #0xc] + strb r1, [r4, #0x1e] + adds r0, r4, #0 + bl sub_0807DD64 +_08095ACC: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DDAC + adds r0, r4, #0 + bl sub_0807DDE4 + b _08095B44 +_08095ADC: + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + movs r0, #0x78 + strb r0, [r4, #0xe] +_08095AE6: + ldrb r1, [r4, #0x18] + lsls r0, r1, #0x1e + lsrs r0, r0, #0x1e + movs r5, #1 + eors r0, r5 + movs r3, #4 + rsbs r3, r3, #0 + adds r2, r3, #0 + ands r2, r1 + orrs r2, r0 + strb r2, [r4, #0x18] + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08095B44 + movs r0, #1 + strb r5, [r4, #0xc] + ands r2, r3 + orrs r2, r0 + b _08095B42 +_08095B12: + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + movs r0, #0x78 + strb r0, [r4, #0xe] +_08095B1C: + ldrb r1, [r4, #0x18] + lsls r0, r1, #0x1e + lsrs r0, r0, #0x1e + movs r5, #1 + eors r0, r5 + movs r3, #4 + rsbs r3, r3, #0 + adds r2, r3, #0 + ands r2, r1 + orrs r2, r0 + strb r2, [r4, #0x18] + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08095B44 + strb r5, [r4, #0xc] + ands r2, r3 +_08095B42: + strb r2, [r4, #0x18] +_08095B44: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08095B48 +sub_08095B48: @ 0x08095B48 + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xc] + cmp r0, #0 + bne _08095B78 + adds r0, #1 + strb r0, [r5, #0xc] + adds r1, r5, #0 + adds r1, #0x38 + movs r0, #2 + strb r0, [r1] + adds r0, r5, #0 + bl UpdateSpriteOrderAndFlip + ldr r1, _08095BA8 @ =gUnk_08114F30 + ldrb r2, [r5, #0x19] + lsrs r0, r2, #6 + adds r0, r0, r1 + ldrb r1, [r0] + lsls r1, r1, #6 + movs r0, #0x3f + ands r0, r2 + orrs r0, r1 + strb r0, [r5, #0x19] +_08095B78: + ldrb r0, [r5, #0x18] + movs r4, #4 + rsbs r4, r4, #0 + adds r1, r4, #0 + ands r1, r0 + strb r1, [r5, #0x18] + ldr r2, [r5, #0x50] + cmp r2, #0 + beq _08095BCE + adds r0, r2, #0 + adds r0, #0x5a + ldrb r3, [r0] + movs r0, #0x40 + ands r0, r3 + cmp r0, #0 + bne _08095BAC + movs r0, #0x80 + ands r0, r3 + cmp r0, #0 + beq _08095BCE + bl sub_0805E780 + b _08095BDC + .align 2, 0 +_08095BA8: .4byte gUnk_08114F30 +_08095BAC: + adds r0, r1, #0 + ands r0, r4 + movs r1, #1 + orrs r0, r1 + strb r0, [r5, #0x18] + ldrh r0, [r2, #0x12] + ldrb r1, [r2, #0x1e] + bl sub_080700C8 + ldrb r1, [r0] + adds r2, r5, #0 + adds r2, #0x62 + strb r1, [r2] + ldrb r0, [r0, #1] + adds r1, r5, #0 + adds r1, #0x63 + strb r0, [r1] +_08095BCE: + ldrb r4, [r5, #0xa] + ldrb r0, [r5, #0xb] + strb r0, [r5, #0xa] + adds r0, r5, #0 + bl sub_08080CB4 + strb r4, [r5, #0xa] +_08095BDC: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08095BE0 +sub_08095BE0: @ 0x08095BE0 + push {r4, lr} + adds r4, r0, #0 + adds r2, r1, #0 + movs r0, #0x6a + movs r1, #0x18 + bl CreateObject + adds r1, r0, #0 + cmp r1, #0 + beq _08095BFC + str r4, [r1, #0x50] + adds r0, r4, #0 + bl CopyPosition +_08095BFC: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08095C00 +sub_08095C00: @ 0x08095C00 + push {lr} + adds r2, r0, #0 + ldrb r1, [r2, #0xc] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08095C14 + bl sub_0805E780 + b _08095C46 +_08095C14: + ldr r3, [r2, #0x50] + cmp r3, #0 + beq _08095C46 + adds r1, r2, #0 + adds r1, #0x60 + movs r0, #0xe8 + strh r0, [r1] + ldrb r0, [r3, #0x18] + lsls r0, r0, #0x1e + lsrs r0, r0, #0x1e + cmp r0, #1 + bne _08095C38 + ldrb r1, [r2, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2, #0x18] + b _08095C46 +_08095C38: + ldrb r0, [r2, #0x18] + movs r1, #4 + rsbs r1, r1, #0 + ands r1, r0 + movs r0, #1 + orrs r1, r0 + strb r1, [r2, #0x18] +_08095C46: + pop {pc} + + thumb_func_start sub_08095C48 +sub_08095C48: @ 0x08095C48 + push {r4, lr} + adds r4, r0, #0 + movs r0, #0x6a + movs r1, #0x19 + movs r2, #0 + bl CreateObject + adds r1, r0, #0 + cmp r1, #0 + beq _08095C66 + str r1, [r4, #0x54] + str r4, [r1, #0x50] + adds r0, r4, #0 + bl CopyPosition +_08095C66: + pop {r4, pc} + + thumb_func_start sub_08095C68 +sub_08095C68: @ 0x08095C68 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _08095C80 + adds r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x1e] + ldrh r2, [r4, #0x12] + adds r0, r4, #0 + bl sub_080042D0 +_08095C80: + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _08095CAA + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #7 + bhi _08095CA4 + ldrb r2, [r4, #0x18] + lsls r1, r2, #0x1e + lsrs r1, r1, #0x1e + movs r0, #1 + eors r1, r0 + subs r0, #5 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x18] +_08095CA4: + ldrb r0, [r4, #0xe] + cmp r0, #0 + bne _08095CAE +_08095CAA: + bl sub_0805E780 +_08095CAE: + pop {r4, pc} + + thumb_func_start sub_08095CB0 +sub_08095CB0: @ 0x08095CB0 + push {r4, r5, lr} + adds r5, r0, #0 + movs r0, #0x6a + movs r1, #0x1b + movs r2, #0 + bl CreateObject + adds r4, r0, #0 + cmp r4, #0 + beq _08095CDC + str r4, [r5, #0x54] + str r5, [r4, #0x50] + adds r0, r5, #0 + adds r1, r4, #0 + bl CopyPosition + movs r0, #0x10 + strb r0, [r4, #0xe] + ldrb r0, [r5, #0x1e] + strb r0, [r4, #0x1e] + ldrb r0, [r5, #0x1e] + strb r0, [r4, #0x1f] +_08095CDC: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08095CE0 +sub_08095CE0: @ 0x08095CE0 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _08095D06 + adds r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] + adds r0, r4, #0 + movs r1, #6 + bl sub_0805E3A0 + adds r0, r4, #0 + bl sub_0807DD64 +_08095D06: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DDAC + adds r0, r4, #0 + bl sub_0807DDE4 + adds r0, r4, #0 + bl sub_080042B8 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x81 + rsbs r0, r0, #0 + ands r1, r0 + adds r0, r4, #0 + bl sub_08095D30 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08095D30 +sub_08095D30: @ 0x08095D30 + push {lr} + adds r2, r0, #0 + adds r0, r1, #0 + cmp r0, #0 + beq _08095D4E + ldr r1, _08095D50 @ =gUnk_08122B00 + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r1, [r0] + movs r0, #0x81 + rsbs r0, r0, #0 + ands r1, r0 + adds r0, r2, #0 + bl sub_0801D2B4 +_08095D4E: + pop {pc} + .align 2, 0 +_08095D50: .4byte gUnk_08122B00 + + thumb_func_start sub_08095D54 +sub_08095D54: @ 0x08095D54 + push {r4, r5, lr} + adds r5, r1, #0 + movs r0, #0x6a + movs r1, #0x1c + movs r2, #0 + bl CreateObject + adds r4, r0, #0 + cmp r4, #0 + beq _08095D86 + ldr r0, _08095D88 @ =gLinkEntity + adds r1, r4, #0 + bl CopyPosition + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #2 + strb r0, [r1] + ldr r1, [r5, #4] + adds r0, r4, #0 + bl sub_0807DAD0 + adds r1, r4, #0 + adds r1, #0x84 + str r0, [r1] +_08095D86: + pop {r4, r5, pc} + .align 2, 0 +_08095D88: .4byte gLinkEntity + + thumb_func_start sub_08095D8C +sub_08095D8C: @ 0x08095D8C + push {r4, r5, r6, lr} + adds r5, r0, #0 + adds r6, r1, #0 + movs r0, #0x6a + movs r1, #0x1d + movs r2, #0 + bl CreateObject + adds r4, r0, #0 + cmp r4, #0 + beq _08095DB8 + adds r0, r5, #0 + adds r1, r4, #0 + bl CopyPosition + ldr r1, [r6, #4] + adds r0, r4, #0 + bl sub_0807DAD0 + adds r1, r4, #0 + adds r1, #0x84 + str r0, [r1] +_08095DB8: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_08095DBC +sub_08095DBC: @ 0x08095DBC + push {r4, r5, lr} + adds r4, r0, #0 + ldr r5, _08095DF0 @ =gUnk_02033280 + ldr r0, [r5] + movs r1, #0x10 + ands r0, r1 + cmp r0, #0 + beq _08095DD0 + bl sub_0805E780 +_08095DD0: + ldrb r0, [r4, #0xb] + cmp r0, #0 + bne _08095DF4 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _08095DE6 + adds r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + bl sub_0807DD64 +_08095DE6: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DDAC + b _08095E74 + .align 2, 0 +_08095DF0: .4byte gUnk_02033280 +_08095DF4: + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _08095E30 + adds r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + adds r0, r4, #0 + movs r1, #0x4b + bl UpdateSprite + ldr r1, _08095E78 @ =gUnk_08114F30 + ldrb r2, [r4, #0x19] + lsrs r0, r2, #6 + adds r0, r0, r1 + ldrb r1, [r0] + lsls r1, r1, #6 + movs r0, #0x3f + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x19] + adds r0, r4, #0 + adds r1, r4, #0 + bl sub_0806FAB0 +_08095E30: + ldrb r2, [r4, #0xb] + movs r0, #0x80 + ands r0, r2 + cmp r0, #0 + bne _08095E56 + ldr r0, [r5] + movs r1, #0x80 + lsls r1, r1, #0xa + ands r0, r1 + cmp r0, #0 + beq _08095E56 + movs r0, #0xff + strb r0, [r4, #0xb] + movs r0, #0x80 + lsls r0, r0, #0xb + str r0, [r4, #0x20] + movs r0, #0xc0 + lsls r0, r0, #8 + strh r0, [r4, #0x24] +_08095E56: + movs r0, #0x24 + ldrsh r1, [r4, r0] + adds r0, r4, #0 + bl sub_08003FC4 + adds r0, r4, #0 + bl sub_08004274 + adds r0, r4, #0 + bl sub_080040A8 + cmp r0, #0 + bne _08095E74 + bl sub_0805E780 +_08095E74: + pop {r4, r5, pc} + .align 2, 0 +_08095E78: .4byte gUnk_08114F30 + + thumb_func_start sub_08095E7C +sub_08095E7C: @ 0x08095E7C + push {r4, r5, r6, lr} + adds r5, r0, #0 + adds r6, r1, #0 + movs r0, #0x6a + movs r1, #0x1e + movs r2, #0 + bl CreateObject + adds r4, r0, #0 + cmp r4, #0 + beq _08095EA8 + adds r0, r5, #0 + adds r1, r4, #0 + bl CopyPosition + ldr r1, [r6, #4] + adds r0, r4, #0 + bl sub_0807DAD0 + adds r1, r4, #0 + adds r1, #0x84 + str r0, [r1] +_08095EA8: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_08095EAC +sub_08095EAC: @ 0x08095EAC + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + mov sb, r0 + adds r4, r1, #0 + movs r0, #0x6a + movs r1, #0x1e + movs r2, #1 + bl CreateObject + adds r5, r0, #0 + cmp r5, #0 + beq _08095F2A + ldr r0, [r4, #4] + cmp r0, #0 + bne _08095EE0 + movs r7, #0x10 + movs r6, #0x1f + movs r0, #0x80 + lsls r0, r0, #7 + mov sl, r0 + movs r2, #0 + mov r8, r2 + b _08095F02 +_08095EE0: + movs r7, #8 + movs r6, #0xf + movs r0, #0x80 + lsls r0, r0, #0xb + mov sl, r0 + ldr r4, _08095F34 @ =gUnk_08122B0E + bl Random + movs r1, #7 + ands r1, r0 + lsls r1, r1, #1 + adds r1, r1, r4 + movs r0, #0 + ldrsh r2, [r1, r0] + mov r8, r2 + movs r0, #0xff + strb r0, [r5, #0xb] +_08095F02: + bl Random + adds r4, r0, #0 + ands r4, r6 + subs r4, r7, r4 + bl Random + ands r6, r0 + subs r3, r7, r6 + lsls r4, r4, #0x10 + lsls r3, r3, #0x10 + mov r0, sb + adds r1, r5, #0 + adds r2, r4, #0 + bl PositionRelative + mov r2, sl + str r2, [r5, #0x20] + mov r0, r8 + strh r0, [r5, #0x24] +_08095F2A: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08095F34: .4byte gUnk_08122B0E + + thumb_func_start sub_08095F38 +sub_08095F38: @ 0x08095F38 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _08095FC2 + movs r0, #1 + strb r0, [r4, #0xc] + movs r0, #0xff + strb r0, [r4, #0x1e] + ldrb r0, [r4, #0xb] + cmp r0, #4 + beq _08095F64 + cmp r0, #4 + bgt _08095F5A + cmp r0, #3 + beq _08095F60 + b _08095F6A +_08095F5A: + cmp r0, #6 + beq _08095F68 + b _08095F6A +_08095F60: + movs r1, #0 + b _08095F6A +_08095F64: + movs r1, #1 + b _08095F6A +_08095F68: + movs r1, #4 +_08095F6A: + adds r0, r4, #0 + bl sub_0801D2B4 + ldr r0, _08095F90 @ =gLinkEntity + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _08095F98 + adds r1, r4, #0 + adds r1, #0x84 + ldr r0, _08095F94 @ =0x000008BF + str r0, [r1] + movs r0, #0x34 + strb r0, [r4, #0xe] + movs r0, #0xb5 + b _08095FA6 + .align 2, 0 +_08095F90: .4byte gLinkEntity +_08095F94: .4byte 0x000008BF +_08095F98: + adds r1, r4, #0 + adds r1, #0x84 + ldr r0, _08096020 @ =0x000008E3 + str r0, [r1] + movs r0, #0x55 + strb r0, [r4, #0xe] + movs r0, #0xd6 +_08095FA6: + strb r0, [r4, #0xf] + ldr r0, _08096024 @ =gLinkEntity + adds r1, r4, #0 + bl CopyPosition + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #3 + orrs r0, r1 + strb r0, [r2] +_08095FC2: + ldr r5, _08096024 @ =gLinkEntity + adds r2, r5, #0 + adds r2, #0x5a + ldrb r1, [r2] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _08095FE0 + movs r0, #0xef + ands r0, r1 + strb r0, [r2] + movs r0, #0xea + lsls r0, r0, #1 + bl PlaySFX +_08095FE0: + ldrh r0, [r5, #0x12] + adds r1, r4, #0 + adds r1, #0x84 + ldr r2, [r1] + lsrs r1, r2, #8 + cmp r0, r1 + bne _08095FFC + adds r0, r5, #0 + adds r0, #0x58 + ldrb r1, [r0] + lsls r0, r2, #0x18 + lsrs r0, r0, #0x18 + cmp r1, r0 + beq _08096000 +_08095FFC: + bl sub_0805E780 +_08096000: + ldr r0, _08096024 @ =gLinkEntity + ldrb r0, [r0, #0x1e] + ldrb r1, [r4, #0xe] + subs r0, r0, r1 + ldrb r1, [r4, #0xf] + adds r0, r0, r1 + ldrb r1, [r4, #0x1e] + cmp r0, r1 + beq _0809601E + strb r0, [r4, #0x1e] + ldrb r1, [r4, #0x1e] + ldrh r2, [r4, #0x12] + adds r0, r4, #0 + bl sub_080042D0 +_0809601E: + pop {r4, r5, pc} + .align 2, 0 +_08096020: .4byte 0x000008E3 +_08096024: .4byte gLinkEntity + + thumb_func_start sub_08096028 +sub_08096028: @ 0x08096028 + push {r4, r5, lr} + movs r4, #6 + movs r5, #0xc0 + lsls r5, r5, #2 + adds r0, r5, #0 + movs r1, #0x7b + bl GetProgressFlagWithOffset + cmp r0, #0 + bne _0809603E + movs r4, #4 +_0809603E: + adds r0, r5, #0 + movs r1, #0x7a + bl GetProgressFlagWithOffset + cmp r0, #0 + bne _0809604C + movs r4, #3 +_0809604C: + movs r0, #0x6a + movs r1, #0x1f + adds r2, r4, #0 + bl CreateObject + pop {r4, r5, pc} + + thumb_func_start sub_08096058 +sub_08096058: @ 0x08096058 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0809606C + adds r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + bl sub_0807DD64 +_0809606C: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DDAC + adds r0, r4, #0 + bl sub_0807DDE4 + adds r0, r4, #0 + bl sub_08004274 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08096084 +sub_08096084: @ 0x08096084 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _080960A0 + adds r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + bl sub_0807DD64 + ldrb r1, [r4, #0xb] + adds r0, r4, #0 + bl UpdateSprite +_080960A0: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DDAC + adds r0, r4, #0 + bl sub_0807DDE4 + adds r0, r4, #0 + bl sub_08004274 + ldr r0, [r4, #0x50] + cmp r0, #0 + beq _080960C0 + adds r1, r4, #0 + bl CopyPosition +_080960C0: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080960C4 +sub_080960C4: @ 0x080960C4 + push {r4, r5, r6, lr} + adds r5, r0, #0 + adds r6, r1, #0 + movs r0, #0x6a + movs r1, #0x23 + movs r2, #0x49 + bl CreateObject + adds r4, r0, #0 + cmp r4, #0 + beq _08096110 + str r5, [r4, #0x50] + adds r0, r5, #0 + adds r1, r4, #0 + bl CopyPosition + ldr r1, _08096160 @ =gUnk_08114F34 + ldrb r0, [r5, #0x19] + lsrs r0, r0, #6 + adds r0, r0, r1 + ldrb r1, [r0] + lsls r1, r1, #6 + ldrb r2, [r4, #0x19] + movs r0, #0x3f + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x19] + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FAD8 + ldr r1, [r6, #4] + adds r0, r4, #0 + bl sub_0807DAD0 + adds r1, r4, #0 + adds r1, #0x84 + str r0, [r1] +_08096110: + movs r0, #0x6a + movs r1, #0x24 + movs r2, #0x4a + bl CreateObject + adds r4, r0, #0 + cmp r4, #0 + beq _0809615E + str r5, [r4, #0x50] + adds r0, r5, #0 + adds r1, r4, #0 + bl CopyPosition + ldr r1, _08096164 @ =gUnk_08114F30 + ldrb r0, [r5, #0x19] + lsrs r0, r0, #6 + adds r0, r0, r1 + ldrb r1, [r0] + lsls r1, r1, #6 + ldrb r2, [r4, #0x19] + movs r0, #0x3f + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x19] + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FAB0 + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #2 + strb r0, [r1] + ldr r1, [r6, #4] + adds r0, r4, #0 + bl sub_0807DAD0 + adds r1, r4, #0 + adds r1, #0x84 + str r0, [r1] +_0809615E: + pop {r4, r5, r6, pc} + .align 2, 0 +_08096160: .4byte gUnk_08114F34 +_08096164: .4byte gUnk_08114F30 + + thumb_func_start sub_08096168 +sub_08096168: @ 0x08096168 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0809618C + adds r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + adds r0, r4, #0 + movs r1, #0x4b + bl UpdateSprite +_0809618C: + adds r0, r4, #0 + bl sub_08004274 + movs r0, #0x24 + ldrsh r1, [r4, r0] + ldrb r2, [r4, #0x15] + adds r0, r4, #0 + bl sub_0806F62C + adds r0, r4, #0 + bl sub_080040A8 + cmp r0, #0 + bne _080961AC + bl sub_0805E780 +_080961AC: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080961B0 +sub_080961B0: @ 0x080961B0 + push {r4, r5, r6, r7, lr} + adds r7, r0, #0 + movs r5, #0 + ldr r6, _080961F0 @ =gUnk_08122B1E +_080961B8: + movs r0, #0x6a + movs r1, #0x25 + movs r2, #0 + bl CreateObject + adds r4, r0, #0 + cmp r4, #0 + beq _080961E6 + adds r0, r7, #0 + adds r1, r4, #0 + bl CopyPosition + lsls r0, r5, #5 + strb r0, [r4, #0x15] + bl Random + movs r2, #0xf8 + lsls r2, r2, #1 + adds r1, r2, #0 + ands r0, r1 + ldrh r1, [r6] + adds r0, r0, r1 + strh r0, [r4, #0x24] +_080961E6: + adds r6, #2 + adds r5, #1 + cmp r5, #7 + ble _080961B8 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080961F0: .4byte gUnk_08122B1E + + thumb_func_start sub_080961F4 +sub_080961F4: @ 0x080961F4 + ldrb r2, [r0, #0x18] + movs r1, #4 + rsbs r1, r1, #0 + ands r1, r2 + movs r2, #1 + orrs r1, r2 + strb r1, [r0, #0x18] + movs r1, #0 + strb r1, [r0, #0x1e] + bx lr + + thumb_func_start sub_08096208 +sub_08096208: @ 0x08096208 + push {r4, r5, lr} + adds r5, r0, #0 + lsls r1, r1, #1 + ldr r0, _08096238 @ =gUnk_08122B2E + adds r4, r1, r0 + movs r0, #0x6a + movs r1, #0x26 + movs r2, #0 + bl CreateObject + adds r1, r0, #0 + cmp r1, #0 + beq _08096234 + movs r2, #0 + ldrsb r2, [r4, r2] + lsls r2, r2, #0x10 + movs r3, #1 + ldrsb r3, [r4, r3] + lsls r3, r3, #0x10 + adds r0, r5, #0 + bl PositionRelative +_08096234: + pop {r4, r5, pc} + .align 2, 0 +_08096238: .4byte gUnk_08122B2E + + thumb_func_start sub_0809623C +sub_0809623C: @ 0x0809623C + push {r4, lr} + adds r4, r0, #0 + movs r0, #0x6a + movs r1, #0x27 + movs r2, #0 + bl CreateObject + adds r1, r0, #0 + cmp r1, #0 + beq _0809625A + ldr r3, _0809625C @ =0xFFF00000 + adds r0, r4, #0 + movs r2, #0 + bl PositionRelative +_0809625A: + pop {r4, pc} + .align 2, 0 +_0809625C: .4byte 0xFFF00000 + + thumb_func_start sub_08096260 +sub_08096260: @ 0x08096260 + push {r4, lr} + adds r4, r0, #0 + movs r0, #0x6a + movs r1, #0x28 + movs r2, #0 + bl CreateObject + adds r1, r0, #0 + cmp r1, #0 + beq _0809627E + ldr r3, _08096280 @ =0xFFF00000 + adds r0, r4, #0 + movs r2, #0 + bl PositionRelative +_0809627E: + pop {r4, pc} + .align 2, 0 +_08096280: .4byte 0xFFF00000 + + thumb_func_start sub_08096284 +sub_08096284: @ 0x08096284 + push {lr} + movs r1, #0xd + bl sub_0809629C + pop {pc} + .align 2, 0 + + thumb_func_start sub_08096290 +sub_08096290: @ 0x08096290 + push {lr} + movs r1, #0xe + bl sub_0809629C + pop {pc} + .align 2, 0 + + thumb_func_start sub_0809629C +sub_0809629C: @ 0x0809629C + push {r4, r5, r6, lr} + adds r5, r0, #0 + adds r6, r1, #0 + ldrb r0, [r5, #0xc] + cmp r0, #0 + bne _080962B2 + movs r0, #1 + strb r0, [r5, #0xc] + adds r0, r5, #0 + bl sub_0807DD64 +_080962B2: + adds r0, r5, #0 + movs r1, #0 + bl sub_0807DDAC + adds r0, r5, #0 + bl sub_0807DDE4 + movs r1, #0x80 + lsls r1, r1, #5 + adds r0, r5, #0 + bl sub_08003FC4 + ldrb r4, [r5, #0xa] + strb r6, [r5, #0xa] + adds r0, r5, #0 + bl sub_08080CB4 + strb r4, [r5, #0xa] + pop {r4, r5, r6, pc} + + thumb_func_start sub_080962D8 +sub_080962D8: @ 0x080962D8 + push {lr} + movs r1, #0x80 + lsls r1, r1, #1 + movs r0, #6 + bl DoFade + pop {pc} + .align 2, 0 + + thumb_func_start sub_080962E8 +sub_080962E8: @ 0x080962E8 + push {lr} + movs r1, #0x80 + lsls r1, r1, #1 + movs r0, #7 + bl DoFade + pop {pc} + .align 2, 0 + + thumb_func_start sub_080962F8 +sub_080962F8: @ 0x080962F8 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, [r1, #4] + lsls r4, r4, #4 + ldr r0, _08096318 @ =gUnk_08122B3C + adds r4, r4, r0 + ldrb r2, [r4, #0xc] + adds r3, r4, #0 + adds r3, #8 + adds r0, r5, #0 + movs r1, #1 + bl sub_08078850 + str r4, [r5, #0x48] + pop {r4, r5, pc} + .align 2, 0 +_08096318: .4byte gUnk_08122B3C + + thumb_func_start sub_0809631C +sub_0809631C: @ 0x0809631C + push {lr} + ldr r2, _08096330 @ =gUnk_08123168 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08096330: .4byte gUnk_08123168 + + thumb_func_start sub_08096334 +sub_08096334: @ 0x08096334 + push {r4, r5, r6, lr} + adds r5, r0, #0 + movs r0, #1 + strb r0, [r5, #0xc] + movs r4, #0 + movs r6, #0x80 + strh r6, [r5, #0x24] + ldr r0, _08096358 @ =gUnk_080FD2A8 + str r0, [r5, #0x48] + ldrb r0, [r5, #0xa] + cmp r0, #1 + bne _0809634E + b _08096494 +_0809634E: + cmp r0, #1 + bgt _0809635C + cmp r0, #0 + beq _08096368 + b _0809650A + .align 2, 0 +_08096358: .4byte gUnk_080FD2A8 +_0809635C: + cmp r0, #2 + bne _08096362 + b _080964A6 +_08096362: + cmp r0, #3 + beq _080963FC + b _0809650A +_08096368: + movs r0, #0x1a + bl GetProgressFlag + cmp r0, #0 + beq _080963DA + movs r0, #0x1b + bl GetProgressFlag + cmp r0, #0 + bne _080963A4 + ldr r0, _0809639C @ =gLinkEntity + movs r3, #0x80 + lsls r3, r3, #9 + adds r1, r5, #0 + movs r2, #0 + bl PositionRelative + ldr r0, _080963A0 @ =0x00004022 + adds r1, r5, #0 + adds r1, #0x38 + ldrb r2, [r1] + movs r1, #0xdc + bl UpdateCollisionLayer + b _0809650A + .align 2, 0 +_0809639C: .4byte gLinkEntity +_080963A0: .4byte 0x00004022 +_080963A4: + ldrb r0, [r5, #0xb] + bl sub_0807CBD0 + cmp r0, #0 + bne _080963C8 + adds r0, r5, #0 + movs r1, #0xa + bl UpdateSprite + ldrh r0, [r5, #0x32] + adds r0, #4 + strh r0, [r5, #0x32] + movs r0, #4 + strb r0, [r5, #0xc] + ldr r0, _080963C4 @ =0x0000403B + b _080964C4 + .align 2, 0 +_080963C4: .4byte 0x0000403B +_080963C8: + strb r4, [r5, #0xb] + movs r0, #2 + strb r0, [r5, #0xf] + adds r0, r5, #0 + bl sub_080969A4 + bl sub_0805E780 + b _0809650A +_080963DA: + ldr r1, _080963F8 @ =gRoomControls + ldrh r0, [r1, #6] + adds r0, #0xd0 + strh r0, [r5, #0x2e] + ldrh r0, [r1, #8] + adds r0, #0x44 + strh r0, [r5, #0x32] + movs r0, #4 + strb r0, [r5, #0xc] + ldrb r1, [r5, #0xa] + adds r1, #3 + adds r0, r5, #0 + bl UpdateSprite + b _0809651A + .align 2, 0 +_080963F8: .4byte gRoomControls +_080963FC: + movs r0, #0x1a + bl GetProgressFlag + cmp r0, #0 + beq _08096450 + movs r0, #0x1b + bl GetProgressFlag + cmp r0, #0 + bne _0809644C + ldr r0, _08096444 @ =gLinkEntity + adds r1, r0, #0 + adds r1, #0x29 + ldrb r2, [r1] + lsls r2, r2, #0x1d + lsrs r2, r2, #0x1d + subs r2, #1 + adds r4, r5, #0 + adds r4, #0x29 + movs r1, #7 + ands r2, r1 + ldrb r3, [r4] + movs r1, #8 + rsbs r1, r1, #0 + ands r1, r3 + orrs r1, r2 + strb r1, [r4] + adds r1, r0, #0 + adds r1, #0x79 + strb r6, [r1] + ldr r3, _08096448 @ =0xFFE80000 + adds r1, r5, #0 + movs r2, #0 + bl PositionRelative + b _08096450 + .align 2, 0 +_08096444: .4byte gLinkEntity +_08096448: .4byte 0xFFE80000 +_0809644C: + bl sub_0805E780 +_08096450: + adds r0, r5, #0 + movs r1, #0x6b + movs r2, #1 + movs r3, #0 + bl CreateObjectWithParent + adds r1, r0, #0 + str r1, [r5, #0x54] + cmp r1, #0 + beq _0809646E + ldr r2, _0809648C @ =0xFFE40000 + ldr r3, _08096490 @ =0xFFD80000 + adds r0, r5, #0 + bl PositionRelative +_0809646E: + movs r0, #0x10 + strb r0, [r5, #0x16] + ldrb r0, [r5, #0x19] + movs r1, #3 + orrs r0, r1 + strb r0, [r5, #0x19] + adds r0, r5, #0 + movs r1, #0xc + bl UpdateSprite + adds r0, r5, #0 + bl sub_0809651C + b _0809651A + .align 2, 0 +_0809648C: .4byte 0xFFE40000 +_08096490: .4byte 0xFFD80000 +_08096494: + ldrb r0, [r5, #0x19] + movs r1, #3 + orrs r0, r1 + strb r0, [r5, #0x19] + adds r0, r5, #0 + movs r1, #6 + bl sub_0805E3A0 + b _0809650A +_080964A6: + ldrb r0, [r5, #0xb] + bl sub_0807CBD0 + cmp r0, #0 + bne _080964F8 + adds r0, r5, #0 + movs r1, #0xb + bl UpdateSprite + ldrh r0, [r5, #0x32] + adds r0, #4 + strh r0, [r5, #0x32] + movs r0, #4 + strb r0, [r5, #0xc] + ldr r0, _080964F0 @ =0x00004032 +_080964C4: + movs r2, #0x2e + ldrsh r1, [r5, r2] + ldr r3, _080964F4 @ =gRoomControls + ldrh r2, [r3, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + movs r4, #0x3f + ands r1, r4 + movs r6, #0x32 + ldrsh r2, [r5, r6] + ldrh r3, [r3, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r4 + lsls r2, r2, #6 + orrs r1, r2 + adds r2, r5, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl UpdateCollisionLayer + b _0809651A + .align 2, 0 +_080964F0: .4byte 0x00004032 +_080964F4: .4byte gRoomControls +_080964F8: + strb r4, [r5, #0xb] + movs r0, #3 + strb r0, [r5, #0xf] + adds r0, r5, #0 + bl sub_080969A4 + bl sub_0805E780 + b _0809651A +_0809650A: + ldrb r1, [r5, #0xa] + adds r1, #3 + adds r0, r5, #0 + bl UpdateSprite + adds r0, r5, #0 + bl sub_0809651C +_0809651A: + pop {r4, r5, r6, pc} + + thumb_func_start sub_0809651C +sub_0809651C: @ 0x0809651C + push {r4, r5, r6, r7, lr} + adds r6, r0, #0 + ldrb r3, [r6, #0xa] + movs r0, #1 + ands r0, r3 + cmp r0, #0 + beq _080965D6 + cmp r3, #3 + bne _0809653C + adds r0, r6, #0 + bl sub_08078930 + adds r0, r6, #0 + bl sub_0800445C + b _080965C8 +_0809653C: + ldr r0, [r6, #0x50] + ldr r2, _0809655C @ =0xFFE40000 + ldr r3, _08096560 @ =0xFFD80000 + adds r1, r6, #0 + bl PositionRelative + ldr r1, [r6, #0x50] + ldrb r0, [r1, #0xc] + cmp r0, #2 + bne _08096586 + ldrb r0, [r1, #0xd] + cmp r0, #1 + beq _08096564 + cmp r0, #2 + beq _08096580 + b _08096570 + .align 2, 0 +_0809655C: .4byte 0xFFE40000 +_08096560: .4byte 0xFFD80000 +_08096564: + ldr r0, _0809657C @ =gLinkState + ldrb r1, [r0, #0xd] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08096580 +_08096570: + adds r0, r6, #0 + movs r1, #4 + bl UpdateSprite + b _08096586 + .align 2, 0 +_0809657C: .4byte gLinkState +_08096580: + adds r0, r6, #0 + bl sub_08004274 +_08096586: + ldr r0, [r6, #0x50] + adds r0, #0x29 + ldrb r1, [r0] + lsls r1, r1, #0x1d + lsrs r1, r1, #0x1d + subs r1, #1 + adds r3, r6, #0 + adds r3, #0x29 + movs r0, #7 + ands r1, r0 + ldrb r2, [r3] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + ldr r4, [r6, #0x50] + ldrb r2, [r4, #0x19] + lsrs r2, r2, #6 + lsls r2, r2, #6 + ldrb r3, [r6, #0x19] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r3 + orrs r0, r2 + strb r0, [r6, #0x19] + ldrb r0, [r4, #0x1b] + lsrs r0, r0, #6 + lsls r0, r0, #6 + ldrb r2, [r6, #0x1b] + ands r1, r2 + orrs r1, r0 + strb r1, [r6, #0x1b] +_080965C8: + adds r0, r6, #0 + movs r1, #0xcc + movs r2, #0xcc + movs r3, #0 + bl sub_0805EC9C + b _080966F6 +_080965D6: + ldr r1, _080965FC @ =gLinkState + ldrb r2, [r1, #0x1a] + movs r0, #0x80 + orrs r0, r2 + strb r0, [r1, #0x1a] + movs r0, #5 + strb r0, [r1, #5] + ldrb r1, [r1, #0xd] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08096600 + lsls r1, r3, #0x18 + lsrs r1, r1, #0x19 + adds r1, #3 + adds r0, r6, #0 + bl UpdateSprite + b _08096606 + .align 2, 0 +_080965FC: .4byte gLinkState +_08096600: + adds r0, r6, #0 + bl sub_08004274 +_08096606: + ldr r0, _08096664 @ =gLinkEntity + ldrb r0, [r0, #0x14] + movs r1, #6 + ands r1, r0 + ldr r4, _08096668 @ =gUnk_08123184 + adds r0, r1, r4 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldrh r2, [r6, #0x2e] + adds r0, r0, r2 + movs r2, #0x10 + rsbs r2, r2, #0 + adds r3, r2, #0 + ands r0, r3 + movs r2, #8 + adds r5, r6, #0 + adds r5, #0x70 + movs r7, #0 + orrs r0, r2 + strh r0, [r5] + adds r1, #1 + adds r1, r1, r4 + movs r0, #0 + ldrsb r0, [r1, r0] + ldrh r1, [r6, #0x32] + adds r0, r0, r1 + ands r0, r3 + orrs r0, r2 + adds r1, r6, #0 + adds r1, #0x72 + strh r0, [r1] + ldrh r0, [r5] + ldrh r1, [r1] + adds r4, r6, #0 + adds r4, #0x38 + ldrb r2, [r4] + bl sub_080002BC + cmp r0, #0x19 + bne _08096670 + ldr r0, _0809666C @ =gUnk_0200AF00 + adds r0, #0x2f + movs r1, #3 + strb r1, [r0] + b _08096676 + .align 2, 0 +_08096664: .4byte gLinkEntity +_08096668: .4byte gUnk_08123184 +_0809666C: .4byte gUnk_0200AF00 +_08096670: + ldr r0, _080966F8 @ =gUnk_0200AF00 + adds r0, #0x2f + strb r7, [r0] +_08096676: + ldr r0, _080966FC @ =gLinkEntity + movs r3, #0x80 + lsls r3, r3, #9 + adds r1, r6, #0 + movs r2, #0 + bl PositionRelative + adds r0, r6, #0 + bl sub_080002B8 + cmp r0, #0x19 + bne _0809669C + ldrb r1, [r4] + movs r0, #0xdc + bl sub_0807BA8C + adds r0, r6, #0 + bl sub_08096A78 +_0809669C: + ldr r2, _08096700 @ =gLinkState + adds r0, r2, #0 + adds r0, #0x92 + ldrh r1, [r0] + movs r0, #0xc0 + ands r0, r1 + cmp r0, #0 + beq _080966F6 + ldr r0, _080966F8 @ =gUnk_0200AF00 + adds r0, #0x2f + ldrb r0, [r0] + cmp r0, #3 + bne _080966F6 + movs r0, #0 + strb r0, [r2, #5] + movs r0, #5 + strb r0, [r6, #0xc] + adds r0, #0xfb + strh r0, [r6, #0x24] + movs r0, #0x80 + lsls r0, r0, #0xa + str r0, [r6, #0x20] + adds r2, r6, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #8 + orrs r0, r1 + strb r0, [r2] + ldrb r1, [r6, #0x18] + movs r0, #0x31 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #0x10 + orrs r0, r1 + strb r0, [r6, #0x18] + ldrb r1, [r4] + movs r0, #0xdc + bl sub_0807BA8C + movs r0, #0x79 + bl PlaySFX +_080966F6: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080966F8: .4byte gUnk_0200AF00 +_080966FC: .4byte gLinkEntity +_08096700: .4byte gLinkState + + thumb_func_start sub_08096704 +sub_08096704: @ 0x08096704 + push {lr} + ldr r2, _08096718 @ =gUnk_0812318C + ldrb r1, [r0, #0xd] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08096718: .4byte gUnk_0812318C + + thumb_func_start sub_0809671C +sub_0809671C: @ 0x0809671C + push {r4, lr} + adds r4, r0, #0 + movs r0, #0x1a + bl sub_0807CD04 + ldrb r0, [r4, #0xd] + adds r0, #1 + strb r0, [r4, #0xd] + pop {r4, pc} + .align 2, 0 + + thumb_func_start nullsub_121 +nullsub_121: @ 0x08096730 + bx lr + .align 2, 0 + + thumb_func_start sub_08096734 +sub_08096734: @ 0x08096734 + push {lr} + movs r0, #0x1a + bl sub_0807CD80 + pop {pc} + .align 2, 0 + + thumb_func_start sub_08096740 +sub_08096740: @ 0x08096740 + push {r4, lr} + adds r4, r0, #0 + movs r0, #0x10 + movs r1, #0 + bl sub_08080964 + movs r1, #0 + movs r0, #1 + strb r0, [r4, #0xc] + strb r1, [r4, #0xd] + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08096758 +sub_08096758: @ 0x08096758 + push {r4, lr} + adds r4, r0, #0 + bl sub_080042B8 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0809677C + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #0xa + bl UpdateSprite +_0809677C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08096780 +sub_08096780: @ 0x08096780 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r1, _080967D4 @ =gUnk_0812319C + ldrb r0, [r5, #0xa] + lsrs r0, r0, #1 + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r4, [r0] + adds r0, r5, #0 + bl sub_080002A0 + cmp r4, r0 + bne _080967DC + adds r0, r5, #0 + bl sub_08004274 + ldr r2, _080967D8 @ =gLinkState + ldrb r0, [r2, #0xb] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r2, #0xb] + ldrb r0, [r2, #0xa] + orrs r0, r1 + strb r0, [r2, #0xa] + ldrb r0, [r2, #7] + orrs r1, r0 + strb r1, [r2, #7] + ldrb r0, [r5, #0xe] + subs r0, #1 + strb r0, [r5, #0xe] + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _080967E0 + movs r0, #6 + strb r0, [r5, #0xc] + strb r1, [r5, #0xd] + adds r0, r5, #0 + bl sub_080A29BC + b _080967E0 + .align 2, 0 +_080967D4: .4byte gUnk_0812319C +_080967D8: .4byte gLinkState +_080967DC: + movs r0, #0xc0 + strb r0, [r5, #0xe] +_080967E0: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_080967E4 +sub_080967E4: @ 0x080967E4 + push {r4, r5, lr} + adds r4, r0, #0 + adds r0, #0x70 + ldrh r5, [r0] + movs r0, #0x2e + ldrsh r2, [r4, r0] + cmp r5, r2 + bne _08096802 + adds r0, r4, #0 + adds r0, #0x72 + ldrh r1, [r0] + movs r3, #0x32 + ldrsh r0, [r4, r3] + cmp r1, r0 + beq _0809681C +_08096802: + movs r0, #0x32 + ldrsh r1, [r4, r0] + adds r0, r4, #0 + adds r0, #0x72 + ldrh r3, [r0] + adds r0, r2, #0 + adds r2, r5, #0 + bl sub_080045D4 + strb r0, [r4, #0x15] + adds r0, r4, #0 + bl sub_0806F69C +_0809681C: + movs r1, #0x80 + lsls r1, r1, #7 + adds r0, r4, #0 + bl sub_08003FC4 + cmp r0, #0 + bne _08096830 + adds r0, r4, #0 + bl sub_08096A78 +_08096830: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08096834 +sub_08096834: @ 0x08096834 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xd] + cmp r0, #2 + beq _08096842 + bl sub_08078B48 +_08096842: + ldr r0, _08096854 @ =gUnk_081231A0 + ldrb r1, [r4, #0xd] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + pop {r4, pc} + .align 2, 0 +_08096854: .4byte gUnk_081231A0 + + thumb_func_start sub_08096858 +sub_08096858: @ 0x08096858 + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xb] + bl sub_0807CCB4 + movs r3, #0 + movs r0, #0xf + strb r0, [r5, #0xe] + ldr r1, _080968BC @ =gUnk_081231AC + ldrb r2, [r5, #0xa] + lsls r2, r2, #0x18 + lsrs r0, r2, #0x19 + adds r0, r0, r1 + ldrb r0, [r0] + strb r0, [r5, #0xf] + strb r3, [r5, #0xb] + ldrb r1, [r5, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r5, #0x18] + ldrb r0, [r5, #0xd] + adds r0, #1 + strb r0, [r5, #0xd] + cmp r2, #0 + bne _080968C4 + movs r0, #0xe7 + lsls r0, r0, #1 + movs r2, #0x2e + ldrsh r1, [r5, r2] + ldr r3, _080968C0 @ =gRoomControls + ldrh r2, [r3, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + movs r4, #0x3f + ands r1, r4 + movs r6, #0x32 + ldrsh r2, [r5, r6] + ldrh r3, [r3, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r4 + lsls r2, r2, #6 + orrs r1, r2 + adds r2, r5, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0807B7D8 + b _080968F0 + .align 2, 0 +_080968BC: .4byte gUnk_081231AC +_080968C0: .4byte gRoomControls +_080968C4: + ldr r0, _080968F8 @ =0x000001CD + movs r2, #0x2e + ldrsh r1, [r5, r2] + ldr r3, _080968FC @ =gRoomControls + ldrh r2, [r3, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + movs r4, #0x3f + ands r1, r4 + movs r6, #0x32 + ldrsh r2, [r5, r6] + ldrh r3, [r3, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r4 + lsls r2, r2, #6 + orrs r1, r2 + adds r2, r5, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0807B7D8 +_080968F0: + ldr r0, _08096900 @ =0x000001DB + bl PlaySFX + pop {r4, r5, r6, pc} + .align 2, 0 +_080968F8: .4byte 0x000001CD +_080968FC: .4byte gRoomControls +_08096900: .4byte 0x000001DB + + thumb_func_start sub_08096904 +sub_08096904: @ 0x08096904 + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xe] + subs r0, #1 + strb r0, [r5, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08096984 + ldrh r0, [r5, #0x32] + subs r0, #0x10 + strh r0, [r5, #0x32] + ldr r1, _08096974 @ =gUnk_081231AE + ldrb r0, [r5, #0xb] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r0, [r0] + movs r2, #0x2e + ldrsh r1, [r5, r2] + ldr r3, _08096978 @ =gRoomControls + ldrh r2, [r3, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + movs r4, #0x3f + ands r1, r4 + movs r6, #0x32 + ldrsh r2, [r5, r6] + ldrh r3, [r3, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r4 + lsls r2, r2, #6 + orrs r1, r2 + adds r2, r5, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0807B7D8 + ldrb r0, [r5, #0xb] + adds r0, #1 + strb r0, [r5, #0xb] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrb r1, [r5, #0xf] + cmp r0, r1 + bne _08096980 + ldr r2, _0809697C @ =gLinkState + ldrb r1, [r2, #0xb] + movs r0, #0x7f + ands r0, r1 + strb r0, [r2, #0xb] + ldrb r0, [r5, #0xd] + adds r0, #1 + strb r0, [r5, #0xd] + movs r0, #0x3c + b _08096982 + .align 2, 0 +_08096974: .4byte gUnk_081231AE +_08096978: .4byte gRoomControls +_0809697C: .4byte gLinkState +_08096980: + movs r0, #0xf +_08096982: + strb r0, [r5, #0xe] +_08096984: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_08096988 +sub_08096988: @ 0x08096988 + push {lr} + adds r1, r0, #0 + ldrb r0, [r1, #0xe] + cmp r0, #0 + beq _080969A2 + subs r0, #1 + strb r0, [r1, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080969A2 + movs r0, #0x72 + bl PlaySFX +_080969A2: + pop {pc} + + thumb_func_start sub_080969A4 +sub_080969A4: @ 0x080969A4 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r5, r0, #0 + ldrb r0, [r5, #0xa] + cmp r0, #0 + bne _080969E8 + movs r0, #0xe7 + lsls r0, r0, #1 + movs r2, #0x2e + ldrsh r1, [r5, r2] + ldr r3, _080969E4 @ =gRoomControls + ldrh r2, [r3, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + movs r4, #0x3f + ands r1, r4 + movs r6, #0x32 + ldrsh r2, [r5, r6] + ldrh r3, [r3, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r4 + lsls r2, r2, #6 + orrs r1, r2 + adds r4, r5, #0 + adds r4, #0x38 + ldrb r2, [r4] + bl sub_0807B7D8 + b _08096A14 + .align 2, 0 +_080969E4: .4byte gRoomControls +_080969E8: + ldr r0, _08096A6C @ =0x000001CD + movs r2, #0x2e + ldrsh r1, [r5, r2] + ldr r3, _08096A70 @ =gRoomControls + ldrh r2, [r3, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + movs r4, #0x3f + ands r1, r4 + movs r6, #0x32 + ldrsh r2, [r5, r6] + ldrh r3, [r3, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r4 + lsls r2, r2, #6 + orrs r1, r2 + adds r4, r5, #0 + adds r4, #0x38 + ldrb r2, [r4] + bl sub_0807B7D8 +_08096A14: + ldrb r0, [r5, #0xb] + ldrb r1, [r5, #0xf] + cmp r0, r1 + beq _08096A64 + ldr r2, _08096A74 @ =gUnk_081231B4 + mov r8, r2 + ldr r7, _08096A70 @ =gRoomControls + movs r6, #0x3f +_08096A24: + ldrh r0, [r5, #0x32] + subs r0, #0x10 + strh r0, [r5, #0x32] + ldrb r0, [r5, #0xb] + lsls r0, r0, #1 + add r0, r8 + ldrh r0, [r0] + movs r3, #0x2e + ldrsh r1, [r5, r3] + ldrh r2, [r7, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + ands r1, r6 + movs r3, #0x32 + ldrsh r2, [r5, r3] + ldrh r3, [r7, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r6 + lsls r2, r2, #6 + orrs r1, r2 + ldrb r2, [r4] + bl sub_0807B7D8 + ldrb r0, [r5, #0xb] + adds r0, #1 + strb r0, [r5, #0xb] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrb r1, [r5, #0xf] + cmp r0, r1 + bne _08096A24 +_08096A64: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08096A6C: .4byte 0x000001CD +_08096A70: .4byte gRoomControls +_08096A74: .4byte gUnk_081231B4 + + thumb_func_start sub_08096A78 +sub_08096A78: @ 0x08096A78 + push {r4, r5, r6, lr} + adds r4, r0, #0 + movs r0, #0x1b + bl sub_0807CD04 + ldrb r1, [r4, #0xa] + lsrs r1, r1, #1 + adds r1, #8 + adds r0, r4, #0 + bl LoadAnimation + adds r0, r4, #0 + bl sub_08004168 + ldrh r0, [r4, #0x32] + adds r0, #4 + strh r0, [r4, #0x32] + movs r0, #3 + strb r0, [r4, #0xc] + ldr r0, _08096ACC @ =0x0000403B + movs r2, #0x2e + ldrsh r1, [r4, r2] + ldr r3, _08096AD0 @ =gRoomControls + ldrh r2, [r3, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + movs r5, #0x3f + ands r1, r5 + movs r6, #0x32 + ldrsh r2, [r4, r6] + ldrh r3, [r3, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r5 + lsls r2, r2, #6 + orrs r1, r2 + adds r4, #0x38 + ldrb r2, [r4] + bl UpdateCollisionLayer + pop {r4, r5, r6, pc} + .align 2, 0 +_08096ACC: .4byte 0x0000403B +_08096AD0: .4byte gRoomControls + + thumb_func_start sub_08096AD4 +sub_08096AD4: @ 0x08096AD4 + push {lr} + ldr r2, _08096AE8 @ =gUnk_0812323C + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08096AE8: .4byte gUnk_0812323C + + thumb_func_start sub_08096AEC +sub_08096AEC: @ 0x08096AEC + push {r4, r5, r6, lr} + adds r4, r0, #0 + bl sub_080837B0 + cmp r0, #0 + beq _08096BB6 + ldrb r1, [r4, #0xa] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + beq _08096B12 + adds r1, r4, #0 + adds r1, #0x7e + movs r0, #1 + strb r0, [r1] + ldrb r1, [r4, #0xa] + movs r0, #3 + ands r0, r1 + strb r0, [r4, #0xa] +_08096B12: + movs r0, #0xc0 + lsls r0, r0, #2 + strh r0, [r4, #0x24] + ldrh r1, [r4, #0x2e] + adds r0, r4, #0 + adds r0, #0x70 + strh r1, [r0] + ldrh r0, [r4, #0x32] + adds r1, r4, #0 + adds r1, #0x72 + strh r0, [r1] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #5 + orrs r0, r1 + strb r0, [r2] + movs r0, #0x2e + ldrsh r1, [r4, r0] + ldr r2, _08096B90 @ =gRoomControls + ldrh r0, [r2, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + movs r3, #0x3f + ands r1, r3 + movs r5, #0x32 + ldrsh r0, [r4, r5] + ldrh r2, [r2, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r1, r0 + adds r5, r4, #0 + adds r5, #0x76 + strh r1, [r5] + ldrh r0, [r5] + adds r6, r4, #0 + adds r6, #0x38 + ldrb r1, [r6] + bl sub_080001DA + adds r1, r4, #0 + adds r1, #0x74 + strh r0, [r1] + ldrb r0, [r4, #0xa] + strb r0, [r4, #0x1e] + adds r0, r4, #0 + bl sub_08096CEC + cmp r0, #0 + beq _08096B9C + adds r0, r4, #0 + adds r0, #0x7e + ldrb r0, [r0] + cmp r0, #0 + beq _08096B94 + bl sub_0805E780 + b _08096BB6 + .align 2, 0 +_08096B90: .4byte gRoomControls +_08096B94: + adds r0, r4, #0 + bl sub_08096E04 + b _08096BB6 +_08096B9C: + movs r2, #1 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #5 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x18] + ldr r0, _08096BB8 @ =0x00004022 + ldrh r1, [r5] + ldrb r2, [r6] + bl UpdateCollisionLayer +_08096BB6: + pop {r4, r5, r6, pc} + .align 2, 0 +_08096BB8: .4byte 0x00004022 + + thumb_func_start sub_08096BBC +sub_08096BBC: @ 0x08096BBC + push {r4, lr} + adds r4, r0, #0 + bl sub_08096CEC + cmp r0, #0 + beq _08096BF2 + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #7 + strb r0, [r4, #0xe] + ldrb r0, [r4, #0xa] + lsls r0, r0, #3 + strb r0, [r4, #0x15] + adds r0, r4, #0 + adds r0, #0x74 + ldrh r0, [r0] + adds r1, r4, #0 + adds r1, #0x76 + ldrh r1, [r1] + adds r2, r4, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl UpdateCollisionLayer + ldr r0, _08096BF4 @ =0x0000010B + bl sub_08004488 +_08096BF2: + pop {r4, pc} + .align 2, 0 +_08096BF4: .4byte 0x0000010B + + thumb_func_start sub_08096BF8 +sub_08096BF8: @ 0x08096BF8 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F69C + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08096C3A + adds r0, r4, #0 + bl sub_08096E04 + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] + adds r0, r4, #0 + adds r0, #0x70 + ldrh r0, [r0] + strh r0, [r4, #0x2e] + adds r0, r4, #0 + adds r0, #0x72 + ldrh r0, [r0] + strh r0, [r4, #0x32] + adds r0, r4, #0 + adds r0, #0x7e + ldrb r0, [r0] + cmp r0, #0 + beq _08096C3A + bl sub_0805E780 +_08096C3A: + pop {r4, pc} + + thumb_func_start sub_08096C3C +sub_08096C3C: @ 0x08096C3C + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x7e + ldrb r0, [r0] + cmp r0, #0 + beq _08096C56 + adds r0, r4, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CBE4 + cmp r0, #0 + bne _08096CAE +_08096C56: + ldr r0, _08096C80 @ =gLinkState + ldr r0, [r0, #0x30] + movs r1, #0x80 + lsls r1, r1, #5 + ands r0, r1 + cmp r0, #0 + beq _08096C92 + ldrb r2, [r4, #0xa] + lsls r1, r2, #1 + ldr r0, _08096C84 @ =gLinkEntity + ldrb r0, [r0, #0x14] + cmp r1, r0 + bne _08096C88 + adds r0, r4, #0 + adds r1, r2, #0 + bl sub_08083734 + cmp r0, #0 + beq _08096CAE + b _08096C9C + .align 2, 0 +_08096C80: .4byte gLinkState +_08096C84: .4byte gLinkEntity +_08096C88: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + b _08096C98 +_08096C92: + adds r0, r4, #0 + bl sub_08096D84 +_08096C98: + cmp r0, #0 + bne _08096CAE +_08096C9C: + movs r0, #4 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0xa] + adds r0, r4, #0 + adds r0, #0x76 + ldrh r2, [r0] + adds r0, r4, #0 + bl sub_080836DC +_08096CAE: + pop {r4, pc} + + thumb_func_start sub_08096CB0 +sub_08096CB0: @ 0x08096CB0 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F69C + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08096CE6 + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x70 + ldrh r0, [r0] + strh r0, [r4, #0x2e] + adds r0, r4, #0 + adds r0, #0x72 + ldrh r0, [r0] + strh r0, [r4, #0x32] + ldrb r1, [r4, #0xa] + adds r0, r4, #0 + bl sub_08083814 + ldr r0, _08096CE8 @ =0x0000010B + bl sub_08004488 +_08096CE6: + pop {r4, pc} + .align 2, 0 +_08096CE8: .4byte 0x0000010B + + thumb_func_start sub_08096CEC +sub_08096CEC: @ 0x08096CEC + push {r4, r5, lr} + adds r4, r0, #0 + adds r0, #0x7e + ldrb r0, [r0] + cmp r0, #0 + beq _08096D06 + adds r0, r4, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CBE4 + cmp r0, #0 + bne _08096D60 +_08096D06: + ldr r0, _08096D40 @ =gLinkState + ldr r0, [r0, #0x30] + movs r1, #0x80 + lsls r1, r1, #5 + ands r0, r1 + cmp r0, #0 + beq _08096D64 + ldr r3, _08096D44 @ =gLinkEntity + ldrb r2, [r4, #0xa] + lsls r0, r2, #1 + ldrb r1, [r3, #0x14] + eors r0, r1 + movs r1, #2 + ands r0, r1 + cmp r0, #0 + bne _08096D64 + movs r0, #1 + ands r2, r0 + cmp r2, #0 + beq _08096D48 + movs r1, #0x32 + ldrsh r0, [r3, r1] + movs r2, #0x32 + ldrsh r1, [r4, r2] + movs r5, #0x2e + ldrsh r2, [r3, r5] + movs r5, #0x2e + ldrsh r3, [r4, r5] + b _08096D58 + .align 2, 0 +_08096D40: .4byte gLinkState +_08096D44: .4byte gLinkEntity +_08096D48: + movs r1, #0x2e + ldrsh r0, [r3, r1] + movs r2, #0x2e + ldrsh r1, [r4, r2] + movs r5, #0x32 + ldrsh r2, [r3, r5] + movs r5, #0x32 + ldrsh r3, [r4, r5] +_08096D58: + bl sub_08096D68 + cmp r0, #0 + beq _08096D64 +_08096D60: + movs r0, #1 + b _08096D66 +_08096D64: + movs r0, #0 +_08096D66: + pop {r4, r5, pc} + + thumb_func_start sub_08096D68 +sub_08096D68: @ 0x08096D68 + push {lr} + subs r0, r0, r1 + adds r0, #8 + cmp r0, #0x10 + bhi _08096D7E + subs r0, r2, r3 + adds r0, #0x30 + cmp r0, #0x60 + bhi _08096D7E + movs r0, #1 + b _08096D80 +_08096D7E: + movs r0, #0 +_08096D80: + pop {pc} + .align 2, 0 + + thumb_func_start sub_08096D84 +sub_08096D84: @ 0x08096D84 + push {lr} + adds r1, r0, #0 + ldrb r0, [r1, #0xa] + cmp r0, #1 + beq _08096DB4 + cmp r0, #1 + bgt _08096D98 + cmp r0, #0 + beq _08096DA2 + b _08096E00 +_08096D98: + cmp r0, #2 + beq _08096DC8 + cmp r0, #3 + beq _08096DE4 + b _08096E00 +_08096DA2: + movs r0, #0x32 + ldrsh r1, [r1, r0] + ldr r0, _08096DB0 @ =gLinkEntity + movs r2, #0x32 + ldrsh r0, [r0, r2] + b _08096DEE + .align 2, 0 +_08096DB0: .4byte gLinkEntity +_08096DB4: + ldr r0, _08096DC4 @ =gLinkEntity + movs r2, #0x2e + ldrsh r0, [r0, r2] + adds r0, #0xa + movs r2, #0x2e + ldrsh r1, [r1, r2] + b _08096DD4 + .align 2, 0 +_08096DC4: .4byte gLinkEntity +_08096DC8: + ldr r0, _08096DE0 @ =gLinkEntity + movs r2, #0x32 + ldrsh r0, [r0, r2] + adds r0, #0xa + movs r2, #0x32 + ldrsh r1, [r1, r2] +_08096DD4: + subs r0, r0, r1 + cmp r0, #0x64 + bhi _08096E00 + movs r0, #1 + b _08096E02 + .align 2, 0 +_08096DE0: .4byte gLinkEntity +_08096DE4: + movs r0, #0x2e + ldrsh r1, [r1, r0] + ldr r0, _08096DFC @ =gLinkEntity + movs r2, #0x2e + ldrsh r0, [r0, r2] +_08096DEE: + subs r0, #0xa + subs r1, r1, r0 + cmp r1, #0x64 + bhi _08096E00 + movs r0, #1 + b _08096E02 + .align 2, 0 +_08096DFC: .4byte gLinkEntity +_08096E00: + movs r0, #0 +_08096E02: + pop {pc} + + thumb_func_start sub_08096E04 +sub_08096E04: @ 0x08096E04 + movs r1, #3 + strb r1, [r0, #0xc] + movs r1, #8 + strb r1, [r0, #0xe] + bx lr + .align 2, 0 + + thumb_func_start sub_08096E10 +sub_08096E10: @ 0x08096E10 + push {lr} + ldr r2, _08096E24 @ =gUnk_08123250 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08096E24: .4byte gUnk_08123250 + + thumb_func_start sub_08096E28 +sub_08096E28: @ 0x08096E28 + push {r4, r5, lr} + adds r4, r0, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CBE4 + adds r5, r0, #0 + cmp r5, #0 + bne _08096EBC + movs r2, #1 + movs r3, #1 + strb r3, [r4, #0xc] + movs r0, #0x80 + strh r0, [r4, #0x24] + ldrb r1, [r4, #0x11] + subs r0, #0x90 + ands r0, r1 + movs r1, #3 + orrs r0, r1 + strb r0, [r4, #0x11] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x18] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #8 + orrs r0, r1 + strb r0, [r2] + ldrb r1, [r4, #0x18] + movs r0, #0x31 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #0x10 + orrs r0, r1 + strb r0, [r4, #0x18] + adds r1, r4, #0 + adds r1, #0x63 + movs r0, #4 + strb r0, [r1] + ldr r0, _08096EB4 @ =gUnk_080FD1F4 + str r0, [r4, #0x48] + strb r3, [r4, #0x16] + adds r0, r4, #0 + adds r0, #0x72 + strh r5, [r0] + adds r0, #0xb + ldrb r0, [r0] + lsrs r0, r0, #4 + subs r1, #0x2b + strb r0, [r1] + adds r0, r4, #0 + bl UpdateSpriteOrderAndFlip + adds r0, r4, #0 + bl sub_080970F4 + ldr r1, _08096EB8 @ =gUnk_08123264 + ldrb r0, [r4, #0xa] + adds r0, r0, r1 + ldrb r0, [r0] + strb r0, [r4, #0x1e] + b _08096F04 + .align 2, 0 +_08096EB4: .4byte gUnk_080FD1F4 +_08096EB8: .4byte gUnk_08123264 +_08096EBC: + adds r0, r4, #0 + adds r0, #0x7c + ldrb r2, [r0] + adds r0, #1 + ldrb r3, [r0] + movs r1, #0xf + adds r0, r1, #0 + ands r0, r3 + lsls r0, r0, #8 + ldr r3, _08096F08 @ =gRoomControls + orrs r2, r0 + ldrh r0, [r3, #6] + adds r2, r2, r0 + strh r2, [r4, #0x2e] + adds r0, r4, #0 + adds r0, #0x7e + ldrb r0, [r0] + movs r2, #0x7f + adds r2, r2, r4 + mov ip, r2 + ldrb r2, [r2] + ands r1, r2 + lsls r1, r1, #8 + orrs r0, r1 + ldrh r3, [r3, #8] + adds r0, r0, r3 + strh r0, [r4, #0x32] + mov r5, ip + ldrb r0, [r5] + lsrs r0, r0, #4 + adds r1, r4, #0 + adds r1, #0x38 + strb r0, [r1] + adds r0, r4, #0 + bl sub_080971E0 +_08096F04: + pop {r4, r5, pc} + .align 2, 0 +_08096F08: .4byte gRoomControls + + thumb_func_start sub_08096F0C +sub_08096F0C: @ 0x08096F0C + push {r4, lr} + adds r4, r0, #0 + bl sub_08097194 + cmp r0, #0 + bne _08096F2E + adds r0, r4, #0 + bl sub_08097008 + cmp r0, #0 + beq _08096F28 + movs r0, #3 + strb r0, [r4, #0xc] + b _08096F2E +_08096F28: + adds r0, r4, #0 + bl sub_08078930 +_08096F2E: + pop {r4, pc} + + thumb_func_start sub_08096F30 +sub_08096F30: @ 0x08096F30 + push {lr} + adds r2, r0, #0 + adds r0, #0x76 + ldrh r0, [r0] + cmp r0, #0 + beq _08096F44 + adds r0, r2, #0 + bl sub_08097144 + b _08096F62 +_08096F44: + ldr r0, _08096F64 @ =gLinkState + ldrb r0, [r0, #5] + cmp r0, #0 + bne _08096F50 + movs r0, #6 + strb r0, [r2, #0xd] +_08096F50: + ldr r0, _08096F68 @ =gUnk_0812326C + ldrb r1, [r2, #0xd] + subs r1, #5 + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r2, #0 + bl _call_via_r1 +_08096F62: + pop {pc} + .align 2, 0 +_08096F64: .4byte gLinkState +_08096F68: .4byte gUnk_0812326C + + thumb_func_start sub_08096F6C +sub_08096F6C: @ 0x08096F6C + push {r4, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x72 + ldrh r0, [r1] + cmp r0, #0 + bne _08096F98 + movs r0, #1 + strh r0, [r1] + ldr r1, _08096FD8 @ =gLinkEntity + ldrb r0, [r1, #0x14] + ldr r2, _08096FDC @ =gUnk_08123274 + adds r0, r0, r2 + movs r2, #0 + ldrsb r2, [r0, r2] + lsls r2, r2, #0x10 + movs r3, #1 + ldrsb r3, [r0, r3] + lsls r3, r3, #0x10 + adds r0, r4, #0 + bl PositionRelative +_08096F98: + adds r0, r4, #0 + bl sub_08097008 + bl sub_080896B0 + cmp r0, #0 + beq _08096FD4 + ldr r2, _08096FE0 @ =gLinkState + movs r3, #0 + movs r0, #0x10 + strb r0, [r2, #0xc] + adds r1, r2, #0 + adds r1, #0x38 + movs r0, #0x20 + strb r0, [r1] + ldr r0, [r2, #0x30] + movs r1, #1 + orrs r0, r1 + str r0, [r2, #0x30] + ldr r0, _08096FD8 @ =gLinkEntity + strh r3, [r0, #0x2c] + strh r3, [r0, #0x30] + ldrb r0, [r0, #0x14] + movs r1, #4 + eors r0, r1 + lsls r0, r0, #2 + strb r0, [r4, #0x15] + adds r0, r4, #0 + bl sub_08097098 +_08096FD4: + pop {r4, pc} + .align 2, 0 +_08096FD8: .4byte gLinkEntity +_08096FDC: .4byte gUnk_08123274 +_08096FE0: .4byte gLinkState + + thumb_func_start sub_08096FE4 +sub_08096FE4: @ 0x08096FE4 + movs r2, #0 + movs r1, #1 + strb r1, [r0, #0xc] + adds r0, #0x72 + strh r2, [r0] + bx lr + + thumb_func_start sub_08096FF0 +sub_08096FF0: @ 0x08096FF0 + push {r4, lr} + adds r4, r0, #0 + bl sub_08097144 + cmp r0, #0 + beq _08097000 + movs r0, #1 + strb r0, [r4, #0xc] +_08097000: + pop {r4, pc} + .align 2, 0 + + thumb_func_start nullsub_122 +nullsub_122: @ 0x08097004 + bx lr + .align 2, 0 + + thumb_func_start sub_08097008 +sub_08097008: @ 0x08097008 + push {r4, r5, lr} + adds r5, r0, #0 + adds r0, #0x74 + ldrh r0, [r0] + adds r1, r5, #0 + adds r1, #0x38 + ldrb r1, [r1] + bl sub_080002B0 + adds r4, r0, #0 + ldr r0, _08097048 @ =0x00004036 + cmp r4, r0 + beq _08097070 + adds r0, r4, #0 + bl sub_08097074 + cmp r0, #1 + beq _0809704C + cmp r0, #2 + beq _08097062 + movs r0, #0xf + movs r1, #4 + movs r2, #0 + bl CreateObject + adds r1, r0, #0 + cmp r1, #0 + beq _0809706A + adds r0, r5, #0 + bl CopyPosition + b _0809706A + .align 2, 0 +_08097048: .4byte 0x00004036 +_0809704C: + adds r0, r4, #0 + subs r0, #0x37 + movs r1, #3 + ands r0, r1 + lsls r0, r0, #3 + strb r0, [r5, #0x15] + adds r0, r5, #0 + bl sub_08097098 + movs r0, #1 + b _08097072 +_08097062: + adds r0, r5, #0 + adds r0, #0x70 + strh r4, [r0] + b _08097070 +_0809706A: + adds r0, r5, #0 + bl sub_0805E7BC +_08097070: + movs r0, #0 +_08097072: + pop {r4, r5, pc} + + thumb_func_start sub_08097074 +sub_08097074: @ 0x08097074 + push {lr} + adds r2, r0, #0 + ldr r1, _0809707C @ =gUnk_0812327C + b _0809708C + .align 2, 0 +_0809707C: .4byte gUnk_0812327C +_08097080: + ldrh r0, [r1] + cmp r0, r2 + bne _0809708A + ldrh r0, [r1, #2] + b _08097094 +_0809708A: + adds r1, #4 +_0809708C: + ldrh r0, [r1] + cmp r0, #0 + bne _08097080 + movs r0, #0 +_08097094: + pop {pc} + .align 2, 0 + + thumb_func_start sub_08097098 +sub_08097098: @ 0x08097098 + push {r4, r5, r6, lr} + adds r6, r0, #0 + adds r1, r6, #0 + adds r1, #0x76 + movs r0, #0x20 + strh r0, [r1] + adds r0, #0xef + bl sub_08004488 + adds r0, r6, #0 + adds r0, #0x70 + ldrh r0, [r0] + adds r5, r6, #0 + adds r5, #0x74 + ldrh r1, [r5] + adds r4, r6, #0 + adds r4, #0x38 + ldrb r2, [r4] + bl UpdateCollisionLayer + ldr r1, _080970F0 @ =gUnk_080B4488 + ldrb r0, [r6, #0x15] + lsrs r0, r0, #3 + lsls r0, r0, #1 + adds r0, r0, r1 + movs r1, #0 + ldrsh r0, [r0, r1] + ldrh r5, [r5] + adds r0, r0, r5 + ldrb r1, [r4] + bl sub_080002B0 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0x79 + beq _080970E4 + cmp r0, #0x77 + bne _080970EC +_080970E4: + adds r1, r6, #0 + adds r1, #0x63 + movs r0, #2 + strb r0, [r1] +_080970EC: + pop {r4, r5, r6, pc} + .align 2, 0 +_080970F0: .4byte gUnk_080B4488 + + thumb_func_start sub_080970F4 +sub_080970F4: @ 0x080970F4 + push {r4, r5, r6, lr} + adds r6, r0, #0 + movs r0, #0x2e + ldrsh r1, [r6, r0] + ldr r2, _0809713C @ =gRoomControls + ldrh r0, [r2, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + movs r3, #0x3f + ands r1, r3 + movs r4, #0x32 + ldrsh r0, [r6, r4] + ldrh r2, [r2, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r1, r0 + adds r4, r6, #0 + adds r4, #0x74 + strh r1, [r4] + ldrh r0, [r4] + adds r5, r6, #0 + adds r5, #0x38 + ldrb r1, [r5] + bl sub_080001DA + adds r1, r6, #0 + adds r1, #0x70 + strh r0, [r1] + ldr r0, _08097140 @ =0x00004036 + ldrh r1, [r4] + ldrb r2, [r5] + bl UpdateCollisionLayer + pop {r4, r5, r6, pc} + .align 2, 0 +_0809713C: .4byte gRoomControls +_08097140: .4byte 0x00004036 + + thumb_func_start sub_08097144 +sub_08097144: @ 0x08097144 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F69C + adds r0, r4, #0 + bl sub_0800445C + adds r0, r4, #0 + bl sub_080002B8 + cmp r0, #0x19 + bne _08097164 + adds r1, r4, #0 + adds r1, #0x63 + movs r0, #2 + strb r0, [r1] +_08097164: + adds r1, r4, #0 + adds r1, #0x76 + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _08097190 + adds r0, r4, #0 + bl sub_08097194 + cmp r0, #0 + bne _08097190 + adds r1, r4, #0 + adds r1, #0x63 + movs r0, #4 + strb r0, [r1] + adds r0, r4, #0 + bl sub_080970F4 + movs r0, #1 + b _08097192 +_08097190: + movs r0, #0 +_08097192: + pop {r4, pc} + + thumb_func_start sub_08097194 +sub_08097194: @ 0x08097194 + push {r4, lr} + adds r4, r0, #0 + bl sub_0800442E + cmp r0, #0 + beq _080971A4 + movs r0, #1 + b _080971DE +_080971A4: + adds r0, r4, #0 + bl sub_080002A0 + adds r1, r0, #0 + subs r0, #0x71 + cmp r0, #1 + bls _080971B8 + ldr r0, _080971D4 @ =0x00004020 + cmp r1, r0 + bne _080971DC +_080971B8: + adds r0, r4, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CCC8 + ldr r0, _080971D8 @ =0x0000010B + bl sub_08004488 + adds r0, r4, #0 + bl sub_080971E0 + movs r0, #1 + b _080971DE + .align 2, 0 +_080971D4: .4byte 0x00004020 +_080971D8: .4byte 0x0000010B +_080971DC: + movs r0, #0 +_080971DE: + pop {r4, pc} + + thumb_func_start sub_080971E0 +sub_080971E0: @ 0x080971E0 + push {r4, r5, lr} + adds r5, r0, #0 + movs r0, #0xf + movs r1, #0x11 + movs r2, #0x40 + bl CreateObject + adds r4, r0, #0 + cmp r4, #0 + beq _08097202 + ldr r2, _0809727C @ =0xFFF80000 + movs r3, #0x80 + lsls r3, r3, #0xa + adds r0, r5, #0 + adds r1, r4, #0 + bl PositionRelative +_08097202: + movs r0, #0xf + movs r1, #0x11 + movs r2, #0x40 + bl CreateObject + adds r4, r0, #0 + cmp r4, #0 + beq _08097222 + movs r2, #0x80 + lsls r2, r2, #0xc + movs r3, #0x80 + lsls r3, r3, #0xa + adds r0, r5, #0 + adds r1, r4, #0 + bl PositionRelative +_08097222: + ldrb r0, [r5, #0xa] + cmp r0, #1 + beq _08097284 + cmp r0, #1 + ble _08097234 + cmp r0, #2 + beq _080972C4 + cmp r0, #3 + beq _08097304 +_08097234: + movs r0, #4 + strb r0, [r5, #0xc] + movs r0, #1 + strb r0, [r5, #0x1e] + adds r2, r5, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #7 + orrs r0, r1 + strb r0, [r2] + movs r0, #0x2e + ldrsh r1, [r5, r0] + ldr r2, _08097280 @ =gRoomControls + ldrh r0, [r2, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + movs r3, #0x3f + ands r1, r3 + movs r4, #0x32 + ldrsh r0, [r5, r4] + ldrh r2, [r2, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r1, r0 + adds r0, r5, #0 + adds r0, #0x38 + ldrb r2, [r0] + movs r0, #0 + bl UpdateCollisionLayer +_08097274: + bl sub_0805E780 + b _08097346 + .align 2, 0 +_0809727C: .4byte 0xFFF80000 +_08097280: .4byte gRoomControls +_08097284: + movs r1, #0x2e + ldrsh r0, [r5, r1] + ldr r3, _080972C0 @ =gRoomControls + ldrh r1, [r3, #6] + subs r0, r0, r1 + asrs r4, r0, #4 + movs r2, #0x3f + ands r4, r2 + movs r1, #0x32 + ldrsh r0, [r5, r1] + ldrh r1, [r3, #8] + subs r0, r0, r1 + asrs r0, r0, #4 + ands r0, r2 + lsls r0, r0, #6 + orrs r4, r0 + adds r0, r4, #0 + bl sub_08097348 + cmp r0, #0 + bne _08097274 + adds r0, r5, #0 + adds r0, #0x38 + ldrb r2, [r0] + movs r0, #0x73 + adds r1, r4, #0 + bl sub_0807B314 + b _08097274 + .align 2, 0 +_080972C0: .4byte gRoomControls +_080972C4: + movs r0, #0x2f + movs r1, #0 + movs r2, #0 + bl CreateObject + adds r4, r0, #0 + cmp r4, #0 + beq _08097274 + ldrh r2, [r5, #0x2e] + movs r1, #0x10 + rsbs r1, r1, #0 + adds r0, r1, #0 + ands r0, r2 + adds r0, #8 + strh r0, [r4, #0x2e] + ldrh r0, [r5, #0x32] + ands r1, r0 + adds r1, #8 + strh r1, [r4, #0x32] + adds r0, r5, #0 + adds r0, #0x38 + ldrb r1, [r0] + adds r0, r4, #0 + adds r0, #0x38 + strb r1, [r0] + adds r0, r5, #0 + adds r0, #0x84 + ldrh r1, [r0] + adds r0, r4, #0 + adds r0, #0x86 + strh r1, [r0] + b _08097274 +_08097304: + movs r0, #0x2f + movs r1, #1 + movs r2, #0 + bl CreateObject + adds r4, r0, #0 + cmp r4, #0 + beq _08097342 + ldrh r2, [r5, #0x2e] + movs r1, #0x10 + rsbs r1, r1, #0 + adds r0, r1, #0 + ands r0, r2 + adds r0, #8 + strh r0, [r4, #0x2e] + ldrh r0, [r5, #0x32] + ands r1, r0 + adds r1, #8 + strh r1, [r4, #0x32] + adds r0, r5, #0 + adds r0, #0x38 + ldrb r1, [r0] + adds r0, r4, #0 + adds r0, #0x38 + strb r1, [r0] + adds r0, r5, #0 + adds r0, #0x84 + ldrh r1, [r0] + adds r0, r4, #0 + adds r0, #0x86 + strh r1, [r0] +_08097342: + bl sub_0805E780 +_08097346: + pop {r4, r5, pc} + + thumb_func_start sub_08097348 +sub_08097348: @ 0x08097348 + push {lr} + adds r3, r0, #0 + ldr r1, _08097360 @ =gUnk_02017660 + movs r2, #0 +_08097350: + ldrh r0, [r1, #4] + cmp r0, r3 + bne _08097364 + ldrb r0, [r1, #1] + bl sub_0807CBD0 + b _0809736E + .align 2, 0 +_08097360: .4byte gUnk_02017660 +_08097364: + adds r2, #1 + adds r1, #8 + cmp r2, #7 + bls _08097350 + movs r0, #0 +_0809736E: + pop {pc} + + thumb_func_start sub_08097370 +sub_08097370: @ 0x08097370 + push {lr} + ldr r2, _08097384 @ =gUnk_08123298 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08097384: .4byte gUnk_08123298 + + thumb_func_start sub_08097388 +sub_08097388: @ 0x08097388 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806FBD8 + cmp r0, #0 + beq _080973D4 + ldrb r0, [r4, #0xa] + lsls r0, r0, #2 + ldr r1, _080973D8 @ =gUnk_081232A0 + adds r0, r0, r1 + ldrb r1, [r0] + strb r1, [r4, #0xb] + ldrb r2, [r0, #3] + adds r1, r4, #0 + adds r1, #0x40 + strb r2, [r1] + ldr r2, [r4, #0x48] + ldrb r1, [r0, #1] + strb r1, [r2, #6] + ldr r1, [r4, #0x48] + ldrb r0, [r0, #2] + strb r0, [r1, #7] + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + adds r1, r4, #0 + adds r1, #0x3c + movs r0, #7 + strb r0, [r1] + adds r1, #3 + movs r0, #0x91 + strb r0, [r1] + subs r1, #4 + movs r0, #2 + strb r0, [r1] + movs r0, #1 + strb r0, [r4, #0xc] +_080973D4: + pop {r4, pc} + .align 2, 0 +_080973D8: .4byte gUnk_081232A0 + + thumb_func_start sub_080973DC +sub_080973DC: @ 0x080973DC + adds r0, #0x41 + movs r1, #0 + strb r1, [r0] + bx lr + + thumb_func_start sub_080973E4 +sub_080973E4: @ 0x080973E4 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0809741E + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r0, [r4, #0xa] + strb r0, [r4, #0x1e] + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #2 + strb r0, [r1] + adds r0, r4, #0 + bl UpdateSpriteOrderAndFlip + bl sub_08052660 + cmp r0, #0 + beq _0809741E + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r2] +_0809741E: + pop {r4, pc} + + thumb_func_start sub_08097420 +sub_08097420: @ 0x08097420 + push {lr} + ldr r2, _08097434 @ =gUnk_081232A4 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08097434: .4byte gUnk_081232A4 + + thumb_func_start sub_08097438 +sub_08097438: @ 0x08097438 + push {r4, lr} + adds r4, r0, #0 + movs r2, #1 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #5 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x18] + ldrb r0, [r4, #0xa] + adds r1, r0, #0 + adds r1, #0xb + strb r1, [r4, #0x1e] + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080974A2 + adds r0, r4, #0 + bl sub_08004168 + ldr r1, _08097494 @ =gLinkEntity + ldrb r0, [r1, #0x1b] + movs r2, #0xc0 + orrs r0, r2 + strb r0, [r1, #0x1b] + adds r1, #0x29 + ldrb r1, [r1] + movs r2, #7 + movs r0, #7 + ands r0, r1 + cmp r0, #7 + beq _08097498 + lsls r1, r1, #0x1d + lsrs r1, r1, #0x1d + adds r1, #1 + adds r3, r4, #0 + adds r3, #0x29 + ands r1, r2 + ldrb r2, [r3] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + b _080974A2 + .align 2, 0 +_08097494: .4byte gLinkEntity +_08097498: + adds r1, r4, #0 + adds r1, #0x29 + ldrb r0, [r1] + orrs r0, r2 + strb r0, [r1] +_080974A2: + pop {r4, pc} + + thumb_func_start sub_080974A4 +sub_080974A4: @ 0x080974A4 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _08097554 + ldr r3, _08097540 @ =gLinkEntity + ldr r0, [r3, #0x34] + cmp r0, #0 + bne _080974E8 + ldr r2, _08097544 @ =gLinkState + ldrb r1, [r2, #0x1e] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + bne _080974D6 + ldrb r0, [r2, #0x12] + cmp r0, #0x11 + bne _080974D6 + ldrb r0, [r3, #0xc] + cmp r0, #1 + beq _080974FA + cmp r0, #0x18 + beq _080974FA + cmp r0, #4 + beq _080974FA +_080974D6: + ldr r1, _08097540 @ =gLinkEntity + ldr r0, [r1, #0x34] + cmp r0, #0 + bne _080974E8 + adds r0, r1, #0 + movs r1, #0x52 + movs r2, #0 + bl CreateFx +_080974E8: + ldr r2, _08097540 @ =gLinkEntity + ldrb r1, [r2, #0x1b] + movs r0, #0x3f + ands r0, r1 + movs r1, #0x80 + orrs r0, r1 + strb r0, [r2, #0x1b] + bl sub_0805E780 +_080974FA: + ldr r2, _08097540 @ =gLinkEntity + ldr r0, [r2, #0x2c] + str r0, [r4, #0x2c] + ldr r0, [r2, #0x30] + str r0, [r4, #0x30] + ldr r0, _08097544 @ =gLinkState + ldrb r0, [r0, #2] + cmp r0, #0 + bne _08097584 + ldrb r0, [r2, #0x1b] + movs r1, #0xc0 + orrs r0, r1 + strb r0, [r2, #0x1b] + adds r0, r2, #0 + adds r0, #0x29 + ldrb r1, [r0] + movs r2, #7 + movs r0, #7 + ands r0, r1 + cmp r0, #7 + beq _08097548 + lsls r1, r1, #0x1d + lsrs r1, r1, #0x1d + adds r1, #1 + adds r3, r4, #0 + adds r3, #0x29 + ands r1, r2 + ldrb r2, [r3] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + b _08097584 + .align 2, 0 +_08097540: .4byte gLinkEntity +_08097544: .4byte gLinkState +_08097548: + adds r1, r4, #0 + adds r1, #0x29 + ldrb r0, [r1] + orrs r0, r2 + strb r0, [r1] + b _08097584 +_08097554: + ldr r2, _08097570 @ =gLinkEntity + ldrb r0, [r2, #0xc] + cmp r0, #0x1e + beq _08097584 + adds r0, r4, #0 + adds r0, #0x38 + ldrb r0, [r0] + cmp r0, #1 + bne _08097574 + ldrb r0, [r2, #0x1b] + movs r1, #0x3f + ands r1, r0 + movs r0, #0x80 + b _0809757C + .align 2, 0 +_08097570: .4byte gLinkEntity +_08097574: + ldrb r0, [r2, #0x1b] + movs r1, #0x3f + ands r1, r0 + movs r0, #0x40 +_0809757C: + orrs r1, r0 + strb r1, [r2, #0x1b] + bl sub_0805E780 +_08097584: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08097588 +sub_08097588: @ 0x08097588 + push {lr} + ldr r2, _0809759C @ =gUnk_081232AC + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0809759C: .4byte gUnk_081232AC + + thumb_func_start sub_080975A0 +sub_080975A0: @ 0x080975A0 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r4, r0, #0 + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + ldrb r0, [r4, #0xa] + strb r0, [r4, #0x1e] + ldrb r1, [r4, #0x11] + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #3 + orrs r0, r1 + strb r0, [r4, #0x11] + movs r1, #0x2e + ldrsh r0, [r4, r1] + ldr r2, _08097690 @ =gRoomControls + mov r8, r2 + ldrh r1, [r2, #6] + subs r0, r0, r1 + asrs r5, r0, #4 + movs r6, #0x3f + ands r5, r6 + movs r1, #0x32 + ldrsh r0, [r4, r1] + ldrh r1, [r2, #8] + subs r0, r0, r1 + asrs r0, r0, #4 + ands r0, r6 + lsls r0, r0, #6 + orrs r5, r0 + adds r0, r5, #0 + subs r0, #0x41 + adds r7, r4, #0 + adds r7, #0x38 + ldrb r1, [r7] + bl sub_080001DA + adds r1, r4, #0 + adds r1, #0x6a + strh r0, [r1] + adds r0, r5, #0 + subs r0, #0x40 + ldrb r1, [r7] + bl sub_080001DA + adds r1, r4, #0 + adds r1, #0x6c + strh r0, [r1] + adds r0, r5, #0 + subs r0, #0x3f + ldrb r1, [r7] + bl sub_080001DA + adds r1, r4, #0 + adds r1, #0x6e + strh r0, [r1] + subs r0, r5, #1 + ldrb r1, [r7] + bl sub_080001DA + adds r1, r4, #0 + adds r1, #0x70 + strh r0, [r1] + ldrb r1, [r7] + adds r0, r5, #0 + bl sub_080001DA + adds r1, r4, #0 + adds r1, #0x72 + strh r0, [r1] + adds r0, r5, #1 + ldrb r1, [r7] + bl sub_080001DA + adds r1, r4, #0 + adds r1, #0x74 + strh r0, [r1] + adds r0, r5, #0 + adds r0, #0x3f + ldrb r1, [r7] + bl sub_080001DA + adds r1, r4, #0 + adds r1, #0x76 + strh r0, [r1] + adds r0, r5, #0 + adds r0, #0x40 + ldrb r1, [r7] + bl sub_080001DA + adds r1, r4, #0 + adds r1, #0x78 + strh r0, [r1] + adds r0, r5, #0 + adds r0, #0x41 + ldrb r1, [r7] + bl sub_080001DA + adds r1, r4, #0 + adds r1, #0x7a + strh r0, [r1] + adds r0, r4, #0 + bl sub_0809798C + cmp r0, #0 + beq _080976A2 + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _08097694 + ldrh r0, [r4, #0x32] + subs r0, #0x16 + b _08097698 + .align 2, 0 +_08097690: .4byte gRoomControls +_08097694: + ldrh r0, [r4, #0x32] + subs r0, #0x10 +_08097698: + strh r0, [r4, #0x32] + adds r0, r4, #0 + bl sub_080977F4 + b _08097722 +_080976A2: + movs r0, #1 + strb r0, [r4, #0xc] + movs r2, #0x2e + ldrsh r0, [r4, r2] + mov r2, r8 + ldrh r1, [r2, #6] + subs r0, r0, r1 + asrs r5, r0, #4 + ands r5, r6 + movs r1, #0x32 + ldrsh r0, [r4, r1] + ldrh r1, [r2, #8] + subs r0, r0, r1 + asrs r0, r0, #4 + ands r0, r6 + lsls r0, r0, #6 + orrs r5, r0 + adds r0, r4, #0 + adds r0, #0x68 + strh r5, [r0] + ldr r1, _080976FC @ =gUnk_081232DE + ldrb r0, [r4, #0xb] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r6, [r0] + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _08097704 + ldr r0, _08097700 @ =gUnk_080FD578 + str r0, [r4, #0x48] + subs r1, r5, #1 + ldrb r2, [r7] + adds r0, r6, #0 + bl UpdateCollisionLayer + ldrb r2, [r7] + adds r0, r6, #0 + adds r1, r5, #0 + bl UpdateCollisionLayer + ldrh r0, [r4, #0x32] + adds r0, #2 + strh r0, [r4, #0x32] + b _08097722 + .align 2, 0 +_080976FC: .4byte gUnk_081232DE +_08097700: .4byte gUnk_080FD578 +_08097704: + ldr r0, _08097728 @ =gUnk_080FD570 + str r0, [r4, #0x48] + ldrb r2, [r7] + adds r0, r6, #0 + adds r1, r5, #0 + bl UpdateCollisionLayer + ldrb r0, [r4, #0xb] + cmp r0, #2 + bne _08097722 + ldr r0, _0809772C @ =gUnk_081232C0 + ldrb r2, [r7] + adds r1, r5, #0 + bl sub_0801AF18 +_08097722: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08097728: .4byte gUnk_080FD570 +_0809772C: .4byte gUnk_081232C0 + + thumb_func_start sub_08097730 +sub_08097730: @ 0x08097730 + push {r4, lr} + adds r4, r0, #0 + bl sub_0809785C + cmp r0, #0 + beq _08097744 + ldrb r1, [r4, #0xe] + adds r0, r4, #0 + bl sub_0805E4E0 +_08097744: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08097748 +sub_08097748: @ 0x08097748 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xd] + cmp r0, #0 + bne _08097774 + ldrb r0, [r2, #0xf] + subs r0, #1 + strb r0, [r2, #0xf] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0809779A + movs r0, #1 + strb r0, [r2, #0xd] + movs r0, #0x78 + strb r0, [r2, #0xf] + ldr r1, _08097770 @ =gRoomControls + str r2, [r1, #0x30] + movs r0, #2 + strb r0, [r1, #0xe] + b _0809779A + .align 2, 0 +_08097770: .4byte gRoomControls +_08097774: + ldrb r0, [r2, #0xf] + subs r0, #1 + strb r0, [r2, #0xf] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0809779A + movs r0, #3 + strb r0, [r2, #0xc] + movs r0, #0x60 + strb r0, [r2, #0xe] + movs r0, #0x14 + strb r0, [r2, #0xf] + adds r0, r2, #0 + movs r1, #0x60 + bl sub_0805E4E0 + ldr r0, _0809779C @ =0x0000010F + bl PlaySFX +_0809779A: + pop {pc} + .align 2, 0 +_0809779C: .4byte 0x0000010F + + thumb_func_start sub_080977A0 +sub_080977A0: @ 0x080977A0 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _080977BC + subs r0, #1 + strb r0, [r4, #0xe] + adds r0, r4, #0 + bl sub_0806F69C + adds r0, r4, #0 + bl sub_0800445C + b _080977E4 +_080977BC: + ldrb r0, [r4, #0xf] + cmp r0, #0 + beq _080977C8 + subs r0, #1 + strb r0, [r4, #0xf] + b _080977E4 +_080977C8: + movs r0, #0x72 + bl sub_08004488 + adds r0, r4, #0 + bl sub_080977F4 + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _080977E4 + ldr r0, _080977E8 @ =gRoomControls + ldr r1, _080977EC @ =gLinkEntity + str r1, [r0, #0x30] + movs r1, #4 + strb r1, [r0, #0xe] +_080977E4: + pop {r4, pc} + .align 2, 0 +_080977E8: .4byte gRoomControls +_080977EC: .4byte gLinkEntity + + thumb_func_start nullsub_528 +nullsub_528: @ 0x080977F0 + bx lr + .align 2, 0 + + thumb_func_start sub_080977F4 +sub_080977F4: @ 0x080977F4 + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + movs r1, #0 + movs r0, #4 + strb r0, [r5, #0xc] + adds r0, r5, #0 + adds r0, #0x63 + strb r1, [r0] + movs r1, #0x2e + ldrsh r0, [r5, r1] + ldr r3, _08097854 @ =gRoomControls + ldrh r1, [r3, #6] + subs r0, r0, r1 + asrs r4, r0, #4 + movs r2, #0x3f + ands r4, r2 + movs r1, #0x32 + ldrsh r0, [r5, r1] + ldrh r1, [r3, #8] + subs r0, r0, r1 + asrs r0, r0, #4 + ands r0, r2 + lsls r0, r0, #6 + orrs r4, r0 + ldr r7, _08097858 @ =0x00004022 + adds r6, r5, #0 + adds r6, #0x38 + ldrb r2, [r6] + adds r0, r7, #0 + adds r1, r4, #0 + bl UpdateCollisionLayer + ldrb r0, [r5, #0xa] + cmp r0, #0 + bne _08097844 + subs r1, r4, #1 + ldrb r2, [r6] + adds r0, r7, #0 + bl UpdateCollisionLayer +_08097844: + adds r1, r5, #0 + adds r1, #0x86 + ldrh r0, [r1] + cmp r0, #0 + beq _08097852 + bl sub_0807CCC8 +_08097852: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08097854: .4byte gRoomControls +_08097858: .4byte 0x00004022 + + thumb_func_start sub_0809785C +sub_0809785C: @ 0x0809785C + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldrb r4, [r5, #0xa] + cmp r4, #0 + beq _08097948 + ldrb r0, [r5, #0xb] + cmp r0, #0 + bne _0809786E + b _08097986 +_0809786E: + adds r0, r5, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CBE4 + adds r4, r5, #0 + adds r4, #0x68 + adds r6, r5, #0 + adds r6, #0x38 + cmp r0, #0 + bne _08097892 + ldrh r0, [r4] + ldrb r1, [r6] + bl sub_080002B0 + ldr r1, _08097940 @ =0x0000403F + cmp r0, r1 + bne _08097986 +_08097892: + movs r1, #0 + movs r0, #3 + strb r0, [r5, #0xc] + movs r0, #0x40 + strb r0, [r5, #0xe] + strb r1, [r5, #0xf] + strb r1, [r5, #0x15] + strh r0, [r5, #0x24] + ldrh r4, [r4] + adds r0, r5, #0 + adds r0, #0x72 + ldrh r0, [r0] + ldrb r2, [r6] + adds r1, r4, #0 + bl sub_0807B9B8 + ldrb r0, [r5, #0xb] + cmp r0, #2 + bne _08097934 + adds r0, r5, #0 + adds r0, #0x6a + ldrh r0, [r0] + adds r1, r4, #0 + subs r1, #0x41 + ldrb r2, [r6] + bl sub_0807B9B8 + adds r0, r5, #0 + adds r0, #0x6c + ldrh r0, [r0] + adds r1, r4, #0 + subs r1, #0x40 + ldrb r2, [r6] + bl sub_0807B9B8 + adds r0, r5, #0 + adds r0, #0x6e + ldrh r0, [r0] + adds r1, r4, #0 + subs r1, #0x3f + ldrb r2, [r6] + bl sub_0807B9B8 + adds r0, r5, #0 + adds r0, #0x70 + ldrh r0, [r0] + subs r1, r4, #1 + ldrb r2, [r6] + bl sub_0807B9B8 + adds r0, r5, #0 + adds r0, #0x74 + ldrh r0, [r0] + adds r1, r4, #1 + ldrb r2, [r6] + bl sub_0807B9B8 + adds r0, r5, #0 + adds r0, #0x76 + ldrh r0, [r0] + adds r1, r4, #0 + adds r1, #0x3f + ldrb r2, [r6] + bl sub_0807B9B8 + adds r0, r5, #0 + adds r0, #0x78 + ldrh r0, [r0] + adds r1, r4, #0 + adds r1, #0x40 + ldrb r2, [r6] + bl sub_0807B9B8 + adds r0, r5, #0 + adds r0, #0x7a + ldrh r0, [r0] + adds r1, r4, #0 + adds r1, #0x41 + ldrb r2, [r6] + bl sub_0807B9B8 +_08097934: + ldr r0, _08097944 @ =0x0000010F + bl PlaySFX + movs r0, #1 + b _08097988 + .align 2, 0 +_08097940: .4byte 0x0000403F +_08097944: .4byte 0x0000010F +_08097948: + adds r0, r5, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CBE4 + cmp r0, #0 + beq _08097986 + movs r0, #2 + strb r0, [r5, #0xc] + strb r4, [r5, #0xd] + movs r0, #0xf0 + strb r0, [r5, #0xe] + movs r0, #0x3c + strb r0, [r5, #0xf] + strb r4, [r5, #0x15] + movs r0, #0x40 + strh r0, [r5, #0x24] + adds r4, r5, #0 + adds r4, #0x68 + ldrh r0, [r4] + adds r5, #0x38 + ldrb r1, [r5] + bl sub_0807BA8C + ldrh r0, [r4] + subs r0, #1 + ldrb r1, [r5] + bl sub_0807BA8C + movs r0, #1 + b _08097988 +_08097986: + movs r0, #0 +_08097988: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_0809798C +sub_0809798C: @ 0x0809798C + push {r4, lr} + adds r1, r0, #0 + movs r4, #0 + ldrb r0, [r1, #0xa] + cmp r0, #0 + beq _0809799E + ldrb r0, [r1, #0xb] + cmp r0, #0 + beq _080979AE +_0809799E: + adds r0, r1, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CBE4 + cmp r0, #0 + beq _080979AE + movs r4, #1 +_080979AE: + adds r0, r4, #0 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080979B4 +sub_080979B4: @ 0x080979B4 + push {lr} + ldr r2, _080979C8 @ =gUnk_081232E4 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080979C8: .4byte gUnk_081232E4 + + thumb_func_start sub_080979CC +sub_080979CC: @ 0x080979CC + push {r4, r5, r6, lr} + adds r5, r0, #0 + movs r2, #1 + movs r0, #1 + strb r0, [r5, #0xc] + ldrb r1, [r5, #0x18] + subs r0, #5 + ands r0, r1 + orrs r0, r2 + strb r0, [r5, #0x18] + ldrb r0, [r5, #0xa] + cmp r0, #3 + bne _08097A20 + movs r0, #0 + strb r0, [r5, #0x1e] + ldr r0, _08097A18 @ =gUnk_081232FE + movs r2, #0x2e + ldrsh r1, [r5, r2] + ldr r3, _08097A1C @ =gRoomControls + ldrh r2, [r3, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + movs r4, #0x3f + ands r1, r4 + movs r6, #0x32 + ldrsh r2, [r5, r6] + ldrh r3, [r3, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r4 + lsls r2, r2, #6 + orrs r1, r2 + adds r2, r5, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0801AF18 + b _08097A4E + .align 2, 0 +_08097A18: .4byte gUnk_081232FE +_08097A1C: .4byte gRoomControls +_08097A20: + strb r0, [r5, #0x1e] + ldr r0, _08097A50 @ =gUnk_081232EC + movs r2, #0x2e + ldrsh r1, [r5, r2] + ldr r3, _08097A54 @ =gRoomControls + ldrh r2, [r3, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + movs r4, #0x3f + ands r1, r4 + movs r6, #0x32 + ldrsh r2, [r5, r6] + ldrh r3, [r3, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r4 + lsls r2, r2, #6 + orrs r1, r2 + adds r2, r5, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0801AF18 +_08097A4E: + pop {r4, r5, r6, pc} + .align 2, 0 +_08097A50: .4byte gUnk_081232EC +_08097A54: .4byte gRoomControls + + thumb_func_start nullsub_529 +nullsub_529: @ 0x08097A58 + bx lr + .align 2, 0 + + thumb_func_start sub_08097A5C +sub_08097A5C: @ 0x08097A5C + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xc] + cmp r0, #0 + bne _08097AAC + movs r4, #1 + movs r0, #1 + strb r0, [r5, #0xc] + movs r0, #0x5a + strb r0, [r5, #0xe] + bl Random + strb r0, [r5, #0xf] + lsrs r0, r0, #0x10 + movs r1, #3 + ands r0, r1 + strb r0, [r5, #0x1e] + ldrb r1, [r5, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + orrs r0, r4 + strb r0, [r5, #0x18] + adds r2, r5, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #7 + orrs r0, r1 + strb r0, [r2] + ldrb r0, [r5, #0xb] + bl sub_0804B128 + str r0, [r5, #0x54] + adds r1, r5, #0 + adds r1, #0x54 + adds r2, r5, #0 + adds r2, #0x70 + adds r0, r5, #0 + bl sub_080A2CC0 +_08097AAC: + adds r0, r5, #0 + bl sub_08097ADC + adds r1, r0, #0 + adds r0, r5, #0 + bl sub_080A2BE4 + adds r0, r5, #0 + bl sub_08097B24 + adds r2, r5, #0 + adds r2, #0x70 + ldrh r0, [r2] + subs r0, #1 + strh r0, [r2] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _08097ADA + adds r1, r5, #0 + adds r1, #0x54 + adds r0, r5, #0 + bl sub_080A2CC0 +_08097ADA: + pop {r4, r5, pc} + + thumb_func_start sub_08097ADC +sub_08097ADC: @ 0x08097ADC + push {r4, r5, lr} + adds r2, r0, #0 + ldr r5, _08097B18 @ =gLinkState + ldr r0, [r5, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08097B20 + ldr r4, _08097B1C @ =gLinkEntity + adds r0, r2, #0 + adds r1, r4, #0 + movs r2, #8 + movs r3, #8 + bl sub_080041A0 + cmp r0, #0 + beq _08097B20 + bl sub_08079F8C + cmp r0, #0 + beq _08097B20 + movs r0, #1 + strb r0, [r5, #0x14] + movs r1, #0x36 + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _08097B20 + movs r0, #1 + b _08097B22 + .align 2, 0 +_08097B18: .4byte gLinkState +_08097B1C: .4byte gLinkEntity +_08097B20: + movs r0, #0 +_08097B22: + pop {r4, r5, pc} + + thumb_func_start sub_08097B24 +sub_08097B24: @ 0x08097B24 + push {r4, lr} + adds r3, r0, #0 + ldrb r0, [r3, #0xe] + subs r0, #1 + strb r0, [r3, #0xe] + movs r4, #0xff + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08097B44 + movs r0, #0x5a + strb r0, [r3, #0xe] + ldrb r0, [r3, #0x1e] + adds r0, #1 + movs r1, #3 + ands r0, r1 + strb r0, [r3, #0x1e] +_08097B44: + ldr r2, _08097B68 @ =gUnk_08123318 + ldrb r0, [r3, #0xf] + adds r0, #1 + strb r0, [r3, #0xf] + ands r0, r4 + lsrs r0, r0, #5 + movs r1, #7 + ands r0, r1 + lsls r0, r0, #1 + adds r0, r0, r2 + ldrh r2, [r0] + adds r0, r3, #0 + adds r1, r2, #0 + movs r3, #0 + bl sub_0805EC9C + pop {r4, pc} + .align 2, 0 +_08097B68: .4byte gUnk_08123318 + + thumb_func_start sub_08097B6C +sub_08097B6C: @ 0x08097B6C + push {lr} + ldr r2, _08097B80 @ =gUnk_08123330 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08097B80: .4byte gUnk_08123330 + + thumb_func_start sub_08097B84 +sub_08097B84: @ 0x08097B84 + push {r4, lr} + adds r4, r0, #0 + movs r0, #1 + strb r0, [r4, #0xc] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #7 + orrs r0, r1 + strb r0, [r2] + ldr r0, _08097BCC @ =gUnk_08123328 + str r0, [r4, #0x48] + adds r2, #0x5d + ldrh r1, [r2] + ldr r0, _08097BD0 @ =0x0000FFFF + cmp r1, r0 + beq _08097BB0 + adds r0, r1, #0 + bl sub_0807CBE4 + cmp r0, #0 + beq _08097BD4 +_08097BB0: + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + movs r0, #4 + strb r0, [r4, #0xc] + adds r0, r4, #0 + bl sub_08097CFC + b _08097BD8 + .align 2, 0 +_08097BCC: .4byte gUnk_08123328 +_08097BD0: .4byte 0x0000FFFF +_08097BD4: + bl sub_0805BC4C +_08097BD8: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08097BDC +sub_08097BDC: @ 0x08097BDC + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CBE4 + cmp r0, #0 + beq _08097C10 + movs r0, #1 + bl sub_08078A90 + ldr r0, _08097C14 @ =gUnk_02034490 + movs r1, #1 + strb r1, [r0] + adds r0, r4, #0 + movs r1, #0x1e + bl sub_0805E4E0 + adds r0, r4, #0 + bl sub_08097CB0 + cmp r0, #0 + bne _08097C10 + adds r0, r4, #0 + bl sub_08097CB4 +_08097C10: + pop {r4, pc} + .align 2, 0 +_08097C14: .4byte gUnk_02034490 + + thumb_func_start sub_08097C18 +sub_08097C18: @ 0x08097C18 + bx lr + .align 2, 0 + + thumb_func_start sub_08097C1C +sub_08097C1C: @ 0x08097C1C + bx lr + .align 2, 0 + + thumb_func_start sub_08097C20 +sub_08097C20: @ 0x08097C20 + push {r4, r5, r6, lr} + adds r4, r0, #0 + movs r0, #0x1e + bl sub_0805E510 + adds r0, r4, #0 + bl sub_0800445C + movs r1, #0x2e + ldrsh r0, [r4, r1] + movs r2, #0x32 + ldrsh r1, [r4, r2] + adds r2, r4, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_080577AC + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + movs r1, #0xff + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #0 + bne _08097CA6 + movs r0, #8 + strb r0, [r4, #0xe] + ldrb r0, [r4, #0xf] + adds r0, #1 + strb r0, [r4, #0xf] + ands r1, r0 + ldr r6, _08097CA8 @ =gLCDControls + movs r0, #0x10 + subs r0, r0, r1 + lsls r0, r0, #8 + orrs r0, r1 + adds r1, r6, #0 + adds r1, #0x68 + strh r0, [r1] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0x10 + bne _08097CA6 + movs r0, #0 + bl sub_08078A90 + ldr r1, _08097CAC @ =gUnk_02034490 + movs r0, #0 + strb r0, [r1] + adds r0, r6, #0 + adds r0, #0x66 + strh r5, [r0] + adds r0, r4, #0 + bl sub_08097CFC + movs r0, #4 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x19] + subs r0, #0x11 + ands r0, r1 + strb r0, [r4, #0x19] + movs r0, #0x72 + bl PlaySFX + movs r0, #0x63 + bl sub_0807CD04 +_08097CA6: + pop {r4, r5, r6, pc} + .align 2, 0 +_08097CA8: .4byte gLCDControls +_08097CAC: .4byte gUnk_02034490 + + thumb_func_start sub_08097CB0 +sub_08097CB0: @ 0x08097CB0 + movs r0, #0 + bx lr + + thumb_func_start sub_08097CB4 +sub_08097CB4: @ 0x08097CB4 + push {lr} + movs r3, #0 + movs r1, #3 + strb r1, [r0, #0xc] + ldrb r2, [r0, #0x18] + subs r1, #7 + ands r1, r2 + movs r2, #1 + orrs r1, r2 + strb r1, [r0, #0x18] + ldrb r2, [r0, #0x19] + movs r1, #0xd + rsbs r1, r1, #0 + ands r1, r2 + movs r2, #4 + orrs r1, r2 + strb r1, [r0, #0x19] + movs r1, #0x1e + strb r1, [r0, #0xe] + strb r3, [r0, #0xf] + ldr r1, _08097CF8 @ =gLCDControls + adds r2, r1, #0 + adds r2, #0x66 + movs r0, #0xf4 + lsls r0, r0, #4 + strh r0, [r2] + adds r1, #0x68 + adds r0, #0xc0 + strh r0, [r1] + movs r0, #0xa5 + lsls r0, r0, #1 + bl PlaySFX + pop {pc} + .align 2, 0 +_08097CF8: .4byte gLCDControls + + thumb_func_start sub_08097CFC +sub_08097CFC: @ 0x08097CFC + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldrh r1, [r5, #0x2e] + movs r0, #0xf + ands r0, r1 + cmp r0, #0 + bne _08097D40 + ldr r0, _08097D38 @ =gUnk_0812336A + movs r2, #0x2e + ldrsh r1, [r5, r2] + ldr r3, _08097D3C @ =gRoomControls + ldrh r2, [r3, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + movs r4, #0x3f + ands r1, r4 + movs r6, #0x32 + ldrsh r2, [r5, r6] + ldrh r3, [r3, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r4 + lsls r2, r2, #6 + orrs r1, r2 + adds r2, r5, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0801AF18 + b _08097D6C + .align 2, 0 +_08097D38: .4byte gUnk_0812336A +_08097D3C: .4byte gRoomControls +_08097D40: + ldr r0, _08097D70 @ =gUnk_08123344 + movs r2, #0x2e + ldrsh r1, [r5, r2] + ldr r3, _08097D74 @ =gRoomControls + ldrh r2, [r3, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + movs r4, #0x3f + ands r1, r4 + movs r6, #0x32 + ldrsh r2, [r5, r6] + ldrh r3, [r3, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r4 + lsls r2, r2, #6 + orrs r1, r2 + adds r2, r5, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0801AF18 +_08097D6C: + pop {r4, r5, r6, pc} + .align 2, 0 +_08097D70: .4byte gUnk_08123344 +_08097D74: .4byte gRoomControls + + thumb_func_start sub_08097D78 +sub_08097D78: @ 0x08097D78 + push {lr} + ldr r2, _08097D8C @ =gUnk_08123384 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08097D8C: .4byte gUnk_08123384 + + thumb_func_start sub_08097D90 +sub_08097D90: @ 0x08097D90 + push {r4, lr} + adds r4, r0, #0 + movs r3, #1 + movs r2, #1 + strb r2, [r4, #0xc] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + orrs r0, r3 + strb r0, [r4, #0x18] + adds r0, r4, #0 + adds r0, #0x38 + strb r2, [r0] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] + adds r0, r4, #0 + bl UpdateSpriteOrderAndFlip + adds r0, r4, #0 + movs r1, #0 + bl LoadAnimation + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08097DCC +sub_08097DCC: @ 0x08097DCC + push {lr} + bl sub_080042B8 + pop {pc} + + thumb_func_start sub_08097DD4 +sub_08097DD4: @ 0x08097DD4 + push {lr} + ldr r2, _08097DE8 @ =gUnk_081233B8 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08097DE8: .4byte gUnk_081233B8 + + thumb_func_start sub_08097DEC +sub_08097DEC: @ 0x08097DEC + push {r4, lr} + adds r4, r0, #0 + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + bl UpdateSpriteOrderAndFlip + ldrb r0, [r4, #0xa] + cmp r0, #1 + beq _08097E46 + cmp r0, #1 + bgt _08097E0A + cmp r0, #0 + beq _08097E1C + b _08097EA2 +_08097E0A: + cmp r0, #3 + bgt _08097EA2 + ldrb r0, [r4, #0xb] + strb r0, [r4, #0x1e] + ldrb r0, [r4, #0x18] + movs r1, #3 + orrs r0, r1 + strb r0, [r4, #0x18] + b _08097E9C +_08097E1C: + ldrh r2, [r4, #0x2e] + movs r1, #0x10 + rsbs r1, r1, #0 + adds r0, r1, #0 + ands r0, r2 + strh r0, [r4, #0x2e] + ldrh r0, [r4, #0x32] + ands r1, r0 + strh r1, [r4, #0x32] + adds r0, r4, #0 + bl sub_08097EB8 + ldrb r0, [r4, #0xb] + cmp r0, #0 + beq _08097EA2 + adds r1, r0, #0 + adds r1, #0xb + adds r0, r4, #0 + bl sub_0801D2B4 + b _08097EA2 +_08097E46: + ldrb r0, [r4, #0xb] + strb r0, [r4, #0x1e] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x19 + cmp r0, #1 + beq _08097E76 + cmp r0, #1 + bgt _08097E5C + cmp r0, #0 + beq _08097E68 + b _08097E9C +_08097E5C: + cmp r0, #2 + bne _08097E9C + adds r0, r4, #0 + movs r1, #0xd + bl sub_0801D2B4 +_08097E68: + ldrb r0, [r4, #0x1b] + movs r1, #0x3f + ands r1, r0 + movs r0, #0x40 + orrs r1, r0 + strb r1, [r4, #0x1b] + b _08097E9C +_08097E76: + ldrb r1, [r4, #0x1b] + movs r0, #0x3f + ands r0, r1 + movs r1, #0x80 + orrs r0, r1 + strb r0, [r4, #0x1b] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #3 + orrs r0, r1 + strb r0, [r2] + adds r0, r4, #0 + movs r1, #0xb + bl sub_0801D2B4 +_08097E9C: + adds r0, r4, #0 + bl sub_08097F34 +_08097EA2: + pop {r4, pc} + + thumb_func_start sub_08097EA4 +sub_08097EA4: @ 0x08097EA4 + push {lr} + adds r1, r0, #0 + ldrb r0, [r1, #0xa] + cmp r0, #0 + beq _08097EB4 + adds r0, r1, #0 + bl sub_08097F10 +_08097EB4: + pop {pc} + .align 2, 0 + + thumb_func_start sub_08097EB8 +sub_08097EB8: @ 0x08097EB8 + push {r4, r5, r6, lr} + movs r2, #0x2e + ldrsh r1, [r0, r2] + ldr r3, _08097F04 @ =gRoomControls + ldrh r2, [r3, #6] + subs r1, r1, r2 + asrs r5, r1, #4 + movs r2, #0x3f + ands r5, r2 + movs r1, #0x32 + ldrsh r0, [r0, r1] + ldrh r1, [r3, #8] + subs r0, r0, r1 + asrs r0, r0, #4 + ands r0, r2 + lsls r0, r0, #6 + orrs r5, r0 + ldr r4, _08097F08 @ =gUnk_081233C0 + movs r2, #0 + ldrsh r0, [r4, r2] + ldr r1, _08097F0C @ =0x00007FFF + cmp r0, r1 + beq _08097F00 + adds r6, r1, #0 +_08097EE8: + ldrh r0, [r4, #2] + movs r2, #0 + ldrsh r1, [r4, r2] + adds r1, r5, r1 + movs r2, #1 + bl UpdateCollisionLayer + adds r4, #4 + movs r1, #0 + ldrsh r0, [r4, r1] + cmp r0, r6 + bne _08097EE8 +_08097F00: + pop {r4, r5, r6, pc} + .align 2, 0 +_08097F04: .4byte gRoomControls +_08097F08: .4byte gUnk_081233C0 +_08097F0C: .4byte 0x00007FFF + + thumb_func_start sub_08097F10 +sub_08097F10: @ 0x08097F10 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _08097F30 @ =gRoomControls + movs r2, #0xc + ldrsh r1, [r0, r2] + ldrh r0, [r0, #8] + subs r1, r1, r0 + adds r0, r4, #0 + bl sub_08097F60 + adds r1, r4, #0 + adds r1, #0x70 + ldrh r1, [r1] + subs r1, r1, r0 + strh r1, [r4, #0x32] + pop {r4, pc} + .align 2, 0 +_08097F30: .4byte gRoomControls + + thumb_func_start sub_08097F34 +sub_08097F34: @ 0x08097F34 + push {r4, lr} + adds r4, r0, #0 + movs r0, #0x32 + ldrsh r1, [r4, r0] + ldr r0, _08097F5C @ =gRoomControls + ldrh r0, [r0, #8] + subs r1, r1, r0 + adds r0, r4, #0 + bl sub_08097F60 + ldrh r1, [r4, #0x32] + adds r1, r1, r0 + adds r0, r4, #0 + adds r0, #0x70 + strh r1, [r0] + adds r0, r4, #0 + bl sub_08097F10 + pop {r4, pc} + .align 2, 0 +_08097F5C: .4byte gRoomControls + + thumb_func_start sub_08097F60 +sub_08097F60: @ 0x08097F60 + push {lr} + ldrb r2, [r0, #0xa] + cmp r2, #1 + bne _08097F74 + ldrb r0, [r0, #0x1e] + lsrs r0, r0, #1 + cmp r0, #1 + bne _08097F7C + asrs r1, r1, #3 + b _08097F7E +_08097F74: + cmp r2, #1 + blt _08097F7E + cmp r2, #3 + bgt _08097F7E +_08097F7C: + asrs r1, r1, #1 +_08097F7E: + adds r0, r1, #0 + pop {pc} + .align 2, 0 + + thumb_func_start sub_08097F84 +sub_08097F84: @ 0x08097F84 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _08097FAC @ =gLinkState + ldr r0, [r0, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08097F98 + bl sub_0805E780 +_08097F98: + ldr r0, _08097FB0 @ =gUnk_08123410 + ldrb r1, [r4, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + pop {r4, pc} + .align 2, 0 +_08097FAC: .4byte gLinkState +_08097FB0: .4byte gUnk_08123410 + + thumb_func_start sub_08097FB4 +sub_08097FB4: @ 0x08097FB4 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + adds r0, #1 + movs r1, #0 + strb r0, [r4, #0xc] + movs r2, #0 + strh r1, [r4, #0x24] + str r1, [r4, #0x6c] + adds r1, r4, #0 + adds r1, #0x7a + movs r0, #0x90 + lsls r0, r0, #5 + strh r0, [r1] + strb r2, [r4, #0xe] + movs r0, #0x1e + strb r0, [r4, #0xf] + ldr r1, _08098014 @ =gUnk_0812341C + ldrb r0, [r4, #0xa] + adds r0, r0, r1 + ldrb r0, [r0] + adds r1, r4, #0 + adds r1, #0x72 + strh r0, [r1] + movs r0, #0x80 + lsls r0, r0, #6 + str r0, [r4, #0x74] + adds r0, r4, #0 + movs r1, #6 + bl sub_0805E3A0 + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _08098018 + adds r1, r4, #0 + adds r1, #0x7e + movs r0, #0x40 + strh r0, [r1] + adds r0, r4, #0 + movs r1, #1 + movs r2, #0 + bl sub_080AE008 + ldrb r1, [r4, #0xa] + adds r0, r4, #0 + bl LoadAnimation + b _08098032 + .align 2, 0 +_08098014: .4byte gUnk_0812341C +_08098018: + ldr r0, [r4, #0x50] + adds r0, #0x60 + ldrh r1, [r0] + adds r0, r4, #0 + adds r0, #0x60 + strh r1, [r0] + ldr r2, [r4, #0x50] + ldrb r1, [r4, #0xa] + movs r0, #0xd + muls r0, r1, r0 + ldrb r2, [r2, #0x1e] + adds r0, r0, r2 + strb r0, [r4, #0x1e] +_08098032: + adds r0, r4, #0 + bl sub_08098130 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0809803C +sub_0809803C: @ 0x0809803C + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r5, [r4, #0xa] + cmp r5, #0 + bne _08098070 + bl sub_080042B8 + ldrb r0, [r4, #0xb] + cmp r0, #0 + beq _08098082 + ldr r0, _0809806C @ =gLinkEntity + strb r5, [r0, #0xf] + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #1 + bl LoadAnimation + movs r0, #0xbc + lsls r0, r0, #1 + bl PlaySFX + b _08098082 + .align 2, 0 +_0809806C: .4byte gLinkEntity +_08098070: + ldr r2, [r4, #0x50] + ldrb r1, [r4, #0xa] + movs r0, #0xd + muls r0, r1, r0 + ldrb r1, [r2, #0x1e] + adds r0, r0, r1 + strb r0, [r4, #0x1e] + ldrb r0, [r2, #0xc] + strb r0, [r4, #0xc] +_08098082: + pop {r4, r5, pc} + + thumb_func_start sub_08098084 +sub_08098084: @ 0x08098084 + push {r4, lr} + adds r4, r0, #0 + ldr r1, [r4, #0x6c] + movs r0, #0xa0 + lsls r0, r0, #0xd + cmp r1, r0 + bls _080980A8 + ldr r0, _080980A4 @ =gLinkState + ldr r1, [r0, #0x30] + movs r2, #0x80 + orrs r1, r2 + str r1, [r0, #0x30] + bl sub_0805E780 + b _0809812E + .align 2, 0 +_080980A4: .4byte gLinkState +_080980A8: + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _080980D8 + adds r0, r4, #0 + bl sub_080042B8 + adds r2, r4, #0 + adds r2, #0x7e + ldrh r0, [r2] + subs r0, #1 + strh r0, [r2] + lsls r0, r0, #0x10 + ldr r1, _080980D4 @ =0xFFFF0000 + cmp r0, r1 + bne _080980E6 + movs r0, #0x40 + strh r0, [r2] + movs r0, #0xbc + lsls r0, r0, #1 + bl PlaySFX + b _080980E6 + .align 2, 0 +_080980D4: .4byte 0xFFFF0000 +_080980D8: + ldr r2, [r4, #0x50] + ldrb r1, [r4, #0xa] + movs r0, #0xd + muls r0, r1, r0 + ldrb r2, [r2, #0x1e] + adds r0, r0, r2 + strb r0, [r4, #0x1e] +_080980E6: + ldr r0, [r4, #0x6c] + movs r1, #0xa0 + lsls r1, r1, #5 + adds r0, r0, r1 + str r0, [r4, #0x6c] + ldr r0, [r4, #0x70] + ldr r1, [r4, #0x74] + adds r0, r0, r1 + str r0, [r4, #0x70] + adds r2, r4, #0 + adds r2, #0x72 + ldrh r1, [r2] + movs r0, #0x1f + ands r0, r1 + strh r0, [r2] + ldr r0, [r4, #0x74] + movs r1, #0xa0 + lsls r1, r1, #1 + adds r0, r0, r1 + str r0, [r4, #0x74] + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + bne _08098128 + movs r0, #0x1e + strb r0, [r4, #0xf] + ldrb r0, [r4, #0xe] + movs r1, #1 + eors r0, r1 + strb r0, [r4, #0xe] +_08098128: + adds r0, r4, #0 + bl sub_08098130 +_0809812E: + pop {r4, pc} + + thumb_func_start sub_08098130 +sub_08098130: @ 0x08098130 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _08098160 @ =gLinkEntity + adds r1, r4, #0 + bl CopyPosition + adds r0, r4, #0 + adds r0, #0x72 + ldrh r0, [r0] + strb r0, [r4, #0x15] + adds r0, r4, #0 + adds r0, #0x7a + ldrh r0, [r0] + strh r0, [r4, #0x24] + adds r0, r4, #0 + bl sub_0806F69C + ldr r0, [r4, #0x30] + ldr r1, _08098164 @ =0xFFEC0000 + adds r0, r0, r1 + ldr r1, [r4, #0x6c] + adds r0, r0, r1 + str r0, [r4, #0x30] + pop {r4, pc} + .align 2, 0 +_08098160: .4byte gLinkEntity +_08098164: .4byte 0xFFEC0000 + + thumb_func_start sub_08098168 +sub_08098168: @ 0x08098168 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r5, [r4, #0xc] + cmp r5, #0 + bne _080981DA + movs r2, #1 + movs r3, #1 + strb r3, [r4, #0xc] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x18] + ldrb r1, [r4, #0x19] + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #4 + orrs r0, r1 + strb r0, [r4, #0x19] + strb r3, [r4, #0xe] + bl Random + movs r1, #0xf + ands r0, r1 + strb r0, [r4, #0xf] + adds r0, r4, #0 + adds r0, #0x68 + strb r5, [r0] + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #2 + strb r0, [r1] + adds r0, r4, #0 + bl sub_08016A30 + ldr r1, _080981CC @ =gLCDControls + adds r2, r1, #0 + adds r2, #0x66 + movs r3, #0 + movs r0, #0xbd + lsls r0, r0, #6 + strh r0, [r2] + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _080981D4 + adds r1, #0x68 + ldr r0, _080981D0 @ =0x0000060A + b _080981D8 + .align 2, 0 +_080981CC: .4byte gLCDControls +_080981D0: .4byte 0x0000060A +_080981D4: + adds r1, #0x68 + ldr r0, _08098208 @ =0x00000808 +_080981D8: + strh r0, [r1] +_080981DA: + ldrb r0, [r4, #0xa] + adds r3, r4, #0 + adds r3, #0x68 + cmp r0, #0 + beq _08098222 + ldr r0, _0809820C @ =gLinkEntity + movs r2, #0x2e + ldrsh r1, [r0, r2] + ldr r0, _08098210 @ =gRoomControls + ldrh r0, [r0, #6] + subs r1, r1, r0 + movs r0, #0xf8 + lsls r0, r0, #1 + cmp r1, r0 + ble _08098214 + ldrb r1, [r3] + movs r0, #0 + ldrsb r0, [r3, r0] + cmp r0, #0x3f + bgt _08098222 + adds r0, r1, #1 + b _08098220 + .align 2, 0 +_08098208: .4byte 0x00000808 +_0809820C: .4byte gLinkEntity +_08098210: .4byte gRoomControls +_08098214: + ldrb r1, [r3] + movs r0, #0 + ldrsb r0, [r3, r0] + cmp r0, #0 + ble _08098222 + subs r0, r1, #1 +_08098220: + strb r0, [r3] +_08098222: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0809823C + movs r0, #8 + strb r0, [r4, #0xe] + ldrb r0, [r4, #0xf] + adds r0, #1 + movs r1, #0xf + ands r0, r1 + strb r0, [r4, #0xf] +_0809823C: + ldr r1, _0809825C @ =gUnk_08123484 + ldrb r0, [r4, #0xf] + adds r0, r0, r1 + ldrb r0, [r0] + adds r2, r4, #0 + adds r2, #0x62 + strb r0, [r2] + ldrb r0, [r4, #0xf] + adds r0, r0, r1 + ldrb r1, [r3] + ldrb r0, [r0] + adds r1, r1, r0 + adds r0, r4, #0 + adds r0, #0x63 + strb r1, [r0] + pop {r4, r5, pc} + .align 2, 0 +_0809825C: .4byte gUnk_08123484 + + thumb_func_start sub_08098260 +sub_08098260: @ 0x08098260 + push {lr} + ldr r2, _08098274 @ =gUnk_08123494 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08098274: .4byte gUnk_08123494 + + thumb_func_start sub_08098278 +sub_08098278: @ 0x08098278 + push {lr} + adds r3, r0, #0 + adds r3, #0x29 + ldrb r2, [r3] + movs r1, #8 + rsbs r1, r1, #0 + ands r1, r2 + movs r2, #5 + orrs r1, r2 + strb r1, [r3] + bl sub_08098340 + pop {pc} + .align 2, 0 + + thumb_func_start sub_08098294 +sub_08098294: @ 0x08098294 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_08098418 + cmp r0, #0 + beq _080982FA + movs r5, #0 + movs r0, #2 + strb r0, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x62 + strb r5, [r0] + adds r0, #1 + strb r5, [r0] + adds r0, #0xf + ldrh r0, [r0] + adds r1, r4, #0 + adds r1, #0x70 + ldrh r1, [r1] + adds r2, r4, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl UpdateCollisionLayer + movs r0, #0xb5 + lsls r0, r0, #1 + bl sub_08004488 + adds r0, r4, #0 + movs r1, #0x1e + bl sub_0805E4E0 + bl sub_08079F8C + cmp r0, #0 + beq _080982FA + ldr r2, _080982FC @ =gLinkState + movs r0, #0x90 + strb r0, [r2, #6] + movs r0, #5 + strb r0, [r2, #0xc] + ldr r0, [r2, #0x30] + movs r1, #1 + orrs r0, r1 + str r0, [r2, #0x30] + ldr r1, _08098300 @ =gLinkEntity + strh r5, [r1, #0x2c] + strh r5, [r1, #0x30] + ldrb r0, [r1, #0x14] + lsls r0, r0, #2 + strb r0, [r1, #0x15] +_080982FA: + pop {r4, r5, pc} + .align 2, 0 +_080982FC: .4byte gLinkState +_08098300: .4byte gLinkEntity + + thumb_func_start sub_08098304 +sub_08098304: @ 0x08098304 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0809833C + ldrb r0, [r4, #0xb] + cmp r0, #0 + bne _0809832C + adds r0, r4, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CCC8 + b _08098336 +_0809832C: + adds r0, r4, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CD48 +_08098336: + adds r0, r4, #0 + bl sub_08098340 +_0809833C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08098340 +sub_08098340: @ 0x08098340 + push {lr} + movs r1, #1 + strb r1, [r0, #0xc] + adds r2, r0, #0 + adds r2, #0x74 + movs r1, #0x3c + strh r1, [r2] + bl sub_08098354 + pop {pc} + + thumb_func_start sub_08098354 +sub_08098354: @ 0x08098354 + push {r4, r5, r6, lr} + adds r6, r0, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CBE4 + cmp r0, #0 + bne _080983BC + strb r0, [r6, #0xb] + movs r0, #0x2e + ldrsh r2, [r6, r0] + ldr r1, _080983B4 @ =gRoomControls + ldrh r0, [r1, #6] + subs r2, r2, r0 + asrs r2, r2, #4 + movs r3, #0x3f + ands r2, r3 + movs r4, #0x32 + ldrsh r0, [r6, r4] + ldrh r1, [r1, #8] + adds r1, #0x10 + subs r0, r0, r1 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r2, r0 + adds r4, r6, #0 + adds r4, #0x70 + strh r2, [r4] + ldrh r0, [r4] + adds r5, r6, #0 + adds r5, #0x38 + ldrb r1, [r5] + bl sub_080001DA + adds r1, r6, #0 + adds r1, #0x72 + strh r0, [r1] + ldr r0, _080983B8 @ =0x00004053 + ldrh r1, [r4] + ldrb r2, [r5] + bl UpdateCollisionLayer + adds r0, r6, #0 + movs r1, #1 + bl UpdateSprite + b _0809840C + .align 2, 0 +_080983B4: .4byte gRoomControls +_080983B8: .4byte 0x00004053 +_080983BC: + movs r0, #1 + strb r0, [r6, #0xb] + movs r0, #0x2e + ldrsh r2, [r6, r0] + ldr r1, _08098410 @ =gRoomControls + ldrh r0, [r1, #6] + adds r0, #0x10 + subs r2, r2, r0 + asrs r2, r2, #4 + movs r3, #0x3f + ands r2, r3 + movs r4, #0x32 + ldrsh r0, [r6, r4] + ldrh r1, [r1, #8] + subs r0, r0, r1 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r2, r0 + adds r4, r6, #0 + adds r4, #0x70 + strh r2, [r4] + ldrh r0, [r4] + adds r5, r6, #0 + adds r5, #0x38 + ldrb r1, [r5] + bl sub_080001DA + adds r1, r6, #0 + adds r1, #0x72 + strh r0, [r1] + ldr r0, _08098414 @ =0x00004052 + ldrh r1, [r4] + ldrb r2, [r5] + bl UpdateCollisionLayer + adds r0, r6, #0 + movs r1, #0 + bl UpdateSprite +_0809840C: + pop {r4, r5, r6, pc} + .align 2, 0 +_08098410: .4byte gRoomControls +_08098414: .4byte 0x00004052 + + thumb_func_start sub_08098418 +sub_08098418: @ 0x08098418 + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r6, r4, #0 + adds r6, #0x70 + ldrh r0, [r6] + adds r5, r4, #0 + adds r5, #0x38 + ldrb r1, [r5] + bl sub_080001DA + ldr r1, _08098448 @ =0x00004054 + cmp r0, r1 + bne _0809846C + adds r1, r4, #0 + adds r1, #0x74 + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0809844C + movs r0, #1 + b _08098482 + .align 2, 0 +_08098448: .4byte 0x00004054 +_0809844C: + adds r0, r4, #0 + bl sub_08098484 + ldr r1, _08098468 @ =gUnk_081234A0 + ldrb r0, [r4, #0xb] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r0, [r0] + ldrh r1, [r6] + ldrb r2, [r5] + bl UpdateCollisionLayer + b _08098480 + .align 2, 0 +_08098468: .4byte gUnk_081234A0 +_0809846C: + adds r1, r4, #0 + adds r1, #0x74 + movs r2, #0 + movs r0, #0x3c + strh r0, [r1] + adds r0, r4, #0 + adds r0, #0x62 + strb r2, [r0] + adds r0, #1 + strb r2, [r0] +_08098480: + movs r0, #0 +_08098482: + pop {r4, r5, r6, pc} + + thumb_func_start sub_08098484 +sub_08098484: @ 0x08098484 + push {r4, lr} + adds r3, r0, #0 + ldrb r0, [r3, #0xb] + ldr r4, _080984C4 @ =gUnk_081234AC + cmp r0, #0 + bne _08098492 + ldr r4, _080984C8 @ =gUnk_081234A4 +_08098492: + adds r2, r3, #0 + adds r2, #0x74 + ldrh r0, [r2] + lsrs r0, r0, #2 + movs r1, #6 + ands r0, r1 + adds r4, r4, r0 + ldrb r0, [r4] + adds r1, r3, #0 + adds r1, #0x62 + strb r0, [r1] + ldrb r1, [r4, #1] + adds r0, r3, #0 + adds r0, #0x63 + strb r1, [r0] + ldrh r1, [r2] + movs r0, #3 + ands r0, r1 + cmp r0, #0 + bne _080984C2 + movs r0, #0x82 + lsls r0, r0, #1 + bl sub_08004488 +_080984C2: + pop {r4, pc} + .align 2, 0 +_080984C4: .4byte gUnk_081234AC +_080984C8: .4byte gUnk_081234A4 + + thumb_func_start sub_080984CC +sub_080984CC: @ 0x080984CC + push {r4, lr} + adds r4, r0, #0 + ldr r1, _080984E8 @ =gUnk_08123504 + ldrb r0, [r4, #0xc] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + adds r0, r4, #0 + bl sub_0800445C + pop {r4, pc} + .align 2, 0 +_080984E8: .4byte gUnk_08123504 + + thumb_func_start sub_080984EC +sub_080984EC: @ 0x080984EC + push {lr} + movs r1, #1 + strb r1, [r0, #0xc] + ldr r2, _08098528 @ =gUnk_081234EC + ldrb r1, [r0, #0xa] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + str r1, [r0, #0x48] + ldrb r0, [r0, #0xb] + cmp r0, #1 + bne _08098524 + ldr r0, _0809852C @ =0x00004024 + movs r1, #0x82 + lsls r1, r1, #3 + movs r2, #1 + bl UpdateCollisionLayer + ldr r0, _08098530 @ =0x00004026 + ldr r1, _08098534 @ =0x00000411 + movs r2, #1 + bl UpdateCollisionLayer + ldr r0, _08098538 @ =0x00004025 + ldr r1, _0809853C @ =0x00000412 + movs r2, #1 + bl UpdateCollisionLayer +_08098524: + pop {pc} + .align 2, 0 +_08098528: .4byte gUnk_081234EC +_0809852C: .4byte 0x00004024 +_08098530: .4byte 0x00004026 +_08098534: .4byte 0x00000411 +_08098538: .4byte 0x00004025 +_0809853C: .4byte 0x00000412 + + thumb_func_start nullsub_532 +nullsub_532: @ 0x08098540 + bx lr + .align 2, 0 + + thumb_func_start sub_08098544 +sub_08098544: @ 0x08098544 + push {lr} + ldr r2, _08098558 @ =gUnk_0812350C + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08098558: .4byte gUnk_0812350C + + thumb_func_start sub_0809855C +sub_0809855C: @ 0x0809855C + push {r4, r5, lr} + adds r4, r0, #0 + movs r3, #0 + movs r5, #1 + strb r5, [r4, #0xc] + ldrb r0, [r4, #0x10] + movs r2, #0x80 + orrs r0, r2 + strb r0, [r4, #0x10] + movs r0, #0x29 + adds r0, r0, r4 + mov ip, r0 + ldrb r1, [r0] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #6 + orrs r0, r1 + mov r1, ip + strb r0, [r1] + ldrb r1, [r4, #0x19] + movs r0, #0x3f + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x19] + strb r3, [r4, #0xf] + adds r1, r4, #0 + adds r1, #0x3f + movs r0, #0x6e + strb r0, [r1] + subs r1, #4 + movs r0, #0x86 + strb r0, [r1] + strb r3, [r4, #0x16] + ldrb r0, [r4, #0xa] + cmp r0, #0 + beq _080985AC + movs r0, #2 + strb r0, [r4, #0x1c] + b _080985AE +_080985AC: + strb r5, [r4, #0x1c] +_080985AE: + ldr r1, [r4, #0x50] + adds r0, r4, #0 + bl sub_0806FAD8 + adds r0, r4, #0 + bl sub_08098918 + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_080985C0 +sub_080985C0: @ 0x080985C0 + push {r4, lr} + adds r4, r0, #0 + bl sub_080989E4 + cmp r0, #0 + bne _080985CE + b _080986FC +_080985CE: + ldrb r0, [r0, #0xc] + cmp r0, #4 + bls _080985D6 + b _080986E6 +_080985D6: + adds r0, r4, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _080985E6 + b _080986EE +_080985E6: + movs r0, #0x3f + ands r0, r1 + subs r0, #4 + cmp r0, #0x1c + bls _080985F2 + b _08098702 +_080985F2: + lsls r0, r0, #2 + ldr r1, _080985FC @ =_08098600 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080985FC: .4byte _08098600 +_08098600: @ jump table + .4byte _080986C4 @ case 0 + .4byte _080986C4 @ case 1 + .4byte _080986C4 @ case 2 + .4byte _08098702 @ case 3 + .4byte _080986C4 @ case 4 + .4byte _080986C4 @ case 5 + .4byte _080986C4 @ case 6 + .4byte _080986C4 @ case 7 + .4byte _080986C4 @ case 8 + .4byte _080986C4 @ case 9 + .4byte _08098702 @ case 10 + .4byte _0809867E @ case 11 + .4byte _080986C4 @ case 12 + .4byte _080986C4 @ case 13 + .4byte _080986C4 @ case 14 + .4byte _08098674 @ case 15 + .4byte _080986E0 @ case 16 + .4byte _08098702 @ case 17 + .4byte _080986E0 @ case 18 + .4byte _08098702 @ case 19 + .4byte _080986C4 @ case 20 + .4byte _080986C4 @ case 21 + .4byte _080986C4 @ case 22 + .4byte _08098702 @ case 23 + .4byte _08098702 @ case 24 + .4byte _0809867E @ case 25 + .4byte _08098702 @ case 26 + .4byte _08098702 @ case 27 + .4byte _080986E0 @ case 28 +_08098674: + movs r1, #0 + movs r0, #3 + strb r0, [r4, #0xc] + strb r1, [r4, #0xd] + b _08098702 +_0809867E: + movs r2, #0 + movs r0, #4 + strb r0, [r4, #0xc] + movs r0, #0xa8 + lsls r0, r0, #0xa + str r0, [r4, #0x20] + adds r0, r4, #0 + adds r0, #0x63 + strb r2, [r0] + ldrb r1, [r4, #0x18] + movs r0, #0x31 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #0x10 + orrs r0, r1 + strb r0, [r4, #0x18] + adds r3, r4, #0 + adds r3, #0x29 + ldrb r1, [r3] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #0x18 + orrs r0, r1 + strb r0, [r3] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + ldr r0, [r4, #0x50] + str r2, [r0, #0x54] + adds r0, r4, #0 + bl sub_080988E8 + b _08098702 +_080986C4: + ldrb r0, [r4, #0xa] + cmp r0, #0 + beq _080986E6 + ldr r0, _080986DC @ =gLinkState + adds r0, #0xac + ldrh r1, [r0] + movs r0, #8 + ands r0, r1 + cmp r0, #0 + beq _08098702 + b _080986E6 + .align 2, 0 +_080986DC: .4byte gLinkState +_080986E0: + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _08098702 +_080986E6: + adds r0, r4, #0 + bl sub_080989C0 + b _08098702 +_080986EE: + adds r0, r4, #0 + bl sub_08098918 + adds r0, r4, #0 + bl sub_08078930 + b _08098702 +_080986FC: + adds r0, r4, #0 + bl sub_080989C0 +_08098702: + pop {r4, pc} + + thumb_func_start sub_08098704 +sub_08098704: @ 0x08098704 + push {lr} + ldr r2, _08098718 @ =gUnk_08123524 + ldrb r1, [r0, #0xd] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08098718: .4byte gUnk_08123524 + + thumb_func_start sub_0809871C +sub_0809871C: @ 0x0809871C + adds r3, r0, #0 + ldrb r1, [r3, #0x10] + movs r0, #0x80 + movs r2, #0 + orrs r0, r1 + strb r0, [r3, #0x10] + adds r1, r3, #0 + adds r1, #0x3c + movs r0, #7 + strb r0, [r1] + adds r1, #3 + movs r0, #1 + strb r0, [r1] + ldr r0, _08098754 @ =gLinkEntity + adds r0, #0x3b + ldrb r0, [r0] + subs r1, #4 + strb r0, [r1] + adds r0, r3, #0 + adds r0, #0x63 + strb r2, [r0] + ldr r0, [r3, #0x50] + str r2, [r0, #0x54] + ldrb r0, [r3, #0xd] + adds r0, #1 + strb r0, [r3, #0xd] + bx lr + .align 2, 0 +_08098754: .4byte gLinkEntity + + thumb_func_start nullsub_533 +nullsub_533: @ 0x08098758 + bx lr + .align 2, 0 + + thumb_func_start sub_0809875C +sub_0809875C: @ 0x0809875C + adds r0, #0x29 + ldrb r2, [r0] + movs r1, #0x39 + rsbs r1, r1, #0 + ands r1, r2 + movs r2, #0x18 + orrs r1, r2 + strb r1, [r0] + bx lr + .align 2, 0 + + thumb_func_start sub_08098770 +sub_08098770: @ 0x08098770 + push {r4, lr} + adds r4, r0, #0 + bl sub_080043E8 + cmp r0, #2 + beq _0809878C + cmp r0, #2 + bhi _08098786 + cmp r0, #1 + beq _08098792 + b _080987A4 +_08098786: + cmp r0, #3 + beq _08098798 + b _080987A4 +_0809878C: + adds r0, r4, #0 + movs r1, #0xb + b _0809879C +_08098792: + adds r0, r4, #0 + movs r1, #0 + b _0809879C +_08098798: + adds r0, r4, #0 + movs r1, #0xc +_0809879C: + movs r2, #0 + bl CreateFx + b _080987AC +_080987A4: + adds r0, r4, #0 + bl sub_080989C0 + b _080987B0 +_080987AC: + bl sub_0805E780 +_080987B0: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080987B4 +sub_080987B4: @ 0x080987B4 + push {lr} + bl sub_0805E780 + pop {pc} + + thumb_func_start sub_080987BC +sub_080987BC: @ 0x080987BC + push {lr} + adds r1, r0, #0 + ldr r0, _080987D0 @ =gLinkState + ldrb r0, [r0, #5] + cmp r0, #0 + bne _080987CE + adds r0, r1, #0 + bl sub_080987D4 +_080987CE: + pop {pc} + .align 2, 0 +_080987D0: .4byte gLinkState + + thumb_func_start sub_080987D4 +sub_080987D4: @ 0x080987D4 + movs r2, #0 + movs r1, #1 + strb r1, [r0, #0xc] + strb r2, [r0, #0xd] + bx lr + .align 2, 0 + + thumb_func_start sub_080987E0 +sub_080987E0: @ 0x080987E0 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _0809880C @ =gUnk_08123540 + ldrb r0, [r4, #0xd] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + ldrb r0, [r4, #0xd] + cmp r0, #1 + bhi _0809880A + adds r0, r4, #0 + bl sub_080989E4 + cmp r0, #0 + bne _0809880A + adds r0, r4, #0 + bl sub_080989C0 +_0809880A: + pop {r4, pc} + .align 2, 0 +_0809880C: .4byte gUnk_08123540 + + thumb_func_start sub_08098810 +sub_08098810: @ 0x08098810 + movs r2, #0 + movs r1, #1 + strb r1, [r0, #0xd] + movs r1, #0x30 + strb r1, [r0, #0x1d] + strb r2, [r0, #0xe] + bx lr + .align 2, 0 + + thumb_func_start sub_08098820 +sub_08098820: @ 0x08098820 + push {lr} + adds r2, r0, #0 + ldr r0, _0809884C @ =gLinkState + ldrb r1, [r0, #0x1c] + movs r0, #0xf + ands r0, r1 + cmp r0, #1 + bne _0809883E + adds r0, r2, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0x13 + beq _08098850 +_0809883E: + adds r1, r2, #0 + adds r1, #0x62 + movs r0, #0 + strb r0, [r1] + movs r0, #1 + strb r0, [r2, #0xc] + b _08098856 + .align 2, 0 +_0809884C: .4byte gLinkState +_08098850: + adds r0, r2, #0 + bl sub_0806F4E8 +_08098856: + pop {pc} + + thumb_func_start sub_08098858 +sub_08098858: @ 0x08098858 + push {r4, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0xe] + cmp r1, #0 + bne _08098878 + movs r0, #1 + strb r0, [r4, #0xe] + adds r0, r4, #0 + adds r0, #0x62 + strb r1, [r0] + adds r2, r4, #0 + adds r2, #0x63 + movs r0, #0xfe + strb r0, [r2] + ldr r0, [r4, #0x50] + str r1, [r0, #0x54] +_08098878: + ldr r0, _0809889C @ =gLinkState + ldrb r1, [r0, #0x1c] + movs r0, #0xf + ands r0, r1 + cmp r0, #1 + bne _08098892 + adds r0, r4, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0x13 + beq _080988A0 +_08098892: + adds r0, r4, #0 + bl sub_080989C0 + b _080988B4 + .align 2, 0 +_0809889C: .4byte gLinkState +_080988A0: + adds r0, r4, #0 + bl sub_0806F3E4 + cmp r0, #0 + beq _080988B4 + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _080988B4 + bl sub_0805E780 +_080988B4: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080988B8 +sub_080988B8: @ 0x080988B8 + push {lr} + adds r2, r0, #0 + ldr r0, _080988CC @ =gLinkState + ldrb r0, [r0, #0x1c] + cmp r0, #0 + bne _080988D0 + adds r0, r2, #0 + bl sub_080989C0 + b _080988D8 + .align 2, 0 +_080988CC: .4byte gLinkState +_080988D0: + ldrb r1, [r2, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r2, #0x10] +_080988D8: + pop {pc} + .align 2, 0 + + thumb_func_start nullsub_123 +nullsub_123: @ 0x080988DC + bx lr + .align 2, 0 + + thumb_func_start sub_080988E0 +sub_080988E0: @ 0x080988E0 + push {lr} + bl sub_080989C0 + pop {pc} + + thumb_func_start sub_080988E8 +sub_080988E8: @ 0x080988E8 + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x20] + cmp r0, #0 + bge _080988FA + ldrb r0, [r4, #0x18] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r4, #0x18] +_080988FA: + movs r1, #0x80 + lsls r1, r1, #6 + adds r0, r4, #0 + bl sub_08003FC4 + cmp r0, #0 + bne _0809890E + adds r0, r4, #0 + bl sub_080989C0 +_0809890E: + pop {r4, pc} + + thumb_func_start sub_08098910 +sub_08098910: @ 0x08098910 + push {lr} + bl sub_080989C0 + pop {pc} + + thumb_func_start sub_08098918 +sub_08098918: @ 0x08098918 + push {r4, r5, r6, lr} + adds r4, r0, #0 + bl sub_080989E4 + adds r6, r0, #0 + cmp r6, #0 + bne _0809892E + adds r0, r4, #0 + bl sub_080989C0 + b _080989BC +_0809892E: + adds r0, r6, #0 + adds r1, r4, #0 + bl CopyPosition + ldrb r1, [r6, #0x10] + movs r0, #0x80 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #0 + beq _08098990 + ldrb r0, [r4, #0xf] + cmp r0, #0 + bne _08098968 + adds r0, #1 + strb r0, [r4, #0xf] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #3 + orrs r0, r1 + strb r0, [r2] + ldr r1, [r4, #0x50] + adds r0, r4, #0 + bl sub_0806FAD8 +_08098968: + ldr r2, _0809898C @ =gUnk_08123558 + adds r0, r6, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0xf + ands r0, r1 + adds r0, r0, r2 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + subs r0, #8 + movs r1, #0 + strh r0, [r4, #0x36] + adds r0, r4, #0 + adds r0, #0x63 + strb r1, [r0] + b _080989BC + .align 2, 0 +_0809898C: .4byte gUnk_08123558 +_08098990: + ldrb r0, [r4, #0xf] + cmp r0, #0 + beq _080989B2 + strb r5, [r4, #0xf] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #6 + orrs r0, r1 + strb r0, [r2] + ldr r1, [r4, #0x50] + adds r0, r4, #0 + bl sub_0806FAD8 +_080989B2: + strh r5, [r4, #0x36] + adds r1, r4, #0 + adds r1, #0x63 + movs r0, #3 + strb r0, [r1] +_080989BC: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_080989C0 +sub_080989C0: @ 0x080989C0 + push {r4, lr} + adds r4, r0, #0 + bl sub_080989E4 + cmp r0, #0 + beq _080989D2 + ldr r1, [r4, #0x50] + movs r0, #0 + str r0, [r1, #0x54] +_080989D2: + ldrb r1, [r4, #0xa] + adds r1, #3 + adds r0, r4, #0 + movs r2, #0 + bl CreateFx + bl sub_0805E780 + pop {r4, pc} + + thumb_func_start sub_080989E4 +sub_080989E4: @ 0x080989E4 + push {lr} + ldr r1, [r0, #0x50] + cmp r1, #0 + beq _080989F4 + ldr r0, [r1, #4] + cmp r0, #0 + bne _080989F4 + movs r1, #0 +_080989F4: + adds r0, r1, #0 + pop {pc} + + thumb_func_start sub_080989F8 +sub_080989F8: @ 0x080989F8 + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x50] + ldr r0, [r0, #4] + cmp r0, #0 + bne _08098A08 + bl sub_0805E780 +_08098A08: + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _08098A44 + movs r0, #1 + strb r0, [r4, #0xc] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #7 + orrs r0, r1 + strb r0, [r2] + movs r0, #0x28 + strb r0, [r4, #0x1e] + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _08098A38 + ldrb r0, [r4, #0x18] + movs r1, #4 + rsbs r1, r1, #0 + ands r1, r0 + movs r0, #1 + orrs r1, r0 + strb r1, [r4, #0x18] + b _08098A44 +_08098A38: + cmp r0, #2 + bne _08098A44 + ldrb r0, [r4, #0x18] + movs r1, #0x40 + orrs r0, r1 + strb r0, [r4, #0x18] +_08098A44: + ldr r0, [r4, #0x50] + movs r3, #0x80 + lsls r3, r3, #0xc + adds r1, r4, #0 + movs r2, #0 + bl PositionRelative + movs r0, #0 + strh r0, [r4, #0x36] + ldrb r0, [r4, #0xa] + cmp r0, #0 + beq _08098A76 + ldr r3, [r4, #0x54] + ldrb r1, [r3, #0x18] + lsls r1, r1, #0x1e + lsrs r1, r1, #0x1e + ldrb r2, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x18] + ldrb r0, [r3, #0x1e] + adds r0, #0x1f + strb r0, [r4, #0x1e] +_08098A76: + pop {r4, pc} + + thumb_func_start sub_08098A78 +sub_08098A78: @ 0x08098A78 + push {lr} + ldr r2, _08098A8C @ =gUnk_08123568 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08098A8C: .4byte gUnk_08123568 + + thumb_func_start sub_08098A90 +sub_08098A90: @ 0x08098A90 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xb] + cmp r0, #1 + beq _08098A9C + movs r0, #2 +_08098A9C: + strb r0, [r4, #0xc] + bl Random + movs r1, #0x7f + ands r0, r1 + adds r0, #0x7f + strb r0, [r4, #0xe] + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #1 + strb r0, [r1] + adds r0, r4, #0 + bl UpdateSpriteOrderAndFlip + ldr r1, _08098ACC @ =gUnk_08123574 + ldrb r0, [r4, #0xa] + adds r0, r0, r1 + ldrb r1, [r0] + ldrb r0, [r4, #0xb] + adds r1, r1, r0 + adds r0, r4, #0 + bl UpdateSprite + pop {r4, pc} + .align 2, 0 +_08098ACC: .4byte gUnk_08123574 + + thumb_func_start sub_08098AD0 +sub_08098AD0: @ 0x08098AD0 + push {lr} + adds r1, r0, #0 + ldrb r0, [r1, #0xe] + subs r0, #1 + strb r0, [r1, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08098AE6 + ldrb r0, [r1, #0xc] + adds r0, #1 + strb r0, [r1, #0xc] +_08098AE6: + pop {pc} + + thumb_func_start sub_08098AE8 +sub_08098AE8: @ 0x08098AE8 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r4, #0x5a + ldrb r1, [r4] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08098B08 + movs r0, #0xfe + ands r0, r1 + strb r0, [r4] + ldr r0, _08098B0C @ =0x0000021B + bl sub_08004488 +_08098B08: + pop {r4, pc} + .align 2, 0 +_08098B0C: .4byte 0x0000021B + + thumb_func_start sub_08098B10 +sub_08098B10: @ 0x08098B10 + push {lr} + ldr r2, _08098B24 @ =gUnk_08123664 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08098B24: .4byte gUnk_08123664 + + thumb_func_start sub_08098B28 +sub_08098B28: @ 0x08098B28 + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + ldrb r2, [r5, #0xa] + lsls r2, r2, #1 + ldr r0, _08098BD4 @ =gUnk_0812366C + adds r2, r2, r0 + movs r3, #1 + movs r4, #1 + strb r4, [r5, #0xc] + ldrb r1, [r5, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + orrs r0, r3 + strb r0, [r5, #0x18] + ldrb r0, [r5, #0xa] + strb r0, [r5, #0x1e] + ldrb r0, [r2] + adds r1, r5, #0 + adds r1, #0x82 + strb r0, [r1] + ldrb r0, [r2, #1] + adds r2, r5, #0 + adds r2, #0x83 + strb r0, [r2] + ldrb r0, [r1] + lsrs r0, r0, #1 + ldrh r1, [r5, #0x2e] + subs r1, r1, r0 + adds r0, r5, #0 + adds r0, #0x78 + strh r1, [r0] + ldrb r0, [r2] + lsrs r0, r0, #1 + ldrh r1, [r5, #0x32] + subs r1, r1, r0 + subs r2, #9 + strh r1, [r2] + movs r0, #0x2e + ldrsh r1, [r5, r0] + ldr r2, _08098BD8 @ =gRoomControls + ldrh r0, [r2, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + movs r3, #0x3f + ands r1, r3 + movs r6, #0x32 + ldrsh r0, [r5, r6] + ldrh r2, [r2, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r1, r0 + adds r6, r5, #0 + adds r6, #0x80 + strh r1, [r6] + adds r7, r5, #0 + adds r7, #0x38 + strb r4, [r7] + adds r0, r5, #0 + bl UpdateSpriteOrderAndFlip + adds r2, r5, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #6 + orrs r0, r1 + strb r0, [r2] + ldrb r0, [r5, #0xa] + cmp r0, #0 + bne _08098BCA + ldr r0, _08098BDC @ =0x00004074 + ldrh r1, [r6] + subs r1, #0x40 + ldrb r2, [r7] + bl UpdateCollisionLayer +_08098BCA: + adds r0, r5, #0 + bl sub_08098BE8 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08098BD4: .4byte gUnk_0812366C +_08098BD8: .4byte gRoomControls +_08098BDC: .4byte 0x00004074 + + thumb_func_start sub_08098BE0 +sub_08098BE0: @ 0x08098BE0 + push {lr} + bl sub_08098BE8 + pop {pc} + + thumb_func_start sub_08098BE8 +sub_08098BE8: @ 0x08098BE8 + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldr r6, _08098C28 @ =gLinkState + ldr r0, [r6, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08098C26 + ldr r4, _08098C2C @ =gLinkEntity + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_08098C30 + cmp r0, #0 + beq _08098C26 + bl sub_08079F8C + cmp r0, #0 + beq _08098C26 + movs r1, #0x36 + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _08098C26 + movs r0, #1 + strb r0, [r6, #0x14] + adds r0, r5, #0 + adds r0, #0x80 + ldrh r1, [r0] + adds r0, r4, #0 + bl sub_0807AAF8 +_08098C26: + pop {r4, r5, r6, pc} + .align 2, 0 +_08098C28: .4byte gLinkState +_08098C2C: .4byte gLinkEntity + + thumb_func_start sub_08098C30 +sub_08098C30: @ 0x08098C30 + push {r4, lr} + adds r3, r0, #0 + movs r4, #0 + movs r0, #0x2e + ldrsh r2, [r1, r0] + adds r0, r3, #0 + adds r0, #0x78 + ldrh r0, [r0] + subs r2, r2, r0 + movs r0, #0x32 + ldrsh r1, [r1, r0] + adds r0, r3, #0 + adds r0, #0x7a + ldrh r0, [r0] + subs r1, r1, r0 + adds r0, r3, #0 + adds r0, #0x82 + ldrb r0, [r0] + cmp r2, r0 + bhi _08098C64 + adds r0, r3, #0 + adds r0, #0x83 + ldrb r0, [r0] + cmp r1, r0 + bhi _08098C64 + movs r4, #1 +_08098C64: + adds r0, r4, #0 + pop {r4, pc} + + thumb_func_start sub_08098C68 +sub_08098C68: @ 0x08098C68 + push {lr} + ldr r2, _08098C7C @ =gUnk_08123674 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08098C7C: .4byte gUnk_08123674 + + thumb_func_start sub_08098C80 +sub_08098C80: @ 0x08098C80 + push {r4, r5, r6, lr} + adds r4, r0, #0 + movs r0, #0 + movs r5, #1 + strb r5, [r4, #0xc] + strb r0, [r4, #0xe] + movs r0, #0x2e + ldrsh r1, [r4, r0] + ldr r2, _08098CC8 @ =gRoomControls + ldrh r0, [r2, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + movs r3, #0x3f + ands r1, r3 + movs r6, #0x32 + ldrsh r0, [r4, r6] + ldrh r2, [r2, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r1, r0 + adds r0, r4, #0 + adds r0, #0x80 + strh r1, [r0] + ldr r0, _08098CCC @ =gLinkState + ldr r0, [r0, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08098CD0 + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #2 + strb r0, [r1] + b _08098CD6 + .align 2, 0 +_08098CC8: .4byte gRoomControls +_08098CCC: .4byte gLinkState +_08098CD0: + adds r0, r4, #0 + adds r0, #0x38 + strb r5, [r0] +_08098CD6: + adds r0, r4, #0 + bl UpdateSpriteOrderAndFlip + adds r0, r4, #0 + adds r0, #0x80 + ldrh r1, [r0] + subs r1, #0x40 + movs r0, #0x47 + movs r2, #1 + bl sub_08000148 + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start nullsub_124 +nullsub_124: @ 0x08098CF0 + bx lr + .align 2, 0 + + thumb_func_start sub_08098CF4 +sub_08098CF4: @ 0x08098CF4 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xa] + cmp r0, #0 + bne _08098D14 + ldr r0, _08098D10 @ =gUnk_0812367C + ldrb r1, [r2, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r2, #0 + bl _call_via_r1 + b _08098D1A + .align 2, 0 +_08098D10: .4byte gUnk_0812367C +_08098D14: + adds r0, r2, #0 + bl sub_08098E3C +_08098D1A: + pop {pc} + + thumb_func_start sub_08098D1C +sub_08098D1C: @ 0x08098D1C + push {r4, r5, lr} + adds r4, r0, #0 + movs r5, #1 + strb r5, [r4, #0xc] + ldr r0, _08098D40 @ =0x0000FFF0 + strh r0, [r4, #0x36] + adds r0, r4, #0 + adds r0, #0x86 + ldrh r0, [r0] + cmp r0, #0 + beq _08098D44 + bl sub_0807CBE4 + cmp r0, #0 + bne _08098D44 + strb r5, [r4, #0xc] + b _08098D5A + .align 2, 0 +_08098D40: .4byte 0x0000FFF0 +_08098D44: + movs r0, #3 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #7 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + adds r0, r4, #0 + bl sub_08098E88 +_08098D5A: + adds r0, r4, #0 + movs r1, #6 + bl sub_0805E3A0 + adds r0, r4, #0 + movs r1, #0 + bl LoadAnimation + pop {r4, r5, pc} + + thumb_func_start sub_08098D6C +sub_08098D6C: @ 0x08098D6C + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CBE4 + cmp r0, #0 + beq _08098D9A + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #0x2d + strb r0, [r4, #0xe] + adds r0, r4, #0 + movs r1, #0x43 + movs r2, #0 + bl CreateFx + adds r1, r0, #0 + cmp r1, #0 + beq _08098D9A + ldrh r0, [r1, #0x32] + adds r0, #8 + strh r0, [r1, #0x32] +_08098D9A: + pop {r4, pc} + + thumb_func_start sub_08098D9C +sub_08098D9C: @ 0x08098D9C + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xe] + subs r0, #1 + strb r0, [r2, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08098DC2 + movs r0, #3 + strb r0, [r2, #0xc] + ldrb r1, [r2, #0x18] + subs r0, #7 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r2, #0x18] + adds r0, r2, #0 + bl sub_08098E88 +_08098DC2: + pop {pc} + + thumb_func_start sub_08098DC4 +sub_08098DC4: @ 0x08098DC4 + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldr r6, _08098E2C @ =gLinkEntity + adds r1, r6, #0 + movs r2, #8 + movs r3, #8 + bl sub_0800419C + cmp r0, #0 + beq _08098E24 + adds r0, r5, #0 + adds r1, r6, #0 + bl CopyPosition + adds r0, r5, #0 + bl sub_08004542 + adds r0, r6, #0 + bl sub_08004542 + adds r0, r6, #0 + adds r0, #0x38 + movs r4, #1 + strb r4, [r0] + adds r0, r5, #0 + adds r1, r6, #0 + bl sub_0806FAB0 + ldr r1, _08098E30 @ =gLinkState + movs r0, #0x1f + strb r0, [r1, #0xc] + adds r0, r1, #0 + adds r0, #0x38 + strb r4, [r0] + ldrb r0, [r5, #0xb] + adds r1, #0x39 + strb r0, [r1] + movs r1, #4 + strb r1, [r5, #0xc] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _08098E20 + movs r0, #0x23 + bl sub_0807CD04 +_08098E20: + bl sub_08077B20 +_08098E24: + adds r0, r5, #0 + bl sub_080042B8 + pop {r4, r5, r6, pc} + .align 2, 0 +_08098E2C: .4byte gLinkEntity +_08098E30: .4byte gLinkState + + thumb_func_start sub_08098E34 +sub_08098E34: @ 0x08098E34 + push {lr} + bl sub_080042B8 + pop {pc} + + thumb_func_start sub_08098E3C +sub_08098E3C: @ 0x08098E3C + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _08098E5E + movs r2, #1 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #5 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x18] + ldrb r1, [r4, #0xa] + adds r0, r4, #0 + bl LoadAnimation +_08098E5E: + ldrb r1, [r4, #0xa] + movs r0, #2 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r0, r0, #1 + ldr r1, _08098E84 @ =gUnk_08123690 + adds r0, r0, r1 + ldrh r1, [r0] + ldrh r2, [r0, #2] + adds r0, r4, #0 + movs r3, #0 + bl sub_0805EC9C + adds r0, r4, #0 + bl sub_080042B8 + pop {r4, pc} + .align 2, 0 +_08098E84: .4byte gUnk_08123690 + + thumb_func_start sub_08098E88 +sub_08098E88: @ 0x08098E88 + push {r4, r5, lr} + adds r5, r0, #0 + movs r0, #0x82 + movs r1, #1 + movs r2, #0 + bl CreateObject + adds r4, r0, #0 + cmp r4, #0 + beq _08098EB0 + ldr r3, _08098ED8 @ =0xFFFF0000 + adds r0, r5, #0 + adds r1, r4, #0 + movs r2, #0 + bl PositionRelative + adds r1, r4, #0 + adds r1, #0x63 + movs r0, #8 + strb r0, [r1] +_08098EB0: + movs r0, #0x82 + movs r1, #2 + movs r2, #0 + bl CreateObject + adds r4, r0, #0 + cmp r4, #0 + beq _08098ED4 + ldr r3, _08098EDC @ =0xFFFE0000 + adds r0, r5, #0 + adds r1, r4, #0 + movs r2, #0 + bl PositionRelative + adds r1, r4, #0 + adds r1, #0x63 + movs r0, #0x10 + strb r0, [r1] +_08098ED4: + pop {r4, r5, pc} + .align 2, 0 +_08098ED8: .4byte 0xFFFF0000 +_08098EDC: .4byte 0xFFFE0000 + + thumb_func_start sub_08098EE0 +sub_08098EE0: @ 0x08098EE0 + push {lr} + ldr r2, _08098EF4 @ =gUnk_081236DC + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08098EF4: .4byte gUnk_081236DC + + thumb_func_start sub_08098EF8 +sub_08098EF8: @ 0x08098EF8 + push {lr} + adds r3, r0, #0 + adds r3, #0x29 + ldrb r2, [r3] + movs r1, #8 + rsbs r1, r1, #0 + ands r1, r2 + movs r2, #5 + orrs r1, r2 + strb r1, [r3] + bl sub_08098FCC + pop {pc} + .align 2, 0 + + thumb_func_start sub_08098F14 +sub_08098F14: @ 0x08098F14 + push {r4, r5, r6, lr} + adds r5, r0, #0 + bl sub_080990EC + cmp r0, #0 + beq _08098F84 + movs r6, #0 + movs r0, #2 + strb r0, [r5, #0xc] + adds r0, r5, #0 + adds r0, #0x74 + ldrh r0, [r0] + adds r1, r5, #0 + adds r1, #0x70 + ldrh r1, [r1] + adds r4, r5, #0 + adds r4, #0x38 + ldrb r2, [r4] + bl UpdateCollisionLayer + adds r0, r5, #0 + adds r0, #0x76 + ldrh r0, [r0] + adds r1, r5, #0 + adds r1, #0x72 + ldrh r1, [r1] + ldrb r2, [r4] + bl UpdateCollisionLayer + movs r0, #0x99 + lsls r0, r0, #1 + bl sub_08004488 + adds r0, r5, #0 + movs r1, #0x1e + bl sub_0805E4E0 + bl sub_08079F8C + cmp r0, #0 + beq _08098F84 + ldr r2, _08098F88 @ =gLinkState + movs r0, #0x98 + strb r0, [r2, #6] + movs r0, #5 + strb r0, [r2, #0xc] + ldr r0, [r2, #0x30] + movs r1, #1 + orrs r0, r1 + str r0, [r2, #0x30] + ldr r1, _08098F8C @ =gLinkEntity + strh r6, [r1, #0x2c] + strh r6, [r1, #0x30] + ldrb r0, [r1, #0x14] + lsls r0, r0, #2 + strb r0, [r1, #0x15] +_08098F84: + pop {r4, r5, r6, pc} + .align 2, 0 +_08098F88: .4byte gLinkState +_08098F8C: .4byte gLinkEntity + + thumb_func_start sub_08098F90 +sub_08098F90: @ 0x08098F90 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08098FC8 + ldrb r0, [r4, #0xb] + cmp r0, #0 + bne _08098FB8 + adds r0, r4, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CCC8 + b _08098FC2 +_08098FB8: + adds r0, r4, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CD48 +_08098FC2: + adds r0, r4, #0 + bl sub_08098FCC +_08098FC8: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08098FCC +sub_08098FCC: @ 0x08098FCC + push {lr} + movs r1, #1 + strb r1, [r0, #0xc] + adds r2, r0, #0 + adds r2, #0x84 + movs r1, #0x3c + strh r1, [r2] + bl sub_08098FE0 + pop {pc} + + thumb_func_start sub_08098FE0 +sub_08098FE0: @ 0x08098FE0 + push {r4, r5, r6, r7, lr} + adds r6, r0, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CBE4 + cmp r0, #0 + bne _0809906C + strb r0, [r6, #0xb] + movs r0, #0x2e + ldrsh r2, [r6, r0] + ldr r1, _08099060 @ =gRoomControls + ldrh r0, [r1, #6] + subs r2, r2, r0 + asrs r2, r2, #4 + movs r3, #0x3f + ands r2, r3 + movs r4, #0x32 + ldrsh r0, [r6, r4] + ldrh r1, [r1, #8] + adds r1, #0x10 + subs r0, r0, r1 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r2, r0 + adds r5, r6, #0 + adds r5, #0x70 + strh r2, [r5] + subs r2, #0x40 + adds r7, r6, #0 + adds r7, #0x72 + strh r2, [r7] + ldrh r0, [r5] + adds r4, r6, #0 + adds r4, #0x38 + ldrb r1, [r4] + bl sub_080001DA + adds r1, r6, #0 + adds r1, #0x74 + strh r0, [r1] + ldrh r0, [r7] + ldrb r1, [r4] + bl sub_080001DA + adds r1, r6, #0 + adds r1, #0x76 + strh r0, [r1] + ldr r0, _08099064 @ =0x00004057 + ldrh r1, [r5] + ldrb r2, [r4] + bl UpdateCollisionLayer + ldr r0, _08099068 @ =0x00004058 + ldrh r1, [r7] + ldrb r2, [r4] + bl UpdateCollisionLayer + adds r0, r6, #0 + movs r1, #1 + bl UpdateSprite + b _080990DC + .align 2, 0 +_08099060: .4byte gRoomControls +_08099064: .4byte 0x00004057 +_08099068: .4byte 0x00004058 +_0809906C: + movs r0, #1 + strb r0, [r6, #0xb] + movs r0, #0x2e + ldrsh r1, [r6, r0] + ldr r2, _080990E0 @ =gRoomControls + ldrh r0, [r2, #6] + adds r0, #0x10 + subs r1, r1, r0 + asrs r1, r1, #4 + movs r3, #0x3f + ands r1, r3 + movs r4, #0x32 + ldrsh r0, [r6, r4] + ldrh r2, [r2, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r1, r0 + adds r5, r6, #0 + adds r5, #0x70 + strh r1, [r5] + subs r1, #1 + adds r7, r6, #0 + adds r7, #0x72 + strh r1, [r7] + ldrh r0, [r5] + adds r4, r6, #0 + adds r4, #0x38 + ldrb r1, [r4] + bl sub_080001DA + adds r1, r6, #0 + adds r1, #0x74 + strh r0, [r1] + ldrh r0, [r7] + ldrb r1, [r4] + bl sub_080001DA + adds r1, r6, #0 + adds r1, #0x76 + strh r0, [r1] + ldr r0, _080990E4 @ =0x00004055 + ldrh r1, [r5] + ldrb r2, [r4] + bl UpdateCollisionLayer + ldr r0, _080990E8 @ =0x00004056 + ldrh r1, [r7] + ldrb r2, [r4] + bl UpdateCollisionLayer + adds r0, r6, #0 + movs r1, #0 + bl UpdateSprite +_080990DC: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080990E0: .4byte gRoomControls +_080990E4: .4byte 0x00004055 +_080990E8: .4byte 0x00004056 + + thumb_func_start sub_080990EC +sub_080990EC: @ 0x080990EC + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r6, r4, #0 + adds r6, #0x72 + ldrh r0, [r6] + adds r5, r4, #0 + adds r5, #0x38 + ldrb r1, [r5] + bl sub_080001DA + ldr r1, _0809911C @ =0x00004059 + cmp r0, r1 + bne _08099140 + adds r1, r4, #0 + adds r1, #0x84 + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _08099120 + movs r0, #1 + b _08099156 + .align 2, 0 +_0809911C: .4byte 0x00004059 +_08099120: + adds r0, r4, #0 + bl sub_08099158 + ldr r1, _0809913C @ =gUnk_081236E8 + ldrb r0, [r4, #0xb] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r0, [r0] + ldrh r1, [r6] + ldrb r2, [r5] + bl UpdateCollisionLayer + b _08099154 + .align 2, 0 +_0809913C: .4byte gUnk_081236E8 +_08099140: + adds r1, r4, #0 + adds r1, #0x84 + movs r2, #0 + movs r0, #0x3c + strh r0, [r1] + adds r0, r4, #0 + adds r0, #0x62 + strb r2, [r0] + adds r0, #1 + strb r2, [r0] +_08099154: + movs r0, #0 +_08099156: + pop {r4, r5, r6, pc} + + thumb_func_start sub_08099158 +sub_08099158: @ 0x08099158 + push {r4, lr} + adds r3, r0, #0 + ldrb r0, [r3, #0xb] + ldr r4, _08099198 @ =gUnk_081236F4 + cmp r0, #0 + bne _08099166 + ldr r4, _0809919C @ =gUnk_081236EC +_08099166: + adds r2, r3, #0 + adds r2, #0x84 + ldrh r0, [r2] + lsrs r0, r0, #2 + movs r1, #6 + ands r0, r1 + adds r4, r4, r0 + ldrb r0, [r4] + adds r1, r3, #0 + adds r1, #0x62 + strb r0, [r1] + ldrb r1, [r4, #1] + adds r0, r3, #0 + adds r0, #0x63 + strb r1, [r0] + ldrh r1, [r2] + movs r0, #3 + ands r0, r1 + cmp r0, #0 + bne _08099194 + ldr r0, _080991A0 @ =0x00000131 + bl sub_08004488 +_08099194: + pop {r4, pc} + .align 2, 0 +_08099198: .4byte gUnk_081236F4 +_0809919C: .4byte gUnk_081236EC +_080991A0: .4byte 0x00000131 + + thumb_func_start sub_080991A4 +sub_080991A4: @ 0x080991A4 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xa] + cmp r0, #2 + bhi _080991C4 + ldr r0, _080991C0 @ =gUnk_08123734 + ldrb r1, [r2, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r2, #0 + bl _call_via_r1 + b _080991CA + .align 2, 0 +_080991C0: .4byte gUnk_08123734 +_080991C4: + adds r0, r2, #0 + bl sub_080996AC +_080991CA: + pop {pc} + + thumb_func_start sub_080991CC +sub_080991CC: @ 0x080991CC + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + cmp r0, #2 + bgt _080991EC + cmp r0, #0 + blt _080991EC + adds r0, r4, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CBE4 + cmp r0, #0 + beq _080991EC + bl sub_0805E780 +_080991EC: + movs r2, #1 + strb r2, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + ldrb r1, [r4, #0x11] + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #3 + orrs r0, r1 + strb r0, [r4, #0x11] + adds r1, r4, #0 + adds r1, #0x3c + movs r0, #7 + strb r0, [r1] + adds r1, #4 + movs r0, #0x48 + strb r0, [r1] + adds r0, r4, #0 + adds r0, #0x3f + strb r2, [r0] + subs r1, #5 + movs r0, #0x80 + strb r0, [r1] + ldr r0, _08099244 @ =gUnk_080FD408 + str r0, [r4, #0x48] + adds r0, r4, #0 + bl sub_08099468 + ldrb r1, [r4, #0xa] + adds r0, r4, #0 + bl UpdateSprite + movs r0, #0x84 + movs r1, #3 + movs r2, #0 + bl CreateObject + cmp r0, #0 + beq _08099242 + str r4, [r0, #0x50] +_08099242: + pop {r4, pc} + .align 2, 0 +_08099244: .4byte gUnk_080FD408 + + thumb_func_start sub_08099248 +sub_08099248: @ 0x08099248 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + bl sub_0809963C + cmp r0, #0 + beq _08099280 + movs r1, #0 + movs r0, #3 + strb r0, [r4, #0xc] + strb r1, [r4, #0xe] + ldr r0, _0809927C @ =0x000001B3 + bl sub_08004488 + adds r0, r4, #0 + bl sub_08099330 + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _0809930E + adds r0, r4, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CCC8 + b _0809930E + .align 2, 0 +_0809927C: .4byte 0x000001B3 +_08099280: + adds r0, r4, #0 + bl sub_0800442E + cmp r0, #0 + bne _0809930E + adds r7, r4, #0 + adds r7, #0x70 + ldrh r0, [r7] + adds r6, r4, #0 + adds r6, #0x38 + ldrb r1, [r6] + bl sub_080002B0 + adds r5, r0, #0 + ldr r0, _080992B8 @ =0x0000405A + cmp r5, r0 + beq _0809930E + adds r0, r5, #0 + bl sub_08099618 + cmp r0, #1 + beq _080992BC + cmp r0, #1 + blo _080992DC + cmp r0, #2 + beq _08099308 + b _0809930E + .align 2, 0 +_080992B8: .4byte 0x0000405A +_080992BC: + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #0x16 + strb r0, [r4, #0xe] + adds r0, r5, #0 + subs r0, #0x5b + movs r1, #3 + ands r0, r1 + lsls r0, r0, #3 + strb r0, [r4, #0x15] + movs r0, #0x20 + strh r0, [r4, #0x24] + adds r0, r4, #0 + bl sub_080994B8 + b _0809930E +_080992DC: + movs r0, #0xf + movs r1, #0xd + movs r2, #0 + bl CreateObject + adds r1, r0, #0 + cmp r1, #0 + beq _080992F2 + adds r0, r4, #0 + bl CopyPosition +_080992F2: + adds r0, r4, #0 + adds r0, #0x6c + ldrh r0, [r0] + ldrh r1, [r7] + ldrb r2, [r6] + bl UpdateCollisionLayer + adds r0, r4, #0 + bl sub_0805E7BC + b _0809930E +_08099308: + adds r0, r4, #0 + adds r0, #0x6c + strh r5, [r0] +_0809930E: + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_08099310 +sub_08099310: @ 0x08099310 + push {r4, lr} + adds r4, r0, #0 + bl sub_0809953C + cmp r0, #0 + beq _0809932E + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + bl sub_08099468 + movs r0, #0xd9 + lsls r0, r0, #1 + bl sub_08004488 +_0809932E: + pop {r4, pc} + + thumb_func_start sub_08099330 +sub_08099330: @ 0x08099330 + push {r4, lr} + adds r4, r0, #0 + bl sub_0809963C + adds r1, r0, #0 + cmp r1, #0 + bne _0809935E + ldrb r0, [r4, #0xe] + cmp r0, #1 + bls _0809934A + subs r0, #2 + strb r0, [r4, #0xe] + b _0809934C +_0809934A: + strb r1, [r4, #0xe] +_0809934C: + ldrb r0, [r4, #0xe] + cmp r0, #0 + bne _08099364 + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + bl sub_0805EC60 + b _080993CA +_0809935E: + ldrb r0, [r4, #0xe] + adds r0, #1 + strb r0, [r4, #0xe] +_08099364: + movs r1, #0x80 + lsls r1, r1, #1 + ldr r2, _0809939C @ =gUnk_08123748 + ldrb r0, [r4, #0xe] + lsrs r0, r0, #5 + lsls r0, r0, #1 + adds r0, r0, r2 + ldrh r2, [r0] + adds r0, r4, #0 + movs r3, #0 + bl sub_0805EC9C + ldrb r0, [r4, #0xa] + cmp r0, #1 + bne _080993A0 + adds r0, r4, #0 + adds r0, #0x86 + ldrh r3, [r0] + adds r0, r4, #0 + movs r1, #0x53 + movs r2, #0 + bl sub_080A2A3C + movs r0, #0x72 + bl PlaySFX + b _080993BA + .align 2, 0 +_0809939C: .4byte gUnk_08123748 +_080993A0: + cmp r0, #2 + bne _080993BA + adds r0, r4, #0 + adds r0, #0x86 + ldrh r3, [r0] + adds r0, r4, #0 + movs r1, #0x52 + movs r2, #0 + bl sub_080A2A3C + movs r0, #0x72 + bl PlaySFX +_080993BA: + movs r0, #4 + strb r0, [r4, #0xc] + movs r0, #0x3c + strb r0, [r4, #0xe] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] +_080993CA: + pop {r4, pc} + + thumb_func_start sub_080993CC +sub_080993CC: @ 0x080993CC + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xe] + subs r1, r0, #1 + strb r1, [r5, #0xe] + lsls r0, r1, #0x18 + cmp r0, #0 + bne _080993E2 + bl sub_0805E780 + b _08099466 +_080993E2: + lsls r0, r1, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x30 + bne _08099400 + adds r0, r5, #0 + adds r0, #0x6c + ldrh r0, [r0] + adds r1, r5, #0 + adds r1, #0x70 + ldrh r1, [r1] + adds r2, r5, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl UpdateCollisionLayer +_08099400: + movs r1, #0x80 + lsls r1, r1, #1 + ldrb r0, [r5, #0xe] + movs r2, #0x3c + subs r2, r2, r0 + lsls r2, r2, #5 + adds r2, r2, r1 + adds r0, r5, #0 + movs r3, #0 + bl sub_0805EC9C + ldrb r1, [r5, #0xe] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08099466 + movs r0, #0xf + movs r1, #0x11 + movs r2, #0x40 + bl CreateObject + adds r6, r0, #0 + cmp r6, #0 + beq _08099466 + bl Random + adds r4, r0, #0 + asrs r0, r4, #0x10 + movs r1, #9 + bl __modsi3 + adds r2, r0, #0 + subs r2, #4 + movs r3, #0xf + ands r3, r4 + adds r4, r6, #0 + adds r4, #0x29 + ldrb r1, [r4] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #3 + orrs r0, r1 + strb r0, [r4] + lsls r2, r2, #0x10 + rsbs r3, r3, #0 + lsls r3, r3, #0x10 + adds r0, r5, #0 + adds r1, r6, #0 + bl PositionRelative +_08099466: + pop {r4, r5, r6, pc} + + thumb_func_start sub_08099468 +sub_08099468: @ 0x08099468 + push {r4, r5, r6, lr} + adds r6, r0, #0 + movs r0, #0x2e + ldrsh r1, [r6, r0] + ldr r2, _080994B0 @ =gRoomControls + ldrh r0, [r2, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + movs r3, #0x3f + ands r1, r3 + movs r4, #0x32 + ldrsh r0, [r6, r4] + ldrh r2, [r2, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r1, r0 + adds r4, r6, #0 + adds r4, #0x70 + strh r1, [r4] + ldrh r0, [r4] + adds r5, r6, #0 + adds r5, #0x38 + ldrb r1, [r5] + bl sub_080001DA + adds r1, r6, #0 + adds r1, #0x6c + strh r0, [r1] + ldr r0, _080994B4 @ =0x0000405A + ldrh r1, [r4] + ldrb r2, [r5] + bl UpdateCollisionLayer + pop {r4, r5, r6, pc} + .align 2, 0 +_080994B0: .4byte gRoomControls +_080994B4: .4byte 0x0000405A + + thumb_func_start sub_080994B8 +sub_080994B8: @ 0x080994B8 + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldr r0, _08099530 @ =0x000001B1 + bl sub_08004488 + adds r0, r5, #0 + adds r0, #0x6c + ldrh r0, [r0] + adds r6, r5, #0 + adds r6, #0x70 + ldrh r1, [r6] + adds r4, r5, #0 + adds r4, #0x38 + ldrb r2, [r4] + bl UpdateCollisionLayer + ldrb r0, [r4] + cmp r0, #2 + bne _080994F8 + ldrh r0, [r6] + movs r1, #1 + bl sub_080002B0 + ldr r1, _08099534 @ =0x0000405A + cmp r0, r1 + bne _080994F8 + movs r0, #0xc4 + lsls r0, r0, #2 + ldrh r1, [r6] + movs r2, #1 + bl sub_08000152 +_080994F8: + adds r2, r5, #0 + adds r2, #0x70 + ldr r1, _08099538 @ =gUnk_080B4488 + ldrb r0, [r5, #0x15] + lsrs r0, r0, #3 + lsls r0, r0, #1 + adds r0, r0, r1 + movs r1, #0 + ldrsh r0, [r0, r1] + ldrh r2, [r2] + adds r0, r0, r2 + adds r1, r5, #0 + adds r1, #0x38 + ldrb r1, [r1] + bl sub_080002B0 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0x79 + beq _08099524 + cmp r0, #0x77 + bne _0809952C +_08099524: + adds r1, r5, #0 + adds r1, #0x63 + movs r0, #0xfe + strb r0, [r1] +_0809952C: + pop {r4, r5, r6, pc} + .align 2, 0 +_08099530: .4byte 0x000001B1 +_08099534: .4byte 0x0000405A +_08099538: .4byte gUnk_080B4488 + + thumb_func_start sub_0809953C +sub_0809953C: @ 0x0809953C + push {r4, lr} + adds r4, r0, #0 + bl sub_0800442E + cmp r0, #0 + bne _08099612 + adds r0, r4, #0 + bl sub_080AEFE0 + adds r0, r4, #0 + bl sub_0800445C + ldrb r1, [r4, #0xe] + cmp r1, #0 + beq _08099570 + ldrh r0, [r4, #0x24] + adds r0, #0x10 + strh r0, [r4, #0x24] + subs r0, r1, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08099570 + movs r0, #0x80 + lsls r0, r0, #2 + strh r0, [r4, #0x24] +_08099570: + ldrb r0, [r4, #0x15] + lsrs r0, r0, #3 + cmp r0, #1 + beq _080995A0 + cmp r0, #1 + bgt _08099582 + cmp r0, #0 + beq _08099588 + b _080995E6 +_08099582: + cmp r0, #2 + beq _080995BA + b _080995E6 +_08099588: + ldrh r1, [r4, #0x2a] + movs r0, #0xe + ands r0, r1 + cmp r0, #0 + beq _08099612 + ldrh r1, [r4, #0x32] + movs r0, #0xf + ands r0, r1 + subs r0, #7 + cmp r0, #2 + bls _080995D0 + b _080995DE +_080995A0: + ldrh r1, [r4, #0x2a] + movs r0, #0xe0 + lsls r0, r0, #8 + ands r0, r1 + cmp r0, #0 + beq _08099612 + ldrh r1, [r4, #0x2e] + movs r0, #0xf + ands r0, r1 + subs r0, #7 + cmp r0, #2 + bls _080995FE + b _080995DE +_080995BA: + ldrh r1, [r4, #0x2a] + movs r0, #0xe0 + ands r0, r1 + cmp r0, #0 + beq _08099612 + ldrh r1, [r4, #0x32] + movs r0, #0xf + ands r0, r1 + subs r0, #7 + cmp r0, #2 + bhi _080995DE +_080995D0: + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r1 + adds r0, #8 + strh r0, [r4, #0x32] + movs r0, #1 + b _08099614 +_080995DE: + adds r0, r4, #0 + bl sub_0809969C + b _08099612 +_080995E6: + ldrh r1, [r4, #0x2a] + movs r0, #0xe0 + lsls r0, r0, #4 + ands r0, r1 + cmp r0, #0 + beq _08099612 + ldrh r1, [r4, #0x2e] + movs r0, #0xf + ands r0, r1 + subs r0, #7 + cmp r0, #2 + bhi _0809960C +_080995FE: + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r1 + adds r0, #8 + strh r0, [r4, #0x2e] + movs r0, #1 + b _08099614 +_0809960C: + adds r0, r4, #0 + bl sub_0809969C +_08099612: + movs r0, #0 +_08099614: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08099618 +sub_08099618: @ 0x08099618 + push {lr} + adds r2, r0, #0 + ldr r1, _08099620 @ =gUnk_08123750 + b _08099630 + .align 2, 0 +_08099620: .4byte gUnk_08123750 +_08099624: + ldrh r0, [r1] + cmp r0, r2 + bne _0809962E + ldrh r0, [r1, #2] + b _08099638 +_0809962E: + adds r1, #4 +_08099630: + ldrh r0, [r1] + cmp r0, #0 + bne _08099624 + movs r0, #0 +_08099638: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0809963C +sub_0809963C: @ 0x0809963C + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xb] + cmp r0, #0 + beq _08099684 + bl sub_0804B128 + adds r4, r0, #0 + ldrh r0, [r4] + bl sub_0807CBE4 + cmp r0, #0 + beq _08099684 + ldr r0, _08099694 @ =gRoomControls + ldrh r1, [r0, #6] + ldrh r2, [r4, #2] + adds r1, r1, r2 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + ldrh r0, [r0, #8] + ldrh r6, [r4, #4] + adds r0, r0, r6 + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + ldrh r2, [r4, #6] + movs r6, #0x2e + ldrsh r0, [r5, r6] + subs r0, r0, r1 + cmp r2, r0 + blo _08099684 + ldrh r1, [r4, #8] + movs r2, #0x32 + ldrsh r0, [r5, r2] + subs r0, r0, r3 + cmp r1, r0 + bhs _08099698 +_08099684: + adds r0, r5, #0 + adds r0, #0x41 + ldrb r0, [r0] + cmp r0, #0x87 + beq _08099698 + movs r0, #0 + b _0809969A + .align 2, 0 +_08099694: .4byte gRoomControls +_08099698: + movs r0, #1 +_0809969A: + pop {r4, r5, r6, pc} + + thumb_func_start sub_0809969C +sub_0809969C: @ 0x0809969C + push {lr} + movs r1, #0xd + movs r2, #0 + bl CreateFx + bl sub_0805E780 + pop {pc} + + thumb_func_start sub_080996AC +sub_080996AC: @ 0x080996AC + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x50] + ldr r0, [r0, #4] + cmp r0, #0 + bne _080996BC + bl sub_0805E780 +_080996BC: + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _080996CE + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #3 + bl UpdateSprite +_080996CE: + ldr r0, [r4, #0x50] + ldrb r0, [r0, #0xc] + cmp r0, #2 + bhi _08099726 + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + adds r2, r4, #0 + adds r2, #0x5a + ldrb r1, [r2] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08099706 + movs r0, #0 + strb r0, [r2] + bl Random + movs r1, #0x78 + ands r0, r1 + adds r0, #0x78 + adds r1, r4, #0 + adds r1, #0x59 + strb r0, [r1] +_08099706: + adds r0, r4, #0 + bl sub_08004274 + ldr r0, [r4, #0x50] + adds r1, r4, #0 + bl sub_0806FA6C + ldrh r0, [r4, #0x32] + adds r0, #1 + strh r0, [r4, #0x32] + adds r1, r4, #0 + adds r1, #0x63 + ldrb r0, [r1] + subs r0, #0x11 + strb r0, [r1] + b _08099730 +_08099726: + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] +_08099730: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08099734 +sub_08099734: @ 0x08099734 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xa] + cmp r0, #3 + bhi _08099754 + ldr r0, _08099750 @ =gUnk_081237A0 + ldrb r1, [r2, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r2, #0 + bl _call_via_r1 + b _0809975A + .align 2, 0 +_08099750: .4byte gUnk_081237A0 +_08099754: + adds r0, r2, #0 + bl sub_08099D30 +_0809975A: + pop {pc} + + thumb_func_start sub_0809975C +sub_0809975C: @ 0x0809975C + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CBE4 + cmp r0, #0 + beq _08099770 + bl sub_0805E780 +_08099770: + movs r2, #1 + strb r2, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + ldrb r1, [r4, #0x11] + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #3 + orrs r0, r1 + strb r0, [r4, #0x11] + adds r1, r4, #0 + adds r1, #0x3c + movs r0, #7 + strb r0, [r1] + adds r1, #4 + movs r0, #0x48 + strb r0, [r1] + adds r0, r4, #0 + adds r0, #0x3f + strb r2, [r0] + subs r1, #5 + movs r0, #0x80 + strb r0, [r1] + ldr r0, _080997C8 @ =gUnk_080FD190 + str r0, [r4, #0x48] + adds r0, r4, #0 + bl sub_08099910 + ldrb r1, [r4, #0xa] + adds r0, r4, #0 + bl UpdateSprite + movs r0, #0x85 + movs r1, #4 + movs r2, #0 + bl CreateObject + cmp r0, #0 + beq _080997C6 + str r4, [r0, #0x50] +_080997C6: + pop {r4, pc} + .align 2, 0 +_080997C8: .4byte gUnk_080FD190 + + thumb_func_start sub_080997CC +sub_080997CC: @ 0x080997CC + push {r4, lr} + adds r4, r0, #0 + bl sub_0809963C + cmp r0, #0 + beq _080997EC + movs r0, #0 + movs r1, #2 + strb r1, [r4, #0xc] + strb r0, [r4, #0xe] + ldr r0, _080997F0 @ =0x000001B3 + bl sub_08004488 + adds r0, r4, #0 + bl sub_080997F4 +_080997EC: + pop {r4, pc} + .align 2, 0 +_080997F0: .4byte 0x000001B3 + + thumb_func_start sub_080997F4 +sub_080997F4: @ 0x080997F4 + push {r4, lr} + adds r4, r0, #0 + bl sub_0809963C + adds r1, r0, #0 + cmp r1, #0 + bne _08099822 + ldrb r0, [r4, #0xe] + cmp r0, #1 + bls _0809980E + subs r0, #2 + strb r0, [r4, #0xe] + b _08099810 +_0809980E: + strb r1, [r4, #0xe] +_08099810: + ldrb r0, [r4, #0xe] + cmp r0, #0 + bne _08099828 + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + bl sub_0805EC60 + b _0809987C +_08099822: + ldrb r0, [r4, #0xe] + adds r0, #1 + strb r0, [r4, #0xe] +_08099828: + ldr r1, _08099858 @ =gUnk_081237B0 + ldrb r0, [r4, #0xe] + lsrs r0, r0, #5 + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r2, [r0] + movs r1, #0x80 + lsls r1, r1, #1 + adds r0, r4, #0 + movs r3, #0 + bl sub_0805EC9C + ldrb r0, [r4, #0xa] + cmp r0, #1 + beq _0809986C + cmp r0, #2 + beq _0809985C + adds r0, r4, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CCC8 + b _0809986C + .align 2, 0 +_08099858: .4byte gUnk_081237B0 +_0809985C: + adds r0, r4, #0 + adds r0, #0x86 + ldrh r3, [r0] + adds r0, r4, #0 + movs r1, #0x53 + movs r2, #0 + bl sub_080A2A3C +_0809986C: + movs r0, #3 + strb r0, [r4, #0xc] + movs r0, #0x3c + strb r0, [r4, #0xe] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] +_0809987C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08099880 +sub_08099880: @ 0x08099880 + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xe] + subs r1, r0, #1 + strb r1, [r5, #0xe] + lsls r0, r1, #0x18 + cmp r0, #0 + bne _08099896 + bl sub_0805E780 + b _0809990E +_08099896: + lsls r0, r1, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x30 + bne _080998A4 + adds r0, r5, #0 + bl sub_08099C18 +_080998A4: + ldrb r0, [r5, #0xe] + movs r4, #0x3c + subs r4, r4, r0 + lsls r4, r4, #5 + movs r1, #0x80 + lsls r1, r1, #1 + adds r4, r4, r1 + adds r0, r5, #0 + adds r2, r4, #0 + movs r3, #0 + bl sub_0805EC9C + adds r0, r5, #0 + adds r1, r4, #0 + movs r2, #2 + movs r3, #0 + bl sub_0806FCF4 + movs r0, #0xf + movs r1, #0x11 + movs r2, #0x40 + bl CreateObject + adds r6, r0, #0 + cmp r6, #0 + beq _0809990E + bl Random + adds r4, r0, #0 + asrs r0, r4, #0x10 + movs r1, #0x21 + bl __modsi3 + adds r2, r0, #0 + subs r2, #0x10 + movs r0, #0xf + ands r0, r4 + subs r4, r0, #4 + adds r3, r6, #0 + adds r3, #0x29 + ldrb r1, [r3] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #3 + orrs r0, r1 + strb r0, [r3] + lsls r2, r2, #0x10 + lsls r3, r4, #0x10 + adds r0, r5, #0 + adds r1, r6, #0 + bl PositionRelative +_0809990E: + pop {r4, r5, r6, pc} + + thumb_func_start sub_08099910 +sub_08099910: @ 0x08099910 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + movs r1, #0x2e + ldrsh r0, [r4, r1] + ldr r3, _08099968 @ =gRoomControls + ldrh r1, [r3, #6] + subs r0, r0, r1 + asrs r6, r0, #4 + movs r2, #0x3f + ands r6, r2 + movs r1, #0x32 + ldrsh r0, [r4, r1] + ldrh r1, [r3, #8] + subs r0, r0, r1 + asrs r0, r0, #4 + ands r0, r2 + lsls r0, r0, #6 + orrs r6, r0 + adds r0, r4, #0 + adds r0, #0x6e + strh r6, [r0] + ldrh r2, [r4, #0x2e] + movs r0, #8 + adds r1, r0, #0 + ands r1, r2 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x13 + ldrh r2, [r4, #0x32] + ands r0, r2 + lsls r0, r0, #0x10 + asrs r0, r0, #0x12 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + adds r1, r1, r0 + adds r0, r4, #0 + adds r0, #0x6c + strh r1, [r0] + cmp r1, #2 + beq _08099A4C + cmp r1, #2 + bhi _0809996C + cmp r1, #1 + beq _080999A8 + b _08099972 + .align 2, 0 +_08099968: .4byte gRoomControls +_0809996C: + cmp r1, #3 + bne _08099972 + b _08099AF0 +_08099972: + ldr r5, _080999A4 @ =0x00004022 + adds r1, r6, #0 + subs r1, #0x41 + adds r4, #0x38 + ldrb r2, [r4] + adds r0, r5, #0 + bl UpdateCollisionLayer + adds r1, r6, #0 + subs r1, #0x40 + ldrb r2, [r4] + adds r0, r5, #0 + bl UpdateCollisionLayer + subs r1, r6, #1 + ldrb r2, [r4] + adds r0, r5, #0 + bl UpdateCollisionLayer + ldrb r2, [r4] + adds r0, r5, #0 + adds r1, r6, #0 + bl UpdateCollisionLayer + b _08099BF0 + .align 2, 0 +_080999A4: .4byte 0x00004022 +_080999A8: + adds r5, r6, #0 + subs r5, #0x41 + lsls r0, r5, #0x10 + lsrs r0, r0, #0x10 + adds r4, #0x38 + ldrb r1, [r4] + bl sub_080002C8 + ldr r1, _08099A40 @ =0x00004024 + cmp r0, #0x12 + bne _080999C0 + adds r1, #0x55 +_080999C0: + ldrb r2, [r4] + adds r0, r1, #0 + adds r1, r5, #0 + bl UpdateCollisionLayer + ldr r7, _08099A44 @ =0x00004022 + adds r1, r6, #0 + subs r1, #0x40 + ldrb r2, [r4] + adds r0, r7, #0 + bl UpdateCollisionLayer + adds r5, r6, #0 + subs r5, #0x3f + lsls r0, r5, #0x10 + lsrs r0, r0, #0x10 + ldrb r1, [r4] + bl sub_080002C8 + ldr r1, _08099A48 @ =0x00004025 + cmp r0, #0x12 + bne _080999EE + adds r1, #0x56 +_080999EE: + ldrb r2, [r4] + adds r0, r1, #0 + adds r1, r5, #0 + bl UpdateCollisionLayer + subs r5, r6, #1 + lsls r0, r5, #0x10 + lsrs r0, r0, #0x10 + ldrb r1, [r4] + bl sub_080002C8 + ldr r1, _08099A40 @ =0x00004024 + cmp r0, #0x12 + bne _08099A0C + adds r1, #0x55 +_08099A0C: + ldrb r2, [r4] + adds r0, r1, #0 + adds r1, r5, #0 + bl UpdateCollisionLayer + ldrb r2, [r4] + adds r0, r7, #0 + adds r1, r6, #0 + bl UpdateCollisionLayer + adds r5, r6, #1 + adds r0, r5, #0 + ldrb r1, [r4] + bl sub_080002C8 + ldr r1, _08099A48 @ =0x00004025 + cmp r0, #0x12 + bne _08099A32 + adds r1, #0x56 +_08099A32: + ldrb r2, [r4] + adds r0, r1, #0 + adds r1, r5, #0 + bl UpdateCollisionLayer + b _08099BF0 + .align 2, 0 +_08099A40: .4byte 0x00004024 +_08099A44: .4byte 0x00004022 +_08099A48: .4byte 0x00004025 +_08099A4C: + adds r7, r6, #0 + subs r7, #0x41 + lsls r0, r7, #0x10 + lsrs r0, r0, #0x10 + adds r5, r4, #0 + adds r5, #0x38 + ldrb r1, [r5] + bl sub_080002C8 + ldr r1, _08099AE4 @ =0x00004023 + cmp r0, #0x12 + bne _08099A66 + adds r1, #0x54 +_08099A66: + ldrb r2, [r5] + adds r0, r1, #0 + adds r1, r7, #0 + bl UpdateCollisionLayer + adds r4, r6, #0 + subs r4, #0x40 + lsls r0, r4, #0x10 + lsrs r0, r0, #0x10 + ldrb r1, [r5] + bl sub_080002C8 + ldr r1, _08099AE4 @ =0x00004023 + cmp r0, #0x12 + bne _08099A86 + adds r1, #0x54 +_08099A86: + ldrb r2, [r5] + adds r0, r1, #0 + adds r1, r4, #0 + bl UpdateCollisionLayer + ldr r4, _08099AE8 @ =0x00004022 + subs r1, r6, #1 + ldrb r2, [r5] + adds r0, r4, #0 + bl UpdateCollisionLayer + ldrb r2, [r5] + adds r0, r4, #0 + adds r1, r6, #0 + bl UpdateCollisionLayer + adds r4, r6, #0 + adds r4, #0x3f + adds r0, r4, #0 + ldrb r1, [r5] + bl sub_080002C8 + ldr r1, _08099AEC @ =0x00004026 + cmp r0, #0x12 + bne _08099ABA + adds r1, #0x56 +_08099ABA: + ldrb r2, [r5] + adds r0, r1, #0 + adds r1, r4, #0 + bl UpdateCollisionLayer + adds r4, r6, #0 + adds r4, #0x40 + adds r0, r4, #0 + ldrb r1, [r5] + bl sub_080002C8 + ldr r1, _08099AEC @ =0x00004026 + cmp r0, #0x12 + bne _08099AD8 + adds r1, #0x56 +_08099AD8: + ldrb r2, [r5] + adds r0, r1, #0 + adds r1, r4, #0 + bl UpdateCollisionLayer + b _08099BF0 + .align 2, 0 +_08099AE4: .4byte 0x00004023 +_08099AE8: .4byte 0x00004022 +_08099AEC: .4byte 0x00004026 +_08099AF0: + adds r5, r6, #0 + subs r5, #0x41 + lsls r0, r5, #0x10 + lsrs r0, r0, #0x10 + adds r4, #0x38 + ldrb r1, [r4] + bl sub_080002C8 + ldr r1, _08099BF4 @ =0x00004027 + cmp r0, #0x12 + bne _08099B08 + adds r1, #0x4e +_08099B08: + ldrb r2, [r4] + adds r0, r1, #0 + adds r1, r5, #0 + bl UpdateCollisionLayer + adds r5, r6, #0 + subs r5, #0x40 + lsls r0, r5, #0x10 + lsrs r0, r0, #0x10 + ldrb r1, [r4] + bl sub_080002C8 + ldr r1, _08099BF8 @ =0x00004023 + cmp r0, #0x12 + bne _08099B28 + adds r1, #0x54 +_08099B28: + ldrb r2, [r4] + adds r0, r1, #0 + adds r1, r5, #0 + bl UpdateCollisionLayer + adds r5, r6, #0 + subs r5, #0x3f + lsls r0, r5, #0x10 + lsrs r0, r0, #0x10 + ldrb r1, [r4] + bl sub_080002C8 + ldr r1, _08099BFC @ =0x00004028 + cmp r0, #0x12 + bne _08099B48 + adds r1, #0x4e +_08099B48: + ldrb r2, [r4] + adds r0, r1, #0 + adds r1, r5, #0 + bl UpdateCollisionLayer + subs r5, r6, #1 + lsls r0, r5, #0x10 + lsrs r0, r0, #0x10 + ldrb r1, [r4] + bl sub_080002C8 + ldr r1, _08099C00 @ =0x00004024 + cmp r0, #0x12 + bne _08099B66 + adds r1, #0x55 +_08099B66: + ldrb r2, [r4] + adds r0, r1, #0 + adds r1, r5, #0 + bl UpdateCollisionLayer + ldr r0, _08099C04 @ =0x00004022 + ldrb r2, [r4] + adds r1, r6, #0 + bl UpdateCollisionLayer + adds r5, r6, #1 + adds r0, r5, #0 + ldrb r1, [r4] + bl sub_080002C8 + ldr r1, _08099C08 @ =0x00004025 + cmp r0, #0x12 + bne _08099B8C + adds r1, #0x56 +_08099B8C: + ldrb r2, [r4] + adds r0, r1, #0 + adds r1, r5, #0 + bl UpdateCollisionLayer + adds r5, r6, #0 + adds r5, #0x3f + adds r0, r5, #0 + ldrb r1, [r4] + bl sub_080002C8 + ldr r1, _08099C0C @ =0x00004029 + cmp r0, #0x12 + bne _08099BAA + adds r1, #0x4f +_08099BAA: + ldrb r2, [r4] + adds r0, r1, #0 + adds r1, r5, #0 + bl UpdateCollisionLayer + adds r5, r6, #0 + adds r5, #0x40 + adds r0, r5, #0 + ldrb r1, [r4] + bl sub_080002C8 + ldr r1, _08099C10 @ =0x00004026 + cmp r0, #0x12 + bne _08099BC8 + adds r1, #0x56 +_08099BC8: + ldrb r2, [r4] + adds r0, r1, #0 + adds r1, r5, #0 + bl UpdateCollisionLayer + adds r5, r6, #0 + adds r5, #0x41 + adds r0, r5, #0 + ldrb r1, [r4] + bl sub_080002C8 + ldr r1, _08099C14 @ =0x0000402A + cmp r0, #0x12 + bne _08099BE6 + adds r1, #0x50 +_08099BE6: + ldrb r2, [r4] + adds r0, r1, #0 + adds r1, r5, #0 + bl UpdateCollisionLayer +_08099BF0: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08099BF4: .4byte 0x00004027 +_08099BF8: .4byte 0x00004023 +_08099BFC: .4byte 0x00004028 +_08099C00: .4byte 0x00004024 +_08099C04: .4byte 0x00004022 +_08099C08: .4byte 0x00004025 +_08099C0C: .4byte 0x00004029 +_08099C10: .4byte 0x00004026 +_08099C14: .4byte 0x0000402A + + thumb_func_start sub_08099C18 +sub_08099C18: @ 0x08099C18 + push {r4, r5, lr} + adds r1, r0, #0 + adds r0, #0x6e + ldrh r5, [r0] + subs r0, #2 + ldrh r0, [r0] + cmp r0, #2 + beq _08099C96 + cmp r0, #2 + bgt _08099C32 + cmp r0, #1 + beq _08099C60 + b _08099C36 +_08099C32: + cmp r0, #3 + beq _08099CD4 +_08099C36: + adds r0, r5, #0 + subs r0, #0x41 + adds r4, r1, #0 + adds r4, #0x38 + ldrb r1, [r4] + bl sub_0807BA8C + adds r0, r5, #0 + subs r0, #0x40 + ldrb r1, [r4] + bl sub_0807BA8C + subs r0, r5, #1 + ldrb r1, [r4] + bl sub_0807BA8C + ldrb r1, [r4] + adds r0, r5, #0 + bl sub_0807BA8C + b _08099D2C +_08099C60: + adds r0, r5, #0 + subs r0, #0x41 + adds r4, r1, #0 + adds r4, #0x38 + ldrb r1, [r4] + bl sub_0807BA8C + adds r0, r5, #0 + subs r0, #0x40 + ldrb r1, [r4] + bl sub_0807BA8C + adds r0, r5, #0 + subs r0, #0x3f + ldrb r1, [r4] + bl sub_0807BA8C + subs r0, r5, #1 + ldrb r1, [r4] + bl sub_0807BA8C + ldrb r1, [r4] + adds r0, r5, #0 + bl sub_0807BA8C + adds r0, r5, #1 + b _08099CCC +_08099C96: + adds r0, r5, #0 + subs r0, #0x41 + adds r4, r1, #0 + adds r4, #0x38 + ldrb r1, [r4] + bl sub_0807BA8C + adds r0, r5, #0 + subs r0, #0x40 + ldrb r1, [r4] + bl sub_0807BA8C + subs r0, r5, #1 + ldrb r1, [r4] + bl sub_0807BA8C + ldrb r1, [r4] + adds r0, r5, #0 + bl sub_0807BA8C + adds r0, r5, #0 + adds r0, #0x3f + ldrb r1, [r4] + bl sub_0807BA8C + adds r0, r5, #0 + adds r0, #0x40 +_08099CCC: + ldrb r1, [r4] + bl sub_0807BA8C + b _08099D2C +_08099CD4: + adds r0, r5, #0 + subs r0, #0x41 + adds r4, r1, #0 + adds r4, #0x38 + ldrb r1, [r4] + bl sub_0807BA8C + adds r0, r5, #0 + subs r0, #0x40 + ldrb r1, [r4] + bl sub_0807BA8C + adds r0, r5, #0 + subs r0, #0x3f + ldrb r1, [r4] + bl sub_0807BA8C + subs r0, r5, #1 + ldrb r1, [r4] + bl sub_0807BA8C + ldrb r1, [r4] + adds r0, r5, #0 + bl sub_0807BA8C + adds r0, r5, #1 + ldrb r1, [r4] + bl sub_0807BA8C + adds r0, r5, #0 + adds r0, #0x3f + ldrb r1, [r4] + bl sub_0807BA8C + adds r0, r5, #0 + adds r0, #0x40 + ldrb r1, [r4] + bl sub_0807BA8C + adds r0, r5, #0 + adds r0, #0x41 + ldrb r1, [r4] + bl sub_0807BA8C +_08099D2C: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08099D30 +sub_08099D30: @ 0x08099D30 + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x50] + ldr r0, [r0, #4] + cmp r0, #0 + bne _08099D40 + bl sub_0805E780 +_08099D40: + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _08099D6A + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #4 + bl UpdateSprite + ldr r0, [r4, #0x50] + adds r1, r4, #0 + bl sub_0806FA6C + ldrh r0, [r4, #0x32] + adds r0, #1 + strh r0, [r4, #0x32] + adds r1, r4, #0 + adds r1, #0x63 + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] +_08099D6A: + ldr r0, [r4, #0x50] + ldrb r0, [r0, #0xc] + cmp r0, #1 + bhi _08099DAA + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + adds r2, r4, #0 + adds r2, #0x5a + ldrb r1, [r2] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08099DA2 + movs r0, #0 + strb r0, [r2] + bl Random + movs r1, #0x78 + ands r0, r1 + adds r0, #0x78 + adds r1, r4, #0 + adds r1, #0x59 + strb r0, [r1] +_08099DA2: + adds r0, r4, #0 + bl sub_08004274 + b _08099DB4 +_08099DAA: + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] +_08099DB4: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08099DB8 +sub_08099DB8: @ 0x08099DB8 + push {lr} + ldr r2, _08099DCC @ =gUnk_081237F8 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08099DCC: .4byte gUnk_081237F8 + + thumb_func_start sub_08099DD0 +sub_08099DD0: @ 0x08099DD0 + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r0, #0x38 + movs r6, #0 + movs r5, #1 + strb r5, [r0] + ldrb r0, [r4, #0x19] + movs r1, #0xc0 + orrs r0, r1 + strb r0, [r4, #0x19] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #7 + orrs r0, r1 + strb r0, [r2] + strb r6, [r4, #0xd] + movs r0, #0x46 + bl GetInventoryValue + cmp r0, #0 + beq _08099E04 + movs r0, #4 + strb r0, [r4, #0xc] + strb r6, [r4, #0x1e] + b _08099E0E +_08099E04: + strb r5, [r4, #0xc] + adds r0, r4, #0 + movs r1, #0 + bl UpdateSprite +_08099E0E: + pop {r4, r5, r6, pc} + + thumb_func_start sub_08099E10 +sub_08099E10: @ 0x08099E10 + push {r4, r5, lr} + adds r4, r0, #0 + movs r0, #0x74 + bl sub_0807CBD0 + cmp r0, #0 + beq _08099E54 + adds r0, r4, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + adds r5, r0, #0 + cmp r1, #1 + bne _08099E3E + ldrb r0, [r4, #0xd] + cmp r0, #0 + bne _08099E3E + strb r0, [r5] + adds r0, r4, #0 + bl sub_08099ECC +_08099E3E: + ldrb r1, [r5] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08099E54 + movs r0, #2 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #1 + bl UpdateSprite +_08099E54: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08099E58 +sub_08099E58: @ 0x08099E58 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r2, r4, #0 + adds r2, #0x5a + ldrb r1, [r2] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08099E88 + movs r0, #0x7f + ands r0, r1 + strb r0, [r2] + ldrb r0, [r4, #0xe] + adds r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #3 + bne _08099E88 + strb r0, [r4, #0xc] + movs r0, #4 + strb r0, [r4, #0x1e] +_08099E88: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08099E8C +sub_08099E8C: @ 0x08099E8C + push {r4, lr} + adds r4, r0, #0 + ldr r1, _08099EC4 @ =gLinkEntity + movs r2, #0xc + movs r3, #0xc + bl sub_080041A0 + cmp r0, #0 + beq _08099EC2 + ldrb r0, [r4, #0xd] + cmp r0, #0 + bne _08099EB2 + adds r0, r4, #0 + bl sub_08099ECC + adds r0, r4, #0 + movs r1, #0x1e + bl sub_0805E4E0 +_08099EB2: + movs r0, #0x75 + bl sub_0807CBD0 + cmp r0, #0 + beq _08099EC2 + movs r0, #7 + bl sub_0805B390 +_08099EC2: + pop {r4, pc} + .align 2, 0 +_08099EC4: .4byte gLinkEntity + + thumb_func_start nullsub_534 +nullsub_534: @ 0x08099EC8 + bx lr + .align 2, 0 + + thumb_func_start sub_08099ECC +sub_08099ECC: @ 0x08099ECC + push {r4, lr} + movs r4, #0 + movs r1, #1 + strb r1, [r0, #0xd] + ldr r1, _08099EF4 @ =gLinkEntity + bl CopyPosition + ldr r2, _08099EF8 @ =gLinkState + movs r0, #3 + strb r0, [r2, #0xc] + adds r0, r2, #0 + adds r0, #0x38 + strb r4, [r0] + ldr r0, [r2, #0x30] + movs r1, #0x80 + lsls r1, r1, #8 + orrs r0, r1 + str r0, [r2, #0x30] + pop {r4, pc} + .align 2, 0 +_08099EF4: .4byte gLinkEntity +_08099EF8: .4byte gLinkState + + thumb_func_start sub_08099EFC +sub_08099EFC: @ 0x08099EFC + push {lr} + ldr r2, _08099F10 @ =gUnk_08123840 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08099F10: .4byte gUnk_08123840 + + thumb_func_start sub_08099F14 +sub_08099F14: @ 0x08099F14 + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + movs r0, #1 + strb r0, [r5, #0xc] + movs r0, #0x80 + lsls r0, r0, #2 + strh r0, [r5, #0x24] + ldrb r0, [r5, #0xa] + cmp r0, #9 + bls _08099F2A + b _0809A1B6 +_08099F2A: + lsls r0, r0, #2 + ldr r1, _08099F34 @ =_08099F38 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08099F34: .4byte _08099F38 +_08099F38: @ jump table + .4byte _08099F60 @ case 0 + .4byte _08099F70 @ case 1 + .4byte _08099F82 @ case 2 + .4byte _0809A00C @ case 3 + .4byte _0809A0AA @ case 4 + .4byte _0809A0B0 @ case 5 + .4byte _0809A058 @ case 6 + .4byte _0809A11C @ case 7 + .4byte _0809A132 @ case 8 + .4byte _0809A1B0 @ case 9 +_08099F60: + adds r2, r5, #0 + adds r2, #0x79 + movs r0, #0 + movs r1, #0x96 + strb r1, [r2] + strb r0, [r5, #0xe] + movs r0, #0x1e + strb r0, [r5, #0xf] +_08099F70: + adds r0, r5, #0 + movs r1, #0 + bl UpdateSprite + movs r0, #0x92 + lsls r0, r0, #1 + bl sub_08004488 + b _0809A1B6 +_08099F82: + ldr r0, [r5, #0x50] + adds r0, #0x7b + ldrb r0, [r0] + adds r0, #0x80 + rsbs r0, r0, #0 + strb r0, [r5, #0x15] + bl Random + movs r1, #1 + ands r1, r0 + cmp r1, #0 + beq _08099FCE + bl Random + adds r1, r0, #0 + movs r0, #3 + ands r1, r0 + cmp r1, #1 + beq _08099FBC + cmp r1, #1 + blo _08099FB6 + cmp r1, #2 + beq _08099FC2 + cmp r1, #3 + beq _08099FC8 + b _08099FCE +_08099FB6: + ldrb r0, [r5, #0x15] + subs r0, #0x10 + b _08099FCC +_08099FBC: + ldrb r0, [r5, #0x15] + adds r0, #0x10 + b _08099FCC +_08099FC2: + ldrb r0, [r5, #0x15] + subs r0, #8 + b _08099FCC +_08099FC8: + ldrb r0, [r5, #0x15] + adds r0, #8 +_08099FCC: + strb r0, [r5, #0x15] +_08099FCE: + bl Random + movs r1, #0x3f + ands r0, r1 + movs r1, #0xf0 + subs r1, r1, r0 + strh r1, [r5, #0x24] + lsls r1, r1, #0x10 + asrs r1, r1, #0x11 + lsls r1, r1, #8 + ldrb r2, [r5, #0x15] + adds r0, r5, #0 + bl sub_0806F62C + ldrh r1, [r5, #0x24] + lsls r1, r1, #0x10 + asrs r1, r1, #0x11 + lsls r1, r1, #8 + ldrb r2, [r5, #0x15] + adds r0, r5, #0 + bl sub_0806F62C + adds r0, r5, #0 + movs r1, #5 + bl UpdateSprite + movs r0, #0xa6 + lsls r0, r0, #1 + bl PlaySFX + b _0809A1B6 +_0809A00C: + ldr r0, [r5, #0x50] + adds r0, #0x7b + ldrb r0, [r0] + adds r0, #0x80 + rsbs r0, r0, #0 + strb r0, [r5, #0x15] + movs r1, #0x90 + lsls r1, r1, #7 + ldrb r2, [r5, #0x15] + adds r0, r5, #0 + bl sub_0806F62C + bl Random + movs r1, #1 + ands r1, r0 + cmp r1, #0 + beq _0809A040 + bl Random + movs r1, #0x3f + ands r0, r1 + ldrb r1, [r5, #0x15] + adds r0, r0, r1 + strb r0, [r5, #0x15] + b _0809A04E +_0809A040: + bl Random + movs r1, #0x3f + ands r0, r1 + ldrb r1, [r5, #0x15] + subs r1, r1, r0 + strb r1, [r5, #0x15] +_0809A04E: + adds r0, r5, #0 + movs r1, #6 + bl UpdateSprite + b _0809A1B6 +_0809A058: + bl Random + movs r1, #0x2f + ands r1, r0 + movs r4, #0x30 + subs r4, r4, r1 + lsls r4, r4, #8 + bl Random + movs r2, #0xff + ands r2, r0 + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806F62C + bl Random + movs r1, #1 + ands r1, r0 + cmp r1, #0 + beq _0809A092 + bl Random + movs r1, #0x3f + ands r0, r1 + ldrb r1, [r5, #0x15] + adds r0, r0, r1 + strb r0, [r5, #0x15] + b _0809A0A0 +_0809A092: + bl Random + movs r1, #0x3f + ands r0, r1 + ldrb r1, [r5, #0x15] + subs r1, r1, r0 + strb r1, [r5, #0x15] +_0809A0A0: + adds r0, r5, #0 + movs r1, #5 + bl UpdateSprite + b _0809A1B6 +_0809A0AA: + movs r0, #0xc3 + lsls r0, r0, #2 + b _0809A1B4 +_0809A0B0: + adds r2, r5, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] + movs r0, #0x18 + str r0, [r5, #0x78] + adds r7, r5, #0 + adds r7, #0x76 + movs r1, #0 + movs r0, #0x80 + lsls r0, r0, #3 + strh r0, [r7] + adds r4, r5, #0 + adds r4, #0x74 + strh r0, [r4] + adds r6, r5, #0 + adds r6, #0x7a + strh r1, [r6] + ldr r0, [r5, #0x50] + adds r0, #0x7b + ldrb r1, [r0] + rsbs r1, r1, #0 + lsls r1, r1, #0x18 + ldr r3, _0809A118 @ =gUnk_0812388C + ldrb r2, [r5, #0xb] + lsls r0, r2, #1 + adds r0, #1 + lsls r0, r0, #1 + adds r0, r0, r3 + lsrs r1, r1, #0x18 + ldrh r0, [r0] + adds r1, r1, r0 + lsls r2, r2, #2 + adds r2, r2, r3 + ldrh r2, [r2] + adds r0, r5, #0 + bl sub_0806F62C + ldrh r1, [r7] + ldrh r2, [r4] + ldrh r3, [r6] + adds r0, r5, #0 + bl sub_0805EC9C + adds r0, r5, #0 + movs r1, #7 + bl UpdateSprite + b _0809A1B6 + .align 2, 0 +_0809A118: .4byte gUnk_0812388C +_0809A11C: + movs r0, #0 + strb r0, [r5, #0xe] + adds r0, r5, #0 + movs r1, #8 + bl UpdateSprite + ldr r0, [r5, #0x50] + adds r1, r5, #0 + bl CopyPosition + b _0809A1B6 +_0809A132: + ldr r0, [r5, #0x50] + adds r0, #0x7c + ldrb r0, [r0] + movs r1, #0 + strb r0, [r5, #0xb] + movs r0, #4 + strb r0, [r5, #0xe] + strb r1, [r5, #0xf] + ldr r3, _0809A1A0 @ =gRoomControls + ldrh r0, [r5, #0x2e] + ldrh r1, [r3, #6] + subs r0, r0, r1 + movs r1, #0xf8 + lsls r1, r1, #1 + adds r2, r1, #0 + ands r0, r2 + movs r1, #0x82 + adds r1, r1, r5 + mov ip, r1 + strh r0, [r1] + ldrh r1, [r5, #0x32] + ldrh r0, [r3, #8] + subs r1, r1, r0 + ands r1, r2 + adds r3, r5, #0 + adds r3, #0x80 + strh r1, [r3] + adds r4, r5, #0 + adds r4, #0x84 + mov r0, ip + ldrh r2, [r0] + subs r2, #0x10 + asrs r2, r2, #4 + lsrs r1, r1, #4 + lsls r0, r1, #5 + subs r0, r0, r1 + adds r2, r2, r0 + str r2, [r4] + mov r1, ip + ldrh r0, [r1] + ldrh r1, [r3] + ldrb r3, [r5, #0xb] + bl sub_0809A6F8 + ldr r0, [r5, #0x50] + adds r0, #0x7c + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0809A1A8 + ldr r0, _0809A1A4 @ =0x000001A3 + bl PlaySFX + b _0809A1B6 + .align 2, 0 +_0809A1A0: .4byte gRoomControls +_0809A1A4: .4byte 0x000001A3 +_0809A1A8: + movs r0, #0xe8 + bl PlaySFX + b _0809A1B6 +_0809A1B0: + movs r0, #0xf0 + lsls r0, r0, #1 +_0809A1B4: + str r0, [r5, #0x78] +_0809A1B6: + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_0809A1B8 +sub_0809A1B8: @ 0x0809A1B8 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x38 + adds r7, r0, #0 + bl sub_08004274 + ldrb r0, [r7, #0xa] + cmp r0, #9 + bls _0809A1D2 + b _0809A632 +_0809A1D2: + lsls r0, r0, #2 + ldr r1, _0809A1DC @ =_0809A1E0 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0809A1DC: .4byte _0809A1E0 +_0809A1E0: @ jump table + .4byte _0809A208 @ case 0 + .4byte _0809A25C @ case 1 + .4byte _0809A33E @ case 2 + .4byte _0809A378 @ case 3 + .4byte _0809A394 @ case 4 + .4byte _0809A3E0 @ case 5 + .4byte _0809A378 @ case 6 + .4byte _0809A46C @ case 7 + .4byte _0809A47C @ case 8 + .4byte _0809A616 @ case 9 +_0809A208: + adds r1, r7, #0 + adds r1, #0x79 + ldrb r0, [r1] + cmp r0, #0 + beq _0809A25C + subs r0, #1 + strb r0, [r1] + ldrb r0, [r7, #0xf] + subs r0, #1 + strb r0, [r7, #0xf] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r1, #0xb + str r1, [sp, #0x20] + cmp r0, #0xff + bne _0809A254 + movs r0, #5 + strb r0, [r7, #0xf] + ldrb r3, [r7, #0xb] + adds r0, r7, #0 + movs r1, #0x87 + movs r2, #1 + bl CreateObjectWithParent + adds r1, r0, #0 + str r1, [r7, #0x54] + cmp r1, #0 + beq _0809A24E + ldr r0, [r7, #0x50] + str r0, [r1, #0x50] + ldr r0, [r7, #0x54] + adds r0, #0x84 + ldr r2, [sp, #0x20] + ldr r1, [r2] + str r1, [r0] +_0809A24E: + ldrb r0, [r7, #0xb] + adds r0, #1 + strb r0, [r7, #0xb] +_0809A254: + ldr r1, [sp, #0x20] + ldr r0, [r1] + ldr r0, [r0, #0xc] + b _0809A474 +_0809A25C: + adds r4, r7, #0 + adds r4, #0x84 + ldr r1, [r4] + ldrb r0, [r7, #0xe] + lsls r0, r0, #2 + adds r1, #0xc + adds r1, r1, r0 + ldr r2, [r1] + ldr r0, [r2, #0x2c] + ldr r1, [r7, #0x2c] + subs r0, r0, r1 + ldr r1, [r2, #0x30] + ldr r2, [r7, #0x30] + subs r1, r1, r2 + bl sub_080045DA + strb r0, [r7, #0x15] + movs r2, #0x24 + ldrsh r1, [r7, r2] + ldrb r2, [r7, #0x15] + adds r0, r7, #0 + bl sub_0806F62C + ldr r1, [r4] + ldrb r0, [r7, #0xe] + lsls r0, r0, #2 + adds r1, #0xc + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r7, #0 + movs r2, #2 + movs r3, #2 + bl sub_080041A0 + cmp r0, #0 + bne _0809A2A6 + b _0809A632 +_0809A2A6: + ldrb r0, [r7, #0xa] + cmp r0, #0 + bne _0809A2CC + ldr r1, [r4] + ldrb r0, [r7, #0xe] + lsls r0, r0, #2 + adds r1, #0xc + adds r1, r1, r0 + ldr r3, [r1] + ldrb r2, [r3, #0x18] + lsls r1, r2, #0x1e + lsrs r1, r1, #0x1e + movs r0, #2 + rsbs r0, r0, #0 + ands r1, r0 + subs r0, #2 + ands r0, r2 + orrs r0, r1 + strb r0, [r3, #0x18] +_0809A2CC: + ldrb r1, [r7, #0xe] + ldr r0, [r4] + ldrb r0, [r0, #1] + subs r0, #1 + cmp r1, r0 + bne _0809A338 + movs r0, #2 + strb r0, [r7, #0xc] + movs r0, #0xf0 + strb r0, [r7, #0xe] + bl Random + ldr r6, _0809A330 @ =gUnk_0812384C + ldrb r2, [r7, #0xb] + movs r3, #0xf + movs r4, #0xf + adds r1, r4, #0 + ands r1, r2 + lsls r1, r1, #2 + adds r1, r1, r6 + ands r0, r3 + ldrb r1, [r1] + adds r0, r0, r1 + strb r0, [r7, #0x15] + bl Random + ldrb r1, [r7, #0xb] + ands r4, r1 + lsls r4, r4, #1 + adds r4, #1 + lsls r4, r4, #1 + adds r4, r4, r6 + ldr r2, _0809A334 @ =0x000001FF + adds r1, r2, #0 + ands r0, r1 + ldrh r4, [r4] + adds r0, r0, r4 + strh r0, [r7, #0x24] + ldrb r0, [r7, #0xa] + cmp r0, #0 + beq _0809A320 + b _0809A632 +_0809A320: + ldr r1, [r7, #0x50] + movs r0, #4 + strb r0, [r1, #0xc] + ldr r1, [r7, #0x50] + movs r0, #0 + strb r0, [r1, #0xd] + b _0809A632 + .align 2, 0 +_0809A330: .4byte gUnk_0812384C +_0809A334: .4byte 0x000001FF +_0809A338: + adds r0, r1, #1 + strb r0, [r7, #0xe] + b _0809A632 +_0809A33E: + ldr r1, [r7, #0x50] + ldrb r0, [r1, #0xb] + cmp r0, #3 + bne _0809A38E + adds r0, r1, #0 + adds r0, #0x84 + ldr r0, [r0] + ldr r2, [r0, #8] + ldr r0, [r2, #0x2c] + ldr r1, [r7, #0x2c] + subs r0, r0, r1 + ldr r1, [r2, #0x30] + ldr r2, [r7, #0x30] + subs r1, r1, r2 + bl sub_080045DA + strb r0, [r7, #0x15] + movs r1, #0xa0 + lsls r1, r1, #2 + ldrb r2, [r7, #0x15] + adds r0, r7, #0 + bl sub_0806F62C + ldr r1, [r7, #0x50] + adds r0, r7, #0 + movs r2, #0x48 + bl sub_0806FC80 + b _0809A388 +_0809A378: + ldrb r2, [r7, #0x15] + adds r0, r7, #0 + movs r1, #0x80 + bl sub_0806F62C + adds r0, r7, #0 + adds r0, #0x5a + ldrb r0, [r0] +_0809A388: + cmp r0, #0 + bne _0809A38E + b _0809A632 +_0809A38E: + bl sub_0805E780 + b _0809A632 +_0809A394: + ldr r3, [r7, #0x78] + cmp r3, #0 + bne _0809A3B4 + ldr r0, _0809A3B0 @ =gUnk_02034350 + movs r2, #0xc + ldrsh r1, [r0, r2] + movs r0, #0x80 + lsls r0, r0, #1 + cmp r1, r0 + beq _0809A38E + movs r0, #8 + bl sub_0805308C + b _0809A632 + .align 2, 0 +_0809A3B0: .4byte gUnk_02034350 +_0809A3B4: + ldr r2, [r7, #0x50] + adds r0, r2, #0 + adds r0, #0x45 + ldrb r1, [r0] + cmp r1, #0 + bne _0809A3C8 + movs r0, #1 + strb r0, [r7, #0xd] + str r1, [r7, #0x78] + b _0809A632 +_0809A3C8: + ldrb r0, [r7, #0xd] + cmp r0, #0 + bne _0809A3D6 + ldrb r0, [r2, #0xb] + cmp r0, #0 + beq _0809A3D6 + b _0809A632 +_0809A3D6: + movs r0, #1 + strb r0, [r7, #0xd] + subs r0, r3, #1 + str r0, [r7, #0x78] + b _0809A632 +_0809A3E0: + ldr r0, [r7, #0x78] + cmp r0, #0 + bne _0809A432 + adds r0, r7, #0 + adds r0, #0x76 + ldrh r2, [r0] + movs r1, #0x80 + lsls r1, r1, #1 + adds r5, r0, #0 + cmp r2, r1 + bne _0809A40E + ldr r0, [r7, #0x50] + adds r0, #0x7c + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + adds r4, r7, #0 + adds r4, #0x74 + cmp r0, #0 + beq _0809A420 + bl sub_0805E780 + b _0809A420 +_0809A40E: + adds r0, r2, #0 + subs r0, #0x20 + strh r0, [r5] + adds r1, r7, #0 + adds r1, #0x74 + ldrh r0, [r1] + subs r0, #0x20 + strh r0, [r1] + adds r4, r1, #0 +_0809A420: + ldrh r1, [r5] + ldrh r2, [r4] + adds r0, r7, #0 + adds r0, #0x7a + ldrh r3, [r0] + adds r0, r7, #0 + bl sub_0805EC9C + b _0809A436 +_0809A432: + subs r0, #1 + str r0, [r7, #0x78] +_0809A436: + ldr r0, [r7, #0x50] + adds r1, r7, #0 + bl CopyPosition + ldr r4, _0809A468 @ =gUnk_0812388C + ldrb r3, [r7, #0xb] + lsls r0, r3, #1 + adds r0, #1 + lsls r0, r0, #1 + adds r0, r0, r4 + ldrh r1, [r0] + ldr r0, [r7, #0x50] + adds r0, #0x7b + ldrb r2, [r0] + rsbs r2, r2, #0 + lsls r2, r2, #0x18 + lsls r3, r3, #2 + adds r3, r3, r4 + lsrs r2, r2, #0x18 + ldrh r3, [r3] + adds r2, r2, r3 + adds r0, r7, #0 + bl sub_0806F62C + b _0809A632 + .align 2, 0 +_0809A468: .4byte gUnk_0812388C +_0809A46C: + ldrb r0, [r7, #0xe] + cmp r0, #0 + bne _0809A38E + ldr r0, [r7, #0x50] +_0809A474: + adds r1, r7, #0 + bl CopyPosition + b _0809A632 +_0809A47C: + ldrb r0, [r7, #0xe] + subs r0, #1 + strb r0, [r7, #0xe] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + beq _0809A48C + b _0809A632 +_0809A48C: + movs r0, #4 + strb r0, [r7, #0xe] + ldrb r0, [r7, #0xf] + adds r0, #1 + strb r0, [r7, #0xf] + adds r0, r7, #0 + adds r0, #0x84 + str r0, [sp, #4] + ldrb r1, [r7, #0xf] + lsls r0, r1, #5 + subs r0, r0, r1 + ldr r2, [sp, #4] + ldr r1, [r2] + subs r1, r1, r0 + mov sl, r1 + mov r0, sl + str r0, [sp] + adds r1, r7, #0 + adds r1, #0x82 + str r1, [sp, #8] + ldrh r0, [r1] + adds r2, r7, #0 + adds r2, #0x7e + str r2, [sp, #0xc] + strh r0, [r2] + ldrh r0, [r1] + subs r1, #8 + str r1, [sp, #0x10] + strh r0, [r1] + movs r2, #0x80 + adds r2, r2, r7 + mov sb, r2 + ldrb r0, [r7, #0xf] + lsls r0, r0, #4 + ldrh r1, [r2] + subs r1, r1, r0 + movs r0, #0x7c + adds r0, r0, r7 + mov r8, r0 + strh r1, [r0] + adds r4, r7, #0 + adds r4, #0x78 + strh r1, [r4] + ldr r1, [sp, #0x10] + ldrh r0, [r1] + ldrh r1, [r4] + ldrb r3, [r7, #0xb] + mov r2, sl + bl sub_0809A6F8 + adds r5, r0, #0 + ldrb r6, [r7, #0xf] + ldr r2, [sp, #4] + str r2, [sp, #0x20] + ldr r0, [sp, #0x10] + str r0, [sp, #0x28] + ldr r1, [sp, #8] + str r1, [sp, #0x1c] + ldr r2, [sp, #0xc] + str r2, [sp, #0x30] + mov r0, sb + str r0, [sp, #0x34] + mov r1, r8 + str r1, [sp, #0x2c] + str r4, [sp, #0x24] + cmp r6, #0 + beq _0809A568 + ldr r2, [sp, #0x28] + str r2, [sp, #0x14] + mov sb, r4 + ldr r0, [sp, #0x30] + mov r8, r0 + adds r4, r1, #0 +_0809A51E: + ldr r1, [sp, #0x14] + ldrh r0, [r1] + subs r0, #0x10 + strh r0, [r1] + mov r2, sb + ldrh r0, [r2] + adds r0, #0x10 + strh r0, [r2] + ldr r0, [sp] + adds r0, #0x1e + str r0, [sp] + ldrh r0, [r1] + ldrh r1, [r2] + ldrb r3, [r7, #0xb] + ldr r2, [sp] + bl sub_0809A6F8 + adds r5, r5, r0 + mov r1, r8 + ldrh r0, [r1] + adds r0, #0x10 + strh r0, [r1] + ldrh r0, [r4] + adds r0, #0x10 + strh r0, [r4] + movs r2, #0x20 + add sl, r2 + ldrh r0, [r1] + ldrh r1, [r4] + ldrb r3, [r7, #0xb] + mov r2, sl + bl sub_0809A6F8 + adds r5, r5, r0 + subs r6, #1 + cmp r6, #0 + bne _0809A51E +_0809A568: + ldrb r1, [r7, #0xf] + lsls r0, r1, #5 + subs r0, r0, r1 + ldr r2, [sp, #0x20] + ldr r1, [r2] + adds r1, r1, r0 + mov sl, r1 + mov r0, sl + str r0, [sp] + ldr r1, [sp, #0x1c] + ldrh r0, [r1] + ldr r2, [sp, #0x30] + strh r0, [r2] + ldrh r0, [r1] + ldr r1, [sp, #0x28] + strh r0, [r1] + ldrb r0, [r7, #0xf] + lsls r0, r0, #4 + ldr r2, [sp, #0x34] + ldrh r2, [r2] + adds r0, r0, r2 + ldr r1, [sp, #0x2c] + strh r0, [r1] + ldr r2, [sp, #0x24] + strh r0, [r2] + ldr r1, [sp, #0x28] + ldrh r0, [r1] + ldrh r1, [r2] + ldrb r3, [r7, #0xb] + mov r2, sl + bl sub_0809A6F8 + adds r5, r5, r0 + ldrb r0, [r7, #0xf] + subs r6, r0, #1 + cmp r6, #0 + beq _0809A610 + ldr r2, [sp, #0x28] + str r2, [sp, #0x18] + ldr r0, [sp, #0x24] + mov sb, r0 + ldr r1, [sp, #0x30] + mov r8, r1 + ldr r4, [sp, #0x2c] +_0809A5C0: + ldr r2, [sp, #0x18] + ldrh r0, [r2] + subs r0, #0x10 + strh r0, [r2] + mov r1, sb + ldrh r0, [r1] + subs r0, #0x10 + strh r0, [r1] + ldr r2, [sp] + subs r2, #0x20 + str r2, [sp] + ldr r1, [sp, #0x18] + ldrh r0, [r1] + mov r2, sb + ldrh r1, [r2] + ldrb r3, [r7, #0xb] + ldr r2, [sp] + bl sub_0809A6F8 + adds r5, r5, r0 + mov r1, r8 + ldrh r0, [r1] + adds r0, #0x10 + strh r0, [r1] + ldrh r0, [r4] + subs r0, #0x10 + strh r0, [r4] + movs r2, #0x1e + rsbs r2, r2, #0 + add sl, r2 + ldrh r0, [r1] + ldrh r1, [r4] + ldrb r3, [r7, #0xb] + mov r2, sl + bl sub_0809A6F8 + adds r5, r5, r0 + subs r6, #1 + cmp r6, #0 + bne _0809A5C0 +_0809A610: + cmp r5, #0 + bne _0809A632 + b _0809A38E +_0809A616: + bl sub_08078B48 + ldr r0, [r7, #0x78] + subs r0, #1 + str r0, [r7, #0x78] + movs r1, #1 + rsbs r1, r1, #0 + cmp r0, r1 + bne _0809A632 + ldr r1, _0809A640 @ =gRoomControls + ldr r0, _0809A644 @ =gLinkEntity + str r0, [r1, #0x30] + bl sub_0805E780 +_0809A632: + add sp, #0x38 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0809A640: .4byte gRoomControls +_0809A644: .4byte gLinkEntity + + thumb_func_start sub_0809A648 +sub_0809A648: @ 0x0809A648 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r7, r0, #0 + bl sub_08004274 + ldrb r0, [r7, #0xe] + subs r0, #1 + strb r0, [r7, #0xe] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + beq _0809A6EC + ldr r4, [r7, #0x50] + adds r0, r4, #0 + adds r0, #0x74 + ldrh r1, [r0] + movs r0, #0x80 + lsls r0, r0, #9 + bl __divsi3 + movs r2, #0x24 + ldrsh r1, [r7, r2] + adds r5, r1, #0 + muls r5, r0, r5 + adds r4, #0x7b + ldrb r1, [r4] + ldrb r0, [r7, #0x15] + subs r0, r0, r1 + movs r1, #0x7b + adds r1, r1, r7 + mov r8, r1 + strb r0, [r1] + ldr r6, _0809A6E8 @ =gUnk_080C9160 + ldrb r0, [r1] + lsls r0, r0, #1 + adds r0, r0, r6 + movs r2, #0 + ldrsh r0, [r0, r2] + lsls r5, r5, #8 + asrs r5, r5, #0x10 + adds r1, r5, #0 + bl sub_0806F9EC + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r4, #0x80 + lsls r4, r4, #1 + adds r1, r4, #0 + bl sub_0806FA04 + ldr r1, [r7, #0x50] + lsls r0, r0, #0x10 + asrs r0, r0, #8 + ldr r1, [r1, #0x2c] + adds r1, r1, r0 + str r1, [r7, #0x2c] + mov r1, r8 + ldrb r0, [r1] + adds r0, #0x40 + lsls r0, r0, #1 + adds r0, r0, r6 + movs r2, #0 + ldrsh r0, [r0, r2] + adds r1, r5, #0 + bl sub_0806F9EC + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + adds r1, r4, #0 + bl sub_0806FA04 + ldr r1, [r7, #0x50] + lsls r0, r0, #0x10 + asrs r0, r0, #8 + ldr r1, [r1, #0x30] + subs r1, r1, r0 + str r1, [r7, #0x30] + b _0809A6F0 + .align 2, 0 +_0809A6E8: .4byte gUnk_080C9160 +_0809A6EC: + bl sub_0805E780 +_0809A6F0: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_0809A6F8 +sub_0809A6F8: @ 0x0809A6F8 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + adds r5, r1, #0 + adds r6, r2, #0 + adds r7, r3, #0 + bl sub_0809A758 + cmp r0, #0 + beq _0809A754 + ldr r0, _0809A738 @ =gUnk_081238A0 + lsls r1, r6, #1 + adds r1, r1, r0 + ldrh r0, [r1] + cmp r0, #0 + beq _0809A750 + movs r0, #1 + ands r0, r7 + cmp r0, #0 + beq _0809A73C + ldrh r0, [r1] + lsrs r1, r4, #4 + movs r3, #0x3f + ands r1, r3 + lsrs r2, r5, #4 + ands r2, r3 + lsls r2, r2, #6 + orrs r1, r2 + movs r2, #1 + bl sub_0807B9B8 + b _0809A750 + .align 2, 0 +_0809A738: .4byte gUnk_081238A0 +_0809A73C: + lsrs r0, r4, #4 + movs r2, #0x3f + ands r0, r2 + lsrs r1, r5, #4 + ands r1, r2 + lsls r1, r1, #6 + orrs r0, r1 + movs r1, #1 + bl sub_0807BA8C +_0809A750: + movs r0, #1 + b _0809A756 +_0809A754: + movs r0, #0 +_0809A756: + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_0809A758 +sub_0809A758: @ 0x0809A758 + push {lr} + adds r2, r0, #0 + cmp r2, #0xf + bls _0809A770 + movs r0, #0xf8 + lsls r0, r0, #1 + cmp r2, r0 + bhi _0809A770 + cmp r1, #0xf0 + bhi _0809A770 + movs r0, #1 + b _0809A772 +_0809A770: + movs r0, #0 +_0809A772: + pop {pc} + + thumb_func_start sub_0809A774 +sub_0809A774: @ 0x0809A774 + push {lr} + ldr r2, _0809A788 @ =gUnk_08123C80 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0809A788: .4byte gUnk_08123C80 + + thumb_func_start sub_0809A78C +sub_0809A78C: @ 0x0809A78C + push {r4, r5, lr} + adds r4, r0, #0 + movs r3, #0 + movs r0, #1 + strb r0, [r4, #0xc] + movs r2, #0x80 + strb r2, [r4, #0xe] + strb r3, [r4, #0xf] + ldrb r0, [r4, #0x19] + movs r1, #3 + orrs r0, r1 + strb r0, [r4, #0x19] + adds r5, r4, #0 + adds r5, #0x80 + strh r2, [r5] + adds r0, r4, #0 + adds r0, #0x78 + strh r3, [r0] + ldrh r0, [r4, #0x2e] + subs r0, #4 + strh r0, [r4, #0x2e] + adds r1, r4, #0 + adds r1, #0x63 + movs r0, #0xfc + strb r0, [r1] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #7 + orrs r0, r1 + strb r0, [r2] + ldrb r0, [r4, #0x19] + movs r1, #0xc0 + orrs r0, r1 + strb r0, [r4, #0x19] + ldrh r2, [r5] + adds r0, r4, #0 + adds r1, r2, #0 + bl sub_0805EC9C + adds r0, r4, #0 + bl UpdateSpriteOrderAndFlip + ldrb r1, [r4, #0xf] + adds r0, r4, #0 + bl LoadAnimation + adds r0, r4, #0 + bl sub_0809A958 + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0809A7F4 +sub_0809A7F4: @ 0x0809A7F4 + push {r4, lr} + adds r4, r0, #0 + bl sub_080042B8 + adds r0, r4, #0 + bl sub_0809AA00 + ldrb r0, [r4, #0xe] + adds r2, r0, #0 + cmp r2, #0 + beq _0809A810 + subs r0, #1 + strb r0, [r4, #0xe] + b _0809A840 +_0809A810: + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0809A840 + ldrb r0, [r4, #0xf] + cmp r0, #3 + bne _0809A838 + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #0x5a + strb r0, [r4, #0xe] + strb r2, [r4, #0xf] + adds r0, r4, #0 + movs r1, #2 + bl LoadAnimation + b _0809A840 +_0809A838: + ldrb r1, [r4, #0xf] + adds r0, r4, #0 + bl LoadAnimation +_0809A840: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0809A844 +sub_0809A844: @ 0x0809A844 + push {r4, lr} + adds r4, r0, #0 + bl sub_080042B8 + adds r0, r4, #0 + bl sub_0809AA00 + ldrb r0, [r4, #0xf] + cmp r0, #1 + bhi _0809A85C + movs r1, #0 + b _0809A870 +_0809A85C: + ldrb r0, [r4, #0xe] + adds r2, r0, #0 + cmp r2, #0 + beq _0809A87C + subs r0, #1 + strb r0, [r4, #0xe] + ldr r0, _0809A878 @ =gUnk_03004040 + ldr r1, [r0] + cmp r1, #0 + bne _0809A8A0 +_0809A870: + movs r0, #1 + strb r0, [r4, #0xc] + strb r1, [r4, #0xe] + b _0809A8A0 + .align 2, 0 +_0809A878: .4byte gUnk_03004040 +_0809A87C: + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0809A8A0 + movs r0, #3 + strb r0, [r4, #0xc] + strb r2, [r4, #0xe] + adds r0, r4, #0 + movs r1, #3 + bl LoadAnimation + adds r0, r4, #0 + movs r1, #0x78 + bl sub_0805E4E0 +_0809A8A0: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0809A8A4 +sub_0809A8A4: @ 0x0809A8A4 + push {r4, lr} + adds r4, r0, #0 + adds r2, r4, #0 + adds r2, #0x5a + ldrb r1, [r2] + movs r0, #0xe0 + ands r0, r1 + cmp r0, #0x40 + beq _0809A8D4 + cmp r0, #0x40 + bgt _0809A8C0 + cmp r0, #0x20 + beq _0809A8E2 + b _0809A8FC +_0809A8C0: + cmp r0, #0x80 + bne _0809A8FC + adds r0, r4, #0 + adds r0, #0x59 + ldrb r0, [r0] + cmp r0, #0 + bne _0809A902 + bl sub_0805E780 + b _0809A902 +_0809A8D4: + movs r0, #0xbf + ands r0, r1 + strb r0, [r2] + adds r0, r4, #0 + bl sub_0809A9D4 + b _0809A902 +_0809A8E2: + ldrb r0, [r4, #0xe] + adds r0, #1 + strb r0, [r4, #0xe] + ldrb r1, [r2] + movs r0, #0xdf + ands r0, r1 + strb r0, [r2] + movs r0, #0xff + bl sub_08078A90 + movs r0, #0x2a + bl sub_0807CD04 +_0809A8FC: + adds r0, r4, #0 + bl sub_080042B8 +_0809A902: + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _0809A92A + adds r1, r4, #0 + adds r1, #0x80 + ldrh r0, [r1] + adds r0, #8 + strh r0, [r1] + ldr r0, [r4, #0x2c] + movs r2, #0x80 + lsls r2, r2, #3 + adds r0, r0, r2 + str r0, [r4, #0x2c] + ldrh r2, [r1] + adds r0, r4, #0 + adds r1, r2, #0 + movs r3, #0 + bl sub_0805EC9C + b _0809A94E +_0809A92A: + ldr r1, [r4, #0x54] + adds r0, r4, #0 + movs r2, #0 + bl sub_0809AA9C + ldr r1, _0809A950 @ =gLinkEntity + adds r0, r4, #0 + movs r2, #1 + bl sub_0809AA9C + ldr r0, _0809A954 @ =gUnk_03004040 + ldr r1, [r0] + cmp r1, #0 + beq _0809A94E + adds r0, r4, #0 + movs r2, #1 + bl sub_0809AA9C +_0809A94E: + pop {r4, pc} + .align 2, 0 +_0809A950: .4byte gLinkEntity +_0809A954: .4byte gUnk_03004040 + + thumb_func_start sub_0809A958 +sub_0809A958: @ 0x0809A958 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + movs r1, #0x2e + ldrsh r3, [r0, r1] + ldr r2, _0809A9CC @ =gRoomControls + ldrh r1, [r2, #6] + subs r1, #4 + subs r3, r3, r1 + asrs r3, r3, #4 + movs r4, #0x3f + ands r3, r4 + movs r5, #0x32 + ldrsh r1, [r0, r5] + ldrh r2, [r2, #8] + subs r1, r1, r2 + asrs r1, r1, #4 + ands r1, r4 + lsls r1, r1, #6 + orrs r3, r1 + adds r0, #0x82 + strh r3, [r0] + ldrh r0, [r0] + adds r5, r0, #0 + subs r5, #0x82 + ldr r6, _0809A9D0 @ =gUnk_08123C90 + movs r0, #0 + movs r1, #0x80 + lsls r1, r1, #7 + mov sb, r1 +_0809A996: + movs r4, #0 + adds r0, #1 + mov r8, r0 + adds r7, r5, #0 + adds r7, #0x40 +_0809A9A0: + ldrh r0, [r6] + mov r1, sb + ands r0, r1 + cmp r0, #0 + beq _0809A9B4 + ldrh r0, [r6] + adds r1, r5, r4 + movs r2, #1 + bl UpdateCollisionLayer +_0809A9B4: + adds r4, #1 + adds r6, #2 + cmp r4, #3 + ble _0809A9A0 + mov r0, r8 + adds r5, r7, #0 + cmp r0, #4 + ble _0809A996 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0809A9CC: .4byte gRoomControls +_0809A9D0: .4byte gUnk_08123C90 + + thumb_func_start sub_0809A9D4 +sub_0809A9D4: @ 0x0809A9D4 + push {r4, r5, r6, r7, lr} + adds r0, #0x82 + ldrh r0, [r0] + adds r5, r0, #0 + subs r5, #0x82 + movs r0, #0 +_0809A9E0: + movs r4, #0 + adds r7, r0, #1 + adds r6, r5, #0 + adds r6, #0x40 +_0809A9E8: + adds r0, r5, r4 + movs r1, #1 + bl sub_0807BA8C + adds r4, #1 + cmp r4, #3 + ble _0809A9E8 + adds r0, r7, #0 + adds r5, r6, #0 + cmp r0, #4 + ble _0809A9E0 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_0809AA00 +sub_0809AA00: @ 0x0809AA00 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r5, r0, #0 + movs r0, #0 + strb r0, [r5, #0xf] + ldr r1, [r5, #0x54] + cmp r1, #0 + bne _0809AA50 + movs r0, #7 + movs r1, #0x38 + movs r2, #7 + bl sub_0805EB00 + adds r4, r0, #0 + adds r7, r5, #0 + adds r7, #0x78 + cmp r4, #0 + beq _0809AA5C + movs r0, #0x80 + lsls r0, r0, #4 + mov r8, r0 + ldr r0, _0809AA4C @ =0x0000FFFF + adds r6, r0, #0 +_0809AA30: + ldrh r0, [r4, #0xa] + ands r0, r6 + cmp r0, r8 + bne _0809AA3A + str r4, [r5, #0x54] +_0809AA3A: + adds r0, r4, #0 + movs r1, #7 + bl sub_0805EB64 + adds r4, r0, #0 + cmp r4, #0 + bne _0809AA30 + b _0809AA5C + .align 2, 0 +_0809AA4C: .4byte 0x0000FFFF +_0809AA50: + adds r0, r5, #0 + movs r2, #0 + bl sub_0809AA9C + adds r7, r5, #0 + adds r7, #0x78 +_0809AA5C: + ldr r4, _0809AA94 @ =gLinkEntity + adds r0, r5, #0 + adds r1, r4, #0 + movs r2, #0x20 + movs r3, #0x22 + bl sub_080041A0 + strh r0, [r7] + lsls r0, r0, #0x10 + cmp r0, #0 + beq _0809AA8E + adds r0, r5, #0 + adds r1, r4, #0 + movs r2, #1 + bl sub_0809AA9C + ldr r0, _0809AA98 @ =gUnk_03004040 + ldr r4, [r0] + cmp r4, #0 + beq _0809AA8E + adds r0, r5, #0 + adds r1, r4, #0 + movs r2, #1 + bl sub_0809AA9C +_0809AA8E: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0809AA94: .4byte gLinkEntity +_0809AA98: .4byte gUnk_03004040 + + thumb_func_start sub_0809AA9C +sub_0809AA9C: @ 0x0809AA9C + push {r4, lr} + adds r4, r0, #0 + adds r3, r1, #0 + adds r0, #0x5a + ldrb r0, [r0] + movs r1, #3 + ands r1, r0 + cmp r1, #1 + beq _0809AAB2 + cmp r1, #2 + bne _0809AABC +_0809AAB2: + adds r0, r3, #0 + adds r0, #0x63 + strb r1, [r0] + adds r2, r0, #0 + b _0809AAC6 +_0809AABC: + adds r1, r3, #0 + adds r1, #0x63 + movs r0, #0 + strb r0, [r1] + adds r2, r1, #0 +_0809AAC6: + movs r0, #0x2e + ldrsh r1, [r3, r0] + ldr r0, _0809AAE8 @ =gRoomControls + ldrh r0, [r0, #6] + movs r3, #0xad + lsls r3, r3, #1 + adds r0, r0, r3 + cmp r1, r0 + bgt _0809AAE4 + ldrb r0, [r4, #0xf] + adds r0, #1 + strb r0, [r4, #0xf] + ldrb r0, [r2] + adds r0, #1 + strb r0, [r2] +_0809AAE4: + pop {r4, pc} + .align 2, 0 +_0809AAE8: .4byte gRoomControls + + thumb_func_start sub_0809AAEC +sub_0809AAEC: @ 0x0809AAEC + push {lr} + ldr r2, _0809AB00 @ =gUnk_08123D28 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0809AB00: .4byte gUnk_08123D28 + + thumb_func_start sub_0809AB04 +sub_0809AB04: @ 0x0809AB04 + push {r4, r5, lr} + adds r5, r0, #0 + movs r0, #0x31 + bl sub_0807CBE4 + cmp r0, #0 + beq _0809AB22 + adds r0, r5, #0 + bl sub_0809AD68 + adds r0, r5, #0 + bl sub_0809AD8C + bl sub_0805E780 +_0809AB22: + movs r0, #0x36 + movs r1, #0 + bl CreateEnemy + adds r4, r0, #0 + cmp r4, #0 + beq _0809AB9C + adds r0, r5, #0 + adds r1, r4, #0 + bl CopyPosition + str r4, [r5, #0x54] + ldr r2, _0809AB68 @ =gUnk_030010A0 + adds r0, r2, #0 + adds r0, #0x38 + ldrb r1, [r0] + cmp r1, #0 + beq _0809AB70 + adds r0, #1 + ldrb r0, [r0] + cmp r0, #0 + beq _0809AB52 + bl sub_0805E780 +_0809AB52: + movs r0, #7 + strb r0, [r5, #0xc] + ldrb r1, [r5, #0x18] + subs r0, #0xb + ands r0, r1 + strb r0, [r5, #0x18] + ldr r0, _0809AB6C @ =gRoomControls + str r5, [r0, #0x30] + bl sub_080809D4 + b _0809AB9C + .align 2, 0 +_0809AB68: .4byte gUnk_030010A0 +_0809AB6C: .4byte gRoomControls +_0809AB70: + movs r0, #1 + strb r0, [r5, #0xc] + movs r0, #0x1e + strb r0, [r5, #0xe] + strb r1, [r5, #0x1e] + adds r2, r5, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #7 + orrs r0, r1 + strb r0, [r2] + adds r1, r5, #0 + adds r1, #0x63 + movs r0, #0x20 + strb r0, [r1] + ldr r1, _0809ABA0 @ =gUnk_08012DD8 + adds r0, r5, #0 + bl sub_0807DAD0 + adds r1, r5, #0 + adds r1, #0x84 + str r0, [r1] +_0809AB9C: + pop {r4, r5, pc} + .align 2, 0 +_0809ABA0: .4byte gUnk_08012DD8 + + thumb_func_start sub_0809ABA4 +sub_0809ABA4: @ 0x0809ABA4 + push {lr} + movs r1, #0 + bl sub_0807DDAC + pop {pc} + .align 2, 0 + + thumb_func_start sub_0809ABB0 +sub_0809ABB0: @ 0x0809ABB0 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xe] + subs r0, #1 + strb r0, [r2, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0809ABCE + movs r0, #3 + strb r0, [r2, #0xc] + movs r0, #0x78 + strb r0, [r2, #0xe] + ldr r1, _0809ABD0 @ =gRoomControls + ldr r0, [r2, #0x54] + str r0, [r1, #0x30] +_0809ABCE: + pop {pc} + .align 2, 0 +_0809ABD0: .4byte gRoomControls + + thumb_func_start sub_0809ABD4 +sub_0809ABD4: @ 0x0809ABD4 + push {lr} + adds r1, r0, #0 + ldrb r0, [r1, #0xe] + subs r0, #1 + strb r0, [r1, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0809ABF2 + movs r0, #4 + strb r0, [r1, #0xc] + movs r0, #0x5a + strb r0, [r1, #0xe] + ldr r1, [r1, #0x54] + movs r0, #1 + strb r0, [r1, #0xd] +_0809ABF2: + pop {pc} + + thumb_func_start sub_0809ABF4 +sub_0809ABF4: @ 0x0809ABF4 + push {lr} + adds r2, r0, #0 + ldr r0, [r2, #0x54] + ldrb r0, [r0, #0xd] + cmp r0, #2 + bls _0809AC36 + ldrb r0, [r2, #0xe] + subs r0, #1 + strb r0, [r2, #0xe] + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _0809AC36 + movs r0, #5 + strb r0, [r2, #0xc] + movs r0, #8 + strb r0, [r2, #0xe] + strb r1, [r2, #0xf] + ldrb r1, [r2, #0x19] + subs r0, #0x15 + ands r0, r1 + movs r1, #4 + orrs r0, r1 + strb r0, [r2, #0x19] + ldr r1, _0809AC38 @ =gLCDControls + adds r2, r1, #0 + adds r2, #0x66 + movs r0, #0xf4 + lsls r0, r0, #4 + strh r0, [r2] + adds r1, #0x68 + movs r0, #0x10 + strh r0, [r1] +_0809AC36: + pop {pc} + .align 2, 0 +_0809AC38: .4byte gLCDControls + + thumb_func_start sub_0809AC3C +sub_0809AC3C: @ 0x0809AC3C + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + movs r3, #0xff + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #0 + bne _0809AC9A + movs r0, #8 + strb r0, [r4, #0xe] + ldrb r2, [r4, #0xf] + adds r2, #1 + strb r2, [r4, #0xf] + adds r1, r2, #0 + ands r1, r3 + ldr r6, _0809AC9C @ =gLCDControls + lsls r3, r1, #8 + movs r0, #0x10 + subs r0, r0, r1 + movs r1, #0xff + ands r0, r1 + orrs r3, r0 + adds r0, r6, #0 + adds r0, #0x68 + strh r3, [r0] + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + cmp r2, #0xf + bls _0809AC9A + ldrb r1, [r4, #0x19] + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x19] + adds r0, r6, #0 + adds r0, #0x66 + strh r5, [r0] + movs r0, #6 + strb r0, [r4, #0xc] + movs r0, #0xf + strb r0, [r4, #0xe] + ldrb r1, [r4, #0x18] + subs r0, #0x13 + ands r0, r1 + strb r0, [r4, #0x18] +_0809AC9A: + pop {r4, r5, r6, pc} + .align 2, 0 +_0809AC9C: .4byte gLCDControls + + thumb_func_start sub_0809ACA0 +sub_0809ACA0: @ 0x0809ACA0 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xe] + subs r0, #1 + strb r0, [r2, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0809ACC4 + ldr r1, [r2, #0x54] + movs r0, #6 + strb r0, [r1, #0xd] + ldr r0, _0809ACC8 @ =gUnk_030010A0 + adds r0, #0x38 + movs r1, #0xf1 + strb r1, [r0] + adds r0, r2, #0 + bl sub_0805E7BC +_0809ACC4: + pop {pc} + .align 2, 0 +_0809ACC8: .4byte gUnk_030010A0 + + thumb_func_start sub_0809ACCC +sub_0809ACCC: @ 0x0809ACCC + push {lr} + adds r2, r0, #0 + ldr r0, [r2, #0x54] + ldrb r0, [r0, #0xe] + cmp r0, #1 + bne _0809ACE4 + movs r0, #0 + movs r1, #8 + strb r1, [r2, #0xc] + strb r0, [r2, #0xd] + movs r0, #0xb4 + strb r0, [r2, #0xe] +_0809ACE4: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0809ACE8 +sub_0809ACE8: @ 0x0809ACE8 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xd] + cmp r0, #1 + beq _0809AD1E + cmp r0, #2 + beq _0809AD3A + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0809AD58 + movs r0, #0x5a + strb r0, [r4, #0xe] + movs r0, #1 + strb r0, [r4, #0xd] + movs r0, #0x73 + bl PlaySFX + movs r0, #0x31 + bl sub_0807CCC8 + adds r0, r4, #0 + bl sub_0809AD8C + b _0809AD58 +_0809AD1E: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0809AD58 + movs r0, #0x78 + strb r0, [r4, #0xe] + movs r0, #2 + strb r0, [r4, #0xd] + adds r0, r4, #0 + bl sub_0809AD68 + b _0809AD58 +_0809AD3A: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0809AD58 + ldr r1, _0809AD5C @ =gRoomControls + ldr r0, _0809AD60 @ =gLinkEntity + str r0, [r1, #0x30] + ldr r0, _0809AD64 @ =gLinkState + adds r0, #0x8b + movs r1, #1 + strb r1, [r0] + bl sub_0805E780 +_0809AD58: + pop {r4, pc} + .align 2, 0 +_0809AD5C: .4byte gRoomControls +_0809AD60: .4byte gLinkEntity +_0809AD64: .4byte gLinkState + + thumb_func_start sub_0809AD68 +sub_0809AD68: @ 0x0809AD68 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + bl sub_0804B128 + bl LoadRoomEntityList + movs r0, #0x17 + bl GetInventoryValue + cmp r0, #0 + beq _0809AD8A + ldrb r0, [r4, #0xb] + bl sub_0804B128 + bl LoadRoomEntityList +_0809AD8A: + pop {r4, pc} + + thumb_func_start sub_0809AD8C +sub_0809AD8C: @ 0x0809AD8C + push {lr} + movs r0, #0x4f + movs r1, #0x22 + movs r2, #0 + bl CreateObject + adds r2, r0, #0 + cmp r2, #0 + beq _0809ADAC + ldr r0, _0809ADB0 @ =gRoomControls + ldrh r1, [r0, #6] + adds r1, #0xb8 + strh r1, [r2, #0x2e] + ldrh r0, [r0, #8] + adds r0, #8 + strh r0, [r2, #0x32] +_0809ADAC: + pop {pc} + .align 2, 0 +_0809ADB0: .4byte gRoomControls + + thumb_func_start sub_0809ADB4 +sub_0809ADB4: @ 0x0809ADB4 + push {lr} + ldr r2, _0809ADC8 @ =gUnk_08123D4C + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0809ADC8: .4byte gUnk_08123D4C + + thumb_func_start sub_0809ADCC +sub_0809ADCC: @ 0x0809ADCC + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + movs r0, #0x2e + ldrsh r1, [r4, r0] + ldr r2, _0809AE14 @ =gRoomControls + ldrh r0, [r2, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + movs r3, #0x3f + ands r1, r3 + movs r5, #0x32 + ldrsh r0, [r4, r5] + ldrh r2, [r2, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r1, r0 + adds r5, r4, #0 + adds r5, #0x80 + strh r1, [r5] + adds r0, r4, #0 + adds r0, #0x38 + ldrb r7, [r0] + adds r0, r4, #0 + bl UpdateSpriteOrderAndFlip + ldrb r0, [r4, #0xa] + cmp r0, #1 + beq _0809AEBC + cmp r0, #1 + bgt _0809AE18 + cmp r0, #0 + beq _0809AE1E + b _0809AF46 + .align 2, 0 +_0809AE14: .4byte gRoomControls +_0809AE18: + cmp r0, #2 + beq _0809AF10 + b _0809AF46 +_0809AE1E: + movs r0, #2 + strb r0, [r4, #0xc] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + subs r0, #0xa + ands r0, r1 + movs r1, #6 + orrs r0, r1 + strb r0, [r2] + ldrh r5, [r5] + subs r6, r5, #1 + ldr r4, _0809AEB8 @ =0x00004022 + adds r0, r4, #0 + adds r1, r6, #0 + adds r2, r7, #0 + bl UpdateCollisionLayer + adds r0, r4, #0 + adds r1, r5, #0 + adds r2, r7, #0 + bl UpdateCollisionLayer + adds r1, r5, #1 + adds r0, r4, #0 + adds r2, r7, #0 + bl UpdateCollisionLayer + adds r1, r5, #0 + adds r1, #0x3f + adds r0, r4, #0 + adds r2, r7, #0 + bl UpdateCollisionLayer + adds r1, r5, #0 + adds r1, #0x40 + adds r0, r4, #0 + adds r2, r7, #0 + bl UpdateCollisionLayer + adds r1, r5, #0 + adds r1, #0x41 + adds r0, r4, #0 + adds r2, r7, #0 + bl UpdateCollisionLayer + adds r4, #0x1b + adds r1, r5, #0 + subs r1, #0x41 + adds r0, r4, #0 + adds r2, r7, #0 + bl UpdateCollisionLayer + adds r1, r5, #0 + subs r1, #0x40 + adds r0, r4, #0 + adds r2, r7, #0 + bl UpdateCollisionLayer + subs r4, #0x17 + adds r1, r5, #0 + subs r1, #0x3f + adds r0, r4, #0 + adds r2, r7, #0 + bl UpdateCollisionLayer + adds r1, r5, #0 + subs r1, #0x81 + adds r0, r4, #0 + adds r2, r7, #0 + bl UpdateCollisionLayer + adds r1, r5, #0 + subs r1, #0x80 + adds r0, r4, #0 + b _0809AF04 + .align 2, 0 +_0809AEB8: .4byte 0x00004022 +_0809AEBC: + strb r0, [r4, #0xc] + ldrh r6, [r5] + ldr r4, _0809AEF4 @ =0x00004022 + adds r0, r4, #0 + adds r1, r6, #0 + adds r2, r7, #0 + bl UpdateCollisionLayer + adds r1, r6, #0 + adds r1, #0x40 + adds r0, r4, #0 + adds r2, r7, #0 + bl UpdateCollisionLayer + ldr r0, _0809AEF8 @ =0x00004025 + adds r1, r6, #0 + adds r1, #0x41 + adds r2, r7, #0 + bl UpdateCollisionLayer + movs r0, #0x4f + bl sub_0807CBD0 + cmp r0, #0 + bne _0809AF00 + ldr r0, _0809AEFC @ =0x0000402F + b _0809AF02 + .align 2, 0 +_0809AEF4: .4byte 0x00004022 +_0809AEF8: .4byte 0x00004025 +_0809AEFC: .4byte 0x0000402F +_0809AF00: + ldr r0, _0809AF0C @ =0x0000402D +_0809AF02: + adds r1, r6, #1 +_0809AF04: + adds r2, r7, #0 + bl UpdateCollisionLayer + b _0809AF46 + .align 2, 0 +_0809AF0C: .4byte 0x0000402D +_0809AF10: + movs r0, #1 + strb r0, [r4, #0xc] + ldrh r5, [r5] + adds r6, r5, #0 + subs r6, #0x41 + ldr r4, _0809AF48 @ =0x00004022 + adds r0, r4, #0 + adds r1, r6, #0 + adds r2, r7, #0 + bl UpdateCollisionLayer + adds r1, r5, #0 + subs r1, #0x40 + adds r0, r4, #0 + adds r2, r7, #0 + bl UpdateCollisionLayer + subs r1, r5, #1 + adds r0, r4, #0 + adds r2, r7, #0 + bl UpdateCollisionLayer + adds r0, r4, #0 + adds r1, r5, #0 + adds r2, r7, #0 + bl UpdateCollisionLayer +_0809AF46: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0809AF48: .4byte 0x00004022 + + thumb_func_start nullsub_535 +nullsub_535: @ 0x0809AF4C + bx lr + .align 2, 0 + + thumb_func_start sub_0809AF50 +sub_0809AF50: @ 0x0809AF50 + push {lr} + bl nullsub_2 + pop {pc} + + thumb_func_start nullsub_2 +nullsub_2: @ 0x0809AF58 + bx lr + .align 2, 0 + + thumb_func_start sub_0809AF5C +sub_0809AF5C: @ 0x0809AF5C + push {lr} + ldr r2, _0809AF70 @ =gUnk_08123D58 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0809AF70: .4byte gUnk_08123D58 + + thumb_func_start sub_0809AF74 +sub_0809AF74: @ 0x0809AF74 + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + strb r0, [r4, #0x1e] + movs r0, #0x2e + ldrsh r2, [r4, r0] + ldr r1, _0809AFBC @ =gRoomControls + ldrh r0, [r1, #6] + subs r2, r2, r0 + asrs r2, r2, #4 + movs r3, #0x3f + ands r2, r3 + movs r5, #0x32 + ldrsh r0, [r4, r5] + ldrh r1, [r1, #8] + subs r0, r0, r1 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r2, r0 + adds r0, r4, #0 + adds r0, #0x80 + movs r6, #0 + strh r2, [r0] + ldrb r0, [r4, #0xa] + cmp r0, #0 + beq _0809AFC4 + movs r1, #1 + strb r1, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x84 + ldrb r0, [r0] + cmp r0, #0 + bne _0809AFC0 + strb r6, [r4, #0xd] + b _0809B02C + .align 2, 0 +_0809AFBC: .4byte gRoomControls +_0809AFC0: + strb r1, [r4, #0xd] + b _0809B02C +_0809AFC4: + movs r0, #3 + strb r0, [r4, #0xc] + movs r0, #4 + strb r0, [r4, #0xd] + adds r0, r4, #0 + adds r0, #0x84 + strb r6, [r0] + adds r0, r4, #0 + bl UpdateSpriteOrderAndFlip + movs r0, #0x8b + movs r1, #1 + movs r2, #0 + bl CreateObject + adds r5, r0, #0 + cmp r5, #0 + beq _0809B026 + str r4, [r5, #0x50] + str r5, [r4, #0x54] + adds r0, r4, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CBE4 + cmp r0, #0 + bne _0809B010 + movs r3, #0x80 + lsls r3, r3, #0xd + adds r0, r4, #0 + adds r1, r5, #0 + adds r2, r3, #0 + bl PositionRelative + adds r0, r5, #0 + adds r0, #0x84 + strb r6, [r0] + b _0809B026 +_0809B010: + movs r3, #0x80 + lsls r3, r3, #0xd + adds r0, r4, #0 + adds r1, r5, #0 + movs r2, #0 + bl PositionRelative + adds r1, r5, #0 + adds r1, #0x84 + movs r0, #1 + strb r0, [r1] +_0809B026: + adds r0, r4, #0 + bl sub_0809B334 +_0809B02C: + adds r0, r4, #0 + bl sub_0809B0B0 + pop {r4, r5, r6, pc} + + thumb_func_start sub_0809B034 +sub_0809B034: @ 0x0809B034 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x82 + ldrh r0, [r0] + adds r1, r4, #0 + adds r1, #0x38 + ldrb r1, [r1] + bl sub_080002B0 + adds r0, r4, #0 + bl sub_0809B234 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0809B050 +sub_0809B050: @ 0x0809B050 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_0806F69C + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0809B0A2 + movs r0, #1 + strb r0, [r4, #0xc] + movs r0, #0x2e + ldrsh r1, [r4, r0] + ldr r2, _0809B0A4 @ =gRoomControls + ldrh r0, [r2, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + movs r3, #0x3f + ands r1, r3 + movs r5, #0x32 + ldrsh r0, [r4, r5] + ldrh r2, [r2, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r1, r0 + adds r0, r4, #0 + adds r0, #0x80 + strh r1, [r0] + movs r0, #0 + bl sub_08078A90 + adds r0, r4, #0 + bl sub_0809B0B0 + movs r0, #0x86 + lsls r0, r0, #1 + bl sub_08004488 +_0809B0A2: + pop {r4, r5, pc} + .align 2, 0 +_0809B0A4: .4byte gRoomControls + + thumb_func_start sub_0809B0A8 +sub_0809B0A8: @ 0x0809B0A8 + push {lr} + bl sub_0809B234 + pop {pc} + + thumb_func_start sub_0809B0B0 +sub_0809B0B0: @ 0x0809B0B0 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + mov r8, r0 + adds r0, #0x80 + ldrh r0, [r0] + subs r6, r0, #1 + mov r0, r8 + adds r0, #0x38 + ldrb r7, [r0] + mov r1, r8 + ldrb r0, [r1, #0xd] + cmp r0, #4 + bls _0809B0CE + b _0809B228 +_0809B0CE: + lsls r0, r0, #2 + ldr r1, _0809B0D8 @ =_0809B0DC + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0809B0D8: .4byte _0809B0DC +_0809B0DC: @ jump table + .4byte _0809B0F0 @ case 0 + .4byte _0809B130 @ case 1 + .4byte _0809B178 @ case 2 + .4byte _0809B1C0 @ case 3 + .4byte _0809B208 @ case 4 +_0809B0F0: + mov r1, r8 + adds r1, #0x84 + movs r0, #0 + strb r0, [r1] + adds r5, r6, #2 + mov r0, r8 + adds r0, #0x82 + strh r5, [r0] + ldr r0, _0809B128 @ =0x00004082 + subs r1, r6, #1 + adds r2, r7, #0 + bl UpdateCollisionLayer + ldr r4, _0809B12C @ =0x00004022 + adds r0, r4, #0 + adds r1, r6, #0 + adds r2, r7, #0 + bl UpdateCollisionLayer + adds r1, r6, #1 + adds r0, r4, #0 + adds r2, r7, #0 + bl UpdateCollisionLayer + adds r0, r4, #0 + adds r1, r5, #0 + b _0809B162 + .align 2, 0 +_0809B128: .4byte 0x00004082 +_0809B12C: .4byte 0x00004022 +_0809B130: + mov r1, r8 + adds r1, #0x84 + movs r0, #1 + strb r0, [r1] + mov r0, r8 + adds r0, #0x82 + strh r6, [r0] + ldr r0, _0809B16C @ =0x0000405F + adds r1, r6, #0 + adds r2, r7, #0 + bl UpdateCollisionLayer + ldr r4, _0809B170 @ =0x00004022 + adds r1, r6, #1 + adds r0, r4, #0 + adds r2, r7, #0 + bl UpdateCollisionLayer + adds r1, r6, #2 + adds r0, r4, #0 + adds r2, r7, #0 + bl UpdateCollisionLayer + ldr r0, _0809B174 @ =0x00004082 + adds r1, r6, #3 +_0809B162: + adds r2, r7, #0 + bl UpdateCollisionLayer + b _0809B228 + .align 2, 0 +_0809B16C: .4byte 0x0000405F +_0809B170: .4byte 0x00004022 +_0809B174: .4byte 0x00004082 +_0809B178: + mov r1, r8 + adds r1, #0x84 + movs r0, #1 + strb r0, [r1] + mov r0, r8 + adds r0, #0x82 + strh r6, [r0] + ldr r0, _0809B1B4 @ =0x00004082 + adds r1, r6, #3 + adds r2, r7, #0 + bl UpdateCollisionLayer + ldr r0, _0809B1B8 @ =0x00004022 + adds r1, r6, #2 + adds r2, r7, #0 + bl UpdateCollisionLayer + ldr r0, _0809B1BC @ =0x0000405F + adds r1, r6, #0 + adds r2, r7, #0 + bl UpdateCollisionLayer + mov r1, r8 + ldr r0, [r1, #0x50] + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CCC8 + b _0809B228 + .align 2, 0 +_0809B1B4: .4byte 0x00004082 +_0809B1B8: .4byte 0x00004022 +_0809B1BC: .4byte 0x0000405F +_0809B1C0: + mov r1, r8 + adds r1, #0x84 + movs r0, #0 + strb r0, [r1] + adds r4, r6, #2 + mov r0, r8 + adds r0, #0x82 + strh r4, [r0] + ldr r0, _0809B1FC @ =0x00004082 + subs r1, r6, #1 + adds r2, r7, #0 + bl UpdateCollisionLayer + ldr r0, _0809B200 @ =0x00004022 + adds r1, r6, #0 + adds r2, r7, #0 + bl UpdateCollisionLayer + ldr r0, _0809B204 @ =0x0000405F + adds r1, r4, #0 + adds r2, r7, #0 + bl UpdateCollisionLayer + mov r1, r8 + ldr r0, [r1, #0x50] + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CD48 + b _0809B228 + .align 2, 0 +_0809B1FC: .4byte 0x00004082 +_0809B200: .4byte 0x00004022 +_0809B204: .4byte 0x0000405F +_0809B208: + ldr r4, _0809B230 @ =0x00004022 + adds r0, r4, #0 + adds r1, r6, #0 + adds r2, r7, #0 + bl UpdateCollisionLayer + adds r1, r6, #1 + adds r0, r4, #0 + adds r2, r7, #0 + bl UpdateCollisionLayer + adds r1, r6, #2 + adds r0, r4, #0 + adds r2, r7, #0 + bl UpdateCollisionLayer +_0809B228: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0809B230: .4byte 0x00004022 + + thumb_func_start sub_0809B234 +sub_0809B234: @ 0x0809B234 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + cmp r0, #0 + beq _0809B26A + ldr r2, [r4, #0x50] + ldrb r1, [r2, #0x19] + lsrs r1, r1, #6 + lsls r1, r1, #6 + ldrb r3, [r4, #0x19] + movs r0, #0x3f + ands r0, r3 + orrs r0, r1 + strb r0, [r4, #0x19] + adds r2, #0x29 + ldrb r1, [r2] + lsls r1, r1, #0x1d + adds r3, r4, #0 + adds r3, #0x29 + lsrs r1, r1, #0x1d + ldrb r2, [r3] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + b _0809B270 +_0809B26A: + adds r0, r4, #0 + bl sub_0809B274 +_0809B270: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0809B274 +sub_0809B274: @ 0x0809B274 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r3, _0809B290 @ =gLinkEntity + adds r2, r4, #0 + adds r2, #0x84 + ldrb r0, [r2] + cmp r0, #1 + beq _0809B2BA + cmp r0, #1 + bgt _0809B294 + cmp r0, #0 + beq _0809B29A + b _0809B332 + .align 2, 0 +_0809B290: .4byte gLinkEntity +_0809B294: + cmp r0, #2 + beq _0809B30C + b _0809B332 +_0809B29A: + movs r1, #0x32 + ldrsh r0, [r3, r1] + adds r0, #0x14 + movs r3, #0x32 + ldrsh r1, [r4, r3] + cmp r0, r1 + bge _0809B332 + movs r0, #1 + strb r0, [r2] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + subs r0, #9 + ands r0, r1 + movs r1, #5 + b _0809B306 +_0809B2BA: + movs r5, #0x2e + ldrsh r0, [r3, r5] + adds r0, #0x1c + movs r5, #0x2e + ldrsh r1, [r4, r5] + cmp r0, r1 + ble _0809B2E8 + movs r0, #2 + strb r0, [r2] + ldr r0, _0809B2E4 @ =0x00004022 + adds r1, r4, #0 + adds r1, #0x80 + ldrh r1, [r1] + adds r1, #2 + movs r2, #1 + bl UpdateCollisionLayer + ldr r0, [r4, #0x54] + bl sub_0809B358 + b _0809B332 + .align 2, 0 +_0809B2E4: .4byte 0x00004022 +_0809B2E8: + movs r1, #0x32 + ldrsh r0, [r3, r1] + adds r0, #0x10 + movs r3, #0x32 + ldrsh r1, [r4, r3] + cmp r0, r1 + ble _0809B332 + movs r0, #0 + strb r0, [r2] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + subs r0, #8 + ands r0, r1 + movs r1, #4 +_0809B306: + orrs r0, r1 + strb r0, [r2] + b _0809B332 +_0809B30C: + movs r5, #0x2e + ldrsh r0, [r3, r5] + adds r0, #0x20 + movs r3, #0x2e + ldrsh r1, [r4, r3] + cmp r0, r1 + bge _0809B332 + movs r0, #1 + strb r0, [r2] + adds r0, r4, #0 + adds r0, #0x80 + ldrh r0, [r0] + adds r0, #2 + movs r1, #1 + bl sub_0807BA8C + ldr r0, [r4, #0x54] + bl sub_0809B38C +_0809B332: + pop {r4, r5, pc} + + thumb_func_start sub_0809B334 +sub_0809B334: @ 0x0809B334 + push {r4, r5, lr} + adds r0, #0x80 + ldrh r0, [r0] + adds r4, r0, #0 + subs r4, #0x81 + movs r5, #2 +_0809B340: + ldr r0, _0809B354 @ =0x00004026 + adds r1, r4, #0 + movs r2, #1 + bl UpdateCollisionLayer + subs r5, #1 + adds r4, #1 + cmp r5, #0 + bge _0809B340 + pop {r4, r5, pc} + .align 2, 0 +_0809B354: .4byte 0x00004026 + + thumb_func_start sub_0809B358 +sub_0809B358: @ 0x0809B358 + push {r4, r5, r6, lr} + adds r1, r0, #0 + adds r1, #0x84 + ldrb r1, [r1] + lsls r1, r1, #1 + ldr r2, _0809B388 @ =gUnk_08123D68 + adds r5, r1, r2 + adds r0, #0x80 + ldrh r0, [r0] + adds r4, r0, #0 + subs r4, #0x82 + movs r6, #4 +_0809B370: + ldrh r0, [r5] + adds r1, r4, #0 + movs r2, #1 + bl UpdateCollisionLayer + subs r6, #1 + adds r4, #1 + adds r5, #4 + cmp r6, #0 + bge _0809B370 + pop {r4, r5, r6, pc} + .align 2, 0 +_0809B388: .4byte gUnk_08123D68 + + thumb_func_start sub_0809B38C +sub_0809B38C: @ 0x0809B38C + push {r4, r5, lr} + adds r0, #0x80 + ldrh r0, [r0] + adds r4, r0, #0 + subs r4, #0x82 + movs r5, #4 +_0809B398: + adds r0, r4, #0 + movs r1, #1 + bl sub_0807BA8C + subs r5, #1 + adds r4, #1 + cmp r5, #0 + bge _0809B398 + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0809B3AC +sub_0809B3AC: @ 0x0809B3AC + push {lr} + ldr r2, _0809B3C0 @ =gUnk_08123D7C + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0809B3C0: .4byte gUnk_08123D7C + + thumb_func_start sub_0809B3C4 +sub_0809B3C4: @ 0x0809B3C4 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + adds r0, #0x39 + bl GetInventoryValue + adds r5, r0, #0 + ldrb r0, [r4, #0xb] + cmp r0, #3 + beq _0809B3E2 + cmp r5, #0 + beq _0809B3FE + bl sub_0805E780 + b _0809B3FE +_0809B3E2: + movs r0, #0x73 + bl sub_0807CBD0 + cmp r0, #0 + beq _0809B3F0 + bl sub_0805E780 +_0809B3F0: + cmp r5, #2 + beq _0809B3FE + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] +_0809B3FE: + adds r1, r4, #0 + adds r1, #0x63 + movs r0, #3 + strb r0, [r1] + adds r0, r4, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CBE4 + cmp r0, #0 + beq _0809B424 + ldrb r0, [r4, #0xb] + cmp r0, #0 + bne _0809B420 + ldrh r0, [r4, #0x32] + adds r0, #0x30 + strh r0, [r4, #0x32] +_0809B420: + movs r0, #2 + strb r0, [r4, #0xb] +_0809B424: + adds r0, r4, #0 + bl UpdateSpriteOrderAndFlip + ldrb r1, [r4, #0xa] + adds r1, #0x39 + adds r0, r4, #0 + bl LoadAnimation + ldrb r1, [r4, #0xb] + cmp r1, #1 + beq _0809B46C + cmp r1, #1 + bgt _0809B444 + cmp r1, #0 + beq _0809B44E + b _0809B4A6 +_0809B444: + cmp r1, #2 + beq _0809B488 + cmp r1, #3 + beq _0809B48E + b _0809B4A6 +_0809B44E: + movs r0, #1 + strb r0, [r4, #0xc] + movs r0, #0x16 + strb r0, [r4, #0xe] + movs r0, #2 + strb r0, [r4, #0xf] + adds r0, r4, #0 + adds r0, #0x80 + strb r1, [r0] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + b _0809B49E +_0809B46C: + movs r0, #3 + strb r0, [r4, #0xc] + ldr r0, _0809B484 @ =gRoomControls + ldrh r0, [r0, #0xc] + subs r0, #0x10 + ldrh r1, [r4, #0x32] + subs r1, r1, r0 + ldrh r0, [r4, #0x36] + subs r0, r0, r1 + strh r0, [r4, #0x36] + b _0809B4A6 + .align 2, 0 +_0809B484: .4byte gRoomControls +_0809B488: + movs r0, #4 + strb r0, [r4, #0xc] + b _0809B4A6 +_0809B48E: + movs r1, #0 + movs r0, #5 + strb r0, [r4, #0xc] + strb r1, [r4, #0xd] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + subs r0, #0xd +_0809B49E: + ands r0, r1 + movs r1, #3 + orrs r0, r1 + strb r0, [r2] +_0809B4A6: + pop {r4, r5, pc} + + thumb_func_start sub_0809B4A8 +sub_0809B4A8: @ 0x0809B4A8 + push {r4, lr} + adds r4, r0, #0 + bl sub_0800445C + adds r1, r4, #0 + adds r1, #0x80 + ldrb r0, [r1] + cmp r0, #0 + beq _0809B4C0 + subs r0, #1 + strb r0, [r1] + b _0809B520 +_0809B4C0: + adds r0, r4, #0 + bl sub_0809B688 + cmp r0, #0 + beq _0809B51C + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r3, #0 + bne _0809B520 + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #0x1e + strb r0, [r4, #0xe] + movs r0, #0x40 + strh r0, [r4, #0x24] + movs r0, #0x10 + strb r0, [r4, #0x15] + ldr r2, _0809B510 @ =gLinkState + movs r0, #0x9e + strb r0, [r2, #6] + movs r0, #5 + strb r0, [r2, #0xc] + ldr r0, [r2, #0x30] + movs r1, #1 + orrs r0, r1 + str r0, [r2, #0x30] + ldr r1, _0809B514 @ =gLinkEntity + strh r3, [r1, #0x2c] + strh r3, [r1, #0x30] + ldrb r0, [r1, #0x14] + lsls r0, r0, #2 + strb r0, [r1, #0x15] + ldr r0, _0809B518 @ =0x0000010F + bl sub_08004488 + b _0809B520 + .align 2, 0 +_0809B510: .4byte gLinkState +_0809B514: .4byte gLinkEntity +_0809B518: .4byte 0x0000010F +_0809B51C: + movs r0, #0x16 + strb r0, [r4, #0xe] +_0809B520: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0809B524 +sub_0809B524: @ 0x0809B524 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xe] + subs r0, #1 + strb r0, [r2, #0xe] + movs r1, #0xff + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0809B564 + ldrb r0, [r2, #0xf] + subs r0, #1 + strb r0, [r2, #0xf] + ands r0, r1 + cmp r0, #0 + bne _0809B554 + movs r0, #3 + strb r0, [r2, #0xc] + ldrh r0, [r2, #0x32] + adds r0, #0x20 + strh r0, [r2, #0x32] + ldrh r0, [r2, #0x36] + subs r0, #0x20 + strh r0, [r2, #0x36] + b _0809B564 +_0809B554: + movs r0, #1 + strb r0, [r2, #0xc] + movs r0, #0x16 + strb r0, [r2, #0xe] + adds r1, r2, #0 + adds r1, #0x80 + movs r0, #0x18 + strb r0, [r1] +_0809B564: + adds r0, r2, #0 + bl sub_0806F69C + pop {pc} + + thumb_func_start sub_0809B56C +sub_0809B56C: @ 0x0809B56C + push {r4, lr} + adds r4, r0, #0 + movs r1, #0xa0 + lsls r1, r1, #6 + bl sub_080044EC + cmp r0, #1 + bne _0809B5B0 + movs r2, #4 + movs r0, #4 + strb r0, [r4, #0xc] + adds r3, r4, #0 + adds r3, #0x29 + ldrb r1, [r3] + subs r0, #0xc + ands r0, r1 + orrs r0, r2 + strb r0, [r3] + adds r0, r4, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CCC8 + adds r0, r4, #0 + movs r1, #2 + movs r2, #0 + bl CreateFx + adds r1, r0, #0 + cmp r1, #0 + beq _0809B5B0 + adds r0, r4, #0 + bl sub_0806FAB0 +_0809B5B0: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0809B5B4 +sub_0809B5B4: @ 0x0809B5B4 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _0809B5CC @ =gLinkState + ldr r0, [r0, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0809B5D0 + adds r0, r4, #0 + bl sub_0800445C + b _0809B5EA + .align 2, 0 +_0809B5CC: .4byte gLinkState +_0809B5D0: + adds r0, r4, #0 + bl sub_08017850 + cmp r0, #0 + beq _0809B5EA + ldrb r0, [r4, #0xa] + adds r0, #0x39 + movs r1, #0 + movs r2, #0 + bl sub_080A7C00 + bl sub_0805E780 +_0809B5EA: + pop {r4, pc} + + thumb_func_start sub_0809B5EC +sub_0809B5EC: @ 0x0809B5EC + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0x18] + lsls r0, r1, #0x1e + lsrs r5, r0, #0x1e + cmp r5, #1 + bne _0809B646 + ldrb r0, [r4, #0xd] + cmp r0, #0 + beq _0809B606 + cmp r0, #1 + beq _0809B630 + b _0809B682 +_0809B606: + movs r0, #7 + movs r1, #0x1a + movs r2, #7 + bl sub_0805EB00 + adds r2, r0, #0 + cmp r2, #0 + beq _0809B682 + movs r0, #0x2e + ldrsh r1, [r2, r0] + movs r3, #0x2e + ldrsh r0, [r4, r3] + cmp r1, r0 + blt _0809B682 + ldrb r0, [r2, #0x14] + cmp r0, #4 + bne _0809B682 + str r2, [r4, #0x50] + strb r5, [r4, #0xd] + adds r0, r2, #0 + b _0809B63E +_0809B630: + ldr r1, [r4, #0x50] + cmp r1, #0 + beq _0809B650 + ldr r0, [r1, #4] + cmp r0, #0 + beq _0809B650 + adds r0, r1, #0 +_0809B63E: + adds r1, r4, #0 + bl sub_0809B6B0 + b _0809B682 +_0809B646: + ldrb r0, [r4, #0xd] + cmp r0, #0 + beq _0809B656 + cmp r0, #1 + beq _0809B668 +_0809B650: + bl sub_0805E780 + b _0809B682 +_0809B656: + ldrb r0, [r4, #0xa] + adds r0, #0x39 + bl GetInventoryValue + cmp r0, #2 + bne _0809B682 + movs r0, #1 + strb r0, [r4, #0xd] + b _0809B682 +_0809B668: + ldr r0, _0809B684 @ =gTextBox + ldrb r0, [r0] + movs r2, #0x7f + ands r2, r0 + cmp r2, #0 + bne _0809B682 + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + strb r2, [r4, #0xd] +_0809B682: + pop {r4, r5, pc} + .align 2, 0 +_0809B684: .4byte gTextBox + + thumb_func_start sub_0809B688 +sub_0809B688: @ 0x0809B688 + push {lr} + ldr r1, _0809B6A8 @ =gLinkEntity + movs r2, #6 + movs r3, #0xc + bl sub_080041A0 + adds r1, r0, #0 + cmp r1, #1 + bne _0809B6A4 + ldr r0, _0809B6AC @ =gLinkState + ldrb r0, [r0, #0xd] + cmp r0, #0x10 + beq _0809B6A4 + movs r1, #0 +_0809B6A4: + adds r0, r1, #0 + pop {pc} + .align 2, 0 +_0809B6A8: .4byte gLinkEntity +_0809B6AC: .4byte gLinkState + + thumb_func_start sub_0809B6B0 +sub_0809B6B0: @ 0x0809B6B0 + push {r4, lr} + adds r4, r1, #0 + ldr r2, _0809B6EC @ =gUnk_08123D94 + ldrb r1, [r0, #0x14] + lsrs r1, r1, #1 + adds r1, r1, r2 + movs r3, #0 + ldrsb r3, [r1, r3] + lsls r3, r3, #0x10 + adds r1, r4, #0 + movs r2, #0 + bl PositionRelative + ldrb r0, [r4, #0xa] + lsls r0, r0, #2 + rsbs r0, r0, #0 + strh r0, [r4, #0x36] + ldrb r0, [r4, #0xa] + movs r1, #3 + subs r1, r1, r0 + adds r4, #0x29 + movs r0, #7 + ands r1, r0 + ldrb r2, [r4] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4] + pop {r4, pc} + .align 2, 0 +_0809B6EC: .4byte gUnk_08123D94 + + thumb_func_start sub_0809B6F0 +sub_0809B6F0: @ 0x0809B6F0 + push {lr} + ldr r2, _0809B704 @ =gUnk_08123D98 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0809B704: .4byte gUnk_08123D98 + + thumb_func_start sub_0809B708 +sub_0809B708: @ 0x0809B708 + push {r4, r5, r6, lr} + adds r6, r0, #0 + movs r2, #1 + movs r0, #1 + strb r0, [r6, #0xc] + ldrb r1, [r6, #0x18] + subs r0, #5 + ands r0, r1 + orrs r0, r2 + strb r0, [r6, #0x18] + movs r0, #0x80 + strh r0, [r6, #0x24] + adds r0, r6, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CBE4 + cmp r0, #0 + beq _0809B73A + adds r0, r6, #0 + bl sub_0809B7DC + bl sub_0805E780 + b _0809B78A +_0809B73A: + ldr r0, _0809B794 @ =0x0000030B + movs r2, #0x2e + ldrsh r1, [r6, r2] + ldr r5, _0809B798 @ =gRoomControls + ldrh r2, [r5, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + movs r4, #0x3f + ands r1, r4 + movs r3, #0x32 + ldrsh r2, [r6, r3] + ldrh r3, [r5, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r4 + lsls r2, r2, #6 + orrs r1, r2 + movs r2, #2 + bl sub_0807B7D8 + ldr r0, _0809B79C @ =0x00004061 + movs r2, #0x2e + ldrsh r1, [r6, r2] + ldrh r2, [r5, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + ands r1, r4 + movs r3, #0x32 + ldrsh r2, [r6, r3] + ldrh r3, [r5, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r4 + lsls r2, r2, #6 + orrs r1, r2 + adds r2, r6, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl UpdateCollisionLayer +_0809B78A: + adds r0, r6, #0 + bl sub_0809B7A0 + pop {r4, r5, r6, pc} + .align 2, 0 +_0809B794: .4byte 0x0000030B +_0809B798: .4byte gRoomControls +_0809B79C: .4byte 0x00004061 + + thumb_func_start sub_0809B7A0 +sub_0809B7A0: @ 0x0809B7A0 + push {r4, lr} + adds r4, r0, #0 + bl sub_0809B7C0 + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _0809B7BC + adds r0, r4, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CCC8 + bl sub_0805E780 +_0809B7BC: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0809B7C0 +sub_0809B7C0: @ 0x0809B7C0 + push {r4, lr} + adds r4, r0, #0 + bl sub_080002A0 + ldr r1, _0809B7D8 @ =0xFFFFBF9F + adds r0, r0, r1 + cmp r0, #1 + bls _0809B7D6 + adds r0, r4, #0 + bl sub_0809B7DC +_0809B7D6: + pop {r4, pc} + .align 2, 0 +_0809B7D8: .4byte 0xFFFFBF9F + + thumb_func_start sub_0809B7DC +sub_0809B7DC: @ 0x0809B7DC + push {r4, r5, r6, lr} + adds r6, r0, #0 + movs r0, #0xc3 + lsls r0, r0, #2 + movs r2, #0x2e + ldrsh r1, [r6, r2] + ldr r5, _0809B838 @ =gRoomControls + ldrh r2, [r5, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + movs r4, #0x3f + ands r1, r4 + movs r3, #0x32 + ldrsh r2, [r6, r3] + ldrh r3, [r5, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r4 + lsls r2, r2, #6 + orrs r1, r2 + movs r2, #2 + bl sub_0807B7D8 + ldr r0, _0809B83C @ =0x00004062 + movs r2, #0x2e + ldrsh r1, [r6, r2] + ldrh r2, [r5, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + ands r1, r4 + movs r3, #0x32 + ldrsh r2, [r6, r3] + ldrh r3, [r5, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r4 + lsls r2, r2, #6 + orrs r1, r2 + adds r2, r6, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl UpdateCollisionLayer + movs r0, #1 + strb r0, [r6, #0xe] + pop {r4, r5, r6, pc} + .align 2, 0 +_0809B838: .4byte gRoomControls +_0809B83C: .4byte 0x00004062 + + thumb_func_start sub_0809B840 +sub_0809B840: @ 0x0809B840 + push {lr} + ldr r2, _0809B854 @ =gUnk_08123DA0 + ldrb r1, [r0, #0xa] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0809B854: .4byte gUnk_08123DA0 + + thumb_func_start sub_0809B858 +sub_0809B858: @ 0x0809B858 + push {r4, r5, lr} + adds r4, r0, #0 + movs r1, #0x1e + bl sub_0805E4E0 + ldrb r3, [r4, #0xc] + cmp r3, #1 + beq _0809B8CC + cmp r3, #1 + bgt _0809B872 + cmp r3, #0 + beq _0809B878 + b _0809B972 +_0809B872: + cmp r3, #2 + beq _0809B948 + b _0809B972 +_0809B878: + movs r1, #1 + strb r1, [r4, #0xc] + movs r0, #0x3c + strb r0, [r4, #0xe] + strb r3, [r4, #0xf] + ldr r0, _0809B8BC @ =gRoomControls + str r4, [r0, #0x30] + strb r1, [r0, #0xe] + ldr r5, _0809B8C0 @ =gLinkEntity + movs r0, #0x2e + ldrsh r1, [r4, r0] + movs r2, #0x2e + ldrsh r0, [r5, r2] + movs r2, #6 + cmp r1, r0 + ble _0809B89A + movs r2, #2 +_0809B89A: + strb r2, [r5, #0x14] + ldr r2, _0809B8C4 @ =gLCDControls + ldrh r1, [r2] + ldr r0, _0809B8C8 @ =0x0000BFFF + ands r0, r1 + movs r4, #0xa0 + lsls r4, r4, #6 + adds r1, r4, #0 + orrs r0, r1 + strh r0, [r2] + adds r0, r2, #0 + adds r0, #0x58 + strh r3, [r0] + adds r2, #0x5c + movs r0, #0xa0 + strh r0, [r2] + b _0809B972 + .align 2, 0 +_0809B8BC: .4byte gRoomControls +_0809B8C0: .4byte gLinkEntity +_0809B8C4: .4byte gLCDControls +_0809B8C8: .4byte 0x0000BFFF +_0809B8CC: + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _0809B8D8 + subs r0, #1 + strb r0, [r4, #0xe] + b _0809B972 +_0809B8D8: + ldrb r0, [r4, #0xf] + cmp r0, #0x1f + bhi _0809B914 + ldr r5, _0809B90C @ =gUnk_030010A0 + ldr r0, [r5] + movs r1, #0x1f + ands r0, r1 + cmp r0, #0 + bne _0809B8F0 + ldr r0, _0809B910 @ =0x00000133 + bl PlaySFX +_0809B8F0: + ldr r0, [r5] + movs r1, #3 + ands r0, r1 + cmp r0, #0 + bne _0809B972 + ldrb r1, [r4, #0xf] + adds r1, #1 + strb r1, [r4, #0xf] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r4, #0 + bl sub_0809B97C + b _0809B972 + .align 2, 0 +_0809B90C: .4byte gUnk_030010A0 +_0809B910: .4byte 0x00000133 +_0809B914: + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #0x3c + strb r0, [r4, #0xe] + ldr r2, _0809B938 @ =gLCDControls + ldrh r1, [r2] + ldr r0, _0809B93C @ =0x0000DFFF + ands r0, r1 + strh r0, [r2] + ldr r1, _0809B940 @ =gRoomControls + ldr r0, _0809B944 @ =gLinkEntity + str r0, [r1, #0x30] + movs r0, #0x9a + lsls r0, r0, #1 + bl PlaySFX + b _0809B972 + .align 2, 0 +_0809B938: .4byte gLCDControls +_0809B93C: .4byte 0x0000DFFF +_0809B940: .4byte gRoomControls +_0809B944: .4byte gLinkEntity +_0809B948: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0809B972 + ldr r2, _0809B974 @ =gLCDControls + ldrh r1, [r2] + movs r3, #0x90 + lsls r3, r3, #7 + adds r0, r3, #0 + orrs r0, r1 + strh r0, [r2] + ldr r1, _0809B978 @ =gRoomControls + movs r0, #4 + strb r0, [r1, #0xe] + ldr r1, [r4, #0x50] + movs r0, #1 + strb r0, [r1, #0xd] + bl sub_0805E780 +_0809B972: + pop {r4, r5, pc} + .align 2, 0 +_0809B974: .4byte gLCDControls +_0809B978: .4byte gRoomControls + + thumb_func_start sub_0809B97C +sub_0809B97C: @ 0x0809B97C + push {lr} + movs r3, #0x2e + ldrsh r2, [r0, r3] + ldr r0, _0809B9B4 @ =gRoomControls + movs r3, #0xa + ldrsh r0, [r0, r3] + subs r2, r2, r0 + subs r0, r2, r1 + adds r2, r2, r1 + cmp r0, #0 + bge _0809B994 + movs r0, #0 +_0809B994: + cmp r0, #0xf0 + ble _0809B99A + movs r0, #0xf0 +_0809B99A: + cmp r2, #0 + bge _0809B9A0 + movs r2, #0 +_0809B9A0: + cmp r2, #0xf0 + ble _0809B9A6 + movs r2, #0xf0 +_0809B9A6: + ldr r1, _0809B9B8 @ =gLCDControls + lsls r0, r0, #8 + orrs r0, r2 + adds r1, #0x58 + strh r0, [r1] + pop {pc} + .align 2, 0 +_0809B9B4: .4byte gRoomControls +_0809B9B8: .4byte gLCDControls + + thumb_func_start sub_0809B9BC +sub_0809B9BC: @ 0x0809B9BC + push {r4, r5, lr} + adds r4, r0, #0 + movs r1, #0x1e + bl sub_0805E4E0 + ldrb r0, [r4, #0xc] + cmp r0, #1 + beq _0809BA34 + cmp r0, #1 + bgt _0809B9D6 + cmp r0, #0 + beq _0809B9DC + b _0809BAC2 +_0809B9D6: + cmp r0, #2 + beq _0809BA9C + b _0809BAC2 +_0809B9DC: + movs r1, #1 + strb r1, [r4, #0xc] + movs r0, #0x3c + strb r0, [r4, #0xe] + movs r0, #0x20 + strb r0, [r4, #0xf] + ldr r0, _0809BA24 @ =gRoomControls + str r4, [r0, #0x30] + strb r1, [r0, #0xe] + ldr r3, _0809BA28 @ =gLinkEntity + movs r0, #0x2e + ldrsh r1, [r4, r0] + movs r2, #0x2e + ldrsh r0, [r3, r2] + movs r2, #6 + cmp r1, r0 + ble _0809BA00 + movs r2, #2 +_0809BA00: + strb r2, [r3, #0x14] + ldr r2, _0809BA2C @ =gLCDControls + ldrh r1, [r2] + ldr r0, _0809BA30 @ =0x0000BFFF + ands r0, r1 + movs r3, #0x80 + lsls r3, r3, #6 + adds r1, r3, #0 + orrs r0, r1 + strh r0, [r2] + adds r1, r2, #0 + adds r1, #0x58 + movs r0, #0xf0 + strh r0, [r1] + adds r2, #0x5c + movs r0, #0xa0 + strh r0, [r2] + b _0809BAC2 + .align 2, 0 +_0809BA24: .4byte gRoomControls +_0809BA28: .4byte gLinkEntity +_0809BA2C: .4byte gLCDControls +_0809BA30: .4byte 0x0000BFFF +_0809BA34: + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _0809BA40 + subs r0, #1 + strb r0, [r4, #0xe] + b _0809BAC2 +_0809BA40: + ldrb r0, [r4, #0xf] + cmp r0, #0 + beq _0809BA7C + ldr r5, _0809BA74 @ =gUnk_030010A0 + ldr r0, [r5] + movs r1, #0x1f + ands r0, r1 + cmp r0, #0 + bne _0809BA58 + ldr r0, _0809BA78 @ =0x00000133 + bl PlaySFX +_0809BA58: + ldr r0, [r5] + movs r1, #3 + ands r0, r1 + cmp r0, #0 + bne _0809BAC2 + ldrb r1, [r4, #0xf] + subs r1, #1 + strb r1, [r4, #0xf] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r4, #0 + bl sub_0809B97C + b _0809BAC2 + .align 2, 0 +_0809BA74: .4byte gUnk_030010A0 +_0809BA78: .4byte 0x00000133 +_0809BA7C: + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #0x3c + strb r0, [r4, #0xe] + ldr r1, _0809BA94 @ =gRoomControls + ldr r0, _0809BA98 @ =gLinkEntity + str r0, [r1, #0x30] + movs r0, #0x9a + lsls r0, r0, #1 + bl PlaySFX + b _0809BAC2 + .align 2, 0 +_0809BA94: .4byte gRoomControls +_0809BA98: .4byte gLinkEntity +_0809BA9C: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0809BAC2 + ldr r1, _0809BAC4 @ =gRoomControls + movs r0, #4 + strb r0, [r1, #0xe] + ldr r2, _0809BAC8 @ =gLCDControls + ldrh r1, [r2] + ldr r0, _0809BACC @ =0x0000D7FF + ands r0, r1 + strh r0, [r2] + ldr r1, [r4, #0x50] + movs r0, #1 + strb r0, [r1, #0xd] + bl sub_0805E780 +_0809BAC2: + pop {r4, r5, pc} + .align 2, 0 +_0809BAC4: .4byte gRoomControls +_0809BAC8: .4byte gLCDControls +_0809BACC: .4byte 0x0000D7FF + + thumb_func_start sub_0809BAD0 +sub_0809BAD0: @ 0x0809BAD0 + push {r4, r5, lr} + adds r4, r0, #0 + movs r1, #0xa + bl sub_0805E4E0 + ldrb r0, [r4, #0xc] + cmp r0, #4 + bls _0809BAE2 + b _0809BC68 +_0809BAE2: + lsls r0, r0, #2 + ldr r1, _0809BAEC @ =_0809BAF0 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0809BAEC: .4byte _0809BAF0 +_0809BAF0: @ jump table + .4byte _0809BB04 @ case 0 + .4byte _0809BB4C @ case 1 + .4byte _0809BBF8 @ case 2 + .4byte _0809BC24 @ case 3 + .4byte _0809BC48 @ case 4 +_0809BB04: + ldrb r0, [r4, #0xc] + adds r0, #1 + movs r1, #0 + strb r0, [r4, #0xc] + movs r0, #0x3c + strb r0, [r4, #0xe] + strb r1, [r4, #0xf] + ldr r1, _0809BB40 @ =gRoomControls + str r4, [r1, #0x30] + movs r0, #1 + strb r0, [r1, #0xe] + ldr r3, _0809BB44 @ =gLinkEntity + movs r0, #0x2e + ldrsh r1, [r4, r0] + movs r2, #0x2e + ldrsh r0, [r3, r2] + movs r2, #6 + cmp r1, r0 + ble _0809BB2C + movs r2, #2 +_0809BB2C: + strb r2, [r3, #0x14] + ldr r1, _0809BB48 @ =gLCDControls + adds r2, r1, #0 + adds r2, #0x58 + movs r0, #0x60 + strh r0, [r2] + adds r1, #0x5c + movs r0, #0xa0 + strh r0, [r1] + b _0809BC68 + .align 2, 0 +_0809BB40: .4byte gRoomControls +_0809BB44: .4byte gLinkEntity +_0809BB48: .4byte gLCDControls +_0809BB4C: + adds r0, r4, #0 + bl sub_0809BE78 + cmp r0, #0 + bne _0809BB58 + b _0809BC68 +_0809BB58: + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _0809BB88 + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0809BB6A + b _0809BC68 +_0809BB6A: + ldr r2, _0809BB80 @ =gLCDControls + ldrh r1, [r2] + ldr r0, _0809BB84 @ =0x0000BFFF + ands r0, r1 + movs r3, #0xa0 + lsls r3, r3, #6 + adds r1, r3, #0 + orrs r0, r1 + strh r0, [r2] + b _0809BC68 + .align 2, 0 +_0809BB80: .4byte gLCDControls +_0809BB84: .4byte 0x0000BFFF +_0809BB88: + ldr r2, _0809BBB8 @ =gLCDControls + adds r5, r2, #0 + adds r5, #0x58 + ldrh r0, [r5] + cmp r0, #0xdf + bhi _0809BBC4 + ldr r4, _0809BBBC @ =gUnk_030010A0 + ldr r0, [r4] + movs r1, #0x1f + ands r0, r1 + cmp r0, #0 + bne _0809BBA6 + ldr r0, _0809BBC0 @ =0x00000133 + bl PlaySFX +_0809BBA6: + ldr r0, [r4] + movs r1, #1 + ands r0, r1 + cmp r0, #0 + bne _0809BC68 + ldrh r0, [r5] + adds r0, #1 + strh r0, [r5] + b _0809BC68 + .align 2, 0 +_0809BBB8: .4byte gLCDControls +_0809BBBC: .4byte gUnk_030010A0 +_0809BBC0: .4byte 0x00000133 +_0809BBC4: + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #0x1e + strb r0, [r4, #0xe] + ldrh r1, [r2] + ldr r0, _0809BBF4 @ =0x0000DFFF + ands r0, r1 + movs r3, #0x90 + lsls r3, r3, #7 + adds r1, r3, #0 + orrs r0, r1 + strh r0, [r2] + ldrh r0, [r4, #0x2e] + adds r0, #0x68 + strh r0, [r4, #0x2e] + ldrh r0, [r4, #0x32] + adds r0, #0x28 + strh r0, [r4, #0x32] + movs r0, #0x9a + lsls r0, r0, #1 + bl PlaySFX + b _0809BC68 + .align 2, 0 +_0809BBF4: .4byte 0x0000DFFF +_0809BBF8: + adds r0, r4, #0 + bl sub_0809BE78 + cmp r0, #0 + beq _0809BC68 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0809BC68 + movs r0, #0x78 + strb r0, [r4, #0xe] + movs r0, #3 + strb r0, [r4, #0xc] + movs r0, #0x35 + bl sub_0807CCB4 + movs r0, #0x72 + bl PlaySFX + b _0809BC68 +_0809BC24: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0809BC68 + movs r0, #4 + strb r0, [r4, #0xc] + ldr r1, _0809BC40 @ =gRoomControls + ldr r0, _0809BC44 @ =gLinkEntity + str r0, [r1, #0x30] + movs r0, #2 + strb r0, [r1, #0xe] + b _0809BC68 + .align 2, 0 +_0809BC40: .4byte gRoomControls +_0809BC44: .4byte gLinkEntity +_0809BC48: + adds r0, r4, #0 + bl sub_0809BE78 + cmp r0, #0 + beq _0809BC68 + ldr r1, _0809BC6C @ =gRoomControls + movs r0, #4 + strb r0, [r1, #0xe] + ldr r1, [r4, #0x50] + movs r0, #1 + strb r0, [r1, #0xd] + movs r0, #0x64 + bl sub_0807CD10 + bl sub_0805E780 +_0809BC68: + pop {r4, r5, pc} + .align 2, 0 +_0809BC6C: .4byte gRoomControls + + thumb_func_start sub_0809BC70 +sub_0809BC70: @ 0x0809BC70 + push {r4, r5, r6, lr} + adds r4, r0, #0 + movs r1, #0x1e + bl sub_0805E4E0 + ldrb r5, [r4, #0xc] + cmp r5, #1 + beq _0809BCDC + cmp r5, #1 + bgt _0809BC8A + cmp r5, #0 + beq _0809BC92 + b _0809BDAE +_0809BC8A: + cmp r5, #2 + bne _0809BC90 + b _0809BD98 +_0809BC90: + b _0809BDAE +_0809BC92: + movs r1, #1 + strb r1, [r4, #0xc] + movs r0, #0x3c + strb r0, [r4, #0xe] + strb r5, [r4, #0xf] + ldr r0, _0809BCCC @ =gRoomControls + str r4, [r0, #0x30] + strb r1, [r0, #0xe] + ldr r3, _0809BCD0 @ =gLinkEntity + movs r0, #0x2e + ldrsh r1, [r4, r0] + movs r2, #0x2e + ldrsh r0, [r3, r2] + movs r2, #6 + cmp r1, r0 + ble _0809BCB4 + movs r2, #2 +_0809BCB4: + strb r2, [r3, #0x14] + ldr r1, _0809BCD4 @ =gLCDControls + adds r2, r1, #0 + adds r2, #0x58 + ldr r0, _0809BCD8 @ =0x000080F0 + strh r0, [r2] + adds r1, #0x5c + movs r0, #0xa0 + strh r0, [r1] + movs r0, #0x80 + strb r0, [r4, #0xd] + b _0809BDAE + .align 2, 0 +_0809BCCC: .4byte gRoomControls +_0809BCD0: .4byte gLinkEntity +_0809BCD4: .4byte gLCDControls +_0809BCD8: .4byte 0x000080F0 +_0809BCDC: + adds r0, r4, #0 + bl sub_0809BE78 + cmp r0, #0 + beq _0809BDAE + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _0809BD20 + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0809BDAE + movs r0, #6 + movs r1, #8 + bl DoFade + movs r0, #3 + bl sub_0805AAF0 + ldr r2, _0809BD18 @ =gLCDControls + ldrh r1, [r2] + ldr r0, _0809BD1C @ =0x0000BFFF + ands r0, r1 + movs r3, #0xa0 + lsls r3, r3, #6 + adds r1, r3, #0 + orrs r0, r1 + strh r0, [r2] + b _0809BDAE + .align 2, 0 +_0809BD18: .4byte gLCDControls +_0809BD1C: .4byte 0x0000BFFF +_0809BD20: + ldrb r0, [r4, #0xd] + cmp r0, #0 + beq _0809BD64 + ldr r6, _0809BD58 @ =gUnk_030010A0 + ldr r0, [r6] + movs r1, #0x1f + ands r0, r1 + cmp r0, #0 + bne _0809BD38 + ldr r0, _0809BD5C @ =0x00000133 + bl PlaySFX +_0809BD38: + ldr r0, [r6] + ands r0, r5 + cmp r0, #0 + bne _0809BDAE + ldrb r0, [r4, #0xd] + subs r0, #1 + strb r0, [r4, #0xd] + ldr r1, _0809BD60 @ =gLCDControls + ldrb r0, [r4, #0xd] + lsls r0, r0, #8 + movs r2, #0xf0 + adds r1, #0x58 + orrs r0, r2 + strh r0, [r1] + b _0809BDAE + .align 2, 0 +_0809BD58: .4byte gUnk_030010A0 +_0809BD5C: .4byte 0x00000133 +_0809BD60: .4byte gLCDControls +_0809BD64: + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #0x78 + strb r0, [r4, #0xe] + ldr r2, _0809BD90 @ =gLCDControls + ldrh r1, [r2] + ldr r0, _0809BD94 @ =0x0000DFFF + ands r0, r1 + movs r3, #0x90 + lsls r3, r3, #7 + adds r1, r3, #0 + orrs r0, r1 + strh r0, [r2] + movs r0, #0x37 + bl sub_0807CCB4 + movs r0, #0x9a + lsls r0, r0, #1 + bl PlaySFX + b _0809BDAE + .align 2, 0 +_0809BD90: .4byte gLCDControls +_0809BD94: .4byte 0x0000DFFF +_0809BD98: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0809BDAE + ldr r1, [r4, #0x50] + movs r0, #1 + strb r0, [r1, #0xd] + bl sub_0805E780 +_0809BDAE: + pop {r4, r5, r6, pc} + + thumb_func_start sub_0809BDB0 +sub_0809BDB0: @ 0x0809BDB0 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x1e + bl sub_0805E4E0 + ldrb r0, [r4, #0xc] + cmp r0, #1 + beq _0809BE00 + cmp r0, #1 + bgt _0809BDCA + cmp r0, #0 + beq _0809BDD0 + b _0809BE70 +_0809BDCA: + cmp r0, #2 + beq _0809BE54 + b _0809BE70 +_0809BDD0: + movs r1, #1 + strb r1, [r4, #0xc] + movs r0, #0x3c + strb r0, [r4, #0xe] + movs r0, #0x80 + strb r0, [r4, #0xf] + ldr r0, _0809BDF8 @ =gRoomControls + str r4, [r0, #0x30] + strb r1, [r0, #0xe] + ldr r3, _0809BDFC @ =gLinkEntity + movs r0, #0x2e + ldrsh r1, [r4, r0] + movs r2, #0x2e + ldrsh r0, [r3, r2] + movs r2, #6 + cmp r1, r0 + ble _0809BDF4 + movs r2, #2 +_0809BDF4: + strb r2, [r3, #0x14] + b _0809BE70 + .align 2, 0 +_0809BDF8: .4byte gRoomControls +_0809BDFC: .4byte gLinkEntity +_0809BE00: + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _0809BE0C + subs r0, #1 + strb r0, [r4, #0xe] + b _0809BE70 +_0809BE0C: + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0809BE34 + ldr r0, _0809BE2C @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #0x1f + ands r0, r1 + cmp r0, #0 + bne _0809BE70 + ldr r0, _0809BE30 @ =0x00000133 + bl PlaySFX + b _0809BE70 + .align 2, 0 +_0809BE2C: .4byte gUnk_030010A0 +_0809BE30: .4byte 0x00000133 +_0809BE34: + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #0x3c + strb r0, [r4, #0xe] + ldr r1, _0809BE4C @ =gRoomControls + ldr r0, _0809BE50 @ =gLinkEntity + str r0, [r1, #0x30] + movs r0, #0x9a + lsls r0, r0, #1 + bl PlaySFX + b _0809BE70 + .align 2, 0 +_0809BE4C: .4byte gRoomControls +_0809BE50: .4byte gLinkEntity +_0809BE54: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0809BE70 + ldr r1, _0809BE74 @ =gRoomControls + movs r0, #4 + strb r0, [r1, #0xe] + ldr r1, [r4, #0x50] + movs r0, #1 + strb r0, [r1, #0xd] + bl sub_0805E780 +_0809BE70: + pop {r4, pc} + .align 2, 0 +_0809BE74: .4byte gRoomControls + + thumb_func_start sub_0809BE78 +sub_0809BE78: @ 0x0809BE78 + push {r4, r5, lr} + adds r3, r0, #0 + movs r5, #0 + adds r0, #0x68 + ldrh r2, [r0] + ldr r0, _0809BEB0 @ =gRoomControls + movs r4, #0xa + ldrsh r1, [r0, r4] + adds r4, r0, #0 + cmp r2, r1 + bne _0809BE9E + adds r0, r3, #0 + adds r0, #0x6a + ldrh r1, [r0] + movs r2, #0xc + ldrsh r0, [r4, r2] + cmp r1, r0 + bne _0809BE9E + movs r5, #1 +_0809BE9E: + ldrh r1, [r4, #0xa] + adds r0, r3, #0 + adds r0, #0x68 + strh r1, [r0] + ldrh r1, [r4, #0xc] + adds r0, #2 + strh r1, [r0] + adds r0, r5, #0 + pop {r4, r5, pc} + .align 2, 0 +_0809BEB0: .4byte gRoomControls + + thumb_func_start sub_0809BEB4 +sub_0809BEB4: @ 0x0809BEB4 + push {lr} + ldr r2, _0809BEC8 @ =gUnk_08123DB4 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0809BEC8: .4byte gUnk_08123DB4 + + thumb_func_start sub_0809BECC +sub_0809BECC: @ 0x0809BECC + push {r4, lr} + adds r4, r0, #0 + movs r0, #0x9b + bl sub_0807CBE4 + cmp r0, #0 + beq _0809BEDE + bl sub_0805E780 +_0809BEDE: + movs r0, #0x91 + movs r1, #0 + movs r2, #0 + bl CreateObject + str r0, [r4, #0x54] + cmp r0, #0 + beq _0809BF1A + movs r2, #0 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x11] + subs r0, #0x11 + ands r0, r1 + movs r1, #3 + orrs r0, r1 + strb r0, [r4, #0x11] + strb r2, [r4, #0x1e] + ldrb r0, [r4, #0x19] + orrs r0, r1 + strb r0, [r4, #0x19] + adds r0, r4, #0 + bl sub_0809C0A8 + adds r0, r4, #0 + movs r1, #0xcc + movs r2, #0xcc + movs r3, #0 + bl sub_0805EC9C +_0809BF1A: + pop {r4, pc} + + thumb_func_start sub_0809BF1C +sub_0809BF1C: @ 0x0809BF1C + push {r4, lr} + adds r4, r0, #0 + movs r1, #0xcc + movs r2, #0xcc + movs r3, #0 + bl sub_0805EC9C + movs r0, #0x37 + bl sub_0807CBE4 + cmp r0, #0 + beq _0809BF6C + movs r0, #0x90 + movs r1, #0 + movs r2, #0 + bl CreateObject + adds r1, r0, #0 + cmp r1, #0 + beq _0809BF6C + ldr r0, _0809BF70 @ =gRoomControls + str r1, [r0, #0x30] + ldr r0, [r4, #0x54] + str r1, [r0, #0x54] + movs r3, #0x80 + lsls r3, r3, #0xb + adds r0, r4, #0 + movs r2, #0 + bl PositionRelative + movs r0, #2 + strb r0, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x74 + movs r0, #0xa0 + lsls r0, r0, #1 + strh r0, [r1] + adds r0, #0x73 + bl sub_08004488 +_0809BF6C: + pop {r4, pc} + .align 2, 0 +_0809BF70: .4byte gRoomControls + + thumb_func_start sub_0809BF74 +sub_0809BF74: @ 0x0809BF74 + push {r4, r5, r6, r7, lr} + adds r7, r0, #0 + adds r5, r7, #0 + adds r5, #0x74 + ldrh r0, [r5] + subs r1, r0, #1 + strh r1, [r5] + lsls r0, r1, #0x10 + cmp r0, #0 + bne _0809BFA0 + ldr r1, [r7, #0x54] + movs r0, #1 + strb r0, [r1, #0xf] + adds r0, r7, #0 + bl sub_0809C23C + movs r0, #0x9b + bl sub_0807CBE4 + bl sub_0805E780 + b _0809C09A +_0809BFA0: + movs r0, #0x1f + ands r1, r0 + cmp r1, #0 + bne _0809BFAE + ldr r0, _0809C09C @ =0x000001B3 + bl sub_08004488 +_0809BFAE: + ldrh r0, [r5] + cmp r0, #0x77 + bhi _0809BFE0 + movs r1, #0x78 + subs r1, r1, r0 + lsls r4, r1, #5 + adds r4, #0xcc + lsls r1, r1, #4 + adds r1, #0xcc + adds r0, r7, #0 + adds r2, r4, #0 + movs r3, #0 + bl sub_0805EC9C + adds r0, r7, #0 + adds r1, r4, #0 + movs r2, #8 + movs r3, #0 + bl sub_0806FCF4 + adds r1, r7, #0 + adds r1, #0x63 + ldrb r0, [r1] + adds r0, #8 + strb r0, [r1] +_0809BFE0: + ldr r1, _0809C0A0 @ =gUnk_08123DC0 + ldrh r0, [r5] + lsrs r0, r0, #5 + adds r0, r0, r1 + ldrb r6, [r0] + movs r0, #0xf + movs r1, #0x11 + movs r2, #0x40 + bl CreateObject + adds r5, r0, #0 + cmp r5, #0 + beq _0809C044 + bl Random + adds r4, r0, #0 + asrs r0, r4, #0x10 + ands r0, r6 + adds r2, r6, #1 + lsrs r1, r2, #1 + subs r0, r0, r1 + mov ip, r0 + lsrs r0, r6, #1 + ands r0, r4 + lsrs r2, r2, #2 + subs r4, r0, r2 + adds r2, r5, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #3 + orrs r0, r1 + strb r0, [r2] + adds r1, r7, #0 + adds r1, #0x80 + ldr r2, _0809C0A4 @ =gRoomControls + ldrh r0, [r2, #6] + ldrh r1, [r1] + adds r0, r0, r1 + add r0, ip + strh r0, [r5, #0x2e] + adds r1, r7, #0 + adds r1, #0x82 + ldrh r0, [r2, #8] + ldrh r1, [r1] + adds r0, r0, r1 + adds r0, r0, r4 + strh r0, [r5, #0x32] +_0809C044: + movs r0, #0xf + movs r1, #2 + movs r2, #0x40 + bl CreateObject + adds r5, r0, #0 + cmp r5, #0 + beq _0809C09A + bl Random + adds r4, r0, #0 + asrs r1, r4, #0x10 + ands r1, r6 + adds r0, r6, #1 + lsrs r0, r0, #1 + subs r1, r1, r0 + mov ip, r1 + lsrs r3, r6, #1 + ands r3, r4 + adds r2, r5, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #3 + orrs r0, r1 + strb r0, [r2] + adds r1, r7, #0 + adds r1, #0x80 + ldr r2, _0809C0A4 @ =gRoomControls + ldrh r0, [r2, #6] + ldrh r1, [r1] + adds r0, r0, r1 + add r0, ip + strh r0, [r5, #0x2e] + adds r1, r7, #0 + adds r1, #0x82 + ldrh r0, [r2, #8] + ldrh r1, [r1] + adds r0, r0, r1 + adds r0, r0, r3 + strh r0, [r5, #0x32] +_0809C09A: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0809C09C: .4byte 0x000001B3 +_0809C0A0: .4byte gUnk_08123DC0 +_0809C0A4: .4byte gRoomControls + + thumb_func_start sub_0809C0A8 +sub_0809C0A8: @ 0x0809C0A8 + push {r4, r5, r6, lr} + adds r4, r0, #0 + movs r1, #0x2e + ldrsh r0, [r4, r1] + ldr r3, _0809C214 @ =gRoomControls + ldrh r1, [r3, #6] + subs r0, r0, r1 + asrs r6, r0, #4 + movs r2, #0x3f + ands r6, r2 + movs r1, #0x32 + ldrsh r0, [r4, r1] + ldrh r1, [r3, #8] + subs r0, r0, r1 + asrs r0, r0, #4 + ands r0, r2 + lsls r0, r0, #6 + orrs r6, r0 + ldr r5, _0809C218 @ =0x00004022 + adds r1, r6, #0 + subs r1, #0x41 + adds r4, #0x38 + ldrb r2, [r4] + adds r0, r5, #0 + bl UpdateCollisionLayer + adds r1, r6, #0 + subs r1, #0x40 + ldrb r2, [r4] + adds r0, r5, #0 + bl UpdateCollisionLayer + adds r1, r6, #0 + subs r1, #0x3f + ldrb r2, [r4] + adds r0, r5, #0 + bl UpdateCollisionLayer + subs r1, r6, #2 + ldrb r2, [r4] + adds r0, r5, #0 + bl UpdateCollisionLayer + subs r1, r6, #1 + ldrb r2, [r4] + adds r0, r5, #0 + bl UpdateCollisionLayer + ldrb r2, [r4] + adds r0, r5, #0 + adds r1, r6, #0 + bl UpdateCollisionLayer + adds r1, r6, #1 + ldrb r2, [r4] + adds r0, r5, #0 + bl UpdateCollisionLayer + adds r1, r6, #2 + ldrb r2, [r4] + adds r0, r5, #0 + bl UpdateCollisionLayer + adds r1, r6, #0 + adds r1, #0x3e + ldrb r2, [r4] + adds r0, r5, #0 + bl UpdateCollisionLayer + adds r1, r6, #0 + adds r1, #0x3f + ldrb r2, [r4] + adds r0, r5, #0 + bl UpdateCollisionLayer + adds r1, r6, #0 + adds r1, #0x40 + ldrb r2, [r4] + adds r0, r5, #0 + bl UpdateCollisionLayer + adds r1, r6, #0 + adds r1, #0x41 + ldrb r2, [r4] + adds r0, r5, #0 + bl UpdateCollisionLayer + adds r1, r6, #0 + adds r1, #0x42 + ldrb r2, [r4] + adds r0, r5, #0 + bl UpdateCollisionLayer + adds r1, r6, #0 + adds r1, #0x7f + ldrb r2, [r4] + adds r0, r5, #0 + bl UpdateCollisionLayer + adds r1, r6, #0 + adds r1, #0x80 + ldrb r2, [r4] + adds r0, r5, #0 + bl UpdateCollisionLayer + adds r1, r6, #0 + adds r1, #0x81 + ldrb r2, [r4] + adds r0, r5, #0 + bl UpdateCollisionLayer + ldr r0, _0809C21C @ =0x0000013F + adds r1, r6, r0 + ldrb r2, [r4] + adds r0, r5, #0 + bl UpdateCollisionLayer + movs r0, #0xa0 + lsls r0, r0, #1 + adds r1, r6, r0 + ldrb r2, [r4] + adds r0, r5, #0 + bl UpdateCollisionLayer + ldr r0, _0809C220 @ =0x00000141 + adds r1, r6, r0 + ldrb r2, [r4] + adds r0, r5, #0 + bl UpdateCollisionLayer + ldr r0, _0809C224 @ =0x0000017F + adds r1, r6, r0 + ldrb r2, [r4] + adds r0, r5, #0 + bl UpdateCollisionLayer + ldr r0, _0809C228 @ =0x00000181 + adds r1, r6, r0 + ldrb r2, [r4] + adds r0, r5, #0 + bl UpdateCollisionLayer + ldr r0, _0809C22C @ =0x000001BD + adds r1, r6, r0 + ldrb r2, [r4] + adds r0, r5, #0 + bl UpdateCollisionLayer + movs r0, #0xdf + lsls r0, r0, #1 + adds r1, r6, r0 + ldrb r2, [r4] + adds r0, r5, #0 + bl UpdateCollisionLayer + ldr r0, _0809C230 @ =0x000001BF + adds r1, r6, r0 + ldrb r2, [r4] + adds r0, r5, #0 + bl UpdateCollisionLayer + ldr r0, _0809C234 @ =0x000001C1 + adds r1, r6, r0 + ldrb r2, [r4] + adds r0, r5, #0 + bl UpdateCollisionLayer + movs r0, #0xe1 + lsls r0, r0, #1 + adds r1, r6, r0 + ldrb r2, [r4] + adds r0, r5, #0 + bl UpdateCollisionLayer + ldr r0, _0809C238 @ =0x000001C3 + adds r1, r6, r0 + ldrb r2, [r4] + adds r0, r5, #0 + bl UpdateCollisionLayer + pop {r4, r5, r6, pc} + .align 2, 0 +_0809C214: .4byte gRoomControls +_0809C218: .4byte 0x00004022 +_0809C21C: .4byte 0x0000013F +_0809C220: .4byte 0x00000141 +_0809C224: .4byte 0x0000017F +_0809C228: .4byte 0x00000181 +_0809C22C: .4byte 0x000001BD +_0809C230: .4byte 0x000001BF +_0809C234: .4byte 0x000001C1 +_0809C238: .4byte 0x000001C3 + + thumb_func_start sub_0809C23C +sub_0809C23C: @ 0x0809C23C + push {r4, r5, lr} + adds r4, r0, #0 + movs r1, #0x2e + ldrsh r0, [r4, r1] + ldr r3, _0809C370 @ =gRoomControls + ldrh r1, [r3, #6] + subs r0, r0, r1 + asrs r5, r0, #4 + movs r2, #0x3f + ands r5, r2 + movs r1, #0x32 + ldrsh r0, [r4, r1] + ldrh r1, [r3, #8] + subs r0, r0, r1 + asrs r0, r0, #4 + ands r0, r2 + lsls r0, r0, #6 + orrs r5, r0 + adds r0, r5, #0 + subs r0, #0x41 + adds r4, #0x38 + ldrb r1, [r4] + bl sub_0807BA8C + adds r0, r5, #0 + subs r0, #0x40 + ldrb r1, [r4] + bl sub_0807BA8C + adds r0, r5, #0 + subs r0, #0x3f + ldrb r1, [r4] + bl sub_0807BA8C + subs r0, r5, #2 + ldrb r1, [r4] + bl sub_0807BA8C + subs r0, r5, #1 + ldrb r1, [r4] + bl sub_0807BA8C + ldrb r1, [r4] + adds r0, r5, #0 + bl sub_0807BA8C + adds r0, r5, #1 + ldrb r1, [r4] + bl sub_0807BA8C + adds r0, r5, #2 + ldrb r1, [r4] + bl sub_0807BA8C + adds r0, r5, #0 + adds r0, #0x3e + ldrb r1, [r4] + bl sub_0807BA8C + adds r0, r5, #0 + adds r0, #0x3f + ldrb r1, [r4] + bl sub_0807BA8C + adds r0, r5, #0 + adds r0, #0x40 + ldrb r1, [r4] + bl sub_0807BA8C + adds r0, r5, #0 + adds r0, #0x41 + ldrb r1, [r4] + bl sub_0807BA8C + adds r0, r5, #0 + adds r0, #0x42 + ldrb r1, [r4] + bl sub_0807BA8C + adds r0, r5, #0 + adds r0, #0x7f + ldrb r1, [r4] + bl sub_0807BA8C + adds r0, r5, #0 + adds r0, #0x80 + ldrb r1, [r4] + bl sub_0807BA8C + adds r0, r5, #0 + adds r0, #0x81 + ldrb r1, [r4] + bl sub_0807BA8C + ldr r1, _0809C374 @ =0x0000013F + adds r0, r5, r1 + ldrb r1, [r4] + bl sub_0807BA8C + movs r1, #0xa0 + lsls r1, r1, #1 + adds r0, r5, r1 + ldrb r1, [r4] + bl sub_0807BA8C + ldr r1, _0809C378 @ =0x00000141 + adds r0, r5, r1 + ldrb r1, [r4] + bl sub_0807BA8C + ldr r1, _0809C37C @ =0x0000017F + adds r0, r5, r1 + ldrb r1, [r4] + bl sub_0807BA8C + ldr r1, _0809C380 @ =0x00000181 + adds r0, r5, r1 + ldrb r1, [r4] + bl sub_0807BA8C + ldr r1, _0809C384 @ =0x000001BD + adds r0, r5, r1 + ldrb r1, [r4] + bl sub_0807BA8C + movs r1, #0xdf + lsls r1, r1, #1 + adds r0, r5, r1 + ldrb r1, [r4] + bl sub_0807BA8C + ldr r1, _0809C388 @ =0x000001BF + adds r0, r5, r1 + ldrb r1, [r4] + bl sub_0807BA8C + ldr r1, _0809C38C @ =0x000001C1 + adds r0, r5, r1 + ldrb r1, [r4] + bl sub_0807BA8C + movs r1, #0xe1 + lsls r1, r1, #1 + adds r0, r5, r1 + ldrb r1, [r4] + bl sub_0807BA8C + ldr r1, _0809C390 @ =0x000001C3 + adds r0, r5, r1 + ldrb r1, [r4] + bl sub_0807BA8C + pop {r4, r5, pc} + .align 2, 0 +_0809C370: .4byte gRoomControls +_0809C374: .4byte 0x0000013F +_0809C378: .4byte 0x00000141 +_0809C37C: .4byte 0x0000017F +_0809C380: .4byte 0x00000181 +_0809C384: .4byte 0x000001BD +_0809C388: .4byte 0x000001BF +_0809C38C: .4byte 0x000001C1 +_0809C390: .4byte 0x000001C3 + + thumb_func_start sub_0809C394 +sub_0809C394: @ 0x0809C394 + push {lr} + ldr r2, _0809C3A8 @ =gUnk_08123DCC + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0809C3A8: .4byte gUnk_08123DCC + + thumb_func_start sub_0809C3AC +sub_0809C3AC: @ 0x0809C3AC + movs r2, #0 + movs r1, #1 + strb r1, [r0, #0xc] + strb r2, [r0, #0x1e] + adds r0, #0x29 + ldrb r2, [r0] + subs r1, #9 + ands r1, r2 + movs r2, #5 + orrs r1, r2 + strb r1, [r0] + bx lr + + thumb_func_start nullsub_536 +nullsub_536: @ 0x0809C3C4 + bx lr + .align 2, 0 + + thumb_func_start sub_0809C3C8 +sub_0809C3C8: @ 0x0809C3C8 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _0809C3E8 @ =gUnk_08123DD4 + ldrb r0, [r4, #0xc] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + ldrb r0, [r4, #0x19] + movs r1, #0xc0 + orrs r0, r1 + strb r0, [r4, #0x19] + pop {r4, pc} + .align 2, 0 +_0809C3E8: .4byte gUnk_08123DD4 + + thumb_func_start sub_0809C3EC +sub_0809C3EC: @ 0x0809C3EC + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r4, r0, #0 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r0, [r4, #0xa] + cmp r0, #7 + bls _0809C400 + b _0809C5A4 +_0809C400: + lsls r0, r0, #2 + ldr r1, _0809C40C @ =_0809C410 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0809C40C: .4byte _0809C410 +_0809C410: @ jump table + .4byte _0809C430 @ case 0 + .4byte _0809C53E @ case 1 + .4byte _0809C53E @ case 2 + .4byte _0809C53E @ case 3 + .4byte _0809C53E @ case 4 + .4byte _0809C586 @ case 5 + .4byte _0809C440 @ case 6 + .4byte _0809C5BA @ case 7 +_0809C430: + adds r0, r4, #0 + movs r1, #6 + bl sub_0805E3A0 + adds r1, r4, #0 + adds r1, #0x7e + movs r0, #0 + strh r0, [r1] +_0809C440: + movs r0, #1 + strb r0, [r4, #0xe] + movs r0, #0x10 + strb r0, [r4, #0x15] + adds r1, r4, #0 + adds r1, #0x79 + movs r0, #0xf0 + strb r0, [r1] + ldr r1, _0809C4B4 @ =gRoomControls + movs r2, #0x84 + lsls r2, r2, #1 + adds r0, r2, #0 + ldrh r2, [r1, #6] + adds r0, r0, r2 + strh r0, [r4, #0x2e] + movs r2, #0xb4 + lsls r2, r2, #1 + adds r0, r2, #0 + ldrh r1, [r1, #8] + adds r0, r0, r1 + strh r0, [r4, #0x32] + ldrb r0, [r4, #0x19] + movs r1, #3 + orrs r0, r1 + strb r0, [r4, #0x19] + adds r0, r4, #0 + adds r0, #0x76 + movs r1, #0xa0 + strh r1, [r0] + subs r0, #2 + strh r1, [r0] + adds r1, r4, #0 + adds r1, #0x7b + movs r0, #0x80 + strb r0, [r1] + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _0809C52E + subs r1, #0x19 + movs r0, #0x29 + strb r0, [r1] + adds r1, #1 + movs r0, #0xe0 + strb r0, [r1] + movs r0, #0x30 + bl sub_0801D8E0 + adds r2, r0, #0 + adds r0, r4, #0 + adds r0, #0x84 + str r2, [r0] + mov r8, r0 + cmp r2, #0 + bne _0809C4B8 + bl sub_0805E780 + b _0809C5BA + .align 2, 0 +_0809C4B4: .4byte gRoomControls +_0809C4B8: + str r2, [r4, #0x64] + mov r0, r8 + ldr r1, [r0] + movs r0, #5 + strb r0, [r1, #1] + movs r5, #0 + mov r7, r8 +_0809C4C6: + adds r6, r5, #1 + adds r0, r4, #0 + movs r1, #0x91 + adds r2, r6, #0 + movs r3, #0 + bl CreateObjectWithParent + str r0, [r4, #0x54] + cmp r0, #0 + beq _0809C4EE + adds r1, r0, #0 + adds r1, #0x84 + ldr r0, [r7] + str r0, [r1] + ldr r1, [r7] + lsls r0, r5, #2 + adds r1, #0x20 + adds r1, r1, r0 + ldr r0, [r4, #0x54] + str r0, [r1] +_0809C4EE: + adds r5, r6, #0 + cmp r5, #3 + bls _0809C4C6 + adds r0, r4, #0 + movs r1, #0x91 + movs r2, #5 + movs r3, #0 + bl CreateObjectWithParent + str r0, [r4, #0x54] + cmp r0, #0 + beq _0809C510 + adds r1, r0, #0 + adds r1, #0x84 + mov r2, r8 + ldr r0, [r2] + str r0, [r1] +_0809C510: + adds r0, r4, #0 + movs r1, #0x91 + movs r2, #6 + movs r3, #0 + bl CreateObjectWithParent + str r0, [r4, #0x50] + cmp r0, #0 + beq _0809C5A4 + adds r1, r0, #0 + adds r1, #0x84 + mov r2, r8 + ldr r0, [r2] + str r0, [r1] + b _0809C5A4 +_0809C52E: + adds r1, r4, #0 + adds r1, #0x62 + movs r0, #0xd7 + strb r0, [r1] + adds r1, #1 + movs r0, #0xe0 + strb r0, [r1] + b _0809C5A4 +_0809C53E: + movs r1, #0 + movs r0, #0x10 + strb r0, [r4, #0xe] + adds r0, r4, #0 + adds r0, #0x79 + strb r1, [r0] + ldrb r1, [r4, #0xa] + movs r2, #2 + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0 + bne _0809C55A + strb r2, [r4, #0xf] + b _0809C55E +_0809C55A: + movs r0, #0xfe + strb r0, [r4, #0xf] +_0809C55E: + adds r0, r4, #0 + adds r0, #0x74 + movs r2, #0x80 + lsls r2, r2, #1 + strh r2, [r0] + ldrb r1, [r4, #0xa] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _0809C57E + adds r1, r4, #0 + adds r1, #0x76 + movs r0, #0xff + lsls r0, r0, #8 + strh r0, [r1] + b _0809C5A4 +_0809C57E: + adds r0, r4, #0 + adds r0, #0x76 + strh r2, [r0] + b _0809C5A4 +_0809C586: + adds r0, r4, #0 + adds r0, #0x76 + movs r1, #0x80 + lsls r1, r1, #1 + strh r1, [r0] + subs r0, #2 + strh r1, [r0] + adds r1, r4, #0 + adds r1, #0x79 + movs r0, #0x1c + strb r0, [r1] + adds r0, r4, #0 + adds r0, #0x84 + ldr r0, [r0] + str r4, [r0, #8] +_0809C5A4: + ldr r0, _0809C5C0 @ =gUnk_08123DDC + ldrb r1, [r4, #0xa] + lsls r1, r1, #2 + adds r1, r1, r0 + ldrb r1, [r1] + adds r0, r4, #0 + bl UpdateSprite + adds r0, r4, #0 + bl sub_0809C5C4 +_0809C5BA: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0809C5C0: .4byte gUnk_08123DDC + + thumb_func_start sub_0809C5C4 +sub_0809C5C4: @ 0x0809C5C4 + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xa] + cmp r0, #7 + bls _0809C5D0 + b _0809C7DE +_0809C5D0: + lsls r0, r0, #2 + ldr r1, _0809C5DC @ =_0809C5E0 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0809C5DC: .4byte _0809C5E0 +_0809C5E0: @ jump table + .4byte _0809C738 @ case 0 + .4byte _0809C600 @ case 1 + .4byte _0809C600 @ case 2 + .4byte _0809C600 @ case 3 + .4byte _0809C600 @ case 4 + .4byte _0809C6B8 @ case 5 + .4byte _0809C7B4 @ case 6 + .4byte _0809C7D2 @ case 7 +_0809C600: + ldr r0, [r5, #0x50] + adds r1, r5, #0 + bl sub_0806FAD8 + ldr r0, [r5, #0x50] + ldrb r0, [r0, #0xd] + adds r6, r5, #0 + adds r6, #0x84 + cmp r0, #6 + bne _0809C630 + movs r0, #0xf + ldrsb r0, [r5, r0] + cmp r0, #0 + bge _0809C624 + ldr r0, [r6] + ldrb r0, [r0] + rsbs r0, r0, #0 + b _0809C628 +_0809C624: + ldr r0, [r6] + ldrb r0, [r0] +_0809C628: + strb r0, [r5, #0xf] + adds r0, r5, #0 + bl sub_0809CBE4 +_0809C630: + ldr r4, [r5, #0x50] + adds r0, r4, #0 + adds r0, #0x76 + ldrh r1, [r0] + movs r0, #0x80 + lsls r0, r0, #9 + bl __divsi3 + adds r3, r0, #0 + lsls r0, r3, #0xd + lsrs r3, r0, #8 + ldr r0, _0809C660 @ =0xFFFFE000 + adds r3, r3, r0 + ldr r0, [r6] + ldr r0, [r0, #8] + adds r0, #0x45 + ldrb r0, [r0] + cmp r0, #1 + bne _0809C664 + movs r1, #0x88 + lsls r1, r1, #6 + adds r3, r3, r1 + b _0809C66C + .align 2, 0 +_0809C660: .4byte 0xFFFFE000 +_0809C664: + lsrs r0, r3, #1 + movs r1, #0x88 + lsls r1, r1, #6 + adds r3, r0, r1 +_0809C66C: + adds r2, r4, #0 + adds r2, #0x7b + ldr r1, _0809C6B0 @ =gUnk_08123E18 + ldrb r0, [r5, #0xa] + subs r0, #1 + adds r0, r0, r1 + ldrb r0, [r0] + ldrb r2, [r2] + adds r0, r0, r2 + rsbs r0, r0, #0 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + adds r0, r5, #0 + adds r2, r3, #0 + bl sub_0809CB70 + ldr r2, [r5, #0x50] + adds r2, #0x7b + ldr r1, _0809C6B4 @ =gUnk_08123E1C + ldrb r0, [r5, #0xa] + subs r0, #1 + adds r0, r0, r1 + ldrb r1, [r0] + ldrb r2, [r2] + adds r1, r1, r2 + adds r0, r5, #0 + adds r0, #0x79 + ldrb r0, [r0] + adds r0, r0, r1 + adds r1, r5, #0 + adds r1, #0x7b + strb r0, [r1] + b _0809C7BC + .align 2, 0 +_0809C6B0: .4byte gUnk_08123E18 +_0809C6B4: .4byte gUnk_08123E1C +_0809C6B8: + ldr r0, [r5, #0x50] + adds r1, r5, #0 + bl sub_0806FAD8 + ldr r0, [r5, #0x50] + ldrb r0, [r0, #0xd] + adds r6, r5, #0 + adds r6, #0x79 + adds r7, r5, #0 + adds r7, #0x76 + cmp r0, #4 + beq _0809C6F6 + adds r0, r5, #0 + adds r0, #0x45 + ldrb r0, [r0] + cmp r0, #1 + beq _0809C6F6 + ldrb r0, [r6] + cmp r0, #0x1c + bls _0809C6E4 + subs r0, #1 + strb r0, [r6] +_0809C6E4: + ldrh r0, [r7] + movs r1, #0x80 + lsls r1, r1, #1 + cmp r0, r1 + bls _0809C6F4 + subs r0, #1 + strh r0, [r7] + b _0809C6F6 +_0809C6F4: + strh r1, [r7] +_0809C6F6: + ldr r4, [r5, #0x50] + adds r0, r4, #0 + adds r0, #0x74 + ldrh r1, [r0] + movs r0, #0x80 + lsls r0, r0, #9 + bl __divsi3 + adds r3, r0, #0 + ldrb r0, [r6] + lsls r0, r0, #8 + muls r0, r3, r0 + lsrs r3, r0, #8 + adds r4, #0x7b + ldrb r0, [r4] + adds r0, #0x80 + rsbs r0, r0, #0 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + adds r0, r5, #0 + adds r2, r3, #0 + bl sub_0809CB70 + ldr r0, [r5, #0x50] + adds r0, #0x7b + ldrb r0, [r0] + adds r1, r5, #0 + adds r1, #0x7b + strb r0, [r1] + ldrh r1, [r7] + adds r0, r5, #0 + adds r0, #0x74 + b _0809C7C4 +_0809C738: + movs r0, #0x37 + bl sub_0807CBE4 + cmp r0, #0 + beq _0809C74A + adds r0, r5, #0 + movs r1, #0x1e + bl sub_0805E4E0 +_0809C74A: + ldr r1, _0809C7A8 @ =gUnk_08123DF8 + ldrb r0, [r5, #0xd] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r5, #0 + bl _call_via_r1 + ldrb r0, [r5, #0xf] + cmp r0, #0 + beq _0809C7BC + ldr r0, _0809C7AC @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #7 + ands r0, r1 + cmp r0, #0 + bne _0809C772 + ldr r0, [r5, #0x54] + bl sub_080A2B80 +_0809C772: + adds r3, r5, #0 + adds r3, #0x7e + ldrh r0, [r3] + cmp r0, #0 + beq _0809C7BC + ldr r2, [r5, #0x54] + movs r1, #0 + ldrsh r0, [r3, r1] + ldr r1, [r2, #0x20] + subs r1, r1, r0 + str r1, [r2, #0x20] + ldr r0, [r2, #0x34] + adds r0, r0, r1 + str r0, [r2, #0x34] + ldr r0, [r5, #0x54] + ldr r1, [r0, #0x20] + movs r0, #0xc0 + lsls r0, r0, #6 + cmp r1, r0 + beq _0809C7A0 + ldr r0, _0809C7B0 @ =0xFFFFD000 + cmp r1, r0 + bne _0809C7BC +_0809C7A0: + ldrh r0, [r3] + rsbs r0, r0, #0 + strh r0, [r3] + b _0809C7BC + .align 2, 0 +_0809C7A8: .4byte gUnk_08123DF8 +_0809C7AC: .4byte gUnk_030010A0 +_0809C7B0: .4byte 0xFFFFD000 +_0809C7B4: + ldr r0, [r5, #0x50] + adds r1, r5, #0 + bl CopyPosition +_0809C7BC: + adds r0, r5, #0 + adds r0, #0x76 + ldrh r1, [r0] + subs r0, #2 +_0809C7C4: + ldrh r2, [r0] + adds r0, #6 + ldrh r3, [r0] + adds r0, r5, #0 + bl sub_0805EC9C + b _0809C7DE +_0809C7D2: + ldr r0, _0809C7E0 @ =gRoomControls + ldr r0, [r0, #0x30] + cmp r0, r5 + beq _0809C7DE + bl sub_0805E780 +_0809C7DE: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0809C7E0: .4byte gRoomControls + + thumb_func_start sub_0809C7E4 +sub_0809C7E4: @ 0x0809C7E4 + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xf] + cmp r0, #0 + beq _0809C84A + adds r3, r5, #0 + adds r3, #0x7e + ldrh r0, [r3] + cmp r0, #0 + bne _0809C82A + ldr r2, [r5, #0x54] + movs r0, #0x36 + ldrsh r1, [r2, r0] + movs r0, #0x10 + rsbs r0, r0, #0 + cmp r1, r0 + ble _0809C814 + ldr r0, [r2, #0x34] + ldr r1, _0809C810 @ =0xFFFFC000 + adds r0, r0, r1 + str r0, [r2, #0x34] + b _0809C82A + .align 2, 0 +_0809C810: .4byte 0xFFFFC000 +_0809C814: + ldr r0, [r2, #0x34] + ldr r1, _0809C84C @ =0xFFFFF000 + adds r0, r0, r1 + str r0, [r2, #0x34] + ldr r1, [r5, #0x54] + movs r0, #0xc0 + lsls r0, r0, #6 + str r0, [r1, #0x20] + movs r0, #0x80 + lsls r0, r0, #2 + strh r0, [r3] +_0809C82A: + adds r4, r5, #0 + adds r4, #0x79 + ldrb r0, [r4] + subs r0, #1 + strb r0, [r4] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + bne _0809C84A + ldr r0, _0809C850 @ =0x00000B43 + bl TextboxTryNoOverlap + movs r0, #1 + strb r0, [r5, #0xd] + movs r0, #8 + strb r0, [r4] +_0809C84A: + pop {r4, r5, pc} + .align 2, 0 +_0809C84C: .4byte 0xFFFFF000 +_0809C850: .4byte 0x00000B43 + + thumb_func_start sub_0809C854 +sub_0809C854: @ 0x0809C854 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r0, _0809C8A8 @ =gTextBox + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0 + bne _0809C8B8 + adds r5, r4, #0 + adds r5, #0x79 + ldrb r0, [r5] + subs r0, #1 + strb r0, [r5] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + bne _0809C8B8 + adds r0, r4, #0 + movs r1, #0x91 + movs r2, #7 + movs r3, #0 + bl CreateObjectWithParent + adds r1, r0, #0 + cmp r1, #0 + beq _0809C892 + ldrh r0, [r1, #0x32] + subs r0, #0x50 + strh r0, [r1, #0x32] + ldr r0, _0809C8AC @ =gRoomControls + str r1, [r0, #0x30] +_0809C892: + ldrb r0, [r4, #0xf] + cmp r0, #2 + bhi _0809C8B0 + movs r0, #2 + strb r0, [r4, #0xd] + movs r0, #0x1e + strb r0, [r5] + movs r0, #0xe6 + bl PlaySFX + b _0809C8B8 + .align 2, 0 +_0809C8A8: .4byte gTextBox +_0809C8AC: .4byte gRoomControls +_0809C8B0: + movs r0, #3 + strb r0, [r4, #0xd] + movs r0, #0x78 + strb r0, [r5] +_0809C8B8: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0809C8BC +sub_0809C8BC: @ 0x0809C8BC + push {lr} + adds r2, r0, #0 + adds r3, r2, #0 + adds r3, #0x79 + ldrb r0, [r3] + subs r1, r0, #1 + strb r1, [r3] + lsls r0, r1, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + bne _0809C8E2 + movs r0, #1 + strb r0, [r2, #0xd] + movs r0, #0x1e + strb r0, [r3] + ldrb r0, [r2, #0xf] + adds r0, #1 + strb r0, [r2, #0xf] + b _0809C922 +_0809C8E2: + movs r0, #3 + ands r0, r1 + cmp r0, #1 + beq _0809C90A + cmp r0, #1 + bgt _0809C8F4 + cmp r0, #0 + beq _0809C8FE + b _0809C922 +_0809C8F4: + cmp r0, #2 + beq _0809C8FE + cmp r0, #3 + beq _0809C916 + b _0809C922 +_0809C8FE: + ldrh r1, [r2, #0x2e] + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r1 + adds r0, #8 + b _0809C920 +_0809C90A: + ldrh r1, [r2, #0x2e] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + adds r0, #4 + b _0809C920 +_0809C916: + ldrh r1, [r2, #0x2e] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + subs r0, #4 +_0809C920: + strh r0, [r2, #0x2e] +_0809C922: + pop {pc} + + thumb_func_start sub_0809C924 +sub_0809C924: @ 0x0809C924 + push {r4, r5, lr} + adds r5, r0, #0 + adds r1, r5, #0 + adds r1, #0x79 + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + beq _0809C948 + adds r0, r5, #0 + movs r1, #0x87 + movs r2, #6 + movs r3, #0 + bl CreateObjectWithParent + b _0809C980 +_0809C948: + movs r0, #4 + strb r0, [r5, #0xd] + movs r0, #0x3c + strb r0, [r1] + ldr r4, _0809C984 @ =0x00000115 + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_080ADF80 + ldr r0, [r5, #0x50] + adds r1, r4, #0 + bl sub_080ADF80 + adds r0, r5, #0 + movs r1, #0xef + bl sub_0801D2B4 + ldr r0, [r5, #0x50] + movs r1, #0xef + bl sub_0801D2B4 + adds r0, r5, #0 + movs r1, #0xef + bl sub_0809CC30 + movs r0, #0xe8 + bl PlaySFX +_0809C980: + pop {r4, r5, pc} + .align 2, 0 +_0809C984: .4byte 0x00000115 + + thumb_func_start sub_0809C988 +sub_0809C988: @ 0x0809C988 + push {lr} + adds r2, r0, #0 + adds r1, r2, #0 + adds r1, #0x79 + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + bne _0809C9AC + movs r0, #5 + strb r0, [r2, #0xd] + movs r0, #0xb4 + strb r0, [r1] + movs r0, #3 + strb r0, [r2, #0xb] + b _0809C9DC +_0809C9AC: + ldr r0, _0809C9C8 @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #8 + ands r0, r1 + cmp r0, #0 + beq _0809C9CC + adds r0, r2, #0 + adds r0, #0x84 + ldr r0, [r0] + ldr r1, [r0, #8] + adds r1, #0x76 + ldrh r0, [r1] + subs r0, #4 + b _0809C9DA + .align 2, 0 +_0809C9C8: .4byte gUnk_030010A0 +_0809C9CC: + adds r0, r2, #0 + adds r0, #0x84 + ldr r0, [r0] + ldr r1, [r0, #8] + adds r1, #0x76 + ldrh r0, [r1] + adds r0, #4 +_0809C9DA: + strh r0, [r1] +_0809C9DC: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0809C9E0 +sub_0809C9E0: @ 0x0809C9E0 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + ldr r0, _0809CA04 @ =gUnk_030010A0 + ldr r1, [r0] + movs r2, #2 + ands r1, r2 + adds r7, r0, #0 + cmp r1, #0 + beq _0809CA08 + adds r2, r4, #0 + adds r2, #0x84 + ldr r0, [r2] + ldr r1, [r0, #8] + adds r1, #0x76 + ldrh r0, [r1] + subs r0, #8 + b _0809CA16 + .align 2, 0 +_0809CA04: .4byte gUnk_030010A0 +_0809CA08: + adds r2, r4, #0 + adds r2, #0x84 + ldr r0, [r2] + ldr r1, [r0, #8] + adds r1, #0x76 + ldrh r0, [r1] + adds r0, #8 +_0809CA16: + strh r0, [r1] + adds r5, r2, #0 + ldr r0, [r7] + movs r6, #3 + ands r0, r6 + cmp r0, #0 + bne _0809CA30 + adds r0, r4, #0 + movs r1, #0x87 + movs r2, #2 + movs r3, #0 + bl CreateObjectWithParent +_0809CA30: + adds r2, r4, #0 + adds r2, #0x79 + ldrb r0, [r2] + adds r1, r0, #0 + cmp r1, #0 + bne _0809CA92 + ldr r0, [r4, #0x54] + adds r0, #0x62 + strb r1, [r0] + ldr r0, [r4, #0x54] + movs r1, #0x80 + lsls r1, r1, #2 + adds r2, #2 + ldrb r2, [r2] + rsbs r2, r2, #0 + bl sub_0806F62C + ldr r1, [r4, #0x54] + adds r0, r4, #0 + movs r2, #0x48 + bl sub_0806FC80 + cmp r0, #0 + beq _0809CAC4 + movs r0, #6 + strb r0, [r4, #0xd] + movs r1, #0 + movs r0, #0xc0 + strh r0, [r4, #0x24] + strb r1, [r4, #0xb] + strb r1, [r4, #0xf] + ldr r2, [r4, #0x54] + ldrb r1, [r2, #0x18] + subs r0, #0xc4 + ands r0, r1 + strb r0, [r2, #0x18] + ldr r0, [r5] + ldr r0, [r0, #8] + adds r0, #0x76 + movs r1, #0x80 + lsls r1, r1, #1 + strh r1, [r0] + ldr r1, [r5] + movs r0, #1 + strb r0, [r1] + movs r0, #0xed + bl PlaySFX + b _0809CAC4 +_0809CA92: + subs r0, #1 + strb r0, [r2] + ldr r0, [r7] + ands r0, r6 + cmp r0, #1 + beq _0809CAB4 + cmp r0, #1 + blo _0809CAAC + cmp r0, #2 + beq _0809CAAC + cmp r0, #3 + beq _0809CABC + b _0809CAC4 +_0809CAAC: + ldr r0, [r4, #0x54] + adds r0, #0x62 + movs r1, #0 + b _0809CAC2 +_0809CAB4: + ldr r0, [r4, #0x54] + adds r0, #0x62 + movs r1, #0xfc + b _0809CAC2 +_0809CABC: + ldr r0, [r4, #0x54] + adds r0, #0x62 + movs r1, #4 +_0809CAC2: + strb r1, [r0] +_0809CAC4: + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_0809CAC8 +sub_0809CAC8: @ 0x0809CAC8 + push {r4, r5, lr} + adds r5, r0, #0 + bl sub_0806F69C + ldr r2, _0809CB3C @ =gRoomControls + ldrh r0, [r2, #8] + movs r1, #0xe4 + lsls r1, r1, #1 + adds r0, r0, r1 + movs r3, #0x32 + ldrsh r1, [r5, r3] + cmp r0, r1 + bge _0809CB26 + movs r0, #4 + strb r0, [r2, #0xe] + ldr r0, _0809CB40 @ =gLinkEntity + str r0, [r2, #0x30] + movs r0, #0x9b + bl sub_0807CCB4 + ldr r0, [r5, #0x50] + bl sub_0805E7BC + adds r4, r5, #0 + adds r4, #0x84 + ldr r0, [r4] + ldr r0, [r0, #8] + bl sub_0805E7BC + ldr r0, [r4] + ldr r0, [r0, #0x20] + bl sub_0805E7BC + ldr r0, [r4] + ldr r0, [r0, #0x24] + bl sub_0805E7BC + ldr r0, [r4] + ldr r0, [r0, #0x28] + bl sub_0805E7BC + ldr r0, [r4] + ldr r0, [r0, #0x2c] + bl sub_0805E7BC + movs r0, #7 + strb r0, [r5, #0xd] +_0809CB26: + ldr r0, _0809CB44 @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #0xf + ands r0, r1 + cmp r0, #0 + bne _0809CB38 + ldr r0, _0809CB48 @ =0x00000163 + bl PlaySFX +_0809CB38: + pop {r4, r5, pc} + .align 2, 0 +_0809CB3C: .4byte gRoomControls +_0809CB40: .4byte gLinkEntity +_0809CB44: .4byte gUnk_030010A0 +_0809CB48: .4byte 0x00000163 + + thumb_func_start sub_0809CB4C +sub_0809CB4C: @ 0x0809CB4C + push {lr} + ldr r0, _0809CB68 @ =gRoomControls + ldrb r1, [r0, #0xf] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + bne _0809CB66 + ldr r0, _0809CB6C @ =0x00000B44 + movs r1, #0 + bl sub_08078AA8 + bl sub_0805E780 +_0809CB66: + pop {pc} + .align 2, 0 +_0809CB68: .4byte gRoomControls +_0809CB6C: .4byte 0x00000B44 + + thumb_func_start sub_0809CB70 +sub_0809CB70: @ 0x0809CB70 + push {r4, r5, r6, lr} + mov r6, sb + mov r5, r8 + push {r5, r6} + adds r6, r0, #0 + adds r4, r1, #0 + adds r5, r2, #0 + ldr r0, _0809CBE0 @ =gUnk_080C9160 + mov sb, r0 + lsls r0, r4, #1 + add r0, sb + movs r1, #0 + ldrsh r0, [r0, r1] + lsls r5, r5, #0x10 + asrs r5, r5, #0x10 + adds r1, r5, #0 + bl sub_0806F9EC + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r1, #0x80 + lsls r1, r1, #1 + mov r8, r1 + bl sub_0806FA04 + ldr r1, [r6, #0x50] + lsls r0, r0, #0x10 + asrs r0, r0, #8 + ldr r1, [r1, #0x2c] + adds r1, r1, r0 + str r1, [r6, #0x2c] + adds r4, #0x40 + lsls r4, r4, #1 + add r4, sb + movs r1, #0 + ldrsh r0, [r4, r1] + adds r1, r5, #0 + bl sub_0806F9EC + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + mov r1, r8 + bl sub_0806FA04 + ldr r2, [r6, #0x50] + lsls r0, r0, #0x10 + asrs r0, r0, #8 + ldr r1, [r2, #0x30] + subs r1, r1, r0 + str r1, [r6, #0x30] + ldr r0, [r2, #0x34] + str r0, [r6, #0x34] + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, pc} + .align 2, 0 +_0809CBE0: .4byte gUnk_080C9160 + + thumb_func_start sub_0809CBE4 +sub_0809CBE4: @ 0x0809CBE4 + push {r4, lr} + adds r2, r0, #0 + adds r3, r2, #0 + adds r3, #0x79 + ldrb r0, [r2, #0xf] + ldrb r4, [r3] + adds r1, r0, r4 + strb r1, [r3] + ldrb r4, [r2, #0xf] + movs r0, #0xf + ldrsb r0, [r2, r0] + cmp r0, #0 + bge _0809CC16 + ldrb r0, [r2, #0xe] + lsls r1, r1, #0x18 + lsls r0, r0, #0x18 + cmn r1, r0 + bge _0809CC2C + rsbs r0, r4, #0 + strb r0, [r2, #0xf] + movs r0, #0xcf + lsls r0, r0, #1 + bl PlaySFX + b _0809CC2C +_0809CC16: + movs r0, #0 + ldrsb r0, [r3, r0] + ldrb r1, [r2, #0xe] + cmp r0, r1 + ble _0809CC2C + rsbs r0, r4, #0 + strb r0, [r2, #0xf] + movs r0, #0xcf + lsls r0, r0, #1 + bl PlaySFX +_0809CC2C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0809CC30 +sub_0809CC30: @ 0x0809CC30 + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r6, r1, #0 + adds r4, #0x84 + ldr r0, [r4] + ldr r0, [r0, #8] + bl sub_0801D2B4 + movs r5, #0 +_0809CC42: + ldr r0, [r4] + lsls r1, r5, #2 + adds r0, #0x20 + adds r0, r0, r1 + ldr r0, [r0] + adds r1, r6, #0 + bl sub_0801D2B4 + adds r5, #1 + cmp r5, #3 + bls _0809CC42 + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_0809CC5C +sub_0809CC5C: @ 0x0809CC5C + push {lr} + ldr r2, _0809CC70 @ =gUnk_08123E20 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0809CC70: .4byte gUnk_08123E20 + + thumb_func_start sub_0809CC74 +sub_0809CC74: @ 0x0809CC74 + push {r4, r5, lr} + adds r5, r0, #0 + movs r4, #1 + strb r4, [r5, #0xc] + bl UpdateSpriteOrderAndFlip + ldrb r0, [r5, #0xa] + cmp r0, #0 + bne _0809CCD4 + adds r2, r5, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #8 + rsbs r1, r1, #0 + ands r1, r0 + movs r0, #5 + orrs r1, r0 + strb r1, [r2] + movs r4, #0 +_0809CC9A: + movs r0, #0x92 + movs r1, #1 + adds r2, r4, #0 + bl CreateObject + adds r1, r0, #0 + adds r4, #1 + cmp r1, #0 + beq _0809CCBE + str r5, [r1, #0x50] + lsrs r2, r4, #1 + lsls r2, r2, #0x14 + ldr r0, _0809CCCC @ =0xFFF80000 + adds r2, r2, r0 + adds r0, r5, #0 + ldr r3, _0809CCD0 @ =0xFFF20000 + bl PositionRelative +_0809CCBE: + cmp r4, #2 + bls _0809CC9A + adds r0, r5, #0 + bl sub_0809CDF0 + b _0809CD0A + .align 2, 0 +_0809CCCC: .4byte 0xFFF80000 +_0809CCD0: .4byte 0xFFF20000 +_0809CCD4: + ldrb r1, [r5, #0xb] + adds r0, r4, #0 + ands r0, r1 + cmp r0, #0 + beq _0809CCF2 + ldrb r1, [r5, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r5, #0x18] + movs r0, #0x14 + strb r0, [r5, #0xe] + b _0809CD02 +_0809CCF2: + movs r0, #2 + strb r0, [r5, #0xc] + ands r0, r1 + movs r1, #0x12 + cmp r0, #0 + beq _0809CD00 + movs r1, #0x14 +_0809CD00: + strb r1, [r5, #0xe] +_0809CD02: + adds r0, r5, #0 + movs r1, #0 + bl UpdateSprite +_0809CD0A: + pop {r4, r5, pc} + + thumb_func_start sub_0809CD0C +sub_0809CD0C: @ 0x0809CD0C + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + cmp r0, #0 + beq _0809CDAC + adds r0, r4, #0 + bl sub_08004274 + adds r1, r4, #0 + adds r1, #0x5a + ldrb r2, [r1] + movs r0, #1 + ands r0, r2 + cmp r0, #0 + beq _0809CD36 + movs r0, #0xfe + ands r0, r2 + strb r0, [r1] + ldrh r0, [r4, #0x32] + adds r0, #1 + strh r0, [r4, #0x32] +_0809CD36: + ldrb r1, [r1] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0809CD56 + adds r0, r4, #0 + adds r0, #0x59 + ldrb r0, [r0] + cmp r0, #1 + bne _0809CD56 + movs r0, #2 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #6 + ands r0, r1 + strb r0, [r4, #0x18] +_0809CD56: + ldrb r0, [r4, #0xf] + cmp r0, #0 + bne _0809CDAC + ldr r5, _0809CDB0 @ =gLinkEntity + adds r6, r5, #0 + adds r6, #0x3d + movs r0, #0 + ldrsb r0, [r6, r0] + cmp r0, #0 + bne _0809CDAC + ldrb r0, [r4, #0x1e] + cmp r0, #0 + beq _0809CDAC + adds r0, r4, #0 + adds r1, r5, #0 + movs r2, #4 + bl sub_0806FC80 + cmp r0, #0 + beq _0809CDAC + ldrb r0, [r4, #0xf] + adds r0, #1 + strb r0, [r4, #0xf] + movs r0, #2 + rsbs r0, r0, #0 + bl ModHealth + adds r0, r5, #0 + movs r1, #0x7a + bl sub_0800449C + movs r1, #0x10 + strb r1, [r6] + adds r0, r5, #0 + adds r0, #0x3e + strb r1, [r0] + adds r2, r5, #0 + adds r2, #0x42 + movs r0, #0xc + strb r0, [r2] + adds r0, r5, #0 + adds r0, #0x46 + strh r1, [r0] +_0809CDAC: + pop {r4, r5, r6, pc} + .align 2, 0 +_0809CDB0: .4byte gLinkEntity + + thumb_func_start sub_0809CDB4 +sub_0809CDB4: @ 0x0809CDB4 + push {lr} + adds r3, r0, #0 + ldrb r0, [r3, #0xe] + subs r0, #1 + strb r0, [r3, #0xe] + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _0809CDEC + movs r2, #1 + movs r0, #1 + strb r0, [r3, #0xc] + movs r0, #0x1e + strb r0, [r3, #0xe] + strb r1, [r3, #0xf] + ldrb r1, [r3, #0x18] + subs r0, #0x22 + ands r0, r1 + orrs r0, r2 + strb r0, [r3, #0x18] + ldr r0, [r3, #0x50] + ldrh r0, [r0, #0x32] + subs r0, #0xe + strh r0, [r3, #0x32] + adds r0, r3, #0 + movs r1, #0 + bl UpdateSprite +_0809CDEC: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0809CDF0 +sub_0809CDF0: @ 0x0809CDF0 + push {r4, r5, r6, lr} + adds r4, r0, #0 + movs r0, #0x2e + ldrsh r1, [r4, r0] + ldr r2, _0809CE80 @ =gRoomControls + ldrh r0, [r2, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + movs r3, #0x3f + ands r1, r3 + movs r5, #0x32 + ldrsh r0, [r4, r5] + ldrh r2, [r2, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r1, r0 + adds r0, r4, #0 + adds r0, #0x80 + strh r1, [r0] + ldrh r6, [r0] + ldr r0, _0809CE84 @ =0x0000402E + subs r1, r6, #1 + adds r4, #0x38 + ldrb r2, [r4] + bl UpdateCollisionLayer + ldr r5, _0809CE88 @ =0x00004022 + ldrb r2, [r4] + adds r0, r5, #0 + adds r1, r6, #0 + bl UpdateCollisionLayer + adds r1, r6, #1 + ldrb r2, [r4] + adds r0, r5, #0 + bl UpdateCollisionLayer + adds r5, #4 + adds r1, r6, #0 + subs r1, #0x41 + ldrb r2, [r4] + adds r0, r5, #0 + bl UpdateCollisionLayer + adds r1, r6, #0 + subs r1, #0x40 + ldrb r2, [r4] + adds r0, r5, #0 + bl UpdateCollisionLayer + ldr r0, _0809CE8C @ =0x00004024 + adds r1, r6, #0 + subs r1, #0x3f + ldrb r2, [r4] + bl UpdateCollisionLayer + adds r1, r6, #0 + subs r1, #0x81 + ldrb r2, [r4] + adds r0, r5, #0 + bl UpdateCollisionLayer + adds r1, r6, #0 + subs r1, #0x80 + ldrb r2, [r4] + adds r0, r5, #0 + bl UpdateCollisionLayer + pop {r4, r5, r6, pc} + .align 2, 0 +_0809CE80: .4byte gRoomControls +_0809CE84: .4byte 0x0000402E +_0809CE88: .4byte 0x00004022 +_0809CE8C: .4byte 0x00004024 + + thumb_func_start sub_0809CE90 +sub_0809CE90: @ 0x0809CE90 + push {lr} + ldr r2, _0809CEA4 @ =gUnk_08123E80 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0809CEA4: .4byte gUnk_08123E80 + + thumb_func_start sub_0809CEA8 +sub_0809CEA8: @ 0x0809CEA8 + push {r4, lr} + adds r4, r0, #0 + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + bl UpdateSpriteOrderAndFlip + adds r0, r4, #0 + movs r1, #0 + bl UpdateSprite + pop {r4, pc} + + thumb_func_start sub_0809CEC0 +sub_0809CEC0: @ 0x0809CEC0 + push {lr} + bl sub_08004274 + pop {pc} + + thumb_func_start sub_0809CEC8 +sub_0809CEC8: @ 0x0809CEC8 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0809CF06 + adds r0, #1 + strb r0, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #2 + strb r0, [r1] + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _0809CEEE + ldrb r1, [r4, #0x18] + movs r0, #0x41 + rsbs r0, r0, #0 + ands r0, r1 + b _0809CEF4 +_0809CEEE: + ldrb r0, [r4, #0x18] + movs r1, #0x40 + orrs r0, r1 +_0809CEF4: + strb r0, [r4, #0x18] + adds r0, r4, #0 + bl UpdateSpriteOrderAndFlip + adds r0, r4, #0 + movs r1, #0 + bl UpdateSprite + b _0809CF0C +_0809CF06: + adds r0, r4, #0 + bl sub_08004274 +_0809CF0C: + adds r4, #0x59 + ldrb r0, [r4] + cmp r0, #0xff + bne _0809CF20 + bl Random + movs r1, #0xf + ands r0, r1 + adds r0, #0x10 + strb r0, [r4] +_0809CF20: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0809CF24 +sub_0809CF24: @ 0x0809CF24 + push {lr} + ldr r2, _0809CF38 @ =gUnk_08123EC0 + ldrb r1, [r0, #0xa] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0809CF38: .4byte gUnk_08123EC0 + + thumb_func_start sub_0809CF3C +sub_0809CF3C: @ 0x0809CF3C + push {lr} + ldr r2, _0809CF50 @ =gUnk_08123EEC + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0809CF50: .4byte gUnk_08123EEC + + thumb_func_start sub_0809CF54 +sub_0809CF54: @ 0x0809CF54 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + movs r0, #0x31 + strb r0, [r4, #0xe] + movs r0, #1 + strb r0, [r4, #0xf] + ldr r0, _0809CFDC @ =0xFFFE8000 + str r0, [r4, #0x20] + ldr r0, _0809CFE0 @ =0xFFC74000 + str r0, [r4, #0x34] + adds r1, r4, #0 + adds r1, #0x68 + movs r0, #0xf8 + lsls r0, r0, #8 + strh r0, [r1] + movs r0, #0xa0 + lsls r0, r0, #2 + strh r0, [r4, #0x24] + movs r0, #8 + strb r0, [r4, #0x15] + subs r1, #0x30 + movs r0, #2 + strb r0, [r1] + ldr r0, _0809CFE4 @ =gRoomControls + ldrh r0, [r0, #0xa] + strh r0, [r4, #0x2e] + ldr r0, _0809CFE8 @ =0x00000123 + bl PlaySFX + adds r0, r4, #0 + bl UpdateSpriteOrderAndFlip + adds r0, r4, #0 + movs r1, #0 + bl LoadAnimation + movs r0, #0x95 + movs r1, #1 + movs r2, #0 + bl CreateObject + adds r5, r0, #0 + cmp r5, #0 + beq _0809CFD8 + str r4, [r5, #0x50] + movs r3, #0x80 + lsls r3, r3, #0xc + adds r0, r4, #0 + adds r1, r5, #0 + movs r2, #0 + bl PositionRelative + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_0806FAB0 +_0809CFD8: + pop {r4, r5, pc} + .align 2, 0 +_0809CFDC: .4byte 0xFFFE8000 +_0809CFE0: .4byte 0xFFC74000 +_0809CFE4: .4byte gRoomControls +_0809CFE8: .4byte 0x00000123 + + thumb_func_start sub_0809CFEC +sub_0809CFEC: @ 0x0809CFEC + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F69C + adds r0, r4, #0 + adds r0, #0x68 + movs r2, #0 + ldrsh r1, [r0, r2] + adds r0, r4, #0 + bl sub_08003FC4 + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _0809D018 + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0 + bne _0809D026 + strb r0, [r4, #0xf] + b _0809D026 +_0809D018: + adds r0, r4, #0 + bl sub_080040A8 + cmp r0, #0 + bne _0809D026 + bl sub_0805E780 +_0809D026: + adds r0, r4, #0 + bl sub_080042B8 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0809D030 +sub_0809D030: @ 0x0809D030 + push {lr} + ldr r2, _0809D044 @ =gUnk_08123EF4 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0809D044: .4byte gUnk_08123EF4 + + thumb_func_start sub_0809D048 +sub_0809D048: @ 0x0809D048 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #1 + strb r0, [r1] + adds r0, r4, #0 + bl UpdateSpriteOrderAndFlip + adds r0, r4, #0 + movs r1, #0x17 + bl LoadAnimation + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0809D06C +sub_0809D06C: @ 0x0809D06C + push {lr} + ldr r2, _0809D080 @ =gUnk_08123EFC + ldrb r1, [r0, #0xd] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0809D080: .4byte gUnk_08123EFC + + thumb_func_start sub_0809D084 +sub_0809D084: @ 0x0809D084 + push {lr} + adds r1, r0, #0 + ldr r0, [r1, #0x50] + cmp r0, #0 + beq _0809D0A8 + ldrb r2, [r0, #0xf] + cmp r2, #0 + beq _0809D0A0 + movs r3, #0x80 + lsls r3, r3, #0xc + movs r2, #0 + bl PositionRelative + b _0809D0A8 +_0809D0A0: + ldrb r0, [r1, #0xd] + adds r0, #1 + strb r0, [r1, #0xd] + str r2, [r1, #0x20] +_0809D0A8: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0809D0AC +sub_0809D0AC: @ 0x0809D0AC + push {r4, lr} + adds r4, r0, #0 + movs r1, #0xc0 + lsls r1, r1, #5 + bl sub_080044EC + cmp r0, #1 + bhi _0809D0F0 + movs r2, #0 + movs r0, #2 + strb r0, [r4, #0xa] + movs r1, #1 + strb r1, [r4, #0xc] + str r2, [r4, #0x34] + adds r0, r4, #0 + adds r0, #0x38 + strb r1, [r0] + movs r0, #0x45 + bl sub_0807CCB4 + movs r0, #0x72 + bl PlaySFX + adds r0, r4, #0 + movs r1, #0x11 + movs r2, #0 + bl CreateFx + adds r1, r0, #0 + cmp r1, #0 + beq _0809D0F0 + adds r0, r4, #0 + bl sub_0806FAD8 +_0809D0F0: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0809D0F4 +sub_0809D0F4: @ 0x0809D0F4 + push {lr} + ldr r2, _0809D108 @ =gUnk_08123F04 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0809D108: .4byte gUnk_08123F04 + + thumb_func_start sub_0809D10C +sub_0809D10C: @ 0x0809D10C + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #1 + strb r0, [r1] + adds r0, r4, #0 + bl UpdateSpriteOrderAndFlip + adds r0, r4, #0 + movs r1, #0x17 + bl LoadAnimation + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0809D130 +sub_0809D130: @ 0x0809D130 + push {lr} + adds r2, r0, #0 + ldr r0, _0809D148 @ =gLinkState + ldr r0, [r0, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0809D14C + adds r0, r2, #0 + bl sub_0800445C + b _0809D170 + .align 2, 0 +_0809D148: .4byte gLinkState +_0809D14C: + adds r0, r2, #0 + bl sub_08017850 + cmp r0, #0 + beq _0809D170 + movs r0, #0x17 + movs r1, #0 + movs r2, #0 + bl sub_080A7C00 + ldr r0, _0809D174 @ =gUnk_02002A40 + ldr r1, [r0, #0x40] + movs r2, #0x80 + lsls r2, r2, #0x15 + orrs r1, r2 + str r1, [r0, #0x40] + bl sub_0805E780 +_0809D170: + pop {pc} + .align 2, 0 +_0809D174: .4byte gUnk_02002A40 + + thumb_func_start sub_0809D178 +sub_0809D178: @ 0x0809D178 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0809D19C + adds r0, #1 + strb r0, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #2 + strb r0, [r1] + adds r0, r4, #0 + bl UpdateSpriteOrderAndFlip + adds r1, r4, #0 + adds r1, #0x5a + movs r0, #0x80 + strb r0, [r1] +_0809D19C: + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0809D1E8 + bl Random + movs r1, #3 + ands r1, r0 + adds r0, r4, #0 + bl UpdateSprite + bl Random + movs r1, #0xf + ands r0, r1 + adds r0, #0x10 + adds r1, r4, #0 + adds r1, #0x59 + strb r0, [r1] + ldrb r1, [r4, #0x18] + movs r0, #0x41 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] + bl Random + movs r1, #1 + ands r1, r0 + cmp r1, #0 + beq _0809D1EE + ldrb r0, [r4, #0x18] + movs r1, #0x40 + orrs r0, r1 + strb r0, [r4, #0x18] + b _0809D1EE +_0809D1E8: + adds r0, r4, #0 + bl sub_08004274 +_0809D1EE: + pop {r4, pc} \ No newline at end of file diff --git a/asm/code_0809D498.s b/asm/code_0809D498.s index 6f66944c..99d3cc9b 100644 --- a/asm/code_0809D498.s +++ b/asm/code_0809D498.s @@ -580,7 +580,7 @@ sub_0809D91C: @ 0x0809D91C adds r4, r0, #0 movs r1, #0x11 movs r2, #0 - bl CreateFX + bl CreateFx adds r1, r0, #0 cmp r1, #0 beq _0809D934 @@ -2305,70 +2305,70 @@ _0809E636: adds r1, r5, #0 subs r1, #0x3d movs r2, #1 - bl sub_0800015E + bl UpdateCollisionLayer ldr r0, _0809E6E0 @ =0x0000406D adds r1, r5, #0 subs r1, #0x3c movs r2, #1 - bl sub_0800015E + bl UpdateCollisionLayer _0809E64E: ldr r0, _0809E6E4 @ =0x0000406C adds r1, r5, #0 subs r1, #0x42 movs r2, #1 - bl sub_0800015E + bl UpdateCollisionLayer ldr r4, _0809E6DC @ =0x00004022 adds r1, r5, #0 subs r1, #0x41 adds r0, r4, #0 movs r2, #1 - bl sub_0800015E + bl UpdateCollisionLayer adds r1, r5, #0 subs r1, #0x40 adds r0, r4, #0 movs r2, #1 - bl sub_0800015E + bl UpdateCollisionLayer adds r1, r5, #0 subs r1, #0x3f adds r0, r4, #0 movs r2, #1 - bl sub_0800015E + bl UpdateCollisionLayer subs r1, r5, #2 adds r0, r4, #0 movs r2, #1 - bl sub_0800015E + bl UpdateCollisionLayer subs r1, r5, #1 adds r0, r4, #0 movs r2, #1 - bl sub_0800015E + bl UpdateCollisionLayer adds r0, r4, #0 adds r1, r5, #0 movs r2, #1 - bl sub_0800015E + bl UpdateCollisionLayer adds r1, r5, #1 adds r0, r4, #0 movs r2, #1 - bl sub_0800015E + bl UpdateCollisionLayer ldr r0, _0809E6E8 @ =0x0000406E adds r1, r5, #0 adds r1, #0x3e movs r2, #1 - bl sub_0800015E + bl UpdateCollisionLayer adds r1, r5, #0 adds r1, #0x3f adds r0, r4, #0 movs r2, #1 - bl sub_0800015E + bl UpdateCollisionLayer adds r1, r5, #0 adds r1, #0x40 adds r0, r4, #0 movs r2, #1 - bl sub_0800015E + bl UpdateCollisionLayer ldr r0, _0809E6EC @ =0x0000406F adds r1, r5, #0 adds r1, #0x41 movs r2, #1 - bl sub_0800015E + bl UpdateCollisionLayer b _0809E792 .align 2, 0 _0809E6DC: .4byte 0x00004022 @@ -2381,70 +2381,70 @@ _0809E6F0: adds r1, r5, #0 subs r1, #0x44 movs r2, #1 - bl sub_0800015E + bl UpdateCollisionLayer ldr r0, _0809E798 @ =0x0000406C adds r1, r5, #0 subs r1, #0x45 movs r2, #1 - bl sub_0800015E + bl UpdateCollisionLayer _0809E708: ldr r4, _0809E794 @ =0x00004022 adds r1, r5, #0 subs r1, #0x42 adds r0, r4, #0 movs r2, #1 - bl sub_0800015E + bl UpdateCollisionLayer adds r1, r5, #0 subs r1, #0x41 adds r0, r4, #0 movs r2, #1 - bl sub_0800015E + bl UpdateCollisionLayer adds r1, r5, #0 subs r1, #0x40 adds r0, r4, #0 movs r2, #1 - bl sub_0800015E + bl UpdateCollisionLayer ldr r0, _0809E79C @ =0x0000406D adds r1, r5, #0 subs r1, #0x3f movs r2, #1 - bl sub_0800015E + bl UpdateCollisionLayer subs r1, r5, #2 adds r0, r4, #0 movs r2, #1 - bl sub_0800015E + bl UpdateCollisionLayer subs r1, r5, #1 adds r0, r4, #0 movs r2, #1 - bl sub_0800015E + bl UpdateCollisionLayer adds r0, r4, #0 adds r1, r5, #0 movs r2, #1 - bl sub_0800015E + bl UpdateCollisionLayer adds r1, r5, #1 adds r0, r4, #0 movs r2, #1 - bl sub_0800015E + bl UpdateCollisionLayer ldr r0, _0809E7A0 @ =0x0000406E adds r1, r5, #0 adds r1, #0x3e movs r2, #1 - bl sub_0800015E + bl UpdateCollisionLayer adds r1, r5, #0 adds r1, #0x3f adds r0, r4, #0 movs r2, #1 - bl sub_0800015E + bl UpdateCollisionLayer adds r1, r5, #0 adds r1, #0x40 adds r0, r4, #0 movs r2, #1 - bl sub_0800015E + bl UpdateCollisionLayer ldr r0, _0809E7A4 @ =0x0000406F adds r1, r5, #0 adds r1, #0x41 movs r2, #1 - bl sub_0800015E + bl UpdateCollisionLayer _0809E792: pop {r4, r5, pc} .align 2, 0 @@ -2660,7 +2660,7 @@ _0809E92A: adds r0, r5, #0 movs r1, #3 movs r2, #0 - bl CreateFX + bl CreateFx adds r2, r0, #0 cmp r2, #0 beq _0809E958 @@ -2916,7 +2916,7 @@ _0809EAF8: adds r2, r5, #0 adds r2, #0x38 ldrb r2, [r2] - bl sub_0800015E + bl UpdateCollisionLayer _0809EB24: pop {r4, r5, r6, pc} .align 2, 0 @@ -3140,11 +3140,11 @@ sub_0809EC4C: @ 0x0809EC4C ldr r0, _0809ECFC @ =0x00004066 subs r1, r4, #1 ldrb r2, [r5] - bl sub_0800015E + bl UpdateCollisionLayer ldr r0, _0809ED00 @ =0x00004065 ldrb r2, [r5] adds r1, r4, #0 - bl sub_0800015E + bl UpdateCollisionLayer adds r0, r6, #0 bl UpdateSpriteOrderAndFlip movs r0, #0x9e @@ -3751,7 +3751,7 @@ sub_0809F144: @ 0x0809F144 adds r2, r4, #0 adds r2, #0x38 ldrb r2, [r2] - bl sub_0800015E + bl UpdateCollisionLayer ldrb r1, [r4, #0xa] adds r0, r4, #0 bl UpdateSprite @@ -3943,7 +3943,7 @@ sub_0809F2A0: @ 0x0809F2A0 adds r0, #0x38 ldrb r2, [r0] adds r0, r5, #0 - bl sub_0800015E + bl UpdateCollisionLayer pop {r4, r5, r6, pc} .align 2, 0 _0809F2EC: .4byte 0x00004069 @@ -4110,7 +4110,7 @@ _0809F41C: adds r0, r2, #0 movs r1, #0x43 movs r2, #0 - bl CreateFX + bl CreateFx ldr r1, _0809F434 @ =gUnk_02000080 movs r0, #1 strb r0, [r1] @@ -4827,7 +4827,7 @@ sub_0809F964: @ 0x0809F964 adds r0, r4, #0 movs r1, #0x4e movs r2, #0 - bl CreateFX + bl CreateFx adds r2, r0, #0 cmp r2, #0 beq _0809F99A @@ -6668,7 +6668,7 @@ sub_080A074C: @ 0x080A074C adds r0, r4, #0 movs r1, #0x11 movs r2, #0x40 - bl CreateFX + bl CreateFx adds r1, r0, #0 cmp r1, #0 beq _080A0794 @@ -6682,7 +6682,7 @@ _080A0794: adds r0, r4, #0 movs r1, #0x11 movs r2, #0x40 - bl CreateFX + bl CreateFx adds r1, r0, #0 cmp r1, #0 beq _080A07B0 @@ -6776,16 +6776,16 @@ sub_080A080C: @ 0x080A080C subs r1, #1 ldrb r2, [r5] adds r0, r4, #0 - bl sub_0800015E + bl UpdateCollisionLayer ldrh r1, [r6] ldrb r2, [r5] adds r0, r4, #0 - bl sub_0800015E + bl UpdateCollisionLayer ldrh r1, [r6] adds r1, #1 ldrb r2, [r5] adds r0, r4, #0 - bl sub_0800015E + bl UpdateCollisionLayer pop {r4, r5, r6, pc} .align 2, 0 _080A086C: .4byte 0x00004022 @@ -6803,20 +6803,20 @@ sub_080A0870: @ 0x080A0870 adds r4, r6, #0 adds r4, #0x38 ldrb r2, [r4] - bl sub_0800015E + bl UpdateCollisionLayer adds r0, r6, #0 adds r0, #0x78 ldrh r0, [r0] ldrh r1, [r5] ldrb r2, [r4] - bl sub_0800015E + bl UpdateCollisionLayer adds r0, r6, #0 adds r0, #0x7a ldrh r0, [r0] ldrh r1, [r5] adds r1, #1 ldrb r2, [r4] - bl sub_0800015E + bl UpdateCollisionLayer pop {r4, r5, r6, pc} .align 2, 0 @@ -7652,7 +7652,7 @@ sub_080A0EB0: @ 0x080A0EB0 ldrh r1, [r0] adds r0, r2, #0 movs r2, #1 - bl sub_0800015E + bl UpdateCollisionLayer pop {r4, r5, pc} .align 2, 0 _080A0EE8: .4byte gRoomControls @@ -9679,7 +9679,7 @@ sub_080A1E54: @ 0x080A1E54 adds r0, r2, #0 movs r1, #0x51 movs r2, #0 - bl CreateFX + bl CreateFx adds r4, r0, #0 cmp r4, #0 beq _080A1ECA @@ -9898,7 +9898,7 @@ sub_080A1FF0: @ 0x080A1FF0 adds r0, r5, #0 movs r1, #0x51 movs r2, #0 - bl CreateFX + bl CreateFx adds r4, r0, #0 cmp r4, #0 beq _080A2066 @@ -10066,7 +10066,7 @@ sub_080A2138: @ 0x080A2138 adds r0, r4, #0 movs r1, #0x46 movs r2, #0 - bl CreateFX + bl CreateFx pop {r4, pc} .align 2, 0 _080A2160: .4byte gUnk_02002A40 diff --git a/asm/code_080A29BC.s b/asm/code_080A29BC.s index bb05cf75..0c6c0dc9 100644 --- a/asm/code_080A29BC.s +++ b/asm/code_080A29BC.s @@ -10,7 +10,7 @@ sub_080A29BC: @ 0x080A29BC push {lr} movs r1, #2 movs r2, #0 - bl CreateFX + bl CreateFx pop {pc} thumb_func_start sub_080A29C8 @@ -46,7 +46,7 @@ sub_080A29FC: @ 0x080A29FC push {lr} movs r1, #0x11 movs r2, #0 - bl CreateFX + bl CreateFx pop {pc} thumb_func_start sub_080A2A08 @@ -54,7 +54,7 @@ sub_080A2A08: @ 0x080A2A08 push {lr} movs r1, #6 movs r2, #0 - bl CreateFX + bl CreateFx pop {pc} thumb_func_start sub_080A2A14 @@ -62,7 +62,7 @@ sub_080A2A14: @ 0x080A2A14 push {lr} movs r1, #0xb movs r2, #0 - bl CreateFX + bl CreateFx pop {pc} thumb_func_start sub_080A2A20 @@ -110,7 +110,7 @@ sub_080A2A64: @ 0x080A2A64 push {lr} movs r1, #0x20 movs r2, #0 - bl CreateFX + bl CreateFx adds r2, r0, #0 cmp r2, #0 beq _080A2A80 @@ -171,7 +171,7 @@ sub_080A2AD4: @ 0x080A2AD4 push {lr} movs r1, #0x21 movs r2, #0 - bl CreateFX + bl CreateFx adds r2, r0, #0 cmp r2, #0 beq _080A2AF0 @@ -1058,7 +1058,7 @@ _080A315C: adds r0, r4, #0 movs r1, #0x19 movs r2, #0 - bl CreateFX + bl CreateFx bl sub_0805E780 _080A31AE: adds r0, r4, #0 @@ -1069,7 +1069,7 @@ _080A31AE: adds r0, r4, #0 movs r1, #0x19 movs r2, #0 - bl CreateFX + bl CreateFx bl sub_0805E780 _080A31C6: adds r0, r4, #0 diff --git a/asm/code_080A5574.s b/asm/code_080A5574.s index f36013f6..c569a963 100644 --- a/asm/code_080A5574.s +++ b/asm/code_080A5574.s @@ -4301,7 +4301,7 @@ _080A776A: _080A778E: adds r0, r4, #0 movs r2, #0 - bl CreateFX + bl CreateFx adds r2, r0, #0 cmp r2, #0 beq _080A77C4 @@ -6799,13 +6799,13 @@ _080A89E6: movs r1, #0 _080A89EA: movs r2, #0 - bl CreateFX + bl CreateFx b _080A89FC _080A89F2: adds r0, r5, #0 movs r1, #0xc movs r2, #0 - bl CreateFX + bl CreateFx _080A89FC: bl sub_0805E780 _080A8A00: @@ -6834,7 +6834,7 @@ _080A8A2A: adds r0, r5, #0 movs r1, #5 movs r2, #0x80 - bl CreateFX + bl CreateFx adds r4, r0, #0 cmp r4, #0 beq _080A8A3E @@ -7578,7 +7578,7 @@ sub_080A8FB8: @ 0x080A8FB8 adds r0, r4, #0 movs r1, #4 movs r2, #0 - bl CreateFX + bl CreateFx bl sub_0805E780 b _080A9054 _080A8FE8: @@ -8890,7 +8890,7 @@ _080A99D2: adds r0, r4, #0 movs r1, #4 movs r2, #0 - bl CreateFX + bl CreateFx bl sub_0805E780 _080A99EE: pop {r4, r5, pc} @@ -8900,7 +8900,7 @@ sub_080A99F0: @ 0x080A99F0 push {lr} movs r1, #4 movs r2, #0 - bl CreateFX + bl CreateFx bl sub_0805E780 pop {pc} @@ -9163,13 +9163,13 @@ sub_080A9BA8: @ 0x080A9BA8 adds r0, r1, #0 movs r1, #5 movs r2, #0 - bl CreateFX + bl CreateFx b _080A9BC8 _080A9BBE: adds r0, r1, #0 movs r1, #0x3c movs r2, #0 - bl CreateFX + bl CreateFx _080A9BC8: bl sub_0805E780 pop {pc} @@ -9349,7 +9349,7 @@ sub_080A9CF0: @ 0x080A9CF0 adds r0, r4, #0 movs r1, #2 movs r2, #0 - bl CreateFX + bl CreateFx bl sub_0805E780 _080A9D0A: ldr r0, _080A9D1C @ =gUnk_08129B78 @@ -9398,7 +9398,7 @@ _080A9D56: adds r0, r4, #0 movs r1, #2 movs r2, #0 - bl CreateFX + bl CreateFx bl sub_0805E780 _080A9D64: pop {r4, pc} @@ -9518,7 +9518,7 @@ _080A9E34: adds r0, r4, #0 movs r1, #0x4f movs r2, #0 - bl CreateFX + bl CreateFx bl sub_0805E780 _080A9E42: adds r0, r4, #0 @@ -9776,7 +9776,7 @@ _080A9FF2: ldr r0, _080AA040 @ =0x00004005 ldrh r1, [r4] ldrb r2, [r5] - bl sub_0800015E + bl UpdateCollisionLayer _080AA034: pop {r4, r5, pc} .align 2, 0 @@ -10428,7 +10428,7 @@ _080AA4EE: adds r2, r5, #0 adds r2, #0x38 ldrb r2, [r2] - bl sub_0800015E + bl UpdateCollisionLayer pop {r4, r5, r6, pc} .align 2, 0 _080AA52C: .4byte gRoomControls @@ -11146,7 +11146,7 @@ sub_080AAA68: @ 0x080AAA68 adds r0, #0x38 ldrb r2, [r0] adds r0, r5, #0 - bl sub_0800015E + bl UpdateCollisionLayer pop {r4, r5, r6, pc} .align 2, 0 _080AAAA0: .4byte gUnk_0812A084 @@ -11476,7 +11476,7 @@ _080AACF4: adds r0, r4, #0 movs r1, #2 movs r2, #0 - bl CreateFX + bl CreateFx _080AAD16: ldr r2, [r4, #0x50] ldrb r0, [r4, #0xb] @@ -11521,7 +11521,7 @@ _080AAD58: adds r0, r4, #0 movs r1, #2 movs r2, #0 - bl CreateFX + bl CreateFx _080AAD68: bl sub_0805E780 pop {r4, r5, pc} @@ -12634,7 +12634,7 @@ sub_080AB59C: @ 0x080AB59C adds r0, r4, #0 movs r1, #2 movs r2, #0 - bl CreateFX + bl CreateFx bl sub_0805E780 _080AB5BC: adds r0, r4, #0 @@ -12658,7 +12658,7 @@ sub_080AB5C4: @ 0x080AB5C4 adds r0, r4, #0 movs r1, #2 movs r2, #0 - bl CreateFX + bl CreateFx bl sub_0805E780 _080AB5F0: pop {r4, pc} @@ -12736,7 +12736,7 @@ _080AB640: ldr r0, [r4] movs r1, #0x45 movs r2, #0 - bl CreateFX + bl CreateFx _080AB67A: adds r0, r6, #0 bl sub_0805E7BC @@ -13548,7 +13548,7 @@ sub_080ABC54: @ 0x080ABC54 adds r0, r4, #0 movs r1, #2 movs r2, #0 - bl CreateFX + bl CreateFx bl sub_0805E780 _080ABC6E: ldr r0, _080ABC80 @ =gUnk_0812A808 @@ -13591,7 +13591,7 @@ sub_080ABC90: @ 0x080ABC90 adds r0, r4, #0 movs r1, #2 movs r2, #0 - bl CreateFX + bl CreateFx bl sub_0805E780 _080ABCBE: pop {r4, pc} @@ -13832,7 +13832,7 @@ sub_080ABE88: @ 0x080ABE88 adds r0, r4, #0 movs r1, #4 movs r2, #0 - bl CreateFX + bl CreateFx bl sub_0805E780 _080ABEA6: pop {r4, pc} @@ -15589,7 +15589,7 @@ sub_080ACB90: @ 0x080ACB90 adds r0, r2, #0 movs r1, #0x1f movs r2, #0x40 - bl CreateFX + bl CreateFx ldr r0, _080ACBC8 @ =0x00000119 bl sub_08004488 bl sub_0805E780 @@ -16327,13 +16327,13 @@ _080AD12C: movs r1, #0xb _080AD130: movs r2, #0 - bl CreateFX + bl CreateFx b _080AD142 _080AD138: adds r0, r4, #0 movs r1, #0x52 movs r2, #0 - bl CreateFX + bl CreateFx _080AD142: movs r0, #4 b _080AD148 @@ -16354,7 +16354,7 @@ _080AD14E: ldrb r1, [r4, #0xe] adds r0, r4, #0 movs r2, #0x80 - bl CreateFX + bl CreateFx b _080AD1DA _080AD16A: ldrb r1, [r4, #0xb] diff --git a/asm/cow.s b/asm/cow.s index 9d06a181..a5610659 100644 --- a/asm/cow.s +++ b/asm/cow.s @@ -320,7 +320,7 @@ _080691DE: sub_080691E0: @ 0x080691E0 push {r4, lr} adds r4, r0, #0 - bl sub_0806F148 + bl UpdateFuseInteraction cmp r0, #0 beq _080691F4 movs r1, #0 diff --git a/asm/createFx.s b/asm/createFx.s index 064eb24c..991aa1c4 100644 --- a/asm/createFx.s +++ b/asm/createFx.s @@ -2,8 +2,8 @@ .text .syntax unified - thumb_func_start CreateFX -CreateFX: @ 0x080A29AC + thumb_func_start CreateFx +CreateFx: @ 0x080A29AC push {r4, lr} adds r4, r1, #0 adds r3, r2, #0 diff --git a/asm/cucco.s b/asm/cucco.s index 881fece6..f7b0f206 100644 --- a/asm/cucco.s +++ b/asm/cucco.s @@ -223,7 +223,7 @@ _0806E638: sub_0806E648: @ 0x0806E648 push {r4, lr} adds r4, r0, #0 - bl sub_0806F148 + bl UpdateFuseInteraction cmp r0, #0 beq _0806E658 movs r0, #1 diff --git a/asm/cuccoChick.s b/asm/cuccoChick.s index 4d06ed3a..725f4d3e 100644 --- a/asm/cuccoChick.s +++ b/asm/cuccoChick.s @@ -152,7 +152,7 @@ _0806E81C: sub_0806E824: @ 0x0806E824 push {r4, lr} adds r4, r0, #0 - bl sub_0806F148 + bl UpdateFuseInteraction cmp r0, #0 beq _0806E834 movs r0, #1 diff --git a/asm/dampe.s b/asm/dampe.s index c395692a..563a204c 100644 --- a/asm/dampe.s +++ b/asm/dampe.s @@ -70,7 +70,7 @@ _0806BE26: adds r0, r4, #0 bl sub_080042B8 adds r0, r4, #0 - bl sub_0806F148 + bl UpdateFuseInteraction cmp r0, #0 beq _0806BE3A movs r0, #1 diff --git a/asm/din.s b/asm/din.s index 571bd9c6..f7d496d2 100644 --- a/asm/din.s +++ b/asm/din.s @@ -69,7 +69,7 @@ _08064800: b _08064824 _0806480A: adds r0, r4, #0 - bl sub_0806F148 + bl UpdateFuseInteraction cmp r0, #0 beq _08064824 movs r0, #1 diff --git a/asm/dog.s b/asm/dog.s index 8eeb0758..448ff5d0 100644 --- a/asm/dog.s +++ b/asm/dog.s @@ -141,7 +141,7 @@ _08069BF2: adds r2, r5, #0 adds r2, #0x38 ldrb r2, [r2] - bl sub_0800015E + bl UpdateCollisionLayer _08069C30: pop {r4, r5, r6, pc} .align 2, 0 @@ -484,7 +484,7 @@ _08069EC8: sub_08069ECC: @ 0x08069ECC push {r4, lr} adds r4, r0, #0 - bl sub_0806F148 + bl UpdateFuseInteraction cmp r0, #0 beq _08069EDC movs r0, #1 diff --git a/asm/drLeft.s b/asm/drLeft.s index c32049f2..1774fcb9 100644 --- a/asm/drLeft.s +++ b/asm/drLeft.s @@ -6,7 +6,6 @@ .text - thumb_func_start sub_0806BF80 sub_0806BF80: @ 0x0806BF80 push {r4, lr} diff --git a/asm/emma.s b/asm/emma.s deleted file mode 100644 index 5bf73b21..00000000 --- a/asm/emma.s +++ /dev/null @@ -1,56 +0,0 @@ - .include "asm/macros.inc" - - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_0806C550 -sub_0806C550: @ 0x0806C550 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0806C56E - adds r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #2 - bl sub_0805E3A0 - adds r0, r4, #0 - bl sub_0807DD50 - b _0806C576 -_0806C56E: - adds r0, r4, #0 - movs r1, #0 - bl sub_0807DD94 -_0806C576: - pop {r4, pc} - - thumb_func_start sub_0806C578 -sub_0806C578: @ 0x0806C578 - push {lr} - ldr r0, _0806C584 @ =gUnk_0813AD10 - bl sub_08080840 - pop {pc} - .align 2, 0 -_0806C584: .4byte gUnk_0813AD10 - - thumb_func_start sub_0806C588 -sub_0806C588: @ 0x0806C588 - push {lr} - ldr r0, _0806C594 @ =gUnk_0813AD24 - bl sub_08080840 - pop {pc} - .align 2, 0 -_0806C594: .4byte gUnk_0813AD24 - - thumb_func_start sub_0806C598 -sub_0806C598: @ 0x0806C598 - push {lr} - ldr r0, _0806C5A4 @ =gUnk_0813AD38 - bl sub_08080840 - pop {pc} - .align 2, 0 -_0806C5A4: .4byte gUnk_0813AD38 \ No newline at end of file diff --git a/asm/epona.s b/asm/epona.s index 2b09dad7..606a0752 100644 --- a/asm/epona.s +++ b/asm/epona.s @@ -97,7 +97,7 @@ _08065A30: .4byte gTextBox sub_08065A34: @ 0x08065A34 push {r4, lr} adds r4, r0, #0 - bl sub_0806F148 + bl UpdateFuseInteraction cmp r0, #0 beq _08065A4E movs r0, #1 diff --git a/asm/ezloCap.s b/asm/ezloCap.s index 6ca61900..c1fc09d7 100644 --- a/asm/ezloCap.s +++ b/asm/ezloCap.s @@ -144,7 +144,7 @@ sub_0806D96C: @ 0x0806D96C adds r4, r0, #0 movs r1, #0x42 movs r2, #0 - bl CreateFX + bl CreateFx adds r2, r0, #0 cmp r2, #0 beq _0806D99C diff --git a/asm/farore.s b/asm/farore.s index 1916b84d..08e99e3d 100644 --- a/asm/farore.s +++ b/asm/farore.s @@ -69,7 +69,7 @@ _08064A00: b _08064A24 _08064A0A: adds r0, r4, #0 - bl sub_0806F148 + bl UpdateFuseInteraction cmp r0, #0 beq _08064A24 movs r0, #1 diff --git a/asm/festari.s b/asm/festari.s index d9e2de2d..ca538ed4 100644 --- a/asm/festari.s +++ b/asm/festari.s @@ -141,7 +141,7 @@ _0805FF14: sub_0805FF18: @ 0x0805FF18 push {r4, lr} adds r4, r0, #0 - bl sub_0806F148 + bl UpdateFuseInteraction cmp r0, #0 beq _0805FF28 movs r0, #1 diff --git a/asm/forestMinish.s b/asm/forestMinish.s index 4fb9b61c..ac6859bd 100644 --- a/asm/forestMinish.s +++ b/asm/forestMinish.s @@ -88,7 +88,7 @@ _0806005E: b _0806008C _0806007E: adds r0, r4, #0 - bl sub_0806F148 + bl UpdateFuseInteraction cmp r0, #0 beq _0806008C movs r0, #1 diff --git a/asm/gentari.s b/asm/gentari.s index c1f0fd66..f9e89c16 100644 --- a/asm/gentari.s +++ b/asm/gentari.s @@ -75,7 +75,7 @@ _0805FDA4: b _0805FDBC _0805FDAE: adds r0, r4, #0 - bl sub_0806F148 + bl UpdateFuseInteraction cmp r0, #0 beq _0805FDBC movs r0, #1 diff --git a/asm/ghostBrothers.s b/asm/ghostBrothers.s index 5633be15..48a563ff 100644 --- a/asm/ghostBrothers.s +++ b/asm/ghostBrothers.s @@ -121,7 +121,7 @@ _08065C74: b _08065CCA _08065C7E: adds r0, r4, #0 - bl sub_0806F148 + bl UpdateFuseInteraction cmp r0, #0 beq _08065CCA b _08065CC6 diff --git a/asm/gina.s b/asm/gina.s index ffe9c067..fd6abe7f 100644 --- a/asm/gina.s +++ b/asm/gina.s @@ -72,7 +72,7 @@ _0806C1B4: b _0806C1D2 _0806C1BE: adds r0, r4, #0 - bl sub_0806F148 + bl UpdateFuseInteraction cmp r0, #0 beq _0806C1D2 movs r0, #1 diff --git a/asm/goron.s b/asm/goron.s index 27d79d08..d28e89d5 100644 --- a/asm/goron.s +++ b/asm/goron.s @@ -195,7 +195,7 @@ sub_08069428: @ 0x08069428 adds r6, r2, #0 movs r1, #4 movs r2, #0 - bl CreateFX + bl CreateFx adds r4, r0, #0 cmp r4, #0 beq _08069452 @@ -213,7 +213,7 @@ _08069452: adds r0, r5, #0 movs r1, #0x41 movs r2, #0 - bl CreateFX + bl CreateFx adds r4, r0, #0 cmp r4, #0 beq _0806947A diff --git a/asm/greatFairy.s b/asm/greatFairy.s new file mode 100644 index 00000000..8824c158 --- /dev/null +++ b/asm/greatFairy.s @@ -0,0 +1,1314 @@ + .include "asm/macros.inc" + + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_08086B10 +sub_08086B10: @ 0x08086B10 + push {r4, r5, r6, lr} + adds r4, r0, #0 + movs r0, #0 + bl sub_0807CC3C + cmp r0, #0 + beq _08086B9A + adds r1, r4, #0 + adds r1, #0x84 + ldrh r0, [r1] + cmp r0, #0 + beq _08086B2C + subs r0, #1 + strh r0, [r1] +_08086B2C: + ldrh r1, [r1] + cmp r1, #0x96 + beq _08086B62 + cmp r1, #0x96 + bgt _08086B40 + cmp r1, #0 + beq _08086B5C + cmp r1, #0x82 + beq _08086B62 + b _08086B9A +_08086B40: + cmp r1, #0xd2 + beq _08086B62 + cmp r1, #0xd2 + bgt _08086B4E + cmp r1, #0xaa + beq _08086B62 + b _08086B9A +_08086B4E: + ldr r0, _08086B58 @ =0x00000121 + cmp r1, r0 + beq _08086B62 + b _08086B9A + .align 2, 0 +_08086B58: .4byte 0x00000121 +_08086B5C: + movs r0, #2 + strb r0, [r4, #0xc] + b _08086B9A +_08086B62: + adds r0, r4, #0 + movs r1, #6 + movs r2, #0 + bl sub_080873AC + adds r5, r0, #0 + cmp r5, #0 + beq _08086B9A + ldr r3, _08086B9C @ =gGreatFairyRippleOffsets + ldrb r1, [r4, #0xe] + lsls r0, r1, #1 + adds r0, r0, r3 + movs r6, #0 + ldrsh r2, [r0, r6] + lsls r2, r2, #0x10 + adds r1, #1 + lsls r1, r1, #1 + adds r1, r1, r3 + movs r0, #0 + ldrsh r3, [r1, r0] + lsls r3, r3, #0x10 + adds r0, r4, #0 + adds r1, r5, #0 + bl PositionRelative + ldrb r0, [r4, #0xe] + adds r0, #2 + strb r0, [r4, #0xe] +_08086B9A: + pop {r4, r5, r6, pc} + .align 2, 0 +_08086B9C: .4byte gGreatFairyRippleOffsets + + thumb_func_start sub_08086BA0 +sub_08086BA0: @ 0x08086BA0 + push {r4, lr} + adds r4, r0, #0 + movs r1, #7 + movs r2, #0 + bl sub_080873AC + adds r1, r0, #0 + cmp r1, #0 + beq _08086BC2 + movs r3, #0x80 + lsls r3, r3, #0xc + adds r0, r4, #0 + movs r2, #0 + bl PositionRelative + movs r0, #3 + strb r0, [r4, #0xc] +_08086BC2: + pop {r4, pc} + + thumb_func_start sub_08086BC4 +sub_08086BC4: @ 0x08086BC4 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _08086C10 @ =gUnk_02034350 + ldr r0, [r0, #0x68] + movs r1, #1 + ands r0, r1 + cmp r0, #0 + beq _08086C0C + adds r0, r4, #0 + movs r1, #2 + movs r2, #0 + bl sub_080873AC + adds r1, r0, #0 + cmp r1, #0 + beq _08086C0C + adds r0, r4, #0 + bl CopyPosition + movs r0, #6 + movs r1, #4 + bl DoFade + ldr r0, _08086C14 @ =0x00000145 + bl PlaySFX + movs r0, #4 + strb r0, [r4, #0xc] + movs r0, #0x3c + strb r0, [r4, #0xe] + ldrb r1, [r4, #0x18] + subs r0, #0x40 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] +_08086C0C: + pop {r4, pc} + .align 2, 0 +_08086C10: .4byte gUnk_02034350 +_08086C14: .4byte 0x00000145 + + thumb_func_start sub_08086C18 +sub_08086C18: @ 0x08086C18 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_08004274 + ldrb r0, [r4, #0xe] + adds r5, r0, #0 + cmp r5, #0 + beq _08086C2E + subs r0, #1 + strb r0, [r4, #0xe] + b _08086C52 +_08086C2E: + adds r0, r4, #0 + movs r1, #1 + movs r2, #0 + bl sub_080873AC + adds r1, r0, #0 + cmp r1, #0 + beq _08086C52 + ldr r3, _08086C54 @ =0xFFEC0000 + adds r0, r4, #0 + movs r2, #0 + bl PositionRelative + movs r0, #5 + strb r0, [r4, #0xc] + movs r0, #0x78 + strb r0, [r4, #0xe] + strb r5, [r4, #0xf] +_08086C52: + pop {r4, r5, pc} + .align 2, 0 +_08086C54: .4byte 0xFFEC0000 + + thumb_func_start sub_08086C58 +sub_08086C58: @ 0x08086C58 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _08086C68 + subs r0, #1 + strb r0, [r4, #0xe] + b _08086C90 +_08086C68: + ldrb r0, [r4, #0xf] + cmp r0, #0 + bne _08086C90 + adds r0, r4, #0 + movs r1, #9 + movs r2, #0 + bl sub_080873AC + adds r5, r0, #0 + cmp r5, #0 + beq _08086C90 + ldr r3, _08086C98 @ =0xFFB40000 + adds r0, r4, #0 + adds r1, r5, #0 + movs r2, #0 + bl PositionRelative + str r4, [r5, #0x50] + movs r0, #1 + strb r0, [r4, #0xf] +_08086C90: + adds r0, r4, #0 + bl sub_08004274 + pop {r4, r5, pc} + .align 2, 0 +_08086C98: .4byte 0xFFB40000 + + thumb_func_start sub_08086C9C +sub_08086C9C: @ 0x08086C9C + push {lr} + ldr r2, _08086CB0 @ =gGreatFairyWings + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08086CB0: .4byte gGreatFairyWings + + thumb_func_start sub_08086CB4 +sub_08086CB4: @ 0x08086CB4 + push {r4, lr} + adds r4, r0, #0 + bl sub_08087380 + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #5 + orrs r0, r1 + strb r0, [r2] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + ldrb r1, [r4, #0x19] + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #4 + orrs r0, r1 + strb r0, [r4, #0x19] + ldr r1, _08086D10 @ =gLCDControls + adds r2, r1, #0 + adds r2, #0x66 + movs r0, #0xf4 + lsls r0, r0, #4 + strh r0, [r2] + adds r1, #0x68 + ldr r0, _08086D14 @ =0x00000809 + strh r0, [r1] + movs r1, #0x80 + lsls r1, r1, #3 + strh r1, [r4, #0x24] + movs r2, #0x80 + lsls r2, r2, #1 + adds r0, r4, #0 + movs r3, #0 + bl sub_0805EC9C + pop {r4, pc} + .align 2, 0 +_08086D10: .4byte gLCDControls +_08086D14: .4byte 0x00000809 + + thumb_func_start sub_08086D18 +sub_08086D18: @ 0x08086D18 + push {lr} + adds r3, r0, #0 + ldrh r0, [r3, #0x24] + subs r0, #0x20 + strh r0, [r3, #0x24] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r2, #0x80 + lsls r2, r2, #1 + cmp r0, r2 + bne _08086D58 + movs r0, #2 + strb r0, [r3, #0xc] + adds r0, r3, #0 + bl sub_0805EC60 + ldr r2, _08086D50 @ =gUnk_02034350 + ldr r0, [r2, #0x68] + movs r1, #0x20 + orrs r0, r1 + str r0, [r2, #0x68] + ldr r2, _08086D54 @ =gUnk_02033280 + ldr r0, [r2] + movs r1, #4 + orrs r0, r1 + str r0, [r2] + b _08086D64 + .align 2, 0 +_08086D50: .4byte gUnk_02034350 +_08086D54: .4byte gUnk_02033280 +_08086D58: + movs r0, #0x24 + ldrsh r1, [r3, r0] + adds r0, r3, #0 + movs r3, #0 + bl sub_0805EC9C +_08086D64: + pop {pc} + .align 2, 0 + + thumb_func_start nullsub_116 +nullsub_116: @ 0x08086D68 + bx lr + .align 2, 0 + + thumb_func_start sub_08086D6C +sub_08086D6C: @ 0x08086D6C + push {lr} + ldr r2, _08086D80 @ =gUnk_08120734 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08086D80: .4byte gUnk_08120734 + + thumb_func_start sub_08086D84 +sub_08086D84: @ 0x08086D84 + push {r4, lr} + adds r4, r0, #0 + bl sub_08087380 + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + adds r4, #0x29 + ldrb r1, [r4] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #6 + orrs r0, r1 + strb r0, [r4] + pop {r4, pc} + + thumb_func_start sub_08086DAC +sub_08086DAC: @ 0x08086DAC + push {lr} + bl sub_08004274 + pop {pc} + + thumb_func_start sub_08086DB4 +sub_08086DB4: @ 0x08086DB4 + push {lr} + ldr r2, _08086DC8 @ =gGreatFairyWake + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08086DC8: .4byte gGreatFairyWake + + thumb_func_start sub_08086DCC +sub_08086DCC: @ 0x08086DCC + push {r4, r5, lr} + adds r5, r0, #0 + movs r1, #4 + movs r2, #0 + bl sub_080873AC + adds r4, r0, #0 + cmp r4, #0 + beq _08086E00 + adds r0, r5, #0 + adds r1, r4, #0 + bl CopyPosition + str r5, [r4, #0x50] + adds r0, r5, #0 + bl sub_08087380 + ldrb r1, [r5, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r5, #0x18] + movs r0, #0 + strb r0, [r5, #0xf] +_08086E00: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08086E04 +sub_08086E04: @ 0x08086E04 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + ldr r0, [r4, #0x34] + ldr r1, _08086E2C @ =0xFFFF8000 + adds r0, r0, r1 + str r0, [r4, #0x34] + movs r0, #0x36 + ldrsh r1, [r4, r0] + movs r0, #0x14 + rsbs r0, r0, #0 + cmp r1, r0 + bne _08086E34 + movs r0, #2 + strb r0, [r4, #0xc] + ldr r0, _08086E30 @ =0x00000141 + bl PlaySFX + b _08086E62 + .align 2, 0 +_08086E2C: .4byte 0xFFFF8000 +_08086E30: .4byte 0x00000141 +_08086E34: + movs r0, #0xa + rsbs r0, r0, #0 + cmp r1, r0 + bne _08086E62 + ldrb r0, [r4, #0xf] + cmp r0, #0 + bne _08086E62 + adds r0, r4, #0 + movs r1, #5 + movs r2, #0 + bl sub_080873AC + adds r1, r0, #0 + cmp r1, #0 + beq _08086E62 + movs r3, #0x80 + lsls r3, r3, #0xb + adds r0, r4, #0 + movs r2, #0 + bl PositionRelative + movs r0, #1 + strb r0, [r4, #0xf] +_08086E62: + pop {r4, pc} + + thumb_func_start sub_08086E64 +sub_08086E64: @ 0x08086E64 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + bl sub_080873D0 + ldr r0, _08086E88 @ =gUnk_02034350 + ldr r0, [r0, #0x68] + movs r1, #1 + ands r0, r1 + cmp r0, #0 + beq _08086E84 + adds r0, r4, #0 + bl sub_0805E7BC +_08086E84: + pop {r4, pc} + .align 2, 0 +_08086E88: .4byte gUnk_02034350 + + thumb_func_start sub_08086E8C +sub_08086E8C: @ 0x08086E8C + push {lr} + ldr r2, _08086EA0 @ =gGreatFairyMiniAnim + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08086EA0: .4byte gGreatFairyMiniAnim + + thumb_func_start sub_08086EA4 +sub_08086EA4: @ 0x08086EA4 + push {r4, lr} + adds r4, r0, #0 + bl sub_08087380 + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #6 + orrs r0, r1 + strb r0, [r2] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08086ED0 +sub_08086ED0: @ 0x08086ED0 + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x50] + adds r1, r4, #0 + bl CopyPosition + movs r0, #0x36 + ldrsh r1, [r4, r0] + movs r0, #0x14 + rsbs r0, r0, #0 + cmp r1, r0 + bne _08086F0C + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #0x5a + strb r0, [r4, #0xe] + movs r0, #0x80 + lsls r0, r0, #5 + strh r0, [r4, #0x24] + ldrb r0, [r4, #0x19] + movs r1, #3 + orrs r0, r1 + strb r0, [r4, #0x19] + movs r2, #0x80 + lsls r2, r2, #1 + adds r0, r4, #0 + adds r1, r2, #0 + movs r3, #0 + bl sub_0805EC9C +_08086F0C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08086F10 +sub_08086F10: @ 0x08086F10 + push {lr} + adds r3, r0, #0 + ldrb r0, [r3, #0xe] + subs r0, #1 + strb r0, [r3, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08086F3C + ldr r2, _08086F38 @ =gUnk_02034350 + ldr r0, [r2, #0x68] + movs r1, #1 + orrs r0, r1 + str r0, [r2, #0x68] + movs r0, #3 + strb r0, [r3, #0xc] + adds r0, r3, #0 + bl sub_0805EC60 + b _08086F52 + .align 2, 0 +_08086F38: .4byte gUnk_02034350 +_08086F3C: + ldrh r2, [r3, #0x24] + subs r2, #0x18 + strh r2, [r3, #0x24] + movs r1, #0x80 + lsls r1, r1, #1 + lsls r2, r2, #0x10 + asrs r2, r2, #0x14 + adds r0, r3, #0 + movs r3, #0 + bl sub_0805EC9C +_08086F52: + pop {pc} + + thumb_func_start sub_08086F54 +sub_08086F54: @ 0x08086F54 + push {lr} + ldr r2, _08086F68 @ =gGreatFairyDrip + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08086F68: .4byte gGreatFairyDrip + + thumb_func_start sub_08086F6C +sub_08086F6C: @ 0x08086F6C + push {r4, lr} + adds r4, r0, #0 + bl sub_08087380 + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + movs r0, #0 + strh r0, [r4, #0x36] + adds r4, #0x29 + ldrb r1, [r4] + subs r0, #8 + ands r0, r1 + movs r1, #5 + orrs r0, r1 + strb r0, [r4] + movs r0, #0xa0 + lsls r0, r0, #1 + bl PlaySFX + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08086FA0 +sub_08086FA0: @ 0x08086FA0 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08086FBC + adds r0, r4, #0 + bl sub_0805E7BC +_08086FBC: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08086FC0 +sub_08086FC0: @ 0x08086FC0 + push {lr} + ldr r2, _08086FD4 @ =gGreatFairyRipple + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08086FD4: .4byte gGreatFairyRipple + + thumb_func_start sub_08086FD8 +sub_08086FD8: @ 0x08086FD8 + push {r4, lr} + adds r4, r0, #0 + bl sub_08087380 + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + adds r4, #0x29 + ldrb r1, [r4] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #6 + orrs r0, r1 + strb r0, [r4] + pop {r4, pc} + + thumb_func_start sub_08087000 +sub_08087000: @ 0x08087000 + push {lr} + adds r2, r0, #0 + ldr r0, _08087018 @ =gUnk_02034350 + ldr r0, [r0, #0x68] + movs r1, #2 + ands r0, r1 + cmp r0, #0 + beq _0808701C + adds r0, r2, #0 + bl sub_0805E7BC + b _08087022 + .align 2, 0 +_08087018: .4byte gUnk_02034350 +_0808701C: + adds r0, r2, #0 + bl sub_08004274 +_08087022: + pop {pc} + + thumb_func_start sub_08087024 +sub_08087024: @ 0x08087024 + push {lr} + ldr r2, _08087038 @ =gGreatFairyBigRipple + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08087038: .4byte gGreatFairyBigRipple + + thumb_func_start sub_0808703C +sub_0808703C: @ 0x0808703C + push {r4, lr} + adds r4, r0, #0 + bl sub_08087380 + movs r0, #0x78 + strb r0, [r4, #0xe] + ldrb r1, [r4, #0x18] + subs r0, #0x7c + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + adds r4, #0x29 + ldrb r1, [r4] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #5 + orrs r0, r1 + strb r0, [r4] + movs r0, #0xf9 + bl PlaySFX + pop {r4, pc} + + thumb_func_start sub_0808706C +sub_0808706C: @ 0x0808706C + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _08087080 + subs r0, #1 + strb r0, [r4, #0xe] + b _080870AA +_08087080: + adds r0, r4, #0 + movs r1, #3 + movs r2, #0 + bl sub_080873AC + adds r1, r0, #0 + cmp r1, #0 + beq _080870AA + ldr r3, _080870AC @ =0xFFF80000 + adds r0, r4, #0 + movs r2, #0 + bl PositionRelative + ldr r2, _080870B0 @ =gUnk_02034350 + ldr r0, [r2, #0x68] + movs r1, #2 + orrs r0, r1 + str r0, [r2, #0x68] + adds r0, r4, #0 + bl sub_0805E7BC +_080870AA: + pop {r4, pc} + .align 2, 0 +_080870AC: .4byte 0xFFF80000 +_080870B0: .4byte gUnk_02034350 + + thumb_func_start sub_080870B4 +sub_080870B4: @ 0x080870B4 + push {lr} + ldr r2, _080870C8 @ =gGreatFairyEnergy + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080870C8: .4byte gGreatFairyEnergy + + thumb_func_start sub_080870CC +sub_080870CC: @ 0x080870CC + push {r4, lr} + adds r4, r0, #0 + bl sub_08087380 + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + adds r4, #0x29 + ldrb r1, [r4] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #5 + orrs r0, r1 + strb r0, [r4] + pop {r4, pc} + + thumb_func_start sub_080870F4 +sub_080870F4: @ 0x080870F4 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08087110 + adds r0, r4, #0 + bl sub_0805E7BC +_08087110: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08087114 +sub_08087114: @ 0x08087114 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xb] + cmp r0, #0 + bne _08087134 + ldr r0, _08087130 @ =gGreatFairyInteract1 + ldrb r1, [r4, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + b _0808714A + .align 2, 0 +_08087130: .4byte gGreatFairyInteract1 +_08087134: + ldr r0, _0808714C @ =gGreatFairyInteract2 + ldrb r1, [r4, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + adds r0, r4, #0 + bl sub_08004274 +_0808714A: + pop {r4, pc} + .align 2, 0 +_0808714C: .4byte gGreatFairyInteract2 + + thumb_func_start sub_08087150 +sub_08087150: @ 0x08087150 + push {r4, lr} + adds r4, r0, #0 + bl sub_08087380 + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + ldrb r2, [r4, #0x1b] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r2 + strb r0, [r4, #0x1b] + ldrb r0, [r4, #0x19] + ands r1, r0 + strb r1, [r4, #0x19] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #3 + orrs r0, r1 + strb r0, [r2] + movs r0, #0x80 + strh r0, [r4, #0x24] + movs r0, #0x10 + strb r0, [r4, #0x15] + ldr r0, _080871A0 @ =gUnk_0812079C + ldrb r0, [r0] + movs r1, #0xf + ands r1, r0 + lsls r0, r0, #4 + orrs r0, r1 + strb r0, [r4, #0x1a] + pop {r4, pc} + .align 2, 0 +_080871A0: .4byte gUnk_0812079C + + thumb_func_start nullsub_516 +nullsub_516: @ 0x080871A4 + bx lr + .align 2, 0 + + thumb_func_start sub_080871A8 +sub_080871A8: @ 0x080871A8 + push {lr} + adds r1, r0, #0 + ldrb r0, [r1, #0xe] + subs r0, #1 + strb r0, [r1, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080871CA + movs r0, #3 + strb r0, [r1, #0xc] + movs r0, #0x3c + strb r0, [r1, #0xe] + ldr r2, _080871CC @ =gUnk_02034350 + ldr r0, [r2, #0x68] + movs r1, #4 + orrs r0, r1 + str r0, [r2, #0x68] +_080871CA: + pop {pc} + .align 2, 0 +_080871CC: .4byte gUnk_02034350 + + thumb_func_start sub_080871D0 +sub_080871D0: @ 0x080871D0 + push {lr} + adds r3, r0, #0 + ldrb r0, [r3, #0xe] + subs r0, #1 + strb r0, [r3, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080871F0 + ldr r0, _080871F4 @ =gUnk_02034350 + ldr r1, [r0, #0x68] + movs r2, #8 + orrs r1, r2 + str r1, [r0, #0x68] + adds r0, r3, #0 + bl sub_0805E7BC +_080871F0: + pop {pc} + .align 2, 0 +_080871F4: .4byte gUnk_02034350 + + thumb_func_start sub_080871F8 +sub_080871F8: @ 0x080871F8 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r3, [r4, #0x54] + movs r0, #0x2e + ldrsh r1, [r3, r0] + movs r2, #0x2e + ldrsh r0, [r4, r2] + cmp r1, r0 + bne _0808721E + movs r5, #0x32 + ldrsh r0, [r3, r5] + subs r0, #0x20 + movs r2, #0x32 + ldrsh r1, [r4, r2] + cmp r0, r1 + bne _0808721E + movs r0, #2 + strb r0, [r4, #0xc] + b _0808723C +_0808721E: + movs r5, #0x2e + ldrsh r0, [r4, r5] + movs r2, #0x32 + ldrsh r1, [r4, r2] + movs r5, #0x2e + ldrsh r2, [r3, r5] + movs r5, #0x32 + ldrsh r3, [r3, r5] + subs r3, #0x20 + bl sub_080045D4 + strb r0, [r4, #0x15] + adds r0, r4, #0 + bl sub_0806F69C +_0808723C: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08087240 +sub_08087240: @ 0x08087240 + push {lr} + adds r2, r0, #0 + ldr r0, _08087260 @ =gUnk_02034350 + ldr r0, [r0, #0x68] + movs r1, #4 + ands r0, r1 + cmp r0, #0 + beq _0808725C + movs r0, #3 + strb r0, [r2, #0xc] + movs r0, #0x14 + strb r0, [r2, #0xe] + movs r0, #0x10 + strb r0, [r2, #0x15] +_0808725C: + pop {pc} + .align 2, 0 +_08087260: .4byte gUnk_02034350 + + thumb_func_start sub_08087264 +sub_08087264: @ 0x08087264 + push {lr} + adds r1, r0, #0 + ldrb r0, [r1, #0xe] + cmp r0, #0 + beq _08087278 + subs r0, #1 + strb r0, [r1, #0xe] + adds r0, r1, #0 + bl sub_0806F69C +_08087278: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0808727C +sub_0808727C: @ 0x0808727C + push {lr} + adds r1, r0, #0 + ldrb r0, [r1, #0xe] + subs r0, #1 + strb r0, [r1, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08087292 + adds r0, r1, #0 + bl sub_0805E7BC +_08087292: + pop {pc} + + thumb_func_start sub_08087294 +sub_08087294: @ 0x08087294 + push {lr} + ldr r2, _080872A8 @ =gUnk_081207A4 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080872A8: .4byte gUnk_081207A4 + + thumb_func_start sub_080872AC +sub_080872AC: @ 0x080872AC + push {r4, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + ldrb r1, [r4, #0x1b] + movs r2, #0x3f + adds r0, r2, #0 + ands r0, r1 + movs r1, #0x40 + orrs r0, r1 + strb r0, [r4, #0x1b] + ldrb r0, [r4, #0x19] + ands r2, r0 + strb r2, [r4, #0x19] + ldrh r1, [r4, #0x2e] + adds r0, r4, #0 + adds r0, #0x68 + strh r1, [r0] + ldrh r0, [r4, #0x32] + adds r1, r4, #0 + adds r1, #0x6a + strh r0, [r1] + bl Random + movs r1, #0x1f + ands r0, r1 + strb r0, [r4, #0x15] + movs r0, #0x20 + strh r0, [r4, #0x24] + adds r0, r4, #0 + bl sub_08087380 + pop {r4, pc} + + thumb_func_start sub_080872F8 +sub_080872F8: @ 0x080872F8 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_0806F69C + adds r0, r4, #0 + bl sub_08004274 + adds r2, r4, #0 + adds r2, #0x68 + ldrh r0, [r2] + ldrh r1, [r4, #0x2e] + subs r0, r0, r1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0xc + bhi _0808732A + adds r0, r4, #0 + adds r0, #0x6a + ldrh r0, [r0] + ldrh r1, [r4, #0x32] + subs r0, r0, r1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0xc + bls _0808735C +_0808732A: + movs r1, #0x2e + ldrsh r0, [r4, r1] + movs r3, #0x32 + ldrsh r1, [r4, r3] + movs r5, #0 + ldrsh r2, [r2, r5] + adds r3, r4, #0 + adds r3, #0x6a + movs r5, #0 + ldrsh r3, [r3, r5] + bl sub_080045D4 + strb r0, [r4, #0x15] + bl Random + ldr r2, _08087378 @ =gUnk_081207AC + movs r1, #3 + ands r1, r0 + adds r1, r1, r2 + ldrb r0, [r1] + ldrb r1, [r4, #0x15] + adds r0, r0, r1 + movs r1, #0x1f + ands r0, r1 + strb r0, [r4, #0x15] +_0808735C: + ldr r1, _0808737C @ =gUnk_080C9160 + ldrb r0, [r4, #0xe] + adds r0, #0x40 + lsls r0, r0, #1 + adds r0, r0, r1 + movs r3, #0 + ldrsh r0, [r0, r3] + asrs r0, r0, #6 + subs r0, #8 + strh r0, [r4, #0x36] + ldrb r0, [r4, #0xe] + adds r0, #1 + strb r0, [r4, #0xe] + pop {r4, r5, pc} + .align 2, 0 +_08087378: .4byte gUnk_081207AC +_0808737C: .4byte gUnk_080C9160 + + thumb_func_start sub_08087380 +sub_08087380: @ 0x08087380 + push {r4, lr} + adds r4, r0, #0 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r0, [r4, #0xa] + movs r1, #0xb + bl __modsi3 + strb r0, [r4, #0xb] + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #2 + strb r0, [r1] + ldrb r1, [r4, #0xb] + adds r0, r4, #0 + bl UpdateSprite + adds r0, r4, #0 + movs r1, #2 + bl sub_0805E3A0 + pop {r4, pc} + + thumb_func_start sub_080873AC +sub_080873AC: @ 0x080873AC + push {r4, r5, r6, lr} + adds r5, r1, #0 + adds r6, r2, #0 + ldrb r0, [r0, #0xa] + movs r4, #0xb + movs r1, #0xb + bl __divsi3 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r1, r0, #0 + muls r1, r4, r1 + adds r1, r1, r5 + movs r0, #0x1b + adds r2, r6, #0 + bl CreateObject + pop {r4, r5, r6, pc} + + thumb_func_start sub_080873D0 +sub_080873D0: @ 0x080873D0 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _080873DE + subs r0, #1 + b _080873F6 +_080873DE: + adds r0, r4, #0 + movs r1, #8 + movs r2, #0 + bl sub_080873AC + adds r1, r0, #0 + cmp r1, #0 + beq _080873F8 + adds r0, r4, #0 + bl CopyPosition + movs r0, #0x30 +_080873F6: + strb r0, [r4, #0xe] +_080873F8: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080873FC +sub_080873FC: @ 0x080873FC + push {lr} + movs r0, #0xf7 + bl PlaySFX + ldr r1, _0808740C @ =gRoomControls + movs r0, #0 + str r0, [r1, #0x30] + b _08087414 + .align 2, 0 +_0808740C: .4byte gRoomControls +_08087410: + bl sub_0805E7BC +_08087414: + movs r0, #6 + movs r1, #0x1b + movs r2, #6 + bl sub_0805EB00 + cmp r0, #0 + bne _08087410 + pop {pc} + + thumb_func_start sub_08087424 +sub_08087424: @ 0x08087424 + push {r4, r5, lr} + adds r5, r1, #0 + bl sub_080791D0 + movs r0, #0x64 + movs r1, #0 + movs r2, #0 + bl CreateObject + adds r4, r0, #0 + cmp r4, #0 + beq _0808744E + ldr r0, _0808745C @ =gLinkEntity + str r0, [r4, #0x50] + adds r1, r4, #0 + bl CopyPosition + adds r0, r4, #0 + movs r1, #2 + bl sub_0805E3A0 +_0808744E: + ldr r1, [r5, #4] + cmp r1, #0 + beq _08087460 + cmp r1, #1 + beq _0808746C + b _08087474 + .align 2, 0 +_0808745C: .4byte gLinkEntity +_08087460: + ldr r0, _08087468 @ =gUnk_02002A40 + adds r0, #0xad + b _08087472 + .align 2, 0 +_08087468: .4byte gUnk_02002A40 +_0808746C: + ldr r0, _08087478 @ =gUnk_02002A40 + adds r0, #0xac + movs r1, #0 +_08087472: + strb r1, [r0] +_08087474: + pop {r4, r5, pc} + .align 2, 0 +_08087478: .4byte gUnk_02002A40 + + thumb_func_start sub_0808747C +sub_0808747C: @ 0x0808747C + push {r4, lr} + sub sp, #4 + adds r4, r1, #0 + movs r0, #0 + str r0, [sp] + movs r0, #6 + movs r1, #0xf + movs r2, #6 + movs r3, #0xb + bl sub_0805EB2C + cmp r0, #0 + beq _08087498 + movs r0, #1 +_08087498: + str r0, [r4, #0x14] + add sp, #4 + pop {r4, pc} + .align 2, 0 \ No newline at end of file diff --git a/asm/gregal.s b/asm/gregal.s index 548a1922..40abb6b3 100644 --- a/asm/gregal.s +++ b/asm/gregal.s @@ -227,7 +227,7 @@ _0806CC80: b _0806CCB0 _0806CC96: adds r0, r4, #0 - bl sub_0806F148 + bl UpdateFuseInteraction cmp r0, #0 beq _0806CCB0 movs r0, #1 diff --git a/asm/hurdyGurdyMan.s b/asm/hurdyGurdyMan.s index bae19a9f..c8995a07 100644 --- a/asm/hurdyGurdyMan.s +++ b/asm/hurdyGurdyMan.s @@ -98,7 +98,7 @@ _0806E3BC: b _0806E3E0 _0806E3C6: adds r0, r4, #0 - bl sub_0806F148 + bl UpdateFuseInteraction cmp r0, #0 beq _0806E3E0 movs r0, #1 diff --git a/asm/kid.s b/asm/kid.s index 5e771a39..6abfdce4 100644 --- a/asm/kid.s +++ b/asm/kid.s @@ -291,7 +291,7 @@ _080622CC: _080622E0: .4byte gTextBox _080622E4: adds r0, r4, #0 - bl sub_0806F148 + bl UpdateFuseInteraction cmp r0, #0 beq _080622F2 _080622EE: @@ -912,27 +912,27 @@ sub_08062788: @ 0x08062788 ldr r1, _080627D0 @ =0x0000060B adds r0, r4, #0 movs r2, #1 - bl sub_0800015E + bl UpdateCollisionLayer ldr r1, _080627D4 @ =0x0000060C adds r0, r4, #0 movs r2, #1 - bl sub_0800015E + bl UpdateCollisionLayer ldr r1, _080627D8 @ =0x0000060D adds r0, r4, #0 movs r2, #1 - bl sub_0800015E + bl UpdateCollisionLayer ldr r1, _080627DC @ =0x0000064B adds r0, r4, #0 movs r2, #1 - bl sub_0800015E + bl UpdateCollisionLayer ldr r1, _080627E0 @ =0x0000064C adds r0, r4, #0 movs r2, #1 - bl sub_0800015E + bl UpdateCollisionLayer ldr r1, _080627E4 @ =0x0000064D adds r0, r4, #0 movs r2, #1 - bl sub_0800015E + bl UpdateCollisionLayer pop {r4, pc} .align 2, 0 _080627CC: .4byte 0x00004072 diff --git a/asm/kingDaltus.s b/asm/kingDaltus.s index e4773038..ea52b762 100644 --- a/asm/kingDaltus.s +++ b/asm/kingDaltus.s @@ -173,7 +173,7 @@ sub_0806670C: @ 0x0806670C sub_08066718: @ 0x08066718 push {r4, lr} adds r4, r0, #0 - bl sub_0806F148 + bl UpdateFuseInteraction cmp r0, #0 beq _08066728 movs r0, #1 diff --git a/asm/librari.s b/asm/librari.s index ebfa9159..4db43c87 100644 --- a/asm/librari.s +++ b/asm/librari.s @@ -72,7 +72,7 @@ _0806B238: b _0806B25C _0806B24E: adds r0, r4, #0 - bl sub_0806F148 + bl UpdateFuseInteraction cmp r0, #0 beq _0806B25C movs r0, #1 diff --git a/asm/mailbox.s b/asm/mailbox.s deleted file mode 100644 index 275e78d6..00000000 --- a/asm/mailbox.s +++ /dev/null @@ -1,118 +0,0 @@ - .include "asm/macros.inc" - - .include "constants/constants.inc" - - .syntax unified - - .text - - - thumb_func_start sub_080631E8 -sub_080631E8: @ 0x080631E8 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _0806320C @ =gUnk_0810C804 - ldrb r0, [r4, #0xc] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - ldrb r0, [r4, #0xc] - cmp r0, #0 - beq _08063208 - adds r0, r4, #0 - bl sub_0806ED78 -_08063208: - pop {r4, pc} - .align 2, 0 -_0806320C: .4byte gUnk_0810C804 - - thumb_func_start sub_08063210 -sub_08063210: @ 0x08063210 - push {lr} - movs r1, #1 - strb r1, [r0, #0xc] - movs r1, #0 - bl LoadAnimation - pop {pc} - .align 2, 0 - - thumb_func_start sub_08063220 -sub_08063220: @ 0x08063220 - push {lr} - adds r2, r0, #0 - adds r0, #0x39 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - beq _08063238 - movs r0, #2 - strb r0, [r2, #0xc] - movs r1, #8 - b _0806323A -_08063238: - movs r1, #0 -_0806323A: - adds r0, r2, #0 - adds r0, #0x58 - ldrb r0, [r0] - cmp r0, r1 - beq _0806324C - adds r0, r2, #0 - bl LoadAnimation - b _08063252 -_0806324C: - adds r0, r2, #0 - bl sub_08063280 -_08063252: - pop {pc} - - thumb_func_start sub_08063254 -sub_08063254: @ 0x08063254 - push {r4, lr} - adds r4, r0, #0 - bl sub_08063280 - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08063274 - movs r0, #3 - strb r0, [r4, #0xc] - movs r0, #0 - bl TextboxTryNoOverlap -_08063274: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08063278 -sub_08063278: @ 0x08063278 - push {lr} - bl sub_08063280 - pop {pc} - - thumb_func_start sub_08063280 -sub_08063280: @ 0x08063280 - push {r4, lr} - adds r4, r0, #0 - bl sub_080042B8 - adds r3, r4, #0 - adds r3, #0x5a - ldrb r2, [r3] - movs r1, #0x7f - ands r1, r2 - adds r0, r1, #0 - eors r0, r2 - strb r0, [r3] - cmp r1, #2 - bne _080632A6 - adds r0, r4, #0 - movs r1, #0x31 - movs r2, #0 - bl CreateFX -_080632A6: - pop {r4, pc} diff --git a/asm/malon.s b/asm/malon.s index b6840d5d..d9d7fed5 100644 --- a/asm/malon.s +++ b/asm/malon.s @@ -129,7 +129,7 @@ _080658FC: sub_08065900: @ 0x08065900 push {r4, lr} adds r4, r0, #0 - bl sub_0806F148 + bl UpdateFuseInteraction cmp r0, #0 beq _08065910 movs r0, #1 diff --git a/asm/mama.s b/asm/mama.s index 44aaeccc..ae19799f 100644 --- a/asm/mama.s +++ b/asm/mama.s @@ -83,7 +83,7 @@ _0806C420: b _0806C450 _0806C436: adds r0, r4, #0 - bl sub_0806F148 + bl UpdateFuseInteraction cmp r0, #0 beq _0806C450 movs r0, #1 diff --git a/asm/mayorHagen.s b/asm/mayorHagen.s index 0ce6a4f2..d1d31a14 100644 --- a/asm/mayorHagen.s +++ b/asm/mayorHagen.s @@ -80,7 +80,7 @@ _0806CE28: b _0806CE58 _0806CE3E: adds r0, r4, #0 - bl sub_0806F148 + bl UpdateFuseInteraction cmp r0, #0 beq _0806CE58 movs r0, #1 diff --git a/asm/melari.s b/asm/melari.s index 9bbccef1..e64fb09c 100644 --- a/asm/melari.s +++ b/asm/melari.s @@ -161,7 +161,7 @@ _080687EA: b _0806880E _08068800: adds r0, r5, #0 - bl sub_0806F148 + bl UpdateFuseInteraction cmp r0, #0 beq _0806880E movs r0, #1 @@ -205,7 +205,7 @@ _0806885E: adds r0, r5, #0 movs r1, #0x3d movs r2, #0x20 - bl CreateFX + bl CreateFx adds r1, r0, #0 cmp r1, #0 beq _0806887A diff --git a/asm/ministerPotho.s b/asm/ministerPotho.s index 558624e0..8adc1ea9 100644 --- a/asm/ministerPotho.s +++ b/asm/ministerPotho.s @@ -168,7 +168,7 @@ _080668D4: b _080668EC _080668DE: adds r0, r4, #0 - bl sub_0806F148 + bl UpdateFuseInteraction cmp r0, #0 beq _080668EC movs r0, #1 diff --git a/asm/mountainMinish.s b/asm/mountainMinish.s index 005125cb..bba15ae5 100644 --- a/asm/mountainMinish.s +++ b/asm/mountainMinish.s @@ -245,7 +245,7 @@ _08067FF2: _08067FFC: .4byte gTextBox _08068000: adds r0, r5, #0 - bl sub_0806F148 + bl UpdateFuseInteraction cmp r0, #0 beq _0806801A movs r0, #1 @@ -312,7 +312,7 @@ _0806807E: adds r0, r5, #0 movs r1, #4 movs r2, #0 - bl CreateFX + bl CreateFx adds r1, r0, #0 cmp r1, #0 beq _080680A8 @@ -332,7 +332,7 @@ _080680A8: adds r0, r5, #0 movs r1, #0x3d movs r2, #0x20 - bl CreateFX + bl CreateFx adds r1, r0, #0 cmp r1, #0 beq _080680D2 diff --git a/asm/mutoh.s b/asm/mutoh.s index b33971a1..48d686e3 100644 --- a/asm/mutoh.s +++ b/asm/mutoh.s @@ -81,7 +81,7 @@ _08067064: b _0806707C _0806706E: adds r0, r4, #0 - bl sub_0806F148 + bl UpdateFuseInteraction cmp r0, #0 beq _0806707C movs r0, #1 diff --git a/asm/nayru.s b/asm/nayru.s index 1ab88c72..8d1fa7cb 100644 --- a/asm/nayru.s +++ b/asm/nayru.s @@ -69,7 +69,7 @@ _08064900: b _08064924 _0806490A: adds r0, r4, #0 - bl sub_0806F148 + bl UpdateFuseInteraction cmp r0, #0 beq _08064924 movs r0, #1 diff --git a/asm/percy.s b/asm/percy.s index 5d61588f..141f7578 100644 --- a/asm/percy.s +++ b/asm/percy.s @@ -101,7 +101,7 @@ _0806B436: adds r0, r4, #0 movs r1, #0x25 movs r2, #0 - bl CreateFX + bl CreateFx _0806B462: adds r0, r4, #0 bl sub_0807DD50 @@ -160,7 +160,7 @@ _0806B4D4: b _0806B4EC _0806B4DE: adds r0, r4, #0 - bl sub_0806F148 + bl UpdateFuseInteraction cmp r0, #0 beq _0806B4EC movs r0, #1 diff --git a/asm/pina.s b/asm/pina.s index 2d81625a..f8299efa 100644 --- a/asm/pina.s +++ b/asm/pina.s @@ -216,7 +216,7 @@ _08063BE0: b _08063C10 _08063BF6: adds r0, r4, #0 - bl sub_0806F148 + bl UpdateFuseInteraction cmp r0, #0 beq _08063C10 movs r0, #1 diff --git a/asm/postman.s b/asm/postman.s index 04ddd907..612346a1 100644 --- a/asm/postman.s +++ b/asm/postman.s @@ -150,7 +150,7 @@ sub_080604DC: @ 0x080604DC adds r0, r5, #0 movs r1, #0x11 movs r2, #0x40 - bl CreateFX + bl CreateFx adds r1, r0, #0 cmp r1, #0 beq _08060524 @@ -283,7 +283,7 @@ _08060618: adds r0, r4, #0 bl sub_080042B8 adds r0, r4, #0 - bl sub_0806F148 + bl UpdateFuseInteraction adds r5, r4, #0 adds r5, #0x6a adds r6, r4, #0 diff --git a/asm/sittingPerson.s b/asm/sittingPerson.s index 71ef61a6..2daa1b91 100644 --- a/asm/sittingPerson.s +++ b/asm/sittingPerson.s @@ -133,7 +133,7 @@ _0806382E: sub_08063830: @ 0x08063830 push {r4, lr} adds r4, r0, #0 - bl sub_0806F148 + bl UpdateFuseInteraction cmp r0, #0 beq _0806384C movs r0, #1 diff --git a/asm/smith.s b/asm/smith.s index 0d8dae74..32d64c30 100644 --- a/asm/smith.s +++ b/asm/smith.s @@ -106,7 +106,7 @@ _0806606E: adds r0, r4, #0 movs r1, #0x3d movs r2, #0x20 - bl CreateFX + bl CreateFx ldr r4, _080660A4 @ =gUnk_08110380 bl Random movs r1, #7 @@ -319,7 +319,7 @@ sub_08066200: @ 0x08066200 sub_08066218: @ 0x08066218 push {r4, lr} adds r4, r0, #0 - bl sub_0806F148 + bl UpdateFuseInteraction cmp r0, #0 beq _08066228 movs r0, #1 diff --git a/asm/stamp.s b/asm/stamp.s deleted file mode 100644 index ee1ea2b1..00000000 --- a/asm/stamp.s +++ /dev/null @@ -1,190 +0,0 @@ - .include "asm/macros.inc" - - .include "constants/constants.inc" - - .syntax unified - - .text - - - thumb_func_start sub_08062B98 -sub_08062B98: @ 0x08062B98 - push {lr} - adds r2, r0, #0 - ldrb r1, [r2, #0x10] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _08062BBC - ldr r0, _08062BB8 @ =gUnk_0810C2DC - ldrb r1, [r2, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r2, #0 - bl _call_via_r1 - b _08062BCC - .align 2, 0 -_08062BB8: .4byte gUnk_0810C2DC -_08062BBC: - ldr r0, _08062BD0 @ =gUnk_0810C2CC - ldrb r1, [r2, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r2, #0 - bl _call_via_r1 -_08062BCC: - pop {pc} - .align 2, 0 -_08062BD0: .4byte gUnk_0810C2CC - - thumb_func_start sub_08062BD4 -sub_08062BD4: @ 0x08062BD4 - push {r4, lr} - adds r4, r0, #0 - movs r2, #1 - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - subs r0, #5 - ands r0, r1 - orrs r0, r2 - strb r0, [r4, #0x18] - adds r0, r4, #0 - movs r1, #0 - bl UpdateSprite - adds r0, r4, #0 - bl sub_08078778 - pop {r4, pc} - - thumb_func_start sub_08062BF8 -sub_08062BF8: @ 0x08062BF8 - push {r4, lr} - adds r4, r0, #0 - bl sub_08004274 - adds r1, r4, #0 - adds r1, #0x39 - movs r0, #0 - ldrsb r0, [r1, r0] - cmp r0, #0 - beq _08062C1C - movs r0, #0 - strb r0, [r1] - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - bl sub_0805E47C -_08062C1C: - adds r0, r4, #0 - bl sub_0806ED78 - pop {r4, pc} - - thumb_func_start sub_08062C24 -sub_08062C24: @ 0x08062C24 - push {r4, lr} - adds r4, r0, #0 - bl sub_08004274 - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08062C4E - adds r0, r4, #0 - movs r1, #4 - bl UpdateSprite - ldr r0, _08062C50 @ =0x00000A01 - bl TextboxTryNoOverlap - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] -_08062C4E: - pop {r4, pc} - .align 2, 0 -_08062C50: .4byte 0x00000A01 - - thumb_func_start sub_08062C54 -sub_08062C54: @ 0x08062C54 - push {r4, lr} - adds r4, r0, #0 - ldr r0, _08062C78 @ =gTextBox - ldrb r1, [r0] - movs r0, #0x7f - ands r0, r1 - cmp r0, #0 - bne _08062C76 - movs r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #0 - bl UpdateSprite - adds r0, r4, #0 - bl sub_0805E584 -_08062C76: - pop {r4, pc} - .align 2, 0 -_08062C78: .4byte gTextBox - - thumb_func_start sub_08062C7C -sub_08062C7C: @ 0x08062C7C - push {r4, lr} - adds r4, r0, #0 - movs r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - bl sub_0807DD64 - adds r0, r4, #0 - movs r1, #0 - bl UpdateSprite - adds r0, r4, #0 - movs r1, #0x25 - movs r2, #0 - bl CreateFX - adds r0, r4, #0 - bl sub_08062CA4 - pop {r4, pc} - - thumb_func_start sub_08062CA4 -sub_08062CA4: @ 0x08062CA4 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0 - bl sub_0807DDAC - adds r0, r4, #0 - bl sub_0807DDE4 - adds r0, r4, #0 - bl sub_08004274 - pop {r4, pc} - - thumb_func_start sub_08062CBC -sub_08062CBC: @ 0x08062CBC - push {r4, lr} - adds r4, r0, #0 - movs r0, #0x2c - bl sub_0801E7F4 - rsbs r1, r0, #0 - orrs r1, r0 - lsrs r1, r1, #0x1f - lsls r1, r1, #3 - ldr r0, _08062CDC @ =gUnk_0810C2E4 - adds r1, r1, r0 - adds r0, r4, #0 - bl sub_0806F1AC - pop {r4, pc} - .align 2, 0 -_08062CDC: .4byte gUnk_0810C2E4 - - thumb_func_start sub_08062CE0 -sub_08062CE0: @ 0x08062CE0 - push {lr} - adds r1, r0, #0 - ldrb r0, [r1, #0xc] - cmp r0, #0 - bne _08062CEE - movs r0, #1 - strb r0, [r1, #0xc] -_08062CEE: - pop {pc} diff --git a/asm/sturgeon.s b/asm/sturgeon.s index ac2bc770..60430285 100644 --- a/asm/sturgeon.s +++ b/asm/sturgeon.s @@ -54,7 +54,7 @@ _08064AE4: cmp r3, #0 beq _08064B00 adds r0, r4, #0 - bl sub_0806F148 + bl UpdateFuseInteraction cmp r0, #0 beq _08064B42 movs r0, #1 @@ -233,7 +233,7 @@ _08064C4C: .4byte gTextBox sub_08064C50: @ 0x08064C50 push {r4, lr} adds r4, r0, #0 - bl sub_0806F148 + bl UpdateFuseInteraction cmp r0, #0 beq _08064C68 movs r0, #1 diff --git a/asm/talon.s b/asm/talon.s index 755a3c76..a7362fe4 100644 --- a/asm/talon.s +++ b/asm/talon.s @@ -187,7 +187,7 @@ _0806567E: sub_08065680: @ 0x08065680 push {r4, lr} adds r4, r0, #0 - bl sub_0806F148 + bl UpdateFuseInteraction cmp r0, #0 beq _080656A0 adds r0, r4, #0 diff --git a/asm/teachers.s b/asm/teachers.s index 15ef9bb7..a7db4037 100644 --- a/asm/teachers.s +++ b/asm/teachers.s @@ -92,7 +92,7 @@ _0806C64C: b _0806C670 _0806C656: adds r0, r5, #0 - bl sub_0806F148 + bl UpdateFuseInteraction cmp r0, #0 beq _0806C670 movs r0, #1 diff --git a/asm/tingleSiblings.s b/asm/tingleSiblings.s index 6fe639e0..e64d2c57 100644 --- a/asm/tingleSiblings.s +++ b/asm/tingleSiblings.s @@ -144,7 +144,7 @@ _08064E4C: b _08064E6A _08064E56: adds r0, r4, #0 - bl sub_0806F148 + bl UpdateFuseInteraction cmp r0, #0 beq _08064E6A movs r0, #1 @@ -169,7 +169,7 @@ _08064E6A: _08064E86: adds r0, r4, #0 movs r2, #0 - bl CreateFX + bl CreateFx adds r2, r0, #0 cmp r2, #0 beq _08064EA0 @@ -242,7 +242,7 @@ sub_08064EE8: @ 0x08064EE8 _08064F0C: adds r0, r4, #0 movs r2, #0 - bl CreateFX + bl CreateFx adds r2, r0, #0 cmp r2, #0 beq _08064F26 diff --git a/asm/townMinish.s b/asm/townMinish.s index d22421c6..212f7df9 100644 --- a/asm/townMinish.s +++ b/asm/townMinish.s @@ -277,7 +277,7 @@ _0806ADCE: _0806ADD8: .4byte gTextBox _0806ADDC: adds r0, r4, #0 - bl sub_0806F148 + bl UpdateFuseInteraction cmp r0, #0 beq _0806ADEA movs r0, #1 diff --git a/asm/townsperson.s b/asm/townsperson.s index 8f2a3698..a086875b 100644 --- a/asm/townsperson.s +++ b/asm/townsperson.s @@ -365,7 +365,7 @@ _08061E4C: .4byte gTextBox sub_08061E50: @ 0x08061E50 push {r4, lr} adds r4, r0, #0 - bl sub_0806F148 + bl UpdateFuseInteraction cmp r0, #0 beq _08061E6C movs r0, #1 @@ -544,7 +544,7 @@ sub_08061F94: @ 0x08061F94 adds r4, r0, #0 movs r1, #0x35 movs r2, #0 - bl CreateFX + bl CreateFx adds r1, r0, #0 cmp r1, #0 beq _08061FAC diff --git a/asm/windTribespeople.s b/asm/windTribespeople.s index 3220b81a..49a26321 100644 --- a/asm/windTribespeople.s +++ b/asm/windTribespeople.s @@ -124,7 +124,7 @@ _0806C858: .4byte gTextBox sub_0806C85C: @ 0x0806C85C push {r4, lr} adds r4, r0, #0 - bl sub_0806F148 + bl UpdateFuseInteraction cmp r0, #0 beq _0806C86C movs r0, #1 diff --git a/data/data_8.s b/data/data_8.s index b86cd054..4600c060 100644 --- a/data/data_8.s +++ b/data/data_8.s @@ -28417,10 +28417,10 @@ gUnk_0810C2A5:: @ 0810C2A5 gUnk_0810C2B2:: @ 0810C2B2 .incbin "baserom.gba", 0x10C2B2, 0x000001A -gUnk_0810C2CC:: @ 0810C2CC +gStampBehaviors1:: @ 0810C2CC .incbin "baserom.gba", 0x10C2CC, 0x0000010 -gUnk_0810C2DC:: @ 0810C2DC +gStampBehaviors2:: @ 0810C2DC .incbin "baserom.gba", 0x10C2DC, 0x0000008 gUnk_0810C2E4:: @ 0810C2E4 @@ -28567,7 +28567,7 @@ gUnk_0810C7C9:: @ 0810C7C9 gUnk_0810C7D4:: @ 0810C7D4 .incbin "baserom.gba", 0x10C7D4, 0x0000030 -gUnk_0810C804:: @ 0810C804 +gMailboxBehaviors:: @ 0810C804 .incbin "baserom.gba", 0x10C804, 0x0000010 gUnk_0810C814:: @ 0810C814 @@ -29521,7 +29521,7 @@ gUnk_081100E4:: @ 081100E4 gUnk_08110110:: @ 08110110 .incbin "baserom.gba", 0x110110, 0x0000008 -gUnk_08110118:: @ 08110118 +gMilkCartBehaviors:: @ 08110118 .incbin "baserom.gba", 0x110118, 0x0000008 gUnk_08110120:: @ 08110120 @@ -34027,43 +34027,43 @@ gUnk_081206B4:: @ 081206B4 gUnk_081206C4:: @ 081206C4 .incbin "baserom.gba", 0x1206C4, 0x000000C -gUnk_081206D0:: @ 081206D0 +gGreatFairy:: @ 081206D0 .incbin "baserom.gba", 0x1206D0, 0x000002C -gUnk_081206FC:: @ 081206FC +gGreatFairyBehaviors:: @ 081206FC .incbin "baserom.gba", 0x1206FC, 0x0000018 -gUnk_08120714:: @ 08120714 +gGreatFairyRippleOffsets:: @ 08120714 .incbin "baserom.gba", 0x120714, 0x0000014 -gUnk_08120728:: @ 08120728 +gGreatFairyWings:: @ 08120728 .incbin "baserom.gba", 0x120728, 0x000000C gUnk_08120734:: @ 08120734 .incbin "baserom.gba", 0x120734, 0x0000008 -gUnk_0812073C:: @ 0812073C +gGreatFairyWake:: @ 0812073C .incbin "baserom.gba", 0x12073C, 0x000000C -gUnk_08120748:: @ 08120748 +gGreatFairyMiniAnim:: @ 08120748 .incbin "baserom.gba", 0x120748, 0x0000010 -gUnk_08120758:: @ 08120758 +gGreatFairyDrip:: @ 08120758 .incbin "baserom.gba", 0x120758, 0x0000008 -gUnk_08120760:: @ 08120760 +gGreatFairyRipple:: @ 08120760 .incbin "baserom.gba", 0x120760, 0x0000008 -gUnk_08120768:: @ 08120768 +gGreatFairyBigRipple:: @ 08120768 .incbin "baserom.gba", 0x120768, 0x0000008 -gUnk_08120770:: @ 08120770 +gGreatFairyEnergy:: @ 08120770 .incbin "baserom.gba", 0x120770, 0x0000008 -gUnk_08120778:: @ 08120778 +gGreatFairyInteract1:: @ 08120778 .incbin "baserom.gba", 0x120778, 0x0000010 -gUnk_08120788:: @ 08120788 +gGreatFairyInteract2:: @ 08120788 .incbin "baserom.gba", 0x120788, 0x0000014 gUnk_0812079C:: @ 0812079C diff --git a/include/cutscene.h b/include/cutscene.h new file mode 100644 index 00000000..eb1d03d8 --- /dev/null +++ b/include/cutscene.h @@ -0,0 +1,16 @@ +#ifndef CUTSCENE_H +#define CUTSCENE_H + +#include "global.h" + +typedef struct { + u32 *cutsceneData; + u8 textIndex; + u8 filler[11]; + u16 pauseTime; + u8 filler[2]; + s32 targetX; + s32 targetY; +} CutsceneBehavior; + +#endif \ No newline at end of file diff --git a/include/entity.h b/include/entity.h index abed6056..b744e15b 100644 --- a/include/entity.h +++ b/include/entity.h @@ -19,7 +19,9 @@ typedef struct { union SplitWord { s32 WORD; + struct { s16 LO, HI; + } HALF; }; typedef struct @@ -39,11 +41,23 @@ typedef struct u8 direction; u8 possibleBool; u8 field_0x17; - u8 shadowSize; + union { + u8 raw; + struct { + u8 ss0:2; + u8 ss2:1; + u8 ss3:1; + u8 ss4:1; + u8 ss5:1; + u8 ss6:1; + u8 ss7:1; + } __attribute__((packed)) b; + } __attribute__((packed)) spriteSettings; u8 spriteOrder; u8 palette; u8 spriteOrientation[3]; - u16 spritePointer; + u8 animationList; + u8 field_1f; u16 field_0x20; s16 nonPlanarMovement; u8 spriteAnimation[3]; @@ -53,7 +67,7 @@ typedef struct union SplitWord y; union SplitWord height; // todo u8 collisionLayer; - u8 field_0x39; + s8 interactType; u8 field_0x3a; u8 flags2; u8 field_0x3c; @@ -76,8 +90,13 @@ typedef struct u32 * attachedEntity; u8 field_0x58; u8 field_0x59; - u8 frames; - u8 spriteOrientation2; + union { + u8 all; + u8 f0:6; + u8 f1:1; + u8 f2:1; + } __attribute__((packed)) frames; + u8 gfx; u8 field_0x5c; u8 field_0x5d; u8 field_0x5e; @@ -92,9 +111,11 @@ typedef struct u8 filler3[2]; u16 itemCooldown; u32 field_0x7c; - UnkStruct *unkStruct; - u32 *field_0x84; + u32 field_0x80; + u16 cutsceneBeh; + u16 field_0x86; } Entity; + #endif \ No newline at end of file diff --git a/linker.ld b/linker.ld index b78f8685..d369fe04 100644 --- a/linker.ld +++ b/linker.ld @@ -376,12 +376,12 @@ SECTIONS { asm/townsperson.o(.text); asm/kid.o(.text); asm/npc9.o(.text); - asm/stamp.o(.text); + src/stamp.o(.text); asm/marcy.o(.text); asm/wheaton.o(.text); asm/pita.o(.text); asm/minishEzlo.o(.text); - asm/mailbox.o(.text); + src/mailbox.o(.text); asm/beedle.o(.text); asm/brocco.o(.text); asm/sittingPerson.o(.text); @@ -397,7 +397,7 @@ SECTIONS { asm/talon.o(.text); asm/malon.o(.text); asm/epona.o(.text); - asm/cartOfLonLonMilk.o(.text); + src/milkCart.o(.text); asm/ghostBrothers.o(.text); asm/smith.o(.text); asm/npc23.o(.text); @@ -436,7 +436,7 @@ SECTIONS { asm/simon.o(.text); asm/anju.o(.text); asm/mama.o(.text); - asm/emma.o(.text); + src/emma.o(.text); asm/teachers.o(.text); asm/windTribespeople.o(.text); asm/gregal.o(.text); @@ -482,6 +482,9 @@ SECTIONS { asm/code_0807CC3C.o(.text); src/room.o(.text); asm/code_08080974.o(.text); + src/greatFairy.o(.text); + asm/greatFairy.o(.text); + asm/code_080874A0.o(.text); asm/fastTravel.o(.text); asm/code_0809D498.o(.text); asm/sub_080A2838.o(.text); diff --git a/src/emma.c b/src/emma.c new file mode 100644 index 00000000..4e45083c --- /dev/null +++ b/src/emma.c @@ -0,0 +1,46 @@ +#include "global.h" +#include "entity.h" + +extern u32 gUnk_0813AD10; +extern u32 gUnk_0813AD24; +extern u32 gUnk_0813AD38; + +extern void sub_0805E3A0(Entity *, u32); +extern void sub_0807DD50(Entity *); +extern void sub_0807DD94(Entity *, u32); +extern void sub_08080840(u32 *); + +void sub_0806C550(Entity *param_1) + +{ + if (param_1->action == 0) { + param_1->action += 1; + sub_0805E3A0(param_1,2); + sub_0807DD50(param_1); + } + else { + sub_0807DD94(param_1,0); + } + return; +} + +void sub_0806C578(void) + +{ + sub_08080840(&gUnk_0813AD10); + return; +} + +void sub_0806C588(void) + +{ + sub_08080840(&gUnk_0813AD24); + return; +} + +void FUN_0806c598(void) + +{ + sub_08080840(&gUnk_0813AD38); + return; +} \ No newline at end of file diff --git a/src/greatFairy.c b/src/greatFairy.c new file mode 100644 index 00000000..bf9db585 --- /dev/null +++ b/src/greatFairy.c @@ -0,0 +1,54 @@ +#include "global.h" +#include "entity.h" +#include "room.h" + +extern u32 __modsi3(u32, u32); +extern void UpdateSprite(Entity *, u32); +extern void sub_08087380(); +extern u32 sub_0807CC3C(); +extern Entity *sub_080873AC(Entity*, u32, u32); +extern void PositionRelative(); + +extern void (*gGreatFairy[11])(Entity*); +extern void (*gGreatFairyBehaviors[6])(Entity*); + +extern u32 gUnk_0810C2E4; +extern RoomControls gRoomControls; +extern Entity gLinkEntity; +extern s16 gGreatFairyRippleOffsets[10]; + +void sub_08086A90(Entity *ent) + +{ + u8 bVar1; + + if (ent->action == 0) { + bVar1 = __modsi3((ent->entityType).parameter1, 11); + (ent->entityType).parameter2 = bVar1; + } + gGreatFairy[(ent->entityType).parameter2](ent); +} + +void sub_08086ABC(Entity *ent) +{ + gGreatFairyBehaviors[ent->action](ent); + + + if ((gLinkEntity.y.HALF.HI - gRoomControls.roomOriginY) < 168) { + + gRoomControls.cameraTarget = ent; + gRoomControls.unk5 = 2; + } + else { + gRoomControls.cameraTarget = &gLinkEntity; + gRoomControls.unk5 = 2; + } +} + +void sub_08086AF8(Entity *ent) +{ + sub_08087380(); + ent->parameter3 = 0; + ent->cutsceneBeh = 290; + return; +} \ No newline at end of file diff --git a/src/mailbox.c b/src/mailbox.c new file mode 100644 index 00000000..0e17c18a --- /dev/null +++ b/src/mailbox.c @@ -0,0 +1,82 @@ +#include "global.h" +#include "entity.h" + +extern void sub_0806ED78(Entity *); +extern void LoadAnimation(); +extern void sub_08063280(); +extern void TextboxTryNoOverlap(u32); +extern void sub_080042B8(); +extern void CreateFx(); + +extern void (*gMailboxBehaviors[4])(Entity *); + +void sub_080631E8(Entity *ent) +{ + gMailboxBehaviors[ent->action](ent); + + if (ent->action != 0) { + sub_0806ED78(ent); + } +} + +void sub_08063210(Entity *ent) + +{ + ent->action = 1; + LoadAnimation(ent, 0); + return; +} + +void sub_08063220(Entity *ent) + +{ + u8 bVar1; + + if (ent->interactType != 0) { + ent->action = 2; + bVar1 = 8; + } + else { + bVar1 = 0; + } + + if (ent->field_0x58 != bVar1) { + LoadAnimation(ent); + } + else { + sub_08063280(ent, bVar1); + } + +} + +void sub_08063254(Entity *ent) + +{ + sub_08063280(ent); + if ((ent->frames.all & 0x80) != 0) { + ent->action = 3; + TextboxTryNoOverlap(0); + } + return; +} + +void sub_08063278(Entity *ent) + +{ + sub_08063280(ent); + return; +} + +void sub_08063280(Entity *ent) + +{ + Entity *e; // r4@1 + u8 var; // r2@1 + + e = ent; + sub_080042B8(); + var = e->frames.all & 0x7F; + e->frames.all = e->frames.all ^ var; + if ( var == 2 ) + CreateFx(e, 49, 0); +} \ No newline at end of file diff --git a/src/milkCart.c b/src/milkCart.c new file mode 100644 index 00000000..f313422b --- /dev/null +++ b/src/milkCart.c @@ -0,0 +1,31 @@ +#include "global.h" +#include "entity.h" + +extern void _call_via_r1(Entity *, u32); +extern void sub_0806ED78(); +extern void LoadAnimation(); +extern void sub_080042B8(); + +extern void (*gMilkCartBehaviors[2])(Entity*); + +void sub_08065B4C(Entity *ent) +{ + gMilkCartBehaviors[ent->action](ent); + sub_0806ED78(ent); +} + + +void sub_08065B6C(Entity *ent) +{ + ent->action++; + ent->spriteSettings.b.ss0 = 1; + (ent->y).HALF.LO += -32768; + ent->animationState = 6; + LoadAnimation(ent, 3); +} + + +void sub_08065B9C(Entity *ent) +{ + sub_080042B8(ent); +} \ No newline at end of file diff --git a/src/ocarina.c b/src/ocarina.c index 7115f679..3c916ced 100644 --- a/src/ocarina.c +++ b/src/ocarina.c @@ -15,29 +15,32 @@ extern void UnfreezeTime(void); extern Entity gLinkEntity; extern LinkState gLinkState; -extern void gOcarinaStates; +extern void (*gOcarinaStates[4])(ItemBehavior *, u32); extern u8 gUnk_02034490; void Ocarina(ItemBehavior *pItemBeh,u32 inputFlags) { - u32 *ocarinaStates = &gOcarinaStates; - _call_via_r2(pItemBeh, inputFlags,(ocarinaStates)[pItemBeh->stateID]); + //u32 *ocarinaStates = &gOcarinaStates; + //_call_via_r2(pItemBeh, inputFlags,(ocarinaStates)[pItemBeh->stateID]); + gOcarinaStates[pItemBeh->stateID](pItemBeh, inputFlags); gLinkEntity.itemCooldown = gLinkEntity.itemCooldown + 1; } void OcarinaUse(ItemBehavior *itemBeh,s32 inputFlags) - { u32 bVar1; - + u32 var; + if (gLinkState.linkAction == 24) { sub_08077E78(itemBeh,inputFlags); } else { - itemBeh->unk4 = itemBeh->unk4 | 15; + itemBeh->unk4 |= 15; gLinkEntity.animationState = 4; - gLinkEntity.shadowSize = gLinkEntity.animationState & (gLinkEntity.shadowSize - 0x45); + var = gLinkEntity.spriteSettings.raw & ~0x40; + gLinkEntity.spriteSettings.raw &= var; + gLinkEntity.flags = gLinkEntity.flags & 127; gLinkEntity.itemCooldown = 2; gLinkState.flags.all = (gLinkState.flags.all | 0x10000000); diff --git a/src/stamp.c b/src/stamp.c new file mode 100644 index 00000000..a0bbbd2b --- /dev/null +++ b/src/stamp.c @@ -0,0 +1,126 @@ +#include "global.h" +#include "entity.h" +#include "textbox.h" + +extern void UpdateSprite(Entity *, u32); +extern void sub_08078778(Entity *); +extern void sub_0805E47C(Entity *); +extern void sub_08004274(Entity *); +extern void sub_0806ED78(Entity *); +extern void TextboxTryNoOverlap(u32); +extern void sub_0805E584(); +extern void sub_0807DD64(); +extern void CreateFx(); +extern void sub_08062CA4(); +extern void sub_0807DDAC(); +extern void sub_0807DDE4(); +extern u32 sub_0801E7F4(); +extern void sub_0806F1AC(); + + +extern void (*gStampBehaviors1[4])(Entity*); +extern void (*gStampBehaviors2[2])(Entity*); + +extern TextBox gTextBox; +extern u32 gUnk_0810C2E4; + +extern void UpdateSprite(Entity *, u32); +extern void sub_08078778(Entity *); +extern void sub_0805E47C(Entity *); +extern void sub_08004274(Entity *); +extern void sub_0806ED78(Entity *); +extern void TextboxTryNoOverlap(u32); +extern void sub_0805E584(); +extern void sub_0807DD64(); +extern void CreateFx(); +extern void sub_08062CA4(); +extern void sub_0807DDAC(); +extern void sub_0807DDE4(); +extern u32 sub_0801E7F4(); +extern void sub_0806F1AC(); + + +extern void (*gStampBehaviors1[4])(Entity*); +extern void (*gStampBehaviors2[2])(Entity*); + +extern TextBox gTextBox; +extern u32 gUnk_0810C2E4; + +void sub_08062B98(Entity *ent) +{ + if ((ent->flags & 2) != 0) { + gStampBehaviors2[ent->action](ent); + } + else { + gStampBehaviors1[ent->action](ent); + } +} + +void sub_08062BD4(Entity *ent) +{ + ent->action = 1; + ent->spriteSettings.b.ss0 = 1; + UpdateSprite(ent, 0); + sub_08078778(ent); +} + +void sub_08062BF8(Entity *ent) +{ + sub_08004274(ent); + if (ent->interactType != 0) { + ent->interactType = 0; + ent->action++; + sub_0805E47C(ent); + } + sub_0806ED78(ent); +} + +void sub_08062C24(Entity *ent) +{ + sub_08004274(ent); + if ((ent->frames.all & 128) != 0) { + UpdateSprite(ent, 4); + TextboxTryNoOverlap(2561); + ent->action++; + } +} + +void sub_08062C54(Entity *ent) +{ + if ((gTextBox.doTextBox & 127) == 0) { + ent->action = 1; + UpdateSprite(ent, 0); + sub_0805E584(ent); + } +} + +void sub_08062C7C(Entity *ent) +{ + ent->action = 1; + sub_0807DD64(ent); + UpdateSprite(ent, 0); + CreateFx(ent, 37, 0); + sub_08062CA4(ent); +} + +void sub_08062CA4(Entity *ent) +{ + sub_0807DDAC(ent, 0); + sub_0807DDE4(ent); + sub_08004274(ent); +} + +void sub_08062CBC(Entity *ent) +{ + u32 uVar1; + + uVar1 = sub_0801E7F4(44); + sub_0806F1AC(ent, &gUnk_0810C2E4 + ((-uVar1 | uVar1) >> 31) * 2); +} + +void sub_08062CE0(Entity *ent) +{ + if (ent->action == 0) { + ent->action = 1; + } +} \ No newline at end of file diff --git a/src/textbox.c b/src/textbox.c index 423f040f..da855444 100644 --- a/src/textbox.c +++ b/src/textbox.c @@ -44,8 +44,8 @@ void TextboxNoOverlap(u32 index,Entity *ent) ShowTextbox(index); - y = *(&ent->y.HI + 1); - h = *(&ent->height.HI + 1); + y = ent->y.HALF.HI; + h = ent->height.HALF.HI; if (88 < ((y + h) - gRoomControls.roomScrollY)) { gTextBox.textWindowPosY = 1;